Làm thế nào để làm cho emacs thực sự toàn màn hình khi khởi động?


9

Tôi muốn emacs thực sự được tối đa hóa khi bắt đầu.

Có những giải pháp cho vấn đề chỉ làm cho chiều rộng cửa sổ emacs của màn hình. Điều đó là không đủ cho tôi. Tôi muốn cửa sổ emacs được neo ở góc trên bên phải của màn hình, để khi tôi nhấn vào đó bằng chuột, tôi sẽ đóng emacs, không phải Firefox hay Krusader hoặc bất cứ thứ gì được tối đa hóa trong nền.

Tôi đã cố gắng làm điều đó với Kwin - nhưng không có may mắn.

PS Tôi đang sử dụng Kubfox và emacs khá mới mẻ 23.2 hoặc đại loại như thế.


@user tối đa hóa hoặc toàn màn hình - bạn muốn gì? Đoạn thứ hai của bạn hơi mơ hồ.
David LeBauer

Có một số giải pháp phụ thuộc quản lý cửa sổ. Bạn đang sử dụng WM nào? Trong Fluxbox, tôi sử dụng ~/.fluxbox/appstệp để đặt tùy chọn tối đa cho các ứng dụng cụ thể.
Daniel Andersson

Tôi đang sử dụng KWM (đây là mặc định của KDE). Nó có tùy chọn "tối đa hóa" - nhưng cửa sổ emacs không thực sự được tối đa hóa: nếu bạn nhấn "x" ở góc trên cùng bên phải bằng chuột - Bạn sẽ đóng thứ khác - không phải emacs.
Adobe

Câu trả lời:


7

Tôi đã lấy cái này từ một nơi nào đó trên emacswiki, một thời gian trước đây. Lưu ý rằng tôi không còn sử dụng nó nữa, vì tôi đã chuyển sang dwm để có mọi thứ toàn màn hình, nhưng nó đã từng hoạt động.

(defun fullscreen ()
       (interactive)
       (x-send-client-message nil 0 nil "_NET_WM_STATE" 32
                 '(2 "_NET_WM_STATE_FULLSCREEN" 0)))

Nếu bạn muốn nó chạy khi khởi động, bạn có thể thêm

(fullscreen)

cho bạn .emacs

EDIT: Đọc lại câu hỏi của bạn, tôi nghĩ rằng đây không phải là điều bạn muốn. Điều này sẽ thực sự toàn màn hình, không tối đa hóa: bạn sẽ không có bất kỳ nút đóng nào.

Điều này nên làm:

(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)))

Bây giờ, nó trực tiếp từ http://www.emacswiki.org/emacs/FullScreen


3

Đây là hai cách không Lisp để đạt được như nhau:

  1. Bí danh emacslệnh của bạn để emacs -fs. Thêm dòng mã này vào .bashrctệp của bạn trong thư mục chính của bạn:

    alias emacs='emacs -fs'
    

    Cá nhân, tôi không thích cách tiếp cận này vì tôi sẽ không muốn Emacs khởi động toàn màn hình mọi lúc và muốn một số điều khiển.

  2. Giải pháp của tôi: Trong Ubuntu, bạn có thể gán phím tắt cho 'toàn màn hình' bất kỳ cửa sổ nào. Đây dường như là lựa chọn thuận tiện và đơn giản nhất. Bên cạnh đó, nó có lợi thế là cùng một phím tắt cũng áp dụng cho tất cả các ứng dụng của bạn.


+1 Cũng có -mm(viết tắt --maximized) sẽ "tối đa hóa khung đầu tiên". Hiệu quả của việc sử dụng tùy chọn này ít "quyết liệt" hơn một chút so với -fstùy chọn (thanh tiêu đề Emacs và bảng điều khiển hệ điều hành vẫn hiển thị).
itjeyd

3

Đặt (w32-send-sys-command ?\xf030) vào .emacstập tin của bạn . Tôi nghĩ rằng nó giải quyết vấn đề của bạn.

(chỉ hoạt động trên Windows)


Thật tuyệt, chỉ khi tôi làm việc trong linux. Nhưng vẫn còn - đôi khi tôi cũng phải làm việc trong windows. Cảm ơn.
Adobe

Tôi đã quên không đề cập. Giải pháp này chỉ dành cho Windows.
Paulo Tomé

Đúng, tôi thấy w32điều đó.
Adobe

1

Nếu bạn muốn chuyển đổi toàn màn hình trong emacs bằng phím F11, hãy thêm phần sau vào .emacs:

;; the following should give fullscreen mode when F11 is depressed
(defun fullscreen ()
 (interactive)
 (set-frame-parameter nil 'fullscreen
              (if (frame-parameter nil 'fullscreen) nil 'fullboth))

Nếu bạn muốn các emacs toàn màn hình rất nhỏ (không có thanh công cụ, thanh cuộn hoặc thanh menu, hãy thêm:

(progn
  (if (fboundp 'tool-bar-mode) (tool-bar-mode -1))  ;; no toolbar
  (menu-bar-mode -1) ;;no menubar
  (scroll-bar-mode -1) ;; no scroll bar
  )
)

0

Tôi nghĩ rằng emacs sẽ tôn trọng cài đặt gconf, vì vậy bạn có thể thiết lập / apps / emacs / tối đa hóa, nhưng không biết điều đó có giúp ích gì trên Kubfox không - đáng để thử.


0

Tôi sử dụng như sau trên Linux:

(defun my-frame-toggle ()
    "Maximize/Restore Emacs frame using 'wmctrl'."
    (interactive)
    (shell-command "wmctrl -r :ACTIVE: -btoggle,maximized_vert,maximized_horz"))

và sau đó liên kết nó với một khóa:

(global-set-key [(control f4)] 'my-frame-toggle)

Nếu bạn muốn bắt đầu tối đa hóa, bạn chỉ cần thêm một cuộc gọi vào my-frame-togglecuối tệp .emacs của mình.


Khi tôi viết mã của bạn, vào tệp .emacs của tôi. Nó hiển thị lỗi trình phân tích cú pháp.
Pratik Singhal

0

Tôi tìm thấy một giải pháp hài hước:

emacs -nw

bắt đầu emacs trong một giao diện điều khiển - và bạn có thể tối đa hóa chính giao diện điều khiển đó!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.