about summary refs log tree commit diff stats
path: root/nix-conf/home/includes/irssi.nix
blob: e7cd92c9fa4cde9ac5d2770222c58441c66093e4 (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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
{ config, pkgs, lib, ... }:

{
  programs.irssi = {
    enable = true;
    aliases = {
      WINC = "window close";
      WII = "whois $0 $0";
      J = "join";
      W = "who";
      N = "names";
      CL = "clear";
      K = "kick";
      KB = "kickban";
      BANS = "ban";
      SB = "scrollback";
      UMODE = "mode $N";
      WC = "window close";
      GOTO = "sb goto";
      "1" = "window 1";
      "2" = "window 2";
      "3" = "window 3";
      "4" = "window 4";
      "5" = "window 5";
      "6" = "window 6";
      "7" = "window 7";
      "8" = "window 8";
      "9" = "window 9";
      "10" = "window 10";
      "11" = "window 11";
      "12" = "window 12";
      "13" = "window 13";
      "14" = "window 14";
      "15" = "window 15";
      "16" = "window 16";
      "17" = "window 17";
      "18" = "window 18";
      "19" = "window 19";
      "20" = "window 20";
    };
    extraConfig = ''
      settings = {
        core = {
          real_name = "David Morgan";
          user_name = "djm";
          nick = "djm";
          timestamp_format = "%H:%M:%S";
        };
        "irc/core" = { usermode = "+iwR"; };
        "fe-common/core" = {
          autolog_path = "~/irclogs/%Y/$tag/$0.%m-%d.log";
          autolog = "yes";
          #beep_msg_level = "hilight msgs";
          beep_when_away = "yes";
          #activity_hide_level = "none";
          #theme = "default";
          hide_colors = "yes";
        };
        "fe-text" = {
          paste_verify_line_count = "1";
          actlist_sort = "refnum";
          paste_join_multiline = "yes";
        };
        hilights = (
          {
            text = "djm";
            nick = "yes";
            word = "yes";
            fullword = "yes";
            matchcase = "yes";
          }
        );
      }
      windows = {
        1 = { immortal = "yes"; name = "(status)"; level = "ALL"; };
        2 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#institute"; tag = "tilde"; }); };
        3 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#meta"; tag = "tilde"; }); };
        4 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#blinkenshell"; tag = "blinkenirc"; }); };
        5 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#blinkenshell.op"; tag = "blinkenirc"; }); };
        6 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#clojure"; tag = "libera"; }); };
        7 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#emacs"; tag = "libera"; }); };
        8 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#ctrl-c"; tag = "tilde"; }); };
        9 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#team"; tag = "tilde"; }); };
        10 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#systemcrafters"; tag = "libera"; }); };
        11 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#!"; tag = "hashbang"; }); };
        12 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#nixos"; tag = "libera"; }); };
        13 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#home-manager"; tag = "oftc"; }); };
      };
    '';
    networks = {
      libera = {
        nick = "djm";
        saslExternal = true;
        server = {
          address = "irc.libera.chat";
          port = 6697;
          autoConnect = true;
          ssl = {
            enable = true;
            verify = false;
            certificateFile = "${config.home.homeDirectory}/.irssi/libera.pem";
          };
        };
        channels = {
          clojure.autoJoin = true;
          emacs.autoJoin = true;
          nixos.autoJoin = true;
          systemcrafters.autoJoin = true;
        };
      };
      tilde = {
        nick = "djm";
        saslExternal = true;
        server = {
          address = "irc.tilde.chat";
          port = 6697;
          autoConnect = true;
          ssl = {
            enable = true;
            verify = true;
            certificateFile = "${config.home.homeDirectory}/.irssi/tilde.pem";
          };
        };
        channels = {
          ctrl-c.autoJoin = true;
          emacs.autoJoin = true;
          institute.autoJoin = true;
          meta.autoJoin = true;
          team.autoJoin = true;
        };
      };
      oftc = {
        nick = "djm";
        server = {
          address = "irc.oftc.net";
          port = 6697;
          autoConnect = true;
          ssl = {
            enable = true;
            verify = true;
            certificateFile = "${config.home.homeDirectory}/.irssi/oftc.pem";
          };
        };
        channels = {
          home-manager.autoJoin = true;
        };
      };
      blinkenirc = {
        nick = "djm";
        autoCommands = [ "msg chanserv invite #blinkenshell.op" "wait 2000" ];
        saslExternal = true;
        server = {
          address = "irc.blinkenshell.org";
          port = 6697;
          autoConnect = true;
          ssl = {
            enable = true;
            verify = true;
            certificateFile = "${config.home.homeDirectory}/.irssi/blinkenirc.pem";
          };
        };
        channels = {
          blinkenshell.autoJoin = true;
          "blinkenshell.op".autoJoin = true;
        };
      };
      hashbang = {
        nick = "djm";
        saslExternal = true;
        server = {
          address = "irc.hashbang.sh";
          port = 6697;
          autoConnect = true;
          ssl = {
            enable = true;
            verify = true;
            certificateFile = "${config.home.homeDirectory}/.irssi/hashbang.pem";
          };
        };
        channels = {
          "#!".autoJoin = true;
        };
      };
    };
  };
}