Pour ceux que cela intéresse, qui utilisent Emacs dans une console (comme moi), une petit info.
Comme vous le savez sans doute, Emacs 26 en mode console supporte 24 bits pour les couleur. On peut maintenant utiliser les thèmes sans avoir des couleurs affreuses. Mais concrètement, comment fait-on?
Voici le contenu des deux fichiers, à sauvegarder par exemple dans "screen-24bits.tic" et term-24bits.tic:
# Use colon separators.
screen-24bit|xterm with 24-bit direct color mode,
use=screen-256color-bce,
setb24=\E[48:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
setf24=\E[38:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
# Use semicolon separators.
screen-24bits|xterm with 24-bit direct color mode,
use=screen-256color-bce,
setb24=\E[48;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
setf24=\E[38;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
# Use colon separators.
xterm-24bit|xterm with 24-bit direct color mode,
use=xterm-256color,
setb24=\E[48:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
setf24=\E[38:2:%p1%{65536}%/%d:%p1%{256}%/%{255}%&%d:%p1%{255}%&%dm,
# Use semicolon separators.
xterm-24bits|xterm with 24-bit direct color mode,
use=xterm-256color,
setb24=\E[48;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
setf24=\E[38;2;%p1%{65536}%/%d;%p1%{256}%/%{255}%&%d;%p1%{255}%&%dm,
Ensuite, les compiler avec les commandes suivante:
tic -o ~/.terminfo -x screen-24bits.tic
tic -o ~/.terminfo -x term-24bits.tic
Maintenant, vous pouvez avoir Emacs dans tmux, en 24 bits…
export TERM=screen-24bit
emacs -nw
L'avantage d'utiliser Emacs dans tmux est le multi-tâche, lorsque vous travaillez sur plusieurs projets en même temps. J'utilise le premier panel pour l'environnement local, et un autre pour chaque serveur distant.
Ensuite, basculer d'un projet à l'autre se fait très simplement en utilisant la notion de "session" de tmux, et en utilisant les touches Ctrl+B W:
Jusqu'il y a quelque temps, j'utilisais screen dans tmux, mais là, je suis "limité" à 256 couleurs ;-)
Pour ceux que cela intéresse, mon tmux.conf est ici: https://gogs.rodier.me/andre/dotfiles/src/master/tmux.conf
Et mon ~/.emacs ici: https://gogs.rodier.me/andre/dotfiles/src/master/emacs-init.el
# C'est déjà 'dredi ?
Posté par Axioplase ıɥs∀ (site web personnel) . Évalué à 6.
Cool ! Maintenant t'as des couleurs jolies dans un éditeur affreux !
# Screen dans tmux
Posté par Colin Pitrat (site web personnel) . Évalué à 3.
C'est quoi l'intérêt d'utiliser screen dans tmux?
[^] # Re: Screen dans tmux
Posté par Andre Rodier (site web personnel) . Évalué à 3. Dernière modification le 11 juin 2019 à 15:50.
Bonne question.
TLDR; tmux: une fenêtre par système distant. screen: une fenêtre par activité.
Lorsque je fais de l'administration d'un système complexe, particulièrement lors de ma dernière position, chaque système était composé d'environ une dizaine de serveurs.
J'avais donc une session tmux par système (AWS, google cloud, preprod, live, etc), et une fenêtre par serveur. Sur ces serveurs, tournent des programmes que je ne devais pas fermer, du style backup / restoration, journalctl -f, rsync, midnight commander, etc…L'utilité énorme de screen pour l'administration d'un serveur distant, ça se voit lors d'une coupure internet, ou lorsqu'on éteint sa machine le soir. On peut retrouver la session que l'on avait ouverte il y a plusieurs jours, avec les même programmes en train de tourner. Du coup, si vous avez suivi, il y avait bien screen dans tmux.
Cela dit, j'ai utilisé screen dans tmux localement aussi. Lorsque l'on fait du multitâche, c'est assez pratique. Les onglets de gnome-terminal ne me plaisent pas. Les "panneaux" de screen ne prennent pas de place, on peut les renommer et les réorganiser directement. screen (tmux aussi, d'ailleurs) clignote lorsque il y a une activité dans une des fenêtres…
J'ai souvent utilisé screen, avec Emacs dans la première fenêtre, une ligne de commande dans la seconde, et d'autres commandes locales ensuite, type midnight commander, journalctl -f, top, mutt, irssi, etc. sur les suivantes.
Cela me permettait de travailler sans quitter le terminal ou quasiment sans avoir besoin de la souris. Je ne sais pas si c'est clair ou si ça peut s'imaginer.
Maintenant, j'ai conscience que c'est un peu capilo-tracté, du coup, j'essaye de me limiter à tmux, en tout cas en local. J'ai remplacé screen par eshell dans emacs, pour l'instant, ça me parait faisable.
[^] # Re: Screen dans tmux
Posté par Psychofox (Mastodon) . Évalué à 4. Dernière modification le 11 juin 2019 à 16:09.
Mais pourquoi ne pas utiliser tmux dans tmux avec un préfixe différent tout simplement ?
Mais bon perdo j'utilise plutôt tmux pour ce qui est distant et l'emulatrur de terminal kitty en local pour le tiling.
[^] # Re: Screen dans tmux
Posté par Ruminant . Évalué à 2.
Je ne comprends toujours pas l’intérêt de tmux/screen dans tmux/screen… juste tmux/screen… ça suffit, non ?
[^] # Re: Screen dans tmux
Posté par Andre Rodier (site web personnel) . Évalué à 1.
Toi pas comprendre. C'est screen dans tmux, c'est tout.
Par exemple:
[^] # Re: Screen dans tmux
Posté par Ruminant . Évalué à 0.
Je trouve ça étrange en fait, quand je bosse sur des serveurs distants je démarre des tmux/screen/whatever sur le serveur et j’ai un "terminal physique" sur ma machine. Après j’utilise i3 pour me passer de la souris, c’est peut-être pour cela que tu colles tout dans un terminal virtuel.
En fait je trouve ça étrange car ça ajoute une couche de raccourcis qui peut vite devenir encombrante.
[^] # Re: Screen dans tmux
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 4.
ce que ruminant a voulu dire probablement c'est quel est l'interêt d'utiliser un multiplexeur de terminal (ex tmux, screen, ..) dans un multiplexeur de terminal (tmux, screen).
Il y a un cas d'usage effectivement c'est pour combiner des terminaux de différentes sources, mais dans ce cas comme ça à été suggéré il existe des alternatives bien plus efficaces (window-manager dédié type i3, émulateur de terminal plus inteligent que xterm type tilix).
J'avoue que mixer screen et tmux est une idée surprenante pour moi, tu pourrais utiliser tmux dans tmux pour tes besoins de terminaux résistants aux déconnections sur tes serveurs, et les fonctions de window-ing de tmux pour le "local pane"
# Utiliser Emacs à fond
Posté par lockidor . Évalué à 2.
Et sinon, pourquoi ne pas utiliser eyebrowse pour avoir un agencement par serveur et Tramp pour pouvoir éditer en local tes fichiers distants ?
Plus besoin de tmux, plus de souci :)
[^] # Re: Utiliser Emacs à fond
Posté par Andre Rodier (site web personnel) . Évalué à 2.
Je connais tramp.
Il ne s'agit pas que d'ouvrir des fichiers distants, mais de laisser des programmes tourner sur le serveur distants, comme tail -f, top, iotop, pgtop, etc…
J'ai essayé screen dans emacs, mais bon…c'est capillo-tracté.
# Merci pour le partage
Posté par fabricius . Évalué à 4.
Merci pour le journal, en particulier pour le partage de tes conf tmux et emacs. J'utilise aussi les deux (mais pas emacs dans un terminal). J'étais un grand utilisateur de screen, mais suite à un journal vu il y a quelques années sur linuxfr, je suis passé à tmux, et j'ai complètement abandonné screen. Je suis d'ailleurs toujours étonné du faible nombre d'utilisateurs de tmux à mon travail. J'ai sur ma TODO list de faire une présentation vidéo de tmux pour promouvoir son usage auprès de mes collègues.
En tout cas, tu as vraiment une utilisation avancée de l'outil, à en juger tes screenshots (panels tmux). Et même ton screenshot emacs en mode console est impressionnant!
[^] # Re: Merci pour le partage
Posté par Marotte ⛧ . Évalué à 3.
Tu utilises emacs dans quoi ?!
[^] # Re: Merci pour le partage
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 1.
emacs fonctionne en mode graphique direct hein
[^] # Re: Merci pour le partage
Posté par Marotte ⛧ . Évalué à 3.
Oui ok, il fonctionne en émulant un terminal.
Je trouve ta formulation bizarre parce que dans le contexte il n’y a pas de différence entre un « vrai » terminal en mode texte et une émulation de terminal sous X.
Que tu sois dans un terminal ou dans une émulation de terminal sous X emacs fonctionne exactement de la même manière, non ?
Enfin bref, je chippotte…
[^] # Re: Merci pour le partage
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 2.
Emacs-X11 était même un projet dédié à un moment, de ce que j'en sais il ne fonctionne pas du tout en se basant sur un émulateur de terminal…
[^] # Re: Merci pour le partage
Posté par Marotte ⛧ . Évalué à 3.
Ah oui OK je vois. emacs X c’est plus qu’un emacs dans un émulateur de terminal (même si c’est en soi une émulation de terminal…).
Meilleure gestion des fonts, des couleurs, on peut même afficher des images, etc…
https://www.reddit.com/r/emacs/comments/8pqgtw/x_vs_terminal/
emacs a donc son propre émulateur de terminal en fait.
[^] # Re: Merci pour le partage
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 1.
inclus dans son système de "buffers" oui, notamment pour "emacs-shell". Mais c'est tout, il n'utilise pas une surcouche d'émulateur de terminal pour afficher les buffers
# Session vs Window
Posté par David Marec . Évalué à 2.
En fait, non. Il s'agit de la notion de « Fenêtre » du client,
choose-window
, comme pourC-p
etC-n
.Pour changer de session à partir d'un client, c'est
choose-session
, soitC-s
.Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.