Evie Litherland-Smith
3ab21edc2c
Stylix sets color and font for waybar, custom config imports and uses those Update style with more consistent size, new look to the top and transparency (with blur of course) Slightly reduce gaps across whole UI to make better use of space without compromising looks Add TODO to restyle swaync using new method at some point...
290 lines
9.8 KiB
Nix
290 lines
9.8 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 = 2.5
|
|
gaps_out = 5
|
|
border_size = 1
|
|
cursor_inactive_timeout = 5
|
|
layout = master
|
|
}
|
|
|
|
dwindle {
|
|
force_split = 2
|
|
preserve_split = true
|
|
}
|
|
|
|
master {
|
|
mfact = 0.55
|
|
new_is_master = false
|
|
new_on_top = false
|
|
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,watershot
|
|
bind=,XF86Calculator,exec,pkill anyrun || anyrun
|
|
|
|
# Bind modifiers to show state using swayosd
|
|
bindl=,Num_lock,exec,${pkgs.swayosd}/bin/swayosd --num-lock
|
|
bindl=,Caps_lock,exec,${pkgs.swayosd}/bin/swayosd --caps-lock
|
|
bindl=,Scroll_lock,exec,${pkgs.swayosd}/bin/swayosd --scroll-lock
|
|
|
|
# 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 = ^(waybar|system-menu|anyrun|gtk-layer-shell|swaync-.+|swayosd)$
|
|
layerrule = blur, $layers
|
|
layerrule = ignorealpha 0.5, $layers
|
|
|
|
# Window rules
|
|
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)
|
|
windowrule = nofullscreenrequest,(firefox)
|
|
windowrule = nomaximizerequest,(firefox)
|
|
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
|
|
''
|