chore: cleanup

This commit is contained in:
2022-05-04 18:55:48 +02:00
parent 7acbafb7fe
commit 29eed372ff
36 changed files with 172 additions and 1138 deletions

View File

@@ -1,20 +0,0 @@
#!/bin/bash
cd "$(dirname "$0")"
arecord -f cd -t raw -d 4 -q | lame -r -q - output.mp3 2>/dev/null
if [ ! -f "./output.mp3" ]; then
exit 0
fi
JSON=$(songrec audio-file-to-recognized-song output.mp3)
RETRYMS=$(echo $JSON | jq '.retryms')
if [ $RETRYMS != null ]; then
echo $(expr $RETRYMS / 1000)
else
SONG=$(echo $JSON | tr '\r\n' ' ' | jq '.track.share.subject')
echo $SONG
rm -rf output.mp3
fi

View File

@@ -1,192 +1,109 @@
{
"height": 20,
"spacing": 4,
"bar_id":"bar-0",
"ipc": true,
"mode": "hide",
"hidden_state": "show",
"modules-left": ["custom/clock", "custom/waybar-mpris"],
"modules-center": ["sway/workspaces", "sway/mode"],
"modules-right": ["custom/theme","pulseaudio", "network", "battery"],
"sway/workspaces": {
"disable-scroll": true,
"all-outputs": false,
"format": "{name}",
"format-icons": {
"urgent": "",
"focused": "",
"default": ""
}
},
"keyboard-state": {
"numlock": true,
"capslock": true,
"format": "{name} {icon}",
"format-icons": {
"locked": "",
"unlocked": ""
}
},
"custom/theme":{
"exec": "~/.config/waybar/theme.sh",
"on-click": "~/.config/waybar/theme.sh --toggle",
"restart-interval": 1,
},
"custom/spotify": {
"exec": "/usr/bin/python3 /home/jim/.config/waybar/mediaplayer.py --player spotify",
"format": "{} ",
"return-type": "json",
"on-click": "playerctl play-pause",
"on-scroll-up": "playerctl next",
"on-scroll-down": "playerctl previous"
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"mpd": {
"format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) ⸨{songPosition}|{queueLength}⸩ {volume}% ",
"format-disconnected": "",
"format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ",
"unknown-tag": "N/A",
"interval": 2,
"consume-icons": {
"on": " "
},
"random-icons": {
"off": "<span color=\"#f53c3c\"></span> ",
"on": " "
},
"repeat-icons": {
"on": " "
},
"single-icons": {
"on": "1 "
},
"state-icons": {
"paused": "",
"playing": ""
},
"tooltip-format": "MPD (connected)",
"tooltip-format-disconnected": "MPD (disconnected)"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "",
"deactivated": ""
}
},
"tray": {
"spacing": 10
},
"clock": {
"interval": 60,
"format": "{:%H:%M}",
"max-length": 25
},
"custom/clock": {
"exec": "date +'%H:%M'",
"interval": 10,
"on-click": "nm-applet"
},
"cpu": {
"format": "{usage}% ",
"tooltip": false
},
"memory": {
"format": "{}% "
},
"temperature": {
// "thermal-zone": 2,media
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
"critical-threshold": 80,
// "format-critical": "{temperatureC}°C {icon}",
"format": "{temperatureC}°C {icon}",
"format-icons": ["", "", ""]
},
"backlight": {
// "device": "acpi_video1",
"format": "{percent}% {icon}",
"format-icons": ["", ""]
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
// "format-good": "", // An empty format will hide the module
// "format-full": "",
"format-icons": ["", "", "", "", ""]
},
"battery#bat2": {
"bat": "BAT2"
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected ⚠",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
// "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": ["", "", ""]
},
"on-click": "pavucontrol"
},
"custom/cpu_speed": {
"interval": 10,
"return-type": "json",
"exec": "~/.config/waybar/cpu_speed.sh",
"format": "<span font='Font Awesome 5 Free 11'>{icon}</span> {}",
"format-icons": [""],
"escape": true,
"on-click": "kitty -e htop"
},
"custom/waybar-mpris": {
"height": 20,
"spacing": 4,
"bar_id": "bar-0",
"ipc": true,
"mode": "hide",
"hidden_state": "show",
"modules-left": [
"clock",
"custom/waybar-mpris"
],
"modules-center": [
"sway/workspaces",
"sway/mode"
],
"modules-right": [
"custom/dpi",
"custom/theme",
"pulseaudio",
"network",
"battery"
],
"sway/workspaces": {
"disable-scroll": true,
"all-outputs": false,
"format": "{name}"
},
"custom/theme": {
"exec": "~/.config/waybar/scripts/toggle-theme",
"on-click": "~/.config/waybar/scripts/toggle-theme --toggle",
"restart-interval": 1
},
"custom/dpi": {
"exec": "~/.config/waybar/scripts/toggle-hdpi",
"on-click": "~/.config/waybar/scripts/toggle-hdpi --toggle",
"restart-interval": 1
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"clock": {
"interval": 60,
"format": "{:%H:%M}",
"max-length": 25
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% ",
"format-plugged": "{capacity}% ",
"format-alt": "{time} {icon}",
"format-icons": [
"",
"",
"",
"",
""
]
},
"network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface
"format-wifi": "{essid} ({signalStrength}%) ",
"format-ethernet": "{ipaddr}/{cidr} ",
"tooltip-format": "{ifname} via {gwaddr} ",
"format-linked": "{ifname} (No IP) ",
"format-disconnected": "Disconnected",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
"format": "{volume}% {icon} {format_source}",
"format-bluetooth": "{volume}% {icon} {format_source}",
"format-bluetooth-muted": " {icon} {format_source}",
"format-muted": " {format_source}",
"format-source": "{volume}% ",
"format-source-muted": "",
"format-icons": {
"headphone": "",
"hands-free": "",
"headset": "",
"phone": "",
"portable": "",
"car": "",
"default": [
"",
"",
""
]
},
"on-click": "pavucontrol"
},
"custom/waybar-mpris": {
"max-length": 30,
"return-type": "json",
"exec": "waybar-mpris --position --autofocus",
"on-click": "waybar-mpris --send toggle",
// This option will switch between players on right click.
"on-click-right": "waybar-mpris --send player-next",
"on-click-right": "waybar-mpris --send player-next",
// The options below will switch the selected player on scroll
// "on-scroll-up": "waybar-mpris --send player-next",
// "on-scroll-down": "waybar-mpris --send player-prev",
// "on-scroll-up": "waybar-mpris --send player-next",
// "on-scroll-down": "waybar-mpris --send player-prev",
// The options below will go to next/previous track on scroll
// "on-scroll-up": "waybar-mpris --send next",
// "on-scroll-down": "waybar-mpris --send prev",
// "on-scroll-up": "waybar-mpris --send next",
// "on-scroll-down": "waybar-mpris --send prev",
"escape": true
},
"custom/media": {
"format": "{icon} {}",
"return-type": "json",
"max-length": 40,
"format-icons": {
"spotify": "",
"default": "🎜"
},
"escape": true,
"exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
}
}
}

