Skip to content

chicco-carone/Snapcast-Gui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Logo

Snapcast Gui

A gui to control and manage snapcast written in python with PySide6

Report Bug · Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. Roadmap
  5. Contributing
  6. License
  7. Contact
  8. Acknowledgments

About The Project

Snapcast Gui Screenshot

(back to top)

Built With

(back to top)

Getting Started

Running with prebuilt binaries

Head to the releases page on github and download the preferred binary for your platform. There are binaries for Windows and Linux

Tested Platforms

  • Arch Linux
  • Debian
  • Windows 10
  • Windows 11
  • MacOs (Not tested but should work, Open an issue if you find any issues)

Prerequisites

Python Minimum Version >=3.9 only tested on 3.11 and 3.12

Python Dependencies

  • snapcast
  • py_notify
  • PySide6
  • platformdirs

System Dependencies

Installation (Advanced Users)

Linux from distro packages

Arch Linux and derivates

The package is available on the aur so it can be installed with an aur helper like yay or manually

yay -Sy snapcast-gui-git
git clone https://github.com/chicco-carone/Snapcast-Gui.git
cd Snapcast-Gui
makepkg -si

There is also on the releases page a prebuilt arch package that can be installed with pacman

sudo pacman -U snapcast-gui.x.x.x-1-any.pkg.tar.zst

Debian and Ubuntu Derivates

On the releases page of the project there is a deb package that can be installed

sudo dpkg -i snapcast-gui-x.x.x.deb

Linux using a venv

  1. Clone the Repository:
git clone https://github.com/chicco-carone/Snapcast-Gui.git
cd Snapcast-Gui
  1. Create and Activate a Virtual Environment:
python -m venv venv
source venv/bin/activate
  1. Build the project
pip install setuptools wheel
python setup.py sdist bdist_wheel
  1. Install package on venv
pip install dist/snapcast_gui-x.x.x.tar.gz

Creating a single file executable (Windows and Linux)

  1. Clone the Repository:
git clone https://github.com/chicco-carone/Snapcast-Gui.git
cd Snapcast-Gui
  1. Create and Activate a Virtual Environment:

On Linux

python -m venv venv
venv/bin/activate

On Windows

python -m venv venv
.\venv\Scripts\activate.ps1
  1. Install Dependencies:
pip install -r requirements.txt
pip install pyinstaller
  1. Create the executable

For Linux

Note: The command for linux should work on MacOS too

pyinstaller --onefile --name "snapcast-gui" --add-data "icons/Snapcast.png:icons" --add-data "icons/Github.png:icons" main.py
 -onefile --add-data "snapcast_gui/icons:icons"

For Windows

pyinstaller --onefile --name "snapcast-gui" --icon "icons/Snapcast.png" --add-data "icons/Snapcast.png;icons" --add-data "icons/Github.png;icons" --uac-admin --noconsole main.py

(back to top)

Running from source

  1. Clone the Repository:
git clone https://github.com/chicco-carone/Snapcast-Gui.git
cd Snapcast-Gui
  1. Create and Activate a Virtual Environment:

On Linux

python -m venv venv
venv/bin/activate

On Windows

python -m venv venv
.\venv\Scripts\activate.ps1
  1. Install the required dependencies
pip install -r requirements.txt
  1. Run the Project:

You can run the project directly with python from the terminal or using an ide. For developing i only used visual studio code with the python extension pack from microsoft so i can't be certain that it works with other ide.

python snapcast_gui/main.py

(back to top)

Roadmap

See the planned features for a list of planned features.

See the known issues for a full list of known issues.

If you are having issues, please open an issue on the issues page

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Before doing anything always check the known issues and the planned features because something might already be there. Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the GPL-3 License. See LICENSE.txt for more information.

(back to top)

Contact

Francesco - chiccocarone@gmail.com

Project Link: https://github.com/chicco-carone/Snapcast-Gui

(back to top)

This project could not be possible without the help of the following projects

(back to top)

Using the GitHub Actions Workflow

The project now includes a GitHub Actions workflow to build the project with pyinstaller for Linux, Windows, and Mac, and to create and publish a new release with prebuilt binaries.

Steps to Use the Workflow

  1. Trigger the Workflow:

    • The workflow is triggered automatically on every push to the main branch and on every pull request to the main branch.
  2. Build and Release:

    • The workflow builds the project with pyinstaller for Linux, Windows, and Mac.
    • It then creates and publishes a new release with prebuilt binaries to the GitHub releases page.
  3. Check the Release:

    • Go to the releases page to find the newly created release with prebuilt binaries for your platform.

(back to top)

About

A gui to control and manage snapcast written in python

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published