From 506fa12b1f5616c6b818d24941415eff7808f5ad Mon Sep 17 00:00:00 2001 From: Justine Smithies Date: Tue, 6 Feb 2024 20:44:28 +0000 Subject: Initial commit of Hyprland config --- .config/hypr/hyprland.conf | 271 ++++++++++++++++++++++++++++++++++++++ .config/hypr/scripts/wallpaper.sh | 6 + 2 files changed, 277 insertions(+) create mode 100644 .config/hypr/hyprland.conf create mode 100755 .config/hypr/scripts/wallpaper.sh (limited to '.config/hypr') 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 -- cgit v1.2.3