Map Ctrl and Alt to mouse thumb buttons












10















I'm running Ubuntu 12.04 and have a multi-button Microsoft mouse. I would like to map the Ctrl and Alt modifier keys to the left and right thumb buttons of my mouse, respectively, so I can Ctrl + click and Alt-click without touching the keyboard.
My thumb buttons are buttons 8 and 9.



I tried the solution in How do I configure a mouse thumb button?
which explained how to map a double click to a thumb button - this worked for the double-click but I couldn't figure out how to modify the solution for Ctrl and Alt



I also tried How to map Ctrl/Shift to thumb buttons of Mouse?
which used xdotools and xbindkeys. I modified the script to this:



~/.xbindkeysrc:



"xdotool keydown alt"
b:9
"xdotool keyup alt"
release + alt + b:9
"xdotool keydown ctrl"
b:8
"xdotool keyup ctrl"
release + control + b:8


Which ALMOST works. It simulates a Ctrl-key press when I click the left thumb button, but I can't actually hold the button and click at the same time - holding the thumb button seems to prevent it from listening to other input until it is released.



Does anyone know how I can make my mouse thumb button actually work as a modifier key, so I can use thumb button + click instead of Ctrl + click?










share|improve this question

























  • Run xev | grep button|Button, then, press the "Ctrl" tumb button over the white window, without releasing it, do a click, then release it and post the output.

    – Helio
    May 23 '15 at 14:34











  • @Helio see my newly created question: askubuntu.com/questions/627555/…

    – conceptdeluxe
    May 24 '15 at 3:42
















10















I'm running Ubuntu 12.04 and have a multi-button Microsoft mouse. I would like to map the Ctrl and Alt modifier keys to the left and right thumb buttons of my mouse, respectively, so I can Ctrl + click and Alt-click without touching the keyboard.
My thumb buttons are buttons 8 and 9.



I tried the solution in How do I configure a mouse thumb button?
which explained how to map a double click to a thumb button - this worked for the double-click but I couldn't figure out how to modify the solution for Ctrl and Alt



I also tried How to map Ctrl/Shift to thumb buttons of Mouse?
which used xdotools and xbindkeys. I modified the script to this:



~/.xbindkeysrc:



"xdotool keydown alt"
b:9
"xdotool keyup alt"
release + alt + b:9
"xdotool keydown ctrl"
b:8
"xdotool keyup ctrl"
release + control + b:8


Which ALMOST works. It simulates a Ctrl-key press when I click the left thumb button, but I can't actually hold the button and click at the same time - holding the thumb button seems to prevent it from listening to other input until it is released.



Does anyone know how I can make my mouse thumb button actually work as a modifier key, so I can use thumb button + click instead of Ctrl + click?










share|improve this question

























  • Run xev | grep button|Button, then, press the "Ctrl" tumb button over the white window, without releasing it, do a click, then release it and post the output.

    – Helio
    May 23 '15 at 14:34











  • @Helio see my newly created question: askubuntu.com/questions/627555/…

    – conceptdeluxe
    May 24 '15 at 3:42














10












10








10


2






I'm running Ubuntu 12.04 and have a multi-button Microsoft mouse. I would like to map the Ctrl and Alt modifier keys to the left and right thumb buttons of my mouse, respectively, so I can Ctrl + click and Alt-click without touching the keyboard.
My thumb buttons are buttons 8 and 9.



I tried the solution in How do I configure a mouse thumb button?
which explained how to map a double click to a thumb button - this worked for the double-click but I couldn't figure out how to modify the solution for Ctrl and Alt



I also tried How to map Ctrl/Shift to thumb buttons of Mouse?
which used xdotools and xbindkeys. I modified the script to this:



~/.xbindkeysrc:



"xdotool keydown alt"
b:9
"xdotool keyup alt"
release + alt + b:9
"xdotool keydown ctrl"
b:8
"xdotool keyup ctrl"
release + control + b:8


Which ALMOST works. It simulates a Ctrl-key press when I click the left thumb button, but I can't actually hold the button and click at the same time - holding the thumb button seems to prevent it from listening to other input until it is released.



Does anyone know how I can make my mouse thumb button actually work as a modifier key, so I can use thumb button + click instead of Ctrl + click?










