Lokale Shell-Befehle einbinden

„ls -la“ kennt Ihr vermutlich aus jedem Konsolen-Tutorial für Linux. Aber habt Ihr auch schon mal einen lokalen Befehl nur für Euch gebaut ?

Globale oder Lokale Befehle ?

Globale Befehle kennt vermutlich jeder Linuxuser, denn alles was in /bin/ als Programm abgelegt und für alle Benutzer ausführbar ist, kann aufgerufen werden. Meistens laufen diese Programme im Context des aufrufenden Benutzers. Ausnahmen gibt es nur, wenn das SETUID-Flag gesetzt ist, dann darf jemand einen Befehl als ein bestimmter User ausführen. Üblicherweise ist das Root, aber andere user sind auch denkbar. „ls“, „find“, „uname“ usw. sind solche Befehle. So weit, so normal.

Wer den Videobeitrag Wie starten sich eigentlich Programme? gesehen hat, der ist da jetzt schon weiter, denn dort wird das genau erklärt. Kann ich Euch nur empfehlen, weil damit ist das hier möglich :

[marius@eve ~]$ firefox
Ich bin aber nicht der FireFox!
insgesamt 20
drwxrwxr-x. 2 marius marius 4096 14. Jul 09:45 .
drwxr-xr-x. 5 marius marius 4096 5. Jul 23:48 ..
-rwx——. 1 marius marius 100 14. Jul 09:45 firefox
-rwx——. 1 marius marius 112 5. Jul 23:48 fixrom
#!/bin/bash

echo „Ich bin aber nicht der FireFox!“

ls -la ~/.local/bin/
cat ~/.local/bin/firefox

[marius@eve ~]$

„Nicht die Mama“

Ok, Firefox ist jetzt nicht mehr Firefox .. super.. Browser kaputt gemacht 🙁  Was wäre, wenn im System ein Firefox Quantum installiert ist, der User aber Quantum ******** findet und lieber noch FF 52 ESR nutzen will? Egal welches Programm Firefox für seine Webseitendarstellung aufruft, es wird immer der systemweit installierte Firefox genommen. Der kleine Trick hier könnte das auf dem Firefox ESR umleiten. Das wäre nur lokal für diesen Benutzer der Fall.

Wesentlich praktischer ist das andere kleine Programm in den .local/bin Verzeichnis: fixrom . Wer den Beitrag über das fehlerhafte Fehlerfenster bei Runes of Magic gelesen hat, der weiß was es tut: Es verschiebt ein Fenster, daß nutzlos im Weg ist und dazu noch so defekt, daß man das nicht per Maus machen kann.

Da ich das kleine Script in das Lokale Bin-Verzeichnis verschoben habe, kann ich es von überall aus aufrufenund muß nicht mal den Pfad kennen, wo es wirklich liegt. ALT+F2 und die Eingabe von „fixrom“ startet es genauso, also wenn es in der Konsole eingebe. Ich kann es auch pauschal in die Desktopicons einbauen:

[marius@eve ~]$ cat Schreibtisch/Runes\ of\ Magic.desktop | grep Exec
Exec=env WINEPREFIX=“/home/marius/.wine“ wine C:\\\\windows\\\\command\\\\start.exe /Unix „/home/marius/Programme/GameforgeLive/Games/DEU_deu/Runes Of Magic/Runes of Magic.exe“

Dann würde es direkt nach dem Start von Runes of Magic gestartet werden und mit das Fenster sofort vom Hals halten. Aber, dann würde es auch bei jedem Start laufen und es muß nur eine Instanz davon aktiv sein, daher starte ich das von Hand.Gut, ich könnte das Script auch mit einem PID File versehen und prüfen ob es schon läuft und dann den Start umgehen, zeige ich vielleicht sogar mal 🙂

A Truth about Red Hat

Der vollständigkeithalber muß ich erwähnen, daß das mit dem Firefoxersatz unter Fedora nur klappt, wenn man seinen Pfad korrigiert. Wer nicht weiß was ein Pfad ist, schaut sich bitte das Video an. So sieht der Pfad unter Fedora aus:

$ echo $PATH
/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/sbin:/usr/sbin:/home/marius/.local/bin:/home/marius/bin:/usr/sbin/:/usr/sbin

So müßte er aussehen:

[marius@eve ~]$ echo $PATH
/home/marius/.local/bin:/home/marius/bin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/usr/sbin:/usr/sbin:/usr/sbin/:/usr/sbin

macht man übrigens so :

[marius@eve ~]$ export PATH=/home/marius/.local/bin:/home/marius/bin:$PATH

