Ion2
Ion | |
---|---|
Ion2 Screenshot | |
Basisdaten | |
Entwickler: | Tuomo Valkonen |
Aktuelle Version: | Ion-2-20040729 |
letzte Veröffentlichung: | 27. September 2007 |
Betriebssystem: | Linux, BSD, Unix |
Kategorie: | Windowmanager |
Lizenz: | LGPL |
Deutschsprachig: | |
Webseite: | Ion Webseite |
Inhaltsverzeichnis
Info
Der Ion Fenster.- oder Windowsmanager ist der Nachvolger vom PWM Fenstermanager. Er läuft unter dem X11 System, ist extrem klein, schlank und schnell (Ressourcenschonend). Das besondere an Ion ist das sich alle geöffneten Fenster niemals überlappen. Dies heisst das alle geöffneten Fenster zu jeder Zeit sichtbar sind. Funktionieren tut die ganze Sache mit Hilfe eines Areals in welchem ein Fenster oder auch mehrere geöffnet werden können. Der gesamte Bildschirm wird unter den Areals oder auch Frames genannt aufgeteilt. Sind in einem Areal mehrere Fenster geöffnet, so bekommt hier jedes seine eigene Registerreiter ueber welche es angewählt werden kann. Im Screenshot neben an sind derzeit 4 Areals (Frames) zu sehen, in jedem ist die Konsole-Eterm und in ihr ein Programm gestartet. Diese gestartete Anwendung (Eterm/Programm) sind in einem Fenster untergebracht welches einen Registerreiter hat.
Alternativen
Als Alternative zu Ion gibt es vollgende andere Fenstermanager:
- LarsWM
- Ratpoison
- StumpWM
- WMI
- WMII
- TrsWM
Funktionstasten
In der Regel sind die Funktionstasten bei Ion vollgendermaßen bestückt:
- F1 - Die Manpages anzeigen
- F2 - Ein eues Terminal
- F3 - Ein Programme starten
- F4 - Eine SSH-Verbindung herstellen
- F5 - Datei editieren
- F6 - Datei anzeigen
- F9 - Erstellen einer neuen Arbeitsfläche (Areal/Frame)
- F12 - Das Hauptmenü
- ALT + S - Eine Area oder Frame vertikal splitten
- ALT + KS - Eine Area oder Frame horizontal splitten
Installation
Debian
Wie immer gestaltet sich die Installation unter Debian recht einfach mit Hilfe von APT.
apt-get update apt-get install ion2
Konfigurationsdateien
Sämtliche Konfigurationsdateien welche Systemweit für alle Benutzer gelten sind in der Regel unter /etc/X11/ion2 zu finden. Wer seinen Ion nicht Systemweit für alle gleich sondern für jeden Benutzer anderst konfigurieren möchte kann hierzu die entsprechenden Konfigurationsdateien im /home/ ~ /.ion2 Verzeichniss anlegen.
Die wohl wichtigsten zwei der Konfigurationsdateien sind:
- ion-bindings.lua
- ion-menus.lua
Mit Hilfe der ersten ist es uns möglich die F--Tasten 1-12 entsprechend anderst zu belegen und unseren Wünschen anzupassen. In der hier zweitgenannten wird zum Beispiel das Menü welches wir mit F12 erhalten konfiguriert.
F-Tasten
Die Funktion der F-Tasten ist eigentlich gar nicht mal so schlecht, doch leider bei manchen Anwendungen welche selbst die F-Tasten benötigen extrem störend. zum Beispiel wird beim Arbeiten im MC das Betätigen der F-Tasten die Funktion vom Ion und nicht vom MC selbst ausführen. Drücke ich z.B. F-5 so wird die Option von Ion für das Editieren geöffnet anstelle die Option im MC für das Kopieren einer Datei. Wie können wir das Problem am einfachsten lösen. Ganz einfach, wir entfernen die Funktionen aus der entsprechenden Konfigurationsdatet so, das die F--Tasten von F1--10 keine Funktion mehr in Ion beim drücken haben. Das aufrufen des Menüs lassen wir weiterhin auf der F12 Taste liegen, zudem belegen wir die Taste F11 mit dem öffnen einer neuen Konsole. In dem von mir hier gezeigten Beispiel ist es allerdings das Eterm Terminal in Transparenter Form mit einem dafür gewählten Wallpaper. Die also bitte entsprechend anpassen.
Konfiguration
F-Tasten
Die vollgende Datei entsprechend editieren: /etc/X11/ion2/ion-bindings.lua
-- Nicht aktieve Zeilen werden so geschrieben -- anstelle der Rauten # wie man es heufig findet. include("querylib") include("menulib") global_bindings{ kpress(DEFAULT_MOD.."1", function(s) s:switch_nth(0) end), kpress(DEFAULT_MOD.."2", function(s) s:switch_nth(1) end), kpress(DEFAULT_MOD.."3", function(s) s:switch_nth(2) end), kpress(DEFAULT_MOD.."4", function(s) s:switch_nth(3) end), kpress(DEFAULT_MOD.."5", function(s) s:switch_nth(4) end), kpress(DEFAULT_MOD.."6", function(s) s:switch_nth(5) end), kpress(DEFAULT_MOD.."7", function(s) s:switch_nth(6) end), kpress(DEFAULT_MOD.."8", function(s) s:switch_nth(7) end), kpress(DEFAULT_MOD.."9", function(s) s:switch_nth(8) end), kpress(DEFAULT_MOD.."0", function(s) s:switch_nth(9) end), kpress(DEFAULT_MOD.."Left", WScreen.switch_prev), kpress(DEFAULT_MOD.."Right", WScreen.switch_next), submap(DEFAULT_MOD.."K", { kpress("AnyModifier+K", goto_previous), kpress("AnyModifier+T", clear_tags), }), kpress(DEFAULT_MOD.."Shift+1", function() goto_nth_screen(0) end), kpress(DEFAULT_MOD.."Shift+2", function() goto_nth_screen(1) end), kpress(DEFAULT_MOD.."Shift+Left", goto_next_screen), kpress(DEFAULT_MOD.."Shift+Right", goto_prev_screen), kpress(SECOND_MOD.."F11", make_exec_fn("Eterm --trans=true --scrollbar=false --buttonbar=false -f white --cmod 257 -c white | Esetroot /usr/share/blackbox/backgrounds/wallpaper.jpg")), kpress(SECOND_MOD..KEYF12, make_bigmenu_fn("mainmenu")), mpress("Button2", make_pmenu_fn("windowlist")), mpress("Button3", make_pmenu_fn("mainmenu")), } genframe_bindings{ kpress(DEFAULT_MOD.."T", make_mplex_sub_fn(WRegion.toggle_tag)), submap(DEFAULT_MOD.."K", { kpress("AnyModifier+N", WGenFrame.switch_next), kpress("AnyModifier+P", WGenFrame.switch_prev), kpress("AnyModifier+1", function(f) f:switch_nth(0) end), kpress("AnyModifier+2", function(f) f:switch_nth(1) end), kpress("AnyModifier+3", function(f) f:switch_nth(2) end), kpress("AnyModifier+4", function(f) f:switch_nth(3) end), kpress("AnyModifier+5", function(f) f:switch_nth(4) end), kpress("AnyModifier+6", function(f) f:switch_nth(5) end), kpress("AnyModifier+7", function(f) f:switch_nth(6) end), kpress("AnyModifier+8", function(f) f:switch_nth(7) end), kpress("AnyModifier+9", function(f) f:switch_nth(8) end), kpress("AnyModifier+0", function(f) f:switch_nth(9) end), kpress("AnyModifier+H", WGenFrame.maximize_horiz), kpress("AnyModifier+V", WGenFrame.maximize_vert), kpress("AnyModifier+A", WGenFrame.attach_tagged), }), kpress(DEFAULT_MOD.."M", make_menu_fn("ctxmenu")), mpress("Button3", make_pmenu_fn("ctxmenu"), "tab"), }
Menü
In der Konfigurationsdatei für das Menü habe ich in diesem Beispiel wie auch schon iom oberen Xterm durch das von mir verwendete transparente Eterm mit Wallpaper ersezt. /etc/X11/ion2/ion-menus.lua
-- Nicht aktieve Zeilen werden so geschrieben -- anstelle der Rauten # wie man es heufig findet. include("menulib") include("querylib") defmenu("mainmenu", { submenu("Programs", "appmenu"), menuentry("Lock screen", function(reg) exec_in(reg, lookup_script("ion-lock")) end), menuentry("Help", querylib.query_man), menuentry("About Ion", querylib.show_aboutmsg), submenu("Styles", "stylemenu"), submenu("Debian", "Debian"), submenu("Exit", "exitmenu"), }) defmenu("appmenu", { menuentry("Terminal", make_exec_fn("Eterm --trans=true --scrollbar=false --buttonbar=false -f white --cmod 257 -c white | Esetroot /usr/share/blackbox/backgrounds/wallpaper.jpg")), menuentry("Browser", make_exec_fn("opera")), -- The query module must also be loaded for this binding to work. menuentry("Run...", querylib.query_exec), }) defmenu("exitmenu", { menuentry("Restart", restart_wm), menuentry("Restart PWM2", function() restart_other_wm("pwm2") end), menuentry("Restart TWM", function() restart_other_wm("twm") end), menuentry("Exit", exit_wm), }) defmenu("ctxmenu", { menuentry("Close", WMPlex.close_sub_or_self), menuentry("Kill", make_mplex_clientwin_fn(WClientWin.kill)), menuentry("(Un)tag", make_mplex_sub_fn(WRegion.toggle_tag)), menuentry("Attach tagged", WGenFrame.attach_tagged), menuentry("Clear tags", clear_tags), }) defmenu("ctxmenu-floatframe", { menuentry("Close", WMPlex.close_sub_or_self), menuentry("Kill", make_mplex_clientwin_fn(WClientWin.kill)), menuentry("(Un)tag", make_mplex_sub_fn(WRegion.toggle_tag)), menuentry("Attach tagged", WGenFrame.attach_tagged), menuentry("Clear tags", clear_tags), menuentry("(Un)stick", function(f) f:toggle_sticky() end), }) if os.execute("test -x /usr/bin/update-menus") == 0 then if ioncore_is_i18n() then include("debian-menu-i18n") else include("debian-menu") end end
Links