OVH Cloud OVH Cloud

fenêtre emacs plus grande que l'écran

6 réponses
Avatar
jean-luc
bonjour,
je débute dans l'utilisation d'emacs (sous linux debian sarge) et j'ai
un petit problème : quand je lance emacs la fenêtre est toujours plus
grande que l'ecran, aussi bien avec xfce4 qu'avec wmaker. ce n'est pas
dramatique mais pour pouvoir lire la ligne de commande il faut d'abord
que je réduise la taille de la fenêtre.

quelqu'un aurait une idée pour résoudre cela ?

merci. JL

6 réponses

Avatar
Sébastien Kirche
Le 6 September 2005 à 12:09, jean-luc a formulé :

quelqu'un aurait une idée pour résoudre cela ?



Rapido-le-zoo : maintiens alt en cliquant avec le bouton droit dans la
fenêtre et en glissant : permet de redimensionner sans être obligé
d'attraper les bordures de la fenêtre (quand il y en a, et ça marche
même quand il n'y a pas de bordure/poignée) - avec le bouton de gauche
on peut déplacer la fenêtre

En modifiant la config, on peut spécifier la taille par défaut des
fenêtres (et séparément celle de la fenêtre initiale) : voir
default-frame-alist et initial-frame-alist.

Exemple :
(setq default-frame-alist
'((width . 120) ;;caractères
(height . 44) ;;caractères
(top . 426) ;;pixels
(left . 260) ;;pixels
))

À placer dans le .emacs, éventuellement dans un (if window-system)

HTH.
--
Sébastien Kirche
Avatar
Pascal Bourguignon
Sébastien Kirche writes:

Le 6 September 2005 à 12:09, jean-luc a formulé :

quelqu'un aurait une idée pour résoudre cela ?



Rapido-le-zoo : maintiens alt en cliquant avec le bouton droit dans la
fenêtre et en glissant : permet de redimensionner sans être obligé
d'attraper les bordures de la fenêtre (quand il y en a, et ça marche
même quand il n'y a pas de bordure/poignée) - avec le bouton de gauche
on peut déplacer la fenêtre

En modifiant la config, on peut spécifier la taille par défaut des
fenêtres (et séparément celle de la fenêtre initiale) : voir
default-frame-alist et initial-frame-alist.

Exemple :
(setq default-frame-alist
'((width . 120) ;;caractères
(height . 44) ;;caractères
(top . 426) ;;pixels
(left . 260) ;;pixels
))

À placer dans le .emacs, éventuellement dans un (if window-system)



