Как получить большую статическую полосу прокрутки (или обычную полосу прокрутки)?

Я рад, что наружные полосы прокрутки, наконец, ушли.

Но полоса прокрутки по-прежнему является тонкой линией бритвы, которая становится менее тонкой полосой прокрутки, но все еще тонкой полосой прокрутки, когда мышь парит. [ ! d1]

Как я могу получить обычную полосу прокрутки? Т.е., как и в других ОС, например в Firefox, полоса прокрутки, которая не изменяется в зависимости от того, на что указывает мышь, и с хорошей шириной.

Я уже пробовал

gsettings set com.canonical.desktop.interface scrollbar-mode normal

, но не повезло.

1
задан 24 January 2018 в 13:46

3 ответа

Я думаю, вы должны быть осторожны там. Многие из нас НЕ рекомендуют вам редактировать общесистемные значения по умолчанию для темы, если вы действительно не собираетесь вмешиваться в деятельность всех учетных записей пользователей в системе. Если вы делаете ошибку при этом, то это влияет на все учетные записи пользователей. Еще один момент предостережения заключается в том, что при обновлении пакетов ваши изменения будут удалены.

Еще один недостаток этой стратегии состоит в том, что она изменяет только поведение одной темы GTK, но вы можете изменить размер полосы прокрутки в ALL GTK-3.0.

Вместо этого отредактируйте файлы конфигурации внутри учетной записи пользователя. Трюк заключается в том, чтобы выяснить, какой из них является самым коротким расстоянием до нужной конечной точки. Файл GTK, который вы редактируете, является частью настройки CSS (каскадные таблицы стилей), поэтому настройка, которую вы ввели в свою учетную запись, изменит настройки.

В вашей учетной записи пользователя в папке ~ / .config / gtk-3.0 / gtk.css в настоящее время я имею это в файле с именем gtk.css

.scrollbar {
  -GtkScrollbar-has-backward-stepper: true;
  -GtkScrollbar-has-forward-stepper: true;
  -GtkRange-slider-width: 20;
  -GtkRange-stepper-size: 20;
}

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

Если вы действительно хотите отредактировать множество настроек, сделайте это, чтобы скопировать весь файл gtk-widgets.css и поместить его в папку ~ / .config / gtk-3.0. Затем отправляйтесь в город, играя с настройками.

В той же папке у меня есть файл с именем «settings.ini»

[Settings]
gtk-primary-button-warps-slider = false

Это предотвращает переход клика в полосе прокрутки к определенной точке файла, вместо этого он продвигает только один экран. Я предпочитаю это!

. Еще одна вещь, которую стоит знать, заключается в том, что изменение этого файла темы (как это было рекомендовано в @Dorian или по изменению учетной записи пользователя для всех тем, основанных на GTK-3.0, как я предлагаю) меняет только программы которые основаны на наборе инструментов GTK-3.0. Он не изменяет полосу прокрутки для всех приложений. Только для тех, кто читает этот файл конфигурации gtk-3.0. Поскольку вы редактируете тему gtk-3.0, приложения, написанные с QT или gtk-2.0, не будут меняться. Следовательно, изменение размера полосы прокрутки всех программ является более сложным / утомительным, чем вы могли бы ожидать.

Я также изменил ширину полосы прокрутки в gtk-2.0. Это делается в отдельной папке ~ / .config / gtk-2.0. Файл для создания называется gtkrc

style "scroll"
{
 GtkScrollbar::slider-width = 20
}

Обратите внимание, что gtk-2.0 - это иначе разработанная настройка, поэтому синтаксис отличается, вы не можете просто скопировать gtk-3.0 css в папку gtk-2.0 .

Я заметил, что некоторые приложения ведут себя плохо, когда вы делаете полосу прокрутки разной, потому что размер «граббера» внутри прорези слайдера не изменяется правильно. Я подозреваю, что изменения прокрутки в файлах @ Dorian помогут с этим. Я могу вернуться и попробовать. Я дам вам знать.

Резюме. Ключевой «советник по системному администратору старого времени» - «НЕ редактируйте файлы конфигурации на общесистемной основе. Вы ставите свою систему под угрозу, ваши изменения не будут продолжаться в версиях, и для этого необходим root-доступ, который никогда не бывает хорош для косметических вещей, подобных этому. Найдите способ внесения изменений в свою учетную запись пользователя.

PS. Если вы действительно хотите возиться с системными файлами (иногда я делаю, если я действительно хочу настаивать на том, чтобы у всех пользователей были мои любимые цвета футбольной команды, как их обои и цветовая схема :)), первое, что вам нужно сделать, это сделать копию исходный файл и назовите оригинальный «gtk-widgets.css.orig». Затем, когда вы редактируете файл, сохраните копию своего редактирования как «gtk-widgets.css.20160919», где у меня есть дата YYYYMMDD на ее конце. Таким образом, когда пакет deb будет обновлен, у вас будет копия отредактированного файла. Тот, который вы редактируете с именем gtk-widgets.css, будет уничтожен установкой пакета.

20
ответ дан 23 May 2018 в 10:56

Ниже приведены шаги по восстановлению полос прокрутки, которые не исчезают и имеют постоянную ширину, то есть «классические». Протестировано в сессии GNOME Flashback в Ubuntu 16.04 (также работает в Unity).

