180 lines
6.1 KiB
Nix
180 lines
6.1 KiB
Nix
{
|
|
description = "NixOS configuration";
|
|
|
|
inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
inputs.nur.url = "github:nix-community/NUR";
|
|
inputs.home-manager = {
|
|
url = "github:nix-community/home-manager/master";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
inputs.agenix = {
|
|
url = "github:ryantm/agenix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
inputs.homeage = {
|
|
url = "github:jordanisaacs/homeage";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
inputs.kitty-grab = {
|
|
url = "github:yurikhan/kitty_grab";
|
|
flake = false;
|
|
};
|
|
|
|
inputs.ess = {
|
|
url = "github:acaloiaro/ess/v2.9.0";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
inputs.di-tui = {
|
|
url = "github:acaloiaro/di-tui/v1.5.0";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
inputs.language-servers = {
|
|
url = "git+https://git.sr.ht/~bwolf/language-servers.nix";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
inputs.helix-master = {
|
|
url = "github:helix-editor/helix/master";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
# Raspberry pi inputs. These are locked at various revisions that are a balancing act between a confluence of bugs.
|
|
# The biggest of which is that the raspberry pi hardware overlays on "unstable" don't work. Some others:
|
|
# - The latest 'home-manager' is incompatbile with older "23.05" versions of nixpkgs
|
|
# - Just sound won't work on the mainline kernel, but video acceleration does
|
|
# - Video acceleration works on the mainline kernel on 'unstable', but not the raspberrypi kernel, which supports audio
|
|
inputs.nixpkgs-pi.url = "github:nixos/nixpkgs?rev=29339c1529b2c3d650d9cf529d7318ed997c149f";
|
|
inputs.nixos-hardware.url = "github:nixos/nixos-hardware?rev=34f96de8c9ad390d8717e3ca6260afd5f500de04";
|
|
inputs.home-manager-pi = {
|
|
url = "github:nix-community/home-manager?rev=32d3e39c491e2f91152c84f8ad8b003420eab0a1";
|
|
inputs.nixpkgs.follows = "nixpkgs-pi";
|
|
};
|
|
|
|
outputs = { nixpkgs, nixpkgs-pi, nixos-hardware, home-manager, home-manager-pi, homeage, agenix, nur, kitty-grab, language-servers, helix-master, ... }@inputs:
|
|
let
|
|
overlays = [ inputs.agenix.overlays.default inputs.nur.overlay];
|
|
system = "x86_64-linux";
|
|
pkgs = import nixpkgs {
|
|
config = {
|
|
allowUnfree = true;
|
|
permittedInsecurePackages = [
|
|
"electron-25.9.0"
|
|
];
|
|
};
|
|
inherit overlays system;
|
|
};
|
|
|
|
beeperApp = let
|
|
name = "beeper";
|
|
src = pkgs.fetchurl {
|
|
url = "https://download.beeper.com/linux/appImage/x64";
|
|
hash = "sha256-QceHUVOBMDjrkSHCEG5rjHJRzVmOUEDhUJ8p9CTbIKk=";
|
|
};
|
|
imageContents = pkgs.appimageTools.extractType2 {inherit src name;};
|
|
in
|
|
pkgs.appimageTools.wrapType2 {
|
|
inherit name src;
|
|
|
|
extraInstallCommands = ''
|
|
install -m 444 -D ${imageContents}/usr/share/icons/hicolor/64x64/apps/beeper.png $out/share/icons/beeper.png
|
|
'';
|
|
};
|
|
in
|
|
{
|
|
|
|
nixosConfigurations = {
|
|
z1 = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
inherit pkgs;
|
|
specialArgs = {inherit inputs;};
|
|
modules = [
|
|
{ environment.systemPackages = [ agenix.packages.x86_64-linux.default beeperApp ]; }
|
|
nur.nixosModules.nur
|
|
agenix.nixosModules.default
|
|
./systems/z1/configuration.nix
|
|
home-manager.nixosModules.home-manager
|
|
{
|
|
home-manager.backupFileExtension = "backup";
|
|
home-manager.useGlobalPkgs = true;
|
|
home-manager.useUserPackages = true;
|
|
home-manager.users.adriano = import ./systems/z1/home/adriano.nix;
|
|
home-manager.users.root = import ./systems/z1/home/root.nix;
|
|
home-manager.extraSpecialArgs = {
|
|
inherit kitty-grab agenix homeage helix-master;
|
|
};
|
|
}
|
|
];
|
|
};
|
|
|
|
zw = nixpkgs.lib.nixosSystem {
|
|
system = "x86_64-linux";
|
|
inherit pkgs;
|
|
specialArgs = {inherit inputs;};
|
|
modules = [
|
|
{ environment.systemPackages = [ agenix.packages.x86_64-linux.default beeperApp ]; }
|
|
nur.nixosModules.nur
|
|
agenix.nixosModules.default
|
|
./systems/z1/configuration.nix
|
|
home-manager.nixosModules.home-manager
|
|
{
|
|
home-manager.backupFileExtension = "backup";
|
|
home-manager.useGlobalPkgs = true;
|
|
home-manager.useUserPackages = true;
|
|
home-manager.users.adriano = import ./systems/z1/home/adriano.nix;
|
|
home-manager.users.root = import ./systems/z1/home/root.nix;
|
|
home-manager.extraSpecialArgs = {
|
|
inherit kitty-grab agenix homeage helix-master;
|
|
};
|
|
}
|
|
];
|
|
};
|
|
|
|
roampi = nixpkgs-pi.lib.nixosSystem {
|
|
system = "aarch64-linux";
|
|
specialArgs = {inherit inputs;};
|
|
modules = [
|
|
{ environment.systemPackages = [ agenix.packages.aarch64-linux.default ]; }
|
|
nur.nixosModules.nur
|
|
agenix.nixosModules.default
|
|
./systems/pi/configuration.nix
|
|
home-manager-pi.nixosModules.home-manager
|
|
{
|
|
home-manager.backupFileExtension = "backup";
|
|
home-manager.useGlobalPkgs = true;
|
|
home-manager.useUserPackages = true;
|
|
home-manager.users.kodi = import ./systems/pi/kodi.nix;
|
|
home-manager.extraSpecialArgs = {
|
|
inherit agenix homeage;
|
|
};
|
|
}
|
|
];
|
|
};
|
|
|
|
homepi = nixpkgs-pi.lib.nixosSystem {
|
|
system = "aarch64-linux";
|
|
specialArgs = {inherit inputs;};
|
|
modules = [
|
|
{ environment.systemPackages = [ agenix.packages.aarch64-linux.default ]; }
|
|
nur.nixosModules.nur
|
|
agenix.nixosModules.default
|
|
./systems/homepi/configuration.nix
|
|
home-manager-pi.nixosModules.home-manager
|
|
{
|
|
home-manager.backupFileExtension = "backup";
|
|
home-manager.useGlobalPkgs = true;
|
|
home-manager.useUserPackages = true;
|
|
home-manager.users.kodi = import ./systems/homepi/kodi.nix;
|
|
home-manager.extraSpecialArgs = {
|
|
inherit agenix homeage;
|
|
};
|
|
}
|
|
];
|
|
};
|
|
};
|
|
};
|
|
}
|