Florent Peterschmitt

WeeChat et tmux sont dans une unité systemd

Démarrer notre client IRC préféré dans une session Tmux, au démarrage de la machine, via une unité systemd pour un utilisateur précis.

Sur ArchLinux, systemd 232-8 :

useradd -m -G users florent
su - florent
# Petit problème avec certaines install Arch, certains ont corrigé le problème
# en réinstallant cest sensé être géré par le module pam_systemd.
# Essayez de le faire sans positionner cette variable manuellement.
echo 'export XDG_RUNTIME_DIR=/run/user/$(id -u)' >> ~/.bashrc
source .bashrc

# Ici logeront vos unités utilisateur.
mkdir -p ~/.config/systemd/user/

# Lunité en question. On sassure davoir du réseau avant de démarrer.
# WeeChat sait très bien faire la reconnexion, mais je préfère.
cat > /home/florent/.config/systemd/user/weechat.service << EOF
[Unit]
Description=WeeChat IRC Client (in tmux)
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/tmux -2 new-session -d -s irc /usr/bin/weechat
ExecStop=/usr/bin/tmux kill-session -t irc

[Install]
WantedBy=default.target
EOF

Ensuite on pourra tout simplement activer, démarrer et enjoyer :D

systemctl --user enable weechat.service
systemctl --user start weechat.service

Et quand on voudra récupérer notre WeeChat, tmux a -t irc et zou ^_^

Sources :