rearrange imports

This commit is contained in:
tristan 2024-01-06 17:40:24 +00:00
parent 4e86180652
commit e272155088
19 changed files with 245 additions and 312 deletions

View file

@ -15,30 +15,36 @@
}; };
}; };
outputs = { outputs = inputs: let
nixpkgs,
home-manager,
stylix,
...
} @ inputs: let
system = "x86_64-linux"; system = "x86_64-linux";
mkConf = import ./lib/mkconf.nix; pkgs = import inputs.nixpkgs {inherit system;};
pkgs = import nixpkgs {inherit system;};
user = "tristan"; user = "tristan";
userName = "Tristan Beedell"; userFullname = "Tristan Beedell";
mkConf = import ./lib/mkconf.nix {inherit inputs system user userFullname;};
in { in {
formatter.${system} = pkgs.alejandra; formatter.${system} = pkgs.alejandra;
nixosConfigurations = { nixosConfigurations = {
zenix = mkConf "zenix" { zenix =
inherit inputs nixpkgs system user userName home-manager; mkConf [
}; ./hardware/zenix.nix
vm = mkConf "vm" { ./nixos/programs/hyprland.nix
inherit inputs nixpkgs system user userName home-manager; ./nixos/programs/gamer.nix
}; ./nixos/programs/personal.nix
FCS-Tristan-Nixbook = mkConf "work" { ] [
inherit inputs nixpkgs system user userName home-manager; ./home/programs/gamer.nix
work = true; ./home/programs/personal.nix
}; ];
vm = mkConf [
./hardware/vm.nix
] [];
FCS-Tristan-Nixbook = mkConf [
./hardware/fcs-tristan-nixbook.nix
./nixos/programs/hyprland.nix
./nixos/modules/work.nix
] [];
}; };
}; };
} }

View file

@ -1,10 +1,12 @@
{user}: { {
config, config,
lib, lib,
pkgs, pkgs,
modulesPath, modulesPath,
... ...
}: { }: let
user = config.user;
in {
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
]; ];

View file

