polybar: Add config and scripts. Ignored from other than working machine

This commit is contained in:
inkch 2024-01-15 00:09:25 +09:00
parent c5b3bc4cb3
commit 470afa3ec8
12 changed files with 577 additions and 0 deletions

View File

@ -11,6 +11,7 @@ README.md
.config/alacritty/alacritty.toml .config/alacritty/alacritty.toml
.config/dunst .config/dunst
.config/fontconfig .config/fontconfig
.config/polybar
{{- end }} {{- end }}
{{- if eq .chezmoi.username "root" }} {{- if eq .chezmoi.username "root" }}

View File

@ -0,0 +1,276 @@
;=====================================================
;
; To learn more about how to configure Polybar
; go to https://github.com/jaagr/polybar
;
; The README contains alot of information
;
;=====================================================
[colors]
background = #121212
background-alt = #1c1c1c
foreground = #cccccc
foreground-alt = #77
foreground-gray = #77
primary = #FFD75F
secondary = #d64937
alert = #d64937
[global/wm]
margin-bottom = 0
[bar/benq]
enable-ipc = true
bottom = false
monitor = ${env:MONITOR:HDMI-0}
width = 100%
height = 16
offset-x = 0
offset-y = 0
background = ${colors.background}
foreground = ${colors.foreground}
overline-size = 0
overline-color = #f00
underline-size = 0
underline-color = #1c1c1c
border-bottom-size = 1
border-bottom-color = #121212
spacing = 1
padding-left = 0
padding-right = 2
module-margin-left = 1
module-margin-right = 1
; font-N = <fontconfig pattern>;<vertical offset>
font-0 = "Source Han Code JP R:style=Bold:pixelsize=8;2"
font-1 = "NotoEmoji:scale=11"
font-2 = "siji:pixelsize=10;2"
font-3 = "Font Awesome 6 Free:style=Solid:pixelsize=8;2"
font-4 = "Font Awesome 6 Brands:pixelsize=8;2"
font-5 = "Symbols Nerd Font:pixelsize=12;2"
modules-left = i3 xwindow
modules-center = date
[bar/top]
enable-ipc = true
bottom = false
monitor = ${env:MONITOR:DP-2}
width = 100%
height = 16
offset-x = 0
offset-y = 0
background = ${colors.background}
foreground = ${colors.foreground}
overline-size = 0
overline-color = #f00
underline-size = 0
underline-color = #1c1c1c
border-bottom-size = 1
border-bottom-color = #121212
spacing = 1
padding-left = 0
padding-right = 2
module-margin-left = 1
module-margin-right = 1
; font-N = <fontconfig pattern>;<vertical offset>
font-0 = "Source Han Code JP R:style=Bold:pixelsize=8;2"
font-1 = "NotoEmoji:scale=11"
font-2 = "siji:pixelsize=10;2"
font-3 = "Font Awesome 6 Free:style=Solid:pixelsize=8;2"
font-4 = "Font Awesome 6 Brands:pixelsize=8;2"
font-5 = "Symbols Nerd Font:pixelsize=12;2"
modules-left = i3 clicker xwindow
modules-center = date
modules-right = pueue filesystem temp cpu memory eth-down eth-up ipv6 caffeine cam tray
; tray-position = right
; tray-padding = 4
; tray-maxsize = 12
; wm-restack = i3
; override-redirect = true
[module/tray]
type = internal/tray
; tray-spacing = 2
tray-padding = 4
tray-size = 75%
[module/pueue]
type = custom/script
interval = 5
exec = /home/inkch/.config/polybar/scripts/pueue-count.py
[module/mic]
type = custom/script
interval = 5
exec = /home/inkch/.config/polybar/scripts/mic.py
[module/cam]
type = custom/script
interval = 5
exec = /home/inkch/.config/polybar/scripts/camera.py
[module/vms]
type = custom/script
interval = 5
exec = /home/inkch/.config/polybar/scripts/vm-stat.py
[module/clicker]
type = custom/script
format = <label>
label = INSANE CLICKER IS RUNNNING
interval = 1
format-background = ${colors.alert}
label-padding-left = 2
label-padding-right = 2
exec = /home/inkch/.config/polybar/scripts/clicker-stat.sh
[module/caffeine]
type = custom/script
format = <label>
label = %output%
interval = 1
exec = /home/inkch/.config/polybar/scripts/caffeine-check-status.py
click-left = /home/inkch/.config/polybar/scripts/caffeine-toggle.py
[module/ipv6]
type = custom/script
format = <label>
label = %output:6%
interval = 3
exec = /home/inkch/.config/polybar/scripts/ipv6-stat.py
[module/vpn]
type = custom/script
format = <label>
label = %output:2%
interval = 3
exec = /home/inkch/.config/polybar/scripts/vpn-stat.py
[module/xwindow]
type = internal/xwindow
label = %title%
label-maxlen = 100
[module/temp]
type = internal/temperature
interval = 0.5
thermal-zone = 0
hwmon-path = /sys/class/hwmon/hwmon0/temp1_input
warn-temperature = 60
format-underline = ${colors.foreground}
format-warn-underline = ${colors.alert}
[module/filesystem]
type = internal/fs
interval = 30
mount-0 = /
mount-1 = /mnt/hdd
mount-2 = /mnt/hdd2
label-mounted = %free:2%
label-mounted-foreground = ${colors.foreground-alt}
label-unmounted = x
label-unmounted-foreground = ${colors.foreground-alt}
fixed-values = true
[module/i3]
type = internal/i3
ws-icon-default = x
index-sort = true
label-mode = %mode%
label-mode-padding = 2
label-mode-foreground = #000
label-mode-background = ${colors.alert}
label-focused = %index%
label-focused-background = ${colors.primary}
label-focused-foreground = #000000
label-focused-underline= ${colors.primary}
label-focused-padding = 1
label-unfocused = %index%
label-unfocused-foreground = ${colors.foreground-gray}
label-unfocused-background = ${colors.background}
label-unfocused-padding = 1
label-urgent = %index%
label-urgent-background = ${colors.alert}
label-urgent-padding = 1
label-visible = %index%
label-visible-padding = 1
[module/cpu]
type = internal/cpu
interval = 1
format-underline = ${colors.primary}
label = %percentage:2%%
[module/memory]
type = internal/memory
interval = 1
format-underline = #32bbc2
label = %percentage_used:2%%
[module/eth-up]
type = internal/network
interface = enp34s0
interval = 1.0
format-connected = <label-connected>
format-connected-underline = #9f78e1
format-disconnected-underline = ${self.format-connected-underline}
label-connected = %upspeed:8%↑
label-disconnected = 
label-disconnected-foreground = ${colors.foreground-alt}
[module/eth-down]
type = internal/network
interface = enp34s0
interval = 1.0
format-connected = <label-connected>
format-connected-underline = #9f78e1
format-disconnected-underline = ${self.format-connected-underline}
label-connected = %downspeed:8%↓
label-disconnected = 
label-disconnected-foreground = ${colors.foreground-alt}
[module/date]
type = internal/date
interval = 1.0
date = "[#%V] %d %a"
date-alt = "[#%V] %d %a"
time = "%H:%M:%S"
time-alt = "%H:%M:%S"
format-time-offset=10
label = "%date% %time%"
; vim:set ft=toml:

