Add toggle-screenshare keybind

This commit is contained in:
retrilzzy committed 2025-11-28 12:37:42 +05:00
1 parent 9580d84d4c
commit 4f50fbf423
5 files changed
+51 -10

No files matched your search

+35
View File
@@ -0,0 +1,35 @@
#!/bin/bash
FILE="$HOME/.config/hypr/hyprland/rules.conf"
LAYER_RULE="layerrule = noscreenshare,^(.*)$"
WINDOW_RULE="windowrulev2 = noscreenshare, initialClass:^(.*)$"
escape_regex() {
printf '%s\n' "$1" | sed -e 's/[][\/.^$*]/\\&/g'
}
toggle_rule() {
local RULE_ESC
RULE_ESC=$(escape_regex "$1")
# uncomment if commented
if grep -q "^# $RULE_ESC" "$FILE"; then
sed -i "s/^# \(.*$RULE_ESC\)/\1/" "$FILE"
echo "Enabled"
# comment if uncommented
elif grep -q "^$RULE_ESC" "$FILE"; then
sed -i "s/^\($RULE_ESC\)/# \1/" "$FILE"
echo "Disabled"
else
echo "None"
fi
}
LAYER_STATE=$(toggle_rule "$LAYER_RULE")
WINDOW_STATE=$(toggle_rule "$WINDOW_RULE")
notify-send "No Screenshare" "Window: $WINDOW_STATE | Layer: $LAYER_STATE" -t 2000
sleep 0.2
hyprctl reload
@@ -52,6 +52,9 @@ bind = $mainMod, M, exec, bash -c 'wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle;
# Screen Recording
bind = $mainMod SHIFT, R, exec, ~/.config/bin/record.sh
# Toggle NoScreenShare
bind = $mainMod, H, exec, ~/.config/bin/toggle-noscreenshare.sh
# Sessions and power
bind = $mainMod, L, exec, loginctl lock-session
+11 -10
View File
@@ -35,10 +35,6 @@ windowrulev2 = opacity 1 1, title:$PiP
windowrulev2 = move 71% 13%, title:$PiP
# No Screen Share
windowrulev2 = noscreenshare, class:^(polkit-gnome-authentication-agent-1|org.keepassxc.KeePassXC)$
# Opacity 100%
$OPAQUE_CLASSES = ^(libreoffice|ONLYOFFICE|qemu|vlc|com.obsproject.Studio|imv|org.gnome.NautilusPreviewer)$
windowrulev2 = opaque, class:$OPAQUE_CLASSES
@@ -85,11 +81,9 @@ windowrulev2 = immediate, class:^(steam_app).*
# Ignore maximize requests from apps.
windowrulev2 = suppressevent maximize, class:.*
# Fix some dragging issues with XWayland
windowrulev2 = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
# Fix blur around XWayland windows
# Variant 1
windowrulev2 = noblur, class:^()$, title:^()$
@@ -99,7 +93,14 @@ windowrulev2 = opacity 0.98 override, class:^()$, title:^()$
# windowrulev2 = opacity 0.98 override, xwayland:1, floating:1
# Blur Layers
# $BLUR_LAYERS = ^(swaync-control-center|swaync-notification-window)$
# layerrule = blur, $BLUR_LAYERS
# layerrule = ignorezero, $BLUR_LAYERS
# No Screen Share for Authentication Window and KeePassXC
windowrulev2 = noscreenshare, class:^(polkit-gnome-authentication-agent-1|org.keepassxc.KeePassXC)$
# NoScreenShare for SwayNC
# layerrule = noscreenshare, swaync-notification-window
# layerrule = noscreenshare, ^(swaync-control-center|swaync-notification-window)$
# NoScreenShare (~/.config/bin/toggle-noscreenshare.sh)
# layerrule = noscreenshare,^(.*)$
# windowrulev2 = noscreenshare, initialClass:^(.*)$
+1
View File
@@ -310,6 +310,7 @@
| <kbd>Super</kbd> + <kbd>Escape</kbd> | Скрыть/показать Waybar |
| <kbd>Super</kbd> +<kbd>Alt</kbd> + <kbd>P</kbd> | Случайный фон + Генерация темы (matugen) |
| <kbd>Super</kbd> + <kbd>Shift</kbd> + <kbd>R</kbd> | Начать/остановить запись области экрана (gpu-screen-recorder) |
| <kbd>Super</kbd> + <kbd>H</kbd> | Переключить видимость окон и слоев на демонстрации экрана |
| <kbd>Super</kbd> + <kbd>M</kbd> | Включение/выключение микрофона |
| <kbd>Super</kbd> + <kbd>Z</kbd> | Увеличить масштаб курсора |
| <kbd>Super</kbd> + <kbd>Колесико мыши</kbd> | Увеличить/уменьшить масштаб курсора |
+1
View File
@@ -311,6 +311,7 @@ Window manager (WM).
| <kbd>Super</kbd> + <kbd>Escape</kbd> | Hide/show Waybar |
| <kbd>Super</kbd> +<kbd>Alt</kbd> + <kbd>P</kbd> | Random background + Generate theme (matugen) |
| <kbd>Super</kbd> + <kbd>Shift</kbd> + <kbd>R</kbd> | Start/stop recording a screen area (gpu-screen-recorder) |
| <kbd>Super</kbd> + <kbd>H</kbd> | Toggle windows and layers visibility on screen share |
| <kbd>Super</kbd> + <kbd>M</kbd> | Mute/unmute microphone |
| <kbd>Super</kbd> + <kbd>Z</kbd> | Zoom in |
| <kbd>Super</kbd> + <kbd>Mouse wheel</kbd> | Zoom in/out |