finished migrating config to new flake structure

This commit is contained in:
Steven 2023-03-26 16:40:14 -04:00
parent 5764ac1119
commit 7404966c92
14 changed files with 37 additions and 427 deletions

View file

@ -1,10 +0,0 @@
{ config, pkgs, lib, ... }:
{
imports = [
./users/speccon18.nix
];
programs.home-manager.enable = true;
# https://github.com/arouzing/nix/blob/main/hm/sky/home.nix
}

View file

@ -1,104 +0,0 @@
{ config, pkgs, lib, ... }:
{
home = {
username = "speccon18";
homeDirectory = "/home/speccon18";
stateVersion = "22.11";
packages = [
pkgs.firefox
pkgs.vscode-fhs
pkgs.alacritty
pkgs.starship
pkgs.diff-so-fancy
pkgs.bat
pkgs.nushell
];
};
programs = {
#TODO: https://mipmip.github.io/home-manager-option-search/ add options
vscode = {
enable = true;
package = pkgs.vscode.fhs;
enableExtensionUpdateCheck = true;
enableUpdateCheck = false;
extensions = [
# "tlahmann.alex-linter"
# "astro-build.astro-vscode"
# "aaron-bond.better-comments"
# "bungcip.better-toml"
# "antfu.browse-lite"
# "firefox-devtools.vscode-firefox-debug"
# "ms-vscode-remote.remote-containers"
# "ms-azuretools.vscode-docker"
# "editorconfig.editorconfig"
# "dbaeumer.vscode-eslint"
# "donjayamanne.githistory"
# "felipecaputo.git-project-manager"
# "github.copilot"
# "eamodio.gitlens"
# "graphql.vscode-graphql"
# "graphql.vscode-graphql-syntax"
# "oderwat.indent-rainbow"
# "skellock.just"
# "monokai.theme-monokai-pro-vscode"
# "bbenoist.nix"
# "jnoortheen.nix-ide"
# "christian-kohler.path-intellisense"
# "csstools.postcss"
# "esbenp.prettier-vscode"
# "ms-vscode-remote.remote-ssh"
# "ms-vscode-remote.remote-ssh-edit"
# "ms-vscode.remote-server"
# "ms-vscode-remote.vscode-remote-extensionpack"
# "ms-vscode.remote-explorer"
# "rust-lang.rust-analyzer"
# "rhalaly.scope-to-this"
# "svelte.svelte-vscode"
# "bradlc.vscode-tailwindcss"
# "tauri-apps.tauri-vscode"
# "antfu.vite"
# "zixuanchen.vitest-explorer"
# "vscode-icons-team.vscode-icons"
# "thenuprojectcontributors.vscode-nushell-lang"
# "ms-vscode-remote.remote-wsl"
# "redhat.vscode-yaml"
];
};
#TODO: Generate and add configs for this
nushell = {
enable = true;
};
direnv = {
enableZshIntegration = true;
enable = true;
};
starship = {
enable = true;
enableZshIntegration = true;
enableNushellIntegration = true;
};
zsh = {
enable = lib.mkDefault true;
dotDir = ".config/zsh";
history = {
path = "$ZDOTDIR/.zsh_history";
save = 10000000;
};
};
#git = {
# enable = true;
# userName = "specCon18";
# userEmail = "specCon18@gmail.com";
# signing = {
# key = "71F252936D785219";
# signByDefault = true;
# };
# diff-so-fancy = {
# enable = true;
# changeHunkIndicators = true;
# };
# lfs.enable = true;
#};
};
}

View file

@ -1,83 +0,0 @@
{ disks ? [ "/dev/nvme0n1" ], ... }: {
disk = {
disk-0 = {
type = "disk";
device = builtins.elemAt disks 0;
content = {
type = "table";
format = "gpt";
partitions = [
{
type = "partition";
name = "ESP";
start = "1MiB";
end = "2g";
bootable = true;
content = {
type = "filesystem";
format = "vfat";
mountpoint = "/boot";
mountOptions = [
"defaults"
];
};
}
{
name = "swap";
type = "partition";
start = "2G";
end = "40G";
part-type = "primary";
content = {
type = "swap";
randomEncryption = true;
};
}
{
type = "partition";
name = "luks";
start = "40G";
end = "100%";
content = {
type = "luks";
name = "crypted";
extraOpenArgs = [ "--allow-discards" ];
content = {
type = "lvm_pv";
vg = "pool";
};
};
}
];
};
};
};
lvm_vg = {
pool = {
type = "lvm_vg";
lvs = {
root = {
type = "lvm_lv";
size = "128G";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/";
mountOptions = [
"defaults"
];
};
};
home = {
type = "lvm_lv";
size = "25G";
content = {
type = "filesystem";
format = "ext4";
mountpoint = "/home";
};
};
};
};
};
}

