From f438dd7973528c7ad204a7955257da0766571e97 Mon Sep 17 00:00:00 2001 From: Alan Pearce Date: Sun, 17 Aug 2014 17:27:59 +0100 Subject: XMonad: Make keybindings more Emacs-like --- tag-xmonad/xmonad/xmonad.hs | 53 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/tag-xmonad/xmonad/xmonad.hs b/tag-xmonad/xmonad/xmonad.hs index 9e1fa77f..c3748442 100644 --- a/tag-xmonad/xmonad/xmonad.hs +++ b/tag-xmonad/xmonad/xmonad.hs @@ -1,11 +1,14 @@ import XMonad +import qualified XMonad.StackSet as W import XMonad.Hooks.DynamicLog import XMonad.Hooks.EwmhDesktops import XMonad.Hooks.ManageDocks import XMonad.Hooks.ManageHelpers import XMonad.Layout.NoBorders +import XMonad.Layout.WindowNavigation import XMonad.Util.EZConfig import XMonad.Util.Run(spawnPipe) +import System.Exit import System.IO import Data.List(isPrefixOf) @@ -19,6 +22,55 @@ myManageHook = composeOne , fmap ("mpv" `isPrefixOf`) title -?> doFullFloat ] +myKeys c = mkKeymap c $ + [ ("M-S-", spawn $ XMonad.terminal c) + , ("M-k", kill) + + , ("M-x M-e", spawn "emacsclient -c") + + , ("M-t", withFocused $ windows . W.sink) + , ("M-m", windows W.focusMaster) + , ("M-S-m", windows W.swapMaster) + + , ("M-", sendMessage $ Go R) + , ("M-", sendMessage $ Go L) + , ("M-", sendMessage $ Go U) + , ("M-", sendMessage $ Go D) + , ("M-M1-", sendMessage $ Swap R) + , ("M-M1-", sendMessage $ Swap L) + , ("M-M1-", sendMessage $ Swap U) + , ("M-M1-", sendMessage $ Swap D) + , ("M-C-", sendMessage $ Move R) + , ("M-C-", sendMessage $ Move L) + , ("M-C-", sendMessage $ Move U) + , ("M-C-", sendMessage $ Move D) + + , ("M-n", windows W.focusDown) + , ("M-p", windows W.focusUp) + , ("M-S-n", windows W.swapDown) + , ("M-S-p", windows W.swapUp) + + , ("M-,", sendMessage (IncMasterN 1)) + , ("M-.", sendMessage (IncMasterN (-1))) + + , ("M-\\", sendMessage NextLayout) + , ("M-S-\\", setLayout $ XMonad.layoutHook c) + + , ("M-+", sendMessage Shrink) + , ("M--", sendMessage Expand) + + , ("M-q", broadcastMessage ReleaseResources + >> restart "xmonad" True) + , ("C-M-q", io (exitWith ExitSuccess)) + ] ++ + + -- mod-[1..9], Switch to workspace N + -- mod-shift-[1..9], Move client to workspace N + [(m ++ k, windows $ f w) + | (w, k) <- zip (XMonad.workspaces c) (map show [1..9]) + , (m, f) <- [("M-",W.greedyView), ("M-S-",W.shift)]] + + main :: IO () main = do xmproc <-spawnPipe "/usr/bin/xmobar /home/alan/.xmobarrc" @@ -35,4 +87,5 @@ main = do , terminal = "urxvt" , modMask = mod4Mask , handleEventHook = fullscreenEventHook + , keys = myKeys } -- cgit 1.4.1