really big refactor

This commit is contained in:
sadan 2024-10-02 16:36:52 -04:00
parent 1d4904a4c9
commit 375a1b2e89
No known key found for this signature in database
20 changed files with 188 additions and 151 deletions

View file

@ -3,48 +3,15 @@
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). # https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, inputs, ... }: { config, lib, pkgs, inputs, ... }:
let
_v = import ../../common/programs/virt.nix { };
wireshark = import ../../common/programs/wireshark.nix { };
in
{ {
imports = imports =
[ [
# Include the results of the hardware scan. # Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
../../common/modules/audio.nix ../../common/systemModules/audio.nix
../../common/modules/kde.nix ../../common/systemModules/kde.nix
../../common/users/meyer ../../common/users/meyer
inputs.sops-nix.nixosModules.sops
]; ];
sops.defaultSopsFile = ../../secrets.yaml;
sops.defaultSopsFormat = "yaml";
sops.age.keyFile = "/home/meyer/.config/sops/age/keys.txt";
sops.secrets.password.neededForUsers = true;
users.users.meyer = {
isNormalUser = true;
hashedPasswordFile = config.sops.secrets.password.path;
extraGroups = [
"wireshark"
"kvm"
"libvirtd"
"wheel" # Enable sudo for the user.
"audio"
"sound"
"video"
"input"
"tty"
"plugdev"
];
shell = pkgs.zsh;
};
home-manager = {
extraSpecialArgs = { inherit inputs; };
users = {
"meyer" = import ./home.nix;
};
};
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
boot.loader.grub.device = "nodev"; boot.loader.grub.device = "nodev";
boot.kernelPackages = pkgs.linuxPackages_latest; boot.kernelPackages = pkgs.linuxPackages_latest;
@ -81,28 +48,14 @@ in
avahi.enable = true; avahi.enable = true;
usbmuxd.enable = true; usbmuxd.enable = true;
}; };
services.xserver.videoDrivers = ["amdgpu"]; services.xserver.videoDrivers = [ "amdgpu" ];
services.printing.enable = true; services.printing.enable = true;
services.printing.drivers = with pkgs; [ services.printing.drivers = with pkgs; [
hplip hplip
]; ];
virtualisation = _v;
nix.settings.experimental-features = [ "nix-command" "flakes" ]; nix.settings.experimental-features = [ "nix-command" "flakes" ];
# Enable sound.
# sound.enable = true;
# hardware.pulseaudio.enable = true;
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
programs = {
inherit wireshark;
};
programs.zsh.enable = true; programs.zsh.enable = true;
programs.steam.enable = true; programs.steam.enable = true;
programs.steam.extraCompatPackages = with pkgs; [ programs.steam.extraCompatPackages = with pkgs; [
@ -112,18 +65,12 @@ in
# networking.nameservers = ["10.0.0.97" "1.1.1.1"];
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
clinfo clinfo
fuse fuse
ifuse ifuse
ddcutil ddcutil
i2c-tools i2c-tools
# python311
# python311Packages.evdev
# python311Packages.xlib
gcc gcc
neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
curl curl

View file

@ -1,13 +0,0 @@
{}:
{
spotifyOpen = {
type = "Application";
name = "Open in Spotify";
genericName = "Music Player";
icon = "spotify-client";
terminal = false;
categories = [ "Audio" "Music" "Player" "AudioVideo" ];
exec = "qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri %U";
mimeType = [ "x-scheme-handler/spotify" ];
};
}

View file

@ -1,3 +0,0 @@
{}: {
enable = true;
}

View file

@ -1,11 +0,0 @@
{config}: {
enable = true;
settings = {
General = {
savePath="/home/${config.home.username}/ss/";
saveAsFileExtension=".png";
showDesktopNotification=false;
startupLaunch=true;
};
};
}

View file

@ -1,3 +0,0 @@
{} : {
libvirtd.enable = true;
}

View file

@ -1,3 +1,16 @@
{} : { { NAME }: { ... }: {
enable = true; programs = {
wireshark = {
enable = true;
};
};
users = {
users = {
"${NAME}" = {
extraGroups = [
"wireshark"
];
};
};
};
} }

View file

@ -1,29 +0,0 @@
{ lib, pkgs }:
let
_ = [
"source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme"
"source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
"[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh"
"setopt globstarshort"
];
zshInitArgs = lib.concatMapStrings (x: x + "\n") _;
in
{
enable = true;
oh-my-zsh.enable = true;
initExtra = zshInitArgs;
enableCompletion = true;
plugins = [
{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsh";
src = pkgs.fetchFromGitHub {
owner = "chisui";
repo = "zsh-nix-shell";
rev = "v0.8.0";
sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7";
};
}
];
}

View file

@ -1,10 +0,0 @@
{ config }:
{
age.keyFile = "/home/${config.home.username}/.config/sops/age/keys.txt";
defaultSopsFile = ../secrets.yaml;
secrets.hosts = {
format = "binary";
sopsFile = ../secrets/hosts;
path = "/home/${config.home.username}/.config/gh/hosts.yml";
};
}

View file

@ -0,0 +1,24 @@
{ NAME }: { config, inputs, ... }: {
imports = [
inputs.sops-nix.nixosModules.sops
];
sops = {
defaultSopsFile = ../../secrets.yaml;
defaultSopsFormat = "yaml";
age = {
keyFile = "/home/${NAME}/.config/sops/age/keys.txt";
};
secrets = {
password = {
neededForUsers = true;
};
};
};
users = {
users = {
"${NAME}" = {
hashedPasswordFile = config.sops.secrets.password.path;
};
};
};
}

View file

@ -0,0 +1,14 @@
{ NAME }: { ... }: {
virtualisation = {
libvirtd = {
enable = true;
};
};
users = {
users = {
"${NAME}" = {
extraGroups = [ "kvm" "libvirtd" ];
};
};
};
}

View file

@ -0,0 +1,7 @@
{ ... }: {
services = {
arrpc = {
enable = true;
};
};
}

View file

@ -0,0 +1,17 @@
{ ... }:
{
xdg = {
desktopEntries = {
spotifyOpen = {
type = "Application";
name = "Open in Spotify";
genericName = "Music Player";
icon = "spotify-client";
terminal = false;
categories = [ "Audio" "Music" "Player" "AudioVideo" ];
exec = "qdbus org.mpris.MediaPlayer2.spotify /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.OpenUri %U";
mimeType = [ "x-scheme-handler/spotify" ];
};
};
};
}

View file

@ -0,0 +1,15 @@
{ config, ... }: {
services = {
flameshot = {
enable = true;
settings = {
General = {
savePath = "/home/${config.home.username}/ss/";
saveAsFileExtension = ".png";
showDesktopNotification = false;
startupLaunch = true;
};
};
};
};
}

View file

@ -0,0 +1,37 @@
{ lib, pkgs, ... }:
let
_ = [
"source ${pkgs.zsh-powerlevel10k}/share/zsh-powerlevel10k/powerlevel10k.zsh-theme"
"source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
"[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh"
"setopt globstarshort"
];
zshInitArgs = lib.concatMapStrings (x: x + "\n") _;
in
{
programs = {
zoxide = {
enable = true;
enableZshIntegration = true;
};
zsh = {
enable = true;
oh-my-zsh.enable = true;
initExtra = zshInitArgs;
enableCompletion = true;
plugins = [
{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsh";
src = pkgs.fetchFromGitHub {
owner = "chisui";
repo = "zsh-nix-shell";
rev = "v0.8.0";
sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7";
};
}
];
};
};
}

View file

@ -1,9 +1,35 @@
{ ... }: { pkgs, inputs, ... }:
let let
NAME = "meyer"; NAME = "meyer";
in in
{ {
imports = [ imports = [
(import ../modules/networkManager.nix { inherit NAME; }) (import ../../systemModules/networkManager.nix { inherit NAME; })
(import ../../systemModules/sops.nix { inherit NAME; })
(import ../../systemModules/vm.nix { inherit NAME; })
(import ../../programs/wireshark.nix { inherit NAME; })
]; ];
users = {
users = {
"${NAME}" = {
isNormalUser = true;
extraGroups = [
"wheel" # Enable sudo for the user.
"audio"
"sound"
"video"
"input"
"tty"
"plugdev"
];
shell = pkgs.zsh;
};
};
};
home-manager = {
extraSpecialArgs = { inherit inputs; };
users = {
"${NAME}" = import ./home.nix;
};
};
} }

View file

@ -1,29 +1,22 @@
{ config, lib, pkgs, inputs, ... }: { config, pkgs, inputs, ... }:
let let
flameshot = import ../../common/programs/flameshot.nix { inherit config; }; files = import ../../files.nix { inherit config; };
arrpc = import ../../common/programs/arrpc.nix { }; shell = import ../../shell.nix { inherit config pkgs; };
zsh = import ../../common/programs/zsh.nix { inherit lib pkgs; }; pkgTypes = import ../../pkgs.nix { inherit pkgs config; };
_s1 = import ../../common/sops.nix { inherit config; }; packages = pkgTypes.dev ++ pkgTypes.gui ++ pkgTypes.general ++ pkgTypes.scripts ++ pkgTypes.gaming;
files = import ../../common/files.nix { inherit config; };
shell = import ../../common/shell.nix { inherit config pkgs; };
p = import ../../common/pkgs.nix { inherit pkgs config; };
_p1 = p.dev ++ p.gui ++ p.general ++ p.scripts ++ p.gaming;
DES = import ../../common/desktopEntries.nix { };
in in
{ {
nixpkgs.config.allowInsecurePredicate = (pkg: true); nixpkgs.config.allowInsecurePredicate = (pkg: true);
imports = [ imports = [
inputs.sops-nix.homeManagerModules.sops ../homeModules/flameshot.nix
../homeModules/arrpc.nix
../homeModules/zsh.nix
../homeModules/desktopEntries.nix
./sops.nix
]; ];
sops = _s1;
programs = {
inherit zsh;
};
programs.java.enable = true; programs.java.enable = true;
programs.java.package = pkgs.temurin-bin-17; programs.java.package = pkgs.temurin-bin-17;
programs.zoxide.enable = true;
programs.zoxide.enableZshIntegration = true;
programs.git.enable = true; programs.git.enable = true;
programs.git.userName = "sadan"; programs.git.userName = "sadan";
programs.git.userEmail = "117494111+sadan4@users.noreply.github.com"; programs.git.userEmail = "117494111+sadan4@users.noreply.github.com";
@ -48,9 +41,6 @@ in
home.homeDirectory = "/home/meyer"; home.homeDirectory = "/home/meyer";
services = {
inherit arrpc flameshot;
};
# This value determines the Home Manager release that your configuration is # This value determines the Home Manager release that your configuration is
# compatible with. This helps avoid breakage when a new Home Manager release # compatible with. This helps avoid breakage when a new Home Manager release
# introduces backwards incompatible changes. # introduces backwards incompatible changes.
@ -61,7 +51,9 @@ in
home.stateVersion = "23.11"; # Please read the comment before changing. home.stateVersion = "23.11"; # Please read the comment before changing.
# The home.packages option allows you to install Nix packages into your # The home.packages option allows you to install Nix packages into your
# environment. # environment.
home.packages = _p1; home = {
inherit packages;
};
# Home Manager is pretty good at managing dotfiles. The primary way to manage # Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'. # plain files is through 'home.file'.
home.file = files; home.file = files;
@ -84,7 +76,6 @@ in
home.shellAliases = shell.dev.aliases; home.shellAliases = shell.dev.aliases;
home.sessionPath = shell.dev.path; home.sessionPath = shell.dev.path;
home.sessionVariables = shell.dev.env; home.sessionVariables = shell.dev.env;
xdg.desktopEntries = DES;
# Let Home Manager install and manage itself. # Let Home Manager install and manage itself.
programs.home-manager.enable = true; programs.home-manager.enable = true;

View file

@ -0,0 +1,15 @@
{ config, inputs, ... }:
{
imports = [
inputs.sops-nix.homeManagerModules.sops
];
sops = {
age.keyFile = "/home/${config.home.username}/.config/sops/age/keys.txt";
defaultSopsFile = ../../../secrets.yaml;
secrets.hosts = {
format = "binary";
sopsFile = ../../../secrets/hosts;
path = "/home/${config.home.username}/.config/gh/hosts.yml";
};
};
}