Neuigkeiten:

Privates MODX und LINUX BLOG, User Registrierung ist deaktiviert! Fragen oder Tipps? Bitte per Matrix: @jolichter:tchncs.de

Hauptmenü

TuTo: Manjaro (KDE)

Begonnen von Jo, 2020-01-26 | 11:42:38

« vorheriges - nächstes »

Jo

letzte Anpassung 2024-November (VirtualBox 7.1.4)

LINUX MANJARO
Stabil mit immer aktueller Software
Basiert auf die leichtgewichtige Distribution Arch Linux
Viele aktuelle Desktops KDE, XFCE, GNOME, CINNAMON u.v.m.


VORWORT    direkt zum TUTORIAL

Hallo, das ist kein Einsteiger-Guide, eher so mein persönliches Nachschlagewerk. Vielleicht können andere auch was draus mitnehmen und den ein oder anderen Krümel für sich nutzen.  :rolleyes:

Kurz (meine Meinung): Für alle Neueinsteiger oder wer einfach nur Anwender bleiben will und ein sehr stabiles Linux bevorzugt, sollte Linux Mint nutzen. Wer mehr Erfahrung mit Linux hat und ein stabiles Rolling-Release-Modell bevorzugt, kann sich Manjaro anschauen welches ich nutze aber Einsteiger nicht empfehlen würde.

Dank Knoppix, Ubuntu und Mint ist LINUX erfolgreich geworden. Eine Live-DVD oder USB-Stick zum testen und installieren ist mit der simplen Bedienoberfläche auch für Einsteiger geeignet. Mit solch einem LINUX Live-System habt ihr immer eine Rettungs DVD oder Stick zur Hand um z.B. eure Daten zu retten oder ins Internet zu gehen! Ich nutze seit vielen Jahren die Debian Distributionen, Ubuntu, Mint oder KDE neon und habe dabei verschiedene Desktops getestet. KDE, XFCE, GNOME, CINNAMON oder MATE - ist alles Geschmackssache und jeder kann sich sein Lieblings-Desktop installieren.

Ubuntu ist für mich heute nicht mehr was es zu Beginn war. Schlecht gepflegte Universe, versuch ein eigenes Init-System einzuführen, Amazon-Anbindung, schwieriges Verhältnis zur Open Source-Community und dann noch die Katastrophe mit dem UNITY-Desktop, was viele Ressourcen gekostet hat. Daher kann Ubuntu mich am Arch lecken. Wenn es denn Ubuntu sein soll, dann nehmt Mint, denn das ist inzwischen das bessere Ubuntu, leider aber auch davon abhängig.

Auf der Suche nach einer Alternative, die auch meinen Lieblings-Desktop KDE voll unterstützt, habe ich mich für Manjaro entschieden.

WARUM NUTZE ICH NUN MANJARO?
Erst mal möchte ich ein immer aktuelles und stabiles System haben. Manjaro lief selbst in meiner virtuellen Maschine schneller als mein damaliges KDE neon. Bootzeit meines PCs wie hier beschrieben dauert mit open-iscsi, Apache Web Server und MySQL ca. 10 Sekunden bis zur Anmeldung, weitere 3 Sekunden bis zum KDE Desktop, welcher sofort voll verfügbar ist. Das Laden von Anwendungen, wechseln zwischen den Anwendungen und booten des Computer ist einfach schneller. Wie kann ich die Geschwindigkeitsvorteile erklären? Evtl. liegt das an der Anzahl der Dienste und Daemons. Mit cups, samba, httpd, mariadb services und fstrim.timer sind das bei mir nur 22 Dienste, bei Ubuntu waren das 94 Dienste! OK ein paar kann ich deaktivieren, dennoch sind es viel mehr. Prüft es selbst:
systemctl list-unit-files --state=enabled --no-pager
Manjaro ist eine auf Arch Linux basierende Linux-Distribution, die in Deutschland, Frankreich und Österreich entwickelt wird. Es ist in erster Linie ein freies Betriebssystem für Personal Computer, welches auf Benutzerfreundlichkeit ausgerichtet ist. Wie seine Basis, Arch Linux, nutzt es ein Rolling-Release-Modell. Jedoch nimmt Manjaro das meiste Risiko aus dem Rolling-Release-Modell heraus, indem es die Veröffentlichung neuer Anwendungen und Funktionen um mehrere Wochen verzögert. Sobald diese getestet und als sicher erwiesen wurden, werden sie zur Verfügung gestellt.

HAUPTMERKMALE
Manjaro teilt viele Eigenschaften mit Arch. Hierzu gehören insbesondere:
  • Geschwindigkeit, Stärke und Effizienz
  • Zugang zu neuer und neuester Software, oftmals bevor die Pakete für andere Distributionen erhältlich sind
  • Manjaro ist ebenfalls ein Rolling Release, so dass jeweils die neueste Software installiert werden kann ohne dass die Notwendigkeit bestünde, auch ein neues System zu installieren
  • Zugang zu von Arch-Nutzern bereit gestellten Paketen (AUR) -> ist per Default deaktiviert, lässt sich leicht aktivieren, Anfänger sollten sich mit AUR erst vetraut machen

Allerdings besitzt Manjaro auch einige Eigenschaften, die es von Arch deutlich unterscheiden, insbesondere:
  • Eine einfachere und benutzerfreundlichere Installationsroutine
  • Automatische Hardwarerkennung, bspw. der Grafikkarte
  • Automatische Installation der Software, die für das Funktionieren des Computers benötigt werden, etwa von Grafiktreibern
  • Manjaro hat ein eigenes Software-Archiv (stable-Repository), um sicherzustellen, dass die Benutzer Zugang zu vollständig getesteter und stabiler Software erhalten, nimmt also in Bezug auf Aktualität der Pakete etwas mehr Abstand von Arch
  • Unterstützung bei der Installation und Benutzung mehrerer Kernel (ich nutze nur LTS-Kernel)

Quelle: wiki.manjaro.org

Mit Manjaro bekommt ihr neueste Technologie, die fertig entwickelt und umfassend getestet wurde (Cutting Edge). Beispiel: Manjaro hatte KDE Plasma 5.18 / 5.19 nicht sofort zur Verfügung gestellt, sondern erst mit dem drittes Release (5.18.3 / 5.19.3), welches die meisten der gemeldeten Probleme behebt. Dieses Rolling-Release-Modell bleibt immer aktuell und stabil. Bedeutet daher auch öfters größere Updates, was eine schnelle Internetverbindung voraussetzt. Ebenso sollte mindestens einmal im Monat Manjaro upgedatet werden, sonst kann es zu Problemen kommen.

Nicht jeder möchte immer das Neuste haben, selbst wenn umfassend getestet könnte das manche Anwender irritieren? Privat sollte das kein Problem sein, aber im Geschäftsbetrieb könnten die vielen Updates stören. Mitarbeiter die gerne kritisieren, weil sie der Meinung sind das Windows besser ist, fühlen sich dann bestätigt. Wobei bei Windows 10/11 die Datensammlungswut und die Mega-Updates nur noch nervig sind. Das ist echte Arbeitsverhinderung die es so bei Linux nicht gibt! Egal ob Windows, Linux oder MAC, viele Anwender sind froh wenn sie die benötigen Programme einigermaßen beherrschen. Wenn dann mal etwas auf englisch erscheint oder ein Programm eine andere Oberfläche hat, wird gemault und stört den Büroalltag. In dem Fall würde ich ein Linux LTS wie z.B. Linux MINT nehmen, welches 5 Jahre Langzeitsupport bietet.

Als fast-nicht-Gamer benutze ich vorrangig Intel Onboard Grafikprozessoren (GPU), z.B. UHD 630 welche an meinem 4K-Monitor out-of-the-box problemlos läuft. Ein Sache zu den Nvidia- und AMD-Treiber: Die Nvidia free-Variante installiert als Open-Source-Treiber das sogenannte Nouveau-Paket. Dieses ist ein Produkt aus Reverse Engineering vieler Freiwilliger, bei dem jedoch die Spiele-Performance fehlt. Die non-free-Variante ist schneller aber leider auch anfällig für Fehler. Als Gamer würde ich daher bevorzugt eine AMD Grafikkarten zulegen. AMD stellt im Gegensatz zu Nvidia das schnelle und stabile AMDGPU (opensource) Treibermodul für den Linuxkernel zur Verfügung. Dieser ist fester Bestandteil des Kernels und somit auf dem System ebenfalls out-of-the-box vorhanden.




TUTORIAL
Hier mein TuTo um Manjaro mit KDE auf einer leeren Festplatte (kann auch während der Einrichtung gelöscht werden) mit /home auf eine extra Partition zu installieren. Die Installation auf einer SSD Festplatte hat keine 5 Minuten gedauert! Die Bilder aus meiner VM zeigt die Testinstallation von Manjaro auf einer virtuellen 30GB Festplatte.

INHALT
Manjaro installieren
Tipps damit Manjaro lange läuft
Optimieren und pflegen
Paketverwaltungsbefehle
Programme deinstallieren & installieren
Kernel Crash?
SSD optimieren
VirtualBox installieren
Webserver installieren und einrichten (lokal)
Paketliste und System wiederherstellen (oder nur die Chronik anzeigen)
KWalletManager: Passwörter aus Backup wiederherstellen
Anhang: Neuinstallation auf bestehendes LINUX ohne die /home Partition zu formatieren


1 ) Download Manjaro KDE Plasma 64 bit Version (Live Image), testen und installieren
Ich wähle die minimal Basis-Desktop-Umgebung mit LTS-Kernel ohne vorinstallierte zusätzliche Softwarepakete aus (Minimal Long Term Support Kernel with no additional software packages pre-installed), Download Link.


(z.B.: manjaro-kde-21.2.0-minimal-211220-linux510.iso | Stand 2021-12-20)

Wichtig: Erstellt vor der Installation ein Backup!

Das Live-Image habe ich mit dd (disk dump) auf einen USB-Stick kopiert. Unetbootin funktioniert anscheinend mit Efi nicht (komme beim booten immer nur in grub rescue). Unter Windows soll das mit Rufus und dem DD-Modus funktionieren (ungetestet). Ich habe das per Terminal wie folgt getan.

ACHTUNG! Beschreibt das richtige Laufwerk und listet dafür die Partitionen auf, um den Pfad für das USB-Laufwerk zu ermitteln:
sudo fdisk -l(bei mir ist das "/dev/sde1")

Sicherstellen das dieses USB-Gerät ausgehängt ist:
sudo umount /dev/sde1
ISO-Datei auf USB-Gerät schreiben. Den Pfad zur ISO-Datei (bei mir "Downloads") und Dateiname anpassen.
Als USB-Gerät nicht die Partitionsnummer "/dev/sde1" angeben, sondern "/dev/sde" (also ohne Zahl).
Beispiel Manjaro KDE 21.2.0 minimal (wenn die Version neuer ist, muss natürlich der Dateinamen angepasst werden):
sudo dd bs=4M if=~/Downloads/manjaro-kde-21.2.0-minimal-211220-linux510.iso of=/dev/sde status=progress oflag=sync
Hinweis: In Manjaro selbst könnt ihr dafür den Suse Studio Imagewriter nutzen (sudo pacman -S imagewriter) oder Mintstick von Linuxmint (sudo pacman -S mintstick).
Link: Dual Boot mit Windows nutzen (brauche ich nicht, benötige Win10 sehr selten und wenn dann via VM).

Beim Starten vom Live-Image per VM hatte ich ca. 2 Minuten einen schwarzen Bildschirm, also etwas Geduld und ihr könnt Manjaro testen, im echten System ist das viel schneller.


Wenn das Netzwerk, Soundkarte usw. funktioniert, einfach auf das Icon "Install Manjaro Linux" klicken.





Zwei btrfs-Partitionen manuell anlegen. Swap-Partition in Testumgebung nicht notwendig (seit Kernel 5 kann eine swap-Datei nachträglich erstellt werden):
  • / (root - flagged as boot) sollte ca. 40GB groß sein, der Rest ist dann für /home (hier nur 10GB, da das eine Testumgebung ist)
  • /home verschlüsselt mit LUKS

Habe zum Testen die Home-Partition mit LUKS (dm-crypt) verschlüsselt, Nachteil: Nach der Installation erscheint die Passwortabfrage für die Home-Partition während des Boot-Prozesses, bei einem One-User System melde ich mich daher automatisch an um nicht 2x ein Passwort angeben zu müssen. Mit PAM lässt sich das automatisch einbinden, setzt jedoch gute Linux-Kenntnisse voraus.

