Skip to content
This repository was archived by the owner on Aug 15, 2026. It is now read-only.

Latest commit

 

History

68 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DEPRECATED

This project is now archived since I don't use Hyprland neither caelestia-shell anymore, though still using some caelestia-dots config. However, this approach of porting dotfiles seemed to me pretty useful and maybe in future I create a module inspired on the mechanics of this one to port other dotfiles (that I can use) or even a whole abstraction layer on top of lib.modules

caelestia.nix

This home-manager module provides a declarative way to install and configure caelestia-dots using Nix flakes. It includes default configurations from the caelestia-dots repository, written in Nix, and allows easy customization.

Warning

This module is in a very experimental stage. Many features and modules are still missing, and breaking changes may occur frequently.

Installation

Add caelestia-nix (this repository) and home-manager as inputs to your flake, and include the module in your home configuration.

Example flake.nix:

{
  description = "A caelestia-nix test";
  inputs = {
    nixpkgs = {
      url = "github:NixOS/nixpkgs";
    };
    caelestia-nix.url = "github:Markus328/caelestia-nix";
    home-manager.url = "github:nix-community/home-manager";
  };
  outputs = inputs @ {
    self,
    nixpkgs,
    ...
  }: let
    system = "x86_64-linux"; # Your system here
    pkgs = import nixpkgs {
      inherit system;
    };
  in rec {
    homeConfigurations."user@nixos" = inputs.home-manager.lib.homeManagerConfiguration {
      inherit pkgs;
      modules = [./home.nix inputs.caelestia-nix.homeManagerModules.default];
    };
  };
}

Customization

This module provides default configurations from caelestia-dots. For now, simply enabling the module is enough:

programs.caelestia-dots.enable = true;

You can also deeply configure each module using its "settings" option, such as:

  programs.caelestia-dots = {
    enable = true;
    hypr.hyprland.keybinds.settings.bind = ["Ctrl+Alt, a, exec, footclient"]; # Appends new bind
    caelestia.shell.settings = {
      launcher.actionPrefix = "."; # Set a value
      battery.warnLevels.__prepend = [ # Prepending to the defaults, without rewriting them all
          {
            level = 80;
            title = "High Battery";
            message = "Consider unpluging the charger for the battery safety";
            icon = "battery_android_frame_5";
          }
        ]; # Warn when 80% of battery
    };
  };

You can configure like you configure any other module option, but you have extras: sugars. For deeper instructions, read CUSTOMIZATION

Thanks

About

The now dead caelestia dots home-manager module. Nowdays, only an old experiment of Infusable Options.

Resources

Stars

9 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages