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 = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nur.url = "github:nix-community/NUR"; nur.url = "github:nix-community/NUR";
home-manager.url = "github:nix-community/home-manager"; home-manager.url = "github:nix-community/home-manager";
home-manager.inputs.nixpkgs.follows = "nixpkgs"; home-manager.inputs.nixpkgs.follows = "nixpkgs";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1"; hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
nixvim.url = "git+https://git.wanderingcrow.net/TheWanderingCrow/nvix"; nixvim.url = "git+https://git.wanderingcrow.net/TheWanderingCrow/nvix";
alejandra.url = "github:kamadorueda/alejandra/3.1.0"; alejandra.url = "github:kamadorueda/alejandra/3.1.0";
alejandra.inputs.nixpkgs.follows = "nixpkgs"; 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 ns = host: (lib.nixosSystem {
system = "x86_64-linux"; specialArgs = {inherit pkgs inputs;};
inherit (inputs.nixpkgs) lib; modules = [
(./hosts + "/${host}")
overlays = [ inputs.nur.overlay ]; inputs.home-manager.nixosModules.home-manager
];
pkgs = import inputs.nixpkgs { });
inherit system overlays; in {nixosConfigurations = lib.attrsets.genAttrs ["Parzival" "Parzival-Mobile" "WCE-Overseer"] ns;};
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;};
} }

View file

@ -1,18 +1,22 @@
{config, pkgs, ...}:{ {
imports = [ config,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix ./hardware-configuration.nix
../../modules ../../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.gui.enable = true;
module.wayland.enable = true; module.wayland.enable = true;
module.programming.enable = true; module.programming.enable = true;
module.hacking.enable = true; module.hacking.enable = true;
module.mudding.enable = true; module.mudding.enable = true;
} }

View file

@ -1,32 +1,36 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-intel" ]; boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-uuid/0e8c3f30-2abb-4687-b541-3f6dfdb2fa72"; device = "/dev/disk/by-uuid/0e8c3f30-2abb-4687-b541-3f6dfdb2fa72";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-uuid/E6CB-9DA5"; device = "/dev/disk/by-uuid/E6CB-9DA5";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ]; options = ["fmask=0022" "dmask=0022"];
}; };
swapDevices = swapDevices = [
[ { device = "/dev/disk/by-uuid/928718de-b495-4a7c-b9d4-eb491b6c8253"; } {device = "/dev/disk/by-uuid/928718de-b495-4a7c-b9d4-eb491b6c8253";}
]; ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (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 ./hardware-configuration.nix
../../modules ../../modules
]; ];
networking.hostName = "Parzival-Work"; networking.hostName = "Parzival-Work";
user.crow.enable = true; user.crow.enable = true;
desktop.sway.enable = true; desktop.sway.enable = true;
desktop.i3.enable = true; desktop.i3.enable = true;
module.gui.enable = true; module.gui.enable = true;
module.programming.enable = true; module.programming.enable = true;
module.wayland.enable = true; module.wayland.enable = true;
module.x11.enable = true; module.x11.enable = true;
module.mudding.enable = true; module.mudding.enable = true;
} }

View file

@ -1,25 +1,30 @@
{lib, config, pkgs, ...}:{ {
imports = [ lib,
config,
pkgs,
...
}: {
imports = [
./hardware-configuration.nix ./hardware-configuration.nix
../../modules ../../modules
]; ];
networking.hostName = "Parzival"; networking.hostName = "Parzival";
user.crow.enable = true;
desktop.sway.enable = true; user.crow.enable = true;
desktop.i3.enable = true;
module.gui.enable = true; desktop.sway.enable = true;
module.programming.enable = true; desktop.i3.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; 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 # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
imports = config,
[ (modulesPath + "/installer/scan/not-detected.nix") lib,
]; pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod"];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [];
fileSystems."/" = fileSystems."/" = {
{ device = "/dev/disk/by-label/nixos"; device = "/dev/disk/by-label/nixos";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = fileSystems."/boot" = {
{ device = "/dev/disk/by-label/boot"; device = "/dev/disk/by-label/boot";
fsType = "vfat"; fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ]; options = ["fmask=0022" "dmask=0022"];
}; };
swapDevices = [ ]; swapDevices = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (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 # 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`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true; networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true; # networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
# networking.interfaces.wlp8s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp8s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.amdgpu = { hardware.amdgpu = {
initrd.enable = true; initrd.enable = true;
amdvlk.enable = true; amdvlk.enable = true;
opencl.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 ../../modules
]; ];
networking.hostName = "WCE-Overseer"; networking.hostName = "WCE-Overseer";
proxmoxLXC.manageNetwork = true; 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 = { boot.loader = {
systemd-boot.enable = true; systemd-boot.enable = true;
efi = { efi = {
canTouchEfiVariables = true; canTouchEfiVariables = true;
}; };
}; };
} }

