Como obtenho uma barra de rolagem estática maior (também conhecida como barra de rolagem normal)?

40

Fico feliz que as barras de rolagem externas finalmente se foram.

Mas a barra de rolagem ainda é uma linha fina, que se torna uma barra de rolagem menos fina, mas ainda assim, quando o mouse passa o mouse.

Como posso obter uma barra de rolagem normal ? Ou seja, como em outros sistemas operacionais, como no Firefox, uma barra de rolagem que não muda dependendo do que o mouse aponta e com uma largura agradável.

Eu já tentei

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

mas sem sorte.

Simon
fonte
2
como isso ainda é um problema e não corrige / faz parte das configurações padrão do sistema? lordy há quatro anos i raiva bastante ubuntu sobre coisas como esta e foi para pastagens mintier ... lol
rede neural
@neuronet Amen, irmão
Steve Cohen

Respostas:

22

Edite este arquivo /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css

Procure esta linha (em torno da linha 1200): -GtkRange-slider-width: 10;

E mude 10 para um número maior, como 20 ou 30, e pronto :)

Eu também acho que eles são muito pequenos ...

Veja esta imagem:

insira a descrição da imagem aqui

Se você alterar o tamanho da barra de rolagem para 16 e desejar que eles permaneçam assim, e não encolher quando não tiver o mouse, faça as alterações na figura acima.

Se você usar um tamanho diferente de 16, experimente apenas os tamanhos das margens para obtê-lo corretamente.

Dorian
fonte
11
Eu ajustei para 16, e comentei todas as coisas hover / drag e agora as barras de rolagem são boas e estáticas ... Elas ainda estão desaparecendo depois de alguns segundos. Existe alguma função de animação que eu não vi?
20916 Simon
Ok, logo abaixo de onde você fez a primeira alteração, você verá estas: margin-left: 2px;assim como margin-righte margin-top. Altere todos os três de 2px para 7px e suas barras de rolagem permanecerão largas.
Dorian
Adicionei uma foto à minha resposta para tentar esclarecer o que você precisa alterar para que as barras de rolagem fiquem grandes.
Dorian
6
Muito obrigado! Meu avô estava realmente lutando com as barras de rolagem muito pequenas, mas mudei para 25px e agora ele está rolando como um profissional!
Erty Seidohl 01/12/16
11
Observe que eu mudei o meu para 24 e 7px ainda era do tamanho certo para as margens, para garantir que ele permanecesse correto ao passar o mouse. Observe também que você reiniciou seu programa (por exemplo, Firefox) para garantir que suas alterações entrem em vigor. Ótima coisa.
Neuronet
26

Eu acho que você deve ser cauteloso lá. Muitos de nós NÃO recomendamos que você edite os padrões de todo o sistema para um tema, a menos que você realmente pretenda interferir na atividade de todas as contas de usuário no sistema. Se você cometer um erro ao fazer isso, isso afetará todas as contas de usuário. Outro ponto de cautela é que, quando os pacotes forem atualizados, suas alterações serão apagadas.

Outra falha dessa estratégia é que ela altera apenas o comportamento de um tema GTK, mas você pode alterar o tamanho da barra de rolagem em TODOS os temas do GTK-3.0.

Em vez disso, edite os arquivos de configuração dentro de uma conta de usuário. O truque é descobrir qual é a menor distância até o ponto final desejado. O arquivo GTK que você edita faz parte de uma configuração CSS (Cascading Style Sheets); portanto, a personalização que você coloca em sua conta modifica as configurações.

Na sua conta de usuário, na pasta ~ / .config / gtk-3.0 / gtk.css, atualmente tenho isso em um arquivo chamado "gtk.css"

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

Se você brincar um pouco com isso, descobrirá que é possível integrar muitas alterações específicas no arquivo de tema que você estava editando acima. Ao mesmo tempo, tentei arduamente mexer em muitas configurações, mas agora estou no modo "mantenha as coisas simples".

Se você realmente deseja editar muitas configurações, a coisa certa a fazer é COPIAR todo o arquivo gtk-widgets.css e colocá-lo em sua pasta ~ / .config / gtk-3.0. Então vá para a cidade mexendo nas configurações.

Na mesma pasta, tenho um arquivo chamado "settings.ini"

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

Isso impede que um clique na barra de rolagem seja movido para um determinado ponto do arquivo; em vez disso, avança apenas uma tela. Eu prefiro isso!

A outra coisa que vale a pena saber é que alterar esse arquivo de tema (conforme recomendado anteriormente pelo @Dorian ou por uma conta de usuário para todos os temas baseados no GTK-3.0, como eu sugiro) apenas altera os programas baseados no kit de ferramentas do GTK-3.0. Não altera a barra de rolagem para todos os aplicativos. É apenas para aqueles que lêem o arquivo de configuração gtk-3.0. Como você está editando um tema gtk-3.0, os aplicativos criados com QT ou gtk-2.0 não serão alterados. Portanto, alterar o tamanho da barra de rolagem de todos os programas é um pouco mais difícil / tedioso do que você imagina.

