Compare commits

..

2 commits

Author SHA1 Message Date
dabruh
88a99772e0 feat: switch to XScreenSaver for less OLED burn-in 2024-02-29 12:30:23 +01:00
dabruh
80fe2b4c0a feat: update colors for less OLED burn-in 2024-02-29 11:52:19 +01:00
6 changed files with 322 additions and 49 deletions

View file

@ -3,11 +3,11 @@
font pango:$font $font_size font pango:$font $font_size
# Colors # Colors
# class border backgr. text indicator child_border # class border backgr. text indicator child_border
client.focused #1297e0 #0057a0 #ffffff #ff6ca8 #0057a0 client.focused #FFFFFF80 #FFFFFF80 #000000 #ffffff00 #ffffff00
client.focused_inactive #0067b0 #102770 #ffffff #102770 #102770 client.focused_inactive #4d4d4d80 #00000080 #ffffff #00000080 #00000080
client.unfocused #4c5a69 #1c2a39 #9caab9 #1c2a39 #1c2a39 client.unfocused #00000080 #00000080 #999999 #00000080 #00000080
client.urgent #FF8C7C #E74C3C #ffffff #E74C3C #E74C3C client.urgent #FF8C7C80 #E74C3C80 #ffffff #E74C3C #E74C3C
client.background #ab69c6 client.background #ab69c6
# Use Mouse+$mod to drag floating windows to their wanted position # Use Mouse+$mod to drag floating windows to their wanted position
@ -184,5 +184,16 @@ bindsym $mod+Ctrl+q exec --no-startup-id dmenuexit
# finds out, if available) # finds out, if available)
bar { bar {
status_command i3status status_command i3status
i3bar_command i3bar --transparency
tray_output primary tray_output primary
colors {
background #00000080
# class border backgr. text
focused_workspace #FFFFFF80 #FFFFFF80 #000000
active_workspace #4d4d4d80 #00000080 #ffffff
inactive_workspace #00000080 #00000080 #999999
urgent_workspace #FF8C7C80 #E74C3C80 #ffffff
}
} }

View file

@ -2,11 +2,12 @@
exec_always --no-startup-id xss-lock --transfer-sleep-lock -- i3exit lock exec_always --no-startup-id xss-lock --transfer-sleep-lock -- i3exit lock
# lock screen after inactivity # 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 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 bindsym $mod+Ctrl+Shift+l exec --no-startup-id dmenuxautolock -t 0 -n 0
# Run i3hwlock # Run i3hwlock
exec_always --no-startup-id pgrep i3hwlock || i3hwlock exec_always --no-startup-id pgrep -x i3hwlock || i3hwlock
# Start authentication agent # Start authentication agent
exec_always --no-startup-id $auth_agent exec_always --no-startup-id $auth_agent

298
.config/xscreensaver/config Normal file
View file

@ -0,0 +1,298 @@
# XScreenSaver Preferences File
# 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
timestamp: True
splash: True
splashDuration: 0:00:05
demoCommand: xscreensaver-demo
prefsCommand:
nice: 10
memoryLimit: 0
fade: True
unfade: False
fadeSeconds: 0:00:02
fadeTicks: 20
captureStderr: True
ignoreUninstalledPrograms:False
font: *-medium-r-*-140-*-m-*
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\
pointerPollTime: 0:00:05
pointerHysteresis: 10
windowCreationTimeout:0:00:30
initialDelay: 0:00:00
GetViewPortIsFullOfLies:False
procInterrupts: True
xinputExtensionDev: False
overlayStderr: True
authWarningSlack: 20

View file

@ -1,12 +1,12 @@
pacman-base:acpi wget curl # Required for setup_system.sh pacman-base:acpi wget curl # Required for setup_system.sh
pacman-any:i3-gaps feh i3status network-manager-applet pasystray xautolock inotify-tools xss-lock noto-fonts-emoji pacman-any:i3-gaps feh i3status network-manager-applet pasystray xscreensaver xautolock inotify-tools xss-lock noto-fonts-emoji
pacman-any:arandr code dunst flameshot kitty ranger scrot thunar tmux ufw vim zsh 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-any:gst-libav phonon-qt5-gstreamer gst-plugins-good qt5-quickcontrols qt5-graphicaleffects qt5-multimedia
pacman-type-hasbattery:brightnessctl pacman-type-hasbattery:brightnessctl
aur-any:picom-git sddm-theme-aerial-git aur-any:picom-git sddm-theme-aerial-git
apt-base:acpi wget curl ca-certificates gnupg lsb-release # Required for setup_system.sh apt-base:acpi wget curl ca-certificates gnupg lsb-release # Required for setup_system.sh
apt-any:i3 feh i3status nm-tray pasystray xautolock inotify-tools xss-lock fonts-noto-color-emoji fonts-hack-ttf xclip apt-any:i3 feh i3status nm-tray pasystray xscreensaver 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: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:arandr chromium-browser codium dunst flameshot kitty ranger scrot thunar tmux ufw vim zsh
apt-any:libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libxcb-glx0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre2-dev libpcre3-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev meson apt-any:libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libxcb-glx0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre2-dev libpcre3-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev meson

View file

@ -7,49 +7,13 @@
# with openrc use loginctl # with openrc use loginctl
[[ $(cat /proc/1/comm) == "systemd" ]] && logind=systemctl || logind=loginctl [[ $(cat /proc/1/comm) == "systemd" ]] && logind=systemctl || logind=loginctl
LOCK_SCREEN_BLUR=${LOCK_SCREEN_BLUR:-false} function lock() {
LOCK_SCREEN_COLOR=${LOCK_SCREEN_COLOR:-29414f} xscreensaver-command -lock
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 case "$1" in
lock) lock)
is_locked || lock lock
;; ;;
logout) logout)
i3-msg exit i3-msg exit
@ -58,11 +22,9 @@ case "$1" in
dm-tool switch-to-greeter dm-tool switch-to-greeter
;; ;;
suspend) suspend)
export LOCK_SCREEN_BLUR=false
lock && $logind suspend lock && $logind suspend
;; ;;
hibernate) hibernate)
export LOCK_SCREEN_BLUR=false
lock && $logind hibernate lock && $logind hibernate
;; ;;
reboot) reboot)

1
.xscreensaver Symbolic link
View file

@ -0,0 +1 @@
.config/xscreensaver/config