Полосы прокрутки. Слышали когда-нибудь о них? Довольно крутая штука. Достаточно зажать и перетаскивать полосу прокрутки, чтобы перемещаться по контенту панели со скроллингом. Я это просто обожаю. Ежедневно целыми днями сижу за компьютером и тягаю полосу прокрутки. Но полосы прокрутки становятся мельче, и это оказывается всё более серьёзной проблемой. В статье я покажу скриншоты, но они настолько малы, что даже делать их было сложно. А разработчики продолжают делать их всё мельче, как будто не хотят, чтобы вы скроллили! Они говорят: «Для этого ведь колесо прокрутки и существует». Друг мой, не у каждого есть колесо прокрутки и не каждый может свайпать по сенсорному экрану. И даже я, счастливый обладатель колеса прокрутки, хотел бы перемещаться по контенту быстро.

Почему это важно

У многих из людей есть проблемы с мелкой моторикой. Другие используют не очень точные устройства управления, например, трекеры взгляда (это потрясающие устройства, но их точности недостаточно для вашей полосы прокрутки шириной 8 пикселей!). И все эти люди тоже хотят скроллить! Когда мой друг управляет компьютером при помощи голоса/звуков (кстати, это очень удобно делать благодаря Talon Voice, рекомендую попробовать), ему не хочется каждый раз повторять «скролл вниз» или начинать автоматический скроллинг, чтобы постараться попасть в нужное место. Он просто хочет посмотреть на полосу прокрутки и нажать на место, которое хочет посмотреть. Нажимаешь на точку и переходишь к нужному контенту! Это отличная функция!

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

«Сам факт того, что эти тощие полосы прокрутки существуют, становится свидетельством того, что дизайнеры не проводят тестирование usability с технически не подкованными пользователями. Потому что если бы проводили, то проблема мгновенно стала бы очевидной.

У людей, испытывающих сложности с координацией и ручным управлением, возникают трудности с этими тощими полосами прокрутки.

От них страдают и люди с нарушениями зрения.»

Проблемы

А разработчики всё продолжают уменьшать полосы прокрутки, или вообще пытаются от них избавиться! В статье я упоминаю названия продуктов, которые использую каждый день, но дело касается не только них, разработчики поступают так не только в мире Linux.

В некоторых случаях проблема на самом деле в том, что полоса остаётся точно такой же, как и была раньше (в пикселях), но разрешения мониторов стали гораздо больше, чем когда выбирали её размер, а увеличением их масштаба никто не занимается. Однако в других случаях полосы реально становятся меньше. Боже, вы помните полосу прокрутки толщиной с иголку, которую какое-то время пытались внедрить в Ubuntu? Это просто смехотворно.

К тому же, в процессе усыхания полос прокрутки незаметно пропала ещё одна функция: кнопки, которые можно нажать и удерживать для скроллинга влево/вправо с инкрементом. В основной эта функциональность теперь передана клавишам со стрелками, но они зависят от того, какой контент находится в фокусе, а кнопки от этого не зависели. На самом деле, кто-то из вас даже может не понимать, о чём я говорю. О вот этих штуках:

OS X screenshot with the scroll buttons highlighted
Скриншот из OS X

Лично я ими не пользуюсь! Но добавил это в пост по просьбе того, кто пользуется, и желает, чтобы они вернулись.

По большому счёту, сохраняются тенденции к понижению удобства полос, и у пользователей нет никаких возможностей исправить это; или же настройка опций погребена так глубоко в технологическом стеке, что ни один обычный пользователь до них не доберётся. Многие их моих друзей с техникой на «вы», и именно их трудности заставили меня написать этот пост.

GTK

В GTK2 ширину полос прокрутки можно было изменять напрямую в gtkrc, и для этого существовали программы с GUI. В GTK3 это делается через CSS. На мой взгляд, это неплохо, но если вы не понимаете динамических тем, то понятного и удобного пользователю способа их настройки для вас нет. Я нашёл эту тему на Reddit с хорошим скриптом для этого, который я воспроизведу здесь на случай, если Reddit умрёт. Сохраните его в файл .sh и при необходимости запустите.

