aboutsummaryrefslogblamecommitdiff
path: root/.config/hypr/hyprland.conf
blob: e769f2aea59f9ebccf048979b8996bc56b244df9 (plain) (tree)








































































































































































































                                                                                                                                                                                     








                                                     




























































                                                                                                                                                                                 
# 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, focusworkspaceoncurrentmonitor, 1
bind = $mainMod, 2, focusworkspaceoncurrentmonitor, 2
bind = $mainMod, 3, focusworkspaceoncurrentmonitor, 3
bind = $mainMod, 4, focusworkspaceoncurrentmonitor, 4
bind = $mainMod, 5, focusworkspaceoncurrentmonitor, 5
bind = $mainMod, 6, focusworkspaceoncurrentmonitor, 6
bind = $mainMod, 7, focusworkspaceoncurrentmonitor, 7
bind = $mainMod, 8, focusworkspaceoncurrentmonitor, 8
bind = $mainMod, 9, focusworkspaceoncurrentmonitor, 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