Merge pull request #16 from Christoph-Lauer/patch-3
Changing project name to "Birding-Pi"
This commit is contained in:
+15
-15
@@ -1,11 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
my_dir=${HOME}/BirdNET-Lite
|
||||
my_dir=${HOME}/Birding-Pi
|
||||
trap '${my_dir}/scripts/dump_logs.sh && exit' EXIT SIGHUP SIGINT
|
||||
|
||||
|
||||
if [ "$(uname -m)" != "aarch64" ];then
|
||||
echo "BirdNET-Lite requires a 64-bit OS.
|
||||
echo "Birding-Pi requires a 64-bit OS.
|
||||
It looks like your operating system is using $(uname -m),
|
||||
but would need to be aarch64.
|
||||
Please take a look at https://birdnetwiki.pmcgui.xyz for more
|
||||
@@ -44,11 +44,11 @@ EOF
|
||||
echo
|
||||
echo "Installing stage 2 installation script now."
|
||||
cd ~
|
||||
curl -s -O "https://raw.githubusercontent.com/mcguirepr89/BirdNET-Lite/rpi4/Birders_Guide_Installer.sh"
|
||||
curl -s -O "https://raw.githubusercontent.com/mcguirepr89/Birding-Pi/rpi4/Birders_Guide_Installer.sh"
|
||||
chmod +x Birders_Guide_Installer.sh
|
||||
cat << EOF | sudo tee /etc/systemd/user/birdnet-system-installer.service &> /dev/null
|
||||
[Unit]
|
||||
Description=A BirdNET-Lite Installation Script Service
|
||||
Description=A Birding-Pi Installation Script Service
|
||||
After=graphical.target network-online.target
|
||||
|
||||
[Service]
|
||||
@@ -106,8 +106,8 @@ stage_2() {
|
||||
echo
|
||||
if [ ! -d ${my_dir} ];then
|
||||
cd ~ || exit 1
|
||||
echo "Cloning the BirdNET-Lite repository in your home directory"
|
||||
git clone https://github.com/mcguirepr89/BirdNET-Lite.git ~/BirdNET-Lite
|
||||
echo "Cloning the Birding-Pi repository in your home directory"
|
||||
git clone https://github.com/mcguirepr89/Birding-Pi.git ~/Birding-Pi
|
||||
fi
|
||||
|
||||
if [ -f ${my_dir}/Birders_Guide_Installer_Configuration.txt ];then
|
||||
@@ -137,9 +137,9 @@ and then close the Mouse Pad editing window to continue."
|
||||
echo "It looks like you haven't filled out the Birders_Guide_Installer_Configuration.txt file
|
||||
completely.
|
||||
|
||||
Open that file to edit it. (Go to the folder icon in the top left and look for the \"BirdNET-Lite\"
|
||||
Open that file to edit it. (Go to the folder icon in the top left and look for the \"Birding-Pi\"
|
||||
folder and double-click the file called \"Birders_Guide_Installer_Configuration.txt\"
|
||||
Enter the latitude and longitude of where the BirdNET-Lite will be.
|
||||
Enter the latitude and longitude of where the Birding-Pi will be.
|
||||
You can find this information at https://maps.google.com
|
||||
|
||||
Find your location on the map and right click to find your coordinates.
|
||||
@@ -150,9 +150,9 @@ Good luck!"
|
||||
read
|
||||
exit 1
|
||||
fi
|
||||
echo "Installing the BirdNET-Lite configuration file."
|
||||
echo "Installing the Birding-Pi configuration file."
|
||||
[ -f ${my_dir}/soundcard_params.txt ] || touch ${my_dir}/soundcard_params.txt
|
||||
SOUND_PARAMS="${HOME}/BirdNET-Lite/soundcard_params.txt"
|
||||
SOUND_PARAMS="${HOME}/Birding-Pi/soundcard_params.txt"
|
||||
SOUND_CARD="$(sudo -u pi aplay -L \
|
||||
| grep -e '^hw' \
|
||||
| cut -d, -f1 \
|
||||
@@ -177,7 +177,7 @@ The installation has finished. Press Enter to close this window."
|
||||
install_birdnet_config() {
|
||||
cat << EOF > ${my_dir}/birdnet.conf
|
||||
################################################################################
|
||||
# Configuration settings for BirdNET as a service #
|
||||
# Configuration settings for the Birding-Pi #
|
||||
################################################################################
|
||||
|
||||
#___________The four variables below are the only that are required.___________#
|
||||
@@ -282,7 +282,7 @@ REMOTE_RECS_DIR=
|
||||
|
||||
## EXTRACTIONS_URL is the URL where the extractions, data-set, and live-stream
|
||||
## will be web-hosted. If you do not own a domain, or would just prefer to keep
|
||||
## BirdNET-Lite on your local network, you can set this to http://localhost.
|
||||
## the Birding-Pi on your local network, you can set this to http://localhost.
|
||||
## Setting this (even to http://localhost) will also allow you to enable the
|
||||
## GoTTY web logging features below.
|
||||
|
||||
@@ -329,7 +329,7 @@ PUSHED_APP_SECRET=${PUSHED_APP_SECRET}
|
||||
# Keep this EMPTY if you do not want to install NoMachine. #
|
||||
|
||||
## INSTALL_NOMACHINE is simply a setting that can be enabled to install
|
||||
## NoMachine alongside the BirdNET-Lite for remote desktop access. This in-
|
||||
## NoMachine alongside the Birding-Pi for remote desktop access. This in-
|
||||
## staller assumes personal use. Please reference the LICENSE file included
|
||||
## in this repository for more information.
|
||||
## Set this to Y or y to install NoMachine alongside the BirdNET-Lite
|
||||
@@ -372,7 +372,7 @@ EXTRACTED=${RECS_DIR}/Extracted
|
||||
## change this variable between data-sets to preserve records of disparate
|
||||
## data-sets according to name.
|
||||
|
||||
IDFILE=${HOME}/BirdNET-Lite/IdentifiedSoFar.txt
|
||||
IDFILE=${HOME}/Birding-Pi/IdentifiedSoFar.txt
|
||||
|
||||
## OVERLAP is the value in seconds which BirdNET should use when analyzing
|
||||
## the data. The values must be between 0.0-2.9.
|
||||
@@ -433,7 +433,7 @@ The installer runs in two stages:
|
||||
Stage 1 configures and enables the zRAM kernel module and allocates 4G
|
||||
to its swapping size if needed. This will trigger a reboot.
|
||||
Stage 1 also ensures the system is up to date.
|
||||
Stage 2 guides you through configuring the essentials and installs the full BirdNET-Lite."
|
||||
Stage 2 guides you through configuring the essentials and installs the full Birding-Pi system."
|
||||
|
||||
|
||||
if [ ! -f ${HOME}/stage_1_complete ] ;then
|
||||
|
||||
@@ -1,97 +1,53 @@
|
||||
# BirdNET-Lite for arm64/aarch64 (Raspberry Pi 4) -- Still in testing
|
||||
### Built on https://github.com/kahst/BirdNET -- checkout the Wiki at [BirdNETWiki.pmcgui.xyz](https://birdnetwiki.pmcgui.xyz)
|
||||
# Birding Pi
|
||||

|
||||
|
||||
This project offers an installation script for BirdNET-Lite as a systemd service on arm64 (aarch64) Debian-based operating systems, namely RaspiOS. The installation script offers to walk the user through setting up the '*birdnet.conf*' main configuration file interactively, or can read from an existing '*birdnet.conf*'. A variety of configurations can be attained through this installation script.
|
||||
A realtime acoustic bird classification system for the Reaspberry Pi 4B
|
||||
|
||||
BirdNET-Lite can be configured with the following optional services:
|
||||
- A 24/7 recording script that can be easily configured to use any available sound card
|
||||
- An extraction service that extracts the audio selections identified by BirdNET by date and species
|
||||
- A Caddy instance that serves the extracted files and live audio stream (icecast2)
|
||||
- A species list updating and notification script supporting mobile notifications via Pushed.co (sorry, Android users, Pushed.co doesn't seem to work for you)
|
||||
- NoMachine remote desktop software (for personal use only)
|
||||
## Inroduction
|
||||
The Birding Pi project is based on the BirdNet-Lite project and is able to recognize bird sounds from the microphone and the sound card in realtime. The system installs all needed services on the Raspberry Pi.
|
||||
|
||||
An installation one-liner is available below for RaspiOS-ARM64 meeting the prequisites below. It installs all services listed above.
|
||||
- Prerequisites:
|
||||
- An updated RaspiOS for AArch64 that has locale, WiFi, time-zone, and pi user password set. A guide is available [here](https://birdnetwiki.pmcgui.xyz/wiki/Birder%27s_Guide_to_BirdNET-Lite#Install_the_base_operating_system_.28OS.29). 64GB SD card for best performance.
|
||||
- A USB microphone (dsnoop capable to enable live audio stream).
|
||||
- Running the installer from within the Raspberry Pi's desktop environment (i.e., not over SSH -- for SSH installations, see installation options 2 & 3)
|
||||
## Requirements
|
||||
* A Raspberry Pi 4B
|
||||
* A SD Card with the 64-bit version of RaspiOS installed [(download the latest here)](https://downloads.raspberrypi.org/raspios_arm64/images/)
|
||||
* A USB Microphone or Sound Card
|
||||
|
||||
## Installation
|
||||
The system can be installed with:
|
||||
```
|
||||
curl -s https://raw.githubusercontent.com/mcguirepr89/BirdNET-Lite/rpi4/Birders_Guide_Installer.sh | bash
|
||||
```
|
||||
|
||||
## What the installation does
|
||||
1. Looks for a *'birdnet.conf'* file in the *BirdNET-Lite* main directory
|
||||
1. If a *'birdnet.conf'* file exists and is filled out properly, the installation is nearly
|
||||
non-interactive and builds the system based off of the services configured in the *'birdnet.conf'* file
|
||||
1. If the installer cannot find a *'birdnet.conf'* file, the installation is interactive and will
|
||||
walk the user through creating the '*birdnet.conf'* file interactively.
|
||||
1. Installs the following system dependencies:
|
||||
- ffmpeg
|
||||
- libblas-dev
|
||||
- liblapack-dev
|
||||
- caddy (for web access to extractions)
|
||||
- icecast2 (live audio stream)
|
||||
- alsa-utils (for recording)
|
||||
- sshfs (to mount remote sound file directories)
|
||||
1. Installs BirdNET-Lite scripts in */usr/local/bin*
|
||||
1. Installs all selected services based on '*birdnet.conf*'
|
||||
1. Installs *miniforge* for the aarch64 architecture using the current release from https://github.com/conda-forge/miniforge
|
||||
1. Builds BirdNET in miniforge's *'birdnet'* virtual environment
|
||||
1. Enables (but does not start) the services
|
||||
The script first enables and configures the zRAM kernel module for swapping, and reboots.
|
||||
After the reboot, the configuration file is opened for editing. Here, you will input your latitude and longitude and will set two passwords to protect your Pi. When in installation has finished, the Birding Pi is ready to start collecting and analyzing data on the next boot.
|
||||
|
||||
## What you should know before any installation
|
||||
1. The licensing information for the software that is used (see [LICENSE](https://raw.githubusercontent.com/mcguirepr89/BirdNET-Lite/BirdNET-Lite-for-raspi4/LICENSE)).
|
||||
1. The **latitude** and **longitude** where the bird recordings take place. Google maps is an easy way to find these (right-clicking the location).
|
||||
1. In order for the live audio stream to work at the same time as the birdnet_recording.service, the microphone needs to be dsnoop capable. If you are wondering whether your mic supports creating the dsnoop device, you can use `aplay -L | awk -F, '/dsn/ {print $1}' | grep -ve 'vc4' -e 'Head' -e 'PCH' | uniq` to check. (No output means your microphone does not support creating a dsnoop device and therefore cannot also provide an audio stream while recording. The birdnet_recording.service, however, should not be affected by this and the installation one-liner can still be used. The live stream link simply will not work.)
|
||||
If you have trouble with the installation script, you can cancel and rerun the installer:
|
||||
```
|
||||
~/Birding-Pi/Birders_Guide_installer.sh
|
||||
```
|
||||
|
||||
## What you should know for a manual installation
|
||||
1. The **local directory** where the recordings should be found on your local computer. BirdNET-Lite supports setting up a systemd.mount for automounting remote directories. So for instance, if the actual recordings live on RemoteHost's `/home/user/recordings` directory, but you would like them to be found on your device at `/home/me/BirdNET-recordings`, then `/home/me/BirdNET-recordings` will be your answer to that question.
|
||||
1. If mounting the recordings directory from a remote host, you need to know the **remote hostname, username, and password** to connect to it via SSH, as well as the **absolute path of the recordings on the remote host**.
|
||||
1. If you are using a special microphone or have multiple sound cards and would like to specify which to use for recording, you can edit the `~/BirdNET-Lite/birdnet.conf` file before the installation and set the **REC_CARD** variable to the sound card of your choice. Copy your desired sound card line from the output of `aplay -L | awk -F, '/^dsn:/ { print $1 }'`(prefered), or `aplay -L | awk -F, '/^hw:/ { print $1 }'`(if prefered is not available).
|
||||
1. If you would like to take advantage of Caddy's automatic handling of SSL certificates to be able to host a public website where your friends can hear your bird sounds, forward ports 80 and 443 to the host you want to serve the files. You may also want to purchase a domain name.
|
||||
- *Note: If you're just keeping this on your local network, **be sure to set your extraction URL to something 'http://'** (on RaspiOS, I recommend 'http://raspberrypi.local') to disable Caddy's automatic HTTPS. Alternatively, you may edit the `/etc/caddy/Caddyfile` after installation and add the `tls internal` directive to the site block to have Caddy issue a self-signed certificate for an HTTPS connection.*
|
||||
1. If you would like to take advantage of BirdNET-Lite's ability to send New Species mobile notifications, you can easily setup a Pushed.co notification app (see the #TODOs at the bottom for more info). After setting up your application, make note of your **App Key** and **App Secret** -- you will need these to enable mobile notifications for new species.
|
||||
- *Note for Android users: it seems that the Pushed.co Mobile App does not work for Android devices, which is a huge bummer. If anyone knows of an Android alternative, or if anyone might be able to come up with a home-spun notification system, please let me know.*
|
||||
## Access
|
||||
The Birding Pi system can be accessed from any the web browser on the same network:
|
||||
- http://birdingpi.local
|
||||
|
||||
## How to install
|
||||
Install All Services
|
||||
1. In the terminal run: `curl -s https://raw.githubusercontent.com/mcguirepr89/BirdNET-Lite/rpialpha/Birders_Guide_Installer.sh | bash`
|
||||
#### Access Credentials:
|
||||
- Username:`birdnet`
|
||||
- Password: The "CADDY_PWD" password you set during installation
|
||||
|
||||
## Uninstallation
|
||||
```
|
||||
/usr/local/bin/uninstall.sh && cd ~ && rm -drf Birding-Pi
|
||||
```
|
||||
|
||||
## Access your BirdNET-Lite
|
||||
If you configured BirdNET-Lite with the Caddy webserver, you can access the extractions locally at
|
||||
## ToDo, Notes, and Comming Soon
|
||||
|
||||
- http://birdnetsystem.local
|
||||
### Internationalisation:
|
||||
The bird names are in English by default, but other localized versions are available. Please download the labels_l18n.zip file and replace the `model/labels.txt` with the corresponding language.
|
||||
|
||||
You can also view the log output for the <code>birdnet_analysis.service</code> and <code>extraction.service</code> at
|
||||
### Tips:
|
||||
You can try to overclock your Pi by placing the following in your `/boot/config.txt` file:
|
||||
|
||||
- http://birdlog.local
|
||||
- http://extractionlog.local
|
||||
|
||||
and the BirdNET-Lite Statistics Report at
|
||||
- http://birdstats.local
|
||||
|
||||
If you opt to also install NoMachine alongside the BirdNET-Lite, you can also access BirdNET-Lite
|
||||
remotely following the address information that can be found on the NoMachine's server information page.
|
||||
|
||||
## Examples
|
||||
These are examples of my personal instance of the BirdNET-Lite on a Raspberry Pi 4B.
|
||||
- https://birdsounds.pmcgui.xyz -- My BirdNET-Lite Extractions page
|
||||
- https://birdlog.pmcgui.xyz -- My 'birdlog' birdnet_analysis.service log
|
||||
- https://extraction.pmcgui.xyz -- My 'extractionlog' extraction.service log
|
||||
- https://birdstats.pmcgui.xyz -- My 'birdstats' BirdNET-Lite Report
|
||||
|
||||
## How to reconfigure the system
|
||||
At any time, you can completely reconfigure the system to select or remove features. To reconfigure the system, simply run the included "reconfigure_birdnet.sh" script (as the regular user) and follow the prompts to create a new birdnet.conf file and install new services: `~/BirdNET-Lite/scripts/reconfigure_birdnet.sh`
|
||||
|
||||
## How to uninstall BirdNET-Lite
|
||||
To remove BirdNET-Lite, run the included '*uninstall.sh*' script as the regular user.
|
||||
1. Issue `/usr/local/bin/uninstall.sh && cd ~ && rm -drf BirdNET-Lite`
|
||||
|
||||
## Troubleshooting
|
||||
**General** -- At anytime, you can run the included `~/BirdNET-Lite/dump_logs.sh` script to create a compressed tar ball of system logs that may provide a helpful overview of the system services. In addition, you can upload it in a new issue along with a description of what you are experiencing. dump_logs.sh scrubs password information, but does retain LATITUDE and LONGITUDE information. If at all concerned with privacy, you're welcome to send them to me via email at mailto:mcguirepr89@gmail.com.
|
||||
|
||||
**Audio** -- If you have problems with the _bridnet_recording.service_ or _livestream.service_, try setting the REC_CARD setting in the _birdnet.conf_ file to `REC_CARD=default` and the CHANNELS variable to `CHANNELS=2`. This works for two very different microphones I have, so it may work for you. If it does, please let me know, as I may change the code as a result. Also, during installation, a file is created called `~/BirdNET-Lite/soundcard_params.txt` that may provide helpful information for customized settings.
|
||||
|
||||
**Installation** -- The installer _should_ always create a compressed set of system logs whether it succeeds or fails. Its location is `~/BirdNET-Lite/logs.tar.gz`. Take a look through there or feel free to create a new issue and upload it along with a description of what you are experiencing.
|
||||
|
||||
### TODO & Notes:
|
||||
1. I ought to add the steps to setup a Pushed.co application for the mobile notifications feature. Here is a link for now https://pushed.co/quick-start-guide
|
||||
```
|
||||
over_voltage=6
|
||||
arm_freq=1750
|
||||
```
|
||||
Be sure the Pi is adequately cooled and powered. Check http://birdingpi.local:9090 for CPU temperature and over-volatage warnings (anything other than "throttled:0x0" is bad).
|
||||
|
||||
@@ -105,7 +105,7 @@ REMOTE_RECS_DIR=
|
||||
|
||||
## EXTRACTIONS_URL is the URL where the extractions, data-set, and live-stream
|
||||
## will be web-hosted. If you do not own a domain, or would just prefer to keep
|
||||
## BirdNET-Lite on your local network, you can set this to http://localhost.
|
||||
## Birding-Pi on your local network, you can set this to http://localhost.
|
||||
## Setting this (even to http://localhost) will also allow you to enable the
|
||||
## GoTTY web logging features below.
|
||||
|
||||
@@ -152,10 +152,10 @@ PUSHED_APP_SECRET=
|
||||
# Keep this EMPTY if you do not want to install NoMachine. #
|
||||
|
||||
## INSTALL_NOMACHINE is simply a setting that can be enabled to install
|
||||
## NoMachine alongside the BirdNET-Lite for remote desktop access. This in-
|
||||
## NoMachine alongside the Birding-Pi for remote desktop access. This in-
|
||||
## staller assumes personal use. Please reference the LICENSE file included
|
||||
## in this repository for more information.
|
||||
## Set this to Y or y to install NoMachine alongside the BirdNET-Lite
|
||||
## Set this to Y or y to install NoMachine alongside the Birding-Pi
|
||||
|
||||
INSTALL_NOMACHINE=
|
||||
|
||||
@@ -195,7 +195,7 @@ EXTRACTED=${RECS_DIR}/Extracted
|
||||
## change this variable between data-sets to preserve records of disparate
|
||||
## data-sets according to name.
|
||||
|
||||
IDFILE=${HOME}/BirdNET-Lite/IdentifiedSoFar.txt
|
||||
IDFILE=${HOME}/Birding-Pi/IdentifiedSoFar.txt
|
||||
|
||||
## OVERLAP is the value in seconds which BirdNET should use when analyzing
|
||||
## the data. The values must be between 0.0-2.9.
|
||||
|
||||
@@ -22,7 +22,7 @@ if ! diff ${LAST_RUN} ${THIS_RUN};then
|
||||
done
|
||||
fi
|
||||
|
||||
CUSTOM_LIST="/home/pi/BirdNET-Lite/custom_species_list.txt"
|
||||
CUSTOM_LIST="/home/pi/Birding-Pi/custom_species_list.txt"
|
||||
|
||||
# Create an array of the audio files
|
||||
# Takes one argument:
|
||||
@@ -75,7 +75,7 @@ run_analysis() {
|
||||
WEEK="$(echo "${WEEK_OF_YEAR} + 4" |bc -l)"
|
||||
fi
|
||||
|
||||
cd ${HOME}/BirdNET-Lite || exit 1
|
||||
cd ${HOME}/Birding-Pi || exit 1
|
||||
for i in "${files[@]}";do
|
||||
echo "${1}/${i}" > ./analyzing_now.txt
|
||||
[ -z ${RECORDING_LENGTH} ] && RECORDING_LENGTH=12
|
||||
|
||||
@@ -7,13 +7,15 @@ setterm --cursor off
|
||||
TMP_FILE="$(mktemp)"
|
||||
|
||||
while true;do
|
||||
cat << "EOF"
|
||||
.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.
|
||||
( _ ____ __ _ )
|
||||
) |_)o.__||\ ||_ |__(_ __|_ _ ._ _ |_) _ ._ _ .__|_ (
|
||||
( |_)||(_|| \||_ | __)\/_> |_(/_| | | | \(/_|_)(_)| |_ )
|
||||
) / | (
|
||||
"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"+.+"
|
||||
cat << "EOF"
|
||||
___ _ ___
|
||||
( _`\ _ ( ) _ ( _`\ _
|
||||
| (_) )(_) _ __ _| |(_) ___ __ | |_) )(_)
|
||||
| _ <'| |( '__)/'_` || |/' _ `\ /'_ `\ | ,__/'| |
|
||||
| (_) )| || | ( (_| || || ( ) |( (_) | | | | |
|
||||
(____/'(_)(_) `\__,_)(_)(_) (_)`\__ | (_) (_)
|
||||
( )_) |
|
||||
\___/'
|
||||
EOF
|
||||
if [ "$(find ${EXTRACTED} -name '*.wav' | wc -l)" -ge 1 ] &> /dev/null;then
|
||||
a=$( find "${EXTRACTED}" -name '*.wav' \
|
||||
@@ -90,4 +92,4 @@ EOF
|
||||
echo -n "Listening since "${INSTALL_DATE}""
|
||||
sleep 20
|
||||
clear
|
||||
done
|
||||
done
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
shell_exec("/home/pi/BirdNET-Lite/scripts/clear_all_data.sh");
|
||||
header('Location: http://birdnetsystem.local/scripts/index.html?success=true');
|
||||
shell_exec("/home/pi/Birding-Pi/scripts/clear_all_data.sh");
|
||||
header('Location: http://birdingpi.local/scripts/index.html?success=true');
|
||||
?>
|
||||
|
||||
@@ -15,12 +15,12 @@ echo "Recreating necessary directories"
|
||||
[ -d ${EXTRACTED}/By_Date ] || sudo -u ${BIRDNET_USER} mkdir -p ${EXTRACTED}/By_Date
|
||||
[ -d ${EXTRACTED}/By_Common_Name ] || sudo -u ${BIRDNET_USER} mkdir -p ${EXTRACTED}/By_Common_Name
|
||||
[ -d ${EXTRACTED}/By_Scientific_Name ] || sudo -u ${BIRDNET_USER} mkdir -p ${EXTRACTED}/By_Scientific_Name
|
||||
sudo -u ${BIRDNET_USER} ln -s /home/pi/BirdNET-Lite/templates/index.html ${EXTRACTED}
|
||||
sudo -u ${BIRDNET_USER} ln -s /home/pi/Birding-Pi/templates/index.html ${EXTRACTED}
|
||||
[ -d ${PROCESSED} ] || sudo -u ${BIRDNET_USER} mkdir -p ${PROCESSED}
|
||||
[ -L ${EXTRACTED}/scripts ] || sudo -u ${BIRDNET_USER} ln -s /home/pi/BirdNET-Lite/scripts ${EXTRACTED}/
|
||||
[ -L ${EXTRACTED}/spectrogram.php ] || sudo -u ${BIRDNET_USER} ln -s /home/pi/BirdNET-Lite/scripts/spectrogram.php ${EXTRACTED}
|
||||
[ -L ${EXTRACTED}/spectrogram.sh ] || sudo -u ${BIRDNET_USER} ln -s /home/pi/BirdNET-Lite/scripts/spectrogram.sh ${EXTRACTED}
|
||||
[ -L ${EXTRACTED}/scripts ] || sudo -u ${BIRDNET_USER} ln -s /home/pi/Birding-Pi/scripts ${EXTRACTED}/
|
||||
[ -L ${EXTRACTED}/spectrogram.php ] || sudo -u ${BIRDNET_USER} ln -s /home/pi/Birding-Pi/scripts/spectrogram.php ${EXTRACTED}
|
||||
[ -L ${EXTRACTED}/spectrogram.sh ] || sudo -u ${BIRDNET_USER} ln -s /home/pi/Birding-Pi/scripts/spectrogram.sh ${EXTRACTED}
|
||||
|
||||
sudo -u ${BIRDNET_USER} cp ~/BirdNET-Lite/templates/index.html ${EXTRACTED}/
|
||||
sudo -u ${BIRDNET_USER} cp ~/Birding-Pi/templates/index.html ${EXTRACTED}/
|
||||
echo "Restarting services"
|
||||
sudo systemctl restart birdnet_recording.service
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# A comprehensive log dumper
|
||||
# set -x # Uncomment to debug
|
||||
source /etc/birdnet/birdnet.conf &> /dev/null
|
||||
LOG_DIR="${HOME}/BirdNET-Lite/logs"
|
||||
LOG_DIR="${HOME}/Birding-Pi/logs"
|
||||
SERVICES=(avahi-alias@.service
|
||||
birdnet_analysis.service
|
||||
birdnet_log.service
|
||||
@@ -29,7 +29,7 @@ for i in "${SERVICES[@]}";do
|
||||
done
|
||||
|
||||
# Create password-removed birdnet.conf
|
||||
sed -e '/PWD=/d' ${HOME}/BirdNET-Lite/birdnet.conf > ${LOG_DIR}/birdnet.conf
|
||||
sed -e '/PWD=/d' ${HOME}/Birding-Pi/birdnet.conf > ${LOG_DIR}/birdnet.conf
|
||||
|
||||
# Create password-removed Caddyfile
|
||||
if [ -f /etc/caddy/Caddyfile ];then
|
||||
@@ -57,6 +57,6 @@ for i in "${CALLS[@]}";do
|
||||
done
|
||||
|
||||
# TAR the logs into a ball
|
||||
tar --remove-files -cvpzf ${HOME}/BirdNET-Lite/logs.tar.gz ${LOG_DIR} &> /dev/null
|
||||
tar --remove-files -cvpzf ${HOME}/Birding-Pi/logs.tar.gz ${LOG_DIR} &> /dev/null
|
||||
# Finished
|
||||
echo "Your compressed logs are located at ${HOME}/BirdNET-Lite/logs.tar.gz"
|
||||
echo "Your compressed logs are located at ${HOME}/Birding-Pi/logs.tar.gz"
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
shell_exec("/home/pi/BirdNET-Lite/scripts/edit_birdnet.conf.sh");
|
||||
header('Location: http://birdnetsystem.local:9898');
|
||||
shell_exec("/home/pi/Birding-Pi/scripts/edit_birdnet.conf.sh");
|
||||
header('Location: http://birdingpi.local:9898');
|
||||
?>
|
||||
|
||||
@@ -7,7 +7,7 @@ trap '${my_dir}/dump_logs.sh && echo -e "\n\nExiting the installation. Goodbye!"
|
||||
cd $my_dir || exit 1
|
||||
|
||||
if [ "$(uname -m)" != "aarch64" ];then
|
||||
echo "BirdNET-Lite requires a 64-bit OS.
|
||||
echo "Birding-Pi requires a 64-bit OS.
|
||||
It looks like your operating system is using $(uname -m),
|
||||
but would need to be aarch64.
|
||||
Please take a look at https://birdnetwiki.pmcgui.xyz for more
|
||||
@@ -46,7 +46,7 @@ install_deps() {
|
||||
}
|
||||
|
||||
install_birdnet() {
|
||||
cd ~/BirdNET-Lite || exit 1
|
||||
cd ~/Birding-Pi || exit 1
|
||||
echo "Upgrading pip, wheel, and setuptools"
|
||||
sudo pip3 install --upgrade pip wheel setuptools
|
||||
echo "Fetching the TFLite pre-built binaries"
|
||||
@@ -65,7 +65,7 @@ install_birdnet() {
|
||||
|
||||
read -sp "\
|
||||
Be sure you have read the software license before installing. This is
|
||||
available in the BirdNET-Lite directory as "LICENSE"
|
||||
available in the Birding-Pi directory as "LICENSE"
|
||||
If you DO NOT want to install BirdNET and the birdnet_analysis.service,
|
||||
press Ctrl+C to cancel. If you DO wish to install BirdNET and the
|
||||
birdnet_analysis.service, press ENTER to continue with the installation."
|
||||
@@ -94,13 +94,13 @@ echo " BirdNet is installed!!
|
||||
http://birdnetsystem.local to see your extractions,
|
||||
http://birdlog.local to see the log output of the birdnet_analysis.service,
|
||||
http://extractionlog.local to see the log output of the extraction.service, and
|
||||
http://birdstats.local to see the BirdNET-Lite Report"
|
||||
http://birdstats.local to see the Birding-Pi Report"
|
||||
echo
|
||||
read -n1 -p " Would you like to run the birdnet_analysis.service now?" YN
|
||||
echo
|
||||
case $YN in
|
||||
[Yy] ) sudo systemctl start birdnet_analysis.service \
|
||||
&& journalctl -fu birdnet_analysis;;
|
||||
* ) echo " Thanks for installing BirdNET-Lite!!
|
||||
* ) echo " Thanks for installing Birding-Pi!!
|
||||
I hope it was helpful!";;
|
||||
esac
|
||||
|
||||
@@ -298,7 +298,7 @@ REMOTE_RECS_DIR=${REMOTE_RECS_DIR}
|
||||
|
||||
## EXTRACTIONS_URL is the URL where the extractions, data-set, and live-stream
|
||||
## will be web-hosted. If you do not own a domain, or would just prefer to keep
|
||||
## BirdNET-Lite on your local network, you can set this to http://localhost.
|
||||
## Birding-Pi on your local network, you can set this to http://localhost.
|
||||
## Setting this (even to http://localhost) will also allow you to enable the
|
||||
## GoTTY web logging features below.
|
||||
|
||||
@@ -345,10 +345,10 @@ PUSHED_APP_SECRET=${PUSHED_APP_SECRET}
|
||||
# Keep this EMPTY if you do not want to install NoMachine. #
|
||||
|
||||
## INSTALL_NOMACHINE is simply a setting that can be enabled to install
|
||||
## NoMachine alongside the BirdNET-Lite for remote desktop access. This in-
|
||||
## NoMachine alongside the Birding-Pi for remote desktop access. This in-
|
||||
## staller assumes personal use. Please reference the LICENSE file included
|
||||
## in this repository for more information.
|
||||
## Set this to Y or y to install NoMachine alongside the BirdNET-Lite
|
||||
## Set this to Y or y to install NoMachine alongside the Birding-Pi
|
||||
|
||||
INSTALL_NOMACHINE=${INSTALL_NOMACHINE}
|
||||
|
||||
@@ -388,7 +388,7 @@ EXTRACTED=${RECS_DIR}/Extracted
|
||||
## change this variable between data-sets to preserve records of disparate
|
||||
## data-sets according to name.
|
||||
|
||||
IDFILE=${HOME}/BirdNET-Lite/IdentifiedSoFar.txt
|
||||
IDFILE=${HOME}/Birding-Pi/IdentifiedSoFar.txt
|
||||
|
||||
## OVERLAP is the value in seconds which BirdNET should use when analyzing
|
||||
## the data. The values must be between 0.0-2.9.
|
||||
@@ -444,7 +444,7 @@ EOF
|
||||
sudo ln -sf $(dirname ${my_dir})/birdnet.conf /etc/birdnet/birdnet.conf
|
||||
}
|
||||
|
||||
# Checks for a birdnet.conf file in the BirdNET-Lite directory for a
|
||||
# Checks for a birdnet.conf file in the Birding-Pi directory for a
|
||||
# non-interactive installation. Otherwise,the installation is interactive.
|
||||
if [ -f ${BIRDNET_CONF} ];then
|
||||
source ${BIRDNET_CONF}
|
||||
|
||||
@@ -10,7 +10,7 @@ gotty_url="https://github.com/yudai/gotty/releases/download/v1.0.1/gotty_linux_a
|
||||
CONFIG_FILE="$(dirname ${my_dir})/birdnet.conf"
|
||||
|
||||
install_scripts() {
|
||||
echo "Installing BirdNET-Lite scripts to /usr/local/bin"
|
||||
echo "Installing Birding-Pi scripts to /usr/local/bin"
|
||||
ln -sf ${my_dir}/* /usr/local/bin/
|
||||
rm /usr/local/bin/index.html
|
||||
}
|
||||
@@ -207,7 +207,7 @@ ${EXTRACTIONS_URL} {
|
||||
php_fastcgi unix//run/php/php7.3-fpm.sock
|
||||
}
|
||||
|
||||
http://birdnetsystem.local {
|
||||
http://birdingpi.local {
|
||||
root * ${EXTRACTED}
|
||||
file_server browse
|
||||
basicauth /Processed* {
|
||||
@@ -284,7 +284,7 @@ RestartSec=3
|
||||
Type=simple
|
||||
User=${USER}
|
||||
Environment=TERM=xterm-256color
|
||||
ExecStart=/usr/local/bin/gotty -p 8080 --title-format "BirdNET-Lite Log" journalctl -fu birdnet_analysis.service
|
||||
ExecStart=/usr/local/bin/gotty -p 8080 --title-format "Birding-Pi Log" journalctl -fu birdnet_analysis.service
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -318,7 +318,7 @@ RestartSec=3
|
||||
Type=simple
|
||||
User=${USER}
|
||||
Environment=TERM=xterm-256color
|
||||
ExecStart=/usr/local/bin/gotty -p 9090 --title-format "BirdNET-Lite Statistics" tmux new -A -s birdstats /usr/local/bin/birdnet_stats.sh
|
||||
ExecStart=/usr/local/bin/gotty -p 9090 --title-format "Birding-Pi Statistics" tmux new -A -s birdstats /usr/local/bin/birdnet_stats.sh
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -378,7 +378,7 @@ RestartSec=3
|
||||
Type=simple
|
||||
User=pi
|
||||
Environment=TERM=xterm-256color
|
||||
ExecStart=/usr/local/bin/gotty -w -p 9898 --title-format "Edit birdnet.conf" tmux new -A -s editbirdnet nano /home/pi/BirdNET-Lite/birdnet.conf
|
||||
ExecStart=/usr/local/bin/gotty -w -p 9898 --title-format "Edit birdnet.conf" tmux new -A -s editbirdnet nano /home/pi/Birding-Pi/birdnet.conf
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@@ -418,7 +418,7 @@ install_livestream_service() {
|
||||
echo "Installing Live Stream service"
|
||||
cat << EOF > /etc/systemd/system/livestream.service
|
||||
[Unit]
|
||||
Description=BirdNET-Lite Live Stream
|
||||
Description=Birding-Pi Live Stream
|
||||
|
||||
[Service]
|
||||
Environment=XDG_RUNTIME_DIR=/run/user/1000
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
# ONLY run this additional script if you trust everyone on your
|
||||
# local network completely as the credentials are sent WITHOUT
|
||||
# any SSL/TLS encryption. For a secure remote connection to your
|
||||
# BirdNET-Lite command line, consider enabling SSH on the
|
||||
# Birding-Pi command line, consider enabling SSH on the
|
||||
# Raspberry Pi and using another Linux machine or an SSH
|
||||
# client software, or you can alternately add the 'tls internal'
|
||||
# directive to the Caddyfile to add a self-signed certificate for TLS/SSL
|
||||
@@ -46,7 +46,7 @@ install_tmux() {
|
||||
install_web_terminal() {
|
||||
cat << EOF | sudo tee /etc/systemd/system/birdterminal.service
|
||||
[Unit]
|
||||
Description=A BirdNET-Lite Web Terminal
|
||||
Description=A Birding-Pi Web Terminal
|
||||
|
||||
[Service]
|
||||
Restart=on-failure
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
shell_exec("/home/pi/BirdNET-Lite/scripts/reboot_system.sh");
|
||||
header('Location: http://birdnetsystem.local/scripts/index.html?success=true');
|
||||
shell_exec("/home/pi/Birding-Pi/scripts/reboot_system.sh");
|
||||
header('Location: http://birdingpi.local/scripts/index.html?success=true');
|
||||
?>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
# Reconfigure the BirdNET-Lite
|
||||
# Reconfigure the Birding-Pi
|
||||
source /etc/birdnet/birdnet.conf
|
||||
uninstall.sh
|
||||
${HOME}/BirdNET-Lite/scripts/install_config.sh
|
||||
sudo ${HOME}/BirdNET-Lite/scripts/install_services.sh
|
||||
echo "BirdNET-Lite has now been reconfigured."
|
||||
${HOME}/Birding-Pi/scripts/install_config.sh
|
||||
sudo ${HOME}/Birding-Pi/scripts/install_services.sh
|
||||
echo "Birding-Pi has now been reconfigured."
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
shell_exec("/home/pi/BirdNET-Lite/scripts/restart_birdnet_analysis.sh");
|
||||
header('Location: http://birdnetsystem.local/scripts/index.html?success=true');
|
||||
shell_exec("/home/pi/Birding-Pi/scripts/restart_birdnet_analysis.sh");
|
||||
header('Location: http://birdingpi.local/scripts/index.html?success=true');
|
||||
?>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
shell_exec("/home/pi/BirdNET-Lite/scripts/restart_birdnet_recording.sh");
|
||||
header('Location: http://birdnetsystem.local/scripts/index.html?success=true');
|
||||
shell_exec("/home/pi/Birding-Pi/scripts/restart_birdnet_recording.sh");
|
||||
header('Location: http://birdingpi.local/scripts/index.html?success=true');
|
||||
?>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
shell_exec("/home/pi/BirdNET-Lite/scripts/restart_caddy.sh");
|
||||
header('Location: http://birdnetsystem.local/scripts/index.html?success=true');
|
||||
shell_exec("/home/pi/Birding-Pi/scripts/restart_caddy.sh");
|
||||
header('Location: http://birdingpi.local/scripts/index.html?success=true');
|
||||
?>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
shell_exec("/home/pi/BirdNET-Lite/scripts/restart_extraction.sh");
|
||||
header('Location: http://birdnetsystem.local/scripts/index.html?success=true');
|
||||
shell_exec("/home/pi/Birding-Pi/scripts/restart_extraction.sh");
|
||||
header('Location: http://birdingpi.local/scripts/index.html?success=true');
|
||||
?>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
shell_exec("/home/pi/BirdNET-Lite/scripts/restart_services.sh");
|
||||
header('Location: http://birdnetsystem.local/scripts/index.html?success=true');
|
||||
shell_exec("/home/pi/Birding-Pi/scripts/restart_services.sh");
|
||||
header('Location: http://birdingpi.local/scripts/index.html?success=true');
|
||||
?>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
shell_exec("/home/pi/BirdNET-Lite/scripts/shutdown_system.sh");
|
||||
header('Location: http://birdnetsystem.local/scripts/index.html?success=true');
|
||||
shell_exec("/home/pi/Birding-Pi/scripts/shutdown_system.sh");
|
||||
header('Location: http://birdingpi.local/scripts/index.html?success=true');
|
||||
?>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<?php
|
||||
shell_exec("/home/pi/BirdSongs/Extracted/spectrogram.sh");
|
||||
header('Location: http://birdnetsystem.local/spectrogram.png');
|
||||
header('Location: http://birdingpi.local/spectrogram.png');
|
||||
?>
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
# Make sox spectrogram
|
||||
source /etc/birdnet/birdnet.conf
|
||||
analyzing_now="$(cat /home/pi/BirdNET-Lite/analyzing_now.txt)"
|
||||
analyzing_now="$(cat /home/pi/Birding-Pi/analyzing_now.txt)"
|
||||
spectrogram_png=${EXTRACTED}/spectrogram.png
|
||||
sudo -u pi sox "${analyzing_now}" -n spectrogram -o "${spectrogram_png}"
|
||||
|
||||
@@ -105,5 +105,5 @@ remove_scripts() {
|
||||
remove_services
|
||||
remove_scripts
|
||||
if [ -d /etc/birdnet ];then sudo rm -drf /etc/birdnet;fi
|
||||
if [ -f ${HOME}/BirdNET-Lite/birdnet.conf ];then sudo rm -f ${HOME}/BirdNET-Lite/birdnet.conf;fi
|
||||
if [ -f ${HOME}/Birding-Pi/birdnet.conf ];then sudo rm -f ${HOME}/Birding-Pi/birdnet.conf;fi
|
||||
echo "Uninstall finished. Remove this directory with 'rm -drfv' to finish."
|
||||
|
||||
@@ -9,7 +9,7 @@ ${EXTRACTIONS_URL} {
|
||||
}
|
||||
reverse_proxy /stream localhost:8000
|
||||
}
|
||||
http://birdnetsystem.local {
|
||||
http://birdingpi.local {
|
||||
root * ${EXTRACTED}
|
||||
file_server browse
|
||||
basicauth ${PROCESSED}* {
|
||||
|
||||
@@ -8,7 +8,7 @@ ${EXTRACTIONS_URL} {
|
||||
birdnet ${HASHWORD}
|
||||
}
|
||||
}
|
||||
http://birdnetsystem.local {
|
||||
http://birdingpi.local {
|
||||
root * ${EXTRACTED}
|
||||
file_server browse
|
||||
basicauth ${PROCESSED}* {
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
#birdnet
|
||||
0 1 * * * /usr/local/bin/cleanup.sh &> /dev/null
|
||||
@reboot /usr/local/bin/cleanup.sh &> /dev/null
|
||||
|
||||
+24
-9
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>BirdNET-Lite System</title>
|
||||
<title>Birding Pi</title>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<style>
|
||||
@@ -46,7 +46,19 @@ header {
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 20px;
|
||||
font-size: 24px;
|
||||
font-weight: normal;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
text-overflow: ellipsis;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
h2 {
|
||||
padding-left: 5%;
|
||||
font-size: 18px;
|
||||
margin-bottom: 10px;
|
||||
margin-top: 10px;
|
||||
font-weight: normal;
|
||||
white-space: nowrap;
|
||||
overflow-x: hidden;
|
||||
@@ -319,19 +331,22 @@ footer {
|
||||
|
||||
<header>
|
||||
<h1>
|
||||
<a href="">BirdNET-Lite System</a>
|
||||
<a href="">Birding Pi (BirdNET-Lite)</a>
|
||||
</h1>
|
||||
</header>
|
||||
<hr>
|
||||
<h2>
|
||||
<a href="./stream">
|
||||
<span class="name">Live Audio Stream</span>
|
||||
<span class="name">🔊 Live Audio Stream</span>
|
||||
</a>
|
||||
</h2>
|
||||
<hr>
|
||||
<h2>
|
||||
<a href="http://birdnetsystem.local:9090">
|
||||
<span class="name">BirdNET-system Report</span>
|
||||
<span class="name">🐦 BirdNET-system Report</span>
|
||||
</a>
|
||||
</h2>
|
||||
<hr>
|
||||
<main>
|
||||
<div class="listing">
|
||||
<table aria-describedby="summary">
|
||||
@@ -395,7 +410,7 @@ footer {
|
||||
<td>
|
||||
<a href="./scripts/">
|
||||
<svg width="1.5em" height="1em" version="1.1" viewBox="0 0 317 259"><use xlink:href="#folder"></use></svg>
|
||||
<span class="name">scripts</span>
|
||||
<span class="name">🗎 scripts</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -404,7 +419,7 @@ footer {
|
||||
<td>
|
||||
<a href="http://birdnetsystem.local:8080">
|
||||
<svg width="1.5em" height="1em" version="1.1" viewBox="0 0 317 259"><use xlink:href="#folder"></use></svg>
|
||||
<span class="name">birdlog</span>
|
||||
<span class="name">⚙ birdlog</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -413,7 +428,7 @@ footer {
|
||||
<td>
|
||||
<a href="http://birdnetsystem.local:8888">
|
||||
<svg width="1.5em" height="1em" version="1.1" viewBox="0 0 317 259"><use xlink:href="#folder"></use></svg>
|
||||
<span class="name">extractionlog</span>
|
||||
<span class="name">⚝ extractionlog</span>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -482,4 +497,4 @@ footer {
|
||||
timeList.forEach(localizeDatetime);
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
@@ -1,5 +1,5 @@
|
||||
[Unit]
|
||||
Description=BirdNET-Lite Live Stream
|
||||
Description=Birding-Pi Live Stream
|
||||
[Service]
|
||||
Environment=XDG_RUNTIME_DIR=/run/user/1000
|
||||
Restart=always
|
||||
|
||||
+2
-2
@@ -11,12 +11,12 @@ set-window-option -g mode-keys vi
|
||||
|
||||
set-option -g status-interval 5
|
||||
set-option -g status 2
|
||||
set-option -g status-format[1] '#[bg=cyan,fg=black]#[align=left][BirdNET-Lite] #[bg=cyan]#[align=centre]#(vcgencmd measure_temp) #(vcgencmd get_throttled)#[align=right]#(~/BirdNET-Lite/scripts/disk_usage.sh)%l:%M%p'
|
||||
set-option -g status-format[1] '#[bg=cyan,fg=black]#[align=left][Birding-Pi] #[bg=cyan]#[align=centre]#(vcgencmd measure_temp) #(vcgencmd get_throttled)#[align=right]#(~/Birding-Pi/scripts/disk_usage.sh)%l:%M%p'
|
||||
set-option -g status-style bg=magenta,fg=cyan
|
||||
set-option -g status-justify centre
|
||||
set-option -g status-left-length 50
|
||||
set-option -g status-left '#[fg=brightyellow]arm clock #(vcgencmd measure_clock arm)'
|
||||
set-option -g status-right '#[fg=brightyellow]%A, %B %e#(~/BirdNET-Lite/scripts/pretty_date.sh)'
|
||||
set-option -g status-right '#[fg=brightyellow]%A, %B %e#(~/Birding-Pi/scripts/pretty_date.sh)'
|
||||
|
||||
bind r source-file /etc/tmux.conf \; display "Reloaded!"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user