diff --git a/home/desktop.nix b/home/desktop.nix index 2b7b652..a0dda6f 100644 --- a/home/desktop.nix +++ b/home/desktop.nix @@ -70,23 +70,21 @@ home.file.".config/hypr/hyprland.conf" = { force = true; text = '' + debug { disable_logs = false; } + 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 @@ -99,19 +97,30 @@ 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 + gaps_in = 6 + gaps_out = 8 + border_size = 2 + col.active_border = rgba(8ebdffee) rgba(8ebdffff) rgba(8ebdffee) rgba(8ebdffff) 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) + blur { + enabled = true + size = 5 + passes = 2 + } + shadow { + enabled = true + range = 12 + render_power = 2 + color = rgba(1a1a1aee) + } } + animations { enabled = true bezier = easeOutQuint,0.23,1,0.32,1 @@ -122,23 +131,20 @@ 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 + workspace = 1, persistent:true + workspace = 2, persistent:true + workspace = 3, persistent:true + workspace = 4, persistent:true + workspace = 5, persistent:true + workspace = 6 + workspace = 7 + workspace = 8 + workspace = 9 + workspace = 10 - # Keybinds $mainMod = SUPER - # Launch - bind = $mainMod, Return, exec, ghostty -e zellij + bind = $mainMod, Return, exec, hyprctl dispatch workspace 1; ghostty -e zellij bind = $mainMod SHIFT, Return, exec, ghostty bind = $mainMod, B, exec, firefox bind = $mainMod, D, exec, rofi -show drun -show-icons @@ -146,89 +152,68 @@ 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, 1, workspace, 1 + bind = $mainMod, 2, workspace, 2 + bind = $mainMod, 3, workspace, 3 + bind = $mainMod, 4, workspace, 4 + bind = $mainMod, 5, workspace, 5 + bind = $mainMod, 6, workspace, 6 + bind = $mainMod, 7, workspace, 7 + bind = $mainMod, 8, workspace, 8 + bind = $mainMod, 9, workspace, 9 + bind = $mainMod, 0, workspace, 10 + bind = $mainMod SHIFT, 1, movetoworkspace, 1 + bind = $mainMod SHIFT, 2, movetoworkspace, 2 + bind = $mainMod SHIFT, 3, movetoworkspace, 3 + bind = $mainMod SHIFT, 4, movetoworkspace, 4 + bind = $mainMod SHIFT, 5, movetoworkspace, 5 + bind = $mainMod SHIFT, 6, movetoworkspace, 6 + bind = $mainMod SHIFT, 7, movetoworkspace, 7 + bind = $mainMod SHIFT, 8, movetoworkspace, 8 + bind = $mainMod SHIFT, 9, movetoworkspace, 9 + bind = $mainMod SHIFT, 0, movetoworkspace, 10 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) + windowrule = match:class ^(pavucontrol)$, float on + windowrule = match:class ^(firefox)$, match:title PIP, float on + windowrule = match:title ^(Authentication Required)$, float on + windowrule = match:class ^(pavucontrol)$, size 75% 75% + windowrule = match:class ^(code-oss|Code|jetbrains-.*|nvim)$, workspace 2 + windowrule = match:class ^(firefox|chromium-browser|google-chrome)$, workspace 3 + windowrule = match:class ^(discord|Slack|TelegramDesktop)$, workspace 4 + windowrule = match:class ghostty, workspace 1 + ''; }; + }; # === Ghostty config === home.file.".config/ghostty/config" = { force = true; text = ''