diff options
-rw-r--r-- | README.rst | 147 |
1 files changed, 103 insertions, 44 deletions
@@ -1,36 +1,48 @@ uenv ==== -| *uenv* - as in **u**\ seful **env**\ ironments - is a collection of scripts, |systemd| |systemd.service| and |systemd.timer| units and configuration that go along with it. -| It is meant to help organizing your workflow and hiding away user and system services in neat little separate environments. -| Arguably a couple of the |systemd.unit| might only be useful, when using window managers like |awesome|, that stem from a minimalistic approach. -| Some of the functionalities implemented here can be found in desktop environments like |kde| or |gnome|. +| *uenv* - as in **u**\ seful **env**\ ironments - is a collection of scripts, + |systemd| |systemd.service| and |systemd.timer| units and configuration, that + go along with it. +| It is meant to help organizing your workflow and hiding away user and system + services in neat little separate environments. +| Arguably a couple of the |systemd.unit| might only be useful, when using + window managers like |awesome|, that stem from a minimalistic approach. +| Some of the functionalities implemented here can be found in desktop + environments like |kde| or |gnome|. | *uenv* and all of its components are licensed under the GPLv3. Separate tmux environments -------------------------- -| |tmux| is a very useful tool to multiplex your terminals. It offers tiling and a high configurability. -| Here it is used for a couple of services to start an environment in which other |cli| programs can run. +| |tmux| is a very useful tool to multiplex your terminals. It offers tiling + and a high configurability. +| Here it is used for a couple of services to start an environment in which + other |cli| programs can run. | In those services the following |systemd.exec| is set: .. code:: ini - Environment=TMUX_TMPDIR=%t/tmux + Environment=TMUX_TMPDIR=%t -| This will store the |tmux| server socket in the users' *XDG_RUNTIME_DIR*. Therefore it will be necessary to set your *TMUX_TMPDIR* |environment_variable| for your |bash| or |zsh| (or whatever you run) to the following: +| This will store the |tmux| server socket in the users' *XDG_RUNTIME_DIR*. +| Therefore it will be necessary to set your *TMUX_TMPDIR* |environment_variable| + for your |bash| or |zsh| (or whatever you run) to the following: .. code:: bash - export TMUX_TMPDIR="$XDG_RUNTIME_DIR/tmux/" + export TMUX_TMPDIR="$XDG_RUNTIME_DIR/" -| Afterwards a simple +Afterwards a simple .. code:: bash tmux -L <name-of-socket> attach | will attach you to that separate environment. -| **Note**: All of these separate environments are dependant on your login. If there is no login, |systemd| will kill all of your user services! You can get around this by using |loginctl| to enable lingering for your user. +| **Note**: All of these separate user service environments are dependant on + your login. If there is no login, |systemd| will kill all of your user + services! You can get around this by using |loginctl| to enable lingering for + your user. .. code:: bash @@ -42,14 +54,16 @@ Services compton --user ______________ -| The |compton| user service needs a properly exported *$DISPLAY* variable to work. You can set this in your |systemd-user.conf|: +| The |compton| user service needs a properly exported *$DISPLAY* variable to + work. You can set this in your |systemd-user.conf|: .. code:: ini DefaultEnvironment=DISPLAY=:0 -| The compton user service is anti-dependent on the realtime kernel (i.e. it will not start, if **/sys/kernel/realtime** is present and not empty). -| You can start and enable it like any other systemd user service: +| The compton user service is anti-dependent on the realtime kernel (i.e. it will + not start, if **/sys/kernel/realtime** is present and not empty). +| You can start and enable it like any other systemd user service: .. code:: bash @@ -58,14 +72,18 @@ ______________ conky@ --user ______________ -| The |conky| user service needs a properly exported *$DISPLAY* variable to work. You can set this in your |systemd-user.conf|: +| The |conky| user service needs a properly exported *$DISPLAY* variable to work. +| You can set this in your |systemd-user.conf|: .. code:: ini DefaultEnvironment=DISPLAY=:0 -| The |conky| user service starts conky scripts by name. This means, the word after the *@* directly relates to configuration files in your conky configuration directory (*~/.config/conky/*) -| You can start and enable it like any other systemd user service, by supplying it with a configuration file name: +| The |conky| user service starts conky scripts by name. This means, the word + after the *@* directly relates to configuration files in your conky + configuration directory (*~/.config/conky/*). +| You can start and enable it like any other systemd user service, by supplying + it with a configuration file name: .. code:: bash @@ -74,10 +92,13 @@ ______________ cpupower-rt ___________ -| The cpupower package on |arch_linux| has been |cpupower_feature_request|, to allow easier appliance of CPU settings based on other profiles, than the system's default. -| This is very useful, when using a real-time kernel: cpupower-rt settings will be applied **after** the general cpupower settings have been applied. - -| The *cpupower-rt.service* is dependant on a realtime kernel. It will only start, if **/sys/kernel/realtime** is present and not empty. +| The cpupower package on |arch_linux| has been |cpupower_feature_request|, to + allow easier appliance of CPU settings based on other profiles, than the + system's default. +| This is very useful, when using a real-time kernel: cpupower-rt settings will + be applied **after** the general cpupower settings have been applied. +| The *cpupower-rt.service* is dependant on a realtime kernel. It will only + start, if **/sys/kernel/realtime** is present and not empty. | You can start and enable it like any other systemd service: .. code:: bash @@ -87,7 +108,8 @@ ___________ irssi --user ____________ -| The systemd user service *irssi.service* starts the |irc| client |irssi| in a separate |tmux| environment for the current user. +| The systemd user service *irssi.service* starts the |irc| client |irssi| in a + separate |tmux| environment for the current user. | To connect to it after starting the service, just do .. code:: bash @@ -96,8 +118,14 @@ ____________ jack@ --user ____________ -| JACK2 comes with a dbus interface. Unfortunately systemd's efforts regarding [kdbus](https://en.wikipedia.org/wiki/Kdbus) and integrating kernel CPU [cgroups](https://www.kernel.org/doc/Documentation/cgroups/) (and thereby also real-time scheduling) is still somewhat in limbo. -| The included jack@.service starts JACK using */usr/bin/jackd"* (so no dbus), according to a profile. The name of that profile follows after the *@* on starting/ activating the unit and must be found in either */etc/jack/* or *~/.config/jack/*. +| JACK2 comes with a dbus interface. Unfortunately systemd's efforts regarding + [kdbus](https://en.wikipedia.org/wiki/Kdbus) and integrating kernel CPU + [cgroups](https://www.kernel.org/doc/Documentation/cgroups/) (and thereby also + real-time scheduling) is still somewhat in limbo. +| The included jack@.service starts JACK using */usr/bin/jackd"* (so no dbus), + according to a profile. The name of that profile follows after the *@* on + starting/ activating the unit and must be found in either */etc/jack/* or + *~/.config/jack/*. .. code:: bash @@ -107,9 +135,11 @@ ____________ monitoring --user _________________ -| The systemd user service *monitoring.service* is just a useful tool for monitoring. -| Currently it starts |htop|, |glances| and asks loginctl for the current user processes in a separate |tmux| environment. -| To connect to it after starting the service, just do +| The systemd user service *monitoring.service* is just a useful tool for + monitoring. +| Currently it starts |htop|, |glances| and asks loginctl for the current user + processes in a separate |tmux| environment. +| To connect to it after starting the service, just do .. code:: bash @@ -117,7 +147,10 @@ _________________ mpd@ --user ___________ -| The specialized systemd user service *mpd@.service* starts |mpd| with a separate configuration located in *~/.config/mpd/mpd-<name-of-server>.conf*. It will also use |pax11publish| to connect pulseaudio to that server, if the configuration is not called localhost* or like your hostname*! +| The specialized systemd user service *mpd@.service* starts |mpd| with a + separate configuration located in *~/.config/mpd/mpd-<name-of-server>.conf*. It + will also use |pax11publish| to connect pulseaudio to that server, if the + configuration is not called localhost* or like your hostname*! | Start and enable it like any other systemd user service: .. code:: bash @@ -127,7 +160,10 @@ ___________ postpone-screensaver --user ___________________________ -| With the systemd user service and timer *postpone-screensaver.{service,timer}* one can - as the name implies - postpone one's screensaver from blanking the screen. The script checks for programs set in *~/.config/postpone-screensaver* and can be started and activated like any other timer/service: +| With the systemd user service and timer *postpone-screensaver.{service,timer}* + one can - as the name implies - postpone one's screensaver from blanking the + screen. The script checks for programs set in *~/.config/postpone-screensaver* + and can be started and activated like any other timer/service: .. code:: bash @@ -136,7 +172,10 @@ ___________________________ rtorrent --user _______________ -| rtorrent doesn't really come with any systemd service. Here it is started within a separate |tmux| environment. It will automatically create *~/Downloads/rtorrent/{tmp,session}*, if non-existent and set its working directory to *~/Downloads*. +| rtorrent doesn't really come with any systemd service. Here it is started + within a separate |tmux| environment. It will automatically create + *~/Downloads/rtorrent/{tmp,session}*, if non-existent and set its working + directory to *~/Downloads*. | The systemd user service is started/ enabled like this: .. code:: bash @@ -146,8 +185,12 @@ _______________ rtorrent@ _________ -| The systemd system service rtorrent@.service is quite similar to the user service rtorrent.service in functionality, but on top offers the possibility of dependency to a system service - like |openvpn| (the default being a profile called *secure*). -| **Note:** In a separate configuration file (*"/etc/conf.d/rtorrent@.conf"*), the *TMUX_TMPDIR* should be set, as it otherwise defaults to using */tmp/*! +| The systemd system service rtorrent@.service is quite similar to the user + service rtorrent.service in functionality, but on top offers the possibility of + dependency to a system service - like |openvpn| (the default being a profile + called *secure*). +| **Note:** In a separate configuration file (*"/etc/conf.d/rtorrent@.conf"*), + the *TMUX_TMPDIR* should be set, as it otherwise defaults to using */tmp/*! | The system service can be started and enabled like this: .. code:: bash @@ -163,9 +206,12 @@ _________ ssh-agent --user ________________ -| The systemd user service *ssh-agent.service* starts a ssh-agent for the current user, which makes it independent from the current login session. -| In its |systemd.exec| *SSH_AUTH_SOCK* will be set to the user's *XDG_RUNTIME_DIR*. -| Therefore make sure to set your *SSH_AUTH_SOCK* |environment_variable| for your |bash| or |zsh| (or whatever you run) to the following: +| The systemd user service *ssh-agent.service* starts a ssh-agent for the + current user, which makes it independent from the current login session. +| In its |systemd.exec| *SSH_AUTH_SOCK* will be set to the user's + *XDG_RUNTIME_DIR*. +| Therefore make sure to set your *SSH_AUTH_SOCK* |environment_variable| for + your |bash| or |zsh| (or whatever you run) to the following: .. code:: bash @@ -181,7 +227,10 @@ ________________ syndaemon --user ________________ -| The |xf86-input-synaptics| package comes with */usr/bin/syndaemon*. This tool is used to disable the touchpad while typing. While desktop environments like |kde| and |gnome| use it integrated, it can also be started as a systemd user service: +| The |xf86-input-synaptics| package comes with */usr/bin/syndaemon*. This tool + is used to disable the touchpad while typing. While desktop environments like + |kde| and |gnome| use it integrated, it can also be started as a systemd user + service: .. code:: bash @@ -190,7 +239,10 @@ ________________ systemd-analyze-plot ____________________ -| Systemd comes with a functionality to plot the system's boot up process in svg and other file formats. This user service uses */usr/bin/systemd-analyze* to plot a svg to a predefined directory. Configuration takes place in *~/.config/systemd/plot.conf*. +| Systemd comes with a functionality to plot the system's boot up process in + svg and other file formats. This user service uses */usr/bin/systemd-analyze* + to plot a svg to a predefined directory. Configuration takes place in + *~/.config/systemd/plot.conf*. | To start/enable the service afterwards just do: .. code:: bash @@ -216,11 +268,16 @@ ___________ update-motd ___________ -| The system service *update-motd.service* updates your MOTD (message of the day) with your hostname, your currently running kernel version, available package updates and needed security updates. -| To be able to check pacman and security updates, the accompanying *update-motd.timer* will start the service hourly. -| If a /etc/motd.name is available, then that file will be used instead of /etc/hostname to generate a banner. -| For the security updates |aur-arch-audit| is needed and if you want to have colorful output of it all, install |aur-python-lolcat|. -| To start/enable the timer just do: +| The system service *update-motd.service* updates your MOTD (message of the day) + with your hostname, your currently running kernel version, available + package updates and needed security updates. +| To be able to check pacman and security updates, the accompanying + *update-motd.timer* will start the service hourly. +| If a /etc/motd.name is available, then that file will be used instead of + /etc/hostname to generate a banner. +| For the security updates |aur-arch-audit| is needed and if you want to have + colorful output of it all, install |aur-python-lolcat|. +| To start/enable the timer just do: .. code:: bash @@ -231,7 +288,8 @@ ___________ weechat --user ______________ -| The systemd user service *weechat.service* starts the |irc| client |weechat| in a separate |tmux| environment for the current user. +| The systemd user service *weechat.service* starts the |irc| client |weechat| in + a separate |tmux| environment for the current user. | To start/enable it, just do: .. code:: bash @@ -264,7 +322,8 @@ ______________ .. |systemd.unit| raw:: html - <a href="http://www.freedesktop.org/software/systemd/man/systemd.unit.html" target="_blank">units</a> + <a href="http://www.freedesktop.org/software/systemd/man/systemd.unit.html" + target="_blank">units</a> .. |systemd.service| raw:: html |