pain and suffering

This commit is contained in:
tulg 2025-10-18 17:35:04 +03:00
commit 510db0f1d4
42 changed files with 2150 additions and 0 deletions

35
config/hypr/hypridle.conf Normal file
View file

@ -0,0 +1,35 @@
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.
}
listener {
timeout = 150 # 2.5min.
on-timeout = brightnessctl -s set 10 # set monitor backlight to minimum, avoid 0 on OLED monitor.
on-resume = brightnessctl -r # monitor backlight restore.
}
# turn off keyboard backlight, comment out this section if you dont have a keyboard backlight.
listener {
timeout = 150 # 2.5min.
on-timeout = brightnessctl -sd rgb:kbd_backlight set 0 # turn off keyboard backlight.
on-resume = brightnessctl -rd rgb:kbd_backlight # turn on keyboard backlight.
}
listener {
timeout = 300 # 5min
on-timeout = loginctl lock-session # lock screen when timeout has passed
}
listener {
timeout = 330 # 5.5min
on-timeout = hyprctl dispatch dpms off # screen off when timeout has passed
on-resume = hyprctl dispatch dpms on # screen on when activity is detected after timeout has fired.
}
listener {
timeout = 1800 # 30min
on-timeout = systemctl suspend # suspend pc
}

354
config/hypr/hyprland.conf Normal file
View file

