{ pkgs, lib, ... }: { imports = [ ./swaylock.nix ./waybar.nix ./gtk.nix ./dunst.nix ./rofi.nix ]; programs.firefox.package = pkgs.firefox-wayland; programs.rofi.package = pkgs.rofi-wayland; wayland.windowManager.hyprland = { enable = true; package = null; # Use package from nixpkgs xwayland = { enable = true; hidpi = true; }; extraConfig = lib.mkDefault ''source=./common.conf ''; }; xdg.configFile."hypr/common.conf".text = '' monitor = ,preferred,auto,auto exec-once = waybar & hyprpaper & dunst source = ./macchiato.conf env = XDG_CURRENT_DESKTOP=Hyprland env = XDG_SESSION_TYPE=wayland env = XDG_SESSION_DESKTOP=Hyprland env = GDK_BACKEND=wayland,x11 env = GTK_THEME,Sweet-Dark env = XCURSOR_THEME,Catppuccin-Macchiato-Dark-Cursors env = XCURSOR_SIZE,24 input { kb_layout = gb follow_mouse = 1 touchpad { natural_scroll = yes } } general { gaps_in = 5 gaps_out = 20 border_size = 2 col.active_border = $mauve col.group_border_active = $mauve col.inactive_border = $surface2 col.group_border = $surface2 layout = dwindle } dwindle { force_split = 2 preserve_split = true } decoration { rounding = 10 blur = yes blur_size = 5 blur_passes = 3 blur_new_optimizations = on blur_xray = off drop_shadow = yes shadow_range = 4 shadow_render_power = 3 col.shadow = $base } animations { enabled = yes bezier = myBezier, 0.05, 0.9, 0.1, 1.05 animation = windows, 1, 7, myBezier animation = windowsOut, 1, 7, default, popin 80% animation = border, 1, 10, default animation = borderangle, 1, 8, default animation = fade, 1, 7, default animation = workspaces, 1, 6, default } # See https://wiki.hyprland.org/Configuring/Keywords/ for more bind = ALT, Return, exec, wezterm bind = ALT, Space, exec, pkill rofi || rofi -show drun bind = ALT, Q, killactive, bind = ALT, P, exec, swaylock bind = ALT, M, fullscreen, 0 bind = ALT SHIFT, M, fullscreen, 1 bind = ALT SHIFT, P, exec, powermenu bind = ALT SHIFT, Space, togglefloating, bind = , Print, exec, grim -g "$(slurp)" bind = , XF86AudioMute, exec, pamixer -t binde = , XF86AudioRaiseVolume, exec, pamixer -i 2 binde = , XF86AudioLowerVolume, exec, pamixer -d 2 bind = ALT, H, movefocus, l bind = ALT, L, movefocus, r bind = ALT, K, movefocus, u bind = ALT, J, movefocus, d bind = ALT SHIFT, H, movewindow, l bind = ALT SHIFT, L, movewindow, r bind = ALT SHIFT, K, movewindow, u bind = ALT SHIFT, J, movewindow, d workspace = name:terminal workspace = name:browser workspace = name:files workspace = name:chat windowrule = workspace name:terminal, org.wezfurlong.wezterm windowrule = workspace name:browser, firefox windowrule = workspace name:files, thunar windowrule = workspace name:files, libreoffice.* windowrule = workspace name:chat, Signal windowrule = workspace name:chat, fractal bind = ALT, T, moveworkspacetomonitor, name:terminal current bind = ALT, T, workspace, name:terminal bind = ALT SHIFT, T, moveworkspacetomonitor, name:terminal current bind = ALT SHIFT, T, movetoworkspace, name:terminal bind = ALT, W, moveworkspacetomonitor, name:browser current bind = ALT, W, workspace, name:browser bind = ALT, W, exec, pgrep firefox > /dev/null || firefox bind = ALT SHIFT, W, moveworkspacetomonitor, name:browser current bind = ALT SHIFT, W, movetoworkspace, name:browser bind = ALT, F, moveworkspacetomonitor, name:files current bind = ALT, F, workspace, name:files bind = ALT, F, exec, pgrep thunar > /dev/null || thunar bind = ALT SHIFT, F, moveworkspacetomonitor, name:files current bind = ALT SHIFT, F, movetoworkspace, name:files bind = ALT, C, moveworkspacetomonitor, name:chat current bind = ALT, C, workspace, name:chat bind = ALT SHIFT, C, moveworkspacetomonitor, name:chat current bind = ALT SHIFT, C, movetoworkspace, name:chat bind = ALT, period, workspace, m+1 bind = ALT, comma, workspace, m-1 bind = ALT, bracketright, focusmonitor, +1 bind = ALT, bracketleft, focusmonitor, +1 bind = ALT, N, workspace, empty bind = ALT SHIFT, N, movetoworkspace, empty # Move/resize windows with mainMod + LMB/RMB and dragging bindm = ALT, mouse:272, movewindow bindm = ALT, mouse:273, resizewindow # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more windowrule = float, ^(foot)$ windowrule = center, ^(foot)$ windowrule = float, ^(pavucontrol)$ windowrule = center, ^(pavucontrol)$ windowrule = float, ^(.blueman-manager-wrapped)$ windowrule = center, ^(.blueman-manager-wrapped)$ windowrule = float, ^(otpclient)$ windowrule = move 2% 6%, ^(otpclient)$ windowrule = float, ^(thunar)$ ''; xdg.configFile."hypr/macchiato.conf".text = '' $rosewaterAlpha = f4dbd6 $flamingoAlpha = f0c6c6 $pinkAlpha = f5bde6 $mauveAlpha = c6a0f6 $redAlpha = ed8796 $maroonAlpha = ee99a0 $peachAlpha = f5a97f $yellowAlpha = eed49f $greenAlpha = a6da95 $tealAlpha = 8bd5ca $skyAlpha = 91d7e3 $sapphireAlpha = 7dc4e4 $blueAlpha = 8aadf4 $lavenderAlpha = b7bdf8 $textAlpha = cad3f5 $subtext1Alpha = b8c0e0 $subtext0Alpha = a5adcb $overlay2Alpha = 939ab7 $overlay1Alpha = 8087a2 $overlay0Alpha = 6e738d $surface2Alpha = 5b6078 $surface1Alpha = 494d64 $surface0Alpha = 363a4f $baseAlpha = 24273a $mantleAlpha = 1e2030 $crustAlpha = 181926 $rosewater = 0xfff5e0dc $flamingo = 0xfff2cdcd $pink = 0xfff5c2e7 $mauve = 0xffcba6f7 $red = 0xfff38ba8 $maroon = 0xffeba0ac $peach = 0xfffab387 $yellow = 0xfff9e2af $green = 0xffa6e3a1 $teal = 0xff94e2d5 $sky = 0xff89dceb $sapphire = 0xff74c7ec $blue = 0xff89b4fa $lavender = 0xffb4befe $text = 0xffcdd6f4 $subtext1 = 0xffbac2de $subtext0 = 0xffa6adc8 $overlay2 = 0xff9399b2 $overlay1 = 0xff7f849c $overlay0 = 0xff6c7086 $surface2 = 0xff585b70 $surface1 = 0xff45475a $surface0 = 0xff313244 $base = 0xff1e1e2e $mantle = 0xff181825 $crust = 0xff11111b ''; }