#!/bin/bash
echo "NEW SCROLLBAR WIDTH(px) OR TYPE 'r' TO RESET"
while true; do
read uin
uin=uin" | xargs) # trim
uin={uin,,}") # lower case
if [[ "$uin" =~ ^[1-9][0-9]?$ || "$uin" == "r" ]]; then

    # СБРОС

    # удаляем предыдущую ширину в gtk.css (если она есть)
    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

    # сбрасываем видимость полос прокрутки
    gsettings reset org.gnome.desktop.interface overlay-scrolling

    # сброс переопределений flatpak
    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"
        # если это были только переопределения файловой системы, удаляем строку filesystems=
        grep -vx "filesystems=" "$HOME/.local/share/flatpak/overrides/global" > tmpfile && mv tmpfile "$HOME/.local/share/flatpak/overrides/global"
        # если больше не было других переопределений, то удаляем файл глобального переопределения flatpak
        if [[ ! $(grep -vx "\[Context\]" "$HOME/.local/share/flatpak/overrides/global") ]]; then
            rm "$HOME/.local/share/flatpak/overrides/global"
        fi
    fi

    # ПРИМЕНЯЕМ НОВЫЕ ПАРАМЕТРЫ

    if [[ "$uin" =~ ^[1-9][0-9]?$ ]]; then
        # добавляем новую ширину в 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"

        # применяем к flatpak (если он установлен)
        if [[ "$(flatpak --version 2>&1)" =~ ^Flatpak ]]; then
            flatpak override --user --filesystem=xdg-config/gtk-3.0 --filesystem=xdg-config/gtk-4.0
        fi

        # делаем полосу прокрутки всегда видимой
        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

Естественно, скрипт должен отдельно переопределить flatpak, потому что не дай бог мои приложения flatpak будут выглядеть так же, как тема моей системы. Кроме того, теперь по умолчанию полоса прокрутки скрывается, пока вы не наведёте курсор туда, где она должна быть — ну что это такое? В GTK 3 её можно вернуть назад, если знать, какую команду вводить (приведённый выше скрипт тоже это делает).

gsettings set org.gnome.desktop.interface overlay-scrolling false

Или, наверно, можно найти это в GUI, если вы знаете, как управляться с Dconf Editor. Однако в GTK 4 эту настройку нельзя даже задать глобально. См. эту тему, которая на момент написания статьи, насколько я знаю, была актуальна.

> > Кто вообще решил, что они пропадут? API, позволяющий приложению их использовать,
> > по-прежнему существует. Программы, часто используемые на планшетах и подобных устройствах, могут
> > запрашивать функции для создания собственных опций для использования полос прокрутки без оверлеев.
>
> То есть мне просто нужно отправлять feature request для каждого используемого мной
> приложения?
> А при установке GNOME мне придётся заходить в каждое приложение и включать его.

Qt

Цитата /u/cfeck_kde в /r/kde:

«Ширина полос прокрутки Qt определяется используемым вами плагином стиля виджетов Qt. Насколько я знаю, настраиваемые размеры доступны только в стиле Skulpture. В других стилях, например в Breeze, нужно будет исправить исходники на C++ и заново их скомпилировать.»

С одной стороны, заново компилировать тему? Хотя я ведь пользователь gentoo и всё равно делаю это каждую пятницу, поэтому могу просто добавить патч, но... ЗАНОВО КОМПИЛИРОВАТЬ ТЕМУ GUI?

Но с другой стороны, так как плагины стиля Qt — это реальный код, они должны иметь гораздо больше возможностей, если вы найдёте то, что позволяет вам менять нужные параметры. Лично я пользуюсь Kvantum. Я не смог найти в его конфигурации настройку, позволяющую менять ширину полосы прокрутки, однако мне удалось отключить пропадание полосы прокрутки (это называется «Transient scrollbars»), так что это здорово.

Как бы то ни было, по рекомендации пользователя Reddit я решил попробовать Skulpture и он мне понравился, попробуйте и вы! Однако я не смог найти способ настраивать его при помощи GUI без использования KDE Plasma. Я не хочу катить бочку на Plasma, она просто пока у меня не установлена, но возможно, если вы пользователь Plasma, это вам подойдёт.

Если же наша единственная надежда — это данный движок тем, который может и перестать работать в процессе развития Qt, то я не смогу избавиться от ощущения, что война уже проиграна.

Firefox

Похоже, Firefox тоже вступил в войну с полосами прокрутки, сделав их невероятно тонкими. К счастью, в Firefox это, по крайней мере, можно исправить (пока…), но для этого придётся перейти в about:config, а это всегда плохой знак. Впрочем, это можно сделать.

  • Введите в адресной строке about:config

  • Найдите виджет widget.non-native-theme.scrollbar.size.override

  • Измените число на любое нужное

  • Также можно отредактировать widget.non-native-theme.scrollbar.style, чтобы изменить его форму; введите 4, чтобы получить красивый пухленький прямоугольник

  • Наконец, включите «Always show scrollbars» в обычном окне about:settings, если вам они нужны постоянно.

