aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.yaml6
-rw-r--r--dotfiles/config/i3pystatus/conf.py302
-rwxr-xr-xdotfiles/config/i3pystatus/get_volume.sh3
-rw-r--r--dotfiles/config/i3pystatus/headset.py21
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)
+
+