Private DNS im Smartphone

Langsam beginnt der Zensurkrieg der Staatsmächte im Internet. Man versucht, Websites wie de.rt.com aus Russland zu sperren. „Sperren“ heißt zunächst mal „nicht aufrufen können“, auch wenn man die verschiedenen Schreibweisen der Adressen der Anbieter kennt. Man kann sie dann im Browser eingeben, aber sie können nicht angezeigt werden. Die IPs zu kennen, nützt nichts, damit kann man die Websites nicht aufrufen.

Der Grund ist, dass die „textlichen“ Adressen beim Provider (meines Handy- oder Kabel-Vertrags) in mindestens eine IP umgewandelt werden, um verwendet werden zu können. Das erledigen sogenannte DNS-Server – DNS = Domain Name Service – durch einen komplizierten Übersetzungsmechanismus [1]. Soll zum Beispiel de.rt.com gesperrt werden, so wird die Übersetzung dieser Adresse verweigert, die Website existiert quasi nicht mehr.

Will man diese Sperre durch den eigenen Provider umgehen, muss man nur statt des DNS-Servers des einen der zahlreichen freien DNS-Server eintragen. Für Android geht das meines Wissens schon ab Version 8. Wie man das macht, erkläre ich mal beispielhaft am DNS-Anbieter Quad9 [2], der diesen Zweck gut und schnell erfüllt und in der Schweiz (also nicht in der EU) sitzt.

Ich gehe dazu in die „Einstellungen“, dort oben gibt es ein Suchfeld mit einer Lupe (ich kann mir nicht merken, wo die nötige Einstellung ist), und gebe dort einfach „dns“ ein. Ein Ergebnis heißt dann „Private DNS“, darauf tippe ich. Es öffnet sich ein Fenster „Private-DNS-Modus wählen“ und eine der Ortionen heißt „Hostname Private-DNS Anbieter“. Dort trage ich den Namen (nicht die IP!) des Servers ein und die heißt bei Quad9

dns.quad9.net

Fertig. Ab sofort geht der Netzwerkverkehr über Quad9 in einer Standardkonfiguration [3]. Übrigens gibt es auch eine Android-App zur Einstellung namens „Quad9 Connect“, die die Einstellung übersichtlicher und komfortabler macht.

Wer das Ganze für Windows, Linux, Mac oder direkt im Router (sinnvoll!) machen möchte und genügend Sachkenntnis hat, findet bei Quad9 eine Übersicht [5] über alle IPs zur Eintragung für diverse Konfigurationen.

Hinweise:

Bisher hatte ich den in den USA sitzenden Dienst Cloudflare eingetragen, der sehr schnell ist. Ich habe mich allerdings belehren lassen, dass Cloudflare möglicherweise mit der NSA und anderen amerikanischen Geheimdiensten eng zusammenarbeitet und die Datenströme mitliest und auswertet, auch wenn natürlich das Gegenteil behauptet wird. Google bietet ebenfalls einen DNS-Dienst an, liest aber auch mit, wenn auch vermutlich nur im eigenen Interesse.

Ein weiterer Beitrag wird sich mit einer praktikablen Anwendung von VPN (= Virtual Private Network“) zur Umgehung von Sperrungen befassen.

Quellen:

[1] hier it-consulting-stahl.de/2019/09/eigene-dns-ip-in-android-geraeten/
[2] Quad9.net
[3] www.ionos.de/digitalguide/server/knowhow/quad9-dns/
[4] play.google.com/store/apps/details?id=com.quad9.aegis
[5] Quad9 Adressen und IPs

Android: Systemapps ohne Root entfernen

Aktualisiert am 29.2.2024, neuere Package-Namen für Standard-Browser!

Gleich vorab:

Ich liefere hier nur eine Kurzbeschreibung des Verfahrens. Wer sich nicht schon mal mit so etwas befasst hat, sollte bitte unbedingt die beiden Quellen ganz unten lesen und viel Sorgfalt walten lassen!


