diff options
| author | Mosder <xmosder12@gmail.com> | 2026-01-12 13:32:23 +0100 |
|---|---|---|
| committer | Mosder <xmosder12@gmail.com> | 2026-01-12 13:32:23 +0100 |
| commit | b369f8d42a3806a7bc47ceca9b02245f6ff8557a (patch) | |
| tree | de55cbf00914ee4f4d4fcaa76758a39aa87ee087 /desktop/.config/hypr | |
| parent | f00280f737ef09b5bb9b79f09c57deaf57b6c327 (diff) | |
| parent | 1b6019803990b4aeae967b24f1b5e12d12020ba2 (diff) | |
Merge remote-tracking branch 'refs/remotes/origin/master'
Diffstat (limited to 'desktop/.config/hypr')
| -rw-r--r-- | desktop/.config/hypr/hypridle.conf | 17 | ||||
| -rw-r--r-- | desktop/.config/hypr/hyprland.conf | 283 | ||||
| -rw-r--r-- | desktop/.config/hypr/hyprlock.conf | 30 | ||||
| -rw-r--r-- | desktop/.config/hypr/hyprpaper.conf | 9 | ||||
| -rwxr-xr-x | desktop/.config/hypr/scripts/equalize-windows.sh | 87 | ||||
| -rwxr-xr-x | desktop/.config/hypr/scripts/randomize-wallpapers.sh | 16 | ||||
| -rwxr-xr-x | desktop/.config/hypr/scripts/zoom.sh | 9 |
7 files changed, 451 insertions, 0 deletions
diff --git a/desktop/.config/hypr/hypridle.conf b/desktop/.config/hypr/hypridle.conf new file mode 100644 index 0000000..b328f6d --- /dev/null +++ b/desktop/.config/hypr/hypridle.conf @@ -0,0 +1,17 @@ +general { + lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. + before_sleep_cmd = loginctl lock-session # lock before suspend. + after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. +} + +# after 30 min, lock +listener { + timeout = 1800 + on-timeout = loginctl lock-session +} + +# after 1 hour, suspend +listener { + timeout = 3600 + on-timeout = systemctl suspend +} diff --git a/desktop/.config/hypr/hyprland.conf b/desktop/.config/hypr/hyprland.conf new file mode 100644 index 0000000..8ed1d66 --- /dev/null +++ b/desktop/.config/hypr/hyprland.conf @@ -0,0 +1,283 @@ +################# +### VARIABLES ### +################# + +# Files and locations +$SCRIPTS_DIR = $HOME/.config/hypr/scripts +$LOG_FILE = $HOME/.hypr.log + +# Used programs +$BROWSER = brave --enable-features=UseOzonePlatform --ozone-platform=wayland +$DISCORD = discord --enable-features=UseOzonePlatform --ozone-platform=wayland +$TERMINAL = wezterm +$EDITOR = nvim +$FILE_MANAGER = thunar +$MENU = wofi +$LOCKSCREEN = hyprlock +$STATUS_BAR = waybar +$WALLPAPER_MANAGER = hyprpaper +$IDLE_MANAGER = hypridle +$AUTOMOUNT = udiskie +$OSD = swayosd +$NOTIFICATION_DAEMON = dunst +$COLOR_PICKER = hyprpicker +$SCREENSHOT = flameshot +$STEAM = steam + +##################### +### ENV VARIABLES ### +##################### + +# Gtk - nwglook +env = GTK_THEME,catppuccin-mocha-mauve-standard+default + +# Qt - adwaita dark +env = QT_QPA_PLATFORM,wayland +env = QT_QPA_PLATFORMTHEME,qt5ct + +# Cursor +env = XCURSOR_THEME,rose-pine-cursor +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_THEME,rose-pine-hyprcursor +env = HYPRCURSOR_SIZE,24 + +# Misc +env = EDITOR,$EDITOR +env = MAX_ZOOM,3 + +################ +### MONITORS ### +################ + +$MAIN_MONITOR = DP-1 +$SECOND_MONITOR = HDMI-A-1 + +monitor=$MAIN_MONITOR,2560x1440@144,0x0,1 +monitor=$SECOND_MONITOR,1920x1080@60,2560x360,1 + +################# +### AUTOSTART ### +################# + +# Utils +exec-once = systemctl --user start hyprpolkitagent +exec-once = $STATUS_BAR +exec-once = $SCREENSHOT +exec-once = $SCRIPTS_DIR/randomize-wallpapers.sh +exec-once = $WALLPAPER_MANAGER +exec-once = $IDLE_MANAGER +exec-once = $AUTOMOUNT +exec-once = $OSD-server + +# Programs +exec-once = [workspace 1 silent] $BROWSER +exec-once = [workspace 2 silent] $DISCORD +exec-once = [workspace 3 silent] $TERMINAL +exec-once = [workspace 5 silent] $STEAM + +# Use lockscreen as login +exec-once = $LOCKSCREEN + +################## +### CATEGORIES ### +################## + +general { + gaps_in = 1 + gaps_out = 1 + + col.active_border = rgb(df00ff) rgb(ff10f0) 45deg + col.inactive_border = rgba(595959aa) + + no_focus_fallback = true +} + +animations { + bezier = easeOutQuint, 0.23, 1, 0.32, 1 + bezier = easeInOutCubic, 0.65, 0.05, 0.36, 1 + bezier = linear, 0, 0, 1, 1 + bezier = almostLinear, 0.5, 0.5, 0.75, 1 + bezier = quick, 0.15, 0, 0.1, 1 + + animation = global, 1, 7.5, default + animation = border, 1, 4.04, easeOutQuint + animation = windows, 1, 3.59, easeOutQuint + animation = windowsIn, 1, 3.07, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.11, linear, popin 87% + animation = fadeIn, 1, 1.29, almostLinear + animation = fadeOut, 1, 1.09, almostLinear + animation = fade, 1, 2.27, quick + animation = layers, 1, 2.85, easeOutQuint + animation = layersIn, 1, 3, easeOutQuint, fade + animation = layersOut, 1, 1.12, linear, fade + animation = fadeLayersIn, 1, 1.34, almostLinear + animation = fadeLayersOut, 1, 1.04, almostLinear + animation = workspaces, 1, 1.45, almostLinear, fade + animation = workspacesIn, 1, 0.9, almostLinear, fade + animation = workspacesOut, 1, 1.45, almostLinear, fade + animation = zoomFactor, 1, 5.25, quick +} + +input { + kb_layout = pl + + numlock_by_default = true + + repeat_rate = 40 + repeat_delay = 400 + + sensitivity = -0.2 + follow_mouse = 2 +} + +misc { + disable_hyprland_logo = true + + focus_on_activate = false + + middle_click_paste = false +} + +cursor { + zoom_rigid = true +} + +ecosystem:no_donation_nag = true + +dwindle { + pseudotile = true + + force_split = 2 + preserve_split = true +} + +############# +### BINDS ### +############# + +# General +bind = SUPER, Q, killactive, +bind = SUPER, V, togglesplit, +bind = SUPER SHIFT, F, togglefloating +bindm = SUPER, mouse:273, resizewindow +bind = SUPER, N, exec, dunstctl close-all +bind = SUPER, slash, exec, $LOCKSCREEN +bind = ALT, SPACE, exec, pkill $MENU || $MENU + +# Launch programs +bind = SUPER, T, exec, $TERMINAL +bind = SUPER, F, exec, $FILE_MANAGER +bind = SUPER, C, exec, $TERMINAL start -- $EDITOR +bind = SUPER, B, exec, $BROWSER +bind = SUPER, D, exec, $DISCORD +bind = SUPER, S, exec, $STEAM +bind = SUPER SHIFT, P, exec, $COLOR_PICKER -a +bind = SUPER SHIFT, M, exec, $SCRIPTS_DIR/zoom.sh + +# Take screenshots +bind = SUPER SHIFT, S, exec, $SCREENSHOT gui # Select region + +# Move focus +bind = ALT, Tab, cyclenext +bind = SUPER, left, movefocus, l +bind = SUPER, down, movefocus, d +bind = SUPER, up, movefocus, u +bind = SUPER, right, movefocus, r +bind = SUPER, H, movefocus, l +bind = SUPER, J, movefocus, d +bind = SUPER, K, movefocus, u +bind = SUPER, L, movefocus, r + +# Swap windows +bind = SUPER SHIFT, left, swapwindow, l +bind = SUPER SHIFT, down, swapwindow, d +bind = SUPER SHIFT, up, swapwindow, u +bind = SUPER SHIFT, right, swapwindow, r +bind = SUPER SHIFT, H, swapwindow, l +bind = SUPER SHIFT, J, swapwindow, d +bind = SUPER SHIFT, K, swapwindow, u +bind = SUPER SHIFT, L, swapwindow, r + +# Equalize windows +bind = SUPER ALT, H, exec, $SCRIPTS_DIR/equalize-windows.sh l +bind = SUPER ALT, V, exec, $SCRIPTS_DIR/equalize-windows.sh u + +# Resize windows manually +bind = SUPER, R, submap, resize +submap = resize +binde = , left, resizeactive, -10 0 +binde = , down, resizeactive, 0 10 +binde = , up, resizeactive, 0 -10 +binde = , right, resizeactive, 10 0 +binde = , H, resizeactive, -10 0 +binde = , J, resizeactive, 0 10 +binde = , K, resizeactive, 0 -10 +binde = , L, resizeactive, 10 0 +bind = , Escape, submap, reset +bind = , Return, submap, reset +bind = CTRL_L, C, submap, reset +bind = SUPER, R, submap, reset +submap = reset + +# Switch workspaces +bind = SUPER, 1, workspace, 1 +bind = SUPER, 2, workspace, 2 +bind = SUPER, 3, workspace, 3 +bind = SUPER, 4, workspace, 4 +bind = SUPER, 5, workspace, 5 +bind = SUPER, 6, workspace, 6 +bind = SUPER, 7, workspace, 7 +bind = SUPER, 8, workspace, 8 +bind = SUPER, 9, workspace, 9 +bind = SUPER, 0, workspace, 10 + +# Move active window to a workspace +bind = SUPER SHIFT, 1, movetoworkspace, 1 +bind = SUPER SHIFT, 2, movetoworkspace, 2 +bind = SUPER SHIFT, 3, movetoworkspace, 3 +bind = SUPER SHIFT, 4, movetoworkspace, 4 +bind = SUPER SHIFT, 5, movetoworkspace, 5 +bind = SUPER SHIFT, 6, movetoworkspace, 6 +bind = SUPER SHIFT, 7, movetoworkspace, 7 +bind = SUPER SHIFT, 8, movetoworkspace, 8 +bind = SUPER SHIFT, 9, movetoworkspace, 9 +bind = SUPER SHIFT, 0, movetoworkspace, 10 + +# Move current workspace to the other monitor +bind = SUPER, M, movecurrentworkspacetomonitor, +1 + +# Volume controls +bindel = ,XF86AudioRaiseVolume, exec, $OSD-client --output-volume raise --max-volume 95 +bindel = ,XF86AudioLowerVolume, exec, $OSD-client --output-volume lower +bindel = ,XF86AudioMute, exec, $OSD-client --output-volume mute-toggle +bindel = ,XF86AudioMicMute, exec, $OSD-client --input-volume mute-toggle + +# Player controls +bindl = , XF86AudioNext, exec, $OSD-client --playerctl next +bindl = , XF86AudioPause, exec, $OSD-client --playerctl play-pause +bindl = , XF86AudioPlay, exec, $OSD-client --playerctl play-pause +bindl = , XF86AudioPrev, exec, $OSD-client --playerctl previous + +############################## +### WINDOWS AND WORKSPACES ### +############################## + +# Set default monitors for workspaces +workspace = 1, monitor:$MAIN_MONITOR, default:true +workspace = 2, monitor:$SECOND_MONITOR, default:true +workspace = 3, monitor:$SECOND_MONITOR +workspace = 4, monitor:$MAIN_MONITOR +workspace = 5, monitor:$MAIN_MONITOR + +# Force discord to stay at 2nd workspace +windowrule = workspace 2 silent, class:^(discord)$ + +# Force steam to stay at 5th workspace +windowrule = workspace 5 silent, class:^(steam)$ + +# Make flameshot not temporarily resize windows +windowrule = float, class:^($SCREENSHOT)$ + +# Ignore maximize requests from apps +windowrule = suppressevent maximize, class:.* + diff --git a/desktop/.config/hypr/hyprlock.conf b/desktop/.config/hypr/hyprlock.conf new file mode 100644 index 0000000..68d61a2 --- /dev/null +++ b/desktop/.config/hypr/hyprlock.conf @@ -0,0 +1,30 @@ +general { + hide_cursor = true + ignore_empty_input = true +} + +animations { + animation = fade, 1, 3, linear +} + +background { + monitor = DP-1 + path = ~/wallpapers/2k/.current +} + +background { + monitor = HDMI-A-1 + path = ~/wallpapers/hd/.current +} + +input-field { + size = 10%, 3% + outline_thickness = 2 + dots_size = 0.35 + dots_spacing = 0.2 + outer_color = rgb(df00ff) + inner_color = rgb(232627) + font_color = rgb(f5f5f5) + rounding = 13 + placeholder_text = +} diff --git a/desktop/.config/hypr/hyprpaper.conf b/desktop/.config/hypr/hyprpaper.conf new file mode 100644 index 0000000..9ddeffb --- /dev/null +++ b/desktop/.config/hypr/hyprpaper.conf @@ -0,0 +1,9 @@ +$MAIN_MONITOR = DP-1 +$SECOND_MONITOR = HDMI-A-1 +$WALLPAPER_2K = $HOME/wallpapers/2k/.current +$WALLPAPER_HD = $HOME/wallpapers/hd/.current + +preload = $WALLPAPER_2K +preload = $WALLPAPER_HD +wallpaper = $MAIN_MONITOR,$WALLPAPER_2K +wallpaper = $SECOND_MONITOR,$WALLPAPER_HD diff --git a/desktop/.config/hypr/scripts/equalize-windows.sh b/desktop/.config/hypr/scripts/equalize-windows.sh new file mode 100755 index 0000000..cd43729 --- /dev/null +++ b/desktop/.config/hypr/scripts/equalize-windows.sh @@ -0,0 +1,87 @@ +#!/bin/bash + +ITERS=3 + +# get address of the window to return to +address=$(hyprctl activewindow | awk -F" " 'NR==1 {print $2}') + +# define move directions +dir1=$1 +dir2=r +if [[ $dir1 == u ]]; then + dir2=d +fi + +# move max to the left/top +prev_window="" +window=$(hyprctl activewindow | awk -F" " 'NR==1 {print $2}') +while [[ $window != $prev_window ]]; do + hyprctl dispatch movefocus $dir1 + prev_window=$window + window=$(hyprctl activewindow | awk -F" " 'NR==1 {print $2}') +done + +# get start location +at=$(hyprctl activewindow | awk -F" " 'NR==4 {print $2}') +if [[ $dir1 == l ]]; then + start_location=$(echo $at | awk -F"," '{print $1}') +else + start_location=$(echo $at | awk -F"," '{print $2}') +fi + +# count windows in the line +window_count=0 +prev_window="" +while [[ $window != $prev_window ]]; do + hyprctl dispatch movefocus $dir2 + prev_window=$window + window=$(hyprctl activewindow | awk -F" " 'NR==1 {print $2}') + window_count=$(($window_count+1)) +done + +# get end location +at=$(hyprctl activewindow | awk -F" " 'NR==4 {print $2}') +size=$(hyprctl activewindow | awk -F" " 'NR==5 {print $2}') +if [[ $dir1 == l ]]; then + at=$(echo $at | awk -F"," '{print $1}') + size=$(echo $size | awk -F"," '{print $1}') +else + at=$(echo $at | awk -F"," '{print $2}') + size=$(echo $size | awk -F"," '{print $2}') +fi +end_location=$(($at+$size)) + +# calculate full size and size per window +full_size=$(($end_location - $start_location)) +size_per_window=$(($full_size / $window_count)) + +# set sizes +i=0 +while [[ $i -lt $ITERS ]]; do + i=$(($i+1)) + window=0 + while [[ $window -lt $window_count ]]; do + window=$(($window+1)) + size=$(hyprctl activewindow | awk -F" " 'NR==5 {print $2}') + if [[ $dir1 == l ]]; then + #other_side=$(echo $size | awk -F"," '{print $2}') + #hyprctl dispatch resizeactive exact $size_per_window $other_side + size=$(echo $size | awk -F"," '{print $1}') + diff=$(($size_per_window - $size)) + hyprctl dispatch resizeactive $diff 0 + else + #other_side=$(echo $size | awk -F"," '{print $1}') + #hyprctl dispatch resizeactive exact $other_side $size_per_window + size=$(echo $size | awk -F"," '{print $2}') + diff=$(($size_per_window - $size)) + hyprctl dispatch resizeactive 0 $diff + fi + hyprctl dispatch movefocus $dir1 + done + temp=$dir1 + dir1=$dir2 + dir2=$temp +done + +# return to starting window +hyprctl dispatch focuswindow address:0x$address diff --git a/desktop/.config/hypr/scripts/randomize-wallpapers.sh b/desktop/.config/hypr/scripts/randomize-wallpapers.sh new file mode 100755 index 0000000..c7bd651 --- /dev/null +++ b/desktop/.config/hypr/scripts/randomize-wallpapers.sh @@ -0,0 +1,16 @@ +#!/usr/bin/bash + +WALLPAPER_DIR_2K="$HOME/wallpapers/2k" +WALLPAPER_DIR_HD="$HOME/wallpapers/hd" + +# Get random wallpapers +WALLPAPER_2K=$(find $WALLPAPER_DIR_2K -type f | shuf -n 1) +WALLPAPER_HD=$(find $WALLPAPER_DIR_HD -type f | shuf -n 1) + +# Create symlinks to new random wallpapers +SYMLINK_2K=$WALLPAPER_DIR_2K/.current +SYMLINK_HD=$WALLPAPER_DIR_HD/.current +rm $SYMLINK_2K +rm $SYMLINK_HD +ln -s $WALLPAPER_2K $SYMLINK_2K +ln -s $WALLPAPER_HD $SYMLINK_HD diff --git a/desktop/.config/hypr/scripts/zoom.sh b/desktop/.config/hypr/scripts/zoom.sh new file mode 100755 index 0000000..433f899 --- /dev/null +++ b/desktop/.config/hypr/scripts/zoom.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +ZOOM=$(hyprctl getoption cursor:zoom_factor | grep float | awk -F" " '{print $2}') +ZOOM=$(echo "scale=0; ($ZOOM+1)/1" | bc) +if [[ $ZOOM -gt $MAX_ZOOM ]]; then + ZOOM=1 +fi + +hyprctl -q keyword cursor:zoom_factor $ZOOM |
