Ion
From Gentoo Linux Wiki
|
|
|
| edit |
Contents |
[edit] What is ion?
Homepage: http://modeemi.cs.tut.fi/~tuomov/ion/ Ion - An x11 Window manager
Ion is a tiling, tabbed window manager that keeps keyboard users in mind. It is a basic X11 setup with tabbed frames covering the screen. This allows for organization and ease for whatever you're working on.
Ion3 has been discontinued from the official portage repository due to license incompatibilities. Read more about this on the Gentoo Forums.
[edit] WARNING
This may or may not work. One of the following needs to be true:
- mabi's overlays need to be up to date
- you need to manually find the source for ion for the ebuild in mabi's repository
- you need to be "lucky" enough for your chosen repository to be out of date enough to not have dumped the ion3 source.
Something that may help is older versions of ion (which were under a different license) that are somewhat hard to find. Some old versions can be found at here
x11-wm/ion is still in the portage tree, just nothing newer (neither ion2 nor ion3), so this guide is how to install ion3.
[edit] Alternatives
Because ion is not really supported anymore, it may be wise to consider an alternative tiling window manager. Possibilities include:
[edit] How to install Ion
[edit] Getting the Overlay Working
So first we need layman and subversion.
| Shell: Install layman |
emerge -av layman subversion |
Then you need to create a directory for your overlay(s):
| Shell: Create layman's director |
mkdir -p /usr/portage/local/layman/ |
You also need a description of the overlay in a xml file. I used ion-overlay.xml. You can use anything here, except for overlay.xml which gets used by layman.
| File: /usr/portage/local/layman/ion-overlay.xml |
<?xml version="1.0" ?>
<layman>
<overlay
type = "svn"
src = "http://overlays.gentoo.org/svn/dev/mabi/"
contact = "mabi@gentoo.org"
name = "ion-overlay">
<link>
http://overlays.gentoo.org/dev/mabi/
</link>
<description>whatev</description>
</overlay>
</layman>
|
In /etc/layman/layman.cfg, you need to tell layman about the overlay:
| File: /etc/layman/layman.cfg |
overlays : http://www.gentoo.org/proj/en/overlays/layman-global.txt
file:///usr/portage/local/layman/ion-overlay.xml
|
Next you need a make.conf file for your overlays, with just a PORTDIR_OVERLAY variable in it:
| Shell: Sync up and Modify make.conf |
echo "source /usr/portage/local/layman/make.conf" >> /etc/make.conf echo "PORTDIR_OVERLAY=\"\"" > /usr/portage/local/layman/make.conf |
Now you have to "fetch" the overlays from the distant internets...or just from hardrive and then add the overlay(s) that you want. This will download all the current ebuilds.
| Shell: Add the overlay, then sync it |
layman --fetch layman -a ion-overlay |
To update in the future you can run:
| Shell: |
layman --sync ion-overlay |
Incidentally eix-sync seems to at the very least pull in the current version of the overlays you have on your machine. No word yet on whether it calls sync as well.
Finally to install ion3 you need to do an
| Shell: |
emerge -av ion3 |
If the install fails due to the files not being found you will have to find the tar.gz files for the version somewhere on the internet. One hint is that they should be held in the non-free debian repositories: http://ftp.us.debian.org/debian/pool/non-free/i/ion3/ http://ftp.gva.es/mirror/debian/pool/non-free/i/ion3/ just download the tar.gz for your version and your ready to go again.
[edit] How to Install
First emerge the window manager (ion3 is the most recent version so we will use that one. There is also ion, and ion2)
emerge -av ion3 env-update
[edit] Configure and switch to ion3
In order to switch to your new window manager ion3 we need to edit your ~/.xinitrc file. If you dont have one in your home directory, you can create one, and it will still work when you use startx.
| File: ~/.xinitrc |
exec ion3 |
Thats all there is to it. Global configuration files are located in the /etc/X11/ion3/ folder, but for most things you should probably edit the files in ~/.ion3. Especially useful is the ~/.ion3/cfg_bindings.lua file; this lets you change and add your own key bindings. There are also some cool themes that can be made. For example heres my theme, I found on the main webpage and made a few changes :)
| File: /etc/X11/ion3/look_tiny.lua |
-- look_tiny.lua: an ion3 style for small screens...like mine :(
-- based on look_minimalist.lua
if not gr.select_engine("de") then return end
de.reset()
de.defstyle("*", {
bar_inside_border = false,
background_colour = "black",
foreground_colour = "green",
padding_colour = "black",
padding_pixels = 0,
highlight_pixels = 0,
shadow_pixels = 0,
border_style = "ridge",
font = "-*-lucida-medium-r-normal-*-10-*-*-*-*-*-*-*",
text_align = "left",
transparent_background = false,
})
de.defstyle("frame", {
based_on = "*",
spacing = 2,
})
de.defstyle("frame-floating", {
based_on = "frame",
highlight_colour = "green",
shadow_colour = "green",
highlight_pixels = 1,
shadow_pixels = 1,
padding_pixels = 3,
})
de.defstyle("tabstyle", {
based_on = "*",
background_colour = "#222222",
de.substyle("active-unselected", {
padding_colour = "#353577",
background_colour = "#000044",
}),
de.substyle("inactive-selected", {
padding_colour = "#707070",
background_colour = "#505050",
}),
de.substyle("active-selected", {
padding_colour = "#5555cc",
background_colour = "#223399",
}),
})
de.defstyle("tab", {
based_on = "tabstyle",
spacing = 2,
padding_pixels=1,
})
de.defstyle("tab-menuentry", {
based_on = "tabstyle",
font = "-*-lucida-medium-r-normal-*-12-*-*-*-*-*-*-*",
text_align = "left",
})
de.defstyle("tab-menuentry-big", {
based_on = "tab-menuentry",
font = "-*-lucida-medium-r-normal-*-24-*-*-*-*-*-*-*",
})
de.defstyle("input", {
based_on = "*",
padding_pixels = 1,
font = "-*-lucida-medium-r-normal-*-14-*-*-*-*-*-*-*",
de.substyle("*-cursor", {
background_colour = "#00ff00",
foreground_colour = "#000000",
}),
de.substyle("*-selection", {
foreground_colour = "#5555cc",
}),
})
de.defstyle("stdisp", {
based_on = "tab",
background_colour = "#000000",
padding_colour = "#000000",
de.substyle("important", { foreground_colour = "#ffff00", }),
de.substyle("critical", { foreground_colour = "#ff0000", }),
de.substyle("gray", { foreground_colour = "#505050", }),
de.substyle("red", { foreground_colour = "#ff0000", }),
de.substyle("green", { foreground_colour = "#00ff00", }),
de.substyle("blue", { foreground_colour = "#0000ff", }),
de.substyle("cyan", { foreground_colour = "#00ffff", }),
de.substyle("magenta", { foreground_colour = "#ff00ff", }),
de.substyle("yellow", { foreground_colour = "#ffff00", }),
})
gr.refresh()
|
[edit] I upgraded to 20061223 and now nothing works
The 20061223 version of ion3 made some major changes to ion3's architecture, so you may need to change your config files. It's probably best to move your existing ~/.ion3 directory to ~/.ion3.old and to make a new, empty ~/.ion3. Ion will use the defaults in /etc/X11/ion3 if it doesn't find the relevant files in ~/.ion3, so initially you shouldn't worry about copying anything into ~/.ion3 except for cfg_ion.lua, and that only to define ALTMETA. (Make sure to copy the cfg_ion.lua from /etc/X11/ion3, not from ~/.ion3.old, since you want to make sure you have the newer version.) Once you've got a working system, you can copy back files from ~/.ion3.old (or better yet, copy files from /etc/X11/ion3 and modify them based on your changes to the ~/.ion3.old files). Many bindings which formerly were in cfg_bindings.lua are now in cfg_ioncore.lua, so if something unexpected is happening, check that file. Also, some objects and properties have been renamed; check the ion3 function reference for specific cases. This should solve many of your basic problems.
[edit] up-to-date ebuild for ion3
The ebuild from mabi's overlay didn't work for me, so i wrote my own one for the newest version (ion-3rc-20080103). It worked fine for me, perhaps it wouldn't work for you. You can get it from [1]. In my blog i published a short installation howto in german, for those who don't know how to handle ebuild files (it's simpler as described here, without layman): [2]
