feat: reconfigure

This commit is contained in:
Infinidoge 2021-09-08 09:33:25 -04:00
parent 00f3a285dd
commit c71407281c
13 changed files with 252 additions and 120 deletions

157
flake.nix
View file

@ -51,91 +51,104 @@
# end ANTI CORRUPTION LAYER
};
outputs = { self, digga, bud, nixos, home, nixos-hardware, nur, agenix
, nvfetcher, deploy, ... }@inputs:
digga.lib.mkFlake {
inherit self inputs;
outputs =
{ self
, digga
, bud
, nixos
, home
, nixos-hardware
, nur
, agenix
, nvfetcher
, deploy
, ...
}@inputs:
digga.lib.mkFlake
{
inherit self inputs;
channelsConfig = { allowUnfree = true; };
channelsConfig = { allowUnfree = true; };
channels = {
nixos = {
imports = [ (digga.lib.importOverlays ./overlays) ];
overlays = [
digga.overlays.patchedNix
nur.overlay
agenix.overlay
nvfetcher.overlay
deploy.overlay
./pkgs/default.nix
];
};
latest = { };
};
lib = import ./lib { lib = digga.lib // nixos.lib; };
sharedOverlays = [
(final: prev: {
__dontExport = true;
lib = prev.lib.extend (lfinal: lprev: { our = self.lib; });
})
];
channels = {
nixos = {
imports = [ (digga.lib.importOverlays ./overlays) ];
overlays = [
digga.overlays.patchedNix
nur.overlay
agenix.overlay
nvfetcher.overlay
deploy.overlay
./pkgs/default.nix
];
};
latest = { };
};
lib = import ./lib { lib = digga.lib // nixos.lib; };
sharedOverlays = [
(final: prev: {
__dontExport = true;
lib = prev.lib.extend (lfinal: lprev: { our = self.lib; });
})
];
nixos = {
hostDefaults = {
system = "x86_64-linux";
channelName = "latest";
imports = [ (digga.lib.importModules ./modules) ];
externalModules = [
{ lib.our = self.lib; }
digga.nixosModules.bootstrapIso
digga.nixosModules.nixConfig
home.nixosModules.home-manager
agenix.nixosModules.age
bud.nixosModules.bud
];
};
imports = [ (digga.lib.importHosts ./hosts) ];
hosts = {
# set host specific properties here
NixOS = { };
};
importables = rec {
profiles = digga.lib.rakeLeaves ./profiles // {
users = digga.lib.rakeLeaves ./users;
hostDefaults = {
system = "x86_64-linux";
channelName = "latest";
imports = [ (digga.lib.importModules ./modules) ];
externalModules = [
{ lib.our = self.lib; }
digga.nixosModules.bootstrapIso
digga.nixosModules.nixConfig
home.nixosModules.home-manager
agenix.nixosModules.age
bud.nixosModules.bud
];
};
suites = with profiles; rec {
base = [ core users.nixos users.root ];
imports = [ (digga.lib.importHosts ./hosts) ];
hosts = {
# set host specific properties here
Infini-DESKTOP = { };
};
importables = rec {
profiles = digga.lib.rakeLeaves ./profiles // {
users = digga.lib.rakeLeaves ./users;
};
suites = with profiles; rec {
base = [ core users.root users.infinidoge develop.common ];
graphical = base ++ [ graphical.qtile ];
};
};
};
};
home = {
imports = [ (digga.lib.importModules ./users/modules) ];
externalModules = [ ];
importables = rec {
profiles = digga.lib.rakeLeaves ./users/profiles;
suites = with profiles; rec { base = [ direnv git ]; };
home = {
imports = [ (digga.lib.importModules ./users/modules) ];
externalModules = [ ];
importables = rec {
profiles = digga.lib.rakeLeaves ./users/profiles;
suites = with profiles; rec { base = [ direnv git ]; };
};
users = {
infinidoge = { };
}; # digga.lib.importers.rakeLeaves ./users/hm;
};
users = {
infinidoge = { suites, ... }: { imports = suites.base; };
}; # digga.lib.importers.rakeLeaves ./users/hm;
};
devshell = ./shell;
devshell = ./shell;
homeConfigurations =
digga.lib.mkHomeConfigurations self.nixosConfigurations;
homeConfigurations =
digga.lib.mkHomeConfigurations self.nixosConfigurations;
deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations { };
deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations { };
defaultTemplate = self.templates.bud;
templates.bud.path = ./.;
templates.bud.description = "bud template";
defaultTemplate = self.templates.bud;
templates.bud.path = ./.;
templates.bud.description = "bud template";
} // {
} // {
budModules = { devos = import ./bud; };
};
}

View file

@ -1,5 +1,12 @@
{ suites, ... }: {
imports = suites.base ++ [ ./hardware-configuration.nix ];
{ suites, profiles, pkgs, ... }: {
imports = suites.graphical
++ [ ./hardware-configuration.nix ]
++ (with profiles; [
networking.wireless
hardware.sound
graphical.nvidia
peripherals.printing
]);
system.stateVersion = "21.05";
@ -17,24 +24,13 @@
time.timeZone = "America/New_York";
networking = {
useDHCP = false; # Explicitly disable broad DHCP
interfaces = {
# Enable DHCP per interface
eth0.useDHCP = true;
wlp41s0.useDHCP = true;
};
wireless = {
enable = true; # Enable wireless
interfaces = [ "wlp41s0" ];
networks = {
Mashtun = {
pskRaw =
"1ccf3e0cc08700f2484e4a0e202836898cc8c084b7e05d6798bf0a7ba9bbc306";
};
};
};
wireless.interfaces = [ "wlp41s0" ];
};
i18n.defaultLocale = "en_US.UTF-8";
@ -67,36 +63,4 @@
services.gvfs.enable = true; # MTP support
services.xserver = {
# Enable X11 Windowing and Qtile Window Manager
enable = true;
windowManager.qtile.enable = true;
# Configure X11 keymap
layout = "us";
videoDrivers = [ "nvidia" ];
};
hardware.nvidia.modesetting.enable = true;
hardware.opengl.driSupport32Bit = true;
# Enable CUPS to print documents.
services.printing = {
enable = true;
drivers = with pkgs; [
cnijfilter2
gutenprintBin
cupsBjnp
cups-bjnp
canon-cups-ufr2
carps-cups
cnijfilter_2_80
cnijfilter_4_00
];
};
# Enable sound.
sound.enable = true;
hardware.pulseaudio.enable = true;
}

49
profiles/core/nix.nix Normal file
View file

@ -0,0 +1,49 @@
{ pkgs, ... }: {
nix = {
systemFeatures = [ "nixos-test" "benchmark" "big-parallel" "kvm" ];
autoOptimiseStore = true;
gc.automatic = true;
optimise.automatic = true;
useSandbox = true;
allowedUsers = [ "@wheel" ];
trustedUsers = [ "root" "@wheel" ];
extraOptions = ''
min-free = 536870912
keep-outputs = true
keep-derivations = true
fallback = true
'';
};
environment = {
systemPackages = with pkgs; [ nix-index nixfmt nixpkgs-fmt ];
shellAliases = {
# nix
n = "nix";
np = "n profile";
ni = "np install";
nr = "np remove";
ns = "n search --no-update-lock-file";
nf = "n flake";
nepl = "n repl '<nixpkgs>'";
srch = "ns nixos";
orch = "ns override";
nrb = ifSudo "sudo nixos-rebuild";
mn = ''
manix "" | grep '^# ' | sed 's/^# \(.*\) (.*/\1/;s/ (.*//;s/^# //' | sk --preview="manix '{}'" | xargs manix
'';
# fix nixos-option
nixos-option = "nixos-option -I nixpkgs=${self}/lib/compat";
};
};
}

View file

@ -0,0 +1 @@
{ imports = [ ./zsh ]; }

View file

@ -0,0 +1,8 @@
{ ... }: {
programs.neovim = {
defaultEditor = true;
viAlias = true;
vimAlias = true;
};
}

45
profiles/develop/zsh.nix Normal file
View file

@ -0,0 +1,45 @@
{ ... }: {
programs.zsh = {
enable = true;
autosuggestions.enable = true;
ohMyZsh = {
enable = true;
plugins = [
# Display
"colorize"
"colored-man-pages"
# zsh modifications
"zsh-interactive-cd"
"zsh_reload"
"command-not-found"
# Aliases
"alias-finder"
# Applications
## Docker
"docker"
## Python
"pip"
"python"
## Systemd
"systemd"
## Git
"git"
"github"
"gitignore"
## Emacs
"emacs"
## Vim
"fancy-ctrl-z"
];
};
syntaxHighlighting = {
enable = true;
highlighters = [ "main" "brackets" "pattern" "cursor" ];
patterns = { "rm -rf *" = "fg=white,bold,bg=red"; };
};
zsh-autoenv.enable = true;
};
}

View file

@ -0,0 +1,6 @@
{ ... }: {
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia.modesetting.enable = true;
hardware.opengl.driSupport32Bit = true;
}

View file

@ -0,0 +1,7 @@
{ pkgs, ... }: {
imports = [ ./xserver ];
services.xserver.windowManager.qtile.enable = true;
environment.systemPackages = with pkgs; [ xsecurelock ];
}

View file

@ -0,0 +1,15 @@
{ pkgs, ... }: {
services.xserver = {
enable = true;
layout = "us";
};
environment.systemPackages = with pkgs; [
xclip
xdotool
xorg.xwininfo
xorg.xauth
blugon
];
}

View file

@ -0,0 +1,4 @@
{ ... }: {
sound.enable = true;
hardware.pulseaudio.enable = true;
}

View file

@ -0,0 +1,3 @@
{ ... }: {
services.gvfs.enable = true; # MTP support
}

View file

@ -0,0 +1,15 @@
{ pkgs, ... }: {
services.printing = {
enable = true;
drivers = with pkgs; [
cnijfilter2
gutenprintBin
cupsBjnp
cups-bjnp
canon-cups-ufr2
carps-cups
cnijfilter_2_80
cnijfilter_4_00
];
};
}

View file

@ -1,5 +1,7 @@
{ hmUsers, ... }: {
home-manager.users = { inherit (hmUsers) infinidoge; };
{ config, self, lib, pkgs, ... }: {
home-manager.users.infinidoge = { suites, ... }: {
imports = suites.base;
};
users.users.infinidoge = {
uid = 1000;