Add new symbols to xmobar
This commit is contained in:
parent
26d889cd4d
commit
e857efd65a
|
@ -1,3 +1,4 @@
|
|||
{-# LANGUAGE LambdaCase #-}
|
||||
|
||||
-- ░▀█▀░█▄█░█▀█░█▀█░█▀▄░▀█▀░█▀▀
|
||||
-- ░░█░░█░█░█▀▀░█░█░█▀▄░░█░░▀▀█
|
||||
|
@ -18,7 +19,7 @@ import qualified Data.Map as M
|
|||
|
||||
import XMonad.Util.Run (spawnPipe, hPutStrLn, runProcessWithInput)
|
||||
import XMonad.Util.NamedScratchpad
|
||||
-- import XMonad.Util.SpawnOnce
|
||||
import XMonad.Util.SpawnOnce
|
||||
|
||||
import XMonad.Layout.Spacing
|
||||
import XMonad.Layout.Fullscreen
|
||||
|
@ -37,7 +38,7 @@ import Graphics.X11.ExtraTypes.XF86
|
|||
-- colors
|
||||
|
||||
type Color = String
|
||||
|
||||
|
||||
background = "#272822"
|
||||
foreground = "#f8f8f2"
|
||||
red = "#f92672"
|
||||
|
@ -47,7 +48,7 @@ blue = "#66d9ef"
|
|||
magenta = "#ae81ff"
|
||||
cyan = "#a1efe4"
|
||||
|
||||
|
||||
|
||||
-- ░█▀▀░█▀█░█▀█░█▀▀░▀█▀░█▀▀
|
||||
-- ░█░░░█░█░█░█░█▀▀░░█░░█░█
|
||||
-- ░▀▀▀░▀▀▀░▀░▀░▀░░░▀▀▀░▀▀▀
|
||||
|
@ -72,7 +73,7 @@ myModMask :: KeyMask
|
|||
myModMask = mod4Mask
|
||||
|
||||
myWorkspaces :: [WorkspaceId]
|
||||
myWorkspaces = ["gen","www","emx","dev","slk","6","7","8","9"]
|
||||
myWorkspaces = ["gen","www","emx","dev","slk","6","7","8","com"]
|
||||
|
||||
myNormalBorderColor = "#dddddd"
|
||||
myFocusedBorderColor = "#ff0000"
|
||||
|
@ -95,13 +96,13 @@ myScratchpads = [ NS "ncmpcpp" spawnNC findNC layoutNC
|
|||
spawnTM = myTerminal ++ " --class instanceClass,floatingTerminal -e tmux new-session -A -s floating"
|
||||
findTM = className =? "floatingTerminal"
|
||||
layoutTM = customFloating $ W.RationalRect (1/6) (1/6) (2/3) (2/3)
|
||||
|
||||
|
||||
spawnSC = "sxiv ~/uni/schedule.png"
|
||||
findSC = className =? "sxiv"
|
||||
|
||||
spawnH = "echo \"" ++ help ++ "\" | xmessage -file -"
|
||||
findH = className =? "Xmessage"
|
||||
|
||||
|
||||
-- ░█░█░█▀▀░█░█░█▀▀
|
||||
-- ░█▀▄░█▀▀░░█░░▀▀█
|
||||
-- ░▀░▀░▀▀▀░░▀░░▀▀▀
|
||||
|
@ -126,7 +127,7 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
|
|||
, ((modm , xK_comma ), sendMessage (IncMasterN 1))
|
||||
, ((modm , xK_period), sendMessage (IncMasterN (-1)))
|
||||
-- , ((modm , xK_b ), sendMessage ToggleStruts)
|
||||
, ((modm .|. shiftMask, xK_q ), io (exitWith ExitSuccess))
|
||||
, ((modm .|. shiftMask, xK_q ), io exitSuccess)
|
||||
, ((modm , xK_c ), myRestartHook )
|
||||
]
|
||||
|
||||
|
@ -140,7 +141,7 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
|
|||
|
||||
-- mod-{w,e,r}, Switch to physical/Xinerama screens 1, 2, or 3
|
||||
-- mod-shift-{w,e,r}, Move client to screen 1, 2, or 3
|
||||
|
||||
|
||||
[((m .|. modm, key), screenWorkspace sc >>= flip whenJust (windows . f))
|
||||
| (key, sc) <- zip [xK_u, xK_i] [0..]
|
||||
, (f, m) <- [(W.view, 0), (W.shift, shiftMask)]]
|
||||
|
@ -162,7 +163,7 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
|
|||
, ((modm , xK_p), spawn "mpc toggle")
|
||||
, ((modm , xK_q), namedScratchpadAction myScratchpads "ncmpcpp")
|
||||
, ((modm , xK_minus), namedScratchpadAction myScratchpads "schedule")
|
||||
, ((modm , xK_F7), spawn "amixer set Master 2%-")
|
||||
, ((modm , xK_F7), spawn "amixer set Master 2%-")
|
||||
, ((modm , xK_F8), spawn "amixer set Master 2%+")
|
||||
-- , ((modm , xK_c), spawn myTerminal ++ " -e cfile")
|
||||
, ((modm , xK_n), spawn "fcitx-remote -s fcitx-keyboard-no")
|
||||
|
@ -178,13 +179,13 @@ myKeys conf@(XConfig {XMonad.modMask = modm}) = M.fromList $
|
|||
|
||||
, ((0, xF86XK_AudioRaiseVolume ), spawn "amixer set Master 2%+")
|
||||
, ((0, xF86XK_AudioLowerVolume ), spawn "amixer set Master 2%-")
|
||||
, ((0, xF86XK_AudioMute ), spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle")
|
||||
, ((0, xF86XK_AudioMute ), spawn "pactl set-sink-mute @DEFAULT_SINK@ toggle")
|
||||
|
||||
, ((0, xF86XK_AudioPlay ), spawn "mpc toggle")
|
||||
, ((0, xF86XK_AudioPrev ), spawn "mpc prev")
|
||||
, ((0, xF86XK_AudioNext ), spawn "mpc next")
|
||||
, ((0, xF86XK_AudioPlay ), spawn "mpc toggle")
|
||||
, ((0, xF86XK_AudioPrev ), spawn "mpc prev")
|
||||
, ((0, xF86XK_AudioNext ), spawn "mpc next")
|
||||
|
||||
, ((0, xF86XK_MonBrightnessUp ), spawn "light -A 5")
|
||||
, ((0, xF86XK_MonBrightnessUp ), spawn "light -A 5")
|
||||
, ((0, xF86XK_MonBrightnessDown ), spawn "light -U 5")
|
||||
|
||||
, ((modm .|. shiftMask, xK_slash ), namedScratchpadAction myScratchpads "help")
|
||||
|
@ -205,18 +206,17 @@ viewDropboxStatus = spawn =<< ((++) "notify-send -t 3000 " . unpack) <$> status
|
|||
------------------------------------------------------------------------
|
||||
-- Mouse bindings: default actions bound to mouse events
|
||||
--
|
||||
myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $
|
||||
|
||||
myMouseBindings XConfig {XMonad.modMask = modm} = M.fromList
|
||||
-- mod-button1, Set the window to floating mode and move by dragging
|
||||
[ ((modm, button1), (\w -> focus w >> mouseMoveWindow w
|
||||
>> windows W.shiftMaster))
|
||||
[ ((modm, button1), \w -> focus w >> mouseMoveWindow w
|
||||
>> windows W.shiftMaster)
|
||||
|
||||
-- mod-button2, Raise the window to the top of the stack
|
||||
, ((modm, button2), (\w -> focus w >> windows W.shiftMaster))
|
||||
, ((modm, button2), \w -> focus w >> windows W.shiftMaster)
|
||||
|
||||
-- mod-button3, Set the window to floating mode and resize by dragging
|
||||
, ((modm, button3), (\w -> focus w >> mouseResizeWindow w
|
||||
>> windows W.shiftMaster))
|
||||
, ((modm, button3), \w -> focus w >> mouseResizeWindow w
|
||||
>> windows W.shiftMaster)
|
||||
|
||||
-- you may also bind events to the mouse scroll wheel (button4 and button5)
|
||||
]
|
||||
|
@ -227,7 +227,7 @@ myMouseBindings (XConfig {XMonad.modMask = modm}) = M.fromList $
|
|||
-- layout
|
||||
|
||||
|
||||
myLayout =
|
||||
myLayout =
|
||||
fullscreenFull $
|
||||
avoidStruts $
|
||||
smartBorders $
|
||||
|
@ -274,6 +274,7 @@ myManageHook = composeAll
|
|||
, resource =? "kdesktop" --> doIgnore
|
||||
, resource =? "fcitx-config" --> doFloat
|
||||
, className =? "copyq" --> doFloat
|
||||
, className =? "discord" --> doShift "com"
|
||||
] <+> namedScratchpadManageHook myScratchpads
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
@ -311,6 +312,14 @@ myLogHook xmproc = dynamicLogWithPP $ xmobarPP
|
|||
, ppSep = "<fc=#666666> <fn=0>|</fn> </fc>"
|
||||
, ppUrgent = xmobarColor red "" . wrap "!" "!"
|
||||
, ppExtras = [windowCount]
|
||||
, ppLayout =
|
||||
wrap "<fn=4>" "</fn>" .
|
||||
(\case
|
||||
"Spacing Full" -> "🖵"
|
||||
"Spacing Tall" -> "🗗"
|
||||
"Spacing Magnifier Tall" -> "\128269" -- 🔍
|
||||
"Spacing Mirror Tall" -> "\129694" -- 🪞
|
||||
)
|
||||
, ppOrder = \(ws:l:t:ex) -> [ws,l] ++ ex ++ [t]
|
||||
}
|
||||
|
||||
|
@ -324,7 +333,7 @@ myLogHook xmproc = dynamicLogWithPP $ xmobarPP
|
|||
myStartupHook :: X ()
|
||||
myStartupHook = do
|
||||
spawn "stalonetray &"
|
||||
-- spawnOnce "$HOME/.xmonad/xinit.sh"
|
||||
spawnOnce "$HOME/.xmonad/setup-script/xinit.sh"
|
||||
|
||||
myRestartHook :: X ()
|
||||
myRestartHook = do
|
||||
|
|
|
@ -0,0 +1,18 @@
|
|||
MPD_STATUS=$(mpc 2>/dev/null | sed -n '2{p;q}' | cut -d ' ' -f1)
|
||||
case "$MPD_STATUS" in
|
||||
"[playing]")
|
||||
echo "<fn=2><fc=#00ff00>▶</fc></fn>"
|
||||
# echo "[<fn=2><fc=#00ff00>行</fc></fn>]"
|
||||
exit 0
|
||||
;;
|
||||
"[paused]")
|
||||
echo "<fn=2><fc=#ff0000>⏸</fc></fn>"
|
||||
# echo "[<fn=1><fc=#ff0000>止</fc></fn>]"
|
||||
exit 0
|
||||
;;
|
||||
*)
|
||||
echo "<fn=2><fc=#AA0000>⏼</fc></fn>"
|
||||
# echo "[<fn=1><fc=#AA0000>無</fc></fn>]"
|
||||
exit 0
|
||||
;;
|
||||
esac
|
|
@ -0,0 +1,43 @@
|
|||
#!/bin/python
|
||||
|
||||
import subprocess
|
||||
|
||||
USE_SYMBOLS = True
|
||||
VOLUME_COMMAND = 'amixer get Master'.split(' ')
|
||||
VOLUME_SYMBOLS = {
|
||||
"0": "𝒫", # "∅"
|
||||
"10": "−",
|
||||
"20": "=",
|
||||
"30": "≡",
|
||||
"40": "∫",
|
||||
"50": "∮",
|
||||
"60": "∬",
|
||||
"70": "∯",
|
||||
"80": "∭",
|
||||
"90": "∰",
|
||||
"100": "⨌",
|
||||
}
|
||||
|
||||
def get_volume():
|
||||
volumeData = subprocess \
|
||||
.check_output(VOLUME_COMMAND) \
|
||||
.decode() \
|
||||
.split('\n')[5] \
|
||||
.strip() \
|
||||
.split(' ')
|
||||
|
||||
volume_level = int(volumeData[-2][1:-2])
|
||||
|
||||
if USE_SYMBOLS:
|
||||
volume = VOLUME_SYMBOLS[str((volume_level // 10) * 10)]
|
||||
if volumeData[-1] == '[off]':
|
||||
volume = 'Ψ'
|
||||
else:
|
||||
volume = f'{volume_level}%'
|
||||
if volumeData[-1] == '[off]':
|
||||
volume = 'M'
|
||||
|
||||
return volume
|
||||
|
||||
if __name__ == '__main__':
|
||||
print(get_volume())
|
|
@ -0,0 +1,33 @@
|
|||
#!/bin/sh
|
||||
|
||||
NETWORK_CARD=$(ip -br link | grep UP | grep -v lo | head -n 1 | awk '{print $1}')
|
||||
|
||||
iwconfig $NETWORK_CARD 2>&1 | grep -q no\ wireless\ extensions\. && {
|
||||
echo wired
|
||||
exit 0
|
||||
}
|
||||
|
||||
essid=`iwconfig $NETWORK_CARD | awk -F '"' '/ESSID/ {print $2}'`
|
||||
stngth=`iwconfig $NETWORK_CARD | awk -F '=' '/Quality/ {print $2}' | cut -d '/' -f 1`
|
||||
bars=`expr $stngth / 20`
|
||||
|
||||
case $bars in
|
||||
# 0) bar='[-----]' ;;
|
||||
# 1) bar='[/----]' ;;
|
||||
# 2) bar='[//---]' ;;
|
||||
# 3) bar='[///--]' ;;
|
||||
# 4) bar='[////-]' ;;
|
||||
# 5) bar='[/////]' ;;
|
||||
# *) bar='[--!--]' ;;
|
||||
0) bar='[<fn=1>〇</fn>]' ;;
|
||||
1) bar='[<fn=1>壱</fn>]' ;;
|
||||
2) bar='[<fn=1>弐</fn>]' ;;
|
||||
3) bar='[<fn=1>参</fn>]' ;;
|
||||
4) bar='[<fn=1>肆</fn>]' ;;
|
||||
5) bar='[<fn=1>伍</fn>]' ;;
|
||||
*) bar='[<fn=1>無</fn>]' ;;
|
||||
esac
|
||||
|
||||
echo "$essid $bar"
|
||||
|
||||
exit 0
|
|
@ -0,0 +1,72 @@
|
|||
Config {
|
||||
font = "xft:Fira Code Retina:pixelsize=15:antialias=true:hinting=true"
|
||||
, additionalFonts = [
|
||||
"xft:Droid Sans Japanese:pixelsize=20:antialias=true:hinting=true",
|
||||
"xft:Symbola:pixelsize=20",
|
||||
"xft:Asana Math:pixelsize=20",
|
||||
"xft:Noto Sans Symbols2",
|
||||
"xft:FiraCode Nerd Font"
|
||||
]
|
||||
, borderColor = "black"
|
||||
, border = TopB
|
||||
, bgColor = "#272822"
|
||||
, fgColor = "grey"
|
||||
, alpha = 255
|
||||
, position = Static { xpos = 0 , ypos = 0, width = 1920, height = 40 }
|
||||
, textOffset = -1
|
||||
, iconOffset = -1
|
||||
, lowerOnStart = True
|
||||
, pickBroadest = False
|
||||
, persistent = False
|
||||
, hideOnStart = False
|
||||
, iconRoot = "/home/h7x4/.config/xmobar/"
|
||||
, allDesktops = True
|
||||
, overrideRedirect = True
|
||||
, commands = [
|
||||
-- Run Weather "ENVA"
|
||||
-- [
|
||||
-- "-t","<tempC>C",
|
||||
-- "-L","6",
|
||||
-- "-H","18",
|
||||
-- "--normal","green",
|
||||
-- "--high","red",
|
||||
-- "--low","lightblue"
|
||||
-- ] 36000,
|
||||
|
||||
Run Network "wlp59s0"
|
||||
[
|
||||
"-t", "<rx><fn=3>↓</fn> <tx><fn=3>↑</fn>",
|
||||
"-L","0",
|
||||
"-H","32",
|
||||
"--normal","green",
|
||||
"--high","red"
|
||||
] 10,
|
||||
|
||||
Run Memory ["-t","<usedratio>%"] 10,
|
||||
Run Swap ["-t", "<usedratio>%"] 100,
|
||||
Run Date "%a %_d %b %H:%M" "date" 10,
|
||||
Run Com "/home/h7x4/.config/xmobar/scripts/mpd_status.sh" [] "mpc" 10,
|
||||
-- Run Com "/home/h7x4/.config/xmobar/scripts/wireless.sh" [] "wi" 100,
|
||||
Run Com "/home/h7x4/.config/xmobar/scripts/volume.py" [] "vol" 10,
|
||||
Run UnsafeStdinReader,
|
||||
|
||||
Run BatteryP ["BAT0"]
|
||||
[
|
||||
"-t", "<fn=2><acstatus></fn> (<left>%)",
|
||||
"--Low", "20",
|
||||
"--High", "50",
|
||||
"--low", "red",
|
||||
"--normal", "yellow",
|
||||
"--high", "green",
|
||||
"--",
|
||||
"-O", "<fc=green>🔌</fc>",
|
||||
"-o", "<fc=yellow>🔋</fc>"
|
||||
] 50
|
||||
|
||||
]
|
||||
, sepChar = "%"
|
||||
, alignSep = "}{" -- <fc=#7700ff><icon=/home/h7x4/.config/xmobar/lambda-30.xbm/></fc>
|
||||
, template = " <icon=lambda_30.xpm/> %mpc% %UnsafeStdinReader% }\
|
||||
\ <fc=#ee9a00>%date%</fc> \
|
||||
\{ <fc=lightgreen><fn=2>🐏</fn> %memory%</fc> | <fc=cyan>%wlp59s0%</fc> | <fc=#f5f1bc><fn=3>%vol%</fn></fc> | %battery% "
|
||||
}
|
Loading…
Reference in New Issue