Diese Verschlüsselung verhindert das jemand eure Festplatte ausbaut oder mit einem Live System auf eure Daten zugreifen kann. Wenn das System gebootet ist, ist daher alles entschlüsselt! Siehe auch Härten.

Möchtet ihr wichtige Daten sicher auch nach dem Anmelden verstecken, könnt ihr unter KDE mit Plasma Vault Ordner per CryFS oder GocryptFS nachträglich sicher verschlüsseln. Auch cool, z.B. kann beim Öffnen eines Vault-Ordner das Netzwerk und Bluetooth automatisch deaktiviert werden. GocryptFS wurde von EncFS inspiriert und hat den Anspruch, Schwachstellen von EncFS zu beheben.



Hinweis: Bei einem Lenovo Flex 2-15 Notebook mit 500GB Festplatte und 4GB RAM habe ich das wie folgt getan.
  • Im Bios Setup (Fn & F2 beim Booten halten), "Boot Mode: Legacy Support" und "Boot Priority: Legacy First" setzen, "SATA: AHCI" dürfte klar sein (auch kein RAID) und "Intel Virtual Technology: Enabled" wenn eine VM installiert werden soll.
  • Manjaro wurde mit GPT-Partitionierung (anstatt MBR) installiert. Ohne EFI wird eine 8MB (8MiB) unformatierte Partition mit der Markierung bios_grub (flag) benötigt und muss die allererste Partition auf der Festplatte sein! Dann eine 8GB (8096MiB) Swap Partition, 50GB (50000MiB) root (ext4) und den Rest für /home (ext4) angelegt.

Nachtrag: Partitionen meiner NVMe SSD die kein Legacy-BIOS-Modus unterstützt. Sicherstellen, dass Secure Boot und Windows Fast Boot im UEFI-Firmware-Setup deaktiviert sind und das UEFI so eingestellt ist, dass nur im UEFI-Modus gebootet wird, während CSM (Legacy-BIOS-Modus) deaktiviert ist. Mit UEFI BOOT via GPT anstatt MBR befindet sich der zugehörige Boot Loader auf der EFI System Partition (ESP): 100MB/FAT32 /boot/efi (Flag: "boot" und "esp") | root | /home | ohne swap
Da die manuelle Partitionierung mit dem Calamares-Installer grauenhaft ist, nutze ich inzwischen dafür GParted (sudo pacman -S gparted) und partitioniere meine Festplatte vor dem Installieren.

Siehe auch meinen Kenko Mini H155S PC von Silentmaxx.







2 ) PAMAC
Nach dem Start kann mit Pamac alles aktualisiert werden und mit dem Einstellungsmanager z.B. zusätzliche Sprachpakete installiert werden. Im Kontextmenü Optionen (Manjaro Notifier KDE Settings) können die Kernel-Benachrichtigungen angepasst werden, ich lasse nur bei LTS-Kernel benachrichtigen.


Bei einer Installation fehlte bei mir der Einstellungsmanager und das Icon in der Taskleiste (siehe Problem with background service manager kded5), dann das Tray-Icon und den fehlenden Daemon nachinstallieren:
sudo pacman -S kded pamac-tray-icon-plasma
Pamac ist ein grafischer Paketmanager von Manjaro und als Unterbau dient Pacman, welches ich per Kommandozeile im Terminal nutze. Dieser beherrscht auch die Installation von Paketen über das AUR (Arch User Repositories), welches von einer Gemeinschaft verwaltet wird und kann in den Einstellungen aktiviert werden. AUR Benutzer sollten mit dem Build-Prozess vertraut sein. Tatsächlich ist die AUR-Unterstützung deaktiviert (Standardeinstellung) und muss manuell aktiviert werden. Im Prinzip ist AUR das Pendant zu Ubuntus PPA's. Linux Anfänger und normale Benutzer empfehle ich Pakete nur aus den Manjaro Software Repositories zu installieren und wenn möglich nie aus dem AUR Pakete zu installieren.

Aktualisiere alle installierten Pakete, die aus den Repos oder dem AUR kommen per Pamac CLI:
pamac upgrade -aSicherer Weg um alte Paket-Cache-Dateien zu entfernen, mit Ausnahme der letzten zwei Paketversionen:
pamac clean -v --keep 2in einer Zeile:
pamac upgrade -a && pamac clean -v --keep 2
Wenn eine Fehlermeldung wie z.B. "Kann Datenbank nicht sperren" erscheint:
Vorbereitung...
Synchronisiere Paketdatenbanken...
Kann Datenbank nicht sperren
Fehler beim Synchronisieren der Datenbanken
Es gibt nichts zu tun.
Vorgang erfolgreich abgeschlossen.
Lösung:
sudo rm /var/tmp/pamac/dbs/db.lck
Pacman verwaltet Binärpakete die aus den Repositorys stammen und hält das System aktuell, indem die Paketlisten mit einem Server synchronisiert werden. Durch dieses Server/Client-Modell ist es möglich, Pakete mit allen Abhängigkeiten herunterzuladen, zu installieren bzw. zu aktualisieren.
Diese Seite kann bei einem Problem hilfreich sein: archlinux.de/news oder manjaro.org/c/announcements


3 ) Grub anpassen, z.B.:
kate /etc/default/grubGRUB_DEFAULT=0
GRUB_TIMEOUT=2
GRUB_TIMEOUT_STYLE=menu
GRUB_DISTRIBUTOR="Manjaro"
GRUB_CMDLINE_LINUX_DEFAULT="noplymouth resume=UUID=xxxxxxxxxxxxxxx udev.log_priority=3"
GRUB_CMDLINE_LINUX=""
GRUB_SAVEDEFAULT="false"

Wichtig: "resume=UUID=xxxxx bla bla bla" stehen lassen - wichtig wenn Hibernate genutzt wird!
(ich bevorzuge die Anzeige der Kernel-Meldungen während des Bootvorgangs, daher  das "noplymouth" anstatt "quiet")

Dann Grub aktualisieren und den PC neu starten:
sudo update-grub
Ich möchte die Kernelmeldungen beim Ladeprozess mitverfolgen und 2 Sekunden das Grub Menü sehen, um notfalls einen älteren Kernel zu starten (wenn unterdrückt, beim Booten die linke Shift oder Esc Taste festhalten).

Wenn btrfs genutzt wird und beim starten die Fehlermeldung sparse file not allowed erscheint, muss "GRUB_SAVEDEFAULT" deaktiviert werden. Das Abspeichern funktioniert aus Sicherheitsgründen nicht auf einem RAID-Verbund, einem LVM-Dateisystem, einem btrfs-Dateisystem oder einem ZFS-Dateisystem (Quelle: GNU GRUB MANUAL).

4 ) SWAP-DATEI
Anstelle einer dedizierten swap-Partition kann seit dem Kernel 5 im btrfs-Filesystem eine Auslagerungsdatei nachträglich erstellt werden. Quelle: Swapfiles on BTRFS

z.B. eine 8GB swap-Datei anlegen (gleiche Größe wie RAM verfügbar ist, ab 8GB erhöhe ich das nicht mehr), die Reihenfolge ist wichtig:
sudo truncate -s 0 /swapfile
sudo chattr +C /swapfile
sudo btrfs property set /swapfile compression none
sudo fallocate -l 8G /swapfile
sudo mkswap /swapfile
sudo chmod 600 /swapfile
sudo swapon /swapfile
sudo bash -c "echo /swapfile none swap defaults 0 0 >> /etc/fstab"
Eintrag in der fstab kontrollieren:
kate /etc/fstabPC neu starten und prüfen:
swapon -sTipp: Das KDE-Infozentrum zeigt die Speicherbelegung und viele andere Information zum System grafisch an.

Eine swap-Datei kann so entfernt werden:
sudo swapoff /swapfile
sudo rm -f /swapfile
Eintrag aus der fstab entfernen oder ausklammern:
kate /etc/fstabPC neu starten.

Tipps damit Manjaro lange läuft (ohne Gewähr, mehrere Manjaro KDE Installationen rennen so bei mir seit über 4 Jahren fast problemlos):
Härtet euren PC und verzichtet nach Möglichkeit auf AUR Pakete. Third-Party Software aus unbekannten Quellen sind ein No-Go, also Tabu!
Updatet wenigstens einmal im Monat per Terminal oder Skript KDEtweaksManjaro.sh inkl. einer EOL Kernel Prüfung als ZIP-Datei im Anhang (siehe auch Paketverwaltungsbefehle):
sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syyuu && pamac clean -v --keep 2 && pamac clean -v --build-files --keep 2(synchronisiert die Spiegelserver aus 3 Ländern, Update und bereinigt den pamac Cache und die Build-Dateien, wobei jeweils die letzten zwei Versionen der Pakete beibehalten werden)

Wer ganz sicher gehen will nutzt die Shell per ALT+STRG+F2 ohne Desktop dafür, dann einloggen und
sudo pacman -Syyuu && pamac clean -v --keep 2 && pamac clean -v --build-files --keep 2wenn alles fertig ist wieder raus aus der Shell mit ALT+STRG+F7 oder besser den PC neu starten, besonders nach einem Kernel Update:
sudo reboot
Bei grösseren Updates lese ich erst die Manjaro Announcements Seite und prüfe ob evtl. mit Problemen zu rechnen ist - hier werden dann auch Lösungen gezeigt.

Sollte der Pamac Paketmanager Probleme bei Updates machen, kann das helfen:
sudo pacman -Scc(alle Pakete im Pacman Cache werden vollständig entfernt - die 2 Fragen mit "j" bestätigen)

Ich nutze nur LTS Kernel, einen aktuellen und den vorherigen um eventuell einem Kernel Crash vorzubeugen!

Root-Rechte?! Für viele Einsteiger ist es verwirrend, dass Dateien in Systemordnern nicht ohne weiteres z.B. mit einem grafischen Dateimanager wie z.B. Dolphin bearbeitet oder kopiert werden können. Diese Einschränkung ist ein essentieller Baustein des Sicherheitskonzepts von Linux. Hierbei würde die Grafikanwendung (GUI) auch Konfigurationsdateien mit Root-Rechten im Basisordner /home speichern, was unweigerlich zu Problemen führen wird. Merke: Für Anwendungen mit einer GUI, nie sudo benutzen!

So das war es eigentlich, mit dem GUI Pamac könnt ihr noch fehlende Software installieren oder deinstallieren. Viel Freude mit Manjaro!

:bounce:  :bounce:  :bounce:






Infos und Details zu Manjaro KDE
So wie ich KDE mit Manjaro nutze, evtl. ist was für euch dabei?

Version prüfen per Terminal:
lsb_release -aoder
neofetch
Update: Nutz "fastfetch", dieser ist ähnlich wie "neofetch", aber für höhere Geschwindigkeit und geringeren Ressourcenverbrauch optimiert.

Ausgabe Basisinformationen:
inxi -Fz(der Schalter -z blendet persönliche Infos wie z.B. MAC oder IP aus, also Forum geeignet)
Ausgabe vollständiger Systeminformationen:
inxi -v8per KDE-Infozentrum