View File

@@ -1,14 +0,0 @@
#!/bin/bash
class=cpu_speed
speed_mhz=$(lscpu | grep "CPU MHz" | sed --expression "s/CPU MHz:[[:space:]]*//g" | xargs printf "%.*f\n" 0)
# speed_ghz=`echo $(($speed_mhz / 1000))`
speed_ghz=`bc -l <<< "$speed_mhz / 1000"`
info=$(echo $speed_ghz | xargs printf "%.*f\n" 2)
echo -e "{\"text\":\""$info GHz"\", \"class\":\""$class"\"}"

View File

@@ -1,13 +0,0 @@
#!/bin/bash
CONFIG_FILES="$HOME/.config/waybar/config $HOME/.config/waybar/*.css $HOME/.config/waybar/*.sh"
killall waybar;
trap "killall waybar" EXIT
while true; do
waybar &
inotifywait -e create,modify $CONFIG_FILES
killall waybar
done

View File

@@ -1,130 +0,0 @@
#!/usr/bin/env python3
import argparse
import logging
import sys
import signal
import gi
import json
from os.path import expanduser
gi.require_version('Playerctl', '2.0')
from gi.repository import Playerctl, GLib
logger = logging.getLogger(__name__)
def write_output(text, player):
logger.info('Writing output')
output = {'text': text.replace("\n", " ").strip(),
'class': 'custom-' + player.props.player_name,
'alt': player.props.player_name}
sys.stdout.write(json.dumps(output) + '\n')
sys.stdout.flush()
def on_play(player, _, manager):
logger.info('Received new playback status')
on_metadata(player, player.props.metadata, manager)
def on_metadata(player, metadata, _):
logger.info('Received new metadata')
track_info = ''
if player.props.player_name == 'spotify' and \
'mpris:trackid' in metadata.keys() and \
':ad:' in player.props.metadata['mpris:trackid']:
track_info = 'AD PLAYING'
elif player.get_artist() != '' and player.get_title() != '':
track_info = '{artist} - {title}'.format(artist=player.get_artist(),
title=player.get_title())
else:
track_info = player.get_title()
if player.props.status != 'Playing' and track_info:
track_info = '' + track_info
write_output(track_info, player)
def on_player_appeared(manager, player, selected_player=None):
if player is not None and (selected_player is None or player.name == selected_player):
init_player(manager, player)
else:
logger.debug("New player appeared, but it's not the selected player, skipping")
def on_player_vanished(manager, player):
logger.info('Player has vanished')
sys.stdout.write('\n')
sys.stdout.flush()
def init_player(manager, name):
logger.debug('Initialize player: {player}'.format(player=name.name))
player = Playerctl.Player.new_from_name(name)
player.connect('playback-status', on_play, manager)
player.connect('metadata', on_metadata, manager)
manager.manage_player(player)
on_metadata(player, player.props.metadata, manager)
def signal_handler(sig, frame):
logger.debug('Received signal to stop, exiting')
sys.stdout.write('\n')
sys.stdout.flush()
# loop.quit()
sys.exit(0)
def parse_arguments():
parser = argparse.ArgumentParser()
# Increase verbosity with every occurrence of -v
parser.add_argument('-v', '--verbose', action='count', default=0)
# Define for which player we're listening
parser.add_argument('--player')
return parser.parse_args()
def main():
arguments = parse_arguments()
# Initialize logging
# LOG=expanduser("~")+"/.dotfiles/configs/waybar/media.log"
# logging.basicConfig(level=logging.DEBUG, filename=LOG,
# format='%(name)s %(levelname)s %(message)s')
# Logging is set by default to WARN and higher.
# With every occurrence of -v it's lowered by one
logger.setLevel(max((3 - arguments.verbose) * 10, 0))
logger.setLevel(0)
# Log the sent command line arguments
logger.debug('Arguments received {}'.format(vars(arguments)))
manager = Playerctl.PlayerManager()
loop = GLib.MainLoop()
manager.connect('name-appeared', lambda *args: on_player_appeared(*args, arguments.player))
manager.connect('player-vanished', on_player_vanished)
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
for player in manager.props.player_names:
if arguments.player is not None and arguments.player != player.name:
logger.debug('{player} is not the filtered player, skipping it'
.format(player=player.name)
)
continue
init_player(manager, player)
loop.run()
if __name__ == '__main__':
main()

