Einträge zu Tag: Linux

Markdown-Files unter Linux im Terminal darstellen

Erstellt: 13.03.2018 09:16

Des Oefteren liegen bei Sourcecode Markdown-Files bei, zum Beispiel für das traditionelle README (readme.md). Da diese Dateien unformatiert nicht unbedingt lesefreundlich sind hilft ein Converter weiter. pandoc ist ein solcher Converter welcher ohne weitere Optionen HTML ausgibt. Dies kann nun an einen Text-Browser übergeben werden welcher aus stdin Daten entgegen nehmen kann.
Es eignen sich dafür unter anderem w3m und lynx.

$ pandoc readme.md | lynx -stdin

Das ganze kann jetzt noch als Funktion in der ~/.bashrc hinterlegt werden:

function readmd { pandoc "$1" | lynx -stdin; }
export -f readmd

Dies ermöglicht einen schnellen Zugriff:

$ readmd readme.md



Tagged: Bash HTML/CSS Linux Tools

Kommentar verfassen | Nach oben

Hilfreiche apt-Kommandos zur Versionsprüfung

Erstellt: 25.12.2016 10:09

Ich durfte vor einer Weile ein Debian-System aufräumen welches "ein wenig Chaotisch" war durch das mischen diversester Repositories.
Deshalb hier ein paar nützliche Kommandos zum Kontrollieren der Paket-Versionen, zugehörigen Repositories und Dateien der Debian-Pakete.

Installierte Paket-Versionen auflisten mit Repository

# apt-show-versions [vim]
vim:amd64/jessie 2:7.4.488-7+deb8u1 uptodate
[...]

...ohne Paketname listet apt-show-versions alle auf dem System installierten Pakete auf, jeweils auf einer Zeile pro Paket. Dies ist nützlich herauszufinden welche Pakete zum Beispiel aus Testing sind während der Rest aus Stable stammt oder gar neuer oder älter als eine in einem Repository verfügbare Version.

Verfügbare Versionen eines Paketes anzeigen mit Repository

# apt-cache policy vim
vim:
  Installed: 2:7.4.488-7+deb8u1
  Candidate: 2:7.4.488-7+deb8u1
  Version table:
 *** 2:7.4.488-7+deb8u1 0
        500 http://security.debian.org/ jessie/updates/main amd64 Packages
        100 /var/lib/dpkg/status
     2:7.4.488-7 0
        500 http://mirror.switch.ch/ftp/mirror/debian/ jessie/main amd64 Packages

...im Prinzip ähnlich wie apt-show-versions, jedoch eine andere Art der Darstellung.

Paket nur herunterladen

