Neuigkeiten:

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

Hauptmenü

Neueste Beiträge

#41
LINUX / proposed Quellen
Letzter Beitrag von Jo - 2018-01-27 | 21:51:32
"proposed" -Quellen -> Vorabveröffentlichte Aktualisierungen

Pakete aus den "proposed"-Quellen haben auf Produktiv-Systemen nichts zu suchen!
Diese können fehlerhaft sein oder fehlerhafte Abhängigkeiten haben und damit das gesamte System unbrauchbar machen!

Nun ich weiß das, jedoch ist mir dieses unabsichtlich dann doch passiert. Eine Checkbox zu viel angeklickt und beim nächsten Update ist es passiert ;-(

Mit Pinning gibt es eine einfache Möglichkeit diese ungewollte Upgrades auf Pakete aus den proposed-Quellen rückgängig zu machen - also downzugraden. Quelle: Von proposed-Quellen downgraden
Hinweis: Bei mir war das nicht der Ordner preferences sondern preferences.d (also vorher prüfen!)

Zuerst habe ich die proposed-Quelle per synaptic gelöscht und dann die Datei /etc/apt/preferences.d/no-propose angelegt:

VISUAL=kate sudoedit /etc/apt/preferences.d/no-propose
Package: *
Pin: release a=xenial*
Pin-Priority: 1001

(xenial für Ubuntu 16.04, wenn ihr Ubuntu 18.04 nutzt muss das duch bionic ersetzt werden)

dann
sudo apt update; sudo apt upgrade; sudo apt dist-upgrade

Nachdem die Paketversionen korrigiert wurden, sollte die Pinning-Datei wieder entfernt werden, damit irgendwann in Zukunft ein Upgrade auf eine neuere Ubuntu-Version ohne Probleme möglich ist.
sudo rm /etc/apt/preferences.d/no-propose


:-[


#42
LINUX / KDE neon LOG
Letzter Beitrag von Jo - 2017-11-16 | 19:39:33
KDE neon Logbuch


2020-01-19: Denke das war es (für mich)
KDE neon will ein immer aktueller Desktop auf Basis von Ubuntu LTS sein.
Wenn ich mir meine Liste hier anschaue, ist das gescheitert? Schade   ^-^

Ich bleibe bei meiner Meinung, für ein produktives System empfehle ich immer noch das Linux MINT (das bessere Ubuntu). Ich nutze nun Manjaro, ein stabiles Rolling-Release System (Cutting Edge) welches das Zeug für ein produktives System hat, ohne AUR auf jeden Fall. Mal sehen...



2019-12-15 (KDE neon 5.17.4)
Synaptic zeigt pulseaudio Pakete in der Statusanzeige als "lokal oder veraltet" an.

Lösung: Die Pakete deinstallieren und sofort wieder installieren.
sudo apt remove pulseaudio pulseaudio-utils libpulse0
kopiert euch die Pakete die ENTFERNT werden und installiert diese danach sofort wieder, bei mir war das:
sudo apt install pulseaudio pulseaudio-utils browser-plugin-vlc devede dolphin ffmpeg gambas3 gambas3-gb-sdl gambas3-gb-sdl-sound gambas3-gb-sdl2 gambas3-gb-sdl2-audio gimp gimp-gmic gimp-plugin-registry gstreamer1.0-plugins-bad gstreamer1.0-pulseaudio gwenview k3b k3b-i18n kde-runtime kdeconnect kdelibs5-plugins kdemultimedia-kio-plugins kdenlive khelpcenter kid3-core kid3-qt kinfocenter kio-audiocd kio-extras konsole kwave kwin kwin-addons kwin-common kwin-wayland kwin-wayland-backend-drm kwin-x11 language-pack-kde-de libasound2-plugins libavdevice57 libfluidsynth1 libgegl-0.3-0 libkf5compactdisc5 libkf5khtml-bin libkf5khtml5 libkf5notifyconfig5 libkf5pulseaudioqt2 libkhtml5 libknotifyconfig4 libmikmod3 libmlt++3 libmlt6 libokular5core9 libphonon4 libphonon4qt5-4 libphonon4qt5-bin libplasma3 libpulse-mainloop-glib0 libpulse0 libqt5multimedia5 libqt5multimedia5-plugins libqt5multimediagsttools5 libqt5multimediaquick5 libqt5multimediawidgets5 librtaudio6 libsdl-image1.2 libsdl-mixer1.2 libsdl-ttf2.0-0 libsdl1.2debian libsdl2-2.0-0 libsdl2-image-2.0-0 libsdl2-mixer-2.0-0 libsdl2-ttf-2.0-0 liquidsoap-plugin-pulseaudio melt mencoder mplayer neon-desktop okular okular-extra-backends phonon phonon4qt5-backend-vlc pingus plasma-desktop plasma-scriptengine-javascript plasma-widgets-addons plasma-workspace plasma-workspace-wayland powerdevil qml-module-qtmultimedia sddm-theme-breeze virtualbox virtualbox-qt vlc vlc-plugin-base winff winff-gtk2

Der Firefox wurde auch installiert, obwohl ich den nicht nutze. Da der Amarok seit Qt 5.13 nicht mehr funktioniert, habe ich diese Pakete gelöscht:
sudo apt purge --auto-remove amarok* xul-ext-ubufox firefox

dann noch ein Full-Update, aufräumen und zurückgebliebene Konfigurationen löschen*:
sudo apt update; sudo apt upgrade; sudo apt full-upgrade
sudo apt clean; sudo apt autoclean; sudo apt-get -f install; sudo apt clean; sudo apt autoremove --purge
sudo apt purge `dpkg -l | grep ^rc | awk '{print $2}'`


*oder mit KDEtweaks




2019-10-19 (KDE neon 5.17)
Synaptic zeigt das Dummy Paket k3b-i18n in der Statusanzeige als "lokal oder veraltet" an.
Lösung: Das Paket deinstallieren und 2 sofort wieder installieren.

sudo apt remove k3b-i18n
sudo apt install k3b-i18n language-pack-kde-de
sudo apt update; sudo apt upgrade; sudo apt full-upgrade





2019-10-04 (KDE neon 5.16.5)
Ich nutze Flatpak z.B. für Roger Router 2.1.5 und ein Update per "sudo flatpak update", bringt den Fehler:
Zitat
Looking for updates...
Installing in system:
org.freedesktop.Platform.openh264/x86_64/19.08 flathub 563e6c1a7173
Installieren: org.freedesktop.Platform.openh264/x86_64/19.08 von flathub
Warnung:  installieren org.freedesktop.Platform.openh264/x86_64/19.08 fehlgeschlagen: runtime/org.freedesktop.Platform.openh264/x86_64/19.08 verlangt eine neuere Version von flatpak (1.4.2;1.2.5;1.0.9;)
Done

Lösung: Meine Version 1.0.8 ist also zu alt. Habe per PPA Flatpak aktualisiert, hat bei mir dann die Version 1.4.3 installiert und alles funktioniert wieder.

sudo add-apt-repository ppa:alexlarsson/flatpak
sudo apt update; sudo apt upgrade; sudo apt full-upgrade
sudo flatpak install org.freedesktop.Platform/x86_64/19.08
sudo flatpak update -y





2019-09-26 (KDE neon 5.16.5)
Synaptic zeigt libphonon4 und phonon in der Statusanzeige als "lokal oder veraltet" an.
Lösung: Pakete deinstallieren und sofort wieder installieren.

sudo apt remove libphonon4 phonon
sudo apt install amarok amarok-utils kde-runtime kdelibs5-plugins libkhtml5 libknotifyconfig4 libphonon4 libplasma3 phonon plasma-scriptengine-javascript
sudo apt update; sudo apt upgrade; sudo apt full-upgrade





2019-09-11 (KDE neon 5.16.5)
Bei einem anderen Rechner kam folgende Meldung beim Update:
ZitatFehler traten auf beim Bearbeiten von:
appimagelauncher
E: Sub-process /usr/bin/dpkg returned an error code (1)
.....

Lösung: dpkg-dev (Debian-Werkzeuge für die Paketerstellung) installieren. Seltsam, bei den anderen Rechner war das installiert.
sudo apt install dpkg-dev
sudo apt update; sudo apt upgrade; sudo apt full-upgrade





2019-09-07 (KDE neon 5.16.5)
Synaptic zeigt libsnmp-base und libsnmp30 in der Statusanzeige als "lokal oder veraltet" an.
Lösung: Pakete deinstallieren und sofort wieder installieren.

sudo apt remove libsnmp-base libsnmp30
sudo apt install libsnmp-base libsnmp30 hplip libhpmud0 libsane-hpaio libsnmp-base libsnmp30 printer-driver-hpcups printer-driver-postscript-hp
sudo apt update; sudo apt upgrade; sudo apt full-upgrade





2019-07-14 (KDE neon 5.16.3)
Synaptic zeigt KWin in der Statusanzeige als "lokal oder veraltet" an.
Lösung: Paket deinstallieren und sofort wieder installieren.

sudo apt remove kwin
sudo apt install kwin
sudo apt update; sudo apt upgrade; sudo apt full-upgrade





2019-05-20 (KDE neon 5.15.5)
Synaptic zeigt libnm0 und network-manager in der Statusanzeige als "lokal oder veraltet" an.
Lösung: Pakete deinstallieren und sofort wieder installieren.

sudo apt remove libnm0 network-manager
sudo apt install libnm0 network-manager network-manager-pptp plasma-nm
sudo apt update; sudo apt upgrade; sudo apt full-upgrade

(Networkmanager für die Task List: plasma-nm)




2019-03-21 (KDE neon 5.15.3)
Neuen PC mit KDE neon 5.15.3 aufgesetzt, beim starten kommt Fehlermeldung:
UNIT                            LOAD     ACTIVE       SUB     DESCRIPTION
neon-update-kf5-snap.service    loaded   failed       failed  Remove kde-frameworks-5 snap if it is unused

OK, dann machen wir das so (nutze keine snaps):
systemctl disable neon-update-kf5-snap.service

btw: neuer PC ist ein Intel Core i7-8700T CPU mit 32GB DDR4 Arbeitsspeicher und SSD 1TB Samsung 970 pro, Startzeit bis Anmeldebildschirm: 8sec  :cool:




2019-03-12 (Qt 5.12.0)
Gambas3 IDE Probleme mit Qt5 und PDF Dokumente erzeugen. PDF's sind nur mit Linux lesbar, Windows Acrobat Reader gibt Fehler Error 11 aus (PDF Seitenformat ist 0 x 0). Keine Probleme bei Ausdruck auf Netzwerk Drucker.
Mit Qt 5.11.2 generierte PDF's gab es keine Probleme.
Workaround: Benutze aus dem Gambas3 Framework vorübergehend wieder das Qt4-Toolkit (Qt 4.8.7).
Update Juni 2019, seit Qt 5.12.3 funktioniert wieder alles.




2019-02-14 (KDE 5.15.0)
Konfigurationsdateien sollten beim Update behalten werden - im Terminal 'N' eingeben.
Nach dem großen Update auf KDE Plasma 5.15 den PC neu starten!

Synaptic zeigt qml-module-org-kde-extensionplugin und evtl. andere Pakete (z.B. language-pack-en und language-pack-gnome-en) in der Statusanzeige als "lokal oder veraltet" an und lässt sich nicht updaten, 5.52.0.0xneon+18.04+bionic+build14 auf neue Version 5.44.0-0ubuntu1.

Lösung: Das Paket deinstallieren und dann sofort, inklusive der deinstallierten Abhängigkeiten, alle Pakete wieder installieren.
sudo apt remove qml-module-org-kde-extensionplugin language-pack-en language-pack-gnome-en
sudo apt install kinfocenter neon-desktop plasma-desktop plasma-widgets-addons plasma-workspace plasma-workspace-wayland qml-module-org-kde-extensionplugin sddm-theme-breeze language-pack-en language-pack-gnome-en
sudo apt update; sudo apt upgrade; sudo apt full-upgrade
und alte Konfigurationen per Synaptic oder KDEtweaks löschen  :cool:




2019-01-31 (KDE 5.14.5)
Grub Countdown wird ignoriert, z.B.: GRUB_TIMEOUT=2

Workaround bis das wieder funzt:
VISUAL=kate sudoedit /boot/grub/grub.cfg
ändere "set timeout=30" z.B. in "set timeout=2"


Update 2019-02-02: Habe heute ein Fix dazu gefunden (Quelle: forums.linuxmint.com)

sudo sed -i "/recordfail_broken=/{s/1/0/}" /etc/grub.d/00_header
sudo update-grub





2019-01-31 (KDE 5.14.5)
Synaptic zeigt fwupd in der Statusanzeige als "lokal oder veraltet" an.

  • Deinstallieren, danach wird fwupdate und libfwup1 als "lokal oder veraltet" angezeigt, diese auch deinstallieren
  • Statusanzeige "automatisch entfernbar" kontrolieren und angezeigte Pakete deinstallieren, kann auch mit dem Script KDEtweaks erledigt werden ;)
  • fwupd per Synaptic oder Terminal wieder installieren!
sudo apt install fwupd
sudo apt update; sudo apt upgrade; sudo apt full-upgrade










2019-01-08 (KDE 5.14.5)
Synaptic zeigt die 3 Pakete fontconfig, fontconfig-config und libfontconfig1 in der Statusanzeige als "lokal oder veraltet" an.
Version ist 2.12.6-0ubuntu2.3 (now) -> vorher war das 2.12.6-0ubuntu2 (bionic)

Workaround:
Diese 3 Pakete mit "Version erzwingen" auf 2.12.6-0ubuntu2 (bionic) zurücksetzen, danach auf "Anwenden" klicken!

dann (kann nie schaden):
sudo apt update; sudo apt upgrade; sudo apt full-upgrade
sudo apt clean; sudo apt autoclean; sudo apt-get -f install; sudo apt clean; sudo apt autoremove --purge





2018-10-30 (KDE 5.14.2)
Synaptic zeigt das Paket snapd in der Statusanzeige als "lokal oder veraltet" an. Version 2.35.4+18.04 ist angeblich die neueste Version!

Workaround: Deinstallieren und anschließend wieder installieren.
sudo apt remove snapd
Die deinstallierten Abhängigkeiten kopieren und dann alles wieder installieren, bei mir war das
sudo apt install muon-notifier muon-updater plasma-discover plasma-discover-flatpak-backend plasma-discover-snap-backend plasma-discover-updater snapd

Nun habe ich snapd 2.34.2+18.04 und die Synaptic Statusanzeige "Installiert (lokal oder veraltet)" ist wieder leer.




2018-10-01
Komisch, Kate kommt immer wieder in meine Favoriten.
Jedes Mal wenn ich es entferne, kehrt Kate beim nächsten Login oder Neustart zurück.
Workaround: Warnung, das löscht alle Aktivitäten und Favoriten!
rm -R ~/.local/share/kactivitymanagerd
kactivitymanagerd stop; killall plasmashell; kactivitymanagerd start; plasmashell &






2018-09-26
Vor 2018-10-07 gab es bei Ubuntu LTS 18.04 (bionic) für KDE neon eine Warnung wegen i386 wenn per Terminal aktualisiert wird.
ZitatDas Laden der konfigurierten Datei »main/binary-i386/Packages« wird übersprungen, da das Depot »http://archive.neon.kde.org/user bionic InRelease« die Architektur »i386« nicht unterstützt

Lösung: In der sources.list.d/neon.list muss [arch=amd64] eingetragen werden
VISUAL=kate sudoedit /etc/apt/sources.list.d/neon.list
Zitatdeb [arch=amd64] http://archive.neon.kde.org/user/ bionic main
deb-src [arch=amd64] http://archive.neon.kde.org/user/ bionic main

Siehe auch: Fremdquelle die nur 64-bit-Pakete bereitstellt


btw: so sieht meine sources.list aus (PPA's gehören in den Ordner /etc/apt/sources.list.d/)
VISUAL=kate sudoedit /etc/apt/sources.list

Zitat# deb cdrom:[neon user _Bionic_ - Build amd64 LIVE Binary 20180927-05:44]/ bionic main multiverse restricted universe

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://de.archive.ubuntu.com/ubuntu/ bionic restricted main
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu/ bionic universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic universe
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://de.archive.ubuntu.com/ubuntu/ bionic multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://de.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://de.archive.ubuntu.com/ubuntu/ bionic-backports multiverse main restricted universe
# deb-src http://de.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu/ bionic partner
# deb-src http://archive.canonical.com/ubuntu/ bionic partner

deb http://security.ubuntu.com/ubuntu/ bionic-security main restricted
# deb-src http://security.ubuntu.com/ubuntu/ bionic-security main restricted
deb http://security.ubuntu.com/ubuntu/ bionic-security universe
# deb-src http://security.ubuntu.com/ubuntu/ bionic-security universe
deb http://security.ubuntu.com/ubuntu/ bionic-security multiverse
# deb-src http://security.ubuntu.com/ubuntu/ bionic-security multiverse

deb http://de.archive.ubuntu.com/ubuntu/ bionic-proposed multiverse main restricted universe




2018-07-20
Mit dem Update KDE Plasma 5.13.3 und Linux-Kernel 4.15.0-29 rennt alles ohne Probleme.
Die Meltdown-Lücke sollte in Linux 4.15 mit der Kernel Page-Table Isolation (KPTI) erledigt sein.
KPTI schützt nicht vor der Sicherheitslücke Spectre, diese Lücke soll erst ab Kernel 4.16 abgedichtet werden.




2018-07-04
Der Linux-Kernel 4.15 verbessert den Spectre- und Meltdown-Schutz.
Das Verzeichnis /sys/devices/system/cpu/vulnerabilities/ informiert euch über die Security-Lücken der CPU.
grep . /sys/devices/system/cpu/vulnerabilities/*

Achtung, der Kernel 4.15.0-24 hat ein Bug (Bug Report 1779827): evtl. gibt es PC Start und Grafik-Probleme, Maus und Tastatur sind nicht verfügbar. Dieses Problem scheint nur den Kernel 4.15.0-24 zu betreffen. getrandom() wird beim Starten von Xorg aufgerufen und aus irgendeinem Grund hängt es dann.

Workaround: PC mit dem Vorgänger Kernel starten und das Paket haveged installieren - ungetestet!
sudo apt install haveged
sudo systemctl enable haveged

Eigentlich nur notwendig wer mit kryptographischen Funktionen arbeitet.

Ich habe den Kernel 4.15.0-24 gelöscht, 4.15.0-23 oder 4.13.0-45 machen keine Probleme. Neuer Kernel sollte bald veröffentlicht werden (status: In Progress -> Fix Committed).




2018-01-10
VirtualBox 5.0.40 friert PC nach Meltdown Kernel 4.13.0-26 Aktualisierung ein


Lösung: VirtualBox 5.2.x




2017-12-03
KDE neon 5.11.4 "Look and feel settings missing"


Systemeinstellungen -> Arbeitsbereich-Design -> "Erscheinungsbild & Arbeitsflächen-Design" sind leer
Lösung: Fehlende Bibliothek installieren
sudo apt install qml-module-org-kde-kcm






2017-11-15
KDE neon 5.11.3 Problem mit alten "plasma-integration"


-> "Die folgenden Pakete werden durch eine ÄLTERE VERSION ERSETZT (Downgrade): plasma-integration"

Beim Update per Konsole kommt diese Meldung
sudo apt update; sudo apt upgrade; sudo apt full-upgrade
.....
Paketaktualisierung (Upgrade) wird berechnet... Fertig
Die folgenden Pakete werden aktualisiert (Upgrade):
  firefox firefox-locale-de firefox-locale-en libjavascriptcoregtk-4.0-18 libwebkit2gtk-4.0-37
  libwebkit2gtk-4.0-37-gtk2
Die folgenden Pakete werden durch eine ÄLTERE VERSION ERSETZT (Downgrade):
  plasma-integration
6 aktualisiert, 0 neu installiert, 1 durch eine ältere Version ersetzt, 0 zu entfernen und 0 nicht aktualisiert.
.....


das mit Synaptic geprüft:


Also Unsinn, kein Downgrade! Die neue Qt5 Version lässt sich wohl nicht auf die alte Qt4 Version updaten?

LÖSUNG
1) Das Paket "plasma-integration" per Synaptic gelöscht und gelöschte Abhängigkeiten notieren oder wie folgt auflisten:
awk '$3 == "remove" { print $1, $2, $4 }' /var/log/dpkg.log
2017-11-15 19:05:48 neon-desktop:amd64
2017-11-15 19:05:48 kinfocenter:amd64
2017-11-15 19:05:48 plasma-desktop:amd64
2017-11-15 19:05:49 sddm-theme-breeze:amd64
2017-11-15 19:05:49 plasma-widgets-addons:amd64
2017-11-15 19:05:49 plasma-workspace:amd64
2017-11-15 19:05:49 plasma-integration:amd64


Diese Pakete sofort wieder installieren!
sudo apt install neon-desktop kinfocenter plasma-desktop sddm-theme-breeze plasma-widgets-addons plasma-workspace plasma-integration

2) Aufräumen:
sudo apt update; sudo apt upgrade; sudo apt full-upgrade
sudo apt clean; sudo apt autoclean; sudo apt-get -f install; sudo apt clean; sudo apt autoremove --purge


Version geprüft: 5.11.3-0neon+16.04+xenial+build64

Perfekt  :cool:



#43
LINUX / KDE neon Desktop startet nicht
Letzter Beitrag von Jo - 2017-11-01 | 16:33:04
Probleme mit der grafischen Oberfläche (X-Server) sind bei Linux sehr selten.
Sollte der Desktop dennoch fehlerhaft arbeiten, ist meist eine zerstörte Konfiguration (z.B. nvidia) dafür verantwortlich.

Hier 3 Eventualitäten
(gehe davon aus das die Hardware OK ist)

1) Der Kernel startet und zeigt euch nur den Login in der Konsole an?
Nach der Anmeldung in der Konsole die grafische Benutzeroberfläche (X-Server) manuell ausführen.
startx
wenn das funktioniert, in der Konsole
sudo dpkg-reconfigure xserver-xorg
eingeben und den PC neu starten.


2) Der Kernel startet aber es kommt kein Login-Screen?
Bootet LINUX KDE neon im Recovery-Modus mit verbundenen LAN Kabel!
Beim Start die linke Shift Taste drücken bis Grub erscheint (falls ihr den nicht seht), dann im Menü "Erweiterte Optionen" den aktuellen Recovery-Kernel auswählen und starten. Solltet ihr den aktuellen Kernel zerschossen haben (z.B. bei einem Update den PC kalt ausschaltet), kann man hier einen älteren Kernel auswählen.

Hier könnte "clean" und "dpkg" helfen. Wenn nicht wählt im Wiederherstellungsmenü "Network" (Dateistatus ändert sich auf Lesen/Schreiben) und dann "root". In der Konsole folgende Befehle ausführen.

Wenn der nvidia-Treiber das Problem ist, hiermit komplett entfernen
sudo apt remove --purge nvidia-*

Reparatur des aktuell laufenden Kernels und KDE neon Desktops (Neuinstallation)
sudo apt install --reinstall linux-image-$(uname -r) neon-desktop

System aktualisieren und reinigen
sudo apt update; sudo apt upgrade; sudo apt dist-upgrade; sudo clean; sudo apt autoclean; sudo apt-get -f install; sudo apt clean; sudo apt autoremove --purge

oder der Reihe nach (lässt sich besser tippen)
sudo apt update
sudo apt upgrade
sudo apt dist-upgrade
sudo clean
sudo apt autoclean
sudo apt-get -f install
sudo apt clean
sudo apt autoremove --purge



3) Hardware ist OK, aber Punkt 1 und 2 haben nichts bewirkt
Startet KDE neon mit euren USB Live-Image.
Installiert KDE neon neu über das bestehende System wie hier beschrieben und bindet das bestehende /home ohne formatieren ein!
Wenn ihr die /home Partition verschlüsselt habt müsst ihr natürlich das gleiche Passwort angeben.


Alles ohne Gewähr! Updates von /home habt ihr ja... wenn nicht :confused:

#44
LINUX / Antw: iOS mit Linux
Letzter Beitrag von Jo - 2017-10-29 | 13:48:25
für iOS 11 oder iOS 12 muss libimobiledevice 1.2.0 aktualisiert werden
Stand: 2018-09-18

Update: In Ubuntu 18.04 ist libimobiledevice-utils 1.2.1 enthalten. Daher ist keine PPA oder neu kompilieren nötig  :-[
sudo apt install libimobiledevice-utils ifuse


Gilt nur für Ubuntu 16.04:
Die offizielle Version libimobiledevice 1.2.0 (05.07.2016) unterstützt iOS 10 und muss für iOS 11 oder iOS 12 aktualisiert werden, Link: Need updated libimobiledevice to mount iOS 11 devices

Für Ubuntu Version 17.10 (Artful) und die kommende 18.04 LTS (Bionic) gibt es schon eine libimobiledevice 1.2.0+dfsg-3.1ubuntu3 die mit iOS 11 oder iOS 12 funktioniert.

Wer Ubuntu 16.04 LTS (Xenial), Mint18 oder das derzeitige KDE Neon 5.11.x benutzt kann selbst eine libimobiledevice 1.2.1 Version für iOS 11 oder iOS 12 erstellen oder muss auf die nächste LTS-Version warten. Die Lösung (Fix) befindet sich im Upstream-Github und kann mit "Browse Files" -> "Clone or download" -> "Download ZIP" geladen werden.

Nach dem Download das Archiv entpacken und die "README" lesen wie ihr das kompilieren könnt. Hier meine Vorgehensweise mit dem derzeitigen KDE Neon 5.11.2 (ohne Gewähr!).

Hinweis: Mein kompiliertes Debian-Paket libimobiledevice 1.2.1 für iOS 11 oder iOS 12 im Anhang (libimobiledevice_iOS11_amd64.zip) ist natürlich ohne Garantie/Gewähr, dass dieses Paket auch woanders funktioniert. Damit könntet ihr Schritt 3 und 4 überspringen.

1) Deinstalliert "libimobiledevice6"
(wenn installiert)
sudo apt --purge remove libimobiledevice6
Achtung, dabei werden auch Abhängigkeiten deinstalliert die später wieder installiert werden müssen!
Liste der deinstallierten Pakete für später merken (siehe Datum und Uhrzeit):
awk '$3 == "remove" { print $1, $2, $4 }' /var/log/dpkg.log
bei mir war das z.B. amarok amarok-utils ifuse libgpod-common libgpod4 libimobiledevice6 upower usbmuxd

2) Aufräumen
sudo apt update; sudo apt upgrade; sudo apt dist-upgrade
sudo apt clean; sudo apt autoclean; sudo apt-get -f install; sudo apt clean; sudo apt autoremove --purge


3) Zum kompilieren werden noch entsprechende Entwicklungsdateien benötigt
sudo apt install build-essential checkinstall libtool automake libusbmuxd-tools
Das "make" Script gibt evtl. eine Fehlermeldung aus wenn Pakete fehlen die nachinstalliert werden müssen, z.B.:
sudo apt install libicu-dev libxml2-dev libplist-dev libplist++3v5 libplist++-dev cython libexpat1-dev libpython2.7-dev libpython-dev python2.7-dev python-dev cython-dbg libplist-dbg zlib1g-dev libssl-dev

4) Kompilieren im entpackten Ordner
./autogen.sh
das Ende davon sollte so aussehen:
Configuration for libimobiledevice 1.2.1:
-------------------------------------------

  Install prefix: .........: /usr/local
  Debug code ..............: no
  Python bindings .........: no
  SSL support backend .....: OpenSSL

  Now type 'make' to build libimobiledevice 1.2.1,
  and then 'make install' for installation.


dann:
make
Wenn hier keine Fehler angezeigt werden kann mit "sudo make install" das Script installiert werden und mit "sudo make uninstall" deinstalliert werden.
Bei dieser Vorgehensweise werden die Dateien von der Paketverwaltung NICHT registriert und können diese sogar stören! Insbesondere ist eine Deinstallation sehr schwierig. Darum benutze ich dafür das Paket checkinstall.
sudo checkinstall
Statt einer direkten Installation erstellt checkinstall zuerst ein Debian-Paket und wird das anschließend sofort installieren. Die Datei ist im Anhang als libimobiledevice_iOS11_amd64.zip gespeichert.

5) Nach der erfolgreichen Installation: "libimobiledevice6" und gelöschte Pakete wieder herstellen (siehe Punkt 1), z.B.
sudo apt install libimobiledevice6 amarok amarok-utils ifuse libgpod-common libgpod4 upower usbmuxd

6) iOS 11 oder iOS 12 mit KDE neon mounten (siehe Thread 1 oben)
Neu ab iOS 11: Nach dem Einstöpseln per USB kommt eine Abfrage, ob ihr dem Computer "vertraut" und wenn ja müsst ihr das mit euren Passwort bestätigen - sonst ist ein "idevicepair pair" nicht möglich.

:-[ O0
#45
LINUX / KDE-Desktop wiederherstellen
Letzter Beitrag von Jo - 2017-06-05 | 11:44:04
KDE Plasma 5 Desktop wiederherstellen

Dazu hat man ein funktionierendes Backup? Damit könnt ihr den KDE-Desktop wiederherstellen (aus Punkt 2).
Tipp: Die Einstellungen für die Kontrolleiste befinden sich in
~/.config/plasma-org.kde.plasma.desktop-appletsrcNachdem diese Datei wieder hergestellt ist, braucht ihr nur noch ein Neustart von KDE (Ausloggen und wieder anmelden).

Oops, kein Backup!?   :sad:

Dann versucht per Konsole (Terminal) den Desktop wie folgt wiederherzustellen.
Startet den KRunner über die Tastenkürzel ALT & F2, tippt "konsole" ein und dann Enter.

Hinweis! Sollte KDE Plasma 5 gar nicht mehr laufen und kein Login möglich sein, dann wechselt stattdessen vom Anmeldebildschirm aus mit der Tastenkombination Strg & Alt & F2 in eine Textkonsole und loggt euch dort ein.

1) Plasma-Desktop samt Applets beenden mit
kquitapp plasmashell
2) Konfigurationsdateien löschen
rm ~/.config/plasma-org.kde.plasma.desktop-appletsrc
rm ~/.config/plasmashellrc
rm ~/.config/plasmarc

Habt ihr euren Desktop total zerschossen, kann hier auch eine Neuinstallation des Desktops helfen
sudo apt --reinstall install neon-desktop
sudo apt update && sudo apt upgrade && sudo apt dist-upgrade

3) Bei einer Textkonsole (siehe Hinweis oben) könnt ihr mit Strg & Alt & F7 wieder zurück zur grafischen Anmeldung. Dann die Plasma-Shell wieder starten:
plasmashell & disown
"disown" sorgt dafür, dass Plasma nicht an das Konsolenfenster gebunden ist und danach geschloßen werden kann.
Der KDE Plasma 5 Desktop startet mit Standardeinstellungen und legt die gerade gelöschten Dateien neu an.


________________________________________________________

Wenn mal wirklich nichts geht: Den Rechner "fast hart" ausschalten mit:
ALT & DRUCK REISUB

Hierbei werden Daten erst gespeichert und dann der PC neu gestartet!
Quelle: Magic_SysRQ
#46
CMS / MODX & FullCalendar
Letzter Beitrag von Jo - 2017-03-08 | 23:58:22
Der FullCalendar ist ein JavaScript-Event-Kalender, anpassbar und Open Source -> also genau richtig für MODX!
(getestet mit MODX 2.7.0 / 3.0.1 & FullCalendar 3.10.0 )

Ich nenne mein ganzes Code-Schnipsel hier zusammen: fcMODX 22.10.010  (Jahr.Monat.Version)

(Demo Bild fcMODX mini-mode mit angepassten CSS von Mottie)

Was kann fcMODX?
  • Events aus MODX-Ressourcen mit pdoResources anzeigen und verlinken (oder mit getResources)
  • Feiertage berechnen und die Schulferien anzeigen
  • iCalendar Datei (iCAL) via Snippet einbinden
  • mehrere Kalender sind möglich durch Angabe einer Instanz
  • neu: Dank hammer.js sind auch Wischgesten möglich

Snippet Platzhalter, um diese in Chunks auszugeben benutze ich nicht - sehe derzeit keinen Grund dafür.

Als ersten Schritt müsst ihr den Kalenders in MODX natürlich mit den richtigen JavaScript- und CSS-Dateien einbinden (Link: Basic Usage). Dann kann der Kalender individuell nach eigenem Bedarf per TV, Chunks und Snippets in MODX ausgebaut werden. Wer Wischgesten (swipe) benutzen will muss auch hammer.js einbinden.

Anwendungsbeispiel - eure Parent-Res.-ID's müsst ihr anpassen (siehe pdoResources):

Aufruf des Kalenders ohne iCal-File
[[!$jsFullCalendar? &fcinstance=`calendar`]]

Aufruf des Kalenders mit einem iCal-File
[[!$jsFullCalendar? &fcinstance=`calendar` &icsurl=`assets/downloads/deineDatei.ics` &color=`#123`]]


TV's anlegen
  • EventDateStart -> input type: "date" und Output Date Format: "%Y-%m-%d %R"
  • EventDateEnd -> input type: "date" und Output Date Format: "%Y-%m-%d %R"
  • EventDateMulti -> input type: "text" oder komfortable mit "datepicker-multiple" (siehe unten)



Chunks

jsFullCalendar (Initialisierung, Optionen und Instanz Platzhalter des Kalenders)
<script>
    $(document).ready(function(){
        var initialLocaleCode = 'de';
        $('#[[+fcinstance]]').fullCalendar({
            contentHeight: 'auto',
            header: {
                left: 'prev,next today',
                center: 'title',
                right: 'month,agendaWeek,agendaDay,listMonth'
                //right: 'month,agendaWeek,agendaDay'
            },
            defaultDate: '[[!today]]',
            locale: initialLocaleCode,
            buttonIcons: false,
            weekNumbers: true,
            navLinks: true,
            editable: false,
            eventLimit: 3,
            eventOrder: '-color',
            events: [
                        [[!fcSomerWinterZeit]]
                          [[!$fcAddDays]]
                            [[!fcFeiertageEreignisse]]
                              [[!$fcResourcesWeb]]
                                [[!$fcResourcesMultiWeb]]
                                    [[!$dwdWetterChunkFC? &STATION=`K428` &T1=`[[!getTimeRoundH]]`]]
                                      [[!ics2calendar? &icsurl=[[+icsurl]] &color=[[+color]]]]
            ],
        eventRender: function(event, element, view){
            // Icon
            if(event.icon){
               if(event.allDay){
                 $(element).find('span:first').prepend('<img src="'+event.icon+'" height="72" width="72" />');
               }else{
                 $(element).find('.fc-time').prepend('<img src="'+event.icon+'" height="72" width="72" />');
               }
            }
            // Ende Icon
            // Bootstrap Tooltip
            //if (event.description) {
            //$(element).tooltip({title: event.description, placement: 'bottom', container: 'body'});
            //}
            // Tooltip Ende
            if(view.name === "agendaDay"){
            if (event.description) {
            element.find('.fc-title').append("<br/>" + event.description);
            }}},
            // Tooltip wenn kein Bootstrap
            eventMouseover: function (event, jsEvent, view){
                $(jsEvent.target).attr('title', event.description);
            },
            // Ende Tooltip
                eventDataTransform: function(event){
                    if(event.allDay) {
                    event.end = moment(event.end).add(1, 'days')
                    }
                    return event;
                    }
        });

                var recognizers=['pan', 'pinch', 'press', 'rotate', 'tap'];
                var myElement = document.getElementById('[[+fcinstance]]');
                var mc = new Hammer(myElement);
                for(i=0;i<recognizers.length;i++){
                    mc.get(recognizers[i]).set({enable:false});
                }
                mc.get('swipe').set({
                    direction: Hammer.DIRECTION_HORIZONTAL,
                    threshold: 30,
                    velocity: 0.5
                });
                mc.on('swipeleft swiperight', function(ev){
                    if(ev.type=='swipeleft'){
                    $('#[[+fcinstance]]').fullCalendar('next');
                    }else{
                    $('#[[+fcinstance]]').fullCalendar('prev');
                  }
                });

    });
</script>
[[!$webfcCSS:htmlToHead]]
<div id='[[+fcinstance]]'></div>







fcCSS (optional: Kalender nachträglich per CSS Chunk anpassen)
<style type="text/css">
[[+fcinstance:notempty=`
   #[[+fcinstance]] {max-width: 100%; margin: 0 auto; padding: 5px;}
      /* u.s.w. */
`]]
</style>

fcAddDays (Ferien in RLP und unser OneFreeDay 2017 ; )
PS "Schulferien": an alle Lehrer, warum kann man das nicht berechnen ;-(
{ start: '2017-10-31', end: '2017-10-31', title: 'Reformationstag', description: 'nur 2017 in RLP!', color: '#7e6025' },

{ start: '2017-04-10', end: '2017-04-21', allDay: true, title: 'Osterferien', color: '#7e2555' },
{ start: '2017-07-03', end: '2017-08-11', allDay: true, title: 'Sommerferien', color: '#7e2555' },
{ start: '2017-10-02', end: '2017-10-13', allDay: true, title: 'Herbstferien', color: '#7e2555' },
{ start: '2017-12-22', end: '2018-01-09', allDay: true, title: 'Weihnachtsferien', color: '#7e2555' },

{ start: '2018-03-26', end: '2018-04-06', allDay: true, title: 'Osterferien', color: '#7e2555' },
{ start: '2018-06-25', end: '2018-08-03', allDay: true, title: 'Sommerferien', color: '#7e2555' },
{ start: '2018-10-01', end: '2018-10-12', allDay: true, title: 'Herbstferien', color: '#7e2555' },
{ start: '2018-12-20', end: '2019-01-04', allDay: true, title: 'Weihnachtsferien', color: '#7e2555' },

{ start: '2019-02-25', end: '2019-03-01', allDay: true, title: 'Winterferien', color: '#7e2555' },
{ start: '2019-04-23', end: '2019-04-30', allDay: true, title: 'Osterferien', color: '#7e2555' },
{ start: '2019-07-01', end: '2019-08-09', allDay: true, title: 'Sommerferien', color: '#7e2555' },
{ start: '2019-09-30', end: '2019-10-11', allDay: true, title: 'Herbstferien', color: '#7e2555' },
{ start: '2019-12-23', end: '2020-01-06', allDay: true, title: 'Weihnachtsferien', color: '#7e2555' },

{ start: '2020-02-17', end: '2020-02-21', allDay: true, title: 'Winterferien', color: '#7e2555' },
{ start: '2020-04-09', end: '2020-04-17', allDay: true, title: 'Osterferien', color: '#7e2555' },
{ start: '2020-07-06', end: '2020-08-14', allDay: true, title: 'Sommerferien', color: '#7e2555' },
{ start: '2020-10-12', end: '2020-10-23', allDay: true, title: 'Herbstferien', color: '#7e2555' },
{ start: '2020-12-21', end: '2020-12-31', allDay: true, title: 'Weihnachtsferien', color: '#7e2555' },

{ start: '2021-03-29', end: '2021-04-06', allDay: true, title: 'Osterferien', color: '#7e2555' },
{ start: '2021-05-25', end: '2021-06-02', allDay: true, title: 'Pfingstferien', color: '#7e2555' },
{ start: '2021-07-19', end: '2021-08-27', allDay: true, title: 'Sommerferien', color: '#7e2555' },
{ start: '2021-10-11', end: '2021-10-22', allDay: true, title: 'Herbstferien', color: '#7e2555' },
{ start: '2021-12-23', end: '2021-12-31', allDay: true, title: 'Weihnachtsferien', color: '#7e2555' },

{ start: '2022-02-21', end: '2022-02-25', allDay: true, title: 'Winterferien', color: '#7e2555' },
{ start: '2022-04-13', end: '2022-04-22', allDay: true, title: 'Osterferien', color: '#7e2555' },
{ start: '2022-07-25', end: '2022-09-02', allDay: true, title: 'Sommerferien', color: '#7e2555' },
{ start: '2022-10-17', end: '2022-10-31', allDay: true, title: 'Herbstferien', color: '#7e2555' },
{ start: '2022-12-23', end: '2023-01-02', allDay: true, title: 'Weihnachtsferien', color: '#7e2555' },

fcResources
[[!pdoResources:default=``?
    &context=`web`
    &parents=`62,105,122`
    &depth=`0`
    &tpl=`tplFCRes`
    &limit=`0`
    &idx=`0`
    &includeContent=`0`
    &showUnpublished=`0`
    &includeTVs=`EventDateStart,EventDateEnd`
    &sortby=`menuindex`
    &sortdir=`asc`
    &tvFilters=``
]]
(sollte auch mit dem alten getResources funktionieren, jedoch: includeTVs=`1`)

tplFCRes (Zeilenumbruch mit "\n" wenn pagetitle zu lang)
{ start: '[[+tv.EventDateStart:strtotime:date=`%Y`]]-[[+tv.EventDateStart:strtotime:date=`%m`]]-[[+tv.EventDateStart:strtotime:date=`%d`]]T[[+tv.EventDateStart:strtotime:date=`%R`]]:00', [[+tv.EventDateEnd:notempty=` end: '[[+tv.EventDateEnd:strtotime:date=`%Y`]]-[[+tv.EventDateEnd:strtotime:date=`%m`]]-[[+tv.EventDateEnd:strtotime:date=`%d`]]T[[+tv.EventDateEnd:strtotime:date=`%R`]]:00', `]] title: '[[wordwrapN? &input=`[[+pagetitle]]` &options=`16`]]',  url: '[[~[[+id]]]]', description: '(Bericht klick hier)', color: '#257e4a' },

fcResourcesMulti
[[!pdoResources:default=``?
    &context=`web`
    &parents=`62,105,122`
    &depth=`0`
    &tpl=`tplFCResMulti`
    &limit=`0`
    &idx=`0`
    &includeContent=`0`
    &showUnpublished=`0`
    &includeTVs=`EventDateMulti`
    &sortby=`menuindex`
    &sortdir=`asc`
    &tvFilters=``
]]

tplFCResMulti (Zeilenumbruch mit "\n" wenn pagetitle zu lang)
[[!date2calendar? &param=`[[+tv.EventDateMulti]]` &title=`[[wordwrapN? &input=`[[+pagetitle]]` &options=`16`]]` &desc=`(Bericht klick hier)` &url=`[[~[[+id]]]]` &color=`#257e4a`]]



Snippets

today
<?php
$today 
date("Y-m-d");
return 
$today;

wordwrapN
<?php
# Zeilenumruch mit Tag "\n"
# wordwrap: Diese Funktion bricht ab einer gewissen Länge einen Satz um
# [[wordwrapN? &input=`[[+pagetitle]]` &options=`20`]]

$output '';
$input trim($input);

if (!empty(
$input) && !empty($options)) { 
         
$output wordwrap($input$options'\n');
  } else 
$output $input;

return 
$output;

date2calendar
<?php
# V 22.12.005
#
# Mit PHP ein Datums-Array für den JQuery-FullCalendar aufbereiten
#
# Beispiel Snippet Aufruf:
# [[!date2calendar? &param=`2017-03-04,2017-04-28,2017-04-11,2017-04-25` &title=`test` &desc=`blablabla` &url=`brauchtum/test.html &color=`#a23d3d`]]
#
$param $modx->getOption('param',$scriptProperties,'');
$title $modx->getOption('title',$scriptProperties,'');
$desc $modx->getOption('desc',$scriptProperties,'');
$url $modx->getOption('url',$scriptProperties,'');
$color $modx->getOption('color',$scriptProperties,'#257e4a');
$strAusgabe '';
$strTemp '';

if (empty(
$param)) {
    return 
'';
} else {

$param trim($param);

$paramArray explode(','$param);
foreach(
$paramArray as $p){
$strTemp $strTemp."{ start: '".$p."', end: '".$p."', allDay: true, title: '".$title."', description: '".$desc."', url: '".$url."', color: '".$color."' } ,";
}
$strAusgabe trim($strTemp);
return 
$strAusgabe;
}

fcSomerWinterZeit
<?php
# V 22.10.005
#
# Mit PHP Sommer/Winterzeit für den FullCalendar ermitteln
#
#
# Snippet Aufruf:
# [[!fcSomerWinterZeit`]]
#
$colorS '#257e4a'# Sommer
$colorW '#257e4a'# Winter
$yearstartdate("Y"); # starte ab aktuelles Jahr
$zb '\n'# Zeilenumbruch
$strAusgabe '';

# erstelle Liste für die nächsten 20 Jahre
for($i=0$i <= 20$i++) {
$year $yearstart+$i;

$sommer = new DateTime($year.'-03-31');
$sommer->modify('last sunday of this month');
$sommer $sommer->format('Y-m-d');
$winter = new DateTime($year.'-10-31');
$winter->modify('last sunday of this month');
$winter $winter->format('Y-m-d');

$strTemp "{ start: '".$sommer."', end: '".$sommer."', title: 'Zeitumstellung ".$zb." Sommerzeit', description: '(Link zu wikipedia)', url: 'https://de.wikipedia.org/wiki/Sommerzeit', color: '".$colorS."' },";
$strTemp $strTemp."{ start: '".$winter."', end: '".$winter."', title: 'Zeitumstellung ".$zb." Winterzeit', description: '(Link zu wikipedia)', url: 'https://de.wikipedia.org/wiki/Sommerzeit', color: '".$colorW."' },";

$strAusgabe $strAusgabe.$strTemp;
}

return 
$strAusgabe;

ics2calendar
<?php
# V 22.10.009
#
# Mit PHP iCalendar-Daten (*.ics) laden und für den JQuery-FullCalendar aufbereiten
#
# Beispiel Snippet Aufruf:
# [[!ics2calendar? &icsurl=`assets/downloads/deineDatei.ics` &color=`#123`]]
#

$icsColor '#3A87AD';
$strTargetURL $modx->getOption('icsurl',$scriptProperties,'');
$color $modx->getOption('color',$scriptProperties$icsColor);
$strReturn '';
$strADD '';

# wenn keine URL oder kein Platzhalter, dann mache nichts
if (empty($strTargetURL) or $strTargetURL == "[[+icsurl]]") {
    return 
'';
} else {

# wenn der Platzhalter +color nicht benutzt wird
if (empty($color) or $color == "[[+color]]") {
    
$color $icsColor;
}

# prüft ob es die Datei gibt
    
if (!file_exists($strTargetURL)) {
        
# exit("Your file doesn't exist");
                
$modx->log(modX::LOG_LEVEL_ERROR'[ics2calendar] Your ics file does not exist!');
                return;
    }
# Feldnamen Variablen
    
$strSearchSTART 'DTSTART';
    
$strSearchEND 'DTEND';
    
$strDat =':2'# hier fängt das Datum an
    
$strSearchSUM 'SUMMARY:';
    
$strSearchDESC 'DESCRIPTION:';
    
$strSearchEndEvent 'END:VEVENT'# Farbe am Event-Ende setzen


# liest Datei Zeilenbasierend
    
$strLines file($strTargetURL);

# prüft ob es eine iCal-Datei ist
    
$strTemp substr($strLines[0], 0,15);
    if (
$strTemp !== "BEGIN:VCALENDAR") {
        
# exit("Your file isn't an iCal-File");
                
$modx->log(modX::LOG_LEVEL_ERROR'[ics2calendar] Your file is not an iCal-File!');
                return;
    }

foreach (
$strLines as $strLine)
{
        
# Datumsformat z.B. "2017-02-01" oder "2017-02-12T10:30:00"
            
if(strpos($strLine$strSearchSTART) !== false)
            {
            
$strTemp strstr($strLine$strSearchSTART);
            
$strTemp strstr($strTemp$strDat);
            
$strTemp substr($strTemp1);
            
# $strADD = $strADD."{ start: '" . date('Y-m-d\TH:i:s', strtotime($strTemp))."', ";
            
$strADD $strADD."{ start: '" date('Y-m-d'strtotime($strTemp))."', ";
            }

            if(
strpos($strLine$strSearchEND) !== false)
            {
            
$strTemp strstr($strLine$strSearchEND);
            
$strTemp strstr($strTemp$strDat);
            
$strTemp substr($strTemp1);
            
# $strADD = $strADD." end: '" . date('Y-m-d\TH:i:s', strtotime($strTemp))."', ";
            
$strADD $strADD." end: '" date('Y-m-d'strtotime($strTemp))."', ";
            }

            if(
strpos($strLine$strSearchSUM) !== false)
            {
            
$strTemp strstr($strLine$strSearchSUM);
            
$strTemp htmlspecialchars(trim($strTemp));
                        
$strTemp str_replace('&amp;''&'$strTemp);
            
$strTemp substr($strTemp8);
                        
$strTemp wordwrap($strTemp25' \n ');
            
$strADD $strADD." title: '" $strTemp."', ";
            }

            
# Non-Standard Fields in FullCalendar!
            
if(strpos($strLine$strSearchDESC) !== false)
            {
            
$strTemp strstr($strLine$strSearchDESC);
            
$strTemp htmlspecialchars(trim($strTemp));
                        
$strTemp str_replace('&amp;''&'$strTemp);
            
$strTemp substr($strTemp12);
                        
# $strTemp = wordwrap($strTemp, 25, '<br/>');
            
$strADD $strADD." description: '" $strTemp."', ";
            }

            if(
strpos($strLine$strSearchEndEvent) !== false)
            {
                if (isset(
$color)) {
                
$strTemp " color: '" $color."'";
                
$strADD $strADD.$strTemp;
                }
            
$strADD $strADD." }, ";
            }

}

    
# entferne letze Leerstelle und Komma
    
$strReturn substr($strADD0, -2);

return 
$strReturn;
}

getEasterDate
<?php
# V 22.10.002
#
# Mit PHP Ostern berechnen um beweglichen Feiertage zu ermitteln
#
# Snippet Aufruf:
# [[!getEasterDate? &year=`2017`]]

$today date("Y");
$year $modx->getOption('year',$scriptProperties,$today);
$ostern '';

$base = new DateTime($year.'-03-21');
$days easter_days($year);
$base->add(new DateInterval('P'.$days.'D'));

$ostern $base->format('Y-m-d');
return 
$ostern;

fcFeiertageEreignisse
<?php
# V 22.10.010
#
# Mit PHP Feiertage für FullCalendar ermitteln (hier z.B. für Rheinland-Pfalz)
# Farbe + Feiertage sind leicht hinzuzufügen oder können mit einer Raute auskommentiert werden
#
# Snippet Aufruf:
# [[!fcFeiertageEreignisse`]]
#
#
$colorF '#7e6025'# Feiertag
$colorE '#257e4a'# Ereignis
$yearstartdate("Y"); # starte ab aktuelles Jahr
$zb '\n'# Zeilenumbruch
$strAusgabe '';

# erstelle Liste für die nächsten 20 Jahre
for($i=0$i <= 20$i++) {
$year $yearstart+$i;

$base = new DateTime($year.'-03-21');
$days easter_days($year);
$base->add(new DateInterval('P'.$days.'D'));

$ostern $base->format('Y-m-d');

   
# Weiberfastnacht findet immer am Donnerstag vor Aschermittwoch statt
   
$weiberfastnacht strtotime(date('Y-m-d'strtotime($ostern)).' -52 day');
$rosenmontag strtotime(date('Y-m-d'strtotime($ostern)).' -48 day');
$fastnacht strtotime(date('Y-m-d'strtotime($ostern)).' -47 day');
$aschermittwoch strtotime(date('Y-m-d'strtotime($ostern)).' -46 day');
   
# Am Sonntag nach Aschermittwoch wird in der Eifel die "Hütt" verbrannt
   
$huettenbrennen strtotime(date('Y-m-d'strtotime($ostern)).' -42 day');
$rosenmontag strtotime(date('Y-m-d'strtotime($ostern)).' -48 day');
$fastnacht strtotime(date('Y-m-d'strtotime($ostern)).' -47 day');
$aschermittwoch strtotime(date('Y-m-d'strtotime($ostern)).' -46 day');
$karfreitag strtotime(date('Y-m-d'strtotime($ostern)).' -2 day');
$ostersonntag strtotime(date('Y-m-d'strtotime($ostern)));
$ostermontag strtotime(date('Y-m-d'strtotime($ostern)).' +1 day');
$christihimmelfahrt strtotime(date('Y-m-d'strtotime($ostern)).' +39 day');
$pfingstsonntag strtotime(date('Y-m-d'strtotime($ostern)).' +49 day');
$pfingstmontag strtotime(date('Y-m-d'strtotime($ostern)).' +50 day');
$fronleichnam strtotime(date('Y-m-d'strtotime($ostern)).' +60 day');

$weiberfastnacht date('Y-m-d'$weiberfastnacht);
$rosenmontag date('Y-m-d'$rosenmontag);
$fastnacht date('Y-m-d'$fastnacht);
$aschermittwoch date('Y-m-d'$aschermittwoch);
$huettenbrennen date('Y-m-d'$huettenbrennen);
$karfreitag date('Y-m-d'$karfreitag);
$ostersonntag date('Y-m-d'$ostersonntag);
$ostermontag date('Y-m-d'$ostermontag);
$christihimmelfahrt date('Y-m-d'$christihimmelfahrt);
$pfingstsonntag date('Y-m-d'$pfingstsonntag);
$pfingstmontag date('Y-m-d'$pfingstmontag);
$fronleichnam date('Y-m-d'$fronleichnam);

$strTemp "
{ start: '
$weiberfastnacht', end: '$weiberfastnacht', title: 'Weiberfastnacht', color: '".$colorE."' },
{ start: '
$rosenmontag', end: '$rosenmontag', title: 'Rosenmontag', color: '".$colorE."' },
{ start: '
$fastnacht', end: '$fastnacht', title: 'Fastnacht', color: '".$colorE."' },
{ start: '
$aschermittwoch', end: '$aschermittwoch', title: 'Aschermittwoch', color: '".$colorE."' },
{ start: '
{$huettenbrennen}T19:00:00', end: '{$huettenbrennen}T21:00:00', title: 'Hüttenbrennen', color: '".$colorE."' },
{ start: '
$karfreitag', end: '$karfreitag', title: 'Karfreitag', color: '".$colorF."' },
{ start: '
$ostersonntag', end: '$ostersonntag', title: 'Ostersonntag', color: '".$colorF."' },
{ start: '
$ostermontag', end: '$ostermontag', title: 'Ostermontag', color: '".$colorF."' },
{ start: '
$christihimmelfahrt', end: '$christihimmelfahrt', title: 'Christi Himmelfahrt', color: '".$colorF."' },
{ start: '
$pfingstsonntag', end: '$pfingstsonntag', title: 'Pfingstsonntag', color: '".$colorF."' },
{ start: '
$pfingstmontag', end: '$pfingstmontag', title: 'Pfingstmontag', color: '".$colorF."' },
{ start: '
$fronleichnam', end: '$fronleichnam', title: 'Fronleichnam', color: '".$colorF."' },


{ start: '
{$year}-01-01', end: '{$year}-01-01', title: 'Neujahr', color: '".$colorF."' },
{ start: '
{$year}-01-05', end: '{$year}-01-05', title: 'Heilige Drei Könige', color: '".$colorE."' },
{ start: '
{$year}-05-01', end: '{$year}-05-01', title: 'Tag der Arbeit', color: '".$colorF."' },
{ start: '
{$year}-06-23', end: '{$year}-06-23', title: 'Nationalfeiertag $zb in Luxemburg', color: '".$colorF."' },
{ start: '
{$year}-08-15', end: '{$year}-08-15', title: 'Maria Himmelfahrt $zb in Luxemburg', color: '".$colorF."' },
{ start: '
{$year}-10-03', end: '{$year}-10-03', title: 'Wiedervereinigung', color: '".$colorF."' },
{ start: '
{$year}-10-31', end: '{$year}-10-31', title: 'Reformationstag', color: '".$colorE."' },
{ start: '
{$year}-11-01', end: '{$year}-11-01', title: 'Allerheiligen', color: '".$colorF."' },
{ start: '
{$year}-11-11', end: '{$year}-11-11', title: 'Martinstag', color: '".$colorE."' },
{ start: '
{$year}-12-06', end: '{$year}-12-06', title: 'Nikolaus', color: '".$colorE."' },
{ start: '
{$year}-12-25', end: '{$year}-12-25', title: '1. Weihnachtsfeiertag', color: '".$colorF."' },
{ start: '
{$year}-12-26', end: '{$year}-12-26', title: '2. Weihnachtsfeiertag', color: '".$colorF."' },
{ start: '
{$year}-12-31', end: '{$year}-12-31', title: 'Silvester', color: '".$colorF."' },
"
;

$strAusgabe $strAusgabe.$strTemp;
}

return 
$strAusgabe;



(Demo Bild fcMODX Backend)

(Demo Bild fcMODX Frontpage)



Optional
EventDateMulti: Ein Custom TV-input-type mit jQuery Datepicker erstellen

Anstatt mit einer Text-TV die Daten per Hand einzugeben, benutze ich den Datepicker von Keith Wood, der per Mehrfachmarkierung (Multiple Days) mehrere Tage in das Feld schreibt.

Dazu müsst ihr diese 2 Dateien wie folgt erstellen:
core/model/modx/processors/element/tv/renders/mgr/input/datepicker-multiple.class.php
manager/templates/default/element/tv/renders/input/datepicker-multiple.tpl

Nachtrag für MODX 3
Ort für "datepicker-multiple.class.php" ist wahrscheinlich (ungetestet!):
core/src/Revolution/Processors/Element/TemplateVar/Renders/mgr/input/
1) datepicker-multiple.class.php:
<?php
/**
* jQuery Datepicker
*/ 
class modTemplateVarInputRenderDatepickerMultiple extends modTemplateVarInputRender {
    public function 
getTemplate() {
        return 
'element/tv/renders/input/datepicker-multiple.tpl';
    }
}
return 
'modTemplateVarInputRenderDatepickerMultiple';

2) datepicker-multiple.tpl (CSS und JS Pfade anpassen!):
{* Smarty-Syntax *}
{* popupDatepicker with configure the date format to match mysql date *}

<link rel="stylesheet" type="text/css" href="../assets/datepick/datepick.css" media="screen" />
<script src="../assets/js/jquery.min.js" type="text/javascript"></script>
<script src="../assets/datepick/datepick.js" type="text/javascript"></script>
<script src="../assets/datepick/datepick-de.js" type="text/javascript"></script>

<input id="tv{$tv->id}" name="tv{$tv->id}"
    type="text" class="textfield"
        value="{$tv->get('value')|escape}"
    {$style}
    tvtype="{$tv->type}"
    onblur="MODx.fireResourceFormChange();"/>

<script type="text/javascript">
// <![CDATA[
{literal}
$(function() {
$('#{/literal}tv{$tv->id}{literal}').datepick({dateFormat:'yyyy-mm-dd', multiSelect:99, monthsToShow:2, firstDay:1});
});
$(function() {
    var fld = MODx.load({
    {/literal}
        xtype: 'textfield'
        ,applyTo: 'tv{$tv->id}'
        ,width: '97%'
    {literal}
    });
    Ext.getCmp('modx-panel-resource').getForm().add(fld);
    MODx.makeDroppable(fld);
});
{/literal}
// ]]>
</script>


Die jQuery Datepicker Dateien sind hier im Anhang :-)


#47
LINUX / KDEtweaks
Letzter Beitrag von Jo - 2017-01-08 | 13:20:24
V19.05.034 - getestet mit (K)Ubuntu 16.04, 18.04 (KDE neon / MINT)
Achtung: Das Script ist nur für Debian Systeme - Link KDE Manjaro

Ich wollte mehr Komfort für ein paar oft getippte Terminal-Befehle um LINUX zu aktualisieren und sauber zu halten.
Daraus entstand die Idee per KDialog & Konsole dieses Script für eine einfache Systempflege zu schreiben, hier das Ergebnis.

Ein Klick und ohne Abfrage das komplette LINUX-System aktualisieren, reinigen, alte Kernel löschen oder reparieren
(Shell-Script und KDE-Desktop-Starter zum Download im Anhang - Dateien müssen ausführbar sein, chmod 0754)

Dieses Script für * KDE lässt sich gut als Miniprogramm in die Fensterleiste einfügen und kann ohne Passwortabfrage gestartet werden.

Zur besseren Überwachung was abläuft - siehe Bilder unten - sollte alles immer in der Konsole (Termnial) laufen wie im Script beschrieben (konsole -e ~/bin/KDEtweaks.sh). Alles ohne Gewähr! Macht Backups!

Shell-Script Menü:

  • System aktualisieren und reinigen
  • Pakete reparieren
  • alte Linux-Kernel anzeigen
  • Linux-Kernel wieder herstellen
  • UTF-8 Fehler beheben
  • alte Konfigurationen löschen
  • Paketlisten aufräumen
  • Zugriffsrechte/Besitzer aktualisieren
  • Obsolete Pakete anzeigen
  • NVMe SSD DEVICE S.M.A.R.T. LOG

Hinweis zu Punkt 1/2/3/9/10:
Diese Punkte können immer gefahrlos ausgeführt werden

  • neueinlesen der Paketlisten und installierte Pakete wenn möglich auf verbesserte Version aktualisieren und alte entfernen
  • leeren des Paketcaches und Pakete die nicht mehr in den Quellen verfügbar sind löschen
  • alle alten Kernel bis auf die beiden neuesten Kernel entfernen
  • bei evtl. Problemen kann mit Punkt 2 eine Neukonfiguration der Pakete gestartet werden

Hinweis zu Punkt 4:

Hinweis zu Punkt 5:

  • wer Kernels updatet und dabei die Fehlermeldung "No support for locale: de_DE.utf8" erhält, kann das hiermit fixen
  • das ist kein wirkliches Problem (nervig - aber harmlos) und wird hiermit behoben - kann ein paar Minuten dauern...

Hinweis zu Punkt 6:
Hier können zurückgebliebene Konfigurationen gelöscht werden - hatte damit noch nie ein Problem - dennoch Vorsicht!

  • deinstalliert man Pakete nicht vollständig, werden die Konfigurationsdateien nicht entfernt
  • diese können z.B. mit Synaptic in der Status Anzeige "Nicht installiert (zurückgebliebene Konfiguration)" gelöscht werden
  • per Konsole listet ihr Pakete mit 'rc' (remove-candidate) so: dpkg -l | grep ^rc | awk '{print $2}' (diese werden hier mit dem Menüpunkt 6 gelöscht)

Hinweis zu Punkt 7:

  • im Laufe der Zeit sammelt sich in /var/lib/apt/lists/ eine Menge an Listen an und nicht alle davon werden benötigt
  • mit dem Entfernen und das Neuladen dieser Listen lässt sich manchmal einiges an Speicherplatz einsparen

Hinweis zu Punkt 8:
Benutzte man für eine grafische Anwendungen sudo, kann das zu Rechte-Probleme führen.
Merke: Für Anwendungen mit einer GUI, nie sudo benutzen! Beheben könnt ihr das mit diesem Punkt, Achtung:

  • alle Dateien im home Ordner werden dem home user zugeschrieben und wenn gewünscht die Dateirechte (chmod 644/755) angepasst, dabei werden auch alle *.sh und  *.desktop Dateien ausführbar gemacht (chmod 0754)
  • wenn vorhanden werden die Zugriffsrechte des Ordners ~/public_html auch angepasst (siehe Apache Modul mod_userdir)
  • .xsession-errors wird auf 0 Bytes gesetzt (gelöscht und wieder erstellt) und dann ein unveränderlich Attribut gesetzt, wodurch verhindert wird, dass ein Prozess darauf schreibt (SSD Festplatten freuen sich ;-)

Hinweis zu Punkt 9:

  • Jedes Debian Paket durchläuft verschiedene Zweige innerhalb der Distribution von Experimental bis Stable. So kann es vorkommen das ein Paket nicht mehr durch den Upstream-Entwickler weiterentwickelt wird oder nicht mehr innerhalb von Debian betreut wird. Genauso gut kann ein Paket aus wichtigen Gründen umbenannt worden sein.
  • Zurück bleiben irgendwann nur noch obsolete Pakete, die keine Sicherheitsaktualisierungen mehr erhalten und im schlimmsten Fall nutzlos auf der Festplatte verkümmern. Nicht immer möchte man alle als obsolet eingestuften Pakete löschen.
  • Wenn man Pakete von Drittanbietern installiert hat, also manuell wie z.B. Skype (*.deb), würden diese mit purge ebenfalls entfernt. Damit so was nicht passiert, geht das übersichtlich mit der grafischen Synaptic Paketverwaltung in der Sektion "Installiert (lokal oder veraltet)".

Hinweis zu Punkt 10:

  • wenn nicht installiert, wird das Paket 'nvme-cli' installiert

Achtung: Script Variablen richtig setzten!

  • Variable "passwort" kann leer bleiben, dann werdet ihr bei jedem Aufruf nach dem Passwort gefragt
  • Das Passwort sollte nur gespeichert werden wenn euer Homeverzeichnis verschlüsselt ist
  • Flatpak ist eine Alternative zu Canonical snap Apps - Flatpak Updates kann mit "flatpak=1" aktiviert werden
  • Variable "kernel" muss richtig gesetzt sein - ab Ubuntu 18.04.2 kann wieder Rolling HWE Stacks genutzt werden (kein muss!)


#! /bin/bash
#
version="V19.05.034";
# Neu seit 33: nutze zusätzlich als ersten Befehl das Toolkit pkcon, wie von den KDE neon Entwickler empfohlen (apt bleibt, z.B. um alten Kernel zu entfernen)
# Quelle: https://neon.kde.org/faq#command-to-update
#
# wenn Script-Dateiname ".KDEtweaks.sh" und Ort /home/USER/bin/ ist, kann mit dem Dateimanager (z.B.Dolphin)
# eine "Verknüpfung zu Programm ..." erstellt werden (Kontextmenü -> Neu erstellen)
# Wichtig! Befehl: konsole -e ~/bin/KDEtweaks.sh
#
#
# wenn die Variable passwort leer ist, kommt bei Bedarf eine sudo Passwortabfrage
passwort="";
#
#
# Flatpak ist eine Alternative zu Canonical snap Apps, wenn du das benutzt mit einer 1 aktivieren, sonst 0
flatpak=0;
#
#
# welcher Kernel wird benutzt? Wichtig für Punkt 4, denn seit Ubuntu 16.04.2 werden Rolling HWE Stacks genutzt (kein muss!)
# ab Ubuntu 18.04 ist es wieder "linux-generic" (4.15 LTS) und bei 18.04.2 kann wieder "linux-generic-hwe-18.04 xserver-xorg-hwe-18.04" genutzt werden
kernel="linux-generic";
#
#
# Zugriffsrechte: alle /home Dateien chmod 644 und Ordner chmod 755 geben, wenn du das willst mit einer 1 aktivieren, sonst 0
# ACHTUNG! Wer Programme ohne sudo unter /home installiert hat (z.B. Tor Browser oder ein Flatpak mit dem Flag --user), sollte das nicht tun!
# *.sh und *.desktop Dateien werden ausführbar gemacht - Dateien ohne diese Extension sind dann nicht ausführbar!
# Setzt die Datei .xsession-errors auf 0 Bytes und unveränderbar!
# Wenn du mit Linux Zugriffsrechte nichts anfangen kannst, belasse es auf 0 !


zugriffsrechte=0;
#
#
#
#
# ab hier nur ändern wenn du weisst was du tust!
    # gibt es ein public_html im Homeordner?
    if [ -d ~/public_html ]; then
       html="1";
       else
       html="0";
    fi

    echo $version;
   
    if [ $passwort ] # Abfrage Passwort
        then
        echo ">--------------------------------------------------";
        echo "Hinweis: Dein Passwort ist im Script gespeichert";
        echo "--------------------------------------------------<";
    else echo "mit Dialog Passwort Abfrage weiter!";
        passwort=`kdialog --password "Dein root Passwort wird für diese Anwendungen benötigt!" 2>/dev/null`;
        if [ $? = 0 ]; then
           echo "OK";
        else
           exit;
        fi
    fi

    ###################################################################################

    answer=`kdialog --radiolist "Bitte wähle:" 1 "System aktualisieren und reinigen" on 2 "Pakete reparieren" off \
    3 "alte Linux-Kernel anzeigen" off 4 "Linux-Kernel wieder herstellen" off 5 "UTF-8 Fehler beheben" off \
    6 "alte Konfigurationen löschen" off 7 "Paketlisten aufräumen" off \
    8 "Zugriffsrechte aktualisieren" off 9 "Obsolete Pakete anzeigen" off 10 "NVMe SSD S.M.A.R.T. LOG" off 2>/dev/null`;

    case $answer in
        "1")
        #nur wenn kein PackageKit verwendet werden sool
        #echo $passwort | sudo -S -s apt update -y; sudo -S -s apt upgrade -y; sudo -S -s apt full-upgrade -y; sudo -S -s apt clean -y; sudo -S -s apt autoclean -y; sudo -S -s apt-get -f install -y;  sudo -S -s apt autoremove --purge -y;
        #pkcon und apt Befehle
        echo $passwort | sudo -S -s pkcon refresh force -c -1 && sudo -S -s pkcon update -y; sudo -S -s apt clean -y; sudo -S -s apt autoclean -y; sudo -S -s apt-get -f install -y;  sudo -S -s apt autoremove --purge -y;
           if [ $flatpak -gt 0 ]
              then
              echo;
              echo "suche Flatpak updates:";
              echo $passwort | sudo -S -s flatpak update -y;
              echo "Done";
           fi
        kdialog --msgbox "Systemaktualisierung fertig.\nBitte die Konsolenausgabe auf evtl. Fehler prüfen." 2>/dev/null;
        ;;
        "2")
        echo $passwort | sudo -S -s dpkg --configure -a; sudo -S -s apt upgrade -f -y; sudo -S -s apt full-upgrade -f -y;
        kdialog --msgbox "System ist repariert.\nBitte die Konsolenausgabe auf evtl. Fehler prüfen." 2>/dev/null;
        ;;
        "3")
        reset;
        dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d';
        kdialog --msgbox "Liste der alten Kernel einschließlich der Header-Dateien bis auf den aktuellen.\nHinweis: alte Kernel bis auf die beiden neuesten Kernel werden mit Punkt 1 entfernt." 2>/dev/null;
        ;;
        "4")
        echo $passwort | sudo -S -s apt install --reinstall linux-image-$(uname -r); sudo -S -s apt install $kernel -y;
        kdialog --msgbox "Aktueller Kernel wurde wieder hergestellt.\nBitte die Konsolenausgabe auf evtl. Fehler prüfen." 2>/dev/null;
        ;;
        "5")
        echo $passwort | sudo -S -s dpkg-reconfigure locales -u; sudo -S -s update-locale LANG=de_DE.UTF-8; sudo -S -s locale-gen --purge --no-archive; sudo -S -s update-initramfs -u -k all;
        kdialog --msgbox "UTF-8 Fehler wurden behoben.\nBitte die Konsolenausgabe auf evtl. Fehler prüfen." 2>/dev/null;
        ;;
        "6")
        echo $passwort | sudo -S -s apt purge `dpkg -l | grep ^rc | awk '{print $2}'` -y;
        kdialog --msgbox "Zurückgebliebene Konfiguration wurden gelöscht.\nBitte die Konsolenausgabe auf evtl. Fehler prüfen." 2>/dev/null;
        ;;
        "7")
        echo $passwort | sudo -S -s rm -rf /var/lib/apt/lists/*; sudo -S -s apt update -y;
        kdialog --msgbox "Paketlisten wurden aufgeräumt.\nBitte die Konsolenausgabe auf evtl. Fehler prüfen." 2>/dev/null;
        ;;
        "8")
        # Besitzrechte und Zugriffsrechte rekursiv in /home/USER dem Benutzer geben
        echo "Liste dein /home/USER/";
        echo $passwort | sudo -S -s ls ~;
        echo "";
        echo "Bitte warten...";

        # Besitzer: alle /home Dateien dem aktuellen Benutzer geben
        sudo chattr -i /home/$USER/.xsession-errors;         # veränderlich Attribut setzen
        sudo chown -R $USER:$USER /home/$USER/;

            # Zugriffsrechte: alle /home Dateien chmod 644 und Ordner chmod 755 geben
            if [ $zugriffsrechte -gt 0 ]
              then
              sudo find /home/$USER/ \( -type d -exec chmod 755 {} + \);
              sudo find /home/$USER/ \( -type f -exec chmod 644 {} + \);
            fi
       

            # nur wenn es im home Ordner ein public_html gibt:
            case "$html" in
            0) echo ""; #dummy
            ;;
            1) # Besitzer: alle public_html Dateien der Gruppe www-data geben
               # nur aktivieren wenn ~/public_html benutzt wird!
               sudo chown -R www-data:www-data /home/$USER/public_html/;

               # Zugriffsrechte: alle public_html Dateien chmod 664 und Ordner chmod 775 geben
               # nur aktivieren wenn ~/public_html benutzt wird!
               sudo find /home/$USER/public_html/ \( -type d -exec chmod 775 {} + \);
               sudo find /home/$USER/public_html/ \( -type f -exec chmod 664 {} + \);
            ;;
            *) echo "error html";;
            esac


            # *.sh und *.desktop ausführbar machen
            sudo find /home/$USER/ -name "*.sh" -exec chmod 0744 {} \;
            sudo find /home/$USER/ -name "*.desktop" -exec chmod 0744 {} \;
                       
            # .xsession-errors wird auf 0 Bytes gesetzt (gelöscht und wieder erstellt) und dann ein unveränderlich Attribut gesetzt,
            # wodurch verhindert wird, dass ein Prozess darauf schreibt (SSD Festplatten freuen sich ;-)
            rm -f /home/$USER/.xsession-errors;
            touch /home/$USER/.xsession-errors;
            sudo chattr +i /home/$USER/.xsession-errors;

        clear;

        # Im home Ordner sollten sich keine Dateien befinden die nicht dem Benutzer gehören!
        # Ausnahme: Wenn das Apache Modul mod_userdir und ~/public_html benutzt wird, gehören diese Dateien der Gruppe www-data.

        # Liste Dateien die nicht dem Benutzer oder www-data gehören!
        find ~ ! -user $USER -and ! -user www-data -ls;
        echo "";
        echo "##################################################################################";
        echo "";

            case "$html" in
            0) echo "*** hier sollte nichts stehen und alle Dateien gehören dir ***";
               echo "";
               echo "Hinweis: alle deine *.sh und *.desktop Dateien im Homeordner sind ausführbar!";
            ;;
            1) echo "*** hier sollte nichts stehen und alle Dateien - ausser im Ordner ~/public_html - gehören dir ***";
               echo "*** Dateien im Ordner ~/public_html gehören dem User www-data und chmod ist 664 bzw. 775 ***";
               echo "";
               echo "Hinweis: alle deine *.sh und *.desktop Dateien im Homeordner sind ausführbar!";
            ;;
            *) echo "error2";;
            esac

        echo "";
        echo "##################################################################################";
        echo "";
        kdialog --msgbox "Zugriffsrechte und Besitzer neu gesetzt.\nBitte die Konsolenausgabe auf evtl. Fehler prüfen." 2>/dev/null;
        ;;
        "9")
        echo $passwort | sudo -S -s apt install aptitude -y; #wenn nicht installiert
        reset;
        aptitude search '?obsolete';
        kdialog --msgbox "Liste von obsoleten Pakete können auch von Drittanbietern stammen.\nDaher sollten diese nur manuell gelöscht werden!\nTipp: Benutze dafür die Synaptic Paketverwaltung." 2>/dev/null;
        ;;
        "10")
        #echo $passwort | sudo -S -s apt install nvme-cli -y; #wenn nicht installiert
        #reset;
        echo $passwort | sudo -S -s sudo nvme --smart-log /dev/nvme0n1;
        kdialog --msgbox "NVMe SSD DEVICE S.M.A.R.T. LOG" 2>/dev/null;
        ;;       
        *) echo "abgebrochen";;
    esac

exit;


kein * KDE? OK, für GNOME/GTK muss das Script angepasst werden - z.B. 'gnome-terminal' anstatt 'konsole' und 'zenity' anstatt 'kdialog' (ungetestet, leider ist die Syntax nicht gleich). Alternativ könnt ihr die fehlenden KDE Pakete einfach nach installieren:
sudo apt install konsole kde-baseapps-bin oxygen-icon-theme
(kdialog ist in kde-baseapps-bin enthalten)









Bei Rückfragen zu Konfigurationsdateien: Wenn du selbst nichts geändert hast (davon gehe ich aus), nehme Datei vom Paketverteiler, also "Y" und Eingabetaste. Ansonsten die bereits vorhandene Konfiguration nur durch die Eingabetaste behalten (Vorgabe ist ja "N").




PS: Automatische Updates ohne Interaktion (nur Sicherheits-Updates)
Link: unattended-upgrades

#48
LINUX / TuTo: KDE neon installieren
Letzter Beitrag von Jo - 2016-12-04 | 17:20:45
Stand 2020-09-05
LTS = Long Term Support (langfristige Unterstützung)

Für alle die ein neues und stabiles KDE wollen gibt es ein
Rolling-Release-Desktop auf Ubuntu LTS Basis von den KDE-Entwicklern

HINWEIS:
Dieser Thread wurde für KDE neon geschrieben, das am Anfang auf Basis von Ubuntu 16.04 LTS (xenial) aufsetzte, danach auf 18.04 LTS (bionic) und seit Oktober 2020 auf 20.04 LTS (Fossa). Da KDE neon die "alte" LTS nicht weiter unterstützt, ist alle 2 Jahre ein großes Update notwendig. Ich habe mich davon verabschiedet. Weitere Gründe siehe hier: KDE neon Logbuch.

Ich lass den Thread mal so stehen, evtl. kann jemand was davon gebrauchen - wird aber nicht mehr gepflegt und basiert auf KDE neon unter Ubuntu 18.04

  • ab Ubuntu 18.04 LTS (bionic) gibt es z.B. kein gksu, kdesudo oder kuser mehr (deprecated)
  • auch ist die Unterstützung mit verschlüsselten /home Daten per ecryptf im Installationsprogramm deaktiviert
  • ist aber nachträglich möglich, siehe z.B. ecryptfs - home unter Debian verschlüsseln
  • mit LUKS (dm-crypt) kann man auch sehr gut Partitionen verschlüsseln, ich nutze VAULTS um Dateien oder Ordner zu verschlüsseln (ist bei KDE neon bereits standardmäßig installiert)
  • Update von xenial auf bionic ist laut Neon/BionicUpgrades möglich -> Achtung: macht unbedingt vorher ein Backup und wer PPA's nutzt sollte bei der xenial Version bleiben oder eine Neuinstallation machen
  • Ich bevorzuge eine sichere Neuinstallation und das Einbinden der vorhandenen /home Partition - wenn nicht verschlüsselt, ansonsten Backup wieder einspielen


VORWORT:
  • LINUX Benutzer die es einfach mögen und die Vielzahl der Einstellungsmöglichkeiten unter KDE als Nachteil sehen, kann ich das Linux MINT Cinnamon empfehlen. Mein TuTo hier ist sehr detailliert und auf meine Programm Favoriten konkretisiert welches ich oft so als Vorlage für Neuinstallationen bei Bekannten und Freunde nutze.
  • Warum ich KDE will? Dieser Desktop hat sehr viele Einstellungsmöglichkeiten, ist komfortabel und sieht einfach cool aus, nebenbei ist KDE neon auf aktuellen PC's sehr schnell und stabil!
  • Achtung: Wer ein stabiles und produktives System benötigt (z.B. Firmen PC), empfehle ich immer Ubuntu LTS mit Gnome Desktop oder MINT mit Cinnamon Desktop. Grund: KDE neon baut auf ein immer aktuelles Qt-Framework auf, leider kann es da auch mal zu kleinen Problemen kommen, die beim nächsten update gefixt werden - oder manuell gefixt werden muss (siehe Logbuch).
  • Bei KDE neon ist kaum Software mit an Bord. Das Installieren der gewünschten Anwendungen obliegt dem Nutzer und es geht hauptsächlich um ein aktuelles KDE.
  • KDE neon "User-LTS-Edition" wird 18 Monate mit neuen Versionen und Fehlerbereinigung unterstützt, aber ohne neue Funktionen. Die User-LTS-Edition ist so stabil, dass sie für sämtliche Nutzer empfohlen werden kann. Die nächste User-LTS-Edition 5.14 soll im August 2018 erscheinen (Quelle).  Update 2018-02-12: Das Konzept passt nicht so recht zu KDE neon, Link -> Hiding Neon LTS Edition.
  • KDE neon "User-Edition", mit dieser Edition erhält man immer die neuste freigegebene KDE Version, aber Achtung: Ein einfaches zurück zur User-LTS-Edition wird nicht unterstützt!
  • Seit Ubuntu 16.04.2 (nicht 18.04, erst wieder ab 18.04.2) benutzt KDE neon den LTS Enablement Stack-Support - siehe unten.



KDE neon hat eine stabile Basis und keine Kompromisse. Die KDE-Entwickler stellen damit eine Paketquelle bereit, die eine aktuelle Version des Plasma-Desktops enthält. Download Link: neon-user-current.iso (benutze diese Edition seit 31.05.2017 - siehe auch Punkt 2).

KDE neon soll keine eigenständige Linux-Distribution sein und unterscheide sich auch deutlich von sogenannten Rolling-Release-Distribution. Neon bietet nur eine zusätzliche Paketquelle auf Basis von Ubuntu LTS (18.04 LTS) und sei allein an aktueller KDE-Software interessiert. Auf diese Ubuntu Version setzen die KDE-Entwickler den aktuellen Plasma-Desktop mit aktuellen Qt, KDE und Frameworks ein.

Das Live-Image habe ich auf einen USB-Stick (z.B. mit Unetbootin oder usb-creator-kde) erstellt und die ersten Tests sahen sehr gut aus: Stabil, sehr schnell und neues Design. Euer Bildschirm ist dunkel? Siehe Option  nomodeset unten.

Also warum nicht KDE neon anstatt Kubuntu oder Mint KDE benutzen? Wer Linux kennt weiß das alle Dateien und Einstellungen in /home liegen und es sich besonders bewährt wenn diese Dateien auf einer eigenen Partition sind. Dank geringeren Konfigurationsaufwand ist die Umstellung auf ein anderes System dann schneller als eine komplette Neuinstallation indem die vorhandene /home Partition eingebunden aber nicht formatiert wird!

Da mein altes KDE 4.14 nicht mit dieser 5.x kompatibel war, hatte ich nur bestimmte Einstellungen behalten (z.B. VirtualBox, Firefox, GnuCash, FileZilla usw). Kontact/KMail hatte ich neu eingerichtet und war Dank IMAP und WebDAV schnell getan.

Hier mein TuTo um KDE neon 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 10 Minuten gedauert!  :biggrin:
Anstatt ext4 nehme ich btrfs "Better FS" als Filesystem und richte eine 512GB SSD Festplatte wie folgt in 3 Partitionen ein.
Hinweis: Die Bilder aus meiner VirtualBox zeigen euch die Installation von KDE neon 5.11.2 auf einer 20GB Festplatte!





Z.B. wenn 512GB Festplatte und 8GB-RAM (NVMe SSD funktioniert nur im UEFI Mode, siehe Nachtrag unten):
  • primäre Partition sda1 für / (root) ca. 20-30GB
  • primäre Partition sda2 für /home (den Rest der noch frei ist, minus was für sda3 swap benötigt wird)
  • primäre Partition sda3 für swap (so viel wie ihr RAM habt, jedoch nicht mehr als 8GB)
  • Bootloader auf sda lassen (ist Standard)



cool, KDE kopiert im Hintergrund während dem Einrichten schon die Dateien auf die Festplatte...  :cool:




Installation fertig, PC ohne USB Live-Image neu starten.
Laut KDE-Infozentrum habe ich nun KDE Plasma 5.11.2, KDE Framework 5.39, Qt 5.9.1, Kernel 4.10.0-38 64-bit


Update 2019-02-28
KDE Plasma 5.15.2, KDE Framework 5.55.0, Qt 5.12.0, Kernel 4.15.0-46 64-bit

oder check per Konsole
lsb_release -a



Dann geht es ans anpassen und zusätzliche Programme installieren

1 ) per Konsole Synaptic installieren
sudo apt install synaptic libgnome2-perl
2 ) im grafischen Synaptic Package Manager unter Einstellungen "Heruntergeladene Paketquelldateien nach der Installation löschen" aktivieren.
  • wer populäre unfreie Software für Ubuntu sucht, kann noch die Partner Quelle (deb http://archive.canonical.com/ubuntu/ bionic partner) aktivieren und findet damit evtl. auch Skype. Oft gibt es proprietäre Software für Debian (Ubuntu/Mint/KDE) auch als DEB-Datei (*.deb) zum manuellen installieren, z.B.  skype. Achtung: Proprietäre Software kann ein Sicherheitsrisiko sein! Skype Alternative per Browser: web.skype.com/de
Hinweis: Wenn ihr noch die "User-LTS-Edition" installiert habt (wird offiziell nicht mehr zum Download angeboten) könnt ihr hier auf die "User-Edition" umschalten und erhaltet die neueste offiziell freigegebene KDE-Software. Einfach das "lts" in der Paketquelle (http://archive.neon.kde.org/user/lts/) entfernen und die Paketinformationen neu laden:
pkcon refresh force -c -1 && pkcon update
sudo apt autoclean; sudo apt clean; sudo apt autoremove --purge
Achtung: Das Umschalten von "User-Edition" auf "User-LTS-Edition" Archiv wird nicht unterstützt!
Seit Juni 2017 installiere ich nur noch die "User-Edition", da diese mit Plasma >= 5.10 sehr gut läuft.

User-Paketquellen KDE neon (bionic) mit PPA Gambas und Firefox-ESR (2018-09-30)


3 ) die deutschsprachige Dateien für KDE Anwendungen und Rechtschreibung installieren
sudo apt install language-pack-kde-de hunspell-de-de(hunspell ist der Nachfolger von myspell)

4 ) Mozilla Firefox: Lesezeichen importiert und evtl. diese Add-ons installieren

Firefox->Einstellungen->Inhalt->Sprachen: Deutsch [de] und Deutsch/Deutschland [de-de] (falls nicht vorhanden hinzufügen)


Konfigurations- und Datendateien von xul-ext-ubufox löschen:
sudo apt purge --auto-remove xul-ext-ubufox
Alternativen zu Firefox, einfach parallel testen oder ihr bevorzugt schon einen anderen Browser?
a)
Chrome ist in den Archiven nicht verfügbar und kein quell-offener Browser (basiert auf Chromium und ist eine proprietäre Software der man vertrauen muss).
Link: Chrome .deb-Datei zum runter laden und installieren
b)
Chromium ist quell-offen und in den Paketquellen verfügbar.
sudo apt install chromium-browser chromium-browser-l10n chromium-ublock-originc)
Firefox-ESR ist ein quell-offener Browser mit Langzeit-Support (Link).
Per PPA installieren:
sudo add-apt-repository ppa:mozillateam/ppa
sudo apt update
sudo apt install firefox-esr firefox-esr-locale-de flashplugin-installer
d)
Falkon ist ein KDE Standardbrowser (Link, quell-offen aber leider noch nicht ganz ausgereift).
Falkon verbraucht weniger Systemressourcen als die großen Browser wie Mozilla Firefox oder Google Chrome und enthält von Haus aus einen Adblocker
sudo apt install falkon pepperflashplugin-nonfreee)
Pale Moon ist mein derzeitiger Browser, dieser muss manuell installiert werden und ist quell-offen. Pale Moon ist ein Fork von Firefox, benötigt weniger Systemressourcen und gefällt einfach. Per Themes lässt sich das Aussehen auch an dem neuen Firefox (Australis) oder z.B. MAC anpassen.
Die Entwickler bieten ein OBS-Repository als Fremdquelle an, Link zum opensuse-Projekt von Steven Pusser: Repository hinzufügen und manuell installieren oder Binärpaket (*.deb) herunterladen

Für Repository KDE neon (Ubuntu 18.04) führt folgendes aus:
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/stevenpusser/xUbuntu_18.04/ /' > /etc/apt/sources.list.d/home:stevenpusser.list"
Schlüssel des Repositories zu apt hinzufügen und installieren:
wget -nv https://download.opensuse.org/repositories/home:stevenpusser/xUbuntu_18.04/Release.key -O Release.key
sudo apt-key add - < Release.key
sudo apt-get update
rm ~/Release.key
sudo apt-get install palemoon
  • deutsches Sprachpaket, beachte die Infos dort (about:config -> general.useragent.locale von "en-US" auf "de" setzen)
  • Pale Moon unterstützt keine WebExtensions, daher funktioniert nur das ältere Deusche 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)
  • Toggle JavaScript (Enabled/Disabled)
  • Eclipsed Moon Preference, das Add-On funktioniert unauffällig, indem aktuelle, allgemein bekannte Benutzer-Agent-Zeichenfolgen und Betriebssysteme verwendet werden, um sich der Menge anzuschließen. Als "Static Mode User Agent" kann auch ein aktueller Browser eingetragen werden (manche Seiten verlangen eine bestimmte Version), z.B.: "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:64.0) Gecko/20100101 Firefox/65.0.2"
    Test: browsercheck.me
  • Pale Moon härten mit firejail (Profil ist vorhanden), Anwendung starten mit: firejail palemoon %u
Wer also mit der Performance von Firefox nicht zu zufrieden ist, oder die WebExtensions nicht möchte, der sollte Pale Moon auf jeden Fall ausprobieren.

5 ) KDE Discover (Programmverwaltung) informiert über Aktualisierungen

Leider macht der KDE Discover hin und wieder Probleme und daher benutze ich solche Programme NICHT zum Aktualisierungen.
Mache das nur per Synaptic oder Konsole, z.B. mit einem Update-Script -> KDEtweaks zum Aktualisieren, reinigen oder reparieren. Eventuelle Probleme sind damit leichter zu erkennen und können schnell repariert werden, was der Discover leider (noch) nicht kann. Siehe auch KDE neon LOG.

6 ) Dann in der KDE Systemeinstellungen nach Bedarf ein paar Feineinstellungen, z.B.
  • Erscheinungsbild -> Schriftarten  -> Wer einen 2K (QHD) oder sogar 4K (UHD) Monitor benutzt kann hier die DPI für Schriften anpassen
  • Erscheinungsbild -> Anwendungs-Stil -> Fensterdekoration -> Knöpfe: evtl. die Titelleiste anpassen (bei mir hatte das Menü gefehlt)
  • Arbeitsbereich -> Arbeitsflächen-Verhalten -> Bildschirmsperre -> Aktivierung: 5 Min. | 300 Sek. | Meta+L | Erscheinungsbild: Diaschau, Virtuelle Arbeitsflächen 2
  • Arbeitsbereich -> Arbeitsflächen-Verhalten -> Arbeitsbereich -> Klickverhalten: Doppelklick zum Öffnen der Dateien/Ordner
  • Arbeitsbereich -> Fensterverwaltung -> Fensterverhalten, im TAB "Fenster" Sondertaste: "Meta" (wichtig wenn ihr z.B. VirtualBox mit Windows benutzt)
  • Arbeitsbereich -> Suchen -> Dateisuche: habe hier alles deaktiviert (beendet den baloo_file_extractor Prozess und die Suche nach Dateinamen funktioniert weiterhin; Indexinformationen löschen: rm -rf ~/.local/share/baloo)
  • Arbeitsbereich -> Starten und Beenden -> Arbeitsflächen-Sitzung: Abmeldung bestätigen aus, Rechner ausschalten, Mit leerer Sitzung starten
  • 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 -> Anwendungen -> Standard-Anwendungen: Webbrowser: firefox (evtl. chrome oder palemoon?) / E-Mail-Programm: kmail (evtl. evolution oder thunderbird?)
  • Persönliche Informationen -> Anwendungen -> Dateizuordnungen: hier die gewünschte Standardprogramme anpassen z.B. für audio, image und video
  • Hardware -> Eingabegeräte -> Tastatur: Zahlenblock beim Plasma Start, Maus: Zeigerbeschleunigung anpassen
  • 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 ...

Tipp: Alte Hardware oder lahme Grafikkarte? Dann schaltet die Desktop Effekte aus: Hardware -> Anzeige und Monitor -> Compositor

7 ) per Konsole die aktuellste/stabile Version von LibreOffice einbinden und installieren
sudo add-apt-repository ppa:libreoffice/ppa
pkcon refresh force -c -1 && pkcon update
sudo apt install libreoffice libreoffice-l10n-de libreoffice-pdfimport libreoffice-style-breeze

8 ) ebenso die ppa Gambas3 Framework einbinden damit meine Programme laufen und nur die gambas3-runtime installieren
sudo add-apt-repository ppa:gambas-team/gambas3; sudo apt-get update
sudo apt install gambas3-runtime
nur wer die Gambas3 IDE (Entwicklungsumgebung) benötigt installiert alles:
sudo apt install gambas3 automake makeself
9 ) dann noch ein paar fehlende Programme & Tools
sudo apt install kubuntu-restricted-extras partitionmanager amarok backintime-kde kolourpaint lame mencoder ttf-mscorefonts-installer skanlite frei0r-plugins liquidsoap-plugin-frei0r devede winff vlc browser-plugin-vlc gimp gimp-plugin-registry kfind kwave ecryptfs-utils rsync rar imagemagick libjpeg-progs libheif-examples libdvdread4 pingus kmahjongg aisleriot kate usb-creator-kde mediainfo mediainfo-gui ksystemlog okular kcalc kdegraphics-thumbnailers kio-extras ffmpegthumbs printer-driver-cups-pdf apt-xapian-index exfat-utils software-properties-kde unattended-upgrades handbrake samba kdenetwork-filesharing gthumb firejail
virtueller PDF Drucker und SW für HP-Drucker (sollte in der Standardinstallation enthalten sein)
sudo apt install printer-driver-cups-pdf hplipfür das Einrichten des virtuellen PDF Drucker wird Admin Rechte benötigt (z.B. 600 DPI und PDF Version 1.4 einstellen):
sudo kcmshell5 kcm_printer_manager
Epson war schon immer ein Problem (daher vermeide ich diese Marke). Wenn euer Epson-Drucker nicht mag, versucht hier einen passenden Linux Treiber zu finden: download.ebz.epson.net/dsc/search/01/search/searchModule

Eine gute Alternative zu Adobe PDF ist die Linux-Version Master PDF Editor (unterstützt z.B. auch XFA).

10 ) Kontact ist ein Paket das die Programme KMail, KOrganizer und KAddressBook usw unter einem Hut vereint
sudo apt install kontact kmail kaddressbook korganizer knotes akregator aspell-de libqt5webengine5Benötigt das Akonadi-Framework. Musste bei einem Bekannten wegen Akonadi und KMail Probleme einmal alle Dateien von Akonadi im Homeverzeichnis löschen und die Datenbank zurücksetzen (Link), seit dem rennt es wieder.

Eine gute alternative ist evtl. auch Evolution, das ist ein Gnome E-Mail und -Kalender Programm
sudo apt install evolution language-pack-gnome-de gnome-keyring seahorse gnupg2Kontact oder Evolution ist Geschmackssache, finde beide gut da diese Programme IMAP, CardDav, CalDav und openPGP nativ unterstützen  :smilie:
(Hinweis: gpg funktioniert mit Evolution nur wenn ihr gpg2 benutzt)
Evtl. müsst ihr den Schlüsselbund in der Desktopumgebungen per Login entsperren:
VISUAL=kate sudoedit /etc/pam.d/sddmSiehe auch Schlüsselbund in anderen Desktopumgebungen automatisch entsperren.
(Seahorse = Schlüsselverwaltung, Schlüsselbund Reset: rm -v ~/.local/share/keyrings/*.keyring)

11 ) Smartphone Dateisystem-Treiber (Handy), wenn
- Apple iPhone (iOS): Treiber libiphone verwenden um iPhone und iPod Touch-Geräte ohne jailbreak zu verbinden
sudo apt install libimobiledevice-utils ifusewenn Ubuntu 16.04 mit iOS 11 oder iOS 12, siehe hier: iOS mit libimobiledevice

- für Android gibt es KDE Connect

12 ) braucht wohl nicht jeder?
sudo apt install smb4k filezilla virtualbox virtualbox-qt virtualbox-guest-additions-iso virtualbox-dkms dkms k3b gnucash kdenlive liquidsoap-plugin-frei0r inkscape kid3-qt ripperx mariadb-server apache2 apache2-utils php-curl php-gd phpmyadmin php-imagick git id-utils xterm perl autotools-dev libdvdread4 geany gprename gnome-commander gedit dconf-editor
Hinweis: Beim konfigurieren des phpMyAdmin muss "apache2" gewählt werden! Siehe auch Webserver einrichten.

digiKam mit MariaDB (mySQL) nutzen
sudo apt install digikam libqt5sql5-mysql MariaDB muss dafür eingeichtet sein. Z.B. mit phpMyAdmin eine Datenbank 'digikam' erstellen und digiKam damit migrieren.

13 ) Wenn Virtualbox und/oder Apache installiert ist, müssen noch die Benutzer zu den Gruppen "vboxusers" und "www-data" hinzufügt werden
sudo adduser $USER vboxusers
sudo adduser $USER www-data

Hier kommt der Punkt wo ihr den PC neu starten solltet (kein muss), wie oft hätte wohl dieses andere Betriebssystem gestartet?

14 ) alles aufräumen
sudo apt autoclean; sudo apt clean; sudo apt autoremove --purge
Deinstalliert man Pakete nicht vollständig, werden die Konfigurationsdateien nicht entfernt. Schaut in der Synaptic-Paketverwaltung unten auf "Status" und wählt dann den Menü-Punkt "Nicht installiert (zurückgebliebene Konfiguration)". Überall was dann an Paketen auftaucht ein Häkchen setzen und "Zum vollständigen Entfernen vormerken" und anwenden.
Oder per Konsole (Terminal) diese Pakete mit 'rc' (remove-candidate) aulisten:
dpkg -l | grep ^rc | awk '{print $2}'Seit ihr der Sache sicher, können die Pakete bzw. Konfigurationsdateien vollständig entfernt werden:
sudo apt purge `dpkg -l | grep ^rc | awk '{print $2}'`
Root-Rechte
Für viele Einsteiger ist es verwirrend, dass sie Dateien in Systemordnern nicht ohne weiteres bearbeiten, kopieren etc. können. Diese Einschränkung ist ein essentieller Baustein des Sicherheitskonzepts von Linux. Möchte man beispielsweise Dateien mit einem Dateimanager in einen Systemordner kopieren oder ausführbar machen, so muss man sich zuerst die dazu nötigen Rechte mit dem Befehl sudo bzw. seinen grafischen Varianten geben. Bei KDE wäre das dann "kdesudo dolphin". Merke: Für Anwendungen mit einer GUI, nie sudo benutzen!

Update 2017-02-17 Blogbeitrag von KDE-Entwickler Martin Grässlin
Kurz gesagt: GUI-Apps mit Root-Rechten im X Window System (X11) auszuführen sind ein großes Sicherheitsrisiko und gilt als Todsünde. Daher lässt sich Dolphin, Kate und KWrite nicht mehr mit sudo ausführen. Bei dem Versuch "kdesudo dolphin" auszuführen bekommt ihr nun die Meldung: "Executing Dolphin as root is not possible".
Konsolenaufrufe mit sudo starten die GUI komplett mit Root-Rechten und das könnte auf irgendeine Art und Weise missbraucht werden.
Um eine Datei dennoch mit Kate zu editieren könnt ihr sudoedit verwenden (auf linuxundich.de gut erklärt: Sudoedit, das bessere sudo $editor).

Also anstatt:
kdesudo kate /meine/dateiso
VISUAL=kate sudoedit /meine/datei
Alternativ könnt ihr eine root Datei ohne sudo öffnen (read only) und bearbeiten, beim Speichern werdet ihr dann nach dem sudo Passwort gefragt, z.B.:
kate /etc/default/grub
In /home/DeinName/ sollten sich keine Dateien befinden die root gehören. Abfrage:
find ~ ! -user $USER -lsWenn kein ~/public_html (apache userdir) benutzt wird, sollte die Ausgabe leer sein und ihr könnt zum Punkt 15 gehen, sonst:

Besitzrechte aller Dateien rekursiv in /home/USERNAME dem USER geben
sudo chown -R $USER:$USER /home/$USERwieder prüfen:
find ~ ! -user $USER -ls(Liste sollte nun leer sein)

Wer das Apache Modul mod_userdir und ein ~/public_html benutzt muss die Besitzrechte auf www-data ändern und der Gruppe $USER im Ordner Schreibrechte geben:
find /home/$USER/public_html/ \( -type d -exec chmod 775 {} + \) -or \( -type f -exec chmod 664 {} + \)
sudo chown -R www-data:www-data /home/$USER/public_html
wieder prüfen:
find ~ ! -user $USER -lsNur die Dateien von ~/public_html  werden angezeigt (gehören dem User www-data)

15 ) mit der KDE-Partitionsverwaltung (Partitionmanager) die Festplatte via SMART-Status prüfen ob diese OK ist  :-[


16 ) wer genug Arbeitsspeicher hat (ab 8GB) kann evtl. noch eine "dynamic RAMDisk" erzeugen, siehe auch SSD Optimierung

17 ) noch die Fensterleiste nach Bedarf anpassen und fertig!






weitere Tipps zu KDE neon


Live-Image - wenn Grafikkarte die Option nomodeset erfordert
Bei einem Start bleibt bzw. wird der Bildschirm schwarz, ist die Ursache oft der Grafikkartentreibern. In der Boot-Option (linke Shift-Taste beim Starten gedrückt halten) könnt ihr mit F6 (Other Options) "nomodeset" aktivieren und "Try without installing" fortfahren. Evtl. müsst ihr euch als User "neon" ohne ein Passwort anmelden und dann mit "startx" den Display Manager starten.



Der Grub Countdown (/boot/grub/grub.cfg: set timeout=30) kann hier angepasst werden, z.B. 2 anstatt 30 Sekunden:
VISUAL=kate sudoedit /etc/default/grub
starten und diese Zeilen anpassen:

GRUB_THEME=/boot/grub/themes/breeze/theme.txt
GRUB_CMDLINE_LINUX_DEFAULT="noplymouth"
GRUB_CMDLINE_LINUX=""
GRUB_TIMEOUT=2

Anschließend muss GRUB 2 aktualisiert werden:
sudo update-grub Tipp: "noplymouth", damit man die Kernelmeldungen beim Ladeprozess mitverfolgen kann.

PS: Wenn euch die grub-theme-breeze fehlt, könnt ihr das nachinstallieren
sudo apt install grub-theme-breeze

Schneller Booten
Ab Ubuntu 16.04 läuft das System unter dem Hintergrundprogramm (Daemon) Systemd und damit natürlich auch KDE neon. 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.


Zusätzliche Treiber installieren (z.B. nicht freie Grafikkarten, WLAN-Karten Treiber oder Microcode)
Zeigt eine Hardware Liste welche zusätzliche Treiber benötigten
ubuntu-drivers devicesinstalliert alle benötigten zusätzlichen Treiber automatisch
sudo ubuntu-drivers autoinstalloder per gui (grafisch)
sudo apt install kubuntu-driver-manager
Ihr habt eine Broadcom bcm43xx WLAN Karte? Z.B. HP Compaq 615 mit WLAN Broadcom Corporation BCM4312
sudo apt install b43-fwcutter firmware-b43-installer

Software-Paketquellen und PPA (Personal Package Archive)
Mit der Programmverwaltung (Discover) könnt ihr unter "Einstellungen" auch eine Repository aktivieren/deaktivieren oder löschen. Das ist praktisch wenn z.B. eine PPA deaktiviert werden soll. Ein gutes Tool dafür ist auch software-properties-kde das sich in älteren Versionen in Discover (Einstellungen -> Weitere ... -> Software Sources) eingebunden hatte.
Tipp: Startet das Tool direkt per Konsole
sudo -H software-properties-kde

Wer es lieber händisch mit einem Editor per Konsole mag:
VISUAL=kate sudoedit /etc/apt/sources.listweitere Listen mit weiteren Softwarequellen (auch PPA's) liegen im Ordner /etc/apt/sources.list.d/ z.B.
VISUAL=kate sudoedit /etc/apt/sources.list.d/neon.listVISUAL=kate sudoedit /etc/apt/sources.list.d/libreoffice-ubuntu-ppa-bionic.listVollständige Ausgabe aller sources.list
cat /etc/apt/sources.list /etc/apt/sources.list.d/*.list

Signierungsschlüssel von gelöschten PPAs können komplett aus den APT-Schlüsseldatenbanken entfernt werden (das geht mit software-properties-kde eindeutig besser).
In der Datenbank den ID-Name des richtigen Schlüssels suchen:
apt-key list
Ein Ausschnitt könnte folgendermaßen aussehen:

  /etc/apt/trusted.gpg
  --------------------
  pub  2555R/6A42FC42 2015-03-20 [verfällt: 2022-02-02]
  uid                  home:tabos-team OBS Project <home:tabos-team@build.opensuse.org>

Soll nun der Schlüssel der PPA von "tabos-team" entfernt werden, müssen diese 2 Befehle ausgeführt werden:
sudo apt-key --keyring /etc/apt/trusted.gpg del 6A42FC42am Ende wie immer die Paketquellen aktualisieren:
sudo apt update

alte Linux-Kernel löschen (ohne Garantie!)
sudo dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purgealte Linux-Kernel löschen bis auf die beiden neuesten Kernel (empfohlen!)
sudo apt autoremove --purge

UTF-8 Fehler bei Kernel Update
Diesen Schönheitsfehler lässt sich mit dem Befehl beheben:
sudo dpkg-reconfigure locales -u; sudo update-locale LANG=de_DE.UTF-8; sudo locale-gen --purge --no-archive; sudo update-initramfs -u -k alldamit wird das Sprach-System neu konfiguriert (kann etwas dauern...)


aktuellen Linux-Kernel wieder herstellen
Unter Umständen kann zur Reparatur des aktuell laufenden Kernels eine Neuinstallation nötig sein:
sudo apt install --reinstall linux-image-$(uname -r)

Sollte euch die Synaptic-Paketverwaltung in der Sektion Installiert (lokal oder veraltet) ein Paket als alt anzeigen oder hat Konflikte mit einem anderen Paket, hilft nur das Entfernen des Paketes und seiner Abhängigkeiten. Gelöschte Pakete notieren:
awk '$3 == "remove" { print $1, $2, $4 }' /var/log/dpkg.logdann:
sudo apt update; sudo apt upgrade; sudo apt full-upgrade
sudo apt clean; sudo apt autoclean; sudo apt-get -f install; sudo apt clean; sudo apt autoremove --purge
und die Pakete neu installieren, z.B.:
sudo apt install neon-desktop ......


Samba Fehlermeldung fail: starting smb/cifs file and active directory server beheben: LINK

Probleme mit dem Plasma-Desktop?
Nach vielen Updates und Experimenten mit diversen Drittprogrammen (z.B. Roger-Router) hatte ich unter KDE manchmal das Problem, dass der Bildschirm nach dem Einloggen dunkel blieb oder bei einem Bekannten die Maus extrem verzögert war.
Unter einer anderen User-ID traten diese Probleme nicht auf, daher kam mir die Idee einfach den gesamten Cache im /home des Users zu löschen:
rm -fr ~/.cacheNach einer Neuanmeldung lief dann alles wieder rund. Vielleicht hilft es jemanden mit gleichen oder ähnlichen Problemen?

LTS Enablement Stack-Support
Mit dem LTS Enablement Stack-Support bekommt auch eine LTS-Version einen neuen Kernel samt dem zugehörigen X.Org-Stack und Mesa. Die vorher genutzte Methode mittels Backport-Kerneln wurde aufgegeben. Wer Probleme mit neuer Hardware Erkennung hat, kann hiermit immer den neusten stabilen Kernel aus der Ubuntu Welt erhalten.

Wer vor August 2017 KDE neon auf Basis von Ubuntu 16.04 installiert hat kann das nachträglich installieren - wenn alles sauber läuft würde ich das nicht tun.
Hier werden die Änderungen simuliert, also keine Änderung am System:
sudo apt -s install --install-recommends linux-generic-hwe-16.04 xserver-xorg-hwe-16.04Hier werden die Änderungen ausgeführt und ein Neustart des Systems ist notwendig:
sudo apt install --install-recommends linux-generic-hwe-16.04 xserver-xorg-hwe-16.04Ab Februar 2019 soll es auch einen Stack für Ubuntu 18.04 geben.
Quelle: LTS Enablement Stacks

weitere Tipps hier im Forum:
Ohne Abfrage das komplette LINUX-System aktualisieren u.v.m.
LINUX aktualisieren

KDE Kontrolleiste oder den ganzen Plasma 5 Desktop wiederherstellen
KDE Plasma 5 Desktop wiederherstellen


Nachtrag NVMe SSD
Eine NVM Express M.2 (kurz NVMe) SSD, wie z.B. die Samsung 970 EVO oder PRO, benötigt eine EFI-Systempartition (ESP) die mit FAT32 formatiert ist und normalerweise 100MB groß ist. Mit Secure Boot sollte Ubuntu problemlos klar kommen, da ich kein MS nutze (nur per VM) habe ich Secure Boot auf disabled gestellt. Hier ist nur der UEFI Mode wichtig und der Secure Kram ist Nebensache. Partition Beispiel bei einer 1GB NVMe mit einer EFI-Partition:



#49
LINUX / KMail mit OpenPGP
Letzter Beitrag von Jo - 2016-05-29 | 22:51:57
Vorwort:
Warum eigentlich PGP (Pretty Good Privacy) benutzen?
Das ist doch alles umständlich und ich muss mich stundenlang einlesen. OK das war es dann, bitte nicht weiterlesen, ist doch alles Zeitverschwendung.

Wer doch etwas Zeit hat und dem Privatsphäre wichtig ist, hier die einfache Antwort: PGP schützt die Privatsphäre! Egal ob ihr nun eine politische Kampagne plant, über euer Einkommen redet, mit dem Steuerberater oder der Bank kommuniziert oder einfach eine Affäre geheimhalten wollt - es geht andere einfach nichts an!

OK ihr könnt denjenigen auch eine verschlüsselte ZIP-Datei senden und das Passwort per Telefon mitteilen, aber bei öfteren Kontakt ist PGP... naja eben einfacher und die komplette E-Mail samt Anhang ist mit einem Klick verschlüsselt.

PGP verwendet eine asymetrische Verschlüsselung und nutzt daher einen öffentlichen und einen privaten Schlüssel. Den öffentlichen Schlüssel (public key) gebe ich bekannt, und mit diesem können dann andere ihre E-Mails an mich verschlüsselt senden. Entschlüsseln kann ich diese Mails dann nur mit meinem privaten Schlüssel.

Ich selbst habe PGP unter LINUX KDE installiert und für meine E-Mail-Adresse auch den Schlüssel erzeugt, allerdings kenne ich so gut wie niemanden der das auch nutzt. Das liegt wohl auch daran, dass ich nur Kunden denen ich PGP nahe lege das dann auch einrichte (auf LINUX oder OS X).

Viele benutzen anstatt einem E-Mail-Client (z.B. KMail, Evolution oder Thunderbird) nur noch Webmail Dienste, z.B. von GMail, GMX, Web.de oder 1&1. Wer diese Anbieter vertraut, kann dort PGP zur E-Mail-Verschlüsselung aktivieren. Die Variante ist browserbasiert mit dem Open Source Mailvelope umgesetzt und kommt für mich nur auf meinem eigenen PC in Frage, da die Schlüssel im Webbrowser gespeichert und verwaltet werden. "Nutzungsstatistiken und Absturzberichte automatisch senden" sollte man dann besser deaktvieren.
Nachtrag: Mein secure-webmail könnte das auch, jedoch bevorzuge ich dort das serverseitige OpenPGP :wink:

Die sicherste Variante ist ein E-Mail-Client mit PGP auf einer verschlüsselten Festplatte zu benutzen!




PGP unter KDE einrichten:
KMail ist Bestandteil von Kontact und unterstützt nativ das automatische verschlüsseln per OpenPGP.
Damit ist es möglich E-Mails zu verschlüsseln und verschlüsselte E-Mails zu entschlüsseln.


Vorteile:

  • sichere E-Mail- und Datei-Verschlüsselung
  • man kann auch eine Nachricht signierenen ohne verschlüsseln zu müssen
  • Open-Source-Programm
  • das Programm ist kostenlos

Installieren per Terminal:
sudo apt-get install kgpg kleopatra

Kleopatra ist ein KDE Tool für die Verwaltung von X.509 und OpenPGP Zertifikate.
KGpg ist ein grafisches Frontend für das Verschlüsselungsprogramm GnuPG, mit dem sich das GnuPG-Schlüsselbund verwalten sowie eigene GnuPG-Schlüssel importieren und erstellen lassen.

GnuPG und gpg-Agent muss noch konfiguriert werden. Dazu wird in der Datei ~/.gnupg/gpg.conf die Zeile "use-agent" eingefügt:
echo "use-agent" >>  ~/.gnupg/gpg.conf

Hinweis:
Wenn ihr KGpg nicht starten könnt (findet ihr unter Dienstprogramme), liegt das evtl. daran, dass es sich in der KDE Kontrollleiste befindet, siehe "Ausgeblendete Symbole"  :wink:
Damit kann auch der "Geheime Schlüssel" (private key) auf ein sicheres externes Laufwerk als Backup kopiert werden.

Ein Schlüsselserver (key-server) bietet Zugang zu öffentlichen Schlüsseln und diese sollten mit dem dazugehörigen Fingerprint aus einer anderen sicheren Quelle (z.B. persönlich per Telefon) geprüft werden.

Auch solltet ihr bedenken, dass diese Schlüsselserver als Quelle von E-Mai-Adressen z.B für Spam missbraucht werden können. Daher benutze ich keine Schlüsselserver!


private-key:
Für den privaten Schlüssel solltet ihr ein einmaliges und mind. 10-stelliges Passwort aus Buchstaben, Zahlen und einem Sonderzeichen verwenden!


public-key:
Meinen öffentlichen PGP-Schlüssel findet ihr auf meiner Impressum Seite. Die E-Mail und den passenden Fingerprint dazu werde ich hier natürlich nicht veröffentlichen.


Links:

#50
CMS / MODX getRandPicture
Letzter Beitrag von Jo - 2016-05-05 | 15:47:19
Snippet Aufruf für Zufallsbilder:

<?php
# V 22.12.003
#
# Beispiel Snippet Aufruf für Zufallsbilder:
# [[!getRandPicture? &url=`images/gallery/bodensee2009` &ext=`jpg`]]
# oder per TV
# [[!getRandPicture? &url=`images/[[*tvRandPicture]]` &ext=`jpg`]]
# <img alt="[[+image_title]]" class="photos" src="[[+image_folder]][[+image_name]]" />
#
# Variablen -Start------------------->
   # Datei-Endung
     
$strExt '.'.$modx->getOption('ext',$scriptProperties,'jpg');
   
# Bilder-Ordner
     
$strURL $modx->getOption('url',$scriptProperties,'images');
     
$folder = (isset($folder))?$folder:$strURL;
     
$imgDir opendir($folder);
   
# Fehler-Bild
     
$defaultImage = (isset($defaultImage))?$defaultImage:$modx->config['base_url'].'images/icons/icon-error.png';
# Variablen -Ende-------------------<

$images = [];
$is_image '';

while (
$file readdir($imgDir))
{
    
# prüfe ob die Datei ein Bild ist
    
$file_type strrchr($file'.');

    if (
$file_type == $strExt){
        
$is_image true;
    }

    
$is_thumb = !strncmp($file'.thumb_'7);
    if (
$file != '.' && $file != '..' && $is_image && !$is_thumb){
        
$images[] = $file;
    }
}
closedir($imgDir);


# Platzhalter
$modx->setPlaceholder('image_folder'$folder.'/');
if (
count($images) > 1)
{
    
srand(( double )microtime()*1000000);
    
$image_name $images[rand(0sizeof($images)-1)];
    
$modx->setPlaceholder('image_name'$image_name);
    
$image_title str_replace('.'.$ext,'',$image_name);
    
$image_title str_replace('_',' ',$image_title);
    
$image_title strtoupper($image_title);
    
$modx->setPlaceholder('image_title'$image_title);
    return;
}

# wenn keine Bilder im Ordner sind
 
$modx->setPlaceholder('image_folder''');
 
$modx->setPlaceholder('image_name'$defaultImage);
 return;