[Awesome, Bin.org] Change the way my programs autostart
Autostarting my programs are now done through a shell script, which Awesome calls.
This commit is contained in:
parent
84aba5216f
commit
c290305a26
@ -1483,55 +1483,13 @@
|
|||||||
:CUSTOM_ID: Autostart-f2cf42fe
|
:CUSTOM_ID: Autostart-f2cf42fe
|
||||||
:END:
|
:END:
|
||||||
By simply adding a line requesting to spawn a command, it is possible to
|
By simply adding a line requesting to spawn a command, it is possible to
|
||||||
create some autolaunch. All of my autolaunched apps are launch through the
|
create some autolaunch. All of my autolaunched apps are launch through a
|
||||||
shell.
|
custom script which you can [[file:~/org/config/bin.org::#Autostart-a99e99e7][find here]]. The command gets called with
|
||||||
#+NAME: autostart-table
|
~awful.spawn.with_shell()~, as you can see below.
|
||||||
| Command | What it is for |
|
|
||||||
|-------------------------------------------------+----------------------------------------|
|
|
||||||
| pumopm | Power manager |
|
|
||||||
| /usr/lib/xfce-polkit/xfce-polkit | Launch or relaunch Polkit |
|
|
||||||
| sleep 1 && set-screens | Auto-organize screens |
|
|
||||||
| picom --experimental-backends | Launch or relaunch Picom |
|
|
||||||
| nitrogen --restore | Restore background |
|
|
||||||
| xss-lock -- lock | Enable lockscreen after a blank screen |
|
|
||||||
| nm-applet | Launch NetworkManager applet |
|
|
||||||
| numlockx on | Enable numlock |
|
|
||||||
| mpc stop | Stop music |
|
|
||||||
| mpd_discord_richpresence --no-idle --fork | Launch MPD rich presence for Discord |
|
|
||||||
| sleep 3 && emacsclient -c -e \"(delete-frame)\" | Launch blank EmacsClient |
|
|
||||||
|
|
||||||
#+NAME: autostart
|
|
||||||
#+BEGIN_SRC emacs-lisp :tangle no :exports none :cache yes :var apps=autostart-table
|
|
||||||
(mapconcat (lambda (x)
|
|
||||||
(format "awful.spawn.with_shell(\"%s\")"
|
|
||||||
(car x)))
|
|
||||||
apps
|
|
||||||
"\n")
|
|
||||||
#+END_SRC
|
|
||||||
|
|
||||||
#+RESULTS[e65349733980220944a79123e3ee0f4d638e5068]: autostart
|
|
||||||
#+begin_example
|
|
||||||
awful.spawn.with_shell("pumopm")
|
|
||||||
awful.spawn.with_shell("pkill xfce-polkit; /usr/lib/xfce-polkit/xfce-polkit")
|
|
||||||
awful.spawn.with_shell("sleep 1 && set-screens")
|
|
||||||
awful.spawn.with_shell("picom --experimental-backends")
|
|
||||||
awful.spawn.with_shell("nitrogen --restore")
|
|
||||||
awful.spawn.with_shell("xss-lock -- lock")
|
|
||||||
awful.spawn.with_shell("nm-applet")
|
|
||||||
awful.spawn.with_shell("numlockx on")
|
|
||||||
awful.spawn.with_shell("mpc stop")
|
|
||||||
awful.spawn.with_shell("mpd_discord_richpresence --no-idle --fork")
|
|
||||||
awful.spawn.with_shell("sleep 3 && emacsclient -c -e \"(delete-frame)\"")
|
|
||||||
#+end_example
|
|
||||||
|
|
||||||
Each of the command gets called with the call of ~awful.spawn.with_shell()~,
|
|
||||||
as you can see below.
|
|
||||||
#+BEGIN_SRC lua
|
#+BEGIN_SRC lua
|
||||||
<<autostart()>>
|
awful.spawn.with_shell("autostart")
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
PumoPM is a custom power manager I’ve written, because other power managers
|
|
||||||
didn’t fit my needs, so I wrote my own. You can find it [[https://labs.phundrak.com/phundrak/pumopm][here]].
|
|
||||||
|
|
||||||
* What to do now :noexport:
|
* What to do now :noexport:
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
#+HTML_HEAD_EXTRA: <meta property="og:title" content="Phundrak's i3 config" />
|
#+HTML_HEAD_EXTRA: <meta property="og:title" content="Phundrak's i3 config" />
|
||||||
#+HTML_HEAD_EXTRA: <meta property="og:description" content="Description of the i3 config file of Phundrak" />
|
#+HTML_HEAD_EXTRA: <meta property="og:description" content="Description of the i3 config file of Phundrak" />
|
||||||
#+PROPERTY: header-args :exports code
|
#+PROPERTY: header-args :exports code
|
||||||
|
#+PROPERTY: header-args:emacs-lisp :exports none :tangle no
|
||||||
|
|
||||||
* Presentation
|
* Presentation
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
@ -80,6 +81,54 @@
|
|||||||
end
|
end
|
||||||
#+END_SRC
|
#+END_SRC
|
||||||
|
|
||||||
|
* Autostart
|
||||||
|
:PROPERTIES:
|
||||||
|
:HEADER-ARGS: :shebang "#!/usr/bin/env fish" :tangle ~/.local/bin/autostart
|
||||||
|
:CUSTOM_ID: Autostart-a99e99e7
|
||||||
|
:END:
|
||||||
|
Because I sometimes switch from window manager to window manager, creating a
|
||||||
|
script that handles by itself autostarting things for me is way easier than
|
||||||
|
rewriting every time the autostart part of my configuration. As you can every
|
||||||
|
instance will be launched asynchronously, and only if there is no other
|
||||||
|
instance of said command running.
|
||||||
|
|
||||||
|
For the record, PumoPM is my custom power manager, you can find its source
|
||||||
|
code [[https://labs.phundrak.com/phundrak/pumopm][here]]. ~set-screens~ is a custom script declared [[*set-screens][below]].
|
||||||
|
#+NAME: autostart-table
|
||||||
|
| Command | Arguments | Run once? |
|
||||||
|
|----------------------------+-----------------------------------------------------------------+-----------|
|
||||||
|
| ~pumopm~ | | yes |
|
||||||
|
| ~xfce-polkit~ | | yes |
|
||||||
|
| ~picom~ | ~--experimental-backends~ | yes |
|
||||||
|
| ~xidlehook~ | ~--not-when-audio --not-when-fullscreen --timer 3600 i3lock ''~ | yes |
|
||||||
|
| ~nm-applet~ | | yes |
|
||||||
|
| ~numlockx~ | ~on~ | yes |
|
||||||
|
| ~mpd_discord_richpresence~ | ~--no-idle --fork~ | yes |
|
||||||
|
| ~nitrogen~ | ~--restore~ | no |
|
||||||
|
| ~mpc~ | ~stop~ | no |
|
||||||
|
| ~emacsclient~ | ~-c -e \"(delete-frame)\"~ | 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 &" $command $arguments))
|
||||||
|
"\nend\n")
|
||||||
|
(format "%s %s &\n" $command $arguments))))
|
||||||
|
table
|
||||||
|
"\n")
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+BEGIN_SRC fish :noweb yes
|
||||||
|
set -l PATH $PATH /usr/lib/xfce-polkit
|
||||||
|
|
||||||
|
<<autostart-gen()>>
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
* awiki
|
* awiki
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:HEADER-ARGS: :shebang "#!/usr/bin/env fish" :tangle ~/.local/bin/awiki
|
:HEADER-ARGS: :shebang "#!/usr/bin/env fish" :tangle ~/.local/bin/awiki
|
||||||
|
Loading…
Reference in New Issue
Block a user