# apt-get [-t stable] download vim
Get:1 http://security.debian.org/ jessie/updates/main vim amd64 2:7.4.488-7+deb8u1 [953 kB]
Fetched 953 kB in 0s (4'056 kB/s)

...falls mal was total verhunzt ist und man es manuell installieren möchte.

Paketherkunft einer Datei herausfinden

Zu welchem Paket gehört eine Datei?

# apt-file search /usr/bin/vim
graphviz: /usr/bin/vimdot
vim: /usr/bin/vim.basic
[...]

Dateien eines installierten Paketes auflisten

# dpkg-query -L vim
[...]
/usr/bin/vim.basic
/usr/share/doc/vim

Dateien von einem vorliegendem aber nicht installiertem Paket auflisten

# dpkg-deb -c sl_3.03-17_amd64.deb
[...]
-rwxr-xr-x root/root     11480 2012-03-29 16:43 ./usr/games/sl
[...]

Mit der md5-Summe prüfen ob alle Dateien zu einem installiertem Paket in Ordnung sind

# debsums vim
/usr/bin/vim.basic                                                            OK
/usr/share/bug/vim/presubj                                                    OK
/usr/share/bug/vim/script                                                     OK
/usr/share/lintian/overrides/vim                                              OK
[...]



Tagged: Debian Linux

Kommentar verfassen | Nach oben

Farbprobleme mit Textfeld- und Selectboxen bei dunklen System-Themes in Firefox/Iceweasel

Erstellt: 15.02.2016 09:05

Firefox übernimmt Standardmässig die Farben des System-Themes z.B von Xfce. Das ist eine nette Eigenschaft damit sich Firefox optisch mehr in das System eingliedert.

Leider gibt es viele unsauber programmierte Webseiten welche bei Textfeldern (Oder allgemein Input-Elementen) nur die Text- ODER die Hintergrundfarbe mitgeben aber nicht beides zusammen und davon ausgehen, dass alle als Standardeinstellung dunklen Text auf hellem Grund haben.

So ergibt sich unlesbarer schwarzer Text auf dunklem Hintergrund oder das entsprechende mit hellen Farben. Super!

Abhilfe schafft es Firefox andere Defaultwerte mit zu geben.

Hierzu legt man die Datei ~/.mozilla/firefox/PROFIL/chrome/userContent.css an.
Eine Beispieldatei mit dem Namen userContent-example.css ist schon vorhanden und kann kopiert werden.

Zusätzlich hinterlegt man für Select-Boxen eine kleine Grafik. Weil Select-Boxen haben keinen Pfeil-Button mehr, wenn mit "-moz-appearance: none" das System-Theme ausgeschaltet wird. Deshalb sollte man im Verzeichnis /home/USER/.mozilla/firefox/PROFIL/chrome/down_arrow_select.jpg noch eine Pfeil-Grafik abgelegt werden. (Sucht was hübsches in der Bildersuche eurer Suchmaschine mit "Arrow down select".)

"PROFIL" in den Pfaden sollte gegen das eigene aktuelle Firefox-Profil ersetzt werden.
Das aktuell genutzt Profil erfährt man über:
Hilfe -> Informationen zur Fehlerbehebung ->  Profilverzeichnis -> "Ordner öffnen".
(Help -> Troubleshooting Information -> Profile Folder -> "Show Folder")

"USER" muss gegen den eigenen System-User ersetzt werden.

Der Datei ~/.mozilla/firefox/PROFIL/chrome/userContent.css kann nun folgender Inhalt hinzugefügt werden:

/* ~/.mozilla/firefox/PROFIL/chrome/userContent.css */
button,
input,
input[type="radio"],
input[type="checkbox"],
input[type="reset"],
input[type="button"],
input[type="submit"],
select,
textarea {
        -moz-appearance: none !important; /* Deaktiviert den Look vom System-Theme */
        background-color: #FAFAFA; /* Gibt eine helle Hintergrundfarbe mit */
        color: #000000 /* Färbt den Text schwarz */
}
:disabled {
        color: #B1B1B1 /* deaktiviertes ausgrauen */
}
/* select extra, damit der Pfeilbutton nicht verschwindet, Grafik muss hinterlegt sein! */
select:not([multiple]) {
        background-image:url("file:///home/USER/.mozilla/firefox/PROFIL/chrome/down_arrow_select.jpg") !important;
        background-position: right !important;
        background-repeat: no-repeat !important;
        background-size: contain !important; /* Uebernehme die Grösse der Select-Box */
        padding-right: 1.5em; /* Schaffe ein wenig Platz für den Pfeil */
}

Nachdem Firefox neu gestartet wurde, sollten die Textfelder, Selectboxen und ähnliches wieder lesbar sein.

Sicherlich ist diese Vorlage noch nicht für jede Webseite Ideal, Verbesserungen nehme ich gerne entgegen.

Update: ":not([multiple])" bei select verhindert, dass Selectboxen mit multipler Auswahlmöglichkeit ohne Dropdown einen Dropdown-Pfeil bekommen.

Update 2: ":disabled" gibt die Eigenschaften von deaktivierten Elementen aus.



Tagged: Browser Firefox Linux XFCE

Kommentar verfassen | Nach oben

Xfce-Panel Ausklappbreite

Erstellt: 03.02.2016 10:48

Lässt man das Xfce-Panel die Fenster gruppieren hat die Breite des ausklappbaren Menüs immer eine feste Breite (je nach Theme). So wird zum Beispiel beim Xfce-Terminal nichtmehr der volle Pfad des Arbeitsverzeichnisses angezeigt, dieser wird abgeschnitten und läuft mit "..." aus.

Um diese Breite anzupassen erstellt man die Datei .gtkrc-2.0 in seinem Home-Verzeichnis mit folgendem Inhalt (oder ergänzt diese entsprechend):

# ~/.gtkrc-2.0
style "xfce-tasklist-style" {
        XfceTasklist::menu-max-width-chars = 45
}
class "XfceTasklist" style "xfce-tasklist-style"

...45 ist hierbei die gewünschte Breite.

Danach noch das Xfce-Panel restarten:

$ xfce4-panel -r

Nun sieht man das komplette Arbeitsverzeichnis im Panel-Menü:



Tagged: Linux XFCE

Kommentar verfassen | Nach oben

Displayport schaltet sich aus aber nichtmehr ein

Erstellt: 15.01.2016 08:58

Der Displayport ist teils ein wenig leidig. Wird der Monitor ausgeschaltet oder ausgesteckt, aktiviert sich der Port nichtmehr. Der Bildschirm bleibt schwarz weil die Grafikkarte kein Signal mehr liefert.

Dagegen gibt es zwei Lösungen, entweder man benutzt (z.B. und sofern möglich) einen Displayport-zu-HDMI-Adapter oder man weckt den Port mit xrandr wieder auf.

Ersteres unterdrückt das vom Displayport genutzte Datenformat welches das Problem verursacht und zwingt die Grafikkarte HDMI-Signale zu senden.
(Sollte diese Erklärung falsch sein, macht mich darauf aufmerksam. ;) )

