{"id":35824589,"url":"https://github.com/heng30/wayshot","last_synced_at":"2026-01-29T07:22:30.797Z","repository":{"id":319624753,"uuid":"1066433446","full_name":"heng30/wayshot","owner":"heng30","description":"Screen recording, Screen sharing and Streaming  tool for Linux and Windows.（桌面录屏工具、屏幕共享、推流）","archived":false,"fork":false,"pushed_at":"2026-01-25T17:00:29.000Z","size":35923,"stargazers_count":15,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-26T09:39:55.731Z","etag":null,"topics":["linux","rust","screenrecorder","screensharing","slint-ui","streaming-video","wayland","windows","wlroots","xdg-portal"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/heng30.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-29T13:31:11.000Z","updated_at":"2026-01-13T13:43:41.000Z","dependencies_parsed_at":null,"dependency_job_id":"843fbce0-dc34-43cb-8ac9-aa2645641f23","html_url":"https://github.com/heng30/wayshot","commit_stats":null,"previous_names":["heng30/wayshot"],"tags_count":25,"template":false,"template_full_name":null,"purl":"pkg:github/heng30/wayshot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heng30%2Fwayshot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heng30%2Fwayshot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heng30%2Fwayshot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heng30%2Fwayshot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/heng30","download_url":"https://codeload.github.com/heng30/wayshot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/heng30%2Fwayshot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28869537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-29T06:56:44.678Z","status":"ssl_error","status_checked_at":"2026-01-29T06:56:35.794Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","rust","screenrecorder","screensharing","slint-ui","streaming-video","wayland","windows","wlroots","xdg-portal"],"created_at":"2026-01-07T19:12:20.524Z","updated_at":"2026-01-29T07:22:30.784Z","avatar_url":"https://github.com/heng30.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv style=\"display: flex\"\u003e\n    \u003cimg src=\"./screenshot/1-en.png\" width=\"400\"/\u003e\n\u003c/div\u003e\n\n[中文文档](./README.zh-CN.md)\n\n### Introduction\n`Screen recording`, `Share screen` and `Push stream` tool, based on `Rust` and the `Slint` GUI framework. Support operating systems: `Windows` and `Linux`.\n\n----\n\n### Features\n- Share screen via WebRTC\n- Push stream via RTMP\n- Single screen recording\n- Single input device audio recording\n- Capturing a single camera\n- Supports camera background removal\n- Desktop audio recording\n- Microphone noise reduction\n- Cursor tracking\n- Manage recorded video history\n- Play recorded historical videos\n- Simple real-time image effects (right-click on recording interface to open)\n\n----\n\n### How to build?\n- Install `Rust`, `Cargo`, `libpipewire`, `libalsa`, `libx264` and `QT6`\n\n- Run `make desktop-debug` to run it on desktop platform\n\n- Run `make desktop-build-release` to build a release version desktop application for wayland wlr. Likes: `Sway` and `Hyprland`.\n\n- Run `make desktop-build-release desktop-features=desktop-wayland-portal` to build a release version desktop application for wayland xdg-desktop-portal. Likes: `Ubuntu` and `kde`\n\n- Run `make desktop-build-release desktop-features=desktop-windows` to build a release version desktop application for `Windows`\n\n- Run `make cursor-release` to build the program for fetching the cursor position. This program needs to be used together with the `portal` version of `wayshot`.\n\n- Refer to [Makefile](./Makefile) for more information\n\n----\n\n### Troubleshooting\n- Using the `Qt backend` can resolve the issue of fuzzy fonts on the Windows platform. It is also recommended to prioritize the `Qt backend` to maintain a consistent build environment with the developers.\n\n- Check program output log information: `RUST_LOG=debug wayshot`。Available log level：`debug`, `info`, `warn`, `error`\n\n- To use the cursor tracking feature with the `Wayland xdg portal` version, it needs to be used together with the `wayshot-cursor` program. The program can be downloaded from the Github page. The program must be run with administrator privileges: `sudo -E wayshot-cursor`. If you need to view logs, you can use: `RUST_LOG=debug sudo -E wayshot-cursor`. Available log levels: `debug`, `info`, `warn`, `error`\n\n- Program version selection:\n    - `portal` version: `Ubuntu` and `KDE`, etc.\n    - `wlr` version: `Sway` and `Hyprland`, etc.\n\n- Install build dependences on `Ubuntu` ：\n    ```bash\n    sudo apt install \\\n        libxcb-composite0-dev libasound2-dev libpipewire-0.3-dev \\\n        libx264-dev libx11-dev libxi-dev libxtst-dev libevdev-dev \\\n        qt6-base-dev qt6-tools-dev qt6-tools-dev-tools\n    ```\n\n- `Windows` dependences:\n    - [ffmpeg](https://ffmpeg.org/download.html)\n\n- `Windows` compiles [`ffmpeg-next`](https://github.com/zmwangx/rust-ffmpeg/wiki/Notes-on-building)\n    - Install LLVM (through official installer, Visual Studio, Chocolatey, or any other means), and add LLVM's bin path to PATH, or set LIBCLANG_PATH to that (see clang-sys documentation for additional info).\n    - Install FFmpeg (complete with headers) through any means, e.g. downloading a pre-built [\"full_build-shared\"](https://www.gyan.dev/ffmpeg/builds/) version from https://ffmpeg.org/download.html. Set FFMPEG_DIR to the directory containing include and lib.\n    - cargo build.\n    - Add FFmpeg's bin path to PATH\n    - You can find an example in https://github.com/zmwangx/rust-ffmpeg/blob/master/.github/workflows/build.yml.\n    - Program dependencies: `ffmpeg` related libraries and `libx264.dll`. You can download the program from the release page, which includes the necessary dependencies.\n    - `git bash` examples：\n    ```bash\n    export FFMPEG_DIR=C:/ffmpeg-8.0.1-full_build-shared\n    export LIBCLANG_PATH=\"C:/Program Files/Microsoft Visual Studio/18/Community/VC/Tools/Llvm/x64/bin\"\n    make desktop-build-release desktop-features=desktop-windows\n    ```\n\n----\n\n### How to Configure `STUN` and `TURN` Servers\n- Download and install [coturn](https://github.com/coturn/coturn)\n\n- Generate certificate and key: `openssl req -x509 -newkey rsa:1024 -keyout /tmp/turn_key.pem -out /tmp/turn_cert.pem -days 9999 -nodes`\n\n- Edit the configuration.\n    - Default location: `/etc/turnserver.conf` or `/etc/coturn/turnserver.conf`\n\n    - Example configuration:\n    ```bash\n    listening-ip=0.0.0.0\n    listening-port=3478\n    relay-ip=192.168.10.8\n    external-ip=192.168.10.8\n\n    tls-listening-port=5349\n    cert=/tmp/turn_cert.pem\n    pkey=/tmp/turn_key.pem\n\n    realm=example.com\n\n    lt-cred-mech\n    user=foo:123456\n\n    # no-auth\n    no-cli\n    verbose\n    ```\n\n- Testing\n    - `turnserver -c /etc/turnserver.conf`\n    - Test using [Trickle ICE](https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/)\n    - `TURN` server address format: `turn:192.168.10.1:3478`\n\n----\n\n### Reference\n- [Slint Language Documentation](https://slint-ui.com/releases/1.0.0/docs/slint/)\n- [slint::android](https://snapshots.slint.dev/master/docs/rust/slint/android/#building-and-deploying)\n- [Running In A Browser Using WebAssembly](https://releases.slint.dev/1.7.0/docs/slint/src/quickstart/running_in_a_browser)\n- [github/slint-ui](https://github.com/slint-ui/slint)\n- [Viewer for Slint](https://github.com/slint-ui/slint/tree/master/tools/viewer)\n- [LSP (Language Server Protocol) Server for Slint](https://github.com/slint-ui/slint/tree/master/tools/lsp)\n- [developer.android.com](https://developer.android.com/guide)\n- [How to Deploy Rust Binaries with GitHub Actions](https://dzfrias.dev/blog/deploy-rust-cross-platform-github-actions/)\n\n----\n\n[![Star History Chart](https://api.star-history.com/svg?repos=heng30/wayshot\u0026type=date\u0026legend=top-left)](https://www.star-history.com/#heng30/wayshot\u0026type=date\u0026legend=top-left)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheng30%2Fwayshot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fheng30%2Fwayshot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fheng30%2Fwayshot/lists"}