Natürlich müßt Ihr meinen Usernamen in Euren Änderungen durch Euren Namen ersetzen 😉

Wieso Fedora/Red Hat den Pfad so unbrauchbar gemacht haben, ist mir ein Rätsel, denn genau für solche Spielereien sind die lokalen Bin-Verzeichnisse da. Jetzt könnte man argumentieren, daß ein Angreifer damit den (im Beispiel) Firefox lokal ersetzen könnte und so ggf. noch mehr Schaden beim User durch Spionage anrichten kann. Das wäre zwar richtig, aber jeder, der von Remote da was hinlegen kann, kann noch ganz andere Dinge und hätte das Angriffsszenario nicht nötig 😉

Solange man aber nicht vorhat ein Systemprogramm zu ersetzen, ist der Pfad eigentlich egal, nur .local/bin/ müßte halt drin vorkommen.

Linux Mint 19 alias „Tara“ erschienen

Linux Mint, der Hersteller der gleichnamigen Linux-Distribution, gab am Freitag die allgemeine Verfügbarkeit einer neuen Version ihres Betriebssystems bekannt. Unter dem Namen Linux Mint 19 „Tara“ bietet die neue Version eine Reihe neuer Funktionen, Verbesserungen und ein Versprechen, dass sie noch eine Weile halten wird.

LTS Version von Mint

Brian Fagioli schrieb bei BetaNews:
„Der wichtigste Aspekt von Linux Mint 19 ist die neue Ubuntu 18.04 LTS Basis. Tara wird bis 2023 Updates erhalten – sehr beeindruckend. Der Kernel ist auf 4.15, und alle drei Desktop-Umgebungen werden ebenfalls aktualisiert. Mate ist jetzt in Version 1.2, Cinnamon wird auf 3.8 erhöht und Xfce auf 4.12 aktualisiert.“

Neue Funktionen

Die neue Vorzeigefunktion ist „Timeshift“, was System SnapShots nutzt, um im Falle eines defekten Updates, das System in den letzten fuktionierenden Zustand zurückversetzt zuwerden. Ob es das wirklich bringen wird, wird nur die Zeit zeigen. Vermutlich sind die Probleme, die sich dadurch ergeben werden, so wie bei Systemd oder Wayland, noch gar nicht voll erfaßt worden, trotzdem wird es jetzt durchs Linuxdorf gehypt 🙂

Solange man selbst nicht von dem Testlauf betroffen ist, kann man sich jetzt entspannt zurück lehnen und abwarten wie es ausgeht 😉 Es wäre ja immerhin möglich, daß es tatsächlich der bessere Weg ist. Da ich in 7 Jahren Linux Desktop erst einen kompletten Crash durch ein OS Upgrade erlebt habe, sehe ich da persönlich nicht viel Verbesserungspotential, weil ein „dnf downgrade“ tut es in so einem Fall meistens auch und dessen Folgen sind vorhersagbar.

Gesehen bei SlashDot. übersetzt mit www.DeepL.com/Translator, verfeinert durch Marius 😉

Linux – Pulseaudio HDMI Sink umbenennen

Im deutschen Fußballspiel bei der WM in Russland ist einiges im Argen, so auch in Pulseaudio 🙂 Seit meinem Upgrade auf Fedora 27 haben meine Pulseaudio Sinks andere Namen bekommen und die sind zum Teil echte Monster 🙂

Sinks auflisten

Schauen wir uns erstmal den Ist-Zustand an :

[marius@eve ~]$ pacmd list-sinks|grep -E „(name:|description)“
name: <alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1>
device.profile.description = „Digital Stereo (HDMI 2)“
device.description = „GP107GL High Definition Audio Controller Digital Stereo (HDMI 2)

Wenn man jetzt in der PA Lautstärkenkontrolle die Selectboxen mit den verfügbaren Audioausgängen anklickt, springt einem so ein Name natürlich ins Auge. Viel zu lang 🙂

Das können wir ändern

Dafür gibt es den Befehl „pacmd“ . Der kann einiges mit PA anstellen, aber da wir nur den Namen updaten wollen, ist es eigentlich recht simple:  pacmd befehl option1 option2 …

Wir brauchen als Befehl update-sink-proplist und dazu das Audiodevice das wir ändern möchten und natürlich das Feld, welches wir anpassen müssen.

Beispiel:

pacmd update-sink-proplist alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1 device.description=“HDMI2-(Stereo)“

Wenn man jetzt ein Leerzeichen im Namen haben will, wie das ja wohl möglich sein muß, weil es ja vorher auch drin war, dann hat man ein kleines Problem, denn der Kommandozeilenparser von pacmd hat einen Bug: Er kann keine Leerzeichen verarbeiten 😉

