2009-10-04 4 views
2

Я использую emacs 23 на своем выпуске нетбука Ubuntu. Каждое приложение автоматически переходит в полноэкранный режим (так же как и мои emacs). Но в зависимости от размера шрифта (: height) я получаю меньшее рабочее окно. Если я иду: высота нормальная, я получаю полную площадь, но шрифты ОГРОМНЫ!emacs 23 и размер шрифта

любые идеи?

ответ

1

ОК, так что на самом деле я добавил это к моему initfile:

 
(add-hook 'after-make-frame-functions 
     (lambda (frame) 
     (progn 
      (add-to-list 'default-frame-alist 
       (cons 'height 
       (/ (x-display-pixel-height) 
        (frame-char-height))) 
       (add-to-list 'default-frame-alist 
        (cons 'width 
          (/ (x-display-pixel-width) 
         (frame-char-width)))))))) 

и теперь окно имеет тот же размер, как полный экран. Если вы устанавливаете шрифты внутри крюка after-make-frame-functions, важно, чтобы это было первым в вашем initfile (я думаю, потому что крючки запускаются в обратном порядке), но если вы просто устанавливаете шрифты, это должно работать нормально в любом месте.

Конечно, для максимальной безопасности вы можете поместить это и ваши вещи «набор шрифтов» в ту же defun, причем это произойдет после того, как будут установлены шрифты.

EDIT: Это немного более сильный способ сделать это, если это не сработает.

Это дает мне некоторые проблемы, хотя, действительно, вы, вероятно, захотите вычесть высоту верхней панели с той высоты, которую вы устанавливаете.

 
(add-hook 'after-make-frame-functions 
    (lambda (frame) 
    (progn 
     (set-frame-height frame 
      (/ (x-display-pixel-height) 
       (frame-char-height))) 
     (set-frame-width frame 
      (/ (x-display-pixel-width) 
       (frame-char-width)))))) 
2

Ваш оконный менеджер поврежден. emacs изменяет размеры при изменении размера шрифта (это происходит во время запуска). Ваш оконный менеджер должен сообщить emacs, что emacs был изменен администратором окон, и в этот момент все будет работать нормально.

В любом случае, запустите emacs как «emacs --daemon» и подключитесь к «emacsclient -c», и вы не должны замечать эту проблему.

+1

Я не думаю, что это обязательно ошибка менеджера окон: у меня есть '(set-frame-font pretty)' в моем '' after-make-frame-function' hook ', и если emacs запускается максимально или полностью -screen Я заканчиваю небольшим окном внутри большого кадра, но если emacs запускается в каком-то фрейме, emacs сжимает рамку, чтобы она соответствовала окну. Я не смог найти способ обойти это.('(window-height)' дает то же значение, что и '(frame-height)', поэтому у emacs определенно появилась некоторая неправильная идея о его среде) – quodlibetor

1

Размер шрифта проблема может быть исправлена, просто выбрав другой шрифт размера в качестве шрифта по умолчанию (Настройки-> Установить шрифт по умолчанию), затем сохранить параметры (Options-> Save Options). Кажется, что у Emacs проблемы с размерами шрифтов, соответствующими размерам системы (есть обсуждение стандартного DPI по стандарту XI по сравнению с стандартными DPI GTK), но если вы выберете тот, который работает, он останется неизменным.

Чтобы получить правильное представление окна, я обнаружил, что проблема с фрейм-алистом не связана с правильной настройкой минибуфера, а также с разными размерами шрифтов, не приводя к правильному изменению размера кадра. Если вы установите для параметра initial-frame-alist (fullscreen. Fullwidth) и (minibuffer-lines. 1), он правильно определяет размер минибуфера и подходит к правильной ширине, вызывая эффект, как если бы вы вручную изменили размер окна к максимальной видимой области (не совсем так же, как максимизация). Вы можете установить их через Options-> Customize Emacs-> Settings Matching Regexp ... Затем введите initial-frame-alist. Установите два новых параметра и значения: «минибуфер-линии» на «1» и «полноэкранный» на «fullwidth».

Удаление параметра «minibuffer-lines» даст вам полное окно ширины экрана, которое является неправильной высотой, а удаление «полноэкранного» параметра означает, что ничего не изменяется правильно. Попытка установить «полноэкранный режим» на «полноэкранный режим» дает ту же проблему, что и установка ничего, а «fullscreen» to «fullheight» дает пустое пространство только по высоте, а не по ширине, когда используется меньший размер шрифта.

Смежные вопросы