Star 历史趋势
数据来源: GitHub API · 生成自 Stargazers.cn
README.md

caelestia

This is the main repo of the Caelestia dotfiles and contains user configs for various apps.

[!IMPORTANT] The legacy install.fish script in this repo has been removed in favour of the CLI's install command.

If you have an existing installation with the legacy script, please update the CLI and run the install command to complete the migration.

[!IMPORTANT] We have switched to using Lua for the Hyprland config! For everyone with a custom ~/.config/caelestia/hypr-user.conf or ~/.config/caelestia/hypr-vars.conf, please convert it to Lua either manually or using one of the available converters online.

For more information on using these files, see the Configuring section.

Installation (Arch Linux)

Install the CLI from the AUR, then run caelestia install.

For example:

paru -S caelestia-cli
caelestia install

Manual installation

Clone this repo, then go through the manifest and install all packages from the components that you want to enable, then copy all the entries from those components.

e.g. for the hyprland component:

git clone https://github.com/caelestia-dots/caelestia.git
cd caelestia
sudo pacman -S --needed hyprland xdg-desktop-portal-hyprland xdg-desktop-portal-gtk ttf-jetbrains-mono-nerd
mkdir -p $XDG_CONFIG_HOME/hypr
cp -r hypr/. $XDG_CONFIG_HOME/hypr/

Updating

Use caelestia update to perform a full system update and update the dots.

Usage

[!NOTE] These dots do not contain a login manager (for now), so you must install a login manager yourself unless you want to log in from a TTY. I recommend greetd with tuigreet; however, you can use any login manager you want.

Configuring

[!CAUTION] You should never modify any files inside ~/.config/hypr/, as this will cause conflicts during updates to the dots.

Any personal changes should be made in ~/.config/caelestia/hypr-user.lua or hypr-vars.lua, as the installation/update workflows never modify these files. Writing your own changes to files in ~/.config/hypr/ will prevent new updates from being applied, and you will have to reconcile conflicts every time you update manually.

hypr-vars.lua

Most default Hyprland values can be modified by overriding variables in ~/.config/caelestia/hypr-vars.lua. You can use this file to set default apps, keybinds, mouse cursor, window decorations, and much more. Use the variables.lua file as a reference for all available variables and their default values.

Example usage for hypr-vars.lua:

return {
  -- Changing default apps:
  browser          = "zen-browser",    -- Change default browser to Zen
  editor           = "code",           -- Change default editor to Code

  -- Changing window/decoration properties:
  blurEnabled      = false,            -- Disable window blur
  windowBorderSize = 3,                -- Increase window border size (default: 1)

  -- Changing keybinds:
  kbTerminal       = "SUPER + Return", -- Change the keybind for opening terminal
}

hypr-user.lua

You can put any custom Hyprland configuration in ~/.config/caelestia/hypr-user.lua. This file is loaded at the end of the Hyprland loading sequence. This allows you to customise the behavior of Hyprland outside of the premade configs, including monitor layout, additional keybinds, and window rules. It is preferable to use hypr-vars.lua for changes to options that the dots already manage (e.g. keybinds, window borders, etc.). Still, for configuration that isn't covered by dots or needs to be managed outside variables, any changes should be made in hypr-user.lua. You can read more about configuring Hyprland on their wiki.

Additional configuration

Caelestia is a multifaceted ecosystem comprising the dotfiles (this repo), the shell, and the CLI. The shell’s configuration is managed by ~/.config/caelestia/shell.json, which modifies the shell’s behavior. The CLI config file (~/.config/caelestia/cli.json) lets you adjust the CLI’s theming and handling of special workspaces. You can find more information on configuring the shell and the CLI in their respective repos.

Default keybinds

[!TIP] All keybinds can be customised by overriding their corresponding variables in hypr-vars.lua (excluding the shell restart/kill binds). See Configuring for more information.

Launcher

KeybindAction
Super (press & release)Open launcher

Workspaces

