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
- adapt_menus.lua
- Functions for creating a hierarchy of menus for various clients
available. Key features are an attempt to organise by type hints (from
the window titles) and collapse submenus when they contain only a few items.
- 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).
- autoprop.lua
- Automatically create a winprop for the given client targeted to
the given frame. Allows them to be saved and reloaded automatically.
- bookmarks.lua
- Bookmarks support
- cfg_dock2.lua
- A dock configuration with lots of added control.
- 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.
- document_menus.lua
- Navigate the filesystem using ion menus.
- 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
- lock_frame.lua
- 'Lock' selected frames so they don't close via the keyboard.
- 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.
- query-url.lua
- Open a URL, completing on Opera bookmark file. Should be easy to
support other browsers.
- 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.
- switch_bindings.lua
- Switch between key-bindings. You can temporarily disable keybindings and
restore them later when necessary.
- wcirculate.lua
- Grabbed menu for activation history based cycling of windows.
- workspace.lua
- Show current workspace name in statusbar.
- xinerama_switcher
- This is similar to (and base on) go_frame_or_desk.lua but adds
the ability to move between screens too. Left/right switch between
screens, up/down between workspaces.
- 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
- cfg_mouse.lua
- Make the mouse pull its weight in ion.
- dans-bindings.lua
- Keybindings for possibly more intuitive navigation. Easily
reconfigured for vi-style (HJKL) or gamer-style (WASD) movement.
- emacs-bindings.lua
- Emacs-like keybindings for Ion
Styles
- look-alex.lua
- Black tabs, green text and borders.
- look_atme.lua
- A style which just looks nice.
- 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_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-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-moy.lua
- Grey and violet simple theme.
- look_minimalist.lua
- A simple gold/red style with relatively large frame borders
designed to increase usability with the minimal tabs modification.
- look-ootput.lua
- A non-obtrusive style with clear distinctions between active borders
and less active borders. This style makes use of the
Profont font.
- look-qt.lua
- A drawing engine configuration file that reads settings
from Qt
configuration file ~/.qt/qtrc.
- look_tiny.lua
- A major modification of look_minimalist, aiming to keep
everything small while not making anything unattractive.
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_amarok.lua
- Ion-statusd monitor reporting the current song or status of amaroK. Uses
dcop
.
- statusd_apm.lua
- Ion-statusd monitor reporting APM status; works on OpenBSD by executing
external program every minute.
- statusd_apm2.lua
- Ion-statusd monitor reporting APM status; works on FreeBSD by executing apm as an external program every minute. Added hints for a bit more color. Even though this is apm2, save it as statusd_apm.lua.
- statusd_batt.lua
- Ion-statusd monitor reporting battery status; works with apm.
- statusd_bsdbatt.lua
- Ion-statusd monitor for FreeBSD ACPI CMBATT status. Uses the sysctl interface.
- statusd_cpufreq.lua
- Ion-statusd monitor reporting current CPU speed in KHz, MHz, or GHz. Uses the
/proc
filesystem and cpufreq
.
- 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_linuxbatt.lua
- Ion-statusd monitor reporting battery percentage and status using the Linux
/proc/acpi
interface.
- statusd_laptopstatus.lua
- Ion-statusd monitor reporting CPU speed & temperature and battery status; works with acpi.
- statusd_maildir.lua
- Ion-statusd monitor showing mailcount of a Maildir.
- statusd_mpd.lua
- Ion-statusd monitor reporting song currently being played by mpd.
- statusd_netmon.lua
- Ion-statusd network monitor reporting network activity.
- 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_xmms.lua
- Ion-statusd monitor reporting song currently selected in xmms' playlist.
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:
- Get a copy of the repository as explained above.
- Repeat as many times as you want to:
- 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.
- Update this index.html to link to any added files,
in alphabetical order.
- 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.
- 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.