share|improve this question
















I'm running Ubuntu 12.04 and have a multi-button Microsoft mouse. I would like to map the Ctrl and Alt modifier keys to the left and right thumb buttons of my mouse, respectively, so I can Ctrl + click and Alt-click without touching the keyboard.
My thumb buttons are buttons 8 and 9.



I tried the solution in How do I configure a mouse thumb button?
which explained how to map a double click to a thumb button - this worked for the double-click but I couldn't figure out how to modify the solution for Ctrl and Alt



I also tried How to map Ctrl/Shift to thumb buttons of Mouse?
which used xdotools and xbindkeys. I modified the script to this:



~/.xbindkeysrc:



"xdotool keydown alt"
b:9
"xdotool keyup alt"
release + alt + b:9
"xdotool keydown ctrl"
b:8
"xdotool keyup ctrl"
release + control + b:8


Which ALMOST works. It simulates a Ctrl-key press when I click the left thumb button, but I can't actually hold the button and click at the same time - holding the thumb button seems to prevent it from listening to other input until it is released.



Does anyone know how I can make my mouse thumb button actually work as a modifier key, so I can use thumb button + click instead of Ctrl + click?







mouse xbindkeys






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Jun 26 '18 at 20:36









Codito ergo sum

1,5043825




1,5043825










asked Jul 10 '12 at 20:34









rcorrercorre

15114




15114













  • Run xev | grep button|Button, then, press the "Ctrl" tumb button over the white window, without releasing it, do a click, then release it and post the output.

    – Helio
    May 23 '15 at 14:34











  • @Helio see my newly created question: askubuntu.com/questions/627555/…

    – conceptdeluxe
    May 24 '15 at 3:42



















  • Run xev | grep button|Button, then, press the "Ctrl" tumb button over the white window, without releasing it, do a click, then release it and post the output.

    – Helio
    May 23 '15 at 14:34











  • @Helio see my newly created question: askubuntu.com/questions/627555/…

    – conceptdeluxe
    May 24 '15 at 3:42

















Run xev | grep button|Button, then, press the "Ctrl" tumb button over the white window, without releasing it, do a click, then release it and post the output.

– Helio
May 23 '15 at 14:34





Run xev | grep button|Button, then, press the "Ctrl" tumb button over the white window, without releasing it, do a click, then release it and post the output.

– Helio
May 23 '15 at 14:34













@Helio see my newly created question: askubuntu.com/questions/627555/…

– conceptdeluxe
May 24 '15 at 3:42





@Helio see my newly created question: askubuntu.com/questions/627555/…

– conceptdeluxe
May 24 '15 at 3:42










2 Answers
2






active

oldest

votes


















0














i found a working solution here. it uses Easystroke (sudo apt install easystroke). kudos to @stuartr from ubuntuforums!



though there was one issue - re-mapped mouse click sporadically fired an original ('back' in my case) event. to avoid this, mouse button can be remapped to some unused number with xinput set-button-map (sudo apt install xinput).
to re-map on every login i've created (exacutable) $HOME/.config/autostart/mouse-buttons.sh with this content:



$ cat .config/autostart/mouse-buttons.sh
#!/usr/bin/env bash

mi_mouse_id=$(xinput | grep 'GTech MI wireless mouse.*pointer' | sed 's/.*tid=([0-9]*)t.*/1/')
xinput set-button-map $mi_mouse_id 1 2 3 4 5 6 7 20 9 10 11 12 13 14 15 16 17 18 19 20
$


this maps mouse button 8 to button 20. hopefully button 20 has no meaning. at least it has absolutely no effect for me.
now it's time to re-map button 20 to Ctrl:




  1. Preferences tab: additional buttons -> add -> radio button 'Instant Gestures' -> click the mouse button of choice in the grey area (for me a 'back, thumb button' became '(Instantly) Button 20')

  2. Preferences tab: Select 'Autostart Easystroke'

  3. Actions tab: Add Action

     Name: anything you like (e.g. 'Mouse 20 -> Ctrl')

     Type: 'Ignore'

     Details: click it once to change 'Ignore' to 'Key combination...'. then press Ctrl + a. 'a' doesn't matter and is ignored. 'Key Combination' will be replaced with 'Ctr'

  4. With the new action selected/highlighted -> click 'Record Stroke' -> press the mouse button you're wanting to use again (this came up with '20 -> 20' in the Stroke column for me)

  5. Now pressing and holding my mouse button brings up a dinky 'Ctr' on the screen and acts like the button is being held for as long as the mouse button is






