mirror of
https://github.com/ksyasuda/rice.git
synced 2025-12-05 08:53:38 -08:00
move config files to new directory
This commit is contained in:
1
scripts/dunst_volume/.gitignore
vendored
Normal file
1
scripts/dunst_volume/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
__pycache__/*
|
||||
6
scripts/dunst_volume/config.py
Normal file
6
scripts/dunst_volume/config.py
Normal file
@@ -0,0 +1,6 @@
|
||||
"""Strings for use in the change-volume.py script."""
|
||||
BASE_DIR = '/usr/share/icons/gnome/16x16/status/'
|
||||
MUTED = 'audio-volume-muted.png'
|
||||
LOW = 'audio-volume-low.png'
|
||||
MEDIUM = 'audio-volume-medium.png'
|
||||
HIGH = 'audio-volume-high.png'
|
||||
83
scripts/dunst_volume/dunst_volume.py
Executable file
83
scripts/dunst_volume/dunst_volume.py
Executable file
@@ -0,0 +1,83 @@
|
||||
#!/usr/bin/env python
|
||||
"""
|
||||
Script to send notification whenever the volume is changed through the
|
||||
multi-media keys on my laptop.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
import config
|
||||
|
||||
|
||||
def execute_with_capture(command: list) -> subprocess.CompletedProcess:
|
||||
"""
|
||||
Returns the result of a subprocess.run command with capture output and
|
||||
utf-8 encoding.
|
||||
"""
|
||||
return subprocess.run(command, capture_output=True,
|
||||
shell=True, check=True, encoding='UTF-8')
|
||||
|
||||
|
||||
def get_volume() -> int:
|
||||
"""Returns the volume of the system."""
|
||||
args = ['pulsemixer --get-volume']
|
||||
proc = execute_with_capture(args)
|
||||
output = proc.stdout
|
||||
volume = int(output.split(' ')[0])
|
||||
return volume
|
||||
|
||||
|
||||
def check_mute() -> int:
|
||||
"""Returns 1 when system muted. 0 otherwise."""
|
||||
args = ['pulsemixer --get-mute']
|
||||
proc = execute_with_capture(args)
|
||||
return int(proc.stdout)
|
||||
|
||||
|
||||
def get_icon_path(volume: int) -> str:
|
||||
"""Gets the icons path based on the current volume."""
|
||||
# base_dir = pathlib.Path('/usr/share/icons/gnome/16x16/status/')
|
||||
base_dir = Path(config.BASE_DIR)
|
||||
if volume == 0:
|
||||
path = base_dir.joinpath(config.MUTED)
|
||||
elif 0 < volume < 40:
|
||||
path = base_dir.joinpath(config.LOW)
|
||||
elif 40 <= volume < 70:
|
||||
path = base_dir.joinpath(config.MEDIUM)
|
||||
elif volume >= 70:
|
||||
path = base_dir.joinpath(config.HIGH)
|
||||
return str(path)
|
||||
|
||||
|
||||
def main(event: str) -> None:
|
||||
"""Main driver function."""
|
||||
if event in ('increase', 'decrease'):
|
||||
volume = get_volume()
|
||||
icon_path = get_icon_path(volume)
|
||||
output_command = f'dunstify -i {icon_path} -h \
|
||||
string:x-dunst-stack-tag:audio "Volume: {volume}%" -h \
|
||||
int:value:{volume}'
|
||||
elif event == 'mute':
|
||||
muted = check_mute()
|
||||
if muted:
|
||||
icon_path = get_icon_path(0)
|
||||
output_command = f'dunstify -i {icon_path} -h \
|
||||
string:x-dunst-stack-tag:audio "Volume: Muted" -h \
|
||||
int:value:0'
|
||||
else:
|
||||
volume = get_volume()
|
||||
icon_path = get_icon_path(volume)
|
||||
output_command = f'dunstify -i {icon_path} -h \
|
||||
string:x-dunst-stack-tag:audio "Volume: {volume}%" -h \
|
||||
int:value:{volume}'
|
||||
os.system(output_command)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
if len(sys.argv) < 2:
|
||||
print('not nice')
|
||||
sys.exit(1)
|
||||
e = sys.argv[1]
|
||||
main(e)
|
||||
Reference in New Issue
Block a user