5 ) KDE Systemeinstellungen nach eigenen Bedarf und Wünschen anpassen, z.B.
  • Manjaro -> Hardwarekonfiguration, Kernel und Sprachpakete prüfen
  • Erscheinungsbild -> Globales Design und Stile  -> Breath
  • Erscheinungsbild -> Schriftarten  -> Wer einen 2K (QHD) oder 4K (UHD) Monitor benutzt kann hier die DPI für Schriften anpassen, z.B. hat ein 4K Monitor Dell U3219Q laut Techn. Datenblatt 140 DPI (wer keine Daten hat kann das leicht ausrechnen, Link DPI-Rechner)
  • Erscheinungsbild -> Symbole  -> Ab einem 4K (UHD) Monitor setze ich die Symbolgröße für jedes Icon eine Stufe höher
  • Hinweis: Einfacher ist das dem Schieberegler unter Hardware -> Anzeige und Monitor -> Anzeige-Einrichtung -> Globale Skalierung (das passt auch die DPI für Schriften an)
  • Arbeitsbereich -> Verhalten des Arbeitsbereichs -> Allgemeines Verhalten -> Klick-Verhalten: Doppelklick zum Öffnen der Dateien/Ordner
  • Arbeitsbereich -> Verhalten des Arbeitsbereichs -> Bildschirmsperre -> Aktivierung: 5 Min. | 300 Sek. | Meta+L | Erscheinungsbild: Diaschau, Virtuelle Arbeitsflächen 2
  • Arbeitsbereich ->Verhalten des Arbeitsbereichs -> Aktivitäten: Privatsphäre Verlauf für 1 Monat behalten oder "Nicht merken"
  • Arbeitsbereich -> Fensterverwaltung -> Fensterverhalten, im TAB "Fensteraktionen" Sondertaste: "Meta" (wichtig wenn ihr z.B. VirtualBox mit Windows benutzt)
  • Arbeitsbereich -> Starten und Beenden -> Anmeldeschirm (SDDM) -> Breath
  • Arbeitsbereich -> Starten und Beenden -> Arbeitsflächen-Sitzung: Abmeldung bestätigen aus, Rechner ausschalten, Mit leerer Sitzung starten
  • Arbeitsbereich -> Starten und Beenden -> Startbildschirm -> Breath
  • Arbeitsbereich -> Suchen -> Dateisuche: habe hier alles deaktiviert (beendet den baloo_file_extractor Prozess und die Suche nach Dateinamen funktioniert weiterhin; stoppe den Baloo-Dienst: "balooctl6 disable" und lösche die Indexinformationen: "rm -rf ~/.local/share/baloo")
  • Persönliche Informationen -> Benutzerkontodetails -> KDE-Passwortspeicher: Bei Nichtgebrauch schließen nach: 180 Min.
  • Persönliche Informationen -> Regionaleinstellungen -> Sprache: Deutsch, Rechtschreibprüfung: Deutsch (Deutschland)
  • Persönliche Informationen -> Regionaleinstellungen -> Datum & Zeit: Datum und Uhrzeit automatisch einstellen
  • Persönliche Informationen -> Anwendungen -> Standard-Anwendungen: Webbrowser: firefox (evtl. chrome oder palemoon?) / E-Mail-Programm (11/12): kmail (evtl. evolution oder thunderbird?)
  • Persönliche Informationen -> Anwendungen -> Dateizuordnungen: hier die gewünschte Standardprogramme anpassen z.B. für audio, image und video
  • Netzwerk -> Verbindungen: Hier könnt ihr LAN, WLAN oder z.B. VPN mit OpenConnect einrichten (Clientseitig getestet mit einem VASCO Token)
  • Netzwerk -> Bluetooth -> Erweiterte Einstellungen: Bluetooth-Integration aktivieren oder deaktivieren
  • Hardware -> Eingabegeräte -> Tastatur: Zahlenblock beim Plasma Start, Maus: Zeigebeschleunigung anpassen
  • Hardware -> Anzeige und Monitor -> Compositor: Hier nutze ich anstatt OpenGL 2.0 die Version OpenGL 3.1
  • Hardware -> Energieverwaltung -> Bildschirm-Energieverwaltung -> Ausschalten nach: 240 Min. / Wenn der Ausschalt-Knopf betätigt wird: Herunterfahren
  • Hardware -> Wechselmedien -> Automatisches Einhängen von Wechselmedien aktivieren

Optional die KDE Benachrichtigungen einrichten (Sound bei bestimmten Ereignissen):
Persönliche Informationen -> Benachrichtigungen -> Anwendungen: Einrichten .., dann Systemdienste -> KDE-Plasma-Arbeitsbereich: Ereignisse einrichten ...

Tipps: Alte Hardware oder lahme Grafikkarte? Dann schaltet die Desktop Effekte aus: Hardware -> Anzeige und Monitor -> Compositor. Die Diaschau ist eine schöne Alternative zum alten Bildschirmschoner / Screensaver welche es zu Röhrenbildschirm-Zeiten gab (CRT).

6 ) Paketverwaltungsbefehle
KDEtweaksManjaro.sh als ZIP-Datei im Anhang (seit V21.06.011 nutze ich dafür pamac upgrade; seit V24.07.014 mit EOL Kernel Prüfung)
Link einer Tabelle mit Paketverwaltungsbefehle einiger Linux-Distributionen, z.B.:
Komplette System-Aktualisierung:
sudo pacman -Syyuuwenn Pakete aus dem AUR installiert wurden (benötigt yay, siehe Punkt 10 ):
yay -SyyuuManjaro sauber halten (lässt zwei Versionen der Pakete für den Fall, dass ein Downgrade durchgeführt werden muss):
pamac clean -v --keep 2(siehe auch Automatische Cache-Wartung)

ALLES in einer Zeile und nicht mehr benötigte Abhängigkeiten anzeigen[ (verwaiste Pakete):
sudo pacman -Syyuu && sudo pacman -Qdtq && pamac clean -v --keep 2
oder ALLES in einer Zeile wenn ihr zusätzlich AUR-Upgrade nutzt:
yay -Syyuu && sudo pacman -Qdtq && pamac clean -v --keep 2 && pamac clean -v --build-files --keep 2("Failed to parse JSON" erscheint wenn kein AUR genutzt wird)

Verwaiste Pakete entfernen:
sudo pacman -Rsn $(pacman -Qdtq)
Mit dem Befehl:
grep "libva-vdpau-driver" /var/log/pacman.logkannst du im Pacman-Log gezielt nach Einträgen suchen, die sich auf das Paket beziehen, z. B. wenn es verwaist ist. In diesem Beispiel wird nach dem Paket "libva-vdpau-driver" gesucht. Damit bekommst du eine gute Übersicht darüber, wann und warum dieses Paket installiert wurde – etwa als direkte Installation oder als Abhängigkeit eines anderen Pakets. Ich hatte das Paket am 2024-11-30 entfernt, da es verwaist war.

Sollte der Pamac Paketmanager Probleme bei Updates machen, kann das helfen:
sudo pacman -Scc(alle Pakete im Pacman Cache werden vollständig entfernt - die 2 Fragen mit "j" bestätigen)

dann aktuelle Spiegelserver aus diesen 3 Ländern speichern und alles synchronisieren (nutze ich so da schneller, siehe auch Pacman-mirrors)
sudo pacman-mirrors --country Germany,France,Austria && sudo pacman -Syyuu(Mirrorliste wrd hier gespeichert: /etc/pacman.d/mirrorlist)

Automatische Cache-Wartung:
Der Pacman Cache (/var/cache/pacman/pkg/) wird standardmäßig per pamac-cleancache.timer einmal im Monat entfernt, ansonsten wird die Partition irgendwann voll. Details siehe /usr/lib/systemd/system/pamac-cleancache.timer (Timer einmal im Monat in Kombination mit Persistent=true). Prüfen ob dieser Timer aktiv ist:
systemctl list-timers(oder Systemeinstellungen -> Systemverwaltung -> Systemd -> Timers)
wenn dieser Timer fehlt:
sudo systemctl enable pamac-cleancache.timer
sudo systemctl start pamac-cleancache.timer

Pkgfile:
Mit pkgfile können die Pakete der offiziellen Repositorien nach Dateien durchsucht werden. Eine ähnliche Funktionalität ist auch in pacman (Option -F und Folgeoptionen) eingebaut, aber alternativ kann weiterhin pkgfile verwendet werden. Irgendwann ist mir ein sporadische Fehler (failed to start pkgfile database update) aufgefallen. Bei einer Installation hatte ich eine KDE-Edition mit git-Paketen erwischt bei dem der Systemd Service pkgfile-update.timer aktiviert war (welcher eigentlich deaktiviert ist). Da ich das nicht benötige habe ich diesen Service wieder deaktiviert (also wie 'default'). Vorgehensweise:
Wird pkgfile verwendet?
systemctl | grep pkgfileWenn ja, können wir nach allem suchen, was sich auf pkgfile verlässt:
pacman -Qi pkgfile | grep RequiredWenn niemand die pkgfile Datenbank benötigt, kann Systemd Service pkgfile-update.timer deaktiviert werden (oder nutzt diesen Workaround):
sudo systemctl disable pkgfile-update.timer(wieder aktivieren: sudo systemctl enable pkgfile-update.timer)

7 ) Deinstallieren, z.B. Yakuake (drop-down Terminal):
sudo pacman -Rns yakuake
8 ) Mozilla Firefox Add-ons und härten
  • DNS-over-HTTPS (DoH). Inzwischen laufen fast alle Webseiten über HTTPS (SSL) und Provider können nicht sehen welche Daten wir übermitteln, besonders Benutzername und Passwort. Jedoch sind die Verbindung zum DNS-Server immer noch unverschlüsselt und der Provider kann diese in Klarschrift mitlesen. Lösung: DoH aktivieren, im Menü unter Einstellungen -> Verbindungs-Einstellungen, hier die Checkbox "DNS über HTTPS aktivieren" einschalten und als Anbieter z.B. Cloudflare wählen oder benutzerdefiniert "https://dnsforge.de/dns-query" von dnsforge.de eintragen (deutscher Server mit Werbefiter). Mit der FritzBox ab V7.2 könnt ihr euer Heimnetz global per DoT die DNS Abfragen verschlüsseln (Link).
  • Werbeblocker uBlock Origin (Werbung blocken, schneller laden und Seiten sicherer machen!)
  • Cookies Info löschen (EU-Cookie-Irrsinn blocken!) oder per uBlock Origin in der Filterliste »Belästigungen« die Liste "EasyList Cookie" aktivieren
  • Privacy Badger unterdrückt Werbe-Tracker
  • Nutze VPN ohne WebRTC, jemand könnte damit die wirkliche IP herausfinden. Deaktivieren: about:config -> media.peerconnection.enabled = false
  • Canvas Fingerprinting blockieren (siehe Wiki Canvas_Fingerprinting und zum Testen browserleaks.com)
  • Web Developer (Entwickler Tools für Internetseiten)
  • Foxy Gestures (z.b. Klickgesten zurück/vor: Enable chord gestures)
  • JScript Toggle On and Off (JavaScript ein- und ausschalten)
  • Firefox härten mit firejail (Profil ist vorhanden), Anwendung starten mit: firejail firefox %u

Hinweis: Es ist nahezu unmöglich, die User-Agent Kennung plausibel in allen Punkten zu faken und ein unvollständiger Fake-Versuch kann ein gutes Identifizierungsmerkmal für Trackingdienste sein, da man sich von der großen Masse der Surfer stärker unterscheidet.

Nachtrag zu Firejail mit dem Mozilla Firefox. Folgende Zeilen habe ich in meiner firefox.local eingegeben, um den Zugriff auf gemeinsame Programme/Addons/Plugins und plasma-browser-integration zu ermöglichen. Wenn diese config noch nicht vorhanden ist:
mkdir ~/.config/firejail/dann mit einem Editor öffnen:
kate ~/.config/firejail/firefox.localund folgendes Eintragen:
# Quellen:
# /etc/firejail/firefox.profile
# /etc/firejail/firefox-common.profile
#
# ~/.config/firejail/firefox.local
#
#
# Add the next lines to your firefox.local for plasma-browser-integration.
dbus-user.own org.mpris.MediaPlayer2.plasma-browser-integration
dbus-user.talk org.kde.JobViewServer
dbus-user.talk org.kde.kuiserver
#
# Add the next line to your firefox-common.local to allow access to common programs/addons/plugins.
include firefox-common-addons.profile

9a ) Evtl. Pale Moon Browser als Firefox Alternative
sudo pacman -S palemoon
  • deutsches Sprachpaket, beachte die Infos dort (about:config -> general.useragent.locale von "en-US" auf "de" setzen)
  • in den Pale Moon Einstellungen (Erweitert), die Updates deaktivieren, das übernimmt das Linuxsystem
  • Pale Moon unterstützt keine WebExtensions, daher funktioniert nur das ältere deutsche Wörterbuch Version 2.0.6 (german_dictionary-2.0.6-an+fx+sm+tb.xpi im Anhang)
  • uBlock Origin (direkt von github, sucht Latest release: uBlock0.firefox-legacy.xpi)
  • uBlock Origin Updater (damit wird uBlock Origin automatisch aktualisiert)
  • Canvas Fingerprinting verhindern: about:config -> canvas.poisondata auf "true" setzen, es gibt auch eine Erweiterung dazu: canvasblocker-legacy (meine Block Mode Einstellung: fake readout API)
  • Toggle JavaScript (Enabled/Disabled)
  • i-dont-care-about-cookies (entfernt lästige Cookie-Warnungen) oder per uBlock Origin in der Filterliste »Belästigungen« die Liste "EasyList Cookie" aktivieren
  • Pale Moon härten mit firejail (Profil ist vorhanden), Anwendung starten mit: firejail palemoon %u

