Ajout de confs i3blocks
This commit is contained in:
parent
43deb35e00
commit
b0e02d01ce
3 changed files with 211 additions and 149 deletions
180
.i3blocks/batterybar
Executable file
180
.i3blocks/batterybar
Executable file
|
@ -0,0 +1,180 @@
|
|||
#!/usr/bin/env bash
|
||||
# batterybar; displays battery percentage as a bar on i3blocks
|
||||
#
|
||||
# Copyright 2015 Keftaa <adnan.37h@gmail.com>
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify
|
||||
# it under the terms of the GNU General Public License as published by
|
||||
# the Free Software Foundation; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||||
# MA 02110-1301, USA.
|
||||
#
|
||||
#
|
||||
readarray -t output <<< $(acpi battery)
|
||||
battery_count=${#output[@]}
|
||||
|
||||
for line in "${output[@]}";
|
||||
do
|
||||
percentages+=($(echo "$line" | grep -o -m1 '[0-9]\{1,3\}%' | tr -d '%'))
|
||||
statuses+=($(echo "$line" | egrep -o -m1 'Discharging|Charging|AC|Full|Unknown'))
|
||||
remaining=$(echo "$line" | egrep -o -m1 '[0-9][0-9]:[0-9][0-9]')
|
||||
if [[ -n $remaining ]]; then
|
||||
remainings+=(" ($remaining)")
|
||||
else
|
||||
remainings+=("")
|
||||
fi
|
||||
done
|
||||
|
||||
#There are 8 colors that reflect the current battery percentage when
|
||||
#discharging
|
||||
dis_colors=("#F2777A" "#F2777A" "#F99157" "#F99157" "#FFCC66" "#FFCC66"
|
||||
"#99CC99" "#99CC99")
|
||||
charging_color="#66CCCC"
|
||||
full_color="#D3D0C8"
|
||||
ac_color="#6699CC"
|
||||
|
||||
|
||||
while getopts 1:2:3:4:5:6:7:8:c:f:a:h opt; do
|
||||
case "$opt" in
|
||||
1) dis_colors[0]="$OPTARG";;
|
||||
2) dis_colors[1]="$OPTARG";;
|
||||
3) dis_colors[2]="$OPTARG";;
|
||||
4) dis_colors[3]="$OPTARG";;
|
||||
5) dis_colors[4]="$OPTARG";;
|
||||
6) dis_colors[5]="$OPTARG";;
|
||||
7) dis_colors[6]="$OPTARG";;
|
||||
8) dis_colors[7]="$OPTARG";;
|
||||
c) charging_color="$OPTARG";;
|
||||
f) full_color="$OPTARG";;
|
||||
a) ac_color="$OPTARG";;
|
||||
h) printf "Usage: batterybar [OPTION] color
|
||||
When discharging, there are 8 [1-8] levels colors.
|
||||
You can specify custom colors, for example:
|
||||
|
||||
batterybar -1 red -2 \"#F6F6F6\" -8 green
|
||||
|
||||
You can also specify the colors for the charging, AC and
|
||||
charged states:
|
||||
|
||||
batterybar -c green -f white -a \"#EEEEEE\"\n";
|
||||
exit 0;
|
||||
esac
|
||||
done
|
||||
|
||||
end=$(($battery_count - 1))
|
||||
for i in $(seq 0 $end);
|
||||
do
|
||||
# if (( percentages[$i] > 0 && percentages[$i] < 20 )); then
|
||||
# squares="■"
|
||||
# elif (( percentages[$i] >= 20 && percentages[$i] < 40 )); then
|
||||
# squares="■■"
|
||||
# elif (( percentages[$i] >= 40 && percentages[$i] < 60 )); then
|
||||
# squares="■■■"
|
||||
# elif (( percentages[$i] >= 60 && percentages[$i] < 80 )); then
|
||||
# squares="■■■■"
|
||||
# elif (( percentages[$i] >=80 )); then
|
||||
# squares="■■■■■"
|
||||
# fi
|
||||
percents[$i]=$(( percentages[$i] / 2 ))
|
||||
(( percents > 48 )) && percents=48
|
||||
_full_squares=$(( percents[$i] /8 ))
|
||||
for t in $(seq 1 $_full_squares)
|
||||
do
|
||||
squares+="█"
|
||||
done
|
||||
|
||||
if [[ $(( percents[$i] - ( _full_squares * 8 ) )) -eq 7 ]]
|
||||
then
|
||||
squares+="▉"
|
||||
#squares+="▇"
|
||||
elif [[ $(( percents[$i] - ( _full_squares * 8 ) )) -eq 6 ]]
|
||||
then
|
||||
squares+="▊"
|
||||
#squares+="▆"
|
||||
elif [[ $(( percents[$i] - ( _full_squares * 8 ) )) -eq 5 ]]
|
||||
then
|
||||
squares+="▋"
|
||||
#squares+="▅"
|
||||
elif [[ $(( percents[$i] - ( _full_squares * 8 ) )) -eq 4 ]]
|
||||
then
|
||||
squares+="▌"
|
||||
#squares+="▄"
|
||||
elif [[ $(( percents[$i] - ( _full_squares * 8 ) )) -eq 3 ]]
|
||||
then
|
||||
squares+="▍"
|
||||
#squares+="▃"
|
||||
elif [[ $(( percents[$i] - ( _full_squares * 8 ) )) -eq 2 ]]
|
||||
then
|
||||
squares+="▎"
|
||||
#squares+="▂"
|
||||
elif [[ $(( percents[$i] - ( _full_squares * 8 ) )) -eq 1 ]]
|
||||
then
|
||||
squares+="▏"
|
||||
#squares+="▁"
|
||||
fi
|
||||
|
||||
if [[ "${statuses[$i]}" = "Unknown" ]]; then
|
||||
squares="<sup>?</sup>$squares"
|
||||
fi
|
||||
|
||||
case "${statuses[$i]}" in
|
||||
"Charging")
|
||||
color="$charging_color"
|
||||
if (( percentages[$i] <= 10 ))
|
||||
then echo 0 on > /proc/acpi/ibm/led
|
||||
fi
|
||||
;;
|
||||
"Full")
|
||||
color="$full_color"
|
||||
;;
|
||||
"AC")
|
||||
color="$ac_color"
|
||||
;;
|
||||
"Discharging"|"Unknown")
|
||||
if (( percentages[$i] >= 0 && percentages[$i] < 10 )); then
|
||||
color="${dis_colors[0]}"
|
||||
echo 0 blink > /proc/acpi/ibm/led
|
||||
elif (( percentages[$i] >= 10 && percentages[$i] < 20 )); then
|
||||
color="${dis_colors[1]}"
|
||||
elif (( percentages[$i] >= 20 && percentages[$i] < 30 )); then
|
||||
color="${dis_colors[2]}"
|
||||
elif (( percentages[$i] >= 30 && percentages[$i] < 40 )); then
|
||||
color="${dis_colors[3]}"
|
||||
elif (( percentages[$i] >= 40 && percentages[$i] < 60 )); then
|
||||
color="${dis_colors[4]}"
|
||||
elif (( percentages[$i] >= 60 && percentages[$i] < 70 )); then
|
||||
color="${dis_colors[5]}"
|
||||
elif (( percentages[$i] >= 70 && percentages[$i] < 80 )); then
|
||||
color="${dis_colors[6]}"
|
||||
elif (( percentages[$i] >= 80 )); then
|
||||
color="${dis_colors[7]}"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
_blanks=$(( 6 - ${#squares} ))
|
||||
for t in $(seq 1 $_blanks)
|
||||
do
|
||||
squares+=" "
|
||||
done
|
||||
# Print Battery number if there is more than one
|
||||
if (( $end > 0 )) ; then
|
||||
message="$message$(($i + 1)): "
|
||||
fi
|
||||
|
||||
if [[ "$BLOCK_BUTTON" -eq 1 ]]; then
|
||||
message="$message${statuses[$i]} <span foreground=\"$color\">${percentages[$i]}%${remainings[i]}</span> "
|
||||
fi
|
||||
message="$message<span foreground=\"$color\" background=\"#515151\">$squares</span>"
|
||||
done
|
||||
|
||||
echo "$message"
|
31
.i3blocks/internet
Executable file
31
.i3blocks/internet
Executable file
|
@ -0,0 +1,31 @@
|
|||
#!/bin/bash
|
||||
|
||||
color=""
|
||||
|
||||
if ! nmcli dev | grep " connecté" &>/dev/null
|
||||
then
|
||||
color="#515151"
|
||||
if [ ! -f /dev/shm/claws_offline ]
|
||||
then
|
||||
claws-mail --offline
|
||||
touch /dev/shm/claws_offline
|
||||
fi
|
||||
elif ping -c 1 93.184.216.34 -W 1 &>/dev/null
|
||||
then
|
||||
color="#99CC99"
|
||||
if [ -f /dev/shm/claws_offline ]
|
||||
then
|
||||
claws-mail --online
|
||||
rm /dev/shm/claws_offline
|
||||
fi
|
||||
else
|
||||
color="#F2777A"
|
||||
if [ ! -f /dev/shm/claws_offline ]
|
||||
then
|
||||
claws-mail --offline
|
||||
touch /dev/shm/claws_offline
|
||||
color="#FFCC66"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "<span foreground=\"$color\">█</span>"
|
|
@ -1,149 +0,0 @@
|
|||
#!/usr/bin/perl
|
||||
# Made by Pierre Mavro/Deimosfr <deimos@deimos.fr>
|
||||
# Licensed under the terms of the GNU GPL v3, or any later version.
|
||||
# Version: 0.2
|
||||
|
||||
# Usage:
|
||||
# 1. The configuration name of OpenVPN should be familiar for you (home,work...)
|
||||
# 2. The device name in your configuration file should be fully named (tun0,tap1...not only tun or tap)
|
||||
# 3. When you launch one or multiple OpenVPN connexion, be sure the PID file is written in the correct folder (ex: --writepid /run/openvpn/home.pid)
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use utf8;
|
||||
use Getopt::Long;
|
||||
|
||||
my $openvpn_enabled='/dev/shm/openvpn_i3blocks_enabled';
|
||||
my $openvpn_disabled='/dev/shm/openvpn_i3blocks_disabled';
|
||||
|
||||
# Print output
|
||||
sub print_output {
|
||||
my $ref_pid_files = shift;
|
||||
my @pid_files = @$ref_pid_files;
|
||||
my $change=0;
|
||||
|
||||
# Total pid files
|
||||
my $total_pid = @pid_files;
|
||||
if ($total_pid == 0) {
|
||||
print "VPN: down\n"x2;
|
||||
# Delete OpenVPN i3blocks temp files
|
||||
if (-f $openvpn_enabled) {
|
||||
unlink $openvpn_enabled or die "Can't delete $openvpn_enabled\n";
|
||||
# Colorize if VPN has just went down
|
||||
print '#FF0000\n';
|
||||
}
|
||||
unless (-f $openvpn_disabled) {
|
||||
open(my $shm, '>', $openvpn_disabled) or die "Can't write $openvpn_disabled\n";
|
||||
}
|
||||
exit(0);
|
||||
}
|
||||
|
||||
# Check if interface device is present
|
||||
my $vpn_found=0;
|
||||
my $pid;
|
||||
my $cmd_line;
|
||||
my @config_name;
|
||||
my @config_path;
|
||||
my $interface;
|
||||
my $current_config_path;
|
||||
my $current_config_name;
|
||||
foreach (@pid_files) {
|
||||
# Get current PID
|
||||
$pid=0;
|
||||
open(PID, '<', $_);
|
||||
while(<PID>) {
|
||||
chomp $_;
|
||||
$pid = $_;
|
||||
}
|
||||
close(PID);
|
||||
# Check if PID has been found
|
||||
if ($pid ==0) {
|
||||
print "Can't get PID $_: $!\n";
|
||||
}
|
||||
|
||||
# Check if PID is still alive
|
||||
$cmd_line='/proc/'.$pid.'/cmdline';
|
||||
if (-f $cmd_line) {
|
||||
# Get config name
|
||||
open(CMD_LINE, '<', $cmd_line);
|
||||
while(<CMD_LINE>) {
|
||||
chomp $_;
|
||||
if ($_ =~ /--config\s*(.*\.conf)/) {
|
||||
# Get interface from config file
|
||||
$current_config_path = $1;
|
||||
# Remove unwanted escape chars
|
||||
$current_config_path =~ s/\x{00}//g;
|
||||
$interface = 'null';
|
||||
# Get configuration name
|
||||
if ($current_config_path =~ /(\w+).conf/) {
|
||||
$current_config_name=$1;
|
||||
} else {
|
||||
$current_config_name='unknow';
|
||||
}
|
||||
# Get OpenVPN interface device name
|
||||
open(CONFIG, '<', $current_config_path) or die "Can't read config file '$current_config_path': $!\n";
|
||||
while(<CONFIG>) {
|
||||
chomp $_;
|
||||
if ($_ =~ /dev\s+(\w+)/) {
|
||||
$interface=$1;
|
||||
last;
|
||||
}
|
||||
}
|
||||
close(CONFIG);
|
||||
# check if interface exist
|
||||
unless ($interface eq 'null') {
|
||||
if (-d "/sys/class/net/$interface") {
|
||||
push @config_name, $current_config_name;
|
||||
$vpn_found=1;
|
||||
# Write enabled file
|
||||
unless (-f $openvpn_enabled) {
|
||||
open(my $shm, '>', $openvpn_enabled) or die "Can't write $openvpn_enabled\n";
|
||||
$change=1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
close(CMD_LINE);
|
||||
}
|
||||
}
|
||||
|
||||
# Check if PID found
|
||||
my $names;
|
||||
my $short_status;
|
||||
if ($vpn_found == 1) {
|
||||
$names = join('/', @config_name);
|
||||
$short_status='up';
|
||||
} else {
|
||||
$short_status='down';
|
||||
$names = $short_status;
|
||||
}
|
||||
|
||||
print "VPN: $names\n";
|
||||
print "VPN: $short_status\n";
|
||||
|
||||
# Print color if there were changes
|
||||
print "#00FF00\n" if ($change == 1);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
|
||||
sub check_opts {
|
||||
# Vars
|
||||
my @pid_file=glob '/run/openvpn/*.pid';
|
||||
|
||||
# Set options
|
||||
GetOptions( "help|h" => \&help,
|
||||
"p=s" => \@pid_file);
|
||||
|
||||
print_output(\@pid_file);
|
||||
}
|
||||
|
||||
sub help {
|
||||
print "Usage: openvpn [-d pid folder files]\n";
|
||||
print "-d : pid folder files (default /run/openvpn/*.pid)\n";
|
||||
print "Note: devices in configuration file should be named with their number (ex: tun0, tap1)\n";
|
||||
exit(1);
|
||||
}
|
||||
|
||||
&check_opts;
|
Loading…
Reference in a new issue