nixos/home/hyprland/hyprland.conf
Evie Litherland-Smith e9aa9ffe8c Add some new workspaces
Add workspaces for email and video calls, going for more program
separation again rather than endless browser tabs

Renamed pass to vault for better mnemonic binds
2023-08-03 15:15:31 +01:00

240 lines
7.7 KiB
Plaintext

source = ./macchiato.conf
source = ./display.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,Sweet-Dark
env = XCURSOR_THEME,Catppuccin-Macchiato-Dark-Cursors
env = XCURSOR_SIZE,24
env = QT_AUTO_SCREEN_SCALE_FACTOR=1
env = QT_QPA_PLATFORM=wayland;xcb
env = QT_WAYLAND_DISABLE_WINDOWDECORATION=1
env = MOZ_ENABLE_WAYLAND=1
input {
kb_layout = gb
follow_mouse = 1
touchpad {
natural_scroll = yes
}
}
general {
gaps_in = 5
gaps_out = 10
border_size = 3
col.active_border = $mauve
col.group_border_active = $mauve
col.inactive_border = $surface2
col.group_border = $surface2
cursor_inactive_timeout = 5
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
}
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, Return, exec, wezterm
bind = SUPER, F1, exec, swaylock
bind = SUPER, X, exec, emacsclient -c -a 'emacs'
bind = SUPER, W, exec, pgrep firefox > /dev/null || firefox
bind = SUPER, E, exec, pgrep thunderbird > /dev/null || thunderbird
bind = SUPER, V, exec, pgrep bitwarden > /dev/null || bitwarden
# Rofi binds
bind = SUPER, Space, exec, pkill rofi || rofi -show drun
bind = SUPER SHIFT, Space, exec, pkill rofi || rofi -show run
bind = SUPER SHIFT, Return, exec, pkill rofi || rofi -show ssh
bind = SUPER SHIFT, E, exec, pkill rofi || rofi -show file-browser-extended
bind = SUPER SHIFT, P, exec, pkill rofi || rofi -show power-menu
bind = SUPER, B, togglefloating
bind = SUPER SHIFT, Q, killactive,
bind = SUPER, M, fullscreen, 1
bind = SUPER SHIFT, M, fullscreen, 0
# Misc useful binds
bind=,Print,exec,grim -g "$(slurp)"
# Sound
bind=,XF86AudioMute,exec,pamixer -t
binde=,XF86AudioRaiseVolume,exec,pamixer -i 5
binde=,XF86AudioLowerVolume,exec,pamixer -d 5
# Brightness
binde=,XF86MonBrightnessUp,exec,brightnessctl s +5%
binde=,XF86MonBrightnessDown,exec,brightnessctl s 5%-
# Playback
binde=,XF86AudioPlay,exec,playerctl play-pause
binde=,XF86AudioStop,exec,playerctl play-pause
binde=,XF86AudioPrev,exec,playerctl previous
binde=,XF86AudioNext,exec,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
# Workspace definitions
# home
bind = SUPER, A, moveworkspacetomonitor, name:home current
bind = SUPER, A, workspace, name:home
bind = SUPER SHIFT, A, movetoworkspace, name:home
windowrule = workspace name:home,^(steam).*
windowrule = workspace name:home,(.gamescope-wrapped)
# browser
bind = SUPER, W, moveworkspacetomonitor, name:browser current
bind = SUPER, W, workspace, name:browser
bind = SUPER SHIFT, W, movetoworkspace, name:browser
windowrule = workspace name:browser,(firefox)
windowrulev2 = float,title:(File|Picture-in-Picture),class:(firefox)
windowrulev2 = pin,title:(File|Picture-in-Picture),class:(firefox)
# email
bind = SUPER, E, moveworkspacetomonitor, name:email current
bind = SUPER, E, workspace, name:email
bind = SUPER SHIFT, E, movetoworkspace, name:email
windowrule = workspace name:email,(thunderbird)
# files
bind = SUPER, F, moveworkspacetomonitor, name:files current
bind = SUPER, F, workspace, name:files
bind = SUPER SHIFT, F, movetoworkspace, name:files
windowrule = workspace name:files,^(libreoffice).*
windowrule = workspace name:files,(Zotero)
windowrulev2 = workspace name:files,title:(Open),class:(soffice)
windowrulev2 = float,title:(Open),class:(soffice)
# chat
bind = SUPER, C, moveworkspacetomonitor, name:chat current
bind = SUPER, C, workspace, name:chat
bind = SUPER SHIFT, C, movetoworkspace, name:chat
windowrule = workspace name:chat,(Signal)
windowrule = workspace name:chat,(fractal)
windowrule = workspace name:chat,(discord)
windowrule = workspace name:chat,(teams-for-linux)
# call
bind = SUPER, Z, moveworkspacetomonitor, name:call current
bind = SUPER, Z, workspace, name:call
bind = SUPER SHIFT, Z, movetoworkspace, name:call
windowrulev2 = workspace name:call,title:(Zoom|zoom)
windowrulev2 = float,title:(Zoom|zoom)
windowrulev2 = move cursor 0 0,title:(Zoom|zoom)
windowrulev2 = maxsize 800 600,title:(Zoom|zoom)
windowrulev2 = nofullscreenrequest,title:(Zoom|zoom)
windowrulev2 = nomaximizerequest,title:(Zoom|zoom)
# music
bind = SUPER, S, moveworkspacetomonitor, name:music current
bind = SUPER, S, workspace, name:music
bind = SUPER SHIFT, S, movetoworkspace, name:music
windowrulev2 = workspace name:music,class:(org.wezfurlong.wezterm),title:(ncspot)
# vault
bind = SUPER, V, moveworkspacetomonitor, name:vault current
bind = SUPER, V, workspace, name:vault
bind = SUPER SHIFT, V, movetoworkspace, name:vault
windowrule = workspace name:vault,(Bitwarden)
# remote
bind = SUPER, R, moveworkspacetomonitor, name:remote current
bind = SUPER, R, workspace, name:remote
bind = SUPER SHIFT, R, movetoworkspace, name:remote
windowrule = workspace name:remote,(Nxplayer.bin)
windowrule = float,(Nxplayer.bin)
windowrule = center,(Nxplayer.bin)
windowrule = maxsize 1700 900,(Nxplayer.bin)
windowrule = nofullscreenrequest,(Nxplayer.bin)
windowrule = nomaximizerequest,(Nxplayer.bin)
# Numbered workspaces
bind = SUPER, 1, workspace, 1
bind = SUPER SHIFT, 1, movetoworkspace, 1
bind = SUPER, 2, workspace, 2
bind = SUPER SHIFT, 2, movetoworkspace, 2
bind = SUPER, 3, workspace, 3
bind = SUPER SHIFT, 3, movetoworkspace, 3
bind = SUPER, 4, workspace, 4
bind = SUPER SHIFT, 4, movetoworkspace, 4
bind = SUPER, 5, workspace, 5
bind = SUPER SHIFT, 5, movetoworkspace, 5
bind = SUPER, 6, workspace, 6
bind = SUPER SHIFT, 6, movetoworkspace, 6
bind = SUPER, 7, workspace, 7
bind = SUPER SHIFT, 7, movetoworkspace, 7
bind = SUPER, 8, workspace, 8
bind = SUPER SHIFT, 8, movetoworkspace, 8
bind = SUPER, 9, workspace, 9
bind = SUPER SHIFT, 9, movetoworkspace, 9
# Special workspaces
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
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
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)
exec-once = hyprpaper
exec-once = waybar
source = ./autostart.conf