Hinweis: Pale Moon ist ein alternativer Web-Browser und nutze den gerne fürs Banking. Einige Websites halten diesen manchmal für veraltet und senden tatsächlich eine Seite mit der Meldung: "Ihr Browser ist veraltet. Bitte aktualisieren Sie auf einen modernen Browser, um diese Seite nutzen zu können". Das ist natürlich Unsinn und ich bin mit dieser Einschätzung nicht einverstanden. Pale Moon hat die Möglichkeit den User-Agent für bestimmte Domains zu ändern. Einfach einen neuen Eintrag auf der about:config Seite machen. Sucht nach "general.useragent.override", dann seht ihr eine Liste vorhandener Einstellungen und könnt einen neuen Eintrag mit gleicher Syntax einfügen, z.B.:
"general.useragent.override.MEINE-HAUS-BANK.de" mit dem String: "Mozilla/5.0 (X11; Linux x86_64; rv:97.0) Gecko/20100101 Firefox/97.0" (evtl. die Version anpassen, hier habe ich Firefox 97 eingetragen).

Nachtrag:
  • Ich nutze die Erweiterung "i-dont-care-about-cookies" nicht, funktioniert ist aber langsam. Dafür nutze ich die Filterliste »Belästigungen -> EasyList Cookie« in der uBlock Origin Erweiterung. Details siehe hier.
  • Meine Standardsuchmaschine ist startpage.com


Noch was zum Firejail, dieser kann in den gesamten Desktop integriert werden und jede Anwendung verwendet dann die Firejail-Sandbox, wenn sie standardmäßig unterstützt wird (nutze ich nicht!):
sudo firecfgRückgängig machen:
sudo firecfg --clean
Damit DRM z.B. mit Amazon Prime Video oder Apple Music funktioniert, muss die /etc/firejail/firejail.config Datei angepasst werden (Quelle). Sonst kommen Fehlermeldungen wie "content_equivalent" oder "Das Plugin "WidevineCdm" ist abgestürzt". Einfach per Terminal die Linie in der Config Datei aktivieren:
sudo sed -i 's/# browser-allow-drm no/browser-allow-drm yes/' /etc/firejail/firejail.config
9b ) Nutze seit Ende 2022 den Brave Browser als Firefox Alternative
pamac install brave-browserMehr ist nicht notwendig, Brave Shields und Tor ist enthalten. Ich nutze dazu nur die Erweiterung Tabs to the Front v2 um neue Tabs sofort und nicht mehr im Hintergrund zu öffnen.

Der Brave Browser ist ein kostenloser, quelloffener Webbrowser, der auf Chromium basiert und viele Vorteile bietet, wie schnelle Leistung, hohe Kompatibilität mit Websites und Erweiterungen sowie Funktionen zur Verbesserung der Privatsphäre und Sicherheit der Benutzer, einschließlich der Blockierung von Werbung, Trackern und Cookies von Drittanbietern. Der Browser bietet auch einen automatischen Tracking-Schutz namens Brave Shields, der ähnlich wie Firefox und der neue Edge funktioniert und Werbung blockiert. Lesezeichen können einfach zwischen verschiedenen Geräten zu synchronisieren. Dies bedeutet, dass Benutzer ihre Lesezeichen auf ihrem Computer, Smartphone oder Tablet synchronisieren können, um auf ihre bevorzugten Websites von überall aus zugreifen zu können. Die Synchronisation erfolgt über ein verschlüsseltes Netzwerk, um die Privatsphäre und Sicherheit der Benutzer zu gewährleisten.

10 ) Installiere diese Pakete (die ich benutze) auf deinem System, sofern sie noch nicht vorhanden sind:
sudo pacman -S --needed yay base-devel hunspell-de manjaro-printer system-config-printer cups-pdf libimobiledevice backintime-qt kolourpaint kcolorchooser lame fdkaac audacity easytag mencoder frei0r-plugins devede vlc elisa gimp kfind kdf kwave mediainfo handbrake gthumb firejail pingus kmahjongg aisleriot libreoffice zip unzip unrar doublecmd plasma-vault cryfs encfs gocryptfs imagemagick dconf-editor geany htop meld kdialog imagewriter mintstick kompare ncdu gparted gnome-disk-utility net-tools arp-scan dnsutils cifs-utils sqlite testdisk fastfetch
Das Gnome Disk Utility, ist ein praktisches Tool zur Verwaltung von Laufwerken und Partitionen. Du findest es unter dem Namen "Laufwerke" oder "Disks" in deinem Anwendungsmenü. Mit dem Gnome Disk Utility kannst du externe SSDs oder andere Wechsellaufwerke als normaler Benutzer in Formaten wie NTFS, FAT32, exFAT oder den Linux-Formaten ext3/4 und btrfs formatieren – ganz ohne Root-Rechte. Danach gehört das Laufwerk dem Benutzer und nicht root, was meist vorteilhaft ist. Ein nachträgliches chmod oder chown ist somit – im Gegensatz zu Tools wie GParted oder dem KDE-Partitionsmanager – nicht erforderlich.

Umstellung auf Qt6 (2024-Mai). Um sicherzustellen, dass die Qt6-Anwendungen gut aussehen und sich nahtlos in deine Desktop-Umgebung einfügen, solltest du folgende Pakete installieren (falls noch nicht geschehen):
sudo pacman -S --needed qt6ct qt6-wayland qt6-translationsNachdem du die notwendigen Pakete installiert hast, kannst du die Qt6-Einstellungen (qt6ct) anpassen. Achte darauf, die passende Konfigurationsvariable für Qt6 festzulegen, und füge diese Zeile ans Ende deiner ".bashrc" oder ".zshrc" Datei hinzu (je nachdem, welche du verwendest), damit sie bei jedem Start deiner Shell automatisch geladen wird (siehe auch: Linux bash oder zsh?):
# Set the Qt6 platform theme
export QT_QPA_PLATFORMTHEME=qt6ct
Lade anschließend die ".bashrc" oder ".zshrc" Datei neu, damit die Änderungen wirksam werden. Das kannst du tun, indem du den folgenden Befehl in deinem Terminal eingibst:
source ~/.zshrcoder
source ~/.bashrcNun sollte `qt6ct` korrekt konfiguriert sein und das Erscheinungsbild von Qt6-Anwendungen anpassen. Überprüfe, ob die Umgebungsvariable korrekt gesetzt ist:
echo $QT_QPA_PLATFORMTHEME
Falls Timeshift noch nicht installiert ist, kannst du es mit folgendem Befehl installieren:
sudo pacman -S timeshift timeshift-autosnap-manjaro grub-btrfsNach dem ersten Erstellen eines Snapshots solltest du den GRUB-Bootloader aktualisieren, um den Timeshift-Menüeintrag hinzuzufügen:
sudo update-grubDieser Befehl sorgt dafür, dass ein Timeshift-Menüeintrag im GRUB-Bootmenü erscheint.

timeshift deinstallieren:
sudo pacman -Rsn timeshift timeshift-autosnap-manjaro grub-btrfs
sudo update-grub

Hinweis: Das btrfs Dateisystem unterstützt im Gegensatz zu ext4 Snapshots und wenn Manjaro mit btrfs installiert wird, ist automatisch Pacman gepatcht. Das gepatchte Pacman erstellt dann vor jedem Update automatisch Snapshots und trägt diese in grub-btrfs ein. Das bedeutet, wenn irgendetwas beim Update schief gegangen ist, dann wählt ihr in GRUB einfach "Manjaro mit erweiterten Optionen" -> "Snapshots" aus und ihr könnt in das vorherige (noch funktionierende) System booten. Vorteil: Zum Reparieren wird keine LiveCD/USB benötigt, allerdings setzt btrfs ein paar Grundkenntnisse im Umgang damit voraus, siehe z.B.: Was ist BtrFS. Wichtig ist zu beachten, dass Snapshots zusätzlichen Platz auf der Partition benötigen und keine Sicherungskopien im Sinne von Backups sind, siehe z.B. BackInTime. Daher hilft das gegen fehlerhafte Updates oder gelöschte Dateien, jedoch nicht gegen Festplattenschäden!

Solaar ist ein Linux-Manager für viele Logitech Eingabegeräte die sich direkt über ein USB-Kabel oder kabellos verbinden, z.B. Logitech Mouse MX Anywhere 3. Damit lässt sich das Gefühl des Scrollrads beim scrollen anpassen (Ratschenmodus / scroll force):
sudo pacman -S solaar
Steam ist ein Online-Store für Games und rennt nativ unter Manjaro:
sudo pacman -S steamCool, der Weltraumsimulator Universe Sandbox rennt damit unter Manjaro, hat jedoch eine hohe Systemanforderungen! Demos z.B. auf YouTube.
(Steam härten mit firejail (Profil ist vorhanden), Anwendung starten mit: firejail /usr/bin/steam-runtime %U)

Hinweis:
  • sollte nach einem KDE (qt5 oder qt6) oder Gnome (gtk2) Zweig bzw. Provider zum Auswählen gefragt werden, wählt KDE (qt5 oder qt6)
  • "LibreOffice Fresh" ist die stabile Version mit den neuesten Funktionen und "LibreOffice Still" ist die stabile Version, die (über einen längeren Zeitraum) mehr Tests unterzogen wurde
  • ich bevorzuge libimobiledevice und ifuse, damit können iOS-Gerät wie z.B. das iPhone als USB-Laufwerk eingebunden werden, sh Beispiele als ZIP-Datei unten im Anhang
  • KDE Connect gibt es inzwischen auch für iPhone/iPad und ist ziemlich gut geworden

sudo pacman -S ifuse
Wer Samba benötigt (Zugriff auf Dateifreigaben in gemischten Netzwerken, z.B. NAS):
sudo pacman -S samba smbclient kdenetwork-filesharing manjaro-settings-samba kio-fuseEin Samba-Passwort für euer Benutzerkonto erstellen: 'sudo smbpasswd -a $USER' (-a = add user | -x = delete user)
(Benutzter wird der user-group 'sambashare' hinzugefügt | Nachträglich möglich per 'sudo gpasswd -a $USER sambashare' | Kontrolle per 'groups' oder 'id')
Samba wieder entfernen:
sudo pacman -Rsn samba smbclient kdenetwork-filesharing manjaro-settings-samba kio-fuse
testparm prüft die Samba Konfigurationsdatei (smb.conf) auf interne Korrektheit:
$ testparm
Load smb config files from /etc/samba/smb.conf
Loaded services file OK.
Weak crypto is allowed
Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

Das ttf-ms-fonts Paket für Windows-basierte Schriftarten (ich benötige keine dieser Schriftarten) ist in den Arch Repositorys enthalten und kann aus dem AUR installiert werden:
yay -S ttf-ms-fonts(von Microsoft freigegebenen Kern-Schriftarten für Windows)
Wenn die Fehlermeldung "cannot find the fakeroot binary" erscheint, müsst ihr das erst installieren (ist im base-devel Paket enthalten):
sudo pacman -S base-devel
Gewünschte Schriften, die nicht in den Paketquellen verfügbar sind, können oft im Internet gefunden werden. Im Allgemeinen müssen sie nicht explizit "installiert" werden. Es reicht, die Schriftdatei in ein entsprechendes Verzeichnis zu kopieren oder zu entpacken, z.B.:
  • ~/.local/share/fonts (nur für den aktuellen Benutzer) oder
  • /usr/share/fonts/ (systemweit)
So stehen die Schriften im System zur Verfügung, ohne dass eine zusätzliche Installation erforderlich ist.

Plugin Content Aware Healing für GIMP (Filter -> Verbessern -> Heal Selection...), enthalten in gimp-plugin-registry:
yay -S babl-git gegl-git gimp-plugin-registry
Brennprogramm und optionale Abhängigkeiten installieren:
sudo pacman -S k3b dvd+rw-tools emovix cdrdao transcode cdparanoia soxBenutzer der Gruppe optical hinzufügen:
sudo gpasswd -a $USER opticalPC neu starten, im K3b Programm die Einstellungen prüfen (K3b einrichten...), z.B. Temporärer Ordner habe ich auf "/tmp" festgelegt.

Videoeditor:
Avidemux ist für einfache Schneide- Filter- und Kodierungsaufgaben geeignet.
sudo pacman -S avidemux-qt
Mit Kdenlive ist es möglich, mehrere Bild- und Tonspuren zu bearbeiten und verwendet die MLT Video Rendering Engine.
sudo pacman -S kdenlive qt6-imageformats(Sollte es noch nicht geschehen sein, installiere auch qt6ct. Da Kdenlive nun auf Qt6 basiert, wird dies benötigt, damit z.B. der Color Picker funktioniert)


