aboutsummaryrefslogtreecommitdiff
path: root/.config/XMonad/lib/Keybindings.hs
blob: bc1aa99ea9a530c5bf9839ba858d6b29412cb282 (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
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
module Keybindings 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

myMouseKeybindings :: [((ButtonMask, Button), Window -> X ())]
myMouseKeybindings = [
    ((myModMask,        4), \w -> prevWS)
    , ((myModMask,      5), \w -> nextWS)
    , ((myModShiftMask, 4), \w -> shiftToPrev >> prevWS)
    , ((myModShiftMask, 5), \w -> shiftToNext >> nextWS)
  ]

myFnKeybindingsP :: [(String, X())]
myFnKeybindingsP = [
    ("<XF86MonBrightnessUp>",     spawn backlightUp)
    , ("<XF86MonBrightnessDown>", spawn backlightDown)
    , ("<XF86AudioRaiseVolume>",  spawn volUp)
    , ("<XF86AudioLowerVolume>",  spawn volDown)
    , ("<XF86AudioMute>",         spawn volMute)
    , ("<XF86AudioPlay>",         spawn pausePlay)
    , ("<XF86AudioPause>",        spawn pausePlay)
    , ("<Pause>",                 spawn pausePlay)
  ]

myKeybindings :: [((KeyMask, KeySym), X ())]
myKeybindings = [
    ((myModMask, xK_Return), spawn myTerminal)
    , ((myModShiftMask, xK_Return), spawn myLockscreen)
    , ((myModMask .|. shiftMask, xK_c), kill1)
    , ((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) <- myExtraWorkspaces
  -- ] ++ [
  --   -- 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 = []