Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
c0e4451
Rewrite in Rust
felipecrs Feb 11, 2026
8185668
Fix app icon
felipecrs Feb 11, 2026
8c7c6c4
Extract more consts
felipecrs Feb 11, 2026
d5cbd5c
Add polling harder mode back
felipecrs Feb 12, 2026
ba5f96a
Use rmbrr to delete directory to fix network issues
felipecrs Feb 12, 2026
399015c
Revert "Use rmbrr to delete directory to fix network issues"
felipecrs Feb 12, 2026
d293a06
Add vscode config
felipecrs Mar 3, 2026
72e30ed
Fix clippy warnings
felipecrs Mar 3, 2026
565c2ef
Add CI
felipecrs Mar 3, 2026
8d5e702
Add github actions extension
felipecrs Mar 3, 2026
206601e
Merge branch 'master' of https://github.com/felipecrs/clipboard-sync …
felipecrs Mar 3, 2026
da6654f
cargo fmt
felipecrs Mar 3, 2026
d109056
Setup sccache
felipecrs Mar 3, 2026
02d0599
Add TODO
felipecrs Mar 3, 2026
6391176
Update Rust
felipecrs Mar 18, 2026
0ed0c91
refresh lockfile
felipecrs Mar 18, 2026
a55bbe9
async
felipecrs Mar 18, 2026
de05b50
rework menu
felipecrs Mar 18, 2026
0a6f82d
Fix warnings
felipecrs Mar 18, 2026
ae845bb
Move Open sync folder too
felipecrs Mar 18, 2026
183506c
Pin dependencies
felipecrs Mar 19, 2026
571d61a
Remove polling harder mode, because polling suffices
felipecrs Mar 19, 2026
102b0a1
Fix too many args
felipecrs Mar 19, 2026
f642415
Improve error handling with anyhow and other stuff
felipecrs Mar 19, 2026
a144e6a
Fix tray menu not updating
felipecrs Mar 20, 2026
3c870cc
Rework README
felipecrs Mar 20, 2026
bc92762
Align some code with Volume Locker
felipecrs Mar 20, 2026
7717383
Update renovate.json
felipecrs Mar 25, 2026
6bbdc49
Update deps
felipecrs Mar 25, 2026
427bdac
Avoid erasing preferences if there's an error when loading it
felipecrs Mar 25, 2026
212b9f5
Rename config to state, to match Volume Locker
felipecrs Mar 25, 2026
44ad802
Fix position of auto launch on startup item
felipecrs Mar 25, 2026
165d8a0
Fix clipboard files not being read
felipecrs Mar 25, 2026
e16afa7
Fix auto-launch wording
felipecrs Mar 25, 2026
a4eb6dc
Fix more code inconsistencies with volume-locker
felipecrs Mar 25, 2026
3be10db
Avoid rebuilding auto-launch
felipecrs Mar 25, 2026
af71d2a
Fix UNC path handling on Windows
felipecrs Mar 30, 2026
832014c
Update dependencies
felipecrs Mar 30, 2026
d8c23f2
Update dependencies
felipecrs Apr 5, 2026
0e20cbc
Fix Linux compilation
felipecrs Apr 5, 2026
34d0fcd
Fix tray icon not changing on Linux
felipecrs Apr 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 25 additions & 37 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,51 +17,39 @@ jobs:
os: [macos, windows, ubuntu]
fail-fast: false
runs-on: "${{ matrix.os }}-latest"
env:
CARGO_TERM_COLOR: always
SCCACHE_GHA_ENABLED: "true"
RUSTC_WRAPPER: "sccache"
steps:
- uses: actions/checkout@v6
- uses: volta-cli/action@v4
# https://github.com/actions/runner/issues/2958#issuecomment-2186602747
- if: matrix.os == 'macos'
run: brew install python-setuptools
# https://www.electronforge.io/config/makers/flatpak#requirements
- if: matrix.os == 'ubuntu'
- uses: actions-rust-lang/setup-rust-toolchain@v1
- uses: mozilla-actions/sccache-action@v0.0.9
- run: cargo fmt --check
- run: cargo clippy --locked
- if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
shell: bash
run: |
set -ex
sudo apt-get update
sudo apt-get install -y --no-install-recommends flatpak flatpak-builder elfutils
flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo
- run: npm ci
- run: npm run lint
- run: npm run format:check
- run: npm run make
version="${GITHUB_REF#refs/tags/v}"
sed -i "s/^version = \"0.0.0-development\"$/version = \"${version}\"/" Cargo.toml Cargo.lock
grep -q "^version = \"${version}\"$" Cargo.toml Cargo.lock
- run: cargo build --release --frozen
- uses: actions/upload-artifact@v7
with:
name: build-${{ matrix.os }}
# TODO: handle other platforms
path: target/release/ClipboardSync.exe
release:
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
needs: build
strategy:
matrix:
os: [macos, windows, ubuntu]
fail-fast: false
runs-on: "${{ matrix.os }}-latest"
runs-on: ubuntu-latest
permissions:
contents: write # for release
steps:
- uses: actions/checkout@v6
- uses: volta-cli/action@v4
# https://github.com/actions/runner/issues/2958#issuecomment-2186602747
- if: matrix.os == 'macos'
run: brew install python-setuptools
# https://www.electronforge.io/config/makers/flatpak#requirements
- if: matrix.os == 'ubuntu'
run: |
set -ex
sudo apt-get update
sudo apt-get install -y --no-install-recommends flatpak flatpak-builder elfutils
flatpak remote-add --if-not-exists --user flathub https://dl.flathub.org/repo/flathub.flatpakrepo
- run: npm ci
- run: npm version --no-git-tag-version "${{ github.ref_name }}"
- run: npm run make
- uses: actions/download-artifact@v8
- uses: softprops/action-gh-release@v2
with:
make_latest: true
# TODO: handle other platforms
files: |
out/make/**/*.exe
out/make/**/*.dmg
out/make/**/*.flatpak
target/release/ClipboardSync.exe
97 changes: 1 addition & 96 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,96 +1 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock
.DS_Store

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# next.js build output
.next

