iberianpig / fusuma-plugin-appmatcher

Fusuma plugin configure app-specific gestures
MIT License
8 stars 2 forks source link

Appmatching doesn't execute appspecific context #13

Open benne3333 opened 1 month ago

benne3333 commented 1 month ago

I'm switching over from touchegg/touché, because I use wayland now. Starting with Fusuma was quite straightforward, but I'm stuck with the use of the appmatcher plugin. I think everything is installed correctly. Fusuma receives the input which is indicated by D, [2024-10-21T14:07:21.926867 #145034] DEBUG -- : {:input_event=>tag: appmatcher_input, record: thunderbird} However, Fusuma executes the non-application-specific code afterwards. Am I doing something wrong in my .yml. You find it enclosed. Thanks for any help!

swipe:
  3: 
    left: 
      command: 'xdotool key ctrl+alt+Right'
    right: 
      command: 'xdotool key ctrl+alt+Left'
    up: 
      command: 'xdotool key super'
    down: 
      command: 'xdotool key super'
  4:
    left: 
      command: 'xdotool key ctrl+alt+Down'
    right: 
      command: 'xdotool key ctrl+alt+Up'
    up: 
      command: 'xdotool key ctrl+alt+Down'
    down: 
      sendkey: 'LEFTMETA+UP'
pinch:
  2:
    in:
      command: 'xdotool keydown ctrl+plus'
    out:
      command: 'xdotool keydown ctrl+minus'
  3:
    in:
      sendkey: 'LEFTALT+w'
      clearmodifiers: true
---
---
context:
  application:  gnome-terminal-server
swipe:
  3: 
    up:
      sendkey: 'LEFTSHIFT+LEFTCTRL+T'
    down:
      sendkey: 'LEFTSHIFT+LEFTCTRL+W'
---
context:
  application:  thunderbird
swipe:
  3:
    right:
      sendkey: 'RIGHTBRACE'
    left:
      sendkey: 'LEFTBRACE'
  4:
    right:
      sendkey: 'DELETE'
tap:
  3:
    sendkey: 'LEFTALT+END'
---
threshold:
  swipe: 1
  pinch: 0.5

plugin: 
  inputs:
    libinput_command_input:
      enable-tap: true
      verbose: true
iberianpig commented 1 month ago

Could you paste output of fusuma --version ?

You can use code highlighting with``` in thread
benne3333 commented 1 month ago

Sure, this is:

W, [2024-10-21T16:23:39.921902 #229186]  WARN -- : fusuma-plugin-tap 0.4.2 is incompatible with running fusuma 3.6.2
W, [2024-10-21T16:23:39.921932 #229186]  WARN -- : gemspec: /var/lib/gems/3.2.0/gems/fusuma-plugin-tap-0.4.2/fusuma-plugin-tap.gemspec
W, [2024-10-21T16:23:39.923709 #229186]  WARN -- : fusuma-plugin-tap 0.4.2 is incompatible with running fusuma 3.6.2
W, [2024-10-21T16:23:39.923727 #229186]  WARN -- : gemspec: /var/lib/gems/3.2.0/gems/fusuma-plugin-tap-0.4.2/fusuma-plugin-tap.gemspec
W, [2024-10-21T16:23:39.927830 #229186]  WARN -- : fusuma-plugin-tap 0.4.2 is incompatible with running fusuma 3.6.2
W, [2024-10-21T16:23:39.927847 #229186]  WARN -- : gemspec: /var/lib/gems/3.2.0/gems/fusuma-plugin-tap-0.4.2/fusuma-plugin-tap.gemspec
I, [2024-10-21T16:23:39.937857 #229186]  INFO -- : reload config: /home/benne/.config/fusuma/config.yml
I, [2024-10-21T16:23:39.937881 #229186]  INFO -- : ---------------------------------------------
I, [2024-10-21T16:23:39.938030 #229186]  INFO -- : Fusuma: 3.6.2
I, [2024-10-21T16:23:39.938923 #229186]  INFO -- : libinput: 1.25.0
I, [2024-10-21T16:23:39.938959 #229186]  INFO -- : ruby 3.2.3p157
I, [2024-10-21T16:23:39.939821 #229186]  INFO -- : OS: Linux 6.8.0-107045-tuxedo #45tux1 SMP PREEMPT_DYNAMIC Thu Sep 12 19:21:40 UTC 2024
I, [2024-10-21T16:23:39.940693 #229186]  INFO -- : Distribution: Ubuntu 24.04.1 LTS \n \l
I, [2024-10-21T16:23:39.941674 #229186]  INFO -- : Desktop session: ubuntu-wayland wayland
I, [2024-10-21T16:23:39.941690 #229186]  INFO -- : ---------------------------------------------
I, [2024-10-21T16:23:39.941781 #229186]  INFO -- : Enabled Plugins: 
I, [2024-10-21T16:23:39.941848 #229186]  INFO -- :   Fusuma::Plugin::Buffers::AppmatcherBuffer
I, [2024-10-21T16:23:39.941859 #229186]  INFO -- :   Fusuma::Plugin::Buffers::GestureBuffer
I, [2024-10-21T16:23:39.941868 #229186]  INFO -- :   Fusuma::Plugin::Buffers::TimerBuffer
I, [2024-10-21T16:23:39.941878 #229186]  INFO -- :   Fusuma::Plugin::Detectors::AppmatcherDetector
I, [2024-10-21T16:23:39.941888 #229186]  INFO -- :   Fusuma::Plugin::Detectors::HoldDetector
I, [2024-10-21T16:23:39.941897 #229186]  INFO -- :   Fusuma::Plugin::Detectors::PinchDetector
I, [2024-10-21T16:23:39.941906 #229186]  INFO -- :   Fusuma::Plugin::Detectors::RotateDetector
I, [2024-10-21T16:23:39.941915 #229186]  INFO -- :   Fusuma::Plugin::Detectors::SwipeDetector
I, [2024-10-21T16:23:39.941923 #229186]  INFO -- :   Fusuma::Plugin::Events::Records::AppmatcherRecord
I, [2024-10-21T16:23:39.941932 #229186]  INFO -- :   Fusuma::Plugin::Events::Records::ContextRecord
I, [2024-10-21T16:23:39.941941 #229186]  INFO -- :   Fusuma::Plugin::Events::Records::GestureRecord
I, [2024-10-21T16:23:39.941950 #229186]  INFO -- :   Fusuma::Plugin::Events::Records::IndexRecord
I, [2024-10-21T16:23:39.941958 #229186]  INFO -- :   Fusuma::Plugin::Events::Records::TextRecord
I, [2024-10-21T16:23:39.941967 #229186]  INFO -- :   Fusuma::Plugin::Executors::CommandExecutor
I, [2024-10-21T16:23:39.941976 #229186]  INFO -- :   Fusuma::Plugin::Executors::SendkeyExecutor
I, [2024-10-21T16:23:39.941984 #229186]  INFO -- :   Fusuma::Plugin::Filters::LibinputDeviceFilter
I, [2024-10-21T16:23:39.941993 #229186]  INFO -- :   Fusuma::Plugin::Inputs::AppmatcherInput
I, [2024-10-21T16:23:39.942002 #229186]  INFO -- :   Fusuma::Plugin::Inputs::LibinputCommandInput
I, [2024-10-21T16:23:39.942011 #229186]  INFO -- :   Fusuma::Plugin::Inputs::TimerInput
I, [2024-10-21T16:23:39.942020 #229186]  INFO -- :   Fusuma::Plugin::Parsers::LibinputGestureParser
I, [2024-10-21T16:23:39.942029 #229186]  INFO -- : ---------------------------------------------
iberianpig commented 1 month ago

I would like to gather some additional information regarding the issue you're facing:

  1. Are there any errors showing up in the runtime logs?
  2. Which specific gesture are you executing when the issue occurs?
  3. Does it work correctly sometimes, or is it consistently not working?
benne3333 commented 1 month ago
1. Are there any errors showing up in the runtime logs?

No, the input is just matched to the global context, not to an application specific one.

2. Which specific gesture are you executing when the issue occurs?

4-fingers swipe right

3. Does it work correctly sometimes, or is it consistently not working?

None of the inputs is ever mapped to an app specific context.

iberianpig commented 1 month ago

I apologize, I misunderstood. It is by design in looking up for context in config.

see: https://github.com/iberianpig/fusuma/blob/main/lib/fusuma/config/searcher.rb?plain=1#L97-L104

The global context actions are prioritized over your application-specific settings in the configuration. This is why your gestures, such as the 4-finger swipe, are not triggering the app-specific commands for thunderbird or gnome-terminal-server.

So, you need to remove or adjust the global context settings so that they do not conflict with your application-specific contexts.

benne3333 commented 1 month ago

OK, it is not possible to "overwrite" a gesture in global context by a definition in an application specific context - right? But different applications can use the same gesture with different definitions (as long as this gesture is not used globally)? If the two statements above are true, the issue could be closed.

iberianpig commented 1 month ago

Yes, that's correct.