Nun zur Softwarelösung. Ist der Bildschirm schon dunkel, ist es möglich per SSH mit xrandr das Signal wieder einzuschalten:

$ xrandr
Screen 0: minimum 8 x 8, current 1920 x 1200, maximum 32767 x 32767
DP1 disconnected (normal left inverted right x axis y axis)
DP2 connected 1920x1200+0+0 (normal left inverted right x axis y axis) 518mm x 324mm
   1920x1200     59.95*+
   1920x1080     60.00 
[...]
DP3 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)

Auf dem Problemrechner über SSH die DISPLAY-Variable setzen um den Screen zu definieren und mit xrandr den Bildschirm in Standardauflösung aktivieren:

$ ssh user@dunklerrechner

$ export DISPLAY=:0
$ xrandr --output DP2 --auto

Das Ganze geht aber auch von selbst:

...automagisiert mit udev!

Zuerst wird über udevadm ausgelesen was für Events - zum Beispiel beim Ein- und Ausschalten des Monitors - generiert werden:

$ udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[71528.979723] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
UDEV  [71529.116551] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
KERNEL[71531.400604] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)
UDEV  [71531.598893] change   /devices/pci0000:00/0000:00:02.0/drm/card0 (drm)

Mit den ausgelesenen Event-Parametern (card0, drm, change) kann nun ein udev-Rules-File (/etc/udev/rules.d/70-dp-repair.rules) erstellt werden.

/usr/local/bin/dp-repair.sh ist hierbei das Script welches ausgeführt wird, wenn dieses Event eintritt. "user" sollte gegen den eigenen User ersetzt werden:

# /etc/udev/rules.d/70-dp-repair.rules
KERNEL=="card0", SUBSYSTEM=="drm", ACTION=="change", RUN+="/bin/su user -c /usr/local/bin/dp-repair.sh"

Hier noch das Beispielscript /usr/local/bin/dp-repair.sh. Es grept nach conntecteten Ports und aktiviert diese mit der Standardauflösung. Je nach Setup muss man dieses doch sehr simple Script noch den Bedürfnissen anpassen:

#!/bin/bash
# /usr/local/bin/dp-repair.sh
export DISPLAY=:0
for DPPORTS in $(xrandr | grep " connected " | awk '{ print$1 }'); do
        /usr/bin/xrandr --output $DPPORTS --auto
done;

Ausführbar machen:

# chmod +x /usr/local/bin/dp-repair.sh

Ein komplexeres Script zur Monitorsteuerung gibts unter: https://github.com/geyslan/xrasengan

Nun schaltet udev den Displayport automatisch wieder ein.



Tagged: Debian Hardware Linux ssh udev X11

Kommentar verfassen | Nach oben

« ältere Einträge