View File

@ -0,0 +1,7 @@
#!/bin/bash
if ! pgrep -u $UID -x polybar >/dev/null; then
setsid polybar top &
else
setsid polybar-msg cmd toggle &
fi

View File

@ -0,0 +1,11 @@
#!/usr/bin/python
import subprocess
# res = subprocess.check_output('xset -q', shell=True).decode('UTF-8')
res = subprocess.check_output(
'cat /tmp/caffeine_status', shell=True).decode('UTF-8')
caffeined = "xidlehook is KILLED" in res
color = '#ffffff' if caffeined else '#777777'
print('%{F' + color + '}' + '')

View File

@ -0,0 +1,11 @@
#!/usr/bin/python
import os
import subprocess
res = subprocess.check_output('xset -q', shell=True).decode('UTF-8')
caffeined = "DPMS is Disabled" in res
if caffeined:
os.system('xset dpms 600 600 600')
else:
os.system('xset -dpms')

View File

@ -0,0 +1,51 @@
#!/usr/bin/python
import subprocess
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--color-running', default='#cc6666')
parser.add_argument('--color-zero', default='#777777')
args = parser.parse_args()
def camera_plugged():
output = subprocess.check_output('lsusb | rg "ID 05a3:9331" | wc -l',
shell=True)
return int(output.decode('UTF-8')) > 0
def get_color(plugged):
if plugged:
return '%{F' + args.color_running + '}'
return '%{F' + args.color_zero + '}'
print(get_color(camera_plugged()) + '')
palette = {
"background": "#232c31",
"foreground": "#c5c8c6",
"selection": "#425059",
"line": "#2d3c46",
"comment": "#777777",
"red": "#cc6666",
"orange": "#de935f",
"yellow": "#f0c674",
"green": "#b5bd68",
"aqua": "#8abeb7",
"blue": "#81a2be",
"purple": "#b294bb",
"window": "#303030",
"darkcolumn": "#1c1c1c",
"addbg": "#5F875F",
"addfg": "#d7ffaf",
"changebg": "#5F5F87",
"changefg": "#d7d7ff",
"delbg": "#cc6666",
"darkblue": "#00005f",
"darkcyan": "#005f5f",
"darkred": "#5f0000",
"darkpurple": "#5f005f",
}

