doFullFloat keybinding?

Hello List! I have a WS devoted to reading PDFs and alike and in my manageHook config stands the following: , className =? "Evince" --> doFullFloat This is, because I like my two xmobars (top and bottom) to disappear, when reading a paper such things. But: When evince is FullFloating I got problems when opening more than one instance of it, like a second paper. It just lets the first one disappear under the freshly opened one. What I would like to have is a keybinding to switch FullFloating on and off. Is this possible and if so, how? (By the way: another solution - maybe even a better one - would be to tell xmonad that if I hit F11 (go fullscreen) in evince, that this windows should be above the xmobars and should take the whole screen. Like VLC does.) I couldn't find anything about it, I'm sorry for the noise if I just sucked at Google-ing ;) Thank you!

Quoting 1126
Hello List!
I have a WS devoted to reading PDFs and alike and in my manageHook config stands the following:
, className =? "Evince" --> doFullFloat
This is, because I like my two xmobars (top and bottom) to disappear, when reading a paper such things. But: When evince is FullFloating I got problems when opening more than one instance of it, like a second paper. It just lets the first one disappear under the freshly opened one.
Probably the cleanest fix is to let that workspace run a non-avoidStruts layout, since avoidStruts is the thing making your windows avoid covering xmobar. (And then completely delete the hook that floats evince windows.) For example, a smallish starting config might look something like this: main = xmonad defaultConfig { layoutHook = avoidStruts (Full ||| Tall 1 0.5 0.03) } If you wanted to throw on another layout like Tall that covered up xmobar's, you'd do something like this: main = xmonad defaultConfig { layoutHook = avoidStruts (Full ||| Tall 1 0.5 0.03) ||| Tall 1 0.5 0.03 } Because of the parentheses, avoidStruts only applies to the first two layouts. Then, I'd switch my "PDF" workspace to the third layout by whacking mod+space a few times. (This can be automated, too, with a bit of effort. See PerWorkspaceLayouts in the xmonad-contrib documentation.) Good luck, ~d

On Tue, 10. Jul 05:00, wagnerdm@seas.upenn.edu wrote:
Quoting 1126
: Hello List!
I have a WS devoted to reading PDFs and alike and in my manageHook config stands the following:
, className =? "Evince" --> doFullFloat
This is, because I like my two xmobars (top and bottom) to disappear, when reading a paper such things. But: When evince is FullFloating I got problems when opening more than one instance of it, like a second paper. It just lets the first one disappear under the freshly opened one.
Probably the cleanest fix is to let that workspace run a non-avoidStruts layout, since avoidStruts is the thing making your windows avoid covering xmobar. (And then completely delete the hook that floats evince windows.) For example, a smallish starting config might look something like this:
main = xmonad defaultConfig { layoutHook = avoidStruts (Full ||| Tall 1 0.5 0.03) }
If you wanted to throw on another layout like Tall that covered up xmobar's, you'd do something like this:
main = xmonad defaultConfig { layoutHook = avoidStruts (Full ||| Tall 1 0.5 0.03) ||| Tall 1 0.5 0.03 }
Because of the parentheses, avoidStruts only applies to the first two layouts. Then, I'd switch my "PDF" workspace to the third layout by whacking mod+space a few times. (This can be automated, too, with a bit of effort. See PerWorkspaceLayouts in the xmonad-contrib documentation.)
Good luck, ~d
Well, thank you. I already got an (more or less) complex perWorkspace layout and I'm not entirely sure how to add a non-avoidStruts layout for the workspace for evince (this would be (workspace !! 5) in my case). Here's what I have now: myLayoutHook = avoidStruts . smartBorders . onWorkspace (myWorkspaces !! 0) (tiled ||| simpleTabbed ||| Full) . onWorkspace (myWorkspaces !! 2) (tiled ||| Full ||| simpleTabbed) . onWorkspace (myWorkspaces !! 3) (tiled2 ||| simpleTabbed ||| Full) . onWorkspace (myWorkspaces !! 8) (tiled3 ||| Full ||| simpleTabbed) $ (Full ||| simpleTabbed ||| Grid) where tiled = ResizableTall 1 (5/100) (40/100) [] tiled2 = Mirror (Tall 1 (5/100) (30/100)) tiled3 = withIM (11/64) (Role "gimp-toolbox") $ ResizableTall 2 (1/118) (11/20) [1] ||| Full The weird thing is, the workspace VLC has no problem with the fullscreen-mode. When I hit F11 in VLC it fills up the fullscreen, just like Evince should. And it resides on an avoidStruts workspace, too. I hope you can give me a hint :) Thank you very much in advance!
_______________________________________________ xmonad mailing list xmonad@haskell.org http://www.haskell.org/mailman/listinfo/xmonad

