diff --git a/Makefile b/Makefile index 4bf910b..58c22f4 100644 --- a/Makefile +++ b/Makefile @@ -97,7 +97,7 @@ bootstrap_mac: check_os link bootstrap_common oh_my_zsh homebrew install_brew_ba @echo "Bootstrapped mac components!" .PHONY: bootstrap_common -bootstrap_common: check_os link_all_common set_default_theme prepare_projects_dir prepare_screenshots_dir prepare_scripts_cache_dir install_vim install_asdf alacritty_terminfo +bootstrap_common: check_os link_all_common prepare_projects_dir prepare_screenshots_dir prepare_scripts_cache_dir install_vim install_asdf alacritty_terminfo @echo "Bootstrapped common components!" .PHONY: link @@ -190,10 +190,6 @@ link_xconfig: check_os link_i3config: check_os link_xconfig link_apps_config @echo "Linking i3 config files..." -.PHONY: set_default_theme -set_default_theme: check_os - @echo 'gruvbox-dark' > $(DOTFILES_DIR)/themes/current-theme - # TODO Parametrize projects dir creation and automate gitconfig setup .PHONY: prepare_projects_dir prepare_projects_dir: check_os diff --git a/symlinks/bin/blocks-scripts/bandwidth b/symlinks/bin/blocks-scripts/bandwidth deleted file mode 100755 index d9d3ab2..0000000 --- a/symlinks/bin/blocks-scripts/bandwidth +++ /dev/null @@ -1,90 +0,0 @@ -#!/bin/bash -# Copyright (C) 2012 Stefan Breunig -# Copyright (C) 2014 kaueraal -# Copyright (C) 2015 Thiago Perrotta - -# 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 3 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, see . - -# Use the provided interface, otherwise the device used for the default route. -if [[ -n $BLOCK_INSTANCE ]]; then - INTERFACE=$BLOCK_INSTANCE -else - INTERFACE=$(ip route | awk '/^default/ { print $5 ; exit }') -fi - -# Issue #36 compliant. -if ! [ -e "/sys/class/net/${INTERFACE}/operstate" ] || ! [ "`cat /sys/class/net/${INTERFACE}/operstate`" = "up" ] -then - echo "$INTERFACE down" - echo "$INTERFACE down" - echo "#FF0000" - exit 0 -fi - -# path to store the old results in -path="/dev/shm/$(basename $0)-${INTERFACE}" - -# grabbing data for each adapter. -read rx < "/sys/class/net/${INTERFACE}/statistics/rx_bytes" -read tx < "/sys/class/net/${INTERFACE}/statistics/tx_bytes" - -# get time -time=$(date +%s) - -# write current data if file does not exist. Do not exit, this will cause -# problems if this file is sourced instead of executed as another process. -if ! [[ -f "${path}" ]]; then - echo "${time} ${rx} ${tx}" > "${path}" - chmod 0666 "${path}" -fi - -# read previous state and update data storage -read old < "${path}" -echo "${time} ${rx} ${tx}" > "${path}" - -# parse old data and calc time passed -old=(${old//;/ }) -time_diff=$(( $time - ${old[0]} )) - -# sanity check: has a positive amount of time passed -[[ "${time_diff}" -gt 0 ]] || exit - -# calc bytes transferred, and their rate in byte/s -rx_diff=$(( $rx - ${old[1]} )) -tx_diff=$(( $tx - ${old[2]} )) -rx_rate=$(( $rx_diff / $time_diff )) -tx_rate=$(( $tx_diff / $time_diff )) - -# shift by 10 bytes to get KiB/s. If the value is larger than -# 1024^2 = 1048576, then display MiB/s instead - -# incoming -echo -n "IN " -rx_kib=$(( $rx_rate >> 10 )) -if [[ "$rx_rate" -gt 1048576 ]]; then - printf '%sM' "`echo "scale=1; $rx_kib / 1024" | bc`" -else - echo -n "${rx_kib}K" -fi - -echo -n " " - -# outgoing -echo -n "OUT " -tx_kib=$(( $tx_rate >> 10 )) -if [[ "$tx_rate" -gt 1048576 ]]; then - printf '%sM' "`echo "scale=1; $tx_kib / 1024" | bc`" -else - echo -n "${tx_kib}K" -fi diff --git a/symlinks/bin/blocks-scripts/battery b/symlinks/bin/blocks-scripts/battery deleted file mode 100755 index 5ba6498..0000000 --- a/symlinks/bin/blocks-scripts/battery +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/perl -# -# Copyright 2014 Pierre Mavro -# Copyright 2014 Vivien Didelot -# -# Licensed under the terms of the GNU GPL v3, or any later version. -# -# This script is meant to use with i3blocks. It parses the output of the "acpi" -# command (often provided by a package of the same name) to read the status of -# the battery, and eventually its remaining time (to full charge or discharge). -# -# The color will gradually change for a percentage below 85%, and the urgency -# (exit code 33) is set if there is less that 5% remaining. - -use strict; -use warnings; -use utf8; - -my $acpi; -my $status; -my $percent; -my $full_text; -my $short_text; -my $bat_number = $ENV{BLOCK_INSTANCE} || 0; - -# read the first line of the "acpi" command output -open (ACPI, "acpi -b | grep 'Battery $bat_number' |") or die; -$acpi = ; -close(ACPI); - -# fail on unexpected output -if ($acpi !~ /: (\w+), (\d+)%/) { - die "$acpi\n"; -} - -$status = $1; -$percent = $2; -$full_text = "$percent%"; - -if ($status eq 'Discharging') { - $full_text .= ' DIS'; -} elsif ($status eq 'Charging') { - $full_text .= ' CHR'; -} - -$short_text = $full_text; - -if ($acpi =~ /(\d\d:\d\d):/) { - $full_text .= " ($1)"; -} - -# print text -print "$full_text\n"; -print "$short_text\n"; - -# consider color and urgent flag only on discharge -if ($status eq 'Discharging') { - - if ($percent < 20) { - print "#FF0000\n"; - } elsif ($percent < 40) { - print "#FFAE00\n"; - } elsif ($percent < 60) { - print "#FFF600\n"; - } elsif ($percent < 85) { - print "#A8FF00\n"; - } - - if ($percent < 5) { - exit(33); - } -} - -exit(0); diff --git a/symlinks/bin/blocks-scripts/cpu_usage b/symlinks/bin/blocks-scripts/cpu_usage deleted file mode 100755 index 8c3c1f5..0000000 --- a/symlinks/bin/blocks-scripts/cpu_usage +++ /dev/null @@ -1,55 +0,0 @@ -#!/usr/bin/perl -# -# Copyright 2014 Pierre Mavro -# Copyright 2014 Vivien Didelot -# Copyright 2014 Andreas Guldstrand -# -# Licensed under the terms of the GNU GPL v3, or any later version. - -use strict; -use warnings; -use utf8; -use Getopt::Long; - -# default values -my $t_warn = 50; -my $t_crit = 80; -my $cpu_usage = -1; - -sub help { - print "Usage: cpu_usage [-w ] [-c ]\n"; - print "-w : warning threshold to become yellow\n"; - print "-c : critical threshold to become red\n"; - exit 0; -} - -GetOptions("help|h" => \&help, - "w=i" => \$t_warn, - "c=i" => \$t_crit); - -# Get CPU usage -$ENV{LC_ALL}="en_US"; # if mpstat is not run under en_US locale, things may break, so make sure it is -open (MPSTAT, 'mpstat 1 1 |') or die; -while () { - if (/^.*\s+(\d+\.\d+)\s+$/) { - $cpu_usage = 100 - $1; # 100% - %idle - last; - } -} -close(MPSTAT); - -$cpu_usage eq -1 and die 'Can\'t find CPU information'; - -# Print short_text, full_text -printf "%.2f%%\n", $cpu_usage; -printf "%.2f%%\n", $cpu_usage; - -# Print color, if needed -if ($cpu_usage >= $t_crit) { - print "#FF0000\n"; - exit 33; -} elsif ($cpu_usage >= $t_warn) { - print "#FFFC00\n"; -} - -exit 0; diff --git a/symlinks/bin/blocks-scripts/disk b/symlinks/bin/blocks-scripts/disk deleted file mode 100755 index 5511eac..0000000 --- a/symlinks/bin/blocks-scripts/disk +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -# Copyright (C) 2014 Julien Bonjean - -# 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 3 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, see . - -DIR="${BLOCK_INSTANCE:-$HOME}" -ALERT_LOW="${1:-10}" # color will turn red under this value (default: 10%) - -df -h -P -l "$DIR" | awk -v alert_low=$ALERT_LOW ' -/\/.*/ { - # full text - print $4 - - # short text - print $4 - - use=$5 - - # no need to continue parsing - exit 0 -} - -END { - gsub(/%$/,"",use) - if (100 - use < alert_low) { - # color - print "#FF0000" - } -} -' diff --git a/symlinks/bin/blocks-scripts/gpmdp-playing b/symlinks/bin/blocks-scripts/gpmdp-playing deleted file mode 100755 index e64eebe..0000000 --- a/symlinks/bin/blocks-scripts/gpmdp-playing +++ /dev/null @@ -1,74 +0,0 @@ -#!/usr/bin/python -import json -from os.path import expanduser -import sys -import argparse - -home = expanduser("~") -parser = argparse.ArgumentParser(formatter_class=argparse.RawTextHelpFormatter, description="Parses and print Google Play Music Desktop Player song info") - -def parseJson(): - try: - with open(home + '/.config/Google Play Music Desktop Player/json_store/playback.json') as f: - data = f.read() - except: - with open(home + '/GPMDP_STORE/playback.json') as f: - data = f.read() - return json.loads(data) - -def getSong(data): - return data['song']['title'] - -def getAlbum(data): - return data['song']['album'] - -def getArtist(data): - return data['song']['artist'] - -def convert_time(ms): - x = ms / 1000 - x % 60 - m, s = divmod(x, 60) - return "%d:%02d" % (m, s) -def getProgress(data): - cur = data['time']['current'] - total = data['time']['total'] - return convert_time(cur) + "/" + convert_time(total) - -def parseLayout(layout): - displaystr = "" - for i in layout: - if i == 't': - displaystr += getSong(data) - elif i == 'a': - displaystr += getAlbum(data) - elif i == 'A': - displaystr += getArtist(data) - elif i == 'p': - displaystr += getProgress(data) - elif i == '-': - displaystr += " - " - return displaystr - -def run(data, layout): - displaystr = "" - if data['playing']: - displaystr = parseLayout(layout) - else: - sys.stdout.write(" ") - if sys.version[0] == '2': - print(displaystr.encode('utf-8')) - else: - print(displaystr) - -parser.add_argument("--layout", - action="store", - dest="layout", - help="t = Song Title\na = Song Album\nA = Artist Name\np = Track time progess\n- = Spacer\nExample: t-a-A-p", - ) -args = parser.parse_args() -data = parseJson() -try: - run(data, args.layout) -except: - run(data, "t-a-A-p") diff --git a/symlinks/bin/blocks-scripts/iface b/symlinks/bin/blocks-scripts/iface deleted file mode 100755 index 7014979..0000000 --- a/symlinks/bin/blocks-scripts/iface +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash -# Copyright (C) 2014 Julien Bonjean -# Copyright (C) 2014 Alexander Keller - -# 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 3 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, see . - -#------------------------------------------------------------------------ - -# Use the provided interface, otherwise the device used for the default route. -if [[ -n $BLOCK_INSTANCE ]]; then - IF=$BLOCK_INSTANCE -else - IF=$(ip route | awk '/^default/ { print $5 ; exit }') -fi - -#------------------------------------------------------------------------ - -# As per #36 -- It is transparent: e.g. if the machine has no battery or wireless -# connection (think desktop), the corresponding block should not be displayed. -[[ ! -d /sys/class/net/${IF} ]] && exit - -#------------------------------------------------------------------------ - -if [[ "$(cat /sys/class/net/$IF/operstate)" = 'down' ]]; then - echo down # full text - echo down # short text - echo \#FF0000 # color - exit -fi - -case $1 in - -4) - AF=inet ;; - -6) - AF=inet6 ;; - *) - AF=inet6? ;; -esac - -# if no interface is found, use the first device with a global scope -IPADDR=$(ip addr show $IF | perl -n -e "/$AF ([^\/]+).* scope global/ && print \$1 and exit") - -case $BLOCK_BUTTON in - 3) echo -n "$IPADDR" | xclip -q -se c ;; -esac - -#------------------------------------------------------------------------ - -echo "$IPADDR" # full text -echo "$IPADDR" # short text diff --git a/symlinks/bin/blocks-scripts/keyindicator b/symlinks/bin/blocks-scripts/keyindicator deleted file mode 100755 index 9c21505..0000000 --- a/symlinks/bin/blocks-scripts/keyindicator +++ /dev/null @@ -1,70 +0,0 @@ -#!/usr/bin/perl -# -# Copyright 2014 Marcelo Cerri -# -# 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 3 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, see . - -use strict; -use warnings; -use utf8; -use Getopt::Long; -use File::Basename; - -# Default values -my $indicator = $ENV{BLOCK_INSTANCE} || "CAPS"; -my $color_on = "#00FF00"; -my $color_off = "#222222"; - -sub help { - my $program = basename($0); - printf "Usage: %s [-c ] [-C ]\n", $program; - printf " -c : hex color to use when indicator is on\n"; - printf " -C : hex color to use when indicator is off\n"; - printf "\n"; - printf "Note: environment variable \$BLOCK_INSTANCE should be one of:\n"; - printf " CAPS, NUM (default is CAPS).\n"; - exit 0; -} - -Getopt::Long::config qw(no_ignore_case); -GetOptions("help|h" => \&help, - "c=s" => \$color_on, - "C=s" => \$color_off) or exit 1; - -# Key mapping -my %indicators = ( - CAPS => 0x00000001, - NUM => 0x00000002, -); - -# Retrieve key flags -my $mask = 0; -open(XSET, "xset -q |") or die; -while () { - if (/LED mask:\s*([0-9]+)/) { - $mask = $1; - last; - } -} -close(XSET); - -# Output -printf "%s\n", $indicator; -printf "%s\n", $indicator; -if (($indicators{$indicator} || 0) & $mask) { - printf "%s\n", $color_on; -} else { - printf "%s\n", $color_off; -} -exit 0 diff --git a/symlinks/bin/blocks-scripts/load_average b/symlinks/bin/blocks-scripts/load_average deleted file mode 100755 index 37a5c71..0000000 --- a/symlinks/bin/blocks-scripts/load_average +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh -# Copyright (C) 2014 Julien Bonjean - -# 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 3 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, see . - -load="$(cut -d ' ' -f1 /proc/loadavg)" -cpus="$(nproc)" - -# full text -echo "$load" - -# short text -echo "$load" - -# color if load is too high -awk -v cpus=$cpus -v cpuload=$load ' - BEGIN { - if (cpus <= cpuload) { - print "#FF0000"; - exit 33; - } - } -' diff --git a/symlinks/bin/blocks-scripts/locale b/symlinks/bin/blocks-scripts/locale deleted file mode 100755 index 11abc87..0000000 --- a/symlinks/bin/blocks-scripts/locale +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -case $BLOCK_BUTTON in - 1) ~/.config/other-scripts/switch-input.sh -esac - -setxkbmap -query | grep -i "layout" | awk '{print $2}' diff --git a/symlinks/bin/blocks-scripts/mediaplayer b/symlinks/bin/blocks-scripts/mediaplayer deleted file mode 100755 index b3d3ecb..0000000 --- a/symlinks/bin/blocks-scripts/mediaplayer +++ /dev/null @@ -1,76 +0,0 @@ -#!/usr/bin/perl -# Copyright (C) 2014 Tony Crisci - -# 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 3 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, see . - -# Requires playerctl binary to be in your path (except cmus) -# See: https://github.com/acrisci/playerctl - -# Set instance=NAME in the i3blocks configuration to specify a music player -# (playerctl will attempt to connect to org.mpris.MediaPlayer2.[NAME] on your -# DBus session). - -use Env qw(BLOCK_INSTANCE); - -my @metadata = (); -my $player_arg = ""; - -if ($BLOCK_INSTANCE) { - $player_arg = "--player='$BLOCK_INSTANCE'"; -} - -if ($ENV{'BLOCK_BUTTON'} == 1) { - system("playerctl $player_arg previous"); -} elsif ($ENV{'BLOCK_BUTTON'} == 2) { - system("playerctl $player_arg play-pause"); -} elsif ($ENV{'BLOCK_BUTTON'} == 3) { - system("playerctl $player_arg next"); -} - -if ($player_arg eq '' or $player_arg =~ /cmus$/) { - # try cmus first - my @cmus = split /^/, qx(cmus-remote -Q); - if ($? == 0) { - foreach my $line (@cmus) { - my @data = split /\s/, $line; - if (shift @data eq 'tag') { - my $key = shift @data; - my $value = join ' ', @data; - - @metadata[0] = $value if $key eq 'artist'; - @metadata[1] = $value if $key eq 'title'; - } - } - - if (@metadata) { - # metadata found so we are done - print(join ' - ', @metadata); - exit 0; - } - } - - # if cmus was given, we are done - exit 0 unless $player_arg eq ''; -} - -my $artist = qx(playerctl $player_arg metadata artist); -# exit status will be nonzero when playerctl cannot find your player -exit(0) if $?; -push(@metadata, $artist) if $artist; - -my $title = qx(playerctl $player_arg metadata title); -exit(0) if $?; -push(@metadata, $title) if $title; - -print(join(" - ", @metadata)) if @metadata; diff --git a/symlinks/bin/blocks-scripts/memory b/symlinks/bin/blocks-scripts/memory deleted file mode 100755 index e28af4e..0000000 --- a/symlinks/bin/blocks-scripts/memory +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -# Copyright (C) 2014 Julien Bonjean - -# 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 3 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, see . - -TYPE="${BLOCK_INSTANCE:-mem}" - -awk -v type=$TYPE ' -/^MemTotal:/ { - mem_total=$2 -} -/^MemFree:/ { - mem_free=$2 -} -/^Buffers:/ { - mem_free+=$2 -} -/^Cached:/ { - mem_free+=$2 -} -/^SwapTotal:/ { - swap_total=$2 -} -/^SwapFree:/ { - swap_free=$2 -} -END { - # full text - if (type == "swap") - printf("%.1fG\n", (swap_total-swap_free)/1024/1024) - else - printf("%.1fG\n", mem_free/1024/1024) - - # TODO: short text - - # TODO: color (if less than X%) -} -' /proc/meminfo diff --git a/symlinks/bin/blocks-scripts/openvpn b/symlinks/bin/blocks-scripts/openvpn deleted file mode 100755 index 02aaba4..0000000 --- a/symlinks/bin/blocks-scripts/openvpn +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/perl -# Made by Pierre Mavro/Deimosfr -# 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() { - 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() { - 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() { - 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; diff --git a/symlinks/bin/blocks-scripts/temperature b/symlinks/bin/blocks-scripts/temperature deleted file mode 100755 index ad745c3..0000000 --- a/symlinks/bin/blocks-scripts/temperature +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/perl -# Copyright 2014 Pierre Mavro -# Copyright 2014 Vivien Didelot -# Copyright 2014 Andreas Guldstrand -# Copyright 2014 Benjamin Chretien - -# 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 3 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, see . - -use strict; -use warnings; -use utf8; -use Getopt::Long; - -binmode(STDOUT, ":utf8"); - -# default values -my $t_warn = 70; -my $t_crit = 90; -my $chip = ""; -my $temperature = -9999; - -sub help { - print "Usage: temperature [-w ] [-c ] [--chip ]\n"; - print "-w : warning threshold to become yellow\n"; - print "-c : critical threshold to become red\n"; - print "--chip : sensor chip\n"; - exit 0; -} - -GetOptions("help|h" => \&help, - "w=i" => \$t_warn, - "c=i" => \$t_crit, - "chip=s" => \$chip); - -# Get chip temperature -open (SENSORS, "sensors -u $chip |") or die; -while () { - if (/^\s+temp1_input:\s+[\+]*([\-]*\d+\.\d)/) { - $temperature = $1; - last; - } -} -close(SENSORS); - -$temperature eq -9999 and die 'Cannot find temperature'; - -# Print short_text, full_text -print "$temperature°C\n" x2; - -# Print color, if needed -if ($temperature >= $t_crit) { - print "#FF0000\n"; - exit 33; -} elsif ($temperature >= $t_warn) { - print "#FFFC00\n"; -} - -exit 0; diff --git a/symlinks/bin/blocks-scripts/volume b/symlinks/bin/blocks-scripts/volume deleted file mode 100755 index a55db88..0000000 --- a/symlinks/bin/blocks-scripts/volume +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/bash -# Copyright (C) 2014 Julien Bonjean -# Copyright (C) 2014 Alexander Keller - -# 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 3 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, see . - -#------------------------------------------------------------------------ - -# The second parameter overrides the mixer selection -# For PulseAudio users, use "pulse" -# For Jack/Jack2 users, use "jackplug" -# For ALSA users, you may use "default" for your primary card -# or you may use hw:# where # is the number of the card desired -MIXER="default" -[ -n "$(lsmod | grep pulse)" ] && MIXER="pulse" -[ -n "$(lsmod | grep jack)" ] && MIXER="jackplug" -MIXER="${2:-$MIXER}" - -# The instance option sets the control to report and configure -# This defaults to the first control of your selected mixer -# For a list of the available, use `amixer -D $Your_Mixer scontrols` -SCONTROL="${BLOCK_INSTANCE:-$(amixer -D $MIXER scontrols | - sed -n "s/Simple mixer control '\([A-Za-z ]*\)',0/\1/p" | - head -n1 - )}" - -# The first parameter sets the step to change the volume by (and units to display) -# This may be in in % or dB (eg. 5% or 3dB) -STEP="${1:-5%}" - -#------------------------------------------------------------------------ - -capability() { # Return "Capture" if the device is a capture device - amixer -D $MIXER get $SCONTROL | - sed -n "s/ Capabilities:.*cvolume.*/Capture/p" -} - -volume() { - amixer -D $MIXER get $SCONTROL $(capability) -} - -format() { - perl_filter='if (/.*\[(\d+%)\] (\[(-?\d+.\d+dB)\] )?\[(on|off)\]/)' - perl_filter+='{CORE::say $4 eq "off" ? "MUTE" : "' - # If dB was selected, print that instead - perl_filter+=$([[ $STEP = *dB ]] && echo '$3' || echo '$1') - perl_filter+='"; exit}' - perl -ne "$perl_filter" -} - -#------------------------------------------------------------------------ - -case $BLOCK_BUTTON in - 3) amixer -q -D $MIXER sset $SCONTROL $(capability) toggle ;; # right click, mute/unmute - 4) amixer -q -D $MIXER sset $SCONTROL $(capability) ${STEP}+ unmute ;; # scroll up, increase - 5) amixer -q -D $MIXER sset $SCONTROL $(capability) ${STEP}- unmute ;; # scroll down, decrease -esac - -volume | format diff --git a/symlinks/bin/blocks-scripts/wifi b/symlinks/bin/blocks-scripts/wifi deleted file mode 100755 index ffaccab..0000000 --- a/symlinks/bin/blocks-scripts/wifi +++ /dev/null @@ -1,46 +0,0 @@ -#!/bin/bash -# Copyright (C) 2014 Alexander Keller - -# 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 3 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, see . - -#------------------------------------------------------------------------ - -INTERFACE="${BLOCK_INSTANCE:-wlan0}" - -#------------------------------------------------------------------------ - -# As per #36 -- It is transparent: e.g. if the machine has no battery or wireless -# connection (think desktop), the corresponding block should not be displayed. -[[ ! -d /sys/class/net/${INTERFACE}/wireless ]] || - [[ "$(cat /sys/class/net/$INTERFACE/operstate)" = 'down' ]] && exit - -#------------------------------------------------------------------------ - -QUALITY=$(grep $INTERFACE /proc/net/wireless | awk '{ print int($3 * 100 / 70) }') - -#------------------------------------------------------------------------ - -echo $QUALITY% # full text -echo $QUALITY% # short text - -# color -if [[ $QUALITY -ge 80 ]]; then - echo "#00FF00" -elif [[ $QUALITY -lt 80 ]]; then - echo "#FFF600" -elif [[ $QUALITY -lt 60 ]]; then - echo "#FFAE00" -elif [[ $QUALITY -lt 40 ]]; then - echo "#FF0000" -fi