====== twm ======
* Objet : twm
* Niveau requis :{{tag>débutant avisé}}
* Commentaires : //gestionnaire de fenêtres minimaliste//
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)
* Suivi : {{tag>à-tester}}
* Création par [[user>smolski]] le 06/05/2012
* Testé par .... le ....
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=1380 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== 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 :
{{/guitwm/twm.png|}}
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 :
{{/file-R0e314b69b8686e3dc21bf1cc56bb9490.png?800}}
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 !) :
# 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 :
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 =====
* [[http://fr.wikipedia.org/wiki/Twm|Wikipédia]] (fr)
* [[http://www.lastrange.com/work/twm.pdf|Livret de présentation]] (us - format pdf)
===== 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.