Конфигурация меню GTK+ 3 для Emacs

Мне не нравится emacs на основе GTK (скриншот #1) и по-прежнему предпочитают традицию emacs (Скриншот #2), который я получаю от Ubuntu PPA.

фундаментальное отличие состоит в том, что традиция emacs выглядит в основном как текстовая, за исключением меню, которое по-прежнему основано на GTK. Этот шрифт и размер меню-это то, что я хочу изменить.

в принципе, мне нужно сделать то же самое, что и Ref #1: "исключение составляет размер шрифта во всплывающих [раскрывающихся] меню из строки главного меню. Для например, если я запускаю Emacs и левой кнопкой мыши на "файл" в строке главного меню, всплывающее меню для функций файла (открыть файл, открыть каталог и т.д.).) придумать. Тем не менее, размер шрифта в этом меню чрезвычайно мал и трудно читать. Ни один из вариантов в лицах группа настройки эффекта."

Я узнал из ссылки #1 ,что "шрифты меню управляются GTK, за пределами emacs". Однако после Ref #2, я получил тот же результат. То есть, независимо от того, как я изменил ~ / .emacs.d / gtkrc из ссылок, приведенных в сообщении, нет никакого эффекта для меню Emacs.

потом я узнал, из поз. № 3, что то, что я делал настройки на Emacs конкретных ГТК+ ресурсов для GTK+ версии 2, в то время как моего редактора Emacs, в Emacs 24 от Ubuntu ППА, является использованием GTK+ версии 3.

ОК, теперь вот мой вопрос, Как настроить GTK + 3 Меню шрифт и размер? Я искал везде, но, возможно, настройка GTK+ 3 настолько новая (или запутанная), что никто не блог / разговор об этом.

кто-нибудь может дать мне рабочий пример, как настроить GTK+ 3 Меню шрифт и размер, пожалуйста?

спасибо

Реф #1: http://forums.gentoo.org/viewtopic-t-516665-view-next.html?sid=b8448a7a0c04d2f6d6c80cbd43bfd931

Реф #2: http://lists.debian.org/debian-user/2013/05/msg00169.html

Ref #3: http://www.gnu.org/software/emacs/manual/html_node/emacs/GTK-resources.html#GTK-resources

скриншот #1:

Screenshot#1:
Скриншот #2:

Screenshot#2:

13
задан Stephen Rauch
18.03.2023 13:04 Количество просмотров материала 3142
Распечатать страницу

2 ответа

предположение: В вашем домашнем каталоге есть поддиректория .themes. Допустим, в этом подкаталоге вы рекурсивно скопировали тему из /usr/share/themes, для ознакомления и настройка. Назовем эту тему, а точнее ее каталог,~/.themes/mytheme. (Примечание: обратите пристальное внимание и при необходимости измените содержимое файла ~/.themes/mytheme/index.theme).

в каталоге ~/.themes/mytheme у вас есть еще один подкаталог ~/.themes/mytheme/gtk-3.0. Там есть файл под названием gtk.css. Этот файл может быть большим или могут быть маленькими. В последнем случае он обычно имеет несколько операторов " @import url, импорт других CSS-файлов (таблиц стилей) из других источников, например:

@import url("/home/WHOAMI/.config/gtk-3.0/apps/someother.css");
@import url("./another.css");

(замените WHOAMI своим именем учетной записи)

ваша таблица стилей emacs (пример подходит) для этого примера будет называться -- вы догадались -- emacs.css, и нам нужно чтобы добавить его к gtk.css, как и другие импортные товары. Скажем так:

@import url("/home/WHOAMI/.themes/gtk-3.0/emacs.css");

прежде чем передать вам мою копию, пара Примечания:

  1. Gtk3 оформление: вопреки тому, что вы могли бы ожидать (я уж точно), применение конкретных стилей, которые могут будьте доступны в теме (как вышеупомянутый emacs.css и, возможно, другие в подкаталоге gtk-3.0 или любой вложенные подкаталоги там как приложения), эти специфичные для приложения таблицы стилей не ограничены этим соответствующим приложением только! Как представляется, Gtk3 просто анализирует все таблицы стилей счастливо в одном пространстве имен (я просто составлять последний термин здесь, но кажется уместным)..

    это означает, что, например, когда вы создаете меню в своей таблице стилей и вызываете CSS-селектор, например, "GtkMenu", вы фактически стилизовать все экземпляры GtkMenu во всех приложениях. То может или не может быть вы имел в виду, но в моем случае я нашел это очень контрпродуктивным и очень раздражающим, когда я работаю в таблице стилей, которая Я назвал emacs.css по причине-а именно, чтобы ограничить его применимость к emacs. Поэтому предупреждаем, что последнее предположение это недействительным.

  2. еще одна заметка (отчасти следствие a): несмотря на то, что css теперь кажется маленьким, стиль Emacs Gtk3 был жесткий (дарую тебе это Я относительный новичок css, но все же). Я думаю, что emacs + Gtk3 должен иметь немного лучший профиль CSS, потому что наличие элемента, идентифицируемого только по'#pane' слишком общее, И тот факт, что вы можете почти не тема полоса прокрутки является ошибкой, на мой взгляд. Я использую emacs уже более 20 лет и Мне нравится стилизовать последний emacs-24.3 с Gtk3 точно так же, как раньше emacsen с Gtk2. Имеющий консистенция темы рабочего стола хороша в большинстве отношений, но не в этом конкретном случае: я провожу много времени в emacs, и его нужно формировать, чтобы мои глаза нравились и привыкли (так что берите Примечание редактора Emacs разработчики!)

  3. и третье Примечание: опять же, в свою очередь, в результате b): Эта таблица стилей кажется деликатной! У меня такое чувство, что удаление одного селектора и все это ломается.

  4. когда вы начинаете взламывать таблицу стилей, не запускайте приложение из лаунчера. Запустите его из терминала командной строки, так что любой обратной связи, что Gtk3 может дать на укладки/разбор ошибок там прямо перед ваше лицо. И,вы не должны иметь абсолютно никаких других экземпляров того же приложения, открытых в любом месте. Если вы это сделаете, Gtk, по-видимому кэширует данные стиля, и новый экземпляр будет просто использовать кэшированные данные и оставит вас в недоумении, почему это редактирование, которое должно, наконец, заставить его работать на самом деле, не идет. Таким образом, с каждой модификацией стиля: power cycle: exit emacs, запустите его снова из CLI.

