clean desktop.nix with force=true on ghostty+zellij, source=hyprland.conf, numeric waybar icons

This commit is contained in:
Scott Scoble 2026-05-16 21:49:30 -07:00
parent 00dcea8448
commit 49de6db354

View file

@ -69,172 +69,16 @@
# === Hyprland WM config === # === Hyprland WM config ===
home.file.".config/hypr/hyprland.conf" = { home.file.".config/hypr/hyprland.conf" = {
force = true; force = true;
text = '' source = ./hyprland.conf;
monitor=,preferred,auto,1
# Environment
env = XCURSOR_SIZE,24
env = XCURSOR_THEME,Bibata-Modern-Classic
env = GTK_THEME,adw-gtk3-dark
env = QT_QPA_PLATFORMTHEME,gtk2
# Autostart
exec-once = waybar
exec-once = dunst
exec-once = wl-paste --type text --watch cliphist store
exec-once = wl-paste --type image --watch cliphist store
exec-once = hypridle
# Input
input {
kb_layout = us
kb_options = caps:escape
follow_mouse = 1
sensitivity = 0
}
input:touchpad {
natural_scroll = true
tap-to-click = true
}
# Visual
general {
gaps_in = 6; gaps_out = 8; border_size = 2
col.active_border = rgba(8ebdffee) rgba(8ebdffff) rgba(8ebdffee) rgba(8ebdffff) 45deg
col.inactive_border = rgba(333333aa)
layout = dwindle
}
decoration {
rounding = 8
blur { enabled = true; size = 5; passes = 2; }
drop_shadow = true; shadow_range = 12; shadow_render_power = 2
col.shadow = rgba(1a1a1aee)
}
animations {
enabled = true
bezier = easeOutQuint,0.23,1,0.32,1
bezier = easeInOutCubic,0.65,0.05,0.36,1
animation = windows,1,7,easeOutQuint,slide
animation = windowsOut,1,7,easeInOutCubic,slide
animation = fade,1,7,easeOutQuint
animation = workspaces,1,4,easeOutQuint,fade
}
# Workspaces
workspace = 1, name:shell, persistent:true
workspace = 2, name:code, persistent:true
workspace = 3, name:web, persistent:true
workspace = 4, name:chat, persistent:true
workspace = 5, name:vault, persistent:true
workspace = 6, name:media
workspace = 7, name:7
workspace = 8, name:8
workspace = 9, name:9
workspace = 10, name:sys
# Keybinds
$mainMod = SUPER
# Launch
bind = $mainMod, Return, exec, ghostty -e zellij
bind = $mainMod SHIFT, Return, exec, ghostty
bind = $mainMod, B, exec, firefox
bind = $mainMod, D, exec, rofi -show drun -show-icons
bind = $mainMod, Space, exec, rofi -show drun -show-icons
bind = $mainMod, V, exec, cliphist list | rofi -dmenu | cliphist decode | wl-copy
bind = $mainMod, N, exec, thunar
bind = $mainMod, L, exec, hyprlock
# Window control
bind = $mainMod, Q, killactive
bind = $mainMod, F, fullscreen
bind = $mainMod, G, togglefloating
bind = $mainMod, P, pseudo
bind = $mainMod, T, pin
# Focus (Vim-style)
bind = $mainMod, H, movefocus, l
bind = $mainMod, J, movefocus, d
bind = $mainMod, K, movefocus, u
bind = $mainMod, L, movefocus, r
# Move windows
bind = $mainMod SHIFT, H, movewindow, l
bind = $mainMod SHIFT, J, movewindow, d
bind = $mainMod SHIFT, K, movewindow, u
bind = $mainMod SHIFT, L, movewindow, r
# Resize
bind = $mainMod CTRL, H, resizeactive, -40 0
bind = $mainMod CTRL, J, resizeactive, 0 40
bind = $mainMod CTRL, K, resizeactive, 0 -40
bind = $mainMod CTRL, L, resizeactive, 40 0
# Workspace switching
bind = $mainMod, 1, workspace, name:shell
bind = $mainMod, 2, workspace, name:code
bind = $mainMod, 3, workspace, name:web
bind = $mainMod, 4, workspace, name:chat
bind = $mainMod, 5, workspace, name:vault
bind = $mainMod, 6, workspace, name:media
bind = $mainMod, 7, workspace, name:7
bind = $mainMod, 8, workspace, name:8
bind = $mainMod, 9, workspace, name:9
bind = $mainMod, 0, workspace, name:sys
# Move to workspace
bind = $mainMod SHIFT, 1, movetoworkspace, name:shell
bind = $mainMod SHIFT, 2, movetoworkspace, name:code
bind = $mainMod SHIFT, 3, movetoworkspace, name:web
bind = $mainMod SHIFT, 4, movetoworkspace, name:chat
bind = $mainMod SHIFT, 5, movetoworkspace, name:vault
bind = $mainMod SHIFT, 6, movetoworkspace, name:media
bind = $mainMod SHIFT, 7, movetoworkspace, name:7
bind = $mainMod SHIFT, 8, movetoworkspace, name:8
bind = $mainMod SHIFT, 9, movetoworkspace, name:9
bind = $mainMod SHIFT, 0, movetoworkspace, name:sys
# Scroll workspace
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Screenshot
bind = $mainMod, S, exec, grim -g "$(slurp)" - | swappy -f -
bind = $mainMod SHIFT, S, exec, grim - | swappy -f -
# Media keys
bindel = , XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+
bindel = , XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindl = , XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
bindel = , XF86MonBrightnessUp, exec, brightnessctl set 5%+
bindel = , XF86MonBrightnessDown, exec, brightnessctl set 5%-
# Session
bind = $mainMod SHIFT, Q, exec, hyprctl dispatch exit
bind = $mainMod SHIFT, R, exec, hyprctl reload
exec-once = awww img ~/wallpapers/default.jpg
# Window rules
windowrulev2 = float, class:(pavucontrol)
windowrulev2 = float, class:(firefox), title:PIP
windowrulev2 = float, title:(Authentication Required)
windowrulev2 = size 75% 75%,class:(pavucontrol)
# Auto-send to workspaces
windowrulev2 = workspace name:code, class:(code-oss|Code|jetbrains-.*|nvim)
windowrulev2 = workspace name:web, class:(firefox|chromium-browser|google-chrome)
windowrulev2 = workspace name:chat, class:(discord|Slack|TelegramDesktop)
windowrulev2 = workspace name:shell, class:(ghostty|Zellij|Alacritty)
'';
}; };
# === Ghostty config === # === Ghostty config ===
home.file.".config/ghostty/config".text = '' home.file.".config/ghostty/config" = {
force = true;
text = ''
font-family = JetBrainsMono Nerd Font font-family = JetBrainsMono Nerd Font
font-size = 13 font-size = 13
theme = catppuccin-mocha theme = Catppuccin Mocha
background-opacity = 0.9 background-opacity = 0.9
window-padding-x = 8 window-padding-x = 8
window-padding-y = 4 window-padding-y = 4
@ -243,9 +87,12 @@
shell-integration = zsh shell-integration = zsh
gtk-single-instance = true gtk-single-instance = true
''; '';
};
# === Zellij config === # === Zellij config ===
home.file.".config/zellij/config.kdl".text = '' home.file.".config/zellij/config.kdl" = {
force = true;
text = ''
theme "catppuccin-mocha" theme "catppuccin-mocha"
default_shell "zsh" default_shell "zsh"
pane_frames false pane_frames false
@ -275,6 +122,7 @@
} }
} }
''; '';
};
# === Hyprlock === # === Hyprlock ===
home.file.".config/hypr/hyprlock.conf".text = '' home.file.".config/hypr/hyprlock.conf".text = ''
@ -303,38 +151,41 @@
''; '';
# === Waybar config === # === Waybar config ===
home.file.".config/waybar/config.jsonc".text = builtins.toJSON { home.file.".config/waybar/config.jsonc" = {
layer = "top"; position = "top"; height = 32; spacing = 4; margin = "6 8 0 8"; force = true;
modules-left = [ "hyprland/workspaces" ]; text = builtins.toJSON {
modules-center = [ "clock" ]; layer = "top"; position = "top"; height = 32; spacing = 4; margin = "6 8 0 8";
modules-right = [ "tray" "pulseaudio" "backlight" "battery" "network" "cpu" "memory" ]; modules-left = [ "hyprland/workspaces" ];
modules-center = [ "clock" ];
modules-right = [ "tray" "pulseaudio" "backlight" "battery" "network" "cpu" "memory" ];
"hyprland/workspaces" = { "hyprland/workspaces" = {
format = "{icon}"; format = "{icon}";
format-icons = { format-icons = {
shell = "󰆍"; code = "󰨞"; web = "󰖟"; chat = "󰭻"; vault = "󰠮"; "1" = "󰆍"; "2" = "󰨞"; "3" = "󰖟"; "4" = "󰭻"; "5" = "󰠮";
media = "󰎆"; "7" = "󰎇"; "8" = "󰎈"; "9" = "󰎉"; sys = "󰒓"; default = "󰊌"; media = "󰎆"; "7" = "󰎇"; "8" = "󰎈"; "9" = "󰎉"; sys = "󰒓"; default = "󰊌";
}; };
persistent_workspaces = { "1" = ["shell"]; "2" = ["code"]; "3" = ["web"]; "4" = ["chat"]; "5" = ["vault"]; }; persistent_workspaces = { "1" = []; "2" = []; "3" = []; "4" = []; "5" = []; };
}; };
clock = { format = "{:%a %b %d %H:%M}"; tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"; }; clock = { format = "{:%a %b %d %H:%M}"; tooltip-format = "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>"; };
cpu = { format = " {usage}%"; }; cpu = { format = " {usage}%"; };
memory = { format = "󰍛 {}%"; }; memory = { format = "󰍛 {}%"; };
backlight = { format = "{icon} {percent}%"; format-icons = [ "󰃝" "󰃞" "󰃟" "󰃠" ]; }; backlight = { format = "{icon} {percent}%"; format-icons = [ "󰃝" "󰃞" "󰃟" "󰃠" ]; };
battery = { battery = {
format = "{icon} {capacity}%"; format = "{icon} {capacity}%";
format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ]; format-icons = [ "󰁺" "󰁻" "󰁼" "󰁽" "󰁾" "󰁿" "󰂀" "󰂁" "󰂂" "󰁹" ];
format-charging = "󰂄 {capacity}%"; format-charging = "󰂄 {capacity}%";
}; };
network = { network = {
format-wifi = "󰖩 {signalStrength}%"; format-ethernet = "󰈀"; format-disconnected = "⚠"; format-wifi = "󰖩 {signalStrength}%"; format-ethernet = "󰈀"; format-disconnected = "⚠";
tooltip-format = "{ifname} via {gwaddr}"; tooltip-format = "{ifname} via {gwaddr}";
}; };
pulseaudio = { pulseaudio = {
format = "{icon} {volume}%"; format-bluetooth = "{icon}󰂯 {volume}%"; format-muted = "󰝟"; format = "{icon} {volume}%"; format-bluetooth = "{icon}󰂯 {volume}%"; format-muted = "󰝟";
format-icons.default = [ "󰕿" "󰖀" "󰕾" ]; on-click = "pavucontrol"; format-icons.default = [ "󰕿" "󰖀" "󰕾" ]; on-click = "pavucontrol";
}; };
tray.spacing = 10; tray.spacing = 10;
};
}; };
# === Waybar style === # === Waybar style ===