11 ) Druckfunktion aktivieren

Prüfe zuerst ob folgende Pakete installiert sind:
sudo pacman -S --needed manjaro-printer cups cups-filters system-config-printer avahi
sudo systemctl enable --now cups.servicePC neu starten oder manuell die Druckfunktion starten:
sudo systemctl start cups.service(cups deaktivieren mit disable)
CUPS Web Interface: http://localhost:631

Standard Papierformat in der Datei /etc/papersize auf A4 setzen:
sudo sh -c "echo 'A4' > /etc/papersize"
CUPS entfernen (z.b. für ein Reset):
sudo systemctl disable --now cups.service
sudo pacman -Rsn manjaro-printer
pacman -Qi cups
sudo pacman -Rsn cups cups-pdf

Wenn nach einem CUPS-Update der Drucker oder die Seite http://localhost:631 nicht erreichbar ist, aktualisiert ihr die  Systemdienste wie folgt (Quelle):
sudo systemctl disable --now org.cups.cupsd.socket
sudo systemctl disable --now org.cups.cupsd.service
sudo systemctl disable --now org.cups.cupsd.path
sudo systemctl enable --now cups.service
sudo systemctl enable --now cups.socket
sudo systemctl enable --now cups.path
Der Dienst wurde vor einiger Zeit in nur cups umgemannt, die alte Nomenklatur (org.cups.cupsd.*) wird nicht mehr verwendet.

Prüfen ob CUPS läuft:
sudo systemctl status cups.service
Der Avahi-Daemon kann für die Drucker-Erkennung im Netzwerk verantwortlich sein. Überprüfe, ob dieser Dienst läuft:
sudo systemctl status avahi-daemon.service
Falls der Dienst nicht läuft, starte ihn und aktiviere den automatischen Start bei jedem Systemstart mit den folgenden Befehlen:
sudo systemctl enable avahi-daemon.service
sudo systemctl start avahi-daemon.service

Hier findet ihr hilfreiche Informationen, wie LAN- oder WLAN-Drucker und Scanner "driverless" installiert werden können: Link. Damit die Geräte erkannt werden, muss der AVAHI-Dienst laufen.


E-Mail Programme Kontact oder Evolution ist Geschmackssache, finde beide gut da diese Programme Aliase, IMAP, CardDav, CalDav und openPGP nativ unterstützen:

12 ) Kontact ist ein Paket das die Programme KMail, KOrganizer und KAddressBook usw unter einem Hut vereint:
sudo pacman -S yay kontact kmail kaddressbook korganizer knotes akregator aspell-de kgpg
13 ) Evolution ist eine gute alternative das ich seit vielen Jahren nutze, Evolution ist ein Gnome E-Mail und -Kalender Programm welches auch sehr gut unter KDE läuft:
sudo pacman -S evolution gnome-keyring seahorse gnupg kgpg(anstatt kgpg könnt ihr auch gpa installieren)

KGpg ist ein grafisches KDE-Frontend für das Verschlüsselungsprogramm GnuPG. Damit lassen sich einfach neue Schlüssel erstellen, exportieren, importieren oder signieren. Z.B. eigenen Schlüssel mit öffentlichen und geheimen Teil, als auch nur öffentliche Schlüssel von Freunden, Kunden usw. Meinen öffentlichen Schlüssel könnt ihr von der Kontaktseite laden und mit dem Tool importieren. PGP erspart einem den Geheimtransport von Schlüsseln und besteht immer aus zwei Teilen. Einem öffentlichen, mit dem man nur verschlüsseln kann (public-key) und einem geheimen um diese Daten zu entschlüsseln (private-key). Siehe auch PGP Mail Verschlüsselung.
Wenn in der Konsole beim Start der Schlüsselverwaltung
kgpg -kdie Warnung "unsafe permissions on homedir ~/.gnupg" oder ähnlich erscheint, die Zugriffsrechte der Ordner auf 700 setzen:
sudo find ~/.gnupg \( -type d -exec chmod 700 {} + \);
GNOME Schlüsselbund automatisch mit SDDM Login entsperren, dass Passwort muss gleich mit dem KDE Login kwallet sein (Quelle):
kate /etc/pam.d/sddmHabe diese 2 Zeilen ans Ende der jeweiligen Sektion eingefügt:
auth      optional    pam_gnome_keyring.so
session    optional    pam_gnome_keyring.so auto_start

Reset Evolution und deinstallieren:
evolution --force-shutdown
rm -rf ~/.local/share/evolution
rm -rf ~/.cache/evolution
rm -rf ~/.config/evolution
dconf reset -f /org/gnome/evolution/
dconf reset -f /org/gnome/evolution-data-server
sudo pacman -Rns evolution

Fehler beim Drucken? Siehe WebKit Bug 202363, dafür gibt es ein workaround: Ändert im KDE-Menü-Edior den Befehl "evolution %U" in "WEBKIT_FORCE_SANDBOX=0 evolution". Scheint gelöst zu sein.

14) Flatpak ist eine Technologie für Linux, die es ermöglicht, Anwendungen mit all ihren Abhängigkeiten in isolierten Umgebungen auszuführen:
sudo pacman -S flatpak
Wenn GTK Flatpaks unter KDE Wayland keine Schriftglättung (Antialiasing) anzeigen, was zu schlechter Lesbarkeit führt, obwohl es unter X11 funktioniert, könnte die Installation des Pakets xdg-desktop-portal-gnome helfen. Bei mir war nur xdg-desktop-portal-kde installiert. Diese Maßnahme hat bei meiner Roger Router Flatpak-Version geholfen:
sudo pacman -S xdg-desktop-portal-gnome
15 ) Roger Router benötigt die Pakete libcapi und librm aus den AUR Repos und sollte mit installiert werden (ich nutze derzeit die Flatpak Version):
sudo pacman -S yay pulseaudio pulseaudio-alsa
yay -S librm libcapi
yay -S roger-router
Start mit
roger
Installation des Fax-Druckers (cups muss dafür aktiviert sein):
lpadmin -p Roger-Router-Fax -m drv:///sample.drv/generic.ppd -v socket://localhost:9100/ -E -o PageSize=A4
Telefonliste löschen: Erst Liste im Fritz-Router löschen, dann die csv-Datei.
rm ~/.local/share/rm/[deinProfilname]/journal.csv
Einstellungen können per dconf angepasst werden. Roger Router Reset:
dconf reset -f /org/tabos/

Alternative: Roger-Router über flathub (Repositorium für Flatpak-Anwendungen) installieren:
flatpak install flathub org.tabos.roger
Roger-Router starten (evtl. muss der PC erst neu gestartet werden):
flatpak run org.tabos.roger
Telefonliste löschen: Erst Liste im Fritz-Router löschen, dann die csv-Datei.
rm ~/.var/app/org.tabos.roger/data/rm/[deinProfilname]/journal.csv
Settings bearbeiten:
kate ~/.var/app/org.tabos.roger/config/glib-2.0/settings/keyfile
Flatpak Updates:
flatpak update
Faltpak Liste:
flatpak list
Roger Router deinstallieren:
flatpak uninstall org.tabos.roger
flatpak uninstall --unused
rm -r ~/.var/app/org.tabos.roger/

Einstellungen werden in der Flatpak Version im "keyfile" gespeichert und ist im Ordner:
~/.var/app/org.tabos.roger/config/glib-2.0/settings/
Telefonliste "journal.csv" im Ordner:
~/.var/app/org.tabos.roger/data/rm/[deinProfilName]/
16a ) Gambas IDE installieren (optional)
In der Gruppe base-devel sind z.B. benötigte pakete wie autoconf, automake, fakeroot, make und gcc enthalten:
sudo pacman -S gambas3 rpm-tools base-develdebhelper installieren (nur nötig wenn Debian Installationspakete erstellt werden sollen):
yay -S debhelperWenn ein Gambas Programm unter Arch installiert wird, werden benötigte Pakete wie z.B. der Runtime-Interpreter (gambas3-runtime) automatisch mit installiert (IDE nicht notwendig).

Wenn die IDE eine Warnung "Please set $EDITOR enviroment variable with your favorite graphical text editor" meldet, wie folgt einen Editor setzen, z.B. Kate:
kate /etc/profile.d/editor.shund diese 2 Zeilen eintragen:
export EDITOR=/usr/bin/kate
export VISUAL=/usr/bin/kate
(test mit:  echo $EDITOR)

Gambas3 IDE


16b ) Python IDE installieren (optional)
PyCharm Community ist eine IDE für reine Python-Entwicklung und entwickelt auf Basis von Open Source:
sudo pacman -S python python-pip tk pycharm-community-edition
Python IDE mit venv:


Aktuelle Umgebung überprüfen:
pip checkDadurch wird festgestellt, ob es irgendwelche Inkonsistenzen in installierten Paketen gibt.

Zeigt installierte Pakete an:
pip list
Zeigt nur Pakete an, die mit "pip install --user" installiert wurden:
pip list --user
Was mir als Python Anfänger nicht klar war:
  • Module aus dem Python Package werden via pip an der Paketverwaltung vorbei installiert. Das kann zu unvorhergesehen Problemen mit Python-Scripts führen, besonders wenn das gleiche Python Modul auch über die Paketverwaltung installiert wird. Daher installiere ich diese per Paketverwaltung systemweit (wenn vorhanden) und optionale Pakete per "pip install --user" ohne sudo! In der IDE installiere ich Module im entsprechenden "Virtual Environment" (venv), das ist der sicherste Weg.
  • pip installiert standardmäßig Python-Pakete ins Systemverzeichnis (/usr/local/lib/pythonY.X/). Dies erfordert Root-Zugriff. Optionale Pakete sollten mit "'pip install --user" (ohne sudo!) installiert werden, diese gehen in "~/.local/lib/pythonX.Y/site-packages/".
  • Für die selbe Python-Version lassen sich standardmäßig Module nicht parallel lokal für einen Nutzer installieren, es ist nur eine von beiden Installationen möglich.
  • Wer verschiedene Versionen des gleichen Moduls braucht, muss ein "Virtual Environment" (venv) benutzen.

Update: Durch die Implementierung von PEP 668 verhindert Manjaro seit Anfang 2023 systemweite Installationen von Python-Paketen mit pip, um Konflikte mit dem Paketmanager zu vermeiden. Mit dem Flag '--break-system-packages' kann man die Einschränkung umgehen, jedoch wird dies dringend abgeraten. Die empfohlene Lösung ist die Nutzung von virtuellen Umgebungen, die eine isolierte und sichere Installation der benötigten Pakete ermöglichen. Beispiel zur Erstellung einer virtuellen Python-Umgebung im Projektverzeichnis "/home/jo/meinprojekt":

Wechsle in das Projektverzeichnis:
cd /home/jo/meinprojekt
Virtuelle Umgebung erstellen:
python -m venv envDiesen Schritt musst du nicht erneut ausführen, es sei denn, du möchtest die Umgebung neu erstellen.

Umgebung für bash/zsh aktivieren:
source env/bin/activateNach der Aktivierung erscheint "env" oder wie bei meiner zsh-Konfiguration (Prompt-Theme) der Name der virtuellen Umgebung (in diesem Fall "meinprojekt").

Jetzt kannst du Pakete mit pip installieren, ohne das System zu beeinflussen, z.B.:
pip install paketnameInstallierte Pakete wirken sich nur auf die virtuelle Umgebung aus.

