Evie Litherland-Smith
50fa154a90
Split chromium workspace into web (for main browser) and apps (for PWAs) Update waybar workspace icons, remove "urgent" icon since I've got an updating theme anyway
233 lines
8.3 KiB
Nix
233 lines
8.3 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}/Screenshots
|
|
|
|
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
|
|
|
|
misc:background_color=rgb(1a1b26)
|
|
gestures:workspace_swipe = true
|
|
|
|
input {
|
|
kb_layout = gb
|
|
kb_options = ctrl:nocaps
|
|
follow_mouse = 1
|
|
touchpad:natural_scroll = yes
|
|
}
|
|
|
|
dwindle:force_split = 2
|
|
general {
|
|
col.active_border=rgb(bb9af7)
|
|
col.inactive_border=rgb(414868)
|
|
gaps_in = 5
|
|
gaps_out = 10
|
|
border_size = 1
|
|
cursor_inactive_timeout = 5
|
|
layout = dwindle
|
|
}
|
|
|
|
decoration {
|
|
rounding = 10
|
|
col.shadow=rgba(1a1b2699)
|
|
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, rofi -replace -show power-menu
|
|
bind = SUPER, V, togglefloating
|
|
bind = SUPER, M, fullscreen, 0
|
|
bind = SUPER SHIFT, M, 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, X, exec, ${pkgs.mako}/bin/makoctl restore
|
|
bind = SUPER SHIFT, X, exec, ${pkgs.mako}/bin/makoctl dismiss -a
|
|
|
|
# Common program shortcuts
|
|
bind = SUPER, Space, exec, rofi -replace -show combi
|
|
bind = SUPER, Return, exec, alacritty
|
|
|
|
# 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)$
|
|
layerrule = blur, $layers
|
|
layerrule = ignorealpha 0.3, $layers
|
|
|
|
# Window rules
|
|
windowrule = float,(org.kde.polkit-kde-authentication-agent-1d|Pinentry)
|
|
windowrule = center,(org.kde.polkit-kde-authentication-agent-1d|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).*
|
|
windowrule = nofullscreenrequest, ^(libreoffice).*
|
|
windowrule = nofullscreenrequest,(Nxplayer.bin)
|
|
windowrule = nomaximizerequest,(Nxplayer.bin)
|
|
windowrule = group set always,(Nxplayer.bin)
|
|
windowrulev2 = float,title:(Open),class:(soffice)
|
|
windowrulev2 = float,title:(Friends List),class:(steam)
|
|
windowrulev2 = float,title:(Steam Settings),class:(steam)
|
|
|
|
# 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:emacs current
|
|
bind = SUPER, E, workspace, name:emacs
|
|
bind = SUPER SHIFT, E, movetoworkspace, name:emacs
|
|
bind = SUPER ALT, E, exec, [workspace name:emacs] emacs
|
|
|
|
bind = SUPER, W, moveworkspacetomonitor, name:web current
|
|
bind = SUPER, W, workspace, name:web
|
|
bind = SUPER SHIFT, W, movetoworkspace, name:web
|
|
windowrule = workspace name:web, (chromium-browser)
|
|
|
|
bind = SUPER, T, moveworkspacetomonitor, name:top current
|
|
bind = SUPER, T, workspace, name:top
|
|
bind = SUPER SHIFT, T, movetoworkspace, name:top
|
|
bind = SUPER ALT, T, exec, [workspace name:top] alacritty -e btop
|
|
|
|
bind = SUPER, A, moveworkspacetomonitor, name:apps current
|
|
bind = SUPER, A, workspace, name:apps
|
|
bind = SUPER SHIFT, A, movetoworkspace, name:apps
|
|
windowrule = workspace name:apps, chrome-(.*)-Default
|
|
|
|
bind = SUPER, D, moveworkspacetomonitor, name:discord current
|
|
bind = SUPER, D, workspace, name:discord
|
|
bind = SUPER SHIFT, D, movetoworkspace, name:discord
|
|
windowrule = workspace name:discord, (discord)
|
|
|
|
bind = SUPER, S, moveworkspacetomonitor, name:steam current
|
|
bind = SUPER, S, workspace, name:steam
|
|
bind = SUPER SHIFT, S, movetoworkspace, name:steam
|
|
windowrule = workspace name:steam, (steam)
|
|
|
|
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)
|
|
|
|
# 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 = ${pkgs.hyprpaper}/bin/hyprpaper
|
|
exec-once = ${pkgs.mako}/bin/mako
|
|
exec-once = ${pkgs.dex}/bin/dex --autostart
|
|
exec-once = kidex
|
|
''
|