import XMonad
import Data.Monoid
import System.Exit
import qualified XMonad.StackSet as W
import qualified Data.Map as M
import XMonad.Actions.SpawnOn
import XMonad.Layout
import XMonad.Layout.NoBorders
import XMonad.Layout.Tabbed
import XMonad.Layout.Fullscreen
import XMonad.Layout.ThreeColumns
import XMonad.Layout.Magnifier
import XMonad.Hooks.ManageHelpers
import XMonad.Layout.CenteredMaster
import XMonad.Layout.Grid
import XMonad.Layout.Renamed
import XMonad.Actions.Submap
import XMonad.Util.SpawnOnce
import XMonad.Util.Run
import XMonad.Util.EZConfig
import XMonad.Util.NamedScratchpad
--import XMonad.Hooks.EwmhDesktops
myLayoutHook = ThreeCol 1 (3/100) (1/2) ||| noBorders(Full) ||| centerMaster Grid
myTerminal = "urxvt"
myModMask = mod4Mask
myManageHook = manageSpawn <+> manageHook def<+> namedScratchpadManageHook myScratchPads
myScratchPads :: [NamedScratchpad]
myScratchPads = [ NS "terminal" spawnTerm findTerm manageTerm
]
where
spawnTerm = "urxvtc -t scratchpad -hold"
findTerm = title =? "scratchpad"
manageTerm = customFloating $ W.RationalRect l t w h
where
h = 0.9
w = 0.9
t = 0.95 -h
l = 0.95 -w
myStartupHook = do
spawnAndDo (doRectFloat (W.RationalRect 0.1 0.1 0.4 0.8) <+> doShift "1") "emacs"
spawnOn "2" "emacs"
spawnOn "3" "brave"
spawnOn "4" "urxvt"
-- spawnOn "1" "~/urxvtc.sh -hold -e ~/fun.sh"
myKeys :: [(String, X ())]
myKeys = \c -> mkKeymap c $
[ ("M-C-r", spawn "xmonad --recompile") -- Recompiles xmonad
, ("M-s t", namedScratchpadAction myScratchPads "terminal")
]
main :: IO ()
main = do
xmproc <- spawnPipe "xmobar -x 0 ~/.xmobarrc"
xmonad $ def
{terminal = myTerminal
{- , focusFollowsMouse = myFocusFollowsMouse
, clickJustFocuses = myClickJustFocuses
, borderWidth = myBorderWidth -}
, modMask = myModMask
{- , workspaces = myWorkspaces
, normalBorderColor = myNormalBorderColor
, focusedBorderColor = myFocusedBorderColor -}
-- key bindings
, keys = myKeys
-- , mouseBindings = myMouseBindings
-- hooks, layouts
, layoutHook = myLayoutHook
, manageHook = myManageHook
{- , handleEventHook = myEventHook
, logHook = myLogHook -}
, startupHook = myStartupHook
}
`additionalKeysP` myKeys
{-
XMonad will use ghc to recompile, because "/home/su/.xmonad/build" does not exist.
Error detected while loading xmonad configuration file: /home/su/.xmonad/xmonad.hs
xmonad.hs:61:10: error:
* Couldn't match expected type: [(String, X ())]
with actual type: XConfig l0 -> M.Map (KeyMask, KeySym) (X ())
* The lambda expression `\ c -> mkKeymap c $ ...'
has one value argument,
but its type `[(String, X ())]' has none
In the expression:
\ c
-> mkKeymap c
$ [("M-C-r", spawn "xmonad --recompile"),
("M-s t", namedScratchpadAction myScratchPads "terminal")]
In an equation for `myKeys':
myKeys
= \ c -> mkKeymap c $ [("M-C-r", spawn "xmonad --recompile"), ....]
|
61 | myKeys = \c -> mkKeymap c $
| ^^^^^^^^^^^^^^^^^^...
xmonad.hs:82:30: error:
* Couldn't match expected type: XConfig Layout
-> M.Map (ButtonMask, KeySym) (X ())
with actual type: [(String, X ())]
* In the `keys' field of a record
In the first argument of `additionalKeysP', namely
`def
{terminal = myTerminal, modMask = myModMask, keys = myKeys,
layoutHook = myLayoutHook, manageHook = myManageHook,
startupHook = myStartupHook}'
In the second argument of `($)', namely
`def
{terminal = myTerminal, modMask = myModMask, keys = myKeys,
layoutHook = myLayoutHook, manageHook = myManageHook,
startupHook = myStartupHook}
`additionalKeysP` myKeys'
|
82 | , keys = myKeys
| ^^^^^^
Please check the file for errors.
xmonad: xmessage: executeFile: does not exist (No such file or directory)
[su@bkkavin ~]$ ./dot#.sh
[su@bkkavin ~]$ xmonad --recompile
XMonad will use ghc to recompile, because "/home/su/.xmonad/build" does not exist.
Error detected while loading xmonad configuration file: /home/su/.xmonad/xmonad.hs
xmonad.hs:61:10: error:
* Couldn't match expected type: [(String, X ())]
with actual type: XConfig l0 -> M.Map (KeyMask, KeySym) (X ())
* The lambda expression `\ c -> mkKeymap c $ ...'
has one value argument,
but its type `[(String, X ())]' has none
In the expression:
\ c
-> mkKeymap c
$ [("M-C-r", spawn "xmonad --recompile"),
("M-s t", namedScratchpadAction myScratchPads "terminal")]
In an equation for `myKeys':
myKeys
= \ c -> mkKeymap c $ [("M-C-r", spawn "xmonad --recompile"), ....]
|
61 | myKeys = \c -> mkKeymap c $
| ^^^^^^^^^^^^^^^^^^...
xmonad.hs:82:30: error:
* Couldn't match expected type: XConfig Layout
-> M.Map (ButtonMask, KeySym) (X ())
with actual type: [(String, X ())]
* In the `keys' field of a record
In the first argument of `additionalKeysP', namely
`def
{terminal = myTerminal, modMask = myModMask, keys = myKeys,
layoutHook = myLayoutHook, manageHook = myManageHook,
startupHook = myStartupHook}'
In the second argument of `($)', namely
`def
{terminal = myTerminal, modMask = myModMask, keys = myKeys,
layoutHook = myLayoutHook, manageHook = myManageHook,
startupHook = myStartupHook}
`additionalKeysP` myKeys'
|
82 | , keys = myKeys
| ^^^^^^
Please check the file for errors.
xmonad: xmessage: executeFile: does not exist (No such file or directory)
-}