alejandra formatting ftw

This commit is contained in:
TheWanderingCrow 2024-11-29 10:42:59 -05:00
parent ab483276f1
commit 5e29a554ea
22 changed files with 738 additions and 651 deletions

View file

@ -1,35 +1,35 @@
{
description = "Entry point for NixOS";
description = "Entry point for NixOS";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nur.url = "github:nix-community/NUR";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
nixvim.url = "git+https://git.wanderingcrow.net/TheWanderingCrow/nvix";
alejandra.url = "github:kamadorueda/alejandra/3.1.0";
alejandra.inputs.nixpkgs.follows = "nixpkgs";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nur.url = "github:nix-community/NUR";
home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
nixvim.url = "git+https://git.wanderingcrow.net/TheWanderingCrow/nvix";
alejandra.url = "github:kamadorueda/alejandra/3.1.0";
alejandra.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = inputs: let
system = "x86_64-linux";
inherit (inputs.nixpkgs) lib;
overlays = [inputs.nur.overlay];
pkgs = import inputs.nixpkgs {
inherit system overlays;
config.allowUnfree = true;
config.android_sdk.accept_license = true;
};
outputs = inputs: let
system = "x86_64-linux";
inherit (inputs.nixpkgs) lib;
overlays = [ inputs.nur.overlay ];
pkgs = import inputs.nixpkgs {
inherit system overlays;
config.allowUnfree = true;
config.android_sdk.accept_license = true;
};
ns = host: (lib.nixosSystem {
specialArgs = {inherit pkgs inputs;};
modules = [
(./hosts + "/${host}")
inputs.home-manager.nixosModules.home-manager
];
});
in {nixosConfigurations = lib.attrsets.genAttrs [ "Parzival" "Parzival-Mobile" "WCE-Overseer" ] ns;};
ns = host: (lib.nixosSystem {
specialArgs = {inherit pkgs inputs;};
modules = [
(./hosts + "/${host}")
inputs.home-manager.nixosModules.home-manager
];
});
in {nixosConfigurations = lib.attrsets.genAttrs ["Parzival" "Parzival-Mobile" "WCE-Overseer"] ns;};
}

View file

@ -1,18 +1,22 @@
{config, pkgs, ...}:{
imports = [
{
config,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix
../../modules
];
];
networking.hostName = "Parzival-Mobile";
networking.hostName = "Parzival-Mobile";
user.crow.enable = true;
user.crow.enable = true;
desktop.sway.enable = true;
desktop.sway.enable = true;
module.gui.enable = true;
module.wayland.enable = true;
module.programming.enable = true;
module.hacking.enable = true;
module.mudding.enable = true;
module.gui.enable = true;
module.wayland.enable = true;
module.programming.enable = true;
module.hacking.enable = true;
module.mudding.enable = true;
}

View file

