{"id":25975815,"url":"https://github.com/caelestia-dots/shell","last_synced_at":"2026-04-02T21:18:01.553Z","repository":{"id":272110033,"uuid":"915128177","full_name":"caelestia-dots/shell","owner":"caelestia-dots","description":"‼️ No waybar here ‼️","archived":false,"fork":false,"pushed_at":"2026-03-26T06:23:10.000Z","size":3547,"stargazers_count":8429,"open_issues_count":276,"forks_count":551,"subscribers_count":44,"default_branch":"main","last_synced_at":"2026-03-27T01:02:01.722Z","etag":null,"topics":["caelestia","dotfiles","hyprland","hyprland-rice","linux","qt6","quickshell","rice","wayland"],"latest_commit_sha":null,"homepage":"","language":"QML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/caelestia-dots.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"soramanew","patreon":null,"open_collective":null,"ko_fi":"soramane","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"lfx_crowdfunding":null,"polar":null,"buy_me_a_coffee":"soramane","thanks_dev":null,"custom":null}},"created_at":"2025-01-11T03:33:44.000Z","updated_at":"2026-03-27T00:07:51.000Z","dependencies_parsed_at":"2025-02-09T07:21:14.835Z","dependency_job_id":"9cce8f26-cb54-4c4f-96b7-2f8a1d4eedec","html_url":"https://github.com/caelestia-dots/shell","commit_stats":null,"previous_names":["soramanew/caelestia","soramanew/caelestia-shell","caelestia-dots/shell"],"tags_count":18,"template":false,"template_full_name":null,"purl":"pkg:github/caelestia-dots/shell","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caelestia-dots%2Fshell","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caelestia-dots%2Fshell/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caelestia-dots%2Fshell/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caelestia-dots%2Fshell/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/caelestia-dots","download_url":"https://codeload.github.com/caelestia-dots/shell/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/caelestia-dots%2Fshell/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31316451,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["caelestia","dotfiles","hyprland","hyprland-rice","linux","qt6","quickshell","rice","wayland"],"created_at":"2025-03-05T03:25:07.295Z","updated_at":"2026-04-02T21:18:01.540Z","avatar_url":"https://github.com/caelestia-dots.png","language":"QML","readme":"\u003ch1 align=center\u003ecaelestia-shell\u003c/h1\u003e\n\n\u003cdiv align=center\u003e\n\n![GitHub last commit](https://img.shields.io/github/last-commit/caelestia-dots/shell?style=for-the-badge\u0026labelColor=101418\u0026color=9ccbfb)\n![GitHub Repo stars](https://img.shields.io/github/stars/caelestia-dots/shell?style=for-the-badge\u0026labelColor=101418\u0026color=b9c8da)\n![GitHub repo size](https://img.shields.io/github/repo-size/caelestia-dots/shell?style=for-the-badge\u0026labelColor=101418\u0026color=d3bfe6)\n[![Ko-Fi donate](https://img.shields.io/badge/donate-kofi?style=for-the-badge\u0026logo=ko-fi\u0026logoColor=ffffff\u0026label=ko-fi\u0026labelColor=101418\u0026color=f16061\u0026link=https%3A%2F%2Fko-fi.com%2Fsoramane)](https://ko-fi.com/soramane)\n[![Discord invite](https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fdiscordapp.com%2Fapi%2Finvites%2FBGDCFCmMBk%3Fwith_counts%3Dtrue\u0026query=approximate_member_count\u0026style=for-the-badge\u0026logo=discord\u0026logoColor=ffffff\u0026label=discord\u0026labelColor=101418\u0026color=96f1f1\u0026link=https%3A%2F%2Fdiscord.gg%2FBGDCFCmMBk)](https://discord.gg/BGDCFCmMBk)\n\n\u003c/div\u003e\n\nhttps://github.com/user-attachments/assets/0840f496-575c-4ca6-83a8-87bb01a85c5f\n\n## Components\n\n-   Widgets: [`Quickshell`](https://quickshell.outfoxxed.me)\n-   Window manager: [`Hyprland`](https://hyprland.org)\n-   Dots: [`caelestia`](https://github.com/caelestia-dots)\n\n## Installation\n\n\u003e [!NOTE]\n\u003e This repo is for the desktop shell of the caelestia dots. If you want installation instructions\n\u003e for the entire dots, head to [the main repo](https://github.com/caelestia-dots/caelestia) instead.\n\n### Arch linux\n\n\u003e [!NOTE]\n\u003e If you want to make your own changes/tweaks to the shell do NOT edit the files installed by the AUR\n\u003e package. Instead, follow the instructions in the [manual installation section](#manual-installation).\n\nThe shell is available from the AUR as `caelestia-shell`. You can install it with an AUR helper\nlike [`yay`](https://github.com/Jguer/yay) or manually downloading the PKGBUILD and running `makepkg -si`.\n\nA package following the latest commit also exists as `caelestia-shell-git`. This is bleeding edge\nand likely to be unstable/have bugs. Regular users are recommended to use the stable package\n(`caelestia-shell`).\n\n### Nix\n\nYou can run the shell directly via `nix run`:\n\n```sh\nnix run github:caelestia-dots/shell\n```\n\nOr add it to your system configuration:\n\n```nix\n{\n  inputs = {\n    nixpkgs.url = \"github:nixos/nixpkgs/nixos-unstable\";\n\n    caelestia-shell = {\n      url = \"github:caelestia-dots/shell\";\n      inputs.nixpkgs.follows = \"nixpkgs\";\n    };\n  };\n}\n```\n\nThe package is available as `caelestia-shell.packages.\u003csystem\u003e.default`, which can be added to your\n`environment.systemPackages`, `users.users.\u003cusername\u003e.packages`, `home.packages` if using home-manager,\nor a devshell. The shell can then be run via `caelestia-shell`.\n\n\u003e [!TIP]\n\u003e The default package does not have the CLI enabled by default, which is required for full funcionality.\n\u003e To enable the CLI, use the `with-cli` package.\n\nFor home-manager, you can also use the Caelestia's home manager module (explained in [configuring](https://github.com/caelestia-dots/shell?tab=readme-ov-file#home-manager-module)) that installs and configures the shell and the CLI.\n\n### Manual installation\n\nDependencies:\n\n-   [`caelestia-cli`](https://github.com/caelestia-dots/cli)\n-   [`quickshell-git`](https://quickshell.outfoxxed.me) - this has to be the git version, not the latest tagged version\n-   [`ddcutil`](https://github.com/rockowitz/ddcutil)\n-   [`brightnessctl`](https://github.com/Hummer12007/brightnessctl)\n-   [`app2unit`](https://github.com/Vladimir-csp/app2unit)\n-   [`libcava`](https://github.com/LukashonakV/cava)\n-   [`networkmanager`](https://networkmanager.dev)\n-   [`lm-sensors`](https://github.com/lm-sensors/lm-sensors)\n-   [`fish`](https://github.com/fish-shell/fish-shell)\n-   [`aubio`](https://github.com/aubio/aubio)\n-   [`libpipewire`](https://pipewire.org)\n-   `glibc`\n-   `qt6-declarative`\n-   `gcc-libs`\n-   [`material-symbols`](https://fonts.google.com/icons)\n-   [`caskaydia-cove-nerd`](https://www.nerdfonts.com/font-downloads)\n-   [`swappy`](https://github.com/jtheoof/swappy)\n-   [`libqalculate`](https://github.com/Qalculate/libqalculate)\n-   [`bash`](https://www.gnu.org/software/bash)\n-   `qt6-base`\n-   `qt6-declarative`\n\nBuild dependencies:\n\n-   [`cmake`](https://cmake.org)\n-   [`ninja`](https://github.com/ninja-build/ninja)\n\nTo install the shell manually, install all dependencies and clone this repo to `$XDG_CONFIG_HOME/quickshell/caelestia`.\nThen simply build and install using `cmake`.\n\n```sh\ncd $XDG_CONFIG_HOME/quickshell\ngit clone https://github.com/caelestia-dots/shell.git caelestia\n\ncd caelestia\ncmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/\ncmake --build build\nsudo cmake --install build\n```\n\n\u003e [!TIP]\n\u003e You can customise the installation location via the `cmake` flags `INSTALL_LIBDIR`, `INSTALL_QMLDIR` and\n\u003e `INSTALL_QSCONFDIR` for the libraries (the beat detector), QML plugin and Quickshell config directories\n\u003e respectively. If changing the library directory, remember to set the `CAELESTIA_LIB_DIR` environment\n\u003e variable to the custom directory when launching the shell.\n\u003e\n\u003e e.g. installing to `~/.config/quickshell/caelestia` for easy local changes:\n\u003e\n\u003e ```sh\n\u003e mkdir -p ~/.config/quickshell/caelestia\n\u003e cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/ -DINSTALL_QSCONFDIR=~/.config/quickshell/caelestia\n\u003e cmake --build build\n\u003e sudo cmake --install build\n\u003e sudo chown -R $USER ~/.config/quickshell/caelestia\n\u003e ```\n\n## Usage\n\nThe shell can be started via the `caelestia shell -d` command or `qs -c caelestia`.\nIf the entire caelestia dots are installed, the shell will be autostarted on login\nvia an `exec-once` in the hyprland config.\n\n### Shortcuts/IPC\n\nAll keybinds are accessible via Hyprland [global shortcuts](https://wiki.hyprland.org/Configuring/Binds/#dbus-global-shortcuts).\nIf using the entire caelestia dots, the keybinds are already configured for you.\nOtherwise, [this file](https://github.com/caelestia-dots/caelestia/blob/main/hypr/hyprland/keybinds.conf#L1-L39)\ncontains an example on how to use global shortcuts.\n\nAll IPC commands can be accessed via `caelestia shell ...`. For example\n\n```sh\ncaelestia shell mpris getActive trackTitle\n```\n\nThe list of IPC commands can be shown via `caelestia shell -s`:\n\n```\n$ caelestia shell -s\ntarget drawers\n  function toggle(drawer: string): void\n  function list(): string\ntarget notifs\n  function clear(): void\ntarget lock\n  function lock(): void\n  function unlock(): void\n  function isLocked(): bool\ntarget mpris\n  function playPause(): void\n  function getActive(prop: string): string\n  function next(): void\n  function stop(): void\n  function play(): void\n  function list(): string\n  function pause(): void\n  function previous(): void\ntarget picker\n  function openFreeze(): void\n  function open(): void\ntarget wallpaper\n  function set(path: string): void\n  function get(): string\n  function list(): string\n```\n\n### PFP/Wallpapers\n\nThe profile picture for the dashboard is read from the file `~/.face`, so to set\nit you can copy your image to there or set it via the dashboard.\n\nThe wallpapers for the wallpaper switcher are read from `~/Pictures/Wallpapers`\nby default. To change it, change the wallpapers path in `~/.config/caelestia/shell.json`.\n\nTo set the wallpaper, you can use the command `caelestia wallpaper`. Use `caelestia wallpaper -h` for more info about\nthe command.\n\n## Updating\n\nIf installed via the AUR package, simply update your system (e.g. using `yay`).\n\nIf installed manually, you can update by running `git pull` in `$XDG_CONFIG_HOME/quickshell/caelestia`.\n\n```sh\ncd $XDG_CONFIG_HOME/quickshell/caelestia\ngit pull\n```\n\n## Configuring\n\nAll configuration options should be put in `~/.config/caelestia/shell.json`. This file is _not_ created by\ndefault, you must create it manually.\n\n### Example configuration\n\n\u003e [!NOTE]\n\u003e The example configuration only includes recommended configuration options. For more advanced customisation\n\u003e such as modifying the size of individual items or changing constants in the code, there are some other\n\u003e options which can be found in the source files in the `config` directory.\n\n\u003cdetails\u003e\u003csummary\u003eExample\u003c/summary\u003e\n\n```json\n{\n    \"appearance\": {\n        \"mediaGifSpeedAdjustment\": 300,\n        \"sessionGifSpeed\": 0.7,\n        \"anim\": {\n            \"durations\": {\n                \"scale\": 1\n            }\n        },\n        \"font\": {\n            \"family\": {\n                \"clock\": \"Rubik\",\n                \"material\": \"Material Symbols Rounded\",\n                \"mono\": \"CaskaydiaCove NF\",\n                \"sans\": \"Rubik\"\n            },\n            \"size\": {\n                \"scale\": 1\n            }\n        },\n        \"padding\": {\n            \"scale\": 1\n        },\n        \"rounding\": {\n            \"scale\": 1\n        },\n        \"spacing\": {\n            \"scale\": 1\n        },\n        \"transparency\": {\n            \"enabled\": false,\n            \"base\": 0.85,\n            \"layers\": 0.4\n        }\n    },\n    \"general\": {\n        \"logo\": \"caelestia\",\n        \"apps\": {\n            \"terminal\": [\"foot\"],\n            \"audio\": [\"pavucontrol\"],\n            \"playback\": [\"mpv\"],\n            \"explorer\": [\"thunar\"]\n        },\n        \"battery\": {\n            \"warnLevels\": [\n                {\n                    \"level\": 20,\n                    \"title\": \"Low battery\",\n                    \"message\": \"You might want to plug in a charger\",\n                    \"icon\": \"battery_android_frame_2\"\n                },\n                {\n                    \"level\": 10,\n                    \"title\": \"Did you see the previous message?\",\n                    \"message\": \"You should probably plug in a charger \u003cb\u003enow\u003c/b\u003e\",\n                    \"icon\": \"battery_android_frame_1\"\n                },\n                {\n                    \"level\": 5,\n                    \"title\": \"Critical battery level\",\n                    \"message\": \"PLUG THE CHARGER RIGHT NOW!!\",\n                    \"icon\": \"battery_android_alert\",\n                    \"critical\": true\n                }\n            ],\n            \"criticalLevel\": 3\n        },\n        \"idle\": {\n            \"lockBeforeSleep\": true,\n            \"inhibitWhenAudio\": true,\n            \"timeouts\": [\n                {\n                    \"timeout\": 180,\n                    \"idleAction\": \"lock\"\n                },\n                {\n                    \"timeout\": 300,\n                    \"idleAction\": \"dpms off\",\n                    \"returnAction\": \"dpms on\"\n                },\n                {\n                    \"timeout\": 600,\n                    \"idleAction\": [\"systemctl\", \"suspend-then-hibernate\"]\n                }\n            ]\n        }\n    },\n    \"background\": {\n        \"desktopClock\": {\n            \"enabled\": false,\n            \"scale\": 1.0,\n            \"position\": \"bottom-right\",\n            \"shadow\": {\n                \"enabled\": true,\n                \"opacity\": 0.7,\n                \"blur\": 0.4\n            },\n            \"background\": {\n                \"enabled\": false,\n                \"opacity\": 0.7,\n                \"blur\": true\n            },\n            \"invertColors\": false\n        },\n        \"enabled\": true,\n        \"visualiser\": {\n            \"blur\": false,\n            \"enabled\": false,\n            \"autoHide\": true,\n            \"rounding\": 1,\n            \"spacing\": 1\n        }\n    },\n    \"bar\": {\n        \"activeWindow\": {\n            \"compact\": false,\n            \"inverted\": false,\n            \"showOnHover\": true\n        },\n        \"clock\": {\n            \"background\": false,\n            \"showDate\": false,\n            \"showIcon\": true\n        },\n        \"dragThreshold\": 20,\n        \"entries\": [\n            {\n                \"id\": \"logo\",\n                \"enabled\": true\n            },\n            {\n                \"id\": \"workspaces\",\n                \"enabled\": true\n            },\n            {\n                \"id\": \"spacer\",\n                \"enabled\": true\n            },\n            {\n                \"id\": \"activeWindow\",\n                \"enabled\": true\n            },\n            {\n                \"id\": \"spacer\",\n                \"enabled\": true\n            },\n            {\n                \"id\": \"tray\",\n                \"enabled\": true\n            },\n            {\n                \"id\": \"clock\",\n                \"enabled\": true\n            },\n            {\n                \"id\": \"statusIcons\",\n                \"enabled\": true\n            },\n            {\n                \"id\": \"power\",\n                \"enabled\": true\n            }\n        ],\n        \"persistent\": true,\n        \"popouts\": {\n            \"activeWindow\": true,\n            \"statusIcons\": true,\n            \"tray\": true\n        },\n        \"scrollActions\": {\n            \"brightness\": true,\n            \"workspaces\": true,\n            \"volume\": true\n        },\n        \"showOnHover\": true,\n        \"status\": {\n            \"showAudio\": false,\n            \"showBattery\": true,\n            \"showBluetooth\": true,\n            \"showKbLayout\": false,\n            \"showMicrophone\": false,\n            \"showNetwork\": true,\n            \"showWifi\": true,\n            \"showLockStatus\": true\n        },\n        \"tray\": {\n            \"background\": false,\n            \"compact\": false,\n            \"iconSubs\": [],\n            \"recolour\": false\n        },\n        \"workspaces\": {\n            \"activeIndicator\": true,\n            \"activeLabel\": \"󰮯\",\n            \"activeTrail\": false,\n            \"label\": \"  \",\n            \"occupiedBg\": false,\n            \"occupiedLabel\": \"󰮯\",\n            \"perMonitorWorkspaces\": true,\n            \"showWindows\": true,\n            \"shown\": 5,\n            \"specialWorkspaceIcons\": [\n                {\n                    \"name\": \"steam\",\n                    \"icon\": \"sports_esports\"\n                }\n            ],\n            \"windowIcons\": [\n                {\n                    \"regex\": \"steam(_app_(default|[0-9]+))?\",\n                    \"icon\": \"sports_esports\"\n                }\n            ]\n        },\n        \"excludedScreens\": [\"\"],\n        \"activeWindow\": {\n            \"inverted\": false\n        }\n    },\n    \"border\": {\n        \"rounding\": 25,\n        \"thickness\": 10\n    },\n    \"dashboard\": {\n        \"enabled\": true,\n        \"dragThreshold\": 50,\n        \"mediaUpdateInterval\": 500,\n        \"showOnHover\": true\n    },\n    \"launcher\": {\n        \"actionPrefix\": \"\u003e\",\n        \"actions\": [\n            {\n                \"name\": \"Calculator\",\n                \"icon\": \"calculate\",\n                \"description\": \"Do simple math equations (powered by Qalc)\",\n                \"command\": [\"autocomplete\", \"calc\"],\n                \"enabled\": true,\n                \"dangerous\": false\n            },\n            {\n                \"name\": \"Scheme\",\n                \"icon\": \"palette\",\n                \"description\": \"Change the current colour scheme\",\n                \"command\": [\"autocomplete\", \"scheme\"],\n                \"enabled\": true,\n                \"dangerous\": false\n            },\n            {\n                \"name\": \"Wallpaper\",\n                \"icon\": \"image\",\n                \"description\": \"Change the current wallpaper\",\n                \"command\": [\"autocomplete\", \"wallpaper\"],\n                \"enabled\": true,\n                \"dangerous\": false\n            },\n            {\n                \"name\": \"Variant\",\n                \"icon\": \"colors\",\n                \"description\": \"Change the current scheme variant\",\n                \"command\": [\"autocomplete\", \"variant\"],\n                \"enabled\": true,\n                \"dangerous\": false\n            },\n            {\n                \"name\": \"Transparency\",\n                \"icon\": \"opacity\",\n                \"description\": \"Change shell transparency\",\n                \"command\": [\"autocomplete\", \"transparency\"],\n                \"enabled\": false,\n                \"dangerous\": false\n            },\n            {\n                \"name\": \"Random\",\n                \"icon\": \"casino\",\n                \"description\": \"Switch to a random wallpaper\",\n                \"command\": [\"caelestia\", \"wallpaper\", \"-r\"],\n                \"enabled\": true,\n                \"dangerous\": false\n            },\n            {\n                \"name\": \"Light\",\n                \"icon\": \"light_mode\",\n                \"description\": \"Change the scheme to light mode\",\n                \"command\": [\"setMode\", \"light\"],\n                \"enabled\": true,\n                \"dangerous\": false\n            },\n            {\n                \"name\": \"Dark\",\n                \"icon\": \"dark_mode\",\n                \"description\": \"Change the scheme to dark mode\",\n                \"command\": [\"setMode\", \"dark\"],\n                \"enabled\": true,\n                \"dangerous\": false\n            },\n            {\n                \"name\": \"Shutdown\",\n                \"icon\": \"power_settings_new\",\n                \"description\": \"Shutdown the system\",\n                \"command\": [\"systemctl\", \"poweroff\"],\n                \"enabled\": true,\n                \"dangerous\": true\n            },\n            {\n                \"name\": \"Reboot\",\n                \"icon\": \"cached\",\n                \"description\": \"Reboot the system\",\n                \"command\": [\"systemctl\", \"reboot\"],\n                \"enabled\": true,\n                \"dangerous\": true\n            },\n            {\n                \"name\": \"Logout\",\n                \"icon\": \"exit_to_app\",\n                \"description\": \"Log out of the current session\",\n                \"command\": [\"loginctl\", \"terminate-user\", \"\"],\n                \"enabled\": true,\n                \"dangerous\": true\n            },\n            {\n                \"name\": \"Lock\",\n                \"icon\": \"lock\",\n                \"description\": \"Lock the current session\",\n                \"command\": [\"loginctl\", \"lock-session\"],\n                \"enabled\": true,\n                \"dangerous\": false\n            },\n            {\n                \"name\": \"Sleep\",\n                \"icon\": \"bedtime\",\n                \"description\": \"Suspend then hibernate\",\n                \"command\": [\"systemctl\", \"suspend-then-hibernate\"],\n                \"enabled\": true,\n                \"dangerous\": false\n            },\n            {\n                \"name\": \"Settings\",\n                \"icon\": \"settings\",\n                \"description\": \"Configure the shell\",\n                \"command\": [\"caelestia\", \"shell\", \"controlCenter\", \"open\"],\n                \"enabled\": true,\n                \"dangerous\": false\n            }\n        ],\n        \"dragThreshold\": 50,\n        \"vimKeybinds\": false,\n        \"enableDangerousActions\": false,\n        \"maxShown\": 7,\n        \"maxWallpapers\": 9,\n        \"specialPrefix\": \"@\",\n        \"useFuzzy\": {\n            \"apps\": false,\n            \"actions\": false,\n            \"schemes\": false,\n            \"variants\": false,\n            \"wallpapers\": false\n        },\n        \"showOnHover\": false,\n        \"favouriteApps\": [],\n        \"hiddenApps\": []\n    },\n    \"lock\": {\n        \"recolourLogo\": false,\n        \"hideNotifs\": false\n    },\n    \"notifs\": {\n        \"actionOnClick\": false,\n        \"clearThreshold\": 0.3,\n        \"defaultExpireTimeout\": 5000,\n        \"expandThreshold\": 20,\n        \"openExpanded\": false,\n        \"expire\": false\n    },\n    \"osd\": {\n        \"enabled\": true,\n        \"enableBrightness\": true,\n        \"enableMicrophone\": false,\n        \"hideDelay\": 2000\n    },\n    \"paths\": {\n        \"mediaGif\": \"root:/assets/bongocat.gif\",\n        \"sessionGif\": \"root:/assets/kurukuru.gif\",\n        \"noNotifsPic\": \"root:/assets/dino.png\",\n        \"lockNoNotifsPic\": \"root:/assets/dino.png\",\n        \"wallpaperDir\": \"~/Pictures/Wallpapers\",\n        \"lyricsDir\": \"~/Music/lyrics\"\n    },\n    \"services\": {\n        \"audioIncrement\": 0.1,\n        \"brightnessIncrement\": 0.1,\n        \"maxVolume\": 1.0,\n        \"defaultPlayer\": \"Spotify\",\n        \"gpuType\": \"\",\n        \"playerAliases\": [{ \"from\": \"com.github.th_ch.youtube_music\", \"to\": \"YT Music\" }],\n        \"weatherLocation\": \"\",\n        \"useFahrenheit\": false,\n        \"useFahrenheitPerformance\": false,\n        \"useTwelveHourClock\": false,\n        \"smartScheme\": true,\n        \"visualiserBars\": 45\n    },\n    \"session\": {\n        \"dragThreshold\": 30,\n        \"enabled\": true,\n        \"vimKeybinds\": false,\n        \"icons\": {\n            \"logout\": \"logout\",\n            \"shutdown\": \"power_settings_new\",\n            \"hibernate\": \"downloading\",\n            \"reboot\": \"cached\"\n        },\n        \"commands\": {\n            \"logout\": [\"loginctl\", \"terminate-user\", \"\"],\n            \"shutdown\": [\"systemctl\", \"poweroff\"],\n            \"hibernate\": [\"systemctl\", \"hibernate\"],\n            \"reboot\": [\"systemctl\", \"reboot\"]\n        }\n    },\n    \"sidebar\": {\n        \"dragThreshold\": 80,\n        \"enabled\": true\n    },\n    \"utilities\": {\n        \"enabled\": true,\n        \"maxToasts\": 4,\n        \"toasts\": {\n            \"audioInputChanged\": true,\n            \"audioOutputChanged\": true,\n            \"capsLockChanged\": true,\n            \"chargingChanged\": true,\n            \"configLoaded\": true,\n            \"dndChanged\": true,\n            \"gameModeChanged\": true,\n            \"kbLayoutChanged\": true,\n            \"kbLimit\": true,\n            \"numLockChanged\": true,\n            \"vpnChanged\": true,\n            \"nowPlaying\": false\n        },\n        \"vpn\": {\n            \"enabled\": true,\n            \"provider\": [\n                {\n                    \"name\": \"wireguard\",\n                    \"interface\": \"your-connection-name\",\n                    \"displayName\": \"Wireguard (Your VPN)\",\n                    \"enabled\": false\n                }\n            ]\n        },\n        \"quickToggles\": [\n            {\n                \"id\": \"wifi\",\n                \"enabled\": true\n            },\n            {\n                \"id\": \"bluetooth\",\n                \"enabled\": true\n            },\n            {\n                \"id\": \"mic\",\n                \"enabled\": true\n            },\n            {\n                \"enabled\": true,\n                \"id\": \"settings\"\n            },\n            {\n                \"id\": \"gameMode\",\n                \"enabled\": true\n            },\n            {\n                \"id\": \"dnd\",\n                \"enabled\": true\n            },\n            {\n                \"id\": \"vpn\",\n                \"enabled\": true\n            }\n        ]\n    }\n}\n```\n\n\u003c/details\u003e\n\n### Home Manager Module\n\nFor NixOS users, a home manager module is also available.\n\n\u003cdetails\u003e\u003csummary\u003e\u003ccode\u003ehome.nix\u003c/code\u003e\u003c/summary\u003e\n\n```nix\nprograms.caelestia = {\n  enable = true;\n  systemd = {\n    enable = false; # if you prefer starting from your compositor\n    target = \"graphical-session.target\";\n    environment = [];\n  };\n  settings = {\n    bar.status = {\n      showBattery = false;\n    };\n    paths.wallpaperDir = \"~/Images\";\n  };\n  cli = {\n    enable = true; # Also add caelestia-cli to path\n    settings = {\n      theme.enableGtk = false;\n    };\n  };\n};\n```\n\nThe module automatically adds Caelestia shell to the path with **full functionality**. The CLI is not required, however you have the option to enable and configure it.\n\n\u003c/details\u003e\n\n## FAQ\n\n### Need help or support?\n\nYou can join the community Discord server for assistance and discussion:\nhttps://discord.gg/BGDCFCmMBk\n\n### My screen is flickering, help pls!\n\nTry disabling VRR in the hyprland config. You can do this by adding the following to `~/.config/caelestia/hypr-user.conf`:\n\n```conf\nmisc {\n    vrr = 0\n}\n```\n\n### I want to make my own changes to the hyprland config!\n\nYou can add your custom hyprland configs to `~/.config/caelestia/hypr-user.conf`.\n\n### I want to make my own changes to other stuff!\n\nSee the [manual installation](https://github.com/caelestia-dots/shell?tab=readme-ov-file#manual-installation) section\nfor the corresponding repo.\n\n### I want to disable XXX feature!\n\nPlease read the [configuring](https://github.com/caelestia-dots/shell?tab=readme-ov-file#configuring) section in the readme.\nIf there is no corresponding option, make feature request.\n\n### How do I make my colour scheme change with my wallpaper?\n\nSet a wallpaper via the launcher or `caelestia wallpaper` and set the scheme to the dynamic scheme via the launcher\nor `caelestia scheme set`. e.g.\n\n```sh\ncaelestia wallpaper -f \u003cpath/to/file\u003e\ncaelestia scheme set -n dynamic\n```\n\n### My wallpapers aren't showing up in the launcher!\n\nThe launcher pulls wallpapers from `~/Pictures/Wallpapers` by default. You can change this in the config. Additionally,\nthe launcher only shows an odd number of wallpapers at one time. If you only have 2 wallpapers, consider getting more\n(or just putting one).\n\n## Credits\n\nThanks to the Hyprland discord community (especially the homies in #rice-discussion) for all the help and suggestions\nfor improving these dots!\n\nA special thanks to [@outfoxxed](https://github.com/outfoxxed) for making Quickshell and the effort put into fixing issues\nand implementing various feature requests.\n\nAnother special thanks to [@end_4](https://github.com/end-4) for his [config](https://github.com/end-4/dots-hyprland)\nwhich helped me a lot with learning how to use Quickshell.\n\nFinally another thank you to all the configs I took inspiration from (only one for now):\n\n-   [Axenide/Ax-Shell](https://github.com/Axenide/Ax-Shell)\n\n## Stonks 📈\n\n\u003ca href=\"https://www.star-history.com/#caelestia-dots/shell\u0026Date\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=caelestia-dots/shell\u0026type=Date\u0026theme=dark\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/svg?repos=caelestia-dots/shell\u0026type=Date\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/svg?repos=caelestia-dots/shell\u0026type=Date\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n","funding_links":["https://github.com/sponsors/soramanew","https://ko-fi.com/soramane","https://buymeacoffee.com/soramane","https://img.shields.io/badge/donate-kofi?style=for-the-badge\u0026logo=ko-fi\u0026logoColor=ffffff\u0026label=ko-fi\u0026labelColor=101418\u0026color=f16061\u0026link=https%3A%2F%2Fko-fi.com%2Fsoramane"],"categories":["QML","Uncategorized"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaelestia-dots%2Fshell","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcaelestia-dots%2Fshell","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcaelestia-dots%2Fshell/lists"}