Também alterei a largura da barra de rolagem no gtk-2.0. Isso é feito em uma pasta separada ~ / .config / gtk-2.0. O arquivo a ser criado é denominado gtkrc

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

Observe que o gtk-2.0 é uma configuração projetada de maneira diferente, portanto a sintaxe é diferente; você não pode simplesmente copiar o css do gtk-3.0 para a pasta gtk-2.0.

Percebi que alguns aplicativos se comportam mal quando a barra de rolagem é diferente porque o tamanho do "grabber" dentro da calha deslizante não é redimensionado corretamente. Eu suspeito que as alterações de arrastar a barra de rolagem no arquivo @ Dorian ajudariam nisso. Eu posso voltar e tentar isso. Eu aviso você.

Resumo: O principal "conselho antigo do administrador de sistemas Linux" é "NÃO edite arquivos de configuração em todo o sistema. Você está colocando seu sistema em risco, suas alterações não duram nas revisões e exigem acesso root, o que nunca é bom para coisas cosméticas como essa. Encontre uma maneira de fazer alterações na sua conta de usuário.

PS. Se você realmente quer mexer nos arquivos do sistema (às vezes eu faço se realmente quero insistir em que todos os usuários tenham as cores do meu time de futebol favorito como papel de parede e esquema de cores :)), a primeira coisa que você deve fazer é fazer uma cópia do o arquivo original e nomeie o original "gtk-widgets.css.orig". Então, quando você editar seu arquivo, salve uma cópia da sua edição como "gtk-widgets.css.20160919", na qual tenho a data AAAAMMDD ao final dela. Dessa forma, quando o pacote deb for atualizado, você terá uma cópia do seu arquivo editado. O que você editar chamado gtk-widgets.css será eliminado pela instalação do pacote.

pauljohn32
fonte
A que se refere o "arquivo de tema que você estava editando acima"? "acima" não significa nada aqui.
endolith 8/03
9

Aqui estão as etapas para restaurar as barras de rolagem que não desaparecem e têm largura permanente, ou seja, as "clássicas". Testado na sessão GNOME Flashback no Ubuntu 16.04 (funciona também no Unity).

Etapa 1. Faça um backup de /etc/environment. Execute sudo nano /etc/environmente adicione a próxima linha:

GTK_OVERLAY_SCROLLING=0

Isso impedirá o comportamento de ocultar automaticamente da barra de rolagem.

Etapa 2. Para evitar adulteração do arquivo do tema principal /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css, emprestaremos algum código a partir daí, alterá-lo e colocá-lo na pasta de perfil do usuário. Crie ~/.config/gtk-3.0/gtk.csse coloque as próximas linhas nele:

/* 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;
}

Etapa 3. Crie ~/.config/gtk-3.0/settings.inie adicione as próximas linhas nele:

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

Isso restaurará o comportamento de rolagem página a página quando você clicar na barra de rolagem nos dois lados do controle deslizante. Se esse arquivo já existir, basta adicionar a última linha na [Settings]seção.

Etapa 4. Desinstalar overlay-scrollbare overlay-scrollbar-gtk2pacotes - você não precisará mais deles.

PS Se você usa alguns aplicativos que precisam de direitos de superusuário (por exemplo, Synaptic, Gedit etc.), também deve colocar esses arquivos gtk.csse settings.inina pasta de perfil raiz:

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/

PPS Se você achar que essas barras de rolagem são muito estreitas para você, amplie-as. Basta adicionar a próxima linha ao seu ~/.config/gtk-3.0/gtk.css:

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

Aumente a largura como achar melhor (o padrão é 10). Atualize /root/.config/gtk-3.0/gtk.csstambém, se necessário.

whtyger
fonte
Consegui aumentar a largura com o único item:, .scrollbar {-GtkRange-slider-width: 15; …sem todas as outras opções que você mencionou. Mas isso foi apenas em uma máquina virtual. Quando tentei fazer o mesmo em uma área de trabalho, nada funcionou, apesar de ter tentado todas as etapas. Suponho que haja um bug no Firefox 52, porque na máquina virtual, onde a resposta ajudou, a barra de rolagem reagiu corretamente ao evento de foco e aumentou automaticamente. Na área de trabalho ele não controla paira (que na verdade é a razão, porque eu preciso alargar a barra de rolagem) eo gtk.css é ignorado demasiado
user907860
11
@ user907860 Pelo contrário, todas as etapas mencionadas acima têm como objetivo ignorar completamente o evento hover. Eles são necessários para criar barras de rolagem estáticas e permanentes, que nunca mudam de largura, como era na era anterior à Unidade.
whtyger
sim você está correto. Eu quis dizer apenas aumentar a largura, sem tocar a funcionalidade de foco
user907860
a propósito, você não tem idéia, por que isso não funciona no Firefox 52 em um desktop, enquanto em uma máquina virtual? askubuntu.com/questions/892097/...
user907860
11
Essa deve ser a resposta aceita. Mexer com dconf e temas deu resultados muito estranhos - não sobrepostos, mas também não normais. Esta resposta fornece barras de rolagem normais. Isso deve ser feito no nível GTK. Nota: Ubunutu está mudando para Qt em breve.
Dominic Cerisano
8

A alteração -GtkRange-slider-widthnão afeta o tema padrão do GTK + 3. Em vez disso, você pode fazer isso:

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

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

(Coloque o item acima em ~/.config/gtk-3.0/gtk.css.)

Vladimir Panteleev
fonte
11
onde devo adicioná-lo?
Kennedy
@kenn~/.config/gtk-3.0/gtk.css
Vladimir Panteleev
11
Funciona como um encanto no Ubuntu 18.04. Obrigado!
Steve Cohen
9 meses depois: Isso funciona como um encanto no Ubuntu 18.04 - EXCETO que ele confunde muito o aplicativo GNUCash. Consulte lists.gnucash.org/pipermail/gnucash-user/2019-February/… . Fazer essas alterações destrói a funcionalidade da barra de rolagem no GNUCash, mas não em outros aplicativos. Suspiro.
Steve Cohen
11
@SteveCohen, eu olhei para o link gnucash. Você escreveu "~ / .config / gtk-3.0.gtk.css", mas deveria ser ~/.config/gtk-3.0/gtk.css. Além disso, o gnucash parece ser um aplicativo gtk2 , não um aplicativo gtk 3 .
Justice for Monica
4

Estou usando o Ubuntu 18.04 e esta foi a única solução que mudou a barra de rolagem para TUDO, do Firefox para o LibreOffice, para o gnome-terminal. As soluções acima funcionaram bem para uma ou duas aplicações, mas não para tudo.

Nota: isso oferece barras de rolagem realmente grandes, que são boas para monitores grandes, porque você pode vê-las pelo canto do olho sem olhar para o lado da tela toda vez que quiser pegar uma. Se você quiser menores, altere todos os 70 px para um número menor, como 20 px ou 30 px e ajuste-o de acordo.

Coloque o seguinte texto em ~/.config/gtk-3.0/gtk.css:


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

scrollbar slider {
background-color: @scrollbar_track_color;
}

.scrollbar.vertical slider,
scrollbar.vertical slider {
    min-height: 150px;
    min-width: 70px;
}

.scrollbar.horizontal.slider,
scrollbar.horizontal slider {
min-width: 40px;
min-height: 10px;
}

.scrollbar.vertical.slider:hover,
scrollbar.vertical:hover slider {
min-width: 70px;
}

.scrollbar.horizontal.slider:hover,
scrollbar.horizontal:hover slider {
    min-height: 10px;
}

.scrollbar.contents,
scrollbar contents {
    background-color: transparent;
    background-image: none;
    background-size: 0;
    border: none;
    border-radius: 0;
}

.scrollbar.trough,
scrollbar trough {
    background-image: none;
    border: none;
}

.scrollbar:hover:backdrop,
.scrollbar.dragging:backdrop,
scrollbar:hover:backdrop,
scrollbar.dragging:backdrop {
    background-color: alpha(@backdrop_selected_bg_color, 0.5);
}


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

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

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

.scrollbar.slider,
scrollbar slider {
    background-color: alpha(@backdrop_filling_bg, 0.75);
    border-radius: 10px;
}

.scrollbar.slider:hover,
.scrollbar.slider:active,
scrollbar slider:hover,
scrollbar slider:active {
    border-radius: 20px;
    margin: 0;
}


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

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

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


.scrollbar.slider:hover,
scrollbar slider:hover {
    background-color: alpha(@backdrop_filling_bg, 0.6);
}

.scrollbar.slider:active,
scrollbar slider:active {
    background-color: @backdrop_filling_bg;
}

.scrollbar.slider:backdrop,
scrollbar slider:backdrop {
    background-color: alpha(@backdrop_filling_bg, 0.75);
}

.scrollbar.slider:hover:backdrop,
scrollbar slider:hover:backdrop {
    background-color: alpha(@backdrop_filling_bg, 0.6;
}

.scrollbar.slider:active:backdrop,
scrollbar slider:active:backdrop {
    background-color: @backdrop_filling_bg;
}

scrollbar {
    min-width: 70px;
    min-height: 70px;
}
s. wolfe
fonte