@ -0,0 +1,354 @@
# #######################################################################################
# AUTOGENERATED HYPR CONFIG.
# PLEASE USE THE CONFIG PROVIDED IN THE GIT REPO /examples/hypr.conf AND EDIT IT,
# OR EDIT THIS ONE ACCORDING TO THE WIKI INSTRUCTIONS.
# #######################################################################################
#
# Please note not all available settings / options are set here.
# For a full list, see the wiki
#
# autogenerated = 1 # remove this line to remove the warning
# See https://wiki.hyprland.org/Configuring/Monitors/
monitor = eDP-1, 1920x1080@60.02000, 0x0, 1.00
monitor = Virtual-1, 1920x1080,0x0, 1
#monitor = DP-1, 1920x1080@60, 0x0, 1
#monitor = HDMI-A-1, 1920x1080@60.02000, 0x0, 1
#monitor
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
# Execute your favorite apps at launch
#exec-once = garuda-welcome
# Add networkmanager applet to tray in waybar
exec-once = nm-applet --indicator
# Set keyboard layout
#exec-once = .local/bin/garuda-locale.sh
exec-once = NetworkManager
# Set monitor values. For own values, please comment with #
#exec-once = .local/bin/mon.sh
exec-once = swww-daemon
# Source a file (multi-file configs)
# source = ~/.config/hypr/myColors.conf
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input {
kb_layout = us
kb_variant =
kb_model =
kb_options =
kb_rules =
numlock_by_default= true
follow_mouse = 1
touchpad {
#natural_scroll = true
tap-to-click = true
disable_while_typing = true
}
sensitivity = -0.5 # -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 = rgb(D3869B)
col.inactive_border = rgba(595959aa)
layout = dwindle
}
decoration {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
rounding = 10
blur {
enabled = true
size = 5
passes = 1
}
# drop_shadow = true
# shadow_range = 4
# shadow_render_power = 3
# col.shadow = rgba(1a1a1aee)
}
animations {
enabled = true
# 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, 2, default, popin 80%
animation = border, 1, 2, default
animation = fade, 1, 2, default
animation = workspaces, 1, 2, default
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
pseudotile = true # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # 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
}
misc {
disable_hyprland_logo = true
}
# Example per-device config
# See https://wiki.hyprland.org/Configuring/Keywords/
# executing for more
#device:epic mouse V1 {
# sensitivity = -0.5
#}
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
# Example windowrule v1
#windowrule = float, ^(kitty)$
#windowrule = float, ^(garuda-assistant)$
#windowrule = float, ^(garuda-boot-options)$
#windowrule = float, ^(garuda-boot-repair)$
#windowrule = float, ^(garuda-gamer)$
#windowrule = float, ^(garuda-network-assistant)$
#windowrule = float, ^(garuda-settings-manager)$
#windowrule = float, ^(garuda-welcome)$
# Example windowrule v2
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
$mainMod = ALT
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
bind = $mainMod SHIFT, R, exec, hyprctl reload
#bind = $mainMod, 36, exec, footclient
bind = $mainMod, E, exec, kitty
bind = $mainMod, C, killactive,
bind = $mainMod, M, exec, nwgbar
bind = $mainMod, G, exec, /home/tulg/.config/looking-glass-client -F -f /dev/kvmfr0 -m 58
bind = $mainMod SHIFT, O, togglefloating,
bind = $mainMod, D, exec, wofi --show drun --allow-images -W 300 -H 500 -l 4
bind = $mainMod SHIFT, D, exec, nwg-drawer -mb 10 -mr 10 -ml 10 -mt 10
bind = $mainMod, P, pseudo, # dwindle
bind = $mainMod SHIFT, P, togglesplit, # dwindle
# Mainmod + Function keys
bind = $mainMod, F1, exec, firedragon
bind = $mainMod, F2, exec, thunderbird
bind = $mainMod, F3, exec, thunar
bind = $mainMod, F4, exec, geany
bind = $mainMod, F5, exec, github-desktop
bind = $mainMod, F6, exec, gparted
bind = $mainMod, F7, exec, inkscape
bind = $mainMod, F8, exec, blender
bind = $mainMod, F9, exec, meld
bind = $mainMod, F10, exec, joplin-desktop
bind = $mainMod, F11, exec, snapper-tools
bind = $mainMod, F12, exec, galculator
# Move focus with mainMod + arrow keys
bind = $mainMod, left, movefocus, l
bind = $mainMod, H, movefocus, l
bind = $mainMod, right, movefocus, r
bind = $mainMod, L, movefocus, r
bind = $mainMod, up, movefocus, u
bind = $mainMod, K, movefocus, u
bind = $mainMod, down, movefocus, d
bind = $mainMod, J, movefocus, d
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Move to workspace with focused container with ALT + SHIFT + [0-9]
bind = ALT SHIFT, 1, movetoworkspace, 1
bind = ALT SHIFT, 2, movetoworkspace, 2
bind = ALT SHIFT, 3, movetoworkspace, 3
bind = ALT SHIFT, 4, movetoworkspace, 4
bind = ALT SHIFT, 5, movetoworkspace, 5
bind = ALT SHIFT, 6, movetoworkspace, 6
bind = ALT SHIFT, 7, movetoworkspace, 7
bind = ALT SHIFT, 8, movetoworkspace, 8
bind = ALT SHIFT, 9, movetoworkspace, 9
bind = ALT SHIFT, 0, movetoworkspace, 10
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
# 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
# background
#exec-once = wpaperd
# status bar
exec-once = waybar
layerrule = blur , waybar
layerrule = ignorezero , waybar
# set volume (laptops only and may or may not work on PCs)
bind = ,122, exec, pactl set-sink-volume @DEFAULT_SINK@ -5%
bind = ,123, exec, pactl set-sink-volume @DEFAULT_SINK@ +5%
bind = ,121, exec, pactl set-sink-volume @DEFAULT_SINK@ 0%
# other bindings
#bind = $mainMod, E, exec, kitty
bind = $mainMod, F, fullscreen
bind = $mainMod, Q, exec, kitty lf
bind = ,232,exec,brightnessctl -c backlight set 5%-
bind = ,233,exec,brightnessctl -c backlight set +5%
#bind = $mainMod SHIFT,C, exec, killall -9 wpaperd && wpaperd
# Screenshots:
#
# Change to swappy https://github.com/jtheoof/swappy
# Old functions only commented out to make it easier for the user to change if necessary.
# Snip a selection and pipe to swappy
bind = ,Print, exec, grim -g "$(slurp)" - | swappy -f -
# Screenshot a window and pipe to swappy
bind = CTRL, Print, exec, .config/hypr/scripts/screenshot_window.sh
# Screenshot the current display and pipe to swappy
bind = SHIFT, Print, exec, .config/hypr/scripts/screenshot_display.sh
# https://github.com/hyprwm/contrib/blob/main/grimblast/grimblast.1.scd
# Print: All outputs
# SHIFT+Print: Select area
# $mainMod+Print: Current window
# $mainMod+Shfit+Print: Current output
#
# bind = ,Print, exec, grimblast save screen && notify-send Screenshot captured
# bind = SHIFT, Print, exec, grimblast save area && notify-send Selected\ area captured
# bind = $mainMod, Print, exec, grimblast save active && notify-send Active\ window captured
# bind = $mainMod SHIFT, Print, exec, grimblast output active && notify-send Output captured
# for resizing window
# will switch to a submap called resize
bind=$mainMod,R,submap,resize
# will start a submap called "resize"
submap=resize
# sets repeatable binds for resizing the active window
binde=,right,resizeactive,50 0
binde=,L,resizeactive,50 0
binde=,left,resizeactive,-50 0
binde=,H,resizeactive,-50 0
binde=,up,resizeactive,0 -50
binde=,K,resizeactive,0 -50
binde=,down,resizeactive,0 50
binde=,J,resizeactive,0 50
# use reset to go back to the global submap
bind=,escape,submap,reset
# will reset the submap, meaning end the current one and return to the global one
submap=reset
# to move window
bind = $mainMod SHIFT,up, movewindow, u
bind = $mainMod SHIFT,K, movewindow, u
bind = $mainMod SHIFT,down, movewindow, d
bind = $mainMod SHIFT,J, movewindow, d
bind = $mainMod SHIFT,left, movewindow, l
bind = $mainMod SHIFT,H, movewindow, l
bind = $mainMod SHIFT,right, movewindow, r
bind = $mainMod SHIFT,L, movewindow, r
# other blurings
blurls = wofi
blurls = thunar
blurls = gedit
blurls = gtk-layer-shell # for nwg-drawer
blurls = catfish
# window rules
#windowrule = opacity 0.85 override 0.85 override,^(thunar)$
#windowrule = opacity 0.85 override 0.85 override,^(gedit)$
#windowrule = opacity 0.85 override 0.85 override,^(catfish)$
#windowrule = stayfocused, ^(wofi)$
# window rules with evaluation
windowrulev2 = opacity 0.85 0.85,floating:1
exec-once = mako
exec-once =/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = foot --server
# experimental(might work might won't)
# pre executions (under development)
#exec-once=exec xrdb -load ~/.Xresources
# Clipboard Manager
exec-once = wl-paste --type text --watch cliphist store #Stores only text data
exec-once = wl-paste --type image --watch cliphist store #Stores only image data
bind = $mainMod, V, exec, cliphist list | wofi --dmenu | cliphist decode | wl-copy
# video play paues bindings
bind=,172,exec,playerctl play-pause
bind=,171,exec,playerctl next
bind=,173,exec,playerctl previous
# Use gtk-settings
exec-once = apply-gsettings
exec-once = gsettings set org.gnome.desktop.interface cursor-theme BreezeX-RosePine-Linux
exec-once = gsettings set org.gnome.desktop.interface cursor-size 28
env = HYPRCURSOR_THEME,rose-pine-hyprcursor
env = HYPRCURSOR_SIZE,28
# Performance Tweaks (For less power consumption without sacrificing performance)
# See : https://wiki.hyprland.org/Configuring/Performance/
misc:vfr = true
# enable G-Hyprland
bind = $mainMod SHIFT, G, exec, footclient -e ~/.local/bin/bear/implement_gum.sh enable
# Install Garuda Hyprland
bind = $mainMod, I, exec, .local/bin/calamares.sh
# Let the user customize this hyprstart script by overriding stuff in $hyprstart
exec-once = .config/hypr/exec-hyprland