На скриншоте ниже я установил значение 50. Лично мне такая большая полоса не нужна, но как же я рад, что её можно сделать такой. Узрите полосу прокрутки во всём её великолепии:

the scrollbar is HUGE
ОГРОМНАЯ полоса прокрутки

Chrome

Представьте, как было бы здорово настраивать любые полезные параметры в Chrome.

Electron

Коли уж на то пошло, представьте настройку приложения Electron. Лично я представить этого не могу. Возможно, для изменений можно инъецировать в приложение Electron собственный CSS? Если у вас есть решения для Chrome или Electron, то сообщите мне, потому что мне они неведомы.

Есть и другие примеры

Всё изложенное выше — это то, с чем я сталкиваюсь регулярно, но все так называемые «современные принципы дизайна», похоже, настроены против полос прокрутки и все, кто использует компьютеры хотя бы немного иначе, чем реализующие их люди, страдают. Это отстой!

Лучшее

А знаете, что здорово? Что нравится мне, моему другу с трекером взгляда и моим друзьям с планшетами? Миникарты.

big rectangle with content
Большой прямоугольник с контентом

ДА!!!!!!!!!

Я вижу контент. Я могу нажимать на контент. Я могу переходить к контенту. А площадь элемента огромна. Чего ещё остаётся желать?

