From 4ac586098b5bef99a583875f334cef3cc83f2514 Mon Sep 17 00:00:00 2001 From: Florian RICHER Date: Fri, 6 May 2022 22:36:59 +0200 Subject: [PATCH] Remove dot_config/i3/i3blocks.conf Remove dot_config/i3/keybindings Remove dot_config/i3/scripts/bandwidth2 Remove dot_config/i3/scripts/battery-pinebook-pro Remove dot_config/i3/scripts/battery1 Remove dot_config/i3/scripts/battery2 Remove dot_config/i3/scripts/blur-lock Remove dot_config/i3/scripts/cpu_usage Remove dot_config/i3/scripts/disk Remove dot_config/i3/scripts/empty_workspace Remove dot_config/i3/scripts/keyboard-switch Remove dot_config/i3/scripts/keyhint Remove dot_config/i3/scripts/keyhint-2 Remove dot_config/i3/scripts/memory Remove dot_config/i3/scripts/openweather Remove dot_config/i3/scripts/openweather.conf Remove dot_config/i3/scripts/powermenu Remove dot_config/i3/scripts/temperature Remove dot_config/i3/scripts/volume Remove dot_config/i3/scripts/vpn --- dot_config/i3/i3blocks.conf | 155 ----------------- dot_config/i3/keybindings | 103 ------------ dot_config/i3/scripts/bandwidth2 | 104 ------------ dot_config/i3/scripts/battery-pinebook-pro | 18 -- dot_config/i3/scripts/battery1 | 114 ------------- dot_config/i3/scripts/battery2 | 106 ------------ dot_config/i3/scripts/blur-lock | 11 -- dot_config/i3/scripts/cpu_usage | 62 ------- dot_config/i3/scripts/disk | 48 ------ dot_config/i3/scripts/empty_workspace | 10 -- dot_config/i3/scripts/keyboard-switch | 5 - dot_config/i3/scripts/keyhint | 25 --- dot_config/i3/scripts/keyhint-2 | 6 - dot_config/i3/scripts/memory | 69 -------- dot_config/i3/scripts/openweather | 93 ----------- dot_config/i3/scripts/openweather.conf | 5 - dot_config/i3/scripts/powermenu | 186 --------------------- dot_config/i3/scripts/temperature | 86 ---------- dot_config/i3/scripts/volume | 83 --------- dot_config/i3/scripts/vpn | 25 --- 20 files changed, 1314 deletions(-) delete mode 100644 dot_config/i3/i3blocks.conf delete mode 100644 dot_config/i3/keybindings delete mode 100644 dot_config/i3/scripts/bandwidth2 delete mode 100644 dot_config/i3/scripts/battery-pinebook-pro delete mode 100644 dot_config/i3/scripts/battery1 delete mode 100644 dot_config/i3/scripts/battery2 delete mode 100644 dot_config/i3/scripts/blur-lock delete mode 100644 dot_config/i3/scripts/cpu_usage delete mode 100644 dot_config/i3/scripts/disk delete mode 100644 dot_config/i3/scripts/empty_workspace delete mode 100644 dot_config/i3/scripts/keyboard-switch delete mode 100644 dot_config/i3/scripts/keyhint delete mode 100644 dot_config/i3/scripts/keyhint-2 delete mode 100644 dot_config/i3/scripts/memory delete mode 100644 dot_config/i3/scripts/openweather delete mode 100644 dot_config/i3/scripts/openweather.conf delete mode 100644 dot_config/i3/scripts/powermenu delete mode 100644 dot_config/i3/scripts/temperature delete mode 100644 dot_config/i3/scripts/volume delete mode 100644 dot_config/i3/scripts/vpn diff --git a/dot_config/i3/i3blocks.conf b/dot_config/i3/i3blocks.conf deleted file mode 100644 index 1967a11..0000000 --- a/dot_config/i3/i3blocks.conf +++ /dev/null @@ -1,155 +0,0 @@ -# i3blocks config file changed for EndeavourOS-i3 setup - -# source is available here: -# https://raw.githubusercontent.com/endeavouros-team/endeavouros-i3wm-setup/main/.config/i3/i3blocks.conf -# Maintainer: joekamprad [joekamprad@endeavouros.com] -# Former Visual Designer: Florent Valetti [@FLVAL EndeavourOS] -# created for i3wm setup on EndeavourOS -# https://endeavouros.com - -# cheatsheet for icon fonts used on the block-bar: -# https://fontawesome.com/v4.7/cheatsheet/ - -# --> to update this run the following command: -# wget --backups=1 https://raw.githubusercontent.com/endeavouros-team/endeavouros-i3wm-setup/main/.config/i3/i3blocks.conf -P ~/.config/i3/ - -# Please see man i3blocks for a complete reference! -# The man page is also hosted at http://vivien.github.io/i3blocks - - -# List of valid properties: -# -# align -# color -# command -# full_text -# instance -# interval -# label -# min_width -# name -# separator -# separator_block_width -# short_text -# signal -# urgent - -# Global properties -# -# The top properties below are applied to every block, but can be overridden. -separator=false -markup=pango - -[terminal] -full_text=  -color=#807dfe -command=i3-msg -q exec xfce4-terminal - -[browser] -full_text=  -color=#ff7f81 -command=i3-msg -q exec firefox - -[files] -full_text=  -color=#7f3fbf -command=i3-msg -q exec thunar ~/ - -#[mail] -#full_text=  -#color=#dbcb75 -#command=i3-msg -q exec thunderbird - -[simple-2] -full_text=: : -color=#717171 - -# Disk usage -# -# The directory defaults to $HOME if the instance is not specified. -# The script may be called with a optional argument to set the alert -# (defaults to 10 for 10%). -[disk] -label= -instance=/ -command=~/.config/i3/scripts/disk -interval=30 - -# Memory usage -# -# The type defaults to "mem" if the instance is not specified. -[memory] -label= -command=~/.config/i3/scripts/memory -interval=2 - -[cpu_usage] -label= -command=~/.config/i3/scripts/cpu_usage -#min_width=CPU: 100.00% -interval=2 - -[CPU-temperature] -label= -command=~/.config/i3/scripts/temperature -interval=30 -#T_WARN=70 -#T_CRIT=90 -#SENSOR_CHIP="" -# where SENSOR_CHIP can be find with sensors output -# can be used also for GPU temperature or other temperature sensors lm-sensors detects. - -# showing name of connected network (enable for wifi use) -#[net] -#label= -#command=echo "$(LANG=C nmcli d | grep connected | awk '{print $4}')" -#interval=30 - -[bandwidth] -command=~/.config/i3/scripts/bandwidth2 -interval=persist - -# Battery indicator -#[battery] -#command=~/.config/i3/scripts/battery2 -# for alternative battery script change to battery1 -# change this to battery-pinebook-pro if you are running on pinebook-pro -#label= -#interval=30 - -[simple-2] -full_text=: : -color=#717171 - -[pavucontrol] -full_text= -command=pavucontrol - -[volume-pulseaudio] -command=~/.config/i3/scripts/volume -instance=Master -interval=1 - -# display keyboard layout name -# for keyboard layouts switcher -# see i3 config file -#[keyboard-layout] -#command=~/.config/i3/scripts/keyboard-layout -#interval=2 - -[keybindings] -full_text= -command=~/.config/i3/scripts/keyhint - -[time] -#label= -command=date '+%a %d %b %H:%M:%S' -interval=1 - -[shutdown_menu] -full_text= -command=~/.config/i3/scripts/powermenu - -[simple-2] -full_text=: : -color=#717171 diff --git a/dot_config/i3/keybindings b/dot_config/i3/keybindings deleted file mode 100644 index 693a1ad..0000000 --- a/dot_config/i3/keybindings +++ /dev/null @@ -1,103 +0,0 @@ -EndeavourOS i3wm Keybindings cheat sheet: - ---> to update this run the following command: -wget --backups=1 https://raw.githubusercontent.com/endeavouros-team/endeavouros-i3wm-setup/main/.config/i3/keybindings -P ~/.config/i3/ - -All sources and updates are available at GitHub: -https://github.com/endeavouros-team/endeavouros-i3wm-setup - -For reference consult our WIKI: -https://discovery.endeavouros.com/window-tiling-managers/i3-wm/ - - = windows key - -# start xfce4-terminal -+Return - -# kill focused window -+q - -# Application menu search by typing (fancy Rofi menu): -+d - -# Window switcher menu (fancy Rofi menu): -+t - -# fancy exit-menu on bottom right: -+Shift+e - -# Lock the system -# lock with a picture or blurring the screen (options in config) -+l - -# reload the configuration file -+Shift+c - -# restart i3 inplace (preserves your layout/session, can be used to upgrade i3) -+Shift+r - -# full keybinding list in editor: -+F1 - -# change window focus -+j focus left -+k focus down -+b focus up -+o focus right - -# alternatively, you can use the cursor keys: -+Left focus left -+Down focus down -+Up focus up -+Right focus right - -# move a focused window -+Shift+j move left -+Shift+k move down -+Shift+b move up -+Shift+o move right - -# alternatively, you can use the cursor keys: -+Shift+Left move left -+Shift+Down move down -+Shift+Up move up -+Shift+Right move right - -# split in horizontal orientation -+h split h - -# split in vertical orientation -+v split v - -# enter fullscreen mode for the focused container -+f fullscreen toggle - -# change container layout (stacked, tabbed, toggle split) -+s layout stacking -+g layout tabbed -+e layout toggle split - -# toggle tiling / floating -+Shift+space floating toggle - -# change focus between tiling / floating windows -+space focus mode_toggle - -# focus the parent container -+a focus parent - -# focus the child container -#+d focus child - -# resize floating window -+right mouse button - -## Multimedia Keys - -# Redirect sound to headphones -+p - -## App shortcuts -+w starts Firefox -+n starts Thunar - Button screenshot diff --git a/dot_config/i3/scripts/bandwidth2 b/dot_config/i3/scripts/bandwidth2 deleted file mode 100644 index b03250e..0000000 --- a/dot_config/i3/scripts/bandwidth2 +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (C) 2015 James Murphy -# Licensed under the terms of the GNU GPL v2 only. -# -# i3blocks blocklet script to monitor bandwidth usage - -iface="${BLOCK_INSTANCE}" -iface="${IFACE:-$iface}" -dt="${DT:-3}" -unit="${UNIT:-MB}" -LABEL="${LABEL:-}" # down arrow up arrow -printf_command="${PRINTF_COMMAND:-"printf \"${LABEL}%1.0f/%1.0f %s/s\\n\", rx, wx, unit;"}" - -function default_interface { - ip route | awk '/^default via/ {print $5; exit}' -} - -function check_proc_net_dev { - if [ ! -f "/proc/net/dev" ]; then - echo "/proc/net/dev not found" - exit 1 - fi -} - -function list_interfaces { - check_proc_net_dev - echo "Interfaces in /proc/net/dev:" - grep -o "^[^:]\\+:" /proc/net/dev | tr -d " :" -} - -while getopts i:t:u:p:lh opt; do - case "$opt" in - i) iface="$OPTARG" ;; - t) dt="$OPTARG" ;; - u) unit="$OPTARG" ;; - p) printf_command="$OPTARG" ;; - l) list_interfaces && exit 0 ;; - h) printf \ -"Usage: bandwidth3 [-i interface] [-t time] [-u unit] [-p printf_command] [-l] [-h] -Options: --i\tNetwork interface to measure. Default determined using \`ip route\`. --t\tTime interval in seconds between measurements. Default: 3 --u\tUnits to measure bytes in. Default: Mb -\tAllowed units: Kb, KB, Mb, MB, Gb, GB, Tb, TB -\tUnits may have optional it/its/yte/ytes on the end, e.g. Mbits, KByte --p\tAwk command to be called after a measurement is made. -\tDefault: printf \"%%-5.1f/%%5.1f %%s/s\\\\n\", rx, wx, unit; -\tExposed variables: rx, wx, tx, unit, iface --l\tList available interfaces in /proc/net/dev --h\tShow this help text -" && exit 0;; - esac -done - -check_proc_net_dev - -iface="${iface:-$(default_interface)}" -while [ -z "$iface" ]; do - echo No default interface - sleep "$dt" - iface=$(default_interface) -done - -case "$unit" in - Kb|Kbit|Kbits) bytes_per_unit=$((1024 / 8));; - KB|KByte|KBytes) bytes_per_unit=$((1024));; - Mb|Mbit|Mbits) bytes_per_unit=$((1024 * 1024 / 8));; - MB|MByte|MBytes) bytes_per_unit=$((1024 * 1024));; - Gb|Gbit|Gbits) bytes_per_unit=$((1024 * 1024 * 1024 / 8));; - GB|GByte|GBytes) bytes_per_unit=$((1024 * 1024 * 1024));; - Tb|Tbit|Tbits) bytes_per_unit=$((1024 * 1024 * 1024 * 1024 / 8));; - TB|TByte|TBytes) bytes_per_unit=$((1024 * 1024 * 1024 * 1024));; - *) echo Bad unit "$unit" && exit 1;; -esac - -scalar=$((bytes_per_unit * dt)) -init_line=$(cat /proc/net/dev | grep "^[ ]*$iface:") -if [ -z "$init_line" ]; then - echo Interface not found in /proc/net/dev: "$iface" - exit 1 -fi - -init_received=$(awk '{print $2}' <<< $init_line) -init_sent=$(awk '{print $10}' <<< $init_line) - -(while true; do cat /proc/net/dev; sleep "$dt"; done) |\ - stdbuf -oL grep "^[ ]*$iface:" |\ - awk -v scalar="$scalar" -v unit="$unit" -v iface="$iface" ' -BEGIN{old_received='"$init_received"';old_sent='"$init_sent"'} -{ - received=$2 - sent=$10 - rx=(received-old_received)/scalar; - wx=(sent-old_sent)/scalar; - tx=rx+wr; - old_received=received; - old_sent=sent; - if(rx >= 0 && wx >= 0){ - '"$printf_command"'; - fflush(stdout); - } -} -' diff --git a/dot_config/i3/scripts/battery-pinebook-pro b/dot_config/i3/scripts/battery-pinebook-pro deleted file mode 100644 index fd97370..0000000 --- a/dot_config/i3/scripts/battery-pinebook-pro +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env bash -#simple Shellscript for i3blocks on Pinebook pro -#05012020 geri123@gmx.net Gerhard S. -#battery-symbols: on Manjaro you need the awesome-terminal-fonts package installed! -PERCENT=$(cat /sys/class/power_supply/cw2015-battery/capacity) -STATUS=$(cat /sys/class/power_supply/cw2015-battery/status) -case $(( - $PERCENT >= 0 && $PERCENT <= 20 ? 1 : - $PERCENT > 20 && $PERCENT <= 40 ? 2 : - $PERCENT > 40 && $PERCENT <= 60 ? 3 : - $PERCENT > 60 && $PERCENT <= 80 ? 4 : 5)) in -# - (1) echo $STATUS:"" :$PERCENT%;; - (2) echo $STATUS:"" :$PERCENT%;; - (3) echo $STATUS:"" :$PERCENT%;; - (4) echo $STATUS:"" :$PERCENT%;; - (5) echo $STATUS:"" :$PERCENT%;; -esac diff --git a/dot_config/i3/scripts/battery1 b/dot_config/i3/scripts/battery1 deleted file mode 100644 index 3b9d5a7..0000000 --- a/dot_config/i3/scripts/battery1 +++ /dev/null @@ -1,114 +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. - -# Edited by Andreas Lindlbauer - -use strict; -use warnings; -use utf8; - -# otherwise we get in console "Wide character in print at" -binmode(STDOUT, ':utf8'); - -# my $acpi; -my $upower; -my $percent; -my $bat_state; -my $status; -my $ac_adapt; -my $full_text; -my $short_text; -my $label = '😅'; -my $bat_number = $ENV{BLOCK_INSTANCE} || 0; - -open (UPOWER, "upower -i /org/freedesktop/UPower/devices/battery_BAT$bat_number | grep 'percentage' |") or die; -$upower = ; -close(UPOWER); - -# fail on unexpected output -if ($upower !~ /: (\d+)%/) { - die "$upower\n"; -} - -$percent = $1; -$full_text = "$percent%"; - -open (BAT_STATE, "upower -i /org/freedesktop/UPower/devices/battery_BAT$bat_number | grep 'state' |") or die; -$bat_state = ; -close(BAT_STATE); - -if ($bat_state !~ /: (\w+)/) { - die "$bat_state\n"; -} -$status = $1; - -if ($status eq 'discharging') { - $full_text .= ' '; -} elsif ($status eq 'charging') { - $full_text .= ' '; -} elsif ($status eq 'Unknown') { - open (AC_ADAPTER, "acpi -a |") or die; - $ac_adapt = ; - close(AC_ADAPTER); - - if ($ac_adapt =~ /: ([\w-]+)/) { - $ac_adapt = $1; - - if ($ac_adapt eq 'on-line') { - $full_text .= ' CHR'; - } elsif ($ac_adapt eq 'off-line') { - $full_text .= ' DIS'; - } - } -} - -$short_text = $full_text; - -if ($percent < 20) { - $label = ''; -} elsif ($percent < 45) { - $label = ''; -} elsif ($percent < 70) { - $label = ''; -} elsif ($percent < 95) { - $label = ''; -} else { - $label = ''; -} - -# print text -print " ${label}"; -print " $full_text\n"; -print " ${label}"; -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/dot_config/i3/scripts/battery2 b/dot_config/i3/scripts/battery2 deleted file mode 100644 index 2d55dab..0000000 --- a/dot_config/i3/scripts/battery2 +++ /dev/null @@ -1,106 +0,0 @@ -#!/usr/bin/env python3 -# -# Copyright (C) 2016 James Murphy -# Licensed under the GPL version 2 only -# -# A battery indicator blocklet script for i3blocks - -from subprocess import check_output -import os -import re - -config = dict(os.environ) -status = check_output(['acpi'], universal_newlines=True) - -if not status: - # stands for no battery found - color = config.get("color_10", "red") - fulltext = "\uf00d \uf240".format(color) - percentleft = 100 -else: - # if there is more than one battery in one laptop, the percentage left is - # available for each battery separately, although state and remaining - # time for overall block is shown in the status of the first battery - batteries = status.split("\n") - state_batteries=[] - commasplitstatus_batteries=[] - percentleft_batteries=[] - time = "" - for battery in batteries: - if battery!='': - state_batteries.append(battery.split(": ")[1].split(", ")[0]) - commasplitstatus = battery.split(", ") - if not time: - time = commasplitstatus[-1].strip() - # check if it matches a time - time = re.match(r"(\d+):(\d+)", time) - if time: - time = ":".join(time.groups()) - timeleft = " ({})".format(time) - else: - timeleft = "" - - p = int(commasplitstatus[1].rstrip("%\n")) - if p>0: - percentleft_batteries.append(p) - commasplitstatus_batteries.append(commasplitstatus) - state = state_batteries[0] - commasplitstatus = commasplitstatus_batteries[0] - if percentleft_batteries: - percentleft = int(sum(percentleft_batteries)/len(percentleft_batteries)) - else: - percentleft = 0 - - # stands for charging - color = config.get("color_charging", "yellow") - FA_LIGHTNING = "\uf0e7".format(color) - - # stands for plugged in - FA_PLUG = "\uf1e6" - - # stands for using battery - FA_BATTERY = "\uf240" - - # stands for unknown status of battery - FA_QUESTION = "\uf128" - - - if state == "Discharging": - fulltext = FA_BATTERY + " " - elif state == "Full": - fulltext = FA_PLUG + " " - timeleft = "" - elif state == "Unknown": - fulltext = FA_QUESTION + " " + FA_BATTERY + " " - timeleft = "" - else: - fulltext = FA_LIGHTNING + " " + FA_PLUG + " " - - def color(percent): - if percent < 10: - # exit code 33 will turn background red - return config.get("color_10", "#FFFFFF") - if percent < 20: - return config.get("color_20", "#FF3300") - if percent < 30: - return config.get("color_30", "#FF6600") - if percent < 40: - return config.get("color_40", "#FF9900") - if percent < 50: - return config.get("color_50", "#FFCC00") - if percent < 60: - return config.get("color_60", "#FFFF00") - if percent < 70: - return config.get("color_70", "#FFFF33") - if percent < 80: - return config.get("color_80", "#FFFF66") - return config.get("color_full", "#FFFFFF") - - form = '{}%' - fulltext += form.format(color(percentleft), percentleft) - #fulltext += timeleft - -print(fulltext) -print(fulltext) -if percentleft < 10: - exit(33) diff --git a/dot_config/i3/scripts/blur-lock b/dot_config/i3/scripts/blur-lock deleted file mode 100644 index 08e6bf3..0000000 --- a/dot_config/i3/scripts/blur-lock +++ /dev/null @@ -1,11 +0,0 @@ -#!/usr/bin/env bash - -PICTURE=/tmp/i3lock.png -SCREENSHOT="scrot $PICTURE" - -BLUR="5x4" - -$SCREENSHOT -convert $PICTURE -blur $BLUR $PICTURE -i3lock -i $PICTURE -rm $PICTURE diff --git a/dot_config/i3/scripts/cpu_usage b/dot_config/i3/scripts/cpu_usage deleted file mode 100644 index d12e5d6..0000000 --- a/dot_config/i3/scripts/cpu_usage +++ /dev/null @@ -1,62 +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 = $ENV{T_WARN} // 50; -my $t_crit = $ENV{T_CRIT} // 80; -my $cpu_usage = -1; -my $decimals = $ENV{DECIMALS} // 0; -my $label = $ENV{LABEL} // ""; - -sub help { - print "Usage: cpu_usage [-w ] [-c ] [-d ]\n"; - print "-w : warning threshold to become yellow\n"; - print "-c : critical threshold to become red\n"; - print "-d : Use decimals for percentage (default is $decimals) \n"; - exit 0; -} - -GetOptions("help|h" => \&help, - "w=i" => \$t_warn, - "c=i" => \$t_crit, - "d=i" => \$decimals, -); - -# 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\x00]?$/) { - $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 -print "${label}"; -printf "%.${decimals}f%%\n", $cpu_usage; -print "${label}"; -printf "%.${decimals}f%%\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/dot_config/i3/scripts/disk b/dot_config/i3/scripts/disk deleted file mode 100644 index e18c7aa..0000000 --- a/dot_config/i3/scripts/disk +++ /dev/null @@ -1,48 +0,0 @@ -#!/usr/bin/env bash -# 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="${DIR:-$BLOCK_INSTANCE}" -DIR="${DIR:-$HOME}" -ALERT_LOW="${ALERT_LOW:-$1}" -ALERT_LOW="${ALERT_LOW:-10}" # color will turn red under this value (default: 10%) - -LOCAL_FLAG="-l" -if [ "$1" = "-n" ] || [ "$2" = "-n" ]; then - LOCAL_FLAG="" -fi - -df -h -P $LOCAL_FLAG "$DIR" | awk -v label="$LABEL" -v alert_low=$ALERT_LOW ' -/\/.*/ { - # full text - print label $4 - - # short text - print label $4 - - use=$5 - - # no need to continue parsing - exit 0 -} - -END { - gsub(/%$/,"",use) - if (100 - use < alert_low) { - # color - print "#FF0000" - } -} -' diff --git a/dot_config/i3/scripts/empty_workspace b/dot_config/i3/scripts/empty_workspace deleted file mode 100644 index b962cde..0000000 --- a/dot_config/i3/scripts/empty_workspace +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env bash - -MAX_DESKTOPS=20 - -WORKSPACES=$(seq -s '\n' 1 1 ${MAX_DESKTOPS}) - -EMPTY_WORKSPACE=$( (i3-msg -t get_workspaces | tr ',' '\n' | grep num | awk -F: '{print int($2)}' ; \ - echo -e ${WORKSPACES} ) | sort -n | uniq -u | head -n 1) - -i3-msg workspace ${EMPTY_WORKSPACE} diff --git a/dot_config/i3/scripts/keyboard-switch b/dot_config/i3/scripts/keyboard-switch deleted file mode 100644 index 9a3e314..0000000 --- a/dot_config/i3/scripts/keyboard-switch +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -KBD=$(/usr/bin/xkblayout-state print '%s') -echo $KBD - diff --git a/dot_config/i3/scripts/keyhint b/dot_config/i3/scripts/keyhint deleted file mode 100644 index 4997786..0000000 --- a/dot_config/i3/scripts/keyhint +++ /dev/null @@ -1,25 +0,0 @@ -#!/bin/bash - -Main() { - source /usr/share/endeavouros/scripts/eos-script-lib-yad || return 1 - - local command=( - eos_yad --title="EndeavourOS i3-wm keybindings:" --no-buttons --geometry=400x345-15-400 --list - --column=key: --column=description: --column=command: - "ESC" "close this app" "" - "=" "modkey" "(set mod Mod4)" - "+enter" "open a terminal" "" - "+Shift+n" "new empty workspace" "" - "+w" "open Browser" "" - "+n" "open Filebrowser" "" - "+d" "app menu" "" - "+q" "close focused app" "" - "Print-key" "screenshot" "" - "+Shift+e" "logout menu" "" - "+F1" "open keybinding helper" "" - ) - - "${command[@]}" -} - -Main "$@" diff --git a/dot_config/i3/scripts/keyhint-2 b/dot_config/i3/scripts/keyhint-2 deleted file mode 100644 index 2e86d12..0000000 --- a/dot_config/i3/scripts/keyhint-2 +++ /dev/null @@ -1,6 +0,0 @@ -I3_CONFIG=$HOME/.config/i3/config -mod_key=$(sed -nre 's/^set \$mod (.*)/\1/p' ${I3_CONFIG}) -grep "^bindsym" ${I3_CONFIG} \ - | sed "s/-\(-\w\+\)\+//g;s/\$mod/${mod_key}/g;s/Mod1/Alt/g;s/exec //;s/bindsym //;s/^\s\+//;s/^\([^ ]\+\) \(.\+\)$/\2: \1/;s/^\s\+//" \ - | tr -s ' ' \ - | rofi -dmenu -theme ~/.config/rofi/rofikeyhint.rasi diff --git a/dot_config/i3/scripts/memory b/dot_config/i3/scripts/memory deleted file mode 100644 index 6a69a6f..0000000 --- a/dot_config/i3/scripts/memory +++ /dev/null @@ -1,69 +0,0 @@ -#!/usr/bin/env bash -# 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 { - if (type == "swap") { - free=swap_free/1024/1024 - used=(swap_total-swap_free)/1024/1024 - total=swap_total/1024/1024 - } else { - free=mem_free/1024/1024 - used=(mem_total-mem_free)/1024/1024 - total=mem_total/1024/1024 - } - - pct=0 - if (total > 0) { - pct=used/total*100 - } - - # full text - # printf("%.1fG/%.1fG (%.f%%)\n", used, total, pct) - - # short text - printf("%.f%%\n", pct) - - # color - if (pct > 90) { - print("#FF0000") - } else if (pct > 80) { - print("#FFAE00") - } else if (pct > 70) { - print("#FFF600") - } -} -' /proc/meminfo diff --git a/dot_config/i3/scripts/openweather b/dot_config/i3/scripts/openweather deleted file mode 100644 index ad1f8c7..0000000 --- a/dot_config/i3/scripts/openweather +++ /dev/null @@ -1,93 +0,0 @@ -#!/usr/bin/env bash -# Edited by Andreas Lindlbauer - -temps=("#0600FF" "#0500FF" "#0400FF" "#0300FF" "#0200FF" "#0100FF" "#0000FF" "#0002FF" "#0012FF" "#0022FF" "#0032FF" "#0044FF" "#0054FF" "#0064FF" "#0074FF" "#0084FF" "#0094FF" "#00A4FF" "#00B4FF" "#00C4FF" "#00D4FF" "#00E4FF" "#00FFF4" "#00FFD0" "#00FFA8" "#00FF83" "#00FF5C" "#00FF36" "#00FF10" "#17FF00" "#3EFF00" "#65FF00" "#B0FF00" "#FDFF00" "#FFF000" "#FFDC00" "#FFC800" "#FFB400" "#FFA000" "#FF8C00" "#FF7800" "#FF6400" "#FF5000" "#FF3C00" "#FF2800" "#FF1400" "#FF0000") - -command -v jq >/dev/null 2>&1 || { echo >&2 "Program 'jq' required but it is not installed. -Aborting."; exit 1; } -command -v wget >/dev/null 2>&1 || { echo >&2 "Program 'wget' required but is not installed. -Aborting."; exit 1; } - -APIKEY="get your key first" -#ZIPCODE="1234" -#CITY_ID="Get your City ID first" -#URL="http://api.openweathermap.org/data/2.5/weather?id=${CITY_ID}&units=metric&APPID=${APIKEY}" -LAT="Find out your position with your latitude" -LON="and longitude" -URL="http://api.openweathermap.org/data/2.5/onecall?lat=${LAT}&lon=${LON}&units=metric&exclude=minutely,hourly,daily&APPID=${APIKEY}" -WEATHER_RESPONSE=$(wget -qO- "${URL}") - -WEATHER_CONDITION=$(echo "$WEATHER_RESPONSE" | jq '.current.weather[0].main' | sed 's/"//g') -WEATHER_TEMP=$(echo "$WEATHER_RESPONSE" | jq '.current.feels_like') -WEATHER_INT=${WEATHER_TEMP%.*} - -TIME_NOW=$( echo "$WEATHER_RESPONSE" | jq '.current.dt') -SUNRISE=$( echo "$WEATHER_RESPONSE" | jq '.current.sunrise') -SUNSET=$( echo "$WEATHER_RESPONSE" | jq '.current.sunset') -DESCRIPTION=$( echo "$WEATHER_RESPONSE" | jq '.current.weather[0].description' | sed 's/"//g') -WEATHER_ALERT=$( echo "$WEATHER_RESPONSE" | jq '.alerts[0].event' | sed 's/"//g') -DAYTIME="n" - -if [[ "$TIME_NOW" > "$SUNRISE" ]] && [[ "$TIME_NOW" < "$SUNSET" ]]; then - DAYTIME="d" -fi - -case $WEATHER_CONDITION in - 'Clouds') - if [ "$DAYTIME" == "d" ]; then - WEATHER_ICON="" - else - WEATHER_ICON="" - fi - ;; - 'Rain') - WEATHER_ICON="" - ;; - 'Drizzle') - if [ "$DAYTIME" == "d" ]; then - WEATHER_ICON="" - else - WEATHER_ICON="" - fi - ;; - 'Thunderstorm') - WEATHER_ICON="" - ;; - 'Snow') - WEATHER_ICON="" - ;; - 'Clear') - if [ "$DAYTIME" == "d" ]; then - WEATHER_ICON="" - else - WEATHER_ICON="" - fi - ;; - *) - WEATHER_ICON="🌫" - ;; -esac - -WEATHER_COLOR="#FFFFFF" -if [ "$WEATHER_INT" -lt "-11" ]; then - WEATHER_COLOR="#0000FF" -elif [ "$WEATHER_INT" -gt 35 ]; then - WEATHER_COLOR="#FF0000" -else - WEATHER_INT=$(( WEATHER_INT + 11 )) - WEATHER_COLOR="${temps[$WEATHER_INT]}" -fi - -full_text="${WEATHER_ICON} ${WEATHER_TEMP}°C: ${DESCRIPTION} " -if [ "$WEATHER_ALERT" != "null" ]; then - WARN_START=$(echo "$WEATHER_RESPONSE" | jq '.alerts[0].start') - WARN_END=$(echo "$WEATHER_RESPONSE" | jq '.alerts[0].end') - WARN_START=$(date -d @"$WARN_START" +%a_%k:%M) - WARN_END=$(date -d @"$WARN_END" +%a_%k:%M) - full_text="${WEATHER_ICON} ${WEATHER_TEMP}°C: ${DESCRIPTION}  ${WEATHER_ALERT} from ${WARN_START} to ${WARN_END}  " -fi - - -echo "${full_text}" -echo "${WEATHER_TEMP}°C " -echo "${WEATHER_COLOR}" diff --git a/dot_config/i3/scripts/openweather.conf b/dot_config/i3/scripts/openweather.conf deleted file mode 100644 index f11aa86..0000000 --- a/dot_config/i3/scripts/openweather.conf +++ /dev/null @@ -1,5 +0,0 @@ -# Weather -[Weather] -command=~/.config/i3/scripts/openweather -interval=1800 -color=#7275b3 diff --git a/dot_config/i3/scripts/powermenu b/dot_config/i3/scripts/powermenu deleted file mode 100644 index dd0702f..0000000 --- a/dot_config/i3/scripts/powermenu +++ /dev/null @@ -1,186 +0,0 @@ -#!/usr/bin/env bash -# -# Use rofi/zenity to change system runstate thanks to systemd. -# -# Note: this currently relies on associative array support in the shell. -# -# Inspired from i3pystatus wiki: -# https://github.com/enkore/i3pystatus/wiki/Shutdown-Menu -# -# Copyright 2015 Benjamin Chrétien -# -# 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 . - -# modified to work with latest rofi update by joekamprad - -####################################################################### -# BEGIN CONFIG # -####################################################################### - -# Use a custom lock script -#LOCKSCRIPT="i3lock-extra -m pixelize" - -# Colors: FG (foreground), BG (background), HL (highlighted) -FG_COLOR="#bbbbbb" -BG_COLOR="#111111" -HLFG_COLOR="#111111" -HLBG_COLOR="#bbbbbb" -BORDER_COLOR="#222222" - -# Options not related to colors (most rofi options do not work anymore) -ROFI_OPTIONS=(-theme ~/.config/rofi/powermenu.rasi) -# Zenity options -ZENITY_TITLE="Power Menu" -ZENITY_TEXT="Action:" -ZENITY_OPTIONS=(--column= --hide-header) - -####################################################################### -# END CONFIG # -####################################################################### - -# Whether to ask for user's confirmation -enable_confirmation=false - -# Preferred launcher if both are available -preferred_launcher="rofi" - -usage="$(basename "$0") [-h] [-c] [-p name] -- display a menu for shutdown, reboot, lock etc. - -where: - -h show this help text - -c ask for user confirmation - -p preferred launcher (rofi or zenity) - -This script depends on: - - systemd, - - i3, - - rofi or zenity." - -# Check whether the user-defined launcher is valid -launcher_list=(rofi zenity) -function check_launcher() { - if [[ ! "${launcher_list[@]}" =~ (^|[[:space:]])"$1"($|[[:space:]]) ]]; then - echo "Supported launchers: ${launcher_list[*]}" - exit 1 - else - # Get array with unique elements and preferred launcher first - # Note: uniq expects a sorted list, so we cannot use it - i=1 - launcher_list=($(for l in "$1" "${launcher_list[@]}"; do printf "%i %s\n" "$i" "$l"; let i+=1; done \ - | sort -uk2 | sort -nk1 | cut -d' ' -f2- | tr '\n' ' ')) - fi -} - -# Parse CLI arguments -while getopts "hcp:" option; do - case "${option}" in - h) echo "${usage}" - exit 0 - ;; - c) enable_confirmation=true - ;; - p) preferred_launcher="${OPTARG}" - check_launcher "${preferred_launcher}" - ;; - *) exit 1 - ;; - esac -done - -# Check whether a command exists -function command_exists() { - command -v "$1" &> /dev/null 2>&1 -} - -# systemctl required -if ! command_exists systemctl ; then - exit 1 -fi - -# menu defined as an associative array -typeset -A menu - -# Menu with keys/commands - -menu=( - [ Shutdown]="systemctl poweroff" - [ Reboot]="systemctl reboot" - [ Suspend]="systemctl suspend" - [ Hibernate]="systemctl hibernate" - [ Lock]="~/.config/i3/scripts/blur-lock.sh" - [ Logout]="i3-msg exit" - [ Cancel]="" -) - -menu_nrows=${#menu[@]} - -# Menu entries that may trigger a confirmation message -menu_confirm="Shutdown Reboot Hibernate Suspend Halt Logout" - -launcher_exe="" -launcher_options="" -rofi_colors="" - -function prepare_launcher() { - if [[ "$1" == "rofi" ]]; then - rofi_colors=(-bc "${BORDER_COLOR}" -bg "${BG_COLOR}" -fg "${FG_COLOR}" \ - -hlfg "${HLFG_COLOR}" -hlbg "${HLBG_COLOR}") - launcher_exe="rofi" - launcher_options=(-dmenu -i -lines "${menu_nrows}" -p "${ROFI_TEXT}" \ - "${rofi_colors}" "${ROFI_OPTIONS[@]}") - elif [[ "$1" == "zenity" ]]; then - launcher_exe="zenity" - launcher_options=(--list --title="${ZENITY_TITLE}" --text="${ZENITY_TEXT}" \ - "${ZENITY_OPTIONS[@]}") - fi -} - -for l in "${launcher_list[@]}"; do - if command_exists "${l}" ; then - prepare_launcher "${l}" - break - fi -done - -# No launcher available -if [[ -z "${launcher_exe}" ]]; then - exit 1 -fi - -launcher=(${launcher_exe} "${launcher_options[@]}") -selection="$(printf '%s\n' "${!menu[@]}" | sort | "${launcher[@]}")" - -function ask_confirmation() { - if [ "${launcher_exe}" == "rofi" ]; then - confirmed=$(echo -e "Yes\nNo" | rofi -dmenu -i -lines 2 -p "${selection}?" \ - "${rofi_colors}" "${ROFI_OPTIONS[@]}") - [ "${confirmed}" == "Yes" ] && confirmed=0 - elif [ "${launcher_exe}" == "zenity" ]; then - zenity --question --text "Are you sure you want to ${selection,,}?" - confirmed=$? - fi - - if [ "${confirmed}" == 0 ]; then - i3-msg -q "exec ${menu[${selection}]}" - fi -} - -if [[ $? -eq 0 && ! -z ${selection} ]]; then - if [[ "${enable_confirmation}" = true && \ - ${menu_confirm} =~ (^|[[:space:]])"${selection}"($|[[:space:]]) ]]; then - ask_confirmation - else - i3-msg -q "exec ${menu[${selection}]}" - fi -fi diff --git a/dot_config/i3/scripts/temperature b/dot_config/i3/scripts/temperature deleted file mode 100644 index 4e31610..0000000 --- a/dot_config/i3/scripts/temperature +++ /dev/null @@ -1,86 +0,0 @@ -#!/usr/bin/env 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 . -# -# Edited by Andreas Lindlbauer - -use strict; -use warnings; -use utf8; -use Getopt::Long; - -binmode(STDOUT, ":utf8"); - -# default values -my $t_warn = $ENV{T_WARN} || 70; -my $t_crit = $ENV{T_CRIT} || 90; -my $chip = $ENV{SENSOR_CHIP} || ""; -my $temperature = -9999; -my $label = "😀 "; - -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'; - -if ($temperature < 45) { - $label = ''; -} elsif ($temperature < 55) { - $label = ''; -} elsif ($temperature < 65) { - $label = ''; -} elsif ($temperature < 75) { - $label = ''; -} else { - $label = ''; -} -# Print short_text, full_text -print "${label}"; -print " $temperature°C\n"; -print "${label}"; -print " $temperature°C\n"; - -# 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/dot_config/i3/scripts/volume b/dot_config/i3/scripts/volume deleted file mode 100644 index 4f0a2c2..0000000 --- a/dot_config/i3/scripts/volume +++ /dev/null @@ -1,83 +0,0 @@ -#!/usr/bin/env 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, eventually 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 -if [[ -z "$MIXER" ]] ; then - MIXER="pulse" - if command -v pulseaudio >/dev/null 2>&1 && pulseaudio --check ; then - # pulseaudio is running, but not all installations use "pulse" - if amixer -D pulse info >/dev/null 2>&1 ; then - MIXER="pulse" - fi - fi - [ -n "$(lsmod | grep jack)" ] && MIXER="jackplug" - MIXER="${2:-$MIXER}" -fi - -# 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` -if [[ -z "$SCONTROL" ]] ; then - SCONTROL="${BLOCK_INSTANCE:-$(amixer -D $MIXER scontrols | - sed -n "s/Simple mixer control '\([^']*\)',0/\1/p" | - head -n1 - )}" -fi - -# 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) -if [[ -z "$STEP" ]] ; then - STEP="${1:-5%}" -fi - -#------------------------------------------------------------------------ - -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}' - output=$(perl -ne "$perl_filter") - echo "$LABEL$output" -} - -#------------------------------------------------------------------------ - -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/dot_config/i3/scripts/vpn b/dot_config/i3/scripts/vpn deleted file mode 100644 index a348f96..0000000 --- a/dot_config/i3/scripts/vpn +++ /dev/null @@ -1,25 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (C) 2021 Andreas Lindlbauer -# Licensed under the terms of EUPLv1.2. -# -# i3blocks blocklet script to monitor the (nord)vpn connection - -vpnstatus="📢" -nordvpn_output=$(nordvpn status | cat -v | head -1 | sed -e 's/\^M-^M ^M//g' ) -if [ "${nordvpn_output}" = "Status: Connected" ]; then - vpnstatus="🥸" -elif [ "${nordvpn_output}" = "A new version of NordVPN is available! Please update the application." ]; then - nordvpn_output=$(nordvpn status | cat -v | head -2 | tail -1 | sed -e 's/\^M-^M ^M//g' ) - if [ "${nordvpn_output}" = "Status: Connected" ]; then - vpnstatus="🥴" - elif [ "${nordvpn_output}" = "Status: Disconnected" ]; then - vpnstatus="📢" - fi -elif [ "${nordvpn_output}" = "Status: Disconnected" ]; then - vpnstatus="📢" -elif [[ "$nordvpn_output" == *\/* ]] || [[ "$nordvpn_output" == *\\* ]]; then - vpnstatus="Something's very wrong" -fi - -echo "$vpnstatus"