elementary / default-settings

Default settings for elementary OS
GNU General Public License v3.0
39 stars 28 forks source link

multitouch gestures two actions performed in one gesture #209

Closed fidelisakilan closed 3 years ago

fidelisakilan commented 3 years ago

What Happened

when i swipe left or right in touchpad two actions are triggered, both to next workspace and tile left and right is triggered. also when swiping up with three fingers multitask view and maximize a window is triggered swiping with 4 fingers up or down is showing a animated arrow for the moving to next workspace.

Expected Behaviour

Expected to move workspace with three finger swipe horizontally and multitask view when swiping upward. Two finger gestures in moving pages in a app is working properly

Steps to Reproduce

1.Newly installed daily ISO on a laptop(Not VM). 2.trying out gestures with touchpad.

Logs

Platform Information

image image EXACT PROBLEM in a screenshot. Screenshot from 2021-01-16 09-29-51

JoseExposito commented 3 years ago

Hi @fidelisakilan , thanks for your bug report.

Could you include an screenshot of Settings > Mouse & Touchpad > Gestures, please?

This is caused by a conflict in your Gestures settings and Touchégg configuration.

If you could also attach the output of this two commands it'd be really useful (copy and paste them in the terminal please):

cat /usr/share/touchegg/touchegg.conf

And

cat ~/.config/touchegg/touchegg.conf

In case you don't feel comfortable with the terminal, you can navigate using Files to /usr/share/touchegg and ~/.config/touchegg and attach both touchegg.conf files.

fidelisakilan commented 3 years ago

image In usr/share/touchegg:

<touchégg>

  <settings>
    <!--
      Delay, in milliseconds, since the gesture starts before the animation is displayed.
      Default: 150ms if this property is not set.
      Example: Use the MAXIMIZE_RESTORE_WINDOW action. You will notice that no animation is
      displayed if you complete the action quick enough. This property configures that time.
    -->
    <property name="animation_delay">150</property>

    <!--
      Percentage of the gesture to be completed to apply the action. Set to 0 to execute actions unconditionally.
      Default: 20% if this property is not set.
      Example: Use the MAXIMIZE_RESTORE_WINDOW action. You will notice that, even if the
      animation is displayed, the action is not executed if you did not move your fingers far
      enough. This property configures the percentage of the gesture that must be reached to
      execute the action.
    -->
    <property name="action_execute_threshold">20</property>

    <!--
      Global animation colors can be configured to match your system colors using HEX notation:

        <color>909090</color>
        <borderColor>FFFFFF</borderColor>

      You can also use auto:

        <property name="color">auto</property>
        <property name="borderColor">auto</property>

      Notice that you can override an specific animation color.
    -->
    <property name="color">auto</property>
    <property name="borderColor">auto</property>
  </settings>

  <!--
    Configuration for every application.
  -->
  <application name="All">
    <gesture type="SWIPE" fingers="3" direction="UP">
      <action type="MAXIMIZE_RESTORE_WINDOW">
        <animate>true</animate>
      </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="TILE_WINDOW">
        <direction>left</direction>
        <animate>true</animate>
      </action>
    </gesture>

    <gesture type="SWIPE" fingers="3" direction="RIGHT">
      <action type="TILE_WINDOW">
        <direction>right</direction>
        <animate>true</animate>
      </action>
    </gesture>

    <gesture type="PINCH" fingers="3" direction="IN">
      <action type="CLOSE_WINDOW">
        <animate>true</animate>
        <color>F84A53</color>
        <borderColor>F84A53</borderColor>
      </action>
    </gesture>

    <gesture type="SWIPE" fingers="4" direction="UP">
      <action type="CHANGE_DESKTOP">
        <direction>auto</direction>
        <animate>true</animate>
        <animationPosition>auto</animationPosition>
      </action>
    </gesture>

    <gesture type="SWIPE" fingers="4" direction="DOWN">
      <action type="CHANGE_DESKTOP">
        <direction>auto</direction>
        <animate>true</animate>
        <animationPosition>auto</animationPosition>
      </action>
    </gesture>

    <gesture type="SWIPE" fingers="4" direction="RIGHT">
      <action type="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Super_L</modifiers>
        <keys>S</keys>
        <on>begin</on>
      </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="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Super_L</modifiers>
        <keys>A</keys>
        <on>begin</on>
      </action>
    </gesture>
  </application>

  <!--
    Configuration for specific applications.
  -->

  <application name="Google-chrome,Chromium-browser,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>
  </application>

