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/rofi.nix
|
||||||
./programs/tmux.nix
|
./programs/tmux.nix
|
||||||
./programs/vscode.nix
|
./programs/vscode.nix
|
||||||
|
./programs/xmobar
|
||||||
./programs/xmonad
|
./programs/xmonad
|
||||||
./programs/zathura.nix
|
./programs/zathura.nix
|
||||||
./programs/zsh
|
./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