Problèmes et questions concernant l'édition I3
Répondre

[TUTO] Config I3

#1Messageil y a 3 ans

Bonjour, Bonsoir

Plusieurs personnes m'ont demander des informations sur les programmes, les config ainsi que les scripts que j'utilisais sur i3 pour leurs permettre de faire une version parfaite de ce WM.

J'ai donc décider de partager mon fichier de configuration ainsi que certains des scripts que j'utilise tout les jours.
J'espère que cela va en aider certain ou leurs donner des idées pour améliorer leurs config.

Il faut savoir que ma config change régulièrement car j'aime toujours optimiser certaines choses mais la base reste la même.

I3 config :

for_window [class="^.*"] border pixel 2
gaps inner 10
gaps outer -4
set $term --no-startup-id st
floating_modifier $mod
set $mod Mod4
set $shutdown sudo -A shutdown -h now
set $reboot sudo -A reboot
hide_edge_borders smart

workspace 1 gaps inner 1
workspace 1 gaps outer 0
workspace 2 gaps inner 5
workspace 2 gaps outer 10
workspace 3 gaps inner 1
workspace 3 gaps outer 0
workspace 4 gaps inner 5
workspace 4 gaps outer 10
workspace 5 gaps inner 20
workspace 5 gaps outer 20
workspace 6 gaps inner 1
workspace 6 gaps outer 0
workspace 10 gaps inner 1
workspace 10 gaps outer 0

exec --no-startup-id setbg
exec --no-startup-id dunst
#exec --no-startup-id pasystray
exec --no-startup-id copyq
#exec --no-startup-id kdeconnect-indicator
exec --no-startup-id ~/.config/polybar/launch.sh
#exec --no-startup-id xcompmgr -c -C -t-5 -l-5 -r4.2 -o.55
#exec --no-startup-id ~/Téléchargements/I3/guake.sh
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 & eval $(gnome-keyring-daemon -s --components=pkcs11,secrets,ssh,gpg) &
exec --no-startup-id ~/.scripts/alternating_layouts.py
#exec --no-startup-id ~/.scripts/testlayout
exec --no-startup-id conky -c ~/.conkyrcnew

client.focused #555555 #555555 #ffffff #2e9ef4     #CC0000

bindsym XF86AudioPlay	exec --no-startup-id playerctl play-pause
bindsym XF86AudioStop	exec --no-startup-id playerctl stop
bindsym XF86AudioPrev	exec --no-startup-id playerctl previous
bindsym XF86AudioNext	exec --no-startup-id playerctl next
bindcode 123			exec --no-startup-id pamixer -i 5
bindcode 122			exec --no-startup-id pamixer -d 5
bindsym XF86AudioMute	exec --no-startup-id pamixer -t

bindsym Mod1+p		exec --no-startup-id i3show
bindsym Print			exec --no-startup-id voldown
bindsym Pause			exec --no-startup-id volup
bindsym Scroll_Lock		exec --no-startup-id date2

bindsym $mod+t            	exec --no-startup-id spoolerr
bindsym Mod1+m              	exec --no-startup-id ditdit
bindsym Mod1+z                exec --no-startup-id dodo

bindsym --release $mod+Shift+F2	reload
bindsym $mod+Escape             exec --no-startup-id flameshot gui
bindsym Mod1+d			exec --no-startup-id sh -c 'df -h | dmenu -i -l 20 -fn Iosevka-16 | awk '{print $6}' | xargs -I {} st -e ranger "{}"'

bindsym $mod+Return 		workspace $ws2; exec st -f 'Iosevka-14'
bindsym Mod1+Return		workspace $ws2; exec urxvt
bindsym $mod+Control+Return  workspace $ws2; exec xterm -fg white -bg black -fa 'Monospace' -fs 13
bindsym Control+Return		exec --no-startup-id tdrop -ma -w 1366 -y 0 -h 60% -n 10 st
bindsym $mod+k			exec --no-startup-id keepassxc

bindsym Mod1+t			exec --no-startup-id copy-text-area
bindsym $mod+e			exec --no-startup-id easystroke
bindsym Mod1+e			exec --no-startup-id killall easystroke
bindsym $mod+Shift+e		exec --no-startup-id easystroke show

bindsym $mod+space			floating toggle; sticky toggle; exec --no-startup-id hover center
bindsym $mod+Shift+x	    	exec --no-startup-id prompt "Exit i3?" "i3-msg exit"
bindsym $mod+x			layout tabbed

bindsym --release $mod+q	[con_id="__focused__" instance="^(?!dropdown_).*$"] kill
bindsym --release $mod+Shift+q	[con_id="__focused__" instance="^(?!dropdown_).*$"] kill

bindsym Mod1+Shift+Down		exec --no-startup-id rotate_layout.py -t 1 0
bindsym Mod1+Shift+Up		exec --no-startup-id rotate_layout.py -t 1 1

bindsym $mod+w			exec --no-startup-id fastbro
bindsym $mod+p			exec --no-startup-id i3run -t alsamixer -e 'st -e alsamixer'

