Pop!_OS 24 desktop client for Google Drive: Go sync daemon + GTK4 UI + FUSE streaming, built with Bazel.
.
|-- assets - icons/branding
|-- cmd - entry point (googlysync CLI)
|-- configs - config templates
|-- docs - additional docs
|-- internal - core app packages (auth, config, storage, sync, ipc, etc.)
|-- packaging - packaging assets
| |-- deb - .deb packaging files
| `-- systemd - systemd user units
|-- pkg - public/shared packages (if any)
|-- proto - gRPC definitions
|-- scripts - tooling helpers
|-- third_party - external assets or vendored code
|-- tools - dev/build tools
`-- ui - GTK UI resources/layouts
- Install:
pipx install pre-commit(orpip install pre-commit) - Install tools:
golangci-lint,buf(plus Go) - Enable:
pre-commit install - Run all hooks:
pre-commit run --all-files - Manual Bazel build:
pre-commit run bazel-build --all-files
| Task | Command | Description |
|---|---|---|
| list | task --list |
List available tasks |
| bazel:build | task bazel:build |
Build all Bazel targets |
| bazel:test | task bazel:test |
Run Bazel tests |
| gazelle | task gazelle |
Update Bazel BUILD files |
| wire | task wire |
Generate Wire DI files |
| wire:check | task wire:check |
Verify Wire outputs are up to date |
| buf:gen | task buf:gen |
Generate gRPC code via Buf |
| goose | task goose -- <cmd> |
Run Goose migrations via Bazel |
| run:daemon | task run:daemon |
Build and run daemon |
| run:status | task run:status |
Build and run status once |
| run:ping | task run:ping |
Build and ping daemon |
| run:tui | task run:tui |
Build and run status TUI |
| clean | task clean |
Clean Bazel outputs |
- Build:
task bazel:build - Start daemon:
task run:daemon - Open status TUI:
task run:tui - Status once:
task run:status - Ping daemon:
task run:ping
Config file fields (JSON):
log_levellog_file_pathlog_file_max_mblog_file_max_backupslog_file_max_age_days
Env overrides:
GOOGLYSYNC_LOG_LEVELGOOGLYSYNC_LOG_FILEGOOGLYSYNC_LOG_MAX_MBGOOGLYSYNC_LOG_MAX_BACKUPSGOOGLYSYNC_LOG_MAX_AGE_DAYS