Rewrote systemwide system, fixed broken build
This commit is contained in:
parent
42040403b1
commit
036f619673
|
@ -31,9 +31,6 @@ let
|
|||
in
|
||||
{
|
||||
imports = [
|
||||
# Import system wide configuration required for user modules
|
||||
../../user-modules/systemwide/default.nix
|
||||
|
||||
# Import systemwide configuration
|
||||
./systemwide.nix
|
||||
];
|
||||
|
|
|
@ -1,13 +1,33 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
configuration = (map (user: user.systemwide) (attrValues config.home-manager.users));
|
||||
moduleFiles = [
|
||||
../../user-modules/desktop/systemwide.nix
|
||||
../../user-modules/development/systemwide.nix
|
||||
../../user-modules/gaming/systemwide.nix
|
||||
../../user-modules/keyring/systemwide.nix
|
||||
];
|
||||
|
||||
moduleConfig = lists.foldr (file: acc: recursiveUpdate acc (import file)) { } moduleFiles;
|
||||
|
||||
moduleNames = attrNames moduleConfig;
|
||||
|
||||
mkModule =
|
||||
name: moduleConfig:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
config = mkIf (any (user: user.modules.${name}.enable) (attrValues config.home-manager.users)) (
|
||||
if (isAttrs moduleConfig) then moduleConfig else (moduleConfig { inherit config pkgs; })
|
||||
);
|
||||
};
|
||||
|
||||
imports = map (name: mkModule name moduleConfig."${name}") moduleNames;
|
||||
in
|
||||
{
|
||||
config = configuration;
|
||||
imports = imports;
|
||||
}
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
./shell/bash.nix
|
||||
./shell/fish.nix
|
||||
./spotify/default.nix
|
||||
./systemwide/default.nix
|
||||
./terminal/default.nix
|
||||
./terminal/foot/default.nix
|
||||
./theming/default.nix
|
||||
|
|
|
@ -12,7 +12,6 @@ in
|
|||
{
|
||||
imports = [
|
||||
# Import desktop environment modules
|
||||
./background/glpaper/default.nix
|
||||
./bar/waybar.nix
|
||||
./lock-screen/waylock.nix
|
||||
./window-manager/i3.nix
|
||||
|
@ -83,13 +82,14 @@ in
|
|||
}
|
||||
(
|
||||
# TODO: Move to dedicated module within desktop or maybe theming?
|
||||
if cfg.decorations == null then
|
||||
{ }
|
||||
else
|
||||
{
|
||||
csd = { };
|
||||
ssd = { };
|
||||
}
|
||||
."${cfg.decorations}"
|
||||
# if cfg.decorations == null then
|
||||
# { }
|
||||
# else
|
||||
# {
|
||||
# csd = { };
|
||||
# ssd = { };
|
||||
# }
|
||||
# ."${cfg.decorations}"
|
||||
{ }
|
||||
);
|
||||
}
|
||||
|
|
|
@ -16,10 +16,5 @@ in
|
|||
|
||||
config = mkIf cfg.enable {
|
||||
home.packages = (with pkgs; [ waylock ]);
|
||||
|
||||
# Systemwide configuration
|
||||
systemwide = {
|
||||
security.pam.services.waylock = { };
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -23,23 +23,5 @@ in
|
|||
xsession.windowManager.i3 = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Systemwide configuration
|
||||
systemwide = {
|
||||
services.xserver = {
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
enable = true;
|
||||
windowManager.i3.enable = true;
|
||||
desktopManager = {
|
||||
xterm.enable = true;
|
||||
xfce = {
|
||||
enable = true;
|
||||
# noDesktop = false;
|
||||
# enableXfwm = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -36,11 +36,6 @@ in
|
|||
river
|
||||
'';
|
||||
|
||||
# Systemwide configuration
|
||||
systemwide = {
|
||||
programs.river.enable = true;
|
||||
};
|
||||
|
||||
# TODO: Fix this
|
||||
# modules.desktop.reloadScript = ''
|
||||
# ${pkgs.river}/bin/riverctl background-color 0x${config.theming.colors.bg}
|
||||
|
@ -118,7 +113,8 @@ in
|
|||
spawn = [
|
||||
"\"${layout} ${layoutOptions}\""
|
||||
"waybar" # TODO: Decouple
|
||||
"\"glpaper eDP-1 ${toString config.modules.glpaper.shader}\""
|
||||
# TODO: Generic background options
|
||||
# "\"glpaper eDP-1 ${toString config.modules.glpaper.shader}\""
|
||||
"udiskie"
|
||||
];
|
||||
map = (
|
||||
|
|
|
@ -1,95 +1,5 @@
|
|||
{ ... }:
|
||||
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
|
||||
with lib;
|
||||
let
|
||||
cfg = config.modules.desktop;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
# Import desktop environment modules
|
||||
./background/glpaper/default.nix
|
||||
./bar/waybar.nix
|
||||
./lock-screen/waylock.nix
|
||||
./window-manager/i3.nix
|
||||
./window-manager/river.nix
|
||||
];
|
||||
|
||||
options.modules.desktop = {
|
||||
wayland = mkEnableOption "wayland";
|
||||
# TODO: Remove, not needed with session/display manager
|
||||
initScript = mkOption {
|
||||
type = types.lines;
|
||||
default = "${pkgs.bash}/bin/bash";
|
||||
description = "Bash script to execute after logging in.";
|
||||
};
|
||||
# TODO: Find a nicer way to do this as this is also executed on startup
|
||||
reloadScript = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
description = "Shell script to execute after reload/rebuild.";
|
||||
};
|
||||
decorations = mkOption {
|
||||
type = types.nullOr (
|
||||
types.enum [
|
||||
"csd"
|
||||
"ssd"
|
||||
]
|
||||
);
|
||||
default = null;
|
||||
description = "Window decorations to use.";
|
||||
};
|
||||
};
|
||||
|
||||
config =
|
||||
lib.recursiveUpdate
|
||||
{
|
||||
# Ensure desktop related systemd services (xdg) have access to session variables.
|
||||
systemd.user.sessionVariables = config.home.sessionVariables;
|
||||
|
||||
home.packages = optionals cfg.wayland (
|
||||
with pkgs;
|
||||
[
|
||||
wl-clipboard
|
||||
wtype
|
||||
grim
|
||||
slurp
|
||||
]
|
||||
);
|
||||
|
||||
home.activation = {
|
||||
customReloadScript = lib.hm.dag.entryAfter [ "writeBoundary" ] (
|
||||
''
|
||||
#!${pkgs.bash}/bin/bash
|
||||
''
|
||||
+ cfg.reloadScript
|
||||
);
|
||||
};
|
||||
|
||||
home.file.".initrc" = {
|
||||
enable = true;
|
||||
executable = true;
|
||||
text =
|
||||
''
|
||||
#!${pkgs.bash}/bin/bash
|
||||
|
||||
''
|
||||
+ cfg.initScript;
|
||||
};
|
||||
}
|
||||
(
|
||||
# TODO: Move to dedicated module within desktop or maybe theming?
|
||||
if cfg.decorations == null then
|
||||
{ }
|
||||
else
|
||||
{
|
||||
csd = { };
|
||||
ssd = { };
|
||||
}
|
||||
."${cfg.decorations}"
|
||||
);
|
||||
imports = [ ./custom/default.nix ];
|
||||
}
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
waylock = {
|
||||
security.pam.services.waylock = { };
|
||||
};
|
||||
river = {
|
||||
programs.river.enable = true;
|
||||
};
|
||||
i3 = {
|
||||
services.xserver = {
|
||||
layout = "us";
|
||||
xkbVariant = "";
|
||||
enable = true;
|
||||
windowManager.i3.enable = true;
|
||||
desktopManager = {
|
||||
xterm.enable = true;
|
||||
xfce = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
docker = {
|
||||
virtualisation.docker.enable = true;
|
||||
machine.sudo-groups = [ "docker" ];
|
||||
};
|
||||
}
|
|
@ -37,11 +37,5 @@ in
|
|||
|
||||
# Neovim configuration
|
||||
programs.nixvim = { };
|
||||
|
||||
# Systemwide configuration
|
||||
systemwide = {
|
||||
virtualisation.docker.enable = true;
|
||||
machine.sudo-groups = [ "docker" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
|
@ -12,22 +11,6 @@ with lib;
|
|||
};
|
||||
|
||||
config = mkIf config.modules.steam.enable {
|
||||
# Systemwide configuration
|
||||
systemwide = {
|
||||
modules.unfree.allowedPackages = [
|
||||
"steam"
|
||||
"steam-original"
|
||||
"steam-unwrapped"
|
||||
];
|
||||
|
||||
programs.steam.enable = true;
|
||||
|
||||
# Make steam create desktop entries in a subfolder
|
||||
programs.steam.package = pkgs.steam.override {
|
||||
extraBwrapArgs = [
|
||||
"--bind $HOME/.local/share/applications/Steam $HOME/.local/share/applications"
|
||||
];
|
||||
};
|
||||
};
|
||||
# Steam must be installed systemwide as of time of writing
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
steam =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
modules.unfree.allowedPackages = [
|
||||
"steam"
|
||||
"steam-original"
|
||||
"steam-unwrapped"
|
||||
];
|
||||
|
||||
programs.steam.enable = true;
|
||||
|
||||
# Make steam create desktop entries in a subfolder
|
||||
programs.steam.package = pkgs.steam.override {
|
||||
extraBwrapArgs = [
|
||||
"--bind $HOME/.local/share/applications/Steam $HOME/.local/share/applications"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
|
@ -19,12 +19,5 @@ in
|
|||
home.packages = with pkgs; [
|
||||
seahorse
|
||||
];
|
||||
|
||||
# Systemwide configuration
|
||||
systemwide = {
|
||||
services.gnome.gnome-keyring = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
keyring = {
|
||||
services.gnome.gnome-keyring = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
{ lib, ... }:
|
||||
|
||||
with lib;
|
||||
{
|
||||
options.systemwide = mkOption {
|
||||
type = types.attrsOf types.anything;
|
||||
default = { };
|
||||
description = "Systemwide configuration required for user-specific settings.";
|
||||
};
|
||||
}
|
Loading…
Reference in New Issue