diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Internal/DMenu.hs | 14 | ||||
| -rw-r--r-- | src/Internal/Keys.hs | 10 | ||||
| -rw-r--r-- | src/Main.hs | 14 |
3 files changed, 33 insertions, 5 deletions
diff --git a/src/Internal/DMenu.hs b/src/Internal/DMenu.hs index f964544..b611d87 100644 --- a/src/Internal/DMenu.hs +++ b/src/Internal/DMenu.hs @@ -16,9 +16,17 @@ data Colors = bg :: String } | DefaultColors +menuCommand :: [String] +menuCommand = ["rofi", "-monitor", "-4", "-dmenu"] + +menuCommandString :: String +menuCommandString = unwords menuCommand + runDMenu :: X () runDMenu = void $ - safeSpawn "rofi" ["-display-run", "Execute", "-show", "run"] + safeSpawn + "rofi" + ["-monitor", "-4", "-display-run", "Execute", "-show", "run"] runDMenuPrompt :: String -> Maybe String -> [String] -> X String runDMenuPrompt prompt color select = @@ -34,5 +42,5 @@ runDMenuPromptWithMap :: String -> Maybe String -> Map String a -> X (Maybe a) runDMenuPromptWithMap prompt color map = do let realColor = maybe [] ( \c -> ["-theme-str", printf "* {theme-color: %s;}" c]) color - menuMapArgs "rofi" - (["-p", prompt, "-dmenu"] ++ realColor) map + menuMapArgs (head menuCommand) + (tail menuCommand ++ ["-p", prompt] ++ realColor) map diff --git a/src/Internal/Keys.hs b/src/Internal/Keys.hs index bf9b62c..51a1453 100644 --- a/src/Internal/Keys.hs +++ b/src/Internal/Keys.hs @@ -228,6 +228,9 @@ keymap = runKeys $ do str (show (map ord str)) + bind xK_n $ do + (justMod -|- noMod) $ spawn (terminal config ++ " -t Notes -e notes new") + bind xK_c $ do shiftMod CopyWindow.killAllOtherCopies @@ -237,6 +240,13 @@ keymap = runKeys $ do bind xK_a $ (justMod -|- noMod) $ spawn "set-sink.sh" + + bind xK_w $ + (justMod -|- noMod) $ spawn "networkmanager_dmenu" + + bind xK_v $ do + (justMod -|- noMod) $ spawn "set-volume.sh" + (shiftMod -|- rawMask shiftMask) $ spawn "set-volume.sh -a" -- Double-tap Z to toggle zoom. diff --git a/src/Main.hs b/src/Main.hs index da3b4f1..f70496c 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -13,9 +13,10 @@ import Data.Monoid import Internal.XMobarLog import Internal.Keys import Internal.Layout +import Internal.DMenu (menuCommandString) import qualified XMonad as X -import qualified XMonad.StackSet as S +import qualified XMonad.StackSet as W main = do @@ -24,6 +25,7 @@ main = do let fp = homeDir </> ".xmonad" </> "startup" setEnv "SUDO_ASKPASS" "/usr/bin/ssh-askpass" + setEnv "ROFI" menuCommandString xmobar <- spawnXMobar @@ -43,7 +45,8 @@ main = do , className =? "yakuake" --> doFloat , className =? "MPlayer" --> doFloat , title =? "Event Tester" --> doFloat - , title =? "Floating Term" --> doFloat + , title =? "Floating Term" --> doCenterFloat + , title =? "Notes" --> doCenterFloat , title =? "xmessage" --> doFloat , title =? "gxmessage" --> doFloat , className =? "mpv" --> doFloat @@ -55,3 +58,10 @@ main = do , clickJustFocuses = False , logHook = xMobarLogHook xmobar } + +doCenterFloat :: ManageHook +doCenterFloat = + ask >>= \w -> doF . W.float w . centerRect . snd =<< liftX (floatLocation w) + +centerRect :: W.RationalRect -> W.RationalRect +centerRect (W.RationalRect x y w h) = W.RationalRect ((1 - w) / 2) ((1 - h) / 2) w h |