Quoting 1126
Well, thank you. I already got an (more or less) complex perWorkspace layout and I'm not entirely sure how to add a non-avoidStruts layout for the workspace for evince (this would be (workspace !! 5) in my case). Here's what I have now:
myLayoutHook = avoidStruts . smartBorders . onWorkspace (myWorkspaces !! 0) (tiled ||| simpleTabbed ||| Full) . onWorkspace (myWorkspaces !! 2) (tiled ||| Full ||| simpleTabbed) . onWorkspace (myWorkspaces !! 3) (tiled2 ||| simpleTabbed ||| Full) . onWorkspace (myWorkspaces !! 8) (tiled3 ||| Full ||| simpleTabbed) $ (Full ||| simpleTabbed ||| Grid) where tiled = ResizableTall 1 (5/100) (40/100) [] tiled2 = Mirror (Tall 1 (5/100) (30/100)) tiled3 = withIM (11/64) (Role "gimp-toolbox") $ ResizableTall 2 (1/118) (11/20) [1] ||| Full
You'll have to distribute avoidStruts over the onWorkspace commands. Try something like this (untested): myLayoutHook = smartBorders . onWSAvoid (myWorkspaces !! 0) (tiled ||| simpleTabbed ||| Full) . onWSAvoid (myWorkspaces !! 2) (tiled ||| Full ||| simpleTabbed) . onWSAvoid (myWorkspaces !! 3) (tiled2 ||| simpleTabbed ||| Full) . onWorkspace (myWorkspaces !! 5) (Full ||| simpleTabbed ||| Grid) . onWSAvoid (myWorkspaces !! 8) (tiled3 ||| Full ||| simpleTabbed) . avoidStruts $ (Full ||| simpleTabbed ||| Grid) where tiled = ResizableTall 1 (5/100) (40/100) [] tiled2 = Mirror (Tall 1 (5/100) (30/100)) tiled3 = withIM (11/64) (Role "gimp-toolbox") $ ResizableTall 2 (1/118) (11/20) [1] ||| Full onWSAvoid ws l = onWorkspace ws (avoidStruts l) Remember to mod+shift+space on your evince workspace after you reload this config.
The weird thing is, the workspace VLC has no problem with the fullscreen-mode. When I hit F11 in VLC it fills up the fullscreen, just like Evince should. And it resides on an avoidStruts workspace, too.
Can't help you here. Perhaps VLC uses a different fullscreening method than evince. But it sounded to me like you didn't actually want fullscreen'd evince anyway -- you still wanted them tiled when there was more than one. ~d

