Files
Felitendo 3e98dd1e7e
check / tests and shellcheck (push) Failing after 56s
feat: first version
2026-10-02 10:39:46 +02:00

153 lines
4.7 KiB
Markdown

<p align="center">
<img width="200" src="res/rdfeed.svg" alt="rdfeed">
</p>
<h1 align="center">rdfeed</h1>
<h3 align="center">The RemoteApps of your company, in the Linux app menu.</h3>
<p align="center">
Word, Excel and the other Windows apps your company publishes open as windows of their own.<br>
Like "Work Resources" on Windows, through FreeRDP.
</p>
<h5 align="center">
<a href="#install">Install</a> |
<a href="#how-to-use">How to use</a> |
<a href="#is-it-safe">Is it safe?</a> |
<a href="https://github.com/LoonixTools/rdfeed/issues">Report a bug</a>
</h5>
<p align="center">
<a href="https://ko-fi.com/felitendo"><img src="https://storage.ko-fi.com/cdn/kofi5.png?v=6" alt="Buy me a coffee on Ko-fi" height="48"></a>
</p>
<p align="center">
<img src="res/screenshots/menu.png" alt="The rdfeed menu in Konsole: one workspace, Contoso Apps, with 4 apps for CONTOSO\jdoe" width="560">
</p>
## Install
<details>
<summary><b>Arch</b>, CachyOS, EndeavourOS, Manjaro</summary>
```bash
yay -S rdfeed
```
</details>
<details>
<summary>Other distributions</summary>
See [Build from source](#more). It needs FreeRDP 3, Python 3, bash and
`secret-tool` (libsecret).
</details>
## How to use
```bash
rdfeed
```
Press **1** and type the address your IT department gave you. The server
name or your work e-mail address often works too. Then sign in with your
Windows user name and password.
The apps show up in your app menu, in a folder with the name of the
workspace. Click one and it opens in a window of its own. If your company uses
MFA, confirm the sign-in in your authenticator app. Many servers ask twice: a
notification tells you when the second prompt is coming.
Files on your computer open in the apps too: right-click a `.docx` and pick
**Open with**, then Word.
<details>
<summary>Settings</summary>
<p align="center">
<img src="res/screenshots/settings.png" alt="The settings in Konsole: share a folder, open files with the apps, size, sound, graphics, the wait for the second MFA prompt, and a daily refresh, with the selected one explained at the bottom" width="640">
</p>
</details>
## Is it safe?
Your password goes into the keyring, not into a file. FreeRDP gets it through
a pipe, so it never shows up in the list of running programs.
The connection files from the server can ask to share every drive, camera and
USB device of your computer. rdfeed removes that. The apps only see the folder
you pick under **Share a folder**, and none by default. When you open a file in
an app, its folder is shared while that app runs.
## More
<details>
<summary>What it fixes in FreeRDP</summary>
Starting a RemoteApp with plain `xfreerdp3` often goes wrong. rdfeed takes care of it:
- **It hangs after the MFA prompt.** A connection broker needs a second sign-in
at the gateway. Its prompt only comes if the client waits about ten seconds,
and FreeRDP does not wait. rdfeed does.
- **Y and Z are swapped.** Under Wayland, FreeRDP sees the wrong keyboard layout.
rdfeed asks the desktop.
- **The apps are blurry or tiny** with a scaled desktop. rdfeed has the server
draw them at your scale.
- **Signing in to the feed fails.** It needs NTLM, which `curl` no longer
always has. rdfeed signs in by itself.
</details>
<details>
<summary>Known problems</summary>
- **A window stays partly empty after you minimize or resize it.** This is a
bug in FreeRDP. Under **Settings**, **Graphics** on classic paints every
window right, but some servers end the session with it.
- **A second app of the same workspace takes over the first one's connection.**
Its windows move into the new one, nothing closes.
</details>
<details>
<summary>How it works</summary>
| | |
|---|---|
| `rdfeed` | The menu and the commands. |
| `rdfeed-fetch` | Signs in to the feed and downloads the apps and their icons. |
| `rdfeed-hook.so` | Goes into FreeRDP: the wait for the second MFA prompt, and the classic graphics if you pick them. |
| `rdfeed-refresh.timer` | Loads the apps again once a day, so new ones show up. |
The feed is the one Windows subscribes to under *RemoteApp and Desktop
Connections* (`https://server/RDWeb/Feed/webfeed.aspx`). Azure Virtual Desktop
and Windows 365 sign in another way and are not supported. All details:
`man rdfeed`.
</details>
<details>
<summary>Build from source</summary>
```bash
make
make test
sudo make install
```
Needs a C compiler, and for the translations and the man page gettext and
scdoc. To run it: bash, Python 3, FreeRDP 3 (`xfreerdp3` or `xfreerdp`) and
`secret-tool`.
</details>
## Credits
- [FreeRDP](https://www.freerdp.com/), which does the actual work.
- [MS-NLMP](https://learn.microsoft.com/openspecs/windows_protocols/ms-nlmp/), for NTLM and its test vectors.
GPL-3.0-or-later.