Desktop app for Linux that syncs study notes from public links (Yandex Disk, Google Drive, direct URLs).
Repository: ndrew1337/notes-sync-linux
- Add, edit, delete sources
- Manual sync: selected source or all sources
- Auto-sync timer
- Stop active sync
- Folder mode with tree view (expand/collapse nested folders)
- Sort files inside source folders by
NameorDate - Double-click file to open
- If file is missing locally, double-click starts download (for Yandex folder sources)
- Keep full folder structure even when some files are skipped/failed
- Filters:
Skip videos,Skip > N MB
Download .deb or AppImage from Releases.
sudo apt install ./notes-sync-linux_<VERSION>_amd64.deb
notes-sync-linuxchmod +x NotesSyncLinux-<VERSION>-x86_64.AppImage
./NotesSyncLinux-<VERSION>-x86_64.AppImage- Linux
- Python 3.10+
xdg-open
Install dependencies:
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txtRun:
python3 -m notes_sync_linux.mainAlternative:
./run.sh- Qt (
PySide6) only
Run Qt entrypoint directly:
python3 -m notes_sync_linux.main_qtLocal data path:
~/.notes-sync-app-linux/config.json~/.notes-sync-app-linux/sources/~/.notes-sync-app-linux/pdfs/
- Yandex public file/folder links (
disk.yandex.ru,disk.360.yandex.ru,docs.yandex.ru) - Google Drive public file links
- Direct HTTP/HTTPS file links
Notes:
- On-demand per-file redownload (double-click missing file) is implemented for Yandex folder sources.
- For non-Yandex providers, per-file on-demand download depends on available remote path metadata.
Run checks locally:
python3 -m py_compile notes_sync_linux/core.py notes_sync_linux/gui.py notes_sync_linux/qt_gui.py notes_sync_linux/main.py notes_sync_linux/main_qt.py
PYTHONPATH=. python3 -m unittest discover -s tests -v
PYTHONPATH=. python3 scripts/gui_smoke_test.py
PYTHONPATH=. python3 scripts/gui_smoke_test_qt.pyAutomated via GitHub Actions:
.github/workflows/linux-notes-sync-ci.yml.github/workflows/linux-notes-sync-release.yml
Create a release tag:
git tag v0.1.2
git push origin v0.1.2Release workflow will:
- run tests and GUI smoke tests
- build
.debandAppImage - generate release notes from
CHANGELOG.md - publish GitHub Release assets
Manual artifact build:
./scripts/build_release_artifacts.sh 0.1.2Artifacts appear in dist/.
ImportError: libEGL.so.1 in CI or Linux host:
sudo apt-get update
sudo apt-get install -y libegl1 libgl1 libxkbcommon-x11-0 libxcb-cursor0Qt issues on specific distro:
- ensure Qt runtime packages are installed and
pip install -r requirements.txtcompleted
- Contribution guide:
CONTRIBUTING.md - Bug template:
.github/ISSUE_TEMPLATE/linux_notes_sync_bug.yml - Changelog:
CHANGELOG.md
MIT (LICENSE)