85
config/hypr/hyprlock.conf Normal file
View file

@ -0,0 +1,85 @@
# background
background {
monitor =
#path = screenshot
path = /usr/share/wallpapers/garuda-wallpapers/Garuda-TilliDie-cube-105.png
color = $background
blur_passes = 2
contrast = 1
brightness = 0.5
vibrancy = 0.2
vibrancy_darkness = 0.2
}
# general
general {
no_fade_in = true
no_fade_out = true
hide_cursor = false
grace = 0
disable_loading_bar = false
}
# animations
animations {
enabled = true
}
# input field
input-field {
monitor =
size = 250, 60
outline_thickness = 2
dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8
dots_spacing = 0.35 # Scale of dots' absolute size, 0.0 - 1.0
dots_center = true
outer_color = rgba(236, 240, 15, 1)
inner_color = rgba(240 , 204, 14, 1)
font_color = $foreground
fade_on_empty = false
rounding = -1
check_color = rgb(204, 136, 34)
placeholder_text = <i><span foreground="##000000">Input Password...</span></i>
hide_input = false
position = 0, -200
halign = center
valign = center
}
# date
label {
monitor =
text = cmd[update:1000] echo "$(date +"%A, %B %d")"
color = rgba(242, 243, 244, 0.75)
font_size = 22
font_family = JetBrains Mono
position = 0, 300
halign = center
valign = center
}
# time
label {
monitor =
text = cmd[update:1000] echo "$(date +"%-I:%M")"
color = rgba(242, 243, 244, 0.75)
font_size = 95
font_family = JetBrains Mono Extrabold
position = 0, 200
halign = center
valign = center
}
# things that can be played by user
Profile Picture
image {
monitor =
path = /usr/share/logos/Hyprland_logo.png
size = 200
border_size = 2
border_color = $foreground
position = 0, 0
halign = center
valign = center
}

