Ion3 scripts collection

Here are some scripts for Ion3. All of them are in the public domain unless otherwise mentioned in the source file.

Scripts that have yet to be converted from Ion2 to Ion3 are over-striked.

Scripts

app.lua
Start an application if it's not running, but go to it if it's already started. There's also a function to replace query_editfile which will use a running emacs instance (starting it if necessary, of course).
bookmarks.lua
Bookmarks support
collapse.lua
Collapse frames on a WIonWS into a single frame
ctrl_statusbar.lua
Menu-driven controller for the statusbar. Modules can be enabled/ disabled from the menu, without requiring to edit the configuration file.
cwin_sp.lua
Create per-clientwin scratchpads
detach.lua
Fancy management of transcient window. Allows you to manage transcient windows (and even other) in a floating workspace on top of your traditional workspace, or in the scratchpad.
enumerate.lua
Adds "X." in front of the client windows, which may make switching between client-windows with MOD+n a little easier .
exec_show.lua
Execute some shell-command (tail, head, grep etc) and display the result.
framecycle.lua
Cycle through frames on a tiled workspace.
go_frame_or_desk.lua
selects frame in the specified direction. If there is no frame at that location, instead the next workspace in the direction becomes active
goto_multihead.lua
A version of WIonWS.goto_dir that may be useful on multihead setups.
histcompl.lua
History completion support for the line editor
min_tabs.lua
Show tabs precisely when two or more windows in an ion frame
move_current.lua
Move current window in a frame to another frame in specified direction
nest-ws.lua
Attach workspaces to windows, to e.g. have a WIonWS inside a WFloatWS, or vice versa
nextact.lua
Go to first found region with activity flag set.
rss_feed.lua
A simple rss-reader script in lua for ion.
schedule.lua
Schedule some messages to show up at specified times in the statusbar.
statusbar_external.lua
Show output of external programs or scripts in statusbar.
wcirculate.lua
Grabbed menu for activation history based cycling of windows.
workspace.lua
Show current workspace name in statusbar.
zoom.lua
Simulates larswm-like window zooming.
closeorkill.lua
Kill client on second close try if it did not respond to close
heuristics.lua
Window placement heuristics for tiled workspaces
mp.lua
Mark next mapped window to be attached to a specified object
alt_resize.lua
Possibly more intuitive resizing bindings.

Key bindings

emacs-bindings.lua
Emacs-like keybindings for Ion

Styles

look_atme.lua
A style which just looks nice.
look_bas.lua
A style which colors fit the mozilla-bb background. It makes use of the techy artwiz font.
look_bluecurve.lua
A theme that fits the colors of the bluecurve-theme by Redhat
look_cleansteel.lua
The stock look-brownsteel style with borders removed on tiled workspaces for cleaner look.
look_minimalist.lua
A simple gold/red style with relatively large frame borders designed to increase usability with the minimal tabs modification.
look-moy.lua
Grey and violet simple theme.
look-awesome.lua
Inspired by look-clean, comes fully-equipped with big, friendly tabs, tasty single-pixel borders, and a sprinkling of transparency. Makes use of the Terminus font.
look-awesome-sm.lua
A style based on look-awesome above, but with smaller fonts and paddings and no transparency by default. This style makes use of the 'nexus' font for tabs.
look-cleanpastel.lua
Similar to stock look-clean* styles, but greenish.
look-cool.lua
A style based on look-awesome, made to fit the KDE color scheme "plastic-grey". Made by Steffen Liebergeld (26.08.2004).
look-gtk2.lua
A theme that fits the default GTK+2 colors. It makes use of the terminus and artwiz fonts.
look-qt.lua
A drawing engine configuration file that reads settings from Qt configuration file ~/.qt/qtrc.

Ion-statusd monitors

These scripts are for monitoring various system resources and such, and they are run in the ion-statusd program, and will not work if you attempt to load them in Ion. They are loaded automatically if you put them on the script search path (e.g. ~/.ion3/) and insert an appropriate meter in the statusbar template (in cfg_statusbar.lua). Note that many of these monitors depend on the Linux /proc filesystem and thus will not work on other systems.
statusd_batt.lua
Ion-statusd monitor reporting battery status; works with apm.
statusd_cpuspeed.lua
Ion-statusd monitor reporting current cpu speed; works with apm.
statusd_dgs.lua
Ion-statusd monitor reporting on any games waiting for a move on www.dragongoserver.net.
statusd_iface.lua
Ion-statusd monitor reporting currently used network interface.
statusd_inet_addr.lua
Ion-statusd monitor reporting current IP address from ifconfig.
statusd_iw_info_min.lua
Ion-statusd monitor reporting minimal wireless info.
statusd_laptopstatus.lua
Ion-statusd monitor reporting CPU speed & temperature and battery status; works with acpi.
statusd_mpd.lua
Ion-statusd monitor reporting song currently being played by mpd.
statusd_pytone.lua
Ion-statusd monitor reporting song currently being played by pytone.
statusd_sysmon.lua
Ion-statusd monitor for reporting various system resources.
statusd_uptime.lua
Ion-statusd monitor reporting the system uptime.
statusd_netmon.lua
Ion-statusd network monitor reporting network activity.

Instructions

Downloading a copy

This scripts collection is a darcs repository. You can download a copy of the repository by first installing darcs and then running the command
darcs get http://iki.fi/tuomov/repos/ion-scripts-3/
This will get you a fully functional copy of the repository in the directory ion-scripts-3.

To update a previously downloaded repository, use darcs pull. The command darcs changes can be used to view the list of changes, and there is also an RSS feed of the most recent changes.

Contributing

If you have any scripts that you would like to see added here, or would like to improve upon the existing scripts, please use the following procedure:
  1. Get a copy of the repository as explained above.
  2. Repeat as many times as you want to:
    1. Make your changes and put new files in the proper directories inside your copy of the repository. Use the command darcs add filename to put newly added files under version control.
    2. Update this index.html to link to any added files, in alphabetical order.
    3. Record your changes to your local copy of the repository with the command darcs record -a.

      The first time you do this, darcs will prompt for your email address. The preferred format is Your real name <user@host>. The address should not be visible on a linked-to page unencrypted. The name of the patch is a short one-line summary of your changes.

  3. Send your patches to me by email with the command darcs send. I will apply them to the online repository if they look okay.

    If you can't for some reason send this way, use the -o option and send the output normally as an attachment. Please begin the subject line with 'darcs patch'.

For more help on using darcs, see the darcs manual.