View file

@ -1,184 +1,183 @@
{ {
config, config,
lib, lib,
pkgs, pkgs,
inputs, inputs,
... ...
}: { }: {
options = { options = {
module = { module = {
enable = lib.mkEnableOption "enables packages"; enable = lib.mkEnableOption "enables packages";
core.enable = lib.mkEnableOption "enables required packages"; core.enable = lib.mkEnableOption "enables required packages";
gui.enable = lib.mkEnableOption "enables gui+DE packages"; gui.enable = lib.mkEnableOption "enables gui+DE packages";
wayland.enable = lib.mkEnableOption "enables wayland packages"; wayland.enable = lib.mkEnableOption "enables wayland packages";
x11.enable = lib.mkEnableOption "enables x11 packages"; x11.enable = lib.mkEnableOption "enables x11 packages";
programming.enable = lib.mkEnableOption "enables programming packages"; programming.enable = lib.mkEnableOption "enables programming packages";
hacking.enable = lib.mkEnableOption "enables hacking packages"; hacking.enable = lib.mkEnableOption "enables hacking packages";
mudding.enable = lib.mkEnableOption "enables mudding packages"; mudding.enable = lib.mkEnableOption "enables mudding packages";
gaming.enable = lib.mkEnableOption "enables gaming packages"; gaming.enable = lib.mkEnableOption "enables gaming packages";
appdevel.enable = lib.mkEnableOption "enables app development in flutter"; appdevel.enable = lib.mkEnableOption "enables app development in flutter";
vr.enable = lib.mkEnableOption "enables VR utilities"; 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";
};
};
}; };
config = {
system.stateVersion = "24.05";
time.timeZone = "America/New_York";
nix.settings.experimental-features = ["flakes" "nix-command"];
environment.variables = {
EDITOR = "nvim";
VISUAL = "nvim";
};
user = { user = {
enable = lib.mkDefault true; enable = lib.mkEnableOption "enables users";
crow = { crow = {
enable = lib.mkDefault false; enable = lib.mkEnableOption "enable crow";
home.enable = lib.mkDefault config.user.crow.enable; home.enable = lib.mkEnableOption "enable home configuration";
}; };
overseer = { overseer = {
enable = lib.mkDefault false; enable = lib.mkEnableOption "enable container overseer user";
}; };
};
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
'';
};
};
}; };
};
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 = [ lib,
./core.nix config,
./boot.nix ...
./networking.nix }: {
./programs.nix imports = [
./users ./core.nix
./desktops ./boot.nix
]; ./networking.nix
./programs.nix
./users
./desktops
];
} }

View file