Mit wenigen Ausnahmen sind auf jedem Android-Smartphone beim Kauf mehr oder weniger viele Apps installiert, die wir nicht brauchen: Reisebuchungen, Spiele oder Shops. Die nehmen Platz weg (auch wenn heutzutage genug davon vorhanden ist), lassen sich aber oft nicht einfach so löschen. Allerdings gibt es auch einige Apps, deren Sinn wir nicht unbedingt verstehen und die wir nicht nutzen, die aber dennoch für das System wichtig sind: Google-Tools, Sicherheit oder Dateimanager.

Wenn wir also scheinbar unwichtige Apps entfernen wollen, müssen wir uns im Klaren sein, was genau die tun. Zum Beispiel brauche ich unbedingt den Google-Kalender, denn der liefert die eigentliche Schnittstelle zu beliebigen anderen Kalender-Programmen, die ich nutzen möchte – bei mir (Xiaomi Redmi Note 9 mit MIUI 13) ist es sogar so, dass ich nur dort den Signalton für Termine einstellen kann, weil das eine „Ausnahmegenehmigung“ des Systems braucht.

Ich habe vor einiger Zeit den Browser „Google Chrome“ entfernt, weil der einige hundert MB Platz brauchte und sehr häufig aktualisiert wurde, was wiederum Zeit, manchmal Datenvolumen und noch mehr Platzbedarf benötigte. Dabei sollte gleich noch mit der Standardbrowser von Android verschwinden, der uralt war und nicht mehr gepflegt wurde. In früheren Android-Versionen konnte man manche vorinstallierten Apps deaktivieren – in neueren Versionen geht das vielleicht nicht mehr. Mit Bordmitteln kommt man also nicht weiter.

Wer nicht so „gern“ wie ich ohne Netz und doppelten Boden arbeitet, sollte sich vor den folgenden Aktionen unbedingt mit einem vollständigen Backup seines Smartphones befassen. Gute Anhaltspunkte dafür liefert diese guten Artikel [1], [2] und [3].

Was man braucht, ist

1) der Entwicklermodus auf dem Handy,
2) die ADB-Tools auf einem PC (Windows oder Linux, sicher auch Mac)
3) ein USB-Kabel, um das Smartphone mit dem PC verbinden zu können

Wichtig ist, dass das Smartphone in den Entwicklermodus geschaltet wird und dort „Installieren über USB“ und „USB-Debugging“ aktivuiert wird. Wie man dorthin kommt, ist geräteabhängig!

Der umfangreiche Artikel [1] beschreibt die Schritte zur Vorbereitung sehr detailliert – ich spare mir das jetzt hier. Auf dem PC öffne ich eine Shell (bei Windows z.B. die Powershell) und kann mir dann die spezielle Kommandoumgebung der ADB-Tools aufrufen:

adb shell

Man bekommt dann ein spezielles Prompt wie etwa „starlte:/ $“, nach dem man Kommandos eingaben kann. Mit dem Befehl list bekomme ich eine Liste der sogenannten Packages, also der installierten Apps – deren genaue Bezeichnung braucht man im nächsten Schritt.

pm list packages [ | grep <bezeichnung> ]

Der Teil in [ ] ist optional, wenn man schon eine Vorstellung vom Gesuchten hat, vielleicht „browser“, eingesetzt für <bezeichnung>:

pm list packages -f | grep browser

Die Liste ist lang und unübersichtlich – man muss schon genau hinsehen, um in den folgen Schritten nicht versehentlich das Falsche zu löschen.

VORSICHT: Es gibt keine Rückfrage, weg ist weg!

Für den Fall der gewünschten Browser enthielt meine Liste die Package-Namen com.google.android.chrome und com.android.browser. Jetzt geht es ans Löschen. Dabei sollte man die Package-Namen aus der Liste von eben mit der Maus kopieren, in den uninstall-Befehl einsetzen und vorm Abschicken nochmal genau kontrollieren:

Löschen:
pm uninstall -k --user 0 com.google.android.chrome (Chrome alt)
pm uninstall -k --user 0 com.android.chrome (Chrome neu)

pm uninstall -k --user 0 com.android.browser (Mi-Browser alt)
pm uninstall -k --user 0 com.mi.globalbrowser (Mi-Browser neu)

Oder einfach nur deaktivieren (nur neuere Apps):
pm disable-user com.android.chrome
pm disable-user com.mi.globalbrowser

Oder wieder aktivieren:
pm enable com.android.chrome
pm enable com.mi.globalbrowser

