Add xmobar to home-manager
This commit is contained in:
parent
af5958d553
commit
003e91e8d6
1
home.nix
1
home.nix
|
@ -19,6 +19,7 @@
|
|||
./programs/rofi.nix
|
||||
./programs/tmux.nix
|
||||
./programs/vscode.nix
|
||||
./programs/xmobar
|
||||
./programs/xmonad
|
||||
./programs/zathura.nix
|
||||
./programs/zsh
|
||||
|
|
|
@ -0,0 +1,87 @@
|
|||
{ pkgs, colorTheme, ... }: let
|
||||
inherit (pkgs) lib;
|
||||
in {
|
||||
programs.xmobar = let
|
||||
networkCard = "wlp2s0f0u7u4";
|
||||
disks = [
|
||||
"/"
|
||||
"/data"
|
||||
"/data/disks/data2"
|
||||
];
|
||||
in {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
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
|
||||
, allDesktops = True
|
||||
, overrideRedirect = True
|
||||
, commands = [
|
||||
|
||||
Run Network "${networkCard}"
|
||||
[
|
||||
"-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 - W%W" "date" 10,
|
||||
Run Com "${./scripts/mpd_status.sh}" [] "mpc" 10,
|
||||
-- Run Com "${./scripts/wireless.sh}" [] "wi" 100,
|
||||
Run Com "${./scripts/volume.py}" [] "vol" 10,
|
||||
Run UnsafeStdinReader,
|
||||
Run DiskU [
|
||||
${ lib.concatStringsSep ",\n" (map (d: ''("${d}", "[<used>/<size>]")'') disks) }
|
||||
]
|
||||
["-L", "20", "-H", "50", "-m", "1", "-p", "3",
|
||||
"--low", "#a6e22e",
|
||||
"--normal", "#f8f8f2",
|
||||
"--high", "#f92672"] 20,
|
||||
|
||||
Run Battery
|
||||
[
|
||||
"-t", "<fn=2><acstatus></fn> (<left>%)",
|
||||
"--Low", "20",
|
||||
"--High", "50",
|
||||
"--low", "red",
|
||||
"--normal", "yellow",
|
||||
"--high", "green",
|
||||
"--",
|
||||
"-O", "<fc=green>🔌</fc>",
|
||||
"-i", "<fc=#00b7ff>🔌</fc>",
|
||||
"-o", "<fc=yellow>🔋</fc>"
|
||||
] 50
|
||||
|
||||
]
|
||||
, sepChar = "%"
|
||||
, alignSep = "}{"
|
||||
, template = " <icon=${./lambda.xpm}/> %mpc% %UnsafeStdinReader% }\
|
||||
\ <fc=#ee9a00>%date%</fc> \
|
||||
\{ %disku% | <fc=lightgreen><fn=2>🐏</fn> %memory%</fc> | <fc=cyan>%${networkCard}%</fc> | <fc=#f5f1bc><fn=3>%vol%</fn></fc> "
|
||||
}
|
||||
'';
|
||||
|
||||
};
|
||||
}
|
|
@ -0,0 +1,48 @@
|
|||
/* XPM */
|
||||
static char * lambda_30_xpm[] = {
|
||||
"42 30 4 1",
|
||||
" c None",
|
||||
/* White/Red */
|
||||
". c #b1b1b1",
|
||||
"+ c #f10351",
|
||||
"@ c #c0c0c0",
|
||||
|
||||
/* Red/Orange/Yellow */
|
||||
/* ". c #ad2000", */
|
||||
/* "+ c #ff6c00", */
|
||||
/* "@ c #fec613", */
|
||||
|
||||
/* Purple */
|
||||
/* ". c #453A62", */
|
||||
/* "+ c #5E5086", */
|
||||
/* "@ c #8F4E8B", */
|
||||
"........ ++++++++ ",
|
||||
" ........ ++++++++ ",
|
||||
" ........ ++++++++ ",
|
||||
" ........ ++++++++ ",
|
||||
" ........ ++++++++ ",
|
||||
" ........ ++++++++ ",
|
||||
" ........ ++++++++ ",
|
||||
" ........ ++++++++ ",
|
||||
" ........ ++++++++ @@@@@@@@@@@@@@@@",
|
||||
" ........ ++++++++ @@@@@@@@@@@@@@@@",
|
||||
" ........ ++++++++ @@@@@@@@@@@@@@@",
|
||||
" ........ ++++++++ @@@@@@@@@@@@@@@",
|
||||
" ........ ++++++++ @@@@@@@@@@@@@@",
|
||||
" ........ ++++++++ @@@@@@@@@@@@@",
|
||||
" ........ ++++++++ ",
|
||||
" ........ +++++++++ ",
|
||||
" ........ ++++++++++ @@@@@@@@@@@@",
|
||||
" ........ +++++++++++ @@@@@@@@@@@",
|
||||
" ........ +++++++++++++ @@@@@@@@@@",
|
||||
" ........ ++++++++++++++ @@@@@@@@@@",
|
||||
" ........ +++++++++++++++ @@@@@@@@@",
|
||||
" ........ ++++++++ ++++++++ ",
|
||||
" ........ ++++++++ ++++++++ ",
|
||||
" ........ ++++++++ ++++++++ ",
|
||||
" ........ ++++++++ ++++++++ ",
|
||||
" ........ ++++++++ ++++++++ ",
|
||||
" ........ ++++++++ ++++++++ ",
|
||||
" ........ ++++++++ ++++++++ ",
|
||||
" ........ ++++++++ ++++++++ ",
|
||||
"........ ++++++++ ++++++++ "};
|
|
@ -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 @@
|
|||
#!/usr/bin/env 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
|
Loading…
Reference in New Issue