From soliditsallgood at mailbox.org Sat Sep 3 14:15:17 2022 From: soliditsallgood at mailbox.org (Tony Zorman) Date: Sat, 03 Sep 2022 16:15:17 +0200 Subject: [xmonad] xmonad and xmonad-contrib 0.17.1 are available Message-ID: <87y1v0r1ca.fsf@hyperspace> ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ XMONAD AND XMONAD-CONTRIB 0.17.1 ARE AVAILABLE ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ New versions of xmonad and xmonad-contrib have been released. Check out our [download page] for instructions on where to get them. About 10 months after the big release of 0.17.0, we—as promised—picked up the pace a bit and are back with a new minor version; don't let that fool you though, this one still packs a punch! Plus, we now sport a brand-new [logo], courtesy of [Hans Heintze]. As this is a minor release, we tried to keep the breaking changes to a minimum (xmonad core does not have a single one!) However, some were unavoidable for `xmonad-contrib', so be sure to at least glance at the [release notes]! For help getting started—or more info—see [our website] and [talk to us]! If you like what we do, you can support us on [Open Collective] or via [GitHub Sponsors]. Thanks! [GitHub Sponsors] [Hans Heintze] [Open Collective] [download page] [logo] [our website] [release notes] See section 2 [talk to us] 1 xmonad 0.17.1 ═══════════════ This release includes 32 non-merge commits by 6 contributors! For a full summary of all the changes, see [xmonad's CHANGES.md] file. [xmonad's CHANGES.md] 1.1 Enhancements ──────────────── • Added custom cursor shapes for resizing and moving windows. 1.2 Bug Fixes ───────────── • Change the main loop to try to avoid [GHC bug 21708] on systems running GHC 9.2 up to version 9.2.3. The issue has been fixed in [GHC 9.2.4] and all later releases. • Fixed border color of windows with alpha channel. Now all windows have the same opaque border color. [GHC bug 21708] [GHC 9.2.4] 2 xmonad-contrib 0.17.1 ═══════════════════════ This release includes 212 non-merge commits by 32 contributors! For a full summary of all the changes, see [xmonad-contrib's CHANGES.md] file. [xmonad-contrib's CHANGES.md] 2.1 Breaking Changes ──────────────────── • `XMonad.Config.{Arossato,Dmwit,Droundy,Monad,Prime,Saegesser,Sjanssen}': deprecated all of these modules. The user-specific configuration modules may still be found [on the website]. • `XMonad.Util.NamedScratchpad': scratchpads are now only based on the argument given to `namedScratchpadManageHook'; all other scratchpad arguments are, while still present, ignored. Users passing all of their scratchpads to functions like `namedScratchpadAction' (as is shown in the module's documentation) should /not/ notice any difference in behaviour. • `XMonad.Util.DynamicScratchpads': deprecated the module; use the new dynamic scratchpad functionality of `XMonad.Util.NamedScratchpad' instead. • `XMonad.Hooks.UrgencyHook': deprecated `urgencyConfig'; use `def' from the new `Default' instance of `UrgencyConfig' instead. [on the website] 2.2 New Modules ─────────────── • `XMonad.Hooks.Modal': a module implementing modal keybindings for XMonad. • `XMonad.Layout.SideBorderDecoration': this module allows for having a configurable border position around windows; i.e., it can move the border to either cardinal direction. • `XMonad.Actions.PerLayoutKeys': a new module for customising keybindings on a per-layout basis. • `XMonad.Actions.RepeatAction': a module for adding a keybinding to repeat the last action, similar to Vim's `.' or Emacs's `dot-mode'. 2.3 Bug Fixes and Minor Changes ─────────────────────────────── • `XMonad.Prompt' and `XMonad.Actions.TreeSelect': added xft-based font fallback support. This may be used by appending other fonts to the given string: `xft:iosevka-11,FontAwesome-9'. Note that this requires `xmonad-contrib' to be compiled with `X11-xft' version 0.3.4 or higher. • `XMonad.Util.Run': added an EDSL—particularly geared towards programs like terminals or Emacs—to spawn processes from XMonad in a compositional way. • `XMonad.Util.Hacks': added `trayerPaddingXmobarEventHook' (plus generic variants for other trays/panels) to communicate trayer resize events to xmobar so that padding space may be reserved on xmobar for the tray. Requires `xmobar' version 0.40 or higher. • `XMonad.Prompt.OrgMode': added the ability to specify alphabetic (`#A', `#B', and `#C') [priorities] at the end of the input note. • `XMonad.Actions.Submap': added `visualSubmap' to visualise the available keys and their actions when inside a submap. • `XMonad.Util.NamedScratchpad': added support for dynamic scratchpads in the form of `dynamicNSPAction' and `toggleDynamicNSP'. • `XMonad.Hooks.WindowSwallowing': fixed windows getting lost when used in conjunction with `smartBorders' and a single window. [priorities] -- Tony Zorman | https://tony-zorman.com/ From rdiaz02 at gmail.com Mon Sep 19 16:01:36 2022 From: rdiaz02 at gmail.com (Ramon Diaz-Uriarte) Date: Mon, 19 Sep 2022 18:01:36 +0200 Subject: [xmonad] workspaces conditional on host name Message-ID: <87a66vgxo6.fsf@gmail.com> Dear All, I use XMonad on different machines. The configuration is identical, except for the default workspaces, so I'd like to have the config file set the default workspaces automagically. Haskell ignorant here, but googling around I think I am almost there. These are, I think, the relevant pieces myWorkspaces = map show[1..7] myWorkspacesPhelsuma = map show[1..3] ++ ["top", "sync", "zot", "whats"] myWorkspacesTriturus = map show[1..2] ++ ["top", "sync"] main :: IO () main = do hostname <- io (getEnv "HOSTNAME") let myWorkspaces = case hostname of "Phelsuma" -> myWorkspacesPhelsuma "Triturus" -> myWorkspacesTriturus _ -> myWorkspaces xmonad $ ewmh $ dynamicProjects myProjects $ withNavigation2DConfig def $ docks $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey $ myConfig myConfig = def { --- blablabla workspaces = myWorkspaces } However, I keep getting an error: • Couldn't match expected type ‘Maybe String’ with actual type ‘[Char]’ • In the pattern: "Phelsuma" In a case alternative: "Phelsuma" -> myWorkspacesPhelsuma In the expression: case hostname of "Phelsuma" -> myWorkspacesPhelsuma "Triturus" -> myWorkspacesTriturus _ -> myWorkspaces | 882 | "Phelsuma" -> myWorkspacesPhelsuma | ^^^^^^^^^^ (and the same error for the second entry, "Triturus") This I think should be fairly easy to fix, but I can't find how. I tried writing the case section as let myWorkspaces = case hostname of Just "Phelsuma" -> myWorkspacesPhelsuma Just "Triturus" -> myWorkspacesTriturus _ -> myWorkspaces and that does not give me an error, but it seems to ignore the actual hostname and uses the "default" one (the one with workspaces 1 to 7). So I think I am using "Just" incorrectly and possibly also misunderstanding how "let" works in main. Any suggestions? Thanks, -- Ramon Diaz-Uriarte Department of Biochemistry, Lab B-31 Facultad de Medicina Universidad Autónoma de Madrid Arzobispo Morcillo, 4 28029 Madrid Spain Phone: +34-91-497-2412 Email: rdiaz02 at gmail.com r.diaz at uam.es https://ligarto.org/rdiaz From allbery.b at gmail.com Mon Sep 19 16:08:59 2022 From: allbery.b at gmail.com (Brandon Allbery) Date: Mon, 19 Sep 2022 12:08:59 -0400 Subject: [xmonad] workspaces conditional on host name In-Reply-To: <87a66vgxo6.fsf@gmail.com> References: <87a66vgxo6.fsf@gmail.com> Message-ID: That should actually be fine. Check the case of your hostname? You might want to drop a `print hostname` before the `let` and then check the session log. On Mon, Sep 19, 2022 at 12:02 PM Ramon Diaz-Uriarte wrote: > > Dear All, > > I use XMonad on different machines. The configuration is identical, except for the default workspaces, so I'd like to have the config file set the default workspaces automagically. Haskell ignorant here, but googling around I think I am almost there. These are, I think, the relevant pieces > > > myWorkspaces = map show[1..7] > myWorkspacesPhelsuma = map show[1..3] ++ ["top", "sync", "zot", "whats"] > myWorkspacesTriturus = map show[1..2] ++ ["top", "sync"] > > > main :: IO () > main = do > hostname <- io (getEnv "HOSTNAME") > let myWorkspaces = case hostname of > "Phelsuma" -> myWorkspacesPhelsuma > "Triturus" -> myWorkspacesTriturus > _ -> myWorkspaces > xmonad > $ ewmh > $ dynamicProjects myProjects > $ withNavigation2DConfig def > $ docks > $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey > $ myConfig > > > myConfig = def { > --- blablabla > workspaces = myWorkspaces > } > > > However, I keep getting an error: > > • Couldn't match expected type ‘Maybe String’ > with actual type ‘[Char]’ > • In the pattern: "Phelsuma" > In a case alternative: "Phelsuma" -> myWorkspacesPhelsuma > In the expression: > case hostname of > "Phelsuma" -> myWorkspacesPhelsuma > "Triturus" -> myWorkspacesTriturus > _ -> myWorkspaces > | > 882 | "Phelsuma" -> myWorkspacesPhelsuma > | ^^^^^^^^^^ > > (and the same error for the second entry, "Triturus") > > > This I think should be fairly easy to fix, but I can't find how. I tried writing the case section as > > let myWorkspaces = case hostname of > Just "Phelsuma" -> myWorkspacesPhelsuma > Just "Triturus" -> myWorkspacesTriturus > _ -> myWorkspaces > > and that does not give me an error, but it seems to ignore the actual hostname and uses the "default" one (the one with workspaces 1 to 7). So I think I am using "Just" incorrectly and possibly also misunderstanding how "let" works in main. > > Any suggestions? > > Thanks, > > -- > Ramon Diaz-Uriarte > Department of Biochemistry, Lab B-31 > Facultad de Medicina > Universidad Autónoma de Madrid > Arzobispo Morcillo, 4 > 28029 Madrid > Spain > > Phone: +34-91-497-2412 > > Email: rdiaz02 at gmail.com > r.diaz at uam.es > > https://ligarto.org/rdiaz > _______________________________________________ > xmonad mailing list > xmonad at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad -- brandon s allbery kf8nh allbery.b at gmail.com From platon7pronko at gmail.com Mon Sep 19 17:30:01 2022 From: platon7pronko at gmail.com (Platon Pronko) Date: Mon, 19 Sep 2022 20:30:01 +0300 Subject: [xmonad] workspaces conditional on host name In-Reply-To: <87a66vgxo6.fsf@gmail.com> References: <87a66vgxo6.fsf@gmail.com> Message-ID: <5d1a1bee-c88b-70bc-5b37-640d87615e68@gmail.com> Hi! It looks like `myWorkspaces` in `myConfig` definition is referencing this defintion: myWorkspaces = map show[1..7] instead of the one you actually want. Maybe try adding workspaces as an argument to `myConfig`? Something like this: myConfig workspaces = def { --- blablabla workspaces = workspaces } main :: IO () main = do hostname <- io (getEnv "HOSTNAME") let workspaces = case hostname of Just "Phelsuma" -> myWorkspacesPhelsuma Just "Triturus" -> myWorkspacesTriturus _ -> myWorkspaces xmonad $ ewmh $ dynamicProjects myProjects $ withNavigation2DConfig def $ docks $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey $ myConfig workspaces -- Best regards, Platon Pronko PGP 2A62D77A7A2CB94E On 2022-09-19 19:01, Ramon Diaz-Uriarte wrote: > Dear All, > > I use XMonad on different machines. The configuration is identical, except for the default workspaces, so I'd like to have the config file set the default workspaces automagically. Haskell ignorant here, but googling around I think I am almost there. These are, I think, the relevant pieces > > > myWorkspaces = map show[1..7] > myWorkspacesPhelsuma = map show[1..3] ++ ["top", "sync", "zot", "whats"] > myWorkspacesTriturus = map show[1..2] ++ ["top", "sync"] > > > main :: IO () > main = do > hostname <- io (getEnv "HOSTNAME") > let myWorkspaces = case hostname of > "Phelsuma" -> myWorkspacesPhelsuma > "Triturus" -> myWorkspacesTriturus > _ -> myWorkspaces > xmonad > $ ewmh > $ dynamicProjects myProjects > $ withNavigation2DConfig def > $ docks > $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey > $ myConfig > > > myConfig = def { > --- blablabla > workspaces = myWorkspaces > } > > > However, I keep getting an error: > > • Couldn't match expected type ‘Maybe String’ > with actual type ‘[Char]’ > • In the pattern: "Phelsuma" > In a case alternative: "Phelsuma" -> myWorkspacesPhelsuma > In the expression: > case hostname of > "Phelsuma" -> myWorkspacesPhelsuma > "Triturus" -> myWorkspacesTriturus > _ -> myWorkspaces > | > 882 | "Phelsuma" -> myWorkspacesPhelsuma > | ^^^^^^^^^^ > > (and the same error for the second entry, "Triturus") > > > This I think should be fairly easy to fix, but I can't find how. I tried writing the case section as > > let myWorkspaces = case hostname of > Just "Phelsuma" -> myWorkspacesPhelsuma > Just "Triturus" -> myWorkspacesTriturus > _ -> myWorkspaces > > and that does not give me an error, but it seems to ignore the actual hostname and uses the "default" one (the one with workspaces 1 to 7). So I think I am using "Just" incorrectly and possibly also misunderstanding how "let" works in main. > > Any suggestions? > > Thanks, > From allbery.b at gmail.com Mon Sep 19 17:33:08 2022 From: allbery.b at gmail.com (Brandon Allbery) Date: Mon, 19 Sep 2022 13:33:08 -0400 Subject: [xmonad] workspaces conditional on host name In-Reply-To: <5d1a1bee-c88b-70bc-5b37-640d87615e68@gmail.com> References: <87a66vgxo6.fsf@gmail.com> <5d1a1bee-c88b-70bc-5b37-640d87615e68@gmail.com> Message-ID: Oh, I missed that. Yes, the `myWorkspaces` you set in `main` has nothing to do with the global one which `myConfig` sees; you need to pass the new one in. And possibly rename it so it's more obvious that they're not related. On Mon, Sep 19, 2022 at 1:30 PM Platon Pronko wrote: > > Hi! > > It looks like `myWorkspaces` in `myConfig` definition is referencing this defintion: > > myWorkspaces = map show[1..7] > > instead of the one you actually want. Maybe try adding workspaces as an argument to `myConfig`? Something like this: > > myConfig workspaces = def { > --- blablabla > workspaces = workspaces > } > > main :: IO () > main = do > hostname <- io (getEnv "HOSTNAME") > let workspaces = case hostname of > Just "Phelsuma" -> myWorkspacesPhelsuma > Just "Triturus" -> myWorkspacesTriturus > _ -> myWorkspaces > xmonad > $ ewmh > $ dynamicProjects myProjects > $ withNavigation2DConfig def > $ docks > $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey > $ myConfig workspaces > > -- > Best regards, > Platon Pronko > PGP 2A62D77A7A2CB94E > > On 2022-09-19 19:01, Ramon Diaz-Uriarte wrote: > > Dear All, > > > > I use XMonad on different machines. The configuration is identical, except for the default workspaces, so I'd like to have the config file set the default workspaces automagically. Haskell ignorant here, but googling around I think I am almost there. These are, I think, the relevant pieces > > > > > > myWorkspaces = map show[1..7] > > myWorkspacesPhelsuma = map show[1..3] ++ ["top", "sync", "zot", "whats"] > > myWorkspacesTriturus = map show[1..2] ++ ["top", "sync"] > > > > > > main :: IO () > > main = do > > hostname <- io (getEnv "HOSTNAME") > > let myWorkspaces = case hostname of > > "Phelsuma" -> myWorkspacesPhelsuma > > "Triturus" -> myWorkspacesTriturus > > _ -> myWorkspaces > > xmonad > > $ ewmh > > $ dynamicProjects myProjects > > $ withNavigation2DConfig def > > $ docks > > $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey > > $ myConfig > > > > > > myConfig = def { > > --- blablabla > > workspaces = myWorkspaces > > } > > > > > > However, I keep getting an error: > > > > • Couldn't match expected type ‘Maybe String’ > > with actual type ‘[Char]’ > > • In the pattern: "Phelsuma" > > In a case alternative: "Phelsuma" -> myWorkspacesPhelsuma > > In the expression: > > case hostname of > > "Phelsuma" -> myWorkspacesPhelsuma > > "Triturus" -> myWorkspacesTriturus > > _ -> myWorkspaces > > | > > 882 | "Phelsuma" -> myWorkspacesPhelsuma > > | ^^^^^^^^^^ > > > > (and the same error for the second entry, "Triturus") > > > > > > This I think should be fairly easy to fix, but I can't find how. I tried writing the case section as > > > > let myWorkspaces = case hostname of > > Just "Phelsuma" -> myWorkspacesPhelsuma > > Just "Triturus" -> myWorkspacesTriturus > > _ -> myWorkspaces > > > > and that does not give me an error, but it seems to ignore the actual hostname and uses the "default" one (the one with workspaces 1 to 7). So I think I am using "Just" incorrectly and possibly also misunderstanding how "let" works in main. > > > > Any suggestions? > > > > Thanks, > > > _______________________________________________ > xmonad mailing list > xmonad at haskell.org > http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad -- brandon s allbery kf8nh allbery.b at gmail.com From rdiaz02 at gmail.com Mon Sep 19 19:22:43 2022 From: rdiaz02 at gmail.com (Ramon Diaz-Uriarte) Date: Mon, 19 Sep 2022 21:22:43 +0200 Subject: [xmonad] workspaces conditional on host name In-Reply-To: References: <87a66vgxo6.fsf@gmail.com> <5d1a1bee-c88b-70bc-5b37-640d87615e68@gmail.com> Message-ID: <87pmfrrw3g.fsf@gmail.com> Dear Brandon and Platon, Thanks a lot! I fixed it as suggested (use a new, different, variable name to hold the value from the let, and pass that to myConfig), and it now works. :-) Actually, there was something else that was not working: when I print io (getEnv "HOSTNAME") and io (getEnv "HOST") I get Nothing in both cases. I do not understand why that happens, since ramon at Phelsuma:~$ hostname Phelsuma ramon at Phelsuma:~$ echo $HOSTNAME Phelsuma Anyway, I solved it by setting in ~/.profile export HOSTNAME_PROFILE_XMONAD=$HOSTNAME And doing, in xmonad.hs hostname <- io (getEnv "HOSTNAME_PROFILE_XMONAD") Maybe it is related to how I call XMonad (it is called from /usr/bin/xmonad-session, which if I remember correctly I started doing because I use lxdm as display manager). Thanks again. Best, R. On Mon, 19-September-2022, at 19:33:08, Brandon Allbery wrote: > Oh, I missed that. Yes, the `myWorkspaces` you set in `main` has > nothing to do with the global one which `myConfig` sees; you need to > pass the new one in. And possibly rename it so it's more obvious that > they're not related. > > On Mon, Sep 19, 2022 at 1:30 PM Platon Pronko wrote: >> >> Hi! >> >> It looks like `myWorkspaces` in `myConfig` definition is referencing this defintion: >> >> myWorkspaces = map show[1..7] >> >> instead of the one you actually want. Maybe try adding workspaces as an argument to `myConfig`? Something like this: >> >> myConfig workspaces = def { >> --- blablabla >> workspaces = workspaces >> } >> >> main :: IO () >> main = do >> hostname <- io (getEnv "HOSTNAME") >> let workspaces = case hostname of >> Just "Phelsuma" -> myWorkspacesPhelsuma >> Just "Triturus" -> myWorkspacesTriturus >> _ -> myWorkspaces >> xmonad >> $ ewmh >> $ dynamicProjects myProjects >> $ withNavigation2DConfig def >> $ docks >> $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey >> $ myConfig workspaces >> >> -- >> Best regards, >> Platon Pronko >> PGP 2A62D77A7A2CB94E >> >> On 2022-09-19 19:01, Ramon Diaz-Uriarte wrote: >> > Dear All, >> > >> > I use XMonad on different machines. The configuration is identical, except for the default workspaces, so I'd like to have the config file set the default workspaces automagically. Haskell ignorant here, but googling around I think I am almost there. These are, I think, the relevant pieces >> > >> > >> > myWorkspaces = map show[1..7] >> > myWorkspacesPhelsuma = map show[1..3] ++ ["top", "sync", "zot", "whats"] >> > myWorkspacesTriturus = map show[1..2] ++ ["top", "sync"] >> > >> > >> > main :: IO () >> > main = do >> > hostname <- io (getEnv "HOSTNAME") >> > let myWorkspaces = case hostname of >> > "Phelsuma" -> myWorkspacesPhelsuma >> > "Triturus" -> myWorkspacesTriturus >> > _ -> myWorkspaces >> > xmonad >> > $ ewmh >> > $ dynamicProjects myProjects >> > $ withNavigation2DConfig def >> > $ docks >> > $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey >> > $ myConfig >> > >> > >> > myConfig = def { >> > --- blablabla >> > workspaces = myWorkspaces >> > } >> > >> > >> > However, I keep getting an error: >> > >> > • Couldn't match expected type ‘Maybe String’ >> > with actual type ‘[Char]’ >> > • In the pattern: "Phelsuma" >> > In a case alternative: "Phelsuma" -> myWorkspacesPhelsuma >> > In the expression: >> > case hostname of >> > "Phelsuma" -> myWorkspacesPhelsuma >> > "Triturus" -> myWorkspacesTriturus >> > _ -> myWorkspaces >> > | >> > 882 | "Phelsuma" -> myWorkspacesPhelsuma >> > | ^^^^^^^^^^ >> > >> > (and the same error for the second entry, "Triturus") >> > >> > >> > This I think should be fairly easy to fix, but I can't find how. I tried writing the case section as >> > >> > let myWorkspaces = case hostname of >> > Just "Phelsuma" -> myWorkspacesPhelsuma >> > Just "Triturus" -> myWorkspacesTriturus >> > _ -> myWorkspaces >> > >> > and that does not give me an error, but it seems to ignore the actual >> > hostname and uses the "default" one (the one with workspaces 1 to 7). So I >> > think I am using "Just" incorrectly and possibly also misunderstanding how >> > "let" works in main. >> > >> > Any suggestions? >> > >> > Thanks, >> > >> _______________________________________________ >> xmonad mailing list >> xmonad at haskell.org >> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad -- Ramon Diaz-Uriarte Department of Biochemistry, Lab B-31 Facultad de Medicina Universidad Autónoma de Madrid Arzobispo Morcillo, 4 28029 Madrid Spain Phone: +34-91-497-2412 Email: rdiaz02 at gmail.com r.diaz at uam.es https://ligarto.org/rdiaz From allbery.b at gmail.com Mon Sep 19 20:05:20 2022 From: allbery.b at gmail.com (Brandon Allbery) Date: Mon, 19 Sep 2022 16:05:20 -0400 Subject: [xmonad] workspaces conditional on host name In-Reply-To: <87pmfrrw3g.fsf@gmail.com> References: <87a66vgxo6.fsf@gmail.com> <5d1a1bee-c88b-70bc-5b37-640d87615e68@gmail.com> <87pmfrrw3g.fsf@gmail.com> Message-ID: You might check if `$HOSTNAME` is actually exported. There's a difference between "exported" and merely "set" in most shells; use the "export" command (or "env") to see which names are actually exported. (On my Ubuntu system, `$HOSTNAME` isn't set at all.) On Mon, Sep 19, 2022 at 3:41 PM Ramon Diaz-Uriarte wrote: > > Dear Brandon and Platon, > > Thanks a lot! I fixed it as suggested (use a new, different, variable name to hold the value from the let, and pass that to myConfig), and it now works. :-) > > > Actually, there was something else that was not working: when I print > > io (getEnv "HOSTNAME") > > and > > io (getEnv "HOST") > > I get Nothing in both cases. I do not understand why that happens, since > > ramon at Phelsuma:~$ hostname > Phelsuma > ramon at Phelsuma:~$ echo $HOSTNAME > Phelsuma > > > Anyway, I solved it by setting in ~/.profile > > export HOSTNAME_PROFILE_XMONAD=$HOSTNAME > > And doing, in xmonad.hs > > hostname <- io (getEnv "HOSTNAME_PROFILE_XMONAD") > > > > Maybe it is related to how I call XMonad (it is called from /usr/bin/xmonad-session, which if I remember correctly I started doing because I use lxdm as display manager). > > Thanks again. > > Best, > > > R. > > > > > On Mon, 19-September-2022, at 19:33:08, Brandon Allbery wrote: > > Oh, I missed that. Yes, the `myWorkspaces` you set in `main` has > > nothing to do with the global one which `myConfig` sees; you need to > > pass the new one in. And possibly rename it so it's more obvious that > > they're not related. > > > > On Mon, Sep 19, 2022 at 1:30 PM Platon Pronko wrote: > >> > >> Hi! > >> > >> It looks like `myWorkspaces` in `myConfig` definition is referencing this defintion: > >> > >> myWorkspaces = map show[1..7] > >> > >> instead of the one you actually want. Maybe try adding workspaces as an argument to `myConfig`? Something like this: > >> > >> myConfig workspaces = def { > >> --- blablabla > >> workspaces = workspaces > >> } > >> > >> main :: IO () > >> main = do > >> hostname <- io (getEnv "HOSTNAME") > >> let workspaces = case hostname of > >> Just "Phelsuma" -> myWorkspacesPhelsuma > >> Just "Triturus" -> myWorkspacesTriturus > >> _ -> myWorkspaces > >> xmonad > >> $ ewmh > >> $ dynamicProjects myProjects > >> $ withNavigation2DConfig def > >> $ docks > >> $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey > >> $ myConfig workspaces > >> > >> -- > >> Best regards, > >> Platon Pronko > >> PGP 2A62D77A7A2CB94E > >> > >> On 2022-09-19 19:01, Ramon Diaz-Uriarte wrote: > >> > Dear All, > >> > > >> > I use XMonad on different machines. The configuration is identical, except for the default workspaces, so I'd like to have the config file set the default workspaces automagically. Haskell ignorant here, but googling around I think I am almost there. These are, I think, the relevant pieces > >> > > >> > > >> > myWorkspaces = map show[1..7] > >> > myWorkspacesPhelsuma = map show[1..3] ++ ["top", "sync", "zot", "whats"] > >> > myWorkspacesTriturus = map show[1..2] ++ ["top", "sync"] > >> > > >> > > >> > main :: IO () > >> > main = do > >> > hostname <- io (getEnv "HOSTNAME") > >> > let myWorkspaces = case hostname of > >> > "Phelsuma" -> myWorkspacesPhelsuma > >> > "Triturus" -> myWorkspacesTriturus > >> > _ -> myWorkspaces > >> > xmonad > >> > $ ewmh > >> > $ dynamicProjects myProjects > >> > $ withNavigation2DConfig def > >> > $ docks > >> > $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey > >> > $ myConfig > >> > > >> > > >> > myConfig = def { > >> > --- blablabla > >> > workspaces = myWorkspaces > >> > } > >> > > >> > > >> > However, I keep getting an error: > >> > > >> > • Couldn't match expected type ‘Maybe String’ > >> > with actual type ‘[Char]’ > >> > • In the pattern: "Phelsuma" > >> > In a case alternative: "Phelsuma" -> myWorkspacesPhelsuma > >> > In the expression: > >> > case hostname of > >> > "Phelsuma" -> myWorkspacesPhelsuma > >> > "Triturus" -> myWorkspacesTriturus > >> > _ -> myWorkspaces > >> > | > >> > 882 | "Phelsuma" -> myWorkspacesPhelsuma > >> > | ^^^^^^^^^^ > >> > > >> > (and the same error for the second entry, "Triturus") > >> > > >> > > >> > This I think should be fairly easy to fix, but I can't find how. I tried writing the case section as > >> > > >> > let myWorkspaces = case hostname of > >> > Just "Phelsuma" -> myWorkspacesPhelsuma > >> > Just "Triturus" -> myWorkspacesTriturus > >> > _ -> myWorkspaces > >> > > >> > and that does not give me an error, but it seems to ignore the actual > >> > hostname and uses the "default" one (the one with workspaces 1 to 7). So I > >> > think I am using "Just" incorrectly and possibly also misunderstanding how > >> > "let" works in main. > >> > > >> > Any suggestions? > >> > > >> > Thanks, > >> > > >> _______________________________________________ > >> xmonad mailing list > >> xmonad at haskell.org > >> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad > > > -- > Ramon Diaz-Uriarte > Department of Biochemistry, Lab B-31 > Facultad de Medicina > Universidad Autónoma de Madrid > Arzobispo Morcillo, 4 > 28029 Madrid > Spain > > Phone: +34-91-497-2412 > > Email: rdiaz02 at gmail.com > r.diaz at uam.es > > https://ligarto.org/rdiaz -- brandon s allbery kf8nh allbery.b at gmail.com From platon7pronko at gmail.com Tue Sep 20 04:58:14 2022 From: platon7pronko at gmail.com (Platon Pronko) Date: Tue, 20 Sep 2022 07:58:14 +0300 Subject: [xmonad] workspaces conditional on host name In-Reply-To: References: <87a66vgxo6.fsf@gmail.com> <5d1a1bee-c88b-70bc-5b37-640d87615e68@gmail.com> <87pmfrrw3g.fsf@gmail.com> Message-ID: <6394dd66-7bbc-bd7c-e0ca-475fad6c0de8@gmail.com> Using environment variables to get hostname feels a bit unstable. I personally read /etc/hostname to determine the hostname, like this: hostname <- fmap trimString (readFile "/etc/hostname") where `trimString` is: trimString :: String -> String trimString = f . f where f = reverse . dropWhile isSpace There's also `hostname` package, which uses proper library functions to determine hostname: https://hackage.haskell.org/package/hostname -- Best regards, Platon Pronko PGP 2A62D77A7A2CB94E On 2022-09-19 23:05, Brandon Allbery wrote: > You might check if `$HOSTNAME` is actually exported. There's a > difference between "exported" and merely "set" in most shells; use the > "export" command (or "env") to see which names are actually exported. > (On my Ubuntu system, `$HOSTNAME` isn't set at all.) > > On Mon, Sep 19, 2022 at 3:41 PM Ramon Diaz-Uriarte wrote: >> >> Dear Brandon and Platon, >> >> Thanks a lot! I fixed it as suggested (use a new, different, variable name to hold the value from the let, and pass that to myConfig), and it now works. :-) >> >> >> Actually, there was something else that was not working: when I print >> >> io (getEnv "HOSTNAME") >> >> and >> >> io (getEnv "HOST") >> >> I get Nothing in both cases. I do not understand why that happens, since >> >> ramon at Phelsuma:~$ hostname >> Phelsuma >> ramon at Phelsuma:~$ echo $HOSTNAME >> Phelsuma >> >> >> Anyway, I solved it by setting in ~/.profile >> >> export HOSTNAME_PROFILE_XMONAD=$HOSTNAME >> >> And doing, in xmonad.hs >> >> hostname <- io (getEnv "HOSTNAME_PROFILE_XMONAD") >> >> >> >> Maybe it is related to how I call XMonad (it is called from /usr/bin/xmonad-session, which if I remember correctly I started doing because I use lxdm as display manager). >> >> Thanks again. >> >> Best, >> >> >> R. >> >> >> >> >> On Mon, 19-September-2022, at 19:33:08, Brandon Allbery wrote: >>> Oh, I missed that. Yes, the `myWorkspaces` you set in `main` has >>> nothing to do with the global one which `myConfig` sees; you need to >>> pass the new one in. And possibly rename it so it's more obvious that >>> they're not related. >>> >>> On Mon, Sep 19, 2022 at 1:30 PM Platon Pronko wrote: >>>> >>>> Hi! >>>> >>>> It looks like `myWorkspaces` in `myConfig` definition is referencing this defintion: >>>> >>>> myWorkspaces = map show[1..7] >>>> >>>> instead of the one you actually want. Maybe try adding workspaces as an argument to `myConfig`? Something like this: >>>> >>>> myConfig workspaces = def { >>>> --- blablabla >>>> workspaces = workspaces >>>> } >>>> >>>> main :: IO () >>>> main = do >>>> hostname <- io (getEnv "HOSTNAME") >>>> let workspaces = case hostname of >>>> Just "Phelsuma" -> myWorkspacesPhelsuma >>>> Just "Triturus" -> myWorkspacesTriturus >>>> _ -> myWorkspaces >>>> xmonad >>>> $ ewmh >>>> $ dynamicProjects myProjects >>>> $ withNavigation2DConfig def >>>> $ docks >>>> $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey >>>> $ myConfig workspaces >>>> >>>> -- >>>> Best regards, >>>> Platon Pronko >>>> PGP 2A62D77A7A2CB94E >>>> >>>> On 2022-09-19 19:01, Ramon Diaz-Uriarte wrote: >>>>> Dear All, >>>>> >>>>> I use XMonad on different machines. The configuration is identical, except for the default workspaces, so I'd like to have the config file set the default workspaces automagically. Haskell ignorant here, but googling around I think I am almost there. These are, I think, the relevant pieces >>>>> >>>>> >>>>> myWorkspaces = map show[1..7] >>>>> myWorkspacesPhelsuma = map show[1..3] ++ ["top", "sync", "zot", "whats"] >>>>> myWorkspacesTriturus = map show[1..2] ++ ["top", "sync"] >>>>> >>>>> >>>>> main :: IO () >>>>> main = do >>>>> hostname <- io (getEnv "HOSTNAME") >>>>> let myWorkspaces = case hostname of >>>>> "Phelsuma" -> myWorkspacesPhelsuma >>>>> "Triturus" -> myWorkspacesTriturus >>>>> _ -> myWorkspaces >>>>> xmonad >>>>> $ ewmh >>>>> $ dynamicProjects myProjects >>>>> $ withNavigation2DConfig def >>>>> $ docks >>>>> $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey >>>>> $ myConfig >>>>> >>>>> >>>>> myConfig = def { >>>>> --- blablabla >>>>> workspaces = myWorkspaces >>>>> } >>>>> >>>>> >>>>> However, I keep getting an error: >>>>> >>>>> • Couldn't match expected type ‘Maybe String’ >>>>> with actual type ‘[Char]’ >>>>> • In the pattern: "Phelsuma" >>>>> In a case alternative: "Phelsuma" -> myWorkspacesPhelsuma >>>>> In the expression: >>>>> case hostname of >>>>> "Phelsuma" -> myWorkspacesPhelsuma >>>>> "Triturus" -> myWorkspacesTriturus >>>>> _ -> myWorkspaces >>>>> | >>>>> 882 | "Phelsuma" -> myWorkspacesPhelsuma >>>>> | ^^^^^^^^^^ >>>>> >>>>> (and the same error for the second entry, "Triturus") >>>>> >>>>> >>>>> This I think should be fairly easy to fix, but I can't find how. I tried writing the case section as >>>>> >>>>> let myWorkspaces = case hostname of >>>>> Just "Phelsuma" -> myWorkspacesPhelsuma >>>>> Just "Triturus" -> myWorkspacesTriturus >>>>> _ -> myWorkspaces >>>>> >>>>> and that does not give me an error, but it seems to ignore the actual >>>>> hostname and uses the "default" one (the one with workspaces 1 to 7). So I >>>>> think I am using "Just" incorrectly and possibly also misunderstanding how >>>>> "let" works in main. >>>>> >>>>> Any suggestions? >>>>> >>>>> Thanks, >>>>> >>>> _______________________________________________ >>>> xmonad mailing list >>>> xmonad at haskell.org >>>> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad >> >> >> -- >> Ramon Diaz-Uriarte >> Department of Biochemistry, Lab B-31 >> Facultad de Medicina >> Universidad Autónoma de Madrid >> Arzobispo Morcillo, 4 >> 28029 Madrid >> Spain >> >> Phone: +34-91-497-2412 >> >> Email: rdiaz02 at gmail.com >> r.diaz at uam.es >> >> https://ligarto.org/rdiaz > > > From rdiaz02 at gmail.com Tue Sep 20 08:39:14 2022 From: rdiaz02 at gmail.com (Ramon Diaz-Uriarte) Date: Tue, 20 Sep 2022 10:39:14 +0200 Subject: [xmonad] workspaces conditional on host name In-Reply-To: References: <87a66vgxo6.fsf@gmail.com> <5d1a1bee-c88b-70bc-5b37-640d87615e68@gmail.com> <87pmfrrw3g.fsf@gmail.com> Message-ID: <874jx2jv29.fsf@gmail.com> Thanks. I tried exporting it, by adding an explicit export to .bashrc, but it did not work; looking around, it seems that with some display managers and at least in Debian, .bashrc might not be read early enough; (at least in Debian), .profile seems a safer bet (which is what I've finally settled on). Best, R. On Mon, 19-September-2022, at 22:05:20, Brandon Allbery wrote: > You might check if `$HOSTNAME` is actually exported. There's a > difference between "exported" and merely "set" in most shells; use the > "export" command (or "env") to see which names are actually exported. > (On my Ubuntu system, `$HOSTNAME` isn't set at all.) > > On Mon, Sep 19, 2022 at 3:41 PM Ramon Diaz-Uriarte wrote: >> >> Dear Brandon and Platon, >> >> Thanks a lot! I fixed it as suggested (use a new, different, variable name to >> hold the value from the let, and pass that to myConfig), and it now works. :-) >> >> >> Actually, there was something else that was not working: when I print >> >> io (getEnv "HOSTNAME") >> >> and >> >> io (getEnv "HOST") >> >> I get Nothing in both cases. I do not understand why that happens, since >> >> ramon at Phelsuma:~$ hostname >> Phelsuma >> ramon at Phelsuma:~$ echo $HOSTNAME >> Phelsuma >> >> >> Anyway, I solved it by setting in ~/.profile >> >> export HOSTNAME_PROFILE_XMONAD=$HOSTNAME >> >> And doing, in xmonad.hs >> >> hostname <- io (getEnv "HOSTNAME_PROFILE_XMONAD") >> >> >> >> Maybe it is related to how I call XMonad (it is called from >> /usr/bin/xmonad-session, which if I remember correctly I started doing because >> I use lxdm as display manager). >> >> Thanks again. >> >> Best, >> >> >> R. >> >> >> >> >> On Mon, 19-September-2022, at 19:33:08, Brandon Allbery >> wrote: >> > Oh, I missed that. Yes, the `myWorkspaces` you set in `main` has >> > nothing to do with the global one which `myConfig` sees; you need to >> > pass the new one in. And possibly rename it so it's more obvious that >> > they're not related. >> > >> > On Mon, Sep 19, 2022 at 1:30 PM Platon Pronko >> > wrote: >> >> >> >> Hi! >> >> >> >> It looks like `myWorkspaces` in `myConfig` definition is referencing this defintion: >> >> >> >> myWorkspaces = map show[1..7] >> >> >> >> instead of the one you actually want. Maybe try adding workspaces as an argument to `myConfig`? Something like this: >> >> >> >> myConfig workspaces = def { >> >> --- blablabla >> >> workspaces = workspaces >> >> } >> >> >> >> main :: IO () >> >> main = do >> >> hostname <- io (getEnv "HOSTNAME") >> >> let workspaces = case hostname of >> >> Just "Phelsuma" -> myWorkspacesPhelsuma >> >> Just "Triturus" -> myWorkspacesTriturus >> >> _ -> myWorkspaces >> >> xmonad >> >> $ ewmh >> >> $ dynamicProjects myProjects >> >> $ withNavigation2DConfig def >> >> $ docks >> >> $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey >> >> $ myConfig workspaces >> >> >> >> -- >> >> Best regards, >> >> Platon Pronko >> >> PGP 2A62D77A7A2CB94E >> >> >> >> On 2022-09-19 19:01, Ramon Diaz-Uriarte wrote: >> >> > Dear All, >> >> > >> >> > I use XMonad on different machines. The configuration is identical, except for the default workspaces, so I'd like to have the config file set the default workspaces automagically. Haskell ignorant here, but googling around I think I am almost there. These are, I think, the relevant pieces >> >> > >> >> > >> >> > myWorkspaces = map show[1..7] >> >> > myWorkspacesPhelsuma = map show[1..3] ++ ["top", "sync", "zot", "whats"] >> >> > myWorkspacesTriturus = map show[1..2] ++ ["top", "sync"] >> >> > >> >> > >> >> > main :: IO () >> >> > main = do >> >> > hostname <- io (getEnv "HOSTNAME") >> >> > let myWorkspaces = case hostname of >> >> > "Phelsuma" -> myWorkspacesPhelsuma >> >> > "Triturus" -> myWorkspacesTriturus >> >> > _ -> myWorkspaces >> >> > xmonad >> >> > $ ewmh >> >> > $ dynamicProjects myProjects >> >> > $ withNavigation2DConfig def >> >> > $ docks >> >> > $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey >> >> > $ myConfig >> >> > >> >> > >> >> > myConfig = def { >> >> > --- blablabla >> >> > workspaces = myWorkspaces >> >> > } >> >> > >> >> > >> >> > However, I keep getting an error: >> >> > >> >> > • Couldn't match expected type ‘Maybe String’ >> >> > with actual type ‘[Char]’ >> >> > • In the pattern: "Phelsuma" >> >> > In a case alternative: "Phelsuma" -> myWorkspacesPhelsuma >> >> > In the expression: >> >> > case hostname of >> >> > "Phelsuma" -> myWorkspacesPhelsuma >> >> > "Triturus" -> myWorkspacesTriturus >> >> > _ -> myWorkspaces >> >> > | >> >> > 882 | "Phelsuma" -> myWorkspacesPhelsuma >> >> > | ^^^^^^^^^^ >> >> > >> >> > (and the same error for the second entry, "Triturus") >> >> > >> >> > >> >> > This I think should be fairly easy to fix, but I can't find how. I tried >> >> > writing the case section as >> >> > >> >> > let myWorkspaces = case hostname of >> >> > Just "Phelsuma" -> myWorkspacesPhelsuma >> >> > Just "Triturus" -> myWorkspacesTriturus >> >> > _ -> myWorkspaces >> >> > >> >> > and that does not give me an error, but it seems to ignore the actual >> >> > hostname and uses the "default" one (the one with workspaces 1 to 7). So I >> >> > think I am using "Just" incorrectly and possibly also misunderstanding how >> >> > "let" works in main. >> >> > >> >> > Any suggestions? >> >> > >> >> > Thanks, >> >> > >> >> _______________________________________________ >> >> xmonad mailing list >> >> xmonad at haskell.org >> >> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad >> >> >> -- >> Ramon Diaz-Uriarte >> Department of Biochemistry, Lab B-31 >> Facultad de Medicina >> Universidad Autónoma de Madrid >> Arzobispo Morcillo, 4 >> 28029 Madrid >> Spain >> >> Phone: +34-91-497-2412 >> >> Email: rdiaz02 at gmail.com >> r.diaz at uam.es >> >> https://ligarto.org/rdiaz -- Ramon Diaz-Uriarte Department of Biochemistry, Lab B-31 Facultad de Medicina Universidad Autónoma de Madrid Arzobispo Morcillo, 4 28029 Madrid Spain Phone: +34-91-497-2412 Email: rdiaz02 at gmail.com r.diaz at uam.es https://ligarto.org/rdiaz From rdiaz02 at gmail.com Tue Sep 20 09:13:22 2022 From: rdiaz02 at gmail.com (Ramon Diaz-Uriarte) Date: Tue, 20 Sep 2022 11:13:22 +0200 Subject: [xmonad] workspaces conditional on host name In-Reply-To: <6394dd66-7bbc-bd7c-e0ca-475fad6c0de8@gmail.com> References: <87a66vgxo6.fsf@gmail.com> <5d1a1bee-c88b-70bc-5b37-640d87615e68@gmail.com> <87pmfrrw3g.fsf@gmail.com> <6394dd66-7bbc-bd7c-e0ca-475fad6c0de8@gmail.com> Message-ID: <87edw6pfng.fsf@gmail.com> Thanks! I'll give that a try (what I found interesting of using getEnv, though, is that it seems simple to use arbitrary variables I set for ad-hoc needs in .profile, even if it is kind of a kludge). Best, R. On Tue, 20-September-2022, at 06:58:14, Platon Pronko wrote: > Using environment variables to get hostname feels a bit unstable. I personally > read /etc/hostname to determine the hostname, like this: > > hostname <- fmap trimString (readFile "/etc/hostname") > > where `trimString` is: > > trimString :: String -> String > trimString = f . f > where f = reverse . dropWhile isSpace > > There's also `hostname` package, which uses proper library functions to determine > hostname: https://hackage.haskell.org/package/hostname -- Ramon Diaz-Uriarte Department of Biochemistry, Lab B-31 Facultad de Medicina Universidad Autónoma de Madrid Arzobispo Morcillo, 4 28029 Madrid Spain Phone: +34-91-497-2412 Email: rdiaz02 at gmail.com r.diaz at uam.es https://ligarto.org/rdiaz From allbery.b at gmail.com Tue Sep 20 12:02:40 2022 From: allbery.b at gmail.com (Brandon Allbery) Date: Tue, 20 Sep 2022 08:02:40 -0400 Subject: [xmonad] workspaces conditional on host name In-Reply-To: <874jx2jv29.fsf@gmail.com> References: <87a66vgxo6.fsf@gmail.com> <5d1a1bee-c88b-70bc-5b37-640d87615e68@gmail.com> <87pmfrrw3g.fsf@gmail.com> <874jx2jv29.fsf@gmail.com> Message-ID: .bashrc is only read by interactive shells. On Tue, Sep 20, 2022 at 4:42 AM Ramon Diaz-Uriarte wrote: > > > Thanks. I tried exporting it, by adding an explicit export to .bashrc, but it did not work; looking around, it seems that with some display managers and at least in Debian, .bashrc might not be read early enough; (at least in Debian), .profile seems a safer bet (which is what I've finally settled on). > > > Best, > > R. > > > On Mon, 19-September-2022, at 22:05:20, Brandon Allbery wrote: > > You might check if `$HOSTNAME` is actually exported. There's a > > difference between "exported" and merely "set" in most shells; use the > > "export" command (or "env") to see which names are actually exported. > > (On my Ubuntu system, `$HOSTNAME` isn't set at all.) > > > > On Mon, Sep 19, 2022 at 3:41 PM Ramon Diaz-Uriarte wrote: > >> > >> Dear Brandon and Platon, > >> > >> Thanks a lot! I fixed it as suggested (use a new, different, variable name to > >> hold the value from the let, and pass that to myConfig), and it now works. :-) > >> > >> > >> Actually, there was something else that was not working: when I print > >> > >> io (getEnv "HOSTNAME") > >> > >> and > >> > >> io (getEnv "HOST") > >> > >> I get Nothing in both cases. I do not understand why that happens, since > >> > >> ramon at Phelsuma:~$ hostname > >> Phelsuma > >> ramon at Phelsuma:~$ echo $HOSTNAME > >> Phelsuma > >> > >> > >> Anyway, I solved it by setting in ~/.profile > >> > >> export HOSTNAME_PROFILE_XMONAD=$HOSTNAME > >> > >> And doing, in xmonad.hs > >> > >> hostname <- io (getEnv "HOSTNAME_PROFILE_XMONAD") > >> > >> > >> > >> Maybe it is related to how I call XMonad (it is called from > >> /usr/bin/xmonad-session, which if I remember correctly I started doing because > >> I use lxdm as display manager). > >> > >> Thanks again. > >> > >> Best, > >> > >> > >> R. > >> > >> > >> > >> > >> On Mon, 19-September-2022, at 19:33:08, Brandon Allbery > >> wrote: > >> > Oh, I missed that. Yes, the `myWorkspaces` you set in `main` has > >> > nothing to do with the global one which `myConfig` sees; you need to > >> > pass the new one in. And possibly rename it so it's more obvious that > >> > they're not related. > >> > > >> > On Mon, Sep 19, 2022 at 1:30 PM Platon Pronko > >> > wrote: > >> >> > >> >> Hi! > >> >> > >> >> It looks like `myWorkspaces` in `myConfig` definition is referencing this defintion: > >> >> > >> >> myWorkspaces = map show[1..7] > >> >> > >> >> instead of the one you actually want. Maybe try adding workspaces as an argument to `myConfig`? Something like this: > >> >> > >> >> myConfig workspaces = def { > >> >> --- blablabla > >> >> workspaces = workspaces > >> >> } > >> >> > >> >> main :: IO () > >> >> main = do > >> >> hostname <- io (getEnv "HOSTNAME") > >> >> let workspaces = case hostname of > >> >> Just "Phelsuma" -> myWorkspacesPhelsuma > >> >> Just "Triturus" -> myWorkspacesTriturus > >> >> _ -> myWorkspaces > >> >> xmonad > >> >> $ ewmh > >> >> $ dynamicProjects myProjects > >> >> $ withNavigation2DConfig def > >> >> $ docks > >> >> $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey > >> >> $ myConfig workspaces > >> >> > >> >> -- > >> >> Best regards, > >> >> Platon Pronko > >> >> PGP 2A62D77A7A2CB94E > >> >> > >> >> On 2022-09-19 19:01, Ramon Diaz-Uriarte wrote: > >> >> > Dear All, > >> >> > > >> >> > I use XMonad on different machines. The configuration is identical, except for the default workspaces, so I'd like to have the config file set the default workspaces automagically. Haskell ignorant here, but googling around I think I am almost there. These are, I think, the relevant pieces > >> >> > > >> >> > > >> >> > myWorkspaces = map show[1..7] > >> >> > myWorkspacesPhelsuma = map show[1..3] ++ ["top", "sync", "zot", "whats"] > >> >> > myWorkspacesTriturus = map show[1..2] ++ ["top", "sync"] > >> >> > > >> >> > > >> >> > main :: IO () > >> >> > main = do > >> >> > hostname <- io (getEnv "HOSTNAME") > >> >> > let myWorkspaces = case hostname of > >> >> > "Phelsuma" -> myWorkspacesPhelsuma > >> >> > "Triturus" -> myWorkspacesTriturus > >> >> > _ -> myWorkspaces > >> >> > xmonad > >> >> > $ ewmh > >> >> > $ dynamicProjects myProjects > >> >> > $ withNavigation2DConfig def > >> >> > $ docks > >> >> > $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey > >> >> > $ myConfig > >> >> > > >> >> > > >> >> > myConfig = def { > >> >> > --- blablabla > >> >> > workspaces = myWorkspaces > >> >> > } > >> >> > > >> >> > > >> >> > However, I keep getting an error: > >> >> > > >> >> > • Couldn't match expected type ‘Maybe String’ > >> >> > with actual type ‘[Char]’ > >> >> > • In the pattern: "Phelsuma" > >> >> > In a case alternative: "Phelsuma" -> myWorkspacesPhelsuma > >> >> > In the expression: > >> >> > case hostname of > >> >> > "Phelsuma" -> myWorkspacesPhelsuma > >> >> > "Triturus" -> myWorkspacesTriturus > >> >> > _ -> myWorkspaces > >> >> > | > >> >> > 882 | "Phelsuma" -> myWorkspacesPhelsuma > >> >> > | ^^^^^^^^^^ > >> >> > > >> >> > (and the same error for the second entry, "Triturus") > >> >> > > >> >> > > >> >> > This I think should be fairly easy to fix, but I can't find how. I tried > >> >> > writing the case section as > >> >> > > >> >> > let myWorkspaces = case hostname of > >> >> > Just "Phelsuma" -> myWorkspacesPhelsuma > >> >> > Just "Triturus" -> myWorkspacesTriturus > >> >> > _ -> myWorkspaces > >> >> > > >> >> > and that does not give me an error, but it seems to ignore the actual > >> >> > hostname and uses the "default" one (the one with workspaces 1 to 7). So I > >> >> > think I am using "Just" incorrectly and possibly also misunderstanding how > >> >> > "let" works in main. > >> >> > > >> >> > Any suggestions? > >> >> > > >> >> > Thanks, > >> >> > > >> >> _______________________________________________ > >> >> xmonad mailing list > >> >> xmonad at haskell.org > >> >> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad > >> > >> > >> -- > >> Ramon Diaz-Uriarte > >> Department of Biochemistry, Lab B-31 > >> Facultad de Medicina > >> Universidad Autónoma de Madrid > >> Arzobispo Morcillo, 4 > >> 28029 Madrid > >> Spain > >> > >> Phone: +34-91-497-2412 > >> > >> Email: rdiaz02 at gmail.com > >> r.diaz at uam.es > >> > >> https://ligarto.org/rdiaz > > > -- > Ramon Diaz-Uriarte > Department of Biochemistry, Lab B-31 > Facultad de Medicina > Universidad Autónoma de Madrid > Arzobispo Morcillo, 4 > 28029 Madrid > Spain > > Phone: +34-91-497-2412 > > Email: rdiaz02 at gmail.com > r.diaz at uam.es > > https://ligarto.org/rdiaz -- brandon s allbery kf8nh allbery.b at gmail.com From rdiaz02 at gmail.com Wed Sep 21 16:58:54 2022 From: rdiaz02 at gmail.com (Ramon Diaz-Uriarte) Date: Wed, 21 Sep 2022 18:58:54 +0200 Subject: [xmonad] workspaces conditional on host name In-Reply-To: References: <87a66vgxo6.fsf@gmail.com> <5d1a1bee-c88b-70bc-5b37-640d87615e68@gmail.com> <87pmfrrw3g.fsf@gmail.com> <874jx2jv29.fsf@gmail.com> Message-ID: <87k05woe4j.fsf@gmail.com> Then that explains why my setting it on .bashrc did not work. I still do not understand why it did not work given that hostname returns the right name (and that, in fact, I initially did not set it in .bashrc). But never mind, since setting it in .profile works. On Tue, 20-September-2022, at 14:02:40, Brandon Allbery wrote: > .bashrc is only read by interactive shells. > > On Tue, Sep 20, 2022 at 4:42 AM Ramon Diaz-Uriarte wrote: >> >> >> Thanks. I tried exporting it, by adding an explicit export to .bashrc, but it >> did not work; looking around, it seems that with some display managers and at >> least in Debian, .bashrc might not be read early enough; (at least in Debian), >> .profile seems a safer bet (which is what I've finally settled on). >> >> >> Best, >> >> R. >> >> >> On Mon, 19-September-2022, at 22:05:20, Brandon Allbery >> wrote: >> > You might check if `$HOSTNAME` is actually exported. There's a >> > difference between "exported" and merely "set" in most shells; use the >> > "export" command (or "env") to see which names are actually exported. >> > (On my Ubuntu system, `$HOSTNAME` isn't set at all.) >> > >> > On Mon, Sep 19, 2022 at 3:41 PM Ramon Diaz-Uriarte wrote: >> >> >> >> Dear Brandon and Platon, >> >> >> >> Thanks a lot! I fixed it as suggested (use a new, different, variable name >> >> to >> >> hold the value from the let, and pass that to myConfig), and it now >> >> works. :-) >> >> >> >> >> >> Actually, there was something else that was not working: when I print >> >> >> >> io (getEnv "HOSTNAME") >> >> >> >> and >> >> >> >> io (getEnv "HOST") >> >> >> >> I get Nothing in both cases. I do not understand why that happens, since >> >> >> >> ramon at Phelsuma:~$ hostname >> >> Phelsuma >> >> ramon at Phelsuma:~$ echo $HOSTNAME >> >> Phelsuma >> >> >> >> >> >> Anyway, I solved it by setting in ~/.profile >> >> >> >> export HOSTNAME_PROFILE_XMONAD=$HOSTNAME >> >> >> >> And doing, in xmonad.hs >> >> >> >> hostname <- io (getEnv "HOSTNAME_PROFILE_XMONAD") >> >> >> >> >> >> >> >> Maybe it is related to how I call XMonad (it is called from >> >> /usr/bin/xmonad-session, which if I remember correctly I started doing >> >> because >> >> I use lxdm as display manager). >> >> >> >> Thanks again. >> >> >> >> Best, >> >> >> >> >> >> R. >> >> >> >> >> >> >> >> >> >> On Mon, 19-September-2022, at 19:33:08, Brandon Allbery >> >> >> >> wrote: >> >> > Oh, I missed that. Yes, the `myWorkspaces` you set in `main` has >> >> > nothing to do with the global one which `myConfig` sees; you need to >> >> > pass the new one in. And possibly rename it so it's more obvious that >> >> > they're not related. >> >> > >> >> > On Mon, Sep 19, 2022 at 1:30 PM Platon Pronko >> >> > wrote: >> >> >> >> >> >> Hi! >> >> >> >> >> >> It looks like `myWorkspaces` in `myConfig` definition is referencing this defintion: >> >> >> >> >> >> myWorkspaces = map show[1..7] >> >> >> >> >> >> instead of the one you actually want. Maybe try adding workspaces as an argument to `myConfig`? Something like this: >> >> >> >> >> >> myConfig workspaces = def { >> >> >> --- blablabla >> >> >> workspaces = workspaces >> >> >> } >> >> >> >> >> >> main :: IO () >> >> >> main = do >> >> >> hostname <- io (getEnv "HOSTNAME") >> >> >> let workspaces = case hostname of >> >> >> Just "Phelsuma" -> myWorkspacesPhelsuma >> >> >> Just "Triturus" -> myWorkspacesTriturus >> >> >> _ -> myWorkspaces >> >> >> xmonad >> >> >> $ ewmh >> >> >> $ dynamicProjects myProjects >> >> >> $ withNavigation2DConfig def >> >> >> $ docks >> >> >> $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey >> >> >> $ myConfig workspaces >> >> >> >> >> >> -- >> >> >> Best regards, >> >> >> Platon Pronko >> >> >> PGP 2A62D77A7A2CB94E >> >> >> >> >> >> On 2022-09-19 19:01, Ramon Diaz-Uriarte wrote: >> >> >> > Dear All, >> >> >> > >> >> >> > I use XMonad on different machines. The configuration is identical, except for the default workspaces, so I'd like to have the config file set the default workspaces automagically. Haskell ignorant here, but googling around I think I am almost there. These are, I think, the relevant pieces >> >> >> > >> >> >> > >> >> >> > myWorkspaces = map show[1..7] >> >> >> > myWorkspacesPhelsuma = map show[1..3] ++ ["top", "sync", "zot", "whats"] >> >> >> > myWorkspacesTriturus = map show[1..2] ++ ["top", "sync"] >> >> >> > >> >> >> > >> >> >> > main :: IO () >> >> >> > main = do >> >> >> > hostname <- io (getEnv "HOSTNAME") >> >> >> > let myWorkspaces = case hostname of >> >> >> > "Phelsuma" -> myWorkspacesPhelsuma >> >> >> > "Triturus" -> myWorkspacesTriturus >> >> >> > _ -> myWorkspaces >> >> >> > xmonad >> >> >> > $ ewmh >> >> >> > $ dynamicProjects myProjects >> >> >> > $ withNavigation2DConfig def >> >> >> > $ docks >> >> >> > $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" (pure myXmobarPP)) defToggleStrutsKey >> >> >> > $ myConfig >> >> >> > >> >> >> > >> >> >> > myConfig = def { >> >> >> > --- blablabla >> >> >> > workspaces = myWorkspaces >> >> >> > } >> >> >> > >> >> >> > >> >> >> > However, I keep getting an error: >> >> >> > >> >> >> > • Couldn't match expected type ‘Maybe String’ >> >> >> > with actual type ‘[Char]’ >> >> >> > • In the pattern: "Phelsuma" >> >> >> > In a case alternative: "Phelsuma" -> myWorkspacesPhelsuma >> >> >> > In the expression: >> >> >> > case hostname of >> >> >> > "Phelsuma" -> myWorkspacesPhelsuma >> >> >> > "Triturus" -> myWorkspacesTriturus >> >> >> > _ -> myWorkspaces >> >> >> > | >> >> >> > 882 | "Phelsuma" -> myWorkspacesPhelsuma >> >> >> > | ^^^^^^^^^^ >> >> >> > >> >> >> > (and the same error for the second entry, "Triturus") >> >> >> > >> >> >> > >> >> >> > This I think should be fairly easy to fix, but I can't find how. I >> >> >> > tried >> >> >> > writing the case section as >> >> >> > >> >> >> > let myWorkspaces = case hostname of >> >> >> > Just "Phelsuma" -> myWorkspacesPhelsuma >> >> >> > Just "Triturus" -> myWorkspacesTriturus >> >> >> > _ -> myWorkspaces >> >> >> > >> >> >> > and that does not give me an error, but it seems to ignore the actual >> >> >> > hostname and uses the "default" one (the one with workspaces 1 to >> >> >> > 7). So I >> >> >> > think I am using "Just" incorrectly and possibly also misunderstanding >> >> >> > how >> >> >> > "let" works in main. >> >> >> > >> >> >> > Any suggestions? >> >> >> > >> >> >> > Thanks, >> >> >> > >> >> >> _______________________________________________ >> >> >> xmonad mailing list >> >> >> xmonad at haskell.org >> >> >> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad >> >> >> >> >> >> -- >> >> Ramon Diaz-Uriarte >> >> Department of Biochemistry, Lab B-31 >> >> Facultad de Medicina >> >> Universidad Autónoma de Madrid >> >> Arzobispo Morcillo, 4 >> >> 28029 Madrid >> >> Spain >> >> >> >> Phone: +34-91-497-2412 >> >> >> >> Email: rdiaz02 at gmail.com >> >> r.diaz at uam.es >> >> >> >> https://ligarto.org/rdiaz >> >> >> -- >> Ramon Diaz-Uriarte >> Department of Biochemistry, Lab B-31 >> Facultad de Medicina >> Universidad Autónoma de Madrid >> Arzobispo Morcillo, 4 >> 28029 Madrid >> Spain >> >> Phone: +34-91-497-2412 >> >> Email: rdiaz02 at gmail.com >> r.diaz at uam.es >> >> https://ligarto.org/rdiaz -- Ramon Diaz-Uriarte Department of Biochemistry, Lab B-31 Facultad de Medicina Universidad Autónoma de Madrid Arzobispo Morcillo, 4 28029 Madrid Spain Phone: +34-91-497-2412 Email: rdiaz02 at gmail.com r.diaz at uam.es https://ligarto.org/rdiaz From allbery.b at gmail.com Wed Sep 21 17:13:07 2022 From: allbery.b at gmail.com (Brandon Allbery) Date: Wed, 21 Sep 2022 13:13:07 -0400 Subject: [xmonad] workspaces conditional on host name In-Reply-To: <87k05woe4j.fsf@gmail.com> References: <87a66vgxo6.fsf@gmail.com> <5d1a1bee-c88b-70bc-5b37-640d87615e68@gmail.com> <87pmfrrw3g.fsf@gmail.com> <874jx2jv29.fsf@gmail.com> <87k05woe4j.fsf@gmail.com> Message-ID: `hostname` gets it from a kernel call, and the kernel gets it from `/etc/hostname` during system boot. ( https://hackage.haskell.org/package/network-bsd-2.8.1.0/docs/Network-BSD.html#v:getHostName ) On Wed, Sep 21, 2022, 13:01 Ramon Diaz-Uriarte wrote: > Then that explains why my setting it on .bashrc did not work. I still do > not understand why it did not work given that hostname returns the right > name (and that, in fact, I initially did not set it in .bashrc). But never > mind, since setting it in .profile works. > > > On Tue, 20-September-2022, at 14:02:40, Brandon Allbery < > allbery.b at gmail.com> wrote: > > .bashrc is only read by interactive shells. > > > > On Tue, Sep 20, 2022 at 4:42 AM Ramon Diaz-Uriarte > wrote: > >> > >> > >> Thanks. I tried exporting it, by adding an explicit export to .bashrc, > but it > >> did not work; looking around, it seems that with some display managers > and at > >> least in Debian, .bashrc might not be read early enough; (at least in > Debian), > >> .profile seems a safer bet (which is what I've finally settled on). > >> > >> > >> Best, > >> > >> R. > >> > >> > >> On Mon, 19-September-2022, at 22:05:20, Brandon Allbery < > allbery.b at gmail.com> > >> wrote: > >> > You might check if `$HOSTNAME` is actually exported. There's a > >> > difference between "exported" and merely "set" in most shells; use the > >> > "export" command (or "env") to see which names are actually exported. > >> > (On my Ubuntu system, `$HOSTNAME` isn't set at all.) > >> > > >> > On Mon, Sep 19, 2022 at 3:41 PM Ramon Diaz-Uriarte > wrote: > >> >> > >> >> Dear Brandon and Platon, > >> >> > >> >> Thanks a lot! I fixed it as suggested (use a new, different, > variable name > >> >> to > >> >> hold the value from the let, and pass that to myConfig), and it now > >> >> works. :-) > >> >> > >> >> > >> >> Actually, there was something else that was not working: when I print > >> >> > >> >> io (getEnv "HOSTNAME") > >> >> > >> >> and > >> >> > >> >> io (getEnv "HOST") > >> >> > >> >> I get Nothing in both cases. I do not understand why that happens, > since > >> >> > >> >> ramon at Phelsuma:~$ hostname > >> >> Phelsuma > >> >> ramon at Phelsuma:~$ echo $HOSTNAME > >> >> Phelsuma > >> >> > >> >> > >> >> Anyway, I solved it by setting in ~/.profile > >> >> > >> >> export HOSTNAME_PROFILE_XMONAD=$HOSTNAME > >> >> > >> >> And doing, in xmonad.hs > >> >> > >> >> hostname <- io (getEnv "HOSTNAME_PROFILE_XMONAD") > >> >> > >> >> > >> >> > >> >> Maybe it is related to how I call XMonad (it is called from > >> >> /usr/bin/xmonad-session, which if I remember correctly I started > doing > >> >> because > >> >> I use lxdm as display manager). > >> >> > >> >> Thanks again. > >> >> > >> >> Best, > >> >> > >> >> > >> >> R. > >> >> > >> >> > >> >> > >> >> > >> >> On Mon, 19-September-2022, at 19:33:08, Brandon Allbery > >> >> > >> >> wrote: > >> >> > Oh, I missed that. Yes, the `myWorkspaces` you set in `main` has > >> >> > nothing to do with the global one which `myConfig` sees; you need > to > >> >> > pass the new one in. And possibly rename it so it's more obvious > that > >> >> > they're not related. > >> >> > > >> >> > On Mon, Sep 19, 2022 at 1:30 PM Platon Pronko < > platon7pronko at gmail.com> > >> >> > wrote: > >> >> >> > >> >> >> Hi! > >> >> >> > >> >> >> It looks like `myWorkspaces` in `myConfig` definition is > referencing this defintion: > >> >> >> > >> >> >> myWorkspaces = map show[1..7] > >> >> >> > >> >> >> instead of the one you actually want. Maybe try adding workspaces > as an argument to `myConfig`? Something like this: > >> >> >> > >> >> >> myConfig workspaces = def { > >> >> >> --- blablabla > >> >> >> workspaces = workspaces > >> >> >> } > >> >> >> > >> >> >> main :: IO () > >> >> >> main = do > >> >> >> hostname <- io (getEnv "HOSTNAME") > >> >> >> let workspaces = case hostname of > >> >> >> Just "Phelsuma" -> myWorkspacesPhelsuma > >> >> >> Just "Triturus" -> myWorkspacesTriturus > >> >> >> _ -> myWorkspaces > >> >> >> xmonad > >> >> >> $ ewmh > >> >> >> $ dynamicProjects myProjects > >> >> >> $ withNavigation2DConfig def > >> >> >> $ docks > >> >> >> $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" > (pure myXmobarPP)) defToggleStrutsKey > >> >> >> $ myConfig workspaces > >> >> >> > >> >> >> -- > >> >> >> Best regards, > >> >> >> Platon Pronko > >> >> >> PGP 2A62D77A7A2CB94E > >> >> >> > >> >> >> On 2022-09-19 19:01, Ramon Diaz-Uriarte wrote: > >> >> >> > Dear All, > >> >> >> > > >> >> >> > I use XMonad on different machines. The configuration is > identical, except for the default workspaces, so I'd like to have the > config file set the default workspaces automagically. Haskell ignorant > here, but googling around I think I am almost there. These are, I think, > the relevant pieces > >> >> >> > > >> >> >> > > >> >> >> > myWorkspaces = map show[1..7] > >> >> >> > myWorkspacesPhelsuma = map show[1..3] ++ ["top", "sync", > "zot", "whats"] > >> >> >> > myWorkspacesTriturus = map show[1..2] ++ ["top", "sync"] > >> >> >> > > >> >> >> > > >> >> >> > main :: IO () > >> >> >> > main = do > >> >> >> > hostname <- io (getEnv "HOSTNAME") > >> >> >> > let myWorkspaces = case hostname of > >> >> >> > "Phelsuma" -> myWorkspacesPhelsuma > >> >> >> > "Triturus" -> myWorkspacesTriturus > >> >> >> > _ -> myWorkspaces > >> >> >> > xmonad > >> >> >> > $ ewmh > >> >> >> > $ dynamicProjects myProjects > >> >> >> > $ withNavigation2DConfig def > >> >> >> > $ docks > >> >> >> > $ withEasySB (statusBarProp "xmobar ~/.xmonad/.xmobarrc" > (pure myXmobarPP)) defToggleStrutsKey > >> >> >> > $ myConfig > >> >> >> > > >> >> >> > > >> >> >> > myConfig = def { > >> >> >> > --- blablabla > >> >> >> > workspaces = myWorkspaces > >> >> >> > } > >> >> >> > > >> >> >> > > >> >> >> > However, I keep getting an error: > >> >> >> > > >> >> >> > • Couldn't match expected type ‘Maybe String’ > >> >> >> > with actual type ‘[Char]’ > >> >> >> > • In the pattern: "Phelsuma" > >> >> >> > In a case alternative: "Phelsuma" -> myWorkspacesPhelsuma > >> >> >> > In the expression: > >> >> >> > case hostname of > >> >> >> > "Phelsuma" -> myWorkspacesPhelsuma > >> >> >> > "Triturus" -> myWorkspacesTriturus > >> >> >> > _ -> myWorkspaces > >> >> >> > | > >> >> >> > 882 | "Phelsuma" -> myWorkspacesPhelsuma > >> >> >> > | ^^^^^^^^^^ > >> >> >> > > >> >> >> > (and the same error for the second entry, "Triturus") > >> >> >> > > >> >> >> > > >> >> >> > This I think should be fairly easy to fix, but I can't find > how. I > >> >> >> > tried > >> >> >> > writing the case section as > >> >> >> > > >> >> >> > let myWorkspaces = case hostname of > >> >> >> > Just "Phelsuma" -> myWorkspacesPhelsuma > >> >> >> > Just "Triturus" -> myWorkspacesTriturus > >> >> >> > _ -> myWorkspaces > >> >> >> > > >> >> >> > and that does not give me an error, but it seems to ignore the > actual > >> >> >> > hostname and uses the "default" one (the one with workspaces 1 > to > >> >> >> > 7). So I > >> >> >> > think I am using "Just" incorrectly and possibly also > misunderstanding > >> >> >> > how > >> >> >> > "let" works in main. > >> >> >> > > >> >> >> > Any suggestions? > >> >> >> > > >> >> >> > Thanks, > >> >> >> > > >> >> >> _______________________________________________ > >> >> >> xmonad mailing list > >> >> >> xmonad at haskell.org > >> >> >> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad > >> >> > >> >> > >> >> -- > >> >> Ramon Diaz-Uriarte > >> >> Department of Biochemistry, Lab B-31 > >> >> Facultad de Medicina > >> >> Universidad Autónoma de Madrid > >> >> Arzobispo Morcillo, 4 > >> >> 28029 Madrid > >> >> Spain > >> >> > >> >> Phone: +34-91-497-2412 > >> >> > >> >> Email: rdiaz02 at gmail.com > >> >> r.diaz at uam.es > >> >> > >> >> https://ligarto.org/rdiaz > >> > >> > >> -- > >> Ramon Diaz-Uriarte > >> Department of Biochemistry, Lab B-31 > >> Facultad de Medicina > >> Universidad Autónoma de Madrid > >> Arzobispo Morcillo, 4 > >> 28029 Madrid > >> Spain > >> > >> Phone: +34-91-497-2412 > >> > >> Email: rdiaz02 at gmail.com > >> r.diaz at uam.es > >> > >> https://ligarto.org/rdiaz > > > -- > Ramon Diaz-Uriarte > Department of Biochemistry, Lab B-31 > Facultad de Medicina > Universidad Autónoma de Madrid > Arzobispo Morcillo, 4 > 28029 Madrid > Spain > > Phone: +34-91-497-2412 > > Email: rdiaz02 at gmail.com > r.diaz at uam.es > > https://ligarto.org/rdiaz > -------------- next part -------------- An HTML attachment was scrubbed... URL: