clean desktop.nix with force=true on ghostty+zellij, source=hyprland.conf, numeric waybar icons
This commit is contained in:
parent
00dcea8448
commit
49de6db354
1 changed files with 34 additions and 183 deletions
217
home/desktop.nix
217
home/desktop.nix
|
|
@ -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 ===
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue