view .xmonad/xmonad.hs @ 377:117e3c11d953

zprofile: introduce zprofile use El Capitan (OS X 10.11) introduces a system-level /etc/zprofile which uses a path_helper thing to mangle $PATH. Unfortunately, the way path_helper works, it forces /usr/local/bin and /usr/bin to the *start* of the PATH variable, which means that any PATH mutations I want have to run after /etc/zprofile calls path_helper. As such, move my path insertions into .zprofile{,-machine} rather than .zshenv{,-machine} so that I can still ensure my path entries are at the start of PATH rather than the end. This works because: > Commands are then read from $ZDOTDIR/.zshenv. If the shell is a > login shell, commands are read from /etc/zprofile and then > $ZDOTDIR/.zprofile. Then, if the shell is interactive, commands > are read from /etc/zshrc and then $ZDOTDIR/.zshrc. Finally, if the > shell is a login shell, /etc/zlogin and $ZDOTDIR/.zlogin are read. This means that non-login shells no longer pick up my custom PATH entries, but as I only use OS X as a desktop OS that seems like a workable tradeoff for now.
author Augie Fackler <raf@durin42.com>
date Sun, 31 Jan 2016 20:46:29 -0500
parents 64e73453e43f
children
line wrap: on
line source

import XMonad

import XMonad
import XMonad.Config.Gnome
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ICCCMFocus
import XMonad.Layout
import XMonad.Layout.Column
import XMonad.Layout.LayoutBuilder
import XMonad.Util.EZConfig
import XMonad.Util.Run(spawnPipe)

myLayout = (augieLayout 2) ||| (augieLayout 1) ||| Full

augieLayout num = layoutN num mainBox (Just overflowBox) layout overflowLayout
  where
    mainBox = relBox 0 0 1 mainHeightFrac
    overflowBox = relBox 0 0 1 1
    layout = Tall 1 0.03 mainWidthFrac
    overflowLayout = layoutAll (relBox 0 mainHeightFrac 1 1) singleRow
    mainHeightFrac = 0.75  -- main area takes up this much screen height
    mainWidthFrac = 0.75   -- main window takes up this much screen width
    singleRow = Mirror $ Column 1

myDmenuTitleBar =
    "exec `dmenu_path | dmenu\
        \ -p 'Run:'`"

main :: IO ()
main = do
     xmonad $ gnomeConfig
       { terminal = "urxvt -sr -bg Black -fg White"
       , modMask = mod4Mask
       , layoutHook = avoidStruts myLayout
       , logHook = takeTopFocus
       } `additionalKeys` [
         ((mod4Mask, xK_a), spawn "gnome-screensaver-command --lock")
       , ((mod4Mask, xK_p), spawn myDmenuTitleBar)
         ]