mirror of
https://github.com/youwen5/nixos.git
synced 2025-01-18 05:02:10 -08:00
refactor: modularize flatpak and make roblox an option
This commit is contained in:
parent
6414434a1e
commit
ab0ccf2519
3 changed files with 71 additions and 32 deletions
|
@ -2,44 +2,53 @@
|
||||||
# versioned. Therefore, they are not included in generational rollbacks and
|
# versioned. Therefore, they are not included in generational rollbacks and
|
||||||
# persist between generations. This is not ideal, but at least it is a better
|
# persist between generations. This is not ideal, but at least it is a better
|
||||||
# situation than imperative installation
|
# situation than imperative installation
|
||||||
{ inputs, ... }:
|
{
|
||||||
|
inputs,
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.liminalOS.programs.flatpaks;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.nix-flatpak.nixosModules.nix-flatpak
|
inputs.${cfg.moduleName}.nixosModules.nix-flatpak
|
||||||
];
|
];
|
||||||
|
|
||||||
services.flatpak = {
|
options.liminalOS.programs.flatpaks = {
|
||||||
enable = true;
|
enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = ''
|
||||||
|
Whether to enable Nix flatpak support with some fixes as well as declarative flatpak management.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
overrides = {
|
config = lib.mkIf cfg.enable {
|
||||||
global = {
|
services.flatpak = {
|
||||||
Context.sockets = [
|
enable = true;
|
||||||
"wayland"
|
|
||||||
"!x11"
|
|
||||||
"!fallback-x11"
|
|
||||||
];
|
|
||||||
|
|
||||||
Environment = {
|
overrides = {
|
||||||
# Fix un-themed cursor in some Wayland apps
|
global = {
|
||||||
XCURSOR_PATH = "/run/host/user-share/icons:/run/host/share/icons";
|
Context.sockets = [
|
||||||
|
"wayland"
|
||||||
|
"!x11"
|
||||||
|
"!fallback-x11"
|
||||||
|
];
|
||||||
|
|
||||||
|
Environment = {
|
||||||
|
# Fix un-themed cursor in some Wayland apps
|
||||||
|
XCURSOR_PATH = "/run/host/user-share/icons:/run/host/share/icons";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
update.auto = {
|
update.auto = {
|
||||||
enable = true;
|
enable = true;
|
||||||
onCalendar = "weekly";
|
onCalendar = "weekly";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
packages = [
|
|
||||||
{
|
|
||||||
flatpakref = "https://sober.vinegarhq.org/sober.flatpakref";
|
|
||||||
sha256 = "sha256:1pj8y1xhiwgbnhrr3yr3ybpfis9slrl73i0b1lc9q89vhip6ym2l";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
appId = "org.vinegarhq.Sober";
|
|
||||||
origin = "sober";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
10
modules/linux/flatpak/sober.flatpakref
Normal file
10
modules/linux/flatpak/sober.flatpakref
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[Flatpak Ref]
|
||||||
|
Title=Sober
|
||||||
|
Name=org.vinegarhq.Sober
|
||||||
|
Url=https://sober.vinegarhq.org/repo/
|
||||||
|
SuggestRemoteName=sober
|
||||||
|
Homepage=https://sober.vinegarhq.org
|
||||||
|
Icon=https://sober.vinegarhq.org/sober.svg
|
||||||
|
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||||
|
IsRuntime=false
|
||||||
|
GPGKey=LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tCgptUUdOQkdhc3U4QUJEQURUQzExYjFmUG9LZU9Ea1hTT3lrYzllajRZeFZMSlZQN2NFZmRnV05aWllsYnFsZ0xECms2MTNxK1dnOE0xb0Zrem00MjMvSUhyT050TEZpVG9sN0paTE1DS0w0d05Id1dnOWpmcmwzak5EUUtKb2lUQVEKZllsWFJiZ09IeVNLYmxFRDVaRm9hQ3BRM0pMQkdaalRUZ1VJck9mK3lSU3lZU09pUHFucEJuM1NHZEh3L0pXegpkY3hRUUd4OVdNL2ZlNGFSVVJMS0k1VG9Ya244cGNZWE4wdE50T2tlOUUzeDI5b3pOcVg0b3BicDJkWXJnejlqCklVM1Zka2VUdTRlSmhJQ2tWMzFVbGpQcVg5VVc1azViTjM4VDRMaEJqQ0kzS1Q2TkJhaXVab1FselFsbXNkYVIKMEdWK3kvSUFhdXNOUzdjMHhCUithUnNnOExpa3h1cXBqWGl6RS9HRTYydCtZeVZBVEs1S0J6aThRZWdVSVMwZgpHRUxkV0RydzBmMUkzc1RuUTBqL2xpZWNneUppMmtmUnlqMThFSmx6WDlYWTdqcHArL2pPUGlqaXYrbXlvaEJXCm1hY3N5UUZCQkg0dEpZUUt4TW1Mc0Y2eUsyWVNTV0IvcS9CZEZlbFY5VDZSWFRlbzRkS0pGK085N0RkRjlTVnYKQWplL25WTjhmZG1VTjgwQUVRRUFBYlFZVTI5aVpYSWdSbXhoZEhCaGF5QlNaWEJ2YzJsMGIzSjVpUUhSQkJNQgpDZ0E3RmlFRWRieGpyeDFRYitvWk5BRnIydmkrK0JPTlMyVUZBbWFzdThBQ0d3TUZDd2tJQndJQ0lnSUdGUW9KCkNBc0NCQllDQXdFQ0hnY0NGNEFBQ2drUTJ2aSsrQk9OUzJWc3VRdi9XMnV6a3pyNGdURWN4VFFUNzZxTVF4TUUKT2svQis5eTNZMytFUlA5d0h4MEpSWVMxT3pvV1Z2VklTYy9PYWVwMUdielg3Zm8vU2c5Z1NySXI5OXpiQkRjaApIZFlGWngweU11VTZMd3ZNN2NMZHRSNmJTOWloNklOeGc5NXpaaVZnMVZvS01rZEhwV1IwRW9UWjk1S0NVL1IzCmhjWWZDNkFxWTVKVDFXTlJZRG9FVTFCN0JOQXUxejNUZkt0OE5LSTM3N2tBWlREZEQybDFxQ0ZrWHZKVW5QalUKZWxSRmlJUFlsMi9iYUVaK0hKYW44R09uNGpQcTczc0VyRVl5SnZiblVlMFY0S3VxMzZwWjZSa0J6ZjBnczFLcgovRE9BZjZkTkEzbVdVVDE2NzNFbGxEaysrSzgvQnNYMVQ1OUtIY0U0c2NKMHFuVGxucis1NktYbDBMMmcwc2NvCnNjbUFqRUtVMjgvalpseitpU214YVM5ZmYreXJjbUFkYXhSb2RSQ2NjdzlaWEs1akhNT1VsMlJJWWcvZWpRcUYKcWU2OWhuK2ErVngvbWU5bmNrRVAzWUNQM2J0QmhLcGtTMk0zcmtUd3ZPK2RreXpBR2lIMDg3SUlsV242UmtGSwptZ1VEWjFiQ0ZDUG0yZGhkbHBGcU8ybTVpRXdKM1V1TERQNnZZdEVndVFHTkJHYXN1OEFCREFDN1lEeElLem54Ck5pWEFLZTZNR3JIK2tpYjYvV0pjSXJDKzUvaFgxZWpYdTBOSjQ2R0lZTUx5eWZVay9UUHpvZklwdFZuUm1nV2wKcUxqQTNQQTNhUmdDQk9BTHVWTXJWMFBuaUdVeG9ETkFadmFBN3pwSncyMDAvMUVsVCt4dzB0S09Xd2FaNDZiNApGdVpXcE9hTExzdXB5MldIR3hORGdINm9NbUJBd3J6aytzaFNSUUhtOEV3bWlBQS8vQjVBTG5wcFNPS1NHdmowCjBGMzYzL1Y2OWdOZ0oxUTZEb1VzcmxNbENFYkV0Q0cwQXpwWE0yWkNBdWt3QWxNMU9oa1c2WXFlc1EybnBuQk8KT3N5SVJSdG1xWnQrSTdwWmczZkdmdERaYWw2NGI1K1JXWVlTWmQ4NW1jT0h4OVdCdzBpano1a3pyQVhISGdLcgpXOWd3YUZjS2U3OWtNMi9kbkRDcXJLbVp2QmJzZDFBMG9SSVpOMU91SHZpdzVLSXNPZ3pIemo4REx5eEd4ek9MCkhWUjZ1L0FQWEJJWGordXBpdVpLblRqTkxNUWVRUWlQc3RYdjZrUVA1RjRHeXJYU2VNdUo0SHFsMWhmOGs2MjcKYnVMTnZGdGJPYWU0NU5tTUpUTUJGQjN1NHRXaXlCUkVzaExaQ2VySWZtT2NmdWtLbFcvck5JOEFFUUVBQVlrQgp0Z1FZQVFvQUlCWWhCSFc4WTY4ZFVHL3FHVFFCYTlyNHZ2Z1RqVXRsQlFKbXJMdkFBaHNNQUFvSkVOcjR2dmdUCmpVdGxJVjBNQUtKd0RVWUhrZ3RWYlN5b3B4SDFFQ1lXRlppRlpwbktnVmZMMDlRYWZBREZCYjM2YVBReHJhMDkKdnBSNG02ZW5RZENiRmNWMGhFeXdZeS85SFFRcGhBKzFtOHNtSXlrY3B2MitYRnBtYmhmMDhOemVsdUJwVXRmVApDTTRWWHJBbzkwdUpTUU41NEg0NzVWQ0lWcXpMK2tzNHVvSmlIbGRSQnR2WVY4Yy84amdxUjRpWDBjd3J0ZWRWCmwzS0VZMGEwYjV3b1Fqb1dxQmo2Q0FYc0hUOHRCR3J1Q2p5VzlJU1l5R00rbmJ3UkpFSS9FSFlhc1N1cTZ5MlIKQ2hIR2lzOUtWcnhGWmZxMW1oU2xheVFZcWlkRGV3cm9Qa2pUZ2dvSjhPL1NxeEwyejdkK01vQ1pDZEpubnVadwpVRHpxN0RUSHhPYmlmdlUrclkybGNveE8vTzkvZ21mZ28vTTFma0xTTmdxN1ZYd0hMV2lSNmFVSjFyOFY5WnRZCmIxbXI4aVIxbGNlR2lRRVFxSTJPMm1KeHptWWlTaHEzZ1dMZjdzaXpnZjk0NFlBVy9rTGUxdVdsSlFpQUcyb0IKa1MzT0RTRUxkdVhFR3NxRGJ2QlQvSVpveGgyMjQ2QzR5MlhiOTZFYUlpYlFxRzJDVTZ3T2xTQktmb09IRTAzegpoQmJSc3dBZlFBPT0KPVp4Q1YKLS0tLS1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0stLS0tLQo=
|
|
@ -10,7 +10,14 @@ in
|
||||||
{
|
{
|
||||||
options.liminalOS.extras.gaming = {
|
options.liminalOS.extras.gaming = {
|
||||||
enable = lib.mkEnableOption "gaming";
|
enable = lib.mkEnableOption "gaming";
|
||||||
withHamachi = lib.mkEnableOption "hamachi";
|
utilities.hamachi.enable = lib.mkEnableOption "hamachi";
|
||||||
|
roblox.enable = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = config.liminalOS.extras.gaming && cfg.enable;
|
||||||
|
description = ''
|
||||||
|
Whether to install the Roblox Sober flatpak automatically. Note that this will enable the nix-flatpak service and automatic flatpak updates.`
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
@ -21,6 +28,19 @@ in
|
||||||
mangojuice
|
mangojuice
|
||||||
];
|
];
|
||||||
|
|
||||||
|
liminalOS.programs.flatpaks.enable = true;
|
||||||
|
|
||||||
|
services.flatpak.packages = lib.mkIf cfg.roblox.enable [
|
||||||
|
{
|
||||||
|
flatpakref = "https://sober.vinegarhq.org/sober.flatpakref";
|
||||||
|
sha256 = "sha256:1pj8y1xhiwgbnhrr3yr3ybpfis9slrl73i0b1lc9q89vhip6ym2l";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
appId = "org.vinegarhq.Sober";
|
||||||
|
origin = "sober";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
programs.steam = {
|
programs.steam = {
|
||||||
enable = true;
|
enable = true;
|
||||||
remotePlay.openFirewall = true;
|
remotePlay.openFirewall = true;
|
||||||
|
@ -47,8 +67,8 @@ in
|
||||||
|
|
||||||
users.users.${config.liminalOS.username}.extraGroups = [ "gamemode" ];
|
users.users.${config.liminalOS.username}.extraGroups = [ "gamemode" ];
|
||||||
|
|
||||||
services.logmein-hamachi.enable = cfg.withHamachi;
|
services.logmein-hamachi.enable = cfg.utilities.hamachi.enable;
|
||||||
programs.haguichi.enable = cfg.withHamachi;
|
programs.haguichi.enable = cfg.utilities.hamachi.enable;
|
||||||
|
|
||||||
nixpkgs.config.packageOverrides = pkgs: {
|
nixpkgs.config.packageOverrides = pkgs: {
|
||||||
steam = pkgs.steam.override {
|
steam = pkgs.steam.override {
|
||||||
|
|
Loading…
Reference in a new issue