Пользовательское меню по горячей клавише
Select messages from
# through # FAQ
[/[Print]\]

Total Commander -> Автоматизация Total Commander
Пользовательское меню нужно/ненужно?
Да, требуется очень часто
100%
 100%  [ 3 ]
Да, но необходимость возникает редко
0%
 0%  [ 0 ]
Да, но мне хватает панели инструментов
0%
 0%  [ 0 ]
Total Votes : 3


#1: Пользовательское меню по горячей клавише Author: slideray PostPosted: Sat Oct 29, 2022 07:34
    —
Быть может я оказался недостаточно талантлив в формулировании поисковых запросов, но на форуме мне не удалось найти ничего подобного, хотя, вроде бы, очевидно необходимый функционал.

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

Меня бы полностью устроил функционал Панели инструментов или Главного меню, если бы там была заложена возможность назначать её элементам хоткеи.

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

Быть может, упускаю какие-то очевидные решения или у кого-нибудь имеются свои наработки для подобных задач? Да, есть решения вроде ChooseEditor\F4Menu etc., которые можно приспособить под оные задачи, но работают они все криво, не имеют достаточной гибкости и не могут биндить вызовы для команд.

Требования:

1. Вызов меню или интерактивного списка посредством горячей клавиши;
2. Элементы списка/меню так же должны вызываться с помощью горячих клавиш;
3. Иерархическая структура (вложенные меню);
4. Возможность вызова внутренних команд и взаимодействие с аргументами Total Commander.

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

#2:  Author: imig73Location: г. Иркутск PostPosted: Sat Oct 29, 2022 10:12
    —
slideray
1. F9 - активировать главное меню. Alt+горячая буква - вызвать конкретный пункт + буква для дальнейшего вызова (например Alt+к, м переключит оформление Тёмный<-->Обычный и так далее). Там где нет горячей буквы, есть документированная комбинация для конкретного действия, например Ctrl+F10 покажет все файлы без фильтра и т.д.
2. Достаточно того что есть для того, чтобы не использовать мышь совсем.
3. Какая-то иерархия это фича DC и ТС не обязан её использовать, у него свои фичи есть.
4. Тут вообще вас не понял. Всё есть что надо, просто надо уметь назначать свою комбинацию созданной пользовательской команде на основе встроенной. Пример:
Code:
[em_RestartTC]
button=%COMMANDER_PATH%\Utility\TCPlugman\Plugman.exe,6
cmd=cm_Exit 9
menu=Перезапустить TC (Ctrl+Alt+R)

В общих чертах учитесь пользовать ТС на всю катушку + доп. плагины и он не обязан равняться на DC и придумывать иерархию.

#3:  Author: slideray PostPosted: Sat Oct 29, 2022 22:53
    —
Вы тут немного недоговариваете. Во-первых, Альт+клавиша - это означает, что сначала вы переключаетесь на нужную раскладку, поскольку привязки эти работают либо в латинской, либо в кириллической. Это дезориентирует всегда, потому как приходится лишний раз задумываться и отвлекаться на выяснение активной раскладки. Это нивелирует преимущества использования горячих клавиш, которые позволяют работать на уровне рефлексов и мышечной памяти.

Во-вторых, примеры вызова команд, которые вы привели в пример вовсе не нуждаются в вызове меню, их можно вызывать напрямую. Тут я и сам думал, что по крайней мере меню "Запуск" позволяет вызывать команды только в случае обращения к меню, пусть и используя ужасающие биндинги, вроде Ctrl+Alt+Shift+F1-F10

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

Я же имею в виду (в идеале), о возможности нажать хоткей, например, Альт+Х после чего появляется меню, в котором достаточно нажать одну (!) клавишу A, B, или C для вызова назначенной команды. Таким образом у нас становится доступен целый уровень горячих клавиш, который может быть уже задействован. Например, одиночные клавиши ты не сможешь задействовать, если у тебя включен быстрый поиск (только буква).

Вы пытаетесь говорить о возможности, но это не достаточность. Сидели бы тогда в командной строке и говорили, что этого достаточно - там действительно есть всё, что может потребоваться. Есть таких немало, кстати.

