mar 24

Afin d’optimiser mon espace de travail, je me suis penché sur une solution permettant de faire d’OpenBox un tiling manager. Pour ceux qui ne le savent pas, voici les caractéristiques principales du tiling :

  • Tout l’espace disponible sur l’écran est utilisé.
  • Les fenêtres se placent automatiquement et ne se chevauchent jamais.
  • La navigation se fait grâce à des raccourcis clavier.

Histoire de comprendre un peu mieux, voici des images de mon desktop utilisant la méthode du tiling :

Comme vous pouvez le voir, l’espace de travail est utilisé de manière optimal. L’agencement des fenêtres est automatique, pas besoin de les placer et/ou redimensionner manuellement :  On gagne donc en productivité. Les raccourcis claviers permettent de naviguer rapidement entre les fenêtres, avec un peu d’entraînement la souris se fait très vite oublier !

OpenBox permet à la base de faire ce que l’on pourrait appeler du « pseudo tiling », c’est à dire qu’il est possible de redimensionner et de déplacer les fenêtres grâce aux raccourcis clavier. Accoupler à PyTyle 2, celui-ci devient un « véritable » tiling manager.

PyTyle 2 est  une application écrite en langage Python, elle se configure facilement via un fichier texte unique qui a le mérite d’être compréhensible.

Pourquoi PyTyle 2 et non pas un vrai tiling manager ? Tout simplement par faute de temps… Pytyle 2 n’est pas sans défaut, on sent bien le coté « rustine » mais il a le gros avantage de pouvoir continuer à utiliser OpenBox. Il permet par la même occasion « de se faire la main » avant de passé à du vrai tiling.

Installation :

Rien de plus simple, ouvrez votre terminal et faites :

$ yaourt -S pytyle2-hg

Pour lancer PyTyle 2 :

$ pytyle2 &

How to :

Avant de passer à la pratique, il est bon de comprendre le vocabulaire spécifique au tiling :

  • Tiler : C’est tout simplement le nom donné à la mise en page, dans PyTyler 2 il s’agit de : ManualTile, Cascade, Center, Horizontal, HorizontalRows, Maximal, Vertical, VerticalRows.
  • Master : La fenêtre principale ( celle qui prend le plus de place ) est appelée Master.
  • Slave : Le nom qui défini toutes les autres fenêtres qui ne sont pas en Master.
  • Focus : La fenêtre qui a le focus et tout simplement celle qui est en cours d’utilisation.
  • Float : Mode dit « flottant », les fenêtres sont libres : C’est le comportement normal d’OpenBox.

Voici deux images qui vous permettront de vous familiariser avec ce vocabulaire :

  • Type de tiler : Vertical.
  • Master : Midori.
  • Slave : Thunar, ncmpc.
  • Focus : Midori.

  • Type de tiler : Horizontal.
  • Master : ncmpc.
  • Slave : Thunar, Midori.
  • Focus : Thunar.

Voyons de suite les différents raccourcis clavier, bien évidement je me limiterais aux principaux ! Je vous laisse le soin de découvrir les autres…

[ Alt + A ] : Active le mode tiling.
[ Alt + U ] : Désactive le mode tiling.
[ Alt + Z ] : Modifie le type de tiler.
[ Alt + C ] : Change la fenêtre qui a le master.
[ Alt + Q ] : Recharge le fichier de configuration.
[ Alt + Entrée ] : Met la fenêtre qui a le focus en position master.
[ Alt + F ] : Active le mode float sur la fenêtre qui a le focus.
[ Alt + L ], [ Alt + H ] : Modifie la taille de la fenêtre en position master.
[ Alt + J ], [ Alt + K ] : Change le focus.

C’est un peu déroutant au début, mais avec un peu de pratique la productivité se trouvera grandement améliorée !

Configuration :

Comme dit précédemment la configuration de PyTyle 2 se fait à l’aide d’un seul et même fichier. Celui-ci porte le doux nom de config.ini et se trouve dans le répertoire ~/.config/pytyle2/. Ouvrez le simplement avec votre éditeur favori :

$ nano ~/.config/pytyle2/config.ini

Pour finir voici mon fichier config.ini, les modifications effectuées dessus sont minimes : Seuls les tilers à utiliser et le padding sont modifiés.

[GlobalKeybindings]
Alt-A = tile
Alt-U = untile
Alt-Shift-D = toggle_decorations
Alt-Shift-B = toggle_borders
Alt-Z = cycle_tiler
Alt-E = screen0_focus
Alt-W = screen1_focus
Alt-R = screen2_focus
Alt-Shift-E = screen0_put
Alt-Shift-W = screen1_put
Alt-Shift-R = screen2_put
Alt-Shift-S = refresh_workarea
Alt-F = float
Alt-Ctrl-C = quit
Alt-Shift-space = reset
Alt-Q = reload_configuration
Alt-D = debug
 
