Fast desktop local image viewer for gesture drawing and reference practice. If you touch-type, the UI shortcuts should feel natural on first use.
- opens large image folders quickly, works natively with nested folders (folders inside folders)
- lets you browse in order or shuffle randomly
- Ctrl toggles shortcut hints, Alt switches left/right key side; button order updates to match keyboard rows
- includes a timed slideshow mode for hands-free practice
- remembers your last image and UI settings between launches
- offers quick image aids: mirror and greyscale
- keeps session history so you can jump back easily
- hold z or / key, enter number of seconds, release key to update start/stop timer value
- double-click on folder in app UI to serve images only from this folder
Debian/Ubuntu via apt repository:
curl -fsSL https://yukiyuziriha.github.io/random-pics/apt/keyrings/random-pics-archive-keyring.gpg \
| sudo tee /usr/share/keyrings/random-pics-archive-keyring.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/random-pics-archive-keyring.gpg] https://yukiyuziriha.github.io/random-pics/apt stable main" \
| sudo tee /etc/apt/sources.list.d/random-pics.list >/dev/null
sudo apt update
sudo apt install -y random-picsDebian/Ubuntu one-off install from latest release asset:
bash <(curl -fsSL https://raw.githubusercontent.com/YukiYuziriha/random-pics/main/scripts/install-latest-deb.sh)Arch via AUR (once random-pics-bin is published):
yay -S random-pics-binArch direct from AppImage release asset:
chmod +x ./random-pics_1.1.1_amd64.AppImage
./random-pics_1.1.1_amd64.AppImageRun installed app:
random-picsRequirements:
- Bun
- Rust toolchain (for Tauri)
Fresh machine setup (Arch/EndeavourOS):
sudo pacman -S --needed rustup
rustup default stableProject setup:
bun install
bun add -d @tauri-apps/cliCommand (safe on fresh shells):
source "$HOME/.cargo/env" && bunx -p @tauri-apps/cli tauri devIf Rust is already on PATH:
bunx -p @tauri-apps/cli tauri devWhat this does:
- starts frontend watch build
- runs Tauri desktop app with bundled local frontend assets
- uses Rust Tauri commands (
invoke) for backend logic - does not require localhost HTTP API
Typecheck:
bun tscRust backend regression tests:
bun run testCI-style validation (Rust tests + TypeScript typecheck):
bun run test:cisource "$HOME/.cargo/env" && bunx tauri buildOutput files are generated per platform in:
src-tauri/target/release/bundle/
Typical outputs include .deb/.AppImage on Linux, .dmg on macOS, and .msi on Windows.
If you change src/App.tsx (or any frontend file):
- rebuild with
bunx tauri buildand reinstall the generated package for your OS
If you change backend behavior, update Rust code in:
src-tauri/src/*.rssrc-tauri/tauri.conf.jsonsrc-tauri/capabilities/*.json
Current runtime architecture:
- desktop app powered by Tauri commands (
invoke) for backend logic - frontend assets are bundled into the app package
- no separate local API server required at runtime
