2023-09-09 07:11:25 +00:00
|
|
|
# debugging tips:
|
|
|
|
# - if element opens but does not render:
|
|
|
|
# - `element-desktop --disable-gpu --in-process-gpu`
|
|
|
|
# - <https://github.com/vector-im/element-desktop/issues/1029#issuecomment-1632688224>
|
|
|
|
# - `rm -rf ~/.config/Element/GPUCache`
|
|
|
|
# - <https://github.com/NixOS/nixpkgs/issues/244486>
|
2024-03-23 18:51:41 +00:00
|
|
|
{ lib, pkgs, ... }:
|
2023-08-02 07:40:57 +00:00
|
|
|
{
|
|
|
|
sane.programs.element-desktop = {
|
2024-03-23 18:51:41 +00:00
|
|
|
packageUnwrapped = (pkgs.element-desktop.override {
|
2024-03-21 17:53:15 +00:00
|
|
|
# use pre-built electron because otherwise it takes 4 hrs to build from source.
|
|
|
|
electron = pkgs.electron_28-bin;
|
2024-03-23 18:51:41 +00:00
|
|
|
}).overrideAttrs (upstream: {
|
|
|
|
# fix to use wayland instead of Xwayland:
|
|
|
|
# - replace `NIXOS_OZONE_WL` non-empty check with `WAYLAND_DISPLAY`
|
|
|
|
# - use `wayland` instead of `auto` because --ozone-platform-hint=auto still prefers X over wayland when both are available
|
|
|
|
# alternatively, set env var: `ELECTRON_OZONE_PLATFORM_HINT=wayland` and ignore all of this
|
|
|
|
installPhase = lib.replaceStrings
|
|
|
|
[ "NIXOS_OZONE_WL" "--ozone-platform-hint=auto" ]
|
|
|
|
[ "WAYLAND_DISPLAY" "--ozone-platform-hint=wayland" ]
|
|
|
|
upstream.installPhase
|
|
|
|
;
|
|
|
|
});
|
2024-02-21 23:32:10 +00:00
|
|
|
suggestedPrograms = [
|
|
|
|
"gnome-keyring"
|
|
|
|
];
|
|
|
|
|
2024-01-24 05:37:46 +00:00
|
|
|
sandbox.method = "bwrap";
|
2024-02-08 21:51:32 +00:00
|
|
|
sandbox.net = "clearnet";
|
2024-02-13 11:14:38 +00:00
|
|
|
sandbox.whitelistAudio = true;
|
2024-02-13 11:58:12 +00:00
|
|
|
sandbox.whitelistDbus = [ "user" ]; # notifications
|
2024-02-13 11:14:38 +00:00
|
|
|
sandbox.whitelistDri = true;
|
2024-02-14 01:49:49 +00:00
|
|
|
sandbox.whitelistWayland = true;
|
2024-02-15 00:49:24 +00:00
|
|
|
sandbox.extraHomePaths = [
|
|
|
|
"Music"
|
2024-02-27 21:36:18 +00:00
|
|
|
"Pictures/albums"
|
|
|
|
"Pictures/cat"
|
|
|
|
"Pictures/from"
|
|
|
|
"Pictures/Photos"
|
|
|
|
"Pictures/Screenshots"
|
2024-02-15 00:49:24 +00:00
|
|
|
"Pictures/servo-macros"
|
2024-02-27 21:36:18 +00:00
|
|
|
"Videos/local"
|
2024-02-15 00:49:24 +00:00
|
|
|
"Videos/servo"
|
|
|
|
"tmp"
|
|
|
|
];
|
2024-02-14 01:49:49 +00:00
|
|
|
|
2023-08-02 07:40:57 +00:00
|
|
|
# creds/session keys, etc
|
2023-11-08 15:32:50 +00:00
|
|
|
persist.byStore.private = [ ".config/Element" ];
|
2023-08-02 07:40:57 +00:00
|
|
|
};
|
|
|
|
}
|