From a56d24eb5af87f8d106a47437f7001afa4848409 Mon Sep 17 00:00:00 2001 From: Lucien Cartier-Tilet Date: Sat, 2 Jan 2021 14:13:13 +0100 Subject: [PATCH] [Bin] Fix autostart and select-pape Autostart did not detect properly if some processes were actually running or not. This commit fixes it and only launches programs marked to run only once only when they are not already running. select-pape did not set its cache file in the correct location, this is now fixed --- org/config/bin.org | 65 +++++++++++++++++----------------------------- 1 file changed, 24 insertions(+), 41 deletions(-) diff --git a/org/config/bin.org b/org/config/bin.org index 3868893..0332b1d 100644 --- a/org/config/bin.org +++ b/org/config/bin.org @@ -33,56 +33,37 @@ Because I sometimes switch from window manager to window manager, creating a scr | ~nm-applet~ | | yes | | ~numlockx~ | ~on~ | yes | | ~mpc~ | ~stop~ | no | -| ~xwallpaper~ | ~--zoom $HOME/.cache/wallpaper~~ | no | +| ~xwallpaper~ | ~--zoom (cat $HOME/.cache/wallpaper)~ | no | #+NAME: autostart-gen #+BEGIN_SRC emacs-lisp :var table=autostart-table :cache yes - (mapconcat (lambda ($start-command) - (let* (($command (s-replace "~" "" (nth 0 $start-command))) - ($arguments (s-replace "~" "" (nth 1 $start-command))) - ($once? (string= "yes" (nth 2 $start-command)))) - (if $once? - (concat (format "if ! test (pgrep %s 2&> /dev/null)\n\t" $command) - (s-collapse-whitespace (format "%s %s & && disown" $command $arguments)) - "\nend\n") - (format "%s %s &\n" $command $arguments)))) + (mapconcat (lambda (start-command) + (let* ((command (s-replace "~" "" (nth 0 start-command))) + (arguments (s-replace "~" "" (nth 1 start-command))) + (once? (string= "yes" (nth 2 start-command)))) + (if once? + (format "pgrep -x %s 2&>/dev/null || echo (%s) 2&>/dev/null" + command + (s-collapse-whitespace (format "%s %s & && disown" + command + arguments))) + (format "%s %s &" command arguments)))) table "\n") #+END_SRC -#+RESULTS[0221ee62b690b66ba97566fdfdb724c62288df98]: autostart-gen +#+RESULTS[f7292981c73e9183edab2951f3a5dcfa6d073025]: autostart-gen #+begin_example set-screens & - -if ! test (pgrep pumopm 2&> /dev/null) - pumopm & && disown -end - -if ! test (pgrep xfce-polkit 2&> /dev/null) - xfce-polkit & && disown -end - -if ! test (pgrep xss-lock 2&> /dev/null) - xss-lock plock & && disown -end - -if ! test (pgrep picom 2&> /dev/null) - picom --experimental-backends & && disown -end - -if ! test (pgrep xidlehook 2&> /dev/null) - xidlehook --not-when-audio --not-when-fullscreen --timer 3600 lock '' & && disown -end - -if ! test (pgrep nm-applet 2&> /dev/null) - nm-applet & && disown -end - -if ! test (pgrep numlockx 2&> /dev/null) - numlockx on & && disown -end - +pgrep -x pumopm 2&>/dev/null || echo (pumopm & && disown) 2&>/dev/null +pgrep -x xfce-polkit 2&>/dev/null || echo (xfce-polkit & && disown) 2&>/dev/null +pgrep -x xss-lock 2&>/dev/null || echo (xss-lock plock & && disown) 2&>/dev/null +pgrep -x picom 2&>/dev/null || echo (picom --experimental-backends & && disown) 2&>/dev/null +pgrep -x xidlehook 2&>/dev/null || echo (xidlehook --not-when-audio --not-when-fullscreen --timer 3600 lock '' & && disown) 2&>/dev/null +pgrep -x nm-applet 2&>/dev/null || echo (nm-applet & && disown) 2&>/dev/null +pgrep -x numlockx 2&>/dev/null || echo (numlockx on & && disown) 2&>/dev/null mpc stop & +xwallpaper --zoom (cat $HOME/.cache/wallpaper) & #+end_example #+BEGIN_SRC fish :noweb yes @@ -1702,7 +1683,9 @@ This little tool sets a random wallpaper using xwallpaper. :END: This script is base on what sxiv can do as an image viewer as well as xwallpaper. #+BEGIN_SRC sh - xwallpaper --zoom $(sxiv -orbft ~/Pictures/Wallpapers/*) + PAPE=$(sxiv -orbft ~/Pictures/Wallpapers/*) + echo $PAPE > ~/.cache/wallpaper + xwallpaper --zoom $PAPE #+END_SRC * Weather