Wenn man das braucht, muß man den Interaktiven Modus wählen:

$ pacmd
Welcome to PulseAudio 11.1-rebootstrapped! Use „help“ for usage information.
>>> update-sink-proplist alsa_output.pci-0000_01_00.1.hdmi-stereo-extra1 device.description=HDMI2 (Stereo)
>>>

Wenn man jetzt in dem Modus „exit“ zum Verlassen der Konsole  eintippt, dann passiert nicht, was man erwarten würde, denn „exit“ steht für Pulseaudio-Exit und beendet den Server 😉 Wer da raus will muß mit CTRL+C arbeiten… allgemeines Kopfschütteln ..

Anmerkung:

Das ist keine permanente Einstellung, daß muß man nach jedem Start machen.

Linux – Gaming – Bluetooth Gamepads benutzen

Da kauft man für seine VR-fähige Drohne einen Bluetooth-Controller und was sagt die blöde Dronen-APP … 我不想用控制器! 🙁

Grrr…

Die Drohne will genau einen von tausenden Controllern und der dumme Kunde muß den doppelt so teuer einkaufen, wie vergleichbare Produkte. Jetzt haben wir den schon einmal da, da können wir den auch mal mit Linuxspielen ausprobieren 😀

Problem .. kein BT am Desktop 🙁 Lösbar, muß das Laptop halt für den Test ran, was auch die Ursache für die miese Framerate im Video ist und die komische Auflösung 🙂

Eigentlich könnte ich jetzt aufhören, denn auch wenn ich gedachte habe, da muß man viel machen, mußte man das gar nicht. 1a!

Alles was man machen muß ist, das BT Gamepad mit dem Laptop zu pairen. Es wird sofort als JoyPad erkannt und akzeptiert. Ab da braucht man nur noch ein Game, daß sich mit Gamepad steuern läßt: SuperTuxCart z.b. 😀 Schon kann es losgehen:

Die Steuerung mit „JoyPad“ ist aber GRAUSAM ungenau verglichen mit den Tasten. Da braucht mal echt lange um sich daran zu gewöhnen. Wie Ihr in dem Video seht, hatte ich das nicht 🙂 Liegt nicht am Gamepad, liegt klar an der Idee einen analogen Joystick für eine Digitale Steuerung zu benutzen 😉

Wer sich das DOBE GamePad zulegen will, es spielt auch direkt mit Android Handies, ist halbwegs gut verarbeitet, kommt mit Handyhalterung und 20h Akku. Für 15 € kann man da nicht meckern:

Linux – Wie man den Kontrast einstellt

Das Display ist zu hell eingestellt und man möchte das Ändern.Nur können vor lachen.

Die Odyssee

Da durchsucht man natürlich zuerst einmal die Einstellungen und findet den Bildschirmeinsteller. Kuckt rein, keine Anpassungen möglich. Farbe vielleicht ? Hmm, da kann man Farbprofile laden, wenn man denn ein passendes hat.
Aber Kontrast einstellen, Helligkeit regeln Fehlanzeige.

Die Lösung in der Konsole

Wem sein Bildschirm zu hell ist, der kann es mit dem xorg-x11-server-utils Befehl xgamma direkt benutzen:
[desktopuser] # xgamma -gamma 0.7

1.0 wäre normal, > 1 kontrastreicher, < 1 kontrastärmer

Natürlich kann das Tool das auch für jede Farbe einzeln die Werte setzen, aber das ist ja nicht Ziel der Übung.

Wie bekommt man das jetzt rebootfest ?

Da gibt es eine kleine Datei namens „.xinitrc“, in die werden wir den Befehl eintragen. Bei jedem Start, wir das geladen und ausgeführt, so daß dieser Wert später auch wieder gilt.
#!/bin/bash
xgamma -gamma 0.7

Via Desktopeinsteller

Jetzt ist das natürlich für Nichtkonsoler nicht so der Weg, den man sich wünschen würde. Ich selbst hätte es auch gern als Anwendung in den Systemeinstellungen gefunden. Da kommt uns Cinnamon leider so gar nicht entgegen. Es gibt zwar ein Desklet, also eine Erweiterung für die Leiste, aber leider nicht für die Systemeinstellungen, obwohl es genau da hin gehört.

Einfach mal danach in den Applets suchen und es installieren. Ihr bekommt dann ein neues Icon in die Leiste, mit de rsich die Helligkeit und das Gamma einstellen lassen. Nicht toll, aber immerhin, es geht.