[xmonad] auto start apps on login, but not reloads

Sam Halliday sam.halliday at gmail.com
Fri Mar 24 16:09:18 UTC 2017


Thanks Brandon!

I've updated my config

  https://github.com/fommil/dotfiles/blob/master/xmonad/xmonad.hs  

and now my three apps startup on the correct workspaces! No apparent
issues with chromium.

Unfortunately, this doesn't seem to have fixed the --reload problem, so
I guess args is always coming up non-null?


-------------- next part --------------
Brandon Allbery <allbery.b at gmail.com> writes:

> On Fri, Mar 24, 2017 at 6:19 AM, Sam Halliday <sam.halliday at gmail.com>
> wrote:
>
>> Following http://stackoverflow.com/questions/10976044/ I have added the
>> following to my `startupHook`
>>
>>     startup :: X ()
>>     startup = do
>>               setWMName "LG3D"
>>               spawnOn "workspace1" "urxvt"
>>               spawnOn "workspace2" "emacs"
>>               spawnOn "workspace3" "chromium"
>>
>> but there are three problems:
>>
>> 1. I am duplicating the definition of my terminal. It seems like I
>>    should be using
>>    [`shellPromptOn`](http://xmonad.org/xmonad-docs/xmonad-
>> contrib/XMonad-Actions-SpawnOn.html)
>>    but it takes an extra parameter and I don't know where to get it
>>    from.
>>
>
> No, that's an interactive prompt at a screen edge that asks for a command,
> with built-in completion, and passes it to a shell. There is no terminal
> involved, unless that is what you tell it to launch. (The `XPConfig` is the
> configuration for an XMonad.Prompt screen edge popup window.)
>
> 2. this is putting everything on my current workspace. How can I find
>>    out what my workspaces are called? I don't believe I've customised
>>    the names, you can see [my .xmonad/xmonad.hs on github to
>>    confirm](https://github.com/fommil/dotfiles/blob/master/.
>> xmonad/xmonad.hs)
>>
>
> You indeed haven't, so your workspaces are "1", "2", ... "9".
>
> You're also missing manageSpawn in the manageHook, so nothing ever gets
> moved anyway.
>
> 3. This will start the apps again on a `xmonad --restart`. How can we
>>    guard against that? It is very useful to be able to restart xmonad
>>    without quitting and I don't want to lose that ability.
>>
>
> There isn't anything that combines the functionality of spawnOnce and
> spawnOn currently. I replace the spawnOnce with a bit of a hack that checks
> whether xmonad was launched with parameters (which it normally isn't, but a
> restart passes the old state). Using your config as a template:
>
>     import Control.Monad
>     import System.Environment
>
>     main = do
>       args <- getArgs
>       xmonad $ ewmh $ withUrgencyHook dzenUrgencyHook { args = ["-bg",
> "darkgreen", "-xs", "1"] }
>              $ defaultConfig {
>                terminal = "urxvt"
>              , startupHook = startup (null args)
>              *-- and the rest here...*
>         }
>
>     startup :: Bool -> X ()
>     startup initial = do
>                       setWMName "LG3D"
>                       when initial $ do
>                         spawnOn "1" "urxvt"
>                         spawnOn "2" "emacs"
>                         spawnOn "3" "chromium"
>
> Note also that chromium can misbehave with spawnOn because we have to rely
> on the window registering the same associated process ID as the one we get
> back from running it, and it often isn't. See
> https://wiki.haskell.org/Xmonad/General_xmonad.hs_config_tips#Terminal_emulator_factories
> for more information. (chromium is a bit worse in that many versions of its
> wrapper script fork, so the pid will *never* match.)
>
> -- 
> brandon s allbery kf8nh                               sine nomine associates
> allbery.b at gmail.com                                  ballbery at sinenomine.net
> unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

-- 
Best regards,
Sam
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 194 bytes
Desc: not available
URL: <http://mail.haskell.org/pipermail/xmonad/attachments/20170324/1af75da0/attachment.sig>


More information about the xmonad mailing list