Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Пользовательское меню по горячей клавише

 
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander printer-friendly view
View previous topic :: View next topic  

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

Author Message
slideray



Joined: 28 Jun 2010
Posts: 115

Post (Separately) Posted: Sat Oct 29, 2022 07:34    Post subject: Пользовательское меню по горячей клавише Reply with quote

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

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

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

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

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

Требования:

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

Возможно, я хочу слишком многого, но пятнадцать лет назад я думал, что к 2К22-то году, такие вещи будут уже иметь нативную поддержку в программе, претендующей на звание главного двухпанельника планеты.
Back to top
View user's profile Send private message
imig73



Joined: 18 Jun 2013
Posts: 249
Location: г. Иркутск

Post (Separately) Posted: Sat Oct 29, 2022 10:12    Post subject: Reply with quote

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 и придумывать иерархию.
Back to top
View user's profile Send private message
slideray



Joined: 28 Jun 2010
Posts: 115

Post (Separately) Posted: Sat Oct 29, 2022 22:53    Post subject: Reply with quote

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

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

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

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

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

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

И да, Гислер никому ничего не обязан, но это не означает, что его решения самые удачные и бесспорные по определению. Просто следует признать, что есть реализации более удачные, логичные, удобные. И, возможно, попытаться добавить функционал, которого нехватает.
Back to top
View user's profile Send private message
imig73



Joined: 18 Jun 2013
Posts: 249
Location: г. Иркутск

Post (Separately) Posted: Sun Oct 30, 2022 02:14    Post subject: Reply with quote

slideray
По поводу предварительного переключения раскладки согласен полностью, меня это тоже здорово сбивает особенно в спешке. Касаемо остальных вопросов меня текущая реализация устраивает, а может это просто привычка. Кроме прочего, мышка в ОС Windows всё ж таки играет первую скрипку, как это и было задумано изначально. Совсем обходиться без неё конечно можно, но такой вариант даром большинству не нужен.
Back to top
View user's profile Send private message
sa



Joined: 29 Apr 2009
Posts: 2447

Post (Separately) Posted: Sun Oct 30, 2022 03:23    Post subject: Reply with quote

slideray wrote:
сначала вы переключаетесь на нужную раскладку, поскольку привязки эти работают либо в латинской, либо в кириллической.

В Autorun автор недавно добавил вспомогательный скрипт для переключения раскладки на нужную при назначении клавиш.
Кстати, у меня в меню/подменю избранных каталогов много чего есть, кроме навигации. И там как раз можно "нажать одну (!) клавишу A, B, или C для вызова назначенной команды" или подменю.
Back to top
View user's profile Send private message
Skif_off



Joined: 28 Nov 2012
Posts: 1221

Post (Separately) Posted: Sun Oct 30, 2022 13:49    Post subject: Reply with quote

slideray wrote:
4. Возможность вызова внутренних команд и взаимодействие с аргументами Total Commander.

Есть небольшая утилита tcinc (ссылка в первом сообщении загнулась, см. ниже).
Back to top
View user's profile Send private message
CaptainFlint



Joined: 14 Dec 2004
Posts: 6088
Location: Москва

Post (Separately) Posted: Tue Nov 01, 2022 18:02    Post subject: Reply with quote

slideray
По поводу раскладок клавиатуры можно воспользоваться таким трюком: использовать меню только на английском (или с добавленными английскими буквами для быстрого вызова), а в самом Тотале прописать KeyboardID=$0409. Ну или наоборот, русское меню и $0419. Тогда Тотал будет автоматически возвращаться к этой раскладке после большинства действий, и не надо будет вспоминать, чего там включено. Конечно, если часто и помногу требуется в нём вбивать текст и в той, и в другой раскладке, такое автопереключение может быть неудобным, но, мне кажется, это не слишком частый сценарий для файл-менеджера.

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

P. S. Дубликат темы я удалил.
_________________
Почему же, ё-моё, ты нигде не пишешь "ё"?
Back to top
View user's profile Send private message
Вахмурка



Joined: 27 Dec 2004
Posts: 2581
Location: Большая деревня Москва

Post (Separately) Posted: Thu Nov 03, 2022 17:16    Post subject: Reply with quote

Первый скрипт, который я написал на PowerPro аж 13 лет назад, как раз реализовывал локальное меню. В Нортон Коммандере для вызова локального меню была предназначена клавиша F2, каковую я и переназначил на выполнение скрипта. Сейчас у меня 10 локальных меню с 86 командами на всех. Вызов внутренних команд любезно обеспечил VadiMGP с помощью своей утилиты TCmenu. Я привык к локальным меню и не собираюсь от них отказываться. Это дьявольски удобно. И странно, что Гислер не добавляет такой очевидный (и, насколько я понимаю, несложный в реализации) функционал. Здесь я с slideray согласен всецело.

Что касается горячих клавиш, да еще независимо от раскладки, то на клавиатуре есть... цифры! TCmenu поддерживает вызов команды клавишей, имя которой выделено символом &. Да, костыль, но ведь работает же!
_________________
Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон)
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Total Commander Forum Index -> Автоматизация Total Commander All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group