diff --git a/configs/xmonad/src/main-2.hs b/configs/xmonad/src/main-2.hs new file mode 100644 index 0000000..a3f4a99 --- /dev/null +++ b/configs/xmonad/src/main-2.hs @@ -0,0 +1,527 @@ +{-# LANGUAGE + MultiWayIf -- Required for `toggleFull` in `myAdditionalKeys` + , LambdaCase -- Required for `(\case)` statement in `myXmobarPP` + , FlexibleContexts + , OverloadedStrings +#-} +{-# OPTIONS_GHC -Wno-missing-signatures + -Wno-orphans #-} + +-- Data Imports + +import Data.Functor +import Data.List (isInfixOf) +import qualified Data.Map as M +import Data.Monoid +-- Used in io exitSuccess + +import System.Environment (getEnv) +import System.Exit +import System.IO.Unsafe (unsafeDupablePerformIO) +-- XMonad imports +import XMonad +import XMonad.Actions.NoBorders (toggleBorder) +import XMonad.Hooks.EwmhDesktops +import XMonad.Hooks.ManageDebug +import XMonad.Hooks.ManageDocks +import XMonad.Hooks.ManageHelpers +import XMonad.Hooks.SetWMName +import XMonad.Hooks.StatusBar +import XMonad.Hooks.StatusBar.PP +import XMonad.Hooks.WindowSwallowing +import XMonad.Layout.Fullscreen +import XMonad.Layout.NoBorders +import XMonad.Layout.SimpleFloat +import XMonad.Layout.Spacing +import qualified XMonad.StackSet as W +import XMonad.Util.ClickableWorkspaces +import XMonad.Util.Cursor +import XMonad.Util.EZConfig +import qualified XMonad.Util.Hacks as Hacks +import XMonad.Util.NamedScratchpad +import XMonad.Util.SpawnOnce +import XMonad.Util.Ungrab + +-- import qualified DBus as D +-- import qualified DBus.Client as D + +main :: IO () +main = + do + xmonad + $ debugManageHookOn "M-S-d" + . docks + . ewmhFullscreen + . fullscreenSupport + . ewmh + . Hacks.javaHack + -- . withEasySB xmobar toggleSB + -- . withSB xmobar2 + $ myConfig + -- where + -- toggleSB XConfig {modMask = modm} = (modm, xK_m) + +-- Windows key/Super key +myModMask :: KeyMask +myModMask = mod4Mask + +-- Default Terminal +myTerminal :: String +myTerminal = "kitty" + +-- Default Launcher +myLauncher :: String +myLauncher = myHomeDir ++ "/.config/rofi/launchers/type-6/launcher.sh" + +-- Default Launcher +-- myWinSwitch :: String +-- myWinSwitch = myHomeDir ++ "/.config/rofi/launchers/type-6/tab.sh" + +-- Default Launcher +myFileManager :: String +myFileManager = "kitty -e ranger" + +-- Default Browser +myBrowser :: String +myBrowser = "brave-bin" + +myPowerMenu :: String +myPowerMenu = myHomeDir ++ "/.config/rofi/powermenu/type-6/powermenu.sh" + +-- Workspaces +myWorkspaces :: [String] +myWorkspaces = ["dev", "web", "irc", "gfx", "vm", "msc", "eml", "stm"] + +-- myWorkspaces = map show [1 .. 9] + +-- Border Width +myBorderWidth :: Dimension +myBorderWidth = 1 + +-- Formal Unfocused Color +myNormColor :: String +myNormColor = "#383830" + +-- Focused Color +myFocusColor :: String +myFocusColor = "#a2a2a2" + +-- Home Directory +myHomeDir :: String +myHomeDir = unsafeDupablePerformIO (getEnv "HOME") + +-- focus follows the mouse pointer +myFocusFollowsMouse :: Bool +myFocusFollowsMouse = True + +myKeys conf@(XConfig {XMonad.modMask = modm}) = + M.fromList $ + [ ((m .|. modm, k), windows $ f i) + | (i, k) <- zip (XMonad.workspaces conf) [xK_1, xK_2, xK_3, xK_4, xK_5, xK_6, xK_7, xK_8, xK_9, xK_0], + (f, m) <- [(W.greedyView, 0), (W.shift, shiftMask)] + ] + ++ [ ((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f)) + | (key, sc) <- zip [xK_comma, xK_period, xK_z] [0 ..], + (f, m) <- [(W.view, 0), (W.shift, shiftMask)] + ] + +myAdditionalKeys :: [(String, X ())] +myAdditionalKeys = + base + ++ window + ++ applications + ++ multimedia + where + -- Force killing a frozen window. + forceKillWindow :: Window -> X () + forceKillWindow w = withDisplay $ \d -> + io $ void $ killClient d w + -- Making a window have a full float over a workspace. + toggleFull :: Window -> X () + toggleFull w = windows $ \s -> + if + | M.lookup w (W.floating s) == Just fullscreen -> W.sink w s + | otherwise -> W.float w fullscreen s + where + fullscreen = W.RationalRect 0 0 1 1 + -- Screenshots + screenShotSelection = myHomeDir ++ "/.local/bin/print-select" :: String + screenShotFullscreen = myHomeDir ++ "/.local/bin/print-fullscreen" :: String + screenShotTmp = myHomeDir ++ "/.local/bin/print-tmp" :: String + screenShotApp = myHomeDir ++ "/.local/bin/print-window.sh" :: String + -- XMonad base keybinds. + base = + [ ("M-g", withFocused toggleBorder), + ("M-S-c", kill), + ("M-S-x", withFocused forceKillWindow), + ("M-", sendMessage NextLayout), + ("M-n", refresh), + ("M-S-q", io exitSuccess), + ("C-S-r", spawn "xmonad --recompile && killall xmobar2 ; killall xmobar ; xmonad --restart"), + ("C-S-q", spawn "pkill -KILL -u $USER") + ] + -- Window management keybinds. + window = + [ ("M-", windows W.focusDown), + ("M-j", windows W.focusDown), + ("M-k", windows W.focusUp), + ("M-S-m", windows W.focusMaster), + ("M-m", sendMessage ToggleStruts), + ("M-p", windows W.swapMaster), + ("M-S-j", windows W.swapDown), + ("M-S-h", windows W.swapDown), + ("M-S-k", windows W.swapUp), + ("M-S-l", windows W.swapUp), + ("M-h", sendMessage Shrink), + ("M-l", sendMessage Expand), + ("M-t", withFocused $ windows . W.sink), + ("M-f", withFocused toggleFull) + ] + -- Spawning applications. + applications = + [ ("M-", spawn myTerminal), + ("M-S-m", namedScratchpadAction myScratchpads "ncmpcpp"), + ("M-C-", namedScratchpadAction myScratchpads "terminal"), + ("M-S-", spawn myPowerMenu), + ("M-b", spawn myBrowser), + ("M-v", spawn "code"), + ("M-S-s", spawn "~/steam/steam.sh"), + ("S-", unGrab *> spawn screenShotSelection), + ("C-S-", unGrab *> spawn screenShotTmp), + ("C-", unGrab *> spawn screenShotApp), + ("", spawn screenShotFullscreen), + ("M-S-", spawn myLauncher), + -- ("M1-", spawn myWinSwitch), + ("M-e", spawn myFileManager) + ] + -- Multimedia keybinds. + multimedia = + [ ("", spawn "playerctl play-pause"), + ("", spawn "playerctl previous"), + ("", spawn "playerctl next"), + ("", spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle"), + ("", spawn "pactl set-sink-volume @DEFAULT_SINK@ -1.5%"), + ("", spawn "pactl set-sink-volume @DEFAULT_SINK@ +1.5%"), + ("", spawn "amixer sset Capture toggle"), + ("M-", spawn "mpc toggle"), + ("M-", spawn "mpc prev"), + ("M-", spawn "mpc next") + ] + +myMouseBindings :: XConfig l -> M.Map (KeyMask, Button) (Window -> X ()) +myMouseBindings XConfig {XMonad.modMask = modm} = + M.fromList + -- Set the window to floating mode and move by dragging. + [ ((modm, button1), \w -> focus w >> mouseMoveWindow w >> windows W.shiftMaster), + -- Raise the window to the top of the stack. + ((modm, button2), \w -> focus w >> windows W.shiftMaster), + -- Set the window to floating mode and resize by dragging. + ((modm, button3), \w -> focus w >> mouseResizeWindow w >> windows W.shiftMaster) + ] + +myStartupHook :: X () +myStartupHook = do + _ <- + traverse + spawnOnce + [ "sh ~/scripts/screenlayout.sh", + "nitrogen --restore &", + -- "sh ~/scripts/wallpaper.sh", + "touch ~/tmp/touchy && rm -rf ~/tmp/*", + myHomeDir ++ "/.local/bin/picom-ibhagwan -b --experimental-backends &", + "nm-applet &", + -- "picom", + "xinput --set-prop 'pointer:''Gaming Mouse' 'libinput Accel Profile Enabled' 0, 1 && xinput --set-prop 'pointer:''Gaming Mouse' 'libinput Accel Speed' 0.5", + "setxkbmap -option ctrl:nocaps br abnt2", + "nm-applet", + -- "trayer-srg --edge top --align right --SetDockType true --SetPartialStrut true --expand true --widthtype request --tint 0x2F2F2F --height 25 --distance 0 --margin 0 --alpha 0 --monitor 0 --transparent true", -- normal bar + -- "trayer-srg --edge top --align right --SetDockType true --SetPartialStrut true --expand true --widthtype request --tint 0x002b36 --height 30 --transparent false --distance 15 --margin 10 --alpha 0 --monitor 0 --transparent true", -- spaced bar + "dunst &", + "lxqt-policykit-agent &", + "xrdb -load ~/.Xresources", + "redshift -t 4500:2500 -l -23.5475:-46.63611 -b 0.9:0.6" + ] + setDefaultCursor xC_left_ptr + setWMName "zmonad" + +isInstance (ClassApp c _) = className =? c +isInstance (TitleApp t _) = title =? t +isInstance (NameApp n _) = appName =? n + +type AppName = String + +type AppTitle = String + +type AppClassName = String + +type AppCommand = String + +data App + = ClassApp AppClassName AppCommand + | TitleApp AppTitle AppCommand + | NameApp AppName AppCommand + deriving (Show) + +gimp = ClassApp "Gimp" "gimp" + +gimp2 = ClassApp "Gimp-2.99" "gimp-2.99" + +multimc = ClassApp "MultiMC" "MultiMC" + +about = TitleApp "About Mozilla Firefox" "About Mozilla Firefox" + +message = ClassApp "Xmessage" "Xmessage" + +myManageHook :: XMonad.Query (Data.Monoid.Endo WindowSet) + +-- Like '=?' but matches substrings. +q =?? x = fmap (isInfixOf x) q + +myManageHook = manageRules + where + -- Hides windows without ignoring it, see doHideIgnore in XMonad contrib. + doHide = ask >>= doF . W.delete :: ManageHook + -- WM_WINDOW_ROLE will be parsed with the role variable. + isRole = stringProperty "WM_WINDOW_ROLE" + -- To match multiple properties with one operator. + anyOf = foldl (<||>) (pure False) :: [Query Bool] -> Query Bool + -- To match multiple classNames with one operator. + match = anyOf . fmap isInstance :: [App] -> Query Bool + -- Checking for splash dialogs. + isSplash = isInProperty "_NET_WM_WINDOW_TYPE" "_NET_WM_WINDOW_TYPE_SPLASH" + -- Checking for pop-ups. + isPopup = isRole =? "pop-up" + -- Checking for file chooser dialog. + isFileChooserDialog = isRole =? "GtkFileChooserDialog" + -- Managing rules for applications. + manageRules = + composeOne + [ transience, + isDialog -?> doCenterFloat, + isFullscreen -?> (doF W.focusDown <> doFullFloat), + match + [ gimp, + gimp2, + about, + message + ] + -?> doFloat, + match + [ multimc + ] + -?> doCenterFloat, + anyOf + [ isFileChooserDialog, + isDialog, + isPopup, + isSplash + ] + -?> doCenterFloat + ] + <> composeAll + [ manageDocks <> namedScratchpadManageHook myScratchpads, + className =? "firefox" <&&> title =? "File Upload" --> doFloat, + className =? "firefox" <&&> title =? "Library" --> doCenterFloat, + className =? "firefox" <&&> title ^? "Save" --> doFloat, + className =? "firefox" <&&> resource =? "Toolkit" --> doFloat, + className =? "firefox" <&&> title ^? "Sign in" --> doFloat, + className ^? "jetbrains-" <&&> title ^? "Welcome to " --> doCenterFloat, + className ^? "jetbrains-" <&&> title =? "splash" --> doFloat, + className ^? "Visual " <&&> isDialog --> doCenterFloat, + className =? "firefox-esr" --> doShift "web", + className =? "Chromium-browser-chromium" --> doShift "web", + className =? "Brave-browser" --> doShift "web", + className =? "Virt-manager" --> doShift "vm", + className =? "discord" --> doShift "irc", + className =? "discord-screenaudio" --> doShift "irc", + className =? "Spotify" --> doShift "msc", + className =? "thunderbird" --> doShift "eml", + className =? "Steam" --> doShift "stm", + className =? "steam" --> doShift "stm", + className =? "obs" --> doShift "vm", + className =? "Lutris" --> doShift "vm" <> doFloat, + className =? "explorer.exe" --> doShift "gfx", + className =? "riotclientux.exe" --> doShift "gfx", + className =? "dauntless-win64-shipping.exe" --> doShift "gfx", + className =? "battle.net.exe" --> doShift "gfx" <> doFloat, + className =? "Pcmanfm" --> doFloat, + className =? "Thunar" --> doFloat, + className =? "Pavucontrol" --> doFloat, + className =? "Nitrogen" --> doFloat, + className =? "Wrapper-2.0" --> doFloat, + className =? "TeamSpeak 3" --> doShift "irc", + className =? "easyeffects" --> doFloat <> doShift "vm", + className =? "Arandr" --> doFloat, + resource =? "desktop_window" --> doIgnore, + resource =? "kdesktop" --> doIgnore, + className =? "Conky" --> doIgnore, + isRole ^? "About" <||> isRole ^? "about" --> doFloat, + "_NET_WM_WINDOW_TYPE" `isInProperty` "_KDE_NET_WM_WINDOW_TYPE_OVERRIDE" --> doIgnore <> doRaise, + -- Steam Game Fixes + className =? "steam_app_1551360" <&&> title /=? "Forza Horizon 5" --> doHide, -- Prevents black screen when fullscreening. + className =?? "league" --> doShift "gfx" <> doCenterFloat <> hasBorder False, + className =?? "riot" --> doShift "gfx" <> doCenterFloat <> hasBorder False, + className =?? "csgo" --> doShift "gfx" <> doCenterFloat <> hasBorder False, + className =? "gamescope" --> doShift "gfx" <> doCenterFloat <> hasBorder False, + title =? "Wine System Tray" --> doHide, -- Prevents Wine System Trays from taking input focus. + className =?? "steam_" --> doShift "gfx" <> hasBorder False + ] + +{- May be useful one day +doClose = ask >>= liftX . killWindow >> mempty :: ManageHook +doForceKill = ask >>= liftX . forceKillWindow >> mempty :: ManageHook +-} + +myEventHook :: Event -> X All +myEventHook _ = return (All True) + +myLayoutHook = + avoidStruts $ + lessBorders OnlyScreenFloat $ + spacingRaw False (Border w w w w) True (Border w w w w) True $ + tiled ||| simpleFloat ||| Mirror tiled ||| Full + where + tiled = Tall nmaster delta ratio + nmaster = 1 -- Default number of windows in the master pane. + ratio = 1 / 2 -- Default proportion of screen occupied by master panes. + delta = 3 / 100 -- Percent of screen increment by when resizing panes. + w = 2 -- Width of pixel size between windows while tiled. + +myXmobarPP :: X PP +myXmobarPP = + clickablePP $ + filterOutWsPP ["NSP"] $ + def + { ppCurrent = xmobarColor "#ece1d7" "" . xmobarBorder "Bottom" "#89b3b6" 2, + ppVisible = xmobarColor "#A0A0A0" "" . xmobarBorder "Bottom" "#78997a" 2, + ppVisibleNoWindows = Just (xmobarBorder "Bottom" "#78997a" 2 . xmobarColor "#A0A0A0" ""), + ppHidden = xmobarColor "#c1a78e" "" . xmobarBorder "Top" "#f0c674" 2, + ppHiddenNoWindows = xmobarColor "#c1a78e" "", + ppUrgent = xmobarColor "#D47786" "" . wrap "!" "!", + ppTitle = xmobarColor "#ece1d7" "" . shorten 40, + ppSep = wrapSep " ", + ppTitleSanitize = xmobarStrip, + ppWsSep = " ", + ppLayout = + xmobarColor "#002B36" "" + . ( \case + "Spacing Tall" -> "" + "Spacing Mirror Tall" -> "" + "Spacing Full" -> "" + "Spacing Simple Float" -> "" + "Simple Float" -> "" + ) + } + where + wrapSep :: String -> String + wrapSep = + wrap + (xmobarColor "#002B36" "#002B36" (xmobarFont 2 "\xe0b4")) + (xmobarColor "#002B36" "#002B36" (xmobarFont 2 "\xe0b6")) + +myXmobar :: String +myXmobar = (myHomeDir ++ "/.local/bin/xmobar " ++ myHomeDir ++ "/.config/xmonad/src/xmobar.hs") + +xmobar :: StatusBarConfig +xmobar = statusBarProp myXmobar myXmobarPP + +myXmobar2 :: String +myXmobar2 = (myHomeDir ++ "/.local/bin/xmobar2 " ++ myHomeDir ++ "/.config/xmonad/src/xmobar.hs") + +xmobar2 :: StatusBarConfig +xmobar2 = statusBarProp myXmobar2 myXmobarPP + +myConfig = + def + { modMask = myModMask, + focusFollowsMouse = myFocusFollowsMouse, + terminal = myTerminal, + mouseBindings = myMouseBindings, + borderWidth = myBorderWidth, + normalBorderColor = myNormColor, + focusedBorderColor = myFocusColor, + layoutHook = myLayoutHook, + startupHook = myStartupHook, + manageHook = myManageHook, + handleEventHook = + Hacks.windowedFullscreenFixEventHook + <> swallowEventHook (className =? "Alacritty" <||> className =? "kitty" <||> className =? "XTerm") (return True) + <> Hacks.trayerPaddingXmobarEventHook + <> myEventHook, + workspaces = myWorkspaces, + keys = myKeys + } + `additionalKeysP` myAdditionalKeys + +myScratchpads = + [ NS "terminal" spawnTerm findTerm manageTerm, + NS "ncmpcpp" spawnncmpcpp findncmpcpp managencmpcpp + ] + where + spawnTerm = myTerminal ++ " --name scratchpad" + findTerm = resource =? "scratchpad" + manageTerm = customFloating $ W.RationalRect l t w h + where + h = 0.9 + w = 0.9 + t = 0.95 - h + l = 0.95 - w + spawnncmpcpp = myTerminal ++ " --name ncmpcpp -e ncmpcpp" + findncmpcpp = resource =? "ncmpcpp" + managencmpcpp = customFloating $ W.RationalRect l t w h + where + h = 0.9 + w = 0.9 + t = 0.95 - h + l = 0.95 - w + +-- I GIVE UP ON DBUS. + +-- logTitle :: D.Client -> X () +-- logTitle ch = dynamicLogWithPP def +-- {ppCurrent = unPango +-- ,ppVisible = pangoInactive +-- ,ppHidden = const "" +-- ,ppHiddenNoWindows = const "" +-- ,ppUrgent = pangoBold +-- ,ppTitle = unPango +-- ,ppLayout = unPango +-- ,ppWsSep = " " +-- ,ppSep = "⋮" +-- ,ppOrder = swapIcons +-- ,ppSort = getSortByXineramaPhysicalRule horizontalScreenOrderer +-- ,ppOutput = dbusOutput ch +-- } +-- where swapIcons (ws:l:t:nsp:xs) = ws:l:nsp:t:xs +-- -- @@@ so why do the first 4 invocations *only* not match?! +-- swapIcons xs = xs + +-- getWellKnownName :: D.Client -> IO () +-- getWellKnownName ch = do +-- _ <- D.requestName ch +-- (D.busName_ "org.xmonad.Log") +-- [D.nameAllowReplacement, D.nameReplaceExisting, D.nameDoNotQueue] +-- return () + +-- dbusOutput :: D.Client -> String -> IO () +-- dbusOutput ch s = do +-- let sig = (D.signal "/org/xmonad/Log" "org.xmonad.Log" "Update") +-- {D.signalBody = [D.toVariant s]} +-- D.emit ch sig + +-- -- quick and dirty escaping of HTMLish Pango markup +-- unPango :: String -> String +-- unPango [] = [] +-- unPango ('<':xs) = "<" ++ unPango xs +-- unPango ('&':xs) = "&" ++ unPango xs +-- unPango ('>':xs) = ">" ++ unPango xs +-- unPango (x :xs) = x:unPango xs + +-- -- show a string as inactive +-- -- @@@ should use gtk theme somehow... +-- pangoInactive :: String -> String +-- pangoInactive s = "" ++ unPango s ++ "" + +-- -- show a string with highlight +-- pangoBold :: String -> String +-- pangoBold s = "" ++ unPango s ++ "" diff --git a/configs/xmonad/src/main.hs b/configs/xmonad/src/main.hs index 92f6658..fb67de2 100644 --- a/configs/xmonad/src/main.hs +++ b/configs/xmonad/src/main.hs @@ -26,15 +26,12 @@ import XMonad.Hooks.ManageDebug import XMonad.Hooks.ManageDocks import XMonad.Hooks.ManageHelpers import XMonad.Hooks.SetWMName -import XMonad.Hooks.StatusBar -import XMonad.Hooks.StatusBar.PP import XMonad.Hooks.WindowSwallowing import XMonad.Layout.Fullscreen import XMonad.Layout.NoBorders import XMonad.Layout.SimpleFloat import XMonad.Layout.Spacing import qualified XMonad.StackSet as W -import XMonad.Util.ClickableWorkspaces import XMonad.Util.Cursor import XMonad.Util.EZConfig import qualified XMonad.Util.Hacks as Hacks @@ -42,9 +39,6 @@ import XMonad.Util.NamedScratchpad import XMonad.Util.SpawnOnce import XMonad.Util.Ungrab --- import qualified DBus as D --- import qualified DBus.Client as D - main :: IO () main = do @@ -55,11 +49,7 @@ main = . fullscreenSupport . ewmh . Hacks.javaHack - . withEasySB xmobar toggleSB - . withSB xmobar2 $ myConfig - where - toggleSB XConfig {modMask = modm} = (modm, xK_m) -- Windows key/Super key myModMask :: KeyMask @@ -73,10 +63,6 @@ myTerminal = "kitty" myLauncher :: String myLauncher = myHomeDir ++ "/.config/rofi/launchers/type-6/launcher.sh" --- Default Launcher --- myWinSwitch :: String --- myWinSwitch = myHomeDir ++ "/.config/rofi/launchers/type-6/tab.sh" - -- Default Launcher myFileManager :: String myFileManager = "kitty -e ranger" @@ -85,15 +71,10 @@ myFileManager = "kitty -e ranger" myBrowser :: String myBrowser = "brave-bin" -myPowerMenu :: String -myPowerMenu = myHomeDir ++ "/.config/rofi/powermenu/type-6/powermenu.sh" - -- Workspaces myWorkspaces :: [String] myWorkspaces = ["dev", "web", "irc", "gfx", "vm", "msc", "eml", "stm"] --- myWorkspaces = map show [1 .. 9] - -- Border Width myBorderWidth :: Dimension myBorderWidth = 1 @@ -182,7 +163,6 @@ myAdditionalKeys = [ ("M-", spawn myTerminal), ("M-S-m", namedScratchpadAction myScratchpads "ncmpcpp"), ("M-C-", namedScratchpadAction myScratchpads "terminal"), - ("M-S-", spawn myPowerMenu), ("M-b", spawn myBrowser), ("M-v", spawn "code"), ("M-S-s", spawn "~/steam/steam.sh"), @@ -191,7 +171,6 @@ myAdditionalKeys = ("C-", unGrab *> spawn screenShotApp), ("", spawn screenShotFullscreen), ("M-S-", spawn myLauncher), - -- ("M1-", spawn myWinSwitch), ("M-e", spawn myFileManager) ] -- Multimedia keybinds. @@ -226,18 +205,12 @@ myStartupHook = do spawnOnce [ "sh ~/scripts/screenlayout.sh", "nitrogen --restore &", - -- "sh ~/scripts/wallpaper.sh", "touch ~/tmp/touchy && rm -rf ~/tmp/*", - myHomeDir ++ "/.local/bin/picom-pijulius -b --experimental-backends &", - "nm-applet &", - -- "picom", + myHomeDir ++ "/.local/bin/picom-ibhagwan -b --experimental-backends &", "xinput --set-prop 'pointer:''Gaming Mouse' 'libinput Accel Profile Enabled' 0, 1 && xinput --set-prop 'pointer:''Gaming Mouse' 'libinput Accel Speed' 0.5", "setxkbmap -option ctrl:nocaps br abnt2", - "nm-applet", - "trayer-srg --edge top --align right --SetDockType true --SetPartialStrut true --expand true --widthtype request --tint 0x2F2F2F --height 25 --distance 0 --margin 0 --alpha 0 --monitor 0 --transparent true", "dunst &", "lxqt-policykit-agent &", - "xrdb -load ~/.Xresources", "redshift -t 4500:2500 -l -23.5475:-46.63611 -b 0.9:0.6" ] setDefaultCursor xC_left_ptr @@ -384,51 +357,7 @@ myLayoutHook = nmaster = 1 -- Default number of windows in the master pane. ratio = 1 / 2 -- Default proportion of screen occupied by master panes. delta = 3 / 100 -- Percent of screen increment by when resizing panes. - w = 5 -- Width of pixel size between windows while tiled. - -myXmobarPP :: X PP -myXmobarPP = - clickablePP $ - filterOutWsPP ["NSP"] $ - def - { ppCurrent = xmobarColor "#ece1d7" "" . xmobarBorder "Bottom" "#89b3b6" 2, - ppVisible = xmobarColor "#A0A0A0" "" . xmobarBorder "Bottom" "#78997a" 2, - ppVisibleNoWindows = Just (xmobarBorder "Bottom" "#78997a" 2 . xmobarColor "#A0A0A0" ""), - ppHidden = xmobarColor "#c1a78e" "" . xmobarBorder "Top" "#f0c674" 2, - ppHiddenNoWindows = xmobarColor "#c1a78e" "", - ppUrgent = xmobarColor "#D47786" "" . wrap "!" "!", - ppTitle = xmobarColor "#ece1d7" "" . shorten 40, - ppSep = wrapSep " ", - ppTitleSanitize = xmobarStrip, - ppWsSep = " ", - ppLayout = - xmobarColor "#292522" "" - . ( \case - "Spacing Tall" -> "" - "Spacing Mirror Tall" -> "" - "Spacing Full" -> "" - "Spacing Simple Float" -> "" - "Simple Float" -> "" - ) - } - where - wrapSep :: String -> String - wrapSep = - wrap - (xmobarColor "#292522" "#292522" (xmobarFont 2 "\xe0b4")) - (xmobarColor "#292522" "#292522" (xmobarFont 2 "\xe0b6")) - -myXmobar :: String -myXmobar = (myHomeDir ++ "/.local/bin/xmobar " ++ myHomeDir ++ "/.config/xmonad/src/xmobar.hs") - -xmobar :: StatusBarConfig -xmobar = statusBarProp myXmobar myXmobarPP - -myXmobar2 :: String -myXmobar2 = (myHomeDir ++ "/.local/bin/xmobar2 " ++ myHomeDir ++ "/.config/xmonad/src/xmobar.hs") - -xmobar2 :: StatusBarConfig -xmobar2 = statusBarProp myXmobar2 myXmobarPP + w = 2 -- Width of pixel size between windows while tiled. myConfig = def @@ -453,8 +382,7 @@ myConfig = `additionalKeysP` myAdditionalKeys myScratchpads = - [ NS "terminal" spawnTerm findTerm manageTerm, - NS "ncmpcpp" spawnncmpcpp findncmpcpp managencmpcpp + [ NS "terminal" spawnTerm findTerm manageTerm ] where spawnTerm = myTerminal ++ " --name scratchpad" @@ -465,62 +393,3 @@ myScratchpads = w = 0.9 t = 0.95 - h l = 0.95 - w - spawnncmpcpp = myTerminal ++ " --name ncmpcpp -e ncmpcpp" - findncmpcpp = resource =? "ncmpcpp" - managencmpcpp = customFloating $ W.RationalRect l t w h - where - h = 0.9 - w = 0.9 - t = 0.95 - h - l = 0.95 - w - --- I GIVE UP ON DBUS. - --- logTitle :: D.Client -> X () --- logTitle ch = dynamicLogWithPP def --- {ppCurrent = unPango --- ,ppVisible = pangoInactive --- ,ppHidden = const "" --- ,ppHiddenNoWindows = const "" --- ,ppUrgent = pangoBold --- ,ppTitle = unPango --- ,ppLayout = unPango --- ,ppWsSep = " " --- ,ppSep = "⋮" --- ,ppOrder = swapIcons --- ,ppSort = getSortByXineramaPhysicalRule horizontalScreenOrderer --- ,ppOutput = dbusOutput ch --- } --- where swapIcons (ws:l:t:nsp:xs) = ws:l:nsp:t:xs --- -- @@@ so why do the first 4 invocations *only* not match?! --- swapIcons xs = xs - --- getWellKnownName :: D.Client -> IO () --- getWellKnownName ch = do --- _ <- D.requestName ch --- (D.busName_ "org.xmonad.Log") --- [D.nameAllowReplacement, D.nameReplaceExisting, D.nameDoNotQueue] --- return () - --- dbusOutput :: D.Client -> String -> IO () --- dbusOutput ch s = do --- let sig = (D.signal "/org/xmonad/Log" "org.xmonad.Log" "Update") --- {D.signalBody = [D.toVariant s]} --- D.emit ch sig - --- -- quick and dirty escaping of HTMLish Pango markup --- unPango :: String -> String --- unPango [] = [] --- unPango ('<':xs) = "<" ++ unPango xs --- unPango ('&':xs) = "&" ++ unPango xs --- unPango ('>':xs) = ">" ++ unPango xs --- unPango (x :xs) = x:unPango xs - --- -- show a string as inactive --- -- @@@ should use gtk theme somehow... --- pangoInactive :: String -> String --- pangoInactive s = "" ++ unPango s ++ "" - --- -- show a string with highlight --- pangoBold :: String -> String --- pangoBold s = "" ++ unPango s ++ "" diff --git a/configs/xmonad/src/melange1.hs b/configs/xmonad/src/melange1.hs new file mode 100644 index 0000000..eb76d1a --- /dev/null +++ b/configs/xmonad/src/melange1.hs @@ -0,0 +1,99 @@ +import System.Environment +import System.IO.Unsafe (unsafeDupablePerformIO) +import Xmobar + +main :: IO () +main = xmobar =<< configFromArgs =<< myConfig + +-- main = xmobar =<< myConfig + +myHomeDir :: String +myHomeDir = unsafeDupablePerformIO (getEnv "HOME") + +myConfig :: IO Config +myConfig = + do + pure + baseConfig + { template = + concat $ + [ "\xe0b6\ + \\xf30d \ + \\xe0b4" + ] + <> ["@UnsafeXMonadLog@}"] + <> [ "\xe0b6\ + \\xf017 \ + \@date@{" + ] + <> [ "\xe0b6\ + \\xf2db \ + \CPU: @cpu@% |" + ] + <> [ "\xe0b6\ + \\xf538 \ + \Mem: @memory@% |" + ] + <> [ "\xe0b6\ + \@volicon@\ + \@vol@% |" + ] + <> [ "\xe0b6\ + \\xf001 \ + \@music@\ + \\xe0b4" + ] + <> ["| @_XMONAD_TRAYPAD@"], + commands = myCommands + } + +myCommands :: [Runnable] +myCommands = + [ Run UnsafeXMonadLog, + Run $ Com (myHomeDir <> "/.config/xmonad/scripts/volume.sh") ["vol"] "vol" 100, + Run $ Com (myHomeDir <> "/.config/xmonad/scripts/volumeicon.sh") ["volicon"] "volicon" 100, + Run $ Date "%A, %d/%m/%Y. %H:%M" "date" 600, + Run $ Cpu ["-t", "", "-f", ":", "-H", "75", "-L", "25", "-h", "#89b3b6", "-n", "#4797a1", "-l", "#3a7b83"] 100, + Run $ Memory ["-t", "", "-f", ":", "-H", "75", "-L", "25", "-h", "#b380b0", "-n", "#9f60b1", "-l", "#855094"] 100, + -- , Run $ Com (myHomeDir <> "/.config/xmonad/scripts/gputemp.sh") ["gpu"] "gpu" 5 + Run $ XPropertyLog "_XMONAD_TRAYPAD", + Run $ Com (myHomeDir <> "/.config/xmonad/scripts/mpd.sh") ["music"] "music" 100 + -- , Run $ Com (myHomeDir <> "/.config/xmonad/src/trayer-padding.sh") ["trayer"] "trayer" 50 + -- , Run $ MPD ["-h", "127.0.0.1", "-p", "6600", "-t", " <track>/<plength> <statei>", "--", "-P", ">>", "-Z", "|", "-S", "><"] 10 + ] + +baseConfig :: Config +baseConfig = + defaultConfig + { font = "Cartograph CF Italic 11", + additionalFonts = + [ "Cartograph CF Italic 10", + "Cartograph CF Italic 11", + "Cartograph CF Italic 11", + "JetBrainsMono Nerd Font 10", + "Cartograph CF Italic 11", + "JetBrainsMono Nerd Font 13" + ], + -- textOffsets = [20, 22, 21, 21, 20], + bgColor = "#292522", + fgColor = "#ECE1d7", + borderColor = "#272727", + border = FullB, + borderWidth = 1, + {- + , position = Static { xpos = 13, ypos = 1034, width = 1893, height = 32 } Bottom Padded + , position = Static { xpos = 0, ypos = 1048, width = 1920, height = 32 } Bottom Flat + , position = Static { xpos = 0, ypos = 0, width = 1920, height = 32 } Top Flat + -} + position = Static {xpos = 0, ypos = 0, width = 1920, height = 25}, + alpha = 255, + overrideRedirect = True, + lowerOnStart = True, + hideOnStart = False, + allDesktops = True, + persistent = True, + iconRoot = myHomeDir ++ "/.config/xmonad/icons", + iconOffset = -1, + sepChar = "@", + alignSep = "}{" + } diff --git a/configs/xmonad/src/melange2.hs b/configs/xmonad/src/melange2.hs new file mode 100644 index 0000000..c74049f --- /dev/null +++ b/configs/xmonad/src/melange2.hs @@ -0,0 +1,98 @@ +import System.Environment +import System.IO.Unsafe (unsafeDupablePerformIO) +import Xmobar + +main :: IO () +main = xmobar =<< configFromArgs =<< myConfig + +-- main = xmobar =<< myConfig + +myHomeDir :: String +myHomeDir = unsafeDupablePerformIO (getEnv "HOME") + +myConfig :: IO Config +myConfig = + do + pure + baseConfig + { template = + concat $ + [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ + \<fn=6><fc=#E49B5D,#292522:5>\xf30d </fc></fn>\ + \<fn=2><fc=#292522,#292522:7>\xe0b4</fc></fn>" + ] + <> ["<fn=2>@UnsafeXMonadLog@</fn>}"] + <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#ebc06d,#292522:5>\xf017 </fc></fn>\ + \<fn=5>@date@</fn>{" + ] + <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#89b3b6,#292522:5>\xf2db </fc></fn>\ + \<fn=5>CPU: @cpu@% |</fn>" + ] + <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#b380b0,#292522:5>\xf538 </fc></fn>\ + \<fn=5>Mem: @memory@% |</fn>" + ] + <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#78997a,#292522:5>@volicon@</fc></fn>\ + \<fn=5>@vol@<fc=#78997a,#292522:5>%</fc> |</fn>" + ] + <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#d47766,#292522:5>\xf001 </fc></fn>\ + \<fn=5><fc=#d47766,#292522:5>@music@</fc></fn>\ + \<fn=2><fc=#292522,#292522:7>\xe0b4</fc></fn>" + ], + commands = myCommands + } + +myCommands :: [Runnable] +myCommands = + [ Run UnsafeXMonadLog, + Run $ Com (myHomeDir <> "/.config/xmonad/scripts/volume.sh") ["vol"] "vol" 100, + Run $ Com (myHomeDir <> "/.config/xmonad/scripts/volumeicon.sh") ["volicon"] "volicon" 100, + Run $ Date "%A, %d/%m/%Y. <fc=#ebc06d,#292522:5>%H:%M</fc>" "date" 600, + Run $ Cpu ["-t", "<fc=#8c7f80><total></fc>", "-f", ":", "-H", "75", "-L", "25", "-h", "#89b3b6", "-n", "#4797a1", "-l", "#3a7b83"] 100, + Run $ Memory ["-t", "<fc=#8c7f80><usedratio></fc>", "-f", ":", "-H", "75", "-L", "25", "-h", "#b380b0", "-n", "#9f60b1", "-l", "#855094"] 100, + -- , Run $ Com (myHomeDir <> "/.config/xmonad/scripts/gputemp.sh") ["gpu"] "gpu" 5 + Run $ XPropertyLog "_XMONAD_TRAYPAD", + Run $ Com (myHomeDir <> "/.config/xmonad/scripts/mpd.sh") ["music"] "music" 100 + -- , Run $ Com (myHomeDir <> "/.config/xmonad/src/trayer-padding.sh") ["trayer"] "trayer" 50 + -- , Run $ MPD ["-h", "127.0.0.1", "-p", "6600", "-t", "<composer> <title> <track>/<plength> <statei>", "--", "-P", ">>", "-Z", "|", "-S", "><"] 10 + ] + +baseConfig :: Config +baseConfig = + defaultConfig + { font = "Cartograph CF Italic 11", + additionalFonts = + [ "Cartograph CF Italic 10", + "Cartograph CF Italic 11", + "Cartograph CF Italic 11", + "JetBrainsMono Nerd Font 10", + "Cartograph CF Italic 11", + "JetBrainsMono Nerd Font 13" + ], + -- textOffsets = [20, 22, 21, 21, 20], + bgColor = "#292522", + fgColor = "#ECE1d7", + borderColor = "#272727", + border = FullB, + borderWidth = 1, + {- + , position = Static { xpos = 13, ypos = 1034, width = 1893, height = 32 } Bottom Padded + , position = Static { xpos = 0, ypos = 1048, width = 1920, height = 32 } Bottom Flat + , position = Static { xpos = 0, ypos = 0, width = 1920, height = 32 } Top Flat + -} + position = Static {xpos = 1920, ypos = 148, width = 1920, height = 25}, + alpha = 255, + overrideRedirect = True, + lowerOnStart = True, + hideOnStart = False, + allDesktops = True, + persistent = True, + iconRoot = myHomeDir ++ "/.config/xmonad/icons", + iconOffset = -1, + sepChar = "@", + alignSep = "}{" + } diff --git a/configs/xmonad/src/xmobar.hs b/configs/xmonad/src/xmobar.hs index eb76d1a..ea633fe 100644 --- a/configs/xmonad/src/xmobar.hs +++ b/configs/xmonad/src/xmobar.hs @@ -17,33 +17,37 @@ myConfig = baseConfig { template = concat $ - [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ - \<fn=6><fc=#E49B5D,#292522:5>\xf30d </fc></fn>\ - \<fn=2><fc=#292522,#292522:7>\xe0b4</fc></fn>" + [ " <fn=2><fc=#002b36,#002b36:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#558c8e,#002b36:5>\xf30d </fc></fn>\ + \<fn=2><fc=#002b36,#002b36:7>\xe0b4</fc></fn> " ] - <> ["<fn=2>@UnsafeXMonadLog@</fn>}"] - <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ - \<fn=4><fc=#ebc06d,#292522:5>\xf017 </fc></fn>\ - \<fn=5>@date@</fn>{" + <> ["<fn=5>@UnsafeXMonadLog@</fn>}"] + <> [ "<fn=2><fc=#002b36,#002b36:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#E06C75,#002b36:5>\xf001 </fc></fn>\ + \<fn=5><fc=#E06C75,#002b36:5>@music@</fc></fn>\ + \<fn=2><fc=#002b36,#002b36:7>\xe0b4</fc></fn>{" ] - <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ - \<fn=4><fc=#89b3b6,#292522:5>\xf2db </fc></fn>\ - \<fn=5>CPU: @cpu@% |</fn>" + <> [ "<fn=2><fc=#002b36,#002b36:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#56B6C2,#002b36:5>\xf2db </fc></fn>\ + \<fn=5><fc=#56B6C2,#002b36:5>CPU: @cpu@%</fc></fn>\ + \<fn=2><fc=#002b36,#002b36:7>\xe0b4</fc></fn> " ] - <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ - \<fn=4><fc=#b380b0,#292522:5>\xf538 </fc></fn>\ - \<fn=5>Mem: @memory@% |</fn>" + <> [ "<fn=2><fc=#002b36,#002b36:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#C678DD,#002b36:5>\xf538 </fc></fn>\ + \<fn=5><fc=#C678DD,#002b36:5>Mem: @memory@% </fc></fn>\ + \<fn=2><fc=#002b36,#002b36:7>\xe0b4</fc></fn> " ] - <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ - \<fn=4><fc=#78997a,#292522:5>@volicon@</fc></fn>\ - \<fn=5>@vol@<fc=#78997a,#292522:5>%</fc> |</fn>" + <> [ "<fn=2><fc=#002b36,#002b36:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#98C379,#002b36:5>@volicon@</fc></fn>\ + \<fn=5><fc=#98C379,#002b36:5>@vol@</fc></fn>\ + \<fn=2><fc=#002b36,#002b36:7>\xe0b4</fc></fn> " ] - <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ - \<fn=4><fc=#d47766,#292522:5>\xf001 </fc></fn>\ - \<fn=5><fc=#d47766,#292522:5>@music@</fc></fn>\ - \<fn=2><fc=#292522,#292522:7>\xe0b4</fc></fn>" + <> [ "<fn=2><fc=#002b36,#002b36:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#61AFEF,#002b36:5>\xf017 </fc></fn>\ + \<fn=5><fc=#61AFEF,#002b36:5>@date@</fc></fn>\ + \<fn=2><fc=#002b36,#002b36:7>\xe0b4</fc></fn> " ] - <> ["| @_XMONAD_TRAYPAD@"], + <> ["@_XMONAD_TRAYPAD@"], commands = myCommands } @@ -52,9 +56,9 @@ myCommands = [ Run UnsafeXMonadLog, Run $ Com (myHomeDir <> "/.config/xmonad/scripts/volume.sh") ["vol"] "vol" 100, Run $ Com (myHomeDir <> "/.config/xmonad/scripts/volumeicon.sh") ["volicon"] "volicon" 100, - Run $ Date "%A, %d/%m/%Y. <fc=#ebc06d,#292522:5>%H:%M</fc>" "date" 600, - Run $ Cpu ["-t", "<fc=#8c7f80><total></fc>", "-f", ":", "-H", "75", "-L", "25", "-h", "#89b3b6", "-n", "#4797a1", "-l", "#3a7b83"] 100, - Run $ Memory ["-t", "<fc=#8c7f80><usedratio></fc>", "-f", ":", "-H", "75", "-L", "25", "-h", "#b380b0", "-n", "#9f60b1", "-l", "#855094"] 100, + Run $ Date "%-l:%M %p" "date" 600, + Run $ Cpu ["-t", "<fc=#8c7f80><total></fc>", "-f", ":", "-H", "75", "-L", "25", "-h", "#56B6C2", "-n", "#4797a1", "-l", "#3a7b83"] 100, + Run $ Memory ["-t", "<fc=#8c7f80><usedratio></fc>", "-f", ":", "-H", "75", "-L", "25", "-h", "#c678dd", "-n", "#9f60b1", "-l", "#855094"] 100, -- , Run $ Com (myHomeDir <> "/.config/xmonad/scripts/gputemp.sh") ["gpu"] "gpu" 5 Run $ XPropertyLog "_XMONAD_TRAYPAD", Run $ Com (myHomeDir <> "/.config/xmonad/scripts/mpd.sh") ["music"] "music" 100 @@ -65,27 +69,26 @@ myCommands = baseConfig :: Config baseConfig = defaultConfig - { font = "Cartograph CF Italic 11", + { font = "Sugar Snow 13", additionalFonts = - [ "Cartograph CF Italic 10", - "Cartograph CF Italic 11", - "Cartograph CF Italic 11", - "JetBrainsMono Nerd Font 10", - "Cartograph CF Italic 11", - "JetBrainsMono Nerd Font 13" + [ "Sugar Snow 11", + "Sugar Snow 13", + "Sugar Snow 12", + "JetBrainsMono Nerd Font 12", + "Sugar Snow 13" ], -- textOffsets = [20, 22, 21, 21, 20], - bgColor = "#292522", - fgColor = "#ECE1d7", + bgColor = "#002b36", + fgColor = "#c8b6b8", borderColor = "#272727", border = FullB, - borderWidth = 1, + borderWidth = 0, {- , position = Static { xpos = 13, ypos = 1034, width = 1893, height = 32 } Bottom Padded , position = Static { xpos = 0, ypos = 1048, width = 1920, height = 32 } Bottom Flat , position = Static { xpos = 0, ypos = 0, width = 1920, height = 32 } Top Flat -} - position = Static {xpos = 0, ypos = 0, width = 1920, height = 25}, + position = Static {xpos = 20, ypos = 15, width = 1880, height = 34}, alpha = 255, overrideRedirect = True, lowerOnStart = True, diff --git a/configs/xmonad/src/xmobar2.hs b/configs/xmonad/src/xmobar2.hs index c74049f..449c6f8 100644 --- a/configs/xmonad/src/xmobar2.hs +++ b/configs/xmonad/src/xmobar2.hs @@ -17,31 +17,35 @@ myConfig = baseConfig { template = concat $ - [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ - \<fn=6><fc=#E49B5D,#292522:5>\xf30d </fc></fn>\ - \<fn=2><fc=#292522,#292522:7>\xe0b4</fc></fn>" + [ " <fn=2><fc=#002b36,#002b36:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#558c8e,#002b36:5>\xf30d </fc></fn>\ + \<fn=2><fc=#002b36,#002b36:7>\xe0b4</fc></fn> " ] - <> ["<fn=2>@UnsafeXMonadLog@</fn>}"] - <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ - \<fn=4><fc=#ebc06d,#292522:5>\xf017 </fc></fn>\ - \<fn=5>@date@</fn>{" + <> ["<fn=5>@UnsafeXMonadLog@</fn>}"] + <> [ "<fn=2><fc=#002b36,#002b36:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#E06C75,#002b36:5>\xf001 </fc></fn>\ + \<fn=5><fc=#E06C75,#002b36:5>@music@</fc></fn>\ + \<fn=2><fc=#002b36,#002b36:7>\xe0b4</fc></fn>{" ] - <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ - \<fn=4><fc=#89b3b6,#292522:5>\xf2db </fc></fn>\ - \<fn=5>CPU: @cpu@% |</fn>" + <> [ "<fn=2><fc=#002b36,#002b36:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#56B6C2,#002b36:5>\xf2db </fc></fn>\ + \<fn=5><fc=#56B6C2,#002b36:5>CPU: @cpu@%</fc></fn>\ + \<fn=2><fc=#002b36,#002b36:7>\xe0b4</fc></fn> " ] - <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ - \<fn=4><fc=#b380b0,#292522:5>\xf538 </fc></fn>\ - \<fn=5>Mem: @memory@% |</fn>" + <> [ "<fn=2><fc=#002b36,#002b36:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#C678DD,#002b36:5>\xf538 </fc></fn>\ + \<fn=5><fc=#C678DD,#002b36:5>Mem: @memory@% </fc></fn>\ + \<fn=2><fc=#002b36,#002b36:7>\xe0b4</fc></fn> " ] - <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ - \<fn=4><fc=#78997a,#292522:5>@volicon@</fc></fn>\ - \<fn=5>@vol@<fc=#78997a,#292522:5>%</fc> |</fn>" + <> [ "<fn=2><fc=#002b36,#002b36:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#98C379,#002b36:5>@volicon@</fc></fn>\ + \<fn=5><fc=#98C379,#002b36:5>@vol@</fc></fn>\ + \<fn=2><fc=#002b36,#002b36:7>\xe0b4</fc></fn> " ] - <> [ "<fn=2><fc=#292522,#292522:7>\xe0b6</fc></fn>\ - \<fn=4><fc=#d47766,#292522:5>\xf001 </fc></fn>\ - \<fn=5><fc=#d47766,#292522:5>@music@</fc></fn>\ - \<fn=2><fc=#292522,#292522:7>\xe0b4</fc></fn>" + <> [ "<fn=2><fc=#002b36,#002b36:7>\xe0b6</fc></fn>\ + \<fn=4><fc=#61AFEF,#002b36:5>\xf017 </fc></fn>\ + \<fn=5><fc=#61AFEF,#002b36:5>@date@</fc></fn>\ + \<fn=2><fc=#002b36,#002b36:7>\xe0b4</fc></fn> " ], commands = myCommands } @@ -51,11 +55,10 @@ myCommands = [ Run UnsafeXMonadLog, Run $ Com (myHomeDir <> "/.config/xmonad/scripts/volume.sh") ["vol"] "vol" 100, Run $ Com (myHomeDir <> "/.config/xmonad/scripts/volumeicon.sh") ["volicon"] "volicon" 100, - Run $ Date "%A, %d/%m/%Y. <fc=#ebc06d,#292522:5>%H:%M</fc>" "date" 600, - Run $ Cpu ["-t", "<fc=#8c7f80><total></fc>", "-f", ":", "-H", "75", "-L", "25", "-h", "#89b3b6", "-n", "#4797a1", "-l", "#3a7b83"] 100, - Run $ Memory ["-t", "<fc=#8c7f80><usedratio></fc>", "-f", ":", "-H", "75", "-L", "25", "-h", "#b380b0", "-n", "#9f60b1", "-l", "#855094"] 100, + Run $ Date "%-l:%M %p" "date" 600, + Run $ Cpu ["-t", "<fc=#8c7f80><total></fc>", "-f", ":", "-H", "75", "-L", "25", "-h", "#56B6C2", "-n", "#4797a1", "-l", "#3a7b83"] 100, + Run $ Memory ["-t", "<fc=#8c7f80><usedratio></fc>", "-f", ":", "-H", "75", "-L", "25", "-h", "#c678dd", "-n", "#9f60b1", "-l", "#855094"] 100, -- , Run $ Com (myHomeDir <> "/.config/xmonad/scripts/gputemp.sh") ["gpu"] "gpu" 5 - Run $ XPropertyLog "_XMONAD_TRAYPAD", Run $ Com (myHomeDir <> "/.config/xmonad/scripts/mpd.sh") ["music"] "music" 100 -- , Run $ Com (myHomeDir <> "/.config/xmonad/src/trayer-padding.sh") ["trayer"] "trayer" 50 -- , Run $ MPD ["-h", "127.0.0.1", "-p", "6600", "-t", "<composer> <title> <track>/<plength> <statei>", "--", "-P", ">>", "-Z", "|", "-S", "><"] 10 @@ -64,27 +67,26 @@ myCommands = baseConfig :: Config baseConfig = defaultConfig - { font = "Cartograph CF Italic 11", + { font = "Sugar Snow 13", additionalFonts = - [ "Cartograph CF Italic 10", - "Cartograph CF Italic 11", - "Cartograph CF Italic 11", - "JetBrainsMono Nerd Font 10", - "Cartograph CF Italic 11", - "JetBrainsMono Nerd Font 13" + [ "Sugar Snow 11", + "Sugar Snow 13", + "Sugar Snow 12", + "JetBrainsMono Nerd Font 12", + "Sugar Snow 13" ], -- textOffsets = [20, 22, 21, 21, 20], - bgColor = "#292522", - fgColor = "#ECE1d7", + bgColor = "#002b36", + fgColor = "#c8b6b8", borderColor = "#272727", border = FullB, - borderWidth = 1, + borderWidth = 0, {- , position = Static { xpos = 13, ypos = 1034, width = 1893, height = 32 } Bottom Padded , position = Static { xpos = 0, ypos = 1048, width = 1920, height = 32 } Bottom Flat , position = Static { xpos = 0, ypos = 0, width = 1920, height = 32 } Top Flat -} - position = Static {xpos = 1920, ypos = 148, width = 1920, height = 25}, + position = Static {xpos = 1940, ypos = 163, width = 1880, height = 34}, alpha = 255, overrideRedirect = True, lowerOnStart = True,