View File

@ -0,0 +1,6 @@
#!/usr/bin/dash
if test -f /tmp/.clicker.pid; then
echo ' '
else
echo ''
fi

View File

@ -0,0 +1,32 @@
#!/usr/bin/python
import subprocess
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--color-enabled', default='#ffffff')
# parser.add_argument('--color-enabled', default='#32bbc2')
# parser.add_argument('--color-disabled', default='#d64937')
parser.add_argument('--color-disabled', default='#777777')
args = parser.parse_args()
def is_enabled():
try:
res1 = subprocess.check_output(
'ip address show dev enp34s0 | rg inet6 | wc -l', shell=True)
return int(res1) != 0
except subprocess.CalledProcessError:
# when openpyn is inactive, pgrep return exit status 1
return False
else:
return True
if is_enabled():
print('%{F' + args.color_enabled + '}' + 'IPv6')
else:
print('%{F' + args.color_disabled + '}' + 'IPv6')
# print('%{F' + args.color_disabled + '}' + '')

View File

@ -0,0 +1,51 @@
#!/usr/bin/python
import subprocess
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--color-running', default='#cc6666')
parser.add_argument('--color-zero', default='#777777')
args = parser.parse_args()
def mic():
output = subprocess.check_output('lsusb | rg "ID 1235:8012" | wc -l',
shell=True)
return int(output.decode('UTF-8')) > 0
def get_color(plugged):
if plugged:
return '%{F' + args.color_running + '}'
return '%{F' + args.color_zero + '}'
print(get_color(mic()) + '')
palette = {
"background": "#232c31",
"foreground": "#c5c8c6",
"selection": "#425059",
"line": "#2d3c46",
"comment": "#777777",
"red": "#cc6666",
"orange": "#de935f",
"yellow": "#f0c674",
"green": "#b5bd68",
"aqua": "#8abeb7",
"blue": "#81a2be",
"purple": "#b294bb",
"window": "#303030",
"darkcolumn": "#1c1c1c",
"addbg": "#5F875F",
"addfg": "#d7ffaf",
"changebg": "#5F5F87",
"changefg": "#d7d7ff",
"delbg": "#cc6666",
"darkblue": "#00005f",
"darkcyan": "#005f5f",
"darkred": "#5f0000",
"darkpurple": "#5f005f",
}

