Wer sein ~ in einem Versionskontrollsystem wie z.B. git pflegt, trackt damit seine gesamten Daten, um z.B. auf verschiedenen Rechnern immer gleiche Datenbestände incl. Versionierung zu haben. Das Problem dabei ist, dass der Windowmanager (hier: awesome) für die verschiedenen Geräte ggfs. auch andere Einstellungen braucht, z.B. für das Hintergrundbild. Über den uname des Systems kann man einfach unterscheiden, wo das Script grade aktuell ausgeführt wird und erspart sich das Pflegen von 2 Konfigurationen. Hierzu erstellt man z.B. unter Gentoo die ~/.config/awesome/theme.lua wie folgt:
theme_path = "/usr/share/awesome/themes/default/theme.lua" theme = dofile(theme_path) a=io.popen("uname -n"); io.input(a) if io.read() == "laptop" then theme.wallpaper_cmd = { "awsetbg /home/user/real_1280x800.jpg" } else theme.wallpaper_cmd = { "awsetbg /home/user/real_1920x1280.jpg" } end return theme |
Voila – es wird immer das korrekt dimensionierte Wallpaper geladen.
Ich habe einen ähnlichen Trick in meiner .zshrc benutzt. Allerdings prüfe ich hier auf “hostname”, weil ich denke, dass der sich weniger häufig ändert als die Kernelinformation.
uname -n gibt auch nur den Hostnamen aus, nicht die Kernelversion.