惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
腾讯CDC
Jina AI
Jina AI
博客园 - 司徒正美
博客园 - 三生石上(FineUI控件)
Apple Machine Learning Research
Apple Machine Learning Research
GbyAI
GbyAI
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
T
The Blog of Author Tim Ferriss
小众软件
小众软件
M
MIT News - Artificial intelligence
MyScale Blog
MyScale Blog
D
Docker
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Google DeepMind News
Google DeepMind News
月光博客
月光博客
L
LangChain Blog
F
Fortinet All Blogs
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - Franky
C
Check Point Blog
U
Unit 42
人人都是产品经理
人人都是产品经理

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - CPritch/shiftpaper: Parallax wallpaper for Wayla...
PxldLtd · 2026-05-18 · via Hacker News: Show HN

Parallax wallpaper daemon for Wayland. Uses monocular depth estimation to generate a depth map from any image, then shifts the wallpaper layers based on cursor position. The effect is subtle but satisfying.

Experimental. Built and tested on a single machine (Arch, Hyprland, RTX 5060). Expect rough edges.

Example Tiger Wallpaper

How it works

Two binaries:

  • shiftpaper (CLI) takes a source image, runs Depth Anything V2/V3 inference via ONNX Runtime, and writes a color + 16-bit depth PNG pair to a cache directory.
  • shiftpaperd (daemon) loads the pre-baked pair and renders a parallax-displaced wallpaper on wlr-layer-shell surfaces using wgpu/Vulkan.

The daemon has no ML dependencies. All inference happens in the CLI.

Dependencies

  • Wayland compositor with wlr-layer-shell support (see Supported compositors)
  • Vulkan-capable GPU
  • ONNX Runtime (onnxruntime on Arch; pick a CUDA or ROCm variant if you want GPU inference)

Building from source additionally requires a Rust toolchain.

The depth model is downloaded automatically by shiftpaper fetch-model.

Install

Arch Linux (AUR)

paru -S shiftpaper        # or yay, pikaur, etc.

From source

cargo install --path crates/cli
cargo install --path crates/daemon

If you want to use the systemd user service with a source build, install to somewhere like /usr/local so the binaries are in systemd's lookup path:

cargo install --root /usr/local --path crates/cli
cargo install --root /usr/local --path crates/daemon

Quick start

shiftpaper fetch-model
shiftpaper set ~/Pictures/wallpaper.jpg

fetch-model downloads Depth Anything V2 Small (~97 MB) from HuggingFace to ~/.local/share/shiftpaper/models/ and saves the path to config. After that, set needs no --model flag.

If you already have a model, skip fetch-model and pass it directly:

shiftpaper set ~/Pictures/wallpaper.jpg --model ~/path/to/model.onnx

The model path is saved to config so --model is only needed once.

Running the daemon

Directly:

shiftpaperd

As a systemd user service. The AUR package ships the unit file at /usr/lib/systemd/user/, so:

systemctl --user enable --now shiftpaperd

For source installs, copy the unit file first:

cp shiftpaperd.service ~/.config/systemd/user/
systemctl --user daemon-reload
systemctl --user enable --now shiftpaperd

Change wallpapers without restarting:

shiftpaper set ~/Pictures/new_wallpaper.jpg
systemctl --user reload shiftpaperd

CLI referenceland

Command Description
shiftpaper fetch-model Download the default depth model from HuggingFace
shiftpaper set <image> Bake an image and set it as the active wallpaper
shiftpaper bake <image> Bake an image without changing the active wallpaper
shiftpaper mode [pointer|hyprland] Show or set the cursor tracking mode

Config

Lives at ~/.config/shiftpaper/config.toml. Mostly managed by the CLI but you can edit it by hand.

[daemon]
parallax_intensity = 0.025
tracking_mode = "pointer"       # "pointer" (Wayland-native) or "hyprland" (IPC)
idle_timeout_secs = 300
battery_threshold = 20          # percent; 0 to disable

[inference]
model_path = "~/.local/share/shiftpaper/models/depth_anything_v2_small.onnx"

[wallpaper]
color = "~/.cache/shiftpaper/wallpapers/abc123.color.png"
# depth is inferred from color path; override with:
# depth = "/path/to/custom.depth16.png"

Tracking modes

pointer (default): Uses Wayland pointer events. Works on any wlr-layer-shell compositor. Parallax only active when the cursor is over visible desktop. Stops rendering entirely when the cursor is over a window, which is good for battery.

hyprland: Polls the Hyprland IPC socket for global cursor position. Parallax stays active even when windows cover the desktop. Hyprland-only. Note that this lets the daemon observe cursor position over arbitrary windows.

Supported compositors

Requires wlr-layer-shell. Tested compositors:

  • Hyprland
  • Sway
  • River
  • Wayfire
  • niri
  • labwc

GNOME and KDE Plasma do not implement wlr-layer-shell and are not supported.

License

MIT