View File

@ -0,0 +1,34 @@
#!/usr/bin/python
import subprocess
res = subprocess.check_output('', shell=True).decode('UTF-8')
running = subprocess.check_output(
'pueue status | rg Running | wc -l', shell=True).decode('UTF-8')
queued = subprocess.check_output(
'pueue status | rg Queued | wc -l', shell=True).decode('UTF-8')
failed = subprocess.check_output(
'pueue status | rg "(Failed|Killed)" | wc -l', shell=True).decode('UTF-8')
def printer(r, q, f):
bright = '#cccccc'
red = '#cc6666'
dim = '#777777'
def color(n):
return bright if n > 0 else dim
def color_red(n):
return red if n > 0 else dim
r, q, f = int(r), int(q), int(f)
line = ''
line += '%{F' + color(r) + '}' + str(r) + '%{F' + dim + '}/'
line += '%{F' + color(q) + '}' + str(q) + '%{F' + dim + '}/'
line += '%{F' + color_red(f) + '}' + str(f) + '%{F' + dim + '}'
print(line)
printer(running, queued, failed)

View File

@ -0,0 +1,62 @@
#!/usr/bin/python
import subprocess
import argparse
palette = {
"background": "#232c31",
"foreground": "#c5c8c6",
"selection": "#425059",
"line": "#2d3c46",
"comment": "#777777",
"red": "#cc6666",
"orange": "#de935f",
"yellow": "#f0c674",
"green": "#b5bd68",
"aqua": "#8abeb7",
"blue": "#81a2be",
"purple": "#b294bb",
"window": "#303030",
"darkcolumn": "#1c1c1c",
"addbg": "#5F875F",
"addfg": "#d7ffaf",
"changebg": "#5F5F87",
"changefg": "#d7d7ff",
"delbg": "#cc6666",
"darkblue": "#00005f",
"darkcyan": "#005f5f",
"darkred": "#5f0000",
"darkpurple": "#5f005f",
}
parser = argparse.ArgumentParser()
parser.add_argument('--color-running', default='#9f78e1')
parser.add_argument('--color-zero', default='#777777')
args = parser.parse_args()
def count_running_vm():
# For VirtualBox
# output = subprocess.check_output('VBoxManage list runningvms | wc -l',
# shell=True)
# return int(output.decode('UTF-8'))
# For libvirt
output = subprocess.check_output('doas virsh list | wc -l', shell=True)
libvirt_cnt = int(output.decode('UTF-8')) - 3
output = subprocess.check_output('vboxmanage list runningvms | wc -l', shell=True)
vbox_cnt = int(output.decode('UTF_8'))
return f"{libvirt_cnt} {vbox_cnt}"
def get_color(num_str):
if num_str != "0 0":
return '%{F' + args.color_running + '}'
return '%{F' + args.color_zero + '}'
num = count_running_vm()
print(get_color(num) + '' + num)

View File

@ -0,0 +1,35 @@
#!/usr/bin/python
import subprocess
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--color-enabled', default='#32bbc2')
# parser.add_argument('--color-disabled', default='#d64937')
parser.add_argument('--color-disabled', default='#777777')
args = parser.parse_args()
def is_enabled():
try:
subprocess.check_output(
'systemctl is-active openpyn', shell=True)
l = subprocess.check_output(
'cat /etc/resolv.conf | wc -l', shell=True)
if int(l) != 3:
return False
except subprocess.CalledProcessError:
# when openpyn is inactive, pgrep return exit status 1
return False
else:
return True
if is_enabled():
# openpyn is running
print('%{F' + args.color_enabled + '}' + '')
else:
# openpyn is NOT running
print('%{F' + args.color_disabled + '}' + '')
# print('%{F' + args.color_disabled + '}' + '')