Initial: switcher to caelestia shell

This commit is contained in:
Tomas Rivera
2026-04-08 17:12:54 +02:00
parent 3ceea3d5ee
commit 6625c1bdda
8 changed files with 600 additions and 21 deletions
+3 -1
View File
@@ -134,9 +134,11 @@ nixos/
| `$mod + F` | Browser |
| `$mod + N` | Notes |
| `$mod + Shift + A` | App launcher |
| `$mod + Alt + A` | Toggle sidebar |
| `$mod + Q` | Kill apps (Steam/Pomodoro to special workspace) |
| `$mod + L` | Lock screen |
| `$mod + Shift + S` | Screenshot |
| `$mod + Shift + S` | Screenshot a window|
| `F11` | Screenshot the whole screen|
### Multimedia & System
| Key | Action |
Generated
+68
View File
@@ -1,5 +1,51 @@
{
"nodes": {
"caelestia-cli": {
"inputs": {
"caelestia-shell": [
"caelestia-shell"
],
"nixpkgs": [
"caelestia-shell",
"nixpkgs"
]
},
"locked": {
"lastModified": 1772764582,
"narHash": "sha256-hSwjmpXHFqzSXrndVekA0IheKrbC7wi0IbfZTYwlmXw=",
"owner": "caelestia-dots",
"repo": "cli",
"rev": "4bcd42f482d038b98145b0b03388244b68b7d35d",
"type": "github"
},
"original": {
"owner": "caelestia-dots",
"repo": "cli",
"type": "github"
}
},
"caelestia-shell": {
"inputs": {
"caelestia-cli": "caelestia-cli",
"nixpkgs": [
"nixpkgs-unstable"
],
"quickshell": "quickshell"
},
"locked": {
"lastModified": 1775480688,
"narHash": "sha256-0Bs5Z39ziq/ZSF3TJIQePVhdy3CjdKvQbbq/gLTRCqw=",
"owner": "caelestia-dots",
"repo": "shell",
"rev": "612f828b9f84ca0dda76ce009c3ff64f75c5733e",
"type": "github"
},
"original": {
"owner": "caelestia-dots",
"repo": "shell",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -87,8 +133,30 @@
"type": "github"
}
},
"quickshell": {
"inputs": {
"nixpkgs": [
"caelestia-shell",
"nixpkgs"
]
},
"locked": {
"lastModified": 1772925576,
"narHash": "sha256-mMoiXABDtkSJxCYDrkhJ/TrrJf5M46oUfIlJvv2gkZ0=",
"ref": "refs/heads/master",
"rev": "15a84097653593dd15fad59a56befc2b7bdc270d",
"revCount": 750,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
"original": {
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}
},
"root": {
"inputs": {
"caelestia-shell": "caelestia-shell",
"home-manager": "home-manager",
"nixos-grub-themes": "nixos-grub-themes",
"nixpkgs": "nixpkgs_2",
+5
View File
@@ -10,6 +10,10 @@
url = "github:nix-community/home-manager/release-25.11";
inputs.nixpkgs.follows = "nixpkgs";
};
caelestia-shell = { # based on quickshell. See https://github.com/caelestia-dots/shell
url = "github:caelestia-dots/shell";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
};
# never got nixvim to wokrs. ):
# nixvim = {
@@ -22,6 +26,7 @@
nixpkgs-unstable,
home-manager,
nixos-grub-themes,
caelestia-shell,
...
} @ inputs: let
system = "x86_64-linux";
+1 -5
View File
@@ -48,7 +48,7 @@
users = {
tomasr = ./home.nix;
};
extraSpecialArgs = {inherit pkgs-unstable;};
extraSpecialArgs = {inherit inputs pkgs-unstable;};
};
environment.pathsToLink = [
@@ -201,7 +201,6 @@
tomato-c # pomodoro timer
pavucontrol # PulseAudio Volume Control
#hyprshot
grim # Grab images from a Wayland compositor Used for quickshell screenshot tool
xdg-utils
mailcap
pkgs-unstable.vimPluginsUpdater # used for building plugins
@@ -235,10 +234,7 @@
deadnix
alejandra
cling # c interpreter used for coding
# libs or apps for quickshell
libsForQt5.qt5.qtgraphicaleffects
mprisence
kdePackages.qt5compat
gif-for-cli
# lsp
texlab
+9 -6
View File
@@ -15,14 +15,16 @@
../../modules/home-manager/ssh.nix
../../modules/home-manager/fastfetch.nix
../../modules/home-manager/hyprland.nix
../../modules/home-manager/wlogout.nix # logout utility
../../modules/home-manager/rofi.nix # launcher and keybindings helper
#../../modules/home-manager/wlogout.nix # logout utility
../../modules/home-manager/rofi.nix # used for keybinds and for clipboard
#notifications are now manager with quickshell../../modules/home-manager/swaync.nix # notification daemon
../../modules/home-manager/neovim.nix # dont use nixvim. broken
#../../modules/home-manager/neovim2.nix # ./neovim2.nix uses vim plug instead of the nix repository as with ./neovim.nix see the begining of neovim2 for an explanation
../../modules/home-manager/rclone.nix
#../../modules/home-manager/waybar.nix
../../modules/home-manager/quickshell.nix # used for widgets, waybar and notifications
#../../modules/home-manager/quickshell.nix # used for widgets, waybar and notifications # i migrated to caelestia-shell
inputs.caelestia-shell.homeManagerModules.default
../../modules/home-manager/caelestia.nix # caelestia shell is based on quickshell
#../../modules/home-manager/oh-my-posh.nix # zsh customizer
../../modules/home-manager/oh-my-zsh.nix # another zsh customizer
../../modules/home-manager/hypridle.nix
@@ -80,9 +82,10 @@
(pkgs.callPackage ../../modules/scripts/trimmer.nix {})
#(pkgs.callPackage ../../modules/scripts/obsidianbackup.nix {}) # periodically syncs obsidian's note to kdrive
#(pkgs.callPackage ../../modules/scripts/obsidianprofiles.nix {}) # fzf vault selector # obsidian was replaced with a custom solution
(pkgs.callPackage ../../modules/scripts/QSsysinfo.nix {})
(pkgs.callPackage ../../modules/scripts/QSnotifycache.nix {})
(pkgs.callPackage ../../modules/scripts/QSnotifyhistory.nix {})
# no longer used scripts for quickshell. see caelestia-shell
#(pkgs.callPackage ../../modules/scripts/QSsysinfo.nix {})
#(pkgs.callPackage ../../modules/scripts/QSnotifycache.nix {})
#(pkgs.callPackage ../../modules/scripts/QSnotifyhistory.nix {})
#pkgs
pkgs.gruvbox-gtk-theme
pkgs.biber
+497
View File
@@ -0,0 +1,497 @@
{
config,
pkgs,
pkgs-unstable,
caelestia-shell,
...
}: {
# set profile picture in ~/.face
programs.caelestia = {
enable = true;
systemd = {
enable = false; # if you prefer starting from your compositor
target = "graphical-session.target";
environment = [];
};
settings = { # default config https://github.com/caelestia-dots/shell?tab=readme-ov-file#example-configuration
appearance = {
mediaGifSpeedAdjustment = 300;
sessionGifSpeed = 0.7;
anim = {
duration = {
scale = 1;
};
};
font = {
family = {
clock = "Rubik"; # (TODO figure out those fonts)
material = "Material Symboles Rounded";
mono = "CaskaydiaCove NF";
sans = "Rubik";
};
size = {
scale = 1;
};
};
padding = {
scale = 1;
};
rounding = {
scale = 1;
};
spacing = {
scale = 1;
};
transparency = {
enabled = false;
base = 0.85;
layeres = 0.4;
};
};
general = {
logo = "caelestia";
apps = {
terminal = [ "kitty" ]; # default foot
audio = [ "pavucontrol" ];
playback = [ "mpv" ]; # what's that?
explorer = [ "nautilus" ]; # default thunar
};
battery = {
wanLevels = [
{
level = 20;
title = "Low battery";
message = "You might want to plug in a charger";
icon = "battery_android_frame_2";
}
{
level = 10;
title = "Did you see the previous message?";
message = "You should probably plug in a charger <b>now</b>";
icon = "battery_android_frame_1";
}
{
level = 5;
title = "Critical battery level";
message = "PLUG THE CHARGER RIGHT NOW!!";
icon = "battery_android_alert";
critical = true;
}
];
criticalLevel = 3;
};
idle = {
lockBeforeSleep = true;
inhibitWhenAudio = true;
timeouts = [
{
timeout = 180;
idleAction = "lock";
}
{
timeout = 300;
idleAction = "dpms off"; # what's that?
returnAction = "dpms on";
}
{
timeout = 600;
idleAction = [ "systemctl" "suspend-then-hibernate" ];
}
];
};
};
background = {
desktopClock = {
enabled = false;
scale = 1.0;
position = "bottom-right";
shadow = {
enabled = true;
opacity = 0.7;
blur = 0.4;
};
background = {
enabled = false;
opacity = 0.7;
blur = true;
};
invertColors = false;
};
enabled = true; #ptet changer ca pour wallpaper
visualiser = {
blur = false;
enabled = false;
autohide = true;
rounding = 1;
spacing = 1;
};
};
bar = {
activeWindow = {
compact = false;
inverted = false;
showOnHover = true;
};
clock = {
background = false;
showDate = false;
showIcon = true;
};
dragThreshold = 20;
entries = [
{
id = "logo";
enabled = true;
}
{
id = "workspaces";
enabled = true;
}
{
id = "spacer";
enabled = true;
}
{
id = "activeWindow";
enabled = true;
}
{
id = "spacer";
enabled = true;
}
{
id = "tray";
enabled = true;
}
{
id = "clock";
enabled = true;
}
{
id = "statusIcon";
enbaled = true;
}
{
id = "power";
enabled = true;
}
];
persistent = true;
popouts = {
activeWindow = true;
statusIcon = true;
tray = true;
};
scrollActions = {
brightness = true;
workspaces = true;
volume = true;
};
showOnHover = true;
status = {
showAudio = false;
showBattery = true;
showBluetooth = true;
showKbLayout = false;
showMicrophone = false;
showNetwork = true;
showWifi = true;
showLockStatus = true;
};
tray = {
background = false;
compact = false;
iconSubs = [];
recolour = false;
};
workspaces = {
activeIndicator = true;
activeLabel = "󰮯";
activeTrail = false;
label = " ";
occupiedBg = false;
occpiedLabel = "󰮯";
perMonitorWorkspaces = true;
showWindows = true;
shown = 5;
specialWorkspaceIcons = [
{
name = "steam";
icon = "sports_esports";
}
];
windowIcons = [
{
regex = "steam(_app_(default|[0-9]+))?";
icon = "sports_esports";
}
];
};
excludedScreens = [ "" ]; # default says "" those this work?
};
border = {
rounding = 25;
thickness = 10;
};
dashboard = {
enabled = true;
dragThreshold = 50;
mediaUpdateInterval = 500;
showOnHover = true;
};
launcher = {
actionsPrefix = ">";
actions = [
{
name = "Calculator";
icon = "calculate";
description = "Do simple math equations (powered by Qalc)";
command = [ "autocomplete" "calc" ];
enabled = true;
dangerous = false;
}
{
name = "Scheme"; # to remove
icon = "palette";
description = "Change the current colour scheme";
command = [ "autocomplete" "scheme" ];
enabled = true;
dangerous = false;
}
{
name = "Wallpaper"; # to remove
icon = "image";
description = "Change the current wallpaper";
command = [ "autocomplete" "wallpaper" ];
enabled = true;
dangerous = false;
}
{
name = "Variant"; # to remove
icon = "colors";
description = "Change the current scheme variant";
command = [ "autocomplete" "variant" ];
enabled = true;
dangerous = false;
}
{
name = "Transparency";
icon = "opacity";
description = "Change shell transparency";
command = [ "autocomplete" "transparency" ];
enbaled = false;
dangerous = false;
}
{
name = "Random"; # to remove
icon = "casino";
description = "Switch to a random wallpaper";
command = [ "caelestia" "wallpaper" "-r" ];
enabled = true;
dangerous = false;
}
{
name = "Light"; # to remove
icon = "light_mode";
description = "Change the scheme to light mode";
command = [ "setMode" "light" ];
enabled = true;
dangerous = false;
}
{
name = "Dark"; # to remove
icon = "dark_mode";
description = "Change the scheme to dark mode";
command = [ "setMode" "dark" ];
enabled = true;
dangerous = false;
}
{
name = "Shutdown";
icon = "power_settings_new";
description = "Shutdown the system";
command = [ "systemctl" "poweroff" ];
enabled = true;
dangerous = true;
}
{
name = "Reboot";
icon = "cached";
description = "Reboot the system";
command = [ "systemctl" "reboot" ];
enabled = true;
dangerous = true;
}
{
name = "Lock"; # does this work with ly?
icon = "lock";
description = "Log out of the current session";
command = [ "loginctl" "terminate-user" "" ];
enabled = true;
dangerous = true;
}
{
name = "Sleep";
icon = "bedtime";
description = "Suspend then hibernate";
command = [ "systemctl" "suspend-then-hibernate" ];
enabled = true;
dangerous = false;
}
{
name = "Settings"; # to remove -- > we want to do every config with nix
icon = "settings";
description = "Configure the shell";
command = [ "caelestia" "shell" "controlCenter" "open" ];
enabled = true;
dangerous = false;
}
];
dragThreshold = 50;
vimKeybinds = false; # intersting to put to true
enableDangerousActions = false; # set to true
maxShown = 7;
maxWallpapers = 9;
specialPrefix = "@";
useFuzzy = { # should try
apps = false;
actions = false;
schemes = false;
variants = false;
wallpapers = false;
};
showOnHover = false;
favouriteApps = [];
hiddenApps = [];
};
lock = {
recolourLogo = false; # what's that
hideNotifs = false;
};
notifs = {
actionOnClick = false;
clearThreshold = 0.3;
defaultExpireTimeout = 5000;
expantThreshold = 20;
openeExpanded = false;
expire = false;
};
osd = { # whats that
enabled = true;
enableBrightness = true;
enableMicrophone = false;
hideDelay = 2000;
};
paths = {
mediaGif = "root:/assets/bongocat.gif";
sessionGif = "root:/assets/kurukuru.gif";
noNotifsPic = "root:/assets/dino.png";
lockNoNotifsPic = "root:/assets/dino.png";
wallpaperDir = "~/Pictures/Wallpapers";
lyricsDir = "~/Music/lyrics";
};
services = {
audioIncrement = 0.1;
brightnessIncrement = 0.1;
maxVolume = 1.0;
defaultPlayer = "Spotify";
gpuType = "";
#playerAliases: [ { "from": "com.github.th_ch.youtube_music", "to": "YT Music" } ]; # how to put this into nix language?
weatherLocation = "";
useFahrenheit = false;
useFahrenheitPerformance = false;
useTwelveHourClock = false;
smartScheme = true;
visualisersBars = 45;
};
session = {
dragThreshold = 30; # what does dragThreshold do?
enabled = true;
vimKeybinds = false; # maybe set to true?
icons = {
logout = "logout";
shutdown = "power_settings_new";
hibernate = "downloading"; # find a better icon
reboot = "cached";
};
commands = {
logout = [ "loginctl" "terminate-user" ];
shutdown = [ "systemctl" "poweroff" ];
hibernate = [ "systemctl" "hibernate" ];
reboot = [ "systemctl" "reboot" ];
};
};
sidebar = {
dragThreshold = 80;
enabled = true;
};
# is there a way to get some system info?
utilities = {
enabled = true;
maxToasts = 4; # what's that?
toasts = {
audioInputChanged = true;
audioOutputChanged = true;
capsLockChanged = true;
chargingChanged = true;
configLoaded = true;
dndChanged = true;
gameModeChanged = true;
kbLayoutChanged = true;
kbLimit = true;
numLockChanged = true;
vpnChanged = true;
nowPlaying = false;
};
};
vpn = {
enabled = false; # default true
provider = [
{
# default example-configuration
name = "wireguard";
interface = "your-connection-name";
displayName = "wireguard (Your VPN)";
enabled = false;
}
];
};
quickToggles = [
{
id = "wifi";
enabled = true;
}
{
id = "bluetooth";
enabled = true;
}
{
id = "mic";
enabled = true;
}
{
id = "settings";
enabled = true; # should desactivate
}
{
id = "gameMode";
enabled = true; # should remap my performance mode
}
{
id = "dnd"; # what's that?
enabled = true;
}
{
id = "vpn";
enabled = false; # default true;
}
];
};
cli = {
enable = true; # Also add caelestia-cli to path
settings = {
theme.enableGtk = true;
};
};
};
}
+16 -9
View File
@@ -72,7 +72,8 @@ in {
# █▄▀ █▀▀ █▄█ █▄▄ █ █▄░█ █▀▄ █ █▄░█ █▀▀ █▀
# █░█ ██▄ ░█░ █▄█ █ █░▀█ █▄▀ █ █░▀█ █▄█ ▄█
# binds to do
# caelestia shell drawers toggle dashboard
# caelestia shell drawers toggle utilities
bind = [
#hyprland/utility keybindings
@@ -109,7 +110,8 @@ in {
"$mod+Shift, 0, movetoworkspace, 10"
"$mod+Ctrl+Alt, Right, movetoworkspace, r+1"
"$mod+Ctrl+Alt, Left, movetoworkspace, r-1"
"$mod, Backspace, exec, wlogout -b 4 -T 600 -B 600"
#"$mod, Backspace, exec, wlogout -b 4 -T 600 -B 600"
"$mod, Backspace, exec, caelestia shell drawers toggle session"
"$mod+Shift+Ctrl, Left, movewindow, l"
"$mod+Shift+Ctrl, Right, movewindow, r"
"$mod+Shift+Ctrl, Up, movewindow, u"
@@ -129,25 +131,30 @@ in {
"$mod, E, exec, $file"
"$mod, F, exec, $browser"
"$mod, N, exec, $notes"
"$mod+Shift, A, exec, rofi -show drun"
#"$mod+Shift, A, exec, rofi -show drun"
"$mod+Shift, A, exec, caelestia shell drawers toggle launcher"
"$mod, Q, exec, custom-dontkillsteam"
#"Ctrl+Alt, W, exec, pkill waybar || waybar"
"$mod, L, exec, swaylock -eFLK -i ${wallpaper}"
"Ctrl+Alt, W, exec, caelestia shell drawers toggle sidebar"
#"$mod, L, exec, swaylock -eFLK -i ${wallpaper}"
"$mod, L, exec, caelestia shell lock lock"
#"$mod, F11, exec, hyprshot -m window"
#", F11, exec, hyprshot -m output"
", F11, exec, caelestia screenshot"
#"$mod_SHIFT, S, exec, hyprshot -m region --clipboard only"
"$mod_SHIFT, S, exec, qs ipc call screenshot toggle"
# "$mod_SHIFT, S, exec, qs ipc call screenshot toggle"
"$mod_SHIFT, S, exec, caelestia shell picker open"
# framework 16 rgb macropad
"Ctrl+$mod, 6, exec, custom-killall" # pos 1 1 killall apps except focused one
"Ctrl+Alt, 7, exec, custom-performance" # pos 2 1 start performance mode
# reloads the autostart programs # pos 3 1
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=16 -e sh -c 'custom-weather'"
# we passed to caelestia-shell and stoped using that
/*"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=16 -e sh -c 'custom-weather'"
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=11 -e sh -c 'custom-cowsay'"
"Ctrl+$mod, 4, exec, kitty -e 'custom-launch'"
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=5 -e btm --theme gruvbox --disable-click --disable_advanced_kill --enable_cache_memory -g -R -T "
"Ctrl+$mod, 4, exec, sleep 1 && kitty -o font_size=1 -e sh -c 'cmatrix -br'"
#"Ctrl+Alt, 1, exec, swaync-client -t" # pos 4 1 notification center
"Ctrl+Alt, 1, exec, qs ipc call notifications toggle"
#"Ctrl+Alt, 1, exec, swaync-client -t" # pos 4 1 notification center
"Ctrl+Alt, 1, exec, qs ipc call notifications toggle" */
"Ctrl+$mod, 3, exec, pavucontrol" # pos 1 2 audiocontrol
"Ctrl+$mod, 5, exec, gnome-characters" # pos 2 2 special chars
"Ctrl+Alt, 8, exec, hyprpicker | tee >(wl-copy) | cliphist store" # pos 3 2 colorpicker
+1
View File
@@ -0,0 +1 @@
no longer used. I migrated to caelestia-shell