Ion2

Aus Linupedia.org
Version vom 15. November 2007, 21:20 Uhr von OnkelchenTobi (Diskussion | Beiträge) (Alternativen: + Link)
Wechseln zu: Navigation, Suche
Ion
Ion-Fenstermanager.png.png
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

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
  • DWM


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("firefox")),
    -- 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




zurück zum Desktop