Domaine public 🅭

CMS minimal
ecrit avec VI

[ /  ^ < ]

i3 carreleur agile

pour un bureau zen

notes       28/08/2023
audio       12/01/2023
antiseche       24/08/2022
i3status       04/10/2023
i3lock       12/01/2021
sway       29/11/2020
archbang       23/11/2020
vimium       01/07/2021
xdotool       26/01/2024
teleassistance       01/03/2022

# i3 un parmi d'autres gestionnaires de fenêtres par pavage mais avec des commandes à la vi
# du coup il faut mémoriser au moins une dizaine de commandes définies dans le fichier ~/.config/i3/config
[Win] [Entrée] pour ouvrir un shell
[Win] [d] pour le menu des applications
[Win] [flèches] pour changer de fenêtre
[Win] [Maj] [flèches] pour déplacer une fenêtre
[Win] [&|..|)] pour changer d'écran ( correspond aux touches sous les signes )
[Win] [Maj] [1|..|0] pour envoyer une fenêtre vers un autre écran
[Win] [v|h] pour changer la direction de découpage de l'écran
fermer une fenêtre [Ctrl] [w] sinon [Win] [Q] ( A sur un clavier AZERY )
[Win] [E] pour sortir de i3 ( il faut une souris )

# pour installation depuis une console texte
sudo apt-get install i3
mv ~/.xinitrc ~/.xinitrc.old # au cas où
cat > ~/.xinitrc <<FIN
xautolock -time 5 -locker 'i3lock -c 000000' &
pcmanfm &    # extremely fast and lightweight file manager
setxkbmap fr oss
i3
FIN

[Ctrl] [Win] [F1]
startx

# lors de la première session, quelques questions sont demandées
# le choix entre [Win] et [Alt] est proposé, mieux choisir [Win]
ma conf à mettre dans ~/.config i3.config.tgz

# pour afficher un orloge analogique sur tous les écrans:
# ajouter dans le fichier de conf:
bindsym $mod+Shift+s sticky toggle

[Win] [d]       xclock
[Win] [Maj] [espace]
[Win] [Maj] [s]

# pour mettre un papier peint
sudo apt-get install feh
# et mettre dans la conf:
exec --no-startup-id feh --bg-scale /chemin/fichier/image.jpg

# la commande swarp permet de déplacer le curseur et de passer d'un écran à l'autre:
bindsym $mod+p exec swarp 100 100 # premier écran
bindsym $mod+Shift+g exec swarp 2000 100 # grand écran

# pour le réglage en particuler audio
nm-applet
nm-connection-editor
#celles des bureaux classiques
gnome-control-center # utilitaires pour configurer le bureau GNOME
# ou sur plasma (KDE)
systemsettings5 # interface de configuration du système

antisèche [copie locale | graphique|fond d'écran un autre]
# pour le fond utiliser la commande :
   feh --bg-scale

# si on ne veut pas tout débloquer, lister les interfaces disponibles:
networkctl

wicd-cli

# pour demarage i3 dans .config/i3/config
exec --no-startup-id (sleep 13; /usr/bin/wicd-gtk)

# bizarrement, pour quitter i3, la configuration prévoit  une confirmation à la souris, je preffère :
bindsym $mod+Shift+Escape exec i3-msg exit

# si 10 écrans ne suffisent pas il est possible d'en avoir autant qu'on veut:
i3-msg workspace nimportnawak
# ou même
i3-msg move container to workspace toto

# i3status configuration file.
# see "man i3status" for documentation.

# It is important that this file is edited as UTF-8.
# The following line should contain a sharp s:
# ß
# If the above line is not correctly displayed, fix your editor first!

general {
        colors = true
        interval = 5
}

order += "disk /"
order += "run_watch DHCP"
order += "wireless _first_"
order += "ethernet _first_"
order += "battery all"
order += "load"
order += "tztime local"

wireless _first_ {
        format_up = "W: (%quality at %essid) %ip"
        format_down = "W: down"
}

ethernet _first_ {
        # if you use %speed, i3status requires root privileges
        format_up = "E: %ip (%speed)"
        format_down = "E: down"
}

run_watch DHCP {
        pidfile = "/var/run/dhclient*.pid"
}

battery all {
        format = "%status %percentage %remaining 🔋"
}

tztime local {
        format = "%Y-%m-%d s%V %H:%M "
}

load {
        format = "%1min"
}

disk "/" {
        format = "♪/ %avail"
}

# i3lock est la commande pour verouiller l'écran

# exemple dans ~/.config/i3/config
exec --no-startup-id xautolock -time 5 -locker 'i3lock -c 000000'
bindsym $mod+l exec i3lock -c 000000

#sur un portable pour verouiller au pliage:
# ajouter un fichier /etc/systemd/system/i3lock.service
[Unit]
Description=verouille quand on ferme
Before=sleep.target

[Service]
User=toto
Type=forking
Environment=DISPLAY=:0
ExecStart=/usr/bin/i3lock -i /etc/systemd/system/Binary-Code-Background-Full-HD.png -e -f

[Install]
WantedBy=sleep.target


# commande ( par root )
systemctl enable i3lock.service

# un logiciel veux succeder à i3 : sway indépendandant de X mais essai non concluant

une distribution utilisant ce bureau par défaut.

vimium
extention firefox très utile pour actionner les liens par des touches

xdotool
une commande shell pour simuler la souris ou gérer les fenêtres dans X11
par exemple dans la configuration des touche pour ramener le curseur toujours au même endroit:

bindsym $mod+o exec xdotool mousemove 500 500

# ex
xdotool mousemove 20 700 click 1  mousemove restore

xautomation est plus précis

#exemple do commande pour saisir automatiquement un code OTP
#! /bin/bash
N=""
test "$1" && N="--use-time=+60"
xte <<< "keyup b"
xte <<< "keyup Super_L"
xte <<< "keyup Super_R"
for i in $(stoken $N| sed 's/./& /g') 0xff09 0xff0d; do xdotool key $i; done

# la téléassistance est difficile car les touches sont captées par le PC local
# d'où l'idée d'un mode nul pour toutes les invalider:

mode "nul" {
        bindsym Ctrl+Shift+n mode "default"
}
bindsym Ctrl+Shift+n mode "nul"

# mais la touche [Win] n'est pas transmise

# on peut donc la modifier
# dans un script par exemple

cat > /usr/local/bin/i3-chmod << FIN
#! /bin/bash
# flip flop touche [Win] <> [Alt]
CONF=.config/i3/config
MOD=$(awk 'substr($3,1,3) == "Mod" {print substr($3,4,1)}' $CONF) # recup code
NMOD=$(dc <<< "0k $MOD 3 + 6 % p")  # 1 <> 4
sed -i 's/set $mod Mod'$MOD'/set $mod Mod'$NMOD'/' $CONF
i3-msg reload
FIN
bindsym Ctrl+Shift+m exec i3-chmod

ƒraηcois✉memoρersο.ƒr