Drop wrapper-manager

This commit is contained in:
SebastianStork 2025-03-08 14:29:12 +01:00
parent fa04b898a9
commit 758d78e737
24 changed files with 159 additions and 262 deletions

24
flake.lock generated
View file

@ -291,8 +291,7 @@
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable", "nixpkgs-unstable": "nixpkgs-unstable",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"treefmt-nix": "treefmt-nix", "treefmt-nix": "treefmt-nix"
"wrapper-manager": "wrapper-manager"
} }
}, },
"sops-nix": { "sops-nix": {
@ -382,27 +381,6 @@
"repo": "flake-utils", "repo": "flake-utils",
"type": "github" "type": "github"
} }
},
"wrapper-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1707514093,
"narHash": "sha256-vrESSBhoRgEnAglfr30Vd1lzuS4pX/xLjoSj78oQKOc=",
"owner": "nrabulinski",
"repo": "wrapper-manager",
"rev": "01b80d8ea37839a7614177d59f06eb88fbe30fd2",
"type": "github"
},
"original": {
"owner": "nrabulinski",
"ref": "wrap-certain-programs",
"repo": "wrapper-manager",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View file

@ -18,12 +18,6 @@
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
wrapper-manager = {
# Wrapper-manager fork with selective binary wrapping
url = "github:nrabulinski/wrapper-manager/wrap-certain-programs";
inputs.nixpkgs.follows = "nixpkgs";
};
disko = { disko = {
url = "github:nix-community/disko"; url = "github:nix-community/disko";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
@ -72,7 +66,6 @@
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
./flake/checks.nix ./flake/checks.nix

View file

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

View file

@ -6,10 +6,7 @@
... ...
}: }:
{ {
imports = [ imports = [ self.nixosModules.default ];
self.nixosModules.default
self.wrappers.default
];
networking.domain = "stork-atlas.ts.net"; networking.domain = "stork-atlas.ts.net";

View file

@ -2,7 +2,6 @@
config, config,
pkgs, pkgs,
lib, lib,
wrappers,
... ...
}: }:
{ {
@ -18,7 +17,6 @@
"${lib.getExe config.services.cliphist.package} wipe"; "${lib.getExe config.services.cliphist.package} wipe";
home.packages = [ home.packages = [
(wrappers.rofi { inherit (config.myConfig.de) theme; })
pkgs.wl-clipboard pkgs.wl-clipboard
(pkgs.writeScriptBin "rofi-clipboard" "cliphist list | rofi -dmenu -display-columns 2 | cliphist decode | wl-copy") (pkgs.writeScriptBin "rofi-clipboard" "cliphist list | rofi -dmenu -display-columns 2 | cliphist decode | wl-copy")
]; ];

View file

@ -2,17 +2,13 @@
config, config,
pkgs, pkgs,
lib, lib,
wrappers,
... ...
}: }:
{ {
options.myConfig.de.hypridle.enable = lib.mkEnableOption ""; options.myConfig.de.hypridle.enable = lib.mkEnableOption "";
config = lib.mkIf config.myConfig.de.hypridle.enable { config = lib.mkIf config.myConfig.de.hypridle.enable {
home.packages = [ home.packages = [ pkgs.brightnessctl ];
wrappers.hyprlock
pkgs.brightnessctl
];
services.hypridle = { services.hypridle = {
enable = true; enable = true;

View file

@ -2,7 +2,6 @@
config, config,
pkgs, pkgs,
lib, lib,
wrappers,
... ...
}@moduleArgs: }@moduleArgs:
{ {
@ -14,7 +13,6 @@
wayland.windowManager.hyprland.enable = true; wayland.windowManager.hyprland.enable = true;
home.packages = [ home.packages = [
(wrappers.rofi { inherit (config.myConfig.de) theme; })
pkgs.wl-clipboard pkgs.wl-clipboard
pkgs.playerctl pkgs.playerctl
pkgs.brightnessctl pkgs.brightnessctl
@ -22,7 +20,9 @@
]; ];
myConfig.de = { myConfig.de = {
rofi.enable = true;
hyprpaper.enable = true; hyprpaper.enable = true;
hyprlock.enable = true;
hypridle.enable = true; hypridle.enable = true;
waybar.enable = true; waybar.enable = true;
cliphist.enable = true; cliphist.enable = true;

View file

@ -0,0 +1,21 @@
{ config, lib, ... }:
{
options.myConfig.de.hyprlock.enable = lib.mkEnableOption "";
config = lib.mkIf config.myConfig.de.hyprlock.enable {
programs.hyprlock = {
enable = true;
settings = {
general.no_fade_in = true;
background = {
monitor = "";
path = "~/Pictures/.wallpaper";
blur_size = 4;
blur_passes = 1;
};
input-field.monitor = "";
};
};
};
}

View file

@ -0,0 +1,27 @@
{
config,
pkgs,
lib,
...
}:
{
options.myConfig.de.rofi.enable = lib.mkEnableOption "";
config = lib.mkIf config.myConfig.de.rofi.enable {
home.packages = [ pkgs.rofi-wayland ];
xdg.configFile."rofi/config.rasi".source =
let
theming =
{
dark = ./dark-theme.rasi;
light = ./light-theme.rasi;
}
.${config.myConfig.de.theme};
in
pkgs.concatText "rofi-config" [
./config.rasi
theming
];
};
}

65
modules/home/firefox.nix Normal file
View file

@ -0,0 +1,65 @@
{
config,
inputs,
pkgs,
lib,
...
}:
{
options.myConfig.firefox.enable = lib.mkEnableOption "";
config = lib.mkIf config.myConfig.firefox.enable {
programs.firefox = {
enable = true;
profiles.default = {
settings =
let
uiState = ''{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":["sponsorblocker_ajay_app-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","ublock0_raymondhill_net-browser-action"],"nav-bar":["back-button","forward-button","stop-reload-button","customizableui-special-spring1","urlbar-container","customizableui-special-spring2","save-to-pocket-button","downloads-button","fxa-toolbar-menu-button","unified-extensions-button","sidebar-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["firefox-view-button","tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["personal-bookmarks"]},"seen":["developer-button","sponsorblocker_ajay_app-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","ublock0_raymondhill_net-browser-action"],"dirtyAreaCache":["nav-bar","unified-extensions-area","PersonalToolbar","TabsToolbar","toolbar-menubar"],"currentVersion":20,"newElementCount":5}'';
in
{
"intl.accept_languages" = "en-us,en,de-de,de";
"browser.uiCustomization.state" = uiState;
"sidebar.position_start" = false;
"browser.toolbars.bookmarks.visibility" = "always";
"browser.bookmarks.restore_default_bookmarks" = false;
"browser.bookmarks.file" = "";
"media.videocontrols.picture-in-picture.video-toggle.enabled" = false;
"general.autoScroll" = true;
"middlemouse.paste" = false;
"signon.rememberSignons" = false;
"extensions.formautofill.creditCards.enabled" = false;
"browser.tabs.loadBookmarksInBackground" = true;
"browser.tabs.groups.enabled" = true;
};
extraConfig = builtins.readFile "${inputs.betterfox}/user.js";
};
policies.ExtensionSettings =
let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "file:///${
inputs.firefox-addons.packages.${pkgs.system}.${shortId}
}/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/${uuid}.xpi";
installation_mode = "force_installed";
default_area = "menupanel";
};
};
in
{
"*".installation_mode = "blocked";
}
// lib.listToAttrs [
(extension "dictionary-german" "de-DE@dictionaries.addons.mozilla.org")
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
(extension "return-youtube-dislikes" "{762f9885-5a13-4abd-9c77-433dcd38b8fd}")
(extension "sponsorblock" "sponsorBlocker@ajay.app")
(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
];
};
};
}

34
modules/home/kitty.nix Normal file
View file

@ -0,0 +1,34 @@
{
config,
pkgs,
lib,
...
}:
{
options.myConfig.kitty.enable = lib.mkEnableOption "";
config = lib.mkIf config.myConfig.kitty.enable {
programs.kitty = {
enable = true;
settings =
let
theme-name =
{
dark = "default";
light = "GitHub_Light";
}
.${config.myConfig.de.theme};
in
{
include = "${pkgs.kitty-themes}/share/kitty-themes/themes/${theme-name}.conf";
font_family = "JetBrainsMono Nerd Font";
background_opacity = "0.85";
cursor_shape = "beam";
confirm_os_window_close = 0;
enable_audio_bell = "no";
update_check_interval = 0;
};
};
};
}

View file

@ -2,7 +2,6 @@
config, config,
pkgs, pkgs,
lib, lib,
wrappers,
... ...
}: }:
{ {
@ -35,14 +34,12 @@
cat = "bat --plain --theme=${theme}"; cat = "bat --plain --theme=${theme}";
}; };
kittyAlias = { bottomAlias.btm = "btm --group_processes";
kitty = lib.getExe (wrappers.kitty { inherit (config.myConfig.de) theme; });
};
in in
lib.mkMerge [ lib.mkMerge [
lsAliases lsAliases
catAlias catAlias
kittyAlias bottomAlias
]; ];
}; };
} }

View file

@ -1,9 +1,6 @@
{ self, ... }: { self, ... }:
{ {
imports = [ imports = [ self.homeManagerModules.default ];
self.homeManagerModules.default
self.wrappers.default
];
systemd.user.startServices = "sd-switch"; systemd.user.startServices = "sd-switch";

View file

@ -1,15 +1,12 @@
{ { pkgs, ... }:
config,
pkgs,
wrappers,
...
}:
{ {
imports = [ ../common-home.nix ]; imports = [ ../common-home.nix ];
home.sessionVariables.FLAKE = "~/Projects/nixos-config"; home.sessionVariables.FLAKE = "~/Projects/nixos-config";
myConfig = { myConfig = {
kitty.enable = true;
firefox.enable = true;
sops.enable = true; sops.enable = true;
shell.zsh.enable = true; shell.zsh.enable = true;
git.enable = true; git.enable = true;
@ -19,11 +16,9 @@
}; };
home.packages = [ home.packages = [
wrappers.bottom pkgs.bottom
pkgs.fastfetch pkgs.fastfetch
(wrappers.kitty { inherit (config.myConfig.de) theme; })
wrappers.firefox
pkgs.nemo-with-extensions pkgs.nemo-with-extensions
pkgs.celluloid pkgs.celluloid
pkgs.spotify pkgs.spotify

View file

@ -1,12 +0,0 @@
{ inputs, pkgs, ... }:
(inputs.wrapper-manager.lib {
inherit pkgs;
modules = [
{
wrappers.bottom = {
basePackage = pkgs.bottom;
flags = [ "--group_processes" ];
};
}
];
}).config.wrappers.bottom.wrapped

View file

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

View file

@ -1,29 +0,0 @@
{
inputs,
pkgs,
lib,
...
}:
let
extension = shortId: uuid: {
name = uuid;
value = {
install_url = "file:///${
inputs.firefox-addons.packages.${pkgs.system}.${shortId}
}/share/mozilla/extensions/{ec8030f7-c20a-464f-9b0e-13a3a9e97384}/${uuid}.xpi";
installation_mode = "force_installed";
default_area = "menupanel";
};
};
in
{
"*".installation_mode = "blocked";
}
// lib.listToAttrs [
(extension "dictionary-german" "de-DE@dictionaries.addons.mozilla.org")
(extension "ublock-origin" "uBlock0@raymondhill.net")
(extension "bitwarden" "{446900e4-71c2-419f-a6a7-df9c091e268b}")
(extension "return-youtube-dislikes" "{762f9885-5a13-4abd-9c77-433dcd38b8fd}")
(extension "sponsorblock" "sponsorBlocker@ajay.app")
(extension "clearurls" "{74145f27-f039-47ce-a470-a662b129930a}")
]

View file

@ -1,25 +0,0 @@
{ inputs, ... }:
let
betterfox = builtins.replaceStrings [ "user_pref" ] [ "pref" ] (
builtins.readFile "${inputs.betterfox}/user.js"
);
escapedUiState =
builtins.replaceStrings [ ''"'' ] [ ''\"'' ]
''{"placements":{"widget-overflow-fixed-list":[],"unified-extensions-area":["sponsorblocker_ajay_app-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","ublock0_raymondhill_net-browser-action"],"nav-bar":["back-button","forward-button","stop-reload-button","customizableui-special-spring1","urlbar-container","customizableui-special-spring2","save-to-pocket-button","downloads-button","fxa-toolbar-menu-button","unified-extensions-button","sidebar-button"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["firefox-view-button","tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["personal-bookmarks"]},"seen":["developer-button","sponsorblocker_ajay_app-browser-action","_762f9885-5a13-4abd-9c77-433dcd38b8fd_-browser-action","_446900e4-71c2-419f-a6a7-df9c091e268b_-browser-action","_74145f27-f039-47ce-a470-a662b129930a_-browser-action","ublock0_raymondhill_net-browser-action"],"dirtyAreaCache":["nav-bar","unified-extensions-area","PersonalToolbar","TabsToolbar","toolbar-menubar"],"currentVersion":20,"newElementCount":5}'';
in
''
${betterfox}
pref("intl.accept_languages", "en-us,en,de-de,de");
pref("browser.uiCustomization.state", "${escapedUiState}");
pref("sidebar.position_start", false);
pref("browser.toolbars.bookmarks.visibility", "always");
pref("browser.bookmarks.restore_default_bookmarks", false);
pref("browser.bookmarks.file", "");
pref("media.videocontrols.picture-in-picture.video-toggle.enabled", false);
pref("general.autoScroll", true);
pref("middlemouse.paste", false);
pref("signon.rememberSignons", false);
pref("extensions.formautofill.creditCards.enabled", false);
pref("browser.tabs.loadBookmarksInBackground", true);
pref("browser.tabs.groups.enabled", true);
''

View file

@ -1,32 +0,0 @@
{ inputs, pkgs, ... }:
(inputs.wrapper-manager.lib {
inherit pkgs;
modules = [
{
wrappers.hyprlock = {
basePackage = pkgs.hyprlock;
flags =
let
hyprlock-config = pkgs.writeText "hyprlock-config" ''
general {
no_fade_in = true
}
background {
monitor =
path = ~/Pictures/.wallpaper
blur_size = 4
blur_passes = 1
}
input-field {
monitor =
}
'';
in
[
"--config"
hyprlock-config
];
};
}
];
}).config.wrappers.hyprlock.wrapped

View file

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

View file

@ -1,30 +0,0 @@
{ inputs, pkgs, ... }:
{
theme ? "dark",
}:
(inputs.wrapper-manager.lib {
inherit pkgs;
modules = [
{
wrappers.rofi = {
basePackage = pkgs.rofi-wayland;
flags =
let
theming =
{
dark = ./dark-theme.rasi;
light = ./light-theme.rasi;
}
.${theme};
in
[
"-config"
(pkgs.concatText "rofi-config" [
./config.rasi
theming
])
];
};
}
];
}).config.wrappers.rofi.wrapped