19
config/hypr/hyprstart Executable file
View file

@ -0,0 +1,19 @@
#!/bin/sh
cd ~
# user preferred settings
#cursor size
export XCURSOR_SIZE=24
# text editor
export MICRO_TRUECOLOR=1
export EDITOR=/usr/bin/micro
#browser
export BROWSER=firefox
#terminal
export TERM=kitty
#mail
export MAIL=thunderbird
# check /usr/local/bin/hyprstart

View file

View file

@ -0,0 +1,11 @@
#!/bin/bash
a=$(pidof hypridle)
if [[ $a ]]
then
killall -9 hypridle
notify-send "idle inhibitor activated"
else
notify-send "idle inhibitor deactivated"
hypridle &> /dev/null
fi

View file

@ -0,0 +1,29 @@
#!/bin/sh
swaylock \
--screenshots \
--clock \
--hide-keyboard-layout \
--indicator \
--indicator-radius 100 \
--indicator-thickness 7 \
--effect-blur 7x5 \
--effect-vignette 0.5:0.5 \
--ring-color cba6f7 \
--ring-ver-color 89b4fa \
--ring-wrong-color f38ba8 \
--ring-clear-color a6e3a1 \
--key-hl-color 1e1e2e \
--bs-hl-color eba0ac \
--text-color 11111b \
--text-caps-lock-color 11111b \
--line-color 00000000 \
--line-ver-color 00000000 \
--line-wrong-color 00000000 \
--line-clear-color 00000000 \
--separator-color 00000000 \
--inside-color cba6f7 \
--inside-ver-color 89b4fa\
--inside-wrong-color f38ba8 \
--inside-clear-color a6e3a1 \
--grace 2 \
--fade-in 0.2

View file

@ -0,0 +1,6 @@
#!/bin/bash
# .config/hypr/scripts/screenshot_display.sh
# Screenshot the current display Shift+Print
output_id=$(hyprctl -j monitors | jq -r '.[] | select(.focused).name')
grim -o $output_id - | swappy -f -

View file

@ -0,0 +1,5 @@
#!/bin/bash
# .config/hypr/scripts/screenshot_window.sh
# Screenshot a window Ctrl+Print
grim -g "$(hyprctl -j activewindow | jq -r '.at + .size | "\(.[0]),\(.[1]) \(.[2])x\(.[3])"' | slurp)" - | swappy -f -

View file