aboutsummaryrefslogtreecommitdiff
path: root/.config
diff options
context:
space:
mode:
authorJustine Smithies <justine@smithies.me.uk>2024-02-06 20:44:28 +0000
committerJustine Smithies <justine@smithies.me.uk>2024-02-06 20:44:28 +0000
commit506fa12b1f5616c6b818d24941415eff7808f5ad (patch)
treee922a6e6e43b1ebfb8237004e0a6e9242e4b788e /.config
parente2add462c0d66120867cdb7181a0d9c413f3e4c1 (diff)
Initial commit of Hyprland config
Diffstat (limited to '.config')
-rw-r--r--.config/hypr/hyprland.conf271
-rwxr-xr-x.config/hypr/scripts/wallpaper.sh6
2 files changed, 277 insertions, 0 deletions
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
new file mode 100644
index 0000000..ed9dad1
--- /dev/null
+++ b/.config/hypr/hyprland.conf
@@ -0,0 +1,271 @@
+# This is an example Hyprland config file.
+#
+# Refer to the wiki for more information.
+
+#
+# Please note not all available settings / options are set here.
+# For a full list, see the wiki
+#
+
+# See https://wiki.hyprland.org/Configuring/Monitors/
+# monitor=,preferred,auto,1
+monitor=eDP-1,1920x1080,1920x0,1
+monitor=HDMI-A-1,1920x1080,0x0,1
+workspace=HDMI-A-1,1
+
+ See https://wiki.hyprland.org/Configuring/Keywords/ for more
+
+# Execute your favorite apps at launch
+exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
+exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=$XDG_CURRENT_DESKTOP
+exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
+exec-once = dunst
+exec-once = wlsunset -l 57.4 -L -1.9
+exec = ~/.config/hypr/scripts/wallpaper.sh
+exec-once = ~/.config/eww/scripts/monitor.sh
+exec = ~/.config/eww/scripts/start.sh
+exec-once = swayidle timeout 300 'swaylock -F -i ~/.cache/wallpaper --effect-blur 10x5 --clock --indicator' timeout 600 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on'
+
+exec-once = hyprctl dispatcher focusmonitor 1
+
+# source a file (multi-file configs)
+# source = ~/.config/hypr/myColors.conf
+
+# Blur Eww Bar
+layerrule = blur, gtk-layer-shell
+
+# Blur Fuzzel background
+layerrule = blur, launcher
+
+# Blur notifications background
+layerrule = blur, notifications
+
+# Blur Wayprompt background
+layerrule = blur, wayprompt
+
+# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
+input {
+ kb_layout = us,gb
+ kb_variant =
+ kb_model =
+ kb_options =
+ kb_rules =
+
+ follow_mouse = 1
+
+ touchpad {
+ natural_scroll = no
+ }
+
+ sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
+}
+
+general {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+
+ gaps_in = 5
+ gaps_out = 10
+ border_size = 2
+ col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
+ col.inactive_border = rgba(595959aa)
+ cursor_inactive_timeout = 4
+ layout = dwindle
+}
+
+decoration {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+
+ rounding = 3
+ blur {
+ # blur = enabled
+ size = 3
+ passes = 1
+ new_optimizations = on
+ }
+
+ drop_shadow = yes
+ shadow_range = 8
+ shadow_render_power = 3
+ col.shadow = rgba(00000080)
+ shadow_offset=4 4
+}
+
+animations {
+ enabled = yes
+
+ # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
+
+ 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, 30, default, loop
+ animation = fade, 1, 7, default
+ animation = workspaces, 1, 6, default
+}
+
+dwindle {
+ # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
+ pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
+ preserve_split = yes # you probably want this
+}
+
+master {
+ # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
+ new_is_master = true
+}
+
+gestures {
+ # See https://wiki.hyprland.org/Configuring/Variables/ for more
+ workspace_swipe = off
+}
+
+# Example per-device config
+# See https://wiki.hyprland.org/Configuring/Keywords/#executing for more
+device:epic mouse V1 {
+ sensitivity = -0.5
+}
+
+misc {
+ disable_hyprland_logo = true
+}
+
+# Example windowrule v1
+# windowrule = float, ^(kitty)$
+# Example windowrule v2
+# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
+# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
+windowrulev2 = float,class:^(mpv)$
+windowrulev2 = size 640 360,class:^(mpv)$
+windowrulev2 = move 1200 600,class:^(mpv)$
+windowrulev2 = tile, class:^(Spotify)$
+windowrulev2 = workspace 6, class:^(Spotify)$
+windowrulev2 = workspace 5, class:^(gimp-2.99)$
+windowrulev2 = workspace 2, class:^(foot)$
+windowrulev2 = workspace 4, class:^(org.telegram.desktop)$
+windowrulev2 = workspace 9, class:^(aerc)$
+
+# windowrulev2 = float, splash
+# See https://wiki.hyprland.org/Configuring/Keywords/ for more
+$mainMod = SUPER
+
+# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
+bind = $mainMod, RETURN, exec, foot
+bind = $mainMod, W, killactive,
+bind = $mainMod SHIFT, Q, exit,
+bind = $mainMod CONTROL, P, exec, ~/.local/bin/powermenu
+bind = $mainMod, F, fullscreen,
+bind = $mainMod SHIFT, P, pin,
+bind = $mainMod SHIFT, F, togglefloating,
+bind = $mainMod, SPACE, exec, fuzzel
+bind = $mainMod, P, pseudo, # dwindle
+bind = $mainMod, S, togglesplit, # dwindl
+
+# Move focus with mainMod + arrow keys
+bind = $mainMod, left, movefocus, l
+bind = $mainMod, right, movefocus, r
+bind = $mainMod, up, movefocus, u
+bind = $mainMod, down, movefocus, d
+
+# Move focus with mainMod + arrow keys
+bind = $mainMod, H, movefocus, l
+bind = $mainMod, L, movefocus, r
+bind = $mainMod, K, movefocus, u
+bind = $mainMod, J, movefocus, d
+
+# Move window with mainMod + SHIFT + arrow keys
+bind = $mainMod SHIFT, left, movewindow, l
+bind = $mainMod SHIFT, right, movewindow, r
+bind = $mainMod SHIFT, up, movewindow, u
+bind = $mainMod SHIFT, down, movewindow, d
+
+# Move window with mainMod + SHIFT + arrow keys
+bind = $mainMod SHIFT, H, movewindow, l
+bind = $mainMod SHIFT, L, movewindow, r
+bind = $mainMod SHIFT, K, movewindow, u
+bind = $mainMod SHIFT, J, movewindow, d
+
+# Resize window with mainMod + ALT + arrow keys
+binde = $mainMod ALT, left, resizeactive, -10 0
+binde = $mainMod ALT, right, resizeactive, 10 0
+binde = $mainMod ALT, up, resizeactive, 0 -10
+binde = $mainMod ALT, down, resizeactive, 0 10
+
+# Resize window with mainMod + ALT + arrow keys
+binde = $mainMod ALT, H, resizeactive, -10 0
+binde = $mainMod ALT, L, resizeactive, 10 0
+binde = $mainMod ALT, K, resizeactive, 0 -10
+binde = $mainMod ALT, J, resizeactive, 0 10
+
+# Switch workspaces with mainMod + [0-9]
+bind = $mainMod, 1, exec, ~/.config/eww/scripts/dispatch.sh 1
+bind = $mainMod, 2, exec, ~/.config/eww/scripts/dispatch.sh 2
+bind = $mainMod, 3, exec, ~/.config/eww/scripts/dispatch.sh 3
+bind = $mainMod, 4, exec, ~/.config/eww/scripts/dispatch.sh 4
+bind = $mainMod, 5, exec, ~/.config/eww/scripts/dispatch.sh 5
+bind = $mainMod, 6, exec, ~/.config/eww/scripts/dispatch.sh 6
+bind = $mainMod, 7, exec, ~/.config/eww/scripts/dispatch.sh 7
+bind = $mainMod, 8, exec, ~/.config/eww/scripts/dispatch.sh 8
+bind = $mainMod, 9, exec, ~/.config/eww/scripts/dispatch.sh 9
+# bind = $mainMod, 0, workspace, 10
+bind = $mainMod, a, togglespecialworkspace
+
+# Move active window to a workspace with mainMod + SHIFT + [0-9]
+bind = $mainMod SHIFT, 1, movetoworkspace, 1
+bind = $mainMod SHIFT, 2, movetoworkspace, 2
+bind = $mainMod SHIFT, 3, movetoworkspace, 3
+bind = $mainMod SHIFT, 4, movetoworkspace, 4
+bind = $mainMod SHIFT, 5, movetoworkspace, 5
+bind = $mainMod SHIFT, 6, movetoworkspace, 6
+bind = $mainMod SHIFT, 7, movetoworkspace, 7
+bind = $mainMod SHIFT, 8, movetoworkspace, 8
+bind = $mainMod SHIFT, 9, movetoworkspace, 9
+bind = $mainMod SHIFT, 0, movetoworkspace, 10
+bind = $mainMod SHIFT, a, movetoworkspacesilent, special
+
+# Scroll through existing workspaces with mainMod + scroll
+bind = $mainMod, mouse_down, workspace, e+1
+bind = $mainMod, mouse_up, workspace, e-1
+
+# Move/resize windows with mainMod + LMB/RMB and dragging
+bindm = $mainMod, mouse:272, movewindow
+bindm = $mainMod, mouse:273, resizewindow
+
+# Audio
+bind = , xf86audiomute, exec, ~/.local/bin/statusbar/volumecontrol mute
+bind = , xf86audiolowervolume, exec, ~/.local/bin/statusbar/volumecontrol down
+bind = , xf86audioraisevolume, exec, ~/.local/bin/statusbar/volumecontrol up
+
+# Brightness
+bind = , xf86monbrightnessdown, exec, ~/.local/bin/statusbar/brightnesscontrol down
+bind = , xf86monbrightnessup, exec, ~/.local/bin/statusbar/brightnesscontrol up
+
+# Take a screenshot of the focused output and save it into screenshots
+bind = , PRINT, exec, grim -o $(hyprctl monitors | grep -B 12 'focused: yes' | grep 'Monitor' | awk '{ print $2 }') -t jpeg ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg
+
+# Take a screenshot of the selected region
+bind = $mainMod, PRINT, exec, grim -t jpeg -g "$(slurp)" ~/Pictures/Screenshots/$(date +%Y-%m-%d_%H-%m-%s).jpg
+
+# Take a screenshot and save it to the clipboard
+bind = $mainMod SHIFT, PRINT, exec, grim -g "$(slurp -d)" - | wl-copy
+
+# Swaps the active workspaces between two monitors
+bind = $mainMod, Z, swapactiveworkspaces, HDMI-A-1 eDP-1
+
+# Toggle Eww Bar
+bind = $mainMod, B, exec, eww kill || ~/.config/eww/scripts/start.sh
+
+# Toggle keyboard layout
+bind = $mainMod SHIFT, Y, exec, hyprctl switchxkblayout at-translated-set-2-keyboard next; hyprctl switchxkblayout justine-smithies-jmspicotkl next
+
+# Run Paru update
+bind = $mainMod CONTROL, U, exec, foot bash -c 'paru; ~/.config/eww/scripts/arch-updates.sh Refresh'&
+
+# Move focus to the next monitor
+bind = $mainMod CONTROL, period, focusmonitor, +1
+
+# trigger when the lid is up
+bindl=,switch:off:Lid Switch,exec,hyprctl dispatch dpms on eDP-1
+# trigger when the lid is down
+bindl=,switch:on:Lid Switch,exec,hyprctl dispatch dpms off eDP-1 && swaylock -F -i ~/.cache/wallpaper --effect-blur 10x5 --clock --indicator
diff --git a/.config/hypr/scripts/wallpaper.sh b/.config/hypr/scripts/wallpaper.sh
new file mode 100755
index 0000000..b1dead6
--- /dev/null
+++ b/.config/hypr/scripts/wallpaper.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+if pgrep swaybg; then
+ pkill swaybg
+fi
+swaybg -m fill -i ~/.cache/wallpaperwaybg -m fill -i ~/.cache/wallpaper