nixos/home/desktop/hyprland.nix
Evie Litherland-Smith af10a9346e Make hyprland workspaces more program focused
Change bindings and name convention to decouple workspaces from ID
number and focus more on what the workspace is used for
TODO proper window rules
2023-06-28 16:20:02 +01:00

221 lines
6.2 KiB
Nix

{
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, default:true
workspace = name:browser
workspace = name:files
workspace = name:chat
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 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 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
'';
}