i3tree - view the i3wm window tree
An utility tool I created for i3wm to visualize the the tree of windows in the current i3 session.
ThinkPad T510 Xorg NVidia config
To enable screen backlight brightness adjustment, create the following file and restart the X server
DBus Error - xinitrc
I tried to use Spotify dbus interface to play/pause tracks, found a nice shell script but it did not work, but instead I got this error message:
Error org.freedesktop.DBus.Error.ServiceUnknown: The name org.mpris.MediaPlayer2.spotify was not provided by any .service files
Turned out that the issue is probably with my X11 session initialization.
Note: At the very least, ensure that the last if block in
/etc/X11/xinit/xinitrc
is present in your~/.xinitrc
file to ensure that the scripts in/etc/X11/xinit/xinitrc.d
are sourced.
So, I tried to source the /etc/X11/Xsession before I start the window manager:
. /etc/X11/Xsession
exec i3
Called startx
but no luck, X did not start. The following error was in the ~/.xsession-errors
:
dbus-update-activation-environment: warning: error sending to systemd: org.freedesktop.DBus.Error.InvalidArgs: Invalid environment assignments
I had no clue what would that mean, however after some echo
based debugging in /etc/X11/Xsession
I could confirm that the files from /etc/X11/Xsession.d
were sourced and the last file which was sourced is /etc/X11/Xsession.d/99x11-common_start
. That file is a one liner:
exec $STARTUP
I guessed that $STARTUP
is undefined. Checked where it would be defined and I found /etc/X11/Xsession.d/50x11-common_determine-startup
If no X session startup program was passed to the Xsession script as an argument (e.g., by the display manager), or if that program was not executable, fall back to looking for a user's custom X session script, if allowed by the options file.
That means I can define it somehow, so I tried by setting it in my:
export STARTUP=i3
. /etc/X11/Xsession
Then everything looks good. Some magic happens in those files (probably in /etc/X11/Xsession.d/20dbus_xdg-runtime) what I didn't tried to figure out yet.
Raspberry Pi külső drive kernel panic
Ha a Raspberryn a root partíció egy külső (USB) drive-on van, akkor ügyelni kell arra, hogy a /boot/cmdline.txt
-ben, a root értéke PARTUUID
formában legyen megadva, nem pedig /dev/sda1
vagy hasonló módon. Ellenkező esetben Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-block... és ehhez hasonló hibaüzenet várhat, legkésőbb akkor, amikor egy reboot paranccsal szeretnéd újraindítani a gépet.
A PARTUUID
a sudo blkid
paranccsal kinyerhető, valami ehhez hasonló lesz az output:
HashBackup DigitalOcean Spaces-be
Korábban a Raspberry PI-n keresztül töltöttem le a mentéseket, viszont a minap az SD kártya teljesen tönkrement így gyorsan kellett találnom valami megoldást a mentésre, mert ennél már csak az lenne rosszabb, ha mindenem eltűnne.
Szeretném ha valami rendes helyen lennének a mentések és nem az én összetákolt tárolóimon. Gondoltam, milyen jó lenne erre a DigitalOcean Spaces nevű object storage megoldása.
Ezelőtt duplicity-t használtam, azt hittem, hogy nem lehet egy ördöglakat megoldani, hogy mostantól máshová küldje a mentést. Igazából nem az, de akkor hirtelen képtelen voltam megoldani (azóta már sikerült).
Ezért elkezdtem egy olyan mentési megoldás után kutatni, amit hamar össze tudok rakni. A nagy sietségben a hashackup-ot választottam.
Shell script argument parsing
Ha shell scriptet írunk, gyakran előfordulhat, hogy szeretnénk azt paraméterezhetővé tenni.
Az alapvető módszerem, hogy vannak bizonyos beállítások definiálva a fájl elején egy alapértelmezett értékkel, majd a paraméterektől függően változtatom ezek értékét:
#!/bin/sh
IS_FLAG_A_SET=0
for i in $@; do
case $i in
'-a')
IS_FLAG_A_SET=1
;;
*)
echo "Usage $0 -a"
exit 1
esac
done
if [ $IS_FLAG_A_SET -eq 1 ]; then
echo "FLAG A"
fi
Lekezeltük még azt is, hogy össze-vissza paramétereket ne engedjünk csak úgy bepasszintani, ekkor ugynis kiírjuk a használati utasítást és hibakóddal kilépünk.
Izgalmasabb a helyzet, ha nem csak flagekkel dolgozunk, hanem szeretnénk valamilyen értéket átadni egy opcióval, mondjuk egy fájlnevet. Ha tudjuk, hogy csak egy ilyen lehet az adott programban, akkor megtehetjük, hogy azt mondjuk, hogy legyen az utolsó paraméter mindig a fájlnév.
FILE_NAME=${@:-1}
echo $FILE_NAME
De ez egyáltalán nem dinamikus, hiszen bármikor lehet olyan igény, hogy több értéket szeretnénk átadni. Ekkor például elkezdhetünk úgy dolgozni a paramétereken, hogy ha például -f
kapcsolót kaptuk, akkor a következő paraméter a fájlnévnek vesszük:
Letöltés Humble Bundle-ről gyorsan, batch-ben
Roppant kényelmetlen egyenként végigklikkelni a a sok-sok linken Humble Bundle-on, amikor megvettél egy nagy adag könyvet potom áron.
Ezt kicsit meg lehet gyorsítani, ha vetünk egy pillantást a következő gistre: https://gist.github.com/Ajnasz/3356db6fd0e81013927c9cf5821a73de
cryptsetup luksFormat Invalid argument
Mondjuk egy már létező howto alapján szeretnél titkosított filerendszert készíteni.
Viszont a cryptsetup luksFormat /dev/sdb1
parancs nem kér jelszót, akkor próbáld meg, hogy --verbose
paramétert is beadod neki. Így egy kicsit több outputot fog kidobni magából:
VIM csomagkezelés howto
Az egyre több erre hajazó kiegészítő szinte messziről jövő segélykiáltásként szelte át az internet-étert egy beépített csomagkezelőért.
Így lehetett, hogy Vim 8-ban debütált a csomagok támogatása. vimhelp.org/repeat.txt.html#packages
Sajnos vagy nem sajnos jó ideje Neovim felhasználóvá avanzsáltam és minden informálódás nélkül leírtam, hogy ez a package manageres móka csak Vim-ben van, Neovimben nincs. Viszont a minap a Neovim git log
ot böngészve mintha erre utaló szavakat olvastam volna. A megérzésem jó volt, Neovimben is van Vim 8 csomagkezelő.
Megjegyzés: A csomagkezelő kifejezés nem a legmegfelelőbb, a Vim 8 packages a csomagok betöltését végzi, de nem telepíti őket.
Nikon D5300 webkamera Linuxon
Képzeljük el milyen profi videó társalgást lehetne tartani akárkikkel ha egy jobb objektívvel rendelkező DSLR kamerát használnál webkamerként!
Szépen beállítod a kamerát, fókuszt, fényt és miegymást, és szuper minőségben látnak majd anyuék, apuék vagy akár egy kedves kolléga a föld túloldalán. (Amint lesz webcam támogatás a linuxos Skype-on is.)
Szóval hogyan is lehet Linuxon webkameraként használni egy digitális fényképező gépet? Nekem egy Nikon 5300 van éppen és roppant könnyen össze tudtam hozzá vadászni az információkat az internet végtelen világából.