import logging
from i3pystatus import Status
from i3pystatus.updates import pacman, yaourt
status = Status(logfile='/home/neodarz/i3pystatus.log')
status.register("text",
text="|",)
status.register("updates",
format = "{count}",
format_no_updates = "",
backends = [pacman.Pacman(), yaourt.Yaourt()],
hints = {"markup": "pango", "separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
status.register("keyboard_locks",
format="{caps}|{num}",
hints = {"separator": False, "separator_block_width": 0},
caps_off="",
num_off="",)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
# Displays clock like this:
# Tue 30 Jul 11:59:46 PM KW31
# ^-- calendar week
status.register("clock",
format= ["%a %-d %b|%T", "Europe/Paris"],
hints = {"separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
status.register("cpu_usage",
hints = {"separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
status.register("cpu_freq",
format = "{avgg}",
hints = {"separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
# Shows the average load of the last minute and the last 5 minutes
# (the default value for format is used)
status.register("load",
hints = {"markup": "pango", "separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
status.register("mem",
format = "{used_mem}({percent_used_mem}%) [{avail_mem}]",
hints = {"markup": "pango", "separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
status.register("swap",
format = "S:{used}/{total}({percent_used}%)",
hide_if_empty = True,
hints = {"markup": "pango", "separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
# Shows your CPU temperature, if you have a Intel CPU
#status.register("temp",
# format=" {temp:.0f}°C",)
# The battery monitor has many formatting options, see README for details
# This would look like this, when discharging (or charging)
# ↓14.22W 56.15% [77.81%] 2h:41m
# And like this if full:
# =14.22W 100.0% [91.21%]
#
# This would also display a desktop notification (via D-Bus) if the percentage
# goes below 5 percent while discharging. The block will also color RED.
# If you don't have a desktop notification demon yet, take a look at dunst:
# http://www.knopwob.org/dunst/
{%@@ if profile == "fenec" @@%}
status.register("battery",
format="{status} {percentage:.2f}% [{percentage_design:.2f}%] {remaining:%E%hh:%Mm}",
alert=True,
alert_percentage=5,
status={
"DIS": "↓",
"CHR": "↑",
"FULL": "=",
},
hints = {"markup": "pango", "separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
{%@@ endif @@%}
# Displays whether a DHCP client is running
#status.register("runwatch",
# name="DHCP",
# path="/var/run/dhclient*.pid",)
# Shows the address and up/down state of eth0. If it is up the address is shown in
# green (the default value of color_up) and the CIDR-address is shown
# (i.e. 10.10.10.42/24).
# If it's down just the interface name (eth0) will be displayed in red
# (defaults of format_down and color_down)
#
# Note: the network module requires PyPI package netifaces
status.register("network",
dynamic_color=True,
start_color="#fff",
color_down="#fff",
end_color="#fff",
interface="enp3s0",
format_up="I:{v4cidr}",
format_down="X",
hints = {"markup": "pango", "separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
status.register("openvpn",
format="{status}",
vpn_name="vpn-pro",
status_up="vpro",
status_down="",
status_command="bash -c 'systemctl show vpn-pro.service | grep ActiveState=active'",
hints = {"markup": "pango", "separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
status.register("openvpn",
format="{status}",
vpn_name="vpn-perso",
status_up="vperso",
status_down="",
status_command="bash -c 'systemctl show vpn-perso.service | grep ActiveState=active'",
hints = {"markup": "pango", "separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
#status.register("netspeed",
#status.register("net_speed",
# hints = {"separator": False, "separator_block_width": 0},)
#status.register("text",
# text="|",
# hints = {"separator": False, "separator_block_width": 0},)
#status.register("external_ip",
# color="#fff",
# color_down="#fff",
# format="E:{v4cidr}",
# format_down="X",
# hints = {"markup": "pango", "separator": False, "separator_block_width": 0},)
#
#status.register("text",
# text="|",
# hints = {"separator": False, "separator_block_width": 0},)
# Note: requires both netifaces and basiciw (for essid and quality)
#status.register("network",
# interface="wlp2s0",
# format_up=" {essid} {quality:03.0f}%",
# format_down="")
# Shows disk usage of /
# Format:
# 42/128G [86G]
status.register("disk",
path="/",
format="[/]{avail}G",
hints = {"separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
status.register("disk",
path="/home",
format="[/home]{avail}G",
hints = {"separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
# Shows pulseaudio default sink volume
#
# Note: requires libpulseaudio from PyPI
status.register("pulseaudio",
format="{volume}%",format_muted="X",
hints = {"separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
#status.register("shell",
# command="sh ~/.config/i3pystatus/get_volume.sh",
# interval=1,
# hints = {"separator": False, "separator_block_width": 0},)
#
#status.register("text",
# text="|",
# hints = {"separator": False, "separator_block_width": 0},)
status.register("shell",
command="python ~/.config/i3pystatus/headset.py",
interval=1,
hints = {"separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
status.register("redshift",
hints = {"separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
status.register("taskwarrior",
format = "{next}({project})[{urgent}/{ready}]",
hints = {"separator": False, "separator_block_width": 0},)
status.register("text",
text="|",
hints = {"separator": False, "separator_block_width": 0},)
#status.register("timewarrior",
# hints = {"markup": "pango", "separator": False, "separator_block_width": 0},)
#
#status.register("text",
# text="|",
# hints = {"separator": False, "separator_block_width": 0},)
#status.register("backlight",
# hints = {"markup": "pango", "separator": False, "separator_block_width": 0},)
#
#status.register("text",
# text="|",
# hints = {"separator": False, "separator_block_width": 0},)
#status.register("backlight",
# format="{brightness}",)
#status.register("shell",
# command="~/.i3-blocks/blocks/brightness",)
# Shows mpd status
# Format:
# Cloud connected▶Reroute to Remain
status.register("cmus",
format="{status} {song_elapsed}/{song_length} {artist} - {title}",
status={
"stopped": "◾",
"playing": "▶",
"paused": "▷",
},
format_not_running="",
hints = {"separator": False, "separator_block_width": 0},)
status.register("now_playing",
player="clementine",
color="#ffc080",
hints = {"separator": False, "separator_block_width": 0},
format='{status} {artist} - {title} {song_elapsed}/{song_length}',
# status = {
# "Playing": "plsay",
# "Paused": "pause",
# "Stopped": "stop",
# }
)
status.run()