awesome-wm wibox not reacting to mouse signals when input_passthrough is trueAwesome WM launchbarExecute command when mouse touches screen edge in Awesome-wmAwesome window manager doesn't react on clicks at toolbar when Caps Lock is onAwesome wm keyup and keydown eventsHow to get a signal when layout has changed in Awesome WmAwesome WM dialog boxes sizeReplacement for awful.util.pread in awesome 4.0Before diving in, is this possible with Awesome WM?How to prevent awesome from changing focus when a mouse click occurs?Awesome WM - os.execute vs afwul.spawn

A ​Note ​on ​N!

"Whatever a Russian does, they end up making the Kalashnikov gun"? Are there any similar proverbs in English?

How does Captain America channel this power?

Relationship between strut and baselineskip

Pre-plastic human skin alternative

Why must Chinese maps be obfuscated?

Is there really no use for MD5 anymore?

Could the terminal length of components like resistors be reduced?

Why didn't the Space Shuttle bounce back into space as many times as possible so as to lose a lot of kinetic energy up there?

Aliens crash on Earth and go into stasis to wait for technology to fix their ship

A strange hotel

a sore throat vs a strep throat vs strep throat

How could Tony Stark make this in Endgame?

555 timer FM transmitter

Classification of surfaces

How to pronounce 'c++' in Spanish

Mistake in years of experience in resume?

A Paper Record is What I Hamper

Get consecutive integer number ranges from list of int

How do I reattach a shelf to the wall when it ripped out of the wall?

"You've called the wrong number" or "You called the wrong number"

What happened to Captain America in Endgame?

Checks user level and limit the data before saving it to mongoDB

Does Gita support doctrine of eternal samsara?



awesome-wm wibox not reacting to mouse signals when input_passthrough is true


Awesome WM launchbarExecute command when mouse touches screen edge in Awesome-wmAwesome window manager doesn't react on clicks at toolbar when Caps Lock is onAwesome wm keyup and keydown eventsHow to get a signal when layout has changed in Awesome WmAwesome WM dialog boxes sizeReplacement for awful.util.pread in awesome 4.0Before diving in, is this possible with Awesome WM?How to prevent awesome from changing focus when a mouse click occurs?Awesome WM - os.execute vs afwul.spawn






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;








0















Basically, what I'm trying to do is have a sidebar, and have it show up when I move my mouse to the left edge of the screen, and have the sidebar disappear when I move my mouse TOO MUCH away from the sidebar.



So I made three widgets:



  • one that's one pixel wide on the side and that, when it detects the mouse entering, shows the sidebar


  • the actual sidebar


  • and a widget that's wider than the sidebar, is fully transparent, has input_passthrough set to true, and its only purpose is to look for the "mouse::leave" signal and when the mouse leaves, it would make itself and the sidebar disappear.


I got most of it to work but there's this particular error that I can't solve:



The wibox function takes as argument a table of fields. If you look through the code I provided, you can notice that the input_passthrough field of the sidebar_visible_limit hasn't been put in the body of the table, but supplied afterwards, right after the creation of the widget.



The problem with this is that it simply doesn't close the sidebar or itself when the mouse leaves. It doesn't detect the mouse leaving.



BUT if put the input_passthrough = true in the table provided to the wibox function, like this:



 bar.sidebar_visible_limit = wibox( 
x = 0,
y = 0,
ontop = false,
visible = false,
width = bar.sidebar.width + dpi(100),
height = bar.sidebar.height,
bg = '#000000',
opacity = 0.3, -- when it's all done this will be '0'
input_passthrough = true
)



then everything works fine, EXCEPT that now it doesn't allow input to pass through.



I would greatly appreciate an explanation as to why this happens.



This is the code:



awful = require("awful")
local wibox = require("wibox")
local naughty = require("naughty")
local gears = require("gears")
local beautiful = require("beautiful")
xresources = require("beautiful.xresources")
dpi = xresources.apply_dpi

bar =

-- make the sidebar
bar.sidebar = wibox(
x = 0,
y = 0,
ontop = false,
visible = false,
width = beautiful.sidebar_width or dpi(450),
bg = beautiful.sidebar_bg or "#2f2e3a",
type = "dock",
height = beautiful.sidebar_height or awful.screen.focused().geometry.height,
)

-- Hide sidebar when mouse leaves too much from the sidebar
-- It's incorporated along in the same table with the sidebar so the users
-- can implement these however they want, e.g. in the 'keys.lua' module