@ -1,13 +1,6 @@
{ {pkgs, ...}: {
pkgs, environment.systemPackages = with pkgs; [
user, oversteer
}: {
home-manager.users.${user}.imports = [
{
home.packages = with pkgs; [
oversteer
];
}
]; ];
environment.etc.logitechG920 = { environment.etc.logitechG920 = {

View file

@ -1,18 +1,11 @@
{user}: { {config, ...}: let
modulesPath, user = config.user;
lib, in {
config,
...
}: {
imports = [
];
system.stateVersion = "24.05"; system.stateVersion = "24.05";
home-manager.users.${user}.imports = [ home-manager.users.${user}.imports = [
{ {
home.stateVersion = "24.05"; home.stateVersion = "24.05";
} }
../home/programs/sway.nix
]; ];
} }

View file

@ -1,14 +1,16 @@
{user}: { {
config, config,
lib, lib,
pkgs, pkgs,
modulesPath, modulesPath,
... ...
}: { }: let
user = config.user;
in {
imports = [ imports = [
(modulesPath + "/installer/scan/not-detected.nix") (modulesPath + "/installer/scan/not-detected.nix")
./ddc.nix ./ddc.nix
(import ./g920.nix {inherit user pkgs;}) ./g920.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"];
@ -79,12 +81,6 @@
system.stateVersion = "22.11"; # do not change system.stateVersion = "22.11"; # do not change
virtualisation = {
podman = {
enable = true;
};
};
home-manager.users.${user}.imports = [ home-manager.users.${user}.imports = [
{ {
home.stateVersion = "22.05"; home.stateVersion = "22.05";

View file

@ -3,30 +3,8 @@
pkgs, pkgs,
... ...
}: }:
# https://nix-community.github.io/home-manager/options.html # https://nix-community.github.io/home-manager/options.xhtml
let {
my-deps = {
notify-send = "${pkgs.libnotify}/bin/notify-send";
playerctl = "${pkgs.playerctl}/bin/playerctl";
grim = "${pkgs.grim}/bin/grim";
slurp = "${pkgs.slurp}/bin/slurp";
amixer = "${pkgs.alsa-utils}/bin/amixer";
swaybg = "${pkgs.swaybg}/bin/swaybg";
terminal = "${config.programs.terminal}/bin/${config.programs.terminal.pname}";
chafa = "${pkgs.chafa}/bin/chafa";
exiftool = "${pkgs.exiftool}/bin/exiftool";
wc = "${pkgs.coreutils}/bin/wc";
jq = "${pkgs.jq}/bin/jq";
hyprctl = "${pkgs.hyprland}/bin/hyprctl";
xargs = "${pkgs.findutils}/bin/xargs";
menu = "${config.programs.menu.package}${config.programs.menu.dmenuCommand}";
fileman = "${pkgs.pcmanfm}/bin/pcmanfm";
gawk = "${pkgs.gawk}/bin/awk";
glow = "${pkgs.glow}/bin/glow";
ffmpegthumbnailer = "${pkgs.ffmpegthumbnailer}/bin/ffmpegthumbnailer";
};
# lf-sixel = pkgs.callPackage ../custom/lf-sixel/. {};
in {
imports = [ imports = [
./modules/terminal.nix ./modules/terminal.nix
./modules/scripts.nix ./modules/scripts.nix
@ -36,6 +14,7 @@ in {
./modules/menu.nix ./modules/menu.nix
./modules/scripts.nix ./modules/scripts.nix
./programs/hyprland.nix
./programs/graphical.nix ./programs/graphical.nix
./programs/scripts.nix ./programs/scripts.nix
./programs/neovim/. ./programs/neovim/.

View file

@ -4,6 +4,7 @@
aliases = { aliases = {
graph = "log --oneline --all --graph"; graph = "log --oneline --all --graph";
amend = "commit --amend --no-edit"; amend = "commit --amend --no-edit";
sdiff = "diff --staged";
}; };
delta = { delta = {
enable = true; enable = true;

View file

@ -0,0 +1,32 @@
{pkgs, ...}: {
roles.email = {
enable = true;
email = "tristan@tristans.cloud";
terminal = true;
};
services.nextcloud-client.enable = true;
services.gnome-keyring.enable = true;
home.language = {
base = "eo.UTF-8";
};
home.packages = with pkgs; [
godot_4
ardour
blender
musescore
jellyfin-media-player
monero-gui
electrum
xmrig
transmission-remote-gtk
krita
organicmaps
anki
hugo
libsForQt5.neochat
bookworm
];
}

View file

@ -1,45 +1,45 @@
name: { {
nixpkgs,
inputs, inputs,
home-manager,
system, system,
user, user,
laptop ? false, userFullname,
work ? false,
userName,
... ...
}: }: modules: home-modules:
nixpkgs.lib.nixosSystem { with inputs;
specialArgs = {inherit inputs;}; nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
inherit system; inherit system;
modules = [ modules =
inputs.stylix.nixosModules.stylix modules
home-manager.nixosModules.home-manager ++ [
{ stylix.nixosModules.stylix
home-manager = { home-manager.nixosModules.home-manager
useGlobalPkgs = true; {
useUserPackages = true; home-manager = {
users.${user}.imports = [ useGlobalPkgs = true;
../home/. useUserPackages = true;
{ users.${user}.imports =
options.home.userFullname = nixpkgs.lib.mkOption {default = userName;}; home-modules
config.home.username = user; ++ [
} ../home/.
]; {
}; options.home.userFullname = nixpkgs.lib.mkOption {default = userFullname;};
nixpkgs.config.packageOverrides = pkgs: { config.home.username = user;
hycov = inputs.hycov.packages.${system}.hycov; }
}; ];
};
nixpkgs.config.packageOverrides = pkgs: {
hycov = hycov.packages.${system}.hycov;
};
imports = [ imports = [
(import ../hardware/${name}.nix {inherit user;}) {
(import ../nixos/. user) options.user = nixpkgs.lib.mkOption {default = user;};
}
../nixos/.
];
}
]; ];
}
roles.work.enable = work;
roles.personal.enable = !work;
}
];
}

View file

@ -1,19 +1,17 @@
# https://search.nixos.org/options # https://search.nixos.org/options
user: { {
inputs, inputs,
config, config,
pkgs, pkgs,
lib, lib,
... ...
}: { }: let
user = config.user;
in {
imports = [ imports = [
(import ./modules/gamer.nix {inherit user;}) ./modules/keyboard.nix
(import ./modules/keyboard.nix {inherit user;}) ./modules/display.nix
(import ./modules/display.nix {inherit user;}) ./modules/laptop.nix
(import ./modules/work.nix {inherit user;})
(import ./modules/laptop.nix {inherit user;})
(import ./modules/personal.nix {inherit user;})
(import ./programs/hyprland.nix {inherit user;})
../hardware/displays.nix ../hardware/displays.nix
]; ];
@ -121,7 +119,7 @@ user: {
users.users.${user} = { users.users.${user} = {
isNormalUser = true; isNormalUser = true;
extraGroups = ["wheel" "video" "networkmanager"]; extraGroups = ["wheel" "video" "networkmanager" "kvm"];
initialPassword = "pass"; initialPassword = "pass";
shell = pkgs.zsh; shell = pkgs.zsh;
}; };

View file

@ -1,12 +1,13 @@
{user}: { {
lib, lib,
pkgs, pkgs,
config, config,
... ...
}: }:
with lib; let with lib; let
cfg = config.displays; user = config.user;
cfg = config.displays;
renderDisplaysForHyprland = displays: (map displayHyprlandSetting (builtins.filter (d: d.enable) displays)); renderDisplaysForHyprland = displays: (map displayHyprlandSetting (builtins.filter (d: d.enable) displays));
displayHyprlandSetting = display: displayHyprlandSetting = display:

View file

@ -1,35 +0,0 @@
{user}: {
lib,
pkgs,
config,
...
}:
with lib; {
options.roles.gamer = {
enable = mkEnableOption "gamer packages";
};
config = mkIf config.roles.gamer.enable {
# required for heroic launcher
nixpkgs.config.permittedInsecurePackages = [
"electron-25.9.0"
];
home-manager.users.${user}.imports = [ ../../home/programs/gamer.nix ];
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"steam"
"steam-run"
"steam-original"
"osu-lazer"
];
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
programs.gamemode.enable = true;
};
}

View file

@ -1,9 +1,9 @@
{user}: { {
lib, lib,
pkgs,
config, config,
... ...
}: }:
let user = config.user; in
with lib; { with lib; {
options.keyboard = { options.keyboard = {
dvorak = { dvorak = {

View file

@ -1,11 +1,11 @@
{user}: { {
lib, lib,
pkgs,
config, config,
... ...
}: }:
with lib; let with lib; let
cfg = config.roles.laptop; cfg = config.roles.laptop;
user = config.user;
in { in {
options.roles = { options.roles = {
laptop = { laptop = {

View file

@ -1,56 +0,0 @@
{user}: {
lib,
pkgs,
config,
...
}:
with lib; {
options.roles.personal = {
enable = mkEnableOption "personal packages";
};
config = mkIf config.roles.personal.enable {
roles.gamer.enable = true;
i18n.supportedLocales = [
"eo/UTF-8"
"en_GB.UTF-8/UTF-8"
"en_US.UTF-8/UTF-8"
];
home-manager.users.${user}.imports = [
{
roles.email = {
enable = true;
email = "tristan@tristans.cloud";
terminal = true;
};
services.nextcloud-client.enable = true;
services.gnome-keyring.enable = true;
home.language = {
base = "eo.UTF-8";
};
home.packages = with pkgs; [
godot_4
ardour
blender
musescore
jellyfin-media-player
monero-gui
electrum
xmrig
transmission-remote-gtk
krita
organicmaps
anki
hugo
libsForQt5.neochat
bookworm
];
}
];
};
}

View file

@ -1,102 +1,95 @@
{user}: { user: {
lib, lib,
pkgs, pkgs,
config, config,
... ...
}: }: {
with lib; { home-manager.users.${user}.imports = [
options.roles.work = { {
enable = mkEnableOption "work packages"; roles.email = {
}; enable = true;
email = "tristan.beedell@cryoserver.com";
terminal = false;
};
config = mkIf config.roles.work.enable { programs.editor = {
home-manager.users.${user}.imports = [ package = pkgs.vscode;
{ };
roles.email = {
enable = true;
email = "tristan.beedell@cryoserver.com";
terminal = false;
};
programs.editor = { home.packages = with pkgs; [
package = pkgs.vscode; onedrive
}; kubectl
awscli2
home.packages = with pkgs; [ docker-compose
onedrive minikube
kubectl kubernetes-helm
awscli2 thunderbird
docker-compose (import ../../lib/mkapp.nix "slack" {
minikube inherit pkgs;
kubernetes-helm desktopName = "Slack";
thunderbird app-id = "mpagibdhafmlkgpemeicgogjnhclenoc";
(import ../../lib/mkapp.nix "slack" { browser = "${brave}/opt/brave.com/brave/brave-browser";
inherit pkgs; })
desktopName = "Slack"; (import ../../lib/mkapp.nix "teams" {
app-id = "mpagibdhafmlkgpemeicgogjnhclenoc"; inherit pkgs;
browser = "${brave}/opt/brave.com/brave/brave-browser"; browser = "${brave}/opt/brave.com/brave/brave-browser";
}) app-id = "cifhbcnohmdccbgoicgdjpfamggdegmo";
(import ../../lib/mkapp.nix "teams" { desktopName = "Microsoft Teams";
inherit pkgs; })
browser = "${brave}/opt/brave.com/brave/brave-browser"; (pkgs.writeShellScriptBin "codex11" ''
app-id = "cifhbcnohmdccbgoicgdjpfamggdegmo"; NIXOS_OZONE_WL= ${pkgs.vscode}/bin/code $@
desktopName = "Microsoft Teams"; '')
}) remmina
(pkgs.writeShellScriptBin "codex11" ''
NIXOS_OZONE_WL= ${pkgs.vscode}/bin/code $@
'')
remmina
];
gtk.gtk3.bookmarks = [
"file:///home/tristan/OneDrive/Documents/ OneDrive"
];
programs.vscode = {
extensions = with pkgs; [
vscode-extensions.ms-azuretools.vscode-docker
];
userSettings = {
"aws.telemetry" = false;
"gitlens.telemetry.enabled" = false;
"redhat.telemetry.enabled" = false;
};
};
wayland.windowManager.hyprland = {
extraConfig = ''
# === WORK MODULE ===
bind = SUPER, E, focuswindow, thunderbird
bind = SUPER, t, focuswindow, brave-cifhbcnohmdccbgoicgdjpfamggdegmo-Profile_2
'';
};
}
];
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
# nonfree vscode required for dev containers
"vscode"
"steam-run"
]; ];
networking = { gtk.gtk3.bookmarks = [
networkmanager = { "file:///home/tristan/OneDrive/Documents/ OneDrive"
plugins = [pkgs.networkmanager-openvpn]; ];
};
};
users.users.tristan.extraGroups = ["docker"]; programs.vscode = {
virtualisation.docker = { extensions = with pkgs; [
enable = true; vscode-extensions.ms-azuretools.vscode-docker
storageDriver = "btrfs"; ];
rootless = { userSettings = {
enable = false; "aws.telemetry" = false;
setSocketVariable = true; "gitlens.telemetry.enabled" = false;
daemon.settings = { "redhat.telemetry.enabled" = false;
"userns-remap" = "default";
}; };
}; };
wayland.windowManager.hyprland = {
extraConfig = ''
# === WORK MODULE ===
bind = SUPER, E, focuswindow, thunderbird
bind = SUPER, t, focuswindow, brave-cifhbcnohmdccbgoicgdjpfamggdegmo-Profile_2
'';
};
}
];
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
# nonfree vscode required for dev containers
"vscode"
"steam-run"
];
networking = {
networkmanager = {
plugins = [pkgs.networkmanager-openvpn];
};
};
users.users.tristan.extraGroups = ["docker"];
virtualisation.docker = {
enable = true;
storageDriver = "btrfs";
rootless = {
enable = false;
setSocketVariable = true;
daemon.settings = {
"userns-remap" = "default";
};
}; };
}; };
} }

16
nixos/programs/gamer.nix Normal file
View file

@ -0,0 +1,16 @@
{lib, ...}: {
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"steam"
"steam-run"
"steam-original"
"osu-lazer"
];
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
programs.gamemode.enable = true;
}

View file

@ -1,8 +1,6 @@
{user}: { {config, ...}: let
lib, user = config.user;
pkgs, in {
...
}: {
services.greetd = { services.greetd = {
enable = true; enable = true;
settings = rec { settings = rec {
@ -14,5 +12,9 @@
}; };
}; };
home-manager.users.${user}.imports = [../../home/programs/hyprland.nix]; home-manager.users.${user}.imports = [
{
wayland.windowManager.hyprland.enable = true;
}
];
} }

View file

@ -0,0 +1,12 @@
{...}: {
i18n.supportedLocales = [
"eo/UTF-8"
"en_GB.UTF-8/UTF-8"
"en_US.UTF-8/UTF-8"
];
virtualisation = {
podman = {
enable = true;
};
};
}