View File

@@ -1,146 +0,0 @@
#!/usr/bin/env python3
import argparse
import logging
import sys
import signal
import time
import gi
import json
gi.require_version('Playerctl', '2.0')
from gi.repository import Playerctl, GLib
import subprocess
from os.path import expanduser
home = expanduser("~")
logger = logging.getLogger(__name__)
playerVisible = False
def write_output(text, player_name):
logger.info('Writing output')
output = {'text': text.replace("&", "&amp;"),
'class': 'custom-' + player_name,
'alt': player_name}
sys.stdout.write(json.dumps(output) + '\n')
sys.stdout.flush()
def on_play(player, status, manager):
logger.info('Received new playback status')
on_metadata(player, player.props.metadata, manager)
def on_metadata(player, metadata, manager):
logger.info('Received new metadata')
track_info = ''
if player.props.player_name == 'spotify' and \
'mpris:trackid' in metadata.keys() and \
':ad:' in player.props.metadata['mpris:trackid']:
track_info = 'AD PLAYING'
elif player.get_artist() != '' and player.get_title() != '':
track_info = '{artist} - {title}'.format(artist=player.get_artist(),
title=player.get_title())
else:
track_info = player.get_title()
if player.props.status != 'Playing' and track_info:
track_info = '' + track_info
write_output(track_info, player.props.player_name)
def update_song():
global playerVisible
while not playerVisible:
result = subprocess.run("./capture_mp3.sh",stdout=subprocess.PIPE)
resultString = result.stdout.decode("utf-8")
logger.debug(resultString);
write_output(resultString, "Spotify")
time.sleep(6)
def on_player_appeared(manager, player, selected_player=None):
global playerVisible
if player is not None and (selected_player is None or player.name == selected_player):
playerVisible = True
init_player(manager, player)
else:
logger.debug("New player appeared, but it's not the selected player, skipping")
def on_player_vanished(manager, player):
global playerVisible
logger.info('Player has vanished')
playerVisible = False
update_song()
sys.stdout.write('\n')
sys.stdout.flush()
def init_player(manager, name):
logger.debug('Initialize player: {player}'.format(player=name.name))
player = Playerctl.Player.new_from_name(name)
player.connect('playback-status', on_play, manager)
player.connect('metadata', on_metadata, manager)
update_song()
manager.manage_player(player)
on_metadata(player, player.props.metadata, manager)
def signal_handler(sig, frame):
logger.debug('Received signal to stop, exiting')
sys.stdout.write('\n')
sys.stdout.flush()
loop.quit()
sys.exit(0)
def parse_arguments():
parser = argparse.ArgumentParser()
# Increase verbosity with every occurrence of -v
parser.add_argument('-v', '--verbose', action='count', default=0)
# Define for which player we're listening
parser.add_argument('--player')
return parser.parse_args()
def main():
arguments = parse_arguments()
# Initialize logging
LOG = home+"/.dotfiles/configs/waybar/media.log" logger.setLevel(max((3 - arguments.verbose) * 10, 0))
logging.basicConfig(stream=sys.stderr, filename=LOG, level=logging.DEBUG,
format='%(name)s %(levelname)s %(message)s')
logger.setLevel(0)
# Log the sent command line arguments
logger.debug('Arguments received {}'.format(vars(arguments)))
manager = Playerctl.PlayerManager()
loop = GLib.MainLoop()
manager.connect('name-appeared', lambda *args: on_player_appeared(*args, arguments.player))
manager.connect('player-vanished', on_player_vanished)
signal.signal(signal.SIGINT, signal_handler)
signal.signal(signal.SIGTERM, signal_handler)
for player in manager.props.player_names:
if arguments.player is not None and arguments.player != player.name:
logger.debug('{player} is not the filtered player, skipping it'
.format(player=player.name)
)
continue
init_player(manager, player)
update_song()
loop.run()
if __name__ == '__main__':
main()