По четвёртому пункту уточню. Если использовать какую бы то ни было стороннюю утилиту-лаунчер, то она сможет выполнять прописанные системные команды, но она не будет знать о внутренних командах TC и с его параметрами запуска тоже работать не сможет.

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

#4:  Author: imig73Location: г. Иркутск PostPosted: Sun Oct 30, 2022 02:14
    —
slideray
По поводу предварительного переключения раскладки согласен полностью, меня это тоже здорово сбивает особенно в спешке. Касаемо остальных вопросов меня текущая реализация устраивает, а может это просто привычка. Кроме прочего, мышка в ОС Windows всё ж таки играет первую скрипку, как это и было задумано изначально. Совсем обходиться без неё конечно можно, но такой вариант даром большинству не нужен.

#5:  Author: sa PostPosted: Sun Oct 30, 2022 03:23
    —
slideray wrote:
сначала вы переключаетесь на нужную раскладку, поскольку привязки эти работают либо в латинской, либо в кириллической.

В Autorun автор недавно добавил вспомогательный скрипт для переключения раскладки на нужную при назначении клавиш.
Кстати, у меня в меню/подменю избранных каталогов много чего есть, кроме навигации. И там как раз можно "нажать одну (!) клавишу A, B, или C для вызова назначенной команды" или подменю.

#6:  Author: Skif_off PostPosted: Sun Oct 30, 2022 13:49
    —
slideray wrote:
4. Возможность вызова внутренних команд и взаимодействие с аргументами Total Commander.

Есть небольшая утилита tcinc (ссылка в первом сообщении загнулась, см. ниже).

#7:  Author: CaptainFlintLocation: Москва PostPosted: Tue Nov 01, 2022 18:02
    —
slideray
По поводу раскладок клавиатуры можно воспользоваться таким трюком: использовать меню только на английском (или с добавленными английскими буквами для быстрого вызова), а в самом Тотале прописать KeyboardID=$0409. Ну или наоборот, русское меню и $0419. Тогда Тотал будет автоматически возвращаться к этой раскладке после большинства действий, и не надо будет вспоминать, чего там включено. Конечно, если часто и помногу требуется в нём вбивать текст и в той, и в другой раскладке, такое автопереключение может быть неудобным, но, мне кажется, это не слишком частый сценарий для файл-менеджера.

Что касается исходного запроса, могу ещё порекомендовать меню избранного, которое вызывается по Ctrl+D или любым другим сочетанием, которое назначишь. Хоть формально оно называется списком каталогов, туда можно прописывать произвольные внутренние команды Тотала, в том числе параметризованные. Иерархию тоже можно организовывать, создавая вложенные подменю. Вызов пунктов горячими клавишами поддерживается через механизм амперсандов, как в главном меню. Мне кажется, это закрывает поставленную задачу если не полностью, то в значительной степени.

P. S. Дубликат темы я удалил.

#8:  Author: ВахмуркаLocation: Большая деревня Москва PostPosted: Thu Nov 03, 2022 17:16
    —
Первый скрипт, который я написал на PowerPro аж 13 лет назад, как раз реализовывал локальное меню. В Нортон Коммандере для вызова локального меню была предназначена клавиша F2, каковую я и переназначил на выполнение скрипта. Сейчас у меня 10 локальных меню с 86 командами на всех. Вызов внутренних команд любезно обеспечил VadiMGP с помощью своей утилиты TCmenu. Я привык к локальным меню и не собираюсь от них отказываться. Это дьявольски удобно. И странно, что Гислер не добавляет такой очевидный (и, насколько я понимаю, несложный в реализации) функционал. Здесь я с slideray согласен всецело.

Что касается горячих клавиш, да еще независимо от раскладки, то на клавиатуре есть... цифры! TCmenu поддерживает вызов команды клавишей, имя которой выделено символом &. Да, костыль, но ведь работает же!



Total Commander -> Автоматизация Total Commander


output generated using printer-friendly topic mod. All times are GMT + 4 Hours

Page 1 of 1

Powered by phpBB © 2001, 2005 phpBB Group