KeybindAction
Super + 1~9, 0Go to workspace 1~10
Super + Alt + 1~9, 0Move window to workspace 1~10
Ctrl + Super + 1~9, 0Go to workspace group (×10)
Ctrl + Super + Alt + 1~9, 0Move window to workspace group
Super + Alt + S, Ctrl + Super + Shift + UpMove window to special workspace
Ctrl + Super + Shift + DownMove window out of special workspace
Super + Alt + Scroll Down, Super + Alt + Page_Down, Ctrl + Super + Shift + RightMove window to next workspace
Super + Alt + Scroll Up, Super + Alt + Page_Up, Ctrl + Super + Shift + LeftMove window to previous workspace
Super + Scroll Down, Ctrl + Super + Right, Super + Page_DownGo to next workspace
Super + Scroll Up, Ctrl + Super + Left, Super + Page_UpGo to previous workspace
Ctrl + Super + Scroll DownGo to next workspace group
Ctrl + Super + Scroll UpGo to previous workspace group

Window groups

KeybindAction
Alt + TabGo to next window in group
Shift + Alt + TabGo to previous window in group
Ctrl + Alt + TabGo to next group
Ctrl + Shift + Alt + TabGo to previous group
Super + UMove window out of group
Super + CommaToggle group
Super + Shift + CommaLock active group

Window actions

KeybindAction
Super + Minus, Super + Alt + LeftDecrease window width
Super + Equal, Super + Alt + RightIncrease window width
Super + Shift + Minus, Super + Alt + UpDecrease window height
Super + Shift + Minus, Super + Alt + DownIncrease window height
Super + Left/Right/Up/DownFocus window in direction
Super + Shift + Left/Right/Up/DownMove window in direction
Super + LMB drag, Super + Z + LMBMove window (drag)
Super + RMB drag, Super + X + LMBResize window (drag)
Ctrl + Super + BackslashCenter window
Ctrl + Super + Alt + BackslashResize window to 55×70% of screen and center
Super + Alt + BackslashPicture-in-picture mode
Super + PPin window
Super + FFullscreen window
Super + Alt + FFullscreen window (bordered)
Super + Alt + SpaceToggle floating for window
Super + QClose window

Special workspace toggles

KeybindAction
Super + SToggle special workspace
Ctrl + Shift + EscapeToggle system monitor workspace
Super + MToggle music workspace
Super + DToggle communication workspace
Super + RToggle todo workspace

Applications

KeybindAction
Super + TTerminal (default: foot)
Super + WBrowser (default: firefox)
Super + CEditor (default: codium)
Super + EFile explorer (default: thunar)
Ctrl + Alt + VAudio settings (default: pwvucontrol)

Utilities

KeybindAction
PrintScreenshot
Super + Shift + SScreenshot (freeze)
Super + Shift + Alt + SScreenshot (region)
Ctrl + Alt + RRecord fullscreen
Super + Alt + RRecord with sound
Super + Shift + Alt + RRecord region
Super + Shift + CColor picker

Media

KeybindAction
Ctrl + Super + SpacePlay/pause
Ctrl + Super + EqualNext track
Ctrl + Super + MinusPrevious track
Ctrl + Super + BackspaceStop playback
Super + Shift + MMute volume

Miscellaneous

KeybindAction
Ctrl + Alt + DeleteOpen shell session menu
Super + NToggle shell sidebar
Ctrl + Alt + CClear shell notifications
Super + KShow all shell panels
Super + LLock screen
Super + Alt + LRestore shell lockscreen
Super + Shift + LRun sleep command

Clipboard / Emoji

KeybindAction
Super + VOpen clipboard history
Super + Alt + VOpen clipboard history (delete mode)
Ctrl + Shift + Alt + VPaste latest clipboard entry
Super + PeriodOpen emoji picker

Shell

KeybindAction
Ctrl + Super + Alt + RRestart shell
Ctrl + Super + Shift + RKill shell

关于 About

A fluid, morphing interface to your Linux desktop
caelestiahyprlandhyprland-ricelinuxrice

语言 Languages

TypeScript48.7%
Lua43.0%
CSS6.1%
Shell2.1%
JavaScript0.1%

提交活跃度 Commit Activity

代码提交热力图
过去 52 周的开发活跃度
114
Total Commits
峰值: 28次/周
Less
More

核心贡献者 Contributors