Es gibt keinerlei Rückmeldungen für das Gelingen oder dafür, dass vielleicht Mist gebaut wurde. Mit list kann man sehen, ab die Pakete weg sind, das ist alles.

Wenn man nicht etwas katastrophal falsches gelöscht hat, kommt man leicht wieder aus dem Modus des Smartphones raus, kann die Geräte trennen und sich dann freuen, dass die unerwünschten Apps weg sind. Hat man im Beispiel vergessen, vorher einen anderen Browser zu installieren, kann man das nun nachholen.


Quellen:

[1] https://www.heise.de/tipps-tricks/Android-Vorinstallierte-Apps-loeschen-ohne-Root-4324092.html
[2] https://android.izzysoft.de/articles/named/android-backup-options?lang=de
[3] https://selivan.github.io/2020/02/25/removing-bloatware-from-xiaomi-miui-android.html

Techniken zur Umgehung von Online-Zensur

Es wird immer wichtiger, sich zu informieren, wie man eventuell drohenden Sperren von Internetinhalten durch den Staat erkennt und umgehen kann. Dazu ist technische Sachkenntnis notwendig, aber es ist keine „Raketenwissenschaft“ und einige Werkzeuge sind durchaus auch durch weniger Geübte anwendbar. Wir müssen miteinander verbunden bleiben und den Zugang zu allen wichtigen Informationen erhalten!

Diesen Beitrag habe ich über Telegram erhalten. Dazu habe ich Telegram auch auf dem Smartphone nicht aus dem Google App Store installiert, wo eine eventuell manipulierte Version (Verdacht: Eingebaute Backdoor für den staatlichen Zugriff) angeboten wird, sondern direkt von telegram.org – das war meine erste Maßnahme zur Zeit von „Corona“, um an unzensierte Informationen zu gelangen.

Ich freue mich ausdrücklich um Kommentare und Ergänzungen!


„Umgehen Sie Internetfilter, Zensur im App-Store, Zensur von Big Tech und mehr. Online-Zensur nimmt zu, selbst demokratische Länder erlassen umfassende Gesetze, die die Meinungsfreiheit der Bürger zensieren und ihren Zugang zu Informationen einschränken. Auch Big Tech-Unternehmen beschränken zunehmend die Meinungsfreiheit ihrer Nutzer.

Glücklicherweise gibt es viele Tools und Techniken, die Sie verwenden können, um Internetbeschränkungen zu umgehen und auf Inhalte zuzugreifen, die Regierungen, Tech-Plattformen und andere Zensoren verhindern wollen, dass Sie sie sehen.

Dieser Beitrag identifiziert vier Hauptarten von Online-Zensur und listet verschiedene Tools und Techniken auf, die Ihnen helfen, jede Form von Zensur zu umgehen.“…
Link zu UncutNews.ch

Ubuntu 22: Die Schwierigkeiten, Firefox zu betreiben

Kurzer Sprung zum Favoriten —>


Seit kurzem nutze ich Ubuntu 22 auf einer neuen schnellen Maschine und ich war gleich sehr zufrieden. Bis ich merkte, dass ich mit dem ebenfalls neuen Firefox 102 überhaupt nicht vernünftig arbeiten konnte. Wie sich herausstellte, war der Grund, dass Firefox neuerdings als Snap installiert wird. Das liefert zwar sicher einiges an Sicherheit, da der Browser nun vollständig in einer Sandbox läuft, aber das ist auch der Grund für einiges Übel. Zwei Probleme ließen sich damit nicht lösen:

1.) Ich bin es gewohnt, Bilder von Webseiten mal eben mit der Maus auf den Desktop zu ziehen. Das geht nicht mehr, denn der Zugriff ist gesperrt. Über Copy/Paste geht es, aber das ist mir mit der Maus zu umständlich.

2.) Ich habe einige Anpassungen in der Optik des Browsers, zum Beispiel bestimmte Trennlinien. An das Profil kommt man aber nicht ran, nicht mal als Root.

Außerdem habe ich gelesen, dass durch den Snap-Mechanismus einige Plugins nicht gehen, was sicher ebenfalls an irgendwelchen Zugriffrechten scheitert.

Flatpak statt Snap