bindsym Mod1+r			exec --no-startup-id tdrop -ma -y 0 -h 88% -n 1 st -e ranger
bindsym $mod+r			exec --no-startup-id i3run -t ranger -e 'xterm -e ranger'

bindsym $mod+b			exec --no-startup-id sh -c 'pkill onboard || onboard'
bindsym $mod+c			exec --no-startup-id tdrop -ma -y 0 -h 88% -n 2 st -e calcurse

bindsym Mod1+i 			exec --no-startup-id tdrop -ma -y 0 -h 88% -n 3 st -e htop
bindsym $mod+i 			exec --no-startup-id i3run -t htop -e 'st -e htop'

bindsym Control+Up			exec --no-startup-id i3resize up
bindsym Control+Right		exec --no-startup-id i3resize right
bindsym Control+Down		exec --no-startup-id i3resize down
bindsym Control+Left		exec --no-startup-id i3resize left

bindsym $mod+Control+Up		exec --no-startup-id i3resizefast up
bindsym $mod+Control+Right	exec --no-startup-id i3resizefast right
bindsym $mod+Control+Down	exec --no-startup-id i3resizefast down
bindsym $mod+Control+Left	exec --no-startup-id i3resizefast left

bindsym Mod1+x		exec --no-startup-id rofi -lines 12 -padding 18 -width 60 -location 0 -show drun -sidebar-mode -columns 3 -font 'Noto Sans 10'
bindsym $mod+Shift+d	exec --no-startup-id dmenuyoutube
#bindsym Mod1+x              exec --no-startup-id i3-dmenu-desktop --dmenu='rofi -dmenu -i -lines 12 -eh 1 -width 75 -padding 50 -columns 2 -opacity "85" -font "Iosevka 16"'

bindsym $mod+d		exec --no-startup-id i3-dmenu-desktop --dmenu="menu-interface -l 20 -i"
bindsym Mod1+F12		exec --no-startup-id xterm -fullscreen -fg white -bg black -fa 'Monospace' -fs 14 -e ranger --cmd=fzf_locate
bindsym Control+F12		exec --no-startup-id tdrop -ma -w 1366 -y 0 -h 60% -n 10 st

#bindsym $mod+F9		exec --no-startup-id maimpick
#bindsym $mod+F10		exec --no-startup-id omp

bindcode Mod1+62		exec --no-startup-id fast
bindcode 49			exec --no-startup-id xterm -fg white -bg black -fa 'Monospace' -fs 13 -e ranger --cmd=fzf_locate

bindsym Control+F11		exec --no-startup-id dmenulauncher
bindcode $mod+49		exec --no-startup-id dmenuwhat

bindsym Mod1+f		exec --no-startup-id tdrop -ma -y 0 -h 88% -n 4 st -e lf
bindsym $mod+f		workspace $ws6; exec --no-startup-id st -e lf

bindsym Mod1+w               exec --no-startup-id sh -c 'pkill vimb || vimb google.fr'
#bindsym Mod1+f		exec --no-startup-id globfind
bindsym $mod+Shift+f	exec --no-startup-id sh -c 'st -e nvim -c :Ag'
bindsym Control+Shift+f	exec --no-startup-id sh -c 'st -e findperso ~/'

bindcode 135			fullscreen toggle
bindcode 134               	floating toggle

bindsym Shift+Left		move left
bindsym Shift+Down		move down
bindsym Shift+Up		move up
bindsym Shift+Right		move right

bindsym $mod+Shift+Escape       exec --no-startup-id xfce4-session-logout
#bindsym $mod+Shift+Escape	exec --no-startup-id prompt "Shutdown computer?" "$shutdown"
bindsym Mod1+Left		exec --no-startup-id i3MoveNext.sh -1
bindsym Mod1+Right		exec --no-startup-id i3MoveNext.sh +1

bindsym $mod+Left		focus left
bindsym $mod+Right		focus right
bindsym $mod+Up		focus up
bindsym $mod+Down		workspace next

bindsym $mod+m 		exec --no-startup-id i3run -t music -e 'st -e cmu -n music cmus'
bindsym $mod+n		exec --no-startup-id i3run -t newsboat -e 'st -e newsboat'
bindsym $mod+Mod1+c	exec --no-startup-id color

bindsym $mod+v		workspace $ws6; exec --no-startup-id st -e ~/.config/vifm/scripts/vifmrun
bindsym Mod1+s		exec --no-startup-id copyq menu

bindsym $mod+o		exec --no-startup-id st -e openfzf
bindsym $mod+s              	exec --no-startup-id synergyserver

bindsym Mod1+Tab	        workspace back_and_forth
bindsym $mod+Tab	        workspace back_and_forth

bindsym $mod+Next		exec --no-startup-id playerctl next
bindsym $mod+Delete	exec --no-startup-id playerctl previous
bindsym $mod+End		exec --no-startup-id playerctl play-pause
bindsym $mod+Home		exec --no-startup-id playerctl stop
bindsym $mod+Insert	exec --no-startup-id voldown
bindsym $mod+Prior		exec --no-startup-id volup

