Minimales X-Windows-System ########################## ZIEL: Installation und Konfiguration einer minimalen, grafischen Arbeitsumgebung auf Debian 9. .. image:: img/x11-openbox-two-wings.png Software ======== Am besten, man wählt bei der Betriebssysteminstallation gar keinen Desktop mit aus. Dann geht es manuell so weiter: .. highlight:: shell-session :: root:~# apt-get install xorg pcmanfm openbox tint2 conky sakura virt-viewer surf x11-apps gmrun unzip yad lightdm X11-Startup =========== Als einfacher Nutzer "tux" erstellen wir nun die Startupdatei für den Display-Manager. Wir geben ihr den Namen ``~/.xsession`` und befüllen Sie mit folgenden Inhalt: .. highlight:: bash :: sakura & tint2 & pcmanfm -d --desktop & (sleep 5 ; conky) & setxkbmap de exec openbox Nach dem Neustarten der Oberfläche oder des gesamten Systems, sollte der Display-Manager 'lightdm' im Login Screen die Möglichkeit anbieten, eine "Default Xsession" zu starten (oben rechts, Symbol mit Schraubenschlüssel). Das führt dazu, dass unsere eben erstelle Datei abgearbeitet wird. Ausführen-Dialog ================ Der Fenstermanager Openbox bringt von Haus aus kein Dialogfenster mit, in welchem man Kommandos zur Ausführung bringen könnte. Deswegen haben wir vorhin unter anderem auch 'gmrun' installiert. Die Einbindung nehmen wir als einfacher Nutzer "tux" vor: .. highlight:: shell-session :: tux@linux:~$ mkdir -p ~/.config/openbox tux@linux:~$ cp /etc/xdg/openbox/rc.xml ~/.config/openbox tux@linux:~$ vi +316 ~/.config/openbox/rc.xml Mit letzterer Kommandozeile öffnen wir die Datei bei Zeile 316 (alternativ einfach nach 'scrot' suchen). Diese Zeile sowie die beiden nächsten können nun kopiert und unterhalb dem endenden '' Tag eingefügt und angepasst werden. Im Endeffekt sind es diese 3 Zeilen, die an entsprechender Stelle hinzugefügt werden müssen: .. highlight:: bash :: gmrun Schließlich lesen wir die Konfiguration einfach via Kommandozeile ein: .. highlight:: shell-session :: tux@linux:~$ openbox --reconfigure Testen können wir das Ganze nun durch Drücken der Tastenkombination ALT-F2. Jetzt müsste sich "a small fast, yet featureful application launcher" zeigen, in den man z.B. ``surf metager.de`` hineintippen kann. Das kleine Tool beherrscht Autovervollständigung (Tabulator-Taste) und führt auch eine History (Cursor nach oben/unten). Hintergrundbild =============== Ein schönes Wallpaper ist z.B. 'TwoWings.jpg'. Wer aber das ca. 20 MB große Paket 'mate-backgrounds' nicht installieren will, kann sich auch ein bestimmtes Hintergrundbild aus dem Paket extrahieren: .. highlight:: shell-session :: root:~# apt-get install -d mate-backgrounds root:~# mkdir /tmp/picture root:~# cd /tmp/picture root:~# ar x /var/cache/apt/archives/mate-backgrounds_1.16.0-1_all.deb root:~# tar xJf data.tar.xz ./usr/share/backgrounds/mate/nature/TwoWings.jpg -O > /home/tux/Bilder/TwoWings.jpg root:~# chown tux: /home/tux/Bilder/TwoWings.jpg root:~# cd root:~# rm -rf /tmp/picture root:~# apt-get clean Dann muss das Wallpaper mittels grafischen Dateimanager 'pcmanfm' eingebunden werden: - Rechtsklick auf Desktopfläche, => "Desktop Einstellungen" anklicken - In Registerkarte "Erscheinungsbild" bei "Hintergrundmodus" auswählen: "Angepasst" - In selbiger Karte bei "Hintergrundbild" dann das gewünschte Bild "TwoWings.jpg" einbinden Monitor-App für den Schreibtisch ================================ Zuerst lassen wir uns die Default-Konfiguration in die Startup-Datei von Conky schreiben: .. highlight:: shell-session :: tux@linux:~$ conky -C > ~/.conkyrc Die eben erzeugte Datei editieren wir nun, anzupassen sind hierbei folgende Einstellungen auf die gezeigten Werte (Zeilen 28 - 21 stammen von Bunsenlabs Helium, sie dienen dem Aktivieren von Tranzparenz): - Zeile 7: ``alignment = 'top_right',`` - Zeile 18: ``gap_y = 5,`` - Zeile 27: ``own_window_type = 'normal',`` - Zeile 28: ``own_window_transparent = true,`` - Zeile 29: ``own_window_hints = 'undecorated,below,skip_taskbar,skip_pager,sticky',`` - Zeile 30: ``own_window_colour = '000000'`` - Zeile 31: ``own_window_title = 'BunsenLabs Default Conky',`` - Zeile 40: ``${alignc}${color orange}$nodename with Linux $kernel}`` .. highlight:: shell-session :: tux@linux:~$ diff -u .conkyrc .conkyrc_Default | nl 1 --- .conkyrc 2018-12-18 12:17:51.661776936 +0100 2 +++ .conkyrc_Default 2018-12-20 13:45:31.769735336 +0100 3 @@ -26,8 +26,8 @@ 4 ]] 5 6 conky.config = { 7 - alignment = 'top_right', 8 - background = false, 9 + alignment = 'top_left', 10 + background = false, 11 border_width = 1, 12 cpu_avg_samples = 2, 13 default_color = 'white', 14 @@ -40,7 +40,7 @@ 15 use_xft = true, 16 font = 'DejaVu Sans Mono:size=12', 17 gap_x = 5, 18 - gap_y = 5, 19 + gap_y = 60, 20 minimum_height = 5, 21 minimum_width = 5, 22 net_avg_samples = 2, 23 @@ -50,11 +50,7 @@ 24 extra_newline = false, 25 own_window = true, 26 own_window_class = 'Conky', 27 - own_window_type = 'normal', 28 - own_window_transparent = true, 29 - own_window_hints = 'undecorated,below,skip_taskbar,skip_pager,sticky', 30 - own_window_colour = '000000', 31 - own_window_title = 'BunsenLabs Default Conky', 32 + own_window_type = 'desktop', 33 stippled_borders = 0, 34 update_interval = 1.0, 35 uppercase = false, 36 @@ -64,7 +60,7 @@ 37 } 38 39 conky.text = [[ 40 -${alignc}${color orange}$nodename with Linux $kernel} 41 +${scroll 16 $nodename - $sysname $kernel on $machine | } 42 $hr 43 ${color grey}Uptime:$color $uptime 44 ${color grey}Frequency (in MHz):$color $freq tux@linux:~$ Letztendlich weist die Datei folgenden Inhalt auf: .. highlight:: bash :: -- vim: ts=4 sw=4 noet ai cindent syntax=lua --[[ Conky, a system monitor, based on torsmo Any original torsmo code is licensed under the BSD license All code written since the fork of torsmo is licensed under the GPL Please see COPYING for details Copyright (c) 2004, Hannu Saransaari and Lauri Hakkarainen Copyright (c) 2005-2012 Brenden Matthews, Philip Kovacs, et. al. (see AUTHORS) All rights reserved. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . ]] conky.config = { alignment = 'top_right', background = false, border_width = 1, cpu_avg_samples = 2, default_color = 'white', default_outline_color = 'white', default_shade_color = 'white', draw_borders = false, draw_graph_borders = true, draw_outline = false, draw_shades = false, use_xft = true, font = 'DejaVu Sans Mono:size=12', gap_x = 5, gap_y = 5, minimum_height = 5, minimum_width = 5, net_avg_samples = 2, no_buffers = true, out_to_console = false, out_to_stderr = false, extra_newline = false, own_window = true, own_window_class = 'Conky', own_window_type = 'normal', own_window_transparent = true, own_window_hints = 'undecorated,below,skip_taskbar,skip_pager,sticky', own_window_colour = '000000', own_window_title = 'BunsenLabs Default Conky', stippled_borders = 0, update_interval = 1.0, uppercase = false, use_spacer = 'none', show_graph_scale = false, show_graph_range = false } conky.text = [[ ${alignc}${color orange}$nodename with Linux $kernel} $hr ${color grey}Uptime:$color $uptime ${color grey}Frequency (in MHz):$color $freq ${color grey}Frequency (in GHz):$color $freq_g ${color grey}RAM Usage:$color $mem/$memmax - $memperc% ${membar 4} ${color grey}Swap Usage:$color $swap/$swapmax - $swapperc% ${swapbar 4} ${color grey}CPU Usage:$color $cpu% ${cpubar 4} ${color grey}Processes:$color $processes ${color grey}Running:$color $running_processes $hr ${color grey}File systems: / $color${fs_used /}/${fs_size /} ${fs_bar 6 /} ${color grey}Networking: Up:$color ${upspeed eth0} ${color grey} - Down:$color ${downspeed eth0} $hr ${color grey}Name PID CPU% MEM% ${color lightgrey} ${top name 1} ${top pid 1} ${top cpu 1} ${top mem 1} ${color lightgrey} ${top name 2} ${top pid 2} ${top cpu 2} ${top mem 2} ${color lightgrey} ${top name 3} ${top pid 3} ${top cpu 3} ${top mem 3} ${color lightgrey} ${top name 4} ${top pid 4} ${top cpu 4} ${top mem 4} ]] Grundsätzlich ist es sinnvoll, Conky von der Shell heraus mit ``killall conky ; conky &`` ganz neu zu starten. Spätere Konfigurationsänderungen liest das Programm automatisch ein. Start-Icons auf dem Schreibtisch ================================ Ziel ist, die Maschine bequem neustarten, herunterfahren oder sperren zu können. Wir erstellen dazu ein Shellskript ``~/bin/locking-shutdown``; es bekommt folgenden Inhalt (nicht vergessen, es ausführbar zu machen): .. highlight:: bash :: #!/bin/sh # Datei: ~/bin/locking-shutdown # # Nach https://sourceforge.net/p/yad-dialog/wiki/Examples/?page=2 # action=$(yad --width 300 --entry --title "System Logout" \ --image=gnome-shutdown \ --geometry=0x0+300+300 \ --button="gtk-ok:0" --button="gtk-close:1" \ --text "Choose action:" \ --entry-text \ "Power Off" "Reboot" "Lock-Screen") case $action in Power*) cmd="systemctl poweroff" ;; Reboot*) cmd="systemctl reboot" ;; Lock-Screen*) cmd="/usr/bin/slock" ;; *) exit 1 ;; esac eval exec $cmd Fehlt uns dazu nur noch die Datei ``~/Schreibtisch/locking-shutdown.desktop``, die den Anwendungsstarter dafür bereitstellen soll. Wir geben ihr folgenden Inhalt: .. highlight:: bash :: [Desktop Entry] Name=Locking Shutdown Icon=/usr/share/icons/nuoveXT2/64x64/apps/gnome-session-halt.png Exec=/home/tux/bin/locking-shutdown Terminal=false Type=Application StartupNotify=false Neben diesem Starter können nach Belieben weitere auf einfache Art auf dem Desktop platziert werden: - Rechtsklick auf 'Papierkorb', => 'PCManFM Dateimanager' anklicken - Links unten auf 'Anwendungen' klicken - Gewünschte App aus den Unterverzeichnissen auswählen und auf den Desktop ziehen