Evie Litherland-Smith
740325f707
Add firefox and chromium to web workspace, keep nyxt installed as quick popup browser to use elsewhere Remove discord workspace, move to apps workspace Add files workspace for thunar and libreoffice Add more waybar rewrites - libreoffice programs, thunar, PWAs like whatsapp web, etc...
266 lines
9 KiB
Nix
266 lines
9 KiB
Nix
{
|
|
description = "Evie's machine configurations";
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
stylix = {
|
|
url = "github:danth/stylix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = { nixpkgs, home-manager, stylix, ... }:
|
|
let
|
|
default = {
|
|
hostName = "Atlas";
|
|
user = "xenia";
|
|
system = "x86_64-linux";
|
|
group = "users";
|
|
shell = "fish";
|
|
systemModules = [ ./system/hyprland.nix ];
|
|
homeModules = [
|
|
./home/accounts/default.nix
|
|
./home/emacs/default.nix
|
|
./home/hyprland/default.nix
|
|
./home/nyxt/default.nix
|
|
./home/alacritty.nix
|
|
./home/btop.nix
|
|
./home/default.nix
|
|
./home/firefox.nix
|
|
./home/media.nix
|
|
./home/pass.nix
|
|
];
|
|
stateVersion = "23.05";
|
|
};
|
|
systemConfig = { hostName ? default.hostName, user ? default.user
|
|
, system ? default.system, group ? default.group, shell ? default.shell
|
|
, systemModules ? default.systemModules, serviceModules ? [ ]
|
|
, homeModules ? default.homeModules, stateVersion ? default.stateVersion
|
|
}:
|
|
let specialArgs = { inherit hostName user; };
|
|
in nixpkgs.lib.nixosSystem {
|
|
inherit system specialArgs;
|
|
modules = [
|
|
./hosts/${hostName}/configuration.nix
|
|
./hosts/${hostName}/hardware-configuration.nix
|
|
home-manager.nixosModules.home-manager
|
|
stylix.nixosModules.stylix
|
|
({ config, lib, pkgs, ... }: {
|
|
boot.loader = {
|
|
systemd-boot.enable = true;
|
|
efi.canTouchEfiVariables = true;
|
|
};
|
|
programs = {
|
|
${shell}.enable = true;
|
|
nano = {
|
|
enable = true;
|
|
syntaxHighlight = true;
|
|
nanorc = ''
|
|
set nowrap
|
|
set tabstospaces
|
|
set tabsize 2
|
|
'';
|
|
};
|
|
};
|
|
nix = {
|
|
enable = true;
|
|
settings = {
|
|
experimental-features = [ "nix-command" "flakes" ];
|
|
auto-optimise-store = true;
|
|
};
|
|
channel.enable = true;
|
|
registry = {
|
|
nixpkgs.to = {
|
|
type = "path";
|
|
path = pkgs.path;
|
|
};
|
|
};
|
|
nixPath = [ "nixpkgs=${nixpkgs}" ];
|
|
gc = {
|
|
automatic = true;
|
|
options = "--delete-older-than 7d";
|
|
};
|
|
optimise.automatic = true;
|
|
extraOptions = ''
|
|
keep-outputs = true
|
|
keep-derivations = true
|
|
min-free = ${toString (100 * 1024 * 1024)}
|
|
max-free = ${toString (1024 * 1024 * 1024)}
|
|
'';
|
|
};
|
|
nixpkgs.config.allowUnfreePredicate = pkg:
|
|
builtins.elem (lib.getName pkg) [
|
|
"steam"
|
|
"steam-original"
|
|
"steam-run"
|
|
"discord"
|
|
"nomachine-client"
|
|
"zoom"
|
|
];
|
|
system = { inherit stateVersion; };
|
|
networking = {
|
|
inherit hostName;
|
|
firewall.enable = true;
|
|
};
|
|
stylix = {
|
|
autoEnable = false;
|
|
targets = {
|
|
chromium.enable = true;
|
|
console.enable = true;
|
|
lightdm.enable = true;
|
|
};
|
|
image = ./wallpapers/tokyo-space.png;
|
|
base16Scheme =
|
|
"${pkgs.base16-schemes}/share/themes/tokyo-night-dark.yaml";
|
|
polarity = "dark";
|
|
opacity = {
|
|
popups = 0.5;
|
|
terminal = 0.8;
|
|
};
|
|
fonts = rec {
|
|
emoji = {
|
|
name = "Noto Color Emoji";
|
|
package = pkgs.noto-fonts-emoji;
|
|
};
|
|
monospace = {
|
|
name = "FiraMono Nerd Font";
|
|
package =
|
|
(pkgs.nerdfonts.override { fonts = [ "FiraMono" ]; });
|
|
};
|
|
sansSerif = {
|
|
name = "Fira Sans";
|
|
package = pkgs.fira;
|
|
};
|
|
serif = sansSerif;
|
|
};
|
|
homeManagerIntegration.followSystem = true;
|
|
};
|
|
fonts = {
|
|
packages = with pkgs; [
|
|
fira
|
|
fira-mono
|
|
fira-code
|
|
(nerdfonts.override {
|
|
fonts = [ "FiraCode" "NerdFontsSymbolsOnly" ];
|
|
})
|
|
emacs-all-the-icons-fonts
|
|
weather-icons
|
|
noto-fonts
|
|
noto-fonts-cjk
|
|
noto-fonts-emoji
|
|
liberation_ttf
|
|
];
|
|
fontconfig.enable = true;
|
|
};
|
|
users.users = let
|
|
authorizedKeys.keys = [
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINI1dWlS16Keil0MGPWmMsBzx8F9ylfz+fRwxUr8/tZ/ ion"
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIANfkqd5lPTsSPU3SRYnAa1UjCYDmDeBTyzq5McmWlm6 xenia@Vanguard"
|
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ/ZSSCN5sqrA+tdoIZr5EUm5DRuBV4dQ7J+QBEtUwUU xenia@Northstar"
|
|
];
|
|
in {
|
|
root.openssh = { inherit authorizedKeys; };
|
|
${user} = {
|
|
inherit group;
|
|
isNormalUser = true;
|
|
description = "Evie Litherland-Smith";
|
|
extraGroups =
|
|
[ "networkmanager" "wheel" "video" "input" "uinput" ];
|
|
shell = pkgs.${shell};
|
|
initialHashedPassword =
|
|
"$y$j9T$tHIPQt09Kf3KH2eIRze3g/$2mwSlcq27DTGvHNPJ5EP9/1CfL3bXP0F6oS/Vuffmn3";
|
|
openssh = { inherit authorizedKeys; };
|
|
};
|
|
};
|
|
home-manager = {
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
users = {
|
|
root = {
|
|
imports = [ ./home/default.nix ];
|
|
home = {
|
|
inherit stateVersion;
|
|
username = "root";
|
|
homeDirectory = "/root";
|
|
};
|
|
programs.home-manager.enable = true;
|
|
};
|
|
${user} = let
|
|
username = user;
|
|
homeDirectory = "/home/${user}";
|
|
in {
|
|
imports =
|
|
[ ./hosts/${hostName}/home.nix ./home/default.nix ]
|
|
++ homeModules;
|
|
home = { inherit username homeDirectory stateVersion; };
|
|
programs.home-manager.enable = true;
|
|
xdg.userDirs = {
|
|
enable = true;
|
|
createDirectories = true;
|
|
extraConfig = {
|
|
XDG_PROJECTS_DIR = "${homeDirectory}/Projects";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
})
|
|
] ++ systemModules ++ serviceModules;
|
|
};
|
|
in {
|
|
nixosConfigurations = {
|
|
|
|
Legion = let
|
|
hostName = "Legion";
|
|
user = "xenia";
|
|
system = "x86_64-linux";
|
|
in systemConfig {
|
|
inherit hostName user system;
|
|
systemModules = [ ./system/default.nix ];
|
|
serviceModules = [
|
|
./services/adguardhome.nix
|
|
./services/caddy.nix
|
|
./services/gitea.nix
|
|
./services/grafana.nix
|
|
./services/matrix.nix
|
|
./services/nextcloud.nix
|
|
./services/ntfy-sh.nix
|
|
./services/sshd.nix
|
|
./services/syncthing.nix
|
|
];
|
|
homeModules = [ ./home/default.nix ];
|
|
};
|
|
|
|
Northstar = let
|
|
hostName = "Northstar";
|
|
user = "xenia";
|
|
system = "x86_64-linux";
|
|
in systemConfig {
|
|
inherit hostName user system;
|
|
systemModules = default.systemModules ++ [ ./system/steam.nix ];
|
|
};
|
|
|
|
Ronin = let
|
|
hostName = "Ronin";
|
|
user = "elitherl";
|
|
system = "x86_64-linux";
|
|
in systemConfig { inherit hostName user system; };
|
|
|
|
Vanguard = let
|
|
hostName = "Vanguard";
|
|
user = "xenia";
|
|
system = "x86_64-linux";
|
|
in systemConfig {
|
|
inherit hostName user system;
|
|
systemModules = default.systemModules ++ [ ./system/steam.nix ];
|
|
homeModules = default.homeModules ++ [ ./home/obs.nix ];
|
|
};
|
|
|
|
};
|
|
};
|
|
}
|