repo restructure

This commit is contained in:
TheWanderingCrow 2024-12-24 12:22:47 -05:00
parent 1c9fd8d611
commit 62bec7e920
13 changed files with 218 additions and 193 deletions

View file

@ -1,190 +1,19 @@
{
config,
lib,
pkgs,
inputs,
...
}: {
options = {
module = {
enable = lib.mkEnableOption "enables packages";
core.enable = lib.mkEnableOption "enables required packages";
gui.enable = lib.mkEnableOption "enables gui+DE packages";
wayland.enable = lib.mkEnableOption "enables wayland packages";
x11.enable = lib.mkEnableOption "enables x11 packages";
programming.enable = lib.mkEnableOption "enables programming packages";
hacking.enable = lib.mkEnableOption "enables hacking packages";
mudding.enable = lib.mkEnableOption "enables mudding packages";
gaming.enable = lib.mkEnableOption "enables gaming packages";
appdevel.enable = lib.mkEnableOption "enables app development in flutter";
vr.enable = lib.mkEnableOption "enables VR utilities";
art.enable = lib.mkEnableOption "enabled graphical art stuff";
};
{pkgs}: {
system.stateVersion = "24.05";
time.timeZone = "America/New_York";
nix.settings.experimental-features = ["flakes" "nix-command"];
nix.settings.trusted-users = ["@wheel"];
user = {
enable = lib.mkEnableOption "enables users";
crow = {
enable = lib.mkEnableOption "enable crow";
home.enable = lib.mkEnableOption "enable home configuration";
};
overseer = {
enable = lib.mkEnableOption "enable container overseer user";
};
};
environment.variables = {
EDITOR = "nvim";
VISUAL = "nvim";
NIXPKGS_ALLOW_UNFREE = 1;
};
config = {
system.stateVersion = "24.05";
time.timeZone = "America/New_York";
nix.settings.experimental-features = ["flakes" "nix-command"];
nix.settings.trusted-users = ["@wheel"];
environment.variables = {
EDITOR = "nvim";
VISUAL = "nvim";
};
security.sudo.wheelNeedsPassword = false;
user = {
enable = lib.mkDefault true;
crow = {
enable = lib.mkDefault false;
home.enable = lib.mkDefault config.user.crow.enable;
};
overseer = {
enable = lib.mkDefault false;
};
};
fonts.packages = with pkgs; [
font-awesome
nerd-fonts.noto
nerd-fonts.hack
nerd-fonts.jetbrains-mono
];
module = {
enable = lib.mkDefault true;
core.enable = lib.mkDefault true;
gui.enable = lib.mkDefault false;
programming.enable = lib.mkDefault false;
wayland.enable = lib.mkDefault false;
x11.enable = lib.mkDefault false;
hacking.enable = lib.mkDefault false;
mudding.enable = lib.mkDefault false;
gaming.enable = lib.mkDefault false;
appdevel.enable = lib.mkDefault false;
vr.enable = lib.mkDefault false;
art.enable = lib.mkDefault false;
};
desktop = {
sway.enable = lib.mkDefault false;
i3.enable = lib.mkDefault false;
};
xdg.portal = {
xdgOpenUsePortal = true;
enable = true;
wlr.enable = true;
lxqt.enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-wlr
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-kde
];
};
programs.zsh = {
enable = true;
autosuggestions = {
enable = true;
async = true;
};
syntaxHighlighting = {
enable = true;
};
};
programs.starship = {
enable = true;
settings = {
format = "[](#a3aed2)[ ](bg:#a3aed2 fg:#090c0c)[](bg:#769ff0 fg:#a3aed2)$directory[](fg:#769ff0 bg:#394260)$git_branch$git_status[](fg:#394260 bg:#212736)$php[](fg:#212736 bg:#1d2230)$time[ ](fg:#1d2230)$character";
directory = {
style = "fg:#e3e5e5 bg:#769ff0";
format = "[ $path ]($style)";
truncation_length = 3;
truncation_symbol = "/";
};
git_branch = {
symbol = "";
style = "bg:#394260";
format = "[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)";
};
git_status = {
style = "bg:#394260";
format = "[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)";
};
php = {
symbol = "";
style = "bg:#212736";
format = "[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)";
};
time = {
disabled = false;
time_format = "%R"; # Hour:Minute Format
style = "bg:#1d2230";
format = "[[ $time ](fg:#a0a9cb bg:#1d2230)]($style)";
};
};
};
users.defaultUserShell = pkgs.zsh;
# Configure pulseaudio
hardware.graphics.enable32Bit = config.module.gaming.enable;
hardware.pulseaudio.support32Bit = config.module.gaming.enable;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
services.keyd = {
enable = true;
keyboards.default = {
ids = ["*"];
extraConfig = ''
[global]
default_layout = main
[main:layout]
capslock = layer(standardL2)
[standardL2]
w = up
s = down
a = left
d = right
b = C-b
space = playpause
. = nextsong
, = previoussong
[ = delete
] = end
escape = ~
home = end
'';
};
};
};
fonts.packages = with pkgs; [
font-awesome
nerd-fonts.noto
nerd-fonts.hack
nerd-fonts.jetbrains-mono
];
}

View file

@ -1,14 +1,11 @@
{
lib,
config,
...
}: {
imports = [
./core.nix
./boot.nix
./networking.nix
./options.nix
./programs.nix
./users
./desktops
./hardware
./security
];
}

View file

@ -0,0 +1,9 @@
{
hardware.pulseaudio.support32Bit = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
}

View file

@ -0,0 +1,11 @@
{
lib,
config,
...
}: {
imports = [
./network.nix
./audio.nix
./boot.nix
];
}

View file

@ -1,4 +1,3 @@
{
networking.networkmanager.enable = true;
networking.firewall.enable = false;
}

68
modules/options.nix Normal file
View file

@ -0,0 +1,68 @@
{
config,
lib,
...
}: {
# Start definitions for mkEnableOptions
options = {
module = {
enable = lib.mkEnableOption "enables packages";
core.enable = lib.mkEnableOption "enables required packages";
gui.enable = lib.mkEnableOption "enables gui+DE packages";
wayland.enable = lib.mkEnableOption "enables wayland packages";
x11.enable = lib.mkEnableOption "enables x11 packages";
programming.enable = lib.mkEnableOption "enables programming packages";
hacking.enable = lib.mkEnableOption "enables hacking packages";
mudding.enable = lib.mkEnableOption "enables mudding packages";
gaming.enable = lib.mkEnableOption "enables gaming packages";
appdevel.enable = lib.mkEnableOption "enables app development in flutter";
vr.enable = lib.mkEnableOption "enables VR utilities";
art.enable = lib.mkEnableOption "enabled graphical art stuff";
};
user = {
enable = lib.mkEnableOption "enables users";
crow = {
enable = lib.mkEnableOption "enable crow";
home.enable = lib.mkEnableOption "enable home configuration";
};
overseer = {
enable = lib.mkEnableOption "enable container overseer user";
};
};
};
# Set default option states in config
config = {
user = {
enable = lib.mkDefault true;
crow = {
enable = lib.mkDefault false;
home.enable = lib.mkDefault config.user.crow.enable;
};
overseer = {
enable = lib.mkDefault false;
};
};
module = {
enable = lib.mkDefault true;
core.enable = lib.mkDefault true;
gui.enable = lib.mkDefault false;
programming.enable = lib.mkDefault false;
wayland.enable = lib.mkDefault false;
x11.enable = lib.mkDefault false;
hacking.enable = lib.mkDefault false;
mudding.enable = lib.mkDefault false;
gaming.enable = lib.mkDefault false;
appdevel.enable = lib.mkDefault false;
vr.enable = lib.mkDefault false;
art.enable = lib.mkDefault false;
};
desktop = {
sway.enable = lib.mkDefault false;
i3.enable = lib.mkDefault false;
};
};
}

View file

@ -0,0 +1,5 @@
{
imports = [
./users.nix
];
}

View file

@ -0,0 +1,3 @@
{
security.sudo.wheelNeedsPassword = false;
}

View file

@ -0,0 +1,7 @@
{
imports = [
./keyd.nix
./usershell.nix
./xdg.nix
];
}

36
modules/software/keyd.nix Normal file
View file

@ -0,0 +1,36 @@
{
services.keyd = {
enable = true;
keyboards.default = {
ids = ["*"];
extraConfig = ''
[global]
default_layout = main
[main:layout]
capslock = layer(standardL2)
[standardL2]
w = up
s = down
a = left
d = right
b = C-b
space = playpause
. = nextsong
, = previoussong
[ = delete
] = end
escape = ~
home = end
'';
};
};
}

View file

@ -0,0 +1,48 @@
{pkgs}: {
programs.zsh = {
enable = true;
autosuggestions = {
enable = true;
async = true;
};
syntaxHighlighting = {
enable = true;
};
};
programs.starship = {
enable = true;
settings = {
format = "[](#a3aed2)[ ](bg:#a3aed2 fg:#090c0c)[](bg:#769ff0 fg:#a3aed2)$directory[](fg:#769ff0 bg:#394260)$git_branch$git_status[](fg:#394260 bg:#212736)$php[](fg:#212736 bg:#1d2230)$time[ ](fg:#1d2230)$character";
directory = {
style = "fg:#e3e5e5 bg:#769ff0";
format = "[ $path ]($style)";
truncation_length = 3;
truncation_symbol = "/";
};
git_branch = {
symbol = "";
style = "bg:#394260";
format = "[[ $symbol $branch ](fg:#769ff0 bg:#394260)]($style)";
};
git_status = {
style = "bg:#394260";
format = "[[($all_status$ahead_behind )](fg:#769ff0 bg:#394260)]($style)";
};
php = {
symbol = "";
style = "bg:#212736";
format = "[[ $symbol ($version) ](fg:#769ff0 bg:#212736)]($style)";
};
time = {
disabled = false;
time_format = "%R"; # Hour:Minute Format
style = "bg:#1d2230";
format = "[[ $time ](fg:#a0a9cb bg:#1d2230)]($style)";
};
};
};
users.defaultUserShell = pkgs.zsh;
}

13
modules/software/xdg.nix Normal file
View file

@ -0,0 +1,13 @@
{pkgs}: {
xdg.portal = {
xdgOpenUsePortal = true;
enable = true;
wlr.enable = true;
lxqt.enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-wlr
pkgs.xdg-desktop-portal-gtk
pkgs.xdg-desktop-portal-kde
];
};
}