# nuxt.js build output
.nuxt

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# Webpack
.webpack/

# Electron-Forge
out/
.flatpak-builder/

# Electron Vite
dist/

# bindl
resources/binaries/
/target/
9 changes: 9 additions & 0 deletions .vscode/extensions.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
"recommendations": [
"rust-lang.rust-analyzer",
"vadimcn.vscode-lldb",
"tamasfe.even-better-toml",
"esbenp.prettier-vscode",
"github.vscode-github-actions"
]
}
14 changes: 4 additions & 10 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,11 @@
"version": "0.2.0",
"configurations": [
{
"name": "Debug Main Process",
"type": "node",
"name": "Debug",
"type": "lldb",
"request": "launch",
"cwd": "${workspaceRoot}",
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron-vite",
"windows": {
"runtimeExecutable": "${workspaceRoot}/node_modules/.bin/electron-vite.cmd"
},
"runtimeArgs": ["--sourcemap"],
"env": {
"REMOTE_DEBUGGING_PORT": "9222"
"cargo": {
"args": ["run"]
}
}
]
Expand Down
31 changes: 12 additions & 19 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,23 +1,16 @@
{
"[javascript]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
"rust-analyzer.check.command": "clippy",
"rust-analyzer.rustfmt.rangeFormatting.enable": true,
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer",
"editor.formatOnSave": true
},
"[typescript]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
"[toml]": {
"editor.defaultFormatter": "tamasfe.even-better-toml",
"editor.formatOnSave": true
},
"[json]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[markdown]": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"files.eol": "\n"
"[json][jsonc][yaml][markdown]": {
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true
}
}
Loading