Compare commits
No commits in common. "5f66c1c6317c284d506d79ca4f0510be71185991" and "1b4f8911fdb55a8a8ffe190ae20d26eb598d9f38" have entirely different histories.
5f66c1c631
...
1b4f8911fd
|
@ -0,0 +1,33 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# TODO: Temporary until it has been subdivided into modules.
|
||||||
|
./merged.nix
|
||||||
|
|
||||||
|
# Modules
|
||||||
|
./modules/default.nix
|
||||||
|
|
||||||
|
# System configuration options
|
||||||
|
./system.nix
|
||||||
|
|
||||||
|
# Import test configuration
|
||||||
|
./test.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
# Allow unfree packages
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
# Enable default modules
|
||||||
|
modules = {
|
||||||
|
# Greeter
|
||||||
|
tuigreet.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Localization settings
|
||||||
|
time.timeZone = "Europe/Amsterdam";
|
||||||
|
i18n.defaultLocale = "en_US.UTF-8";
|
||||||
|
console.keyMap = "us";
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,31 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# Import modules
|
|
||||||
../modules/default.nix
|
|
||||||
|
|
||||||
# TODO: Remove later
|
|
||||||
../merged.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
|
||||||
# State version
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
|
|
||||||
# Machine hostname
|
|
||||||
networking.hostName = "20212060";
|
|
||||||
|
|
||||||
# Enabled modules
|
|
||||||
modules = {
|
|
||||||
pipewire.enable = true;
|
|
||||||
wpa_supplicant.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# User accounts
|
|
||||||
machine.users.jan = {
|
|
||||||
sudo = true;
|
|
||||||
configuration = ../users/jan.nix;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
43
merged.nix
43
merged.nix
|
@ -5,9 +5,9 @@
|
||||||
{ config, lib, pkgs, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
# nixvim = import (builtins.fetchGit {
|
nixvim = import (builtins.fetchGit {
|
||||||
# url = "https://github.com/nix-community/nixvim";
|
url = "https://github.com/nix-community/nixvim";
|
||||||
# });
|
});
|
||||||
# stylix = import (pkgs.fetchFromGitHub {
|
# stylix = import (pkgs.fetchFromGitHub {
|
||||||
# owner = "danth";
|
# owner = "danth";
|
||||||
# repo = "stylix";
|
# repo = "stylix";
|
||||||
|
@ -131,12 +131,10 @@ in {
|
||||||
# };
|
# };
|
||||||
|
|
||||||
# Set up networking
|
# Set up networking
|
||||||
# networking.wireless.userControlled.enable = true;
|
networking.wireless.userControlled.enable = true;
|
||||||
# networking.hostName = "20212060"; # Define your hostname.
|
networking.hostName = "20212060"; # Define your hostname.
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
# networking.wireless.allowAuxiliaryImperativeNetworks = true;
|
networking.wireless.allowAuxiliaryImperativeNetworks = true;
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = true;
|
|
||||||
|
|
||||||
# Set up graphics
|
# Set up graphics
|
||||||
hardware.graphics.enable32Bit = true;
|
hardware.graphics.enable32Bit = true;
|
||||||
|
@ -160,10 +158,10 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
# Set up tailscale
|
# Set up tailscale
|
||||||
# services.tailscale = {
|
services.tailscale = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# useRoutingFeatures = "client";
|
useRoutingFeatures = "client";
|
||||||
# };
|
};
|
||||||
|
|
||||||
# Set time zone.
|
# Set time zone.
|
||||||
# time.timeZone = "Europe/Amsterdam";
|
# time.timeZone = "Europe/Amsterdam";
|
||||||
|
@ -175,11 +173,11 @@ in {
|
||||||
# nixpkgs.config.allowUnfree = true;
|
# nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# Enable sound
|
# Enable sound
|
||||||
# services.pipewire = {
|
services.pipewire = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# alsa.enable = true;
|
alsa.enable = true;
|
||||||
# pulse.enable = true;
|
pulse.enable = true;
|
||||||
# };
|
};
|
||||||
|
|
||||||
# Set up input
|
# Set up input
|
||||||
services.libinput.enable = true;
|
services.libinput.enable = true;
|
||||||
|
@ -199,7 +197,7 @@ in {
|
||||||
# security.pam.services.waylock = {};
|
# security.pam.services.waylock = {};
|
||||||
|
|
||||||
# Enable programs
|
# Enable programs
|
||||||
# programs.river.enable = true;
|
programs.river.enable = true;
|
||||||
|
|
||||||
xdg.portal = {
|
xdg.portal = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@ -211,7 +209,7 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
# Gamer moment
|
# Gamer moment
|
||||||
# programs.steam.enable = true;
|
programs.steam.enable = true;
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
# users.users.jan = {
|
# users.users.jan = {
|
||||||
|
@ -222,7 +220,10 @@ in {
|
||||||
# home-manager.backupFileExtension = "bak";
|
# home-manager.backupFileExtension = "bak";
|
||||||
|
|
||||||
# Global neovim
|
# Global neovim
|
||||||
# pr`
|
programs.neovim = {
|
||||||
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
};
|
||||||
|
|
||||||
# dconf
|
# dconf
|
||||||
programs.dconf.enable = true;
|
programs.dconf.enable = true;
|
||||||
|
|
|
@ -1,23 +1,9 @@
|
||||||
{ lib, config, pkgs, ... }:
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
with lib; {
|
{
|
||||||
imports = [
|
imports = [
|
||||||
# Import modules
|
./greetd/default.nix
|
||||||
./greeter/greetd/default.nix
|
./tuigreet/default.nix
|
||||||
./greeter/greetd/tuigreet.nix
|
|
||||||
./locale/default.nix
|
|
||||||
./neovim/default.nix
|
|
||||||
./sound/pipewire.nix
|
|
||||||
./users/default.nix
|
./users/default.nix
|
||||||
./unfree/default.nix
|
|
||||||
./vpn/tailscale.nix
|
|
||||||
./wifi/wpa_supplicant.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
config.modules = {
|
|
||||||
# Enable default modules
|
|
||||||
neovim.enable = mkDefault true;
|
|
||||||
tuigreet.enable = mkDefault true;
|
|
||||||
tailscale.enable = mkDefault true;
|
|
||||||
};
|
|
||||||
}
|
}
|
|
@ -1,9 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
config = {
|
|
||||||
time.timeZone = "Europe/Amsterdam";
|
|
||||||
i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
console.keyMap = "us";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.modules.neovim;
|
|
||||||
in {
|
|
||||||
options.modules.neovim = {
|
|
||||||
enable = mkEnableOption "neovim";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
programs.neovim = {
|
|
||||||
enable = true;
|
|
||||||
defaultEditor = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.modules.pipewire;
|
|
||||||
in {
|
|
||||||
options.modules.pipewire = {
|
|
||||||
enable = mkEnableOption "pipewire";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.modules.unfree;
|
|
||||||
in {
|
|
||||||
options.modules.unfree = {
|
|
||||||
enable = mkEnableOption "unfree";
|
|
||||||
allowedPackages = mkOption {
|
|
||||||
type = types.listOf types.str;
|
|
||||||
default = [];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (getName pkg) cfg.allowedPackages;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -41,8 +41,8 @@ in {
|
||||||
# Import home manager
|
# Import home manager
|
||||||
<home-manager/nixos>
|
<home-manager/nixos>
|
||||||
|
|
||||||
# Import system wide configuration required for user modules
|
# Import system configuration setup
|
||||||
./modules/systemwide/default.nix
|
# ./system.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
options = {
|
options = {
|
||||||
|
|
|
@ -1,22 +1,19 @@
|
||||||
{ input, pkgs, config, ... }:
|
{ input, pkgs, config, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
# Set the state version
|
||||||
|
home.stateVersion = "24.05";
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
# Import all modules
|
# Import all modules
|
||||||
./desktop/default.nix
|
./desktop/default.nix
|
||||||
./discord/default.nix
|
|
||||||
./feishin/default.nix
|
./feishin/default.nix
|
||||||
./firefox/default.nix
|
./firefox/default.nix
|
||||||
./obsidian/default.nix
|
./obsidian/default.nix
|
||||||
./shell/bash.nix
|
./shell/bash.nix
|
||||||
./shell/fish.nix
|
./shell/fish.nix
|
||||||
./steam/default.nix
|
|
||||||
./theming/default.nix
|
./theming/default.nix
|
||||||
./vscode/default.nix
|
./vscode/default.nix
|
||||||
./winbox/default.nix
|
|
||||||
./zathura/default.nix
|
./zathura/default.nix
|
||||||
|
|
||||||
# Import unfree helper
|
|
||||||
../../unfree/default.nix
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,9 +6,17 @@ let
|
||||||
in {
|
in {
|
||||||
options.modules.waylock = {
|
options.modules.waylock = {
|
||||||
enable = mkEnableOption "waylock";
|
enable = mkEnableOption "waylock";
|
||||||
|
system = mkOption {
|
||||||
|
type = types.attrsOf types.anything;
|
||||||
|
description = "System wide configuration to apply if module is enabled";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
modules.waylock.system = mkForce {
|
||||||
|
security.pam.services.waylock = {};
|
||||||
|
};
|
||||||
|
|
||||||
home.packages = mkIf cfg.enable (with pkgs; [
|
home.packages = mkIf cfg.enable (with pkgs; [
|
||||||
waylock
|
waylock
|
||||||
]);
|
]);
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
{config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.modules.discord;
|
|
||||||
in {
|
|
||||||
options.modules.discord = {
|
|
||||||
enable = mkEnableOption "discord";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
modules.unfree.allowedPackages = [ "discord" ];
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
discord
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,14 +1,11 @@
|
||||||
{config, lib, pkgs, ... }:
|
{config, lib, pkgs, ... }:
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
let
|
||||||
cfg = config.modules.obsidian;
|
cfg = config.modules.obsidian;
|
||||||
in {
|
in {
|
||||||
options.modules.obsidian = {
|
options.modules.obsidian.enable = lib.mkEnableOption "obsidian";
|
||||||
enable = mkEnableOption "obsidian";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
obsidian
|
obsidian
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
{config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib; {
|
|
||||||
options.modules.steam = {
|
|
||||||
enable = mkEnableOption "steam";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# Import systemwide configuration files.
|
|
||||||
./river.nix
|
|
||||||
./steam.nix
|
|
||||||
./waylock.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
enabled = any (user: user.modules.river.enable) (attrValues config.home-manager.users);
|
|
||||||
in {
|
|
||||||
config = mkIf enabled {
|
|
||||||
programs.river.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
enabled = any (user: user.modules.steam.enable) (attrValues config.home-manager.users);
|
|
||||||
in {
|
|
||||||
config = mkIf enabled {
|
|
||||||
programs.steam.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
enabled = any (user: user.modules.waylock.enable) (attrValues config.home-manager.users);
|
|
||||||
in {
|
|
||||||
config = mkIf enabled {
|
|
||||||
security.pam.services.waylock = {};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -6,8 +6,6 @@ in {
|
||||||
options.modules.vscode.enable = lib.mkEnableOption "vscode";
|
options.modules.vscode.enable = lib.mkEnableOption "vscode";
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
modules.unfree.allowedPackages = [ "vscode" ];
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
vscode
|
vscode
|
||||||
];
|
];
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
{config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.modules.winbox;
|
|
||||||
in {
|
|
||||||
options.modules.winbox = {
|
|
||||||
enable = mkEnableOption "winbox";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
modules.unfree.allowedPackages = [ "winbox" ];
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
winbox
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
{ lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
let
|
||||||
|
users = config.home-manager.users;
|
||||||
|
allModules = flatten (map (user: (attrValues user.modules)) (attrValues users));
|
||||||
|
modules = filter (module: module?system && module?enable) allModules;
|
||||||
|
configs = map (module: module.system) modules;
|
||||||
|
combined = (foldl (a: b: recursiveUpdate a b) {} configs);
|
||||||
|
in {
|
||||||
|
# Add the combined systemwide config required by the user modules.
|
||||||
|
config = combined;
|
||||||
|
}
|
|
@ -1,17 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.modules.tailscale;
|
|
||||||
in {
|
|
||||||
options.modules.tailscale = {
|
|
||||||
enable = mkEnableOption "tailscale";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
services.tailscale = {
|
|
||||||
enable = true;
|
|
||||||
useRoutingFeatures = "client";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
let
|
|
||||||
cfg = config.modules.wpa_supplicant;
|
|
||||||
in {
|
|
||||||
options.modules.wpa_supplicant = {
|
|
||||||
enable = mkEnableOption "wpa_supplicant";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
networking.wireless = {
|
|
||||||
enable = true;
|
|
||||||
userControlled.enable = true;
|
|
||||||
allowAuxiliaryImperativeNetworks = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
machine.laptop = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
description = "Whether the current system is a laptop.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
config = {
|
||||||
|
system.stateVersion = "24.05";
|
||||||
|
|
||||||
|
machine.users.jan = {
|
||||||
|
sudo = true;
|
||||||
|
configuration = ./users/jan.nix;
|
||||||
|
};
|
||||||
|
|
||||||
|
machine.users.second = {
|
||||||
|
sudo = false;
|
||||||
|
configuration = ./users/jan.nix;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -11,6 +11,9 @@
|
||||||
# State version
|
# State version
|
||||||
home.stateVersion = "24.05";
|
home.stateVersion = "24.05";
|
||||||
|
|
||||||
|
# Allow unfree software such as vscode
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
modules = {
|
modules = {
|
||||||
# Window manager
|
# Window manager
|
||||||
river.enable = true;
|
river.enable = true;
|
||||||
|
@ -22,11 +25,6 @@
|
||||||
vscode.enable = true;
|
vscode.enable = true;
|
||||||
zathura.enable = true;
|
zathura.enable = true;
|
||||||
fish.enable = true;
|
fish.enable = true;
|
||||||
winbox.enable = true;
|
|
||||||
discord.enable = true;
|
|
||||||
|
|
||||||
# Enable unfree
|
|
||||||
unfree.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
theming.themes.gruvbox = {
|
theming.themes.gruvbox = {
|
||||||
|
|
|
@ -18,11 +18,11 @@ in {
|
||||||
# Packages
|
# Packages
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# Programs
|
# Programs
|
||||||
# vscode
|
vscode
|
||||||
# feishin
|
feishin
|
||||||
# discord
|
discord
|
||||||
# obsidian
|
obsidian
|
||||||
# winbox
|
winbox
|
||||||
|
|
||||||
# Utilities
|
# Utilities
|
||||||
pulsemixer
|
pulsemixer
|
||||||
|
|
Loading…
Reference in New Issue