View file

@ -1,38 +0,0 @@
{ config, pkgs, lib, ... }:
{
# Gnome extensions
environment.systemPackages = with pkgs; [
gnomeExtensions.dock-from-dash
gnomeExtensions.pop-shell
];
services = {
gnome = {
core-utilities.enable = false;
gnome-keyring.enable = true;
};
xserver = {
enable = true;
layout = "us";
xkbVariant = "";
displayManager = {
gdm = {
enable = true;
wayland = true;
};
defaultSession = lib.mkDefault "gnome";
};
desktopManager = {
xterm.enable = lib.mkForce false;
gnome.enable = lib.mkDefault true;
};
};
};
programs = {
xwayland.enable = lib.mkDefault true;
};
xdg.portal = { enable = lib.mkDefault true; };
}

View file

@ -1,6 +0,0 @@
{ config, pkgs, lib, ... }:
{
environment.systemPackages = with pkgs; [
inputs.nixpkgs-wayland.packages.${system}.wayfire-unstable
];
}

View file

@ -1,11 +0,0 @@
{ config, pkgs, lib, ... }:
{
virtualisation.docker = {
enable = true;
liveRestore = false;
autoPrune.enable = true;
};
# But allow docker containers to access the local machine
networking.firewall.trustedInterfaces = [ "docker0" ];
}

View file

@ -1,19 +0,0 @@
{ config, pkgs, lib, ... }:
{
services.openssh = lib.mkDefault {
enable = true;
openFirewall = true;
#settings = lib.mkDefault {
passwordAuthentication = false;
permitRootLogin = "no";
kbdInteractiveAuthentication = false;
#};
startWhenNeeded = true;
kexAlgorithms = [ "curve25519-sha256@libssh.org" ];
};
security.pam = lib.mkDefault {
enableSSHAgentAuth = true;
services.sudo.sshAgentAuth = true;
};
}

View file

@ -1,17 +0,0 @@
# https://nixos.wiki/wiki/PipeWire
{ config, pkgs, lib, ... }:
{
# Remove sound.enable or turn it off if you had it set previously, it seems to cause conflicts with pipewire
#sound.enable = false;
# rtkit is optional but recommended
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa = {
enable = true;
support32Bit = true;
};
pulse.enable = true;
jack.enable = true;
};
}

View file

@ -1,12 +0,0 @@
{ config, pkgs, lib, ... }:
{
users.users.arouzing = {
isNormalUser = true;
initialHashedPassword = "$6$tucSnzN8mqHQo/Fd$Q/RtaTpoXN0xnlLAFy6ohWWYuTYd54CXaCrocV1vgFRQVuONga1LyzwdJ0vXa.NT6MRcO7IXNQ3YeURJsSdP61";
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJAGm66rJsr8vjRCYDkH4lEPncPq27o6BHzpmRmkzOiM"
];
description = "admin";
extraGroups = [ "wheel" "docker" ];
};
}

View file

@ -1,14 +0,0 @@
{ config, pkgs, lib, ... }:
{
users.users.speccon18 = {
shell = pkgs.zsh;
isNormalUser = true;
initialHashedPassword = "$y$j9T$RdLBHOvUpb17egl0d16LT/$3Y2RD/tT1IZ0nkfAR13pp3IzBjvKLRgGpDPLobUeO23";
openssh.authorizedKeys.keys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILdigmndcdQD/864P059K2hZOXyEkbGvMkH0/b2QavkD speccon18@creatorforge"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPc1AQ6hcjdSZZuhS5SISwtulFoTLpC5f5JoMFQkZ5l2 specCon18@DESKTOP-Q1I2PAE"
];
description = "admin";
extraGroups = [ "wheel" "docker" ];
};
}

View file

