i3_cockpit/README.md

82 lines
4.2 KiB
Markdown

# loose collection of scripts related to i3 and i3blocks
## mpd_controller
A set of Python scripts to manage mpd (Music Player Daemon). It uses notify-send to display the current song playing with cover art if embeded in the metadata. Is meant to run as a scritp from i3blocks
but can also be called via the media keys on your keyboard.
### how to use
The main file is **mpd_main.py**, called without arguments, it will just output the current status.
The script expects mpd to be running on localhost:6600, and will try to start the daemon
if it looks like it is not running already.
Additionaly the following arguments can be passed:
* **toggle**: if mpd is playing, it will pause, if is paused it will resume
* **next**: jump to next song in playlist
* **prev**: jump to previous song in playlist
### Config:
in mpd_main.py edit *signal_id* to change to the id used in your i3blocks.conf file so the script can be called from anywhere.
### Install:
None standard Python dependencies:
**python-mpd** [python-mpd2](https://pypi.org/project/python-mpd2/)
* On Arch: `sudo pacman -S python-mpd2`
* Via Pip: `pip install python-mpd2`
### Additional:
`notify-send` will get called via subprocess, works best with [Dunst](https://dunst-project.org/documentation/) to show current song playing with cover art extracted from metadata.
## i3block_py
A collection of standalone python scripts for the slightly more complicated things.
* **energy.py**: parses `acpi` to output current battery status. Uses `notify-send` to send messages on changes.
* **cpu.py**: parses `/proc/loadavg` to output load average values for last 1, last 5 and last 15 min.
* call `cpu.py 1` to get the avg from last min
* call `cpu.py 5` to get the avg from last 5 min
* call `cpu.py 15` to get the avg from last 15 min
* **volume.py**: Now compatible with *pipewire*, parses output of `pactl` to output activ sink and current volume to i3blocks and manages music volume hotkeys.
* call `volume.py` without args to output status for i3blocks
* call `volume.py vol_up` to increase volume by 5%
* call `volume.py vol_down` to decrease volume by 5%
* call `volume.py mute` to toggle mute
## i3block_shell
A bunch of simple bash scripts to be called via i3blocks.
* **coretemp.sh**: Echos average temperature of all CPU cores by parsing output of `sensors` from package *lm_sensors*, uses icons from [fontawesome.com](https://fontawesome.com/).
* **date.sh**: Echos the current date.
* on left click: uses notify-send to print current three month calendar.
* **df.sh**: Echos current diskfree level of the root partition.
* on left click: uses notify-send to print the df of all relevant connected partitions.
* **ip.sh**: Echos current ip addresses in use or inactive when offline.
* **updates.sh**: Echos how many updates are pending.
* on left click: echos the complete list of all pending updates.
* on right click: refreshes the current pending updates and echos result.
* **wifiinfo.sh**: Echos current db level of signal strength.
* on left click: Uses nmcli to echo all device status.
## weather_applet
Standalone script that pulls weather data from [openweathermap.org](https://openweathermap.org/) and prints out
current temperature and weather. Meant to be used from i3blocks.
Icons used to display the current weather condition are from [fontawesome.com](https://fontawesome.com/).
* on left click: Get three days forecast, use `notify-send` to send message, works best with *dunst* setup.
### Config:
Get your free openweathermap API key from [here](https://home.openweathermap.org/api_keys).
Create a file called *config* in the same directory as the *weather.py* script and copy the sample
data from *config.sample*:
* Replace the dummy *openweathermap_api_key* with your key.
* Add *lat* and *lon* values with the latitude and longitude values from your location.
* Add unit of measurement: *metric* or *imperial* to get results in C° or F°.
### Install:
None standard Python dependencies:
**python-requests** [requests](https://requests.readthedocs.io/en/master/)
* On Arch: `sudo pacman -S python-requests`
* Via Pip: `pip install requests`
Fontawesome font pakage:
* On Arch: `sudo pacman -S ttf-font-awesome`
* On Ubuntu: `sudo apt install fonts-font-awesome`