On Tue, 10. Jul 05:40, wagnerdm@seas.upenn.edu wrote:
Quoting 1126
: Well, thank you. I already got an (more or less) complex perWorkspace layout and I'm not entirely sure how to add a non-avoidStruts layout for the workspace for evince (this would be (workspace !! 5) in my case). Here's what I have now:
myLayoutHook = avoidStruts . smartBorders . onWorkspace (myWorkspaces !! 0) (tiled ||| simpleTabbed ||| Full) . onWorkspace (myWorkspaces !! 2) (tiled ||| Full ||| simpleTabbed) . onWorkspace (myWorkspaces !! 3) (tiled2 ||| simpleTabbed ||| Full) . onWorkspace (myWorkspaces !! 8) (tiled3 ||| Full ||| simpleTabbed) $ (Full ||| simpleTabbed ||| Grid) where tiled = ResizableTall 1 (5/100) (40/100) [] tiled2 = Mirror (Tall 1 (5/100) (30/100)) tiled3 = withIM (11/64) (Role "gimp-toolbox") $ ResizableTall 2 (1/118) (11/20) [1] ||| Full
You'll have to distribute avoidStruts over the onWorkspace commands. Try something like this (untested):
myLayoutHook = smartBorders . onWSAvoid (myWorkspaces !! 0) (tiled ||| simpleTabbed ||| Full) . onWSAvoid (myWorkspaces !! 2) (tiled ||| Full ||| simpleTabbed) . onWSAvoid (myWorkspaces !! 3) (tiled2 ||| simpleTabbed ||| Full) . onWorkspace (myWorkspaces !! 5) (Full ||| simpleTabbed ||| Grid) . onWSAvoid (myWorkspaces !! 8) (tiled3 ||| Full ||| simpleTabbed) . avoidStruts $ (Full ||| simpleTabbed ||| Grid) where tiled = ResizableTall 1 (5/100) (40/100) [] tiled2 = Mirror (Tall 1 (5/100) (30/100)) tiled3 = withIM (11/64) (Role "gimp-toolbox") $ ResizableTall 2 (1/118) (11/20) [1] ||| Full onWSAvoid ws l = onWorkspace ws (avoidStruts l)
This actually works, thank you a lot! :) And it does what I wanted. Great!
Remember to mod+shift+space on your evince workspace after you reload this config.
The weird thing is, the workspace VLC has no problem with the fullscreen-mode. When I hit F11 in VLC it fills up the fullscreen, just like Evince should. And it resides on an avoidStruts workspace, too.
Can't help you here. Perhaps VLC uses a different fullscreening method than evince. But it sounded to me like you didn't actually want fullscreen'd evince anyway -- you still wanted them tiled when there was more than one.
~d
_______________________________________________ xmonad mailing list xmonad@haskell.org http://www.haskell.org/mailman/listinfo/xmonad

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA512 On Tue, Jul 10, 2012 at 08:23:23 GMT, 1126 wrote:
Hello List!
I have a WS devoted to reading PDFs and alike and in my manageHook config stands the following:
, className =? "Evince" --> doFullFloat
This is, because I like my two xmobars (top and bottom) to disappear, when reading a paper such things. But: When evince is FullFloating I got problems when opening more than one instance of it, like a second paper. It just lets the first one disappear under the freshly opened one.
What I would like to have is a keybinding to switch FullFloating on and off. Is this possible and if so, how? (By the way: another solution - maybe even a better one - would be to tell xmonad that if I hit F11 (go fullscreen) in evince, that this windows should be above the xmobars and should take the whole screen. Like VLC does.)
Check out XMonad.Hooks.ToggleHook. - -- Ben -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAEBCgAGBQJP/YOFAAoJEKaxavVX4C1XDvgQANuaFDNEDTBmWJTdELuj0zmJ Csh/4NgEDbsthFrhQ1V65xGPgIwxNViLwcYox0wcOp7f7ADF5ubsxsibqfAfuvul UNqZ1ctzZrEMGm1Ja98B5Hnz2EjTrGybcKlkJyugNpGTcNoErflShk9afKEsi4GV VmCccKjMPx8/5lEKSYj8cs4REGlN1fGRCH1hAu9/Uz5sE+B8edkQXerm6QGviNwq iO+AQfUUyvwZUtaqUhE5Fa388dQ4J4zGvMoF/JcLxP5erEadYL6L4NIXZjPL0oJ0 JLO55hq+uLwRU5euEYh0RN7No4FoD2+OBPeJVoDW053M2OL06AT1mLs8mGgRmxTD UL6A0jlwP0eIHs25TE6dU3EZAKhE+INADbN0fyk9MCVYh8aQTdkw0AqvAX9bJxRL 4iBM7saHYden2zvPe9VXO8Ange39j0rghmvvcRj/roZB2hVgr+A7wg6rQ5QsrdfF EDc1PInTsdO+kHqvdp77m2mwhj645DizZKFv5+Gop15KIJwvB+sVsOJoCboI42SN BUocLZMnxfxhwo5juTl3kaa4pDkba1zh1rvXR5XpyE+slw5r/9EZXhHGQoGtq8fx adLMyChj0/Vin9pJICogJGgkYpSQJIyxodofZ9pkaWY3tuT1vp6GKDV77YLyu95Y tnwCOjfYBuAJCt7XLpQ3 =/Kwn -----END PGP SIGNATURE-----