Umgebung deaktivieren (nach Bedarf):
deactivate
Um dein Python-Skript in der virtuellen Umgebung auszuführen, kannst du entweder ein Shell-Skript erstellen oder eine Shebang-Zeile als erste Zeile in dein Python-Skript einfügen, z.B.:
#!/home/jo/meinprojekt/env/bin/python
print("Hallo aus der virtuellen Umgebung!")
Das Skript muss natürlich ausführbar sein, z.B.:
chmod +x mein_script1.py
Direkt ausführen mit:
./mein_script1.py
Python-pyqt5 is newer than extra
Obwohl ihr den stabilen Zweig (stable branch) nicht gewechselt habt, erscheint eine Warnung wie z.B. "python-pyqt5: local (5.15.6-7.1) is newer than extra (5.15.6-7)".
Dann kann es sein, dass die Paketbetreuer (Maintainer) das Paket in den Repositories auf eine höhere Version gesetzt haben. Dies geschieht manchmal, wenn ein größeres Problem gefunden wird, um die Verbreitung dieses Problems für die Benutzer zu begrenzen.
Wenn die neuere Version funktioniert, braucht ihr nichts zu tun. Die Meldung verschwindet von selbst, wenn das Paket in den Repositories aktualisiert wird.
Wenn die neuere Version nicht funktioniert, ihr mit den Repositories im Einklang bleiben wollt oder einfach nicht wollt das diese Warnung erscheint, könnt ihr das Paket herabstufen, indem ihr den Paketmanager zwingt, die Version aus den Repositories zu installieren:
sudo pacman -Syyuu
Überprüfe die PyQt5 Installation:
python -c "from PyQt5.QtCore import QT_VERSION_STR; print(QT_VERSION_STR)"
Dieses Paket kann zusätzlich für Anwendungen, die PyQt6 benötigen, installiert werden:
sudo pacman -S python-pyqt6Überprüfe die PyQt6 Installation:
python -c "from PyQt6.QtCore import PYQT_VERSION_STR; print(PYQT_VERSION_STR)"
Durch die Installation in der systemweiten Python-Umgebung stehen sowohl die PyQt5- als auch die PyQt6-Module allen Python-Anwendungen zur Verfügung, die diese Umgebung nutzen.

17 ) SSD optimieren
a) In der /etc/fstab dürfen die Optionen "space_cache" und "autodefrag" bei SSD's mit dem Filesystem btrfs nicht verwendet werden, jedoch noatime (Dateizugriffszeiten nicht speichern) und ssd.
(Der Kernel erkennt eine SSD automatisch wenn in der Datei /sys/block/<device>/queue/rotational eine "0" steht, setze die Option ssd sicherheitshalber dennoch)

Beispiel:
UUID=xxxx-xxxx                            /boot/efi      vfat    umask=0077 0 2
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /              btrfs  subvol=/@,defaults,discard=async,ssd,noatime 0 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /var/cache    btrfs  subvol=/@cache,defaults,discard=async,ssd,noatime 0 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /var/log      btrfs  subvol=/@log,defaults,discard=async,ssd,noatime 0 0
UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /home          btrfs  defaults,discard=async,ssd,noatime 0 0
tmpfs                                    /tmp          tmpfs  defaults,noatime,mode=1777 0 0

Prüfen ob die SSD TRIM (discard) unterstützt:
lsblk --discardDISC-GRAN und DISC-MAX Werte ungleich Null zeigen die TRIM-Unterstützung an. Manuelles trimmen:
sudo fstrim -a -v
Es ist besser manuelles TRIM zu verwenden, daher verwende ich die Option "discard" in der fstab nicht und habe den fstrim.timer systemd Service aktiviert (Standard wöchentlich):
sudo systemctl enable fstrim.timer(kann mit 'disable' wieder deaktiviert werden)

Timer prüfen (oder Systemeinstellungen -> Systemverwaltung -> Systemd -> Timers):
systemctl cat fstrim.timerLogdatei einsehen:
journalctl | grep fstrim
b) Der LINUX-Kernel stellt tmpfs bereit. Tmpfs unterscheidet sich von einer LINUX Ramdisk insofern, als Speicher dynamisch alloziert wird und weniger genutzte Seiten in einen Swap-Bereich ausgelagert werden können. Seit systemd ist kein Eintrag in der fstab nötig (Link) und benutzt tmpfs bis zur Hälfte des RAM. Prüfen ob Unit tmp.mount geladen ist:
sudo systemctl status tmp.mount
In der Regel ist hier keine Anpassung notwendig!

Habe bei 32 GB RAM etwas Feintunig per fstab gemacht:
kate /etc/fstab# dynamic RAMDisk
tmpfs /tmp tmpfs defaults,noatime,size=50%,mode=1777 0 0
tmpfs /var/tmp tmpfs defaults,noatime,size=5%,mode=0777 0 0
(noatime = Dateizugriffszeiten nicht speichern und die /tmp Verzeichnisse benutzen ein Sticky Bit, daher das "mode=1777")

Der /tmp Eintrag wird nach einem PC Neustart durch einen systemd-generator generisch erstellt (ansonsten gibt es diese Datei nicht), prüfen:
cat /run/systemd/generator/tmp.mount
Im Verzeichnis /var/tmp werden temporäre Dateien abgelgt die zwischen Systemneustarts erhalten bleiben (z.B. systemd). Da ich das nicht benötige lege ich diese Daten auch im RAM ab. Logs lege ich nicht ins RAM, da sonst mein Apache den Start verweigert. Grund: /var/log/httpd fehlt nach dem Startup. Also entweder das Startscript patchen oder es sein lassen. Davon abgesehen würde ich diese Logfiles ungern auf eine Ramdisk legen, da diese beim Neustart gelöscht werden.

Einstellung nach Neustart prüfen, z.B.:
df -htmpfs          794M  1,2M  792M  1% /tmp
tmpfs          199M    0  199M  0% /var/tmp
(ohne SWAP-Speicher könnte es trotz genug Arbeitsspeicher zu Problemen kommen)

c) Firefox Cache ins RAM verlegen und Sitzungswiederherstellung anpassen (gilt auch für auch Firefox-ESR und Pale Moon)

Browser starten und in der Adressleiste about:config eingeben.
Dann irgendwo auf dem leeren Bildschirm im Browser, unter about:config,
einen Rechtsklick ausführen und auf "Neu" klicken. Hier einen neuen String mit dem Namen browser.cache.disk.parent_directory und dem Wert /tmp erstellen.
Auch solltet ihr das Backup für die Sitzungswiederherstellung von 15 Sekunden auf 5 Minuten setzen. Sucht nach browser.sessionstore.interval und setzt den Wert von 15000ms auf 300000ms.
Das muss für jeden User wiederholt werden.

d) SMART Werte von NVMe SSD auslesen (z.B. Samsung 970 PRO):
sudo pacman -S nvme-clilisten:
sudo nvme listInfos lesen:
sudo nvme --smart-log /dev/nvme0n1
e) Eine "~/.xsession-errors" Datei wie unter Debian gibt es hier nicht mehr und ist nun systemd Sache, Log siehe ksystemlog.

f) Schneller Booten:
Das Linux-System rennt unter dem Hintergrundprogramm (Daemon) Systemd und systemd-analyze gibt eine Liste aller laufenden Units von systemd aus, sortiert nach der Zeit, die diese für die Initialisierung benötigt haben:
systemd-analyze blame(mit Q beenden)

Manche service Dienste werden sehr selten benötigt, z.B. ModemManager.service (Analog/UMTS Modem) oder der NetworkManager-wait-online.service (teilt Anwendungen mit ob eine Online-Verbindung besteht). Wer das nicht benötigt kann diese deaktivieren:
systemctl disable ModemManager.service
systemctl disable NetworkManager-wait-online.service
Sollte dann etwas nicht mehr funktionieren, lässt sich ein service mit enable einfach wieder aktivieren.

18 ) Kernel Crash?
Tipp zum Vorbeugen


Beispiel Manjaro-Einstellungsmanager mit LTS-Kernel 5.4.x und 4.19.x, nächste LTS-Kernel Version war 5.10, 5.15 und nun 6.1 (2023)
  • einen älteren LTS-Kernel als Fallback Kernel installieren!
  • bei einem Kernel Update Crash (z.B. Stromausfall), kann damit gebootet und eine komplette System-Aktualisierung gestartet werden, z.B.:

sudo pacman -Syyuu
sudo mkinitcpio -P
(mkinitcpio ist ein Programm zur initramfs-Erstellung)

wenn das nicht hilft oder ihr habt keinen anderen Kernel (Restore_the_GRUB_Bootloader):
  • starte PC mit dem USB-Stick, das Skript manjaro-chroot ist im Manjaro Live System verfügbar (Paket manjaro-tools-base)
  • bei btrfs Dateisystem werden"subvolumes" einghängt (siehe Link oben!), ansonsten:

su
manjaro-chroot -a
pacman-mirrors --country Germany,France,Austria && pacman -Syu grub
update-grub
exit
dann den PC ohne USB-Stick neu starten.


Tipps Logeinträge prüfen (Systemd)
Prüfen ob irgendwelche systemd-Dienste fehlgeschlagen sind:
systemctl --failed
Protokoll der letzten Updates:
grep -i upgraded /var/log/pacman.log
Fehler Protokoll seit gestern:
journalctl -p err --since yesterday(kernel: proc: Bad value for 'hidepid', kann ignoriert werden, siehe github systemd 16896)

Shutdown/Reboot-Protokoll vom letzten Bootvorgang:
journalctl -b -1 | grep -A999 "System is rebooting.\|System is powering down."
Journal Protokoll von - bis:
journalctl --since "20:00:40" --until "20:01:00"
Löschen aller Protokolldaten:
sudo journalctl --rotate
sudo journalctl --vacuum-time=1s
Der erste Befehl dreht die Protokoll-Dateien und erstellt neue. Der zweite Befehl löscht alle Protokolldaten, die älter als eine Sekunde sind. Du kannst die Zeitspanne nach Bedarf anpassen.

Ncdu Festplattenbelegung:
ncdu


19 ) VirtualBox installieren (Update 2024-November, V7.1.4)

Version des aktuellen Kernels ermitteln:
uname -r(Ausgabe z.B. "6.6.63-1-MANJARO")

VB installieren:
sudo pacman -S virtualbox virtualbox-guest-iso dkmsWählt die passenden Kernel-Module aus, in diesem Fall "linux66-virtualbox-host-modules", basierend auf der oben ermittelte Kernel-Version. Mit DKMS wird VirtualBox das Kernel-Modul bei zukünftigen Kernel-Updates automatisch neu kompilieren und einbinden.

Nach der Installation musst du das VirtualBox-Modul dem Kernel hinzufügen. Entweder durch einen Neustart des PCs oder manuell:
sudo modprobe vboxdrv
Wenn ein neuer Kernel installiert wird, sind die alten VirtualBox-Module möglicherweise nicht mehr kompatibel. In Manjaro kümmert sich das System normalerweise automatisch um die Aktualisierung und Verwaltung der Module. Das mhwd-System sollte die passenden Module für den neuen Kernel installieren, sodass du nach einem Kernel-Update in der Regel nicht manuell eingreifen musst.

Um USB-Geräte in VirtualBox verwenden zu können, füge deinen Benutzer zur Gruppe vboxusers hinzu:
sudo gpasswd -a $USER vboxusers(entfernen mit: sudo gpasswd -d $USER vboxusers)

Die Gasterweiterungen müssen einmalig in den Einstellungen unter "Massenspeicher" als optisches Laufwerk eingebunden werden und sollten sich unter folgendem Pfad befinden:
/usr/lib/virtualbox/additions/VBoxGuestAdditions.iso
Das optionale Oracle VirtualBox Extension Pack ist keine Open-Source-Software und fügt zusätzliche, proprietäre Features wie VRDP, PXE-Boot und Verschlüsselung für VMs hinzu. Wer diese Funktionen nicht benötigt, kann darauf verzichten. Ab VirtualBox Version 6.1 sind grundlegende USB 2.0- und USB 3.0-Funktionen auch ohne das Extension Pack verfügbar. Die passende Version des "Oracle VirtualBox Extension Pack-x.x.x" könnt ihr hier herunterladen und installieren: Oracle_VM_VirtualBox_Extension_Pack-x.x.x.vbox-extpack