bar.sidebar_visible_limit = wibox(
x = 0,
y = 0,
ontop = false,
visible = false,
width = bar.sidebar.width + dpi(100),
height = bar.sidebar.height,
bg = '#000000',
opacity = 0.3, --when it's all done this will be '0'
)
bar.sidebar_visible_limit.input_passthrough = true

-- Show sidebar when mouse touches edge
local sidebar_displayer = wibox(
x = 0,
y = 0,
height = bar.sidebar.height,
ontop = true,
width = 1,
visible = true,
opacity = 0,
input_passthrough = true
)

function toggle_bar()

-- they have to be in this order, so the sidebar will show first,
-- and then the wibox that will close the sidebar when the mouse leaves
-- second. If you do it the other way around, then if you go with the
-- mouse on the sidebar-closing wibox , then if you try to go back
-- to the sidebar, it will close it because it's 'left' the widget.
-- That's why you have the sidebar-closing wibox on top and allow
-- input_passthrough for the sidebar-closing wibox

bar.sidebar.visible = not bar.sidebar.visible
bar.sidebar.ontop = not bar.sidebar.ontop

bar.sidebar_visible_limit.visible = not bar.sidebar_visible_limit.visible
bar.sidebar_visible_limit.ontop = not bar.sidebar_visible_limit.ontop

end

bar.sidebar_visible_limit:connect_signal( "mouse::leave", toggle_bar )
sidebar_displayer:connect_signal( "mouse::enter", toggle_bar )









