- Displays currently playing song from Spotify
- Expands on hover to show full controls
- Media control buttons (Previous, Play/Pause, Next)
- Always-on-top display
- Semi-transparent black background with rounded corners
- Smooth animations and transitions
- Real-time updates via DBus
- Drag support for repositioning
Install the required packages for your distribution:
# For Ubuntu/Debian
sudo apt install python3-gi python3-dbus gir1.2-gtk-3.0 nodejs npm
# For Fedora
sudo dnf install python3-gobject python3-dbus gtk3 nodejs npm
# For Arch Linux
sudo pacman -S python-gobject python-dbus gtk3 nodejs npm- Clone the repository:
git clone https://github.com/orangopus/dynamix-island.git
cd linux-dynamic-island- Install dependencies:
npm install- Make sure Spotify is running and playing music
- Start the application:
npm startTo run in development mode with hot reload:
npm run devThe application can be configured by editing the following files:
config.js: General application settingsstyles.css: Visual customizationrenderer.js: Behavior and interaction logic
-
Island not showing:
- Ensure your window manager supports transparency
- Check if Electron is properly installed
-
No song information:
- Verify Spotify is running
- Check DBus connection status
- Ensure required permissions are set
-
Controls not working:
- Verify DBus permissions
- Check Spotify's DBus integration status
Run with debug logging enabled:
DEBUG=true npm start- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by Apple's Dynamic Island
- Built with Electron and DBus
- Uses Spotify's DBus interface
linux-dynamic-island/
├── src/
│ ├── main.js # Main Electron process
│ ├── renderer.js # Renderer process
│ └── styles.css # Styles
├── config.js # Configuration
├── package.json # Dependencies and scripts
└── README.md # Documentation
- Support for other media players
- Customizable themes
- Additional animations
- System notifications integration
- Keyboard shortcuts
- Hyprland support