På Tue, 10 Jul 2012 10:23:23 +0200, skrev 1126
Hello List!
I have a WS devoted to reading PDFs and alike and in my manageHook config stands the following:
, className =? "Evince" --> doFullFloat
This is, because I like my two xmobars (top and bottom) to disappear, when reading a paper such things. But: When evince is FullFloating I got problems when opening more than one instance of it, like a second paper. It just lets the first one disappear under the freshly opened one.
What I would like to have is a keybinding to switch FullFloating on and off. Is this possible and if so, how? (By the way: another solution - maybe even a better one - would be to tell xmonad that if I hit F11 (go fullscreen) in evince, that this windows should be above the xmobars and should take the whole screen. Like VLC does.)
I couldn't find anything about it, I'm sorry for the noise if I just sucked at Google-ing ;)
Why not skip floating the window, and use evince's existing fullscreen mechanism, which is already bound to F11? Sadly, this won't work out of the box. But using the XMonad.Layout.Fullscreen module you can get it to work. Instructions are provided in the module documentation: http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Layout-Fullscreen.html The fullscreenFocus modifier is my choice. Note that if you put the fullscreen layout modifier before avoidStruts, the fullscreen window will cover xmobar, and if you put it after it won't. Mail me if you need more help. -- Mvh Audun Skaugen

On 14 July 2012 14:21, Audun Skaugen
På Tue, 10 Jul 2012 10:23:23 +0200, skrev 1126
: Hello List!
I have a WS devoted to reading PDFs and alike and in my manageHook config stands the following:
, className =? "Evince" --> doFullFloat
This is, because I like my two xmobars (top and bottom) to disappear, when reading a paper such things. But: When evince is FullFloating I got problems when opening more than one instance of it, like a second paper. It just lets the first one disappear under the freshly opened one.
What I would like to have is a keybinding to switch FullFloating on and off. Is this possible and if so, how? (By the way: another solution - maybe even a better one - would be to tell xmonad that if I hit F11 (go fullscreen) in evince, that this windows should be above the xmobars and should take the whole screen. Like VLC does.)
I couldn't find anything about it, I'm sorry for the noise if I just sucked at Google-ing ;)
Why not skip floating the window, and use evince's existing fullscreen mechanism, which is already bound to F11?
Sadly, this won't work out of the box. But using the XMonad.Layout.Fullscreen module you can get it to work. Instructions are provided in the module documentation: http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Layout-Fullscreen.html
The fullscreenFocus modifier is my choice. Note that if you put the fullscreen layout modifier before avoidStruts, the fullscreen window will cover xmobar, and if you put it after it won't.
Mail me if you need more help.
Even better... if you are using extended window manager hints (X.H.EwmhDesktops), which is likely. It already manage an event hook that can do that job for you. I just added fullscreenEventHook to eventHook like this: ... import XMonad.Hooks.EwmhDesktops ... myEventHook = do ewmhDesktopsEventHook fullscreenEventHook ... , eventHook = myEventHook ... or, ... myEventHook = ewmhDesktopsEventHook <+> fullscreenEventHook ... (both work, I dunno if some of them is better) Regards! -- Pablo Olmos de Aguilera Corradini - @PaBLoX http://www.glatelier.org/ http://about.me/pablox/ http://www.linkedin.com/in/pablooda/ Linux User: #456971 - http://counter.li.org/

