[[Vorlage(Archiviert, )]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Editor: Einen Editor öffnen] [:sudo: Root-Rechte] [:Rechte: Rechte für Dateien und Ordner ändern] }}} [[Inhaltsverzeichnis(1)]] [[Bild(./ratpoison.png, 64, align=left)]] [https://www.nongnu.org/ratpoison/ Ratpoison] {en} ist ein sehr einfach gehaltener [:Fenstermanager#Tiling:Tiling]-[:Fenstermanager:]. Wie der Name schon sagt, ist er Gift für die Maus – die Bedienung erfolgt ausschließlich mit der Tastatur. Für einzelne Fenster steht aber jederzeit die Maus bereit. Ratpoison zeichnet sich dadurch aus, dass es viele [#Konfiguration Konfigurationsmöglichkeiten] bietet. Selbstverständlich unterstützt es auch [#Mehrere-Arbeitsflaechen-erstellen mehrere Arbeitsflächen]. = Installation = Es muss nur ein Paket aus den offiziellen Paketquellen installiert [1] werden: {{{#!vorlage Paketinstallation ratpoison, universe }}} = Start = [[Vorlage(Bildunterschrift, ratpoisonscreenshot.png, 250, "Ratpoison mit Tiling", right)]] Möchte man Ratpoison als neue Sitzung im Displaymanager eintragen, sollte die Konfigurationsdatei '''/usr/share/xsessions/ratpoison.desktop''' in etwa so aussehen: {{{ [Desktop Entry] Name=Ratpoison Comment=starts Ratpoison Comment[de]=Startet Ratpoison Exec=ratpoison Icon= Type=Application }}} Danach kann man im Displaymanager die Sitzung ''"Ratpoison"'' auswählen und so den Fenstermanager starten. Alternativ kann man Ratpoison auch über eine [:Terminal#Virtuelle-Konsole:virtuelle Konsole] starten. Dazu muss man folgenden Befehl ausführen: {{{#!vorlage Befehl startx /usr/bin/ratpoison -- :1 }}} Die XServer-Sitzungen werden von `0` an durchnummeriert. Ratpoison wird also auf XServer 2, welcher die Tastenkombination [[Vorlage(Tasten, strg+alt+f8)]] hat, gestartet. {{{#!vorlage Hinweis Der oben genannte Befehl bezieht sich auf ein Linux-System ohne grafische Anmeldung und sollte nicht in einem [:Terminal:] innerhalb einer grafischen Oberfläche ausgeführt werden. }}} = Benutzung = == Tastenkürzel == Mit der Tastenkombination [[Vorlage(Tasten, ctrl+t)]] gelangt man in den Befehlsmodus. Dort kann man dann unter anderem folgende Befehle an Ratpoison übergeben: || Tastenkürzel||Wirkung|| || [[Vorlage(Tasten, ?)]]||Ein Hilfe-Fenster öffnet sich.|| || [[Vorlage(Tasten, umsch+1)]]||Oben-rechts öffnet sich ein kleines Eingabefeld, über das man Programme per Shell-Befehl ausführen kann.|| || [[Vorlage(Tasten, .)]]||Ein Menü, mit dem man Programme starten kann, öffnet sich.|| || [[Vorlage(Tasten, umsch+.)]]||Oben-rechts öffnet sich ein kleines Eingabefeld, über das man [#Befehle Befehle] an Ratpoison übergeben kann.|| || [[Vorlage(Tasten, c)]]||Eine Shell wird geöffnet.|| || [[Vorlage(Tasten, u)]]||Die letzte Aktion wird rückgängig gemacht.|| || [[Vorlage(Tasten, k)]]||Das Fenster wird beendet.|| || [[Vorlage(Tasten, umsch+k)]]||Das Fenster wird zum Schließen gezwungen. (Nötig, wenn ein Fenster hängen bleibt.)|| || [[Vorlage(Tasten, s)]]||Teilt den aktuellen Rahmen vertikal in der Mitte.|| || [[Vorlage(Tasten, umsch+s)]]||Teilt den aktuellen Rahmen horizontal in der Mitte.|| || [[Vorlage(Tasten, tab)]],[[Vorlage(Tasten, n)]]||Wechselt zum nächsten Fenster.|| || [[Vorlage(Tasten, p)]]||Wechselt zum vorigen Fenster.|| || [[Vorlage(Tasten, r)]]||Man gelangt in einen Modus, in dem man die Größe des aktuellen Rahmens mit den Pfeiltasten oder mit den vi-Richtungstasten (h,j,k,l) ändern kann.|| || [[Vorlage(Tasten, umsch+r)]]||Verschiebt das aktuelle Fenster in den Hintergrund und vergrößert die verbleibenden entsprechend.|| || [[Vorlage(Tasten, umsch+q)]]||Verschiebt alle Fenster außer dem aktuellen in den Hintergrund und vergrößert dieses aus die gesamte Desktopfläche.|| || [[Vorlage(Tasten, hoch)]],[[Vorlage(Tasten, runter)]],[[Vorlage(Tasten, rechts)]],[[Vorlage(Tasten, links)]]||Wechselt zu dem Fenster, welches in der entsprechenden Richtung liegt.|| || [[Vorlage(Tasten, enter)]]||Man wechselt zu dem Fenster, welches im Hintergrund geöffnet ist.|| || [[Vorlage(Tasten, a)]]||Zeigt oben-rechts die Zeit und das Datum an.|| || [[Vorlage(Tasten, w)]]||Zeigt die Namen der Fenster an.|| Da manche häufig verwendeten Tastenkombinationen denkbar ungünstig liegen, sollte man sich am besten (wenn es störend ist) seine eigene [#Konfiguration Konfiguration] erstellen, oder eine schon [http://wiki.archlinux.de/title/Ratpoison#kAni.27s_.ratpoisonrc vorgefertigte Konfigurationsdatei] {de} übernehmen. == Befehle == Befehle können entweder während der Benutzung von Ratpoison über [[Vorlage(Tasten, Strg+t+umsch+.)]] übergeben werden (um etwas während der Laufzeit zu verändern), oder in die Konfigurationsdatei '''~/.ratpoisonrc''' eingetragen werden (um Änderungen für jeden Start zu konfigurieren). Eine vollständige und sehr brauchbare Auflistung findet man in den [:man:Manpages] zu Ratpoison. || Befehl||Wirkung|| || `quit` ||Ratpoison beenden|| || `help` ||Die Hilfe wird geöffnet.|| || `startup_message off`||Deaktiviert die Startnachricht.|| || `time`||Zeigt die Uhrzeit und das Datum an.|| || `set [ratpoison-variable] [wert]`||Setzt den [wert] für die [ratpoison-variable]. Ohne den Parameter [wert], wird der aktuelle Wert der [ratpoison-variable] ausgegeben. Ganz ohne Parameter, werden die Werte aller Variablen ausgegeben.|| || `describekey [keymap]`||Zeigt die Funktion der Taste an, welche nach Absetzen des Befehls in der bestimmten [keymap] gedrückt wird.|| || `bind [tastenkombi] [befehl]` ||Nach [[Vorlage(Tasten, Strg+t)]] wird mit der [tastenkombi] der [befehl] ausgeführt.|| || `bind [tastenkombi] exec [anwendung]`||Nach [[Vorlage(Tasten, Strg+t)]] wird mit der [tastenkombi] die [anwendung] gestartet.|| || `definekey top [tastenkombi] [befehl]`||Mit [tastenkombi] wird der [befehl] ausgeführt.|| || `escape [tastenkombi]`||Ersetzt die Escape-Tastenkombination (Default: [[Vorlage(Tasten, Strg+t)]]) durch [tastenkombi].|| || `unbind [tastenkombi]`||[tastenkombi] aufheben.|| || `split` bzw. `vsplit`||Teilt den aktuellen Rahmen in zwei vertikale Hälften.|| || `vsplit x`||Teilt den Rahmen, wobei das zuvor angezeigte Fenster x Pixel von oben oder (bei negativem x) -x Pixel von unten einnimmt.|| || `vsplit x/y`||Teilt den Rahmen vertikal, indem x von y Teilen dem zuvor angezeigte Fenster zugeteilt werden.|| || `hsplit`||Teilt den Rahmen horizontal. Bei Parametern gilt das gleiche, wie bei `vsplit`.|| || `focus`||Wechselt in den nächsten Rahmen.|| || `focusup`,`focusdown`,`focusleft`,`focusright`||Wechselt den Rahmen in die angegebene Richtung. (hoch/runter/links/rechts)|| || `shrink`||Bringt das Fenster in die eigentliche Größe.|| || `dedicate [0/1]`||(1) Setzt fest, dass keine weiteren Fenster in diesem Rahmen geöffnet werden. (0) Macht den Befehl rückgängig.|| || `banish`||Verbannt den Mauszeiger in die rechte untere Ecke. Dort gehört er in Ratpoison hin ;)|| ===Erläuterungen=== * [befehl] ist ein Ratpoisonbefehl, wie er in der obigen Tabelle aufgelistet ist (z.B quit oder help). * [anwendung] ist der Startbefehl einer beliebigen Anwendung (z.B pidgin oder firefox). * [tastenkombi] ist eine beliebig wählbare Taste oder Tastenkombination. Diese werden so dargestellt: * a ist [[Vorlage(Tasten, a)]] * M-d ist [[Vorlage(Tasten, alt+d)]] * C-r ist [[Vorlage(Tasten, strg+r)]] * Um den Code von Sondertasten herauszufinden, benutzt man am besten den describekey-Befehl. (siehe Tabelle) * [keymap] -> [#Keymaps Keymaps] * [ratpoison-variable] -> [#Variablen Variablen] == Internet == Da bei Ubuntu in der Regel der [:NetworkManager:] benutzt wird, um eine Internet-Verbindung zu konfigurieren, wird hier kurz beschrieben, wie man unter Ratpoison am besten ins Netz gelangt. Drei (zwei grafische) Möglichkeiten stehen zur Auswahl: * Über den [:NetworkManager:]: {{{#!vorlage Befehl nm-connection-editor }}} Dort kann man nur Verbindungen eintragen, sich jedoch nicht direkt mit einem Netzwerk verbinden. Um dies zu tun, muss man das Applet starten, welches jedoch nur im Hintergrund läuft, da das Panel zur Darstellung fehlt: {{{#!vorlage Befehl nm-applet }}} * Über [:Wicd:], indem man statt des Applets das Fenster öffnet mit dem Befehl: {{{#!vorlage Befehl wicd-client -n }}} * Über [:WLAN/wpa supplicant:wpa supplicant] = Konfiguration = Ratpoison wird über die Datei '''~/.ratpoisonrc''' konfiguriert. Die Einträge in dieser entsprechen den [#Befehle Befehlen]. Wenn sie noch nicht existiert, muss man die Datei selbst anlegen [2]. Eine sehr brauchbare Konfigurationsdatei findet man [http://wiki.archlinux.de/title/Ratpoison#kAni.27s_.ratpoisonrc hier] {de}. == Variablen == Mit Variablen kann man das Aussehen und Verhalten von Ratpoison ändern. Man arbeitet mit ihnen über den [#Befehle Set-Befehl]. || Variable||Wirkung|| || `fgcolor`|| Ändert die Vordergrundfarbe der Ratpoison-Fenster.|| || `bgcolor`|| Ändert die Hintergrundfarbe der Ratpoison-Fenster.|| || `innputwidth [pixel]`||Setzt die Länge des Ratpoison-Textfeldes (welches immer rechts-oben erscheint) auf [pixel].|| || `border [pixel]`||Setzt den Fensterrahmen aller Fenster auf [pixel].|| || `font [schrift]`||Setzt die Schrift von Ratpoison auf [schrift].|| || `maxundos [anzahl]`||Setzt die maximale Anzahl der Schritte, welche Ratpoison durch [[Vorlage(Tasten, strg+t+u)]] zurück gehen kann, auf [anzahl].|| == Keymaps == Keymaps kann man als die Menüs der Tastatur bezeichnen. So hat man nach bestimmten, frei wählbaren Tasten(kombinationen) die Möglichkeit, ein bestimmtes Element (Start von Anwendungen, Shutdownoptionen, Audioplayer) mit der gesamten Tastatur zu steuern. Dies muss man jedoch selbst konfigurieren. Es gibt in der Standardkonfiguration von Ratpoison zwei verschiedene Keymaps: * top: Sie ist ein Sonderfall, da zu ihr alle Tasten gehören, welchen bei der "normalen" Benutzung von Ratpoison Befehle zugewiesen sind (Arbeitsfläche wechseln wie in "[#Mehrere-Arbeitsflaechen-erstellen Mehrere Arbeitsflächen erstellen]"). * root: Zu ihr gehören alle Tasten(kombinationen), welchen nach betätigen von [[Vorlage(Tasten, strg+t)]] Befehle zugewiesen sind (alle [#Tastenkuerzel Tastenkürzel]). === Erstellen einer Keymap === Folgender Eintrag in der '''~/.ratpoisonrc''' ist nötig, um eine neue Keymap zu erzeugen und ihr einen Befehl zuzuweisen: {{{ # Erstellt die neue Keymap namens "meinekeymap" newkmap meinekeymap # Weist "meinekeymap" die Tastenkombination Strg+k zu definekey top C-k readkey meinekeymap # Weist "meinekeymap" den Eintrag mit der Taste f zu, welcher Firefox startet definekey meinekeymap f exec firefox }}} Nachdem man dies in seine '''~/.ratpoisonrc''' kopiert hat, kann man durch [[Vorlage(Tasten, strg+k+f)]] Firefox starten. === Beispiele === Keymap eines "Herunterfahren-Menüs": {{{ #Keymap shutdown newkmap shutdown definekey top C-s readkey shutdown #herunterfahren definekey shutdown h exec gksu halt #neustarten definekey shutdown r exec gksu reboot #standby definekey shutdown s exec gksu /etc/acpi/sleep.sh #abmelden definekey shutdown a quit }}} Bei dieser Variante wird immer noch nach dem Root-Passwort gefragt. Wenn man das nicht will, muss man einen entsprechenden Eintrag in die Datei [:sudo/Konfiguration:/etc/sudoers] machen. Keymap einer [:MOC_-_music_on_console:moc]-Steuerung: {{{ #moc Keymap newkmap moc definekey top C-m readkey moc #Wechsel zwischen play und pause definekey moc p exec mocp -G #Nächster Titel in der playlist definekey moc j exec mocp -f #Voriger Titel in der playlist definekey moc f exec mocp -r #Play (wenn Stopp ist) definekey moc P exec mocp -p #Zeigt den Künstler und den Titel in einer Ratpoison-Nachricht an definekey moc i exec ratpoison -c "echo `mocp -Q %artist%title`" }}} == Mehrere Arbeitsflächen erstellen == Ratpoison besitzt von Haus aus nur eine Arbeitsfläche, jedoch kann man ohne Probleme weitere erstellen. Dazu bearbeitet man die Datei '''~/.ratpoisonrc''' folgendermaßen. Um mehrere Arbeitsflächen zu erstellen, ist dieser Eintrag nötig: {{{exec /usr/bin/rpws init 4 -k}}} In diesem Fall werden vier Arbeitsflächen erstellt und man kann mit [[Vorlage(Tasten, alt+f1)]] bis [[Vorlage(Tasten, alt+f4)]] zwischen ihnen wechseln. Wenn man die einzelnen Arbeitsflächen mit anderen Tastenkombination belegen will, lässt man einfach die Option `-k` weg und definiert sie dann so: {{{definekey top TASTENKÜRZEL exec rpws 3}}} In diesem Fall wird `TASTENKÜRZEL` zu der Arbeitsfläche Nr. 3 erstellt. Um nun auch noch mit einer Tastenkombination die Fenster zwischen den Arbeitsflächen zu verschieben, ist dieser Eintrag nötig: * Für die erste Arbeitsfläche: {{{definekey top [tastenkombi] exec ratpoison -c "gmove default" -c "select -" -c "next"}}} * Für alle weiteren Arbeitsflächen: {{{definekey top [tastenkombi] exec ratpoison -c "gmove wspl2" -c "select -" -c "next"}}} (wobei in diesem Fall das Fenster zur Arbeitsfläche Nr. 2 verschoben wird (`gmove wspl2`)). {{{#!vorlage Hinweis Wenn man die Fenster verschiebt, muss man sie dann auf der Zielarbeitsfläche erst mit [[Vorlage(Tasten, Strg+t+enter)]] in den Vordergrund holen. }}} Wenn man will, dass man mit dem Verschieben auch zu der jeweiligen Arbeitsfläche wechselt, hängt man einfach {{{;rpws [arbeitsfläche nr.];ratpoison -c "next"}}} an alle Verschiebe-Befehle. Das sieht dann z.B. so aus, wenn man das Fenster auf die Arbeitsfläche Nr. 1 verschiebt: {{{definekey top [tastenkombi] exec ratpoison -c "gmove default" -c "select -" -c "next";rpws 1;ratpoison -c "next"}}} == Hintergrundbild == Von sich aus unterstützt Ratpoison keine Hintergrundbilder, jedoch kann man eines beispielsweise über [:Feh:] einstellen. {{{#!vorlage Befehl feh --bg-center [pfad-zum-bild]/[bild] }}} Dieser Befehl gilt nur für eine Session. Wenn man dauerhaft ein Hintergrundbild einstellen will so trägt man dies in die Datei '''~/.ratpoisonrc''' ein: {{{exec feh --bg-center [pfad-zum-bild]/[bild]}}} == Skripte == Wenn man in Ratpoison "auf Knopfdruck" eine bestimmte Rahmenkonstilation und in dieser bestimmte Programme haben will, dann sind Skripte ein guter Weg, dies zu realisieren. Man speichert sie am besten in dem Ordner '''~/.ratpoison/''' ab, welchen man in der Regel neu erstellen muss. Das folgende ist z.B. ein Skript, welches auf einer Arbeitsfläche vier Terminals öffnet und dann das erste (links-oben) fokusiert: {{{#!code bash #!/bin/bash ratpoison -c split xterm & sleep 1 ratpoison -c hsplit ratpoison -c focusright xterm & sleep 1 ratpoison -c focusdown ratpoison -c hsplit xterm & sleep 1 ratpoison -c focusright xterm & sleep 1 ratpoison -c focus }}} Über den Befehl `ratpoison -c` kann man [#Befehle Befehle] an Ratpoison übergeben. Sonst ist es ein "normales" Bash-Skript. Zu beachten ist, dass man nach "xterm" immer die folgenden Ratpoison-Befehle über "sleep [sekunden-die-das-programm-zum-starten-braucht]" verzögern muss, damit das Terminal auch in dem aktuellen Rahmen geöffnet wird. Nachdem man dieses Skript z.B. unter '''4terms.sh''' gespeichert und über [:chmod:] ausührbar gemacht hat, kann man einen Eintrag in der '''~/.ratpoisonrc''' machen, um das Skript über eine Tastenkombination starten zu können. [4] Dieser könnte dann so aussehen: {{{ bind T exec ~/.ratpoison/./4terms.sh }}} Nun werden über [[Vorlage(Tasten, strg+t+umsch+t)]] vier gleich große Terminals auf der aktuellen Arbeitsfläche gestartet. Man sollte diese Tastenkombination am besten auf einer leeren Arbeitsfläche ausführen. Hier noch ein Skript, welches [:Pidgin:] startet, an den linken Rand verschiebt und die Rahmen so konfiguriert, dass bei Doppelklick auf einen "Buddy" das Chatfenster in dem rechten Teil der Arbeitsfläche geöffnet wird. {{{#!code bash #!/bin/bash pidgin & sleep 5 ratpoison -c dedicate ratpoison -c "hsplit 1/5" ratpoison -c focusright }}} = Problembehebung = == Menü == Wenn einzelne Einträge im Menü ( [[Vorlage(Tasten, ctrl+t+.)]] ) nicht funktionieren, liegt das daran, dass Ratpoison versucht, die Programme mit dem Befehl ``x-terminal-emulator`` aufzurufen. Dieser ruft jedoch (unter GNOME) das ``gnome-terminal`` auf, welches unter Ratpoison nicht startet. Es gibt es zwei verschiedene Möglichkeiten, dieses Problem zu beheben: === Lösung Nr. 1 === Mit dem Befehl: {{{#!vorlage Befehl sudo update-alternatives --config x-terminal-emulator }}} kann man auswählen, welches Terminal man bei dem "x-terminal-emulator" verwenden will. Dort wählt man zum Beispiel ``xterm`` aus (dies auch sonst der Standard bei Ratpoison). === Lösung Nr. 2 === Diese Lösung ist nur nötig, wenn die [#Loesung-Nr-1 Lösung 1] in Konflikt mit anderen Desktopumgebungen gerät, weil sie auch den Befehl "x-terminal-emulator" verwenden und in diesem Fall "xterm" unerwünscht ist. Man passt die Dateien im Verzeichnis '''/var/lib/ratpoison/menu''' wie in folgendem Beispiel an: [2][3] In der Datei '''debian.Games.Action.menu''' finden wir die Zeile {{{\Robots:exec x-terminal-emulator -T "Robots" -e sh -c "robots"}}} und ersetzen "x-terminal-emulator" durch "xterm". Das sieht dann so aus: {{{\Robots:exec xterm -T "Robots" -e sh -c "robots"}}} So verfährt man mit allen Einträgen. == Updates == Wenn man Ratpoison benutzt, läuft man Gefahr, das System nicht mehr regelmäßig zu aktualisieren, da man nicht extra darauf hingewiesen wird. Dies kann man z.B. dadurch umgehen, dass man sich bei jedem Start von einem Skript fragen lässt, ob man eine Aktualisierung will. Dafür speichert man die folgenden Zeilen in der Datei '''~/.ratpoison/update.sh''' und macht sie ausführbar [4] (Ordner und Datei müssen möglicherweise noch angelegt werden). {{{ echo "Do you want to update the system? [y/n]" read q echo if [ $q = "y" ] then sudo apt-get update sudo apt-get dist-upgrade -y fi }}} Danach muss man noch dafür sorgen, dass dieses Skript bei jedem Start von Ratpoison gestartet wird. Man fügt einfach diese Zeile in die Datei '''~/.ratpoisonrc''' ein {{{ exec xterm -e ~/.ratpoison/update.sh }}} Nun wird man bei jedem Start nach einem Update gefragt und kann die Frage mit "y" beantworten, wenn man will. {{{#!vorlage Hinweis Damit diese Variante funktioniert, muss man natürlich dafür sorgen, dass Ratpoison beim Start immer mit dem [#Internet Internet] verbunden ist. }}} Alternativ kann man auch [:Automatische_Updates#Ohne-grafische-Oberflaeche:diese Anleitung] einrichten. = Links = * [https://wiki.archlinux.de/title/Ratpoison Ratpoison im Arch-Linux-Wiki] {de} * [https://box.matto.nl/ratpoison_nmapplet.html NetworkManager unter Ratpoison] {en} * [:Fenstermanager:] {Übersicht} Programmübersicht #tag: Desktop, Fenstermanager