Skip to content

luismoron/cli

 
 

Repository files navigation

caelestia-cli

The main control script for the Caelestia dotfiles.

External dependencies

Installation

Prerequisites: Install Hyprland

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 hyprland

You may also need additional packages like hyprpaper, hyprlock, etc., depending on your setup.

Fedora

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-vcs

For 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-recorder

For app2unit, it may not be available in Fedora repositories; check for alternatives or install from source.

Automated installation

For a fully automated installation, run the provided install.sh script:

chmod +x install.sh
./install.sh

This 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.fish

Usage

All 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

Configuring

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
            }
        }
    }
}

About

The main control script for the Caelestia dotfiles

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 80.2%
  • Shell 8.6%
  • SCSS 7.8%
  • Nix 2.7%
  • CSS 0.7%