bindsym Control+Home	exec --no-startup-id "mouse move up"
bindsym Control+End		exec --no-startup-id "mouse move down"
bindsym Control+Next	exec --no-startup-id "mouse move right"
bindsym Control+Delete	exec --no-startup-id "mouse move left"
bindsym Control+Insert	exec --no-startup-id "mouse click"
bindsym Control+Prior	exec --no-startup-id "mouse rclick"

set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"

bindsym Mod1+F1		workspace $ws1
bindsym Mod1+F2		workspace $ws2
bindsym Mod1+F3		workspace $ws3
bindsym Mod1+F4		workspace $ws4
bindsym Mod1+F5		workspace $ws5
bindsym Mod1+F6		workspace $ws6
bindsym Mod1+F7		workspace $ws7
bindsym Mod1+F8		workspace $ws8
bindsym Mod1+F9		workspace $ws9
bindsym Mod1+F10		workspace $ws10

bindsym $mod+F1		move container to workspace $ws1; workspace $ws1
bindsym $mod+F2		move container to workspace $ws2; workspace $ws2
bindsym $mod+F3		move container to workspace $ws3; workspace $ws3
bindsym $mod+F4		move container to workspace $ws4; workspace $ws4
bindsym $mod+F5		move container to workspace $ws5; workspace $ws5
bindsym $mod+F6		move container to workspace $ws6; workspace $ws6
bindsym $mod+F7		move container to workspace $ws7; workspace $ws7
bindsym $mod+F8		move container to workspace $ws8; workspace $ws8
bindsym $mod+F9		move container to workspace $ws9; workspace $ws9
bindsym $mod+F10		move container to workspace $ws10; workspace $ws10

bindsym $mod+l 		exec --no-startup-id i3lock -i ~/lock.png
bindsym Mod1+l			exec --no-startup-id testlock

mode "Lock" {
          bindcode 135		fullscreen toggle
          bindcode 134          floating toggle
          bindsym $mod+Shift+d  mode "default"
}

bindsym Mod1+q 			exec --no-startup-id tdrop -ma -w 1366 -y 0 -h 60% -n 11 st -e Bravehisto
bindsym Mod1+F11 			exec --no-startup-id dmenuunicode

#for_window [workspace="2"] layout tabbed
for_window [title="glouglouglou"] floating enable; resize set 10 10; move position 10px 10px
for_window [title="Code - OSS"] move workspace $ws10; workspace $ws10
for_window [title="Xephyr on"] move workspace $ws10; workspace $ws10; mode Lock
for_window [title="Bibliothèque"] floating enable; move position center
for_window [title="@cgD"] move workspace $ws6; workspace $ws6
for_window [class="qutebrowser"] move workspace $ws1; workspace $ws1
for_window [class="JDownloader"] move workspace $ws9; workspace $ws9
for_window [class="firefox"] move workspace $ws1; workspace $ws1
for_window [class="deepin-system-monitor"] move workspace $ws8; workspace $ws8
for_window [class="Waterfox-classic"] move workspace $ws1; workspace $ws1
for_window [class="Molotov"] move workspace $ws10; workspace $ws10; fullscreen enable
for_window [class="Brave-browser"] move workspace $ws1; workspace $ws1
#for_window [class="Cairo-dock"] floating enable; move position top
for_window [class="Thunderbird"] move workspace $ws3; workspace $ws3
for_window [class="Filezilla"] move workspace $ws3; workspace $ws3
for_window [title="cmu:0"] move workspace $ws5; workspace $ws5
for_window [class="sent"] border pixel 0px
for_window [window_role="GtkFileChooserDialog"] resize set 800 600
for_window [window_role="GtkFileChooserDialog"] move position center
for_window [class="Pamac-manager"] floating enable
for_window [class="Pamac-manager"] resize set 1200 650
for_window [class="Pamac-manager"] move position center
for_window [title="alsamixer"] floating enable
for_window [title="alsamixer"] move position center
for_window [title="- Thunderbird"] floating enable
for_window [title="- Thunderbird"] resize set 1000 700
for_window [title="- Thunderbird"] move position center
Script utile pour la config :

https://github.com/LukeSmithxyz/voidric ... .local/bin
https://github.com/Naheel-Azawy/naheel- ... er/scripts
https://github.com/budlabs/i3ass
https://github.com/KJoke70/i3-tools
https://github.com/tenllado/dotfiles/tr ... i3/scripts
https://github.com/odilonscoelho/dots/t ... er/scripts

Pour ce qui est des layouts

Master layout :

https://github.com/windwp/i3-master-stack

Layout Principal :

https://github.com/olemartinorg/i3-alternating-layout

Layout Manager :

https://pypi.org/project/i3-instant-layout ( Le plus utile pour moi )
https://github.com/klaxalk/i3-layout-manager

Si certain veulent d'autre config ou certains scripts qui ne sont pas diso dans les github vous pouvez toujours me les demander je les rajouterais dans le poste.

Je vais aussi mettre à jour le poste de temps en temps avec des nouveau liens pour vous permettre d'être à jour.

Bonne config à tous !
Portez vous bien.
Répondre