Files
2025-08-01 10:09:30 +02:00

229 lines
6.6 KiB
Markdown

# SplitNotes
Cross-platform software for syncing notes with LiveSplit using the LiveSplit server component.
SplitNotes automatically shows notes for the split you are currently on, with support for Windows, macOS, and Linux.
![Screenshot 1](http://i.imgur.com/CMlF2pj.png)
![Screenshot 2](http://i.imgur.com/4Ei2IiJ.png)
## Features
* **Cross-platform support** - Works on Windows, macOS, and Linux
* **Automatic note display** based on the active split in LiveSplit
* **Preview functionality** - Use arrow keys to preview notes when no run is active
* **Dual layout modes** - Single or double layout to show current and next split notes
* **Customizable appearance** - Adjustable fonts, colors, and window size
* **Flexible note format** - Support for custom split separators
* **Live connection status** - Visual indicator of LiveSplit connection
## System Requirements
- **Python 3.6+** (for running from source)
- **LiveSplit** with Server Component
- **Operating System**: Windows 7+, macOS 10.12+, or Linux with X11
### Platform-Specific Requirements
**Windows:**
- No additional requirements for compiled version
- For source: Python with tkinter (included in standard installation)
**macOS:**
- No additional requirements for .app bundle
- For source: Python 3 with tkinter
**Linux:**
- For compiled version: glibc 2.17+
- For source: `python3`, `python3-tk`
```bash
# Ubuntu/Debian
sudo apt install python3 python3-tk
# Fedora/RHEL
sudo dnf install python3 python3-tkinter
# Arch
sudo pacman -S python python-tkinter
```
## Installation
### Method 1: Download Compiled Version
1. Download the latest release for your platform from the [releases page](https://github.com/apfelteesaft/SplitNotes/releases)
2. Extract the archive
3. Run the executable (`SplitNotes.exe`, `SplitNotes.app`, or `splitnotes`)
### Method 2: Install LiveSplit Server Component
1. Download the latest version of LiveSplit Server Component from [this site](https://github.com/LiveSplit/LiveSplit.Server/releases)
2. Unzip and move the files to the component folder in your LiveSplit install (`...\LiveSplit\Components`)
### Method 3: Run from Source
1. Ensure Python 3.6+ is installed
2. Download/clone this repository
3. Create a `resources/` folder with the icon files
4. Run: `python main_window.py` (or `python3 main_window.py` on Linux/macOS)
## Usage
### Connecting to LiveSplit
1. **Launch SplitNotes**
2. **Launch LiveSplit**
3. In LiveSplit: **Edit Layout** → **+** → **Control** → **LiveSplit Server** → **OK**
4. In LiveSplit: **Control** → **Start Server**
5. SplitNotes should connect automatically (green icon = connected, red = disconnected)
### Loading Notes
**Right-click** in SplitNotes and select **"Load Notes"** to choose your text file.
### Note File Format
Notes should be stored in a text file with the following format:
#### Using Newline Separator (Default)
```
[Split 1 Title]
These are notes for the first split.
You can write multiple lines.
[Split 2 Title]
Notes for split 2 go here.
Empty line above separates the splits.
[Split 3 Title]
Final split notes.
```
#### Using Custom Separator
```
[Split 1 Title]
Notes for split 1.
Multiple lines are fine.
-end-
[Split 2 Title]
Notes for split 2.
-end-
[Split 3 Title]
Notes for split 3.
```
**Format Rules:**
- Text in brackets `[like this]` is ignored (use for titles/comments)
- Empty lines (or custom separator) divide notes between splits
- All other text becomes part of the notes
- Encoding: UTF-8 recommended, with fallback support for other encodings
### Controls
- **Right-click**: Open context menu
- **Left/Right Arrow Keys**: Preview notes when timer is not running
- **Context Menu Options**:
- Load Notes
- Settings (customize appearance, layout, server port, separator)
### Settings
Access via right-click → **Settings**:
- **Font & Size**: Choose from system fonts
- **Colors**: Customize text and background colors
- **Layout**: Single or double (shows current + next split)
- **Server Port**: Change if using non-default LiveSplit port (default: 16834)
- **Split Separator**: Use newlines or custom text to separate splits
## Platform-Specific Notes
### Windows
- Windows Defender might flag the executable initially - add an exception if needed
- Supports all Windows versions from 7 onwards
### macOS
- First launch might require right-click → Open due to Gatekeeper security
- Supports both Intel and Apple Silicon Macs
- Integrates with system dark/light mode
### Linux
- Requires X11 display server (most desktop environments)
- Tested on Ubuntu, Fedora, and Arch Linux
- Application follows system theme where possible
## Building from Source
See `build_instructions.txt` for detailed build instructions for each platform.
**Quick Build:**
```bash
# Windows
pip install cx_Freeze
python setup_windows.py build
# macOS
pip install py2app
python setup_mac.py py2app
# Linux
pip install cx_Freeze
python setup_linux.py build
python setup_linux.py package
```
## Troubleshooting
### Connection Issues
- Ensure LiveSplit Server component is installed and started
- Check that port 16834 is not blocked by firewall
- Verify SplitNotes and LiveSplit are on the same machine
### Display Issues
- Update graphics drivers if experiencing rendering problems
- Try different font settings if text appears corrupted
- Ensure display scaling is set appropriately
### File Loading Issues
- Verify the notes file is not corrupted or locked by another program
- Try saving the file with UTF-8 encoding
- Check file permissions (especially on Linux/macOS)
### Performance Issues
- Close unnecessary applications if SplitNotes becomes slow
- Try reducing font size or window size
- Ensure adequate system memory is available
## Development
**Language**: Python 3.6+
**GUI Framework**: tkinter (cross-platform)
**Architecture**: Event-driven with threaded network communication
**License**: MIT
**Key Files:**
- `main_window.py` - Main application and GUI
- `ls_connection.py` - LiveSplit server communication
- `note_reader.py` - Note file parsing
- `setting_handler.py` - Configuration management
- `config.py` - Application constants and platform detection
## Contributing
Contributions are welcome! Please feel free to submit pull requests or open issues for bugs and feature requests.
## License
MIT License - see `license.txt` for details.
## Credits
**Originally Created by**: joeloskarsson
**Ported to MacOS, Linux and refind Build Setup by**: ApfelTeeSaft
**Original Version**: Windows-only Python application
**Cross-Platform Version**: Enhanced with macOS and Linux support
---
*For more information and updates, visit the [GitHub repository](https://github.com/apfelteesaft/SplitNotes).*