Funktioniert auch per Konsole. Namen der Erweiterungspakete anzeigen, die derzeit installiert sind:
VBoxManage list extpackswenn vorhanden altes Erweiterungspaket löschen, z.B. (Name evtl. anpassen, siehe "Pack no."):
sudo VBoxManage extpack uninstall "Oracle VirtualBox Extension Pack"dann das neue Erweiterungspaket installieren, z.B.:
sudo VBoxManage extpack install Oracle_VirtualBox_Extension_Pack-7.1.4.vbox-extpackoder in einem Befehl wenn die Datei im Ordner Downloads ist:
sudo VBoxManage extpack install --replace ~/Downloads/Oracle_VirtualBox_Extension_Pack-7.1.4.vbox-extpack
Nachtrag: Das Extension Pack ist auch in den offiziellen Softwarequellen (extra) verfügbar und kann folgendermaßen installiert werden:
sudo pacman -S virtualbox-ext-vncZum Deinstallieren verwende den folgenden Befehl:
sudo pacman -Rns virtualbox-ext-vnc
Einfrieren beim Starten einer virtuellen Maschine mit einer Intel-CPU Generation 12/13
Bei einer Intel Alder Lake und neuem Raptor Lake CPU konnte ich die VM nicht starten (Starting Virtual Machine 20%), habe dazu nur diesen workaround gefunden und in Grub diesen Kernel Parameter eingetragen:
GRUB_CMDLINE_LINUX="ibt=off"
Im Linux-Kernel wurde von Intel-Ingenieuren und anderen viel an der Unterstützung von ITB (Indirect Branch Tracking) gearbeitet und anscheinend in Linux 6.1 integriert. Bei CPUs, die nicht über die Hardware-Fähigkeit für IBT als Teil der Control-flow Enforcement Technology verfügen, sollen keine Verhaltensänderung bemerken, aber bei neueren CPUs ist dies eine gute Voreinstellung als eine weitere Ebene des hardwarenahen Sicherheitsschutzes. Anscheinden kommt die derzeitge VirtualBox damit nicht klar :-\



20 ) WEBSERVER (Apache, PHP 8 und MariaDb) installieren
Benutze ich nur um CMS-Seiten LOKAL zu testen. Mein online Server rennt natürlich nur im FastCGI-Mode ohne Desktop Umgebung und die CMS ist entsprechend 'gehärtet' und immer aktuell!

Pakete für Webserver installieren:
sudo pacman -S mariadb php php-apache phpmyadmin php-gd php-imagick
WICHTIG!
Wenn sich die Datenbank (/var/lib/mysql) in einem btrfs-Dateisystem befindet, sollte das Copy-on-Write für dieses Verzeichnis deaktiviert werden, bevor eine Datenbank erstellt wird (Quelle). So wird das copy-on-write für das Verzeichnis und Dateien deaktiviert (no-COW).
Prüfe ob Ordner leer ist:
sudo ls -all /var/lib/mysql/dann:
sudo chattr +C /var/lib/mysql
Wenn nicht leer, hilft dieser Trick um das nachträglich zu tun (als su):
sudo systemctl stop mysqld
mv /var/lib/mysql /var/lib/mysql_old
mkdir /var/lib/mysql
chattr +C /var/lib/mysql
cp -a /var/lib/mysql_old/* /var/lib/mysql
chown -R mysql:mysql /var/lib/mysql
sudo systemctl restart mysqld
wenn das funktioniert hat:
rm -rf /var/lib/mysql_old
MariaDB (MySQL) initialisieren:
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
MariaDB starten und beim Booten starten:
sudo systemctl start mysqld
sudo systemctl enable mysqld
MariaDB Status prüfen:
systemctl status mysqld(Abbruch mit Strg & C )

Eigentlich sollte es mit dem Script "mysql_secure_installation" ohne MySQL-Passwort weiter gehen, jedoch hat das bei mir seit MariaDB noch nie funktioniert. Also erst das MySQL Passwort setzen (MariaDB 10.1.20 und neuer):
sudo mysql
MariaDB [(none)]> USE mysql;
MariaDB [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinPASSWORT';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

und die MySQL Installation mit diesem Script abschließen (wichtig!):
mysql_secure_installation(Abbruch mit Strg & C )

Hinweis: Sollte das Script euer MySQL Passwort nicht annehmen, hilft eine Reset (sonst überspringen):
sudo mysqld_safe --skip-grant-tables &
sudo mysql -u root
dann:
MariaDB [(none)]> use mysql;
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MeinPASSWORT';
MariaDB [(none)]> exit
Prüfen, reparieren und optimieren der Tabellen:
sudo killall -9 mysqld
sudo mysqlcheck -A --auto-repair -u root -p
sudo mysqlcheck -A --auto-repair -f -o -u root -p

Installation mit diesem Script abschließen (wichtig!):
mysql_secure_installationAls erstes werdet ihr nach den MySQL root Passwort gefragt.
Dann bei der Frage "Switch to unix_socket authentication" per 'n' weiter und bei "You already have your root account protected" auch mit 'n' weiter. Als nächstes sollte auf jeden Fall der Anonymous User entfernt werden wenn der Server produktiv eingesetzt wird. Im nächsten Schritt sollte dem root User das Recht genommen werden sich über das Netzwerk anzumelden (ich arbeite nur lokal). Zusätzlich zum Anonymous User gibt es eine Testdatenbank die entfernt werden sollte. Am Ende werden die Berechtigungen neu geladen.

Wenn nachträglich Anpassungen vorgenommen werden müssen, MariaDB aktualisieren:
sudo su
systemctl restart mariadb.service && mariadb-upgrade -u root -p
exit
(Wichtig, obigen Befehl als root ausführen, sonst gibt es diesen Fehler: Could not create the upgrade info file '/var/lib/mysql/mysql_upgrade_info' in the MariaDB Servers)

Die Apache Datei httpd.conf konfigurieren:
kate /etc/httpd/conf/httpd.conf
Wenn Server nur lokal erreichbar sein soll:
Listen 127.0.0.1:80
Diese Zeilen mit einer Raute (#) auskommentieren:
#LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule authn_file_module modules/mod_authn_file.so
#LoadModule mpm_event_module modules/mod_mpm_event.so
Diese Zeile aktivieren (Raute entfernen):
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
Diese Zeilen am Ende hinzufügen:
LoadModule php_module modules/libphp.so
AddHandler php-script .php
Include conf/extra/php_module.conf
Include conf/extra/phpmyadmin.conf
und prüfen ob diese Module aktiviert sind:
LoadModule userdir_module modules/mod_userdir.so
LoadModule rewrite_module modules/mod_rewrite.so

dann phpmyadmin.conf anlegen:
kate /etc/httpd/conf/extra/phpmyadmin.confAlias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
<Directory "/usr/share/webapps/phpMyAdmin">
    DirectoryIndex index.php
    AllowOverride All
    Options FollowSymlinks
    Require local
</Directory>
Info "Require all granted" nur wenn nicht Lokal!

php.ini konfigurieren:
kate /etc/php/php.iniDiese Zeilen prüfen/anpassen/aktivieren:
date.timezone = Europe/Berlin
extension=gd
extension=exif
extension=iconv
extension=pdo_mysql
extension=mysqli
open_basedir = /srv/http/:/var/www/:/home/:/tmp/:/var/tmp/:/var/cache/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/
session.gc_probability = 1
upload_max_filesize = 20M
max_file_uploads = 40

config.inc.php konfigurieren:
kate /etc/webapps/phpmyadmin/config.inc.phpHier ein 32 stelliges Passwort zur Cookie-Authentifizierung setzen, z.B.:
$cfg['blowfish_secret'] = 'seit_phpMyAdmin504istdasPflicht'; /* This is needed for cookie based authentication to encrypt password in cookie. Needs to be 32 chars long. */
Apache starten und beim Booten starten:
sudo systemctl restart httpd
sudo systemctl enable httpd

Apache Status prüfen:
systemctl status httpd(Abbruch mit Strg & C )

Listet PHP Module:
php -m
Apache/PHP Error Log:
kate /var/log/httpd/error_log
PHP Info Datei erstellen und speichern:
kate /srv/http/phpinfo.php<?php
phpinfo
();
?>
dann im Browser http://localhost/phpinfo.php öffnen, PHP Version und Konfiguration sollte angezeigt werden.

phpMyAdmin ist eine freie Webanwendung zur Administration von MySQL-Datenbanken und MariaDB, im Browser http://localhost/phpmyadmin/ öffen.



Wenn die Fehlermeldung "Auf das $cfg['TempDir'] (/usr/share/webapps/phpMyAdmin/tmp/) kann nicht zugegriffen werden. PhpMyAdmin kann keine Templates zwischenspeichern und ist daher langsam." kommt, den Temp Ordner anlegen und "http" als Besitzer und Gruppe setzen (chmod 777 is dann nicht notwendig):
sudo mkdir /usr/share/webapps/phpMyAdmin/tmp/
sudo chown -R http:http /usr/share/webapps/phpMyAdmin/tmp/

Sollte die Meldung "Der phpMyAdmin-Konfigurationsspeicher ist nicht vollständig konfiguriert, einige erweiterte Funktionen wurden deaktiviert..." kommen, fehlt wahrscheinlich die Datenbank ,,phpmyadmin". Dann einfach mit diesem Link die Datenbank ,,phpmyadmin" anlegen und die Konfigurationsspeicher-Tabellen einrichten: http://localhost/phpmyadmin/index.php?route=/check-relations.

Eine andere mögliche Lösung für dieses Problem ist, eine neue Datenbank manuell in phpMyAdmin zu erstellen und dann die Konfigurationsspeicher-Tabellen darin einzurichten: Öffne phpMyAdmin und klicke auf Registerkarte "Datenbanken" oben auf dem Bildschirm. Gebe als Name "phpmyadmin" für die neue Datenbank ein und stelle die Codierung auf "utf8mb4_general_ci". Klicke auf "Erstellen", um die neue Datenbank zu erstellen. Wechsel zur Registerkarte "Importieren" oben auf dem Bildschirm und wähle die Datei "create_tables.sql" im phpMyAdmin-Installationsverzeichnis aus (/usr/share/webapps/phpMyAdmin/sql/), klicke auf "OK", um die Konfigurationsspeicher-Tabellen in der neuen Datenbank zu erstellen.




"User directories" aktivieren ~/public_html
(möchte mein CMS nicht im Ordner /var/www/ testen, sondern in meinem /home)
kate /etc/httpd/conf/extra/httpd-userdir.confDieser Bereich sollte so aussehen:
UserDir public_html
#
# Control access to UserDir directories. The following is an example
# for a site where these directories are restricted to read-only.
#
<Directory "/home/*/public_html">
    DirectoryIndex index.php index.html
    AllowOverride All
    Options MultiViews SymLinksIfOwnerMatch IncludesNoExec
    Require method GET POST OPTIONS
</Directory>
Habe das "Directory Listing" des Apache-Webservers deaktiviert, also "Indexes" entfernt (Zugriff auf alle Unterverzeichnisse werden verwehrt).

Ordner public_html erstellen und Berechtigungen anpassen:
mkdir ~/public_html
chmod 775 ~/public_html
chmod 755 ~
Apache neustarten:
sudo systemctl restart httpd
PHP Info Datei erstellen und speichern:
kate ~/public_html/phpinfo.php<?php
phpinfo
();
?>
dann im Browser "http://localhost/~BENUTZERNAME/phpinfo.php" öffnen, PHP Version und Konfiguration sollte angezeigt werden.



Dateien die der Webserver erzeugt oder ändert (z.B. ein CMS) sind nur für Mitglieder der Gruppe 'http' (bei Debian 'www-data') schreibbar. Um diese Dateien zu beschreiben, den Benutzer zu dieser Gruppe hinzufügen (Neustart notwendig):
sudo gpasswd -a $USER http(entfernen mit: sudo gpasswd -d $USER http)