</touchégg>

in .config/touchegg

<?xml version="1.0"?>
<touchégg>

  <settings>
    <!--
      Delay, in milliseconds, since the gesture starts before the animation is displayed.
      Default: 150ms if this property is not set.
      Example: Use the MAXIMIZE_RESTORE_WINDOW action. You will notice that no animation is
      displayed if you complete the action quick enough. This property configures that time.
    -->
    <property name="animation_delay">150</property>

    <!--
      Percentage of the gesture to be completed to apply the action. Set to 0 to execute actions unconditionally.
      Default: 20% if this property is not set.
      Example: Use the MAXIMIZE_RESTORE_WINDOW action. You will notice that, even if the
      animation is displayed, the action is not executed if you did not move your fingers far
      enough. This property configures the percentage of the gesture that must be reached to
      execute the action.
    -->
    <property name="action_execute_threshold">20</property>

    <!--
      Global animation colors can be configured to match your system colors using HEX notation:

        <color>909090</color>
        <borderColor>FFFFFF</borderColor>

      You can also use auto:

        <property name="color">auto</property>
        <property name="borderColor">auto</property>

      Notice that you can override an specific animation color.
    -->
    <property name="color">auto</property>
    <property name="borderColor">auto</property>
  </settings>

  <!--
    Configuration for every application.
  -->
  <application name="All">

    <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="TILE_WINDOW">
        <direction>left</direction>
        <animate>true</animate>
      </action>
    </gesture>

    <gesture type="SWIPE" fingers="3" direction="RIGHT">
      <action type="TILE_WINDOW">
        <direction>right</direction>
        <animate>true</animate>
      </action>
    </gesture>

    <gesture type="PINCH" fingers="3" direction="IN">
      <action type="CLOSE_WINDOW">
        <animate>true</animate>
        <color>F84A53</color>
        <borderColor>F84A53</borderColor>
      </action>
    </gesture>

    <gesture type="SWIPE" fingers="4" direction="UP">
      <action type="CHANGE_DESKTOP">
        <direction>auto</direction>
        <animate>true</animate>
        <animationPosition>auto</animationPosition>
      </action>
    </gesture>

    <gesture type="SWIPE" fingers="4" direction="DOWN">
      <action type="CHANGE_DESKTOP">
        <direction>auto</direction>
        <animate>true</animate>
        <animationPosition>auto</animationPosition>
      </action>
    </gesture>

    <gesture type="SWIPE" fingers="4" direction="RIGHT">
      <action type="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Super_L</modifiers>
        <keys>S</keys>
        <on>begin</on>
      </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="SEND_KEYS">
        <repeat>false</repeat>
        <modifiers>Super_L</modifiers>
        <keys>A</keys>
        <on>begin</on>
      </action>
    </gesture>
  <gesture type="SWIPE" fingers="4" direction="UP">
                <action type="MAXIMIZE_RESTORE_WINDOW">
                    <animate>true</animate>
                </action>
            </gesture></application>

  <!--
    Configuration for specific applications.
  -->

  <application name="Google-chrome,Chromium-browser,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>
  </application>

</touchégg>
JoseExposito commented 3 years ago

Thanks for the information provided.

@danrabbit it looks like something failed replacing the default configuration in https://github.com/elementary/default-settings

JoseExposito commented 3 years ago

@fidelisakilan for the moment, you can replace the contents of ~/.config/touchegg/touchegg.conf with:

<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">
  </application>
</touchégg>

And you will be able to use the system settings to configure your gestures.

danirabbit commented 3 years ago

@JoseExposito yeah I think that probably needs to be installed to /etc/skel instead so it acts as a user override maybe. Or patch the default conf in touchegg again. Unless you can think of some upstream way to avoid these conflicts

davidmhewitt commented 3 years ago

FYI /etc/skel is just a template for newly created users, it does not affect already existing users.

JoseExposito commented 3 years ago

I think that /etc/skell could work. The config placed in ~/.config takes precedence over /usr. So adding an empty config when a new user is added to their home will work.

However, I though that, on a fresh install, upstream config should be override by: https://github.com/elementary/default-settings/blob/master/touchegg/touchegg.conf

Why did it not work?