summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--i3blocks.conf107
-rw-r--r--i3status.conf43
-rw-r--r--i3wm.conf44
-rwxr-xr-xinstall39
-rw-r--r--install.config1
-rwxr-xr-xscripts/battery.sh60
-rwxr-xr-xscripts/eth.sh15
-rwxr-xr-xscripts/print_bash_color (renamed from print_bash_color)0
-rwxr-xr-xscripts/wifi.sh42
9 files changed, 330 insertions, 21 deletions
diff --git a/i3blocks.conf b/i3blocks.conf
new file mode 100644
index 0000000..54dc8d6
--- /dev/null
+++ b/i3blocks.conf
@@ -0,0 +1,107 @@
+# dotfiles -- i3blocks
+# author: johannst
+
+
+# NOTE:
+# Env Variables exported to scripts specified in 'command='
+# BLOCK_NAME=name # indicator block name '[name]'
+# BLOCK_INSTANCE=inst # value of 'instance=inst'
+# BLOCK_INTERVAL=10 # value of 'interval=10'
+# BLOCK_BUTTON=1 # set to '1' if script gets triggered by click event
+# BLOCK_X=795 # x coordinate of click event
+# BLOCK_Y=9 # y coordinate of click event
+#
+# Coloring indicator blocks
+# color=#FF0000 # sets text color
+# background=#222222 # sets block background
+# border=#9FBC00 # sets color of visible block border
+#
+# Trigger block action by signal
+# signal=1 # trigger command by sending SIGRTMIN+1
+# signal=8 # trigger command by sending SIGRTMIN+8
+
+
+#
+# Global settings
+#
+
+command=/usr/lib/i3blocks/$BLOCK_NAME
+markup=none
+separator_block_width=15
+#separator=false
+border_top=0
+border_left=0
+border_right=0
+border_bottom=2
+
+#
+# Network
+#
+
+[eth]
+command=$HOME/.scripts/eth.sh
+instance=enp0s25
+label=:
+interval=10
+# light green
+border=#9FBC00
+
+[wifi]
+command=$HOME/.scripts/wifi.sh --ap_quality --ap_name
+instance=wlp3s0
+label=:
+interval=10
+# bright grey
+border=#928374
+
+#
+# Load
+#
+
+[load_average]
+label=:
+interval=10
+# red
+border=#cc241d
+
+#
+# Battery
+#
+
+[battery]
+command=$HOME/.scripts/battery.sh
+label=:
+instance=BAT0
+interval=5
+# yellow - orange
+border=#d79921
+
+#
+# Volume
+#
+
+[volume]
+label=:
+instance=Master
+interval=5
+# light purple
+border=#b16286
+
+#
+# Date Time
+#
+
+[date]
+command=echo ":$(date '+%Y-%m-%d')"
+interval=60
+separator=false
+separator_block_width=5
+# blue
+border=#458588
+
+[time]
+command=echo ":$(date '+%H:%M:%S')"
+interval=5
+# olive
+border=#98971a
+
diff --git a/i3status.conf b/i3status.conf
index 0f96e5e..287e71d 100644
--- a/i3status.conf
+++ b/i3status.conf
@@ -6,44 +6,61 @@ general {
interval = 5
}
-order += "wireless wlan0"
-order += "ethernet eth0"
+__DEF__WIFI_START__
+order += "wireless __NIF_WIFI__"
+__DEF__WIFI_END__
+__DEF__ETH_START__
+order += "ethernet __NIF_ETH__"
+__DEF__ETH_END__
order += "battery 0"
order += "load"
order += "volume master"
order += "tztime local"
-wireless wlan0 {
- format_up = "W: (%quality at %essid, %bitrate) %ip"
- format_down = "W: down"
+__DEF__WIFI_START__
+# wifi: f1eb
+wireless __NIF_WIFI__ {
+ format_up = ": (%quality at %essid, %bitrate) %ip"
+ #format_down = ": down"
}
+__DEF__WIFI_END__
-ethernet eth0 {
- format_up = "E: %ip (%speed)"
- format_down = "E: down"
+__DEF__ETH_START__
+# sitemap: f0e8
+# ion-arrow-swap: f268
+ethernet __NIF_ETH__ {
+ format_up = ": %ip (%speed)"
+ format_down = ":down"
}
+__DEF__ETH_END__
+# plug: f1e6
battery 0 {
# show battery capacity in relation to last full capacity instead of the design capacity
last_full_capacity = true
integer_battery_capacity = true
low_threshold = 30
threshold_type = "percentage"
- format = "%status %percentage %remaining %consumption"
+ format = ": %status %percentage %remaining %consumption"
path = "/sys/class/power_supply/BAT%d/uevent"
}
tztime local {
- format = "%Y-%m-%d %H:%M:%S"
+ format = ": %Y-%m-%d : %H:%M:%S"
}
+# chart: f1fe
load {
- format = "%1min"
+ format = ": %1min"
}
+# headphone: f025
+# X: f00d
+# volume-off f3b9
+# volume-up f3ba
volume master {
- format = "♪: %volume"
- format_muted = "♪: muted (%volume)"
+ format = ": %volume"
+ format_muted = ": muted (%volume)"
device = "default"
mixer = "Master"
mixer_idx = 0
diff --git a/i3wm.conf b/i3wm.conf
index b6ea62f..b70dac6 100644
--- a/i3wm.conf
+++ b/i3wm.conf
@@ -1,8 +1,6 @@
# dotfiles -- i3config
# author: johannst
-# i3 config file (v4)
-
# helpful cmdline tools:
# * xev
# * xmodmap
@@ -12,15 +10,18 @@ set $mod Mod1
# super key
#set $mod Mod4
-font pango:Terminus 10
+#font pango:Terminus 12
+font pango:xos4 Terminus 12
# mouse+$mod to move/rezie window in floating mode
floating_modifier $mod
# launch terminal
-bindsym $mod+Return exec st
+bindsym $mod+Return exec i3-sensible-terminal
# launch dmenu_run
bindsym $mod+d exec dmenu_run
+# launch dmenu_run
+bindsym $mod+p exec passmenu
# kill focused Window
bindsym $mod+Shift+c kill
# reload the configuration file
@@ -142,7 +143,23 @@ bindsym XF86AudioMute exec "amixer set Master toggle"
#}}}
#{{{ lock/suspend
-set $lock_cmd i3lock --inactivity-timeout 30s -d --ignore-empty-password -c 455a64
+#set $lock_cmd i3lock --inactivity-timeout 30s -d --ignore-empty-password -c 455a64 -i ~/.i3/lock.png
+set $lock_cmd i3lock \
+ --ignore-empty-password \
+ -B=100 \
+ --indicator \
+ --indpos="100:800" \
+ --radius 30 \
+ --insidecolor=00000000 \
+ --insidevercolor=00000000 \
+ --insidewrongcolor=00000000 \
+ --ringcolor=ffffff80 \
+ --ringvercolor=fffffff0 \
+ --ringwrongcolor=ff0000ff \
+ --veriftext="" \
+ --wrongtext="" \
+ --keyhlcolor=00ff0080 \
+ --bshlcolor=ff000080
# lock screen
bindsym $mod+Control+l exec $lock_cmd
@@ -164,17 +181,28 @@ mode "$power_mode" {
# Start i3bar
bar {
- status_command i3status --config ~/.i3/i3status.conf
+ font pango: xos4 Terminus, Font Awesome 5 Free, Ionicons 10
+ position top
+ height 26
+ status_command i3blocks -c ~/.i3/i3blocks.conf
+ #status_command i3status --config ~/.i3/i3status.conf
+
+ #separator_symbol "■"
+ #tray_output LVDS-1
+ #tray_padding 0
}
#}}}
# PLAYGROUND
+gaps outer 0
+gaps inner 5
+
# pin applications to specific workspace
# helpfull to get name: 'xprop | grep WM_CLASS' (then click window)
-assign [class="Firefox"] 9
+#assign [class="Firefox"] 9
-bindsym $mod+p exec "notify-send \\"Hello, i3; $USER\\""
+#bindsym $mod+p exec "notify-send \\"Hello, i3; $USER\\""
#% vim:fen:fdm=marker:fmr={{{,}}}:fdl=0:fdc=1
diff --git a/install b/install
index ef110cf..159b352 100755
--- a/install
+++ b/install
@@ -16,6 +16,7 @@ gToolsConfig=(
"Xresources:xterm:xtermConfigInstaller"
"i3config:i3:i3ConfigInstaller"
"i3status:i3status:i3statusConfigInstaller"
+"i3blocks:i3blocks:i3blocksConfigInstaller"
)
gMagicNumber=e2718281
@@ -153,6 +154,44 @@ function i3statusConfigInstaller() {
return 1
fi
cp i3status.conf $i3_status_conf
+
+ local nif=$(ip link show | grep ^[1-9] | grep -v LOOPBACK | sed 's/ //g' | cut -d ':' -f 2)
+
+ local num_wlanif=$(echo -e $nif | tr ' ' '\n' | grep wl | wc -l)
+ local wlanif=$(echo -e $nif | tr ' ' '\n' | grep wl)
+ if [[ $num_wlanif != 1 || -z $wlanif ]]; then
+ echo "[Warning]: i3statusConfigInstaller couldn't find name of WIFI IF!"
+ sed -i '/__DEF__WIFI_START__/,/__DEF__WIFI_END__/d' $i3_status_conf
+ else
+ sed -i "s/__NIF_WIFI__/$wlanif/g" $i3_status_conf
+ fi
+
+ local num_ethif=$(echo -e $nif | tr ' ' '\n' | grep en | wc -l)
+ local ethif=$(echo -e $nif | tr ' ' '\n' | grep en)
+ if [[ $num_ethif != 1 || -z $ethif ]]; then
+ echo "[Warning]: i3statusConfigInstaller couldn't find name of ETH IF!"
+ sed -i '/__DEF__ETH_START__/,/__DEF__ETH_END__/d' $i3_status_conf
+ else
+ sed -i "s/__NIF_ETH__/$ethif/g" $i3_status_conf
+ fi
+
+ sed -i '/__DEF__.*__/d' $i3_status_conf
+
+ return 0
+}
+
+#}}}
+#{{{ i3blocksConfigInstaller
+
+function i3blocksConfigInstaller() {
+ local i3_home=~/.i3
+ local i3_blocks_conf=$i3_home/i3blocks.conf
+ mkdir $i3_home 2> /dev/null
+ if [ -f $i3_blocks_conf ]; then
+ return 1
+ fi
+ cp i3blocks.conf $i3_blocks_conf
+
return 0
}
diff --git a/install.config b/install.config
index 5e82273..42b8c9c 100644
--- a/install.config
+++ b/install.config
@@ -13,3 +13,4 @@ n - vimrc
n - Xresources
n - i3config
n - i3status
+n - i3blocks
diff --git a/scripts/battery.sh b/scripts/battery.sh
new file mode 100755
index 0000000..05ac440
--- /dev/null
+++ b/scripts/battery.sh
@@ -0,0 +1,60 @@
+#!/bin/bash
+# dotfiles -- scripts/battery.sh
+# author: johannst
+
+bat="${BLOCK_INSTANCE:-BAT0}"
+[[ ! -f "/sys/class/power_supply/$bat/type" ]] && exit 0
+
+show_bat_use_design_capacity=0
+show_bat_status=0
+show_bat_color_output=0
+for arg in "$@"; do
+ case $arg in
+ -dc | --design_capacity) show_bat_use_design_capacity=1
+ ;;
+ -s | --status) show_bat_status=1
+ ;;
+ -c | --color) show_bat_color_output=1
+ ;;
+ *) # ignore unknown
+ ;;
+ esac
+done
+
+# Unknown, Charging, Discharging, Full
+BAT_STATUS=$(cat /sys/class/power_supply/$bat/status)
+BAT_NOW=$(cat /sys/class/power_supply/$bat/charge_now)
+[[ $show_bat_use_design_capacity == 1 ]] \
+ && BAT_FULL=$(cat /sys/class/power_supply/$bat/charge_full_design) \
+ || BAT_FULL=$(cat /sys/class/power_supply/$bat/charge_full)
+
+BAT_POWER=$(echo $BAT_NOW $BAT_FULL | awk '{ print int($1 * 100 / $2); }')
+
+OUT="$BAT_POWER%"
+[[ $show_bat_status == 1 ]] && \
+ case $BAT_STATUS in
+ Charging) OUT="$OUT (Charging)"
+ ;;
+ *) # only show charging state for now
+ ;;
+ esac
+
+echo "$OUT"
+
+[[ $show_bat_color_output == 1 ]] && \
+ # print twice, else colors not working?!
+ echo "$OUT"
+ if [[ $BAT_POWER -ge 80 ]]; then
+ # green
+ echo "#00FF00"
+ elif [[ $BAT_POWER -ge 60 ]]; then
+ # yellow
+ echo "#FFF600"
+ elif [[ $BAT_POWER -ge 40 ]]; then
+ # dark orange
+ echo "#FFAE00"
+ else
+ # red
+ echo "#FF0000"
+ fi
+
diff --git a/scripts/eth.sh b/scripts/eth.sh
new file mode 100755
index 0000000..2fb8b30
--- /dev/null
+++ b/scripts/eth.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+# dotfiles -- scripts/eth.sh
+# author: johannst
+
+if="${BLOCK_INSTANCE:-enp0s25}"
+[[ ! -d /sys/class/net/${if} ]] && exit 0
+
+# operstate: down, up
+[[ "$(cat /sys/class/net/$IF/operstate)" = 'down' ]] && exit 0
+
+# first ipv4 addr
+IP_ADDR=$(ip address show $if | grep 'inet ' | sed 's/\s\+inet \([0-9.]\+\)\/.*/\1/')
+
+echo "$IP_ADDR"
+
diff --git a/print_bash_color b/scripts/print_bash_color
index 43f6fcc..43f6fcc 100755
--- a/print_bash_color
+++ b/scripts/print_bash_color
diff --git a/scripts/wifi.sh b/scripts/wifi.sh
new file mode 100755
index 0000000..6f8417a
--- /dev/null
+++ b/scripts/wifi.sh
@@ -0,0 +1,42 @@
+#!/bin/bash
+# dotfiles -- scripts/wifi.sh
+# author: johannst
+
+if="${BLOCK_INSTANCE:-wlp3s0}"
+[[ ! -d /sys/class/net/${if} ]] && exit 0
+
+show_ap_mac=0
+show_ap_quality=0
+show_ap_name=0
+for arg in "$@"; do
+ case $arg in
+ -aq | --ap_quality) show_ap_quality=1
+ ;;
+ -am | --ap_mac) show_ap_mac=1
+ ;;
+ -an | --ap_name) show_ap_name=1
+ ;;
+ *) # ignore unknown
+ ;;
+ esac
+done
+
+AP_NAME=$(iwgetid -r $if)
+AP_MAC=$(iwgetid -a $if | sed 's/.*\(\([0-9A-F]\{2\}:\)\{5\}[0-9A-F]\{2\}\).*/\1/')
+AP_QUALITY=$(grep $if /proc/net/wireless | awk '{ print int($3 * 100 / 70) }')%
+
+# first ipv4 addr
+IP_ADDR=$(ip address show $if | grep 'inet ' | sed 's/\s\+inet \([0-9.]\+\)\/.*/\1/')
+
+OUT="$IP_ADDR"
+if [[ $show_ap_name == 1 && $show_ap_quality == 1 ]]; then
+ OUT="$OUT ($AP_NAME $AP_QUALITY)"
+elif [[ $show_ap_name == 1 ]]; then
+ OUT="$OUT ($AP_NAME)"
+elif [[ $show_ap_quality == 1 ]]; then
+ OUT="$OUT ($AP_QUALITY)"
+fi
+[[ $show_ap_mac == 1 ]] && OUT="$OUT $AP_MAC"
+
+echo "$OUT"
+