¿Cómo obtengo una barra de desplazamiento estática más grande (también conocida como barra de desplazamiento normal)?

40

Me alegro de que las barras de desplazamiento de superposición exterior finalmente hayan desaparecido.

Pero la barra de desplazamiento sigue siendo una línea delgada que se convierte en una barra de desplazamiento menos delgada, pero sigue siendo una barra de desplazamiento delgada, cuando el mouse se desplaza.

¿Cómo puedo obtener una barra de desplazamiento normal ? Es decir, como en otros sistemas operativos, como en Firefox, una barra de desplazamiento que no cambia según lo que señale el mouse y con un ancho agradable.

Ya lo intenté

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

Pero sin suerte.

Simon
fuente
2
¿Cómo sigue siendo un problema y no arregla / parte de la configuración estándar del sistema? lordy hace cuatro años, me enfurezco bastante ubuntu por cosas como esta y fui a pastos más pequeños ... jajaja
neuronet
@neuronet Amén, hermano
Steve Cohen

Respuestas:

22

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

Busque esta línea (alrededor de la línea 1200): -GtkRange-slider-width: 10;

Y cambie 10 a un número mayor como 20 o 30, y listo :)

También creo que son demasiado pequeños ...

Ver esta imagen:

ingrese la descripción de la imagen aquí

Si cambia el tamaño de la barra de desplazamiento a 16 y desea que permanezcan de esa manera, y no se reduzcan cuando no tiene el mouse, realice los cambios en la imagen de arriba.

Si usa un tamaño diferente a 16, solo experimente con los tamaños de margen para hacerlo bien.

dorio
fuente
1
Lo configuré en 16, y comenté todas las cosas de desplazamiento / arrastre y ahora las barras de desplazamiento son buenas y estáticas ... Sin embargo, siguen desapareciendo después de unos segundos. ¿Hay alguna función de animación que no vi?
Simon
Ok, justo debajo de donde hiciste el primer cambio, verás estos: margin-left: 2px;así como margin-righty margin-top. Cambie los tres de 2px a 7px y sus barras de desplazamiento permanecerán anchas.
Dorian
Agregué una foto a mi respuesta para tratar de aclarar lo que necesita cambiar para que las barras de desplazamiento se mantengan grandes.
Dorian
66
Muchas gracias! Mi abuelo estaba realmente luchando con las barras de desplazamiento muy pequeñas, pero lo cambié a 25px y ahora se desplaza como un profesional.
Erty Seidohl
1
Tenga en cuenta que cambié el mío a 24, y 7px seguía siendo el tamaño correcto para usar en los márgenes para asegurarme de que se mantuviera correcto al pasar el mouse. Tenga en cuenta también asegúrese de reiniciar su programa (por ejemplo, Firefox) para asegurarse de que sus cambios surtan efecto. Gran cosa
neuronet
26

Creo que deberías ser cauteloso allí. Muchos de nosotros NO le recomendaremos que edite los valores predeterminados de todo el sistema para un tema, a menos que realmente tenga la intención de interferir con la actividad de todas las cuentas de usuario en el sistema. Si comete un error al hacerlo, afecta a todas las cuentas de usuario. Otro punto de precaución es que cuando se actualizan los paquetes, sus cambios se borrarán.

Otro inconveniente de esta estrategia es que solo cambia el comportamiento de un tema GTK, pero es posible que desee cambiar el tamaño de la barra de desplazamiento en TODOS los temas GTK-3.0.

En su lugar, edite los archivos de configuración dentro de una cuenta de usuario. El truco es descubrir cuál es la distancia más corta al punto final deseado. El archivo GTK que edita es parte de una configuración CSS (hojas de estilo en cascada), por lo que la personalización que ponga en su cuenta modificará la configuración.

En su cuenta de usuario, en la carpeta ~ / .config / gtk-3.0 / gtk.css actualmente tengo esto en un archivo llamado "gtk.css"

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

Si juegas un poco con esto, verás que es posible integrar muchos cambios específicos del archivo de tema que estabas editando anteriormente. Hubo un tiempo en que traté de tocar muchas configuraciones, pero ahora estoy en el modo "mantenerlo simple".

