Is it possible to send back a client to its opening tag(s) in AwesomeWM?










1















I have rules to open specific applications (clients, for AwesomeWM) on certain tag(s). Sometimes, during my workflow, I may move a client, for instance from one screen to another (Mod+o), which changes the tags associated with the client. After working with this client, most of the time, it would be convenient to send it back to its initial (or previous) tag(s).



I can restart AwesomeWM, which would make the client re-read the rules in rc.lua, but it may break other tag associations and I would use a per-client function/shortcut.



Is it possible? With a specific module?










share|improve this question


























    1















    I have rules to open specific applications (clients, for AwesomeWM) on certain tag(s). Sometimes, during my workflow, I may move a client, for instance from one screen to another (Mod+o), which changes the tags associated with the client. After working with this client, most of the time, it would be convenient to send it back to its initial (or previous) tag(s).



    I can restart AwesomeWM, which would make the client re-read the rules in rc.lua, but it may break other tag associations and I would use a per-client function/shortcut.



    Is it possible? With a specific module?










    share|improve this question
























      1












      1








      1








      I have rules to open specific applications (clients, for AwesomeWM) on certain tag(s). Sometimes, during my workflow, I may move a client, for instance from one screen to another (Mod+o), which changes the tags associated with the client. After working with this client, most of the time, it would be convenient to send it back to its initial (or previous) tag(s).



      I can restart AwesomeWM, which would make the client re-read the rules in rc.lua, but it may break other tag associations and I would use a per-client function/shortcut.



      Is it possible? With a specific module?










      share|improve this question














      I have rules to open specific applications (clients, for AwesomeWM) on certain tag(s). Sometimes, during my workflow, I may move a client, for instance from one screen to another (Mod+o), which changes the tags associated with the client. After working with this client, most of the time, it would be convenient to send it back to its initial (or previous) tag(s).



      I can restart AwesomeWM, which would make the client re-read the rules in rc.lua, but it may break other tag associations and I would use a per-client function/shortcut.



      Is it possible? With a specific module?







      awesome-wm






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 15 '18 at 10:31









      raphaelfournierraphaelfournier

      2716




      2716






















          1 Answer
          1






          active

          oldest

          votes


















          3














          Everything is possible in AwesomeWM ;)



          In this case, you can use the default rc.lua "manage" client signal handler to add something like this:



          c.original_tags = c:tags()


          then in a client keybindings (not the global keybindings), do:



          awful.key( modkey , "b", function (c) c:tags(c.original_tags) end,
          description = "restore the tags", group = "client"),


          Please note that this will only work if your tags never change. If you add and delete tags, this will misbehave.



          An alternative is to call awful.rules.apply(c) directly from the keybinding and let the rules be applied again. This potentially has side effects beyond the tags, so it isn't my first choice for the answer.






          share|improve this answer























          • Thank you very much! It works as expected. I just had to add a c.original_screen = c.screen line below yours in the manage function and a c.screen = c.original_screen in the keybinding code.

            – raphaelfournier
            Nov 16 '18 at 13:41











          Your Answer






          StackExchange.ifUsing("editor", function ()
          StackExchange.using("externalEditor", function ()
          StackExchange.using("snippets", function ()
          StackExchange.snippets.init();
          );
          );
          , "code-snippets");

          StackExchange.ready(function()
          var channelOptions =
          tags: "".split(" "),
          id: "1"
          ;
          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%2fstackoverflow.com%2fquestions%2f53317405%2fis-it-possible-to-send-back-a-client-to-its-opening-tags-in-awesomewm%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          3














          Everything is possible in AwesomeWM ;)



          In this case, you can use the default rc.lua "manage" client signal handler to add something like this:



          c.original_tags = c:tags()


          then in a client keybindings (not the global keybindings), do:



          awful.key( modkey , "b", function (c) c:tags(c.original_tags) end,
          description = "restore the tags", group = "client"),


          Please note that this will only work if your tags never change. If you add and delete tags, this will misbehave.



          An alternative is to call awful.rules.apply(c) directly from the keybinding and let the rules be applied again. This potentially has side effects beyond the tags, so it isn't my first choice for the answer.






          share|improve this answer























          • Thank you very much! It works as expected. I just had to add a c.original_screen = c.screen line below yours in the manage function and a c.screen = c.original_screen in the keybinding code.

            – raphaelfournier
            Nov 16 '18 at 13:41
















          3














          Everything is possible in AwesomeWM ;)



          In this case, you can use the default rc.lua "manage" client signal handler to add something like this:



          c.original_tags = c:tags()


          then in a client keybindings (not the global keybindings), do:



          awful.key( modkey , "b", function (c) c:tags(c.original_tags) end,
          description = "restore the tags", group = "client"),


          Please note that this will only work if your tags never change. If you add and delete tags, this will misbehave.



          An alternative is to call awful.rules.apply(c) directly from the keybinding and let the rules be applied again. This potentially has side effects beyond the tags, so it isn't my first choice for the answer.






          share|improve this answer























          • Thank you very much! It works as expected. I just had to add a c.original_screen = c.screen line below yours in the manage function and a c.screen = c.original_screen in the keybinding code.

            – raphaelfournier
            Nov 16 '18 at 13:41














          3












          3








          3







          Everything is possible in AwesomeWM ;)



          In this case, you can use the default rc.lua "manage" client signal handler to add something like this:



          c.original_tags = c:tags()


          then in a client keybindings (not the global keybindings), do:



          awful.key( modkey , "b", function (c) c:tags(c.original_tags) end,
          description = "restore the tags", group = "client"),


          Please note that this will only work if your tags never change. If you add and delete tags, this will misbehave.



          An alternative is to call awful.rules.apply(c) directly from the keybinding and let the rules be applied again. This potentially has side effects beyond the tags, so it isn't my first choice for the answer.






          share|improve this answer













          Everything is possible in AwesomeWM ;)



          In this case, you can use the default rc.lua "manage" client signal handler to add something like this:



          c.original_tags = c:tags()


          then in a client keybindings (not the global keybindings), do:



          awful.key( modkey , "b", function (c) c:tags(c.original_tags) end,
          description = "restore the tags", group = "client"),


          Please note that this will only work if your tags never change. If you add and delete tags, this will misbehave.



          An alternative is to call awful.rules.apply(c) directly from the keybinding and let the rules be applied again. This potentially has side effects beyond the tags, so it isn't my first choice for the answer.







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Nov 15 '18 at 19:29









          Emmanuel Lepage ValleeEmmanuel Lepage Vallee

          1,012810




          1,012810












          • Thank you very much! It works as expected. I just had to add a c.original_screen = c.screen line below yours in the manage function and a c.screen = c.original_screen in the keybinding code.

            – raphaelfournier
            Nov 16 '18 at 13:41


















          • Thank you very much! It works as expected. I just had to add a c.original_screen = c.screen line below yours in the manage function and a c.screen = c.original_screen in the keybinding code.

            – raphaelfournier
            Nov 16 '18 at 13:41

















          Thank you very much! It works as expected. I just had to add a c.original_screen = c.screen line below yours in the manage function and a c.screen = c.original_screen in the keybinding code.

          – raphaelfournier
          Nov 16 '18 at 13:41






          Thank you very much! It works as expected. I just had to add a c.original_screen = c.screen line below yours in the manage function and a c.screen = c.original_screen in the keybinding code.

          – raphaelfournier
          Nov 16 '18 at 13:41




















          draft saved

          draft discarded
















































          Thanks for contributing an answer to Stack Overflow!


          • 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%2fstackoverflow.com%2fquestions%2f53317405%2fis-it-possible-to-send-back-a-client-to-its-opening-tags-in-awesomewm%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







          這個網誌中的熱門文章

          What does pagestruct do in Eviews?

          Dutch intervention in Lombok and Karangasem

          Channel Islands