aboutsummaryrefslogtreecommitdiff
path: root/.config/XMonad/lib/DvorakKeybindings.hs
blob: 31a0cd4522ec191ed193e2cae10feb490f5cb052 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
module DvorakKeybindings where

import XMonad
import qualified XMonad.StackSet as W

-- actions
import XMonad.Actions.CopyWindow
import XMonad.Actions.WithAll
import XMonad.Actions.CycleWS
import XMonad.Actions.GridSelect
import XMonad.Actions.SwapWorkspaces

-- layout modifiers
import XMonad.Layout.Spacing
import XMonad.Layout.WindowNavigation as WN
import XMonad.Layout.Maximize

-- Layouts
import XMonad.Layout.BinarySpacePartition as BSP

-- hooks
import XMonad.Hooks.ManageDocks

import Util
import Defaults
import Scratchpads

myWorkspaceKeys = [xK_1, xK_2, xK_3, xK_4, xK_5, xK_6, xK_7, xK_8, xK_9, xK_B]
--myWorkspaceKeys = [xK_ampersand, xK_bracketleft, xK_braceleft, xK_braceright, xK_parenleft, xK_equal, xK_asterisk, xK_parenright, xK_plus, xK_bracketright]
myWorkspaces = wsKeys myWorkspaceKeys myWorkspaceNames

myKeybindings :: [((KeyMask, KeySym), X ())]
myKeybindings = [
    ((myModMask, xK_Return), spawn myTerminal)
    , ((myModShiftMask, xK_Return), spawn myLockscreen)
    , ((myModMask, xK_s), spawn myLauncher)

    -- view prev/next workspaces
    , ((myModShiftMask,          xK_Tab       ), prevWS)
    , ((myModMask,               xK_Tab       ), nextWS)
    --, ((myModMask,               xK_semicolon ), prevWS)
    --, ((myModMask,               xK_apostrophe), nextWS)
    --, ((myModMask',              xK_h         ), prevWS)
    --, ((myModMask',              xK_l         ), nextWS)

    -- move to prev/next workspaces
    --, ((myModShiftMask', xK_h         ), shiftToPrev >> prevWS)
    --, ((myModShiftMask', xK_l         ), shiftToNext >> nextWS)
    --, ((myModShiftMask', xK_semicolon ), shiftToPrev >> prevWS)
    --, ((myModShiftMask', xK_apostrophe), shiftToNext >> nextWS)

    -- toggle maximize
    --, ((myModMask, xK_f), withFocused (sendMessage . maximizeRestore))

    -- unfloat windows
    --, ((myModMask .|. shiftMask, xK_f), withFocused $ windows . W.sink)

    -- cycle through windows
    --, ((myModMask', xK_j), windows W.focusDown)
    --, ((myModMask', xK_k), windows W.focusUp)

    -- 2D navigation
    , ((myModMask,                   xK_n), sendMessage $ Go R)
    , ((myModMask,                   xK_d), sendMessage $ Go L)
    , ((myModMask,                   xK_t), sendMessage $ Go U)
    , ((myModMask,                   xK_h), sendMessage $ Go D)
    -- swap windows
    , ((myModShiftMask,              xK_n), sendMessage $ WN.Swap R)
    , ((myModShiftMask,              xK_d), sendMessage $ WN.Swap L)
    , ((myModShiftMask,              xK_t), sendMessage $ WN.Swap U)
    , ((myModShiftMask,              xK_h), sendMessage $ WN.Swap D)
    -- resize
    , ((myModMask .|. myModMask',      xK_n), sendMessage $ ExpandTowards R)
    , ((myModMask .|. myModMask',      xK_d), sendMessage $ ExpandTowards L)
    , ((myModMask .|. myModMask',      xK_h), sendMessage $ ExpandTowards D)
    , ((myModMask .|. myModMask',      xK_t), sendMessage $ ExpandTowards U)
    , ((myModMask .|. myModShiftMask', xK_n), sendMessage $ ShrinkFrom R)
    , ((myModMask .|. myModShiftMask', xK_d), sendMessage $ ShrinkFrom L)
    , ((myModMask .|. myModShiftMask', xK_h), sendMessage $ ShrinkFrom D)
    , ((myModMask .|. myModShiftMask', xK_t), sendMessage $ ShrinkFrom U)
    --, ((myModMask, xK_B), windows $ W.greedyView "十")
  ] ++ [
    -- workspace switching
      ((myModMask, key), windows $ W.greedyView ws) | (key,ws) <- myWorkspaces
  -- ] ++ [
  --   -- moving window to workspace
  --   ((myModShiftMask, key), windows $ W.shift ws) | (key,ws) <- myWorkspaces
  -- ] ++ [
  --   -- to swap workspace
  --   ((myModShiftMask', key), windows $ swapWithCurrent ws) | (key, ws) <- myWorkspaces
  -- ] ++ [
  --   -- copy
  --   ((m .|. myModMask, key), windows $ f ws) | (key, ws) <- myWorkspaces, (f, m) <- [(copy, myModShiftMask')]
  -- ] ++ [
  --   -- for not swapping tags while using multihead
  --   ((m .|. myModMask, key), windows $ f ws) | (key, ws) <- myWorkspaces, (f, m) <- [(W.view, 0), (W.shift, shiftMask)]
  ] -- ++ [ -- directly focus monitors instead of cycling
  --  ((m .|. myModMask, key), screenWorkspace sc >>= flip whenJust (windows . f))
  --  | (key, sc) <- zip [xK_e, xK_w] [0..]
  --  , (f, m) <- [(W.view, 0), (W.shift, shiftMask)]
  --]

myKeybindingsP :: [(String, X())]
myKeybindingsP = []