summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandromeda <andromeda@lenovo>2025-12-30 00:25:06 +0100
committerandromeda <andromeda@lenovo>2025-12-30 00:27:14 +0100
commita7c4b7dcd1f5d221b976fc65b6f82e501f87738d (patch)
tree77006f72d6431bee0e825fc1e62de3286890b53b
parent52e547c0a4569c76984423ba118f0c5554b6a012 (diff)
parentabab971ba65b74ba4928c674c96244da8d9ef92b (diff)
works
-rw-r--r--configuration.nix32
-rw-r--r--flake.lock489
-rw-r--r--flake.nix52
-rw-r--r--hardware-configuration.nix19
-rw-r--r--machines/laptop.nix5
-rw-r--r--users/andromeda/home.nix270
-rw-r--r--users/andromeda/nix-wallpaper-gear.pngbin0 -> 7844869 bytes
-rw-r--r--users/andromeda/stylix.nix35
8 files changed, 872 insertions, 30 deletions
diff --git a/configuration.nix b/configuration.nix
index 4bdff80..0f42365 100644
--- a/configuration.nix
+++ b/configuration.nix
@@ -1,9 +1,13 @@
-{lib, ...}: {
+{
+ lib,
+ machine,
+ ...
+}: {
boot.loader = {
efi.canTouchEfiVariables = true;
systemd-boot.enable = true;
};
- environment.persistence."/persist" = {
+ environment.persistence."/nix/persist" = {
enable = true;
hideMounts = true;
directories = [
@@ -15,18 +19,22 @@
];
files = [
"/etc/machine-id"
- "/etc/shadow"
- "/etc/shadow-"
- "/etc/passwd"
- "/etc/passwd-"
"/etc/ly/save.txt"
];
- users."mtgmonkey" = {
+ users."andromeda" = {
directories = [
- "conf"
- "Downloads"
".backups"
+ ".local/share/Anki2"
+ ".local/share/chat.fluffy.fluffychat"
+ ".local/share/zoxide"
".ssh"
+ "conf"
+ "Downloads"
+ "pp"
+ ];
+ files = [
+ ".bash_history"
+ ".brush_history"
];
};
};
@@ -38,7 +46,7 @@
networking = {
dhcpcd.enable = true;
firewall.enable = true;
- hostName = "nixos";
+ hostName = machine.hostname;
networkmanager.enable = true;
};
nix.settings.experimental-features = [
@@ -68,9 +76,9 @@
};
system.stateVersion = "26.05";
time.timeZone = "Europe/Berlin";
- users.users."mtgmonkey" = {
+ users.users."andromeda" = {
isNormalUser = true;
- description = "mtgmonkey";
+ description = "andromeda";
initialPassword = "password";
extraGroups = [
"networkmanager"
diff --git a/flake.lock b/flake.lock
index 39dc84f..4915b56 100644
--- a/flake.lock
+++ b/flake.lock
@@ -1,5 +1,223 @@
{
"nodes": {
+ "base16": {
+ "inputs": {
+ "fromYaml": "fromYaml"
+ },
+ "locked": {
+ "lastModified": 1755819240,
+ "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=",
+ "owner": "SenchoPens",
+ "repo": "base16.nix",
+ "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6",
+ "type": "github"
+ },
+ "original": {
+ "owner": "SenchoPens",
+ "repo": "base16.nix",
+ "type": "github"
+ }
+ },
+ "base16-fish": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1765809053,
+ "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
+ "owner": "tomyun",
+ "repo": "base16-fish",
+ "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tomyun",
+ "repo": "base16-fish",
+ "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
+ "type": "github"
+ }
+ },
+ "base16-helix": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1760703920,
+ "narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=",
+ "owner": "tinted-theming",
+ "repo": "base16-helix",
+ "rev": "d646af9b7d14bff08824538164af99d0c521b185",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "base16-helix",
+ "type": "github"
+ }
+ },
+ "base16-vim": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1732806396,
+ "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
+ "owner": "tinted-theming",
+ "repo": "base16-vim",
+ "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "base16-vim",
+ "rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
+ "type": "github"
+ }
+ },
+ "firefox-gnome-theme": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1764724327,
+ "narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=",
+ "owner": "rafaelmardojai",
+ "repo": "firefox-gnome-theme",
+ "rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047",
+ "type": "github"
+ },
+ "original": {
+ "owner": "rafaelmardojai",
+ "repo": "firefox-gnome-theme",
+ "type": "github"
+ }
+ },
+ "flake-compat": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1751685974,
+ "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
+ "ref": "refs/heads/main",
+ "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
+ "revCount": 92,
+ "type": "git",
+ "url": "https://git.lix.systems/lix-project/flake-compat.git"
+ },
+ "original": {
+ "type": "git",
+ "url": "https://git.lix.systems/lix-project/flake-compat.git"
+ }
+ },
+ "flake-parts": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "nur",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1733312601,
+ "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "flake-parts_2": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "nvf",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1760948891,
+ "narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "flake-parts_3": {
+ "inputs": {
+ "nixpkgs-lib": [
+ "stylix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1763759067,
+ "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "hercules-ci",
+ "repo": "flake-parts",
+ "type": "github"
+ }
+ },
+ "fromYaml": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1731966426,
+ "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=",
+ "owner": "SenchoPens",
+ "repo": "fromYaml",
+ "rev": "106af9e2f715e2d828df706c386a685698f3223b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "SenchoPens",
+ "repo": "fromYaml",
+ "type": "github"
+ }
+ },
+ "gnome-shell": {
+ "flake": false,
+ "locked": {
+ "host": "gitlab.gnome.org",
+ "lastModified": 1764524476,
+ "narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
+ "owner": "GNOME",
+ "repo": "gnome-shell",
+ "rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22",
+ "type": "gitlab"
+ },
+ "original": {
+ "host": "gitlab.gnome.org",
+ "owner": "GNOME",
+ "ref": "gnome-49",
+ "repo": "gnome-shell",
+ "type": "gitlab"
+ }
+ },
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1766980997,
+ "narHash": "sha256-oegDNAvyQwaG3GqSi4U5jpKM7SYHGESGVIuKMRV/lbw=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "7a7b43c7231a439d248179ba8d561dd6cd81799b",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
"impermanence": {
"locked": {
"lastModified": 1737831083,
@@ -15,6 +233,39 @@
"type": "github"
}
},
+ "mnw": {
+ "locked": {
+ "lastModified": 1758834834,
+ "narHash": "sha256-Y7IvY4F8vajZyp3WGf+KaiIVwondEkMFkt92Cr9NZmg=",
+ "owner": "Gerg-L",
+ "repo": "mnw",
+ "rev": "cfbc7d1cc832e318d0863a5fc91d940a96034001",
+ "type": "github"
+ },
+ "original": {
+ "owner": "Gerg-L",
+ "repo": "mnw",
+ "type": "github"
+ }
+ },
+ "ndg": {
+ "inputs": {
+ "nixpkgs": "nixpkgs_2"
+ },
+ "locked": {
+ "lastModified": 1765720983,
+ "narHash": "sha256-tWtukpABmux6EC/FuCJEgA1kmRjcRPtED44N+GGPq+4=",
+ "owner": "feel-co",
+ "repo": "ndg",
+ "rev": "f399ace8bb8e1f705dd8942b24d207aa4d75c936",
+ "type": "github"
+ },
+ "original": {
+ "owner": "feel-co",
+ "repo": "ndg",
+ "type": "github"
+ }
+ },
"nixpkgs": {
"locked": {
"lastModified": 1766651565,
@@ -31,6 +282,22 @@
"type": "github"
}
},
+ "nixpkgs_2": {
+ "locked": {
+ "lastModified": 1764242076,
+ "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
"noshell": {
"inputs": {
"nixpkgs": [
@@ -51,11 +318,231 @@
"type": "github"
}
},
+ "nur": {
+ "inputs": {
+ "flake-parts": "flake-parts",
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1767026366,
+ "narHash": "sha256-TqJXPpEPYfeFCbraquNdrB1dJYuEqV474Npv8UcNxrs=",
+ "owner": "nix-community",
+ "repo": "NUR",
+ "rev": "1f8c02a96c58c0dd90f2de45440b9ef01571abc3",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "NUR",
+ "type": "github"
+ }
+ },
+ "nur_2": {
+ "inputs": {
+ "flake-parts": [
+ "stylix",
+ "flake-parts"
+ ],
+ "nixpkgs": [
+ "stylix",
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1764773531,
+ "narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
+ "owner": "nix-community",
+ "repo": "NUR",
+ "rev": "1d9616689e98beded059ad0384b9951e967a17fa",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "NUR",
+ "type": "github"
+ }
+ },
+ "nvf": {
+ "inputs": {
+ "flake-compat": "flake-compat",
+ "flake-parts": "flake-parts_2",
+ "mnw": "mnw",
+ "ndg": "ndg",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "systems": "systems"
+ },
+ "locked": {
+ "lastModified": 1766596669,
+ "narHash": "sha256-9C72hpMDa99n4MbqZqsBkrBQZe+HEN9lnu7Sme67nmU=",
+ "owner": "notashelf",
+ "repo": "nvf",
+ "rev": "ef1f22efaf4aa37ba9382a7d1807fa8ac9c097fd",
+ "type": "github"
+ },
+ "original": {
+ "owner": "notashelf",
+ "repo": "nvf",
+ "type": "github"
+ }
+ },
"root": {
"inputs": {
+ "home-manager": "home-manager",
"impermanence": "impermanence",
"nixpkgs": "nixpkgs",
- "noshell": "noshell"
+ "noshell": "noshell",
+ "nur": "nur",
+ "nvf": "nvf",
+ "stylix": "stylix"
+ }
+ },
+ "stylix": {
+ "inputs": {
+ "base16": "base16",
+ "base16-fish": "base16-fish",
+ "base16-helix": "base16-helix",
+ "base16-vim": "base16-vim",
+ "firefox-gnome-theme": "firefox-gnome-theme",
+ "flake-parts": "flake-parts_3",
+ "gnome-shell": "gnome-shell",
+ "nixpkgs": [
+ "nixpkgs"
+ ],
+ "nur": "nur_2",
+ "systems": "systems_2",
+ "tinted-foot": "tinted-foot",
+ "tinted-kitty": "tinted-kitty",
+ "tinted-schemes": "tinted-schemes",
+ "tinted-tmux": "tinted-tmux",
+ "tinted-zed": "tinted-zed"
+ },
+ "locked": {
+ "lastModified": 1766603026,
+ "narHash": "sha256-J2DDdRqSU4w9NNgkMfmMeaLIof5PXtS9RG7y6ckDvQE=",
+ "owner": "nix-community",
+ "repo": "stylix",
+ "rev": "551df12ee3ebac52c5712058bd97fd9faa4c3430",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "stylix",
+ "type": "github"
+ }
+ },
+ "systems": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "systems_2": {
+ "locked": {
+ "lastModified": 1681028828,
+ "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
+ "owner": "nix-systems",
+ "repo": "default",
+ "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-systems",
+ "repo": "default",
+ "type": "github"
+ }
+ },
+ "tinted-foot": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1726913040,
+ "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
+ "owner": "tinted-theming",
+ "repo": "tinted-foot",
+ "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "tinted-foot",
+ "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
+ "type": "github"
+ }
+ },
+ "tinted-kitty": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1735730497,
+ "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
+ "owner": "tinted-theming",
+ "repo": "tinted-kitty",
+ "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "tinted-kitty",
+ "type": "github"
+ }
+ },
+ "tinted-schemes": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1763914658,
+ "narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
+ "owner": "tinted-theming",
+ "repo": "schemes",
+ "rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "schemes",
+ "type": "github"
+ }
+ },
+ "tinted-tmux": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1764465359,
+ "narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
+ "owner": "tinted-theming",
+ "repo": "tinted-tmux",
+ "rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "tinted-tmux",
+ "type": "github"
+ }
+ },
+ "tinted-zed": {
+ "flake": false,
+ "locked": {
+ "lastModified": 1764464512,
+ "narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
+ "owner": "tinted-theming",
+ "repo": "base16-zed",
+ "rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
+ "type": "github"
+ },
+ "original": {
+ "owner": "tinted-theming",
+ "repo": "base16-zed",
+ "type": "github"
}
}
},
diff --git a/flake.nix b/flake.nix
index e3e665e..dad3a4f 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,24 +1,68 @@
{
inputs = {
+ home-manager = {
+ url = "github:nix-community/home-manager";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
impermanence.url = "github:nix-community/impermanence";
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
noshell = {
url = "github:viperML/noshell";
inputs.nixpkgs.follows = "nixpkgs";
};
+ nur = {
+ url = "github:nix-community/NUR";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ nvf = {
+ url = "github:notashelf/nvf";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+ stylix = {
+ url = "github:nix-community/stylix";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
};
outputs = {
+ home-manager,
impermanence,
nixpkgs,
noshell,
- self,
+ nur,
+ nvf,
+ stylix,
...
}: let
- system = "x86_64-linux";
+ laptop = import ./machines/laptop.nix;
in {
- nixosConfigurations."nixos" = nixpkgs.lib.nixosSystem {
- inherit system;
+ nixosConfigurations.${laptop.hostname} = nixpkgs.lib.nixosSystem {
+ system = laptop.system;
+ specialArgs = {machine = laptop;};
modules = [
+ home-manager.nixosModules.home-manager
+ {
+ nixpkgs.overlays = [nur.overlays.default];
+ home-manager.useGlobalPkgs = true;
+ home-manager.extraSpecialArgs = {
+ machine = laptop;
+ };
+ home-manager.users =
+ builtins.mapAttrs
+ (name: value: value)
+ (
+ nixpkgs.legacyPackages.${laptop.system}.lib.genAttrs
+ laptop.usernames
+ (
+ name: {
+ imports = [
+ stylix.homeModules.stylix
+ nvf.homeManagerModules.default
+ ./users/${name}/home.nix
+ ];
+ }
+ )
+ );
+ }
impermanence.nixosModules.impermanence
noshell.nixosModules.default
./configuration.nix
diff --git a/hardware-configuration.nix b/hardware-configuration.nix
index dad7ef5..2c0a93f 100644
--- a/hardware-configuration.nix
+++ b/hardware-configuration.nix
@@ -4,6 +4,7 @@
{
config,
lib,
+ pkgs,
modulesPath,
...
}: {
@@ -11,7 +12,7 @@
(modulesPath + "/installer/scan/not-detected.nix")
];
- boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" "sdhci_pci"];
+ boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "sdhci_pci"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
@@ -22,26 +23,18 @@
options = ["defaults" "size=25%" "mode=755"];
};
- fileSystems."/persist" = {
- device = "/dev/disk/by-label/NIXPERSIST";
- neededForBoot = true;
- fsType = "btrfs";
- };
-
fileSystems."/nix" = {
- device = "/dev/disk/by-label/NIXSTORE";
+ device = "/dev/disk/by-uuid/0e586651-36f4-42b0-99b3-3f0704a894d6";
fsType = "btrfs";
};
fileSystems."/boot" = {
- device = "/dev/disk/by-uuid/107D-CA99";
+ device = "/dev/disk/by-uuid/F425-55BA";
fsType = "vfat";
- options = ["fmask=0077" "dmask=0077"];
+ options = ["fmask=0022" "dmask=0022"];
};
- swapDevices = [
- {device = "/dev/disk/by-uuid/18c2ef9b-1568-41e4-b67a-96155822ae02";}
- ];
+ swapDevices = [];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
diff --git a/machines/laptop.nix b/machines/laptop.nix
new file mode 100644
index 0000000..c70deb9
--- /dev/null
+++ b/machines/laptop.nix
@@ -0,0 +1,5 @@
+{
+ hostname = "lenovo";
+ usernames = ["andromeda"];
+ system = "x86_64-linux";
+}
diff --git a/users/andromeda/home.nix b/users/andromeda/home.nix
new file mode 100644
index 0000000..86aea14
--- /dev/null
+++ b/users/andromeda/home.nix
@@ -0,0 +1,270 @@
+{
+ config,
+ lib,
+ machine,
+ pkgs,
+ ...
+}: let
+ background-path = ".config/sway/background.png";
+ sway_config = builtins.toFile "sway_config" ''
+ set $mod Mod4
+ set $left h
+ set $down j
+ set $up k
+ set $right l
+ set $term alacritty
+ set $menu wmenu-run
+ set $screenshot grim -g "$(slurp)"
+ floating_modifier $mod normal
+
+ workspace_layout stacking
+ output * bg ${config.home.homeDirectory}/${background-path} fill
+
+ # launch programs
+ bindsym $mod+Shift+Return exec $term
+ bindsym $mod+Shift+d exec $menu
+ bindsym $mod+Shift+a exec anki
+ bindsym $mod+Shift+q exec librewolf
+ bindsym $mod+Shift+s exec $screenshot
+
+ bindsym $mod+Shift+c kill
+
+ bindsym $mod+Shift+r reload
+
+ bindsym $mod+Shift+Alt+q exit
+
+ bindsym $mod+$left focus left
+ bindsym $mod+$down focus down
+ bindsym $mod+$up focus up
+ bindsym $mod+$right focus right
+
+ bindsym $mod+Shift+$left move left
+ bindsym $mod+Shift+$down move down
+ bindsym $mod+Shift+$up move up
+ bindsym $mod+Shift+$right move right
+
+ bindsym $mod+1 workspace number 1
+ bindsym $mod+2 workspace number 2
+ bindsym $mod+3 workspace number 3
+ bindsym $mod+4 workspace number 4
+ bindsym $mod+5 workspace number 5
+ bindsym $mod+6 workspace number 6
+ bindsym $mod+7 workspace number 7
+ bindsym $mod+8 workspace number 8
+ bindsym $mod+9 workspace number 9
+ bindsym $mod+0 workspace number 0
+
+ bindsym $mod+Shift+1 move container to workspace number 1
+ bindsym $mod+Shift+2 move container to workspace number 2
+ bindsym $mod+Shift+3 move container to workspace number 3
+ bindsym $mod+Shift+4 move container to workspace number 4
+ bindsym $mod+Shift+5 move container to workspace number 5
+ bindsym $mod+Shift+6 move container to workspace number 6
+ bindsym $mod+Shift+7 move container to workspace number 7
+ bindsym $mod+Shift+8 move container to workspace number 8
+ bindsym $mod+Shift+9 move container to workspace number 9
+ bindsym $mod+Shift+0 move container to workspace number 0
+
+ bindsym $mod+f fullscreen
+ bindsym $mod+Shift+space floating toggle
+ bindsym $mod+Shift+minus move scratchpad
+ bindsym $mod+minus scratchpad show
+
+ bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle
+ bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5%
+ bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5%
+ bindsym --locked XF86AudioMicMute exec pact set-source-mute \@DEFAULT_SOURCE@ toggle
+ bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%-
+ bindsym --locked XF86MonbrightnessUp exec brightnessctl set 5%+
+
+ default_border none
+ font pango:monospace 0.001
+ titlebar_border_thickness 0
+ titlebar_padding 0
+ '';
+in {
+ imports = [./stylix.nix];
+ xdg.configFile."shell".source = lib.getExe pkgs.brush;
+ xdg.configFile."sway/config".source = lib.mkForce sway_config;
+ # xdg.configFile.${background-path}.source = ./nix-wallpaper-gear.png;
+ wayland.windowManager.sway.enable = true;
+ home = {
+ username = "andromeda";
+ homeDirectory = "/home/${config.home.username}";
+ stateVersion = "26.05";
+ packages = [
+ pkgs.acpi
+ pkgs.alacritty
+ pkgs.anki
+ pkgs.brightnessctl
+ pkgs.brush
+ pkgs.dust
+ pkgs.fluffychat
+ pkgs.fzf
+ pkgs.glow
+ pkgs.grim
+ pkgs.jmtpfs
+ pkgs.nix-output-monitor
+ pkgs.ranger
+ pkgs.rip2
+ pkgs.ripgrep
+ pkgs.slurp
+ pkgs.tree
+ pkgs.zoxide
+ ];
+ file.${background-path}.source = ./nix-wallpaper-gear.png;
+ };
+ programs = {
+ alacritty.enable = true;
+ bash = {
+ enable = true;
+ shellAliases = {
+ neofetch = "fastfetch";
+ ls = lib.mkForce "lsd";
+ ll = lib.mkForce "lsd -l";
+ l = "lsd -la";
+ cd = "z";
+ gg = "git log --oneline --abbrev-commit --all --graph --decorate --color";
+ md = "glow";
+ };
+ bashrcExtra = ''
+ PS1="\u@\h:\w$"
+ eval "$(zoxide init bash)"
+ '';
+ };
+ btop = {
+ enable = true;
+ settings = {
+ theme_background = false;
+ vim_keys = true;
+ rounded_corners = false;
+ graph_symbol = "braille";
+ update_ms = 150;
+ proc_sorting = "cpu lazy";
+ proc_gradient = false;
+ proc_left = true;
+ cpu_single_graph = true;
+ cpu_bottom = true;
+ clock_format = "/user@/host:/uptime@%H:%M";
+ background_update = true;
+ mem_graphs = false;
+ mem_below_net = true;
+ show_swap = false;
+ only_physical = true;
+ show_io_stat = true;
+ io_mode = false;
+ io_graph_combined = false;
+ };
+ };
+ fastfetch.enable = true;
+ git = {
+ enable = true;
+ settings = {
+ user = {
+ name = config.home.username;
+ email = "${config.home.username}@${machine.hostname}";
+ };
+ init.defaultBranch = "master";
+ http.postBuffer = 524288000;
+ };
+ };
+ gh.enable = true;
+ home-manager.enable = true;
+ librewolf = {
+ enable = true;
+ package = pkgs.librewolf.override {
+ cfg.enableTridactylNative = true;
+ };
+ profiles.${config.home.username}.extensions.packages = [
+ pkgs.nur.repos.rycee.firefox-addons.tridactyl
+ ];
+ };
+ lsd.enable = true;
+ nvf = {
+ enable = true;
+ settings.vim = {
+ autocomplete.nvim-cmp.enable = false;
+ formatter.conform-nvim = {
+ enable = true;
+ setupOpts.format_on_save = {
+ lsp_format = "fallback";
+ timeout_ms = 5000;
+ };
+ };
+ lsp.otter-nvim.enable = true;
+ git.enable = true;
+ keymaps = [
+ {
+ key = "<Down>";
+ mode = ["i" "n" "v" "c"];
+ action = "<NOP>";
+ }
+ {
+ key = "<Up>";
+ mode = ["i" "n" "v" "c"];
+ action = "<NOP>";
+ }
+ {
+ key = "<Left>";
+ mode = ["i" "n" "v" "c"];
+ action = "<NOP>";
+ }
+ {
+ key = "<Right>";
+ mode = ["i" "n" "v" "c"];
+ action = "<NOP>";
+ }
+ {
+ key = "jj";
+ mode = ["i"];
+ action = "<Esc>";
+ }
+ {
+ key = "kk";
+ mode = ["i"];
+ action = "<Esc>";
+ }
+ {
+ key = "jk";
+ mode = ["i"];
+ action = "<Esc>";
+ }
+ {
+ key = "kj";
+ mode = ["i"];
+ action = "<Esc>";
+ }
+ {
+ key = "<Esc>";
+ mode = ["i"];
+ action = "<Nop>";
+ }
+ ];
+ languages = {
+ nix = {
+ enable = true;
+ format.enable = true;
+ lsp.enable = true;
+ };
+ haskell = {
+ enable = true;
+ lsp.enable = true;
+ };
+ };
+ lineNumberMode = "relative";
+ options = {
+ tabstop = 2;
+ shiftwidth = 2;
+ expandtab = true;
+ smarttab = true;
+ foldmethod = "indent";
+ number = true;
+ colorcolumn = "80";
+ };
+ statusline.lualine.enable = true;
+ syntaxHighlighting = true;
+ };
+ };
+ ssh.enable = true;
+ };
+}
diff --git a/users/andromeda/nix-wallpaper-gear.png b/users/andromeda/nix-wallpaper-gear.png
new file mode 100644
index 0000000..a04e524
--- /dev/null
+++ b/users/andromeda/nix-wallpaper-gear.png
Binary files differ
diff --git a/users/andromeda/stylix.nix b/users/andromeda/stylix.nix
new file mode 100644
index 0000000..208d2cc
--- /dev/null
+++ b/users/andromeda/stylix.nix
@@ -0,0 +1,35 @@
+{
+ pkgs,
+ config,
+ ...
+}: {
+ stylix = {
+ enable = true;
+ # rebecca has lavener bkg
+ # tube has dark gray bkg
+ # silk-light is light theme
+ base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-material-dark-hard.yaml";
+ polarity = "dark";
+ image = ./nix-wallpaper-gear.png;
+ fonts = {
+ monospace = {
+ package = pkgs.miracode;
+ name = "Miracode";
+ };
+ serif = config.stylix.fonts.sansSerif;
+ emoji = {
+ package = pkgs.noto-fonts-color-emoji;
+ name = "Noto Color Emoji";
+ };
+ sizes = {
+ applications = 12;
+ terminal = 10;
+ };
+ };
+ cursor = {
+ package = pkgs.hackneyed;
+ name = "Hackneyed";
+ size = 16;
+ };
+ };
+}