Комментарии (52)


  1. ritorichesky_echpochmak
    16.10.2023 11:05
    +13

    Единственный для кого это проблема - человек с трекингом движения глаз. Accessibility в принципе последнее о чём задумываются рисователи "прогрессивных интерфейсов". Для простых же смертных есть PageUp, PageDown, пробел, чуть более хитромудрые мышки. Куда больше удручает невозможность постраничной навигации (это аффектит не только accessibility, но и всякие штуки типа vimium), мразотные постоянно мельтешащие баннеры напиханные во все места, в т.ч. заполонившие всё то место, которое сэкономили на "отвлекавших от контента полосах прокрутки" и упоротая вёрстка при которой эти самые догружаемые в шапку баннеры заставляют всё сдвигаться, например меню убегать через секунду после рендера страницы (т.е. ты как раз уже кликаешь на меню, а тебе там подсовывается баннер)

    А миникарты и вообще все эти панельки во все места - это первое, что сворачивается, чтобы не отвлекало, даже на нормальном мониторе (я уже молчу про ноут и планшет). Не зря JB пошли по пути минимизации интерфейса.


    1. saege5b
      16.10.2023 11:05
      +2

      Миникарты хороши на экранах с диагональю эдак 28+. особая прелесть на ~48 дюймах.


      1. ritorichesky_echpochmak
        16.10.2023 11:05
        +19

        Т.е. лучше всего миникарты смотрятся когда их нет в поле зрения)


    1. DGG
      16.10.2023 11:05
      +29

      Да не только для инвалидов проблемы.

      С чем сам сталкивался:

      1. Приложение не поддерживает колесо, а скроллбар маленький/криво работает и т.п.

      2. У тебя сенсорный планшет с виндовс или ноут с тачпадом, а скроллбар млипиздрический и требует пиксельхантинга.

      3. Неожиданное/нежелательное поведение если промахнуться и кликнуть рядом с скроллбаром.

      4. Неожиданное корявое поведение если тащишь скроллбар, но курсор/палец с него съехал в окно, типа возврата в начало страницы или в точку с которой начинал тащить.

      5. Или есть скролл страницы движениями по сенсорному экрану, но при этом сбоку есть узкий, а то и совсем невидимый скроллбар. Вот допустим двигаешь палец вверх, страница скроллится вниз, и тут задеваешь край экрана , а там скроллбар который начинает тащить страницу в обратную сторону или вообще внезапно пролистывает в позицию документа пропорциональную той высоте скроллбара которую задел.


      1. nixtonixto
        16.10.2023 11:05
        +30

        1. Когда текст очень большой - например, книга - единой страницей и без навигации. Можно палец стереть, пока доскроллишь до середины, а так перетащил мышкой скроллбар на середину и готово. Войну скроллбарам объявили современные "бесконечные" ленты, в которых скроллбар только вредит.


        1. yatanai
          16.10.2023 11:05
          +7

          1. У людей с проблемами зрения. Существует порядочно людей которые пользуются масштабированием интерфейса по DPI, и которые не могут читать слишком мелкий текст. И когда приложение, тот же Дискорд, оставляет тебе полосу в 10 пикселей, при этом увеличивая весь остальной контент, ориентироваться в приложении становится невозможным.


          1. ritorichesky_echpochmak
            16.10.2023 11:05
            +1

            Ну вот у меня habr поскейлен на 133% и в IDE шрифты 14-16px в среднем, но без масштабирования. У меня нет прям проблемы, просто глаза устают выпучиваться ежедневно по много часов в экран в поисках хоть какого-то смысла. Reader view в FF активно использую именно потому что его можно настроить для комфортного чтения, расположить текст, внезапно, прямо по середине, а не слева от прыгающих баннеров за которыми скролл успешно прячется от удобного быстрого доступа. С ПК у меня нет никаких проблем и страданий о том, что скролл какой-то маленький и в него якобы сложно попасть. Прогресс чтения он показывает без проблем, хоть шириной в 8 пикселей, хоть стандартный, хоть серый, хоть красный. Без пиксельхантинга, без тачпада и вообще без мыши. Мне вообще удобно никуда руки с клавиатуры не убирать.

            А дальше люди, почему-то, начинают путать и забывать, что UX для классического браузера, мобильная пупырка и читалка книг (потому что прогресс чтения книг рисуется вообще по другому, отлично самими же читалками запоминается между сессиями и впринципе вторичен) - это три разные вещи, которые всё ещё часто представляют из себя три разных приложения (т.е. мобильная версия сайта - это совершенно другая версия вёрстки). Если у сайта первая страница белая из-за кривого баннера - это проблема с баннером и кривой вёрсткой в первую очередь. Там до скролла нужно чинить примерно всё, начиная от мозга верстальщика, который, например, в пьяном бреду решил что всё можно верстать div'ами, вплоть до ссылок, как итог - на странице не подсвечивается ни одна ссылка (а это обязательно для accessibility и софта типа vimium), но зато если кликнуть случайно на вон тот какой-то кривоватый div... Который тем кривее, что на тех же мобильных устройствах браузер в душе не чает, что это должно было быть удобной кнопкой или ссылкой, а не просто закрашенный div... можно узнать очень много нового про вэб-макак и таких же мобильных макак - ничего не знающих про нормальные мониторы, клавиатуру и Desktop UX в принципе... Поверьте, узкий невзрачный скролл (который, конечно, должен быть всё равно) - это вот одна из самых малозначительных проблем в современных "дезигнах"


      1. Maccimo
        16.10.2023 11:05
        +5

        У тебя сенсорный планшет с виндовс или ноут с тачпадом, а скроллбар млипиздрический и требует пиксельхантинга.

        Давным-давно, когда Sony ещё делала ноутбуки, тачпады их Sony Vaio поддерживали жесты, в том числе и прокрутку. Горизонтальной я не пользовался, а вот вертикальной (вверх/вниз) -- очень даже.

        Проводишь пальцем вдоль правой кромки тачпада сверху вниз и, не отрывая, переводишь его в любое удобное место. После чего накручиваешь спираль по часовой или против часовой стрелки. Адски удобно!


      1. domix32
        16.10.2023 11:05
        +1

        Кстати в тему скроллбаров - прогресс видео, который произвольным образом меняет активную зону тоже ведёт себя похожим мразотным образом - ты тычешь поменят ьскорость видео или субтитры включить, а вместо этого он тебе тычет в 80% прогресса видео.


    1. vlivyur
      16.10.2023 11:05

      А ещё есть горизонтальная прокрутка и тут уже кто во что горазд. И если вертикальный скролбар узкий, то и горизонтальный такой же. А ещё в web'е некоторые разработчики могут перекрывать его другими элементами и он становится ещё уже (такое впечатление что скролбар рисуется серединой прям по границе и высота вверх идёт внутри контейнера, а внизу уже выходит за границы и скрывается).

      Это даже если не касаться ограниченных возможностей скролбара в windows, где даже нельзя сразу переместиться в произвольное место документа.


      1. johnfound
        16.10.2023 11:05

        Это даже если не касаться ограниченных возможностей скролбара в windows, где даже нельзя сразу переместиться в произвольное место документа.

        Это не от Windows зависит, а от конкретной программы. Некоторые просто так не умеют.


    1. kotlomoy
      16.10.2023 11:05

      На документе в сотни страниц клавиатура бесполезна. Спасают либо мелкий бесячий скроллбар, либо аддоны к браузеру для имитации прокрутки тачпадом


      1. johnfound
        16.10.2023 11:05
        +2

        На документе в сотни страниц клавиатура бесполезна.

        Почему бесполезна? Я настраиваю автоповторение на 50 символов в секунду и замедление на 250мс. Потом прекрасно скролю огромные документы через стрелки и PgUp/PgDn. И даже успеваю прослеживать смысл текста, чтобы остановится вовремя. Скролбар в этом случае играет роль индикации, чтобы смотреть где находишься в рамках документа.


    1. tenzink
      16.10.2023 11:05
      +12

      Для простых же смертных есть PageUp, PageDown

      Как же я ненавижу дизайнеров клавиатур ноутбуков, которые издеваются и прячут их непонятно куда. На моей клавиатуре сейчас PageUp = Fn + стрелка наверх, Ноme = Fn + F11 :(


      1. ritorichesky_echpochmak
        16.10.2023 11:05

        Поддерживаю. Вот бы в ноутах можно было ставить любую понравившуюся клавиатуру так же просто, как собрать кастом на свичах к десктопу. HP в новых линейках вообще упоролась и кнопку питания в клавиатуру перенесло. Некоторые производители ещё хотя бы пытаются то же Menu забиндить на Fn+правый контрол, но HP его выкосило вообще, а Shift+F10 работает сильно не везде.


        1. morijndael
          16.10.2023 11:05

          16-дюймовая версия Framework имеет клавиатуру отдельным модулем :p


          1. Maccimo
            16.10.2023 11:05

            Толку-то?
            Их миллион лет назад просили сделать раскладку с полноразмерными курсорными клавишами и столбцом функциональных (Home/End/PgUp/PgDn) справа.

            А-ля такую

            Сделали? Хрена с два!
            Стрелки всё так же кастрированые, функциональные клавиши -- через Fn.


      1. DistortNeo
        16.10.2023 11:05

        Я поэтому голосую деньгами и выбираю ноутбук, в первую очередь, по клавиатуре первым приоритетом.


      1. MaFrance351
        16.10.2023 11:05
        +1

        Как же я в принципе ненавижу все эти дизайнерские клавиатурные игры. То Insert и Break выкинут, то F1...F12 на FN завяжут, то ещё пару ненужных клавиш добавят в ущерб нормальным...

        Тот же Huawei MateBook вполне хороший агрегат, но отсутствие на нём клавиш контекстного меню и навигации (их нет в принципе, ни в явном виде, ни через Fn) и то, что Insert только через Fn, удручает...


  1. Zara6502
    16.10.2023 11:05
    +11

    мне "нравятся белые страницы на мобилках, когда ждешь что загрузится что-то для управления, а ничего не происходит, уже наученный опытом начинаешь тыкать в белое - и, о чудо! на белом начинает мигать курсор, от меня требуется ввод.

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

    надеюсь у всех кто такое проектирует будет 10 лет поноса.


    1. QDeathNick
      16.10.2023 11:05
      -1

      Жалко разрабов dnevnik.mos.ru и всего что туда засунуто. 10 лет всё же много.


  1. NeoCode
    16.10.2023 11:05
    +17

    Ладно меньше, но они становятся НЕЗАМЕТНЕЕ! На скриншоте из OS X полоса просто отличная - яркая, заметная, объемная. А сейчас в винде, да и во многих линуксах делают их какими-то бледными, едва различимыми на фоне окон. Или еще так: есть сама полоса прокрутки, есть фоновая область по которой полоса двигается - и зачастую фиг различишь, где полоса а где область. Чуть отличающиеся оттенки серого - и всё. Т.е. нужно задумываться, а куда собственно тыкать мышкой, чтобы попасть именно в полосу - потому что попадание в пустую область тоже приводит к прокрутке, но другого типа - листанию страниц, что не всегда нужно.


    1. MonkAlex
      16.10.2023 11:05
      +1

      На винде эта штука настраивается. Где то в настройках винды сказал "показывать полосу прокрутки всегда" и у меня теперь всегда довольно широкая серая полоса прокрутки.


      1. Retifff
        16.10.2023 11:05
        +1

        Хм, что-то не найду такой, не вспомните, где это?


        1. MonkAlex
          16.10.2023 11:05
          +2

          Спец возможности - Визуальные эффекты

          Всегда показывать полосы прокрутки


      1. d_ilyich
        16.10.2023 11:05

        На Win 10 относительно широкая, на Win 11 - более узкая. GUI-настройки ширины вроде бы нет, только через реестр.


    1. kotlomoy
      16.10.2023 11:05
      +6

      А еще полоса исчезает, если много страниц) Хочешь понять, в какой части документа ты находишься, в начале, в середине, в конце, но нет, это ненужная информация, считают разработчики. Хорошо если полоса появится, если навести мышь на область прокрутки, но и это не всегда бывает


      1. Mike-M
        16.10.2023 11:05
        +1

        Терпеть ненавижу, когда разработчики решают за пользователя. Задача разработчика в данном случае – создать настройку, которая определяет, будет ли полоса прокрутки показываться при большом количестве страниц, или нет. А уж включать либо не включать эту настройку каждый пользователь должен решить для себя сам.


  1. swordgna
    16.10.2023 11:05
    +1

    В современной IDE Intelligy Idea используйте для мини-карты плагин CodeGlance Pro.


  1. Writer
    16.10.2023 11:05
    +13

    Автор вскрыл большую тему, выходящую далеко за рамки полос прокрутки. Да, в середине 2000-х было стремление к аккуратному, унифицированному интерфейсу независимо от тулкита. Все хотели в cohesive desktop. У Эппла это получилось тогда почти идеально, Red Hat Bluecurve тоже стирал видимую разницу между Qt3 и GTK2 в линуксе, остальные тоже держали курс на унификацию (например Sun и его Nimbus).

    Что мы имеем в 2023? Все пошло наперекосяк. Теперь считается, что за внешний вид приложений отвечают исключительно авторы приложений, а ОС не смеет этому мешать. В итоге, победила мешанина: в мире GTK есть лишь расово верная libadwaita (и никаких тем), стили в Qt наполовину заброшены и не развиваются. Версий тулкитов больше, вариантов внешнего вида стало ещё больше.

    Сделать в линуксе единый внешний вид программ сейчас невозможно, т.к. концепция GTK4/libadwaita разительно отличается от классических интерфейсов. В Plasma теперь тоже мешанина из нормального Qt и QtQuick. В Windows как обычно куча легаси и полная палитра интерфейсов от Win 3.1 до современного.

    В какой момент мы свернули не туда? Есть ли надежда на спасение?

    P.S. Кстати, упомянутый в статье стиль Skulpture живет нынче здесь. Contributions are welcome!


    1. AnimeSlave
      16.10.2023 11:05
      +1

      Сделать в линуксе единый внешний вид программ сейчас невозможно, т.к. концепция GTK4/libadwaita разительно отличается от классических интерфейсов. В Plasma теперь тоже мешанина из нормального Qt и QtQuick. В Windows как обычно куча легаси и полная палитра интерфейсов от Win 3.1 до современного.

      Тут стоит сделать ремарку. То куда движется GTK на самом деле довольно занятный концепт, который имеет право на жизнь. Его проблема в том, что этот концепт живёт только в мире GTK, и мало кто видит в нём "правильность". Суть в том, что в GTK пытаются объединить мир ПК и мобильных устройств. И для этого необходимо резкое изменение (не эволюционный подход, а революционный), так как поддержка обратной совместимости практически не возможна и старый код только мешает. Поэтому и UI/UX сильно отличается. У многих сгорело из-за libadwaita, и у меня в том числе. Но по идее libadwaita переход из ПК в мобильную среду не должно ломать UX. И это я принимаю. Надеюсь, что эту идею они доведут до конца. Qt в этом плане смотрит в другую сторону, они как раз всячески за обратную совместимость по UI/UX, чтобы пользователю было проще ориентироваться, но если будет переход в межплатформерное взаимодействие может случиться так, что переход только усложнится. Так как для GTK4 с их libadwaita не нужно делать изменений в интерфейсах, лишь правильно обработать отображения контента на малых размерах окна и на больших, как на сайтах, который появились в эру WEB2.0. А в Qt нужно уже идти другими путями, тот же QtQuick. Что как бы немножко костыль, и изначально разрабатывался для другого


      1. Kristaller486
        16.10.2023 11:05

        Беда только в том, что на GTK не делают программ для мобильных устройств, да и вроде никаких подвижек в эту сторону не видно, если я правильно понял, что под этими словами имелось ввиду. Основная аудитория Desktop Linux это PC.


        1. AnimeSlave
          16.10.2023 11:05

          Делают. Точнее вся идея в том, что им это уже не нужно делать. Программа написанная на GTK4 с libadwaita (и на GTK3 тоже, но там есть нюансы) c правильно подогнанным визуалом контента будет правильно отображатся как на стационарном компьютере на больших экранах, так и на мобильном девайсе с маленьким экраном. И при этом ничего не нужно будет переписывать, а значит не нужно будет держать несколько отдельных веток исходного кода под разные типы устройств.

          Вот лишь часть примеров операционок для мобильных устройств:
          https://pureos.net/
          https://postmarketos.org/
          https://mobian-project.org/

          На некоторых устройствах есть вывод через USB на внешний экран, что даёт возможность через переходники подключаться к большому экрану. И там все приложения GTK4 с libadwaita будут отображаться как будто на стационарном компьютере.

          Посмотрите видосик на сайте PureOS и вы сразу поймёте о чём речь (здесь должен быть встроенный видосик с сайта, но почему-то он не отображается, хотя в тексте тэг на него есть):

          И это не фишка PureOs, а как раз GTK


          1. Kristaller486
            16.10.2023 11:05
            +1

            В чем мой тейк то был, не в том, что приложений нет или операционных систем. Но кстати, PureOS вообще не поддерживает настоящие мобильные устройства, а pmOS и Mobian на пару имеют всего 26 полностью поддерживаемых девайсов, половина из которых безбожно устарели и людьми в здравом уме не употребляются.

            Тейк в том, что mobile linux это даже не тысячная процента от всех пользователей linux desktop. И ради, ну, скажем, тысячи человек (очень оптимистичная оценка), которые используют GTK на мобильных устройствах полностью менять вектор развития системы - очень сомнительное занятие. Понятно, почему это практически никому не нравится.


            1. AnimeSlave
              16.10.2023 11:05

              Если следовать вашей логике, то когда Microsoft доминировали с Windows на домашних компьютерах, то развитие linux энтузиастами в этом же направлении тогда было тоже очень сомнительным занятием. Но ведь эта мысль чушь полнейшая. Мобильные устройства (это не только смартфоны, но и планшеты и всякие стационарные экраны умных домов и даже компьютеры в авто) уже который год становятся более привлекательными, и движение в сторону адаптации имеющихся технологий под эти устройства не выглядят сомнительным занятием. А раз этим занимаются, значит кому-то это нужно.

              По поводу поддерживаемых устройств всё прозаично. Какие из устройств имеют открытые (утёкшие в сеть) исходники драйверов их компонентов, на те и были портированы дистрибутивы


              1. Kristaller486
                16.10.2023 11:05

                Развитие desktop linux в контексте доминирования Microsoft это, как говорится, другое. Там никто концепции ради трех с половиной человек не менял, все строилось с нуля, такое я только одобряю. Взять Plasma Mobile тот же, он существует, кое-как разрабатывается, но не диктует вектор развития для основной Plasma.


                1. AnimeSlave
                  16.10.2023 11:05

                  Значит вы не понимаете проблему, которую команда GTK пытается решить своим подходом. Это нормально. Я её объяснил выше. Лично я считаю, что подход GTK имеет место.

                  Другой момент, что мне лично не нравится Gnome после перехода, но это решается другим окружением рабочего стола. И не мешает при этом мне пользоваться GTK приложениями


      1. Writer
        16.10.2023 11:05
        +1

        Да, планы сделать один UI для тач и для десктопа до сих пор в силе, хотя GNOME на мобилках всё ещё редкий зверь.

        Но дело же не только в этом: сколько бы они ни развивали свою концепцию, по-настоящему крупные программы не получится сделать по их HIG. Libreoffice, Gimp, Krita, Audacity и другие по-прежнему будут иметь классический интерфейс. Тупо, потому что не выйдет запихать все их функции в меню-гамбургеры и модные вкладки.


        1. AnimeSlave
          16.10.2023 11:05

          по-настоящему крупные программы не получится сделать по их HIG

          Это в какой-то мере заблуждение. Тут нужно понимать, что некоторые вещи в привычном GUI для операционных систем для обычных ПК находятся там чисто исторически. А не потому, что так и должно быть. Пользователь привык к тому, что оно так. И я сам в какой-то момент времени в прошлом отмечал, что удобно когда интерфейс интуитивно понятный. Но как показала практика многий функционал, который обычно отображён в обычном (привычном) меню не нужен в каждый момент времени. Примером динамического главного меню можно обозначить EMACS. Как бы это странно не выглядело, но даже в таком «супер не дизайнерском» приложении подумали о том, что весь функционал меню не нужен. И в зависимости от EMACS-режима меню меняется. То есть какой-то функционал можно убрать из главного меню, пока он там не нужен. Какой-то функционал можно убрать в контекстное меню. Решения проблемы захламлённого главного меню есть. Нужно лишь продумывать UX и ломать старые привычки использования приложения. При этом я хорошо понимаю, что не все приложения нормально лягут на маленькие экраны. И не потому что «меню мешает», а потому, что там им просто не место


  1. simenoff
    16.10.2023 11:05
    +8

    Это не только к полосам прокрутки относится, делать элементы управления как можно меньше и незаметнее - всеобщая тенденция. А лучше чтоб они вообще скрытые были и появлялись только тогда, когда ты на них случайно мышкой наведёшь


    1. Armitage1986
      16.10.2023 11:05
      +5

      Забавно, но я наоборот регулярно вижу стенания о том, что все вокруг делают контролы огромными с расчётом под нажатие пальцами, нарушая хрупкий фен-шуй десктопа.

      Окна только ленивый не пинал за плитки, хотя как по мне, так это лучшее, что было сделано майками с ярлыками программ (а теперь, похоже, безвозвратно утрачено).


      1. simenoff
        16.10.2023 11:05
        +5

        Это другая крайность - делать диз для десктопа такой же как и для сенсорных экранов


  1. vitiok78
    16.10.2023 11:05
    +8

    Проблема в том, что люди перестали понимать термин "дизайн" как совокупность художественно-эстетического и практического компонентов. Люди напирают на эстетику, полностью забывая о UX. К сожалению, это тренд, и без волевых решений платформо-держателей с бепрекословным исполнением design language платформы, все станет только хуже


    1. simenoff
      16.10.2023 11:05

      Даже в советские времена была специальная профессия - эргономист, сейчас его функции выполняет кто угодно, но не эргономист - дизайнер, программист, первый, кого в офисе поймали


  1. vk6677
    16.10.2023 11:05
    +8

    Полоса прокрутки это не только удобная навигация, но и возможность быстро оценить объем содержимого. Сейчас в некоторых дизайнах графического интерфейса скрытая полоса, пока не сдвинешь текст не понятен приблизительно его размер.


  1. p0isk
    16.10.2023 11:05
    +3

    Некоторые ещё пытаются сделать адаптивный дизайн как под широкоформатные экраны, так и под сматрфоны. Результат получается не очень

    Hidden text


  1. martin_wanderer
    16.10.2023 11:05

    В браузере эту проблему обошел расширениями типа grab'n'drag или scrollbaranywhere


  1. JordanCpp
    16.10.2023 11:05
    +1

    Меня в ide MSVC 2022 с тёмной темой, напрягает не ширина прокрутки, а сам маленький и плохо выделяемый ползунок. Однажды сломалось колёсика у мыши и понял всю боль. Просто тыкал в полосу, что бы при перемещении увидеть, где находится ползунок, что бы за него потянуть.

    Спасибо за статью.


  1. SergeiMinaev
    16.10.2023 11:05
    +3

    С помощью полосы прокрутки гораздо удобнее перескакивать к нужной части большой страницы, чем через pgup/pgdown и уж тем более через колесо скролла. К тому же, положение и размер полосы прокрутки дают представление о том, в какой части документа ты находишься и каков его размер.


  1. delphinpro
    16.10.2023 11:05

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


  1. Windsor
    16.10.2023 11:05

    Уже более 15 лет пользуюсь MouseImp -- зажимаешь правую кнопу и тащишь в любом месте окна, происходит имитация перетаскивания слайдера на скроллбаре. Куда удобнее всех этих убогих полос.


  1. Mike-M
    16.10.2023 11:05

    «Для этого ведь колесо прокрутки и существует». Друг мой, не у каждого есть колесо прокрутки и не каждый может свайпать по сенсорному экрану.

    Если бы дело ограничивалось только полосой прокрутки...

    Попробуйте зайти на Мегамаркет и написать две строчки отзыва о товаре. А потом поставьте курсор в начало второй строки и нажмите Enter. Думаете, вторая строчка съедет на третью? Нет! Вместо неё на третью строчку съедет курсор!!

    И таких примеров в нынешнем ПО — не сосчитать. И это несмотря на массу толковых статей на Хабре. Я вообще не понимаю, куда подевались элементарные, базовые знания UX. Неужто во всём виноват ЕГЭ?

    У людей, испытывающих сложности с координацией и ручным управлением, возникают трудности с этими тощими полосами прокрутки.

    Да даже для людей с нормальной координацией, понятно же, что чем тоньше полоса прокрутки, тем сложнее в нее попасть мышью. "Целится" в бегунок – значит терять время, т. е. нарушать те самые базовые законы UX, призванные облегчать работу пользователя, а не усложнять её.

    Во многих программах с грамотной реализацией полосы прокрутки реализована очень удобная фича: быстрый возврат к предыдущей точке просмотра. Поясню на примере.

    Предположим, вы открыли длинное описание товара в Firefox. Читая, опустились далеко вниз. Товар вас заинтересовал, и вы решили посмотреть, сколько он стоит. Эта информация указана в самом начале страницы. В этом случае:

    1. Зажимаете левой кнопкой мыши ползунок на полосе прокрутки.

    2. Не отпуская кнопку, тянете ползунок в начало страницы.

    3. Не отпуская кнопку, считываете стоимость товара.

    4. Смещаете курсор мыши влево, чтобы он сошел с полосы прокрутки, и отпускаете кнопку мыши.

    РЕЗУЛЬТАТ: вы автоматически вернулись в то место описания товара, с которого ушли.

    Невероятно удобно! Пользуюсь чуть ли не ежедневно ежечасно.