Major config overhaul: use custom modules, setup for multi-host config, and less boilerplate

This commit is contained in:
Emmet K
2025-02-09 16:50:26 -06:00
parent 1fa8b17b07
commit 0453901d17
303 changed files with 3560 additions and 5566 deletions

View File

@@ -0,0 +1,30 @@
{ config, lib, pkgs, ... }:
let
browser = config.userSettings.browser;
in {
options = {
userSettings.browser = lib.mkOption {
default = "brave";
description = "Default browser";
type = lib.types.enum [ "brave" "qutebrowser" "librewolf" ];
};
userSettings.spawnBrowser = lib.mkOption {
default = "brave";
description = "Default browser spawn command";
type = lib.types.str;
};
};
config = {
userSettings.brave.enable = lib.mkIf (browser == "brave") true;
userSettings.librewolf.enable = lib.mkIf (browser == "librewolf") true;
userSettings.qutebrowser.enable = lib.mkIf (browser == "qutebrowser") true;
userSettings.spawnBrowser = lib.mkMerge [
(lib.mkIf ((browser == "brave") || (browser == "librewolf")) browser)
(lib.mkIf (!(config.userSettings.hyprland.hyprprofiles.enable) && (browser == "qutebrowser")) "qutebrowser --qt-flag ignore-gpu-blacklist --qt-flag enable-gpu-rasterization --qt-flag enable-native-gpu-memory-buffers --qt-flag enable-accelerated-2d-canvas --qt-flag num-raster-threads=4")
(lib.mkIf config.userSettings.hyprland.hyprprofiles.enable "qutebrowser-hyprprofile")
];
};
}