Voici ce que j'utilise, de manière à être adaptatif. Le seul truc,
c'est les deux constantes qui dépendent du window manager. Il y
aurait surement moyen pour un pointu du X d'obtenir ces valeurs
dynamiquement en demandant au window manager ou au serveur. (Ah, il y
a aussi quelques constantes de positionnement qui dépendent aussi du
window manager: j'utilise wmaker avec un dock de 64 pixels...)


(defvar *window-manager-y-offset* (+ 20 11)
"The number of vertical pixels eaten by the window manager
(window title, grow bar).")


(defvar *window-manager-x-offset* 2
"The number of vertical pixels eaten by the window manager.")


(defvar *current-frame* nil)


(defun current-frame ()
"
RETURN: The current frame.
"
(selected-frame));;current-frame


(defun font-canonical-to-pixel (canon &optional device)
(let ((pix-width (float (or (device-pixel-width device) 1024)))
(mm-width (float (or (device-mm-width device) 293))))
(/ canon (/ pix-width mm-width) (/ 25.4 72.0))))


(defun get-font-size-in-pixel (font &optional device)
"
RETURN: The font height in pixel.
"
(let ((fs (font-size (font-create-object font))))
(if (numberp fs)
fs
(font-canonical-to-pixel
(font-spatial-to-canonical fs device) device))));;get-font-size-in-pixel


(defun max-frame-line-number (&optional frame)
"
RETURN: The maximum number of line that can be displayed on this frame
inside this screen.
"
(truncate
(/ (- (x-display-pixel-height frame) *window-manager-y-offset*)
(frame-char-height frame))));;max-frame-line-number


(defun max-frame-column-number (&optional frame margin)
"
MARGIN: Number of pixel to substract from the display width.
RETURN: The maximum number of columns that can be displayed on this frame
inside this screen.
"
(setf margin (or margin 0))
(truncate
(/ (- (x-display-pixel-width frame) margin *window-manager-x-offset*)
(frame-char-width frame))));;max-frame-column-number


(defun maximize-frame ()
"Enlarge the window to span the whole screen."
(interactive)
(let ((*current-frame* (current-frame)))
(set-frame-width *current-frame* (max-frame-column-number *current-frame* (+ (if current-prefix-arg 64 0) 34)))nil
(set-frame-height *current-frame* (max-frame-line-number *current-frame*))
(set-frame-position *current-frame* 0 0)
(delete-other-windows)));;maximize-window
;; (setf *current-frame* (current-frame))


(defun single-frame ()
"Reduce the frame, to one 80-columns window."
(interactive)
(let ((*current-frame* (current-frame)))
(set-frame-width *current-frame* 81)
(set-frame-height *current-frame* (max-frame-line-number))
(message "prefix= %S" prefix-arg)
(if current-prefix-arg
(set-frame-position *current-frame* -1 0)
(set-frame-position *current-frame* -64 0))
(delete-other-windows)));;single-window


(defun double-frame ()
"Enlarge the frame, and split it horizontally in two 80-column windows."
(interactive)
(let ((*current-frame* (current-frame)))
(setq truncate-partial-width-windows nil)
(set-frame-width *current-frame* 167)
(set-frame-height *current-frame* (max-frame-line-number))
(set-frame-position *current-frame* 0 0)
(delete-other-windows)
(split-window-horizontally 86)
(other-window 1)
(switch-to-buffer
(do ((buffers (buffer-list) (cdr buffers)))
((or (null buffers)
(not (or (position (CHAR (buffer-name (car buffers)) 0) " *")
(equal (current-buffer) (car buffers)))))
(car buffers))))));;double-window


(defun half-frame ()
"Reduce the frame, to one 40-columns window."
(interactive)
(let ((*current-frame* (current-frame)))
(set-frame-width *current-frame* 41)
(set-frame-position *current-frame* -64 0)
(delete-other-windows)));;half-window



--
"Our users will know fear and cower before our software! Ship it!
Ship it and let them flee like the dogs they are!"
Avatar
Prakash Countcham
Bonsoir,

Sébastien Kirche writes:
Rapido-le-zoo : maintiens alt en cliquant avec le bouton droit dans la
fenêtre et en glissant : permet de redimensionner sans être obl igé
d'attraper les bordures de la fenêtre (quand il y en a, et ça mar che
même quand il n'y a pas de bordure/poignée) - avec le bouton de gau che
on peut déplacer la fenêtre



Est-ce que cela ne dépend pas du gestionnaire de fenêtres utilisé ? E n tout
cas cela ne marche pas chez moi.

En modifiant la config, on peut spécifier la taille par défaut des
fenêtres (et séparément celle de la fenêtre initiale) : voir
default-frame-alist et initial-frame-alist.

Exemple :
(setq default-frame-alist
'((width . 120) ;;caractères
(height . 44) ;;caractères
(top . 426) ;;pixels
(left . 260) ;;pixels
))

À placer dans le .emacs, éventuellement dans un (if window-system)



Sinon, tu peux toujours rajouter la ligne suivante dans ton fichier
~/.Xresources ou ~/.Xdefaults (Emacs sera lancé avec 80 lignes et 25
colonnes) :

Emacs*geometry: 80x25

Il y a également d'autres variables que tu peux régler si le coeur t'en dit :

$ info emacs #-> Resources X

Amicalement,

--
Prakash
Avatar
Sébastien Kirche
Le 6 septembre 2005 à 19:09, Prakash Countcham a formulé :

> Rapido-le-zoo : maintiens alt en cliquant avec le bouton droit dans
> la fenêtre et en glissant : permet de redimensionner sans être
> obligé d'attraper les bordures de la fenêtre (quand il y en a, et ça
> marche même quand il n'y a pas de bordure/poignée) - avec le bouton
> de gauche on peut déplacer la fenêtre

Est-ce que cela ne dépend pas du gestionnaire de fenêtres utilisé ? En
tout cas cela ne marche pas chez moi.



J'ai WindowMaker sous Linux. Ça marchait quand j'avais XFree86 et ça
marche maintenant avec X.Org. Il me semble bien que ça doit fonctionner
avec Gnome.

En tout cas je l'ai aussi testé ce comportement avec XFce ou Fluxbox et
X.Org sous FreeBSD.

Peut-être que l'environnement intercepte l'usage de Alt ?

--
Sébastien Kirche
Avatar
Prakash Countcham
Sébastien Kirche writes:

J'ai WindowMaker sous Linux. Ça marchait quand j'avais XFree86 et ça
marche maintenant avec X.Org. Il me semble bien que ça doit fonctionner
avec Gnome.

En tout cas je l'ai aussi testé ce comportement avec XFce ou Fluxbox et
X.Org sous FreeBSD.

Peut-être que l'environnement intercepte l'usage de Alt ?



J'utilise fvwm. Et la touche Alt me sert également de touche Meta (qui
heureusement pour moi n'est pas interceptée en amont d'Emacs).

J'ai essayé la manip sans fichier de configuration .fvwm2rc, mais cela ne
change rien. Cela ne m'étonne pas trop car il me semble que les raccourcis
clavier/souris sont définis au niveau du gestionnaire de fenêtres (mê me si je
peux me tromper).

Amicalement,

--
Prakash
Avatar
jean-luc
jean-luc a écrit :
bonjour,
je débute dans l'utilisation d'emacs (sous linux debian sarge) et j'ai
un petit problème : quand je lance emacs la fenêtre est toujours plus
grande que l'ecran, aussi bien avec xfce4 qu'avec wmaker. ce n'est pas
dramatique mais pour pouvoir lire la ligne de commande il faut d'abord
que je réduise la taille de la fenêtre.

quelqu'un aurait une idée pour résoudre cela ?

merci. JL




merci bien pour toutes vos réponses JL