summaryrefslogtreecommitdiff
path: root/TODO
blob: ff225bdf78b31a30d2e2b1b43fb1bbb782c48390 (plain)
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
 - /part #blah vaihtaa eka ikkunaan vaikkei oltu #blahlla..
 - /join vaihtaa myös ikkunaan mihin se joinas?
 - näytä @ tai + nikin edessä
 - topic baari?

*** Bugs

 - split windows are buggy, destroying them doesn't really work well..
 - irssi can't find new themes in ~/.irssi/ while running - scan for new
   themes when opening themes dialog? irssi-text also needs to be restarted
   to use new themes..
 - mirc ctcp togglemenuitem isn't updated right
 - multiple dcc connections from different irc networks from same nick
   doesn't work. Maybe create "server nick" and "refer nick" variables to
   DCC_REC?

*** text UI

 - split windows
 - statusbar:
     - when starting to run out of space some items could be made smaller,
       activity for example .. make some generic flag for items to use.
     - activity: hilight number if window has message for you or hilighted
       text
     - "you have new mail"
     - active server tag somewhere in window
 - word wrapping doesn't work perfectly, if colors/bolds/etc are used, they're
   treated as spaces. So things like (<newline>blah blah) can happen (/who)

*** Big things

 - Complete modularisation of everything, split irc-extra, ui-common and
   gui-* (gui especially) into separate logical components. The modules would
   have init(), deinit(), save_state() and restore_state() - save/restore
   should save as much as possible so that it would be possible to restart the
   whole base system. Like when upgrading to newer version you wouldn't need
   to quit irc at all :)

 - session saving thing.. specify what channels/queries/dcc chats to open in
   which window (real/tabbed/in same window with some other), what irc net
   channels goes to where, what channels/queries to open at startup, etc.
   use dialog with gtktree widget to change it.
 - some sort of address book? our own irssi ctcp to ask for other irssi users
   for their information (of course not without asking (except optionally))..
   could be nice also to automatically update it, keep track of all seen
   users gathered when joining channels, whois, who, etc. commands.
   automatically updating information could be host masks, nicks, ips, seen in
   channels, operator in channels, .. user specified checks like last topic or
   mode changes or even msgs to you/some channel/with some keyword. great for
   spying people ;) maybe even useful sometimes..

   .. but what database would be best for this?

 - GTK version: icons to toolbars, accelerators to menus
 - Windows style MDI windows are possible with GtkFixed .. Some people would
   like this.. too much job for me, it would need building the MDI windows
   ourself (title bar, borders, resizing, etc.)

 - online help, documentation, ...
 - plugins:
     - perl plugin .. implementation problems, C's structures need to be
       handled some way .. like for server structure get_address(),
       get_port(), set_address(), set_port() etc..             - other scripting plugins would be easier? scheme, tcl, pythong?
       sula premirex uses scheme, it would probably be pretty easy to learn
       from it how to do it to irssi :)
     - IRC bot, eggdrop is too old, needs a replacement ;) (started)
     - DCC file server, I'm not too excited about this, maybe someone else
       wants to do it..
     - Multiplayer games! :) Chess, tic-tac-toe, othello, battleship, tetris,
       etc. Existing games should probably be used .. though there doesn't
       seem to be any of these (except tetris) for gnome right now..
     - audio / video chat :)

*** Needs rethinking ..

 * Logging, check how ircii logging works and try to do everything that it
   can do ;) currently logging is done by directly writing to disk things
   that are displayed in screen, it could instead (optionally) print things
   simply as "JOIN #blah nick (a@b.c)"
 - log option: add the open/close time to log
 - log directory, automatically log all channels and queries there
     - overwrite/append
     - all windows, just queries, only the channels in channel list
     - you can be joined to same channels in different irc networks (or even
       the same ircnet!) - create the logs to different directiories/names
 - logging: longer format dd.mm.yy hh:mm:ss (configurable?)

 * Notify list, join the two different dialogs, ability to track changes in
   gone flag
 - _one_ popup dialog could open which lists all nicks in notifylist, maybe
   sorted by arrival time, display the dates, latest joined could be with
   different color? etc.
 - nick-specific options: 
    - check for gone-flag changes (use userhosts instead of isons)
    - pop up the dialog
    - run some command (like /exec as soon as I get that done :)
 - dialog: keep track of hosts/realnames so after closing and opening the
   dialog again they would show up.. 

 * common api for statusbar handling
 - it should work just as well in text mode and gui, colors could be done
   with the normal % formats. GUI just ignores the colors..
 - display number of ops, voices, normals and ircops in statusbar

 * API for creating/modifying menus and toolbar, especially from plugins
 - at least one configurable menu ("usermenu"), or maybe make the whole
   menubar user configurable


*** Little things

 - autoaway when idling
 - nickserv support (automatic /msg nickserv identify password)
 - /exec
 - itext:
     - save/find text
     - text selection draws the entire selection every time you move the
       mouse...
     - if some other window has got much text, switching to it first time
       takes some time..?
 - exceptions for ignoring
 - editor in setup for ~/.irssi/startup
 - gui help
 - change signal handling in gui-gnome so that the actual drawing and
   functionality are in different signals, so that plugin could change the
   whole look and feel of irssi.
 - currently irssi sends USERHOST commands every now and then to find out
   who are away and who are not.. optionally it could instead just watch if
   someone hasn't written anything to channel in n minutes and mark it "away"
   to nicklist.
 - use different themes in different channels/queries?
 - /connect ircnet could connect to ircnet
 - change some GLists to GHashTables, aliases at least
 - check new irssi versions with http rather than with irssibot..
 - implement requesting files with DCC GET from remote client for dcc file
   servers. good for people behind firewalls.
 - support for ircii translation tables (/usr/lib/irc/translation/*)
 - use different nicks/realnames in different irc networks
 - gnome statubar:
    - clock?
    - dcc transfer meter (gtk progressbar)
 - you could configure which events (whois, notify, etc.) to show in what
   windows (all, current, status, msgs)
 - gui for configuring plugin specific theme format texts
 - dcc send: allow selection of multiple files to send (also for dnd from
   gmc!) Allow dropping files to anywhere in irssi.
 - /timer, /clones
 - display net splits?
 - regexp for hilighting words?
 - subcommands (dcc, window, ..) could use common function instead of copy and
   pasting the same function all the time and modifying just two words...
 - {}|~ are same as []\^ (not in all irc networks) - does this really affect
   irssi at all..?