Итак, вот он, мой emacs.css:

/*
    see:

    http://developer.gnome.org/gtk3/3.4/GtkCssProvider.html
    http://www.gnu.org/software/emacs/manual/html_node/emacs/GTK-resources.html
    http://thegnomejournal.wordpress.com/2011/03/15/styling-gtk-with-css/
    http://www.gtkforums.com/viewtopic.php?f=3&t=988&p=72088=GTK3+with+CSS#p72088
*/

/*----------------------------------------------------------------*/
/*
General notes:
- try to make selectors as long as possible, so as not to interfere
  with the controls of other applications; this can be achieved only partly
  (e.g., #pane is a very general selector)
-

TODO:
- checkmarks in menus are black instead of white
- the 'exit emacs' popup dialog somehow gets the wrong resize grip
*/
/*----------------------------------------------------------------*/
/* this works */
#xxxpane
{
    background-color: alpha( @theme_selected_bg_color, 0.8 );
    color: purple;
}

#xxxframe                   /* works, but touches other applications */
                            /* (and we don't need it) )*/
{
    background-color: #708090;
    border-radius: 3px;
    font-size: 12pt;
    color: red;
}

/*----------------------------------------------------------------*/
#pane #verticalScrollBar
{
    /* the vertical scrollbar in emacs has a bug where it sometimes covers the fringe */
    border: 2px solid #292929;                  /* works ! */
    padding: 1px 10px;                          /* second value has enormous effect oddly in vertical dimension! */
    margin: 1px 10px;                           /* second value has enormous effect oddly in vertical dimension! */
    /*border-radius: 2px;*/                     /* works */
    /*
    GtkScrollbar:
    "fixed-slider-length"               gboolean
    "has-backward-stepper"              gboolean
    "has-forward-stepper"               gboolean
    "has-secondary-backward-stepper"    gboolean
    "has-secondary-forward-stepper"     gboolean
    "min-slider-length"                 gint
    */
    /*-GtkScrollbar-fixed-slider-length: 1;*/
    -GtkScrollbar-min-slider-length: 25;
    -GtkScrollbar-has-backward-stepper: 0;
    -GtkScrollbar-has-forward-stepper: 0;
    /*
    GtkRange:
    "activate-slider"          gboolean
    "arrow-displacement-x"     gint
    "arrow-displacement-y"     gint
    "arrow-scaling"            gfloat
    "slider-width"             gint
    "stepper-position-details" gboolean
    "stepper-size"             gint
    "stepper-spacing"          gint
    "trough-border"            gint
    "trough-side-details"      gboolean
    "trough-under-steppers"    gboolean
    */
    /*-GtkRange-activate-slider: 1;*/
    -GtkRange-slider-width: 4;                  /* works */
    -GtkRange-trough-border: 0;                 /* works */ /* with a large width it reveals a bug in emacs and/or gtk3 */
    -GtkRange-trough-side-details: 0;
    -GtkRange-trough-under-steppers: 0;
}

