J’utilise ion3 comme gestionnaire de fenêtre, car j’adore le principe de mosaïque d’applications sans fenêtre et je trouve l’ergonomie de ion particulièrement bien choisie.
Évidemment, bien choisie une fois qu’on a modifié le fichier de configuration, sans quoi c’est moins évident.
Voici donc mon ~/.ion3/cfg_ion.lua
dopath("cfg_defaults")
— Mod1 = Alt
— rajouter "+" après le code pour les concaténations suivantes
META="Mod1+"
ioncore.set
— dessine les fenetres lors d’un redimensionnement
opaque_resize=true,
defbindings("WMPlex.toplevel",
— suppression des raccourcis directs sur les touches de fonctions
kpress(ALTMETA.."F1", "nil"),
kpress(ALTMETA.."F2", "nil"),
kpress(ALTMETA.."F3", "nil"),
kpress(ALTMETA.."F4", "nil"),
kpress(ALTMETA.."F5", "nil"),
kpress(ALTMETA.."F6", "nil"),
kpress(ALTMETA.."F9", "nil"),
kpress(ALTMETA.."F12", "nil"),
— lancement xterm
kpress(META.."F1", "ioncore.exec_on(_, XTERM or ’xterm’)"),
— exec
kpress(META.."F2", "mod_query.query_exec(_)"),
— nouveau bureau
kpress(META.."F3", "mod_query.query_workspace(_)"),
— menu général ion3
kpress(META.."F12", "mod_query.query_menu(_, _sub, ’mainmenu’, ’Main menu :’)")
)
defbindings("WScreen",
— Aller à l’écran physique précédent/suivant
kpress(META.."twosuperior", "ioncore.goto_prev_screen()"),
kpress(META.."Next", "ioncore.goto_next_screen()"),
— aller au nième écran physique (attention, inversion pour 2e écran à gauche)
kpress(META.."Shift+2", "ioncore.goto_nth_screen(0)"),
kpress(META.."Shift+1", "ioncore.goto_nth_screen(1)"),
— Aller au cadre suivant/précédent
kpress(META.."Right", "ioncore.goto_next(_chld, ’right’)", "_chld :non-nil"),
kpress(META.."Left", "ioncore.goto_next(_chld, ’left’)", "_chld :non-nil"),
— Aller au bureau suivant/précédent
kpress(META.."Page_Down", "WScreen.switch_next(_)"),
kpress(META.."Page_Up", "WScreen.switch_prev(_)")
)
defbindings("WTiling",
— Aller au cadre supérieur/inférieur
kpress(META.."Up", "ioncore.goto_next(_sub, ’up’, no_ascend=_)"),
kpress(META.."Down", "ioncore.goto_next(_sub, ’down’, no_ascend=_)")
)
defbindings("WFrame",
— Aller à la fenetre suivante dans le cadre
kpress(META.."Tab", "_ :switch_next()")
)