Das erste Problem lässt sich damit umgehen, dass der Firefox als Snap gelöscht und als Flatpak installiert und aufgerufen wird:

snap remove firefox
flatpak install flathub org.mozilla.firefox

Um das dann aufzurufen, habe ich das Knöpfchen im Starter des Panels mit folgendem belegt:

flatpak run org.mozilla.firefox

Rechte von Flatpak-Anwendungen verwalten

Jetzt scheitert aber immer noch der Wunsch, zum Beispiel die userChrome.css im Profilordner zu bearbeiten, einfach weil man den Profilordner nicht findet – denn der ist verborgen. Auch Flatpack arbeitet als Sandbox. Aber immerhin gibt es ein Werkzeug, das solche Einschränkungen gezielt beheben kann: Flatseal. Das ist eine grafische Oberfläche mit allerlei Admin-Tools für jedes installierte Flatpak. Installiert wird es mit

flatpak install flathub com.github.tchx84.Flatseal

denn es ist selbst ein flatpak-Programm. Hier [1] ist (allerdings nur in englisch) sehr detailliert beschrieben, was sich damit alles machen lässt. Konkret für meine Aufgabe, an die Konfiguration heranzukommen, musste ich Firefox auswählen und in der Rubrik „Filesystem“ die Option „All user files / filesystem=home“ anschalten, und darunter bei „Other files“ habe ich noch /home/rollo/Downloads eingetragen. Ich hoffe, dass das genügt und werde es hier ergänzen, wenn noch etwas fehlt.

Firefox über Umwege als .deb

Wie ich heute gefunden habe, gibt es doch auch Wege, Firefox ganz normal wie „früher“ als DEB zu installieren, sogar über ein PPA des Mozilla-Teams. Damit habe ich die Eigenschaften der Sandbox (Snap, Flatpak) nicht mehr, dafür geht alles andere wieder wie gewohnt. Hier [2] ist es ausführlich beschrieben (englisch), dazu [3], und hier kommt die Kurzfassung:

# Zunächst das Snap entfernen
sudo snap remove firefox
# oder das Flatpak
sudo flatpak remove org.mozilla.firefox

Hinweis 1: Gerade wurde auf Version 112 aufgebohrt – und prompt war FF wieder ein Snap! Nun liegt meine mühsam installierte .deb-Version verwaist da. Die muss erstmal weg. Also:
sudo apt autoremove –purge firefox


Hinweis 2: Nein, diese FF-Installation muss nicht weg! Was ist passiert? Snap wurde durch ein Update wieder installiert und hat FF mitgebracht – Ubuntu will das unbedingt durchdrücken! Aber wenn man das gesamt snapd-System entfernt, sollte es auch wegbleiben [4]:

sudo apt autoremove --purge snapd
sudo rm -rf /var/cache/snapd/
rm -rf ~/snap

# Nun das PPA von Mozilla installieren:
sudo add-apt-repository ppa:mozillateam/ppa
# und damit Firefox installieren:
# (Die Optionen sind essentiell, sonst kommt snap wieder!)
sudo apt install -t 'o=LP-PPA-mozillateam' firefox

# Eine Datei zur Steuerung der Priorität anlegen und speichern
sudo gedit /etc/apt/preferences.d/mozillateamppa
# Inhalt:
Package: firefox*
Pin: release o=LP-PPA-mozillateam
Pin-Priority: 501

sudo apt update
sudo apt install firefox firefox-locale-de

Das war’s. Danke „J Im“!

Festlegung als Standardbrowser

In Ubuntu gibt es festlegungen von Standardanwendungen, unter anderem des Webbrowsers. Ich vermute mal, das ist ohne weiteres Zutun diese unsägliche snap-Installation von Firefox. Da wir die nun gerade ausgebaut haben, hängen einige Aufrufe nun in der Luft. Zum Beispiel lässt im Client von Nextcloud nichts mehr aufrufen, da dort nicht der Standardbrowser hinterlegt ist, sondern ein Aufruf von „default-web-browser“. Also muss der letzte Schritt unserer Reparatur die neue Zuweisung der Firefox-Installation von eben sein. Das geschieht entweder in der Shell mit

xdg-settings set default-web-browser firefox.desktop

