{"id":15007438,"url":"https://github.com/sgiurgiu/reddit_desktop","last_synced_at":"2025-07-24T20:11:44.117Z","repository":{"id":44379481,"uuid":"411100780","full_name":"sgiurgiu/reddit_desktop","owner":"sgiurgiu","description":"A reddit client for the desktop","archived":false,"fork":false,"pushed_at":"2024-11-19T02:40:10.000Z","size":83151,"stargazers_count":44,"open_issues_count":2,"forks_count":4,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-04T16:38:38.459Z","etag":null,"topics":["linux-desktop","windows"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sgiurgiu.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}},"created_at":"2021-09-28T01:47:25.000Z","updated_at":"2025-06-01T15:48:06.000Z","dependencies_parsed_at":"2024-05-17T02:45:02.983Z","dependency_job_id":"319fd090-3352-47a4-8a90-2ce7317d2998","html_url":"https://github.com/sgiurgiu/reddit_desktop","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/sgiurgiu/reddit_desktop","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgiurgiu%2Freddit_desktop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgiurgiu%2Freddit_desktop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgiurgiu%2Freddit_desktop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgiurgiu%2Freddit_desktop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sgiurgiu","download_url":"https://codeload.github.com/sgiurgiu/reddit_desktop/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sgiurgiu%2Freddit_desktop/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266898749,"owners_count":24002939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-07-24T02:00:09.469Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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-desktop","windows"],"created_at":"2024-09-24T19:09:57.397Z","updated_at":"2025-07-24T20:11:44.085Z","avatar_url":"https://github.com/sgiurgiu.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"![](docs/reddit.png)\n\n# Reddit Desktop\n\n**Reddit Desktop** is a desktop client for [reddit](https://reddit.com).\n\nTo download the latest release for your OS, please visit the [releases](https://github.com/sgiurgiu/reddit_desktop/releases/latest) page.\n\nFor Windows, download the .msi executable, which will provide you with a package, ready to be installed.\n\nFor Linux, download the `*-debian.deb` package for Debian based distributions or the `*-fedora.rpm` package\nfor Fedora, and install them with your package manager (`sudo apt install \u003cdeb file\u003e` or `sudo dnf install \u003crpm file\u003e`).\n\nFor Fedora you will also need to install a repository that provides libmpv, such as rpmfusion. For example:\n```\ndnf install -yq \\\n    http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm \\\n    http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm \u0026\u0026 \\\n    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-latest \u0026\u0026 \\\n    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-latest\n```\n\nIf you would rather run the container image (docker or podman), download the `reddit_desktop_runtime.tar.gz` file from the releases page. Load it for your container (e.g. `podman load -i reddit_desktop_runtime.tar.gz`) then run it with\n```\nmkdir -p ~/.config/reddit_desktop\n\npodman run --rm -v ~/.config/reddit_desktop:/root/.config/reddit_desktop \\\n        -v /tmp/.X11-unix:/tmp/.X11-unix --security-opt=label=type:container_runtime_t \\\n         -e DISPLAY -v /run/user/$(id -u)/:/run/user/0/   -e XDG_RUNTIME_DIR=/run/user/0 \\\n        -e PULSE_SERVER=/run/user/0/pulse/native \\\n        --ipc host \\\n        localhost/reddit_desktop_runtime\n```\nThe `docker/run_container.sh` script provides an example.\n\n## Screenshots\n\n![Screenshot 1](docs/img/Screenshot1.png)\n\n![Screenshot 2](docs/img/Screenshot2.png)\n\n![Screenshot 3](docs/img/Screenshot3.png)\n\n## Build it from source\n\n### Prerequisites\n- Git\n- A C++20 capable compiler (does not need to be fully compliant)\n- Cmake 3.18+\n- VcPkg\n- LibMPV\n\n### Setup your development environment\n - Windows\n   - Install VS2019 (can be Community edition) with the C++ Support package\n   - Install prerequisites (git, cmake, ninja, wixtoolset, powershell-core)\n   - One simple powershell script to install everything via Chocolatey:\n        ```\n        Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))\n\n        choco feature enable -n allowGlobalConfirmation\n        choco install 7zip.install\n        choco install git.install\n        choco install cmake.install --installargs 'ADD_CMAKE_TO_PATH=System'\n        choco install ninja \n        choco install wixtoolset \n        choco install powershell-core\n        ```\n   - Install vcpkg (assuming the vcpkg folder will be `E:\\projects\\vcpkg`. Change as desired.)\n        ```\n        New-Item -ItemType Directory -Force -Path E:\\projects\\\n        cd E:\\projects\\\n        git clone https://github.com/Microsoft/vcpkg.git\n        cd vcpkg\n        .\\bootstrap-vcpkg.bat\n        ```\n    - Install libmpv for windows prebuilt DLL, and youtube-dl.exe\n        ```\n        New-Item -ItemType Directory -Force -Path E:\\projects\\mpv\n        cd E:\\projects\\mpv\n\n        #Download latest youtube-dl.exe release\n        $youtube_dl_latest_uri = \"https://api.github.com/repos/ytdl-org/youtube-dl/releases/latest\"\n        $latestYoutubeDlRelease = Invoke-RestMethod $youtube_dl_latest_uri\n        $latestYoutubeDlReleaseAssets = $latestYoutubeDlRelease.assets\n        $latestYoutubeExeAsset = $latestYoutubeDlReleaseAssets | where-object {$_.name -EQ \"youtube-dl.exe\" }\n        Invoke-WebRequest $latestYoutubeExeAsset.browser_download_url -OutFile \"$pwd\\$($latestYoutubeExeAsset.name)\"\n\n        # Download the latest release from libmpv folder, manually\n        Start-Process https://sourceforge.net/projects/mpv-player-windows/files/libmpv/\n\n        ```\n        Download mpv-dev-x86_64-\u003clatest release\u003e.7z from that sourceforge page. Extract it somewhere (E:\\projects\\mpv).\n        Then in that mpv folder, from a VS2019 Developer command prompt run : `lib /dev:mpv.def /machine:x64 /out:mpv.lib`\n    - Done with windows. Wasn't that hard now, was it? \n - Linux Debian 11 (and Debian based distributions)\n    ```\n    apt install -y dpkg build-essential cmake gcc g++ git \\\n                libmpv-dev ca-certificates curl zip unzip tar libglu1-mesa-dev libgl1-mesa-dev \\\n                pkg-config generate-ninja ninja-build libxmu-dev libxi-dev libgl-dev\n    ```\n  - Linux Fedora (34+) \n    ```\n    dnf install -yq \\\n    http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm \\\n    http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm \u0026\u0026 \\\n    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-latest \u0026\u0026 \\\n    rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-nonfree-fedora-latest\n    ```\n    ```\n    dnf -yq install cmake gcc g++ pkgconf-pkg-config git \\\n        tar rpm-build ninja-build perl-FindBin perl-English perl-File-Compare \\\n        ibus-devel libXmu-devel libXi-devel mesa-libGL-devel mesa-libGLU-devel \\\n        mpv-libs-devel\n    ```\n  - FreeBSD (13.2)\n    ```\n    pkg install llvm clang boost-all glfw glew gumbo libfmt spdlog stb freetype2 openssl \\\n                git cmake ninja sqlite3 pkgconf mpv uriparser libvdpau libvdpau-va-gl mesa-gallium-vdpau \\\n                libva-vdpau-driver mesa-dri\n    ```\n\n### Actually building the executable\n`cd \u003cprojects folder\u003e`\n\n`git clone --recurse-submodules https://github.com/sgiurgiu/reddit_desktop.git`\n\n- Linux\n\n    `mkdir build \u0026\u0026 cd build`\n\n    `cmake -GNinja -DCMAKE_TOOLCHAIN_FILE=\u003cvcpkg folder\u003e/scripts/buildsystems/vcpkg.cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS=OFF -DENABLE_M4DC=ON -DENABLE_CMARK=OFF  \u003cgit cloned folder\u003e`\n\n    `ninja`\n\n    And now run it from that folder with `src/reddit_desktop`\n\n- Windows\n  ```\n    cmake -B . -S \u003cgit cloned folder\u003e -G Ninja -DCMAKE_TOOLCHAIN_FILE=\u003cvcpkg folder\u003e/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows-static -DENABLE_TESTS=False -DCMAKE_BUILD_TYPE=Release -DCPACK_GENERATOR=WIX -DLIBMPV_DIR=\"\u003clibmpv folder\u003e\" -DLIBMPV_INCLUDE=\"\u003clibmpv include folder\u003e\" -DYOUTUBE_DL=\"\u003cyoutube-dl.exe path\u003e\"\n    cmake --build .\n  ```\n\nThe scripts that build it on windows and linux can be found in the `scripts` folder, as well in the `docker` folder. Those scripts are the authority when it comes to the process of building a package for a particular OS\nshould this readme not be updated.\n\n- FreeBSD\n    `mkdir build \u0026\u0026 cd build`\n\n    `cmake  -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS=OFF -DENABLE_M4DC=ON -DENABLE_CMARK=OFF  \u003cgit cloned folder\u003e`\n\n    `make`\n\n\n---\n\nThis application uses the [Dear ImGui](https://github.com/ocornut/imgui) library for its UI. Big thanks to [ocornut](https://github.com/ocornut) and all the other contributors for their amazing work.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsgiurgiu%2Freddit_desktop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsgiurgiu%2Freddit_desktop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsgiurgiu%2Freddit_desktop/lists"}