aboutsummaryrefslogtreecommitdiff
path: root/wiki/Important-Software.md
blob: 213e3847c9f36bef63be4f68f0c27eac0e2b9ae6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Since niri is not a complete desktop environment, you will very likely want to run the following software to make sure that other apps work fine.

### Notification Daemon

Many apps need one. For example, [mako](https://github.com/emersion/mako) works well. Use [a systemd setup](./Example-systemd-Setup.md) or `spawn-at-startup`.

### Portals

These provide a cross-desktop API for apps to use for various things like file pickers or UI settings. Flatpak apps in particular require working portals.

Portals **require** [running niri as a session](./Getting-Started.md), which means through the `niri-session` script or from a display manager. You will want the following portals installed:

* `xdg-desktop-portal-gtk`: implements most of the basic functionality, this is the "default fallback portal".
* `xdg-desktop-portal-gnome`: required for screencasting support.
* `gnome-keyring`: implements the Secret portal, required for certain apps to work.

Then systemd should start them on-demand automatically. These particular portals are configured in `niri-portals.conf` which [must be installed](https://github.com/YaLTeR/niri/wiki/Getting-Started#installation) in the correct location.

Since we're using `xdg-desktop-portal-gnome`, Flatpak apps will read the GNOME UI settings. For example, to enable the dark style, run:

```
dconf write /org/gnome/desktop/interface/color-scheme '"prefer-dark"'
```

### Authentication Agent

Required when apps need to ask for root permissions. Something like `plasma-polkit-agent` works fine. Start it [with systemd](./Example-systemd-Setup.md) or with `spawn-at-startup`.

Note that to start `plasma-polkit-agent` with systemd on Fedora, you'll need to override its systemd service to add the correct dependency. Run:

```
systemctl --user edit --full plasma-polkit-agent.service
```

Then add `After=graphical-session.target`.