was nicht immer klappt, weil es das Vorhandensein von firefox.desktop voraussetzt, oder „grafisch“ über „Einstellungen / Standardanwendungen“ und folgender Auswahl:

Standardbrowser

„Firefox Web Browser“ wäre die nun nicht mehr vorhandene snap-Installation, was wahrscheinlich das gleiche ist wie der oberste Menüpunkt (kann ich jetzt nicht mehr testen).


Links zum Thema:

[1] www.debugpoint.com/manage-flatpak-permission-flatseal/
[2] ubuntuhandbook.org/index.php/2022/04/install-firefox-deb-ubuntu-22-04/
[3] curius.de/2022/04/ubuntu-wie-du-firefox-als-ppa-anstelle-von-snap-einbindest-und-wann-du-es-tun-solltest/
[4] onlinux.systems/guides/20220524_how-to-disable-and-remove-snap-on-ubuntu-2204

VirtualBox: Zeigegeräte und VBoxGuestAdditions

Ich habe unter Xubuntu 22.04 die VirtualBox 7.0 (im Folgenden VB genannt) installiert, darin als Gast. Windows 10. Die notwendige Extension und die Gastweiterung (s. u.) ist vorhanden. Nebenbei: Die VB ist leider heute erst in der Version 6.1 im Repo verfügbar, daher habe ich sie direkt von Oracle geholt und manuell installiert.

Der Grund dafür waren eigentlich zwei Probleme, die ich auf die zu alte Version geschoben hatte, die vorher installiert war (was sich als sich als falsch gedacht herausstellte). Meine Ausrede ist: Man sollte immer das neueste geprüfte Release verwenden 🙂 !

Aber im Ernst: Das im Repository von Xubuntu enthaltene Release der Virtualbox ist durchaus zu gebrauchen und enthält alles, was benötigt wird – und es bekommt irgendwann ein ordentliche Update ohne eigenes Gefummel.

[1] www.oracle.com/virtualization/technologies/vm/downloads/virtualbox-downloads.html

Maus ist in der Box nicht benutzbar

Zunächst zeigte sich, dass weder die Maus noch das in der Tastatur (Logitech TK820) integrierte Touchpad mit dem Windows-Gast zusammenarbeitete und auch nicht außerhalb der VB benutzbar war. Eine schwierige Sache, Windows in Linux nur mit der Tastatur wenigstens grundlegend zu bedienen! Die Lösung wurde in einem älteren Forumsbeitrag [2] beschrieben:

Tastatur und Maus muss bzw. darf man nicht als USB-Geräte in den Filtern freigeben, im Gegenteil führt das sogar zum Fehler! Beides wird auf einem anderem mir nicht bekannten Weg vom Host (hier Linux) an den Gast weitergereicht. Der Grund ist, dass es ja sonst nicht möglich wäre, die Maus im Gast zu fangen oder auch außerhalb zu benutzen. Das muss also die VB managen, unabhängig vom Gastsystem. Hier ist die zugehörige Einstellung für eine konkrete virtuelle Maschine – die Maus bekommt kein Häkchen, andere Geräte schon:

Es ist ein Neustart zumindest der VB nötig.

[2] forums.virtualbox.org/viewtopic.php?t=96867

Verwendung der Gasterweiterung

Bevor es losgeht, muss die entsprechende Gasterweiterung für (in meinem Fall) Windows bereitgestellt und einmalig installiert werden. Dazu macht man beim Anlegen des Gastes ein Häkchen an der unten gezeigten Stelle bei „Gasterweiterung einlegen“:

Ein weit verbreiteter Irrtum ist, dass man die CD, auf der mittels dem von Oracle heruntergeladenen ISO die Gasterweiterungen gespeichert wurden, einfach nur einlegen muss und fertig. Aber nichts da! Man muss die Erweiterung natürlich auch im Gast (!) installieren, das heißt im Fall von Windows die Datei GuestAdditions.exe (genau so geschrieben!) installieren und danach Windows neu starten. Die CD kann dann wieder raus, sie wird nicht mehr gebraucht. Dieser Weg ist aber notwendig, da man ohne die Gasterweiterung keinen Zugriff auf Verzeichnisse des Hosts hat, wohl aber auf das CD-Laufwerk.