@ -1,32 +1,36 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/0e8c3f30-2abb-4687-b541-3f6dfdb2fa72";
fsType = "ext4";
};
fileSystems."/" = {
device = "/dev/disk/by-uuid/0e8c3f30-2abb-4687-b541-3f6dfdb2fa72";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/E6CB-9DA5";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/E6CB-9DA5";
fsType = "vfat";
options = ["fmask=0022" "dmask=0022"];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/928718de-b495-4a7c-b9d4-eb491b6c8253"; }
];
swapDevices = [
{device = "/dev/disk/by-uuid/928718de-b495-4a7c-b9d4-eb491b6c8253";}
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,19 +1,24 @@
{lib, config, pkgs, ...}:{
imports = [
{
lib,
config,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix
../../modules
];
];
networking.hostName = "Parzival-Work";
networking.hostName = "Parzival-Work";
user.crow.enable = true;
user.crow.enable = true;
desktop.sway.enable = true;
desktop.i3.enable = true;
desktop.sway.enable = true;
desktop.i3.enable = true;
module.gui.enable = true;
module.programming.enable = true;
module.wayland.enable = true;
module.x11.enable = true;
module.mudding.enable = true;
module.gui.enable = true;
module.programming.enable = true;
module.wayland.enable = true;
module.x11.enable = true;
module.mudding.enable = true;
}

View file

@ -1,25 +1,30 @@
{lib, config, pkgs, ...}:{
imports = [
{
lib,
config,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix
../../modules
];
];
networking.hostName = "Parzival";
user.crow.enable = true;
networking.hostName = "Parzival";
desktop.sway.enable = true;
desktop.i3.enable = true;
user.crow.enable = true;
module.gui.enable = true;
module.programming.enable = true;
module.hacking.enable = true;
module.wayland.enable = true;
module.x11.enable = true;
module.mudding.enable = true;
module.gaming.enable = true;
module.appdevel.enable = true;
module.vr.enable = true;
desktop.sway.enable = true;
desktop.i3.enable = true;
virtualisation.vmware.host.enable = true;
module.gui.enable = true;
module.programming.enable = true;
module.hacking.enable = true;
module.wayland.enable = true;
module.x11.enable = true;
module.mudding.enable = true;
module.gaming.enable = true;
module.appdevel.enable = true;
module.vr.enable = true;
virtualisation.vmware.host.enable = true;
}

View file

@ -1,47 +1,50 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
fileSystems."/" = {
device = "/dev/disk/by-label/nixos";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-label/boot";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
fileSystems."/boot" = {
device = "/dev/disk/by-label/boot";
fsType = "vfat";
options = ["fmask=0022" "dmask=0022"];
};
swapDevices = [ ];
swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp8s0.useDHCP = lib.mkDefault true;
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp8s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.amdgpu = {
initrd.enable = true;
amdvlk.enable = true;
opencl.enable = true;
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.amdgpu = {
initrd.enable = true;
amdvlk.enable = true;
opencl.enable = true;
};
hardware.rtl-sdr.enable = true;
hardware.rtl-sdr.enable = true;
}

View file

@ -1,13 +1,17 @@
{lib, config, pkgs, ...}:{
imports = [
{
lib,
config,
pkgs,
...
}: {
imports = [
../../modules
];
];
networking.hostName = "WCE-Overseer";
proxmoxLXC.manageNetwork = true;
networking.hostName = "WCE-Overseer";
proxmoxLXC.manageNetwork = true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
user.overseer.enable = true;
user.overseer.enable = true;
}

View file

@ -1,8 +1,8 @@
{
boot.loader = {
systemd-boot.enable = true;
efi = {
canTouchEfiVariables = true;
};
};
boot.loader = {
systemd-boot.enable = true;
efi = {
canTouchEfiVariables = true;
};
};
}

View file

@ -1,184 +1,183 @@
{
config,
lib,
pkgs,
inputs,
...
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";
};
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";
};
};
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";
};
config = {
system.stateVersion = "24.05";
time.timeZone = "America/New_York";
nix.settings.experimental-features = ["flakes" "nix-command"];
environment.variables = {
EDITOR = "nvim";
VISUAL = "nvim";
};
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
nerdfonts
];
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;
};
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
'';
};
};
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";
};
};
};
config = {
system.stateVersion = "24.05";
time.timeZone = "America/New_York";
nix.settings.experimental-features = ["flakes" "nix-command"];
environment.variables = {
EDITOR = "nvim";
VISUAL = "nvim";
};
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
nerdfonts
];
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;
};
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
'';
};
};
};
}

View file

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

View file

@ -1,10 +1,13 @@
{ lib, config, ...}: {
imports = [
# Wayland desktops here
./wayland/sway.nix
# X11 desktops here
./x11/i3.nix
];
}
{
lib,
config,
...
}: {
imports = [
# Wayland desktops here
./wayland/sway.nix
# X11 desktops here
./x11/i3.nix
];
}

View file

