From 895519a6cf08e71e14fd793280c49004ccd273e4 Mon Sep 17 00:00:00 2001 From: dabruh <11458706-dabruh@users.noreply.gitlab.com> Date: Mon, 3 Jun 2024 15:45:29 +0200 Subject: [PATCH] Revert to i3lock as xscreensaver was unreliable --- .../i3/layers/config.post-main-00-security | 1 - .config/xscreensaver/config | 298 ------------------ .installer/packages | 4 +- .local/bin/i3exit | 44 ++- .xscreensaver | 1 - 5 files changed, 43 insertions(+), 305 deletions(-) delete mode 100644 .config/xscreensaver/config delete mode 120000 .xscreensaver diff --git a/.config/i3/layers/config.post-main-00-security b/.config/i3/layers/config.post-main-00-security index adfdac4..3667950 100644 --- a/.config/i3/layers/config.post-main-00-security +++ b/.config/i3/layers/config.post-main-00-security @@ -2,7 +2,6 @@ exec_always --no-startup-id xss-lock --transfer-sleep-lock -- i3exit lock # lock screen after inactivity -exec_always --no-startup-id pgrep -x xscreensaver || xscreensaver & exec --no-startup-id dmenuxautolock -t $lock_after_min -n $lock_notify_sec bindsym $mod+Ctrl+Shift+l exec --no-startup-id dmenuxautolock -t 0 -n 0 diff --git a/.config/xscreensaver/config b/.config/xscreensaver/config deleted file mode 100644 index 7ea51f0..0000000 --- a/.config/xscreensaver/config +++ /dev/null @@ -1,298 +0,0 @@ -# XScreenSaver Preferences File -# Written by xscreensaver-settings 6.08 for cerberus on Sun Mar 3 10:27:57 2024. -# https://www.jwz.org/xscreensaver/ - -timeout: 0:01:00 -cycle: 0:01:00 -lock: False -lockTimeout: 0:00:00 -passwdTimeout: 0:00:30 -visualID: default -installColormap: True -verbose: False -splash: True -splashDuration: 0:00:05 -demoCommand: xscreensaver-demo -nice: 10 -fade: True -unfade: False -fadeSeconds: 0:00:02 -ignoreUninstalledPrograms:False -dpmsEnabled: False -dpmsQuickOff: False -dpmsStandby: 2:00:00 -dpmsSuspend: 2:00:00 -dpmsOff: 4:00:00 -grabDesktopImages: False -grabVideoFrames: False -chooseRandomImages: False -imageDirectory: - -mode: random -selected: 50 - -textMode: url -textLiteral: XScreenSaver -textFile: -textProgram: fortune -textURL: https://feeds.feedburner.com/ubuntu-news - -programs: \ -- maze -root \n\ -- GL: sphereeversion -root \n\ -- GL: superquadrics -root \n\ -- attraction -root \n\ -- blitspin -root \n\ -- greynetic -root \n\ -- helix -root \n\ -- hopalong -root \n\ -- imsmap -root \n\ -- noseguy -root \n\ -- pyro -root \n\ -- qix -root \n\ -- rocks -root \n\ -- rorschach -root \n\ -- decayscreen -root \n\ -- flame -root \n\ -- halo -root \n\ - slidescreen -root \n\ -- pedal -root \n\ -- bouboule -root \n\ -- braid -root \n\ -- coral -root \n\ -- deco -root \n\ -- drift -root \n\ -- fadeplot -root \n\ -- galaxy -root \n\ -- goop -root \n\ -- grav -root \n\ -- ifs -root \n\ -- unicode -root \n\ -- GL: jigsaw -root \n\ -- julia -root \n\ -- kaleidescope -root \n\ -- GL: moebius -root \n\ -- moire -root \n\ -- GL: morph3d -root \n\ -- mountain -root \n\ -- munch -root \n\ -- penrose -root \n\ -- GL: pipes -root \n\ -- rd-bomb -root \n\ -- GL: rubik -root \n\ -- sierpinski -root \n\ -- slip -root \n\ -- GL: sproingies -root \n\ -- starfish -root \n\ -- strange -root \n\ -- swirl -root \n\ -- triangle -root \n\ -- xjack -root \n\ - xlyap -root \n\ -- GL: atlantis -root \n\ -- bsod -root \n\ -- GL: bubble3d -root \n\ -- GL: cage -root \n\ -- crystal -root \n\ -- cynosure -root \n\ -- discrete -root \n\ -- distort -root \n\ -- epicycle -root \n\ -- flow -root \n\ -- GL: glplanet -root \n\ -- interference -root \n\ -- kumppa -root \n\ -- GL: lament -root \n\ -- moire2 -root \n\ -- GL: sonar -root \n\ -- GL: stairs -root \n\ -- truchet -root \n\ -- vidwhacker -root \n\ -- blaster -root \n\ -- bumps -root \n\ -- ccurve -root \n\ -- compass -root \n\ -- deluxe -root \n\ -- demon -root \n\ -- GL: extrusion -root \n\ -- loop -root \n\ -- penetrate -root \n\ -- petri -root \n\ -- phosphor -root \n\ -- GL: pulsar -root \n\ -- ripples -root \n\ -- shadebobs -root \n\ -- GL: sierpinski3d -root \n\ -- spotlight -root \n\ -- squiral -root \n\ -- wander -root \n\ -- webcollage -root \n\ -- xflame -root \n\ - xmatrix -root \n\ -- GL: gflux -root \n\ -- nerverot -root \n\ -- xrayswarm -root \n\ -- xspirograph -root \n\ -- GL: circuit -root \n\ -- GL: dangerball -root \n\ -- GL: engine -root \n\ -- GL: flipscreen3d -root \n\ -- GL: gltext -root \n\ -- GL: menger -root \n\ -- GL: molecule -root \n\ -- rotzoomer -root \n\ - scooter -root \n\ -- speedmine -root \n\ -- GL: starwars -root \n\ -- GL: stonerview -root \n\ -- vermiculate -root \n\ -- whirlwindwarp -root \n\ -- zoom -root \n\ -- anemone -root \n\ -- apollonian -root \n\ -- GL: boxed -root \n\ -- GL: cubenetic -root \n\ -- GL: endgame -root \n\ -- euler2d -root \n\ -- fluidballs -root \n\ -- GL: flurry -root \n\ -- GL: glblur -root \n\ -- GL: glsnake -root \n\ -- halftone -root \n\ -- GL: juggler3d -root \n\ -- GL: lavalite -root \n\ -- polyominoes -root \n\ -- GL: queens -root \n\ -- GL: sballs -root \n\ -- GL: spheremonics -root \n\ -- thornbird -root \n\ -- twang -root \n\ -- GL: antspotlight -root \n\ - apple2 -root \n\ -- GL: atunnel -root \n\ -- barcode -root \n\ -- GL: blinkbox -root \n\ -- GL: blocktube -root \n\ -- GL: bouncingcow -root \n\ -- cloudlife -root \n\ -- GL: cubestorm -root \n\ -- eruption -root \n\ -- GL: flipflop -root \n\ -- GL: flyingtoasters -root \n\ -- fontglide -root \n\ -- GL: gleidescope -root \n\ -- GL: glknots -root \n\ -- GL: glmatrix -root \n\ -- GL: glslideshow -root \n\ -- GL: hypertorus -root \n\ -- GL: jigglypuff -root \n\ -- metaballs -root \n\ -- GL: mirrorblob -root \n\ -- piecewise -root \n\ -- GL: polytopes -root \n\ -- pong -root \n\ -- popsquares -root \n\ -- GL: surfaces -root \n\ -- xanalogtv -root \n\ -- abstractile -root \n\ -- anemotaxis -root \n\ -- GL: antinspect -root \n\ -- fireworkx -root \n\ -- fuzzyflakes -root \n\ -- interaggregate -root \n\ -- intermomentary -root \n\ -- memscroller -root \n\ -- GL: noof -root \n\ -- pacman -root \n\ -- GL: pinion -root \n\ -- GL: polyhedra -root \n\ -- GL: providence -root \n\ -- substrate -root \n\ -- wormhole -root \n\ -- GL: antmaze -root \n\ -- GL: boing -root \n\ -- boxfit -root \n\ -- GL: carousel -root \n\ -- celtic -root \n\ - GL: crackberg -root \n\ -- GL: cube21 -root \n\ -- fiberlamp -root \n\ -- GL: fliptext -root \n\ -- GL: glhanoi -root \n\ -- GL: tangram -root \n\ -- GL: timetunnel -root \n\ -- GL: glschool -root \n\ -- GL: topblock -root \n\ -- GL: cubicgrid -root \n\ -- cwaves -root \n\ -- GL: gears -root \n\ -- GL: glcells -root \n\ -- GL: lockward -root \n\ -- m6502 -root \n\ -- GL: moebiusgears -root \n\ -- GL: voronoi -root \n\ -- GL: hypnowheel -root \n\ -- GL: klein -root \n\ -- lcdscrub -root \n\ -- GL: photopile -root \n\ -- GL: skytentacles -root \n\ -- GL: rubikblocks -root \n\ -- GL: companioncube -root \n\ -- GL: hilbert -root \n\ -- GL: tronbit -root \n\ -- GL: geodesic -root \n\ -- hexadrop -root \n\ -- GL: kaleidocycle -root \n\ -- GL: quasicrystal -root \n\ -- GL: unknownpleasures -root \n\ - binaryring -root \n\ -- GL: cityflow -root \n\ -- GL: geodesicgears -root \n\ -- GL: projectiveplane -root \n\ -- GL: romanboy -root \n\ -- tessellimage -root \n\ -- GL: winduprobot -root \n\ -- GL: splitflap -root \n\ -- GL: cubestack -root \n\ -- GL: cubetwist -root \n\ -- GL: discoball -root \n\ -- GL: dymaxionmap -root \n\ -- GL: energystream -root \n\ -- GL: hexstrut -root \n\ -- GL: hydrostat -root \n\ -- GL: raverhoop -root \n\ -- GL: splodesic -root \n\ -- GL: unicrud -root \n\ -- GL: esper -root \n\ -- GL: vigilance -root \n\ -- GL: crumbler -root \n\ -- filmleader -root \n\ -- glitchpeg -root \n\ -- GL: handsy -root \n\ -- GL: maze3d -root \n\ -- GL: peepers -root \n\ -- GL: razzledazzle -root \n\ -- vfeedback -root \n\ -- GL: deepstars -root \n\ -- GL: gravitywell -root \n\ -- GL: beats -root \n\ -- GL: covid19 -root \n\ -- GL: etruscanvenus -root \n\ -- GL: gibson -root \n\ -- GL: headroom -root \n\ -- GL: dnalogo -root \n\ - binaryhorizon -root \n\ - marbling -root \n\ - GL: chompytower -root \n\ -- GL: hextrail -root \n\ -- GL: mapscroller -root \n\ -- GL: nakagin -root \n\ -- GL: squirtorus -root \n\ -- GL: cubocteversion -root \n\ -- droste -root \n\ -- GL: papercube -root \n\ -- GL: skulloop -root \n\ - - -pointerHysteresis: 10 -authWarningSlack: 20 diff --git a/.installer/packages b/.installer/packages index 664c247..b13889f 100644 --- a/.installer/packages +++ b/.installer/packages @@ -1,12 +1,12 @@ pacman-base:acpi wget curl # Required for setup_system.sh -pacman-any:i3-gaps feh i3status network-manager-applet pasystray xscreensaver xautolock inotify-tools xss-lock noto-fonts-emoji +pacman-any:i3-gaps feh i3status network-manager-applet pasystray xautolock inotify-tools xss-lock noto-fonts-emoji pacman-any:arandr code dunst flameshot kitty ranger scrot thunar tmux ufw vim zsh pacman-any:gst-libav phonon-qt5-gstreamer gst-plugins-good qt5-quickcontrols qt5-graphicaleffects qt5-multimedia pacman-type-hasbattery:brightnessctl aur-any:picom-git sddm-theme-aerial-git apt-base:acpi wget curl ca-certificates gnupg lsb-release # Required for setup_system.sh -apt-any:i3 feh i3status nm-tray pasystray xscreensaver xautolock inotify-tools xss-lock fonts-noto-color-emoji fonts-hack-ttf xclip +apt-any:i3 feh i3status nm-tray pasystray xautolock inotify-tools xss-lock fonts-noto-color-emoji fonts-hack-ttf xclip apt-any:docker-ce docker-ce-cli containerd.io docker-compose-plugin apt-any:arandr chromium-browser codium dunst flameshot kitty ranger scrot thunar tmux ufw vim zsh apt-any:libconfig-dev libdbus-1-dev libegl-dev libev-dev libgl-dev libepoxy-dev libpcre2-dev libpixman-1-dev libx11-xcb-dev libxcb1-dev libxcb-composite0-dev libxcb-damage0-dev libxcb-dpms0-dev libxcb-glx0-dev libxcb-image0-dev libxcb-present-dev libxcb-randr0-dev libxcb-render0-dev libxcb-render-util0-dev libxcb-shape0-dev libxcb-util-dev libxcb-xfixes0-dev libxext-dev meson ninja-build uthash-dev diff --git a/.local/bin/i3exit b/.local/bin/i3exit index 67c66c8..c8102e5 100755 --- a/.local/bin/i3exit +++ b/.local/bin/i3exit @@ -7,13 +7,49 @@ # with openrc use loginctl [[ $(cat /proc/1/comm) == "systemd" ]] && logind=systemctl || logind=loginctl -function lock() { - xscreensaver-command -lock +LOCK_SCREEN_BLUR=${LOCK_SCREEN_BLUR:-false} +LOCK_SCREEN_COLOR=${LOCK_SCREEN_COLOR:-29414f} +I3LOCK_RE="i3lock -(c|i) " + +_lock() { + i3lock -c "$LOCK_SCREEN_COLOR" +} + +_unlock() { + pkill -u "$USER" -f "$I3LOCK_RE" +} + +is_locked() { + pgrep -u "$USER" -f "$I3LOCK_RE" >/dev/null +} + +lock() { + local abort=false screen=/tmp/screenshot.png blurred=/tmp/screenshotblur.png + + $LOCK_SCREEN_BLUR && sleep 0.25 && scrot -q 100 $screen # Take screenshot + + _lock # Lock immediately + + if [ -f $screen ]; then + # Blur screenshot + scrot -q 100 $screen || abort=true # Larger file size, but faster + convert -scale 10% -blur 0x1.25 -resize 1000% $screen $blurred || abort=true + rm $screen + + $abort && return 1 + + # Now try to replace the solid color with the blurred image. + _unlock + i3lock -i $blurred || _lock + fi + + # Add a small delay to prevent possible race conditions with suspend + sleep 1 } case "$1" in lock) - lock + is_locked || lock ;; logout) i3-msg exit @@ -22,9 +58,11 @@ case "$1" in dm-tool switch-to-greeter ;; suspend) + export LOCK_SCREEN_BLUR=false lock && $logind suspend ;; hibernate) + export LOCK_SCREEN_BLUR=false lock && $logind hibernate ;; reboot) diff --git a/.xscreensaver b/.xscreensaver deleted file mode 120000 index 5a15acb..0000000 --- a/.xscreensaver +++ /dev/null @@ -1 +0,0 @@ -.config/xscreensaver/config \ No newline at end of file