nixos/home/hyprland/config.nix
Evie Litherland-Smith bde4fc30e6 Change a few workspace, remove SUPER ALT binds
Remove "remote" workspace, change "system" to "btm" and add "stream",
rename "emacs" to "editor" to keep with theme more (but we all know
it's still for emacs...)

Remove all SUPER ALT binds. Have btm launch at startup since that was
the only one of those binds that was useful

Update a few of the workspace icons. Remove persistent-workspaces
2024-01-13 17:00:15 +00:00

251 lines
8.9 KiB
Nix

{ config, pkgs, ... }:
let
themeName = config.gtk.theme.name;
cursorName = config.gtk.cursorTheme.name;
cursorSize = toString config.gtk.cursorTheme.size;
in ''
source = ./extra.conf
monitor=,preferred,auto,auto
env = XDG_CURRENT_DESKTOP=Hyprland
env = XDG_SESSION_TYPE=wayland
env = XDG_SESSION_DESKTOP=Hyprland
env = GDK_BACKEND=wayland,x11
env = GTK_THEME,${themeName}
env = XCURSOR_THEME,${cursorName}
env = XCURSOR_SIZE,${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 = GRIM_DEFAULT_DIR=${config.xdg.userDirs.pictures}/Grim
exec-once = hyprctl setcursor ${cursorName} ${cursorSize}
exec-once = dbus-update-activation-environment --systemd --all
exec-once = systemctl --user import-environment WAYLAND_DISPLAY QT_QPA_PLATFORMTHEME
exec-once = systemctl --user restart xdg-desktop-portal.service xdg-desktop-portal-hyprland.service avizo.service
gestures:workspace_swipe = true
input {
kb_layout = gb
kb_options = ctrl:nocaps
follow_mouse = 2
touchpad:natural_scroll = yes
}
master {
allow_small_split = true
mfact = 0.5
new_is_master = false
new_on_top = false
orientation = left
inherit_fullscreen = true
}
dwindle:force_split = 2
general {
col.active_border = rgb(b4befe)
col.inactive_border = rgb(313244)
gaps_in = 5
gaps_out = 10
border_size = 1
cursor_inactive_timeout = 5
layout = master
}
decoration {
rounding = 10
col.shadow=rgba(0d0e1c99)
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
}
misc {
background_color=rgb(0d0e1c)
disable_autoreload = true
mouse_move_enables_dpms = true
key_press_enables_dpms = true
}
xwayland:force_zero_scaling = true
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
bind = SUPER, F1, exec, swaylock
bind = SUPER, Q, killactive,
bind = SUPER SHIFT, Q, exec, rofi -replace -show power-menu
bind = SUPER, V, togglefloating
bind = SUPER, F, fullscreen, 0
bind = SUPER SHIFT, F, fullscreen, 1
bind = SUPER, tab, exec, rofi -replace -show window
bind = SUPER, P, exec, pkill rofi || rofi-pass
bind = SUPER SHIFT, P, exec, pkill rofi || rofi-pass --last-used
bind = SUPER ALT, P, exec, pkill rofi || rofi-pass --insert
bind = SUPER, Z, exec, swaync-client -t -sw
bind = SUPER SHIFT, Z, exec, swaync-client -d -sw
# Common program shortcuts
bind = SUPER, Space, exec, rofi -replace -show combi
bind = SUPER, Return, exec, foot
bind = SUPER SHIFT, Return, exec, [float] foot
# Misc useful binds
bind=,Print,exec,grim -g "$(slurp)"
bind=,XF86Calculator,exec,rofi -replace -show calc
# Sound
bindl=,XF86AudioMute,exec,${pkgs.avizo}/bin/volumectl %
bindl=,XF86AudioMicMute,exec,${pkgs.avizo}/bin/volumectl -m %
bindle=,XF86AudioRaiseVolume,exec,${pkgs.avizo}/bin/volumectl -u + 5
bindle=,XF86AudioLowerVolume,exec,${pkgs.avizo}/bin/volumectl -u - 5
# Brightness
bindle=,XF86MonBrightnessUp,exec,${pkgs.avizo}/bin/lightctl + 5
bindle=,XF86MonBrightnessDown,exec,${pkgs.avizo}/bin/lightctl - 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|rofi|gtk-layer-shell|notifications|swaync-.*)$
layerrule = blur, $layers
layerrule = ignorealpha 0.3, $layers
# Window rules
windowrule = float,(org.kde.polkit-kde-authentication-agent-1|Pinentry)
windowrule = center,(org.kde.polkit-kde-authentication-agent-1|Pinentry)
windowrule = pin,(org.kde.polkit-kde-authentication-agent-1|Pinentry)
windowrule = dimaround,(org.kde.polkit-kde-authentication-agent-1|Pinentry)
windowrule = stayfocused,(org.kde.polkit-kde-authentication-agent-1|Pinentry)
windowrule = float,(pavucontrol|.blueman-manager-wrapped|nm-connection-editor)
windowrule = size 800 600,(pavucontrol|.blueman-manager-wrapped|nm-connection-editor)
windowrule = move onscreen 100%-820 60,(pavucontrol|.blueman-manager-wrapped|nm-connection-editor)
windowrule = nomaximizerequest,(libreoffice|soffice)(.*)
windowrule = nofullscreenrequest, (libreoffice|soffice)(.*)
windowrulev2 = float,title:(Open),class:(libreoffice|soffice)(.*))
windowrule = nofullscreenrequest,(org.remmina.Remmina|Nxplayer.bin)
windowrule = nomaximizerequest,(org.remmina.Remmina|Nxplayer.bin)
windowrulev2 = float,title:(Remmina Remote Desktop Client|Remmina Preferences),class:(org.remmina.Remmina)
windowrulev2 = size 800 600,title:(Remmina Remote Desktop Client|Remmina Preferences),class:(org.remmina.Remmina)
windowrulev2 = move onscreen 100%-820 60,title:(Remmina Remote Desktop Client|Remmina Preferences),class:(org.remmina.Remmina)
# Workspace definitions
bind = SUPER, 1, moveworkspacetomonitor, 1 current
bind = SUPER, 1, workspace, 1
bind = SUPER SHIFT, 1, movetoworkspace, 1
bind = SUPER, 2, moveworkspacetomonitor, 2 current
bind = SUPER, 2, workspace, 2
bind = SUPER SHIFT, 2, movetoworkspace, 2
bind = SUPER, 3, moveworkspacetomonitor, 3 current
bind = SUPER, 3, workspace, 3
bind = SUPER SHIFT, 3, movetoworkspace, 3
bind = SUPER, 4, moveworkspacetomonitor, 4 current
bind = SUPER, 4, workspace, 4
bind = SUPER SHIFT, 4, movetoworkspace, 4
bind = SUPER, 5, moveworkspacetomonitor, 5 current
bind = SUPER, 5, workspace, 5
bind = SUPER SHIFT, 5, movetoworkspace, 5
bind = SUPER, 6, moveworkspacetomonitor, 6 current
bind = SUPER, 6, workspace, 6
bind = SUPER SHIFT, 6, movetoworkspace, 6
# Named workspaces
bind = SUPER, E, moveworkspacetomonitor, name:editor current
bind = SUPER, E, workspace, name:editor
bind = SUPER SHIFT, E, movetoworkspace, name:editor
bind = SUPER, T, moveworkspacetomonitor, name:term current
bind = SUPER, T, workspace, name:term
bind = SUPER SHIFT, T, movetoworkspace, name:term
bind = SUPER, W, moveworkspacetomonitor, name:web current
bind = SUPER, W, workspace, name:web
bind = SUPER SHIFT, W, movetoworkspace, name:web
windowrule = workspace name:web silent, (chromium-browser)
bind = SUPER, B, moveworkspacetomonitor, name:btm current
bind = SUPER, B, workspace, name:btm
bind = SUPER SHIFT, B, movetoworkspace, name:btm
bind = SUPER, C, moveworkspacetomonitor, name:chat current
bind = SUPER, C, workspace, name:chat
bind = SUPER SHIFT, C, movetoworkspace, name:chat
windowrule = workspace name:chat silent, (WebCord)
bind = SUPER, G, moveworkspacetomonitor, name:games current
bind = SUPER, G, workspace, name:games
bind = SUPER SHIFT, G, movetoworkspace, name:games
windowrule = workspace name:games silent, (steam)
# windowrulev2 = float,title:(Friends List),class:(steam)
# windowrulev2 = float,title:(Steam Settings),class:(steam)
bind = SUPER, S, moveworkspacetomonitor, name:stream current
bind = SUPER, S, workspace, name:stream
bind = SUPER SHIFT, S, movetoworkspace, name:stream
windowrule = workspace name:stream silent, (com.obsproject.Studio)
# 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, 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 = swaync
exec-once = ${pkgs.hyprpaper}/bin/hyprpaper
exec-once = ${pkgs.dex}/bin/dex --autostart
exec-once = [workspace name:btm silent] foot -e btm --group --battery
''