os/+arch: lemonbar => polybar

This commit is contained in:
Henrik Lissner 2017-04-26 18:52:37 -04:00
parent 77a3678f7e
commit a74aebbc98
7 changed files with 473 additions and 15 deletions

View file

@ -1,8 +1,7 @@
#!/usr/bin/bash #!/usr/bin/bash
# lemonbar # top-bar
~/.config/panel/panel >~/.config/panel/panel.log 2>&1 & pgrep -x polybar >/dev/null || polybar main >~/.config/polybar/polybar.log 2>&1 &
# #
# Appearance # Appearance
@ -54,17 +53,17 @@ primary=$(bspc query -M -m prmary)
host=$(hostname) host=$(hostname)
case $host in case $host in
triton*) triton*)
{ # {
bspc monitor DVI-I-1 -n C # bspc monitor DVI-I-1 -n C
bspc monitor HDMI-0 -n R # bspc monitor HDMI-0 -n R
bspc monitor DVI-D-0 -n L # bspc monitor DVI-D-0 -n L
} >/dev/null 2>&1 # } >/dev/null 2>&1
bspc monitor C -d C/{1,2,3,4,5} bspc monitor DVI-I-1 -d {1,2,3,4,5}
[[ $nmon > 1 ]] && bspc monitor R -d R/1 [[ $nmon > 1 ]] && bspc monitor HDMI-0 -d HDMI-0/1
[[ $nmon > 2 ]] && bspc monitor L -d L/1 [[ $nmon > 2 ]] && bspc monitor DVI-D-0 -d DVI-D-0/1
bspc config -m C top_padding 30 bspc config -m DVI-I-1 top_padding 30
;; ;;
*) bspc monitor "$primary" -n C *) bspc monitor "$primary" -n C
;; ;;

View file