Si realmente desea editar muchas configuraciones, lo correcto es COPIAR todo el archivo gtk-widgets.css y colocarlo en su carpeta ~ / .config / gtk-3.0. Luego ve a la ciudad jugando con la configuración.

En la misma carpeta, tengo un archivo llamado "settings.ini"

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

Esto evita que un clic en la barra de desplazamiento se mueva a un cierto punto en el archivo, en cambio, avanza solo una pantalla. ¡Yo prefiero eso!

La otra cosa que vale la pena saber es que cambiar ese archivo de tema (ya sea como lo recomendó previamente @Dorian o por un cambio de cuenta de usuario para todos los temas basados ​​en GTK-3.0 como sugiero) solo cambia los programas que se basan en el kit de herramientas GTK-3.0. No cambia la barra de desplazamiento para todas las aplicaciones. Es solo para aquellos que leen ese archivo de configuración gtk-3.0. Como está editando un tema gtk-3.0, las aplicaciones escritas con QT o gtk-2.0 no cambiarán. Por lo tanto, cambiar el tamaño de la barra de desplazamiento de todos los programas es bastante más difícil / tedioso de lo que cabría esperar.

También he cambiado el ancho de la barra de desplazamiento en gtk-2.0. Esto se hace en una carpeta separada ~ / .config / gtk-2.0. El archivo a crear se llama gtkrc

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

Tenga en cuenta que gtk-2.0 es una configuración de diseño diferente, por lo que la sintaxis es diferente, no puede simplemente copiar el css gtk-3.0 en la carpeta gtk-2.0.

Me di cuenta de que algunas aplicaciones se comportan mal cuando hace que la barra de desplazamiento sea diferente porque el tamaño del "capturador" dentro del canal deslizante no cambia de tamaño correctamente. Sospecho que los cambios al arrastrar la barra de desplazamiento en el archivo de @ Dorian ayudarían con eso. Puedo volver y probar eso. Yo lo haré saber.

Resumen: El "consejo de administrador de sistemas Linux de antaño clave es" NO edite archivos de configuración en todo el sistema. Está poniendo en riesgo su sistema, sus cambios no durarán entre revisiones y requiere acceso a la raíz, lo que nunca es bueno para cosas cosméticas como esta. Encuentre una manera de hacer cambios en su cuenta de usuario.

PD. Si realmente quiere jugar con los archivos del sistema (a veces lo hago si realmente quiero insistir en que todos los usuarios tengan los colores de mi equipo de fútbol favorito como fondo de pantalla y combinación de colores :)), lo primero que debe hacer es hacer una copia de el archivo original y nombre el original "gtk-widgets.css.orig". Luego, cuando edite su archivo, guarde una copia de su edición como "gtk-widgets.css.20160919", donde tengo la fecha AAAAMMDD al final. De esta manera, cuando se actualice el paquete deb, tendrá una copia de su archivo editado. El que edite llamado gtk-widgets.css será borrado por la instalación del paquete.

pauljohn32
fuente
¿A qué se refiere el "archivo de tema que estaba editando arriba"? "arriba" no significa nada aquí.
endolito
9

Estos son los pasos para restaurar las barras de desplazamiento que no desaparecen y tienen un ancho permanente, es decir, las "clásicas". Probado en la sesión de GNOME Flashback en Ubuntu 16.04 (también funciona en Unity).

Paso 1. Haz una copia de seguridad de /etc/environment. Ejecute sudo nano /etc/environmenty agregue allí la siguiente línea:

GTK_OVERLAY_SCROLLING=0

Esto evitará el comportamiento de ocultación automática de la barra de desplazamiento.

Paso 2. Para evitar manipular el archivo del tema principal, /usr/share/themes/Ambiance/gtk-3.0/gtk-widgets.csstomaremos prestado un código de allí, lo modificaremos y lo colocaremos en la carpeta del perfil del usuario. Crea ~/.config/gtk-3.0/gtk.cssy coloca las siguientes líneas en él:

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

Paso 3. Crea ~/.config/gtk-3.0/settings.iniy agrega las siguientes líneas:

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

Esto restaurará el comportamiento de desplazamiento de página por página cuando haga clic en la barra de desplazamiento a cada lado del control deslizante. Si este archivo ya existe, simplemente agregue la última línea en la [Settings]sección del mismo.

