- XFCE 4
- Désactiver le "roll" des fenêtres avec la molette de la souris
xfconf-query -c xfwm4 -p /general/mousewheel_rollup -s false
sudo apt-get install xfwm4-themes
- LightDM/XFCE et le double-écran au démarrage XFCE ne sait pas nativement configurer les écrans (contrairement à KDE), mais ce n'est pas grave puisque arandr s'en charge très bien. Seul problème : au reboot, on retrouve le mode "clone" par défaut.. La solution est de sauvegarder la configuration avec arandr, qui est en fait un script que l'on pourra automatiquement faire executer au démarrage avant même de taper son login.
sudo apt-get install arandr arandr sudo nano /etc/lightdm/lightdm.confDans [SeatDefaults], mettre une ligne dans le genre :
[SeatDefaults] ... display-setup-script=/home/monusername/.screenlayout/dualscreen.sh
xfconf-query -c xsettings -p /Gtk/DialogsUseHeader -s false(sous XFCE)
org.gnome.settings-daemon.plugins.xsettings overrides "{'Gtk/DialogsUseHeader':<0>}"
(non testé j'imagine que c'est sous Gnome ?)- ImageMagick Redimensionner des images, en pourcentage, en écrasant l'original :
mogrify -resize 70% *.JPGOu bien en donnant les dimensions maximales en largeur et hauteur :
mogrify -quality 90% -resize 1280x1280\> *.JPGCrop (sans écraser l'original, pour changer) :
convert -verbose cascadeur.jpg -crop +0-460 cascadeur_cropped.jpg
- Divers Virer les tags exifs concernant la rotation des images du répertoire :
sudo apt-get install libimage-exiftool-perl exiftool -Orientation= *.JPG -overwrite_original rm *original
- Découper une vidéo sans l'abîmer (lossless)
ffmpeg -i "hallo deutschland - ZDFmediathek.mp4" -ss 00:27:40 -to 00:32:58 -c copy "hallo deutschland - ZDFmediathek_cut".mp4
- Extraire le son d'un fichier vidéo en MP3 avec mencoder
mencoder -ovc frameno -oac mp3lame -lameopts cbr:br=192 -of rawaudio input.xxx -o output.mp3
- Faire une vidéo timelapse à partir d'une série de fichier jpeg
mpv mf://*.png --mf-fps=30 --vf=format=yuv420p -o output.mp4
mencoder mf://*.JPG -mf fps=25:type=jpeg -ovc lavc -lavcopts vcodec=mjpeg -o timelapse-25fps.avi -vf scale=1024:768
mencoder mf://*.jpg -mf fps=30 -ovc copy -o uncomp.avi ffmpeg -i uncomp.avi video.mp4 rm uncomp.avi
- Découper un fichier PDF
qpdf --empty --pages original.pdf 2-6 -- extrait.pdf
- Assembler plusieurs fichiers PDF
qpdf --verbose --empty --pages fichier1.pdf fichier2.pdf -- assemblage.pdf
qpdf --verbose --empty --pages fr202301.pdf 1-1 fr202302.pdf 1-1 fr202303.pdf 1-1 -- couvertures.pdf
sqlite3 filename.sqlite .tables
sqlite3 filename.sqlite .schema
sqlite3 filename.sqlite -header -tabs 'SELECT * FROM TableName;'
-
Pipewire a depuis un moment remplacé pulseaudio, et c'est tant mieux.
- Utilitaires pipewire qpwgraph: remplaçant de Patchage, affiche un graphe des connexions que l'on peut modifier
- Utilitaires MIDI qsynth (synthétiseur)
- Avoir le beep de la console quand on n'a pas de pc speaker Testé fonctonnel aussi sous Pipewire. Devra être lancé au démarrage de la session.
pw-top
pw-link
vmpk (Virtual MIDI Piano Keyboard)
aplaymidi --port 14 filename.mid
gmidimonitor (utile pour debug les messages midi)
pactl upload-sample /path/to/fichier.oga bell-window-system pactl load-module module-x11-bell display=$DISPLAY
- Captures d'écran
scrot filename.png
vgrabbj -w 1280 -H 720 -d /dev/video0 -o png > filename.png
WID=$(xdotool search --name ToupLite | head -n 1) DIR=/home/user/Pictures xdotool mousemove --window $WID 90 20 click --window $WID 1 sleep 1 FILE=$(ls -1t "$DIR"/$(date "+%Y-%m-%d-%H-%M")* | head -n 1) if [ "$1" != "" ]; then mv "$FILE" "$1" fi
- Boucles
for arg in "$@"
do
echo "$arg"
done
for i in $(seq -w 1 99); do echo $i; done;
for i in {1..100}
do
./blah > data-$i.csv
done;
{ while(true) ; do { echo 1 > /mnt/owfs/29.AA9F09000000/PIO.3; sleep 0.5;
echo 0 > /mnt/owfs/29.AA9F09000000/PIO.3; sleep 0.5; } done; } &
#!/bin/sh
set -e
while(true)
do {
youtube-dl "https://www.twitch.tv/something" --output $(date "+%Y-%m-%d_%H%M%S").\%\(ext\)s || true
sleep 1
} done
- Ajouter un timestamp a une commande qui renvoie une ligne
{ date +'%Y-%m-%d %H:%M:%S%t' | tr -d '\n' && macommande; } >> monfichier
- Faire un grep sur plusieurs lignes
... | pcregrep -M "^Première ligne\nSeconde ligne\n$"
apt install otpclient pip install uv uv build uv tool install . uv cache clean
uv tool list uv tool uninstall <package>
- Afficher les informations des cartes réseaux gérées par
PoetteringOSNetworkManager
Permet entre autre de voir les IP des serveurs DNS quand /etc/resolv.conf pointe sur 127.0.0.1 ...
nmcli device showSinon il y a Wicd qui est sympa aussi, et moins chiant.
host github.com
User git
ProxyCommand socat - PROXY:localhost:%h:%p,proxyport=8080
Port 22
Pour github, dans cet exemple. Si besoin d'authentification, ajouter ",proxyauth=user:password".sudo apt-get install socat autossh autossh -L 8080:localhost:80 yourusername@yourproxyhost
$ git push origin [...] remote: Resolving deltas: 100% (2/2), completed with 2 local objects. To github.com:xxx/xxx.git 387cc80..af6a532 master -> master
- Ne pas perdre sa connexion SSH par timeout Certains équipements réseau (NAT...) oublient les connexions qui restent inactives pendant longtemps, ce qui est le cas du SSH. Pour ce dernier, mettre côté client dans /etc/ssh/ssh_config :
ServerAliveInterval 5 ServerAliveCountMax 2 TCPKeepAlive yes
- OpenSSL Tester rapidement quelque chose au travers d'une connexion TLS, comme avec telnet, mais chiffré :
openssl s_client -connect perdu.com:443Pour encapsuler une connexion non chiffré dans du TLS, on peut utiliser la commande stunnel. Contenu d'un fichier de configuration :
foreground = yes pid = /tmp/stunnel.pid [truc] client = yes accept = 0.0.0.0:9990 connect = wss.3615.live:9991Il suffira de lancer stunnel comme cela :
stunnel truc.conf
- Les "overrides" Au lieu d'éditer directement /etc/systemd/system/apache2.service (par exemple... aussi parfois dans /lib/systemd/system/), il est possible d'indiquer les lignes que l'on souhaite modifier sans toucher aux fichiers .service en faisant :
sudo systemctl edit apache2.. ce qui va créer ou modifier un fichier /etc/systemd/system/apache2.service.d/override.conf et il ne restera plus qu'à faire
sudo systemctl daemon-reload sudo systemctl restart apache2.service
- Erreur "GDBus.Error:org.freedesktop.systemd1.UnitMasked: Unit -.mount is masked." quand on fait apt-get quelque chose... Si gparted est déjà fermé:
sudo rm /run/systemd/system/-.mount sudo systemctl daemon-reload
- Virer mlocate Mon disque dur grattait pendant longtemps à chaque sortie d'hibernation. La commande "locate" fonctionne avec une base de données rafraichie journalièrement par une tâche cron, qui se déclenche à la sortie de veille, et ça rame.
sudo apt-get remove mlocate sudo rm -r /var/lib/locate/ sudo rm /etc/cron.daily/mlocate
- Debian 64 bits et pas de sons avec Wine
sudo apt-get install libasound2-plugins:i386
- Installer un package .deb Quand on ne trouve pas le logiciel directement dans les dépôts et que son auteur fournit un package Debian, on peut l'installer avec la commande suivante :
sudo dpkg -i nomdufichier.deb(sous KDE, il suffit de double-cliquer dessus...)
- Okular et la couleur de fond de la sélection Okular est mon lecteur de PDF préférée. Par contre, si on n'a pas installé KDE tout entier, configurer ses couleurs est un peu compliqué puisqu'il manque le configurateur de KDE pour régler tout ça.
sudo apt-get install systemsettings systemsettingsEt après, dans "Application appearance", bouton "Colors", onglet "Colors", changer "Selection Background" ...
... et relancer Okular.
- Binary file fichier-texte.txt matches Des caractères invalides qui gènent ? Pour les filtrer :
... | tr -cd '\11\12\15\40-\176' | ...
- Password par default sur Linux Mint Quand on est sur une machine où le boot graphique ne fonctionne tout simplement pas.
login="mint", password=""
- Boot problèmatique sur vielles machines? Ceci m'a des fois bien aidé, à ajouter dans les options du boot: acpi=off nomodeset
Sur mon A6Km, "acpi_osi=" suffit.
(et on pourra aussi en profiter pour virer "splash" et "quiet")
- Changer rapidement la map clavier Sous X:
setxkbmap -layout fr setxkbmap -layout be setxkbmap -layout usMoins pratique, voir aussi localectl (un morceau de systemd)
- Trouver les processus qui maintiennent ouvert des fichiers effacé ou remplacés Si pour une partition, "df" montre qu'il ne reste que peu de place alors que "du" n'indique que peu d'espace disque occupé par les fichiers présents, alors c'est peut-être la cause du problème :
lsof +L1
- Association de fichiers Impossible d'associer des .dat contenant de données à une application différente que celle avec s'ouvent des fichiers texte ? Parfois il faut créer le type mime pour telle ou telle extension en rajoutant un fichier dans ~/.local/share/mime/packages/application-x-foobar.xml:
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
<mime-type type="application/x-foobar">
<comment>Fichier FOO</comment>
<icon name="application-x-foobar"/>
<glob-deleteall/>
<glob pattern="*.foo"/>
</mime-type>
</mime-info>
puis:
$ update-mime-database ~/.local/share/mimeSource
Aussi, après avoir ajouté un modifié un fichier .desktop :
$ update-desktop-database ~/.local/share/applications
- Pourquoi telle ou telle application n'ouvre pas le même browser que les autres quand on clique sur un lien ? Trop de couches, on s'y perds... La plupart des applications semblent avoir le même comportement que exo-open (en tout cas sous XFCE), mais certaines utilisent QDesktopServices::openUrl() et ont le même comportement que gvfs/gio. J'ai rencontré ce problème lorsque que je voulais qu'un script soit lancé au lieu d'un navigateur, pour lancer firefox sous un autre utilisateur :
$ cat /home/utilisateur/browser.sh sudo -u autre_utilisateur /usr/bin/firefox "$1"puis choisir ce script avec exo-preferred-applications (en choisissant "Other..." dans la liste déroulante sous "Web Browser"). Après ça :
$ xdg-open <URL> : OK
$ exo-open <URL> : OK
$ gvfs-open <URL> : pas OK et me dit qu'il est déprécié et qu'il faut utiliser gio-open
$ gio-open <URL> : pas OK non plus
Après avoir beaucoup cherché, je comprends que pour gio il faut un ficher /home/utilisateur/.local/share/applications/mimeapps.list :
[Default Applications] x-scheme-handler/http=exo-web-browser.desktop x-scheme-handler/https=exo-web-browser.desktopOn peut vérifier le changement avec :
$ gio mime x-scheme-handler/httpsexo-web-browser.desktop se trouve dans /usr/share/applications/exo-web-browser.desktop et contient (entre autres lignes) :
Exec=exo-open --launch WebBrowser %u[ref 1] [ref 2]
En résumé, QDesktopServices::openUrl() -> GIO/KIO? -> exo-web-browser.desktop -> exo-open -> mon script à moi !
- Geany Geany est mon éditeur préféré.
Si parfois des underscores ne sont pas visibles suivant le niveau de zoom, aller dans le menu Tools > Configuration Files > filetypes.common :
[styling] line_height=-1;1;Pour le thème sombre :
cd ~/.config/geany/colorschemes/ wget https://raw.githubusercontent.com/codebrainz/geany-themes/master/colorschemes/darcula.conf... puis sélectionner le théme dans View> Change Colour Scheme...
- Configuration de dovecot-pop3d Au cours d'une migration de serveurs, j'ai du trouver autre chose que le serveur pop3 que j'utilisais jusque là sans aucun soucis parce que Debian ne maintenait plus le package contenant qpopper :(. Un coup d'oeil sur popa3d mais il est chiant avec SSL/TLS car comme le support de ce dernier n'est pas intégré, il faudrait faire une sorte de tunnel avec stunnel. J'ai essayé courier-pop-ssl qui avait l'air OK mais ne supporte pas le mbox (rhaa), j'ai donc installé dovecot-pop3d, et configuré ce dernier pour qu'il fonctionne avec let's encrypt. Il supporte également le Maildir, même si je ne l'utilise pas.
# apt-get install dovecot-pop3dNe pas listen le port 110 parce que je ne veux que le SSL :
# nano /etc/dovecot/conf.d/10-master.conf
-#port = 110 +port = 0On va renseigner entre autre l'endroit où se trouvent les certificats. Attention aux "<" avant l'emplacement des fichiers.
# nano /etc/dovecot/conf.d/10-ssl.conf
-ssl = no +ssl = required -#ssl_cert = </etc/dovecot/dovecot.pem +ssl_cert = </etc/letsencrypt/live/DOMAINE/fullchain.pem -#ssl_key = </etc/dovecot/private/dovecot.pem +ssl_key = </etc/letsencrypt/live/DOMAINE/privkey.pemPetites préférences personnelles sur l'UIDL (l'identifiant unique des messages retournés en POP)
# nano /etc/dovecot/conf.d/20-pop3.conf
-#pop3_reuse_xuidl = no +pop3_reuse_xuidl = yes -#pop3_uidl_format = %08Xu%08Xv +pop3_uidl_format = %mDonner a dovecot les droits de modifications sur les mails
# /etc/dovecot/conf.d/10-mail.conf
-#mail_privileged_group = +mail_privileged_group = mailSans cette dernière modification, lorsque Thunderbird essaye de supprimer un email du serveur, dovecoat ne pouvait pas l'enlever, et comme (du point de vue du MUA) il était sensé être supprimé l'IUDL n'est pas de nouveau vérifié, et est retéléchargé. Dans les logs, c'est assez explicite, encore faut-il penser a les regarder :
dovecot: pop3(username): Error: file_dotlock_create(/var/mail/username) failed: Permission denied (euid=1000(username) egid=1000(usergroup) missing +w perm: /var/mail, we're not in group 8(mail), dir owned by 0:8 mode=0775) (set mail_privileged_group=mail)
- Moins user la carte SD des RPI
sudo systemctl disable dphys-swapfile sudo swapoff --all sudo dphys-swapfile uninstall sudo apt-get remove dphys-swapfile sudo rm /var/swapet mettre "*.* ~" dans la section "RULES" de /etc/rsyslog.conf
(on peut aussi essayer de changer /etc/fstab pour mettre du tmpfs sur /tmp, /var/tmp/, /var/log, /var/run ...)
http://www.framboise314.fr/et-si-on-se-passait-du-swap/
http://blog.gegg.us/2014/03/a-raspbian-read-only-root-fs-howto/