Aegel5 / SimpleSwitcher

Text Typing Assistant
GNU General Public License v3.0
103 stars 8 forks source link

Add applications exceptions #29

Open DavisR-GitHub opened 2 years ago

DavisR-GitHub commented 2 years ago

Hi, It would be great to add ability to exclude some applications, especially full screen games, from layout switching. Let SimpleSwither to totally ignore all key pressing while these apps are in focus.

Aegel5 commented 2 years ago

Hello. Actually, such a setting already exists, but is only available from conf.json: disableInPrograms

This setting does not turn off the direct language change (e.g. set layout), only the revert functions (I do not know if this behavior is correct or not, I am waiting for feedback).

Also, this setting only works on the file name of program (not the full path).

Addition to the gui is planned in the future.

Also, I want setting "disable in full screen program", but I do not know how difficult to do this.

Aegel5 commented 2 years ago

Что исправлять:

DavisR-GitHub commented 2 years ago

Great, Actually I have the problem with pressing CapLock in a game - it freezes on a second. This problem is absent if SimpleSwither is not running. CapsLock was remapped to F24. I will try JSON setting, if it work - it would be totally enough for me.

AnrDaemon commented 1 year ago

Report it to the game author. Perhaps, they are not prepared for keys rarely seen in the wild.

DavisR-GitHub commented 1 year ago

Adding game' exe to ignored list fixed the problem. I do not think they should change something in the game, it works fine without SimpleSwitcher

Mikanoshi commented 1 year ago

This setting does not turn off the direct language change (e.g. set layout)

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

AnrDaemon commented 1 year ago

Как именно переключаете раскладку?

Mikanoshi commented 1 year ago

LCtrl #up

AnrDaemon commented 1 year ago

А вы не допускаете, что это игра неадекватно реагирует на посторонние хуки? У меня на Caps=F24 переключение висит, никаких проблем кроме проблем с RMS и Synergy.

Mikanoshi commented 1 year ago

Конечно игре не нравится, для этого исключения и существуют.

Mikanoshi commented 1 year ago

Пропуск приложения: https://github.com/Aegel5/SimpleSwitcher/blob/master/SimpleSwitcher/src/Hooker.cpp#L990 идёт после циклического переключения: https://github.com/Aegel5/SimpleSwitcher/blob/master/SimpleSwitcher/src/Hooker.cpp#L960 потому и не пашут исключения

Aegel5 commented 1 year ago

Пропуск приложения: https://github.com/Aegel5/SimpleSwitcher/blob/master/SimpleSwitcher/src/Hooker.cpp#L990 идёт после циклического переключения: https://github.com/Aegel5/SimpleSwitcher/blob/master/SimpleSwitcher/src/Hooker.cpp#L960 потому и не пашут исключения

Это было специально сделано, чтобы обычное переключение языка работало, а реверт нет (ожидалось, что только в реверте проблемы). Но как показал ваш случай, и обычное переключение может вызывать проблемы. Так что теперь не понятно как лучше сделать. Полностью отключать работу программы в исключениях, либо сделать более гибкую систему настроек (что муторно).

Aegel5 commented 1 year ago

This setting does not turn off the direct language change (e.g. set layout)

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

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

Mikanoshi commented 1 year ago

А раньше получается нормально переключала раскладку?

Раскладку всегда переключало, но всегда давало тормоза в момент переключения. А в 4.0.1.2 исключения уже не работали. Я думал в исключениях и так полностью не работает программа... Почти во всех играх тормоза даёт, у меня 55 exe в списке)) Что за альтернативный способ?

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

Aegel5 commented 1 year ago

Почти во всех играх тормоза даёт, у меня 55 exe в списке))

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

Что за альтернативный способ?

Типа эмуляция aнажатия alt+shift, но я посмотрел, он не доделан и вообще по ходу глючный функционал, тестить нужно

Я перенёс условие и скомпилил (64-битную кстати, почему в релизе только 32?), вроде всё что мне надо пашет.

32 вроде норм работает, в чем смысл 64? Две версии не охота в архив добавлять, а некоторые еще на win7 32 сидят.

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

поправлю, плюс хочу добавить возможно указывать префиксы и постфиксы для пути, типа c:/games или /mygame/game.exe ну или может шаблоны какие-нибудь.

Раскладку всегда переключало, но всегда давало тормоза в момент переключения. А в 4.0.1.2 исключения уже не работали.

Ясно, тогда полностью нужно отключать функционал для исключений.

Mikanoshi commented 1 year ago

в чем смысл 64?

хз... стильно, модно, молодёжно))

тогда полностью нужно отключать функционал для исключений

Чтобы выгружать SS каждый раз при запуске игры? Удобно)) Может просто исправить?)

Aegel5 commented 1 year ago

Чтобы выгружать SS каждый раз при запуске игры? Удобно)) Может просто исправить?)

Не так выразился)) Имел ввиду полностью отключать функционал SS для прог в иключениях

Aegel5 commented 1 year ago

Выкатил fix в последней версии.