Binary file not shown.

View File

@@ -1,3 +0,0 @@
MAX_FREQ=$(lscpu | grep "CPU max MHz" | sed --expression "s/CPU max MHz:[[:space:]]*//g" | xargs printf "%.*f\n" 0)
CURRENT_MAX_FREG=$(cpufreq-info | grep "c")

View File

@@ -1,2 +0,0 @@
#!/bin/bash

View File

@@ -0,0 +1,22 @@
#!/bin/sh
CURRENT=$(swaymsg -t get_outputs --raw | jq '.[] | [.current_mode.width, .current_mode.height] | join("x")')
HIGH="ﳍ"
STANDARD="ﳭ"
if [ "$CURRENT" = '"3840x2160"' ]; then
if [ "$1" = "--toggle" ]; then
swaymsg "output eDP-1 mode --custom 1920x1080@60Hz"
killall waybar
nohup waybar
fi
echo $HIGH
elif [ "$CURRENT" = '"1920x1080"' ]; then
if [ "$1" = "--toggle" ]; then
swaymsg "output eDP-1 mode --custom 3840x2160@60Hz"
killall waybar
nohup waybar
fi
echo $STANDARD
fi

View File

@@ -3,17 +3,14 @@
DARK_MODE_STATUS_FILE=~/.cache/dark-mode
CURRENT_DARK_MODE=$( cat $DARK_MODE_STATUS_FILE )
LIGHT="☀️"
DARK="🌙"
echo "\$1 $1"
echo "MODE: $CURRENT_DARK_MODE"
LIGHT=""
DARK=""
if [ "$1" == "--toggle" ]; then
if [ $CURRENT_DARK_MODE == "light" ]; then
~/.config/waybar/dark-mode.sh dark
~/.config/waybar/scripts/set-theme dark
else
~/.config/waybar/dark-mode.sh light
~/.config/waybar/scripts/set-theme light
fi
fi