Ich hatte mein Windows schon vorher installiert, daher hatte ich schon den Zugriff auf ein gemeinsames Verzeichnis in Linux. Somit brauchte ich de CD nicht, sondern konnte meine Dateien für die Gasterweiterung in dieses Verzeichnis legen und von dort aus installieren. Das genannte Kreuzchen musste ich nicht setzen.

Ubuntu: Ersatz für gksu

Bis Ubuntu 18.04 gab es das Hilfsprogramm gksu, mit dessen Hilfe man – zum Beispiel innerhalb eines Scriptes – ein anderes Programm als Root starten konnte, indem man „zwischendurch“ das nötige Passwort eingab. Ab dieser Version wurde das aus den Paketquellen entfernt, weil es als Sicherheitsrisiko eingestuft wurde. Damit funktionierten dann plötzlich alle Scripte und (bei mir) Shortcuts nicht mehr, die darauf angewiesen waren (siehe hier bei mir Upgrade Ubuntu 16 nach 18: einige Hürden).

Es gibt Anleitungen im Netz, wie das Problem behoben werden kann, indem man Pakete aus alten Ubuntu-Quellen (Archiv) installiert. Das ist sicher etwas fragwürdig und kann auch kein Update bekommen.

Viel besser ist da der reguläre Weg, der mit dem Befehl sudo arbeitet:

sudo -A <programm>

Das -A bewirkt die Einbindung eines als Askpass bezeichneten Hilfsprogramm, dass das Passwort grafisch (!) abfragt und über sein stdout an den Aufrufer zurückgibt. Allerdings muss dazu etwas getan werden, sonst gibt es eine Fehlermeldung. Zunächst wird der Helfer installiert, der eigentlich für den SSH-Zugriff gedacht ist:

sudo apt install ssh-askpass-gnome

Dann öffnet man als Root die Datei /etc/sudo.conf und fügt eine Zeile zu:

# Use the OpenSSH askpass
#Path askpass /usr/X11R6/bin/ssh-askpass
Path askpass /usr/lib/openssh/gnome-ssh-askpass

Es ist kein Neustart nötig – der nächste Aufruf von „sudo -A“ funktioniert!

Linux: Thunderbird im SysTray starten und halten

Thunderbird beherrscht es von allein nicht, in den SysTray verkleinert zu werden un damit praktisch im Hintergrund zu laufen. Dazu ist eine Hilfsanwendung nötig, bei mir bisher Birdtray. Dieses gefällt mir nicht – es sieht altbacken aus und ist eben eine extra zu pflegende und noch dazu recht alte Anwendung (2020). Als ich das Problem erstmalig in Angriff genommen habe, fand ich aber nichts anderes und habe bis jetzt damit gelebt. Zumindest das Hauptanliegen – das Laufen im Hintergrund – wird damit ja erfüllt.

Eben habe ich nochmal nach Lösungen gesucht und dabei SysTray-X gefunden und eben ausprobiert. Und siehe da: Es sieht wesentlich eleganter aus und ist eine echte Erweiterung für Thunderbird, kein extra Programm. Es wird über ein eigenes Repository installiert und damit automatische gepflegt. Einiger Nachteil gegenüber Birdtray ist, dass die Darstellung der Anzahl neuer Mails nicht vom Konto abhängig gemacht werden kann – was aber m. E. sowieso nie wirklich funktioniert hat.

Die Installation ist einfach und wird hier [1] für viele Linux-Systeme ausführlich dokumentiert (englisch). So wird das am Beispiel von Xubuntu 20.04 gemacht (Achtung: die erste und dritte Zeile sind jeweils EINE Zeile in der Shell!):

wget -q https://download.opensuse.org/repositories/home:/Ximi1970/xUbuntu_20.04/Release.key

sudo apt-key add Release.key

sudo bash -c 'echo "deb https://download.opensuse.org/repositories/home:    /Ximi1970:/Mozilla:/Add-ons/xUbuntu_20.04 ./" > /etc/apt/sources.list.d/systray-x.list'

sudo apt update

sudo apt install systray-x

Beim nächsten Neustart von Thunderbird ist die Erweiterung SysTray-X vorhanden und sofort lauffähig. Mit einer Reihe von Optionen kann sie nun noch optimiert werden.

