From linux at obiwahn.org Sun Nov 6 12:33:48 2016 From: linux at obiwahn.org (Jan Christoph Uhde) Date: Sun, 6 Nov 2016 13:33:48 +0100 Subject: [xmonad] Can avoidStruts stop working? Message-ID: <8c429d41-9d77-c5c7-64db-beb61acb9238@obiwahn.org> Hi, I experience the same issues as in: https://mail.haskell.org/pipermail/xmonad/2016-March/015047.html avoidStruts works for me in 0.11.1 (not compatible with the newest ghc 8.x.y in debian sid). In version 0.12 (cabal-default) it does not work on the first workspace, but starts working after pressing (mod-shift-space). In current git version xmonad (8b055621e92e7ade127043e968f50713c15a00a0) / xmonad-contrib (ec5f9a9e59ed5fa6bbd4c3850e4025526155f86e) my xmobar is never visible as soon as there is any other window. I have tried to work with sanboxes and different ghc versions but it is all very painful as I have to cd into the correct sandbox and even then xmonad must use a certain ghc version on startup when it compiles it's configuration. Please let me know how I can help debugging the problem. I know a bit programming and a few haskell basics. So please give me enough details to be helpful. You will find me as obiwahn in #xmonad at freenode.net. Regards Jan Christoph Uhde -------------- next part -------------- A non-text attachment was scrubbed... Name: xmonad.hs Type: text/x-haskell Size: 5975 bytes Desc: not available URL: From mlists at pmade.com Sun Nov 6 16:09:55 2016 From: mlists at pmade.com (Peter Jones) Date: Sun, 06 Nov 2016 09:09:55 -0700 Subject: [xmonad] Can avoidStruts stop working? References: <8c429d41-9d77-c5c7-64db-beb61acb9238@obiwahn.org> Message-ID: <8760o0zj1o.fsf@pmade.com> Unfortunately this is a known bug in xmonad-contrib v0.12: https://github.com/xmonad/xmonad/issues/15 If you are building from source just use git master. We really need to make another release. Jan Christoph Uhde writes: > I experience the same issues as in: > > https://mail.haskell.org/pipermail/xmonad/2016-March/015047.html > > avoidStruts works for me in 0.11.1 (not compatible with the newest ghc > 8.x.y in debian sid). In version 0.12 (cabal-default) it does not work > on the first workspace, but starts working after pressing > (mod-shift-space). In current git version xmonad > (8b055621e92e7ade127043e968f50713c15a00a0) / xmonad-contrib > (ec5f9a9e59ed5fa6bbd4c3850e4025526155f86e) my xmobar is never visible as > soon as there is any other window. > > I have tried to work with sanboxes and different ghc versions but it is > all very painful as I have to cd > into the correct sandbox and even then xmonad must use > a certain ghc version on startup when it compiles it's > configuration. > > Please let me know how I can help debugging the problem. I know a bit > programming and a few haskell basics. So please give me enough details > to be helpful. You will find me as obiwahn in #xmonad. -- Peter Jones, Founder, Devalot.com Defending the honor of good code From mlists at pmade.com Sun Nov 6 16:26:04 2016 From: mlists at pmade.com (Peter Jones) Date: Sun, 06 Nov 2016 09:26:04 -0700 Subject: [xmonad] Ready for v0.13? Message-ID: <87wpggy3qb.fsf@pmade.com> It's been almost a year since we released v0.12 (which had an unfortunate struts bug). We should have done this a long time ago but better late than never. With my favorite holiday behind us, I have some spare time I could use to drive another release. But I'm going to need everyone's help. I'd like to close as many issues and pull requests as we can before making a release. And of course, getting master tested before the release would be a good idea too ;) Want to help? Pick one or more of the following: 1. Look through the list of pull requests and find one that sounds interesting to you. Merge it into your local xmonad and try it out: https://github.com/xmonad/xmonad/pulls https://github.com/xmonad/xmonad-contrib/pulls 2. Look through the list of issues and: a) Add a comment with more details if the bug is also affecting you b) If you think you can fix it, add a comment and then get working! 3. If you are interested in testing master before the release please let us know so we can start a dialog. What if you want to help but don't know how to build xmonad from source, or don't know how to use git? No problem! Reach out to me, I'd be more than happy to help you out. Either post a message to this mailing list, send me a direct email, or reach out to me on IRC, I'm pmade on #xmonad (on freenode). (We probably need a CONTRIBUTING.md file in the repo. I can work on that too.) I love xmonad and I know a lot of you do too. Let's make v0.13 a good release and make future releases easier. Thanks! -- Peter Jones, Founder, Devalot.com Defending the honor of good code From oneself at gmail.com Wed Nov 9 22:38:04 2016 From: oneself at gmail.com (Eyal Erez) Date: Wed, 9 Nov 2016 17:38:04 -0500 Subject: [xmonad] Controlling Window Location with XMonad.Layout.ThreeColumns In-Reply-To: References: Message-ID: Hi Daniel, Thank you for your response. I've spent the last few days trying to compile and run xmonad locally without much success. Would there be any chance you could make this change so that it might get into 0.13 before it gets released? Otherwise, I'll continue to try and get xmonad to run locally. On Sun, Oct 23, 2016 at 6:32 AM, Daniel Wagner wrote: > I think I'd consider that a bug, and it's probably easy enough to fix it. > This is a guess based on reading the source, so you should verify for > yourself whether this changes things appropriately, but... > > In XMonad.Layout.ThreeColumns.split3HorizontallyBy, swap the second two > elements of the triple in the True branch, so that it reads: > > then ( Rectangle (sx + fromIntegral r3w) sy r1w sh > , Rectangle sx sy r3w sh > , Rectangle (sx + fromIntegral r3w + fromIntegral r1w) sy r2w sh ) > > ~d > > On Tue, Oct 18, 2016 at 12:02 AM, Eyal Erez wrote: > >> Hi, >> >> I have an ultrawide monitor and so I use ThreeColumns most of the >> time. I create it like so: >> >> ThreeColMid 1 (3/100) (1/3) >> >> This works fine, however, I'm getting some strange behavior when >> creating an closing windows. I hope I can explain this with a small >> diagram which shows window location as I create and close apps: >> >> CREATE >> 1 [ a ] >> 2 [b][ a ] >> 3 [a][c][b] >> >> CLOSE >> 1 [a][c][b] >> 2 [b][ a ] >> 3 [ a ] >> >> So, when going from 2 to 3 open windows, window "a" and "b" switch >> location for some reason. in step #2 "b" is on the left and "a" is on >> the right, but when a third window is added (or removed) they swap >> locations. This is very confusing. >> >> Is there anyway I can cause this to stop happening? It would also be >> nice if window "b" was created into the active location, but that's >> more of a nitpick. >> >> Thank you >> >> -- >> There are 10 types of people, those who know binary and those who don't. >> >> >> >> >> >> >> >> >> _______________________________________________ >> xmonad mailing list >> xmonad at haskell.org >> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad >> >> > -- *Eyal Erez <**oneself at gmail.com* *>* There are 10 types of people, those who know binary and those who don't. -------------- next part -------------- An HTML attachment was scrubbed... URL: From loic at inzenet.org Sun Nov 13 13:24:28 2016 From: loic at inzenet.org (=?ISO-8859-1?Q?Lo=EFc?=) Date: Sun, 13 Nov 2016 14:24:28 +0100 Subject: [xmonad] contrib: fixing raiseNext stuck between 2 workspaces Message-ID: <3913275.XyDYYuvSKv@dupont> Dear all, I'm a big fan of raiseNext(Maybe) action from xmonad-contrib. However, there is a quite annoying bug, reported some years ago still active: raiseNext cycles only between 2 workspaces, making impossible to cycle through the entire list of windows (for a full description, not by me, see https://code.google.com/archive/p/xmonad/issues/284 ) The reason is that raiseNext calls allWindows from xmonad StackSet, which relies on a list of workspaces built as follows: the current workspace is put first, followed by visible then hidden workspaces. Thus the ordering of workspaces is not absolute, which is why raiseNext will cycle only between the current and another workspace. I found the following fix: - create a allWindowsSorted function in Xmonad.StackSet which relies on a list of workspaces sorted by their tags - call W.allWindowsSorted instead of W.allWindows in raiseNext. The patch is given below for 0.12. Let me know if it is an appropriate way to fix the bug. If so, I can create the pull requests for xmonad and xmonad-contrib that apply on current master. Otherwise, let me know what solution you would prefer. It would be nice that 0.13 contains a fix. Thanks for your feedback, Loïc diff -ur xmonad-0.12/src/XMonad/StackSet.hs xmonad-0.12.new/src/XMonad/ StackSet.hs --- xmonad-0.12/src/XMonad/StackSet.hs 2015-12-21 20:12:39.000000000 +0100 +++ xmonad-0.12.new/src/XMonad/StackSet.hs 2016-11-10 00:00:06.277840982 +0100 @@ -31,7 +31,7 @@ -- * Xinerama operations -- $xinerama lookupWorkspace, - screens, workspaces, allWindows, currentTag, + screens, workspaces, allWindows, allWindowsSorted, currentTag, -- * Operations on the current stack -- $stackOperations peek, index, integrate, integrate', differentiate, @@ -53,7 +53,7 @@ import Prelude hiding (filter) import Data.Maybe (listToMaybe,isJust,fromMaybe) -import qualified Data.List as L (deleteBy,find,splitAt,filter,nub) +import qualified Data.List as L (deleteBy,find,splitAt,filter,nub,sortBy) import Data.List ( (\\) ) import qualified Data.Map as M (Map,insert,delete,empty) @@ -385,6 +385,15 @@ allWindows :: Eq a => StackSet i l a s sd -> [a] allWindows = L.nub . concatMap (integrate' . stack) . workspaces + +workspacesSorted :: Ord i => StackSet i l a s sd -> [Workspace i l a] +workspacesSorted s = L.sortBy (\u t -> tag u `compare` tag t) $ + workspaces s + +-- | Get a list of all windows in the 'StackSet' with an absolute ordering of workspaces +allWindowsSorted :: Ord i => Eq a => StackSet i l a s sd -> [a] +allWindowsSorted = L.nub . concatMap (integrate' . stack) . workspacesSorted + -- | Get the tag of the currently focused workspace. currentTag :: StackSet i l a s sd -> i currentTag = tag . workspace . current diff -ur xmonad-contrib-0.12/XMonad/Actions/WindowGo.hs xmonad- contrib-0.12.new/XMonad/Actions/WindowGo.hs --- xmonad-contrib-0.12/XMonad/Actions/WindowGo.hs 2015-12-21 20:15:08.000000000 +0100 +++ xmonad-contrib-0.12.new/XMonad/Actions/WindowGo.hs 2016-11-10 00:05:33.422854352 +0100 @@ -43,7 +43,7 @@ import XMonad.ManageHook import XMonad.Operations (windows) import XMonad.Prompt.Shell (getBrowser, getEditor) -import qualified XMonad.StackSet as W (allWindows, peek, swapMaster, focusWindow) +import qualified XMonad.StackSet as W (allWindowsSorted, peek, swapMaster, focusWindow) import XMonad.Util.Run (safeSpawnProg) {- $usage @@ -70,7 +70,7 @@ -- second parameter. ifWindows :: Query Bool -> ([Window] -> X ()) -> X () -> X () ifWindows qry f el = withWindowSet $ \wins -> do - matches <- filterM (runQuery qry) $ W.allWindows wins + matches <- filterM (runQuery qry) $ W.allWindowsSorted wins case matches of [] -> el ws -> f ws