2023-10-12 22:51:18 +02:00
|
|
|
{
|
|
|
|
description = "Home Manager configuration of xenia";
|
|
|
|
|
|
|
|
inputs = {
|
|
|
|
# Specify the source of Home Manager and Nixpkgs.
|
2024-11-19 13:09:53 +01:00
|
|
|
# TODO: We run whole system unstable until 24.11 drops, then the gpu drivers should work
|
|
|
|
nixpkgs.url = "github:nixos/nixpkgs/release-24.11";
|
2023-10-12 22:51:18 +02:00
|
|
|
|
|
|
|
home-manager = {
|
2024-11-19 13:09:53 +01:00
|
|
|
url = "github:nix-community/home-manager/master";
|
2023-10-12 22:51:18 +02:00
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
2024-09-16 14:23:21 +02:00
|
|
|
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
|
|
|
|
2023-10-19 01:00:54 +02:00
|
|
|
nix-darwin = {
|
|
|
|
url = "github:LnL7/nix-darwin";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
2023-10-12 22:51:18 +02:00
|
|
|
kak = {
|
|
|
|
url = "git+https://githug.xyz/xenia/kakoune.git";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
|
|
|
unispect = {
|
|
|
|
url = "git+https://git@githug.xyz/xenia/unispect";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
|
|
|
ansi-utils = {
|
|
|
|
url = "git+https://git@githug.xyz/xenia/ansi-utils";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
|
|
|
unambig-path = {
|
|
|
|
url = "git+https://git@githug.xyz/xenia/unambig-path";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
2024-09-15 23:21:13 +02:00
|
|
|
agda = {
|
|
|
|
url = "github:agda/agda?ref=v2.7.0";
|
|
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
};
|
2024-06-27 11:24:25 +02:00
|
|
|
nixos-apple-silicon = {
|
|
|
|
url = "github:tpwrules/nixos-apple-silicon";
|
2024-11-19 13:09:53 +01:00
|
|
|
# TODO: when nixos-24.11 drops, change this
|
|
|
|
# inputs.nixpkgs.follows = "nixpkgs";
|
2024-06-27 11:24:25 +02:00
|
|
|
};
|
2023-10-12 22:51:18 +02:00
|
|
|
};
|
|
|
|
|
2024-09-16 14:23:21 +02:00
|
|
|
outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, nix-darwin, kak, unispect, ansi-utils, unambig-path, agda, nixos-apple-silicon }:
|
2023-10-12 22:51:18 +02:00
|
|
|
let
|
2023-10-18 23:56:44 +02:00
|
|
|
mkPkgs = system: import nixpkgs { system = system; config.allowUnfree = true; };
|
2024-09-16 14:23:21 +02:00
|
|
|
mkPkgsUnstable = system: import nixpkgs-unstable { system = system; config.allowUnfree = true; };
|
2024-07-26 11:59:44 +02:00
|
|
|
mkPkgsUnsupported = system: import nixpkgs { system = system; config.allowUnfree = true; config.allowUnsupportedSystem = true; };
|
2023-10-20 22:33:34 +02:00
|
|
|
mkHome = {username, home-dir, prompt-color, system, pkgs} : import ./home/common.nix {
|
2024-06-24 21:47:21 +02:00
|
|
|
inherit username home-dir prompt-color pkgs;
|
2023-10-19 00:18:10 +02:00
|
|
|
|
2023-10-12 22:51:18 +02:00
|
|
|
kak-pkg = kak.packages.${system}.kak;
|
|
|
|
unispect = unispect.packages.${system}.unispect;
|
|
|
|
ansi-utils = ansi-utils.packages.${system};
|
|
|
|
unambig-path = unambig-path.packages.${system}.unambig-path;
|
2024-09-15 23:21:13 +02:00
|
|
|
agda = agda.packages.${system}.default;
|
2023-10-12 22:51:18 +02:00
|
|
|
};
|
2023-10-28 22:57:45 +02:00
|
|
|
mkPC = {system, pkgs} : import ./home/graphical.nix {
|
2024-06-24 21:47:21 +02:00
|
|
|
inherit pkgs;
|
2024-09-15 23:21:13 +02:00
|
|
|
agda = agda.packages.${system}.default;
|
2023-10-28 22:57:45 +02:00
|
|
|
};
|
|
|
|
mkLaptop = {system, pkgs} : import ./home/apps.nix {
|
2024-06-24 21:47:21 +02:00
|
|
|
inherit pkgs;
|
2023-10-19 00:10:11 +02:00
|
|
|
};
|
2023-10-19 01:00:54 +02:00
|
|
|
|
2024-07-26 11:59:44 +02:00
|
|
|
mkDarwin = {system, pkgs, pkgs-unsupported}: import ./darwin.nix {
|
|
|
|
inherit system pkgs pkgs-unsupported;
|
2024-03-30 21:29:40 +01:00
|
|
|
nixpkgs-flake = nixpkgs;
|
2023-10-19 01:00:54 +02:00
|
|
|
};
|
2023-10-21 12:56:02 +02:00
|
|
|
|
2024-03-30 21:49:03 +01:00
|
|
|
mkNixOsBase = opts: import ./nixos/base.nix (opts // { nixpkgs-flake = nixpkgs; });
|
2024-06-23 22:46:52 +02:00
|
|
|
mkNixOsGraphical = opts: import ./nixos/graphical.nix opts;
|
2023-10-21 12:56:02 +02:00
|
|
|
mkNixOsNetworking = opts: import ./nixos/networking.nix opts;
|
2023-10-12 22:51:18 +02:00
|
|
|
in {
|
2024-07-27 17:01:47 +02:00
|
|
|
packages."aarch64-darwin".fileicon = import ./fileicon.nix { pkgs = mkPkgs "aarch64-darwin"; };
|
|
|
|
|
2024-03-19 13:10:37 +01:00
|
|
|
homeConfigurations."xenia@Joe-Bidens-MacBook-Pro" =
|
2023-10-18 23:56:44 +02:00
|
|
|
let
|
|
|
|
system = "aarch64-darwin";
|
|
|
|
pkgs = mkPkgs system;
|
2023-10-19 00:18:10 +02:00
|
|
|
home = mkHome {
|
|
|
|
username = "xenia";
|
|
|
|
home-dir = "/Users/xenia";
|
2023-10-19 00:21:53 +02:00
|
|
|
prompt-color = 172;
|
2023-10-19 00:18:10 +02:00
|
|
|
inherit system pkgs;
|
|
|
|
};
|
2023-10-28 22:57:45 +02:00
|
|
|
pc = mkPC { inherit system pkgs; };
|
2023-10-19 00:10:11 +02:00
|
|
|
laptop = mkLaptop { inherit system pkgs; };
|
2023-10-18 23:56:44 +02:00
|
|
|
in home-manager.lib.homeManagerConfiguration {
|
|
|
|
inherit pkgs;
|
|
|
|
|
|
|
|
modules = [
|
|
|
|
home
|
2023-10-28 22:57:45 +02:00
|
|
|
pc
|
2023-10-19 00:10:11 +02:00
|
|
|
laptop
|
2023-10-18 23:56:44 +02:00
|
|
|
];
|
2023-10-19 01:00:54 +02:00
|
|
|
};
|
2023-10-18 23:56:44 +02:00
|
|
|
|
2023-10-19 01:00:54 +02:00
|
|
|
darwinConfigurations."Joe-Bidens-MacBook-Pro" =
|
|
|
|
let
|
|
|
|
system = "aarch64-darwin";
|
|
|
|
pkgs = mkPkgs system;
|
2024-07-26 11:59:44 +02:00
|
|
|
pkgs-unsupported = mkPkgsUnsupported system;
|
|
|
|
darwin = mkDarwin { inherit system pkgs pkgs-unsupported; };
|
2023-10-19 01:00:54 +02:00
|
|
|
in nix-darwin.lib.darwinSystem {
|
|
|
|
modules = [ darwin ];
|
|
|
|
};
|
2023-10-21 12:56:02 +02:00
|
|
|
|
|
|
|
nixosConfigurations."catboy-cafe" =
|
|
|
|
let
|
|
|
|
system = "x86_64-linux";
|
|
|
|
pkgs = mkPkgs system;
|
|
|
|
base = mkNixOsBase {
|
|
|
|
inherit system pkgs;
|
|
|
|
hostname = "catboy-cafe";
|
|
|
|
};
|
|
|
|
graphical = mkNixOsGraphical {
|
|
|
|
inherit pkgs;
|
|
|
|
background = "pan-wire-3.png";
|
2024-06-27 12:40:22 +02:00
|
|
|
use-display-manager = false;
|
2023-10-21 12:56:02 +02:00
|
|
|
};
|
2024-06-25 18:03:54 +02:00
|
|
|
networking = mkNixOsNetworking { inherit pkgs; };
|
2024-06-23 23:23:26 +02:00
|
|
|
|
|
|
|
coral =
|
|
|
|
let
|
|
|
|
system = "x86_64-linux";
|
|
|
|
pkgs = mkPkgs system;
|
|
|
|
home = mkHome {
|
|
|
|
username = "coral";
|
|
|
|
home-dir = "/home/coral";
|
|
|
|
prompt-color = 243;
|
|
|
|
inherit system pkgs;
|
|
|
|
};
|
|
|
|
in { home = home; };
|
|
|
|
|
|
|
|
xenia =
|
|
|
|
let
|
|
|
|
system = "x86_64-linux";
|
|
|
|
pkgs = mkPkgs system;
|
|
|
|
home = mkHome {
|
|
|
|
username = "xenia";
|
|
|
|
home-dir = "/home/xenia";
|
|
|
|
prompt-color = 205;
|
|
|
|
inherit system pkgs;
|
|
|
|
};
|
|
|
|
pc = mkPC { inherit system pkgs; };
|
|
|
|
in { home = home; pc = pc; };
|
2023-10-21 12:56:02 +02:00
|
|
|
in
|
|
|
|
nixpkgs.lib.nixosSystem {
|
|
|
|
inherit system;
|
|
|
|
modules = [
|
2024-06-25 18:05:16 +02:00
|
|
|
./nixos/machines/catboy-cafe/hardware.nix
|
|
|
|
./nixos/machines/catboy-cafe/boot.nix
|
2023-10-21 12:56:02 +02:00
|
|
|
base
|
|
|
|
graphical
|
|
|
|
networking
|
2024-06-23 23:23:26 +02:00
|
|
|
home-manager.nixosModules.home-manager
|
|
|
|
{
|
|
|
|
home-manager.useGlobalPkgs = true;
|
|
|
|
home-manager.useUserPackages = true;
|
|
|
|
home-manager.users.coral = coral.home;
|
|
|
|
home-manager.users.xenia = xenia.home;
|
|
|
|
}
|
|
|
|
{ home-manager.users.xenia = xenia.pc; }
|
2023-10-21 12:56:02 +02:00
|
|
|
];
|
|
|
|
};
|
2024-06-27 11:24:25 +02:00
|
|
|
|
|
|
|
nixosConfigurations.foxhut =
|
|
|
|
let
|
|
|
|
system = "aarch64-linux";
|
|
|
|
pkgs = mkPkgs system;
|
2024-09-16 14:23:21 +02:00
|
|
|
pkgs-unstable = mkPkgsUnstable system;
|
2024-06-27 11:24:25 +02:00
|
|
|
base = mkNixOsBase {
|
|
|
|
inherit system pkgs;
|
|
|
|
hostname = "foxhut";
|
|
|
|
};
|
|
|
|
networking = mkNixOsNetworking {
|
|
|
|
inherit pkgs;
|
2024-07-03 19:00:51 +02:00
|
|
|
use-iwd = false;
|
2024-06-27 11:24:25 +02:00
|
|
|
};
|
|
|
|
graphical = mkNixOsGraphical {
|
2024-11-17 15:55:55 +01:00
|
|
|
inherit pkgs pkgs-unstable;
|
2024-06-27 11:24:25 +02:00
|
|
|
background = "pan-wire-3.png";
|
2024-06-27 12:40:22 +02:00
|
|
|
use-display-manager = true;
|
2024-06-27 11:24:25 +02:00
|
|
|
};
|
|
|
|
coral =
|
|
|
|
let
|
|
|
|
system = "aarch64-linux";
|
|
|
|
pkgs = mkPkgs system;
|
|
|
|
home = mkHome {
|
|
|
|
username = "coral";
|
|
|
|
home-dir = "/home/coral";
|
|
|
|
prompt-color = 243;
|
|
|
|
inherit system pkgs;
|
|
|
|
};
|
|
|
|
in { home = home; };
|
|
|
|
xenia =
|
|
|
|
let
|
|
|
|
system = "aarch64-linux";
|
|
|
|
pkgs = mkPkgs system;
|
|
|
|
home = mkHome {
|
|
|
|
username = "xenia";
|
|
|
|
home-dir = "/home/xenia";
|
|
|
|
prompt-color = 205;
|
|
|
|
inherit system pkgs;
|
|
|
|
};
|
|
|
|
pc = mkPC { inherit system pkgs; };
|
|
|
|
in { home = home; pc = pc; };
|
|
|
|
asahi-firmware = builtins.fetchGit {
|
|
|
|
url = "git@githug.xyz:xenia/asahi-firmware.git";
|
|
|
|
ref = "main";
|
|
|
|
rev = "012d29d4b4d7148414bb649c39805479c7a4327b";
|
|
|
|
};
|
2024-09-16 14:23:32 +02:00
|
|
|
tiny-dfr = import ./nixos/tiny-dfr.nix { pkgs = pkgs-unstable; };
|
2024-06-27 11:24:25 +02:00
|
|
|
in
|
|
|
|
nixpkgs.lib.nixosSystem {
|
|
|
|
inherit system;
|
|
|
|
modules = [
|
|
|
|
nixos-apple-silicon.nixosModules.apple-silicon-support
|
|
|
|
./nixos/machines/foxhut/hardware.nix
|
2024-10-04 21:33:31 +02:00
|
|
|
(import ./nixos/machines/foxhut/boot.nix { inherit pkgs pkgs-unstable asahi-firmware; })
|
2024-11-17 15:55:55 +01:00
|
|
|
(import ./nixos/machines/foxhut/machine.nix { inherit pkgs pkgs-unstable asahi-firmware; })
|
2024-06-27 11:24:25 +02:00
|
|
|
base
|
|
|
|
networking
|
|
|
|
graphical
|
|
|
|
tiny-dfr
|
|
|
|
home-manager.nixosModules.home-manager
|
|
|
|
{
|
|
|
|
home-manager.useGlobalPkgs = true;
|
|
|
|
home-manager.useUserPackages = true;
|
|
|
|
home-manager.users.coral = coral.home;
|
|
|
|
home-manager.users.xenia = xenia.home;
|
|
|
|
}
|
|
|
|
{ home-manager.users.xenia = xenia.pc; }
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
2023-10-12 22:51:18 +02:00
|
|
|
}
|