@ -6,11 +6,6 @@
nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11";
# NixOS Hardware Configuration for framework #
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
# For Wayfire #
# nixpkgs-wayland = {
# url = "github:nix-community/nixpkgs-wayland";
# inputs.nixpkgs.follows = "nixpkgs";
# };
# For Home Manager #
home-manager = {
url = "github:nix-community/home-manager/release-22.11";
@ -27,7 +22,7 @@
outputs = { self, home-manager, nixos-hardware, disko, nixpkgs, sops-nix, ... }@inputs:
let
system = "x86_64-linux";
system = "x86_64-linux"; # Set the system architecture to x86_64-linux.
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
@ -54,10 +49,12 @@
#Home manager
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.users."${userName}" = {
imports = [ (./. + "/users/${userName}/home.nix") ] ++ extraHomeModules;
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users."${userName}" = {
imports = [ (./. + "/users/${userName}/home.nix") ] ++ extraHomeModules;
};
};
}
] ++ extraModules;
@ -70,8 +67,11 @@
"speccon18" #default user
[
./hosts/creatorforge.nix
] #modules to load
[]; #modules to be loaded by home-manager
modules/services/docker.nix
modules/services/openssh.nix
modules/desktop/gui/gnome.nix
] #extra modules to load
[]; #extra modules to be loaded by home-manager
creatorforge-framework = mkComputer
./machines/framework.nix #machine specific configuration
"speccon18" #default user
@ -79,15 +79,12 @@
nixos-hardware.nixosModules.framework-12th-gen-intel
disko.nixosModules.disko
./hosts/creatorforge.nix
] #modules to load
[]; #modules to be loaded by home-manager
};
# homeConfigurations = {
# speccon18 = home-manager.lib.homeManagerConfiguration {
# pkgs = nixpkgs.legacyPackages.x86_64-linux;
# modules = [ ./.hm-modules/home-manager.nix];
# };
# };
};
modules/services/docker.nix
modules/services/openssh.nix
modules/desktop/gui/gnome.nix
] #extra modules to load
[]; #extra modules to be loaded by home-manager
};
};
}

View file

@ -1,14 +1,9 @@
{ modulesPath, config, pkgs, lib, ... }:
{
imports = [
# Include the results of the hardware scan.
(modulesPath + "/profiles/qemu-guest.nix")
../.modules/services/docker.nix
../.modules/users/speccon18.nix
../.modules/services/openssh.nix
../.modules/features/desktop/environments/gnome.nix
];
system.stateVersion = "22.11";
time.timeZone = "America/Detroit";
# Allow non opensource software to be installed
nixpkgs.config.allowUnfree = true;
@ -33,34 +28,26 @@
htop
bat
exa
helix
zsh
vim
tailscale
dig
rage
sops
direnv
uutils-coreutils
htop
];
networking = {
firewall.checkReversePath = "loose";
hostName = "creatorforge"; # Define your hostname.
firewall = {
enable = true;
allowedTCPPorts = [];
allowedUDPPorts = [];
checkReversePath = "loose";
};
# networkmanager.enable = true;
};
services.tailscale.enable = true;
time.timeZone = "America/Detroit";
# Open ports in the firewall.
networking.firewall = {
enable = true;
allowedTCPPorts = [];
allowedUDPPorts = [];
};
## main services
system.stateVersion = "22.11";
### testing ###
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "virtio_pci" "sr_mod" "virtio_blk" ];
}

View file

@ -3,12 +3,12 @@
{
imports =
[ # Include the results of the hardware scan.
# ../.modules/base/hardware.nix
# ../modules/base/hardware.nix
(modulesPath + "/profiles/qemu-guest.nix")
../.modules/services/docker.nix
../.modules/users/arouzing.nix
../.modules/users/speccon18.nix
../.modules/services/openssh.nix
../modules/services/docker.nix
../modules/users/arouzing.nix
../modules/users/speccon18.nix
../modules/services/openssh.nix
];
# base packages

View file

@ -1,60 +0,0 @@
{ pkgs, config, ... }: {
#Home manager configuration
home.username = "speccon18";
home.homeDirectory = "/home/speccon18";
imports = [ ./../../home ./../../home/nixos ];
home.packages = with pkgs; [
loc
element-desktop
discord
bat
exa
nodejs-18_x
spotify
dig
nerdfonts
age
sops
steam-run
fira-code
libreoffice
asciinema
postman
gimp
rustup
neofetch
htop
vlc
polymc
remmina
signal-desktop
];
programs.direnv.enable = true;
programs.direnv.nix-direnv.enable = true;
programs.home-manager.enable = true;
programs.vscode = {
enable = true;
package = pkgs.vscode;
};
programs.git = {
enable = true;
userName = "specCon18";
userEmail = "steven.carpenter@skdevstudios.com";
delta.enable = true;
extraConfig = {
init = {
defaultBranch = "main";
};
};
};
dconf.settings = {
"org/gnome/mutter" = {
experimental-features = [ "x11-randr-fractional-scaling" ];
};
};
}