Evie Litherland-Smith
94e1a23bf2
Switched back to tokyo-night for base scheme but disable a lot of stylix config (and selectively re-enable for certain modules). Manually theme things using the tokyonight palette for a nicer and more cohesive experience Also change to a new wallpaper, fits scheme better as well Added named workspaces for common programs (emacs, chromium, steam) and keep numbered workspaces as generic scratch space Move MPRIS to right section, add hyprland/window module (with a separator bar)
270 lines
9.3 KiB
Nix
270 lines
9.3 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";
|
|
};
|
|
nix-index-database = {
|
|
url = "github:Mic92/nix-index-database";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
stylix = {
|
|
url = "github:danth/stylix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
kmonad = {
|
|
url = "github:kmonad/kmonad?dir=nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
};
|
|
|
|
outputs = { self, nixpkgs, home-manager, nix-index-database, stylix, kmonad
|
|
, ... }@inputs:
|
|
let
|
|
default = {
|
|
hostName = "Atlas";
|
|
user = "xenia";
|
|
system = "x86_64-linux";
|
|
group = "users";
|
|
shell = "zsh";
|
|
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/kdeconnect.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; };
|
|
extraSpecialArgs = specialArgs;
|
|
in nixpkgs.lib.nixosSystem {
|
|
inherit system specialArgs;
|
|
modules = [
|
|
./hosts/${hostName}/configuration.nix
|
|
./hosts/${hostName}/hardware-configuration.nix
|
|
home-manager.nixosModules.home-manager
|
|
nix-index-database.nixosModules.nix-index
|
|
stylix.nixosModules.stylix
|
|
kmonad.nixosModules.default
|
|
({ 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
|
|
'';
|
|
};
|
|
command-not-found.enable = false;
|
|
nix-index.enable = true;
|
|
};
|
|
nix = {
|
|
enable = true;
|
|
settings = {
|
|
experimental-features = [ "nix-command" "flakes" ];
|
|
auto-optimise-store = true;
|
|
};
|
|
channel.enable = false;
|
|
nixPath = [
|
|
"nixpkgs=${pkgs.path}"
|
|
"/nix/var/nix/profiles/per-user/root/channels"
|
|
];
|
|
registry = {
|
|
nixpkgs.to = {
|
|
type = "path";
|
|
path = pkgs.path;
|
|
};
|
|
};
|
|
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"
|
|
"nomachine-client"
|
|
];
|
|
system = { inherit stateVersion; };
|
|
networking = { inherit hostName; };
|
|
stylix = {
|
|
autoEnable = false;
|
|
image = ./wallpapers/tokyo-space.png;
|
|
base16Scheme =
|
|
"${pkgs.base16-schemes}/share/themes/tokyo-night-terminal-dark.yaml";
|
|
polarity = "dark";
|
|
opacity = {
|
|
popups = 0.8;
|
|
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 = {
|
|
inherit extraSpecialArgs;
|
|
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/default.nix
|
|
./services/gitea/default.nix
|
|
./services/nextcloud/default.nix
|
|
./services/ntfy-sh/default.nix
|
|
./services/sshd/default.nix
|
|
./services/syncthing/default.nix
|
|
];
|
|
homeModules =
|
|
[ ./home/default.nix ./home/media.nix ./home/emacs/default.nix ];
|
|
};
|
|
|
|
Northstar = let
|
|
hostName = "Northstar";
|
|
user = "xenia";
|
|
system = "x86_64-linux";
|
|
in systemConfig { inherit hostName user system; };
|
|
|
|
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 ];
|
|
};
|
|
|
|
};
|
|
};
|
|
}
|