Шаг 1. Сделайте резервную копию /etc/environment. Запустите sudo nano /etc/environment и добавьте следующую строку:

GTK_OVERLAY_SCROLLING=0

Это предотвратит поведение автогида полосы прокрутки.

Шаг 1. Во избежание подделки с основным файлом темы /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css мы возьмем некоторый код оттуда, изменим его и поместим в папку профиля пользователя. Создайте ~/.config/gtk-3.0/gtk.css и поместите в него следующие строки:

/* Adding the buttons on the edges (if you don't need them, skip the next 4 lines)
 */

.scrollbar {
  -GtkScrollbar-has-backward-stepper: 1;
  -GtkScrollbar-has-forward-stepper: 1;
}

/* Scrollbar trough squeezes when cursor hovers over it. Disabling that
 */

.scrollbar.vertical:hover:dir(ltr),
.scrollbar.vertical.dragging:dir(ltr) {
    margin-left: 0px;
}

.scrollbar.vertical:hover:dir(rtl),
.scrollbar.vertical.dragging:dir(rtl) {
    margin-right: 0px;
}

.scrollbar.horizontal:hover,
.scrollbar.horizontal.dragging,
.scrollbar.horizontal.slider:hover,
.scrollbar.horizontal.slider.dragging {
    margin-top: 0px;
}

/* Slider widens to fill the scrollbar when cursor hovers over it. Making it permanent
 */

.scrollbar.slider.vertical:dir(ltr):not(:hover):not(.dragging) {
    margin-left: 0px;
}

.scrollbar.slider.vertical:dir(rtl):not(:hover):not(.dragging) {
    margin-right: 0px;
}

.scrollbar.slider.horizontal:not(:hover):not(.dragging) {
    margin-top: 0px;
}

Шаг 3. Создайте ~/.config/gtk-3.0/settings.ini и добавьте в него следующие строки:

[Settings]
gtk-primary-button-warps-slider = false

Это восстановит пошаговое прокручивание по страницам, когда вы нажимаете полосу прокрутки по обеим сторонам ползунка. Если этот файл уже существует, просто добавьте последнюю строку в раздел [Settings].

Шаг 3. Удалите пакеты overlay-scrollbar и overlay-scrollbar-gtk2 - вы выиграли ' они нуждаются в них больше.

PS Если вы используете некоторые приложения, которым требуются права суперпользователя (например, Synaptic, gksudo и т. Д.), Вы также должны поместить эти файлы gtk.css и settings.ini в папку профиля root:

sudo cp ~/.config/gtk-3.0/gtk.css /root/.config/gtk-3.0/
sudo cp ~/.config/gtk-3.0/settings.ini /root/.config/gtk-3.0/

PS Если вы обнаружите, что эти полосы прокрутки слишком узки для вас, сделайте их более широкими. Просто добавьте следующую строку к вашему ~/.config/gtk-3.0/gtk.css:

.scrollbar {
  -GtkRange-slider-width: 15;
}

Увеличьте ширину, как вам кажется (по умолчанию 10). При необходимости обновите /root/.config/gtk-3.0/gtk.css.

6
ответ дан 23 May 2018 в 10:56
  • 1
    Я смог увеличить ширину только с помощью элемента: .scrollbar {-GtkRange-slider-width: 15; …, без всех других опций, о которых вы говорили. Но это было только на виртуальной машине. Когда я пытался сделать то же самое на рабочем столе, ничего не сработало, хотя я пробовал все шаги. Есть, я полагаю, ошибка в Firefox 52, потому что на виртуальной машине, где ответ помог, полоса прокрутки правильно отреагировала на событие зависания и автоматически расширилась. На рабочем столе он не обрабатывает зависания (что на самом деле является причиной, почему мне нужно расширить полосу прокрутки), и gtk.css тоже игнорируется – user907860 11 March 2017 в 22:09
  • 2
    @ user907860 Напротив, все шаги, упомянутые выше, предназначены для игнорировать событие . Они необходимы для создания статических постоянных полос прокрутки, которые никогда не меняют своей ширины, как это было в эпоху до единства. – whtyger 13 March 2017 в 11:01
  • 3
    да вы правы. Я имел в виду просто увеличение ширины, не касаясь функциональности зависания – user907860 13 March 2017 в 19:26
  • 4
    кстати, разве вы не знаете, почему это не работает в Firefox 52 на рабочем столе, а на виртуальной машине? askubuntu.com/questions/892097/&hellip – user907860 13 March 2017 в 19:28
  • 5
    Это должен быть принятый ответ. Мессинг с dconf и темами дали очень странные результаты - не наложение, но и не нормальное. Этот ответ дает обычные полосы прокрутки. Это должно быть сделано на уровне GTK. Примечание: Ubunutu скоро переходит в Qt. – Dominic Cerisano 2 August 2017 в 10:30

Изменение -GtkRange-slider-width не влияет на тему GTK + 3 по умолчанию. Вместо этого вы можете сделать это:

scrollbar slider {
    /* Size of the slider */
    min-width: 20px;
    min-height: 20px;
    border-radius: 22px;

    /* Padding around the slider */
    border: 5px solid transparent;
}

(Поместите выше в ~/.config/gtk-3.0/gtk.css.)

3
ответ дан 23 May 2018 в 10:56

Другие вопросы по тегам:

Похожие вопросы: