main
1{den, ...}: {
2 den.aspects.desktop.app.nixpak.wechat = let
3 appId = "com.tencent.WeChat";
4 in {
5 includes = [den.aspects.desktop.app.nixpak];
6
7 persistHome = {
8 directories = [
9 ".var/app/${appId}"
10 ];
11 };
12
13 hjem = {
14 pkgs,
15 lib,
16 ...
17 }: let
18 wechat-wrapped = pkgs.mkNixpak {
19 config = {sloth, ...}: {
20 imports = [
21 pkgs.nixpakModules.common
22 pkgs.nixpakModules.gui
23 pkgs.nixpakModules.network
24 ];
25
26 app.package = pkgs.wechat;
27 flatpak = {inherit appId;};
28
29 bubblewrap = {
30 sockets = {
31 wayland = true;
32 x11 = false;
33 };
34
35 bind.rw = with sloth; [
36 [(mkdir (concat' appDir "/.xwechat")) (concat' homeDir "/.xwechat")]
37 [(mkdir (concat' appDir "/xwechat_files")) (concat' homeDir "/xwechat_files")]
38 ];
39 bind.ro = [
40 "/etc/passwd"
41 "/etc/machine-id"
42 ];
43
44 env = {
45 # xdg-open has to come from PATH.
46 PATH = lib.makeBinPath [pkgs.flatpak-xdg-utils];
47 QT_QPA_PLATFORM = "xcb";
48 QT_IM_MODULE = "fcitx";
49 GTK_IM_MODULE = "fcitx"; # For web view
50 };
51 };
52 };
53 };
54 in {
55 packages = [wechat-wrapped.config.env];
56 };
57 };
58}