Achtung: Nach Ubuntu 22.04 wird apt-key nicht mehr unterstützt. Deswegen ist das in [1] beschriebene Verfahren für Ubuntu 22.04 etwas anders:

wget -q https://download.opensuse.org/repositories/home:/Ximi1970/xUbuntu_22.04/Release.key

sudo mv -f  Release.key  /etc/apt/trusted.gpg.d/Systray-x.Ximi1970.asc

sudo bash -c 'echo "deb https://download.opensuse.org/repositories/home:/Ximi1970:/Mozilla:/Add-ons/xUbuntu_22.04 ./" > /etc/apt/sources.list.d/systray-x.list'

sudo apt update

sudo apt install systray-x

Auch die Quellen zum selber Kompilieren sind verfügbar.

Hinweis: Zumindest bei mir (Xfce4) ist das Symbol von Systray-x im Systray zunächst nicht sichtbar! Dazu muss ein Panel-Reload gemacht werden. Beim Booten mache ich das, indem ich mit einer möglichst kleinen Zeitverzögerung (hier 5 Sekunden, das kann je nach Startverhalten beliebig erhöht werden) folgendes auslöse:

sleep 5 && xfce4-panel -r

[1] https://github.com/Ximi1970/systray-x#binaries-system

Android: Wahl des Filemanagers

Zur Grundausrüstung meines Xiaomi Redmi Note 9 gehört ein simpler Dateimanager, der zwei für mich wichtige Dinge nicht kann: Die Änderung der Standard-App zum Öffnen einer Datei (das ging früher immer!) und das Platzieren einer Datei oder eines Verzeichnisses auf einem der Desktops. Eigentlich gehört das zum Standard von Android – dachte ich…

Ich habe nun viele Dateimanager aus dem Play Store ausprobiert, die alle mehr oder weniger für mich passten. Natürlich gehen solche Boliden wie der von Windows bekannte Total Commander, aber ich will auf einem Mobiltelefon keine umfangreiche Dateiverwaltung machen – nur mal löschen, umbenennen, verschieben und eben die beiden oben genannten Aufgaben müssen gehen.

Ich dachte auch nicht, dass die Einstellung einer Standard-App zum Öffnen vom System geliefert wird. In allen Beschreibungen für Anfänger steht sinngemäß: Man tippe etwas länger auf einen Dateinamen, wähle dann „öffnen mit“, wünsche sich aus einer Liste die gewünschte App aus und hat dann die Wahl zwischen „einmal“ und „immer“. So kenne ich das auch von früher. Aber nein! Für dieses Verhalten sorgt der installierte Dateimanager, das System sorgt nur für die Möglichkeit. Kann es der Dateimanager nicht, dann gibt es die Auswahl „immer“ nicht. So ging es mir und ich suchte ewig nach dem Fehler.

Lange Rede, kurzer Sinn. Ich kam nicht umhin, sich einen Dateimanager zu suchen, der für mich eben die beiden Wünsche erfüllt. Ich habe nun eine App mit dem schönen passenden Namen „Dateimanager“ gefunden, mit der ich zufrieden bin und die ich hiermit empfehlen kann:

https://play.google.com/store/apps/details?id=files.fileexplorer.filemanager&hl=de

Nebenn der eigentliche Arbeit ist dazu noch ein Player bzw. Betrachter für Musik, Videos und Bilder sowie ein Auspacker (nicht ausprobiert, ZIP?) integriert.

Die heute letzte Version ist vom 10.1.2023, die App wird also wohl gut gepflegt.

LibreOffice: Lücken im Wort nach PDF-Export

Ich benutze LibreOffice (LO) Version: 7.4.2.3 für Linux und schreibe gerade einen langen Text, ein Buch mit etwa 250 Seiten. Es wird viel ergänzt, eingeschoben oder gekürzt. Automatisch gesetzte Trennstellen der Silbentrennung in Worten rutschen über die Zeilenenden hin und her, dabei verschwinden sie und erscheinen neu. Am Textbild bemerkt man fast nichts ungewohntes. Als Optionen für die Ansicht habe ich die Formatierungszeichen nicht angeschaltet (die würden hier auch nicht helfen) und die Feldhinterlegungen zunächst auch nicht.