@ -1,10 +1,13 @@
{ lib, config, ...}: { {
imports = [ lib,
# Wayland desktops here config,
./wayland/sway.nix ...
}: {
# X11 desktops here imports = [
./x11/i3.nix # 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 = { config = {
programs.sway = lib.mkIf config.desktop.sway.enable { programs.sway = lib.mkIf config.desktop.sway.enable {
enable = true; enable = true;
xwayland.enable = true; xwayland.enable = true;
};
programs.dconf.enable = true;
}; };
programs.dconf.enable = true;
};
config.environment = lib.mkIf config.desktop.sway.enable {
config.environment = lib.mkIf config.desktop.sway.enable { sessionVariables = {
sessionVariables = { NIXOS_OZONE_WL = "1";
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 { config = lib.mkIf config.desktop.i3.enable {
services.xserver = { services.xserver = {
displayManager.startx.enable = true; displayManager.startx.enable = true;
windowManager.i3 = { windowManager.i3 = {
enable = true; enable = true;
}; };
};
}; };
};
} }

View file

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

View file

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

View file

@ -1,5 +1,9 @@
{lib, config, ...}: { {
imports = [ lib,
./user.nix 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 = { osConfig,
username = "crow"; config,
homeDirectory = "/home/crow"; inputs,
stateVersion = "24.05"; 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 # Tools
file.".config/tmux/tmux.conf".source = ./configs/tmux/tmux.conf; file.".config/tmux/tmux.conf".source = ./configs/tmux/tmux.conf;
file.".config/git/config".source = ./configs/git/git.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;
# i3 # Hyprland
file.".config/i3/config".source = ./configs/i3/i3.conf; file.".config/hypr/hyprland.conf".source = ./configs/hypr/hyprland.conf;
file."/home/crow/.xinitrc".source = ./configs/x11/xinitrc; file.".config/hypr/monitors.conf".source = lib.mkIf (hyprMonitorConfig != null) hyprMonitorConfig;
};
xdg = { # Waybar
configHome = "/home/crow/.config"; file.".config/waybar/config.jsonc".source = ./configs/waybar/config.jsonc;
enable = true; file.".config/waybar/style.css".source = ./configs/waybar/style.css;
};
# Sway
programs = { file.".config/sway/config".source = ./configs/sway/sway.conf;
firefox = { file.".config/sway/monitors.conf".source = lib.mkIf (swayMonitorConfig != null) swayMonitorConfig;
enable = true; file.".config/sway/background-1".source = ./configs/wallpapers/cyber_defiance.jpg;
policies = { file.".config/sway/background-2".source = ./configs/wallpapers/cyber_skyscrapers.jpg;
BlockAboutConfig = true; file.".config/sway/background-3".source = ./configs/wallpapers/kali_lol.jpg;
DisableFirefoxStudies = true;
DisableFormHistory = true; # i3
DisablePasswordReveal = true; file.".config/i3/config".source = ./configs/i3/i3.conf;
DisablePocket = true; file."/home/crow/.xinitrc".source = ./configs/x11/xinitrc;
DisableProfileImport = true; };
DontCheckDefaultBrowser = true;
EnableTrackingProtection = { xdg = {
Value = true; configHome = "/home/crow/.config";
Locked = true; enable = true;
Cryptomining = true; };
Fingerprinting = true;
}; programs = {
Homepage = { firefox = {
URL = "https://home.wanderingcrow.net"; enable = true;
StartPage = "homepage"; policies = {
}; BlockAboutConfig = true;
OfferToSaveLogins = false; DisableFirefoxStudies = true;
PasswordManagerEnabled = false; DisableFormHistory = true;
ExtensionSettings = { DisablePasswordReveal = true;
"*".installation_mode = "blocked"; DisablePocket = true;
"*".blocked_install_message = "Please manage extensions through your NixOS config"; DisableProfileImport = true;
# Bitwarden DontCheckDefaultBrowser = true;
"{446900e4-71c2-419f-a6a7-df9c091e268b}" = { EnableTrackingProtection = {
installation_mode = "force_installed"; Value = true;
install_url = "https://addons.mozilla.org/firefox/downloads/latest/{446900e4-71c2-419f-a6a7-df9c091e268b}/latest.xpl"; Locked = true;
default_area = "navbar"; Cryptomining = true;
}; Fingerprinting = true;
"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";
};
};
};
}; };
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 { pkgs,
isNormalUser = true; lib,
initialPassword = "changeme"; config,
extraGroups = [ "wheel" "networkmanager" "audio" "plugdev" ]; ...
}; }: {
config.users.users.crow = lib.mkIf config.user.crow.enable {
isNormalUser = true;
initialPassword = "changeme";
extraGroups = ["wheel" "networkmanager" "audio" "plugdev"];
};
config.systemd.services.note_sync = { config.systemd.services.note_sync = {
enable = true; enable = true;
description = "Auto sync notes to remote"; description = "Auto sync notes to remote";
serviceConfig = { serviceConfig = {
User = "crow"; User = "crow";
Type = "oneshot"; 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";
}; };
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, ...}: { {config, ...}: {
imports = [ imports = [
./crow ./crow
./overseer ./overseer
]; ];
config.home-manager = { config.home-manager = {
useGlobalPkgs = true; useGlobalPkgs = true;
useUserPackages = true; useUserPackages = true;
backupFileExtension = "backup"; backupFileExtension = "backup";
}; };
} }

View file

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

View file

@ -1,10 +1,11 @@
{ lib, config, ...}: { {
lib,
# virtualisation.oci-containers = { config,
# backend = "podman"; ...
# containers = { }: {
# containers.grimoire = { # 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 { lib,
isNormalUser = true; config,
initialPassword = "changeme"; ...
extraGroups = [ "wheel" "libvirtd" ]; }: {
}; config.users.users.overseer = lib.mkIf config.user.overseer.enable {
isNormalUser = true;
initialPassword = "changeme";
extraGroups = ["wheel" "libvirtd"];
};
} }