emacs 창크기를 디폴트로 정할 수가 있나요?

8ofwhat의 이미지

이번에 이맥스에서 글꼴을 이것저것 해보고 있습니다.

lucidatypewriter 랑 dejavu sans 두가지를 14 크기로 폰트셋을 설정했거든요?

그래서 이맥스 안에서 폰트셋을 여러개로 바꿔보니까,

이맥스 창크기가 그 폰트에 크기에 맞게 자동으로 변하는 거 같더라구요.

그런데 제가 쓰고 싶은 건 dejavu sans인데 이걸로 설정하면 창크기가 너무 커져서 항상 조절을 해줘야 하는데,

이것도 바꿔줄 수 있을 거 같아서 뒤져보는데 아직 잘 못찾겠습니다.

혹시 아시는 분 계신가요?

fox9의 이미지

저의 경우는 아래의 내용으로 창의 크기, 위치, 기타 커서 등의 색상을 지정해서 쓰고 있습니다.
그 중 크기만 지정해서 사용하시며 될듯 합니다.

(setq default-frame-alist
  '((top . 0) (left . 0)
    (width . 139) (height . 50)
    (cursor-color . "yellow")
    (cursor-type . box)
    (foreground-color . "#EEEEEE")
    (background-color . "black")))
cinsk의 이미지

Quote:
emacs 창크기를 디폴트로 정할 수가 있나요?
당연히 있습니다. 다만 창 크기가 글자 단위이지, pixel 단위가 아니기 때문에 그런 현상이 발생하는 것입니다. 이 것은, terminal emulator와 같은 app에서는 당연한 현상입니다.

원하는 pixel 단위의 폭/높이로 emacs frame을 설정하고 싶다면 아래 함수를 쓰기 바랍니다:

(defun set-frame-pixel-size (width height &optional frame)
  "This fucntion sets the size of FRAME, measured in pixels;
WIDTH and HEIGHT specify the new width and height.  Note that
The result may be smaller than or equal to the requested size"
  (let ((fr (or frame (selected-frame)))
        (cw (frame-char-width frame))
        (ch (frame-char-height frame)))
    (set-frame-size fr (/ width cw) (/ height ch))))

예를 들어 다음과 같이 wrapper를 만들어, M-x set-frame-to-800x600로 800x600으로 만들 수 있습니다:

(defun set-frame-to-800x600 ()
  (interactive)
  (set-frame-pixel-size 800 600))
(set-frame-to-800x600)

이 것을 global-set-key와 같은 명령으로 단축키로 지정하면 편리하게 쓸 수 있습니다.

Emacs frame의 left, top position을 정하는 것은 연습 문제로 남깁니다. :twisted:

8ofwhat의 이미지

아 두 분 정말 감사합니다 - 이제 되네요