[AutoKeybindings]
Alt-M = focus_master
Alt-Return = make_active_master
Alt-H = decrease_master
Alt-L = increase_master
Alt-J = previous
Alt-Right = previous
Alt-K = next
Alt-Left = next
Alt-Shift-J = switch_previous
Alt-Shift-K = switch_next
Alt-C = cycle
Alt-comma = decrement_masters
Alt-period = increment_masters
 
[ManualKeybindings]
Alt-Up = up
Alt-Right = right
Alt-Down = down
Alt-Left = left
Alt-H = hsplit
Alt-V = vsplit
Alt-Shift-C = close_frame
Alt-T = print_tree
Alt-O = only
Alt-C = cycle
Alt-G = toggle_catchall
 
Alt-Shift-Up = up_move
Alt-Shift-Right = right_move
Alt-Shift-Down = down_move
Alt-Shift-Left = left_move
 
Alt-Super-Up = up_resize
Alt-Super-Right = right_resize
Alt-Super-Down = down_resize
Alt-Super-Left = left_resize
 
# This is an alternate resizing scheme. The default above is probably
# more intuitive, and it requires fewer keybindings, but the scheme
# below provides more fine-grained control.
#Alt-Super-Up = up_increase
#Alt-Super-Right = right_increase
#Alt-Super-Down = down_increase
#Alt-Super-Left = left_increase
#Alt-Ctrl-Up = up_decrease
#Alt-Ctrl-Right = right_decrease
#Alt-Ctrl-Down = down_decrease
#Alt-Ctrl-Left = left_decrease
 
# Miscellaneous options that apply to all tilers, workspaces
# and monitors. Options in CAPS can only be specified in [Global].
# Otherwise, all options can be overridden in specific Workspace
# and/or Monitor sections. Also, *some* settings can be overidden
# in tiling sections. (For example, tilers and tile_on_startup cannot
# be overriden in tiling sections, but ignore, decorations, and margin
# can.)
[Global]
# A list of all available tilers. This is a special option that
# is used to parse/load any tilers that may be used. This does
# not affect what is available when cycling through tilers. Therefore,
# order does not matter.
ALL_TILERS = ManualTile Cascade Center Horizontal HorizontalRows Maximal Vertical VerticalRows
 
# A special option
MOVETIME_OFFSET = 0.5
 
# A list of tilers available when cycling, in order. The first
# tiler is the default.
tilers = Vertical Horizontal
ignore = krunner gmrun gimp sh
decorations = Yes
borders = No
border_width = 4
borders_active_color = 0xff0000
borders_inactive_color = 0x008800
borders_catchall_color = 0x3366ff
placeholder_bg_color = 0x000000
tile_on_startup = Yes
margin = 23 0 23 0
padding = 0 0 0 0
 
#[Workspace0-Monitor1]
#tile_on_startup = Yes
#tilers = ManualTile Vertical
 
[ManualTile]
tile_on_startup = No
padding = 1 1 1 1
decorations = No
borders = Yes
shallow_resize = Yes
 
[Cascade]
push_down = 25
push_over = 0
width_factor = 0.7
height_factor = 0.7
horz_align = left
 
[Center]
step_size = 0.05
width_factor = 0.5
height_factor = 0.5
columns = 2
 
[Horizontal]
tile_on_startup = Yes
step_size = 0.05
height_factor = 0.5
 
[HorizontalRows]
step_size = 0.05
height_factor = 0.5
columns = 2
 
[Maximal]
decorations = No
 
[Vertical]
step_size = 0.05
width_factor = 0.5
shallow_resize = Yes
 
[VerticalRows]
step_size = 0.05
width_factor = 0.5
rows = 2

Liens :

Dans la même catégorie :

écrit par David Lopes Ferreira

6 commentaires à “OpenBox en mode tiling”

  1. Louis Roché Dit:

    J’utilise déjà un WM qui fait du tiling donc je ne suis surement pas la cible prioritaire de PyTyle mais je trouve tout de meme le projet tres interessant. La première configuration à l’air beaucoup plus simple que c’elle d’awesome par exemple. Et la personnalisation doit pouvoir se faire sans trop de difficulté, le fichier de configuration étant vraiment très clair. Surement un très bonne façon de découvrir le tiling.

  2. WeedFast Dit:

    @Louis Roché : En effet PyTyle 2, c’est un peu le tiling facile. Pas de configuration hasardeuse, on lance l’application et ça fonctionne… C’est simple et efficace ! Un bon moyen donc pour découvrir le tiling. Petite remarque, je n’ai pas tester mais il me semble que PyTyle 2 fonctionne avec d’autres WM…

  3. En route vers WMFS » UbunBloX Dit:

    [...] OpenBox en mode tiling [...]

  4. cyril Dit:

    Merci de m’avoir fait découvrir ça !
    Super sympa/pratique avec openbox :)

  5. David Lopes Ferreira Dit:

    @cyril : En tout cas c´est bien pratique pour découvrir le tiling !

  6. Cayle Dit:

    Now we know who the seinblse one is here. Great post!

Laisser une Réponse