about summary refs log tree commit diff stats
path: root/nix-conf/home/includes/irssi.nix
blob: 04f8e28f58a54c124249850c07963a5aba651eca (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
{ 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";
    };
    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 = "#prosapologian"; tag = "refchat"; }); };
        7 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#clojure"; tag = "libera"; }); };
        8 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#emacs"; tag = "libera"; }); };
        9 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#emacs"; tag = "tilde"; }); };
        10 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#ctrl-c"; tag = "tilde"; }); };
        11 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#team"; tag = "tilde"; }); };
        12 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#systemcrafters"; tag = "libera"; }); };
        13 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#!"; tag = "hashbang"; }); };
        14 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#nixos"; tag = "libera"; }); };
        15 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#home-manager"; tag = "oftc"; }); };
        16 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "&bitlbee"; tag = "bitlbee"; }); };
        17 = { items = ( { type = "CHANNEL"; chat_type = "IRC"; name = "#twitter_deejayem"; tag = "bitlbee"; }); };
      };
    '';
    networks = {
      libera = {
        nick = "djm";
        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";
        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;
        };
      };
      blinkenirc = {
        nick = "djm";
        autoCommands = [ "msg chanserv invite #blinkenshell.op" "wait 2000" ];
        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";
        server = {
          address = "irc.hashbang.sh";
          port = 6697;
          autoConnect = true;
          ssl = {
            enable = true;
            verify = true;
            certificateFile = "${config.home.homeDirectory}/.irssi/hashbang.pem";
          };
        };
        channels = {
          "!".autoJoin = true;
        };
      };
      refchat = {
        nick = "djm";
        server = {
          address = "gill.refchat.net";
          port = 6697;
          autoConnect = true;
          ssl = {
            enable = true;
            verify = false;
            certificateFile = "${config.home.homeDirectory}/.irssi/refchat.pem";
          };
        };
        channels = {
          prosapologian.autoJoin = true;
        };
      };
      bitlbee = {
        nick = "djm";
        autoCommands = [ "bitlbee_identify" ];
        server = {
          address = "testing.bitlbee.org";
          port = 6697;
          autoConnect = true;
          ssl = {
            enable = true;
          };
        };
      };
    };
  };
}