Table des matières

twm

Présentation

Twm (Tab Window Manager) est un gestionnaire de fenêtres minimaliste mais remarquablement léger. Il est installé par défaut sur la plupart des distributions GNU/Linux. Pour Debian, il suffit simplement de vérifier si le paquet twm est installé, sinon, dans un terminal et en root :

apt-get update && apt-get install twm

Twm semble avoir été abandonné au profit de gestionnaires de fenêtres plus évolués… et plus lourds ! Mais pour de petites configurations, utiliser Debian sur de vieux pc, pour ceux qui recherchent avant tout la rapidité et la légèreté, ou simplement pour apprendre, Twm est parfait.

Il est possible d'améliorer très nettement son allure “spartiate” !

Sans configuration particulière, twm ressemble à cela :

Oui, je sais, ça fait un peu peur !

Après quelques petites manipulations, on arrive facilement à avoir un environnement sobre tout en étant agréable, très proche d'un gestionnaire de fenêtres comme Openbox par exemple, mais utilisant moins de 40mo de mémoire au démarrage (pour 5 ou 6 fois ça pour KDE par exemple). Une fois configuré, votre environnement pourrait ressembler à cela :

Par défaut, dans la barre de titre des applications lancées, vous avez à gauche un bouton pour iconifier la fenêtre, et à droite une case (gardez le bouton de la souris enfoncé) pour redimensionner très facilement la fenêtre.

Twm est configurable en totalité, suivant vos goûts et préférences. Voici quelques éléments utiles :

Configuration

Le fichier de configuration par défaut de twm se trouve dans le dossier /etc/X11/twm/system.twmrc. La première chose à faire consiste donc à copier ce fichier dans votre dossier personnel.

Pour ce faire, ouvrez un terminal et taper la commande suivante :

cp /etc/X11/twm/system.twmrc /home/utilisateur/.twmrc

Ce fichier est un fichier caché (il commence par un “.”) de votre dossier personnel et, par défaut, il deviendra le fichier de configuration de twm au démarrage. Ce fichier a donc priorité sur celui se trouvant dans le dossier /etc/X11/twm/system.twmrc. À partir de maintenant, vous n'avez donc plus à vous occuper de ce fichier.

Dans votre fichier de configuration /home/utilisateur/.twmrc, nous allons modifier certains éléments :

Les couleurs

Recherchez la ligne commençant par :

BorderColor et remplacez ce qui suis par “blue” > la couleur du bord des applications sera maintenant le bleu par défaut, mais vous mettez bien sûr ce que vous voulez (“red” pour rouge, “green” pour vert, etc…).

TitleBackground et remplacez ce qui suis par “blue” > la couleur de la barre de titre des applications sera le bleu par défaut (idem, mettez bien sûr ce que vous voulez comme couleur).

De la même façon :

TitleForeground > couleur du texte de la barre de titre.

MenuBackground > couleur de fond du menu.

MenuForeground > couleur du texte et de la sélection dans les menus.

MenuBorderColor > couleur de la bordure des menus.

MenuTitleBackground > couleur de fond du titre du menu.

MenuTitleForeground > couleur du texte du titre du menu.

IconBackground > couleur de fond des applications iconifiées.

IconForeground > couleur du texte des applications iconifiées.

IconBorderColor > couleur du bord des applications iconifiées.

Etc…

À vous de chercher et de faire des essais maintenant que vous avez compris l'idée.

Les boutons et touches de raccourcis

Et oui, il est extrêmement simple de configurer vos raccourcis clavier préférés !

La ligne commençant par :

Button1 = : root : f.menu “main” > signifie tout simplement qu'un clic droit de la souris ouvre le menu “main” (que vous pourrez configurer).

Button2 = : root : f.menu “windowops” > signifie tout simplement qu'un clic clic central souris : aller Menu “windowops” (que vous pourrez configurer).

Vous pouvez bien sûr modifier ces règles suivant vos besoins, inverser les boutons par exemple, changer leurs actions, quand vous avez compris l'idée, il ne reste plus qu'à tester !

Pour configurer un raccourci clavier > par exemple je veux que la touche Ctrl + la lettre I de mon clavier lancent Iceweasel, il suffit de rajouter une ligne : “i” = control : all : f.exec “iceweasel &“

Pour par exemple lancer un terminal (chez moi xterm) avec les touches Ctrl + T rajoutez la ligne : “t” = control : all : f.exec “xterm &“

