blob: b83f258db5d02d942e3288c0f21df5f850b82cf5 (
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
36
37
38
39
40
41
42
|
{
symlinkJoin, makeWrapper,
discord, obsidian, vscode, element-desktop
}:
let
goodFlags = ''
--ozone-platform=wayland \
--force-device-scale=2 \
--enable-features=UseOzonePlatform,WaylandWindowDecorations \
--disable-features=WaylandFractionalScaleV1
'';
badFlags = ''
--ozone-platform=x11 \
--no-sandbox
'';
makeElectronWrapper = {
name,
binary ? name,
package,
bad ? false
}: let
flags = if bad then badFlags else goodFlags;
in symlinkJoin {
name = name;
paths = [ package ];
buildInputs = [ makeWrapper ];
postBuild = ''
wrapProgram $out/bin/${binary} \
--add-flags "${flags}"
'';
};
in
{
discord = makeElectronWrapper { name = "Discord"; package = discord; bad = true; };
obsidian = makeElectronWrapper { name = "obsidian"; package = obsidian; };
vscode = makeElectronWrapper { name = "vscode"; binary = "code"; package = vscode.fhs; };
element-desktop = makeElectronWrapper { name = "element-desktop"; package = element-desktop; };
}
|