The main control script for the Caelestia dotfiles.
External dependencies
libnotfy- sending notificationsswappy- screenshot editorgrim- taking screenshotsdart-sass- discord themingapp2unit- launching appswl-clipboard- copying to clipboardslurp- selecting an areagpu-screen-recorder- screen recordingglib2- closing notificationscliphist- clipboard historyfuzzel- clipboard history/emoji picker
This dotfiles setup is designed for Hyprland. To install Hyprland on Fedora, enable the COPR repository:
sudo dnf copr enable solopasha/hyprland
sudo dnf install hyprlandYou may also need additional packages like hyprpaper, hyprlock, etc., depending on your setup.
The CLI can be installed manually. First, install the dependencies:
sudo dnf install libnotify swappy grim sassc wl-clipboard slurp glib2 cliphist fuzzel python3-build python3-installer python3-hatch python3-hatch-vcsFor gpu-screen-recorder, you may need to enable RPM Fusion repositories:
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf install gpu-screen-recorderFor app2unit, it may not be available in Fedora repositories; check for alternatives or install from source.
For a fully automated installation, run the provided install.sh script:
chmod +x install.sh
./install.shThis script will enable the necessary repositories, install Hyprland and all dependencies, clone/build/install the CLI, and set up completions.
Then, clone the repo, cd into it, build the wheel via python3 -m build --wheel
and install it via python3 -m installer dist/*.whl. Then, to install the fish
completions, copy the completions/caelestia.fish file to
/usr/share/fish/vendor_completions.d/caelestia.fish.
git clone https://github.com/caelestia-dots/cli.git
cd cli
python3 -m build --wheel
sudo python3 -m installer dist/*.whl
sudo cp completions/caelestia.fish /usr/share/fish/vendor_completions.d/caelestia.fishAll subcommands/options can be explored via the help flag.
$ caelestia -h
usage: caelestia [-h] [-v] COMMAND ...
Main control script for the Caelestia dotfiles
options:
-h, --help show this help message and exit
-v, --version print the current version
subcommands:
valid subcommands
COMMAND the subcommand to run
shell start or message the shell
toggle toggle a special workspace
scheme manage the colour scheme
screenshot take a screenshot
record start a screen recording
clipboard open clipboard history
emoji emoji/glyph utilities
wallpaper manage the wallpaper
resizer window resizer daemon
All configuration options are in ~/.config/caelestia/cli.json.
Example configuration
{
"record": {
"extraArgs": []
},
"wallpaper": {
"postHook": "echo $WALLPAPER_PATH"
},
"theme": {
"enableTerm": true,
"enableHypr": true,
"enableDiscord": true,
"enableSpicetify": true,
"enableFuzzel": true,
"enableBtop": true,
"enableGtk": true,
"enableQt": true
},
"toggles": {
"communication": {
"discord": {
"enable": true,
"match": [{ "class": "discord" }],
"command": ["discord"],
"move": true
},
"whatsapp": {
"enable": true,
"match": [{ "class": "whatsapp" }],
"move": true
}
},
"music": {
"spotify": {
"enable": true,
"match": [{ "class": "Spotify" }, { "initialTitle": "Spotify" }, { "initialTitle": "Spotify Free" }],
"command": ["spicetify", "watch", "-s"],
"move": true
},
"feishin": {
"enable": true,
"match": [{ "class": "feishin" }],
"move": true
}
},
"sysmon": {
"btop": {
"enable": true,
"match": [{ "class": "btop", "title": "btop", "workspace": { "name": "special:sysmon" } }],
"command": ["foot", "-a", "btop", "-T", "btop", "fish", "-C", "exec btop"]
}
},
"todo": {
"todoist": {
"enable": true,
"match": [{ "class": "Todoist" }],
"command": ["todoist"],
"move": true
}
}
}
}