diff options
| author | neodarz <neodarz@neodarz.net> | 2019-09-04 20:50:48 +0200 | 
|---|---|---|
| committer | neodarz <neodarz@neodarz.net> | 2019-09-04 20:50:48 +0200 | 
| commit | 892b5a1db93271f3a53b4f6487f4ad20e5005d67 (patch) | |
| tree | 84f046ea2561679672c3b2e6a9464e8f048bc7da | |
| parent | 948d791be2c14409958450f02292cb7cb7e5b0f2 (diff) | |
| download | dotfiles-892b5a1db93271f3a53b4f6487f4ad20e5005d67.tar.xz dotfiles-892b5a1db93271f3a53b4f6487f4ad20e5005d67.zip | |
Add i3pystatus
Diffstat (limited to '')
| -rw-r--r-- | config.yaml | 6 | ||||
| -rw-r--r-- | dotfiles/config/i3pystatus/conf.py | 302 | ||||
| -rwxr-xr-x | dotfiles/config/i3pystatus/get_volume.sh | 3 | ||||
| -rw-r--r-- | dotfiles/config/i3pystatus/headset.py | 21 | 
4 files changed, 332 insertions, 0 deletions
| diff --git a/config.yaml b/config.yaml index 2694881..7c238de 100644 --- a/config.yaml +++ b/config.yaml @@ -3,4 +3,10 @@ config:    create: true    dotpath: dotfiles  dotfiles: +  d_i3pystatus: +    src: config/i3pystatus +    dst: ~/.config/i3pystatus  profiles: +  unicorn: +    dotfiles: +    - d_i3pystatus diff --git a/dotfiles/config/i3pystatus/conf.py b/dotfiles/config/i3pystatus/conf.py new file mode 100644 index 0000000..1a09983 --- /dev/null +++ b/dotfiles/config/i3pystatus/conf.py @@ -0,0 +1,302 @@ +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/ +#status.register("battery", +#    format="{status} {percentage:.2f}% [{percentage_design:.2f}%] {remaining:%E%hh:%Mm}", +#    alert=True, +#    alert_percentage=5, +#    status={ +#        "DIS": "↓", +#        "CHR": "↑", +#        "FULL": "=", +#    },) + + +# 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="<span color=\"#fff\">I:{v4cidr}</span>", +    format_down="<span color=\"#fff\">X</span>", +    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="<span color=\"#fff\">E:{v4cidr}</span>", +#    format_down="<span color=\"#fff\">X</span>", +#    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() + diff --git a/dotfiles/config/i3pystatus/get_volume.sh b/dotfiles/config/i3pystatus/get_volume.sh new file mode 100755 index 0000000..e0372f2 --- /dev/null +++ b/dotfiles/config/i3pystatus/get_volume.sh @@ -0,0 +1,3 @@ +#!/bin/sh + +echo $(if [[ $(echo $(pacmd list | grep "active port") | cut -d" " -f3 | cut -d"<" -f2 | cut -d">" -f1) == "analog-output-lineout" ]]; then echo "Headphones"; elif [[ $(echo $(pacmd list | grep "active port") | cut -d" " -f3 | cut -d"<" -f2 | cut -d">" -f1) == "analog-output-headphones" ]]; then echo "Line Out"; fi) diff --git a/dotfiles/config/i3pystatus/headset.py b/dotfiles/config/i3pystatus/headset.py new file mode 100644 index 0000000..8668300 --- /dev/null +++ b/dotfiles/config/i3pystatus/headset.py @@ -0,0 +1,21 @@ +import json + +try: +    with open('/tmp/parrotZikBattery') as json_data: +        data = json.load(json_data) + +    try: +        if "data" in data: +            out = str(data["data"]["level"])+"% ("+data["data"]["state"]+")" +            print(out) +        elif "error" in data: +            print(data["error"]) +    except TypeError: +        print("X") +except OSError as e: +    if e.errno == 2: +        print("X") +    else: +        print(e) + + | 
