This is the CuriOS package to manage dotfiles and set up themes for the COSMIC desktop environment.
It comes pre-installed with CuriOS.
- Retrieve user dotfiles from a Git repository, such as CuriOS themes.
- Manage themes for the COSMIC desktop environment and tools such as Alacritty, Ghostty, Neovim, and Brave.
- Change the language setup on COSMIC.
- Open
curios-manager(Shortcut:Super+Return). - Go to the
Themesmenu, then choose a theme from the list.
-
Read the manual:
curios-dotfiles --help
-
List all available themes:
curios-dotfiles --list
-
Install the "One Dark" theme:
curios-dotfiles --themes "One Dark" "$HOME"
-
Set COSMIC for a French keyboard and Tokyo Night theme:
curios-dotfiles --lang fr --themes "Tokyo Night" "$HOME"
The default source is curios-themes.
To use your own dotfiles or themes, point CuriOS at your Git repository, then
upgrade. A private repository must use an SSH URL, such as
git@github.com:user/repo.git. curios-dotfiles clones with the SSH keys of
the user who runs --upgrade. Do not put a token in the NixOS option.
That user must be able to clone the repository before running --upgrade.
For an SSH URL, add a host entry in $HOME/.ssh/config and register the
matching public key on the Git host:
Host github.com
User git
IdentityFile ~/.ssh/id_ed25519
IdentitiesOnly yes
On GitHub, gh auth login can create or upload that key.
See Github auth login documentation.
sudo curios-update --update-module curios.core.dotfiles.url "git@github.com:user/repo.git"
sudo curios-update --update-module curios.core.dotfiles.branch "main"
sudo curios-update --update
curios-dotfiles --upgrade "$HOME"curios.core.dotfiles.branch is optional. It defaults to main.
--update is required: curios-dotfiles reads the options from the running
system configuration.
The repository must contain dotfiles/, themes/themes.json, and wallpapers/.
--upgrade copies those trees into the given directory and replaces files that
already exist. It does not delete anything else.
| Source | Destination |
|---|---|
dotfiles/ |
the install directory ($HOME, /etc/skel, …), including hidden files |
themes/ |
$HOME/.curios/themes/ |
wallpapers/ |
$HOME/.curios/wallpapers/ |
Only .jpg, .jpeg, and .png files are copied from wallpapers/. Other
files, such as LICENSE.txt, are skipped. Subdirectories are kept.
themes/themes.json lists the themes shown by --list. Each entry may set
alacritty_theme, ghostty_theme, zed, color, nvim, cosmic_theme,
and wallpapers. A path that starts with ~/ or $HOME is expanded against the
install directory.
.
├── dotfiles/
│ ├── .zshrc
│ └── .config/
│ ├── alacritty/
│ │ └── One-Dark.toml
│ └── ghostty/
│ └── One-Dark.config
├── themes/
│ ├── themes.json
│ └── One-Dark.ron
└── wallpapers/
└── one-dark/
└── wallpaper.jpg
{
"version": "0.4",
"themes": {
"One Dark": {
"alacritty_theme": "$HOME/.config/alacritty/One-Dark.toml",
"ghostty_theme": "$HOME/.config/ghostty/One-Dark.config",
"zed": "One-Dark",
"color": "#20252c",
"nvim": "onedark",
"cosmic_theme": "$HOME/.curios/themes/One-Dark.ron",
"wallpapers": "$HOME/.curios/wallpapers/one-dark/"
}
}
}This project uses Just to manage development commands.
Enter the development shell first with nix-shell shell.nix.
-
Lint Files: Check code quality for Nix and Bash files:
nix-shell shell.nix --run "just lint" -
Test Application: Launch the
curios-dotfilesCLI:nix-shell shell.nix --run "just test" -
Publish a new version: Create a new Git tag, push it, build it, and update the hash signature for the Nix package:
nix-shell shell.nix --run "just publish 0.1.2" -
Run: Build the Nix package (from GitHub) and run it:
nix-shell shell.nix --run "just run" -
Clean: Remove build artifacts:
nix-shell shell.nix --run "just clean"