share|improve this question




























    0















    Basically, what I'm trying to do is have a sidebar, and have it show up when I move my mouse to the left edge of the screen, and have the sidebar disappear when I move my mouse TOO MUCH away from the sidebar.



    So I made three widgets:



    • one that's one pixel wide on the side and that, when it detects the mouse entering, shows the sidebar


    • the actual sidebar


    • and a widget that's wider than the sidebar, is fully transparent, has input_passthrough set to true, and its only purpose is to look for the "mouse::leave" signal and when the mouse leaves, it would make itself and the sidebar disappear.


    I got most of it to work but there's this particular error that I can't solve:



    The wibox function takes as argument a table of fields. If you look through the code I provided, you can notice that the input_passthrough field of the sidebar_visible_limit hasn't been put in the body of the table, but supplied afterwards, right after the creation of the widget.



    The problem with this is that it simply doesn't close the sidebar or itself when the mouse leaves. It doesn't detect the mouse leaving.



    BUT if put the input_passthrough = true in the table provided to the wibox function, like this:



     bar.sidebar_visible_limit = wibox( 
    x = 0,
    y = 0,
    ontop = false,
    visible = false,
    width = bar.sidebar.width + dpi(100),
    height = bar.sidebar.height,
    bg = '#000000',
    opacity = 0.3, -- when it's all done this will be '0'
    input_passthrough = true
    )



    then everything works fine, EXCEPT that now it doesn't allow input to pass through.



    I would greatly appreciate an explanation as to why this happens.



    This is the code:



    awful = require("awful")
    local wibox = require("wibox")
    local naughty = require("naughty")
    local gears = require("gears")
    local beautiful = require("beautiful")
    xresources = require("beautiful.xresources")
    dpi = xresources.apply_dpi

    bar =

    -- make the sidebar
    bar.sidebar = wibox(
    x = 0,
    y = 0,
    ontop = false,
    visible = false,
    width = beautiful.sidebar_width or dpi(450),
    bg = beautiful.sidebar_bg or "#2f2e3a",
    type = "dock",
    height = beautiful.sidebar_height or awful.screen.focused().geometry.height,
    )

    -- Hide sidebar when mouse leaves too much from the sidebar
    -- It's incorporated along in the same table with the sidebar so the users
    -- can implement these however they want, e.g. in the 'keys.lua' module

    bar.sidebar_visible_limit = wibox(
    x = 0,
    y = 0,
    ontop = false,
    visible = false,
    width = bar.sidebar.width + dpi(100),
    height = bar.sidebar.height,
    bg = '#000000',
    opacity = 0.3, --when it's all done this will be '0'
    )
    bar.sidebar_visible_limit.input_passthrough = true

    -- Show sidebar when mouse touches edge
    local sidebar_displayer = wibox(
    x = 0,
    y = 0,
    height = bar.sidebar.height,
    ontop = true,
    width = 1,
    visible = true,
    opacity = 0,
    input_passthrough = true
    )

    function toggle_bar()

    -- they have to be in this order, so the sidebar will show first,
    -- and then the wibox that will close the sidebar when the mouse leaves
    -- second. If you do it the other way around, then if you go with the
    -- mouse on the sidebar-closing wibox , then if you try to go back
    -- to the sidebar, it will close it because it's 'left' the widget.
    -- That's why you have the sidebar-closing wibox on top and allow
    -- input_passthrough for the sidebar-closing wibox

    bar.sidebar.visible = not bar.sidebar.visible
    bar.sidebar.ontop = not bar.sidebar.ontop

    bar.sidebar_visible_limit.visible = not bar.sidebar_visible_limit.visible
    bar.sidebar_visible_limit.ontop = not bar.sidebar_visible_limit.ontop

    end

    bar.sidebar_visible_limit:connect_signal( "mouse::leave", toggle_bar )
    sidebar_displayer:connect_signal( "mouse::enter", toggle_bar )









    share|improve this question
























      0












      0








      0








      Basically, what I'm trying to do is have a sidebar, and have it show up when I move my mouse to the left edge of the screen, and have the sidebar disappear when I move my mouse TOO MUCH away from the sidebar.



      So I made three widgets:



      • one that's one pixel wide on the side and that, when it detects the mouse entering, shows the sidebar


      • the actual sidebar


      • and a widget that's wider than the sidebar, is fully transparent, has input_passthrough set to true, and its only purpose is to look for the "mouse::leave" signal and when the mouse leaves, it would make itself and the sidebar disappear.


      I got most of it to work but there's this particular error that I can't solve:



      The wibox function takes as argument a table of fields. If you look through the code I provided, you can notice that the input_passthrough field of the sidebar_visible_limit hasn't been put in the body of the table, but supplied afterwards, right after the creation of the widget.



      The problem with this is that it simply doesn't close the sidebar or itself when the mouse leaves. It doesn't detect the mouse leaving.



      BUT if put the input_passthrough = true in the table provided to the wibox function, like this:



       bar.sidebar_visible_limit = wibox( 
      x = 0,
      y = 0,
      ontop = false,
      visible = false,
      width = bar.sidebar.width + dpi(100),
      height = bar.sidebar.height,
      bg = '#000000',
      opacity = 0.3, -- when it's all done this will be '0'
      input_passthrough = true
      )



      then everything works fine, EXCEPT that now it doesn't allow input to pass through.



      I would greatly appreciate an explanation as to why this happens.



      This is the code:



      awful = require("awful")
      local wibox = require("wibox")
      local naughty = require("naughty")
      local gears = require("gears")
      local beautiful = require("beautiful")
      xresources = require("beautiful.xresources")
      dpi = xresources.apply_dpi

      bar =

      -- make the sidebar
      bar.sidebar = wibox(
      x = 0,
      y = 0,
      ontop = false,
      visible = false,
      width = beautiful.sidebar_width or dpi(450),
      bg = beautiful.sidebar_bg or "#2f2e3a",
      type = "dock",
      height = beautiful.sidebar_height or awful.screen.focused().geometry.height,
      )

      -- Hide sidebar when mouse leaves too much from the sidebar
      -- It's incorporated along in the same table with the sidebar so the users
      -- can implement these however they want, e.g. in the 'keys.lua' module

      bar.sidebar_visible_limit = wibox(
      x = 0,
      y = 0,
      ontop = false,
      visible = false,
      width = bar.sidebar.width + dpi(100),
      height = bar.sidebar.height,
      bg = '#000000',
      opacity = 0.3, --when it's all done this will be '0'
      )
      bar.sidebar_visible_limit.input_passthrough = true

      -- Show sidebar when mouse touches edge
      local sidebar_displayer = wibox(
      x = 0,
      y = 0,
      height = bar.sidebar.height,
      ontop = true,
      width = 1,
      visible = true,
      opacity = 0,
      input_passthrough = true
      )

      function toggle_bar()

      -- they have to be in this order, so the sidebar will show first,
      -- and then the wibox that will close the sidebar when the mouse leaves
      -- second. If you do it the other way around, then if you go with the
      -- mouse on the sidebar-closing wibox , then if you try to go back
      -- to the sidebar, it will close it because it's 'left' the widget.
      -- That's why you have the sidebar-closing wibox on top and allow
      -- input_passthrough for the sidebar-closing wibox

      bar.sidebar.visible = not bar.sidebar.visible
      bar.sidebar.ontop = not bar.sidebar.ontop

      bar.sidebar_visible_limit.visible = not bar.sidebar_visible_limit.visible
      bar.sidebar_visible_limit.ontop = not bar.sidebar_visible_limit.ontop

      end

      bar.sidebar_visible_limit:connect_signal( "mouse::leave", toggle_bar )
      sidebar_displayer:connect_signal( "mouse::enter", toggle_bar )









      share|improve this question














      Basically, what I'm trying to do is have a sidebar, and have it show up when I move my mouse to the left edge of the screen, and have the sidebar disappear when I move my mouse TOO MUCH away from the sidebar.



      So I made three widgets:



      • one that's one pixel wide on the side and that, when it detects the mouse entering, shows the sidebar


      • the actual sidebar


      • and a widget that's wider than the sidebar, is fully transparent, has input_passthrough set to true, and its only purpose is to look for the "mouse::leave" signal and when the mouse leaves, it would make itself and the sidebar disappear.


      I got most of it to work but there's this particular error that I can't solve:



      The wibox function takes as argument a table of fields. If you look through the code I provided, you can notice that the input_passthrough field of the sidebar_visible_limit hasn't been put in the body of the table, but supplied afterwards, right after the creation of the widget.



      The problem with this is that it simply doesn't close the sidebar or itself when the mouse leaves. It doesn't detect the mouse leaving.



      BUT if put the input_passthrough = true in the table provided to the wibox function, like this:



       bar.sidebar_visible_limit = wibox( 
      x = 0,
      y = 0,
      ontop = false,
      visible = false,
      width = bar.sidebar.width + dpi(100),
      height = bar.sidebar.height,
      bg = '#000000',
      opacity = 0.3, -- when it's all done this will be '0'
      input_passthrough = true
      )



      then everything works fine, EXCEPT that now it doesn't allow input to pass through.



      I would greatly appreciate an explanation as to why this happens.



      This is the code:



      awful = require("awful")
      local wibox = require("wibox")
      local naughty = require("naughty")
      local gears = require("gears")
      local beautiful = require("beautiful")
      xresources = require("beautiful.xresources")
      dpi = xresources.apply_dpi

      bar =

      -- make the sidebar
      bar.sidebar = wibox(
      x = 0,
      y = 0,
      ontop = false,
      visible = false,
      width = beautiful.sidebar_width or dpi(450),
      bg = beautiful.sidebar_bg or "#2f2e3a",
      type = "dock",
      height = beautiful.sidebar_height or awful.screen.focused().geometry.height,
      )

      -- Hide sidebar when mouse leaves too much from the sidebar
      -- It's incorporated along in the same table with the sidebar so the users
      -- can implement these however they want, e.g. in the 'keys.lua' module

      bar.sidebar_visible_limit = wibox(
      x = 0,
      y = 0,
      ontop = false,
      visible = false,
      width = bar.sidebar.width + dpi(100),
      height = bar.sidebar.height,
      bg = '#000000',
      opacity = 0.3, --when it's all done this will be '0'
      )
      bar.sidebar_visible_limit.input_passthrough = true

      -- Show sidebar when mouse touches edge
      local sidebar_displayer = wibox(
      x = 0,
      y = 0,
      height = bar.sidebar.height,
      ontop = true,
      width = 1,
      visible = true,
      opacity = 0,
      input_passthrough = true
      )

      function toggle_bar()

      -- they have to be in this order, so the sidebar will show first,
      -- and then the wibox that will close the sidebar when the mouse leaves
      -- second. If you do it the other way around, then if you go with the
      -- mouse on the sidebar-closing wibox , then if you try to go back
      -- to the sidebar, it will close it because it's 'left' the widget.
      -- That's why you have the sidebar-closing wibox on top and allow
      -- input_passthrough for the sidebar-closing wibox

      bar.sidebar.visible = not bar.sidebar.visible
      bar.sidebar.ontop = not bar.sidebar.ontop

      bar.sidebar_visible_limit.visible = not bar.sidebar_visible_limit.visible
      bar.sidebar_visible_limit.ontop = not bar.sidebar_visible_limit.ontop

      end

      bar.sidebar_visible_limit:connect_signal( "mouse::leave", toggle_bar )
      sidebar_displayer:connect_signal( "mouse::enter", toggle_bar )






      awesome-wm






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 9 at 9:13









      LawsDontApplyToPigsLawsDontApplyToPigs

      133




      133






















          1 Answer
          1






          active

          oldest

          votes


















          0















          I would greatly appreciate an explanation as to why this happens.




          I think the X11 server reports mouse enter/exit relative to the input region of a window. With input_passthrough, the input region becomes empty. This means that the X11 server will now report the mouse pointer to be inside the window beneath your wibox and not inside of the wibox itself.




          BUT if put the input_passthrough = true in the table provided to the wibox function then everything works fine, EXCEPT that now it doesn't allow input to pass through.




          In other words: In this case the input_passthrough property is not set. Seems like you found one of the properties that cannot be set this way. ;-)




          Since I guess you also want some ideas on how you can do what you are trying to do: If you are running a compositing manager (xcompmgr, compton, ...), you could make a wibox with a completely transparent background. That way, the X11 server will "think" that the window is there and report input events relative to it, but the wibox will not actually be visible on screen.



          (And if you don't have a compositing manager: Make a widget that displays your wallpaper with the proper offset. A hint on how to do this can be found by reading /usr/share/awesome/lib/wibox/drawable.lua, the part that begins with if not capi.awesome.composite_manager_running then and that does something with the wallpaper. Feel free to ask for more details if necessary.)






          share|improve this answer























          • Aahh I see, so when you have input_passthrough set to true then the wibox can't catch at least certain mouse signals like mouse::leave. I eventually made a compromise and decided that I was going to have the sidebar just disappear when the mouse leaves. But thank you for your help!

            – LawsDontApplyToPigs
            Mar 9 at 15:23











          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%2f55075759%2fawesome-wm-wibox-not-reacting-to-mouse-signals-when-input-passthrough-is-true%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









          0















          I would greatly appreciate an explanation as to why this happens.




          I think the X11 server reports mouse enter/exit relative to the input region of a window. With input_passthrough, the input region becomes empty. This means that the X11 server will now report the mouse pointer to be inside the window beneath your wibox and not inside of the wibox itself.




          BUT if put the input_passthrough = true in the table provided to the wibox function then everything works fine, EXCEPT that now it doesn't allow input to pass through.




          In other words: In this case the input_passthrough property is not set. Seems like you found one of the properties that cannot be set this way. ;-)




          Since I guess you also want some ideas on how you can do what you are trying to do: If you are running a compositing manager (xcompmgr, compton, ...), you could make a wibox with a completely transparent background. That way, the X11 server will "think" that the window is there and report input events relative to it, but the wibox will not actually be visible on screen.



          (And if you don't have a compositing manager: Make a widget that displays your wallpaper with the proper offset. A hint on how to do this can be found by reading /usr/share/awesome/lib/wibox/drawable.lua, the part that begins with if not capi.awesome.composite_manager_running then and that does something with the wallpaper. Feel free to ask for more details if necessary.)






          share|improve this answer























          • Aahh I see, so when you have input_passthrough set to true then the wibox can't catch at least certain mouse signals like mouse::leave. I eventually made a compromise and decided that I was going to have the sidebar just disappear when the mouse leaves. But thank you for your help!

            – LawsDontApplyToPigs
            Mar 9 at 15:23















          0















          I would greatly appreciate an explanation as to why this happens.




          I think the X11 server reports mouse enter/exit relative to the input region of a window. With input_passthrough, the input region becomes empty. This means that the X11 server will now report the mouse pointer to be inside the window beneath your wibox and not inside of the wibox itself.




          BUT if put the input_passthrough = true in the table provided to the wibox function then everything works fine, EXCEPT that now it doesn't allow input to pass through.




          In other words: In this case the input_passthrough property is not set. Seems like you found one of the properties that cannot be set this way. ;-)




          Since I guess you also want some ideas on how you can do what you are trying to do: If you are running a compositing manager (xcompmgr, compton, ...), you could make a wibox with a completely transparent background. That way, the X11 server will "think" that the window is there and report input events relative to it, but the wibox will not actually be visible on screen.



          (And if you don't have a compositing manager: Make a widget that displays your wallpaper with the proper offset. A hint on how to do this can be found by reading /usr/share/awesome/lib/wibox/drawable.lua, the part that begins with if not capi.awesome.composite_manager_running then and that does something with the wallpaper. Feel free to ask for more details if necessary.)






          share|improve this answer























          • Aahh I see, so when you have input_passthrough set to true then the wibox can't catch at least certain mouse signals like mouse::leave. I eventually made a compromise and decided that I was going to have the sidebar just disappear when the mouse leaves. But thank you for your help!

            – LawsDontApplyToPigs
            Mar 9 at 15:23













          0












          0








          0








          I would greatly appreciate an explanation as to why this happens.




          I think the X11 server reports mouse enter/exit relative to the input region of a window. With input_passthrough, the input region becomes empty. This means that the X11 server will now report the mouse pointer to be inside the window beneath your wibox and not inside of the wibox itself.




          BUT if put the input_passthrough = true in the table provided to the wibox function then everything works fine, EXCEPT that now it doesn't allow input to pass through.




          In other words: In this case the input_passthrough property is not set. Seems like you found one of the properties that cannot be set this way. ;-)




          Since I guess you also want some ideas on how you can do what you are trying to do: If you are running a compositing manager (xcompmgr, compton, ...), you could make a wibox with a completely transparent background. That way, the X11 server will "think" that the window is there and report input events relative to it, but the wibox will not actually be visible on screen.



          (And if you don't have a compositing manager: Make a widget that displays your wallpaper with the proper offset. A hint on how to do this can be found by reading /usr/share/awesome/lib/wibox/drawable.lua, the part that begins with if not capi.awesome.composite_manager_running then and that does something with the wallpaper. Feel free to ask for more details if necessary.)






          share|improve this answer














          I would greatly appreciate an explanation as to why this happens.




          I think the X11 server reports mouse enter/exit relative to the input region of a window. With input_passthrough, the input region becomes empty. This means that the X11 server will now report the mouse pointer to be inside the window beneath your wibox and not inside of the wibox itself.




          BUT if put the input_passthrough = true in the table provided to the wibox function then everything works fine, EXCEPT that now it doesn't allow input to pass through.




          In other words: In this case the input_passthrough property is not set. Seems like you found one of the properties that cannot be set this way. ;-)




          Since I guess you also want some ideas on how you can do what you are trying to do: If you are running a compositing manager (xcompmgr, compton, ...), you could make a wibox with a completely transparent background. That way, the X11 server will "think" that the window is there and report input events relative to it, but the wibox will not actually be visible on screen.



          (And if you don't have a compositing manager: Make a widget that displays your wallpaper with the proper offset. A hint on how to do this can be found by reading /usr/share/awesome/lib/wibox/drawable.lua, the part that begins with if not capi.awesome.composite_manager_running then and that does something with the wallpaper. Feel free to ask for more details if necessary.)







          share|improve this answer












          share|improve this answer



          share|improve this answer










          answered Mar 9 at 14:34









          Uli SchlachterUli Schlachter

          5,3231730




          5,3231730












          • Aahh I see, so when you have input_passthrough set to true then the wibox can't catch at least certain mouse signals like mouse::leave. I eventually made a compromise and decided that I was going to have the sidebar just disappear when the mouse leaves. But thank you for your help!

            – LawsDontApplyToPigs
            Mar 9 at 15:23

















          • Aahh I see, so when you have input_passthrough set to true then the wibox can't catch at least certain mouse signals like mouse::leave. I eventually made a compromise and decided that I was going to have the sidebar just disappear when the mouse leaves. But thank you for your help!

            – LawsDontApplyToPigs
            Mar 9 at 15:23
















          Aahh I see, so when you have input_passthrough set to true then the wibox can't catch at least certain mouse signals like mouse::leave. I eventually made a compromise and decided that I was going to have the sidebar just disappear when the mouse leaves. But thank you for your help!

          – LawsDontApplyToPigs
          Mar 9 at 15:23





          Aahh I see, so when you have input_passthrough set to true then the wibox can't catch at least certain mouse signals like mouse::leave. I eventually made a compromise and decided that I was going to have the sidebar just disappear when the mouse leaves. But thank you for your help!

          – LawsDontApplyToPigs
          Mar 9 at 15:23



















          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%2f55075759%2fawesome-wm-wibox-not-reacting-to-mouse-signals-when-input-passthrough-is-true%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

          1928 у кіно

          Захаров Федір Захарович

          Ель Греко