@ -0,0 +1,398 @@
;=====================================================
;
; To learn more about how to configure Polybar
; go to https://github.com/jaagr/polybar
;
; The README contains alot of information
;
;=====================================================
[colors]
background = #8801040b
background-alt = #22252c
foreground = #e5e8e6
foreground-alt = #55
primary = #ffb52a
secondary = #e60053
alert = ${xrdb:color5}
[global/wm]
margin-top = 4
margin-bottom = 5
[bar/main]
monitor = "DVI-I-1"
width = 100%
height = 29
offset-x = 0
offset-y = 0
;background = ${xrdb:color9}
background = ${colors.background}
foreground = ${colors.foreground}
overline-size = 2
overline-color = #f00
underline-size = 2
underline-color = #00f
border-bottom-size = 0
border-bottom-color = #333
spacing = 2
padding-left = 0
padding-right = 2
module-margin-left = 2
module-margin-right = 2
font-0 = "Fira Sans:fontformat=truetype:style=Bold:size=10;1"
font-1 = "Fira Mono:fontformat=truetype:style=Bold:size=10;1"
font-2 = FontAwesome:fontformat=truetype:size=10.5;1
modules-left = bspwm
modules-center = xwindow
; modules-right = volume date redshift
modules-right = pkg mail volume date redshift powermenu
;tray-position = center
tray-padding = 2
;tray-transparent = true
;tray-background = #0063ff
wm-restack = bspwm
;wm-restack = i3
override-redirect = true
;scroll-up = bspwm-desknext
;scroll-down = bspwm-deskprev
;scroll-up = i3wm-wsnext
;scroll-down = i3wm-wsprev
[module/xwindow]
type = internal/xwindow
label = %title:0:60:...%
[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock
format-underline = ${colors.secondary}
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
label-layout = %layout%
label-indicator-padding = 2
label-indicator-background = ${colors.secondary}
label-indicator-underline = ${colors.secondary}
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
mount-1 = /home
mount-2 = /invalid/mountpoint
label-mounted = %mountpoint%: %percentage_free%
label-unmounted = %mountpoint%: not mounted
label-unmounted-foreground = ${colors.foreground-alt}
[module/bspwm]
type = internal/bspwm
pin-workspaces = true
enable-click = true
ws-icon-0 = 1;
ws-icon-1 = 2;
ws-icon-2 = 3;
ws-icon-3 = 4;
ws-icon-4 = 5;
ws-icon-default = x
format = <label-state> <label-mode>
label-focused = %icon%
label-focused-background = ${colors.background-alt}
label-focused-underline= ${colors.primary}
label-focused-padding = 2
label-occupied = %icon%
label-occupied-padding = 2
label-urgent = %icon%
label-urgent-background = ${colors.alert}
label-urgent-padding = 2
label-empty = %icon%
label-empty-foreground = ${colors.foreground-alt}
label-empty-padding = 2
[module/i3]
type = internal/i3
format = <label-state> <label-mode>
index-sort = true
wrapping-scroll = false
label-mode-padding = 2
label-mode-foreground = #000
label-mode-background = ${colors.primary}
label-focused = %index%
label-focused-background = ${module/bspwm.label-focused-background}
label-focused-underline = ${module/bspwm.label-focused-underline}
label-focused-padding = ${module/bspwm.label-focused-padding}
label-unfocused = %index%
label-unfocused-padding = ${module/bspwm.label-occupied-padding}
label-urgent = %index%!
label-urgent-background = ${module/bspwm.label-urgent-background}
label-urgent-padding = ${module/bspwm.label-urgent-padding}
label-visible = %index%
label-visible-background = ${self.label-focused-background}
label-visible-underline = ${self.label-focused-underline}
label-visible-padding = ${self.label-focused-padding}
[module/mpd]
type = internal/mpd
host = /home/hlissner/.config/mpd/mpd.sock
format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next> <icon-random>
label-song-maxlen = 35
label-song-ellipsis = true
icon-prev = 
icon-seekb = 
icon-stop = 
icon-play = 
icon-pause = 
icon-next = 
icon-seekf = 
icon-random = 
icon-repeat = 
toggle-on-foreground = ${colors.primary}
toggle-off-foreground = #66
[module/backlight]
type = internal/xbacklight
format = <label> <bar>
label = BL
bar-width = 10
bar-indicator = │
bar-indicator-foreground = #ff
bar-indicator-font = 2
bar-fill = ─
bar-fill-font = 2
bar-fill-foreground = #9f78e1
bar-empty = ─
bar-empty-font = 2
bar-empty-foreground = ${colors.foreground-alt}
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #f90000
label = %percentage%
[module/memory]
type = internal/memory
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #4bffdc
label = %percentage_used%
[module/wlan]
type = internal/network
interface =
interval = 3.0
format-connected = <ramp-signal> <label-connected>
format-connected-underline = #9f78e1
format-disconnected-underline = ${self.format-connected-underline}
label-connected = %essid%
label-disconnected = %ifname% disconnected
label-disconnected-foreground = ${colors.foreground-alt}
ramp-signal-0 = 
ramp-signal-1 = 
ramp-signal-2 = 
ramp-signal-3 = 
ramp-signal-4 = 
ramp-signal-foreground = ${colors.foreground-alt}
[module/eth]
type = internal/network
interface = enp0s31f6
interval = 3.0
format-connected-underline = #55aa55
format-connected-prefix = " "
format-connected-foreground-foreground = ${colors.foreground-alt}
label-connected = %local_ip%
format-disconnected-underline = ${self.format-connected-underline}
label-disconnected = %ifname% disconnected
label-disconnected-foreground = ${colors.foreground-alt}
[module/date]
type = internal/date
interval = 5
date = " %A, %h %d"
date-alt = " %Y-%m-%d"
time = " %I:%M %p"
time-alt = %H:%M:%S
format-prefix = 
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #0a6cf5
label = %date% %time%
[module/volume]
type = internal/volume
format-volume = <label-volume> <bar-volume>
label-volume = " "
label-volume-foreground = ${root.foreground}
format-muted-prefix = " "
format-muted-foreground = ${colors.foreground-alt}
label-muted = sound muted
bar-volume-width = 10
bar-volume-foreground-0 = #55aa55
bar-volume-foreground-1 = #55aa55
bar-volume-foreground-2 = #55aa55
bar-volume-foreground-3 = #55aa55
bar-volume-foreground-4 = #55aa55
bar-volume-foreground-5 = #f5a70a
bar-volume-foreground-6 = #ff5555
bar-volume-gradient = false
bar-volume-indicator = │
bar-volume-indicator-font = 2
bar-volume-indicator-foreground = #ff
bar-volume-fill = ─
bar-volume-fill-font = 2
bar-volume-empty = ─
bar-volume-empty-font = 2
bar-volume-empty-foreground = ${colors.foreground-alt}
[module/battery]
type = internal/battery
battery = BAT0
adapter = ADP1
full-at = 98
format-charging = <animation-charging> <label-charging>
format-charging-underline = #ffb52a
format-discharging = <ramp-capacity> <label-discharging>
format-discharging-underline = ${self.format-charging-underline}
format-full-prefix = " "
format-full-prefix-foreground = ${colors.foreground-alt}
format-full-underline = ${self.format-charging-underline}
ramp-capacity-0 = 
ramp-capacity-1 = 
ramp-capacity-2 = 
ramp-capacity-foreground = ${colors.foreground-alt}
animation-charging-0 = 
animation-charging-1 = 
animation-charging-2 = 
animation-charging-foreground = ${colors.foreground-alt}
animation-charging-framerate = 750
[module/temperature]
type = internal/temperature
thermal-zone = 0
warn-temperature = 60
format = <ramp> <label>
format-underline = #f50a4d
format-warn = <ramp> <label-warn>
format-warn-underline = ${self.format-underline}
label = %temperature%
label-warn = %temperature%
label-warn-foreground = ${colors.secondary}
ramp-0 = 
ramp-1 = 
ramp-2 = 
ramp-foreground = ${colors.foreground-alt}
[module/powermenu]
type = custom/menu
label-open = 
label-open-foreground = ${colors.primary}
label-close = 
label-close-foreground = ${colors.secondary}
label-separator = |
label-separator-foreground = ${colors.foreground-alt}
; reboot
menu-0-0 = 
menu-0-0-exec = menu-open-1
; power off
menu-0-1 = 
menu-0-1-exec = menu-open-2
; cancel
menu-1-0 = 
menu-1-0-exec = menu-open-0
; reboot
menu-1-1 = 
menu-1-1-exec = sudo reboot
; power off
menu-2-0 = 
menu-2-0-exec = sudo poweroff
; cancel
menu-2-1 = 
menu-2-1-exec = menu-open-0
; Custom scripts
[module/pkg]
type = custom/script
interval = 1200
format = <label>
format-underline = #dc322f
label = "%output:0:30%"
exec = ~/.config/polybar/modules/updates
exec-if = "ping -q -w 2 -c 1 176.34.135.167 >/dev/null"
[module/mail]
type = custom/script
interval = 120
format = <label>
format-prefix-foreground = ${colors.foreground-alt}
exec = ~/.config/polybar/modules/mail
[module/redshift]
type = custom/script
interval = 30
format-prefix = " "
exec = ~/.config/polybar/modules/redshift
; vim:ft=dosini

View file

@ -0,0 +1,28 @@
#!/usr/bin/python
import imaplib
import os
import sys
ICON = ""
CONFIG_FILE = os.path.expanduser("~/.private/config/email")
COLOR_HL = "B48EAD"
COLOR_NONE = "65737E"
COLOR_ERR = "D08770"
n = 0
if os.path.isfile(CONFIG_FILE):
with open(CONFIG_FILE) as fp:
for line in fp:
addr, pwd = line.strip().split(",")
obj = imaplib.IMAP4_SSL('imap.gmail.com', 993)
obj.login(addr, pwd)
obj.select()
n += len(obj.search(None, 'UnSeen')[1][0].split())
obj.close()
obj.logout()
print("%{{F#{}}}{} {}".format(COLOR_HL if n > 0 else COLOR_NONE, ICON, n))
else:
print("%{{F#{}}}{} -".format(COLOR_ERR, ICON))
sys.exit(1)

View file

@ -0,0 +1,23 @@
#!/usr/bin/env bash
# Specifying the icon(s) in the script
# This allows us to change its appearance conditionally
icon=""
pgrep -x redshift &> /dev/null
if [[ $? -eq 0 ]]; then
temp=$(redshift -p 2>/dev/null | grep temp | cut -d' ' -f3)
temp=${temp//K/}
fi
# OPTIONAL: Append ' ${temp}K' after $icon
if [[ -z $temp ]]; then
echo "%{F#65737E}$icon" # Greyed out (not running)
elif [[ $temp -ge 5000 ]]; then
echo "%{F#8FA1B3}$icon" # Blue
elif [[ $temp -ge 4000 ]]; then
echo "%{F#EBCB8B}$icon" # Yellow
else
echo "%{F#D08770}$icon" # Orange
fi

View file

@ -0,0 +1,8 @@
#!/bin/bash
pac=$(checkupdates | wc -l)
aur=$(cower -u | wc -l)
check=$((pac + aur))
if [[ "$check" != "0" ]]; then
echo "$pac %{F#5b5b5b}%{F-} $aur"
fi

View file

@ -108,11 +108,11 @@ super + {o,i}
bspc wm -h on bspc wm -h on
super + ctrl + {_,shift +}{1-9,0} super + ctrl + {_,shift +}{1-9,0}
bspc {desktop -f,node -d} C/{1-9,10} bspc {desktop -f,node -d} {1-9,10}
# minimize (send to dump desktop) # minimize (send to dump desktop)
super + m super + m
bspc node -d C/5 bspc node -d 5
# #

View file

@ -62,7 +62,9 @@ if [[ -z $SERVER ]]; then
# Window manager # Window manager
$pacaur -S bspwm sxhkd compton $pacaur -S bspwm sxhkd compton
# Taskbar # Taskbar
$pacaur -S lemonbar-xft-git sutils-git dunst libnotify $pacaur -S xcb-proto polybar
# Notifications
$pacaur -S dunst libnotify
# Utilities # Utilities
$pacaur -S rofi feh sxiv maim slop-opengl neofetch-git pass youtube-dl xdotool $pacaur -S rofi feh sxiv maim slop-opengl neofetch-git pass youtube-dl xdotool
# Apps # Apps