diff options
Diffstat (limited to 'accounts/gkleen@sif/xmonad')
-rw-r--r-- | accounts/gkleen@sif/xmonad/package.yaml | 1 | ||||
-rw-r--r-- | accounts/gkleen@sif/xmonad/xmonad-yggdrasil.nix | 4 | ||||
-rw-r--r-- | accounts/gkleen@sif/xmonad/xmonad.hs | 57 |
3 files changed, 36 insertions, 26 deletions
diff --git a/accounts/gkleen@sif/xmonad/package.yaml b/accounts/gkleen@sif/xmonad/package.yaml index 48de1a53..f65137af 100644 --- a/accounts/gkleen@sif/xmonad/package.yaml +++ b/accounts/gkleen@sif/xmonad/package.yaml | |||
@@ -23,6 +23,7 @@ executables: | |||
23 | - containers | 23 | - containers |
24 | - hostname | 24 | - hostname |
25 | - libnotify | 25 | - libnotify |
26 | - taffybar | ||
26 | 27 | ||
27 | main: xmonad.hs | 28 | main: xmonad.hs |
28 | source-dirs: | 29 | source-dirs: |
diff --git a/accounts/gkleen@sif/xmonad/xmonad-yggdrasil.nix b/accounts/gkleen@sif/xmonad/xmonad-yggdrasil.nix index d3d72310..7c853619 100644 --- a/accounts/gkleen@sif/xmonad/xmonad-yggdrasil.nix +++ b/accounts/gkleen@sif/xmonad/xmonad-yggdrasil.nix | |||
@@ -1,7 +1,7 @@ | |||
1 | { mkDerivation, aeson, base, bytestring, containers, directory | 1 | { mkDerivation, aeson, base, bytestring, containers, directory |
2 | , filepath, hostname, hpack, mtl, network, parsec, process, lib | 2 | , filepath, hostname, hpack, mtl, network, parsec, process, lib |
3 | , temporary, transformers, unix, utf8-string, X11, xmonad | 3 | , temporary, transformers, unix, utf8-string, X11, xmonad |
4 | , xmonad-contrib, libnotify | 4 | , xmonad-contrib, libnotify, taffybar |
5 | }: | 5 | }: |
6 | mkDerivation { | 6 | mkDerivation { |
7 | pname = "xmonad-yggdrasil"; | 7 | pname = "xmonad-yggdrasil"; |
@@ -13,7 +13,7 @@ mkDerivation { | |||
13 | executableHaskellDepends = [ | 13 | executableHaskellDepends = [ |
14 | aeson base bytestring containers directory filepath hostname mtl | 14 | aeson base bytestring containers directory filepath hostname mtl |
15 | network parsec process temporary transformers unix utf8-string X11 | 15 | network parsec process temporary transformers unix utf8-string X11 |
16 | xmonad xmonad-contrib libnotify | 16 | xmonad xmonad-contrib libnotify taffybar |
17 | ]; | 17 | ]; |
18 | preConfigure = "hpack"; | 18 | preConfigure = "hpack"; |
19 | license = "unknown"; | 19 | license = "unknown"; |
diff --git a/accounts/gkleen@sif/xmonad/xmonad.hs b/accounts/gkleen@sif/xmonad/xmonad.hs index aba245ff..c642a3a7 100644 --- a/accounts/gkleen@sif/xmonad/xmonad.hs +++ b/accounts/gkleen@sif/xmonad/xmonad.hs | |||
@@ -75,6 +75,8 @@ import qualified XMonad.Actions.PhysicalScreens as P | |||
75 | 75 | ||
76 | import XMonad.Layout.IM | 76 | import XMonad.Layout.IM |
77 | 77 | ||
78 | import System.Taffybar.Support.PagerHints (pagerHints) | ||
79 | |||
78 | import XMonad.Prompt.MyShell | 80 | import XMonad.Prompt.MyShell |
79 | import XMonad.Prompt.MyPass | 81 | import XMonad.Prompt.MyPass |
80 | import XMonad.Prompt.MySsh | 82 | import XMonad.Prompt.MySsh |
@@ -142,6 +144,12 @@ defaultHost = Host { hName = "unkown" | |||
142 | browser :: String | 144 | browser :: String |
143 | browser = "env MOZ_USE_XINPUT2=1 firefox" | 145 | browser = "env MOZ_USE_XINPUT2=1 firefox" |
144 | 146 | ||
147 | gray, darkGray, red, green :: String | ||
148 | gray = "#808080" | ||
149 | darkGray = "#202020" | ||
150 | red = "#800000" | ||
151 | green = "#008000" | ||
152 | |||
145 | hostFromName :: HostName -> Host | 153 | hostFromName :: HostName -> Host |
146 | hostFromName h@("vali") = defaultHost { hName = h | 154 | hostFromName h@("vali") = defaultHost { hName = h |
147 | , hManageHook = composeOne $ catMaybes [ Just manageScratchTerm | 155 | , hManageHook = composeOne $ catMaybes [ Just manageScratchTerm |
@@ -222,7 +230,7 @@ hostFromName h | |||
222 | , hCoWsp = hCoWsp | 230 | , hCoWsp = hCoWsp |
223 | , hKeysMod = \conf -> Map.union $ (Map.fromList $ join $ map (spawnBindings conf) [ (xK_e, ["emacsclient -c"]) | 231 | , hKeysMod = \conf -> Map.union $ (Map.fromList $ join $ map (spawnBindings conf) [ (xK_e, ["emacsclient -c"]) |
224 | , (xK_d, [fromString browser, "google-chrome", "notmuch-links"]) | 232 | , (xK_d, [fromString browser, "google-chrome", "notmuch-links"]) |
225 | , (xK_c, [ inputPrompt xPConfig "dc" ?+ dc ]) | 233 | , (xK_c, [ inputPrompt xPConfigMonospace "dc" ?+ dc ]) |
226 | , (xK_g, ["pidgin"]) | 234 | , (xK_g, ["pidgin"]) |
227 | , (xK_s, ["skype"]) | 235 | , (xK_s, ["skype"]) |
228 | -- , (xK_p, [mkPassPrompt "Type password" pwType xPConfig, mkPassPrompt "Show password" pwShow xPConfig, mkPassPrompt "Copy password" pwClip xPConfig]) | 236 | -- , (xK_p, [mkPassPrompt "Type password" pwType xPConfig, mkPassPrompt "Show password" pwShow xPConfig, mkPassPrompt "Copy password" pwClip xPConfig]) |
@@ -240,10 +248,10 @@ hostFromName h | |||
240 | , "emacsclient -c -F \"'(title . \\\"Mail\\\")\" -e \"(browse-url-mail \"$(xclip -o)\")\"" | 248 | , "emacsclient -c -F \"'(title . \\\"Mail\\\")\" -e \"(browse-url-mail \"$(xclip -o)\")\"" |
241 | ]) | 249 | ]) |
242 | , (xK_Return, ["keynav start,windowzoom", "keynav start"]) | 250 | , (xK_Return, ["keynav start,windowzoom", "keynav start"]) |
243 | , (xK_t, [inputPrompt xPConfig "fuzzytime timer" ?+ fuzzytime, fuzzytime "unset", work_fuzzytime]) | 251 | , (xK_t, [inputPrompt xPConfigMonospace "fuzzytime timer" ?+ fuzzytime, fuzzytime "unset", work_fuzzytime]) |
244 | , (xK_a, [inputPrompt xPConfig "adjmix" ?+ adjmix]) | 252 | , (xK_a, [inputPrompt xPConfigMonospace "adjmix" ?+ adjmix]) |
245 | , (xK_s, [ inputPromptWithCompl xPConfig "start synergy" synergyCompl ?+ synergyStart | 253 | , (xK_s, [ inputPromptWithCompl xPConfigMonospace "start synergy" synergyCompl ?+ synergyStart |
246 | , inputPromptWithCompl xPConfig "stop synergy" synergyCompl ?+ synergyStop | 254 | , inputPromptWithCompl xPConfigMonospace "stop synergy" synergyCompl ?+ synergyStop |
247 | ]) | 255 | ]) |
248 | , (xK_h, [ "alacritty --class htop -e htop" | 256 | , (xK_h, [ "alacritty --class htop -e htop" |
249 | , "alacritty --class log -e journalctl -xef" | 257 | , "alacritty --class log -e journalctl -xef" |
@@ -447,14 +455,14 @@ tabbedTheme = def | |||
447 | { activeColor = "black" | 455 | { activeColor = "black" |
448 | , inactiveColor = "black" | 456 | , inactiveColor = "black" |
449 | , urgentColor = "black" | 457 | , urgentColor = "black" |
450 | , activeBorderColor = "grey" | 458 | , activeBorderColor = gray |
451 | , inactiveBorderColor = "#202020" | 459 | , inactiveBorderColor = darkGray |
452 | , urgentBorderColor = "#bb0000" | 460 | , urgentBorderColor = red |
453 | , activeTextColor = "grey" | 461 | , activeTextColor = gray |
454 | , inactiveTextColor = "grey" | 462 | , inactiveTextColor = gray |
455 | , urgentTextColor = "grey" | 463 | , urgentTextColor = gray |
456 | , decoHeight = 32 | 464 | , decoHeight = 32 |
457 | , fontName = "xft:Fira Mono for Powerline:style=Medium:pixelsize=22.5" | 465 | , fontName = "xft:Fira Sans:pixelsize=21" |
458 | } | 466 | } |
459 | 467 | ||
460 | main :: IO () | 468 | main :: IO () |
@@ -477,7 +485,7 @@ main = do | |||
477 | let | 485 | let |
478 | host = hostFromName hostname | 486 | host = hostFromName hostname |
479 | setEnv "HOST" hostname | 487 | setEnv "HOST" hostname |
480 | let myConfig = withHostUrgency . ewmh $ docks def | 488 | let myConfig = withHostUrgency . ewmh . pagerHints $ docks def |
481 | { manageHook = hManageHook host | 489 | { manageHook = hManageHook host |
482 | , terminal = "alacritty" | 490 | , terminal = "alacritty" |
483 | , layoutHook = smartBorders . avoidStruts $ windowNavigation layout' | 491 | , layoutHook = smartBorders . avoidStruts $ windowNavigation layout' |
@@ -488,8 +496,8 @@ main = do | |||
488 | , keys = \conf -> hKeysMod host conf $ myKeys' conf host | 496 | , keys = \conf -> hKeysMod host conf $ myKeys' conf host |
489 | , workspaces = take (length numKeys) $ map wsp [1..] | 497 | , workspaces = take (length numKeys) $ map wsp [1..] |
490 | , startupHook = setDefaultCursor xC_left_ptr | 498 | , startupHook = setDefaultCursor xC_left_ptr |
491 | , normalBorderColor = "#202020" | 499 | , normalBorderColor = darkGray |
492 | , focusedBorderColor = "grey" | 500 | , focusedBorderColor = gray |
493 | , handleEventHook = fullscreenEventHook <+> (serverModeEventHookCmd' $ hCmds host) <+> keyUpEventHook | 501 | , handleEventHook = fullscreenEventHook <+> (serverModeEventHookCmd' $ hCmds host) <+> keyUpEventHook |
494 | } | 502 | } |
495 | writeProps str = do | 503 | writeProps str = do |
@@ -562,7 +570,7 @@ main = do | |||
562 | _ -> id | 570 | _ -> id |
563 | urgencyHook' window = do | 571 | urgencyHook' window = do |
564 | runQuery ((resource =? "comm" <||> resource =? "Pidgin" <||> className =? "Gajim" <||> className =? "Skype") --> safeSpawn "thinklight" ["Blink", "100"]) window | 572 | runQuery ((resource =? "comm" <||> resource =? "Pidgin" <||> className =? "Gajim" <||> className =? "Skype") --> safeSpawn "thinklight" ["Blink", "100"]) window |
565 | urgencyHook (BorderUrgencyHook { urgencyBorderColor = "#bb0000" }) window | 573 | urgencyHook (BorderUrgencyHook { urgencyBorderColor = red }) window |
566 | shutdown :: SomeException -> IO a | 574 | shutdown :: SomeException -> IO a |
567 | shutdown e = do | 575 | shutdown e = do |
568 | let pids = [ -- batteryMon | 576 | let pids = [ -- batteryMon |
@@ -666,18 +674,19 @@ instance Shrinker CustomShrink where | |||
666 | | length cs >= 4 = cs : shrinkIt s ((reverse . drop 4 . reverse $ cs) ++ "...") | 674 | | length cs >= 4 = cs : shrinkIt s ((reverse . drop 4 . reverse $ cs) ++ "...") |
667 | | otherwise = cs : shrinkIt s (init cs) | 675 | | otherwise = cs : shrinkIt s (init cs) |
668 | 676 | ||
669 | xPConfig :: XPConfig | 677 | xPConfig, xPConfigMonospace :: XPConfig |
670 | xPConfig = def | 678 | xPConfig = def |
671 | { font = "xft:Fira Mono for Powerline:style=Medium:pixelsize=22.5" | 679 | { font = "xft:Fira Sans:pixelsize=21" |
672 | , height = 32 | 680 | , height = 32 |
673 | , bgColor = "black" | 681 | , bgColor = "black" |
674 | , fgColor = "grey" | 682 | , fgColor = gray |
675 | , fgHLight = "green" | 683 | , fgHLight = green |
676 | , bgHLight = "black" | 684 | , bgHLight = "black" |
677 | , borderColor = "grey" | 685 | , borderColor = gray |
678 | , searchPredicate = (\needle haystack -> all (`isInfixOf` map toLower haystack) . map (map toLower) $ words needle) | 686 | , searchPredicate = (\needle haystack -> all (`isInfixOf` map toLower haystack) . map (map toLower) $ words needle) |
679 | , position = Top | 687 | , position = Top |
680 | } | 688 | } |
689 | xPConfigMonospace = xPConfig { font = "xft:Fira Code:pixelsize=21" } | ||
681 | 690 | ||
682 | sshOverrides host = map (\h -> mkOverride { oHost = h, oCommand = moshCmd . inTmux host} ) | 691 | sshOverrides host = map (\h -> mkOverride { oHost = h, oCommand = moshCmd . inTmux host} ) |
683 | [ "odin" | 692 | [ "odin" |
@@ -767,9 +776,9 @@ myKeys' conf host = Map.fromList $ | |||
767 | 776 | ||
768 | -- launch dmenu | 777 | -- launch dmenu |
769 | --, ((modm, xK_d ), spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"") | 778 | --, ((modm, xK_d ), spawn "exe=`dmenu_path | dmenu` && eval \"exec $exe\"") |
770 | , ((modm, xK_d ), shellPrompt "Run: " xPConfig) | 779 | , ((modm, xK_d ), shellPrompt "Run: " xPConfigMonospace) |
771 | , ((modm .|. shiftMask, xK_d ), prompt "Run in Terminal: " ("alacritty" ++ " -e") xPConfig) | 780 | , ((modm .|. shiftMask, xK_d ), prompt "Run in Terminal: " ("alacritty" ++ " -e") xPConfigMonospace) |
772 | , ((modm, xK_at ), sshPrompt (sshOverrides . Just $ hName host) xPConfig) | 781 | , ((modm, xK_at ), sshPrompt (sshOverrides . Just $ hName host) xPConfigMonospace) |
773 | 782 | ||
774 | -- close focused window | 783 | -- close focused window |
775 | , ((modm .|. shiftMask, xK_q ), kill) | 784 | , ((modm .|. shiftMask, xK_q ), kill) |