aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md256
1 files changed, 167 insertions, 89 deletions
diff --git a/README.md b/README.md
index f333829..c98c385 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
# Shabble's Irssi Scripts
-This repository contains a collection of scripts I have written or adapted from
-others to improve my (and your!) irssi using experience.
+This repository contains a collection of scripts and things I have written or
+adapted from others to improve my (and maybe your!) Irssi using experience.
## What's In Here
@@ -11,92 +11,111 @@ each their own repository as might be sensible, they're all stuffed in here.
The following is a brief list of the interesting scripts, and why you might want
to use them.
-* `auto_server/` -- provides a `/join+` command which allows you to join
- channels on servers to which you're not currently connected, as long as you've
- got everything set up correctly in your `/channels` and `/networks` config.
+* [`auto-server/`](irssi-scripts/tree/master/auto-server) -- provides a `/join+`
+ command which allows you to join channels on servers to which you're not
+ currently connected, as long as you've got everything set up correctly in your
+ `/channels` and `/networks` config.
-* `history_search/` -- an improved version of coekie's original history_search, it
- behaves a lot more like the standard Readline incremental
- search over your recent command history.
+* [`history-search/`](irssi-scripts/tree/master/history-search) -- an improved
+ version of [@coekie](/coekie/irssi-scripts/blob/master/history_search.pl)'s
+ original history_search, it behaves a lot more like the standard Readline
+ incremental search over your recent command history.
-* `ido_mode/` -- A window switching mode best described as "The bastard lovechild
- of emacs ido-mode and window_switcher.pl". It supports flexible matching of
- channel names, filtering by active windows, servers, and more. See the script
- comments for details.
-
-* `feature_tests/` has a bunch of different little scripts written to test certain
- aspects of Irssi behaviour. None of them are likely to be particularly useful
- unless you're looking for simple examples of various things on which to build.
- Some of the ones which might actually be useful are:
-
- * `key_test.pl` - decodes and prints keyboard inputs from the `gui key pressed`
- signal. Useful for checking what keycode a particular combo generates.
-
- * `template.pl` - A basic outline of a script to use as a starting point
- for others.
-
- * `pipes.pl` A barebones template for a script which uses forking and pipes
- to handle async tasks in the background without hanging Irssi.
-
-* `modules/` contains a few half-baked attempts at loadable modules for Irssi,
- none of which do very much at the moment. They might be useful as templates
- for your own modules, however.
-
-* `no_key_modes/` provides an additional expando `$M_nopass` which you can
- add to your theme to provide channel modes, but without showing the channel
- key. This is probably less useful since someone pointed me at `/set
- chanmode_expando_strip` which has much the same effect.
-
-* `patches/` contains a few patches for the irssi source, probably out of date
- by now, which do various things. The easiest way to figure out what is to read
- them, unless I get bored and document them sometime.
-
-* `prompt_info/` was the original "How can I put dynamic status crap into my
- prompt string" script. This has since been superceded by the far nicer
- `uberprompt.pl` which also lives in that dir. Many of my other scripts
- require uberprompt as a way to provide part of their user interface.
-
-* `sb_position/` gives you an additional status bar item which indicates
- approximately how far you are scrolled in a given window buffer, in terms
- of pages and percentage. It is configurable as the comments in the script
- explain.
-
-* `scrolled_reminder/` is a script that tries to prevent one of the more
- common accidental IRC screwups -- replying to a conversation that happened
- hours ago because you didn't notice you were scrolled up in the history buffer.
- If you try to send a message whilst scrolled, it'll warn you and check you
- really want to first.
+* [`ido-mode/`](irssi-scripts/tree/master/ido-mode) -- A window switching mode
+ best described as "The bastard lovechild of Emacs
+ [ido-mode](http://www.emacswiki.org/emacs/InteractivelyDoThings) and
+ [window_switcher.pl](http://scripts.irssi.org/html/window_switcher.pl.html)".
+ It supports flexible matching of channel names, filtering by active windows,
+ servers, and more. See the script comments for details.
+
+* [`feature-tests/`](irssi-scripts/tree/master/feature-tests) has a bunch of
+ different little scripts written to test certain aspects of Irssi behaviour.
+ None of them are likely to be particularly useful unless you're looking for
+ simple examples of various things on which to build. Some of the ones which
+ might actually be useful are:
+
+ * [`key_test.pl`](irssi-scripts/tree/master/feature-tests/key_test.pl) -
+ decodes and prints keyboard inputs from the `gui key pressed` signal. Useful
+ for checking what keycode a particular combo generates.
+
+ * [`template.pl`](irssi-scripts/tree/master/feature-tests/template.pl) - A
+ basic outline of a script to use as a starting point for others.
+
+ * [`pipes.pl`](irssi-scripts/tree/master/feature-tests/pipes.pl) A barebones
+ template for a script which uses forking and pipes to handle async tasks in
+ the background without hanging Irssi.
+
+* [`modules/`](irssi-scripts/tree/master/modules) contains a few half-baked
+ attempts at loadable modules for Irssi, none of which do very much at the
+ moment. They might be useful as templates for your own modules, however.
+
+* [`no-key-modes/`](irssi-scripts/tree/master/no-key-modes) provides an
+ additional expando `$M_nopass` which you can add to your theme to provide
+ channel modes, but without showing the channel key. This is probably less
+ useful since someone pointed me at `/set chanmode_expando_strip` which has
+ much the same effect.
+
+* [`patches/`](irssi-scripts/tree/master/patches) contains a few patches for the
+ irssi source, probably out of date by now, which do various things. The
+ easiest way to figure out what is to read them, unless I get bored and
+ document them sometime.
+
+* [`prompt_info/`](irssi-scripts/tree/master/prompt_info) was the original "How
+ can I put dynamic status crap into my prompt string" script. This has since
+ been superceded by the far nicer `uberprompt.pl` which also lives in that dir.
+ Many of my other scripts require uberprompt as a way to provide part of their
+ user interface.
+
+* [`sb-position/`](irssi-scripts/tree/master/sb-position) gives you an
+ additional status bar item which indicates approximately how far you are
+ scrolled in a given window buffer, in terms of pages and percentage. It is
+ configurable as the comments in the script explain.
+
+* [`scrolled-reminder/`](irssi-scripts/tree/master/scrolled-reminder) is a
+ script that tries to prevent one of the more common accidental IRC screwups --
+ replying to a conversation that happened hours ago because you didn't notice
+ you were scrolled up in the history buffer. If you try to send a message
+ whilst scrolled, it'll warn you and check you really want to first.
-* `quit-notify/` is based on a script by vague@#irssi/Freenode. It is most
- useful when you are ignoring joins/parts/quits from a channel, and hence
- don't realise when the person you are responding to has left. If they have
- (or if you prefix your message with a nonexistent nick), the script will
- ask you to confirm that you want to send the message, much like
- `scrolled_reminder`.
-
-* `undo/` contains 2 scripts, `undo.pl` and `kill-ring.pl`. See their header
- for further documentation.
-
-* `testing/` is a Perl framework external to Irssi (ie: not a script) that will
- ultimately allow you to write unit tests for your scripts, and run them in a
- real irssi instance, and check that they behave correctly. Still undergoing
- heavy development, and not really ready for public usage.
-
-* `throttled_autojoin/` doesn't work. It's meant to allow people with huuuuuuge
- numbers of autojoin channels and servers to connect slowly, so as not to time
- themselves out when reconnecting. Mostly dead.
-
-* `tinyurl_tabcomplete/` is a script which lets you hit tab following anything
- that looks like a URL to replace it with a tinyurl'd version. Handy if you
- regularly paste Google-maps links or other massive horrible links.
-
-* `url_hilight/` I can't remember what this one does. Suggestions welcome.
-
-* `vim_mode/` The most exciting (and by far the largest) script here. Gives
- vim-addicted users a way to use most of their finger-memory in Irssi. Still
- under active development, features and bug-requests welcome. Also supported
- in #irssi_vim on Freenode.
+* [`quit-notify/`](irssi-scripts/tree/master/quit-notify) is based on a script
+ by vague@#irssi/Freenode. It is most useful when you are ignoring
+ joins/parts/quits from a channel, and hence don't realise when the person you
+ are responding to has left. If they have (or if you prefix your message with
+ a nonexistent nick), the script will ask you to confirm that you want to send
+ the message, much like `scrolled_reminder`.
+
+* [`undo/`](irssi-scripts/tree/master/undo) contains 2 scripts, `undo.pl` and
+ `kill-ring.pl`. See their header for further documentation.
+
+ *Still undergoing heavy development, and not really ready for public usage.*
+
+
+* [`testing/`](irssi-scripts/tree/master/testing) is a Perl framework external
+ to Irssi (ie: not a script) that will ultimately allow you to write unit tests
+ for your scripts, and run them in a real irssi instance, and check that they
+ behave correctly.
+
+ *Still undergoing heavy development, and not really ready for public usage.*
+
+* [`throttled-autojoin/`](irssi-scripts/tree/master/throttled-autojoin) doesn't
+ work. It's meant to allow people with huuuuuuge numbers of autojoin channels
+ and servers to connect slowly, so as not to time themselves out when
+ reconnecting. Mostly dead.
+
+* [`tinyurl-tabcomplete/`](irssi-scripts/tree/master/tinyurl-tabcomplete) is a
+ script which lets you hit tab following anything that looks like a URL to
+ replace it with a tinyurl'd version. Handy if you regularly paste Google-maps
+ links or other massive horrible links.
+
+* [`url_hilight/`](irssi-scripts/tree/master/url_hilight) I can't remember what
+ this one does. Suggestions & ideas welcome.
+
+* [`vim-mode/`](irssi-scripts/tree/master/vim-mode) The most exciting (and by
+ far the largest) script here. Gives vim-addicted users a way to use most of
+ their finger-memory in Irssi. Still under active development, features and
+ bug-requests welcome. Also supported in
+ [#irssi_vim on Freenode](irc://irc.freenode.org/#irssi_vim).
## Documentation
@@ -106,12 +125,71 @@ it has been moved to
## Other Things
-Many of my scripts require [uberprompt](https://github.com/shabble/irssi-scripts/blob/master/prompt_info/uberprompt.pl) as a
-dependency. Those that do will say so in the comments at the top of the file,
-and will probably refuse to load without it.
+Many of my scripts require
+[uberprompt](https://github.com/shabble/irssi-scripts/blob/master/prompt_info/uberprompt.pl)
+as a dependency. Those that do will say so in the comments at the top of the
+file, and will probably refuse to load without it.
## Reminders for myself
+*Not for public consumption. This section contains text known to the State of
+California to cause madness, rabies, or reproductive harm.*
+
+### Todo Lists
+
+I should really put these into the issue tracker instead. That can be a
+reminder. I'll go create an issue for it Right Now!
+
+#### Script ideas
+
+* override `/set` to provide list manipulation options, something like `/set
+{-append, -remove} $param $value`. Bit like a general purpose version of
+[`hide.pl`](http://scripts.irssi.org/html/hide.pl.html)
+
+* Finish work on [`foreach-guard`](irssi-scripts/tree/master/foreach-guard)
+
+* Finish (Well, start) something in [`colour-popup`](irssi-scripts/tree/master/colour-popup)
+ to make an actual popup
+
+* Revisit some of the cracked-out ideas for colour/format overlays
+
+* Go back and clean up [`irssi-vim`](irssi-scripts/tree/master/irssi-vim) like I promised to
+ everyone ages and ages ago. Also do the features thing.
+
+* Actually fix all the [issues](https://github.com/shabble/irssi-scripts/issues)
+ people have dilligently reported.
+
+#### Other things
+
+* Go do something useful regarding the `IrssiX::` namespace and add some useful
+general features.
+
+ * Window and transient-split handling
+
+ * Higher-level abstraction for key-interception
+
+ * Overlays?
+
+ * Format helper functions like the ones listed in the
+ [Guide](https://github.com/shabble/irssi-docs/wiki/Guide).
+
+* Refactor just about everything to use the above.
+
+* Do something productive again on the 256colour fork/patches
+
+* Ditto [@leonerd](/leonerd)'s
+[fixterms](http://www.leonerd.org.uk/hacks/fixterms/) key binding support
+
+* Try to get someone to look at my patches & bug reports.
+
+#### Documentation Wiki
+
+You know, [that](https://github.com/shabble/irssi-docs/wiki) one.
+
+* Fix the stupid ToC generator internal anchor names problem.
+
+* Add more examples, always more examples.
+
### Deployment Process
* Commit messages should be prefixed with something approximating the name of
@@ -120,8 +198,8 @@ and will probably refuse to load without it.
* `./readme_generator.pl <dir> [<dirs]` to generate README files for each script
that has POD in it. Use `--overwrite` from time to time to clean things out.
-* `./changed_update.pl <script_name>` changes the %IRSSI{changed} timestamp
- to the current time, which is something I always forget to do.
+* `./changed_update.pl <script_name>` changes the %IRSSI{changed} timestamp to
+ the current time, which is something I always forget to do.
* Think about bumping the internal version number if it's a big change.