feat: add startup reminder notification and dark theme preference;
feat: implement privacy window tagging and screensharing protection rules; feat: add cursor zoom keybinds and swapnext window keybinds; feat: add keybinds for locking with sleep and shutdown; refactor: change monitor swap keybind to focus monitor and adjust toggle mirror script; chore: comment out hyprfocus and easymotion plugins; feat: add random wallpaper mode for both monitors; refactor: rewrite toggle mirror display script for mirror and normal modes
This commit is contained in:
@@ -24,6 +24,9 @@ $privateBrowser = env GTK_THEME=Adwaita:light zen-browser --private-window
|
||||
### AUTOSTART ###
|
||||
#################
|
||||
|
||||
exec = sh -c '[[ $(cat "$HOME/.config/waybar/goal.txt") != "." ]] && swaync-client -C && notify-send -u critical -i "$HOME/Pictures/Fetch/atheism_paint.png" "Reminder" "$(cat $HOME/.config/waybar/goal.txt)"'
|
||||
exec-once = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
|
||||
|
||||
# Autostart necessary processes (like notifications daemons, status bars, etc.)
|
||||
# Or execute your favorite apps at launch like this:
|
||||
|
||||
@@ -60,6 +63,7 @@ exec-once = [workspace 8 silent] Telegram
|
||||
|
||||
env = XCURSOR_SIZE,24
|
||||
env = HYPRCURSOR_SIZE,24
|
||||
# env = QT_QPA_PLATFORMTHEME,qt6ct
|
||||
|
||||
###################
|
||||
### PERMISSIONS ###
|
||||
@@ -392,7 +396,7 @@ bind = $mainMod SHIFT, minus, movetoworkspacesilent, 11
|
||||
bind = $mainMod SHIFT, equal, movetoworkspacesilent, 12
|
||||
|
||||
# Cycle monitors
|
||||
bind = $mainMod SHIFT, U, swapactiveworkspaces, eDP-1 HDMI-A-1
|
||||
# bind = $mainMod SHIFT, U, swapactiveworkspaces, eDP-1 HDMI-A-1
|
||||
bind = $mainMod, O, focusmonitor, +1
|
||||
|
||||
# Example special workspace (scratchpad)
|
||||
@@ -408,18 +412,16 @@ bind = $mainMod SHIFT, bracketright, workspace, m+1
|
||||
bind = $mainMod, grave, togglespecialworkspace, dungeon
|
||||
bind = $mainMod SHIFT, grave, movetoworkspace, special:dungeon
|
||||
|
||||
# Cringy mouse movement
|
||||
binde = $mainMod ALT, up, exec, ~/.config/hypr/scripts/weirdmouse.sh up
|
||||
binde = $mainMod ALT, down, exec, ~/.config/hypr/scripts/weirdmouse.sh down
|
||||
binde = $mainMod ALT, left, exec, ~/.config/hypr/scripts/weirdmouse.sh left
|
||||
binde = $mainMod ALT, right, exec, ~/.config/hypr/scripts/weirdmouse.sh right
|
||||
|
||||
# Move/resize windows with mainMod + LMB/RMB and dragging
|
||||
bindm = $mainMod, mouse:272, movewindow
|
||||
#bindm = SUPER, Shift_L, swapwindow
|
||||
bindm = $mainMod, mouse:273, resizewindow
|
||||
bindm = SUPER, ALT_L, resizewindow
|
||||
|
||||
# Zoom
|
||||
binde = $mainMod CTRL, equal, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float * 1.1')
|
||||
binde = $mainMod CTRL, minus, exec, hyprctl -q keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '(.float * 0.9) | if . < 1 then 1 else . end')
|
||||
|
||||
# Move windows with keyboard
|
||||
bind = $mainMod SHIFT, h, swapwindow, l
|
||||
bind = $mainMod SHIFT, l, swapwindow, r
|
||||
@@ -430,10 +432,13 @@ bind = $mainMod SHIFT, k, swapwindow, u
|
||||
bind = $mainMod, C, cyclenext
|
||||
bind = $mainMod SHIFT, C, cyclenext, prev
|
||||
|
||||
bind = $mainMod, R, swapnext
|
||||
bind = $mainMod SHIFT, R, swapnext, prev
|
||||
|
||||
# Go to previous window and back
|
||||
bind = ALT, TAB, focuscurrentorlast
|
||||
bind = $mainMod, I, focusurgentorlast
|
||||
bind = $mainMod, Tab, workspace, previous
|
||||
bindp = $mainMod, Tab, workspace, previous
|
||||
|
||||
# Resize windows in different directions via keyboard
|
||||
binde = $mainMod ALT, h, resizeactive, -60 0
|
||||
@@ -480,6 +485,8 @@ bindl = ,XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindl = ,XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle
|
||||
bindel = ,XF86MonBrightnessUp, exec, brightnessctl -e4 -n2 set 5%+
|
||||
bindel = ,XF86MonBrightnessDown, exec, brightnessctl -e4 -n2 set 5%-
|
||||
bindl = $mainMod, XF86MonBrightnessUp, exec, brightnessctl set 60%
|
||||
bindl = $mainMod, XF86MonBrightnessDown, exec, brightnessctl set 0
|
||||
|
||||
# Requires playerctl
|
||||
bindl = , XF86AudioNext, exec, playerctl next
|
||||
@@ -524,8 +531,17 @@ bind = $mainMod SHIFT, F, tagwindow, zawarudo
|
||||
# Lock screen
|
||||
bind = $mainMod, Backspace, exec, hyprlock
|
||||
|
||||
# Lock screen and sleep
|
||||
bind = $mainMod ALT, Backspace, exec, systemctl suspend
|
||||
|
||||
# Shutdown
|
||||
bind = $mainMod SHIFT, Backspace, exec, shutdown now
|
||||
|
||||
# Toggle privacy for window
|
||||
bind = $mainMod SHIFT, U, tagwindow, privacy
|
||||
# Toggle privacy expose for window
|
||||
bind = $mainMod SHIFT, I, tagwindow, privacyexpose
|
||||
|
||||
# Discord PTT
|
||||
bindr = , F8, sendshortcut, CTRL SHIFT, F8, class:^(vesktop)$
|
||||
|
||||
@@ -540,9 +556,12 @@ bindrn = CTRL, Space, sendshortcut, , F6, class:^(zen)$
|
||||
# OBS
|
||||
bindrn = $mainMod CTRL, bracketleft, pass, class:^(com.obsproject.Studio)$
|
||||
bindrn = $mainMod CTRL, bracketright, pass, class:^(com.obsproject.Studio)$
|
||||
bindrn = $mainMod CTRL, apostrophe, pass, class:^(com.obsproject.Studio)$
|
||||
|
||||
bind = , XF86PowerOff, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 35% & ristretto -f ~/Templates/Images/theorist.jpg & play ~/Templates/Sounds/scream.mp3
|
||||
|
||||
bind = $mainMod SHIFT, p, exec, .config/hypr/scripts/random_wallpaper.sh random
|
||||
|
||||
# Disable binds temporarily
|
||||
bind = $mainMod, Escape, submap, clean
|
||||
submap = clean
|
||||
@@ -579,6 +598,27 @@ windowrule = group override set always,class:^(vesktop)$
|
||||
windowrule = workspace 8 silent,class:^(Element)$
|
||||
windowrule = group override set always,class:^(Element)$
|
||||
|
||||
# Screensharing protection
|
||||
windowrule = tag +privacy,class:^(org.telegram.desktop)$
|
||||
windowrule = tag +privacy,class:^(Element)$
|
||||
windowrule = tag +privacy,class:^(vesktop)$
|
||||
windowrule = tag +privacy,class:^(com.github.hluk.copyq)$
|
||||
windowrule = tag +privacy,class:^(org.keepassxc.KeePassXC)$
|
||||
windowrule = tag +privacy,class:^(com.nextcloud.desktopclient.nextcloud)$
|
||||
windowrule = tag +privacy,title:^(diary)$
|
||||
windowrule = tag +privacy,class:thunar,title:.*(Downloads|Telegram Desktop).*
|
||||
windowrule = tag +privacy,class:^(Mullvad VPN)$
|
||||
windowrule = tag +privacy,class:^(Tor Browser)$
|
||||
windowrule = tag +privacy,class:^(com.obsproject.Studio)$
|
||||
# These aren't added in my version yet
|
||||
# layerrule = noscreenshare, swaync-control-center
|
||||
# layerrule = noscreenshare, swaync-notification-window
|
||||
windowrule = noscreenshare, tag:privacy
|
||||
windowrule = bordercolor rgba(cc00ffff) rgba(630063ff) 90deg,tag:privacy
|
||||
windowrule = noscreenshare 0, tag:privacyexpose
|
||||
windowrule = bordercolor rgba(ff0000ff) rgba(ff0000ff) 90deg,tag:privacyexpose
|
||||
windowrule = dimaround, tag:privacyexpose
|
||||
|
||||
# Nextcloud
|
||||
windowrule = float,animation slide top,resize 800 600,move center,class:^(com.nextcloud.desktopclient.nextcloud)$
|
||||
|
||||
@@ -601,19 +641,23 @@ windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned
|
||||
|
||||
# Animation for rofi
|
||||
layerrule = ignorezero, rofi
|
||||
layerrule = dimaround, rofi
|
||||
layerrule = blur, rofi
|
||||
layerrule = animation slide bottom, rofi
|
||||
|
||||
# Animation fpr swaync
|
||||
layerrule = blur, swaync-control-center
|
||||
layerrule = blur, swaync-notification-window
|
||||
layerrule = abovelock, swaync-notification-window
|
||||
layerrule = dimaround, swaync-control-center
|
||||
layerrule = ignorezero, swaync-control-center
|
||||
layerrule = ignorezero, swaync-notification-window
|
||||
layerrule = animation slideIn right, swaync-control-center
|
||||
|
||||
# Waybar blur
|
||||
layerrule = ignorezero, waybar
|
||||
layerrule = blur, waybar
|
||||
layerrule = ignorealpha 0.6, waybar
|
||||
|
||||
# Adjustments for certain workspaces
|
||||
workspace = special:magic, gapsin:20, gapsout:50, shadow:false
|
||||
workspace = 9, gapsin:15, gapsout:40
|
||||
@@ -623,73 +667,73 @@ workspace = 9, gapsin:15, gapsout:40
|
||||
###############
|
||||
exec-once = hyprpm reload -n
|
||||
|
||||
# Easymotion
|
||||
bind = SUPER, x, easymotion, action:hyprctl dispatch focuswindow address:{}
|
||||
# # Easymotion
|
||||
# bind = SUPER, x, easymotion, action:hyprctl dispatch focuswindow address:{}
|
||||
|
||||
# Close unfocused
|
||||
bind = $mainMod SHIFT, x, plugin:xtd:closeunfocused
|
||||
# bind = $mainMod SHIFT, x, plugin:xtd:closeunfocused
|
||||
|
||||
plugin {
|
||||
|
||||
hyprfocus {
|
||||
animation = hyprfocusIn, 1, 3, quick
|
||||
animation = hyprfocusOut, 1, 3, quick
|
||||
fade_opacity = 0.94
|
||||
mode = flash
|
||||
}
|
||||
|
||||
easymotion {
|
||||
#font size of the text
|
||||
textsize=72
|
||||
|
||||
#color of the text, takes standard hyprland color format
|
||||
textcolor=rgba(ffffffff)
|
||||
|
||||
#background color of the label box. alpha is respected
|
||||
bgcolor=rgba(ff7777a0)
|
||||
|
||||
#enable blur. The bgcolor alpha must be at least semi-transparent.
|
||||
blur=0
|
||||
|
||||
#Set blur alpha value. Blur must be enabled (float value)
|
||||
blurA=1.0
|
||||
|
||||
#Set xray. Blur must be enabled
|
||||
xray=0
|
||||
|
||||
#font to use for the label. This is passed directly to the pango font description
|
||||
textfont=Iosevka Nerd Font Mono
|
||||
|
||||
#padding around the text (inside the label box) size in pixels, adjusted for
|
||||
#monitor scaling. This is the same format as hyprland's gapsin/gapsout workspace layout rule
|
||||
#example: textpadding=2 5 5 2 (spaces not commas)
|
||||
textpadding=5
|
||||
|
||||
#size of the border around the label box. A border size of zero disables border rendering.
|
||||
bordersize=2
|
||||
|
||||
#color of the border. takes the same format as hyprland's border (so it can be a gradient)
|
||||
bordercolor=rgba(ffffffff)
|
||||
|
||||
#rounded corners? Same as hyprland's 'decoration:rounding' config
|
||||
rounding=1
|
||||
|
||||
#what to do if a window is fullscreen
|
||||
#none: nothing. (easymotion label won't be displayed on that window)
|
||||
#toggle: take the window out of fullscreen entirely.
|
||||
#maximize: convert the window to maximized.
|
||||
#windows are restored to fullscreen after easymotion is exited/selected
|
||||
fullscreen_action=none
|
||||
|
||||
#which keys to use for selecting windows
|
||||
motionkeys=abcdefghijklmnopqrstuvwxyZ1234567890
|
||||
#which keys to use for labeling windows
|
||||
motionlabels=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
|
||||
|
||||
#if a monitor has a focused special workspace, only put easymotion labels on the windows in the special workspace
|
||||
only_special = true
|
||||
}
|
||||
}
|
||||
# plugin {
|
||||
#
|
||||
# hyprfocus {
|
||||
# animation = hyprfocusIn, 1, 3, quick
|
||||
# animation = hyprfocusOut, 1, 3, quick
|
||||
# fade_opacity = 0.94
|
||||
# mode = flash
|
||||
# }
|
||||
#
|
||||
# easymotion {
|
||||
# #font size of the text
|
||||
# textsize=72
|
||||
#
|
||||
# #color of the text, takes standard hyprland color format
|
||||
# textcolor=rgba(ffffffff)
|
||||
#
|
||||
# #background color of the label box. alpha is respected
|
||||
# bgcolor=rgba(ff7777a0)
|
||||
#
|
||||
# #enable blur. The bgcolor alpha must be at least semi-transparent.
|
||||
# blur=0
|
||||
#
|
||||
# #Set blur alpha value. Blur must be enabled (float value)
|
||||
# blurA=1.0
|
||||
#
|
||||
# #Set xray. Blur must be enabled
|
||||
# xray=0
|
||||
#
|
||||
# #font to use for the label. This is passed directly to the pango font description
|
||||
# textfont=Iosevka Nerd Font Mono
|
||||
#
|
||||
# #padding around the text (inside the label box) size in pixels, adjusted for
|
||||
# #monitor scaling. This is the same format as hyprland's gapsin/gapsout workspace layout rule
|
||||
# #example: textpadding=2 5 5 2 (spaces not commas)
|
||||
# textpadding=5
|
||||
#
|
||||
# #size of the border around the label box. A border size of zero disables border rendering.
|
||||
# bordersize=2
|
||||
#
|
||||
# #color of the border. takes the same format as hyprland's border (so it can be a gradient)
|
||||
# bordercolor=rgba(ffffffff)
|
||||
#
|
||||
# #rounded corners? Same as hyprland's 'decoration:rounding' config
|
||||
# rounding=1
|
||||
#
|
||||
# #what to do if a window is fullscreen
|
||||
# #none: nothing. (easymotion label won't be displayed on that window)
|
||||
# #toggle: take the window out of fullscreen entirely.
|
||||
# #maximize: convert the window to maximized.
|
||||
# #windows are restored to fullscreen after easymotion is exited/selected
|
||||
# fullscreen_action=none
|
||||
#
|
||||
# #which keys to use for selecting windows
|
||||
# motionkeys=abcdefghijklmnopqrstuvwxyZ1234567890
|
||||
# #which keys to use for labeling windows
|
||||
# motionlabels=ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
|
||||
#
|
||||
# #if a monitor has a focused special workspace, only put easymotion labels on the windows in the special workspace
|
||||
# only_special = true
|
||||
# }
|
||||
# }
|
||||
|
||||
debug {
|
||||
disable_logs = false
|
||||
|
||||
Reference in New Issue
Block a user