Minimales X-Windows-System
ZIEL: Installation und Konfiguration einer minimalen, grafischen Arbeitsumgebung auf Debian 9.
Software
Am besten, man wählt bei der Betriebssysteminstallation gar keinen Desktop mit aus. Dann geht es manuell so weiter:
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:
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:
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 ‚</keybind>‘ Tag eingefügt und angepasst werden. Im Endeffekt sind es diese 3 Zeilen, die an entsprechender Stelle hinzugefügt werden müssen:
<keybind key="A-F2">
<action name="Execute"><command>gmrun</command></action>
</keybind>
Schließlich lesen wir die Konfiguration einfach via Kommandozeile ein:
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:
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:
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}
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:
-- 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 <http://www.gnu.org/licenses/>.
]]
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):
#!/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:
[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