Bagaimana cara memaksimalkan frame Emacs saya saat start-up?

66

Apakah ada cara untuk memaksimalkan jendela saya saat start-up?

Saat ini, saya menekan Control+ Windows Key+ Updi keyboard saya tetapi sangat merepotkan untuk melakukannya setiap waktu.

Saya menggunakan Emacs 24.4 di Ubuntu 12.04.

Luke
sumber
1
Saya tidak tahu kombinasi tombol untuk memaksimalkan emacs. Terima kasih untuk itu dan juga jawaban di bawah ini berhasil!
Prasanna
Dari mana Anda mengetahui kombinasi <kbd>![Windows Key][oldwinlogo]</kbd>ini Ini tidak berfungsi untuk saya :-(
Prasanna

Jawaban:

71

Saya memiliki metode lain, yang telah saya uji dengan Emacs 24.3 dan 24.4, serta pada Windows dan GNU / Linux. Saya telah menempatkan yang berikut ini di file init saya :

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

Saya percaya ini sedikit dimodifikasi dari jawaban StackOverflow yang saya temukan beberapa waktu yang lalu, tetapi sepertinya saya tidak dapat menemukannya lagi sekarang.

Sunting: Bonus lain dari metode ini adalah bahwa itu juga berlaku untuk klien baru yang terhubung ke server Emacs Anda (dengan misalnya emacsclient -c).

Scott Weldon
sumber
3
+1 untuk jawaban yang tepat. Jika saya bisa menerima ini sebagai jawaban lagi - saya benar-benar mau!
Prasanna
1
Saya suka menggunakan solusi ini emacsclient, tetapi ada beberapa frame yang memulai mereka dimaksimalkan akan mencegah untuk menggunakannya dengan benar, seperti panel kontrol ediff , apakah ada solusi untuk ini?
marcanuy
@marcanuy: Saya tidak tahu solusi dari atas kepala saya, tetapi mungkin ada baiknya memposting pertanyaan baru untuk itu.
Scott Weldon
31

Sesuaikan ...-frame-alistfile init Anda untuk memberi tahu Emacs cara memaksimalkan frame. Anda juga memiliki banyak opsi untuk memaksimalkannya.

alist pilihan

Anda memiliki dua ...-frame-alistopsi:

  1. default-frame-alist (seperti pada jawaban @Scott Weldon)
  2. initial-frame-alist

Jika Anda menggunakan default-frame-alist, itu akan memaksimalkan semua bingkai: baik yang pertama maupun yang lain yang Anda buat. Itu mungkin bukan yang Anda inginkan (atau mungkin: siapa yang harus saya nilai?).

Jika Anda menggunakan initial-frame-alist, itu akan memaksimalkan hanya frame yang dibuat Emacs saat startup, tetapi tidak akan menyentuh frame berikutnya yang Anda buat.

opsi maksimalisasi

Untuk opsi maksimalisasi Anda, lihat simpul manual ini untuk detailnya. Versi singkatnya adalah Anda dapat mengatur fullscreenparameter ke:

  • fullwidth (buat bingkai selebar mungkin, jangan menyentuh vertikal)
  • fullheight (buat frame setinggi mungkin, jangan menyentuh horizontal)
  • fullboth (atur tinggi dan lebar ke ukuran layar)
  • maximized (membuatnya, well, dimaksimalkan)

Perbedaan antara fullbothdan maximizedadalah bahwa Anda dapat mengubah ukuran yang pertama dengan mouse, sedangkan yang kedua tidak.

contoh

Jadi, misalnya, garis-garis ini akan 1) membuat bingkai awal yang dimaksimalkan, dan 2) membuat bingkai fullheight (tetapi bukan fullwidth) pada setiap bingkai berikutnya:

(add-to-list 'initial-frame-alist '(fullscreen . maximized))
(add-to-list 'default-frame-alist '(fullscreen . fullheight))
Dan
sumber
3
Memang initial-frame-alistjauh lebih bermanfaat daripada default-frame-alistketika seseorang menggunakan alat seperti Ediff.
giordano
28

Pada Emacs 24.4, (toggle-frame-maximized)matikan status maksimal dari frame saat ini.

Lihat juga, Maksimalkan Emacs saat memulai pertanyaan tentang stackoverflow dan halaman Layar Penuh pada EmacsWiki.

Constantine
sumber
Ini berfungsi dengan castlemacs di mac. Terima kasih!
Sankalp
9

Jawaban Constantine sudah mencakup bagaimana hal ini dapat dicapai dengan memodifikasi file init Anda (jika Anda menggunakan Emacs 24.4).

Jika Anda memulai Emacs dari baris perintah, dari tanda hubung, atau dari peluncur seperti Synapse atau krunner , Anda dapat menentukan -mmopsi (kependekan --maximized) untuk mencapai hasil yang sama:

emacs -mm

The -mmpilihan pertama diperkenalkan pada Emacs 23.2 , sehingga solusi ini tidak terbatas pada rilis stabil terbaru.


Apa yang membedakan solusi ini dari saran lain yang diposting di sini (semuanya bagus) adalah memungkinkan Anda untuk memutuskan berdasarkan kasus per kasus apakah Anda ingin frame Emacs dimaksimalkan pada saat start-up atau tidak.

Jika Anda menginginkan solusi yang lebih permanen, Anda dapat mengatur aliasperintah untuk yang ditunjukkan di atas dengan menambahkan yang berikut ke Anda .bashrc:

alias emacs='emacs -mm'
itu hanya
sumber
2
Manfaat lain dari solusi ini adalah bahwa emacs mulai sudah dimaksimalkan. Pemecahan masalah file init membuatnya beralih ke dimaksimalkan selama startup, yang agak mengganggu.
dan
1
Untuk menambah jawaban ini: emacs -fsmulai Emacs dimaksimalkan ke layar penuh, atau maksimal ke maksimal.
Teemu Leisti
6

Untuk memulai Emacs dimaksimalkan, tambahkan ke file init Anda:

;; Start maximised (cross-platf)
(add-hook 'window-setup-hook 'toggle-frame-maximized t)

Jika Anda ingin layar penuh atau, seperti yang mereka katakan sekarang, mode bebas gangguan :

;; Start fullscreen (cross-platf)
(add-hook 'window-setup-hook 'toggle-frame-fullscreen t)

CATATAN : Ini juga berfungsi di Windows.

antonio
sumber
1

Saya menggunakan yang berikut ini:

(when (eq system-type 'gnu/linux)
  (defun x11-maximize-frame ()
    "Maximize the current frame (to full screen)"
    (interactive)
    (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_HORZ" 0))
    (x-send-client-message nil 0 nil "_NET_WM_STATE" 32 '(2 "_NET_WM_STATE_MAXIMIZED_VERT" 0)))
  (run-with-idle-timer 0.01 nil 'x11-maximize-frame)
  )

(when (eq system-type 'windows-nt)
  (w32-send-sys-command 61488)
)
Adobe
sumber