Paso 4. Desinstale overlay-scrollbary overlay-scrollbar-gtk2empaquete: ya no los necesitará.

PD: si utiliza algunas aplicaciones que necesitan derechos de superusuario (es decir, Synaptic, Gedit, etc.), también debe colocar estos gtk.cssy settings.iniarchivos en la carpeta de perfil de la raíz:

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 Si encuentra que estas barras de desplazamiento son demasiado estrechas para usted, hágaslas más amplias. Simplemente agregue la siguiente línea a su ~/.config/gtk-3.0/gtk.css:

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

Aumente el ancho como mejor le parezca (el valor predeterminado es 10). Actualice /root/.config/gtk-3.0/gtk.csstambién, si es necesario.

whtyger
fuente
Pude aumentar el ancho con el único elemento: .scrollbar {-GtkRange-slider-width: 15; …sin todas las otras opciones que mencionaste. Pero esto fue solo en una máquina virtual. Cuando intenté hacer lo mismo en un escritorio, nada funcionó, aunque había intentado todos los pasos. Hay, supongo, un error en Firefox 52, porque en la máquina virtual, donde la respuesta ayudó, la barra de desplazamiento reaccionó correctamente para el evento de desplazamiento y se amplió automáticamente. En el escritorio no maneja los elementos emergentes (que en realidad es la razón por la que necesito ampliar la barra de desplazamiento) y el gtk.css también se ignora
user907860
1
@ user907860 Por el contrario, todos los pasos mencionados anteriormente tienen la intención de ignorar el evento de desplazamiento por completo. Se necesitan para hacer barras de desplazamiento estáticas y permanentes que nunca cambien su ancho, como sucedió en la era anterior a la Unidad.
whtyger
sí, estás en lo correcto. Me refería a solo aumentar el ancho, sin tocar la funcionalidad de
desplazamiento
Por cierto, ¿no tienes idea de por qué esto no funciona en Firefox 52 en un escritorio, mientras que funciona en una máquina virtual? askubuntu.com/questions/892097/…
user907860
1
Esta debería ser la respuesta aceptada. Jugar con dconf y temas dio resultados muy extraños, no superpuestos, pero tampoco normales. Esta respuesta da barras de desplazamiento normales. Tiene que hacerse a nivel GTK. Nota: Ubunutu se mudará a Qt pronto.
Dominic Cerisano
8

El cambio -GtkRange-slider-widthno tiene ningún efecto sobre el tema GTK + 3 predeterminado. En cambio, puedes hacer esto:

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

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

(Coloque lo anterior en ~/.config/gtk-3.0/gtk.css.)

Vladimir Panteleev
fuente
1
¿Dónde debo agregarlo?
kenn
@kenn~/.config/gtk-3.0/gtk.css
Vladimir Panteleev
1
Funciona de maravilla en Ubuntu 18.04. ¡Gracias!
Steve Cohen
9 meses después: esto funciona de maravilla en Ubuntu 18.04 - EXCEPTO que confunde la aplicación GNUCash. Ver lists.gnucash.org/pipermail/gnucash-user/2019-February/… . Hacer estos cambios destruye la funcionalidad de la barra de desplazamiento en GNUCash, pero no en otras aplicaciones. Suspiro.
Steve Cohen
1
@ SteveCohen, miré el enlace de gnucash. Escribiste "~ / .config / gtk-3.0.gtk.css" pero debería ser ~/.config/gtk-3.0/gtk.css. Además, gnucash parece ser una aplicación gtk2 , no una aplicación gtk 3 .
Justicia para Mónica
4

Estoy usando Ubuntu 18.04 y esta fue la única solución que cambió la barra de desplazamiento para TODO, desde Firefox a LibreOffice a gnome-terminal. Las soluciones anteriores funcionaron bien para una o dos aplicaciones, pero no para todo.

Nota: esto le da REALMENTE barras de desplazamiento grandes que son buenas para monitores grandes porque puede verlos por el rabillo del ojo sin mirar hacia el lado de la pantalla cada vez que quiera tomar uno. Si desea tamaños más pequeños, cambie todos los 70px a un número más pequeño como 20px o 30px y ajuste en consecuencia.

Ponga el siguiente texto en ~/.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
fuente