-
Notifications
You must be signed in to change notification settings - Fork 173
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Some cosmetic improvements #1110
Comments
|
|
|
|
Дополнение к 1. Я безусловно в курсе про возможность удалённого исполнения команд в Far2 через NetRocks. Но, эмулятор терминала в Far2 в текущей версии неполный. Например, редактировать файл в Vim скорее всего толком не получится. В общем этого и не требуется, поэтому и нет смысла тратить время на доведение его до уровня xterm или st. |
1
|
|
1 2 А можете проверить - сделайте export HISTCONTROL=ignorespace или ignoreboth (в моей убунте 18.04 именно ignoreboth), потом запустите far2l с такой переменной установленной, и проверьте что он не будет гадить в хистори? Если поможет - то я просто добавлю приведение HISTCONTROL к адекватному состоянию при запуске far2l. |
|
Alternate реализован, а вот до мышки руки все еще не дошли :) Мышка в терминале работает только на adhoc-copy, событий приложениям при этом никаких не посылается - все обрабатывается на уровне терминала. В принципе надо бы сделать. |
Дополнение. Для проверки подключился к Ubuntu Desktop через ssh и в нем ещё один ssh на Ubuntu Server console only, На серверной Ubuntu DM не установлен. В Far2l с вызовом XQueryPointer() <Control-Enter> работает и в такой конфигурации. |
Магия. Ну я попробую, попозже. Может там есть какието ESC последовательности, и XQueryPointer их шлет, видя что работает без иксов. |
Установленного Gnome нет под рукой, пробовал xterm, mate-terminal и st. |
АААА, то есть запускаете с X11 форвардингом и XQueryPointer юзает его. Хмм, может в этом и есть чтото.. |
Насчет putty - есть твикнутая версия, которая умеет в far2l extensions про которые я в самом начале писал - https://github.com/unxed/putty4far2l |
с #641 есть проблемка: ни гном, ни кде не хотят его целиком поддерживать из соображений безопасности (как они её понимают). типа записать в клипборд — пожалуйста, а вот читать оттуда — ни-ни |
аргумент про фрагментацию user expirience мне кажется вполне легитимным. к примеру, если к существующим средствам работы с clipboard добавить ещё и xclip и osc 52, на вопрос "почему не работает буфер обмена" пользователь получает миллион вариантов ответа:
такое положение вещей, конечно, дичь) при этом на все вопросы можно отвечать "юзайте wxовый, в нём всё просто работает из коробки". ну типа как firefox и всякие там palemoon: каждый может форкнуть, но торговая марка за mozilla foundation, и все знают, куда ходить за идеальным user expirience'ом а кому нужны специфические конфигурации или кто фанат конкретной терминалки, те уж разберутся. то есть всякими такими твиками типа поддержки xclip или XQueryPointer мы собираем "длинный хвост" "не мейнстримных" пользователей, которых в мире линукса, надо полагать, полно |
То есть, wx'овая версия — это basic, default, и она «на гарантии». Хотите гонять в терминале без экстеншнов — на здоровье, такая возможность есть, но никакие претензии не принимаются, саппорт не предоставляется: чудо что там вообще что-то работает, и мы вас предупреждали! Можно хотя бы даже плашку такую показывать при запуске в терминале без экстеншнов: мол, тут работает не всё, рекомендованный способ запуска — через wx, делается это так-то. Совсем идеальный вариант: стать настолько популярными, чтоб ВСЕ терминалы добавили поддержку экстеншнов :) |
Так много кто делает, к слову. Скажем, hashcat рассчитан на проприетарные OpenCL драйвера. Он работает и на Mesa, но поддержка не предоставляется. |
Соображения валидные, far2l из таких же соображений позволяет читать клипборд только если в течении ближайших 5 сек юзер нажимал Ctrl+C или щелкал правой кнопкой мышки. То есть если клипборд будет пытаться прочитать какой нить скрипт по своей инициативе - получит шиш. |
X11 форвардинг кстати может быть неплохой альтернативой этим сторонним расширениям. Есть подозрение, что помимо опроса состояния модификаторов - еще и клипборд можно пробрасывать таким способом. Вот только keyup/keydown в реальном времени получать не получится. |
Чтобы получать нажатия в реальном времени нужно запускать обработчик events
и обрабатывать нажатия и отпускания
|
По поводу установки цветов в режиме терминала. Чтобы не заморачиваться с RGB, можно просто менять цвета в палитре. Например. В этом примере цвета меняются для всех запущенных терминалов. Для Far2l достаточно будет сгенерированные OSC записать в stdout. Цвета в терминале по умолчанию Цвета помягче с изменённой палитрой по образцу палитры WX Простенький скрипт вывода цветов палитры терминала (в Far2l не работает)
и результат |
Но ведь нажатия будут приходить в терминальное окошко, не получится их перехватывать не перехватывая фокус ввода, а это чревато новыми забавными спецэффектами и костылями |
Как я понимаю, если окно не активно (no Focus), то события клавиш ему не присылаются |
Ну расширения только не надо выпиливать, пожалуйста :) Расширения очень даже ок! :) На винде вот нет никаких иксов, которые можно было бы форвардить, а патченная путти чудесным образом работает через расширения. |
Написал об этом в тикетах гнома и кде по OSC 52, может, так же сделают |
А вот это готово у нас же, да? И, кстати, про это же у нас #1126 есть. |
Готово да. От оригинального бага осталось только GUI диалоги пароля, но чета я в раздумьях и реальной пользы такой фичи и если ее таки делать - как ее включать? Не хочется замусоривать настройки, оставить как опцию конфигура сборки? |
Кстати, у меня на десктопе по Alt таки не появляются подсказки в tty версии. |
И не должны, так как это просто опрос модификаторов по нажатию кнопки, сами события нажатия модификаторов не приходят |
а как бы тогда проверить, что оно вообще работает? все сочетания клавиш, кроме контрол цифр, работали, вроде бы, и до. а контрол цифры не работают и сейчас UPD: а, |
Придумали же, как :) #1126 |
боюсь много проблем будет в связи с нечетким отслеживанием фокуса - когда реагировать на нажатия, а когда нет, но пока не попробуешь точно не узнаешь |
Добавляем в заголовок окна некий случайный токен. При получении события клавиатуры спрашиваем у иксов название заголовка активного окна. Ищем там строки «Far» и этот токен. Если находим — событие «наше».
|
Тут в соседних темах писали про запуск в терминалках а-ля quake console, я сомневаюсь что там с окнами все будет так однозначно. |
В В Я прям вот только что проверил. Если есть какие-то другие — можно попросить их авторов сделать как в этих двух. |
Придётся, конечно, написать FAQ, и туда прописать чеклисты для типичных кейсов: не работает буфер обмена, не подхватывается полностью клавиатура, не работают перехваченные DE или терминалкой хоткеи, что делать? И в хелп этот FAQ запихнуть. |
И если даже терминалка не хочет устанавливать заголовок окна правильно, мы же можем делать это и сами: |
Вот это вот момент - это отдельный пункт для беспокойства, сетевая задержка может быть сотни мсек, round-trip ее удваивает. В результате будут неприятные баги типа альтабнулся и сразу начал печатать - а оно печатает куда не надо или не печатает куда надо. По факту надо делать привязку к классическим сообщениям терминала, а с помощью клавиатурного хука лишь их корректировать, это избавит от таких косяков, но реализация такого двухканального ввода мягко говоря обещает быть нетривиальной. |
О, оказывается, можно просто попросить терминалку сообщать о получении/потере фокуса escape последовательностями: https://unix.stackexchange.com/a/480138/422943 Работает в GNOME Terminal, Konsole, Guake, Yauake — короче, во всём, в чём пробовал. В tmux, возможно, с ними сложно, но это не точно, да и Far в tmux это уж совсем экзотика. И, в любом случае, «режим хука» можно же включать только при получении первого события получения фокуса, а по умолчанию работать как сейчас. В терминалке GNOME и всём на его основе, кстати, текущий статус приходит сразу при включении (попросил впилить в Konsole такое тоже).
и альт-табнуться несколько раз |
Вот демка xchecktermfocus.sh.tar.gz, можно погонять её в разных терминалах с фокусом и без. У меня везде корректно определяет :) Этот приём, правда, не позволяет различать ситуации «мы не в фокусе» и «события фокуса не поддерживаются». Поэтому нужна чуть более хитрая эвристика:
|
Придумал таки относительно надёжный способ определения фокуса на окне терминала:
|
Заморочились в итоге, RGB цвета есть.
Отслеживание фокуса теперь есть, и, вроде бы, вполне чёткое :) Другое дело что допиливать ttyxi, когда все понемногу переходят на Wayland, где он всё равно не взлетит, не факт что смысл есть. Здесь что-нибудь нужно ещё делать, или закрыть можно? |
С другой стороны, X11 всё ещё по умолчанию в куче популярных дистрибутивов, таких как Mint. А к тому времени, когда там будет Wayland, может, протокол ввода kitty популярней будет уже. |
Предложения:
Возможные реализации этих предложении в приложенных файлах в архиве.
usefull.tar.gz
The text was updated successfully, but these errors were encountered: