# FeedTheMonkey Icon FeedTheMonkey is a desktop client for any server that implements the [Greader API](https://github.com/theoldreader/api). It doesn't work as a standalone feed reader — it connects to a server to fetch articles and sync read state. It follows the [river of news](http://scripting.com/2014/06/02/whatIsARiverOfNewsAggregator.html) philosophy: all unread articles appear in a single flat list and are automatically marked as read as you flip through them one by one. ## Features - **River of news**: all unread articles in one flat list, auto-marked as read as you flip through them one by one - **Offline reading**: article content and images are cached locally so you can read without a connection - **Image caching**: images are pre-fetched after each reload; skipped on metered connections unless enabled in preferences - **Offline sync**: read/unread state changes made offline are queued and pushed to the server next time you're online - **Persistent state**: the article list, selected article, and scroll position are restored when you reopen the app - **Dark mode**: follows the system color scheme automatically - **Keyboard navigation**: vi-style shortcuts for hands-free reading - **Zoom**: adjustable content zoom, persisted across restarts - **Fullscreen** and toggleable sidebar When logging in, enter: - **FreshRSS**: `https://example.com/api/greader.php` - **Miniflux**: `https://example.com` - Other compatible servers: consult your server's documentation for the Greader API endpoint ## Dependencies ### Runtime - GTK 4 (`gtk4`) - libadwaita (`libadwaita`) - WebKitGTK 6 (`webkitgtk-6.0`) - GLib / GIO (`glib-2.0`, `gio-2.0`) On Arch Linux: `sudo pacman -S gtk4 libadwaita webkitgtk-6.0` ### Build - Rust toolchain (`rustup` / `cargo`) - `blueprint-compiler` — compiles `.blp` UI files to `.ui` - `glib-compile-schemas` — compiles GSettings schemas (part of `glib2`) - `glib-compile-resources` — compiles GResource bundles (part of `glib2`) On Arch Linux: `sudo pacman -S blueprint-compiler glib2` ## Building ```sh cargo build --release ``` The binary is at `target/release/feedthemonkey`. ## Installing ```sh sudo ./install.sh ``` This installs the binary, icon, desktop entry, and GSettings schema to `/usr/local`. Set `PREFIX` to install elsewhere: ```sh sudo PREFIX=/usr ./install.sh ``` ## Trivia This is version 3 of FeedTheMonkey, rewritten in Rust with GTK4 and libadwaita. Version 2 was written in C++ with Qt and QML, and version 1 in PyQt — you can find them in the `v2` and `v1` branches of this repo. ## Screenshot ![FeedTheMonkey screenshot](data/screenshot.png) ## Keyboard shortcuts | Key | Action | |-----|--------| | `j` or `→` | Next article | | `k` or `←` | Previous article | | `Return` | Open in browser | | `r` | Reload | | `F11` | Toggle fullscreen | | `Ctrl+W` | Quit | | `Ctrl++` | Zoom in | | `Ctrl+-` | Zoom out | | `Ctrl+0` | Reset zoom | ## License Copyright 2015–2026 Jeena FeedTheMonkey is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.