Coder Social home page Coder Social logo

joseexposito / touche Goto Github PK

View Code? Open in Web Editor NEW
542.0 8.0 26.0 1.56 MB

The desktop application to configure Touchégg

License: GNU General Public License v3.0

JavaScript 85.98% CSS 0.29% Meson 6.25% Python 0.57% C 0.94% C++ 5.97%
touchegg linux gtk multi-touch touchpad touchscreen gestures

touche's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

touche's Issues

Add back two-finger swipes for browser navigation

Is your feature request related to a problem? Please describe

I would like to use two fingers for going forward/back in browsers. I think this was possible and was removed. Why?

Describe the solution you'd like

I would like the feature back and maybe an animation in the middle of the screen. Firefox doesn't support this out-of-the-box unfortunately.

Describe alternatives you've considered

I considered using Chromium, but it isn't able to open the virtual keyboard. So no browser is really fully touch capcable on Linux. This feature would bring it back. Using three fingers is not intuitive and is also used for window tiling.

Touche window minimum size is still too big for small monitors

Describe the bug

The window is slightly too tall for small monitors.

My monitor is 1280x800 and I'm missing the bottom part of the window: it gets hidden behind my taskbar.
Screenshot: https://i.imgur.com/KyAKphH.png

Expected behaviour

Allow the Touch window to be smaller.
Minimum height should be 400 (currently about 800)
Minimum width should be 700 (currently it's about 1000)

Actual behaviour

The window is cropped on small monitors.

Your environment

  • Touché version: 1.0.5
  • Touchégg version: touchegg/groovy,now 202106090721-stable-2.0.10~ubuntu20.10.1 amd64
  • Operating System: Lubuntu
  • Desktop Environment: i don't know
  • Installation method: Flatpak

Screen Rotation

Since I'm using a convertible device (Dell Inspiron 14 2in1) with KDE that does not support screen rotation by itself. I use a script to monitor the orientation sensor and rotate the screen nd input devices accordingly. The gestures on the touchscreen do not follow the screen rotation though so a swipe UP on the normal screen becomes a Swipe Left on the rotated screen. It's still workable but takes a bit of thought. Is there any way to solve this?

Installing Touche from same repository of Touchegg

Hi,
I am using Ubuntu 20.04 LTS. The "npm" requires now-unsupported python2 to be installed to the system. I use some other softwares for my daily work, which rely on the Python3. I am not an expert, but I fear installing pyhton2 will mess up the python paths for other softwares that I daily use. On the other hand installing Flatpak will probably mess up Ubuntu Software store, which is by default a snap-store (If I am not wrong), and create a conflicting copy of flatpak-store. (I may sound technically wrong, apologies for that).

So, my question, is there any simple method to install Touche on my Ubuntu 20.04 LTS, just the way I installed Touchegg on it ? And I want to request the developer to add Touche to the same repository as that of Touchegg, so that installation can be smooth.

UI Is too big for HiDPI

I'm running Touche on pop_os 20.10 but the UI on 200% scaling which is optimal for my eyes is simply too big to fit on the screen. My laptop's resolution is 2560x1440 = 2k 16:9. Could you make the minimum UI height a bit shorter to it can fit in the screen ?

Options grayed out on GNOME 40

Describe the bug

I just updated to Pop OS 21.10 (uses GNOME 40.4) and suddenly my gestures get changed. I am also not able to customize anything in the app

Expected behaviour

I should be able to customize the gestures

Actual behaviour

I am not able to customize the gestures

Logs

If required, include logs of the bug:

Gjs-Message: 19:16:52.694: JS LOG: Reading configuration file "/home/anish/.config/touchegg/touchegg.conf"
Gjs-Message: 19:16:52.699: JS LOG: Saving global settings in the model
Gjs-Message: 19:16:52.699: JS LOG: Saving gestures in the model
Gjs-Message: 19:16:52.700: JS LOG: Adding gesture: SWIPE, UP, 4, GNOME_SHELL, All, enabled: true
Gjs-Message: 19:16:52.700: JS LOG: Adding gesture: SWIPE, DOWN, 4, GNOME_SHELL, All, enabled: true
Gjs-Message: 19:16:52.700: JS LOG: Adding gesture: SWIPE, UP, 3, GNOME_SHELL, All, enabled: true
Gjs-Message: 19:16:52.700: JS LOG: Adding gesture: SWIPE, DOWN, 3, GNOME_SHELL, All, enabled: true
Gjs-Message: 19:16:52.700: JS LOG: Adding gesture: SWIPE, LEFT, 3, GNOME_SHELL, All, enabled: true
Gjs-Message: 19:16:52.701: JS LOG: Adding gesture: SWIPE, RIGHT, 3, GNOME_SHELL, All, enabled: true
Gjs-Message: 19:16:52.701: JS LOG: Adding gesture: SWIPE, LEFT, 4, GNOME_SHELL, All, enabled: true
Gjs-Message: 19:16:52.701: JS LOG: Adding gesture: SWIPE, RIGHT, 4, GNOME_SHELL, All, enabled: true
Gjs-Message: 19:16:52.701: JS LOG: {
  "globalSettings": {
    "animation_delay": "150",
    "action_execute_threshold": "20",
    "color": "auto",
    "borderColor": "auto"
  },
  "byId": {
    "SWIPE_UP_4_all": {
      "id": "SWIPE_UP_4_all",
      "gestureType": "SWIPE",
      "gestureDirection": "UP",
      "numberOfFingers": "4",
      "actionType": "GNOME_SHELL",
      "actionSettings": {},
      "appName": "all",
      "enabled": true
    },
    "SWIPE_DOWN_4_all": {
      "id": "SWIPE_DOWN_4_all",
      "gestureType": "SWIPE",
      "gestureDirection": "DOWN",
      "numberOfFingers": "4",
      "actionType": "GNOME_SHELL",
      "actionSettings": {},
      "appName": "all",
      "enabled": true
    },
    "SWIPE_UP_3_all": {
      "id": "SWIPE_UP_3_all",
      "gestureType": "SWIPE",
      "gestureDirection": "UP",
      "numberOfFingers": "3",
      "actionType": "GNOME_SHELL",
      "actionSettings": {},
      "appName": "all",
      "enabled": true
    },
    "SWIPE_DOWN_3_all": {
      "id": "SWIPE_DOWN_3_all",
      "gestureType": "SWIPE",
      "gestureDirection": "DOWN",
      "numberOfFingers": "3",
      "actionType": "GNOME_SHELL",
      "actionSettings": {},
      "appName": "all",
      "enabled": true
    },
    "SWIPE_LEFT_3_all": {
      "id": "SWIPE_LEFT_3_all",
      "gestureType": "SWIPE",
      "gestureDirection": "LEFT",
      "numberOfFingers": "3",
      "actionType": "GNOME_SHELL",
      "actionSettings": {},
      "appName": "all",
      "enabled": true
    },
    "SWIPE_RIGHT_3_all": {
      "id": "SWIPE_RIGHT_3_all",
      "gestureType": "SWIPE",
      "gestureDirection": "RIGHT",
      "numberOfFingers": "3",
      "actionType": "GNOME_SHELL",
      "actionSettings": {},
      "appName": "all",
      "enabled": true
    },
    "SWIPE_LEFT_4_all": {
      "id": "SWIPE_LEFT_4_all",
      "gestureType": "SWIPE",
      "gestureDirection": "LEFT",
      "numberOfFingers": "4",
      "actionType": "GNOME_SHELL",
      "actionSettings": {},
      "appName": "all",
      "enabled": true
    },
    "SWIPE_RIGHT_4_all": {
      "id": "SWIPE_RIGHT_4_all",
      "gestureType": "SWIPE",
      "gestureDirection": "RIGHT",
      "numberOfFingers": "4",
      "actionType": "GNOME_SHELL",
      "actionSettings": {},
      "appName": "all",
      "enabled": true
    }
  },
  "byAppName": {
    "all": [
      "SWIPE_UP_4_all",
      "SWIPE_DOWN_4_all",
      "SWIPE_UP_3_all",
      "SWIPE_DOWN_3_all",
      "SWIPE_LEFT_3_all",
      "SWIPE_RIGHT_3_all",
      "SWIPE_LEFT_4_all",
      "SWIPE_RIGHT_4_all"
    ]
  }
}
Gjs-Message: 19:16:52.701: JS LOG: MainView Sidebar: Reloading application list
Gjs-Message: 19:16:52.702: JS LOG:  - all [SELECTED]
Gjs-Message: 19:16:52.703: JS LOG: Sidebar: App with name "all" selected
Gjs-Message: 19:16:52.703: JS LOG: MainView Content: Loading gestures for app with name: "all"
Gjs-Message: 19:16:52.703: JS LOG: SwipeView: Loading 3 fingers swipes
Gjs-Message: 19:16:52.703: JS LOG: {"id":"SWIPE_UP_3_all","gestureType":"SWIPE","gestureDirection":"UP","numberOfFingers":"3","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.706: JS LOG: Updating row settings
Gjs-Message: 19:16:52.706: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.706: JS LOG: {"id":"SWIPE_DOWN_3_all","gestureType":"SWIPE","gestureDirection":"DOWN","numberOfFingers":"3","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.708: JS LOG: Updating row settings
Gjs-Message: 19:16:52.708: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.708: JS LOG: {"id":"SWIPE_LEFT_3_all","gestureType":"SWIPE","gestureDirection":"LEFT","numberOfFingers":"3","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.710: JS LOG: Updating row settings
Gjs-Message: 19:16:52.710: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.711: JS LOG: {"id":"SWIPE_RIGHT_3_all","gestureType":"SWIPE","gestureDirection":"RIGHT","numberOfFingers":"3","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.712: JS LOG: Updating row settings
Gjs-Message: 19:16:52.712: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.712: JS LOG: SwipeView: Loading 4 fingers swipes
Gjs-Message: 19:16:52.712: JS LOG: {"id":"SWIPE_UP_4_all","gestureType":"SWIPE","gestureDirection":"UP","numberOfFingers":"4","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.713: JS LOG: Updating row settings
Gjs-Message: 19:16:52.713: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.714: JS LOG: {"id":"SWIPE_DOWN_4_all","gestureType":"SWIPE","gestureDirection":"DOWN","numberOfFingers":"4","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.715: JS LOG: Updating row settings
Gjs-Message: 19:16:52.715: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.715: JS LOG: {"id":"SWIPE_LEFT_4_all","gestureType":"SWIPE","gestureDirection":"LEFT","numberOfFingers":"4","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.716: JS LOG: Updating row settings
Gjs-Message: 19:16:52.716: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.717: JS LOG: {"id":"SWIPE_RIGHT_4_all","gestureType":"SWIPE","gestureDirection":"RIGHT","numberOfFingers":"4","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.718: JS LOG: Updating row settings
Gjs-Message: 19:16:52.718: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.718: JS LOG: PinchView: Loading 3 fingers pinch
Gjs-Message: 19:16:52.718: JS LOG: {"id":"PINCH_IN_2_all","gestureType":"PINCH","gestureDirection":"IN","numberOfFingers":2,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.719: JS LOG: Updating row settings
Gjs-Message: 19:16:52.719: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.720: JS LOG: {"id":"PINCH_OUT_2_all","gestureType":"PINCH","gestureDirection":"OUT","numberOfFingers":2,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.721: JS LOG: Updating row settings
Gjs-Message: 19:16:52.721: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.721: JS LOG: PinchView: Loading 3 fingers pinch
Gjs-Message: 19:16:52.721: JS LOG: {"id":"PINCH_IN_3_all","gestureType":"PINCH","gestureDirection":"IN","numberOfFingers":3,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.723: JS LOG: Updating row settings
Gjs-Message: 19:16:52.723: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.723: JS LOG: {"id":"PINCH_OUT_3_all","gestureType":"PINCH","gestureDirection":"OUT","numberOfFingers":3,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.725: JS LOG: Updating row settings
Gjs-Message: 19:16:52.725: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.725: JS LOG: PinchView: Loading 4 fingers pinch
Gjs-Message: 19:16:52.725: JS LOG: {"id":"PINCH_IN_4_all","gestureType":"PINCH","gestureDirection":"IN","numberOfFingers":4,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.727: JS LOG: Updating row settings
Gjs-Message: 19:16:52.727: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.727: JS LOG: {"id":"PINCH_OUT_4_all","gestureType":"PINCH","gestureDirection":"OUT","numberOfFingers":4,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.728: JS LOG: Updating row settings
Gjs-Message: 19:16:52.729: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.729: JS LOG: TapView: Loading tap list
Gjs-Message: 19:16:52.729: JS LOG: {"id":"TAP_UNKNOWN_2_all","gestureType":"TAP","gestureDirection":"UNKNOWN","numberOfFingers":2,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.730: JS LOG: Updating row settings
Gjs-Message: 19:16:52.730: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.730: JS LOG: {"id":"TAP_UNKNOWN_3_all","gestureType":"TAP","gestureDirection":"UNKNOWN","numberOfFingers":3,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.732: JS LOG: Updating row settings
Gjs-Message: 19:16:52.732: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.732: JS LOG: {"id":"TAP_UNKNOWN_4_all","gestureType":"TAP","gestureDirection":"UNKNOWN","numberOfFingers":4,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.733: JS LOG: Updating row settings
Gjs-Message: 19:16:52.733: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.733: JS LOG: {"id":"TAP_UNKNOWN_5_all","gestureType":"TAP","gestureDirection":"UNKNOWN","numberOfFingers":5,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.734: JS LOG: Updating row settings
Gjs-Message: 19:16:52.734: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.734: JS LOG: MainView Content: Loading gestures for app with name: "all"
Gjs-Message: 19:16:52.735: JS LOG: SwipeView: Loading 3 fingers swipes
Gjs-Message: 19:16:52.735: JS LOG: {"id":"SWIPE_UP_3_all","gestureType":"SWIPE","gestureDirection":"UP","numberOfFingers":"3","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.736: JS LOG: Updating row settings
Gjs-Message: 19:16:52.736: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.736: JS LOG: {"id":"SWIPE_DOWN_3_all","gestureType":"SWIPE","gestureDirection":"DOWN","numberOfFingers":"3","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.738: JS LOG: Updating row settings
Gjs-Message: 19:16:52.738: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.738: JS LOG: {"id":"SWIPE_LEFT_3_all","gestureType":"SWIPE","gestureDirection":"LEFT","numberOfFingers":"3","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.739: JS LOG: Updating row settings
Gjs-Message: 19:16:52.739: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.739: JS LOG: {"id":"SWIPE_RIGHT_3_all","gestureType":"SWIPE","gestureDirection":"RIGHT","numberOfFingers":"3","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.741: JS LOG: Updating row settings
Gjs-Message: 19:16:52.741: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.741: JS LOG: SwipeView: Loading 4 fingers swipes
Gjs-Message: 19:16:52.741: JS LOG: {"id":"SWIPE_UP_4_all","gestureType":"SWIPE","gestureDirection":"UP","numberOfFingers":"4","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.742: JS LOG: Updating row settings
Gjs-Message: 19:16:52.742: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.742: JS LOG: {"id":"SWIPE_DOWN_4_all","gestureType":"SWIPE","gestureDirection":"DOWN","numberOfFingers":"4","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.744: JS LOG: Updating row settings
Gjs-Message: 19:16:52.744: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.744: JS LOG: {"id":"SWIPE_LEFT_4_all","gestureType":"SWIPE","gestureDirection":"LEFT","numberOfFingers":"4","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.745: JS LOG: Updating row settings
Gjs-Message: 19:16:52.745: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.745: JS LOG: {"id":"SWIPE_RIGHT_4_all","gestureType":"SWIPE","gestureDirection":"RIGHT","numberOfFingers":"4","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.746: JS LOG: Updating row settings
Gjs-Message: 19:16:52.746: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.747: JS LOG: PinchView: Loading 3 fingers pinch
Gjs-Message: 19:16:52.747: JS LOG: {"id":"PINCH_IN_2_all","gestureType":"PINCH","gestureDirection":"IN","numberOfFingers":2,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.748: JS LOG: Updating row settings
Gjs-Message: 19:16:52.748: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.748: JS LOG: {"id":"PINCH_OUT_2_all","gestureType":"PINCH","gestureDirection":"OUT","numberOfFingers":2,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.749: JS LOG: Updating row settings
Gjs-Message: 19:16:52.749: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.749: JS LOG: PinchView: Loading 3 fingers pinch
Gjs-Message: 19:16:52.749: JS LOG: {"id":"PINCH_IN_3_all","gestureType":"PINCH","gestureDirection":"IN","numberOfFingers":3,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.751: JS LOG: Updating row settings
Gjs-Message: 19:16:52.751: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.751: JS LOG: {"id":"PINCH_OUT_3_all","gestureType":"PINCH","gestureDirection":"OUT","numberOfFingers":3,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.752: JS LOG: Updating row settings
Gjs-Message: 19:16:52.752: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.752: JS LOG: PinchView: Loading 4 fingers pinch
Gjs-Message: 19:16:52.752: JS LOG: {"id":"PINCH_IN_4_all","gestureType":"PINCH","gestureDirection":"IN","numberOfFingers":4,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.754: JS LOG: Updating row settings
Gjs-Message: 19:16:52.754: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.754: JS LOG: {"id":"PINCH_OUT_4_all","gestureType":"PINCH","gestureDirection":"OUT","numberOfFingers":4,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.755: JS LOG: Updating row settings
Gjs-Message: 19:16:52.755: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.756: JS LOG: TapView: Loading tap list
Gjs-Message: 19:16:52.756: JS LOG: {"id":"TAP_UNKNOWN_2_all","gestureType":"TAP","gestureDirection":"UNKNOWN","numberOfFingers":2,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.757: JS LOG: Updating row settings
Gjs-Message: 19:16:52.757: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.758: JS LOG: {"id":"TAP_UNKNOWN_3_all","gestureType":"TAP","gestureDirection":"UNKNOWN","numberOfFingers":3,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.759: JS LOG: Updating row settings
Gjs-Message: 19:16:52.759: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.759: JS LOG: {"id":"TAP_UNKNOWN_4_all","gestureType":"TAP","gestureDirection":"UNKNOWN","numberOfFingers":4,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.760: JS LOG: Updating row settings
Gjs-Message: 19:16:52.760: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.761: JS LOG: {"id":"TAP_UNKNOWN_5_all","gestureType":"TAP","gestureDirection":"UNKNOWN","numberOfFingers":5,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.762: JS LOG: Updating row settings
Gjs-Message: 19:16:52.762: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.847: JS LOG: Sidebar: App with name "all" selected
Gjs-Message: 19:16:52.847: JS LOG: MainView Content: Loading gestures for app with name: "all"
Gjs-Message: 19:16:52.847: JS LOG: SwipeView: Loading 3 fingers swipes
Gjs-Message: 19:16:52.847: JS LOG: {"id":"SWIPE_UP_3_all","gestureType":"SWIPE","gestureDirection":"UP","numberOfFingers":"3","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.849: JS LOG: Updating row settings
Gjs-Message: 19:16:52.849: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.849: JS LOG: {"id":"SWIPE_DOWN_3_all","gestureType":"SWIPE","gestureDirection":"DOWN","numberOfFingers":"3","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.851: JS LOG: Updating row settings
Gjs-Message: 19:16:52.851: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.851: JS LOG: {"id":"SWIPE_LEFT_3_all","gestureType":"SWIPE","gestureDirection":"LEFT","numberOfFingers":"3","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.853: JS LOG: Updating row settings
Gjs-Message: 19:16:52.853: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.854: JS LOG: {"id":"SWIPE_RIGHT_3_all","gestureType":"SWIPE","gestureDirection":"RIGHT","numberOfFingers":"3","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.856: JS LOG: Updating row settings
Gjs-Message: 19:16:52.856: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.857: JS LOG: SwipeView: Loading 4 fingers swipes
Gjs-Message: 19:16:52.857: JS LOG: {"id":"SWIPE_UP_4_all","gestureType":"SWIPE","gestureDirection":"UP","numberOfFingers":"4","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.860: JS LOG: Updating row settings
Gjs-Message: 19:16:52.860: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.861: JS LOG: {"id":"SWIPE_DOWN_4_all","gestureType":"SWIPE","gestureDirection":"DOWN","numberOfFingers":"4","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.864: JS LOG: Updating row settings
Gjs-Message: 19:16:52.864: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.864: JS LOG: {"id":"SWIPE_LEFT_4_all","gestureType":"SWIPE","gestureDirection":"LEFT","numberOfFingers":"4","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.867: JS LOG: Updating row settings
Gjs-Message: 19:16:52.867: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.867: JS LOG: {"id":"SWIPE_RIGHT_4_all","gestureType":"SWIPE","gestureDirection":"RIGHT","numberOfFingers":"4","actionType":"GNOME_SHELL","actionSettings":{},"appName":"all","enabled":true}
Gjs-Message: 19:16:52.870: JS LOG: Updating row settings
Gjs-Message: 19:16:52.870: JS LOG: Action with type GNOME_SHELL does NOT have extra settings
Gjs-Message: 19:16:52.870: JS LOG: PinchView: Loading 3 fingers pinch
Gjs-Message: 19:16:52.870: JS LOG: {"id":"PINCH_IN_2_all","gestureType":"PINCH","gestureDirection":"IN","numberOfFingers":2,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.871: JS LOG: Updating row settings
Gjs-Message: 19:16:52.871: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.872: JS LOG: {"id":"PINCH_OUT_2_all","gestureType":"PINCH","gestureDirection":"OUT","numberOfFingers":2,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.873: JS LOG: Updating row settings
Gjs-Message: 19:16:52.873: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.873: JS LOG: PinchView: Loading 3 fingers pinch
Gjs-Message: 19:16:52.873: JS LOG: {"id":"PINCH_IN_3_all","gestureType":"PINCH","gestureDirection":"IN","numberOfFingers":3,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.874: JS LOG: Updating row settings
Gjs-Message: 19:16:52.874: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.875: JS LOG: {"id":"PINCH_OUT_3_all","gestureType":"PINCH","gestureDirection":"OUT","numberOfFingers":3,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.876: JS LOG: Updating row settings
Gjs-Message: 19:16:52.876: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.876: JS LOG: PinchView: Loading 4 fingers pinch
Gjs-Message: 19:16:52.876: JS LOG: {"id":"PINCH_IN_4_all","gestureType":"PINCH","gestureDirection":"IN","numberOfFingers":4,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.880: JS LOG: Updating row settings
Gjs-Message: 19:16:52.880: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.880: JS LOG: {"id":"PINCH_OUT_4_all","gestureType":"PINCH","gestureDirection":"OUT","numberOfFingers":4,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.882: JS LOG: Updating row settings
Gjs-Message: 19:16:52.882: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.882: JS LOG: TapView: Loading tap list
Gjs-Message: 19:16:52.882: JS LOG: {"id":"TAP_UNKNOWN_2_all","gestureType":"TAP","gestureDirection":"UNKNOWN","numberOfFingers":2,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.884: JS LOG: Updating row settings
Gjs-Message: 19:16:52.884: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.884: JS LOG: {"id":"TAP_UNKNOWN_3_all","gestureType":"TAP","gestureDirection":"UNKNOWN","numberOfFingers":3,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.886: JS LOG: Updating row settings
Gjs-Message: 19:16:52.886: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.886: JS LOG: {"id":"TAP_UNKNOWN_4_all","gestureType":"TAP","gestureDirection":"UNKNOWN","numberOfFingers":4,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.887: JS LOG: Updating row settings
Gjs-Message: 19:16:52.887: JS LOG: Action with type undefined does NOT have extra settings
Gjs-Message: 19:16:52.888: JS LOG: {"id":"TAP_UNKNOWN_5_all","gestureType":"TAP","gestureDirection":"UNKNOWN","numberOfFingers":5,"appName":"all","enabled":false}
Gjs-Message: 19:16:52.889: JS LOG: Updating row settings
Gjs-Message: 19:16:52.889: JS LOG: Action with type undefined does NOT have extra settings

Attach Touchégg configuration, placed at ~/.config/touchegg/touchegg.conf, if you consider it
relevant.

Can't attach due to GitHub restriction but the contents -

Touchegg Config

<touchégg>

150
20
auto
auto



























</touchégg>

Your environment

  • Touché version: 2.0.2
  • Touchégg version: 2.0.12
  • Operating System: Pop OS 21.10
  • Desktop Environment: GNOME 40.4
  • Installation method: Flatpak

The GNOME 3.38 runtime is no longer supported

Describe the bug

updating the flatpak gives the following warning:

Info: org.gnome.Platform//3.38 is end-of-life, with reason:
The GNOME 3.38 runtime is no longer supported as of August 19, 2021. Please ask your application developer to migrate to a supported platform.
Applications using this runtime:
com.github.joseexposito.touche

Crash when only one global setting is available

Describe the bug

I've installed the last version of Touche, a .deb package taken from release in this repository. But when I'm trying to launch it by typing com.github.joseexposito.touche in terminal, it gives me some errors and no window is opened. The Touchegg itself works perfectly.

Logs

touche.log
touchegg.conf.txt

Your environment

  • Version of Touché: 1.0.2
  • Operating System: Linux Mint 20.1
  • Desktop Environment: Cinnamon
  • Installation method: Debian package

App launches and window is empty.

I have a working install of touchegg.
Installed Touche flatpak.
When launched, I get a small window a few a few hundred pixels square. No options available. No text or controls at all in the box.
Resizing the box doesn't make a difference.

Thanks for your work!

No 5 digits event

Describe the bug

5 digits pinch event not visible in the UI of Touché although Touché has red them

Expected behaviour

5 digits event should be shown in Touché windows

Actual behaviour

No window for 5 digits

Logs

If required, include logs of the bug:

$ flatpak run com.github.joseexposito.touche
# or
$ com.github.joseexposito.touche

Attach Touchégg configuration, placed at ~/.config/touchegg/touchegg.conf, if you consider it
relevant.

Your environment

  • Touché version: 1.0.5
  • Touchégg version: 2.0.9
  • Operating System: Slackware current
  • Desktop Environment: KDE
  • Installation method: node.js
    touchegg.conf.txt

Not Starting on KDE NEON

Describe the bug

A clear and concise description of what the bug is and how to reproduce it.
(Maybe related to #18)
The GUI doesn't start, when I run from the terminal I see:
/usr/bin/gjs /usr/bin/com.github.joseexposito.touche

Gjs-Message: 22:52:16.170: JS LOG: Granite is not available
Gjs-Message: 22:52:16.197: JS WARNING: [resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 540 > eval 52]: reference to undefined property "forced"

(com.github.joseexposito.touche:24326): Gtk-WARNING **: 22:52:16.254: Theme parsing error: gtk-dark.css:4091:13: negative values are not allowed.

(com.github.joseexposito.touche:24326): Gtk-WARNING **: 22:52:16.263: Theme parsing error: gtk-dark.css:7855:13: negative values are not allowed.

(com.github.joseexposito.touche:24326): Gtk-WARNING **: 22:52:16.263: Theme parsing error: gtk-dark.css:8039:19: negative values are not allowed.

(com.github.joseexposito.touche:24326): Gtk-WARNING **: 22:52:16.264: Theme parsing error: gtk-dark.css:8317:21: negative values are not allowed.

(com.github.joseexposito.touche:24326): Gtk-WARNING **: 22:52:16.264: Theme parsing error: gtk-dark.css:8318:24: negative values are not allowed.
Gjs-Message: 22:52:16.315: JS LOG: Reading configuration file "/home/nicholas/.config/touchegg/touchegg.conf"
Gjs-Message: 22:52:16.315: JS WARNING: [resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 1251 > eval 54]: reference to undefined property "position"
Gjs-Message: 22:52:16.316: JS WARNING: [resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 1322 > eval 109]: reference to undefined property "_text"

(com.github.joseexposito.touche:24326): Gjs-WARNING **: 22:52:16.317: JS ERROR: Error: Text data outside of root node.
Line: 0
Column: 28
Char: ]
error@webpack:///../node_modules/sax/lib/sax.js?:684:10
strictFail@webpack:///../node_modules/sax/lib/sax.js?:711:7
write@webpack:///../node_modules/sax/lib/sax.js?:1104:15
module.exports@webpack:///../node_modules/xml-js/lib/xml2js.js?:411:5
loadConfig@webpack:///../src/config/xml-config.js?:77:20
loadFromFile@webpack:///../src/config/model.js?:97:5
showMainView@webpack:///../src/app-window.js?:89:5
_init@webpack:///../src/app-window.js?:64:7
main/<@webpack:///../src/index.js?:66:22
main@webpack:///../src/index.js?:71:10
run@resource:///org/gnome/gjs/modules/package.js:225:12
@/usr/bin/com.github.joseexposito.touche:11:1

The file /home/nicholas/.config/touchegg/touchegg.conf does not have any text outside the root node

Your environment

  • Touché version: 1.0.4
  • Touchégg version: v2.0.9
  • Operating System: Ubuntu, Fedora, Arch Linux... KDE Neon
  • Desktop Environment: Gnome, KDE, Xfce... KDE
  • Installation method: Flatpak, Debian package... Deb

Unable to build on Debian Bullseye

Describe the bug

git clone https://github.com/JoseExposito/touche.git
cd touche/
sudo apt build-dep .
dpkg-buildpackage

Full output here: https://pastebin.com/PQJycDe5
Relevant output:

Found ninja-1.10.1 at /usr/bin/ninja
   dh_auto_build
	cd obj-arm-linux-gnueabihf && LC_ALL=C.UTF-8 ninja -j4 -v
[1/9] /usr/bin/glib-compile-resources data/data.gresource.xml --sourcedir ../data --internal --generate --target data/com.github.joseexposito.touche.data.gresource --dependency-file data/com.github.joseexposito.touche.data.gresource.d
[2/9] /usr/bin/node /home/pi/touche/bundle/scripts/build.js /home/pi/touche /home/pi/touche/obj-arm-linux-gnueabihf/bundle plain com.github.joseexposito.touche false elementary /usr/share/touchegg/touchegg.conf
FAILED: bundle/com.github.joseexposito.touche.js
/usr/bin/node /home/pi/touche/bundle/scripts/build.js /home/pi/touche /home/pi/touche/obj-arm-linux-gnueabihf/bundle plain com.github.joseexposito.touche false elementary /usr/share/touchegg/touchegg.conf
internal/modules/cjs/loader.js:818
  throw err;
  ^
 
Error: Cannot find module 'webpack'
Require stack:
- /home/pi/touche/bundle/scripts/build.js
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:815:15)
    at Function.Module._load (internal/modules/cjs/loader.js:667:27)
    at Module.require (internal/modules/cjs/loader.js:887:19)
    at require (internal/modules/cjs/helpers.js:74:18)
    at Object.<anonymous> (/home/pi/touche/bundle/scripts/build.js:20:17)
    at Module._compile (internal/modules/cjs/loader.js:999:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1027:10)
    at Module.load (internal/modules/cjs/loader.js:863:32)
    at Function.Module._load (internal/modules/cjs/loader.js:708:14)
    at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:60:12) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [ '/home/pi/touche/bundle/scripts/build.js' ]
}
[3/9] /usr/bin/meson --internal msgfmthelper data/desktop.in data/com.github.joseexposito.touche.desktop desktop ../data/../po
[4/9] /usr/bin/meson --internal msgfmthelper data/app.appdata.xml.in data/com.github.joseexposito.touche.appdata.xml xml ../data/../po
[5/9] c++ -Isubprojects/libtouche/libtouche.so.p -Isubprojects/libtouche -I../subprojects/libtouche -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -fdiagnostics-color=always -pipe -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wnon-virtual-dtor -Wextra -g -O2 -ffile-prefix-map=/home/pi/touche=. -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -fPIC -MD -MQ subprojects/libtouche/libtouche.so.p/touche.cpp.o -MF subprojects/libtouche/libtouche.so.p/touche.cpp.o.d -o subprojects/libtouche/libtouche.so.p/touche.cpp.o -c ../subprojects/libtouche/touche.cpp
ninja: build stopped: subcommand failed.

The main part:

Error: Cannot find module 'webpack'

I am not very experienced in this area, so I'm not sure what is required.

Environment

  • Build method: standard Debian package tooling on latest stable version of Debian

Fields display incorrectly

When configuring for keyboard shortcuts, the fields for "Opposite Keys" are not displaying correctly & cannot be set (see screenshot). A workaround seems to be to flip the repeat toggle again, which then displays the field correctly.

Screenshot_20210825_095644


$ com.github.joseexposito.touche
[touchegg.conf.zip](https://github.com/JoseExposito/touche/files/7048727/touchegg.conf.zip)


### Your environment

 * Touché version: 1.0.6-5
 * Touchégg version: 2.0.11-1
 * Operating System: Manjaro
 * Desktop Environment: KDE
 * Installation method: Pacman Official Repository (community)

Please add an option for tap functions for touchpad too.

Touche says "Tap gestures are available only on touch screens". Please add an option for touch-pads too. I had been trying to find a way to use three finger tap as shortcut and failed. And why it is left out in the first place?

Cannot set a keyboard shortcut

Describe the bug

When I try to set a keyboard shortcut the program does not accept my keyboard's input
A clear and concise description of what the bug is and how to reproduce it.
If you try and set 3 finger swipe gestures for apps that map to a keyboard shortcut it will not accept your keyboard input.

Expected behaviour

The tool successfully accepts you keyboard input and maps it to your gestures

Actual behaviour

It does not accept the input and instead stays it its waiting state it enters when waiting for input.

Your environment

  • Touché version: unsure but probably the latest considering I got it from the aur.
  • Touchégg version:2.0.12.
  • Operating System: Arch
  • Desktop Environment: KDE
  • Installation method: Via the aur

Error at start using AUR on Manjaro

Describe the bug

Starting touche from plasma apps menu appeared to do nothing.
Starting touche from konsole got the following:

Error: Cannot find module '@babel/plugin-proposal-class-properties'
Require stack:
- /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/@babel/core/lib/config/files/plugins.js
- /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/@babel/core/lib/config/files/index.js
- /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/@babel/core/lib/index.js
- /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/babel-loader/lib/index.js
- /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/loader-runner/lib/loadLoader.js
- /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/loader-runner/lib/LoaderRunner.js
- /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/webpack/lib/NormalModule.js
- /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/webpack/lib/NormalModuleFactory.js
- /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/webpack/lib/Compiler.js
- /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/webpack/lib/webpack.js
- /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/webpack/lib/index.js
- /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/bundle/scripts/build.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:941:15)
    at resolve (node:internal/modules/cjs/helpers:99:19)
    at resolveStandardizedName (/var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/@babel/core/lib/config/files/plugins.js:100:7)
    at resolvePlugin (/var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/@babel/core/lib/config/files/plugins.js:44:10)
    at loadPlugin (/var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/@babel/core/lib/config/files/plugins.js:52:20)
    at createDescriptor (/var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/@babel/core/lib/config/config-descriptors.js:154:9)
    at /var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/@babel/core/lib/config/config-descriptors.js:109:50
    at Array.map (<anonymous>)
    at createDescriptors (/var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/@babel/core/lib/config/config-descriptors.js:109:29)
    at createPluginDescriptors (/var/tmp/pamac-build-nicbomb/touche/src/touche-1.0.6/node_modules/@babel/core/lib/config/config-descriptors.js:105:10)
@webpack:///../touche-1.0.6/src/index.js?:1:7
@resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js:13:1
@resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js:14:12
@/usr/bin/touche:11:1

This appears to be related to #4 @yochananmarqos

Feature request: Be verbose on errors, and quit on errors instead of beeing stuck without UI.

Is your feature request related to a problem? Please describe

When I start touche with a touchegg.conf which has invalid XML, touche does not show a GUI but also does not quit, and shows only unspecific error messages.

Example:

  • Take this touchegg.conf which contains the single character & whis is ivalid HTML (see this comment for details on that part) as ~/.config/touchegg/touchegg.conf.
  • Run touche.
  • touche produces the following terminal output:
    (com.github.joseexposito.touche:22701): Gtk-WARNING **: 10:57:40.714: Unknown key gtk-button-images in /[...]/.config/gtk-4.0/settings.ini
    
    (com.github.joseexposito.touche:22701): Gtk-WARNING **: 10:57:40.714: Unknown key gtk-menu-images in /[...]/.config/gtk-4.0/settings.ini
    
    (com.github.joseexposito.touche:22701): Gtk-WARNING **: 10:57:40.714: Unknown key gtk-toolbar-style in /[...]/.config/gtk-4.0/settings.ini
    Gjs-Message: 10:57:40.853: JS LOG: Reading configuration file "/[...]/.config/touchegg/touchegg.conf"
    
    (com.github.joseexposito.touche:22701): Gjs-CRITICAL **: 10:57:40.870: JS ERROR: Error: Unexpected close tag
    Line: 101
    Column: 15
    Char: >
    error@webpack:///../node_modules/sax/lib/sax.js?:684:10
    strictFail@webpack:///../node_modules/sax/lib/sax.js?:711:12
    closeTag@webpack:///../node_modules/sax/lib/sax.js?:913:19
    write@webpack:///../node_modules/sax/lib/sax.js?:1549:21
    module.exports@webpack:///../node_modules/xml-js/lib/xml2js.js?:411:12
    loadConfig@webpack:///../src/config/xml-config.js?:89:66
    loadFromFile@webpack:///../src/config/model.js?:103:57
    showMainView@webpack:///../src/app-window.js?:84:59
    _init@webpack:///../src/app-window.js?:61:12
    main/<@webpack:///../src/index.js?:53:22
    main@webpack:///../src/index.js?:58:22
    run@resource:///org/gnome/gjs/modules/script/package.js:206:19
    @/usr/bin/touche:11:17
    
  • touche does not come up with a user interface, but also does not quit but stays stuck.

Describe the solution you'd like

  • Give a clear error message saying at which line it encountered which problem,
  • exit with a non-zero exitcode.

Additional context

Issue #48.

Running "g++ --version" gave "[Errno 2] No such file or directory: 'g++'"

Describe the bug

When trying to create an rpm package for Fedora, I run the following as described in HACKING.md

$ rpmbuild -ba rpm/touchegg.spec

Expected behaviour

The previous steps did complete without error:

$ mkdir -p ~/rpmbuild/{BUILD,RPMS,SOURCES,SPECS,SRPMS}
$ tar --exclude='.flatpak-builder' --exclude='.git' --exclude='build' --exclude='com.github.joseexposito.touche.yml' -czvf ~/rpmbuild/SOURCES/touche.tar.gz -C .. touche

Actual behaviour

I get the following error:

Running "g++ --version" gave "[Errno 2] No such file or directory: 'g++'"

Logs

This is the tail of the output to the terminal:

+ export FCFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib64:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ /usr/bin/meson --buildtype=plain --prefix=/usr --libdir=/usr/lib64 --libexecdir=/usr/libexec --bindir=/usr/bin --sbindir=/usr/sbin --includedir=/usr/include --datadir=/usr/share --mandir=/usr/share/man --infodir=/usr/share/info --localedir=/usr/share/locale --sysconfdir=/etc --localstatedir=/var --sharedstatedir=/var/lib --wrap-mode=nodownload --auto-features=enabled . x86_64-redhat-linux-gnu -Dflatpak=false
The Meson build system
Version: 0.59.1
Source dir: /home/me/rpmbuild/BUILD/touche
Build dir: /home/me/rpmbuild/BUILD/touche/x86_64-redhat-linux-gnu
Build type: native build
Project name: com.github.joseexposito.touche
Project version: 2.0.1
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program gjs found: YES (/bin/gjs)
Program npm found: YES (/bin/npm)
Program node found: YES (/bin/node)
Program g-ir-scanner found: YES (/bin/g-ir-scanner)
Program desktop-file-validate found: YES (/bin/desktop-file-validate)
Program appstream-util found: YES (/bin/appstream-util)
Program glib-compile-schemas found: YES (/bin/glib-compile-schemas)
Program xgettext found: YES (/bin/xgettext)

Executing subproject libtouche 

libtouche| Project name: libtouche
libtouche| Project version: 2.0.0

subprojects/libtouche/meson.build:1:0: ERROR: Unknown compiler(s): [['g++']]
The following exception(s) were encountered:
Running "g++ --version" gave "[Errno 2] No such file or directory: 'g++'"

A full log can be found at /home/me/rpmbuild/BUILD/touche/x86_64-redhat-linux-gnu/meson-logs/meson-log.txt
error: Bad exit status from /var/tmp/rpm-tmp.heb6EC (%build)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.heb6EC (%build)

Your environment

  • Operating System: Fedora
  • Desktop Environment: LXDE

Pb with meson

I have recently upgraded my distro and Touché is no more starting !

Looking at the details, I have found the reason :

"ninja: Entering directory `build'
[1/2] Installing files.

ERROR: Build directory has been generated with Meson version 0.57.2, which is incompatible with the current version 0.58.0.
FAILED: meson-install"

Is it possible to have a version upgraded to Meson 0.58 ?

Error building for Arch/Manjaro

Building from source:

(com.github.joseexposito.touche:578367): Gjs-CRITICAL **: 10:37:15.959: JS ERROR: Error: Module build failed (from ../touche-1.0.2/node_modules/babel-loader/lib/index.js):
Error: Cannot find module '@babel/plugin-proposal-class-properties'
Require stack:
- /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/@babel/core/lib/config/files/plugins.js
- /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/@babel/core/lib/config/files/index.js
- /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/@babel/core/lib/index.js
- /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/babel-loader/lib/index.js
- /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/loader-runner/lib/loadLoader.js
- /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/loader-runner/lib/LoaderRunner.js
- /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/webpack/lib/NormalModule.js
- /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/webpack/lib/NormalModuleFactory.js
- /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/webpack/lib/Compiler.js
- /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/webpack/lib/webpack.js
- /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/webpack/lib/index.js
- /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/bundle/scripts/build.js
    at Function.Module._resolveFilename (node:internal/modules/cjs/loader:925:15)
    at resolve (node:internal/modules/cjs/helpers:98:19)
    at resolveStandardizedName (/mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/@babel/core/lib/config/files/plugins.js:100:7)
    at resolvePlugin (/mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/@babel/core/lib/config/files/plugins.js:44:10)
    at loadPlugin (/mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/@babel/core/lib/config/files/plugins.js:52:20)
    at createDescriptor (/mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/@babel/core/lib/config/config-descriptors.js:154:9)
    at /mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/@babel/core/lib/config/config-descriptors.js:109:50
    at Array.map (<anonymous>)
    at createDescriptors (/mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/@babel/core/lib/config/config-descriptors.js:109:29)
    at createPluginDescriptors (/mnt/storage/pkgbuilds/touche/src/touche-1.0.2/node_modules/@babel/core/lib/config/config-descriptors.js:105:10)
@webpack:///../touche-1.0.2/src/index.js?:1:7
@resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js:13:1
@resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js:14:12
@/usr/bin/com.github.joseexposito.touche:11:1


(com.github.joseexposito.touche:578367): Gjs-CRITICAL **: 10:37:15.959: Script /usr/bin/com.github.joseexposito.touche threw an exception

It should not be referencing the build directory, for one.

Installing from DEB:

Gjs-Message: 10:50:39.035: JS WARNING: [resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 305 > eval 25]: Requiring Gtk but it has 3 versions available; use imports.gi.versions to pick one

(com.github.joseexposito.touche:585716): Gjs-CRITICAL **: 10:50:39.079: JS ERROR: Error: Requiring Wnck, version none: Requiring namespace 'Gtk' version '3.0', but '4.0' is already loaded
@webpack:///../src/add-app-view/index.js?:43:14
../src/add-app-view/index.js@resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js:19:1
__webpack_require__@resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js:1345:41
@webpack:///../src/app-window.js?:7:90
../src/app-window.js@resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js:30:1
__webpack_require__@resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js:1345:41
@webpack:///../src/index.js?:2:88
../src/index.js@resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js:129:1
__webpack_require__@resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js:1345:41
@resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js:1407:30
@resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js:1409:12
@/usr/bin/touche:11:1


(com.github.joseexposito.touche:585716): Gjs-CRITICAL **: 10:50:39.079: Script /usr/bin/touche threw an exception

I have GTK 2, 3 & 4 installed, appparently that's throwing it off. libwnck3 is installed, but it seems it can't find the version. I'm using Manjaro GNOME.

Can't save settings

Describe the bug

Touché does not save changed settings.

Expected behaviour

I would either expect a save button to explicitly save settings but I can't find it anywhere. As I can't find it, I would expect Touché to save settings as they are changes.

Actual behaviour

When being closed and re-opened, settings are back to default.

Logs

If required, include logs of the bug:

$ flatpak run com.github.joseexposito.touche
(com.github.joseexposito.touche:2): Gjs-CRITICAL **: 23:14:30.073: JS ERROR: Gio.IOErrorEnum: Error creating directory /home/myaccount/.config/touchegg: Read-only file system
createDir@webpack:///../src/config/xml-config.js?:227:12
saveConfig@webpack:///../src/config/xml-config.js?:190:15
saveToFile@webpack:///../src/config/model.js?:101:54
saveSettings@webpack:///../src/main-view/content/gesture-list-row.js?:157:56
_init/<@webpack:///../src/main-view/content/gesture-list-row.js?:89:12
main@webpack:///../src/index.js?:71:22
run@resource:///org/gnome/gjs/modules/script/package.js:222:19
@/app/bin/com.github.joseexposito.touche:11:17

This error occurs as soon as I change any setting. The FS is not read-only!

Attach Touchégg configuration, placed at ~/.config/touchegg/touchegg.conf, if you consider it relevant.

--> doesn't exist

Your environment

  • Touché version: no idea. I installed it today via "Software" (not "Ubuntu Software"!) and Touchegg via pa:touchegg/stable (as described in the docs)
  • Touchégg version: same
  • Operating System: Ubuntu 20.10
  • Desktop Environment: Gnome
  • Installation method: seems to be Flatpak

It does not perform any gestures

It does not perform any actions. I don't know the issue and how to fix this. I would appreciate the helps. (I do not know what to say to describe the problem so ask for something and i will give info about what you will ask for)

Touché doesn't start on Ubuntu 18.04

Describe the bug

Touché doesn't start on Ubuntu 18.04

Expected behaviour

The main window should appear

Actual behaviour

Nothing happens :P

Logs

When running manually from the terminal, this is all I get:

$ com.github.joseexposito.touche
Gjs-Message: 11:56:26.731: JS LOG: Granite is not available
Gjs-Message: 11:56:26.744: JS WARNING: [resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 540 > eval 52]: reference to undefined property "forced"
Gjs-Message: 11:56:26.828: JS LOG: Reading configuration file "/home/jack/.config/touchegg/touchegg.conf"
Gjs-Message: 11:56:26.828: JS WARNING: [resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 1251 > eval 54]: reference to undefined property "position"
Gjs-Message: 11:56:26.828: JS WARNING: [resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 1322 > eval 109]: reference to undefined property "_text"

(com.github.joseexposito.touche:11390): Gjs-WARNING **: 11:56:26.830: JS ERROR: Error: Text data outside of root node.
Line: 0
Column: 28
Char: ]
error@webpack:///../node_modules/sax/lib/sax.js?:684:10
strictFail@webpack:///../node_modules/sax/lib/sax.js?:711:7
write@webpack:///../node_modules/sax/lib/sax.js?:1104:15
module.exports@webpack:///../node_modules/xml-js/lib/xml2js.js?:411:5
loadConfig@webpack:///../src/config/xml-config.js?:77:20
loadFromFile@webpack:///../src/config/model.js?:97:5
showMainView@webpack:///../src/app-window.js?:89:5
_init@webpack:///../src/app-window.js?:64:7
main/<@webpack:///../src/index.js?:66:22
main@webpack:///../src/index.js?:71:10
run@resource:///org/gnome/gjs/modules/package.js:225:12
@/usr/bin/com.github.joseexposito.touche:11:1

^C

Nothing appears, nothing else happens, and I have to Ctrl+C out of the app.

Your environment

  • Touché version: 2.0.8
  • Touchégg version: 1.0.4
  • Operating System: Ubuntu 18.04
  • Desktop Environment: Gnome
  • Installation method: Debian package

Touchpad disabled on Gnome ignored

Describe the bug

If the touchpad is disabled, basically with the dedicated key that some laptops have, Gnome detects this, but Touche doesn't. It still works.

Expected behaviour

Disabling the touchpad should disable the gestures until is back on.

$ com.github.joseexposito.touche

Your environment

  • Touché version: 1.0.4
  • Touchégg version: 2.0.9
  • Operating System: Arch Linux
  • Desktop Environment: Gnome
  • Installation method: AUR packages

Package warnings

Building the latest release of this package produces some warnings:

  W: touche: appstream-metadata-in-legacy-location usr/share/appdata/com.github.joseexposito.touche.appdata.xml
  W: touche: description-synopsis-starts-with-article
  W: touche: gir-missing-typelib-dependency usr/share/gir-1.0/Touche-1.0.0.gir gir1.2-touche-1.0.0
  W: touche: gir-section-not-libdevel usr/share/gir-1.0/Touche-1.0.0.gir misc
  W: touche: no-manual-page usr/bin/com.github.joseexposito.touche
  W: touche source: package-depends-on-hardcoded-libc touche Depends
  W: touche: package-name-doesnt-match-sonames libtouche
  W: touche: shared-library-lacks-version usr/lib/arm-linux-gnueabihf/libtouche.so libtouche.so
  W: touche: typelib-package-name-does-not-match usr/lib/arm-linux-gnueabihf/girepository-1.0/Touche-1.0.0.typelib gir1.2-touche-1.0.0
  W: touche: typelib-section-not-introspection usr/lib/arm-linux-gnueabihf/girepository-1.0/Touche-1.0.0.typelib misc
  I: touche: no-symbols-control-file usr/lib/arm-linux-gnueabihf/libtouche.so
  I: touche source: out-of-date-standards-version 4.5.0 (released 2020-01-20) (current is 4.5.1)
  I: touche source: unused-override source-is-missing node_modules/*

Ideally, either these should be addressed or overridden.

The System theme is not respected

Using Arch + XFCE via Manjaro. Touche version 2.0.2-1.

This is how Touche looks on my system:

2022-01-13_13-57

The theme is not respected - I use a dark theme and Touche has a light theme. The window buttons are to the opposite side and they lack the maximize and minimize ones. This is a recent bug I think since it used to work well some 2 weeks ago.

Cheers!

Unable to assign FireFox shortcuts to swipe

Describe the bug

When I am trying to create a keyboard shortcut in Touche, when i click on the shortcut area, nothing happens and key inputs are not recognized.

Expected behaviour

I thought it would operate like setting a global short cut where it shows the user input (example, I wanted "alt+L_arrow" as a three finger swipe right gesture in firefox)

Actual behaviour

Nothing happens

Logs

Flatpak output
(com.github.joseexposito.touche:2): Gjs-CRITICAL **: 14:52:40.578: JS ERROR: TypeError: surface.get_xid is not a function
grabKeyboard@webpack:///../src/main-view/content/shortcut-button.js?:74:25
_init/<@webpack:///../src/main-view/content/shortcut-button.js?:56:40
main@webpack:///../src/index.js?:58:22
run@resource:///org/gnome/gjs/modules/script/package.js:206:19
@/app/bin/com.github.joseexposito.touche:11:17

Your environment

  • Touché version: 2.0.2
  • Touchégg version: v2.0.12.
  • Operating System: Fedora 35
  • Desktop Environment: Gnome 40
  • Installation method: Flatpak

How go back in browser? (Alt+Left key)

Describe the bug

Hi! If i try to import Left Alt + Left arrow key it don't work... why? This is a picture (i'm italian and this is in italian) of how I configured it... Tranks!

immagine

Expected behaviour

Work (go back in firefox)

Actual behaviour

Nothing

Logs

If required, include logs of the bug:
Gjs-Message: 11:54:13.110: JS LOG: Granite is not available
Gtk-Message: 11:54:13.161: Failed to load module "xapp-gtk3-module"

Attach Touchégg configuration, placed at ~/.config/touchegg/touchegg.conf, if you consider it
relevant.

#

true

Control_L

KP_Subtract

KP_Add

true

Control_L

KP_Add

KP_Subtract

RAlt+Right

Alt+Right

false

begin

Alt_L+KP_Left

Alt_L+KP_Left

false

begin

Your environment

  • Touché version: Last
  • Touchégg version: Last
  • Operating System: Linux Mint (Ubuntu based)
  • Desktop Environment: Cinnamon (Gnome based)
  • Installation method: Flatpak

Adding Gnome-Terminal as a new application in Touché selects the wrong WM_CLASS

Adding Gnome-Terminal as a new application in Touché selects the wrong WM_CLASS

If one adds a new application in Touché with the "plus" in the bottom left, and selects a gnome terminal, the application is added, but the gestures will not be registered. This is due to the fact that Touché selects the wrong WM_CLASS.

The required xprop output is as follows:

WM_CLASS(STRING) = "gnome-terminal-server", "Gnome-terminal"

Workaround

Replace the line <application name="gnome-terminal-server"> in ~/.config/touchegg/touchegg.conf with <application name="gnome-terminal">

Expected behaviour

The correct WM_CLASS is selected.

Actual behaviour

The wrong WM_CLASS is selected.

Logs

No logs.

<touchégg>
  <settings>
    <property name="animation_delay">150</property>
    <property name="action_execute_threshold">20</property>
    <property name="color">auto</property>
    <property name="borderColor">auto</property>
  </settings>
  <application name="gnome-terminal">
    <!-- Correct WM_CLASS>
  </application>
  <application name="gnome-terminal-server">
    <!-- Wrong WM_CLASS>
  </application>
</touchégg>

Your environment

  • Touché version: 1.0.3
  • Touchégg version: v2.0.8
  • Operating System: !Pop_OS 20.10
  • Desktop Environment: Gnome
  • Installation method: Debian package...

[Question] Global gestures with 4 fingers, browser with 3 fingers possible?

Just wondering, I am using Manjaro Gnome and just found out this little tool via the application launcher: Touche.
I just wonder if I can set Global Gestures to 4 fingers instead of 3?
Makes it a bit easier to use them together with the browser. I am used to 4 finger global gestures (coming from Macbook) and 3 finger gestures for the browser (Firefox).

cannot customise gestures from touche

Describe the bug

Three finger gestures are shown as used by gnome even though 4 is set as number of fingers to use and none of the gestures can be customised

Expected behaviour

When number of fingers is set as 4, 3 finger gestures should be freed for customisation

Actual behaviour

When number of fingers is set as 4 both 3 and 4 finger gestures are marked as used by gnome and cannot be customised

Your environment

  • Touché version: 1.0.6
  • Touchégg version: 2.0.11
  • Operating System: Manjaro
  • Desktop Environment: Gnome 40
  • Installation method: Manjaro package

image

Can't save settings

Describe the bug

Touché does not save changed settings. Similar to #16

Expected behaviour

I would either expect a save button to explicitly save settings but I can't find it anywhere. As I can't find it, I would expect Touché to save settings as they are changes.

Actual behaviour

When being closed and re-opened, settings are back to what is in the configuration file. Basically the touchegg.conf is not at all changed.

Logs

If required, include logs of the bug:

$ flatpak run com.github.joseexposito.touche
(com.github.joseexposito.touche:2): Gjs-CRITICAL **: 21:36:35.682: JS ERROR: Gio.IOErrorEnum: Error opening file “/home/analog/.config/touchegg/touchegg.conf”: Read-only file system
writeFile@webpack:///../src/config/xml-config.js?:246:40
saveConfig@webpack:///../src/config/xml-config.js?:191:15
saveToFile@webpack:///../src/config/model.js?:101:54
saveSettings@webpack:///../src/main-view/content/gesture-list-row.js?:157:56
_init/<@webpack:///../src/main-view/content/gesture-list-row.js?:89:12
main@webpack:///../src/index.js?:71:22
run@resource:///org/gnome/gjs/modules/script/package.js:222:19
@/app/bin/com.github.joseexposito.touche:11:17

Attach Touchégg configuration, placed at ~/.config/touchegg/touchegg.conf, if you consider it
relevant. Not sure about relevance, but here it is.

<touchégg>
  <settings>
    <property name="animation_delay">150</property>
    <property name="action_execute_threshold">20</property>
    <property name="color">auto</property>
    <property name="borderColor">auto</property>
  </settings>
  <application name="All">
    <gesture type="SWIPE" fingers="3" direction="UP">
      <action type="RUN_COMMAND">
        <command>qdbus org.kde.kglobalaccel /component/kwin invokeShortcut "ExposeAll"</command>
      </action>
    </gesture>
    <gesture type="SWIPE" fingers="3" direction="DOWN">
      <action type="MINIMIZE_WINDOW">
        <animate>true</animate>
      </action>
    </gesture>
    <gesture type="SWIPE" fingers="3" direction="LEFT">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Alt_L</modifiers>
        <keys>Shift_L+Tab</keys>
        <decreaseKeys>Tab</decreaseKeys>
      </action>
    </gesture>
    <gesture type="SWIPE" fingers="3" direction="RIGHT">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Alt_L</modifiers>
        <keys>Tab</keys>
        <decreaseKeys>Shift_L+Tab</decreaseKeys>
      </action>
    </gesture>
    <gesture type="SWIPE" fingers="4" direction="LEFT">
      <action type="CHANGE_DESKTOP">
        <direction>auto</direction>
        <animate>true</animate>
        <animationPosition>auto</animationPosition>
      </action>
    </gesture>
    <gesture type="SWIPE" fingers="4" direction="RIGHT">
      <action type="CHANGE_DESKTOP">
        <direction>auto</direction>
        <animate>true</animate>
        <animationPosition>auto</animationPosition>
      </action>
    </gesture>
    <gesture type="SWIPE" fingers="4" direction="UP">
      <action type="RUN_COMMAND">
      <command>dbus-send --session --type=method_call --dest=org.gnome.Shell /org/gnome/Shell org.gnome.Shell.Eval string:'Main.overview.show();'</command>
      </action>
    </gesture>
    <gesture type="SWIPE" fingers="4" direction="DOWN">
      <action type="RUN_COMMAND">
        <command>notify-send "Hello"</command>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="OUT">
      <action type="SHOW_DESKTOP">
        <animate>true</animate>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="IN">
      <action type="CLOSE_WINDOW">
        <animate>true</animate>
        <color>F84A53</color>
        <borderColor>F84A53</borderColor>
      </action>
    </gesture>
  
</application>
  <application name="chromium-browser">
    <gesture type="PINCH" fingers="2" direction="IN">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Control_L</modifiers>
        <keys>KP_Subtract</keys>
        <decreaseKeys>KP_Add</decreaseKeys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="2" direction="OUT">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Control_L</modifiers>
        <keys>KP_Add</keys>
        <decreaseKeys>KP_Subtract</decreaseKeys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="IN">
      <action type="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Control_L</modifiers>
        <keys>W</keys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="OUT">
      <action type="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Control_L</modifiers>
        <keys>Shift_L+T</keys>
      </action>
    </gesture>
  </application>
  <application name="dolphin">
    <gesture type="PINCH" fingers="2" direction="IN">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Control_L</modifiers>
        <keys>KP_Subtract</keys>
        <decreaseKeys>KP_Add</decreaseKeys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="2" direction="OUT">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Control_L</modifiers>
        <keys>KP_Add</keys>
        <decreaseKeys>KP_Subtract</decreaseKeys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="IN">
      <action type="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Control_L</modifiers>
        <keys>W</keys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="OUT">
      <action type="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Control_L</modifiers>
        <keys>Shift_L+T</keys>
      </action>
    </gesture>
  </application>
  <application name="firefox">
    <gesture type="PINCH" fingers="2" direction="IN">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Control_L</modifiers>
        <keys>KP_Subtract</keys>
        <decreaseKeys>KP_Add</decreaseKeys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="2" direction="OUT">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Control_L</modifiers>
        <keys>KP_Add</keys>
        <decreaseKeys>KP_Subtract</decreaseKeys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="IN">
      <action type="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Control_L</modifiers>
        <keys>W</keys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="OUT">
      <action type="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Control_L</modifiers>
        <keys>Shift_L+T</keys>
      </action>
    </gesture>
  </application>
  <application name="google-chrome">
    <gesture type="PINCH" fingers="2" direction="IN">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Control_L</modifiers>
        <keys>KP_Subtract</keys>
        <decreaseKeys>KP_Add</decreaseKeys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="2" direction="OUT">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Control_L</modifiers>
        <keys>KP_Add</keys>
        <decreaseKeys>KP_Subtract</decreaseKeys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="IN">
      <action type="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Control_L</modifiers>
        <keys>W</keys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="OUT">
      <action type="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Control_L</modifiers>
        <keys>Shift_L+T</keys>
      </action>
    </gesture>
  </application>
  <application name="gwenview">
    <gesture type="PINCH" fingers="2" direction="IN">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Control_L</modifiers>
        <keys>KP_Subtract</keys>
        <decreaseKeys>KP_Add</decreaseKeys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="2" direction="OUT">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Control_L</modifiers>
        <keys>KP_Add</keys>
        <decreaseKeys>KP_Subtract</decreaseKeys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="IN">
      <action type="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Control_L</modifiers>
        <keys>W</keys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="OUT">
      <action type="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Control_L</modifiers>
        <keys>Shift_L+T</keys>
      </action>
    </gesture>
  </application>
  <application name="konsole">
    <gesture type="PINCH" fingers="2" direction="IN">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Control_L</modifiers>
        <keys>KP_Subtract</keys>
        <decreaseKeys>KP_Add</decreaseKeys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="2" direction="OUT">
      <action type="SEND_KEYS">
        <repeat>true</repeat>
        <modifiers>Control_L</modifiers>
        <keys>KP_Add</keys>
        <decreaseKeys>KP_Subtract</decreaseKeys>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="OUT">
      <action type="SEND_KEYS">
        <modifiers>Control_L</modifiers>
        <keys>Shift_L+N</keys>
        <repeat>false</repeat>
        <on>begin</on>
      </action>
    </gesture>
    <gesture type="PINCH" fingers="4" direction="IN">
      <action type="SEND_KEYS">
        <modifiers>Control_L</modifiers>
        <keys>Shift_L+W</keys>
        <repeat>false</repeat>
        <on>begin</on>
      </action>
    </gesture>
  </application>
</touchégg>

Note that in my case .config/touchegg -> ../open_files/dotfiles/touchegg/.config/touchegg is a soft link.

Your environment

  • Touché version: 1.0.5
  • Touchégg version: v2.0.10.
  • Operating System: Pop! OS 20.04 LTS (Based on Ubuntu 20.04 LTS)
  • Desktop Environment: Gnome
  • Installation method: Flatpak

I need to Shift_L modify an application button release event

Is your feature request related to a problem? Please describe

I don't think so but maybe a key release action is needed. See below:

UPDATE: I have since found out there are hotkeys to these frame buttons( Alt+r and Alt+Shift+r ).
So I need to do a gesture which adds the Shift_L modifier to those hotkey combinations.
Frame button = Shift_L Alt_L+r
Rubberband button = Shift_L Alt_L+Shift_R+r

The LightBurn laser cutter application has the ability to "Frame" the laser cutter design before cutting and with a diode laser if you apply a Shift key modifier on the button click(actually the release) it will fire the laser in low power to visually see if the positioning is correct. There is a Frame box button and a Frame rubberband button which each require a Shift modifier to add the laser fire capability to the framing operation.

Best operation I can think of would be if this were possible:
2 finger tap triggers frame and 3 finger tap triggers rubberband framing.

Also, I can press and hold the Frame button, then press/hold a real keyboard Shift key and on button release the Frame does the diode low power fire.

It’s getting weird!

with a physical Keyboard:
Alt-Shift+r does the rubberband AND fires the laser.
Shift-Alt+r does the rubberband AND fires the laser…
Alt+r does square frame, no laser
I can’t get square frame AND laser with hotkeys but I should be able to get the rubberband with laser firing but NOooooo.

With Gestures 2 finger tap and 3 finger tap
I record Shift_L+Alt_L+r which should trigger rubberband w/laser but it only does rubberband.
Alt_L+Shift_L+r also just does rubberband with no laser.
Alt_L+r does square frame as it should.

What's odd is that the 3 key gestures don’t trigger the laser and my guess is that it is because the first modifier(Shift) acts on the RELEASE of Alt+r and the gesture system does not have a release capability.

Warning when multiple GTK versions are installed

Describe the bug

When multiple versions of GTK are installed, Touché is throwing a warning:

Gjs-Message: 13:07:46.951: JS WARNING: [resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 305 > eval 25]: Requiring Gtk but it has 2 versions available; use imports.gi.versions to pick one

Expected behaviour

It should target GTK 3

Additional notes:

Reported by @yochananmarqos here #4 (comment)

Touche doesn't launch properly on Pop!_OS 20.10

Describe the bug

I'm not sure how to reproduce this bug, but I'm currently on Pop!_OS 20.10 with Touche installed as a flatpak and touchegg installed using sudo apt install touchegg. When I launch Touche, it doesn't show anything or just shows a small empty box.

Expected behaviour

The user interface launches nicely allowing the user to configure settings from it

Actual behaviour

Just shows a small box.
image

Logs

Gjs-Message: 10:35:02.941: JS LOG: Granite is not available
Gtk-Message: 10:35:02.943: Failed to load module "appmenu-gtk-module"
Gtk-Message: 10:35:03.094: Failed to load module "canberra-gtk-module"
Gtk-Message: 10:35:03.097: Failed to load module "canberra-gtk-module"
Gjs-Message: 10:35:03.136: JS LOG: Reading configuration file "/home/.../.config/touchegg/touchegg.conf"

(com.github.joseexposito.touche:2): Gjs-WARNING **: 10:35:03.140: Some code called array.toString() on a Uint8Array instance. Previously this would have interpreted the bytes of the array as a string, but that is nonstandard. In the future this will return the bytes as comma-separated digits. For the time being, the old behavior has been preserved, but please fix your code anyway to explicitly call ByteArray.toString(array).
(Note that array.toString() may have been called implicitly.)
0 write() ["resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 1241 > eval":1037:20]
1 module.exports() ["resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 1312 > eval":411:11]
2 loadConfig() ["resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 118 > eval":76:65]
3 loadFromFile() ["resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 96 > eval":97:53]
4 showMainView() ["resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 30 > eval":89:55]
5 showMainView() ["self-hosted":850:0]
6 _init() ["resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 30 > eval":64:11]
7 main/<() ["resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 129 > eval":81:21]
8 main() ["resource:///com/github/joseexposito/touche/js/com.github.joseexposito.touche.js line 129 > eval":86:21]
9 run() ["resource:///org/gnome/gjs/modules/script/package.js":222:18]
10 <TOP LEVEL> ["/app/bin/com.github.joseexposito.touche":11:16]

Gjs-Message: 10:35:03.160: JS LOG: Saving global settings in the model

(com.github.joseexposito.touche:2): Gjs-CRITICAL **: 10:35:03.161: JS ERROR: TypeError: globalSettings.forEach is not a function
loadConfig@webpack:///../src/config/xml-config.js?:81:20
loadFromFile@webpack:///../src/config/model.js?:97:54
showMainView@webpack:///../src/app-window.js?:89:56
_init@webpack:///../src/app-window.js?:64:12
main/<@webpack:///../src/index.js?:81:22
main@webpack:///../src/index.js?:86:22
run@resource:///org/gnome/gjs/modules/script/package.js:222:19
@/app/bin/com.github.joseexposito.touche:11:17

Your environment

  • Touché version: 1.0.2
  • Touchégg version: 2.0.7
  • Operating System: Pop!_OS 20.10 (Fork of Ubuntu)
  • Desktop Environment: Gnome
  • Installation method: Flatpak

Add to PPA

Investigate if it possible to add Touché to Touchégg's PPA.

Add Debian dependency: touchegg

At least a recommends field for it would make sense, even if not a hard dependency. This would mean that if touchegg is not installed and touche is installed from a Debian repository, then touchegg will be installed also. I think that this is the ideal behaviour.

Question: How to launch Touche?

Sorry, this is a very noob question. I'm new with flatpacks and linux in general...

After installing through flathub, what's the normal way to launch Touche? So far, the only way I found was to open my software manager, locate Touche in the list of installed app and use the Launch button. (Screenshot: https://i.imgur.com/FEOJTb2.png )

Touche doesn't show up in my Application Menu. Is that normal?

can't add new applications to Touche

Describe the bug

When trying to add new application to the Touche UI the cursor changes to a 'cross-hair' but when moving the mouse to any window the cursor changes back to the regular pointer and clicking on application windows has no effect.

Expected behaviour

Not sure, haven't used the app before, but would expect when the 'add app' icon is clicked and then mouse clicked over another app window it should get added to touche.

Your environment

  • Touché version:
  • Touchégg version: 2.0.11
  • Operating System: Fedora 34
  • Desktop Environment: KDE Wayland
  • Installation method: pre-installed, assuming it's flatpak

touche unconditionally overwrites existing `touchegg.conf` without warning.

Describe the bug

When I change anything in touche, an existing touchegg.conf is overwritten without warning. Entries not understood by touche are lost.

Expected behaviour

Ask before overwriting an existing configuration file; keep non-understood entries or ask what to do with them; offer a side-by-side-view mode of original file and file that touche would write.

Actual behaviour

When I change anything in touche, an existing touchegg.conf is overwritten without warning. Entries not understood by touche are lost.

Logs

  • Touché version: 2.0.0
  • Touchégg version: 2.0.11
  • Operating System: Ubuntu, Fedora, Arch Linux...: Artix GNU/Linux
  • Desktop Environment: Gnome, KDE, Xfce...: No full Desktop environment. Just plain window manager (xfwm4) and taskbar (xfce4-taskbar), software to autostart started via ~/.xinitrc.
  • Installation method: Flatpak, Debian package...: Arch Linux AUR package touchegg-nosystemd.

OpenGL error when opening the app

Describe the bug

Just installed the app normally using flatpak. Then when tried to open in Terminal got OpenGL error.

Expected behaviour

The app should open.

Actual behaviour

The don't open.

Logs

$ flatpak run com.github.joseexposito.touche
...
...
No provider of glGetShaderiv found.  Requires one of:
    Desktop OpenGL 2.0
    OpenGL ES 2.0

$ glxinfo | grep OpenGL
OpenGL vendor string: Intel
OpenGL renderer string: Mesa Intel(R) UHD Graphics (CML GT2)
OpenGL core profile version string: 4.6 (Core Profile) Mesa 21.0.3
OpenGL core profile shading language version string: 4.60
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile
OpenGL core profile extensions:
OpenGL version string: 4.6 (Compatibility Profile) Mesa 21.0.3
OpenGL shading language version string: 4.60
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile
OpenGL extensions:
OpenGL ES profile version string: OpenGL ES 3.2 Mesa 21.0.3
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20
OpenGL ES profile extensions:

I use default configuration. Didn't change anything in the config.

Your environment

  • Touché version: 2.0.0
  • Touchégg version: 2.0.11
  • Operating System: Ubuntu
  • Desktop Environment: Gnome
  • Installation method: Flatpak

Unsatisfied dependency: gtk

Describe the bug

When I try to start the program it says "Unsatisfied dependency: gtk" even though I have GTK3 and GTK2 packages installed:
x11-libs/gtk+-3.24.29 x11-libs/gtk+-2.24.33

Expected behaviour

The program should start

Actual behaviour

It doesn't start

Logs

If required, include logs of the bug:

$ flatpak run com.github.joseexposito.touche
# or
$ com.github.joseexposito.touche

Attach Touchégg configuration, placed at ~/.config/touchegg/touchegg.conf, if you consider it
relevant.

Your environment

  • Touché version: commit 91a8e2a
  • Touchégg version: v2.0.11
  • Operating System: Ubuntu, Fedora, Arch Linux... Gentoo
  • Desktop Environment: Gnome, KDE, Xfce... Xfce4
  • Installation method: Flatpak, Debian package... installed from source

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.