Simplify wrapper imports

This commit is contained in:
SebastianStork 2024-07-15 19:22:36 +02:00
parent 43c8adddb6
commit 42ebeaf86e
19 changed files with 298 additions and 248 deletions

View file

@ -59,6 +59,7 @@
imports = [ imports = [
./flake/hosts.nix ./flake/hosts.nix
./flake/modules.nix ./flake/modules.nix
./flake/wrappers.nix
./flake/dev-shells.nix ./flake/dev-shells.nix
./flake/formatter.nix ./flake/formatter.nix
]; ];

19
flake/wrappers.nix Normal file
View file

@ -0,0 +1,19 @@
{
flake.nixosModules.wrappers =
{
self,
inputs,
pkgs,
lib,
...
}:
{
_module.args.wrappers =
(lib.concatMapAttrs (
name: _: {
${lib.removeSuffix ".nix" name} = import "${self}/wrappers/${name}" { inherit inputs pkgs lib; };
}
))
(builtins.readDir "${self}/wrappers");
};
}

View file

@ -2,7 +2,7 @@
{ {
imports = [ imports = [
self.nixosModules.nixos self.nixosModules.nixos
../wrappers self.nixosModules.wrappers
]; ];
nix.settings = { nix.settings = {

View file

@ -12,7 +12,7 @@
home-manager.sharedModules = [ home-manager.sharedModules = [
self.nixosModules.home-manager self.nixosModules.home-manager
../wrappers self.nixosModules.wrappers
{ {
programs.home-manager.enable = true; programs.home-manager.enable = true;

View file

@ -1,8 +1,12 @@
{ assembleWrapper, moduleArgs, ... }: { inputs, pkgs, ... }:
let (inputs.wrapper-manager.lib {
inherit (moduleArgs) pkgs; inherit pkgs;
in modules = [
assembleWrapper { {
basePackage = pkgs.bottom; wrappers.bottom = {
flags = [ "--group" ]; basePackage = pkgs.bottom;
} flags = [ "--group" ];
};
}
];
}).config.wrappers.bottom.wrapped

View file

@ -1,24 +0,0 @@
{
inputs,
pkgs,
lib,
...
}@moduleArgs:
let
assembleWrapper =
wrapperConfig:
(inputs.wrapper-manager.lib {
inherit pkgs;
modules = [ { wrappers.wrappedPackage = wrapperConfig; } ];
}).config.wrappers.wrappedPackage.wrapped;
in
{
_module.args.wrappers = lib.pipe (builtins.readDir ./.) [
(lib.filterAttrs (name: _: name != "default.nix"))
(lib.concatMapAttrs (
name: _: {
${lib.removeSuffix ".nix" name} = import ./${name} { inherit assembleWrapper moduleArgs; };
}
))
];
}

View file

@ -1,10 +1,19 @@
{ assembleWrapper, moduleArgs, ... }: {
let inputs,
inherit (moduleArgs) pkgs; pkgs,
in lib,
assembleWrapper { ...
basePackage = pkgs.wrapFirefox pkgs.firefox-unwrapped { }:
extraPolicies.ExtensionSettings = import ./extensions.nix { inherit moduleArgs; }; (inputs.wrapper-manager.lib {
extraPrefs = import ./preferences.nix { inherit moduleArgs; }; inherit pkgs;
}; modules = [
} {
wrappers.firefox = {
basePackage = pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies.ExtensionSettings = import ./extensions.nix { inherit inputs lib; };
extraPrefs = import ./preferences.nix { inherit inputs; };
};
};
}
];
}).config.wrappers.firefox.wrapped

View file

@ -1,7 +1,5 @@
{ moduleArgs, ... }: { inputs, lib, ... }:
let let
inherit (moduleArgs) lib inputs;
extension = shortId: uuid: { extension = shortId: uuid: {
name = uuid; name = uuid;
value = { value = {

View file

@ -1,7 +1,5 @@
{ moduleArgs, ... }: { inputs, ... }:
let let
inherit (moduleArgs) inputs;
betterfox = builtins.replaceStrings [ "user_pref" ] [ "pref" ] ( betterfox = builtins.replaceStrings [ "user_pref" ] [ "pref" ] (
builtins.readFile "${inputs.betterfox}/user.js" builtins.readFile "${inputs.betterfox}/user.js"
); );

View file

@ -1,35 +1,39 @@
{ assembleWrapper, moduleArgs, ... }: { inputs, pkgs, ... }:
let (inputs.wrapper-manager.lib {
inherit (moduleArgs) pkgs; inherit pkgs;
in modules = [
assembleWrapper { {
basePackage = pkgs.hypridle; wrappers.hypridle = {
flags = basePackage = pkgs.hypridle;
let flags =
hypridle-config = pkgs.writeText "hypridle-config" '' let
general { hypridle-config = pkgs.writeText "hypridle-config" ''
lock_cmd = pidof hyprlock || hyprlock general {
before_sleep_cmd = loginctl lock-session lock_cmd = pidof hyprlock || hyprlock
after_sleep_cmd = hyprctl dispatch dpms on before_sleep_cmd = loginctl lock-session
} after_sleep_cmd = hyprctl dispatch dpms on
listener { }
timeout = 300 listener {
on-timeout= brightnessctl -s && brightnessctl -e set 10% timeout = 300
on-resume = brightnessctl -r on-timeout= brightnessctl -s && brightnessctl -e set 10%
} on-resume = brightnessctl -r
listener { }
timeout = 600 listener {
on-timeout = loginctl lock-session timeout = 600
} on-timeout = loginctl lock-session
listener { }
timeout = 610 listener {
on-timeout = hyprctl dispatch dpms off timeout = 610
on-resume = hyprctl dispatch dpms on on-timeout = hyprctl dispatch dpms off
} on-resume = hyprctl dispatch dpms on
''; }
in '';
[ in
"--config" [
hypridle-config "--config"
]; hypridle-config
} ];
};
}
];
}).config.wrappers.hypridle.wrapped

View file

@ -1,25 +1,29 @@
{ assembleWrapper, moduleArgs, ... }: { inputs, pkgs, ... }:
let (inputs.wrapper-manager.lib {
inherit (moduleArgs) pkgs; inherit pkgs;
in modules = [
assembleWrapper { {
basePackage = pkgs.hyprlock; wrappers.hyprlock = {
flags = basePackage = pkgs.hyprlock;
let flags =
hyprlock-config = pkgs.writeText "hyprlock-config" '' let
background { hyprlock-config = pkgs.writeText "hyprlock-config" ''
monitor = background {
path = screenshot monitor =
blur_size = 4 path = screenshot
blur_passes = 1 blur_size = 4
} blur_passes = 1
input-field { }
monitor = input-field {
} monitor =
''; }
in '';
[ in
"--config" [
hyprlock-config "--config"
]; hyprlock-config
} ];
};
}
];
}).config.wrappers.hyprlock.wrapped

View file

@ -1,19 +1,23 @@
{ assembleWrapper, moduleArgs, ... }: { inputs, pkgs, ... }:
let (inputs.wrapper-manager.lib {
inherit (moduleArgs) pkgs; inherit pkgs;
in modules = [
assembleWrapper { {
basePackage = pkgs.hyprpaper; wrappers.hyprpaper = {
flags = basePackage = pkgs.hyprpaper;
let flags =
hyprpaper-config = pkgs.writeText "hyprpaper-config" '' let
preload = ~/Pictures/.wallpaper hyprpaper-config = pkgs.writeText "hyprpaper-config" ''
wallpaper = , ~/Pictures/.wallpaper preload = ~/Pictures/.wallpaper
splash = false wallpaper = , ~/Pictures/.wallpaper
''; splash = false
in '';
[ in
"--config" [
hyprpaper-config "--config"
]; hyprpaper-config
} ];
};
}
];
}).config.wrappers.hyprpaper.wrapped

View file

@ -1,34 +1,38 @@
{ assembleWrapper, moduleArgs, ... }: { inputs, pkgs, ... }:
let
inherit (moduleArgs) pkgs;
in
{ {
theme ? "dark", theme ? "dark",
}: }:
assembleWrapper { (inputs.wrapper-manager.lib {
basePackage = pkgs.kitty; inherit pkgs;
programs.kitty.prependFlags = modules = [
let {
kitty-config = pkgs.writeText "kitty-config" '' wrappers.kitty = {
font_family JetBrainsMono Nerd Font basePackage = pkgs.kitty;
background_opacity 0.85 programs.kitty.prependFlags =
cursor_shape beam let
confirm_os_window_close 0 kitty-config = pkgs.writeText "kitty-config" ''
enable_audio_bell no font_family JetBrainsMono Nerd Font
update_check_interval 0 background_opacity 0.85
''; cursor_shape beam
theme-file = confirm_os_window_close 0
{ enable_audio_bell no
dark = "default.conf"; update_check_interval 0
light = "GitHub_Light.conf"; '';
} theme-file =
.${theme}; {
kitty-theme = "include=${pkgs.kitty-themes}/share/kitty-themes/themes/${theme-file}"; dark = "default.conf";
in light = "GitHub_Light.conf";
[ }
"--config" .${theme};
kitty-config kitty-theme = "include=${pkgs.kitty-themes}/share/kitty-themes/themes/${theme-file}";
"--override" in
kitty-theme [
]; "--config"
} kitty-config
"--override"
kitty-theme
];
};
}
];
}).config.wrappers.kitty.wrapped

View file

@ -1,8 +1,12 @@
{ assembleWrapper, moduleArgs, ... }: { inputs, pkgs, ... }:
let (inputs.wrapper-manager.lib {
inherit (moduleArgs) pkgs; inherit pkgs;
in modules = [
assembleWrapper { {
basePackage = pkgs.marktext; wrappers.marktext = {
flags = [ "--disable-gpu" ]; basePackage = pkgs.marktext;
} flags = [ "--disable-gpu" ];
};
}
];
}).config.wrappers.marktext.wrapped

View file

@ -1,8 +1,12 @@
{ assembleWrapper, moduleArgs, ... }: { inputs, pkgs, ... }:
let (inputs.wrapper-manager.lib {
inherit (moduleArgs) pkgs; inherit pkgs;
in modules = [
assembleWrapper { {
basePackage = pkgs.obsidian; wrappers.obsidian = {
flags = [ "--disable-gpu" ]; basePackage = pkgs.obsidian;
} flags = [ "--disable-gpu" ];
};
}
];
}).config.wrappers.obsidian.wrapped

View file

@ -1,47 +1,56 @@
{ assembleWrapper, moduleArgs, ... }: {
let inputs,
inherit (moduleArgs) pkgs lib; pkgs,
in lib,
...
}:
{ {
theme ? "dark", theme ? "dark",
}: }:
assembleWrapper { (inputs.wrapper-manager.lib {
basePackage = pkgs.rofi-wayland; inherit pkgs;
flags = modules = [
let {
theming = wrappers.rofi = {
{ basePackage = pkgs.rofi-wayland;
dark = '' flags =
* { let
background: #1E2127FF; theming =
background-alt: #282B31FF; {
foreground: #FFFFFFFF; dark = ''
selected: #61AFEFFF; * {
active: #98C379FF; background: #1E2127FF;
urgent: #E06C75FF; background-alt: #282B31FF;
} foreground: #FFFFFFFF;
''; selected: #61AFEFFF;
light = '' active: #98C379FF;
* { urgent: #E06C75FF;
background: #F1F1F1FF; }
background-alt: #E0E0E0FF; '';
foreground: #252525FF; light = ''
selected: #008EC4FF; * {
active: #10A778FF; background: #F1F1F1FF;
urgent: #C30771FF; background-alt: #E0E0E0FF;
} foreground: #252525FF;
''; selected: #008EC4FF;
} active: #10A778FF;
.${theme}; urgent: #C30771FF;
rofi-config = pkgs.writeText "rofi-config" ( }
lib.concatLines [ '';
theming }
(builtins.readFile ./config.rasi) .${theme};
] rofi-config = pkgs.writeText "rofi-config" (
); lib.concatLines [
in theming
[ (builtins.readFile ./config.rasi)
"-config" ]
rofi-config );
]; in
} [
"-config"
rofi-config
];
};
}
];
}).config.wrappers.rofi.wrapped

View file

@ -1,8 +1,12 @@
{ assembleWrapper, moduleArgs, ... }: { inputs, pkgs, ... }:
let (inputs.wrapper-manager.lib {
inherit (moduleArgs) pkgs; inherit pkgs;
in modules = [
assembleWrapper { {
basePackage = pkgs.spotify; wrappers.spotify = {
flags = [ "--disable-gpu" ]; basePackage = pkgs.spotify;
} flags = [ "--disable-gpu" ];
};
}
];
}).config.wrappers.spotify.wrapped

View file

@ -1,13 +1,17 @@
{ assembleWrapper, moduleArgs, ... }: { inputs, pkgs, ... }:
let (inputs.wrapper-manager.lib {
inherit (moduleArgs) pkgs; inherit pkgs;
in modules = [
assembleWrapper { {
basePackage = pkgs.waybar; wrappers.waybar = {
flags = [ basePackage = pkgs.waybar;
"--config" flags = [
./config.json "--config"
"--style" ./config.json
./style.css "--style"
./style.css
];
};
}
]; ];
} }).config.wrappers.waybar.wrapped

View file

@ -1,8 +1,12 @@
{ assembleWrapper, moduleArgs, ... }: { inputs, pkgs, ... }:
let (inputs.wrapper-manager.lib {
inherit (moduleArgs) pkgs; inherit pkgs;
in modules = [
assembleWrapper { {
basePackage = pkgs.webcord; wrappers.webcord = {
flags = [ "--disable-gpu" ]; basePackage = pkgs.webcord;
} flags = [ "--disable-gpu" ];
};
}
];
}).config.wrappers.webcord.wrapped