[SOLVED] Xmonad updatepointer help

hello Ive recently moved to arch and now xmonad. And I cannot believe i did not discover these beauties before!! (Previous distro was fedora)
So little by little with google and examples of configs out there ive manage to customize a xmonad.hs file to how i work and would like to work.
To a degree i can read my own hs file but some things idk what they do or how they work (like main).
I would basically like to implement an update pointer action. I've seen the 3rd party extensions page for xmonad but i can seem to figure out how to implement it in my xmonad config file.
I created a "myLogHook" variable (not sure if that's what haskell calls it) but dont know where to go from there. Here is my config:
import System.IO
import System.Exit
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers
import XMonad.Hooks.SetWMName
import XMonad.Layout.Fullscreen
import XMonad.Layout.NoBorders
import XMonad.Layout.Spiral
import XMonad.Layout.Tabbed
import XMonad.Layout.ThreeColumns
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import qualified XMonad.StackSet as W
import qualified Data.Map as M
import XMonad.Actions.SpawnOn
import XMonad.Actions.CycleWS
import XMonad.Actions.PhysicalScreens
import XMonad.Layout.Circle
import XMonad.Actions.UpdatePointer
-- FOR MULTIMEDIA KEYS RUN:
-- "xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'"
-- Then look in /usr/include/X11/XF86keysym.h and look for the name and code.
-- Terminal
-- The preferred terminal program, which is used in a binding below and by
-- certain contrib modules.
myTerminal = "terminator"
myInternet = "google-chrome-stable"
myIM = "pidgin"
myCalc = "libreoffice --calc"
myEditor = "gedit"
myBackground = "feh --bg-scale '/home/dvm/Pictures/infinity___widescreen_pack_by_morague.jpg'"
myScreenshot = "scrot /home/dvm/Pictures/screen_%Y-%m-%d-%H-%M-%S.png -d 1"
myMouseshot = "sleep 0.2; scrot -s ~/Pictures/screen_%Y-%m-%d-%H-%M-%S.png -d 1"
myVirtual = "virtualbox"
myRdesktop = "/home/dvm/.xmonad/bin/usrds006"
myWTL = "/home/dvm/.xmonad/bin/wtl.sh"
-- Workspaces
-- The default number of workspaces (virtual screens) and their names.
myWorkspaces = ["1:main","2:www","3:office","4:rdp","5:editor","6:email","7:files","8:chat","9:WTL"]
-- Window rules
-- Execute arbitrary actions and WindowSet manipulations when managing
-- a new window. You can use this to, for example, always float a
-- particular program, or have a client always appear on a particular
-- workspace.
-- To find the property name associated with a program, use
-- > xprop | grep WM_CLASS
-- and click on the client you're interested in.
-- To match on the WM_NAME, you can use 'title' in the same way that
-- 'className' and 'resource' are used below.
myManageHook = composeAll
[ resource =? "desktop_window" --> doIgnore
, className =? "Galculator" --> doFloat
, className =? "Steam" --> doFloat
, className =? "Gimp" --> doFloat
, resource =? "gpicview" --> doFloat
, className =? "MPlayer" --> doFloat
, className =? "Google-chrome-stable" --> doShift "2:www"
, className =? "libreoffice-calc" --> doShift "3:office"
, className =? "VirtualBox" --> doShift "3:office"
, className =? "rdesktop" --> doShift "4:rdp"
, className =? "Gedit" --> doShift "5:editor"
, className =? "Evolution" --> doShift "6:email"
, className =? "Nautilus" --> doShift "7:files"
, className =? "Pidgin" --> doShift "8:chat"
, className =? "Wine" --> doShift "9:WTL"
, className =? "stalonetray" --> doIgnore
, isFullscreen --> (doF W.focusDown <+> doFullFloat)]
-- Layouts
-- You can specify and transform your layouts by modifying these values.
-- If you change layout bindings be sure to use 'mod-shift-space' after
-- restarting (with 'mod-q') to reset your layout state to the new
-- defaults, as xmonad preserves your old layout settings by default.
-- The available layouts. Note that each layout is separated by |||,
-- which denotes layout choice.
myLayout = avoidStruts (
Tall 1 (3/100) (1/2) |||
Mirror (Tall 1 (3/100) (1/2)) |||
tabbed shrinkText tabConfig |||
Full |||
Circle |||
spiral (6/7)) |||
noBorders (fullscreenFull Full)
-- Colors and borders
-- Currently based on the ir_black theme.
myNormalBorderColor = "#000000"
myFocusedBorderColor = "#FF0000"
-- Colors for text and backgrounds of each tab when in "Tabbed" layout.
tabConfig = defaultTheme {
activeBorderColor = "#FF0000",
activeTextColor = "#CEFFAC",
activeColor = "#000000",
inactiveBorderColor = "#FF0000",
inactiveTextColor = "#EEEEEE",
inactiveColor = "#000000"
-- Color of current window title in xmobar.
xmobarTitleColor = "#00ff00"
-- Color of current workspace in xmobar.
xmobarCurrentWorkspaceColor = "#ee9a00"
-- Width of the window border in pixels.
myBorderWidth = 2
-- Key bindings
-- modMask lets you specify which modkey you want to use. The default
-- is mod1Mask ("left alt"). You may also consider using mod3Mask
-- ("right alt"), which does not conflict with emacs keybindings. The
-- "windows key" is usually mod4Mask.
myModMask = mod4Mask
myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
-- Custom key bindings
-- Start a terminal. Terminal to start is specified by myTerminal variable.
[ ((modMask .|. controlMask, xK_t), spawn $ XMonad.terminal conf)
-- Lock the screen using xscreensaver.
, ((0, 0x1008FF2F), spawn "xscreensaver-command -lock")
-- Run dmenu
, ((modMask, xK_p), spawn "dmenu_run")
-- Launch remote desktop script
, ((modMask .|. controlMask, xK_r), spawn myRdesktop)
-- Launch Google Chrome
, ((modMask .|. controlMask, xK_i), spawn myInternet)
-- Launch Gedit
, ((modMask .|. controlMask, xK_g), spawn myEditor)
-- Launch Libreoffice Calc
, ((modMask .|. controlMask, xK_c), spawn myCalc)
-- Launch Virtualbox
, ((modMask .|. controlMask, xK_v), spawn myVirtual)
-- Launch Evolution Email Client
, ((modMask .|. controlMask, xK_e), spawn "evolution")
-- Launch WT Library
, ((modMask .|. controlMask, xK_w), spawn myWTL)
-- Launch nautilius File Manager
, ((modMask .|. controlMask, xK_f), spawn "nautilus")
-- Switch to next workspace
, ((modMask, xK_Page_Up), nextWS)
-- Switch to prev workspace
, ((modMask, xK_Page_Down), prevWS)
-- Take a screenshot in select mode.
-- After pressing this key binding, click a window, or draw a rectangle with the mouse.
, ((modMask, xK_Print), spawn myMouseshot)
-- Take full screenshot in multi-head mode.
-- That is, take a screenshot of everything you see.
-- , ((modMask .|. controlMask .|. shiftMask, xK_p), spawn "screenshot")
, ((0, xK_Print), spawn myScreenshot)
-- Fetch a single use password.
, ((modMask .|. shiftMask, xK_o), spawn "fetchotp -x")
-- Mute volume.
-- , ((0, xK_F9), spawn "amixer -q set Master toggle")
, ((0, 0x1008FF12), spawn "amixer -q set Master toggle")
-- Decrease volume.
-- , ((0, xK_F10), spawn "amixer -q set Master 10%-")
, ((0, 0x1008FF11), spawn "amixer -q set Master 10%-")
-- Increase volume.
-- , ((0, xK_F11), spawn "amixer -q set Master 10%+")
, ((0, 0x1008FF13), spawn "amixer -q set Master 10%+")
-- Audio previous.
, ((0, 0x1008FF16), spawn "")
-- Play/pause.
, ((0, 0x1008FF14), spawn "")
-- Audio next.
, ((0, 0x1008FF17), spawn "")
-- Audio stop.
, ((0, 0x1008FF15), spawn "")
-- Eject CD tray.
-- , ((0, 0x1008FF2C), spawn "eject -T")
-- Switch to Prev Xinerama
, ((modMask, xK_Right), onPrevNeighbour W.view)
-- Switch to Next Xinerama
, ((modMask, xK_Left), onNextNeighbour W.view)
-- Switch to Prev Workspace
, ((modMask, xK_Down), prevWS)
-- Switch to Next Workspace
, ((modMask, xK_Up), nextWS)
-- "Standard" xmonad key bindings
-- Close focused window.
, ((modMask .|. shiftMask, xK_c), kill)
-- Cycle through the available layout algorithms.
, ((modMask, xK_space), sendMessage NextLayout)
-- Reset the layouts on the current workspace to default.
, ((modMask .|. shiftMask, xK_space), setLayout $ XMonad.layoutHook conf)
-- Resize viewed windows to the correct size.
, ((modMask, xK_n), refresh)
-- Move focus to the next window.
, ((modMask, xK_Tab), windows W.focusDown)
-- Move focus to the next window.
, ((modMask, xK_j), windows W.focusDown)
-- Move focus to the previous window.
, ((modMask, xK_k), windows W.focusUp )
-- Move focus to the master window.
, ((modMask, xK_m), windows W.focusMaster )
-- Swap the focused window and the master window.
, ((modMask, xK_Return), windows W.swapMaster)
-- Swap the focused window with the next window.
, ((modMask .|. shiftMask, xK_j), windows W.swapDown )
-- Swap the focused window with the previous window.
, ((modMask .|. shiftMask, xK_k), windows W.swapUp )
-- Shrink the master area.
, ((modMask, xK_h), sendMessage Shrink)
-- Expand the master area.
, ((modMask, xK_l), sendMessage Expand)
-- Push window back into tiling.
, ((modMask, xK_t), withFocused $ windows . W.sink)
-- Increment the number of windows in the master area.
, ((modMask, xK_comma), sendMessage (IncMasterN 1))
-- Decrement the number of windows in the master area.
, ((modMask, xK_period), sendMessage (IncMasterN (-1)))
-- Toggle the status bar gap.
-- TODO: update this binding with avoidStruts, ((modMask, xK_b),
-- Quit xmonad.
, ((modMask .|. shiftMask, xK_q), io (exitWith ExitSuccess))
-- Restart xmonad.
, ((modMask, xK_q), restart "xmonad" True)
++
-- mod-[1..9], Switch to workspace N
-- mod-shift-[1..9], Move client to workspace N
[((m .|. modMask, k), windows $ f i)
| (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
++
-- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
-- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
[((m .|. modMask, key), screenWorkspace sc >>= flip whenJust (windows . f))
| (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
, (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
-- Mouse bindings
-- Focus rules
-- True if your focus should follow your mouse cursor.
myFocusFollowsMouse :: Bool
myFocusFollowsMouse = True
myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $
-- mod-button1, Set the window to floating mode and move by dragging
((modMask, button1),
(\w -> focus w >> mouseMoveWindow w))
-- mod-button2, Raise the window to the top of the stack
, ((modMask, button2),
(\w -> focus w >> windows W.swapMaster))
-- Closed focus window. Modmask + Ctrl + Middle mouse button.
, ((modMask .|. controlMask, button2), (\w -> focus w >> kill))
-- mod-button3, Set the window to floating mode and resize by dragging
, ((modMask, button3),
(\w -> focus w >> mouseResizeWindow w))
-- you may also bind events to the mouse scroll wheel (button4 and button5)
-- mod-button4, Switch to next workspace
, ((modMask, button4),
(\w -> focus w >> nextWS))
-- mod-button5, Switch to previous workspace
, ((modMask, button5),
(\w -> focus w >> prevWS))
-- Status bars and logging
-- Perform an arbitrary action on each internal state change or X event.
-- See the 'DynamicLog' extension for examples.
-- To emulate dwm's status bar
-- > logHook = dynamicLogDzen
myLogHook = updatePointer (Relative 1 1)
-- Startup hook
-- Perform an arbitrary action each time xmonad starts or is restarted
-- with mod-q. Used by, e.g., XMonad.Layout.PerWorkspace to initialize
-- per-workspace layout choices.
-- By default, do nothing.
myStartupHook = return ()
-- Run xmonad with all the defaults we set up.
main = do
xmproc <- spawnPipe "xmobar ~/.xmonad/xmobar.hs"
xmonad $ defaults {
logHook = dynamicLogWithPP $ xmobarPP {
ppOutput = hPutStrLn xmproc
, ppTitle = xmobarColor xmobarTitleColor "" . shorten 50
, ppCurrent = xmobarColor xmobarCurrentWorkspaceColor ""
, ppSep = " : "
, ppLayout = xmobarColor "orange" ""
-- , manageHook = manageDocks <+> myManageHook
, manageHook = manageSpawn <+> manageDocks <+> myManageHook
, startupHook = setWMName "LG3D"
-- >> spawnHere "trayer --edge top --align left --SetDockType true --SetPartialStrut true --expand true --width 6 --transparent true --alpha 0 --tint 0x000000 --height 16"
>> spawnHere "/usr/bin/xscreensaver -no-splash &"
>> spawnHere "udiskie --tray &"
>> spawnHere myBackground
-- >> spawnHere "mpd"
-- >> spawnOn "1:main" "/home/dvm/.xmonad/bin/nload.sh"
-- >> spawnOn "1:main" "/home/dvm/.xmonad/bin/clock.sh"
-- >> spawnOn "1:main" "/home/dvm/.xmonad/bin/visual.sh"
-- >> spawnHere myTerminal
-- >> spawnOn "2:www" myInternet
-- >> spawnOn "3:office" myCalc
-- >> spawnOn "4:rdp" "/home/dvm/.xmonad/bin/usrds006"
-- >> spawnOn "5:editor" myEditor
-- >> spawnOn "6:email" "evolution"
-- >> spawnOn "7:files" "nautilus"
-- >> spawnOn "9:WTL" myWTL
-- Combine it all together
-- A structure containing your configuration settings, overriding
-- fields in the default config. Any you don't override, will
-- use the defaults defined in xmonad/XMonad/Config.hs
-- No need to modify this.
defaults = defaultConfig {
-- simple stuff
terminal = myTerminal,
focusFollowsMouse = myFocusFollowsMouse,
borderWidth = myBorderWidth,
modMask = myModMask,
workspaces = myWorkspaces,
normalBorderColor = myNormalBorderColor,
focusedBorderColor = myFocusedBorderColor,
-- key bindings
keys = myKeys,
mouseBindings = myMouseBindings,
-- hooks, layouts
layoutHook = smartBorders $ myLayout,
manageHook = myManageHook,
startupHook = myStartupHook
Any input/insight would be greatly appreciated. Thank you for you time.
Last edited by davama (2014-04-08 13:53:59)

Awesome!!
Skotish, thank you! I copied your code into my config and it worked like a charm. At first I thought they were identical so i  tried it with my code, since you mentioned watch for tabs and spaces. My block didn't work of course but I didn't understand why since "tabs and spaces" were identical. Until i put your block side by side with my block. Then i noticed the "$" was removed from:
logHook = dynamicLogWithPP $ xmobarPP {
I still dont understand Haskell much and what the "$" means but Im still learning.
BTW my config has changed a bit so im going to post it (with pointer update included):
import System.IO
import System.Exit
import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Hooks.ManageHelpers
import XMonad.Hooks.SetWMName
import XMonad.Layout.Fullscreen
import XMonad.Layout.NoBorders
--import XMonad.Layout.Spiral
import XMonad.Layout.Tabbed
import XMonad.Layout.ThreeColumns
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys)
import qualified XMonad.StackSet as W
import qualified Data.Map as M
import XMonad.Actions.SpawnOn
import XMonad.Actions.CycleWS
import XMonad.Actions.PhysicalScreens
import XMonad.Layout.Circle
import XMonad.Actions.WindowBringer
import XMonad.Layout.Cross
import XMonad.Layout.Grid
import XMonad.Layout.Minimize
import XMonad.Layout.Maximize
import XMonad.Actions.WindowMenu
import XMonad.Actions.UpdatePointer
-- FOR MULTIMEDIA KEYS RUN:
-- xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
-- Then look in /usr/include/X11/XF86keysym.h and look for the name and code.
-- Terminal
-- The preferred terminal program, which is used in a binding below and by
-- certain contrib modules.
myTerminal = "terminator"
myInternet = "google-chrome-stable"
myIM = "pidgin"
myCalc = "libreoffice --calc"
myEditor = "gedit"
myBackground = "feh --bg-scale '/home/dvm/Pictures/infinity___widescreen_pack_by_morague.jpg'"
myScreenshot = "scrot /home/dvm/Pictures/screen_%Y-%m-%d-%H-%M-%S.png -d 1"
myMouseshot = "sleep 0.2; scrot -s ~/Pictures/screen_%Y-%m-%d-%H-%M-%S.png -d 1"
myVirtual = "virtualbox"
myRdesktop = "/home/dvm/.xmonad/bin/usrds006"
myWTL = "/home/dvm/.xmonad/bin/wtl.sh"
-- Workspaces
-- The default number of workspaces (virtual screens) and their names.
myWorkspaces = ["1:main","2:www","3:office","4:rdp","5:editor","6:email","7:files","8:chat","9:WTL"]
-- Window rules
-- Execute arbitrary actions and WindowSet manipulations when managing
-- a new window. You can use this to, for example, always float a
-- particular program, or have a client always appear on a particular
-- workspace.
-- To find the property name associated with a program, use
-- > xprop | grep WM_CLASS
-- and click on the client you're interested in.
-- To match on the WM_NAME, you can use 'title' in the same way that
-- 'className' and 'resource' are used below.
myManageHook = composeAll
[ resource =? "desktop_window" --> doIgnore
, className =? "Galculator" --> doFloat
, className =? "Steam" --> doFloat
, className =? "Gimp" --> doFloat
, resource =? "gpicview" --> doFloat
, className =? "MPlayer" --> doFloat
, className =? "Google-chrome-stable" --> doShift "2:www"
, className =? "libreoffice-calc" --> doShift "3:office"
, className =? "VirtualBox" --> doShift "3:office"
, className =? "rdesktop" --> doShift "4:rdp"
, className =? "Gedit" --> doShift "5:editor"
, className =? "Evolution" --> doShift "6:email"
, className =? "Nautilus" --> doShift "7:files"
, className =? "Pidgin" --> doShift "8:chat"
, className =? "Wine" --> doShift "9:WTL"
, className =? "stalonetray" --> doIgnore
, isFullscreen --> (doF W.focusDown <+> doFullFloat)]
-- Layouts
-- You can specify and transform your layouts by modifying these values.
-- If you change layout bindings be sure to use 'mod-shift-space' after
-- restarting (with 'mod-q') to reset your layout state to the new
-- defaults, as xmonad preserves your old layout settings by default.
-- The available layouts. Note that each layout is separated by |||,
-- which denotes layout choice.
myLayout = avoidStruts (
Tall 1 (3/100) (1/2) |||
Mirror (Tall 1 (3/100) (1/2)) |||
tabbed shrinkText tabConfig |||
Full |||
Grid ||| -- This one is nice
Circle ||| -- This and cross are similar but
simpleCross) ||| -- cross sends focus window to center.
-- spiral (6/7)) |||
noBorders (fullscreenFull Full)
-- Colors and borders
-- Currently based on the ir_black theme.
myNormalBorderColor = "#000000"
myFocusedBorderColor = "#FF0000"
-- Colors for text and backgrounds of each tab when in "Tabbed" layout.
tabConfig = defaultTheme {
activeBorderColor = "#FF0000",
activeTextColor = "#CEFFAC",
activeColor = "#000000",
inactiveBorderColor = "#FF0000",
inactiveTextColor = "#EEEEEE",
inactiveColor = "#000000"
-- Color of current window title in xmobar.
xmobarTitleColor = "#00ff00"
-- Color of current workspace in xmobar.
xmobarCurrentWorkspaceColor = "#ee9a00"
-- Width of the window border in pixels.
myBorderWidth = 2
-- Key bindings
-- modMask lets you specify which modkey you want to use. The default
-- is mod1Mask ("left alt"). You may also consider using mod3Mask
-- ("right alt"), which does not conflict with emacs keybindings. The
-- "windows key" is usually mod4Mask.
myModMask = mod4Mask
myKeys conf@(XConfig {XMonad.modMask = modMask}) = M.fromList $
-- Custom key bindings
-- Start a terminal. Terminal to start is specified by myTerminal variable.
[ ((modMask .|. controlMask, xK_t), spawn $ XMonad.terminal conf)
-- Launch remote desktop script
, ((modMask .|. controlMask, xK_r), spawn myRdesktop)
-- Launch Google Chrome
, ((modMask .|. controlMask, xK_i), spawn myInternet)
-- Launch Gedit
, ((modMask .|. controlMask, xK_g), spawn myEditor)
-- Launch Libreoffice Calc
, ((modMask .|. controlMask, xK_c), spawn myCalc)
-- Launch Virtualbox
, ((modMask .|. controlMask, xK_v), spawn myVirtual)
-- Launch Evolution Email Client
, ((modMask .|. controlMask, xK_e), spawn "evolution")
-- Launch WT Library
, ((modMask .|. controlMask, xK_w), spawn myWTL)
-- Launch nautilius File Manager
, ((modMask .|. controlMask, xK_f), spawn "nautilus")
-- display a number of actions related to window management in the center of the focused window.
-- Actions include: Closing, maximizing, minimizing and shifting the window to another workspace.
, ((modMask .|. shiftMask, xK_s), windowMenu)
-- Pops open a dmenu with window titles. Choose one,
-- and you will be taken to the corresponding workspace.
, ((modMask .|. shiftMask, xK_g), gotoMenu)
-- Pops open an application with window titles given
-- over stdin. Choose one, and it will be dragged, kicking
-- and screaming, into your current workspace.
, ((modMask .|. shiftMask, xK_b), bringMenu)
-- Lock the screen using xscreensaver. Using sleep button
, ((0, 0x1008FF2F), spawn "xscreensaver-command -lock")
-- Mute volume.
-- , ((0, xK_F9), spawn "amixer -q set Master toggle")
, ((0, 0x1008FF12), spawn "amixer -q set Master toggle")
-- Decrease volume.
-- , ((0, xK_F10), spawn "amixer -q set Master 10%-")
, ((0, 0x1008FF11), spawn "amixer -q set Master 10%-")
-- Increase volume.
-- , ((0, xK_F11), spawn "amixer -q set Master 10%+")
, ((0, 0x1008FF13), spawn "amixer -q set Master 10%+")
-- Audio previous.
, ((0, 0x1008FF16), spawn "ncmpcpp prev")
-- Play/pause.
, ((0, 0x1008FF14), spawn "ncmpcpp toggle")
-- , ((0, 0x1008FF14), spawn "ncmpcpp stop; ncmpcpp play")
-- Audio next.
, ((0, 0x1008FF17), spawn "ncmpcpp next")
-- Audio stop.
, ((0, 0x1008FF15), spawn "ncmpcpp stop")
-- Take full screenshot in multi-head mode.
-- That is, take a screenshot of everything you see.
-- , ((modMask .|. controlMask .|. shiftMask, xK_p), spawn "screenshot")
, ((0, xK_Print), spawn myScreenshot)
-- Take a screenshot in select mode.
-- After pressing this key binding, click a window, or draw a rectangle with the mouse.
, ((modMask, xK_Print), spawn myMouseshot)
-- Run dmenu
, ((modMask, xK_p), spawn "dmenu_run")
-- Eject CD tray.
, ((modMask, xK_F12), spawn "eject -T")
-- Switch to Prev Xinerama
, ((modMask, xK_Right), onPrevNeighbour W.view)
-- Switch to Next Xinerama
, ((modMask, xK_Left), onNextNeighbour W.view)
-- Switch to Prev Workspace
, ((modMask, xK_Down), moveTo Prev HiddenNonEmptyWS)
-- Switch to Next Workspace
, ((modMask, xK_Up), moveTo Next HiddenNonEmptyWS)
-- Switch to next workspace
, ((modMask, xK_Page_Up), moveTo Next HiddenWS)
-- Switch to prev workspace
, ((modMask, xK_Page_Down), moveTo Prev HiddenWS)
-- "Standard" xmonad key bindings
-- Close focused window.
, ((modMask .|. shiftMask, xK_c), kill)
-- Cycle through the available layout algorithms.
, ((modMask, xK_space), sendMessage NextLayout)
-- Reset the layouts on the current workspace to default.
, ((modMask .|. shiftMask, xK_space), setLayout $ XMonad.layoutHook conf)
-- Resize viewed windows to the correct size.
, ((modMask, xK_n), refresh)
-- Move focus to the next window.
, ((modMask, xK_Tab), windows W.focusDown)
-- Move focus to the next window.
, ((modMask, xK_j), windows W.focusDown)
-- Move focus to the previous window.
, ((modMask, xK_k), windows W.focusUp )
-- Move focus to the master window.
, ((modMask, xK_m), windows W.focusMaster )
-- Swap the focused window and the master window.
, ((modMask, xK_Return), windows W.swapMaster)
-- Swap the focused window with the next window.
, ((modMask .|. shiftMask, xK_j), windows W.swapDown )
-- Swap the focused window with the previous window.
, ((modMask .|. shiftMask, xK_k), windows W.swapUp )
-- Shrink the master area.
, ((modMask, xK_h), sendMessage Shrink)
-- Expand the master area.
, ((modMask, xK_l), sendMessage Expand)
-- Push window back into tiling.
, ((modMask, xK_t), withFocused $ windows . W.sink)
-- Increment the number of windows in the master area.
, ((modMask, xK_comma), sendMessage (IncMasterN 1))
-- Decrement the number of windows in the master area.
, ((modMask, xK_period), sendMessage (IncMasterN (-1)))
-- Toggle the status bar gap.
-- TODO: update this binding with avoidStruts, ((modMask, xK_b),
-- Quit xmonad.
, ((modMask .|. shiftMask, xK_q), io (exitWith ExitSuccess))
-- Restart xmonad.
, ((modMask, xK_q), restart "xmonad" True)
++
-- mod-[1..9], Switch to workspace N
-- mod-shift-[1..9], Move client to workspace N
[((m .|. modMask, k), windows $ f i)
| (i, k) <- zip (XMonad.workspaces conf) [xK_1 .. xK_9]
, (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)]]
++
-- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
-- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
[((m .|. modMask, key), screenWorkspace sc >>= flip whenJust (windows . f))
| (key, sc) <- zip [xK_w, xK_e, xK_r] [0..]
, (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
-- Mouse bindings
-- Focus rules
-- True if your focus should follow your mouse cursor.
myFocusFollowsMouse :: Bool
myFocusFollowsMouse = True
myMouseBindings (XConfig {XMonad.modMask = modMask}) = M.fromList $
-- mod-button1, Set the window to floating mode and move by dragging
((modMask, button1),
(\w -> focus w >> mouseMoveWindow w))
-- mod-button2, Raise the window to the top of the stack
, ((modMask, button2),
(\w -> focus w >> windows W.swapMaster))
-- Closed focus window. Modmask + Ctrl + Middle mouse button.
, ((modMask .|. controlMask, button2), (\w -> focus w >> kill))
-- mod-button3, Set the window to floating mode and resize by dragging
, ((modMask, button3),
(\w -> focus w >> mouseResizeWindow w))
-- you may also bind events to the mouse scroll wheel (button4 and button5)
-- mod-button4, Switch to next workspace
, ((modMask, button4),
(\w -> focus w >> moveTo Next HiddenNonEmptyWS))
-- mod-button5, Switch to previous workspace
, ((modMask, button5),
(\w -> focus w >> moveTo Prev HiddenNonEmptyWS))
-- Status bars and logging
-- Perform an arbitrary action on each internal state change or X event.
-- See the 'DynamicLog' extension for examples.
-- To emulate dwm's status bar
-- > logHook = dynamicLogDzen
-- Startup hook
-- Perform an arbitrary action each time xmonad starts or is restarted
-- with mod-q. Used by, e.g., XMonad.Layout.PerWorkspace to initialize
-- per-workspace layout choices.
-- By default, do nothing.
myStartupHook = return ()
-- Run xmonad with all the defaults we set up.
main = do
xmproc <- spawnPipe "xmobar ~/.xmonad/xmobar.hs"
xmonad $ defaults {
logHook = dynamicLogWithPP xmobarPP {
ppOutput = hPutStrLn xmproc
, ppTitle = xmobarColor xmobarTitleColor "" . shorten 50
, ppCurrent = xmobarColor xmobarCurrentWorkspaceColor ""
, ppSep = " : "
, ppLayout = xmobarColor "orange" ""
>> updatePointer (TowardsCentre 0.99 0.99) -- moves pointer to center of focused window
-- >> updatePointer (Relative 0.99 0.99) -- moves pointer to lower right corner of focused window
-- , manageHook = manageDocks <+> myManageHook
, manageHook = manageSpawn <+> manageDocks <+> myManageHook
, startupHook = setWMName "LG3D"
-- >> spawnHere "trayer --edge top --align left --SetDockType true --SetPartialStrut true --expand true --width 6 --transparent true --alpha 0 --tint 0x000000 --height 16"
>> spawnHere "/usr/bin/xscreensaver -no-splash &"
>> spawnHere "udiskie --tray &"
>> spawnHere myBackground
-- >> spawnHere "mpd"
-- >> spawnOn "1:main" "/home/dvm/.xmonad/bin/nload.sh"
-- >> spawnOn "1:main" "/home/dvm/.xmonad/bin/clock.sh"
-- >> spawnOn "1:main" "/home/dvm/.xmonad/bin/visual.sh"
-- >> spawnHere myTerminal
-- >> spawnOn "2:www" myInternet
-- >> spawnOn "3:office" myCalc
-- >> spawnOn "4:rdp" "/home/dvm/.xmonad/bin/usrds006"
-- >> spawnOn "5:editor" myEditor
-- >> spawnOn "6:email" "evolution"
-- >> spawnOn "7:files" "nautilus"
-- >> spawnOn "9:WTL" myWTL
-- Combine it all together
-- A structure containing your configuration settings, overriding
-- fields in the default config. Any you don't override, will
-- use the defaults defined in xmonad/XMonad/Config.hs
-- No need to modify this.
defaults = defaultConfig {
-- simple stuff
terminal = myTerminal,
focusFollowsMouse = myFocusFollowsMouse,
borderWidth = myBorderWidth,
modMask = myModMask,
workspaces = myWorkspaces,
normalBorderColor = myNormalBorderColor,
focusedBorderColor = myFocusedBorderColor,
-- key bindings
keys = myKeys,
mouseBindings = myMouseBindings,
-- hooks, layouts
layoutHook = smartBorders $ myLayout,
manageHook = myManageHook,
startupHook = myStartupHook
Actually decided to use "TowardsCentre" instead.
For anyone else reading this, i'm currently using xmonad v0.11 and xmobar v0.20.1
Woa! Rayman just saw you updated the post. Thanks for the explanation! Going to have to sit on that one to reread it cuz it just went over my head. Thanks for updating. I'll try your suggestion too, looks cleaner.
Thank you all for your time.
-Dave

Similar Messages

  • My speaker is not working properly in 4s if i use headphone its working now my volume increase decrease button is also not working properly how can i solve it pl help me my warranty finished

    my speaker is not working properly in 4s if i use headphone its working now my volume increase decrease button is also not working properly how can i solve it pl help me my warranty finished

    Hello. I sent my WRT1900AC V1 to Linksys four days ago (Monday) via UPS with a RMA. Linksys paid the shipping and everything. The router is still in route, and it should arrive to their offices tomorrow. Once they receive the WRT1900 AC V1, they are going to send me an EA8500 as a replacement. But I have been reading the comments about the EA8500 here in the forum and it seems to have the same problems. I guess the firmware is extremely flawed in both routers (maybe it is almost the same code?). Anyway, I will try the EA8500 and I hope it works. I bought a temporary router from Walmart and I paid $35 for it. It is a Belink N600 DB. I can't believe that a $35 router is working a lot, lot, lot better than my previous $250 WRT1900AC router. Unbelievable. If the EA8500 doesn't work, I'm going to try and get my money back from Linksys, or contact The Consumerist or someone to get my money back and get a Nighthawk instead.

  • TS3899 In my iPad 2 with IO6 today I can not send emails from my gmail account, they go to the outbox directly...why? How can i solve this problem? ..I restarted the IPad but the problem was not solved. Please help.

    In my iPad 2 with IO6 today I can not send emails from my gmail account, they go to the outbox directly...why? How can i solve this problem? ..I restarted the IPad but the problem was not solved. Please help.

    Greetings,
    Questions:
    1. What version of the Mac OS are you running (Apple > About this Mac)?
    2. What version of the iOS are you running (Settings > About)?
    3. Do you use MobileMe/ iCloud or another server based sync solution like Google or Yahoo?
    4. Do other changes to synced information like Address Book content sync successfully back and forth?
    Based on your description it sounds like you have a 1 way sync issue.  Events sync fine between the iOS devices and fine from the computer to the iOS devices but not from the iOS devices to the computer.
    Try:
    Backup your computer and iOS devices before doing anything else:
    http://support.apple.com/kb/HT1427
    http://support.apple.com/kb/ht1766
    Ensure all the devices in use are fully up to date: Apple > Software Update / Settings > General > Software Update
    Make separate backups of critical data:
    Backup your computer Addressbook: http://docs.info.apple.com/article.html?path=AddressBook/4.0/en/ad961.html
    Backup your computer iCal: http://support.apple.com/kb/HT2966
    Reset syncing on your Mac: http://support.apple.com/kb/TS1627
    Reply back if that does not resolve your issue.
    Hope that helps.

  • I'm using firefox 6.0.2 It's making problem with Bangla font ONLY on FACEBOOK others bangli website FORNT SIZE are OK. On the FACEBOOK it shows Bangla font in a very / Too small! I change font SIZE in firefox setting but i can't solve. Pls HELP me

    I'm using firefox 6.0.2 It's making problem with Bangla font ONLY on FACEBOOK others bangli website FORNT SIZE are OK. On the FACEBOOK it shows Bangla font in a very / Too small! I change font SIZE in firefox setting but i can't solve. Pls HELP me ..

    Reset the page zoom on pages that cause problems: <b>View > Zoom > Reset</b> (Ctrl+0 (zero); Cmd+0 on Mac)
    *http://kb.mozillazine.org/Zoom_text_of_web_pages
    You can use an extension to set a default font size and page zoom on web pages.
    *Default FullZoom Level: https://addons.mozilla.org/firefox/addon/default-fullzoom-level/
    *NoSquint: https://addons.mozilla.org/firefox/addon/nosquint/

  • HT3964 I am getting the error message "No AirPort card installed" Restarting my iMac desktop does not solve this (Apple help says I need to reset the SMC this way, but nothing changes. Can somebody advise, please?

    I am getting the error message "No AirPort card installed" Restarting my iMac desktop does not solve this (Apple help says I need to reset the SMC this way, but nothing changes). Can somebody advise, please?

    Thanks for the flag J.K. - they contaced me and solved my problem.  On this account (which I created just to ask this question), I log in with my email rather than my user name (mtalldud). On the account that I was having trouble with, they told me to use my user ID instead of my email to log in and it worked. This is a bit confusing and seems a bit inconsistent but at least I don't need this temporary account any more to get into this community and find answers!

  • I recently updated my iPhone to version 7.0.4. After that my facebook app crashes much often and the problem of freezing is also increased. How to solve that? Help!!

    Most recently, I updated my iOS version to 7.0.4. After that, my facebook app often gets crashed and even though I re-install it, the problem persists. And also, the phone freezes much often. I am really afraid that my device is damaged or engulfed with bugs. How can I solve this? Help please!!

    Time to update to iOS 7.0.6.

  • My Apple ID is still disabled. How to fix it? I tried the steps given but just cant be solved. Please help.

    My Apple ID is still disabled. How to fix it? I tried the steps given but just cant be solved. Please help. i use right keyword but cant open apple id my

    Goldboyvidar wrote:
    how i can open my apple id?? 
    As the article states, you need to reset your password.
    how i can talk to apple center and i am deaf cant call them and them have not email???
    You can contact Apple Support online here
    or
    by phone: Apple Support Numbers

  • Xmonad Configuration Help [Solved]

    I have xmonad 0.10 and kde 4.8.
    Here's the error:
    xmonad.hs:9:8:
    Couldn't match expected type `XConfig a0' with actual type `IO ()'
    In the return type of a call of `xmonad'
    In the first argument of `additionalKeys', namely
    `xmonad
    (kde4Config
    {borderWidth = 0, layoutHook = myLayout,
    manageHook = manageHook kde4Config, terminal = "urxvt",
    focusFollowsMouse = False, modMask = mod4Mask})'
    In the expression:
    xmonad
    (kde4Config
    {borderWidth = 0, layoutHook = myLayout,
    manageHook = manageHook kde4Config, terminal = "urxvt",
    focusFollowsMouse = False, modMask = mod4Mask})
    `additionalKeys`
    myKeys
    Here's my xmonad.hs
    import XMonad
    import Data.Monoid
    import qualified XMonad.StackSet as W
    import qualified Data.Map as M
    import XMonad.Util.EZConfig
    import XMonad.Config.Kde
    main = xmonad kde4Config
    { borderWidth = 0
    , layoutHook = myLayout
    , manageHook = manageHook kde4Config
    , terminal = "urxvt"
    , focusFollowsMouse = False
    , modMask = mod4Mask
    `additionalKeys` myKeys
    myKeys = [ ((mod4Mask, xK_j ), windows W.focusDown)
    , ((mod4Mask, xK_k ), windows W.focusUp)
    , ((mod4Mask .|. shiftMask, xK_j ), windows W.swapDown)
    , ((mod4Mask .|. shiftMask, xK_k ), windows W.swapUp)
    , ((mod4Mask, xK_c ), kill)
    , ((mod4Mask, xK_h ), sendMessage Shrink)
    , ((mod4Mask, xK_l ), sendMessage Expand)
    , ((mod4Mask, xK_space ), sendMessage NextLayout)
    , ((mod4Mask, xK_r ), refresh)
    -- Layouts
    myLayout = tiled ||| Mirror tiled ||| Full
    where
    tiled = Tall nmaster delta ratio
    -- Default # of windows in master pane
    nmaster = 1
    -- Default width of master
    ratio = 1/2
    -- How much to increment size by
    delta = 5/100
    Last edited by mwknowles92 (2012-02-17 23:03:37)

    You are applying additionalKeys to (xmonad kde4config {...}), you should only apply it to the (kde4config {...}) part. Simplest fix: add a dollar sign ($) between 'xmonad' and 'kde4config'.
    @pyro539: second part is okay, but that requires $ to have lower precedence (which it does).
    Last edited by Raynman (2012-02-17 22:51:56)

  • [SOLVED] Xmonad: trasparency doesn't work with compton intel

    Dear All,
    I am having a strange issue with Xmonad and I am not sure whether it is a problem of my Arch or Xmonad configuration. I decided to ask on Arch forum first, as my other computer running Arch has exactly the same Xmonad setup and it works fine. I would appreciate assistance from some Xmonad or Arch proficient users on this.
    Basically, I have this piece of code in my xmonad.hs:
    myLogHook :: Handle -> X ()
    , logHook = myLogHook dzenLeftBar >> fadeInactiveLogHook 0.8
    On the other computer this makes all the unfocused windowses slightly transparent. I find this feature very useful as it helps me focus on the window I am working with.
    For some reason this doesn't work on my laptop. My laptop is using xf86-video-intel since the lspci gave me
    %lspci | grep VGA
    00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) (rev 03)
    Also I am invoking compton-git from AUR but I have also tried with xcompmgr in my xinitrc and it gave exactly the same result - no transparency whatsoever.
    I looked through my log file, but couldn't find anything relevant (please let me know if you can think of anything). How do I proceed with this issue? Do I try different composite managers? Do I try different drivers? Is there anyhting in X setup that I should include? Please let me know if you have any ideas.
    Last edited by AlmostSurelyRob (2013-06-18 10:18:08)

    I am very sorry. I've just discovered that neither compton nor xcompmgr were installed. It's not only solved, it should be marked as [NOT RAISED]. I was migrating my configuration and overlooked some erm... details.

  • [SOLVED] xmonad + panel logging applets

    Until recently I used xmonad-log-applet, but after the last update, xmonad is unable to connect to dbus. I get the following error:
    xmonad-x86_64-linux: D-Bus Error (org.freedesktop.DBus.Error.NoReply): Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
    As this is quite a generic message, google wasn't of much help. and I know practically nothing about dbus, so I do not to know where to start looking for the problem. As an alternative I also tried this, which seems to take a simpler approach. But when I try to load it into my (xfce) panel (via XfApplet) I get this message:
    An internal error occurred and the applet could not be loaded.
    which is also quite informative... Starting a "real" gnome panel also doesn't help. Here I have the suspicion of some missing dependencies, although the program compiles just fine.
    Does anyone have some clues?
    Last edited by davvil (2011-04-28 09:19:15)

    I deserve a big facepalm! For the gnome-socket-applet I didn't export the GNOME_SOCKET_APPLET_PORT variable, so the program didn't start. I should have RTFM in more detail. But the socket-applet works at my computer at home, but not on the one at work
    I will mark this topic as solved, as I can use the dbus solution at work and the socket solution at home, but I am still intrigued why the difference arises. If I find the time, I will try to port the gnome-socket-applet to a native xfce panel applet and hopefully it will be more stable.
    BTW I uploaded a PKGBUILD for gnome-socket-applet

  • [probably SOLVED] xmonad + gnome again

    Hi folks!
    After running 'plain' xmonad-darcs for a time i'd like to run gnome together with xmonad, so installed gnome today (haven't used it for years). gnome is up and running, but i can't get to get it run with xmonad as it's wm~
    Of course i've tried to follow xmonad's wiki... I used other people's xmonad.hs, that basic one or that other one; additionally, xmonad-contrib-darcs v20081207-1 is installed. For completeness, I actually just use
    -- xmonad.hs
    import XMonad
    import XMonad.Config.Gnome
    main = xmonad gnomeConfig
    It seems, that somehow xmonad can't be imported: a new created ~/.gnomerc makes no change, same with a copied  "export WINDOW_MANAGER=xmonad"  in ~/.profile (which is sourced by .xinitrc) or even in ~/.xinitrc itself. I added xmonad to the list of starting programs in gnome's session manager as well, I disabled nautilus and changed the position of the panel... Trying to start gnome with this:
    export WINDOW_MANAGER=xmonad
    exec gnome-session --purge-delay=3000
    it says that --purge-delay is an invalid option (so i guess that is meant to work with an older version of gnome).
    Then it comes up to gnome-session. But in my gnome there is no possibility to "select Metacity and change style to Trash"!? (Within the "sessions" I only can add starting programs or tell which applications to remember.)
    Nevertheless, I can start an xterm and run "killall metacity; xmonad &"; then metacity disappears, windows are indeed tiling, but in the xterm there's the following output:
    $ unknown ClientMessageEvent 269
    unknown ClientMessageEvent 269
    unknown ClientMessageEvent 269
    unknown ClientMessageEvent 269
    unknown ClientMessageEvent 269
    and the system becomes almost unusable. After killing the xterm metactiy reappears.
    I wonder how Phrodo_00 solved his problem, seemed to be trivial...
    Any ideas?
    Last edited by nexus7 (2009-01-11 14:07:52)

    Ugh!
    Because starting x takes always 5-10 minutes I liked to speed it up. I thought it still could be gnome fighting against xmonad, since here xmonad is added as starting program while at the same time you have the "/usr/share/applications/xmonad.desktop" (see above). So I liked to  see what happens after deselecting xmoand as starting program in the sessions manager... But from now on gnome wouldn't  start at all anymore! Neither
    gconftool-2 -s -t string /desktop/gnome/session/required_components/windowmanager metacity
    nor
    rm -rf ~/.gnome* ~/.gconf*
    helped (I don't have a ~/.gnome2/session)! X just hangs after showing its cursor, and there are heavy cooling but lesser disk activities -- so how to reactivate plain gnome??
    But also suddenly another problem seem to arise (but for heavens sake, why~ there weren't any before...):
    In the first time I crashed X that error was shown in the console:
    (EE) intel(0): underrun on pipe B!
    -- But how comes?, I disabled these in /etc/xorg.conf:
    Section "ServerFlags"
    Option "AutoAddDevices" "False"
    Option "AutoEnableDevices" "False"
    EndSection
    Now there's another one:
    error setting MTRR (base = 0xe8000000, size = 0x08000000, type = 1) Invalid argument (22)
    Disgusting~
    Nevertheless running plain xmonad works... ((edit: after exchanging the xmonad.hs of course))
    Last edited by nexus7 (2009-01-11 12:03:52)

  • [Solved] Xinerama setup help

    I'm trying to set up Xinerama for use with Xmonad, but I need some help with my xorg.conf.  I have a thinkpad T40p, with an ati mobility radeon R250 FireGL video card.  I want to use the laptop screen as the default screen, and an external monitor connected to the laptop's VGA port as the second screen. 
    Here is my xorg.conf
    grep -A 5 "WW\|EE" /var/log/Xorg.0.log reports:
    (WW) RADEON(0): Direct Rendering Disabled -- Dual-head configuration is not working with DRI at present.
    Please use the radeon MergedFB option if you want Dual-head with DRI.
    (II) RADEON(0): Detected total video RAM=65536K, accessible=65536K (PCI BAR=131072K)
    (--) RADEON(0): Mapped VideoRAM: 65536 kByte (128 bit DDR SDRAM)
    (II) RADEON(0): Using 32768k of videoram for primary head
    (II) RADEON(0): Color tiling disabled
    (WW) RADEON(0): LVDS Info:
    XRes: 1400, YRes: 1050, DotClock: 84960
    HBlank: 200, HOverPlus: 72, HSyncWidth: 40
    VBlank: 12, VOverPlus: 2, VSyncWidth: 1
    (II) RADEON(0): Output S-video has no monitor section
    (II) RADEON(0): Default TV standard: NTSC
    (WW) RADEON(1): Direct Rendering Disabled -- Dual-head configuration is not working with DRI at present.
    Please use the radeon MergedFB option if you want Dual-head with DRI.
    (II) RADEON(1): Detected total video RAM=65536K, accessible=65536K (PCI BAR=131072K)
    (--) RADEON(1): Mapped VideoRAM: 65536 kByte (128 bit DDR SDRAM)
    (II) RADEON(1): Using 32768k of videoram for secondary head
    (II) RADEON(1): Color tiling disabled
    (WW) RADEON(1): LVDS Info:
    XRes: 1400, YRes: 1050, DotClock: 84960
    HBlank: 200, HOverPlus: 72, HSyncWidth: 40
    VBlank: 12, VOverPlus: 2, VSyncWidth: 1
    (II) RADEON(1): Output S-video has no monitor section
    (II) RADEON(1): Default TV standard: NTSC
    (WW) RADEON(0): Direct rendering disabled
    (II) RADEON(0): Render acceleration enabled
    (II) RADEON(0): Using XFree86 Acceleration Architecture (XAA)
    Screen to screen bit blits
    Solid filled rectangles
    8x8 mono pattern filled rectangles
    Full log file available here.  Thanks for any help!
    Last edited by PeteMo (2008-10-31 10:55:09)

    Below is xrander's output with the external monitor connected:
    $ xrandr
    Screen 0: minimum 320 x 200, current 1400 x 1050, maximum 1400 x 1200
    VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
    1280x1024 74.9* 75.0 59.9 60.0
    1024x768 74.9 75.1 70.1 60.0 59.9
    832x624 74.6
    800x600 72.2 75.0 74.9 60.3 59.9 56.2
    640x480 75.0 72.8 74.8 66.7 60.0 59.4
    DVI-0 disconnected (normal left inverted right x axis y axis)
    LVDS connected 1400x1050+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
    1400x1050 50.0*+
    1280x800 60.0
    1280x768 60.0
    1024x768 60.0
    800x600 60.3
    640x480 59.9
    S-video disconnected (normal left inverted right x axis y axis)
    And here is the xorg log without an xorg.conf in place
    I do get output on the second monitor with no xorg conf in place, and with my old xorg.conf, from before I tried setting up for a second monitor.  However, the second monitor is simply a clone of the first, while I want an extended desktop...basically one workspace on each screen in xmonad.  I based my xorg.conf on this link, mainly, which is where the second device, screen, etc sections came from.

  • [SOLVED] XMonad + dzen2

    I have been staring at this for the last day and I can't figure out why it isn't working.  I cannot for the life of me get topBarCmd or botBarCmd to show up; I pretty much copied these configs from one of my working systems, and just edited them for a different monitor size. 
    Relevant XMonad section:
    -- dzen config
    sBarCmd = "dzen2 -fn '-*-times-*-r-*-*-12-*-*-*-*-*-*-*' -bg '#000000' -fg '#ffffff' -h 16 -w 840 -ta l"
    topBarCmd = "conky -c ~/.conkyrc | dzen2 -fn '-*-times-*-r-*-*-12-*-*-*-*-*-*-*' -bg '#000000' -fg '#ffffff' -h 16 -w 840 -x 841 -ta r"
    botBarCmd = "conky -c ~/.conky_bottom_dzen | dzen2 -fn '-*-times-*-r-*-*-12-*-*-*-*-*-*-*' -bg '#000000' -fg '#ffffff' -h 16 -y 1034 -w 1680 -ta c"
    sBarCmd shows, but the other two don't.  Any ideas?
    Last edited by lifeafter2am (2009-08-10 21:49:15)

    Well yeah, I know that. 
    Here is the whole config though.
    import XMonad
    import XMonad.Hooks.DynamicLog
    import XMonad.Hooks.ManageDocks
    import XMonad.Util.Run(spawnPipe)
    import XMonad.Util.EZConfig(additionalKeys)
    import System.IO
    import qualified XMonad.StackSet as W
    -- layouts
    import XMonad.Layout
    import XMonad.Layout.IM
    import XMonad.Layout.ToggleLayouts
    import XMonad.Layout.Reflect
    import XMonad.Layout.Combo
    import XMonad.Layout.Grid
    import XMonad.Layout.ResizableTile
    import Data.Ratio ((%))
    import XMonad.Layout.Gaps
    -- layout definitions
    customLayout = gaps [(D,16)] $ avoidStruts $ ResizableTall 2 (3/100) (1/2) [] ||| withIM (1%7) (ClassName "Buddy List") Grid ||| layoutHook defaultConfig
    -- Workspaces
    myWorkspaces = ["1:term","2:www","3:art","4:irc","5:media","6:im","7","8","9"]
    -- Window rules
    myManageHook = composeAll
    [className =? "wicd-client" --> doFloat
    ,className =? "xine" --> doFloat
    -- icons directory
    myBitmapsDir = "/home/ishikawa/.dzen"
    -- main config
    main = do
    dzenSbar <- spawnPipe sBarCmd
    dzenConkyTop <- spawnPipe topBarCmd
    dzenConkyBot <- spawnPipe botBarCmd
    spawn "xcompmgr"
    xmonad $ defaultConfig
    { manageHook = manageDocks <+> manageHook defaultConfig
    , terminal = "urxvt"
    , workspaces = myWorkspaces
    , borderWidth = 0
    , normalBorderColor = "#000000"
    , focusedBorderColor = "#3399ff"
    , layoutHook = customLayout
    , logHook = dynamicLogWithPP $ myDzenPP dzenSbar
    , modMask = mod4Mask -- Rebind Mod to the Windows key
    } `additionalKeys`
    ([ ((mod4Mask .|. shiftMask, xK_z), spawn "xscreensaver-command -lock")
    , ((controlMask, xK_Print), spawn "sleep 0.2; scrot -s")
    , ((0, xK_Print), spawn "scrot")
    , ((mod4Mask, xK_a), sendMessage MirrorShrink)
    , ((mod4Mask, xK_z), sendMessage MirrorExpand)
    ++
    -- mod-[1..9], Switch to workspace N
    -- mod-shift-[1..9], Move client to workspace N
    [((m .|. mod4Mask, k), windows $ f i)
    | (i, k) <- zip (myWorkspaces) [xK_1 .. xK_9]
    , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]])
    -- dzen config
    sBarCmd = "dzen2 -fn '-*-times-*-r-*-*-12-*-*-*-*-*-*-*' -bg '#000000' -fg '#ffffff' -h 16 -w 840 -ta l"
    topBarCmd = "conky -c /home/ishikawa/.conkyrc | dzen2 -fn '-*-times-*-r-*-*-12-*-*-*-*-*-*-*' -bg '#000000' -fg '#ffffff' -h 16 -w 840 -x 841 -ta r"
    botBarCmd = "conky -c ~/.conky_bottom_dzen | dzen2 -fn '-*-times-*-r-*-*-12-*-*-*-*-*-*-*' -bg '#000000' -fg '#ffffff' -h 16 -y 1034 -w 1680 -ta c"
    myDzenPP dzenSbar = defaultPP
    { ppCurrent = wrap "^p()[^fg(#346855)" "^fg()]^p()"
    , ppUrgent = wrap "!^fg(purple)^p()" "^fg()^p()"
    , ppVisible = wrap "^p()[^fg()" "^fg()]^p()"
    , ppTitle = wrap "^fg(#346855)< ^fg(#3a6b7a)" "^fg(#346855) >^fg()" . shorten 90
    , ppSep = " : "
    , ppWsSep = " : "
    , ppLayout = dzenColor "#346855" "#000000" .
    (\x -> case x of
    "Tall" -> "^i(" ++ myBitmapsDir ++ "/tall.xbm)"
    "Mirror Tall" -> "^i(" ++ myBitmapsDir ++ "/mtall.xbm)"
    "Full" -> "^i(" ++ myBitmapsDir ++ "/full.xbm)"
    "ResizableTall" -> "^i(" ++ myBitmapsDir ++ "/resizableGrid.xbm)"
    "IM Grid" -> "^i(" ++ myBitmapsDir ++ "/im-layout.xbm)"
    _ -> x
    , ppOutput = hPutStrLn dzenSbar
    Here are my conky's if they help too:
    conkyrc:
    # Set to yes if you want Conky to be forked in the background
    background no
    out_to_console yes
    # Update interval in seconds
    update_interval 1
    color1 ef89bb
    TEXT
    ^fg(#7ebdfc)| ^i(/home/ishikawa/.dzen/cpu.xbm) ^fg(#346855)${cpu cpu1}% ^fg(#7ebdfc) ^i(/home/ishikawa/.dzen/cpu.xbm) ^fg(#346855)${cpu cpu2}% @ $freq_g GHz ^fg(#7ebdfc)| ^i(/home/ishikawa/.dzen/mem.xbm) ^fg(#346855)$mem/$memmax ^fg(#7ebdfc)| ^i(/home/ishikawa/.dzen/net_down.xbm) ^fg(#346855)${downspeed eth1}/${totaldown eth1} ^fg(#7ebdfc)^i(/home/ishikawa/.dzen/net_up.xbm) ^fg(#346855)${upspeed eth1}/${totalup eth1} ^fg(#7ebdfc)| ^i(/home/ishikawa/.dzen/clock.xbm) ^fg(#346855)${time} ^fg(#7ebdfc)|
    conky_bottom_dzen:
    # Set to yes if you want Conky to be forked in the background
    background no
    out_to_console yes
    # Update interval in seconds
    update_interval 1
    # MPD host/port
    mpd_host localhost
    mpd_port 6600
    TEXT
    ^fg(#3a6b7a)| ^i(/home/ishikawa/.dzen/net_up_03.xbm) ^fg(#346855)$uptime ^fg(#3a6b7a)| ^fg(#1994d1) ^i(/home/ishikawa/.dzen/arch.xbm) ^fg(#346855)${texeci 1500 perl /home/ishikawa/scripts/xyne-update-checker.pl} ^fg(#3a6b7a)| ^i(/home/ishikawa/.dzen/diskette.xbm) ^fg(#346855)${fs_used sda4}/${fs_size sda4} ^fg(#3a6b7a)|^fg(#3a6b7a)| ^i(/home/ishikawa/.dzen/note.xbm) ^fg(#346855)$mpd_status : ${mpd_smart 50} ($mpd_elapsed / $mpd_length) ^fg(#3a6b7a)||
    As I said, this config works on two other systems, so I am stumped as to why it won't work on this one.

  • [SOLVED] xmonad installation - confused (?)

    After recovering from a failed xmonad installation, I thought it would be a good idea to post this..
    Again, to everyone who helped with my other thread, I'm sorry if this is stupid.
    Every guide on installing xmonad is out of date. Or everyone that I have found anyway. I have already "sudo pacman -S xmonad" and installed it, but where do I go from here?
    I have tried putting "exec xmonad" in my xinitrc, but when I login, xmonad does not start. I get this in terminal when I try running "xmonad" in gnome:
    Error detected while loading xmonad configuration file: /home/skai/.xmonad/xmonad.hs
    xmonad.hs:5:18:
        Could not find module `XMonad.Actions.Warp':
          Use -v to see a list of the files searched for.
    Please check the file for errors.
    /home/skai/.xmonad/xmonad-i386-linux: executeFile: does not exist (No such file or directory)
    xmonad: xmessage: executeFile: does not exist (No such file or directory)
    X Error of failed request:  BadAccess (attempt to access private resource denied)
      Major opcode of failed request:  2 (X_ChangeWindowAttributes)
      Serial number of failed request:  7
      Current serial number in output stream:  8
    It says an error has been detected with my xmonad.hs. I just copied some random config in the hopes of getting this to work, so maybe that has something to do with it.
    After that it says xmonad-i386-linux: executeFile does not exist.. I don't know anything about that. Can anyone point me in the right direction with this?
    Edit ---------------------------------------~~~~
    I deserve at least one reply, no?
    I have seen this problem on forums everywhere, but people either get it fixed automagically they talk to someone on IRC and figure it out. I'm not a very lucky guy, and I don't know any IRC channels.
    All I'm really looking for is an installation/configure guide for xmonad, if anybody has one, please post.
    Last edited by skai161 (2011-03-24 15:11:35)

    skai161 wrote: I have tried putting "exec xmonad" in my xinitrc, but when I login, xmonad does not start.
    Are you sure it did not start? What happaned? You get an empty screen?
    I just copied some random config in the hopes of getting this to work, so maybe that has something to do with it.
    Dont use random configs found somewhere on the net. Start from the default one and extend it to your needs.
    Every guide on installing xmonad is out of date.
    A bit bold statement. I see nothing wrong with this one: https://wiki.archlinux.org/index.php/Xmonad
    I suggest remove everything from your .xmonad dir and start over.
    Also, dont be impatient.

  • [SOLVED] Xmonad and two dzen2 bars

    Solved, thanks!
    Last edited by camphor (2010-03-02 07:01:35)

    Here is the relevant part of my xmonad.hs; these two bars load next to each other
    -- dzen config
    sBarCmd = "dzen2 -fn '-*-times-medium-r-*-*-*-*-*-*-*-*-*-*' -bg '#000000' -fg '#ffffff' -h 16 -w 500 -ta l"
    topBarCmd = "conky -c /home/ishikawa/.conkyrc | dzen2 -fn '-*-times-medium-r-*-*-*-*-*-*-*-*-*-*' -bg '#000000' -fg '#ffffff' -h 16 -w 498 -x 500 -ta r"

Maybe you are looking for