På Sun, 15 Jul 2012 00:13:38 +0200, skrev Pablo Olmos de Aguilera C.
On 14 July 2012 14:21, Audun Skaugen
wrote: På Tue, 10 Jul 2012 10:23:23 +0200, skrev 1126
: Hello List!
I have a WS devoted to reading PDFs and alike and in my manageHook config stands the following:
, className =? "Evince" --> doFullFloat
This is, because I like my two xmobars (top and bottom) to disappear, when reading a paper such things. But: When evince is FullFloating I got problems when opening more than one instance of it, like a second paper. It just lets the first one disappear under the freshly opened one.
What I would like to have is a keybinding to switch FullFloating on and off. Is this possible and if so, how? (By the way: another solution - maybe even a better one - would be to tell xmonad that if I hit F11 (go fullscreen) in evince, that this windows should be above the xmobars and should take the whole screen. Like VLC does.)
I couldn't find anything about it, I'm sorry for the noise if I just sucked at Google-ing ;)
Why not skip floating the window, and use evince's existing fullscreen mechanism, which is already bound to F11?
Sadly, this won't work out of the box. But using the XMonad.Layout.Fullscreen module you can get it to work. Instructions are provided in the module documentation: http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Layout-Fullscreen.html
The fullscreenFocus modifier is my choice. Note that if you put the fullscreen layout modifier before avoidStruts, the fullscreen window will cover xmobar, and if you put it after it won't.
Mail me if you need more help.
Even better... if you are using extended window manager hints (X.H.EwmhDesktops), which is likely. It already manage an event hook that can do that job for you. I just added fullscreenEventHook to eventHook like this:
... import XMonad.Hooks.EwmhDesktops ...
myEventHook = do ewmhDesktopsEventHook fullscreenEventHook
... , eventHook = myEventHook ...
or,
... myEventHook = ewmhDesktopsEventHook <+> fullscreenEventHook ...
(both work, I dunno if some of them is better)
Regards!
This will make the fullscreened windows floating, which leads to the same problem as the OP had, with multiple fullscreen windows overlapping and no easy way to switch between them. With the XMonad.Layout.Fullscreen solution, the windows are kept in the tiling layer, making them easy to switch between while still taking up the entire screen. -- Audun Skaugen

On 15 July 2012 18:03, Audun Skaugen
På Sun, 15 Jul 2012 00:13:38 +0200, skrev Pablo Olmos de Aguilera C.
: On 14 July 2012 14:21, Audun Skaugen
wrote: På Tue, 10 Jul 2012 10:23:23 +0200, skrev 1126
: Hello List!
I have a WS devoted to reading PDFs and alike and in my manageHook config stands the following:
, className =? "Evince" --> doFullFloat
This is, because I like my two xmobars (top and bottom) to disappear, when reading a paper such things. But: When evince is FullFloating I got problems when opening more than one instance of it, like a second paper. It just lets the first one disappear under the freshly opened one.
What I would like to have is a keybinding to switch FullFloating on and off. Is this possible and if so, how? (By the way: another solution - maybe even a better one - would be to tell xmonad that if I hit F11 (go fullscreen) in evince, that this windows should be above the xmobars and should take the whole screen. Like VLC does.)
I couldn't find anything about it, I'm sorry for the noise if I just sucked at Google-ing ;)
Why not skip floating the window, and use evince's existing fullscreen mechanism, which is already bound to F11?
Sadly, this won't work out of the box. But using the XMonad.Layout.Fullscreen module you can get it to work. Instructions are provided in the module documentation:
http://xmonad.org/xmonad-docs/xmonad-contrib/XMonad-Layout-Fullscreen.html
The fullscreenFocus modifier is my choice. Note that if you put the fullscreen layout modifier before avoidStruts, the fullscreen window will cover xmobar, and if you put it after it won't.
Mail me if you need more help.
Even better... if you are using extended window manager hints (X.H.EwmhDesktops), which is likely. It already manage an event hook that can do that job for you. I just added fullscreenEventHook to eventHook like this:
... import XMonad.Hooks.EwmhDesktops ...
myEventHook = do ewmhDesktopsEventHook fullscreenEventHook
... , eventHook = myEventHook ...
or,
... myEventHook = ewmhDesktopsEventHook <+> fullscreenEventHook ...
(both work, I dunno if some of them is better)
Regards!
This will make the fullscreened windows floating, which leads to the same problem as the OP had, with multiple fullscreen windows overlapping and no easy way to switch between them.
With the XMonad.Layout.Fullscreen solution, the windows are kept in the tiling layer, making them easy to switch between while still taking up the entire screen.
If the window it is in fullscreen, why it matters if its floating or tiled? If you follow my solution, everytime you press f11 evince goes fullscreen and go back they way it were before (tiled prolly). Maybe I'm not understanding what's the original problem :P Regards, -- Pablo Olmos de Aguilera Corradini - @PaBLoX http://www.glatelier.org/ http://about.me/pablox/ http://www.linkedin.com/in/pablooda/ Linux User: #456971 - http://counter.li.org/

