hi
This commit is contained in:
106
scripts/battery2
Executable file
106
scripts/battery2
Executable file
@@ -0,0 +1,106 @@
|
||||
#!/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 = "<span color='{}'><span font='FontAwesome'>\uf00d \uf240</span></span>".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 = "<span color='{}'><span font='FontAwesome'>\uf0e7</span></span>".format(color)
|
||||
|
||||
# stands for plugged in
|
||||
FA_PLUG = "<span font='FontAwesome'>\uf1e6</span>"
|
||||
|
||||
# stands for using battery
|
||||
FA_BATTERY = "<span font='FontAwesome'>\uf240</span>"
|
||||
|
||||
# stands for unknown status of battery
|
||||
FA_QUESTION = "<span font='FontAwesome'>\uf128</span>"
|
||||
|
||||
|
||||
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 = '<span color="{}">{}%</span>'
|
||||
fulltext += form.format(color(percentleft), percentleft)
|
||||
fulltext += timeleft
|
||||
|
||||
print(fulltext)
|
||||
print(fulltext)
|
||||
if percentleft < 10:
|
||||
exit(33)
|
||||
12
scripts/check_security_key
Executable file
12
scripts/check_security_key
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/sh
|
||||
|
||||
msg_connected="✓ Security key connected"
|
||||
msg_disconnected="𐄂 Security key not connected\n"
|
||||
|
||||
lsusb | grep Lexar > /dev/null
|
||||
|
||||
if [ "$?" == 0 ]; then
|
||||
printf "[✓] Security key connected.\n"
|
||||
else
|
||||
printf "[𐄂] Security key disconnected.\n"
|
||||
fi
|
||||
5
scripts/laptopmode
Executable file
5
scripts/laptopmode
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/bash
|
||||
|
||||
xinput enable 12
|
||||
xinput reattach 13 3
|
||||
TABLET_MODE_ENABLED=1
|
||||
15
scripts/mediaplayer2
Executable file
15
scripts/mediaplayer2
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/bin/bash
|
||||
|
||||
TRACK=$(playerctl metadata title) # Command to get track
|
||||
ARTIST=$(playerctl metadata artist) # Command to get artist
|
||||
ALBUM=$(playerctl metadata album) # Command to get album
|
||||
|
||||
MAXCHAR="128" # Maximum characters allowed in string
|
||||
|
||||
if [ ${CONCISE} == "false" ]; then
|
||||
printf "%.${MAXCHAR}s\n" "${TRACK} - by ${ARTIST} - on ${ALBUM}"
|
||||
elif [ ${CONCISE} == "true" ]; then
|
||||
printf "%.${MAXCHAR}s\n" "${ARTIST} - ${TRACK}"
|
||||
else
|
||||
printf "error: 'CONCISE' must be defined in i3blocks config\n"
|
||||
fi
|
||||
75
scripts/rofi-wttr
Executable file
75
scripts/rofi-wttr
Executable file
@@ -0,0 +1,75 @@
|
||||
#! /usr/bin/env bash
|
||||
|
||||
###### Variables ######
|
||||
LABEL="${LABEL:- }"
|
||||
LOCATION="${LOCATION:- }"
|
||||
FONT="${FONT:-Monospace 10}"
|
||||
ROFI_CONFIG_FILE="${ROFI_CONFIG_FILE:-/dev/null}"
|
||||
BAR_POSITION="${BAR_POSITION:-bottom}"
|
||||
|
||||
###### Variables ######
|
||||
|
||||
|
||||
###### Functions ######
|
||||
# print the full weather
|
||||
# see https://github.com/chubin/wttr.in#usage for full configuration options
|
||||
print_weather_report() {
|
||||
if [[ $LOCATION != " " ]]; then
|
||||
curl https://wttr.in/$LOCATION?T
|
||||
else
|
||||
curl https://wttr.in/?T
|
||||
fi
|
||||
}
|
||||
|
||||
# print the one line weather
|
||||
# see https://github.com/chubin/wttr.in#one-line-output for formatting options
|
||||
print_weather_line() {
|
||||
if [[ $LOCATION != " " ]]; then
|
||||
curl -s https://wttr.in/${LOCATION}?u\&format="%C+%c+%t+(%f)+%w" | tr -d \"
|
||||
else
|
||||
curl -s 'https://wttr.in/?u\&format="%C+%c+%t+(%f)+%w"' | tr -d \"
|
||||
fi
|
||||
}
|
||||
|
||||
###### Functions ######
|
||||
|
||||
|
||||
###### Main body ######
|
||||
|
||||
# handle any click
|
||||
# rofi pop up
|
||||
case "$BLOCK_BUTTON" in
|
||||
1|2|3)
|
||||
IFS=
|
||||
weather_report=$(print_weather_report)
|
||||
|
||||
# check bar position and adjust anchor accordingly
|
||||
if [[ $BAR_POSITION = "top" ]]; then
|
||||
anchor="northwest"
|
||||
else
|
||||
anchor="southwest"
|
||||
fi
|
||||
|
||||
# open rofi
|
||||
# (add the following option to rofi command with proper config file, if needed)
|
||||
echo $weather_report \
|
||||
| rofi \
|
||||
-dmenu \
|
||||
-markup-rows \
|
||||
-font $FONT \
|
||||
-m -3 \
|
||||
-theme-str 'window {width: 53%; anchor: '"$anchor"'; location: northwest;}' \
|
||||
-theme-str 'listview {lines: '"$(echo $weather_report | wc -l)"' ;scrollbar: false;}' \
|
||||
-theme $ROFI_CONFIG_FILE \
|
||||
-p "Detailed weather report"
|
||||
esac
|
||||
|
||||
# print blocklet text
|
||||
|
||||
if [[ $LABEL != " " ]]; then
|
||||
echo $LABEL$(print_weather_line)
|
||||
else
|
||||
echo $(print_weather_line)
|
||||
fi
|
||||
|
||||
###### Main body ######
|
||||
5
scripts/tabletmode
Executable file
5
scripts/tabletmode
Executable file
@@ -0,0 +1,5 @@
|
||||
#!/bin/sh
|
||||
|
||||
xinput disable 12
|
||||
xinput float 13
|
||||
TABLET_MODE_ENABLED=0
|
||||
3
scripts/tabletmode_status
Executable file
3
scripts/tabletmode_status
Executable file
@@ -0,0 +1,3 @@
|
||||
#!/bin/bash
|
||||
|
||||
return ${TABLET_MODE_ENABLED}
|
||||
30
scripts/toggle
Executable file
30
scripts/toggle
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [[ -z ${COMMAND_ON} || -z ${COMMAND_OFF} || -z ${COMMAND_STATUS} ]]; then
|
||||
echo "All of COMMAND_ON, COMMAND_OFF, and COMMAND_STATUS are required" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
on_cmd=${COMMAND_ON}
|
||||
off_cmd=${COMMAND_OFF}
|
||||
status_cmd=${COMMAND_STATUS}
|
||||
|
||||
if (( ${BLOCK_BUTTON:-0} == 1 )); then
|
||||
eval $status_cmd 2>&1 >/dev/null
|
||||
if (( $? == 0 )); then
|
||||
eval $off_cmd 2>&1 >/dev/null
|
||||
else
|
||||
eval $on_cmd 2>&1 >/dev/null
|
||||
fi
|
||||
fi
|
||||
|
||||
eval $status_cmd 2>&1 >/dev/null
|
||||
if (( $? == 0 )); then
|
||||
COLOR=${COLOR_ON}
|
||||
else
|
||||
COLOR=${COLOR_OFF:-#555555}
|
||||
fi
|
||||
|
||||
echo
|
||||
echo
|
||||
echo $COLOR
|
||||
Reference in New Issue
Block a user