Major rewrite: switching back to Arch from NixOS

This commit is contained in:
ItsDrike 2024-10-02 14:37:28 +02:00
parent df585b737b
commit 254181c0fc
Signed by: ItsDrike
GPG key ID: FA2745890B7048C0
121 changed files with 5433 additions and 2371 deletions

View file

@ -4,6 +4,7 @@ general {
unlock-cmd = killall -s SIGUSR1 hyprlock && dunstctl set-paused false
before_sleep_cmd = loginctl lock-session && dunstctl set-paused true && sleep 2
ignore_dbus_inhibit = false
ignore_systemd_inhibit = false;
}
# Warn about going idle (5 mins)

View file

@ -1,55 +1,6 @@
# #################
# ### AUTOSTART ###
# #################
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE
exec-once = sleep 1 && systemctl --user start wayland-session.target # Hyprland socket sometimes isn't yet loaded, sleep for sec
# exec-once = aa-notify -p
# exec-once = udiskie -A -T
# exec-once = nm-applet --indicator
exec-once = vesktop
# exec-once = discord
# exec-once = webcord --start-minimized
# #############################
# ### ENVIRONMENT VARIABLES ###
# #############################
env = HYPRCURSOR_THEME,Adwaita
env = HYPRCURSOR_SIZE,24
# #########################
# ### CATEGORY SETTINGS ###
# #########################
general {
# cursor_inactive_timeout = 10
# no_cursor_warps = true
layout = dwindle
}
gestures {
workspace_swipe = true
workspace_swipe_fingers = 3
workspace_swipe_distance = 300
workspace_swipe_invert = false
workspace_swipe_min_speed_to_force = 20
workspace_swipe_cancel_ratio = 0.650000
}
group {
insert_after_current = true
focus_removed_window = true
}
misc {
# follow requests from windows to be focused
focus_on_activate = true
}
debug {
@ -58,21 +9,14 @@ debug {
enable_stdout_logs = true
}
dwindle {
pseudotile = false
preserve_split = true
no_gaps_when_only = false
#smart_split = true
}
# #######################
# ### EXTERNAL CONFIG ###
# #######################
source = ~/.config/hypr/input.conf
source = ~/.config/hypr/style.conf
source = ~/.config/hypr/keybinds.conf
source = ~/.config/hypr/window_rules.conf
source = ~/.config/hypr/plugins.conf
source = ~/.config/hypr/hyprland.d/exec.conf
source = ~/.config/hypr/hyprland.d/layout.conf
source = ~/.config/hypr/hyprland.d/input.conf
source = ~/.config/hypr/hyprland.d/style.conf
source = ~/.config/hypr/hyprland.d/keybinds.conf
source = ~/.config/hypr/hyprland.d/window_rules.conf
source = ~/.config/hypr/hyprland.d/gestures.conf
source = ~/.config/hypr/hyprland.d/misc.conf
source = ~/.config/hypr/hyprland.d/plugins.conf
# vi: ft=hyprlang

View file

@ -0,0 +1,11 @@
exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP XDG_SESSION_TYPE GTK_THEME QT_QPA_PLATFORMTHEME QT_STYLE_OVERRIDE
exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP GTK_THEME QT_QPA_PLATFORMTHEME QT_STYLE_OVERRIDE
# Hyprland socket sometimes isn't yet loaded, sleep for sec
exec-once = sleep 1 && systemctl --user start wayland-session.target
exec-once = vesktop
# exec-once = discord
# exec-once = webcord --start-minimized
# vi: ft=hyprlang

View file

@ -0,0 +1,11 @@
gestures {
workspace_swipe = true
workspace_swipe_fingers = 3
workspace_swipe_distance = 300
workspace_swipe_invert = false
workspace_swipe_min_speed_to_force = 20
workspace_swipe_cancel_ratio = 0.650000
}
# vi: ft=hyprlang

View file

@ -24,7 +24,10 @@ input {
follow_mouse = 1
touchpad {
middle_button_emulation = true
# Sending LMB + RMB = MMB
middle_button_emulation = true
# I'm not natural
natural_scroll = false;
}
}

View file

@ -4,14 +4,20 @@ $MOUSE_MMB = mouse:274
$MOUSE_EX1 = mouse:275
$MOUSE_EX2 = mouse:276
$XF86Favorites = 164
# #####################
# ### DE/WM CONTROL ###
# ### ACTIVE WINDOW ###
# #####################
bind = SUPER_SHIFT, Q, exec, menuquit
bind = SUPER_CTRL, L, exec, loginctl lock-session
bind = SUPER_SHIFT, L, exec, wlogout -p layer-shell
bind = SUPER_SHIFT, T, exec, toggle-idle
bind = SUPER, W, killactive,
bind = SUPER, F, togglefloating,
bind = SUPER, Space, fullscreen, 0 # regular fullscreen
bind = SUPER_SHIFT, Space, fullscreen, 1 # maximize without client fullscreen
bind = SUPER_CTRL, Space, fullscreenstate, 2, 0 # fullscreen without client knowing
bind = SUPER_CTRL_SHIFT, Space, fullscreenstate, 1, 2 # maximize with client being full-screen
bind = CTRL_SHIFT, Space, exec, toggle-fake-fullscreen # fake fullscreen + custom border
bind = SUPER_SHIFT, S, layoutmsg, togglesplit
# ################
# ### PROGRAMS ###
@ -24,11 +30,41 @@ bind = SUPER_SHIFT, V, exec, clipman pick -t wofi
bind = SUPER, Return, exec, kitty
bind = SUPER, X, exec, pcmanfm-qt
bind = SUPER, B, exec, firefox
bind = SUPER, S, exec, spotify
bind = SUPER, D, exec, vesktop
bind = SUPER, C, exec, qalculate-gtk
bind = , XF86Calculator, exec, qalculate-gtk
# #####################
# ### DE/WM CONTROL ###
# #####################
bind = SUPER_SHIFT, Q, exec, menuquit
bind = SUPER_CTRL, L, exec, loginctl lock-session
bind = SUPER_SHIFT, L, exec, wlogout -p layer-shell
bind = SUPER_SHIFT, T, exec, toggle-idle
# ###################
# ### SCREENSHOTS ###
# ###################
# Screenshots (with custom screenshot script)
$SCREENSHOT_FORMAT = "${XDG_SCREENSHOTS_DIR:-$HOME/Media/Pictures/Screenshots}/Screenshot_$(date +%Y-%m-%d_%H-%M-%S).png"
$SCREENSHOT_DELAY = 2000
bind = ALT, Print, exec, wl-copy --type image/png "$(hyprpicker)" && notify-send 'Picked color' "$(wl-paste) (saved to clipboard)"
bind = , Print, exec, hyprland-screenshot --notify --copy --target area
#bindl = , Print, exec, hyprland-screenshot --notify --copy --target all # lockscreen screenshot (only enable when needed)
bind = SUPER, Print, exec, hyprland-screenshot --notify --copy --target area --edit
bind = SHIFT, Print, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area
bind = CTRL, Print, exec, hyprland-screenshot --notify --copy --target area --delay $SCREENSHOT_DELAY
bind = SUPER_SHIFT, Print, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area --edit
bind = SUPER_CTRL, Print, exec, hyprland-screenshot --notify --copy --target area --delay $SCREENSHOT_DELAY --edit
bind = SUPER_SHIFT_CTRL, Print, exec, hyprland-screenshot --notify --save $SCREENSHOT_FORMAT --target area --delay $SCREENSHOT_DELAY --edit
# bind = , Print, exec, hyprland-screenshot --save $SCREENSHOT_FORMAT --target all
# XF86Favorites key for recording
# (don't question me, I had it free)
bind = , 164, exec, quick-record --notify toggle
bind = SUPER, 164, exec, quick-record toggle
# #####################
# ### NOTIFICATIONS ###
# #####################
@ -39,9 +75,9 @@ bind = CTRL, period, exec, dunstctl history-pop
bind = CTRL_SHIFT, period, exec, dunstctl context
bind = SUPER_SHIFT, D, exec, toggle-notifications
# ######################
# ### VOLUME CONTROL ###
# ######################
# ############################
# ### AUDIO/VOLUME CONTROL ###
# ############################
binde = SUPER, Down, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05-
binde = SUPER, Up, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.05+
@ -59,48 +95,12 @@ binde = SUPER, Left, exec, brightness -d 5% -n
binde = , XF86MonBrightnessUp, exec, brightness -i 5% -n
binde = , XF86MonBrightnessDown, exec, brightness -d 5% -n
# ###################
# ### SCREENSHOTS ###
# ###################
# Screenshots (with custom screenshot script)
$SCREENSHOT_FORMAT = "${XDG_SCREENSHOTS_DIR:-$HOME/Pictures/Screenshots}/Screenshot_$(date +%Y-%m-%d_%H-%M-%S).png"
$SCREENSHOT_DELAY = 2000
bind = ALT, Print, exec, wl-copy --type image/png "$(hyprpicker)" && notify-send 'Picked color' "$(wl-paste) (saved to clipboard)"
bind = , Print, exec, screenshot --notify --copy --target area
#bindl = , Print, exec, screenshot --notify --copy --target all # lockscreen screenshot (only enable when needed)
bind = SUPER, Print, exec, screenshot --notify --copy --target area --edit
bind = SHIFT, Print, exec, screenshot --notify --save $SCREENSHOT_FORMAT --target area
bind = CTRL, Print, exec, screenshot --notify --copy --target area --delay $SCREENSHOT_DELAY
bind = SUPER_SHIFT, Print, exec, screenshot --notify --save $SCREENSHOT_FORMAT --target area --edit
bind = SUPER_CTRL, Print, exec, screenshot --notify --copy --target area --delay $SCREENSHOT_DELAY --edit
bind = SUPER_SHIFT_CTRL, Print, exec, screenshot --notify --save $SCREENSHOT_FORMAT --target area --delay $SCREENSHOT_DELAY --edit
# bind = , Print, exec, screenshot --save $SCREENSHOT_FORMAT --target all
# XF86Favorites key for recording
# (don't question me, I had it free)
bind = , 164, exec, quick-record --notify toggle
bind = SUPER, 164, exec, quick-record toggle
# #####################
# ### ACTIVE WINDOW ###
# #####################
bind = SUPER, W, killactive,
bind = SUPER, F, togglefloating,
bind = SUPER, Space, fullscreen, 0
bind = SUPER_SHIFT, Space, fullscreen, 1
bind = CTRL_SHIFT, Space, exec, toggle-fakefullscreen
bind = SUPER, P, exec, bash -c "if hyprctl activewindow | grep 'floating: 0'; then hyprctl dispatch togglefloating active; fi; hyprctl dispatch pin active"
bind = SUPER_SHIFT, P, pseudo,
bind = SUPER_SHIFT, S, layoutmsg, togglesplit
# #####################
# ### WINDOW GROUPS ###
# #####################
bind = SUPER, G, togglegroup,
bind = SUPER_SHIFT, G, lockactivegroup, toggle
bind = ALT, tab, changegroupactive, f
bind = ALT, grave, changegroupactive, b
@ -111,15 +111,6 @@ bind = ALT, grave, changegroupactive, b
bind = ALT, grave, movetoworkspace, special
bind = SUPER, grave, togglespecialworkspace,
# ################################################################
# ### OVERRIDE SPLIT DIRECTION FOR NEXT WINDOW (MANUAL TILING) ###
# ################################################################
bind = SUPER_ALT, left, layoutmsg, preselect l
bind = SUPER_ALT, right, layoutmsg, preselect r
bind = SUPER_ALT, up, layoutmsg, preselect u
bind = SUPER_ALT, down, layoutmsg, preselect d
# #########################
# ### MOVE WINDOW FOCUS ###
# #########################
@ -143,25 +134,34 @@ bind = SUPER_ALT, j, movewindow, d
# #######################################
$myMoveSize = 100
$myMove = sh .config/hypr/scripts/move-window.sh $myMoveSize
bind = SUPER_ALT, left, exec, $myMove l
bind = SUPER_ALT, right, exec, $myMove r
bind = SUPER_ALT, up, exec, $myMove u
bind = SUPER_ALT, down, exec, $myMove d
bind = SUPER_ALT, left, exec, hyprland-move-window $myMoveSiez l
bind = SUPER_ALT, right, exec, hyprland-move-window $myMoveSize r
bind = SUPER_ALT, up, exec, hyprland-move-window $myMoveSize u
bind = SUPER_ALT, down, exec, hyprland-move-window $myMoveSize d
# ################################################################
# ### OVERRIDE SPLIT DIRECTION FOR NEXT WINDOW (MANUAL TILING) ###
# ################################################################
bind = SUPER_ALT, left, layoutmsg, preselect l
bind = SUPER_ALT, right, layoutmsg, preselect r
bind = SUPER_ALT, up, layoutmsg, preselect u
bind = SUPER_ALT, down, layoutmsg, preselect d
# ######################################################
# ### SWITCH WORKSPACE (SWAPPING TO CURRENT MONITOR) ###
# ######################################################
bind = SUPER, 1, exec, swap-workspace 1
bind = SUPER, 2, exec, swap-workspace 2
bind = SUPER, 3, exec, swap-workspace 3
bind = SUPER, 4, exec, swap-workspace 4
bind = SUPER, 5, exec, swap-workspace 5
bind = SUPER, 6, exec, swap-workspace 6
bind = SUPER, 7, exec, swap-workspace 7
bind = SUPER, 8, exec, swap-workspace 8
bind = SUPER, 9, exec, swap-workspace 9
bind = SUPER, 1, focusworkspaceoncurrentmonitor, 1
bind = SUPER, 2, focusworkspaceoncurrentmonitor, 2
bind = SUPER, 3, focusworkspaceoncurrentmonitor, 3
bind = SUPER, 4, focusworkspaceoncurrentmonitor, 4
bind = SUPER, 5, focusworkspaceoncurrentmonitor, 5
bind = SUPER, 6, focusworkspaceoncurrentmonitor, 6
bind = SUPER, 7, focusworkspaceoncurrentmonitor, 7
bind = SUPER, 8, focusworkspaceoncurrentmonitor, 8
bind = SUPER, 9, focusworkspaceoncurrentmonitor, 9
# ################################
# ### MOVE WINDOW TO WORKSPACE ###
@ -274,7 +274,6 @@ submap = reset
# ### GLOBAL KEYBINDS (PASSING KEYS TO OTHER PROGRAMS) ###
# ########################################################
bind = CTRL, F10, pass, ^(com\.obsproject\.Studio)$
bind = CTRL, F10, pass, ^(com\.obsproject\.Studio)$
# #######################
@ -282,10 +281,10 @@ bind = CTRL, F10, pass, ^(com\.obsproject\.Studio)$
# #######################
# Isolating group to prevent keybind capturing (for games etc)
# SUPER + Fn + F12 (Favorites)
bind = SUPER, XF86Favorites, exec, hyprctl dispatch submap isolate && notify-send "Keybind isolation" "Keybind isolation on"
# SUPER + End
bind = SUPER, End, exec, hyprctl dispatch submap isolate && notify-send "Keybind isolation" "Keybind isolation on"
submap = isolate
bind = SUPER, XF86Favorites, exec, hyprctl dispatch submap reset && notify-send "Keybind isolation" "Keybind isolation off"
bind = SUPER, End, exec, hyprctl dispatch submap reset && notify-send "Keybind isolation" "Keybind isolation off"
submap = reset
# vi: ft=hyprlang

View file

@ -0,0 +1,26 @@
general {
layout = dwindle
}
dwindle {
# Don't change the split (side/top) regardless
# of what happens to the container
preserve_split = true
# Show gaps even when there's only 1 window opened
no_gaps_when_only = false
# Scale down special workspaces (bigger borders)
special_scale_factor = 0.9
}
group {
# Add new windows in the group after the current window
# rather than after the group tail window
insert_after_current = true
# Focus the window that was just moved out of the group
focus_removed_window = true
}
# vi: ft=hyprlang

View file

@ -0,0 +1,14 @@
misc {
# Disable redundant renders (covered by wallpaper)
disable_hyprland_logo = true
disable_splash_rendering = true
# follow requests from windows to be focused
focus_on_activate = true
# Enable DPMS on these actions
mouse_move_enables_dpms = true
key_press_enables_dpms = true
}
# vi: ft=hyprlang

View file

@ -44,18 +44,24 @@ group {
group {
groupbar {
render_titles = true
font_size = 8
text_color = rgba(FFFFFFFF) # white
# Title box above window
render_titles = false # disable, looks kinda bad
font_family = Monaspace Krypton
font_size = 11
text_color = rgba(FFFFFFFF) # white
gradients = true
scrolling = false
# Gradients should be enabled only if title rendering is also enabled
# on their own, they look really bad
gradients = false
col.active = rgba(FFA500FF) # light orange
col.inactive = rgba(00A500AA) # transparent green
col.locked_active = rgba(FF8000FF) # dark orange
col.locked_inactive = rgba(A0A500AA) # transparent yello
col.locked_inactive = rgba(A0A500AA) # transparent yellow
# Scrolling in the groupbar shouldn't change the active window
scrolling = false
}
}
@ -102,6 +108,7 @@ decoration {
animations {
enabled = true
first_launch_animation = true # fade in on first launch
animation = windows, 1, 3, default, popin 50%
animation = border, 1, 4, default
@ -118,9 +125,4 @@ misc {
# ### WALLPAPER ###
# #################
misc {
disable_hyprland_logo = true
disable_splash_rendering = false
}
# vi: ft=hyprlang

View file

@ -27,22 +27,6 @@ windowrulev2 = idleinhibit focus, class:^(firefox)$,title:^(Picture-in-Picture)$
windowrulev2 = size 800 550, class:^(qalculate-gtk)$
windowrulev2 = tile, class:^(Spotify)$
# #############
# ### FIXES ###
# #############
# jetbrains
windowrulev2 = windowdance, class:^(jetbrains-.*)$,floating:1
windowrulev2 = center, class:^(jetbrains-.*)$,title:^(splash)$,floating:1
windowrulev2 = nofocus, class:^(jetbrains-.*)$,title:^(splash)$,floating:1
windowrulev2 = noborder, class:^(jetbrains-.*)$,title:^(splash)$,floating:1
windowrulev2 = center, class:^(jetbrains-.*)$,title:^( )$,floating:1
windowrulev2 = stayfocused, class:^(jetbrains-.*)$,title:^( )$,floating:1
windowrulev2 = noborder, class:^(jetbrains-.*)$,title:^( )$,floating:1
windowrulev2 = nofocus, class:^(jetbrains-.*)$,title:^(win.*)$,floating:1
windowrulev2 = noinitialfocus, class:^(jetbrains-.*)$,title:^(win.*)$
# ##################
# ### AUTO FLOAT ###
# ##################
@ -58,10 +42,16 @@ windowrulev2 = float, class:^(com.github.wwmm.easyeffects)
windowrulev2 = float, class:^(opensnitch_ui)$
windowrulev2 = float, class:^(Brave-browser)$,title:^(_crx_.+)$
## Float hyprland-share-picker & some extra actions
windowrulev2 = float, class:^(hyprland-share-picker)$
windowrulev2 = center, class:^(hyprland-share-picker)$
windowrulev2 = animation slide, class:^(hyprland-share-picker)$
## Float firefox windows (like bookmark menus, or some extension windows)
windowrulev2 = float, class:^(firefox)$,title:^(Revert Bookmarks)$
windowrulev2 = float, class:^(firefox)$,title:^(Library)$
windowrulev2 = float, class:^(firefox)$,title:^(Extension: \(uBlock Origin\))
windowrulev2 = float, class:^(firefox)$,title:^(Extension: \(Bitwarden Password Manager\) - Bitwarden — Mozilla Firefox)$
windowrulev2 = float, class:^(firefox)$,title:^(Firefox — Sharing Indicator)$
windowrulev2 = float, class:^(firefox)$,title:^(Opening .+)$
windowrulev2 = float, class:^(firefox)$,title:^$
@ -73,6 +63,11 @@ windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Move files)$
windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Search Files)$
windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Copy Files)$
windowrulev2 = float, class:^(pcmanfm-qt)$,title:^(Confirm to replace files)$
windowrulev2 = float, class:^(pcmanfm-qt|)$,title:^(Choose an Application)$
## Float some qimgv windows
windowrulev2 = float, class:^(qimgv)$,title:^(Add shortcut)$
windowrulev2 = float, class:^(qimgv)$,title:^(Preferences — qimgv)$
## Float some windows from other apps
windowrulev2 = float, class:^(Spotify)$,title:^(Ozone X11)$
@ -88,5 +83,27 @@ windowrulev2 = float, class:^(notification)$
windowrulev2 = float, class:^(error)$
windowrulev2 = float, class:^(splash)$
windowrulev2 = float, class:^(confirmreset)$
windowrulev2 = float, class:^(floating)$
## Float all windows that don't have a title nor a class
windowrulev2 = float, class:^$,title:^$
# #############
# ### FIXES ###
# #############
# jetbrains
windowrulev2 = center, class:^(jetbrains-.*)$,title:^(splash)$,floating:1
windowrulev2 = nofocus, class:^(jetbrains-.*)$,title:^(splash)$,floating:1
windowrulev2 = noborder, class:^(jetbrains-.*)$,title:^(splash)$,floating:1
windowrulev2 = center, class:^(jetbrains-.*)$,title:^( )$,floating:1
windowrulev2 = stayfocused, class:^(jetbrains-.*)$,title:^( )$,floating:1
windowrulev2 = noborder, class:^(jetbrains-.*)$,title:^( )$,floating:1
windowrulev2 = nofocus, class:^(jetbrains-.*)$,title:^(win.*)$,floating:1
windowrulev2 = noinitialfocus, class:^(jetbrains-.*)$,title:^(win.*)$
# Don't add borders to grim selections when taking screenshots
layerrule = noanim, ^(selection)$
# vi: ft=hyprlang

View file

@ -9,11 +9,11 @@ general {
}
background {
path = ~/Pictures/Wallpapers/Categories/Extra/origami.png
path = ~/Media/Pictures/Wallpapers/Categories/Extra/origami.png
blur_passes = 3
blur_size = 6
contrast = 0.7
brightness = 0.7
#contrast = 0.7
#brightness = 0.7
noise = 0.01
contrast = 0.9
brightness = 0.6
@ -53,7 +53,7 @@ label {
font_size = 35
font_family = Noto Sans
position = 0, 0
position = 0, 30
halign = center
valign = center
}
@ -65,7 +65,7 @@ label {
font_size = 20
font_family = Noto Sans
position = 0, -50
position = 0, -20
halign = center
valign = center
}
@ -102,7 +102,7 @@ label {
valign = center
}
# Failed attempts count
# Fail reason
label {
text = <i>$FAIL</i>
color = rgba(255, 34, 34, 1.0) # red
@ -123,7 +123,7 @@ label {
text = Session Locked
color = rgba(255, 255, 255, 1.0)
font_size = 40
font_family = GohuFont uni11 Nerd Font
font_family = Monaspace Krypton
shadow_passes = 1
shadow_size = 5

View file

@ -0,0 +1,5 @@
$bg = $HOME/Media/Pictures/Wallpapers/active
preload=$bg
wallpaper=,$bg # same wallpaper on all monitors
ipc=off