På Mon, 16 Jul 2012 01:03:29 +0200, skrev Pablo Olmos de Aguilera C.
If the window it is in fullscreen, why it matters if its floating or tiled? If you follow my solution, everytime you press f11 evince goes fullscreen and go back they way it were before (tiled prolly).
Maybe I'm not understanding what's the original problem :P
It matters because the floating layer is clumsy to use. When a new floating window completely covers an old one, the covered window will be almost impossible to reach: you have to move the covering window out of the way somehow and mod-click the covered window to bring it to top. When the windows are in the tiled layer, the layout algorithm can handle window ordering, so that a simple focus change will reorder the windows. -- Audun Skaugen

On 15 July 2012 19:08, Audun Skaugen
På Mon, 16 Jul 2012 01:03:29 +0200, skrev Pablo Olmos de Aguilera C.
: If the window it is in fullscreen, why it matters if its floating or tiled? If you follow my solution, everytime you press f11 evince goes fullscreen and go back they way it were before (tiled prolly).
Maybe I'm not understanding what's the original problem :P
It matters because the floating layer is clumsy to use. When a new floating window completely covers an old one, the covered window will be almost impossible to reach: you have to move the covering window out of the way somehow and mod-click the covered window to bring it to top. When the windows are in the tiled layer, the layout algorithm can handle window ordering, so that a simple focus change will reorder the windows.
I get that, but the question was about how fullscreen evince... and as I said: with f11 you can swap between fullscreen and tiled. Wasn't that the original question? Regards, -- Pablo Olmos de Aguilera Corradini - @PaBLoX http://www.glatelier.org/ http://about.me/pablox/ http://www.linkedin.com/in/pablooda/ Linux User: #456971 - http://counter.li.org/

On Sun, Jul 15, 2012 at 7:28 PM, Pablo Olmos de Aguilera C. < pablo@glatelier.org> wrote:
I get that, but the question was about how fullscreen evince... and as I said: with f11 you can swap between fullscreen and tiled. Wasn't that the original question?
The original question was how to handle *two* fullscreened evince windows. One worked fiine, two meant one of them couldn't be accessed. -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms

On 15 July 2012 19:33, Brandon Allbery
On Sun, Jul 15, 2012 at 7:28 PM, Pablo Olmos de Aguilera C.
wrote: I get that, but the question was about how fullscreen evince... and as I said: with f11 you can swap between fullscreen and tiled. Wasn't that the original question?
The original question was how to handle *two* fullscreened evince windows. One worked fiine, two meant one of them couldn't be accessed.
But according to the original question:
On 10 July 2012 04:23, 1126
By the way: another solution - maybe even a better one - would be to tell xmonad that if I hit F11 (go fullscreen) in evince, that this windows should be above the xmobars and should take the whole screen. Like VLC does.
That's what ewmh config does? Regards, -- Pablo Olmos de Aguilera Corradini - @PaBLoX http://www.glatelier.org/ http://about.me/pablox/ http://www.linkedin.com/in/pablooda/ Linux User: #456971 - http://counter.li.org/
participants (6)
-
1126
-
Audun Skaugen
-
Ben Boeckel
-
Brandon Allbery
-
Pablo Olmos de Aguilera C.
-
wagnerdm@seas.upenn.edu