Nach dem Export als PDF erscheinen aber an sehr vielen Stellen plötzlich kurze Lücken mitten im Wort, kleiner als normale Leerzeichen – offenbar genau an solchen Trennstellen, die nun keine Silbentrennung mehr darstellen. Je länger ich am Text gearbeitet habe, um so mehr werden es. Bei genauem Hinsehen erkennt man die Stellen auch im Text in LO als ganz schmale Lücke. Überfährt man sie mit der Tastatur, muss man mit der Cursortaste dort zweimal drücken – da ist also „irgendwas“! Man kann „es“ aber nicht einzeln markieren.

Ich habe mir Hilfe im deutschsprachigen LibreOffice-Forum gesucht und einen Thread eröffnet. Einen Tag später hatte ich genug Hinweise und eine praktikable Lösung [1], die ich hier kurz beschreiben möchte. Nach meiner Meinung ist es ein Fehler in LibreOffice beim Export eines Textes (nur bei ODT?) nach PDF, den ich mit dem Workaround nicht beheben, aber umgehen kann.

Also: Im PDF sieht man im fraglichen Wort eine ganz schmale Lücke, die man beim flüchtigen Lesen übersieht. Man schaltet in LO die Ansicht / Feldhinterlegungen ein und öffnet das Dokument. In dem Wort sieht man nun grau hinterlegt einen kurzen Bindestrich ohne Lücken an den Seiten. Das ist eine Stelle, an der die Silbentrennung schon mal gewirkt hat, bevor sie durch Umformatierungen wieder zurückgenommen wurde – das erspart LO anscheinend den erneuten Blick in sein Regelwerk beim nächsten Einlesen und damit Ladezeit. Das hat Sinn.

Keinen Sinn hat es, dass diese unsichtbaren Stellen im PDF als Lücke dargestellt werden – das ist ein Fehler von LO beim PDF-Export! Getestet habe ich das mit Adobe Reader und Evince, es ist also kein Fehler der PDF-Reader. Das fragliche Zeichen ist hexadezimales 0xAD, wie ich mit einem Programmier-Editor gefunden habe, und das müsste beim Export einfach übergangen werden.

Wie umgeht man nun den Fehler? Eigentlich ist es ja keiner im Dokument, denn das sollte die sinnvollen Steuerzeichen ruhig enthalten dürfen.

Da man das Zeichen 0xAD nicht eingeben kann, muss man es in einem Wort isolieren und dann im gesamten Dokument gegen „nichts“ ersetzen. Man muss also eine Fundstelle im PDF finden und diese dann auch im ODT suchen. Nehmen wir an, man findet das Wort „Dampf=walze“ – das = soll hier die beschriebene Trennstelle darstellen. Man kopiert das ganze Wort mit Strg-C in die Zwischenablage, ruft „Bearbeiten / Suchen und Ersetzen“ auf und kopiert mit Strg-V das Wort mitsamt der Trennstelle in das „Suchen“-Feld. Die Trennstelle ist hier wirklich unsichtbar – nicht beirren lassen! Jetzt wird es ernst:

Man löscht in diesem Wort von links mit ENTF die Buchstaben bis zu genau dem Zeichen vor der unsichtbaren Trennstelle („Dampf“), von rechts mit <– (löschen) bis zum Zeichen genau nach der Trennstelle („walze“). In diesem Feld steht nun nichts sichtbares mehr, man kann auch den Cursor nicht bewegen – aber alles ist gut, da ist noch was! Im Ersetzen-Feld trägt man nichts ein, wirklich leer, kein Leerzeichen, und startet „alle ersetzen“. Schwupps, sind alle 1027 Fundstellen bereinigt! Das heißt, man möge VORHER eine Kopie anlegen, falls etwas schiefgeht…

Zur Kontrolle kann man nun wieder ein PDF mit neuem Namen (um vergleichen zu können) exportieren, darin dürften alle diese Fehler verschwunden sein.

Ich würde mich sehr über Kommentare freuen, vielleicht hat noch jemand Erklärungen oder andere Hinweise zur Lösung des Problems?


[1] https://www.libreoffice-forum.de/viewtopic.php?f=5&t=38316
Vielen Dank an die Freunde im Forum, die mir so toll geholfen haben!