Evie Litherland-Smith
2a42c14fb5
Switch remaining catppuccin to tokyonight, using stylix to generate GTK theme now Switch SDDM for LightDM (uses stylix theme), enable plymouth boot splashscreen Make Hyprland window rules (not launch binds) silent now
286 lines
9.6 KiB
Nix
286 lines
9.6 KiB
Nix
{ config, pkgs, ... }:
|
|
let cursorSize = 24;
|
|
in ''
|
|
source = ./extra.conf
|
|
monitor=,preferred,auto,auto
|
|
|
|
exec-once = hyprctl setcursor ${config.gtk.cursorTheme.name} ${
|
|
toString cursorSize
|
|
}
|
|
|
|
env = XDG_CURRENT_DESKTOP=Hyprland
|
|
env = XDG_SESSION_TYPE=wayland
|
|
env = XDG_SESSION_DESKTOP=Hyprland
|
|
env = GDK_BACKEND=wayland,x11
|
|
env = GTK_THEME,${config.gtk.theme.name}
|
|
env = XCURSOR_THEME,${config.gtk.cursorTheme.name}
|
|
env = XCURSOR_SIZE,${toString cursorSize}
|
|
env = QT_AUTO_SCREEN_SCALE_FACTOR,1
|
|
env = QT_QPA_PLATFORM,wayland
|
|
env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1
|
|
env = MOZ_ENABLE_WAYLAND,1
|
|
env = DOOMLOCALDIR=${config.home.sessionVariables.DOOMLOCALDIR};
|
|
env = DOOMPROFILELOADFILE=${config.home.sessionVariables.DOOMPROFILELOADFILE};
|
|
|
|
misc {
|
|
disable_autoreload = true
|
|
vrr = 2
|
|
}
|
|
|
|
gestures {
|
|
workspace_swipe = true
|
|
}
|
|
|
|
input {
|
|
kb_layout = gb
|
|
follow_mouse = 1
|
|
touchpad {
|
|
natural_scroll = yes
|
|
}
|
|
}
|
|
|
|
general {
|
|
gaps_in = 5
|
|
gaps_out = 10
|
|
border_size = 1
|
|
cursor_inactive_timeout = 5
|
|
layout = master
|
|
}
|
|
|
|
dwindle {
|
|
force_split = 2
|
|
preserve_split = true
|
|
}
|
|
|
|
master {
|
|
mfact = 0.55
|
|
new_is_master = true
|
|
new_on_top = true
|
|
no_gaps_when_only = 0
|
|
orientation = left
|
|
}
|
|
|
|
decoration {
|
|
rounding = 10
|
|
drop_shadow = yes
|
|
shadow_ignore_window = true
|
|
shadow_range = 4
|
|
shadow_render_power = 3
|
|
blur {
|
|
enabled = true
|
|
size = 5
|
|
passes = 3
|
|
new_optimizations = true
|
|
brightness = 1.0
|
|
noise = 0.02
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|
|
|
|
XWayland {
|
|
force_zero_scaling = true
|
|
}
|
|
|
|
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
|
bind = SUPER, F1, exec, ${pkgs.gtklock}/bin/gtklock
|
|
bind = SUPER, Q, killactive,
|
|
bind = SUPER SHIFT, Q, exec, wlogout
|
|
bind = SUPER, V, togglefloating
|
|
bind = SUPER, M, fullscreen, 0
|
|
bind = SUPER SHIFT, M, fullscreen, 1
|
|
bind = SUPER, P, exec, pkill rofi || rofi-pass
|
|
bind = SUPER SHIFT, P, exec, pkill rofi || rofi-pass --last-used
|
|
bind = SUPER, X, exec, swaync-client -t
|
|
|
|
# Common program shortcuts
|
|
bind = SUPER, Space, exec, pkill anyrun || anyrun
|
|
bind = SUPER, Return, exec, alacritty
|
|
bind = SUPER SHIFT, Return, exec, [float] alacritty
|
|
|
|
bind = SUPER ALT, T, exec, [workspace 1] alacritty
|
|
bind = SUPER ALT, D, exec, [workspace 2] emacs
|
|
bind = SUPER ALT, W, exec, [workspace 3] firefox
|
|
bind = SUPER ALT, A, exec, [workspace 4] alacritty -e khal interactive
|
|
bind = SUPER ALT, F, exec, [workspace 5] alacritty -e mc
|
|
bind = SUPER ALT, S, exec, [workspace 6] alacritty -e ncspot
|
|
bind = SUPER ALT, C, exec, [workspace 7] ferdium
|
|
bind = SUPER ALT, R, exec, [workspace 8] remmina
|
|
bind = SUPER ALT, G, exec, [workspace 9] steam
|
|
|
|
# Misc useful binds
|
|
bind=,Print,exec,${pkgs.grim}/bin/grim -g "$(${pkgs.slurp}/bin/slurp)"
|
|
bind=,XF86Calculator,exec,pkill anyrun || anyrun
|
|
|
|
# Sound
|
|
bindl=,XF86AudioMute,exec,${pkgs.swayosd}/bin/swayosd --output-volume=mute-toggle
|
|
bindl=,XF86AudioMicMute,exec,${pkgs.swayosd}/bin/swayosd --input-volume=mute-toggle
|
|
bindle=,XF86AudioRaiseVolume,exec,${pkgs.swayosd}/bin/swayosd --output-volume=+5
|
|
bindle=,XF86AudioLowerVolume,exec,${pkgs.swayosd}/bin/swayosd --output-volume=-5
|
|
|
|
# Brightness
|
|
bindle=,XF86MonBrightnessUp,exec,${pkgs.swayosd}/bin/swayosd --brightness=+5
|
|
bindle=,XF86MonBrightnessDown,exec,${pkgs.swayosd}/bin/swayosd --brightness=-5
|
|
|
|
# Playback
|
|
bindl=,XF86AudioPlay,exec,${pkgs.playerctl}/bin/playerctl play-pause
|
|
bindl=,XF86AudioStop,exec,${pkgs.playerctl}/bin/playerctl play-pause
|
|
bindl=,XF86AudioPrev,exec,${pkgs.playerctl}/bin/playerctl previous
|
|
bindl=,XF86AudioNext,exec,${pkgs.playerctl}/bin/playerctl next
|
|
|
|
bind = SUPER, H, movefocus, l
|
|
bind = SUPER, L, movefocus, r
|
|
bind = SUPER, K, movefocus, u
|
|
bind = SUPER, J, movefocus, d
|
|
bind = SUPER SHIFT, H, movewindow, l
|
|
bind = SUPER SHIFT, L, movewindow, r
|
|
bind = SUPER SHIFT, K, movewindow, u
|
|
bind = SUPER SHIFT, J, movewindow, d
|
|
|
|
# Layer rules
|
|
$layers = ^(ironbar|waybar|system-menu|anyrun|gtk-layer-shell|swaync-.+)$
|
|
layerrule = blur, $layers
|
|
# layerrule = ignorezero, $layers
|
|
layerrule = ignorealpha 0.5, $layers
|
|
layerrule = xray 1, ^(ironbar|waybar|bar|gtk-layer-shell)$
|
|
|
|
# Window rules
|
|
windowrule = xray 1,(alacritty)
|
|
windowrule = float,(org.kde.polkit-kde-authentication-agent-1)
|
|
windowrule = center,(org.kde.polkit-kde-authentication-agent-1)
|
|
windowrule = pin,(org.kde.polkit-kde-authentication-agent-1)
|
|
windowrule = dimaround,(org.kde.polkit-kde-authentication-agent-1)
|
|
windowrule = stayfocused,(org.kde.polkit-kde-authentication-agent-1)
|
|
windowrule = float,(pavucontrol)
|
|
windowrule = size 800 600,(pavucontrol)
|
|
windowrule = move 100%-820 10%,(pavucontrol)
|
|
windowrule = float,(.blueman-manager-wrapped)
|
|
windowrule = size 800 600,(.blueman-manager-wrapped)
|
|
windowrule = move 100%-820 10%,(.blueman-manager-wrapped)
|
|
windowrule = float,(nm-connection-editor)
|
|
windowrule = size 800 600,(nm-connection-editor)
|
|
windowrule = move 100%-820 10%,(nm-connection-editor)
|
|
windowrule = float,(.protonvpn-wrapped)
|
|
windowrule = center,(.protonvpn-wrapped)
|
|
windowrule = float,(Pinentry)
|
|
windowrule = center,(Pinentry)
|
|
windowrule = float,(thunar)
|
|
windowrule = center,(thunar)
|
|
windowrule = float,(davmail-imap-ImapConnection)
|
|
windowrule = center,(davmail-imap-ImapConnection)
|
|
windowrule = float,(wlogout)
|
|
windowrule = center,(wlogout)
|
|
windowrule = nofullscreenrequest,(wlogout)
|
|
windowrule = nomaximizerequest,(wlogout)
|
|
windowrule = size 75% 75%,(wlogout)
|
|
windowrule = pin,(wlogout)
|
|
windowrule = dimaround,(wlogout)
|
|
windowrule = stayfocused,(wlogout)
|
|
windowrule = pin,(Rofi)
|
|
windowrule = dimaround,(Rofi)
|
|
windowrule = stayfocused,(Rofi)
|
|
windowrulev2 = float,title:(File|Picture-in-Picture),class:(firefox)
|
|
windowrulev2 = pin,title:(File|Picture-in-Picture),class:(firefox)
|
|
windowrulev2 = workspace special silent, title:^(Firefox — Sharing Indicator)$
|
|
windowrulev2 = workspace special silent, title:^(.*is sharing (your screen|a window)\.)$
|
|
windowrulev2 = float,title:(Open),class:(soffice)
|
|
windowrulev2 = float,class:(steam),title:(Friends List)
|
|
windowrulev2 = float,class:(steam),title:(Steam Settings)
|
|
|
|
# Workspace definitions
|
|
# 1: [t]erminal
|
|
bind = SUPER, T, moveworkspacetomonitor, 1 current
|
|
bind = SUPER, T, workspace, 1
|
|
bind = SUPER SHIFT, T, movetoworkspace, 1
|
|
|
|
# 2: [d]ev
|
|
bind = SUPER, D, moveworkspacetomonitor, 2 current
|
|
bind = SUPER, D, workspace, 2
|
|
bind = SUPER SHIFT, D, movetoworkspace, 2
|
|
windowrule = workspace 2 silent,(emacs)
|
|
|
|
# 3: [b]rowser
|
|
bind = SUPER, W, moveworkspacetomonitor, 3 current
|
|
bind = SUPER, W, workspace, 3
|
|
bind = SUPER SHIFT, W, movetoworkspace, 3
|
|
windowrule = workspace 3 silent,(firefox)
|
|
|
|
# 4: [a]genda (or c[a]lendar)
|
|
bind = SUPER, A, moveworkspacetomonitor, 4 current
|
|
bind = SUPER, A, workspace, 4
|
|
bind = SUPER SHIFT, A, movetoworkspace, 4
|
|
windowrulev2 = workspace 5 silent,class:(Alacritty),title:(khal interactive)
|
|
|
|
# 5: [f]iles
|
|
bind = SUPER, F, moveworkspacetomonitor, 5 current
|
|
bind = SUPER, F, workspace, 5
|
|
bind = SUPER SHIFT, F, movetoworkspace, 5
|
|
windowrule = workspace 5 silent,^(libreoffice).*
|
|
windowrulev2 = workspace 5 silent,title:(Open),class:(soffice)
|
|
|
|
# 6: [s]potify (or mu[s]ic)
|
|
bind = SUPER, S, moveworkspacetomonitor, 6 current
|
|
bind = SUPER, S, workspace, 6
|
|
bind = SUPER SHIFT, S, movetoworkspace, 6
|
|
windowrulev2 = workspace 6 silent,class:(Alacritty),title:(ncspot)
|
|
|
|
# 7: [c]hat
|
|
bind = SUPER, C, moveworkspacetomonitor, 7 current
|
|
bind = SUPER, C, workspace, 7
|
|
bind = SUPER SHIFT, C, movetoworkspace, 7
|
|
windowrule = workspace 7 silent,(Signal)
|
|
windowrule = workspace 7 silent,(fractal)
|
|
windowrule = workspace 7 silent,(Ferdium)
|
|
|
|
# 8: [r]emote
|
|
bind = SUPER, R, moveworkspacetomonitor, 8 current
|
|
bind = SUPER, R, workspace, 8
|
|
bind = SUPER SHIFT, R, movetoworkspace, 8
|
|
windowrule = workspace 8 silent,(org.remmina.Remmina)
|
|
windowrule = workspace 8 silent,(Nxplayer.bin)
|
|
windowrule = nofullscreenrequest,(Nxplayer.bin)
|
|
windowrule = nomaximizerequest,(Nxplayer.bin)
|
|
|
|
# 9: [g]aming
|
|
bind = SUPER, G, moveworkspacetomonitor, 9 current
|
|
bind = SUPER, G, workspace, 9
|
|
bind = SUPER SHIFT, G, movetoworkspace, 9
|
|
windowrule = workspace 9 silent,(steam)
|
|
|
|
# Special workspaces
|
|
bind = SUPER, comma, workspace, m-1
|
|
bind = SUPER SHIFT, comma, movetoworkspace, r-1
|
|
bind = SUPER, period, workspace, m+1
|
|
bind = SUPER SHIFT, period, movetoworkspace, r+1
|
|
bind = SUPER, N, workspace, empty
|
|
bind = SUPER SHIFT, N, movetoworkspace, empty
|
|
bind = SUPER, minus, togglespecialworkspace
|
|
bind = SUPER SHIFT, minus, movetoworkspace, special
|
|
bind = SUPER, tab, workspace, previous
|
|
bind = SUPER SHIFT, tab, movetoworkspace, previous
|
|
bind = SUPER, bracketright, focusmonitor, +1
|
|
bind = SUPER SHIFT, bracketright, movecurrentworkspacetomonitor, +1
|
|
bind = SUPER, bracketleft, focusmonitor, -1
|
|
bind = SUPER SHIFT, bracketleft, movecurrentworkspacetomonitor, -1
|
|
bind = SUPER, U, focusurgentorlast
|
|
|
|
# Move/resize windows with mainMod + LMB/RMB and dragging
|
|
bindm = SUPER, mouse:272, movewindow
|
|
bindm = SUPER, mouse:273, resizewindow
|
|
|
|
exec-once = ${pkgs.swaynotificationcenter}/bin/swaync
|
|
exec-once = ${pkgs.hyprpaper}/bin/hyprpaper
|
|
exec-once = ${pkgs.dex}/bin/dex --autostart
|
|
exec-once = ferdium
|
|
exec-once = kidex
|
|
''
|