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

32

Fico feliz porque as barras de rolagem de sobreposição externas finalmente desapareceram.

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

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 boa largura de tela.

Eu já tentei

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

mas sem sorte.

    
por Simon 20.05.2016 / 16:16

5 respostas

21

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 altere 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:

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

Se você usar um tamanho diferente de 16, experimente os tamanhos de margem para acertar.

    
por Dorian 20.05.2016 / 16:41
22

Eu acho que você deve ser cauteloso lá. Muitos de nós NÃO recomendam 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 acontecer de você cometer um erro ao fazer isso, isso afetará todas as contas de usuário. Outro ponto de cautela é que quando os pacotes são atualizados, suas alterações serão apagadas.

Outra falha desta estratégia é que ela apenas altera o comportamento de um tema GTK, mas você pode querer 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 editado faz parte de uma configuração CSS (Cascading Style Sheets), portanto, a personalização que você coloca na sua conta modificará as configurações.

Na sua conta de usuário, na pasta ~ / .config / gtk-3.0 / gtk.css, eu 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 do arquivo de tema que estava editando acima. Houve uma época em que tentei arduamente mexer em muitas configurações, mas agora estou no modo "simplifique".

Se você realmente quer editar muitas configurações, o correto é copiar o arquivo inteiro gtk-widgets.css e colocá-lo na sua pasta ~ / .config / gtk-3.0. Então vá para a cidade brincando com as 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 se mova para um determinado ponto no arquivo, em vez disso, ele avança apenas uma tela. Eu prefiro isso!

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

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
}

Note que o gtk-2.0 é uma configuração diferente, então a sintaxe é diferente, você não pode simplesmente copiar o css do gtk-3.0 para a pasta gtk-2.0.

Tenho notado que alguns aplicativos se comportam mal quando você torna a barra de rolagem diferente porque o tamanho do "grabber" dentro da barra deslizante não é redimensionado corretamente. Eu suspeito que as mudanças na barra de rolagem no arquivo do @ Dorian ajudariam com isso. Eu posso voltar e tentar isso. Eu vou deixar você saber.

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

PS. Se você realmente quer mexer com arquivos de sistema (às vezes eu faço se eu realmente quiser insistir que todos os usuários tenham minhas cores favoritas de time de futebol como papel de parede e esquema de cores :)), a primeira coisa que você deve fazer é fazer uma cópia 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", onde eu tenho a data YYYYMMDD no final dela. Dessa forma, quando o pacote deb estiver atualizado, você terá uma cópia do seu arquivo editado. O que você edita chamado gtk-widgets.css será obliterado pela instalação do pacote.

    
por pauljohn32 20.09.2016 / 04:03
8

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

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

GTK_OVERLAY_SCROLLING=0

Isso impedirá o comportamento de auto-ocultar da barra de rolagem.

Passo 2. Para evitar adulterar o arquivo de tema principal /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.css , pegamos algum código emprestado de lá, alteramos e colocamos na pasta do perfil de usuário. Crie ~/.config/gtk-3.0/gtk.css e coloque as próximas linhas:

/* 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.ini e adicione as próximas linhas a ele:

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

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

Etapa 4. Desinstale os pacotes overlay-scrollbar e overlay-scrollbar-gtk2 - você não precisará mais deles.

PS Se você usar alguns aplicativos que precisam de direitos de superusuário (por exemplo, Synaptic, gksudo etc.), você também deve colocar esses arquivos gtk.css e settings.ini na pasta de perfil da 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/

P.P.S. Se você achar que essas barras de rolagem são muito estreitas para você, faça-as mais amplas. 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.css também, se necessário.

    
por whtyger 12.01.2017 / 14:57
4

A alteração de -GtkRange-slider-width não tem efeito no 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 acima em ~/.config/gtk-3.0/gtk.css .)

    
por Vladimir Panteleev 25.04.2017 / 06:32
0

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 terminal do gnome. 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, 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 delas. Se você quer os menores, muda todos os 70px para um número menor, como 20px ou 30px, e ajuste 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;
}
    
por s. wolfe 23.09.2018 / 01:09