summary refs log tree commit diff
path: root/nixos/modules/services/misc/weechat.xml
blob: 7255edfb9da36d75c7337278cef82eadbb160825 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<chapter xmlns="http://docbook.org/ns/docbook"
         xmlns:xlink="http://www.w3.org/1999/xlink"
         xmlns:xi="http://www.w3.org/2001/XInclude"
         version="5.0"
         xml:id="module-services-weechat">
 <title>WeeChat</title>
 <para>
  <link xlink:href="https://weechat.org/">WeeChat</link> is a fast and
  extensible IRC client.
 </para>
 <section xml:id="module-services-weechat-basic-usage">
  <title>Basic Usage</title>

  <para>
   By default, the module creates a
   <literal><link xlink:href="https://www.freedesktop.org/wiki/Software/systemd/">systemd</link></literal>
   unit which runs the chat client in a detached
   <literal><link xlink:href="https://www.gnu.org/software/screen/">screen</link></literal>
   session.
  </para>

  <para>
   This can be done by enabling the <literal>weechat</literal> service:
<programlisting>
{ ... }:

{
  <link linkend="opt-services.weechat.enable">services.weechat.enable</link> = true;
}
</programlisting>
  </para>

  <para>
   The service is managed by a dedicated user named <literal>weechat</literal>
   in the state directory <literal>/var/lib/weechat</literal>.
  </para>
 </section>
 <section xml:id="module-services-weechat-reattach">
  <title>Re-attaching to WeeChat</title>

  <para>
   WeeChat runs in a screen session owned by a dedicated user. To explicitly
   allow your another user to attach to this session, the
   <literal>screenrc</literal> needs to be tweaked by adding
   <link xlink:href="https://www.gnu.org/software/screen/manual/html_node/Multiuser.html#Multiuser">multiuser</link>
   support:
<programlisting>
{
  <link linkend="opt-programs.screen.screenrc">programs.screen.screenrc</link> = ''
    multiuser on
    acladd normal_user
  '';
}
</programlisting>
   Now, the session can be re-attached like this:
<programlisting>
screen -x weechat/weechat-screen
</programlisting>
  </para>

  <para>
   <emphasis>The session name can be changed using
   <link linkend="opt-services.weechat.sessionName">services.weechat.sessionName.</link></emphasis>
  </para>
 </section>
</chapter>