2011-10-14 18 views
20

Emacsがウィンドウを最大化するために起動した後、alt-f10(GNU/Linuxでは)を押すのが一般的です(Emacsの用語では実際はフレームです)。ほとんどの場合、私はあまりにも早すぎてミニバッファの周りにゴミを表示する最初のalt-f10を押すことができなかったので、3回押す(Emacsはバグを表示する?)起動時にEmacsを最大化しますか? (フルスクリーンではない)

これを自動化するにはどうすればよいですか? (たぶんGnomeの設定やelisp?)

私はemacs24(bzr repoから)を使用しています。

これは、f11キーを押してもらいたい通常のフルスクリーンではありません。

+0

なぜあなたはあなたの代わりにするジオメトリに '初期フレームalist'または対応する' xrdb'リソースが設定されていないのですか?コードとポインタについては、http://stackoverflow.com/questions/92971/how-do-i-set-the-size-of-emacs-windowを参照してください。 – tripleee

+0

私はフルスクリーンをしたい、受け入れられた答えは私の必要性を満たしています。リンクBTWのおかげで。 – kindahero

答えて

13
(defun fullscreen (&optional f) 
     (interactive) 
     (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 
       '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0)) 
     (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 
       '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))) 

働くかもしれません。 (hereから撮影。)

+1

うわー、それは速かったし、あまりにも働いた.. – kindahero

+3

このコードは、Windows/Mac OS Xで動作しません。私の解決策を見て... – gavenkoa

+0

@ gavenkoaうん、正しい。しかし、OPはGnu/Linuxに言及しました。 – phimuemue

9
 
;; Next code works with Emacs 21.4, 22.3, 23.1, 24.3. 
(when window-system 
    (let (
     (px (display-pixel-width)) 
     (py (display-pixel-height)) 
     (fx (frame-char-width)) 
     (fy (frame-char-height)) 
     tx ty 
     ) 
    ;; Next formulas discovered empiric on Windows host with default font. 
    (setq tx (- (/ px fx) 7)) 
    (setq ty (- (/ py fy) 4)) 
    (setq initial-frame-alist '((top . 2) (left . 2))) 
    (add-to-list 'initial-frame-alist (cons 'width tx)) 
    (add-to-list 'initial-frame-alist (cons 'height ty)) 
    )) 

このコードpreservのWindows/Gnomeの/ KDE

下底のタスクバーのためしかし、その代わりに読んでみてください尋ねるのいくつかの場所:http://www.emacswiki.org/emacs/FullScreen

+1

ありがとう..この1つを働かなかった。はい、私は最初にemacswikiに行ったはずです。そのちょうど私は最近、そんなに多くを読んでいます。 – kindahero

+0

私はこのコードがEmacsの読み込み時にのみ動作することを忘れていますので、.emacsファイルに置く必要があります。このヘルプが必要です... – gavenkoa

+0

はい。私はそれを理解しました。しかし、それは私が望んでいないようです。異なる解像度のモニターを使用しているので、特定のサイズではなくウィンドウの最大化が得られたかったのです。 – kindahero

8

OSXを:

Emacs Trunkの開発者ビルドにはtoggle-frame-maximizedという機能があり、これは.../lisp/frame.elに含まれています。その機能は、after-init-hookまたはemacs-startup-hookに追加することも、起動時にロードされるファイル.emacsに含めることもできます。 OSX上では、1回の急降下で幅と高さが増加します。


のWindows XP:

次のコマンドはmake-frameコマンドの後に使用、またはEmacsの後、最初のフレームを生成することができます。

(let ((frame (selected-frame))) 
    (cond 
    ((eq system-type 'darwin) 
     (setq ns-auto-hide-menu-bar t) 
     (set-frame-position frame 0 0) ;; must come after `ns-auto-hide-menu-bar` 
     (cond 
     ((and 
      (= 1920 (display-pixel-width)) 
      (= 1080 (display-pixel-height))) 
      (set-frame-size frame 1895 1054 t)) 
     ((and 
      (= 1920 (display-pixel-width)) 
      (= 1200 (display-pixel-height))) 
      (set-frame-size frame 1895 1174 t)) 
     ((and 
      (= 1280 (display-pixel-width)) 
      (= 800 (display-pixel-height))) 
      (set-frame-size frame 1265 774 t)))) 
    ((and 
     (eq system-type 'windows-nt) 
     (equal (w32-version) '(5 1 2600))) 
     ;; (w32-send-sys-command #xf030) 
     (set-frame-position frame 0 0) 
     (cond 
     ((and 
      (= 1920 (display-pixel-width)) 
      (= 1003 (display-pixel-height))) 
      (set-frame-size frame 1898 924 t)) 
     ((and 
      (= 1920 (display-pixel-width)) 
      (= 1123 (display-pixel-height))) 
      (set-frame-size frame 1876 1052 t)) 
     ((and 
      (= 1280 (display-pixel-width)) 
      (= 723 (display-pixel-height))) 
      (set-frame-size frame 1250 670 t)))) 
     ((and 
      (eq system-type 'windows-nt) 
      (equal (w32-version) '(6 1 7601))) 
     (set-frame-position frame 0 0) 
     (cond 
      ((and 
       (= 1920 (display-pixel-width)) 
       (= 1080 (display-pixel-height))) 
      (set-frame-size frame 1890 1003 t)) 
      (t 
      (message "Not yet contemplated.")))))) 
: -

(w32-send-sys-command 61488) 

OSXとWindows

ここでは、初期フレームのサイズと位置を設定するための一例である私は私の.emacsファイルの先頭付近にそれを持っています

ここでは、正確なサイズと場所を制御する新しいフレームを作成するための例を示します:

(defun lawlist-make-frame (&optional alist) 
    (let ((frame (make-frame alist))) 
    (set-frame-position frame 0 0) 
    (cond 
     ((eq system-type 'darwin) 
     (cond 
      ((and 
       (= 1920 (display-pixel-width)) 
       (= 1080 (display-pixel-height))) 
      (set-frame-size frame 1895 1054 t)) 
      ((and 
       (= 1920 (display-pixel-width)) 
       (= 1200 (display-pixel-height))) 
      (set-frame-size frame 1895 1174 t)) 
      ((and 
       (= 1280 (display-pixel-width)) 
       (= 800 (display-pixel-height))) 
      (set-frame-size frame 1265 774 t)))) 
     ((and 
      (eq system-type 'windows-nt) 
      (equal (w32-version) '(5 1 2600))) 
     (select-frame frame) 
     (cond 
      ((and 
       (= 1920 (display-pixel-width)) 
       (= 1003 (display-pixel-height))) 
      (set-frame-size frame 1898 924 t)) 
      ((and 
       (= 1920 (display-pixel-width)) 
       (= 1123 (display-pixel-height))) 
      (set-frame-size frame 1876 1052 t)) 
      ((and 
       (= 1280 (display-pixel-width)) 
       (= 723 (display-pixel-height))) 
      (set-frame-size frame 1250 670 t)))) 
     ((and 
      (eq system-type 'windows-nt) 
      (equal (w32-version) '(6 1 7601))) 
     (select-frame frame) 
     (cond 
      ((and 
       (= 1920 (display-pixel-width)) 
       (= 1080 (display-pixel-height))) 
      (set-frame-size frame 1890 1003 t)) 
      (t 
      (message "Not yet contemplated."))))))) 
1

何らかの理由で、x-send-client-messageが私のために何らかの理由で動作していない(または信頼できない、とにかく)。起動時のことを行うには

(defun set-maximized() 
    (interactive) 
    (shell-command "wmctrl -r :ACTIVE: -badd,maximized_vert,maximized_horz")) 

:私はこれを使用する。そのため、私の〜/の.emacsにこれを置く

(add-hook 'window-setup-hook 'set-maximized t) 
2

は、Emacs 24.5(私のために動作します。Debian GNU/Linuxに関する1):

(toggle-frame-maximized)

、私はM-F10のショートカットによって呼び出されたコマンドの名前にチェックすることを見つけるには:ChのM-F10を:それは「トグルフレーム最大化を返さ"、私は〜/ .emacsを呼び出すだけです。おそらく

別の解決策、さらに良いが、hereが見つかりました:

(add-to-list 'initial-frame-alist '(fullscreen . maximized))

関連する問題