In GNOME in particular ever since I started using it a year and a half ago scroll bars have gotten even tinier, and now it seems like the disappearing scrollbar has even made it to Windows on my updated Windows 10 install.
With Linux in particular I find this absolutely unacceptable given that it doesn’t have auto-scroll (middle click scroll), which I heavily used to use on Windows. Thank God Firefox has that setting because if it didn’t idk if I would’ve switched to Linux as my main OS - it’s that important. Idk why Linux elitists try to argue against this super useful functionality that’s far more useful and superior to whatever middle click is supposed to do on Linux by default (pasting in the terminal? lol)
Anyway, why are scroll bars getting smaller? Can any GUI designer or regular person share their thoughts and opinions on this? Imo, not only should scrollbars be nice and wide, but they should also ALWAYS be visible and at the very end of the screen - meaning that if I swipe my mouse to the end of the screen (where it stops), click and drag, it should always activate the scrollbar. I shouldn’t have to be precise or have to look in order to activate a scrollbar, especially if no autoscrolling is available like I said. The purpose of GUI is to be as functional as possible.
By the way here is a script/application I have to change the size of all scrollbars, excluding Firefox:
Dependency: Mate Terminal
~/.local/bin/custom/scrollbar-width.sh
#!/bin/bash
echo "NEW SCROLLBAR WIDTH(px) OR TYPE 'r' TO RESET"
while true; do
read uin
uin=$(echo "$uin" | xargs) # trim
uin=$(echo "${uin,,}") # lower case
if [[ "$uin" =~ ^[1-9][0-9]?$ || "$uin" == "r" ]]; then
# RESET
# remove previous width in gtk.css (if any)
if [ -f "$HOME/.config/gtk-3.0/gtk.css" ]; then
if [[ $(grep -v "slider { min-width" "$HOME/.config/gtk-3.0/gtk.css") ]]; then
grep -v "slider { min-width" "$HOME/.config/gtk-3.0/gtk.css" > tmpfile && mv tmpfile "$HOME/.config/gtk-3.0/gtk.css"
else
rm "$HOME/.config/gtk-3.0/gtk.css"
fi
fi
if [ -f "$HOME/.config/gtk-4.0/gtk.css" ]; then
if [[ $(grep -v "slider { min-width" "$HOME/.config/gtk-4.0/gtk.css") ]]; then
grep -v "slider { min-width" "$HOME/.config/gtk-4.0/gtk.css" > tmpfile && mv tmpfile "$HOME/.config/gtk-4.0/gtk.css"
else
rm "$HOME/.config/gtk-4.0/gtk.css"
fi
fi
# reset scrollbar visibility
gsettings reset org.gnome.desktop.interface overlay-scrolling
# reset flatpak overrides
if [[ "$(flatpak --version 2>&1)" =~ ^Flatpak ]] && [ -f "$HOME/.local/share/flatpak/overrides/global" ]; then
sed -i 's|xdg-config/gtk-3.0;||g' "$HOME/.local/share/flatpak/overrides/global"
sed -i 's|xdg-config/gtk-4.0;||g' "$HOME/.local/share/flatpak/overrides/global"
# if the those were the only filesystem overrides, remove the filesystems= line
grep -vx "filesystems=" "$HOME/.local/share/flatpak/overrides/global" > tmpfile && mv tmpfile "$HOME/.local/share/flatpak/overrides/global"
# if there are no other overrides, remove the flatpak global overrides file
if [[ ! $(grep -vx "\[Context\]" "$HOME/.local/share/flatpak/overrides/global") ]]; then
rm "$HOME/.local/share/flatpak/overrides/global"
fi
fi
# APPLY NEW SETTINGS
if [[ "$uin" =~ ^[1-9][0-9]?$ ]]; then
# add new width in gtk.css
echo "slider { min-width: ${uin}px; min-height: ${uin}px; }" >> "$HOME/.config/gtk-3.0/gtk.css"
echo "slider { min-width: ${uin}px; min-height: ${uin}px; }" >> "$HOME/.config/gtk-4.0/gtk.css"
# apply to flatpak (if installed)
if [[ "$(flatpak --version 2>&1)" =~ ^Flatpak ]]; then
flatpak override --user --filesystem=xdg-config/gtk-3.0 --filesystem=xdg-config/gtk-4.0
fi
# make scrollbar always visible
gsettings set org.gnome.desktop.interface overlay-scrolling false
fi
echo "LOGOUT FOR EVERYTHING TO BE APPLIED"
read hold
exit 0
else
echo "Invalid input, try again."
fi
done
~/.local/share/applications/scrollbar-width.desktop
[Desktop Entry]
Type=Application
Terminal=false
Name=Scrollbar Width
Categories=System
Icon=preferences-desktop-appearance-symbolic
Exec=mate-terminal --class "custscrollbarwidth" --disable-factory --title "CHANGE SCROLLBAR WIDTH" -- sh -c 'bash "$HOME/.local/bin/custom/scrollbar-width.sh"'
StartupWMClass=custscrollbarwidth
To change it in Firefox:
# Always visible available in normal settings - search "scroll"
# scrollbar width
widget.non-native-theme.scrollbar.size.override
20
# scrollbar shape
widget.non-native-theme.scrollbar.style
4