@ -1,18 +1,23 @@
{ inputs, pkgs, lib, config, ...}: {
options.desktop.sway.enable = lib.mkEnableOption "enables sway";
{
inputs,
pkgs,
lib,
config,
...
}: {
options.desktop.sway.enable = lib.mkEnableOption "enables sway";
config = {
programs.sway = lib.mkIf config.desktop.sway.enable {
enable = true;
xwayland.enable = true;
};
programs.dconf.enable = true;
config = {
programs.sway = lib.mkIf config.desktop.sway.enable {
enable = true;
xwayland.enable = true;
};
programs.dconf.enable = true;
};
config.environment = lib.mkIf config.desktop.sway.enable {
sessionVariables = {
NIXOS_OZONE_WL = "1";
};
config.environment = lib.mkIf config.desktop.sway.enable {
sessionVariables = {
NIXOS_OZONE_WL = "1";
};
};
}

View file

@ -1,12 +1,18 @@
{ inputs, pkgs, lib, config, ...}: {
options.desktop.i3.enable = lib.mkEnableOption "enables i3";
{
inputs,
pkgs,
lib,
config,
...
}: {
options.desktop.i3.enable = lib.mkEnableOption "enables i3";
config = lib.mkIf config.desktop.i3.enable {
services.xserver = {
displayManager.startx.enable = true;
windowManager.i3 = {
enable = true;
};
};
config = lib.mkIf config.desktop.i3.enable {
services.xserver = {
displayManager.startx.enable = true;
windowManager.i3 = {
enable = true;
};
};
};
}

View file

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

View file

@ -1,152 +1,168 @@
{ inputs, pkgs, lib, config, ...}: {
environment.systemPackages = with pkgs;
(
# Core packages
if config.module.core.enable
then [
vim
wget
screen
git
curl
tmux
pulseaudio
keyd
unar
alejandra
] else []
)
++ (
if config.module.gui.enable
then [
# Writing
hunspellDicts.en-us
libreoffice
hunspell
{
inputs,
pkgs,
lib,
config,
...
}: {
environment.systemPackages = with pkgs;
(
# Core packages
if config.module.core.enable
then [
vim
wget
screen
git
curl
tmux
pulseaudio
keyd
unar
alejandra
]
else []
)
++ (
if config.module.gui.enable
then [
# Writing
hunspellDicts.en-us
libreoffice
hunspell
# Audio
pavucontrol
pulsemixer
noisetorch
# Audio
pavucontrol
pulsemixer
noisetorch
# Communication
mattermost-desktop
slack
zoom-us
vesktop
discord
signal-desktop
teamspeak_client
# Communication
mattermost-desktop
slack
zoom-us
vesktop
discord
signal-desktop
teamspeak_client
# Browsing
tor-browser
# Browsing
tor-browser
# Music
spotify
strawberry-qt6
# Music
spotify
strawberry-qt6
# Utilities
taskwarrior3
neofetch
gimp
pulseaudio-ctl
playerctl
brightnessctl
] else []
)
++ (
if config.module.wayland.enable
then [
foot
wofi
swaynotificationcenter
udiskie
polkit_gnome
swayidle
sway-audio-idle-inhibit
swaylock-effects
sway-contrib.grimshot
glfw-wayland-minecraft
waybar
wl-clipboard
xorg.xrandr
] else []
)
++ (
if config.module.x11.enable
then [
xterm
rofi
xorg.xrandr
] else []
)
++ (
if config.module.programming.enable
then [
inputs.nixvim.packages.${pkgs.system}.default
lua
libgcc
php83
php83Packages.composer
python3
serverless
jwt-cli
jq
ddev
cloc
ansible
] else []
)
++ (
if config.module.hacking.enable
then [
metasploit
exploitdb
ghidra
wireshark
termshark
nmap
hashcat
dirstalk
rtl-sdr
] else []
)
++ (
if config.module.mudding.enable
then [
mudlet
] else []
)
++ (
if config.module.appdevel.enable
then [
flutter
waydroid
ungoogled-chromium
android-studio-full
] else []
)
++ (
if config.module.gaming.enable
then [
steam
protonup-qt
steamtinkerlaunch
prismlauncher
mudlet
widelands
wesnoth
gamescope
gamemode
r2modman
] else []
)
++ (
if config.module.vr.enable
then [
alvr
wlx-overlay-s
immersed
] else []
);
# Utilities
taskwarrior3
neofetch
gimp
pulseaudio-ctl
playerctl
brightnessctl
]
else []
)
++ (
if config.module.wayland.enable
then [
foot
wofi
swaynotificationcenter
udiskie
polkit_gnome
swayidle
sway-audio-idle-inhibit
swaylock-effects
sway-contrib.grimshot
glfw-wayland-minecraft
waybar
wl-clipboard
xorg.xrandr
]
else []
)
++ (
if config.module.x11.enable
then [
xterm
rofi
xorg.xrandr
]
else []
)
++ (
if config.module.programming.enable
then [
inputs.nixvim.packages.${pkgs.system}.default
lua
libgcc
php83
php83Packages.composer
python3
serverless
jwt-cli
jq
ddev
cloc
ansible
]
else []
)
++ (
if config.module.hacking.enable
then [
metasploit
exploitdb
ghidra
wireshark
termshark
nmap
hashcat
dirstalk
rtl-sdr
]
else []
)
++ (
if config.module.mudding.enable
then [
mudlet
]
else []
)
++ (
if config.module.appdevel.enable
then [
flutter
waydroid
ungoogled-chromium
android-studio-full
]
else []
)
++ (
if config.module.gaming.enable
then [
steam
protonup-qt
steamtinkerlaunch
prismlauncher
mudlet
widelands
wesnoth
gamescope
gamemode
r2modman
]
else []
)
++ (
if config.module.vr.enable
then [
alvr
wlx-overlay-s
immersed
]
else []
);
}

View file

@ -1,5 +1,9 @@
{lib, config, ...}: {
imports = [
./user.nix
];
{
lib,
config,
...
}: {
imports = [
./user.nix
];
}

View file

@ -1,97 +1,108 @@
{osConfig, config, inputs, pkgs, lib, ...}:
let
hyprMonitorConfig = if osConfig.networking.hostName == "Parzival" then ./configs/hypr/parzival-monitors.conf
else if osConfig.networking.hostName == "Parzival-Mobile" then ./configs/hypr/parzival_mobile-monitors.conf
else null;
swayMonitorConfig = if osConfig.networking.hostName == "Parzival" then ./configs/sway/parzival-monitors.conf
else if osConfig.networking.hostName == "Parzival-Mobile" then ./configs/sway/parzival_mobile-monitors.conf
else null;
in
{
home = {
username = "crow";
homeDirectory = "/home/crow";
stateVersion = "24.05";
osConfig,
config,
inputs,
pkgs,
lib,
...
}: let
hyprMonitorConfig =
if osConfig.networking.hostName == "Parzival"
then ./configs/hypr/parzival-monitors.conf
else if osConfig.networking.hostName == "Parzival-Mobile"
then ./configs/hypr/parzival_mobile-monitors.conf
else null;
swayMonitorConfig =
if osConfig.networking.hostName == "Parzival"
then ./configs/sway/parzival-monitors.conf
else if osConfig.networking.hostName == "Parzival-Mobile"
then ./configs/sway/parzival_mobile-monitors.conf
else null;
in {
home = {
username = "crow";
homeDirectory = "/home/crow";
stateVersion = "24.05";
# Tools
file.".config/tmux/tmux.conf".source = ./configs/tmux/tmux.conf;
file.".config/git/config".source = ./configs/git/git.conf;
# Hyprland
file.".config/hypr/hyprland.conf".source = ./configs/hypr/hyprland.conf;
file.".config/hypr/monitors.conf".source = lib.mkIf (hyprMonitorConfig != null) hyprMonitorConfig;
# Waybar
file.".config/waybar/config.jsonc".source = ./configs/waybar/config.jsonc;
file.".config/waybar/style.css".source = ./configs/waybar/style.css;
# Sway
file.".config/sway/config".source = ./configs/sway/sway.conf;
file.".config/sway/monitors.conf".source = lib.mkIf (swayMonitorConfig != null) swayMonitorConfig;
file.".config/sway/background-1".source = ./configs/wallpapers/cyber_defiance.jpg;
file.".config/sway/background-2".source = ./configs/wallpapers/cyber_skyscrapers.jpg;
file.".config/sway/background-3".source = ./configs/wallpapers/kali_lol.jpg;
# Tools
file.".config/tmux/tmux.conf".source = ./configs/tmux/tmux.conf;
file.".config/git/config".source = ./configs/git/git.conf;
# i3
file.".config/i3/config".source = ./configs/i3/i3.conf;
file."/home/crow/.xinitrc".source = ./configs/x11/xinitrc;
};
# Hyprland
file.".config/hypr/hyprland.conf".source = ./configs/hypr/hyprland.conf;
file.".config/hypr/monitors.conf".source = lib.mkIf (hyprMonitorConfig != null) hyprMonitorConfig;
xdg = {
configHome = "/home/crow/.config";
enable = true;
};
programs = {
firefox = {
enable = true;
policies = {
BlockAboutConfig = true;
DisableFirefoxStudies = true;
DisableFormHistory = true;
DisablePasswordReveal = true;
DisablePocket = true;
DisableProfileImport = true;
DontCheckDefaultBrowser = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
Homepage = {
URL = "https://home.wanderingcrow.net";
StartPage = "homepage";
};
OfferToSaveLogins = false;
PasswordManagerEnabled = false;
ExtensionSettings = {
"*".installation_mode = "blocked";
"*".blocked_install_message = "Please manage extensions through your NixOS config";
# Bitwarden
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/{446900e4-71c2-419f-a6a7-df9c091e268b}/latest.xpl";
default_area = "navbar";
};
"contact@grimoire.pro" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/contact@grimoire.pro/latest.xpl";
default_area = "navbar";
};
"uBlock0@raymondhill.net" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/uBlock0@raymondhill.net/latest.xpl";
default_area = "menupanel";
};
# Vimium
"{d7742d87-e61d-4b78-b8a1-b469842139fa}" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/{d7742d87-e61d-4b78-b8a1-b469842139fa}/latest.xpl";
default_area = "menupanel";
};
};
};
# Waybar
file.".config/waybar/config.jsonc".source = ./configs/waybar/config.jsonc;
file.".config/waybar/style.css".source = ./configs/waybar/style.css;
# Sway
file.".config/sway/config".source = ./configs/sway/sway.conf;
file.".config/sway/monitors.conf".source = lib.mkIf (swayMonitorConfig != null) swayMonitorConfig;
file.".config/sway/background-1".source = ./configs/wallpapers/cyber_defiance.jpg;
file.".config/sway/background-2".source = ./configs/wallpapers/cyber_skyscrapers.jpg;
file.".config/sway/background-3".source = ./configs/wallpapers/kali_lol.jpg;
# i3
file.".config/i3/config".source = ./configs/i3/i3.conf;
file."/home/crow/.xinitrc".source = ./configs/x11/xinitrc;
};
xdg = {
configHome = "/home/crow/.config";
enable = true;
};
programs = {
firefox = {
enable = true;
policies = {
BlockAboutConfig = true;
DisableFirefoxStudies = true;
DisableFormHistory = true;
DisablePasswordReveal = true;
DisablePocket = true;
DisableProfileImport = true;
DontCheckDefaultBrowser = true;
EnableTrackingProtection = {
Value = true;
Locked = true;
Cryptomining = true;
Fingerprinting = true;
};
Homepage = {
URL = "https://home.wanderingcrow.net";
StartPage = "homepage";
};
OfferToSaveLogins = false;
PasswordManagerEnabled = false;
ExtensionSettings = {
"*".installation_mode = "blocked";
"*".blocked_install_message = "Please manage extensions through your NixOS config";
# Bitwarden
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/{446900e4-71c2-419f-a6a7-df9c091e268b}/latest.xpl";
default_area = "navbar";
};
"contact@grimoire.pro" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/contact@grimoire.pro/latest.xpl";
default_area = "navbar";
};
"uBlock0@raymondhill.net" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/uBlock0@raymondhill.net/latest.xpl";
default_area = "menupanel";
};
# Vimium
"{d7742d87-e61d-4b78-b8a1-b469842139fa}" = {
installation_mode = "force_installed";
install_url = "https://addons.mozilla.org/firefox/downloads/latest/{d7742d87-e61d-4b78-b8a1-b469842139fa}/latest.xpl";
default_area = "menupanel";
};
};
};
};
};
}

View file

@ -1,25 +1,30 @@
{ pkgs, lib, config, ...}: {
config.users.users.crow = lib.mkIf config.user.crow.enable {
isNormalUser = true;
initialPassword = "changeme";
extraGroups = [ "wheel" "networkmanager" "audio" "plugdev" ];
};
{
pkgs,
lib,
config,
...
}: {
config.users.users.crow = lib.mkIf config.user.crow.enable {
isNormalUser = true;
initialPassword = "changeme";
extraGroups = ["wheel" "networkmanager" "audio" "plugdev"];
};
config.systemd.services.note_sync = {
enable = true;
description = "Auto sync notes to remote";
serviceConfig = {
User = "crow";
Type = "oneshot";
};
path = [
"/run/current-system/sw"
];
startAt = [
"*:0/5"
];
script = "cd /home/crow/Notes\ngit pull\ngit add .\ngit diff-index --quiet HEAD || git commit -am 'automatic backup'\ngit push";
config.systemd.services.note_sync = {
enable = true;
description = "Auto sync notes to remote";
serviceConfig = {
User = "crow";
Type = "oneshot";
};
path = [
"/run/current-system/sw"
];
startAt = [
"*:0/5"
];
script = "cd /home/crow/Notes\ngit pull\ngit add .\ngit diff-index --quiet HEAD || git commit -am 'automatic backup'\ngit push";
};
config.home-manager.users.crow = lib.mkIf config.user.crow.home.enable ./home.nix;
config.home-manager.users.crow = lib.mkIf config.user.crow.home.enable ./home.nix;
}

View file

@ -1,12 +1,12 @@
{config, ...}: {
imports = [
./crow
./overseer
];
imports = [
./crow
./overseer
];
config.home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "backup";
};
config.home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "backup";
};
}

View file

@ -1,6 +1,10 @@
{lib, config, ...}: {
imports = [
./user.nix
./podman.nix
];
{
lib,
config,
...
}: {
imports = [
./user.nix
./podman.nix
];
}

View file

@ -1,10 +1,11 @@
{ lib, config, ...}: {
# virtualisation.oci-containers = {
# backend = "podman";
# containers = {
# containers.grimoire = {
#
{
lib,
config,
...
}: {
# virtualisation.oci-containers = {
# backend = "podman";
# containers = {
# containers.grimoire = {
#
}

View file

@ -1,7 +1,11 @@
{ lib, config, ...}: {
config.users.users.overseer = lib.mkIf config.user.overseer.enable {
isNormalUser = true;
initialPassword = "changeme";
extraGroups = [ "wheel" "libvirtd" ];
};
{
lib,
config,
...
}: {
config.users.users.overseer = lib.mkIf config.user.overseer.enable {
isNormalUser = true;
initialPassword = "changeme";
extraGroups = ["wheel" "libvirtd"];
};
}