share|improve this answer

































    -1














    Instead of using xdotool, if you prefer a functional GUI-based solution, you can download the Easystrokes app from the Ubuntu software center. You can easily map keyboard keys and shortcuts to mouse buttons and even mouse gestures.






    share|improve this answer



















    • 5





      I tried Easystrokes, but as far as I can tell, it won't allow me to map modifier keys to mouse buttons either. It will allow me to map a modifier+key combination, like SHIFT+A, but it won't let me map a modifier alone to a mouse button. I want holding down my mouse thumb button to have the same function as holding down the CTRL button.

      – rcorre
      Jul 13 '12 at 18:22












    Your Answer








    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "89"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f162141%2fmap-ctrl-and-alt-to-mouse-thumb-buttons%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    2 Answers
    2






    active

    oldest

    votes








    2 Answers
    2






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    0














    i found a working solution here. it uses Easystroke (sudo apt install easystroke). kudos to @stuartr from ubuntuforums!



    though there was one issue - re-mapped mouse click sporadically fired an original ('back' in my case) event. to avoid this, mouse button can be remapped to some unused number with xinput set-button-map (sudo apt install xinput).
    to re-map on every login i've created (exacutable) $HOME/.config/autostart/mouse-buttons.sh with this content:



    $ cat .config/autostart/mouse-buttons.sh
    #!/usr/bin/env bash

    mi_mouse_id=$(xinput | grep 'GTech MI wireless mouse.*pointer' | sed 's/.*tid=([0-9]*)t.*/1/')
    xinput set-button-map $mi_mouse_id 1 2 3 4 5 6 7 20 9 10 11 12 13 14 15 16 17 18 19 20
    $


    this maps mouse button 8 to button 20. hopefully button 20 has no meaning. at least it has absolutely no effect for me.
    now it's time to re-map button 20 to Ctrl:




    1. Preferences tab: additional buttons -> add -> radio button 'Instant Gestures' -> click the mouse button of choice in the grey area (for me a 'back, thumb button' became '(Instantly) Button 20')

    2. Preferences tab: Select 'Autostart Easystroke'

    3. Actions tab: Add Action

       Name: anything you like (e.g. 'Mouse 20 -> Ctrl')

       Type: 'Ignore'

       Details: click it once to change 'Ignore' to 'Key combination...'. then press Ctrl + a. 'a' doesn't matter and is ignored. 'Key Combination' will be replaced with 'Ctr'

    4. With the new action selected/highlighted -> click 'Record Stroke' -> press the mouse button you're wanting to use again (this came up with '20 -> 20' in the Stroke column for me)

    5. Now pressing and holding my mouse button brings up a dinky 'Ctr' on the screen and acts like the button is being held for as long as the mouse button is






    share|improve this answer






























      0














      i found a working solution here. it uses Easystroke (sudo apt install easystroke). kudos to @stuartr from ubuntuforums!



      though there was one issue - re-mapped mouse click sporadically fired an original ('back' in my case) event. to avoid this, mouse button can be remapped to some unused number with xinput set-button-map (sudo apt install xinput).
      to re-map on every login i've created (exacutable) $HOME/.config/autostart/mouse-buttons.sh with this content:



      $ cat .config/autostart/mouse-buttons.sh
      #!/usr/bin/env bash

      mi_mouse_id=$(xinput | grep 'GTech MI wireless mouse.*pointer' | sed 's/.*tid=([0-9]*)t.*/1/')
      xinput set-button-map $mi_mouse_id 1 2 3 4 5 6 7 20 9 10 11 12 13 14 15 16 17 18 19 20
      $


      this maps mouse button 8 to button 20. hopefully button 20 has no meaning. at least it has absolutely no effect for me.
      now it's time to re-map button 20 to Ctrl:




      1. Preferences tab: additional buttons -> add -> radio button 'Instant Gestures' -> click the mouse button of choice in the grey area (for me a 'back, thumb button' became '(Instantly) Button 20')

      2. Preferences tab: Select 'Autostart Easystroke'

      3. Actions tab: Add Action

         Name: anything you like (e.g. 'Mouse 20 -> Ctrl')

         Type: 'Ignore'

         Details: click it once to change 'Ignore' to 'Key combination...'. then press Ctrl + a. 'a' doesn't matter and is ignored. 'Key Combination' will be replaced with 'Ctr'

      4. With the new action selected/highlighted -> click 'Record Stroke' -> press the mouse button you're wanting to use again (this came up with '20 -> 20' in the Stroke column for me)

      5. Now pressing and holding my mouse button brings up a dinky 'Ctr' on the screen and acts like the button is being held for as long as the mouse button is






      share|improve this answer




























        0












        0








        0







        i found a working solution here. it uses Easystroke (sudo apt install easystroke). kudos to @stuartr from ubuntuforums!



        though there was one issue - re-mapped mouse click sporadically fired an original ('back' in my case) event. to avoid this, mouse button can be remapped to some unused number with xinput set-button-map (sudo apt install xinput).
        to re-map on every login i've created (exacutable) $HOME/.config/autostart/mouse-buttons.sh with this content:



        $ cat .config/autostart/mouse-buttons.sh
        #!/usr/bin/env bash

        mi_mouse_id=$(xinput | grep 'GTech MI wireless mouse.*pointer' | sed 's/.*tid=([0-9]*)t.*/1/')
        xinput set-button-map $mi_mouse_id 1 2 3 4 5 6 7 20 9 10 11 12 13 14 15 16 17 18 19 20
        $


        this maps mouse button 8 to button 20. hopefully button 20 has no meaning. at least it has absolutely no effect for me.
        now it's time to re-map button 20 to Ctrl:




        1. Preferences tab: additional buttons -> add -> radio button 'Instant Gestures' -> click the mouse button of choice in the grey area (for me a 'back, thumb button' became '(Instantly) Button 20')

        2. Preferences tab: Select 'Autostart Easystroke'

        3. Actions tab: Add Action

           Name: anything you like (e.g. 'Mouse 20 -> Ctrl')

           Type: 'Ignore'

           Details: click it once to change 'Ignore' to 'Key combination...'. then press Ctrl + a. 'a' doesn't matter and is ignored. 'Key Combination' will be replaced with 'Ctr'

        4. With the new action selected/highlighted -> click 'Record Stroke' -> press the mouse button you're wanting to use again (this came up with '20 -> 20' in the Stroke column for me)

        5. Now pressing and holding my mouse button brings up a dinky 'Ctr' on the screen and acts like the button is being held for as long as the mouse button is






        share|improve this answer















        i found a working solution here. it uses Easystroke (sudo apt install easystroke). kudos to @stuartr from ubuntuforums!



        though there was one issue - re-mapped mouse click sporadically fired an original ('back' in my case) event. to avoid this, mouse button can be remapped to some unused number with xinput set-button-map (sudo apt install xinput).
        to re-map on every login i've created (exacutable) $HOME/.config/autostart/mouse-buttons.sh with this content:



        $ cat .config/autostart/mouse-buttons.sh
        #!/usr/bin/env bash

        mi_mouse_id=$(xinput | grep 'GTech MI wireless mouse.*pointer' | sed 's/.*tid=([0-9]*)t.*/1/')
        xinput set-button-map $mi_mouse_id 1 2 3 4 5 6 7 20 9 10 11 12 13 14 15 16 17 18 19 20
        $


        this maps mouse button 8 to button 20. hopefully button 20 has no meaning. at least it has absolutely no effect for me.
        now it's time to re-map button 20 to Ctrl:




        1. Preferences tab: additional buttons -> add -> radio button 'Instant Gestures' -> click the mouse button of choice in the grey area (for me a 'back, thumb button' became '(Instantly) Button 20')

        2. Preferences tab: Select 'Autostart Easystroke'

        3. Actions tab: Add Action

           Name: anything you like (e.g. 'Mouse 20 -> Ctrl')

           Type: 'Ignore'

           Details: click it once to change 'Ignore' to 'Key combination...'. then press Ctrl + a. 'a' doesn't matter and is ignored. 'Key Combination' will be replaced with 'Ctr'

        4. With the new action selected/highlighted -> click 'Record Stroke' -> press the mouse button you're wanting to use again (this came up with '20 -> 20' in the Stroke column for me)

        5. Now pressing and holding my mouse button brings up a dinky 'Ctr' on the screen and acts like the button is being held for as long as the mouse button is







        share|improve this answer














        share|improve this answer



        share|improve this answer








        edited Mar 13 '18 at 18:48

























        answered Feb 28 '18 at 12:38









        attiatti

        1393




        1393

























            -1














            Instead of using xdotool, if you prefer a functional GUI-based solution, you can download the Easystrokes app from the Ubuntu software center. You can easily map keyboard keys and shortcuts to mouse buttons and even mouse gestures.






            share|improve this answer



















            • 5





              I tried Easystrokes, but as far as I can tell, it won't allow me to map modifier keys to mouse buttons either. It will allow me to map a modifier+key combination, like SHIFT+A, but it won't let me map a modifier alone to a mouse button. I want holding down my mouse thumb button to have the same function as holding down the CTRL button.

              – rcorre
              Jul 13 '12 at 18:22
















            -1














            Instead of using xdotool, if you prefer a functional GUI-based solution, you can download the Easystrokes app from the Ubuntu software center. You can easily map keyboard keys and shortcuts to mouse buttons and even mouse gestures.






            share|improve this answer



















            • 5





              I tried Easystrokes, but as far as I can tell, it won't allow me to map modifier keys to mouse buttons either. It will allow me to map a modifier+key combination, like SHIFT+A, but it won't let me map a modifier alone to a mouse button. I want holding down my mouse thumb button to have the same function as holding down the CTRL button.

              – rcorre
              Jul 13 '12 at 18:22














            -1












            -1








            -1







            Instead of using xdotool, if you prefer a functional GUI-based solution, you can download the Easystrokes app from the Ubuntu software center. You can easily map keyboard keys and shortcuts to mouse buttons and even mouse gestures.






            share|improve this answer













            Instead of using xdotool, if you prefer a functional GUI-based solution, you can download the Easystrokes app from the Ubuntu software center. You can easily map keyboard keys and shortcuts to mouse buttons and even mouse gestures.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Jul 13 '12 at 15:13









            user76179user76179

            291




            291








            • 5





              I tried Easystrokes, but as far as I can tell, it won't allow me to map modifier keys to mouse buttons either. It will allow me to map a modifier+key combination, like SHIFT+A, but it won't let me map a modifier alone to a mouse button. I want holding down my mouse thumb button to have the same function as holding down the CTRL button.

              – rcorre
              Jul 13 '12 at 18:22














            • 5





              I tried Easystrokes, but as far as I can tell, it won't allow me to map modifier keys to mouse buttons either. It will allow me to map a modifier+key combination, like SHIFT+A, but it won't let me map a modifier alone to a mouse button. I want holding down my mouse thumb button to have the same function as holding down the CTRL button.

              – rcorre
              Jul 13 '12 at 18:22








            5




            5





            I tried Easystrokes, but as far as I can tell, it won't allow me to map modifier keys to mouse buttons either. It will allow me to map a modifier+key combination, like SHIFT+A, but it won't let me map a modifier alone to a mouse button. I want holding down my mouse thumb button to have the same function as holding down the CTRL button.

            – rcorre
            Jul 13 '12 at 18:22





            I tried Easystrokes, but as far as I can tell, it won't allow me to map modifier keys to mouse buttons either. It will allow me to map a modifier+key combination, like SHIFT+A, but it won't let me map a modifier alone to a mouse button. I want holding down my mouse thumb button to have the same function as holding down the CTRL button.

            – rcorre
            Jul 13 '12 at 18:22


















            draft saved

            draft discarded




















































            Thanks for contributing an answer to Ask Ubuntu!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f162141%2fmap-ctrl-and-alt-to-mouse-thumb-buttons%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            flock() on closed filehandle LOCK_FILE at /usr/bin/apt-mirror

            Mangá

            Eduardo VII do Reino Unido