Etc… selon vos besoins.

(Évitez de donner un raccourci avec une lettre seule (toujours utiliser une combinaison de touches), cela fonctionne, mais vous aurez des problèmes quand vous allez saisir du texte sinon !)

Les menus

Tout ce qui est entre guillemets, vous pouvez le changer (par exemple le franciser) : exemple : remplacez “Main Menu” par “mon menu à moi !!” ce qui suit correspond à une fonction, modifiable à volonté.

Vous pouvez aussi rajouter les applications que vous utilisez souvent en haut de cette section, pour ne pas avoir à les chercher dans les sous-menu. Exemple : j'ai rajouté “Navigateur” f.exec “iceweasel &“ en dessous de la ligne “Main Menu” f.title

Vous pouvez supprimer les lignes dont les fonctions ne vous sont pas utiles (si vous ne savez pas à quoi servent les autres fonctions, il suffit de cliquer dessus pour les tester).

Ne touchez à rien en dessous de la ligne ”# Automatically generated file. Do not edit”

Le fichier de configuration

Pour exemple, le début du fichier de configuration commenté de vrms33 (la fin du fichier est généré automatiquement en fonction de vos applications installées, il ne faut donc pas y toucher !) :

.twmrc
 
# Fichier de configuration de Twm pour Debian-Facile
 
 
 
NoGrabServer  # empêche twm d'appeler le serveur X lorsqu'il manipule des boîtes de dialogues.
 
RestartPreviousState
 
DecorateTransients  # Décorer même les fenêtres de courte durée de vie (les boîtes de dialogue, etc...)
 
TitleFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
 
ResizeFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
 
MenuFont "-adobe-helvetica-bold-r-normal--*-120-*-*-*-*-*-*"
 
IconFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*-*-*-*"
 
IconManagerFont "-adobe-helvetica-bold-r-normal--*-100-*-*-*"
 
MoveDelta 3  # reconnait un mouvement de la souris dès qu'il y a un déplacement de plus de 3 pixels.
 
Function "move-or-lower" { f.move f.deltastop f.lower }
 
Function "move-or-raise" { f.move f.deltastop f.raise }
 
Function "move-or-iconify" { f.move f.deltastop f.iconify }
 
 
 
# Les couleurs sont définies ici 
 
 
Color
 
{
 
BorderColor "grey"          # couleur du bord des applications (par exemple Iceweasel)
 
TitleBackground "blue"      # couleur de la barre de titre (par exemple haut de Iceweasel)
 
TitleForeground "black"     # couleur du texte de la barre de titre (par exemple haut de Iceweasel)
 
MenuBackground "grey"       # couleur de fond du Menu
 
MenuForeground "black"      # couleur texte et sélection dans les menus
 
MenuBorderColor "blue"      # couleur du bord du menu
 
MenuTitleBackground "black" # couleur de fond du titre du Menu
 
MenuTitleForeground "white" # couleur du texte du titre du Menu
 
IconBackground "black"      # couleur de fond des applications iconifiées
 
IconForeground "blue"       # couleur du texte des applications iconifiées
 
IconBorderColor "white"     # couleur du bord des applications iconifiées
 
}
 
 
# rajouter un bouton "supprimer" en haut à gauche des fenêtres:
 
LeftTitleButton "target" = f.delete 
 
 
# Les actions des boutons sont définies ici 
 
 
# clic gauche souris : aller au Menu principal :
 
Button1 = : root : f.menu "menu principal" 
 
# clic central souris : aller Menu "Actions" :  
 
Button2 = : root : f.menu "Actions" 
 
Button1 = m : window|icon : f.function "move-or-lower"
 
Button2 = m : window|icon : f.iconify
 
Button3 = m : window|icon : f.function "move-or-raise"
 
Button1 = : title : f.function "move-or-raise"
 
Button2 = : title : f.raiselower
 
Button1 = : icon : f.function "move-or-iconify"
 
Button2 = : icon : f.iconify
 
Button1 = : iconmgr : f.iconify
 
Button2 = : iconmgr : f.iconify
 
 
 
# Raccourcis clavier à définir ci-dessous 
 
 
 
# touche t + Ctrl = lancer Terminal :
 
"t" = control : all : f.exec  "xterm &"
 
# touche i + Ctrl = lancer Iceweasel :
 
"i" = control : all : f.exec  "iceweasel &"
 
 
 