/*----------------------------------------------------------------*/
/* the toolbar is almost never visible */
#emacs-toolbar,
#emacs-toolbar *
{
    background-color: #536B84;
    color: white;
    padding: 0px 6px;
    border: 1px solid white;
}

/*----------------------------------------------------------------*/
/* objective: get menu pulldown menu's to have thin and rounded borders */

#pane #menubar GtkMenuShell
{
    border: 1px solid #78BAD4;  /* light blue */
    border-radius: 5px;
}

/* also give the menus a slightly larger font */
#pane #menubar,
#pane #menubar GtkMenuShell,
#pane #menubar GtkMenuShell *
{
    font-family: "Ubuntu Sans Mono";
    font-size: 7px;
}

/*----------------------------------------------------------------*/
#pane #menubar              /* works */
{
    background-color: #536B84;
    border: none;
    padding: 0px 0px;
    margin: 25px;
}

/* top menu item */
/* this works, but it needs a parent Emacs class specifier */
#pane #menubar > GtkLabel,
#pane #menubar > GtkMenuItem
{
    padding: 2px 18px;  /* works */
    margin: 3px 0px;    /* works */
    color: aquamarine;  /* works */
}

/*----------------------------------------------------------------*/
/* disabled ("greyed out") menu items */
/* note: #emacs-menuitem:insensitive only does one level deep; test on Edit > GoTo > ... */
#emacs-menuitem *:insensitive
{
    color: #292929;                         /* works */
    text-shadow: none;                      /* works */
}

#emacs-menuitem * :hover,
#xxxxemacs-menuitem * :active
{
    background-color: transparent;          /* FINALLY WORKS! */
    color: white;                           /* works */
}

#emacs-menuitem *,                          /* works */
#emacs-menuitem > GtkLabel                  /* works */
{
    background-color: #536B84;
    color: white                            /* works (also for tear lines!) */
}

#emacs-menuitem                             /* with only this it ALMOST works beautifully; only the tear lines are still white */
{
    background-color: #536B84;
    color: #292929;                         /* works -- this affects only the separators */
    border: 0px none;
    /*padding: auto auto;*/
    /*margin: 0px 0px 0px 0px;*/
    /*margin: auto auto auto auto;*/
}

/*----------------------------------------------------------------*/
/* popup dialog */
#emacs-dialog
{
    background-color: #536B84;
    color: white;
    border: 0px none;
}

/*----------------------------------------------------------------*/

кажется слабаком? Ну, там много часов стиля и проб и ошибок (я ненавижу CSS, это не настоящий язык, не имеет открытости).

попробуйте и посмотреть, как вы могли бы тариф в адаптации и настройки его. Если вы извлекаете какие-либо идеи или советы или обнаруживаете недостатки или ошибки или другие возможности тематизации, пожалуйста, дайте обратную связь. Я уверен, что он неполный и несовершенный (для одна вещь, я не смог получить нижние углы выпадающие меню округлены).

удачи!

6
отвечен Roadowl 2023-03-19 20:52

инструмент для установки размеров шрифтов в Gnome 3 gnome-tweak-tool.

Если вы обнаружите, что это не работает в среде рабочего стола, которые вы используете, размеры шрифтов будут читать от $XDG_CONFIG_HOME/gtk-3.0/settings.ini:

[Settings]
gtk-font-name = Sans 20

посмотреть GtkSettings документации для получения более подробной информации.

1
отвечен mavit 2023-03-19 23:09

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх