Switched To A New/Modified Structure

Based heavily on https://github.com/nmasur/dotfiles
This commit is contained in:
Annika Merris 2024-05-17 08:04:19 -04:00
parent 634a129840
commit 99a16590b3
25 changed files with 495 additions and 703 deletions

View file

@ -0,0 +1,10 @@
{ ... }:
{
imports = [
./discord.nix
./element.nix
./firefox.nix
./netbird.nix
./prusa-slicer.nix
];
}

View file

@ -0,0 +1,25 @@
{ config, pkgs, lib, ... }:
{
options = {
discord = {
enable = lib.mkEnableOption {
description = "Enable Discord";
default = false;
};
};
};
config = lib.mkIf (config.gui.enable && config.discord.enable) {
home-manager.users.${config.user} = {
home.packages = [
pkgs.discord
];
xdg.configFile."discord/settings.json".text = ''
{
"OPEN_ON_STARTUP": true,
"MINIMIZE_TO_TRAY": false,
"SKIP_HOST_UPDATE": true
}
'';
};
};
}

View file

@ -0,0 +1,18 @@
{ config, pkgs, lib, ...}:
{
options = {
element = {
enable = lib.mkEnableOption {
description = "Enable Element";
default = false;
};
};
};
config = lib.mkIf (config.gui.enable && config.element.enable) {
home-manager.users.${config.user} = {
home.packages = [
pkgs.element-desktop
];
};
};
}

View file

@ -0,0 +1,27 @@
{ config, pkgs, lib, ... }:
{
options = {
firefox = {
enable = lib.mkEnableOption {
description = "Enable Firefox";
default = false;
};
};
};
config = lib.mkIf (config.gui.enable && config.firefox.enable) {
home-manager.users.${config.user} = {
programs.firefox = {
enable = true;
policies = {
ExtensionSettings = {
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
install_url = "https://addons.mozilla.org/firefox/downloads/latest/bitwarden-password-manager/latest.xpi";
installation_mode = "normal_installed";
default_area = "navbar";
};
};
};
};
};
};
}

View file

@ -0,0 +1,28 @@
{ config, pkgs, lib, ... }:
{
options = {
netbird = {
enable = lib.mkEnableOption {
description = "Enable Netbird";
default = false;
};
};
};
config = lib.mkIf (config.netbird.enable)
(lib.mkMerge [
(lib.mkIf (config.gui.enable) {
home-manager.users.${config.user} = {
home.packages = [
pkgs.netbird-ui
];
};
})
(lib.mkIf (!config.gui.enable) {
home-manager.users.${config.user} = {
home.packages = [
pkgs.netbird
];
};
})
]);
}

View file

@ -0,0 +1,18 @@
{ config, pkgs, lib, ... }:
{
options = {
prusa-slicer = {
enable = lib.mkEnableOption {
description = "Enable Prusa Slicer";
default = false;
};
};
};
config = lib.mkIf (config.gui.enable && config.prusa-slicer.enable) {
home-manager.users.${config.user} = {
home.packages = [
pkgs.prusa-slicer
];
};
};
}

View file

@ -0,0 +1,40 @@
{ config, lib, pkgs, ...}:
{
imports = [
./applications
./programming
./utilities
];
options = {
user = lib.mkOption {
type = lib.types.str;
description = "Primary user of the system";
};
fullName = lib.mkOption {
type = lib.types.str;
description = "Puny Hooman readable name of the user";
};
gui = {
enable = lib.mkEnableOption {
description = "Enable graphics.";
default = false;
};
};
};
config =
let
stateVersion = "23.11";
in
{
environment.systemPackages = with pkgs; [
vim
wget
curl
python3
age
sops
];
home-manager.users.${config.user}.home.stateVersion = stateVersion;
home-manager.users.root.home.stateVersion = stateVersion;
};
}

View file

@ -0,0 +1,7 @@
{ ... }:
{
imports = [
./nixpkgs-fmt.nix
./vscode.nix
];
}

View file

@ -0,0 +1,18 @@
{ config, pkgs, lib, ...}:
{
options = {
nixpkgs-fmt = {
enable = lib.mkEnableOption {
description = "Enable nixpkgs-fmt";
default = false;
};
};
};
config = lib.mkIf (config.nixpkgs-fmt.enable) {
home-manager.users.${config.user} = {
home.packages = [
pkgs.nixpkgs-fmt
];
};
};
}

View file

@ -0,0 +1,31 @@
{ config, pkgs, lib, ... }:
{
options = {
vscode = {
enable = lib.mkEnableOption {
description = "Enable Visual Studio Code";
default = false;
};
};
};
config = lib.mkIf (config.gui.enable && config.vscode.enable) {
home-manager.users.${config.user} = {
nixpkgs.config.allowUnfree = true;
programs.vscode = {
enable = true;
extensions = with pkgs.vscode-extensions; [
bbenoist.nix
catppuccin.catppuccin-vsc
];
userSettings = {
"workbench.colorTheme" = "Catppuccin Mocha";
"editor.tabSize" = 2;
"editor.insertSpaces" = true;
"git.autofetch" = true;
# "git.enableSmartCommit" = true;
"git.confirmSync" = false;
};
};
};
};
}

View file

@ -0,0 +1,6 @@
{ ... }:
{
imports = [
./git.nix
];
}

View file

@ -0,0 +1,28 @@
{ config, pkgs, lib, ... }:
let
home-packages = config.home-manager.users.${config.user}.home.packages;
in
{
options = {
gitName = lib.mkOption {
type = lib.types.str;
description = "Name to use for git commits";
};
gitEmail = lib.mkOption {
type = lib.types.str;
description = "Email to use for git commits";
};
};
config = {
home-manager.users.root.programs.git = {
enable = true;
};
home-manager.users.${config.user} = {
programs.git = {
enable = true;
userName = config.gitName;
userEmail = config.gitEmail;
};
};
};
}

View file

@ -0,0 +1,6 @@
{ ... }:
{
imports = [
./hardware
];
}

View file

@ -0,0 +1,28 @@
{ config, pkgs, lib, ... }:
{
boot.loader = lib.mkIf (config.physical) {
grub = {
enable = true;
efiSupport = true;
useOSProber = true;
gfxmodeEfi = "1920x1080";
configurationLimit = 25;
device = "nodev";
# Display menu indefinitely if holding shift key
extraConfig = ''
if keystatus --shift; then
set timeout=-1
else
set timeout=3
fi
'';
};
efi.canTouchEfiVariables = true;
};
boot.supportedFilesystems = lib.mkIf config.physical [ "ntfs" ];
boot.kernelPackages = lib.mkDefault pkgs.linuxPackages_latest;
}

View file

@ -0,0 +1,11 @@
{ lib, ... }:
{
imports = [
./boot.nix
];
options = {
physical = lib.mkEnableOption "Whether this machine is a physical device.";
server = lib.mkEnableOption "Whether this machine is a server.";
};
}