Berechtigungen für home und public_html anpassen/prüfen, die Reihenfolge ist wichtig:
sudo chown -R $USER:$USER ~/
find ~/ \( -type d -exec chmod 755 {} + \) -or \( -type f -exec chmod 644 {} + \)
find ~/public_html/ \( -type d -exec chmod 775 {} + \) -or \( -type f -exec chmod 664 {} + \)
sudo chown -R http:http ~/public_html
AppImage und ShellScript ausführbar machen:
chmod +x ./*.AppImage
chmod +x ./*.sh
prüfen:
find ~ ! -user $USER -lsdas sollte nur Dateien aus dem Ordner public_html auflisten.


21 ) Paketliste und System wiederherstellen
Kontrollieren ob/wann/was über dem Packetmanager de-/installiert wurde findet ihr in der pacman.log (Chronik):
less /var/log/pacman.logoder mit einem Filter, z.B.:
grep "ALPM] installed" /var/log/pacman.logoder per pamac-gui im Menü -> "Chronik anzeigen", zeigt dann die Pamac Historie in einem Fenster.

Paketliste erstellen (Quelle)
Erstellt eine Liste von Paketen ohne (q) Versionsnummer aus, die ausdrücklich installiert wurden und nicht von anderen als Abhängigkeit benötigt werden:
pacman -Qeqt > paketliste.txt
System wiederherstellen. Man sollte diese Wiederherstellung möglichst in einem "frischen" System vornehmen (direkt nach der Basisinstallation).
pacman -S $(cat paketliste.txt)

22 ) KWalletManager: Passwörter aus Backup wiederherstellen
Die Wallet-Dateien, kdewallet.kwl und kdewallet.salt, befinden sich im Ordner ~/.local/share/kwalletd/ und können aus einem Backup wieder hergestellt werden.



ANHANG: Neuinstallation auf bestehendes LINUX ohne die /home Partition zu formatieren

Vorteil: Alle Dateien und Einstellungen bleiben erhalten - ohne Gewähr!
Gründe: Entweder weil eine Neuinstallation ratsam ist, ihr euer Linux zerschossen habt oder zu Linux Manjaro wechseln wollt, oder...

Voraussetzungen:
  • ihr kennt die Rechteverwaltung im Linux-Dateisystem (chown & chmod) - viele Probleme entstehen wenn Dateien im /home Ordner z.B. root gehören
  • Einstellungsdateien auf Standard setzen (reset) oder aus einem Backup wiederherstellen ist kein Problem für euch
  • nutzt die gleiche Desktop-Umgebung und Version - kein muss wenn nur kompatible Einstellungsdateien wiederhergestellt werden
  • /home ist auf einer eigenen Partition
  • Backup ist vorhanden und ihr wisst wie ein Restore funktioniert (wenn was schief läuft)

Prüfen ob die /home Dateien euch gehören, ausser ihr nutzt z.B. einen lokalen Webserver (siehe oben):
find ~ ! -user $USER -ls(Ausgabe sollte leer sein)
ansonsten:
sudo chown -R $USER:$USER ~/(Alle Dateien in /home/[Benutzer] gehören dann euch)
chmod anpassen, alle Ordner 755 und Dateien 644:
find ~/ \( -type d -exec chmod 755 {} + \) -or \( -type f -exec chmod 644 {} + \)AppImage und ShellScript ausführbar machen:
chmod +x ./*.AppImage
chmod +x ./*.sh

Backups von allen meinen Dokumenten und Einstellungen erstelle ich auf einer externen Festplatte oder NAS (verschlüsselt) mit BackInTime und von root reicht mir ein Snapshot pro Woche per Timeshift (Backup Ort: /run/timeshift/). Snapshots sind keine Sicherungskopien im Sinne von Backups! Halte diese Snapshots oder ein Root Backup auf einer anderen Festplatte oder NAS für nicht wichtig, da das mit einem Live System notfalls schnell wieder hergestellt ist, besonders wenn /home auf einer extra Partition ist. Wer kein Backup hat oder zusätzlich ganz sicher gehen will und ein zusätzliches Backup auf einer externen Festplatte erstellen will, kann das wie hier beschrieben per Terminal vor der Neuinstallation tun. Ansonsten könnt ihr die "Vorbereitung" überspringen.

VORBEREITUNG

a) Mit der KDE-Partitionsverwaltung eine externe USB-Festplatte formatieren, wenn noch nicht getan: Dateiformat ext4 und als Bezeichnung z.B. "Backup_ext4". Wenn ihr das Backup behalten wollt sollte die Festplatte mit LUKS verschlüsselt werden. Jedoch wäre dieses Backup schnell zu alt, daher würde ich solch eine verschlüsselte Festplatte nur mit einem Backup-Werkzeug wie z.B. BackInTime oder Timeshift nutzen.

Nach dem die Festplatte formatiert ist, die Zugriffsrechte per Terminal setzen (damit kein sudo notwendig ist). Pfad und Benutzername anpassen, bei mir ist der Benutzername jo:
sudo chown $USER:$USER /run/media/jo/Backup_ext4
sudo chmod 755 /run/media/jo/Backup_ext4

b) alle Dateien auf Backup Festplatte kopieren:
cp -arv ~/* /run/media/jo/Backup_ext4Hinweis: Wenn ihr Plasma Vault nutzt und diese(n) Ordner geöffnet habt, werden Dateien unverschlüsselt auf die Backup Festplatte geschrieben. Verschlüsselte Dateien liegen im versteckten Ordner "~/.local/share/plasma-vault/". Daher halte ich Plasma Vault beim Backup erstellen geschlossen (Settings: ~/.config/plasmavaultrc).

c) alle versteckte Dateien (Einstellungen) auf Backup Festplatte kopieren (ich lösche erst die Cache Dateien):
sudo rm -r ~/.cache/cp -arv ~/.[!.]* /run/media/jo/Backup_ext4/Dann die Backup Festplatte aushängen und sicher verwahren bis nach der Neuinstallation.

NEUINSTALLTION BEGINNEN

d) PC mit einem aktuellen Live-Image starten und Manjaro installieren. Beim installieren darf "/home" nur eingebunden und nicht formatiert werden! WICHTIG: Benutzername und Passwort muß identisch mit der alten Version sein!

e) Bei einem Kubuntu System hatte ich so Manjaro KDE installiert, in dem Fall findet ihr die alten Daten unter "/home/@home/[Benutzername]"
Diese Daten solltet ihr z.B. mit Dolphin ohne Root-Rechte in euren neuen Ordner "/home/[Benutzername]" kopieren oder verschieben.
Wenn die neue Desktop-Umgebung nicht zum alten Desktop passt oder zu alt ist, kopiere ich mit dem Dolphin oder Double Commander (doublecmd) nur versteckte Dateien zurück die Sinn machen (evtl. Schlüsselbund, Browser, E-Mail oder FileZilla Einstellungen).

Nach einem Ab- und Anmelden sollten alle Einstellungen wie vor der Neuinstallation konfiguriert sein.
Dann den alten Ordner "@home" löschen, fehlende Pakete nach installieren und Grub und SWAP konrollieren bzw. anpassen (siehe oben).

Bei dem Kubuntu zu Manjaro KDE Umzug wollte kwallet das WiFi Passwort nicht speichern, hier hatte ein kwallet-Reset geholfen:
rm -r ~/.local/share/kwalletd/
f) Wenn was schief gelaufen ist:
Stellt alle Daten aus dem Backup per Dolphin oder Terminal wieder her. Alle Dateien per Terminal zurück kopieren:
yes | cp -rv /run/media/jo/Backup_ext4/* ~/Daten werden ohne Rückfrage überschrieben!

Alle versteckte Ordner und Dateien wieder herstellen:
yes | cp -rv /run/media/jo/Backup_ext4/.[!.]* ~/Daten werden ohne Rückfrage überschrieben!
Wenn die neue Desktop-Umgebung nicht zum alten Desktop passt oder zu alt ist, kopiere ich mit dem Dolphin oder Double Commander (doublecmd) nur versteckte Dateien zurück die Sinn machen (evtl. Schlüsselbund, Browser, E-Mail oder FileZilla Einstellungen).

:dance:



mehr Tipps:

Schneller Konsolenstart per "Strg" & "Alt" & "T"

Eine erneute Synchronisation mit den Manjaro-Repository-Servern durchführen
Manjaro- und Arch-Benutzer verfügen über einen Sicherheitsschlüsselring auf ihrem Rechner, um sicher Pakete aus den Manjaro- und Arch-Repositories herunterzuladen, ohne dass diese Pakete durch einen Man-in-the-Middle-Angriff manipuliert werden können. Wenn ein Benutzer sein System lange Zeit nicht aktualisiert, kann dieser Schlüsselring manchmal ablaufen. Der Schlüsselbund kann auch aus irgendeinem Grund beschädigt werden. Um grundlegende Probleme mit dem Schlüsselbund zu lösen, gehen ihr wie folgt vor (dauert etwas):
sudo pacman-key --init
sudo pacman-key --populate archlinux manjaro
sudo pacman-key --refresh-keys
sudo pacman -Syyuu
Vergewissert euch, dass die Systemzeit richtig eingestellt ist! Die drei Befehle sollten die meisten Probleme mit dem Schlüsselbund lösen, mehr siehe wiki.manjaro.org.

Cache leeren, um Upgrade-Probleme zu beheben
Diese Lösung kann auch Probleme mit KDE 6- und Qt6-Anwendungen beheben, die nach einem Update nicht korrekt aussehen.
rm ~/.config/Trolltech.conf
kbuildsycoca6 --noincremental

Qt speichert Konfigurationsinformationen in "~/.config/Trolltech.conf" und legt diese nach dem löschen wieder neu an, "kbuildsycoca6 --noincremental" erstellt den Zwischenspeicher vollständig neu für die Systemeinstellungen der KService-Desktop-Dateien. Mehr dazu siehe: KDE - ArchWiki - Configuration related (eng)

KDE-Kontrollleiste oder Miniprogramme aus versehen gelöscht? Einfach aus einem Backup wiederherstellen, Ort:
~/.config/plasma-org.kde.plasma.desktop-appletsrc
Der Plasma Haftnotiz Text wird hier gespeichert:
~/.local/share/plasma_notes/
Oder Originalzustand des KDE-Plasma 6 Desktops wiederherstellen:
kquitapp6 plasmashell
rm ~/.config/plasma-org.kde.plasma.desktop-appletsrc
rm ~/.config/plasmashellrc
rm ~/.config/plasmarc
plasmashell & disown
Der KDE-Desktop startet mit den Standardeinstellungen und die gelöschten Dateien werden neu angelegt.

Kompletten Ordner ~/.config aus einem Backup (z.B. BackInTime) wiederherstellen.
Erst BackInTime GUI starten und den .config Ordner, aus dem letzen Backup, zum Wiederherstellen vorbereiten (markieren). Dann euren KDE-Desktop beenden und den Ordner .config löschen:
backintime-qt
kquitapp6 plasmashell
rm -r ~/.config
Danach den .config Ordner aus dem Backup per BackInTime wieder herstellen und den KDE-Desktop wieder starten:
plasmashell & disown
VLC Autostart deaktivieren. Beim Einhängen einer externen Festplatte startete VLC und wollte alle Dateien öffnen und verursachte daher jede Menge Fehlermeldungen. Irgendwie hatte ich mein VLC verhext und auch ein Reset (vlc –reset-config) half nicht. Die Datei ~/.config/mimeapps.list gibt an, welche Anwendung per Vorgabe zum Öffnen spezifischer MIME-Typen registriert ist und lässt sich bei Bedarf mit einem Editor bearbeiten. Per Kate hatte ich die VLC Linien bis auf "audio/mpeg=vlc.desktop;" gelöscht und es herrscht wieder Ruhe:
kate ~/.config/mimeapps.listWenn das nicht hilft, kann man diese aus einem Backup wieder herstellen oder einfach löschen. Standard-Anwendungen müssen dann evtl. wieder angepasst werden.

Problem mit SDDM, bei einer Neuinstallation mit vorhandener /home Partition erschien diese Fehlermeldung:
Configuration file "var/lib/sddm/.config/sddm-greeterrc" not writeableGrund: Nicht alle Dateien hatten dem User sddm gehört, Lösung:
sudo chown -R sddm:sddm /var/lib/sddm/
AUR Pamac Update Problem, z.B. wenn "https://aur.manjaro.org/packages-meta-ext-v1.json.gz: Nicht akzeptables TLS-Zertifikat":
Versuche die Datei packages-meta-ext-v1.json.gz in /var/tmp/pamac-build-[UserName] zu löschen, dann solte es gehen, z.B.:

sudo rm -R /var/tmp/pamac-build-jo/packages-meta-ext-v1.json.gz
pamac update --force-refresh
pamac upgrade -a

Wayland
Das KDE-Team hat kontinuierlich daran gearbeitet, Plasma unter Wayland voll funktionsfähig zu machen, und sie haben bedeutende Fortschritte gemacht. Es gibt viele Verbesserungen und neue Funktionen, die speziell für Wayland entwickelt wurden, einschließlich besserer Unterstützung für Touchscreens und Verbesserungen bei der Leistung und Stabilität. Falls Wayland noch nicht auf deinem System installiert ist, kannst du es problemlos nachinstallieren. Bei der nächsten Anmeldung hast du dann die Möglichkeit, zwischen X11 und Wayland zu wählen.
sudo pacman -S wayland


Feiertage Deutschland könnt ihr auf feiertage-deutschland.de/kalender-download als iCalendar-Datei (.ics) downloaden und in alle gängigen Kalenderprogramme einbinden. Der Kalender umfasst alle bundes- und landesweiten Feiertage bis 2035. Wichtig: Beim Importieren der ICS-Datei erst einen neuen Kalender anlegen, damit sich die Daten später einfacher löschen lassen.

iPhone_iFuse_SH.zip iPhone_iFuse_SH.zipiPhone_iFuse_SH.zipiPhone_iFuse_SH.zip