# Menus à définir ci-dessous 
 
 
menu "menu principal"
 
{
 
"Menu"         f.title
 
"Terminal"     f.exec  "xterm &" # remplacez xterm par votre terminal
 
"Navigateur"   f.exec  "iceweasel &" # idem, saisir le nom de votre navigateur
 
"Mails"        f.exec  "icedove &" # idem, nom de votre gestionnaire de mails
 
"Mes fichiers" f.exec  "pcmanfm &" # idem, nom de votre gestionnaire de fichiers
 
""            f.nop   
 
"Menu Debian"        f.menu "/Debian"
 
""            f.nop
 
"Fond d'écran"        f.title
 
"Noir" f.exec "xsetroot -solid black"
 
"Bleu" f.exec "xsetroot -solid blue"
 
"Gris" f.exec "xsetroot -solid grey"
 
""            f.nop
 
"Image perso" f.exec "nitrogen --restore" # il faut avoir installé "nitrogen"
 
""            f.nop
 
"Quitter"        f.menu "Quitter la session"
 
}
 
 
menu "Quitter la session"
 
{
 
"Quitter la session ?"    f.title
 
"Non, je continue !"      f.restart
 
"Oui, je me déconnecte."  f.quit
 
}
 
 
menu "Actions"
 
{
 
"Actions"        f.title
 
""            f.nop
 
"Iconifier"      f.iconify
 
""            f.nop
 
"Déplacer"       f.move
 
""            f.nop
 
"Dessus"         f.raise
 
"Dessous"        f.lower
 
""            f.nop
 
"Tuer"           f.destroy
 
}
 
 
 
# LA SUITE EST GENEREE AUTOMATIQUEMENT : NE PAS EDITER ! (voir /usr/share/doc/menu/html/index.html) 

Astuces twm

- Pour rajouter un bouton bien pratique sur la gauche de la barre de titre pour fermer les applications, rajoutez en début de fichier :

LeftTitleButton “target” = f.delete

- Pour rajouter un bouton “réduire” à droite dans la fenêtre de titre, rajoutez en début de fichier :

RightTitleButton “opendot” = f.iconify

- Pour rajouter un bouton “maximiser” à droite dans la fenêtre de titre, rajoutez en début de fichier :

RightTitleButton “icon” = f.fullzoom

- Pour créer un nouveau menu personnalisé qui s'ouvrira avec un clic droit de la souris, rajoutez en début de fichier :

Button3 = : root : f.menu “menu personnalisé” (remplacez bien sûr “menu personnalisé” par le nom que vous souhaitez)

et bien sûr rajoutez en fin de fichier (mais avant la ligne ”# Automatically generated file. Do not edit”) ce menu, sous la forme :

fin du fichier .twmrc
menu "menu personnalisé"
 
{
 
"action1"    action1**  remplacez "action1" par le texte de votre choix, et action1 par la commande souhaitée.
 
"action2"    action2**  remplacez "action2" par le texte de votre choix, et action2 par la commande souhaitée.
 
"action3"    action3**  remplacez "action3" par le texte de votre choix, et action3 par la commande souhaitée.
 
etc.... (ne pas laisser "etc..." dans votre code !)
 
}

- Pour changer la couleur du fond d'écran, utilisez la fonction : xsetroot -solid black (black pour avoir du noir, red pour du rouge, etc..) > je l'ai intégré dans la nouvelle version du fichier de configuration ci-dessus, vous n'avez plus qu'à choisir dans le menu principal. ;-)

- Pour utiliser un fond d'écran personnalité, il suffit d'installer par exemple le petit logiciel nitrogen, et de cliquer ensuite simplement sur la ligne correspondante du menu principal.

- Pour démarrer twm si il y a d'autres gestionnaires de fenêtres installés sur votre pc, le sélectionner dans le menu de votre gestionnaire de connexion (en général en bas de l'écran).

Si vous démarrez en mode terminal, saisir : startx /usr/bin/twm

Liens utiles

Conclusion

Ouf, je m'arrête là, à vous de chercher un peu maintenant, vous en savez assez pour vous débrouiller et explorer d'avantage.

Twm est ce que j'ai testé de plus léger à ce jour. Inutile de dire qu'il vous fait également gagner 10 bonnes secondes au démarrage du pc, puisqu'il démarre quasi … instantanément !

Et comme toujours sous Debian GNU/linux, pour aller plus loin, dans un terminal :

man twm

Cordialement.

1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !