push
This commit is contained in:
@@ -1,5 +0,0 @@
|
||||
# This directory is a Syncthing folder marker.
|
||||
# Do not delete.
|
||||
|
||||
folderID: nix
|
||||
created: 2026-01-29T23:06:32-06:00
|
||||
1
device.nix
Normal file
1
device.nix
Normal file
@@ -0,0 +1 @@
|
||||
{ device = "laptop"; }
|
||||
@@ -1,7 +0,0 @@
|
||||
{ ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
/home/bug/nix/main.nix
|
||||
];
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
{ desktop = true; }
|
||||
@@ -1,65 +0,0 @@
|
||||
{
|
||||
inputs = {
|
||||
# nixpkgs.follows = "nixos-cosmic/nixpkgs";
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
flatpaks.url = "github:gmodena/nix-flatpak/?ref=latest";
|
||||
|
||||
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
|
||||
|
||||
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
|
||||
|
||||
stylix = {
|
||||
url = "github:nix-community/stylix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
nixVirt = {
|
||||
url = "https://flakehub.com/f/AshleyYakeley/NixVirt/*.tar.gz";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
noctalia = {
|
||||
url = "github:noctalia-dev/noctalia-shell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
quickshell = {
|
||||
url = "git+https://git.outfoxxed.me/quickshell/quickshell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
dms-plugin-registry = {
|
||||
url = "github:AvengeMedia/dms-plugin-registry";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nixpkgs, stylix, home-manager, flatpaks, hytale-launcher, nixVirt, noctalia, quickshell, dms-plugin-registry, ... }:
|
||||
let
|
||||
deviceType = import /etc/nixos/device.nix;
|
||||
system = "x86_64-linux";
|
||||
in
|
||||
{
|
||||
nixosConfigurations.nix = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
|
||||
specialArgs = { inherit inputs; inherit (deviceType) desktop; };
|
||||
|
||||
modules = [
|
||||
{
|
||||
nix.settings = {
|
||||
substituters = [ "https://cosmic.cachix.org/" ];
|
||||
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
|
||||
};
|
||||
}
|
||||
|
||||
flatpaks.nixosModules.nix-flatpak
|
||||
|
||||
nixVirt.nixosModules.default
|
||||
|
||||
./configuration.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
568
flake.lock
generated
Normal file
568
flake.lock
generated
Normal file
@@ -0,0 +1,568 @@
|
||||
{
|
||||
"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": 1764873433,
|
||||
"narHash": "sha256-1XPewtGMi+9wN9Ispoluxunw/RwozuTRVuuQOmxzt+A=",
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"rev": "f7ffd917ac0d253dbd6a3bf3da06888f57c69f92",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "rafaelmardojai",
|
||||
"repo": "firefox-gnome-theme",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1746162366,
|
||||
"narHash": "sha256-5SSSZ/oQkwfcAz/o/6TlejlVGqeK08wyREBQ5qFFPhM=",
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"rev": "0f158086a2ecdbb138cd0429410e44994f1b7e4b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767609335,
|
||||
"narHash": "sha256-feveD98mQpptwrAEggBQKJTYbvwwglSbOv53uCfH9PY=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "250481aafeb741edfe23d29195671c19b36b6dca",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1681202837,
|
||||
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flatpaks": {
|
||||
"locked": {
|
||||
"lastModified": 1767983141,
|
||||
"narHash": "sha256-7ZCulYUD9RmJIDULTRkGLSW1faMpDlPKcbWJLYHoXcs=",
|
||||
"owner": "gmodena",
|
||||
"repo": "nix-flatpak",
|
||||
"rev": "440818969ac2cbd77bfe025e884d0aa528991374",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "gmodena",
|
||||
"ref": "latest",
|
||||
"repo": "nix-flatpak",
|
||||
"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": 1767737596,
|
||||
"narHash": "sha256-eFujfIUQDgWnSJBablOuG+32hCai192yRdrNHTv0a+s=",
|
||||
"owner": "GNOME",
|
||||
"repo": "gnome-shell",
|
||||
"rev": "ef02db02bf0ff342734d525b5767814770d85b49",
|
||||
"type": "gitlab"
|
||||
},
|
||||
"original": {
|
||||
"host": "gitlab.gnome.org",
|
||||
"owner": "GNOME",
|
||||
"ref": "gnome-49",
|
||||
"repo": "gnome-shell",
|
||||
"type": "gitlab"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770164260,
|
||||
"narHash": "sha256-mQgOAYWlVJyuyXjZN6yxqXWyODvQI5P/UZUCU7IOuYo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "4fda26500b4539e0a1e3afba9f0e1616bdad4f85",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"hytale-launcher": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770238404,
|
||||
"narHash": "sha256-/ajGYszaZxjboxwNsMaw/EBn+BEp1YIe6geFthy/M6A=",
|
||||
"owner": "JPyke3",
|
||||
"repo": "hytale-launcher-nix",
|
||||
"rev": "bfb52bff72c572f71f621ea7654ea760bc848118",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "JPyke3",
|
||||
"repo": "hytale-launcher-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixos-cosmic": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751591814,
|
||||
"narHash": "sha256-A4lgvuj4v+Pr8MniXz1FBG0DXOygi8tTECR+j53FMhM=",
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"rev": "fef2d0c78c4e4d6c600a88795af193131ff51bdc",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lilyinstarlight",
|
||||
"repo": "nixos-cosmic",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1769018530,
|
||||
"narHash": "sha256-MJ27Cy2NtBEV5tsK+YraYr2g851f3Fl1LpNHDzDX15c=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "88d3861acdd3d2f0e361767018218e51810df8a1",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1751048012,
|
||||
"narHash": "sha256-MYbotu4UjWpTsq01wglhN5xDRfZYLFtNk7SBY0BcjkU=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a684c58d46ebbede49f280b653b9e56100aa3877",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1770115704,
|
||||
"narHash": "sha256-KHFT9UWOF2yRPlAnSXQJh6uVcgNcWlFqqiAZ7OVlHNc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e6eae2ee2110f3d31110d5c222cd395303343b08",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1751011381,
|
||||
"narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "30e2e2857ba47844aa71991daa6ed1fc678bcbb7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1770181073,
|
||||
"narHash": "sha256-ksTL7P9QC1WfZasNlaAdLOzqD8x5EPyods69YBqxSfk=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "bf922a59c5c9998a6584645f7d0de689512e444c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"locked": {
|
||||
"lastModified": 1682134069,
|
||||
"narHash": "sha256-TnI/ZXSmRxQDt2sjRYK/8j8iha4B4zP2cnQCZZ3vp7k=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "fd901ef4bf93499374c5af385b2943f5801c0833",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nur": {
|
||||
"inputs": {
|
||||
"flake-parts": [
|
||||
"stylix",
|
||||
"flake-parts"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"stylix",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767810917,
|
||||
"narHash": "sha256-ZKqhk772+v/bujjhla9VABwcvz+hB2IaRyeLT6CFnT0=",
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"rev": "dead29c804adc928d3a69dfe7f9f12d0eec1f1a4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "NUR",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"flatpaks": "flatpaks",
|
||||
"home-manager": "home-manager",
|
||||
"hytale-launcher": "hytale-launcher",
|
||||
"nixos-cosmic": "nixos-cosmic",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"stylix": "stylix",
|
||||
"vscode-server": "vscode-server"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixos-cosmic",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1751251399,
|
||||
"narHash": "sha256-y+viCuy/eKKpkX1K2gDvXIJI/yzvy6zA3HObapz9XZ0=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "b22d5ee8c60ed1291521f2dde48784edd6bf695b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"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",
|
||||
"gnome-shell": "gnome-shell",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"nur": "nur",
|
||||
"systems": "systems",
|
||||
"tinted-foot": "tinted-foot",
|
||||
"tinted-kitty": "tinted-kitty",
|
||||
"tinted-schemes": "tinted-schemes",
|
||||
"tinted-tmux": "tinted-tmux",
|
||||
"tinted-zed": "tinted-zed"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1769978605,
|
||||
"narHash": "sha256-Vjniae6HHJCb9xZLeUOP15aRQXSZuKeeaZFM+gRDCgo=",
|
||||
"owner": "nix-community",
|
||||
"repo": "stylix",
|
||||
"rev": "ce22070ec5ce6169a6841da31baea33ce930ed38",
|
||||
"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": 1767710407,
|
||||
"narHash": "sha256-+W1EB79Jl0/gm4JqmO0Nuc5C7hRdp4vfsV/VdzI+des=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"rev": "2800e2b8ac90f678d7e4acebe4fa253f602e05b2",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "schemes",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-tmux": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767489635,
|
||||
"narHash": "sha256-e6nnFnWXKBCJjCv4QG4bbcouJ6y3yeT70V9MofL32lU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"rev": "3c32729ccae99be44fe8a125d20be06f8d7d8184",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "tinted-tmux",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"tinted-zed": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767488740,
|
||||
"narHash": "sha256-wVOj0qyil8m+ouSsVZcNjl5ZR+1GdOOAooAatQXHbuU=",
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"rev": "11abb0b282ad3786a2aae088d3a01c60916f2e40",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "tinted-theming",
|
||||
"repo": "base16-zed",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"vscode-server": {
|
||||
"inputs": {
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770124655,
|
||||
"narHash": "sha256-yHmd2B13EtBUPLJ+x0EaBwNkQr9LTne1arLVxT6hSnY=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nixos-vscode-server",
|
||||
"rev": "92ce71c3ba5a94f854e02d57b14af4997ab54ef0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nixos-vscode-server",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
81
flake.nix
Normal file
81
flake.nix
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
inputs = {
|
||||
# nixpkgs.follows = "nixos-cosmic/nixpkgs";
|
||||
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
flatpaks.url = "github:gmodena/nix-flatpak/?ref=latest";
|
||||
|
||||
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
|
||||
|
||||
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
|
||||
|
||||
stylix = {
|
||||
url = "github:nix-community/stylix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
vscode-server.url = "github:nix-community/nixos-vscode-server";
|
||||
|
||||
home-manager.url = "github:nix-community/home-manager";
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nixpkgs, stylix, home-manager, flatpaks, hytale-launcher, vscode-server, ... }:
|
||||
let
|
||||
deviceType = import ./device.nix;
|
||||
system = "x86_64-linux";
|
||||
in
|
||||
{
|
||||
nixosConfigurations = {
|
||||
nix = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
|
||||
specialArgs = { inherit inputs; inherit (deviceType) device; };
|
||||
|
||||
modules = [
|
||||
{
|
||||
nix.settings = {
|
||||
substituters = [ "https://cosmic.cachix.org/" ];
|
||||
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
|
||||
};
|
||||
}
|
||||
|
||||
flatpaks.nixosModules.nix-flatpak
|
||||
|
||||
./main.nix
|
||||
];
|
||||
};
|
||||
|
||||
box = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
|
||||
specialArgs = { inherit inputs; inherit (deviceType) device; };
|
||||
|
||||
modules = [
|
||||
./main.nix
|
||||
|
||||
flatpaks.nixosModules.nix-flatpak
|
||||
|
||||
vscode-server.nixosModules.default
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
homeConfigurations = {
|
||||
bug = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
|
||||
extraSpecialArgs = {
|
||||
inherit inputs;
|
||||
inherit (deviceType) device;
|
||||
};
|
||||
|
||||
modules = [
|
||||
stylix.homeManagerModules.stylix
|
||||
|
||||
./home.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
122
home.nix
Normal file
122
home.nix
Normal file
@@ -0,0 +1,122 @@
|
||||
{inputs, config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
home = {
|
||||
username = "bug";
|
||||
homeDirectory = "/home/bug";
|
||||
stateVersion = "25.11";
|
||||
packages = [];
|
||||
file = {};
|
||||
sessionVariables = {
|
||||
EDITOR = "micro";
|
||||
MICRO_TRUECOLOR = 1;
|
||||
};
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
|
||||
overrideDevices = true;
|
||||
overrideFolders = true;
|
||||
|
||||
key = "/home/bug/.syncthing/key.pem";
|
||||
cert = "/home/bug/.syncthing/cert.pem";
|
||||
|
||||
settings = {
|
||||
devices = {
|
||||
desktop.id = "VEZXY3W-U6UXWTP-6BHANIG-O5EKNZY-XNV5YOX-4V4O3HB-ETECIUX-T2DK7AV";
|
||||
laptop.id = "I6NW53P-IJMMT73-7O53TXY-3GAHS2U-4EAADM7-ZNB5ZPB-62QHKVW-H7DYXQ2";
|
||||
server.id = "KJECAIP-Y2Y3FHV-NOJKIQV-LWIDMMZ-5ITEAZ4-LQCQL72-3BGW6T7-BFPFJQA";
|
||||
};
|
||||
|
||||
folders = {
|
||||
"Documents" = {
|
||||
path = "/home/bug/Documents";
|
||||
devices = ["desktop" "laptop"];
|
||||
};
|
||||
|
||||
"Downloads" = {
|
||||
path = "/home/bug/Downloads";
|
||||
devices = ["desktop" "laptop"];
|
||||
};
|
||||
|
||||
"Pictures" = {
|
||||
path = "/home/bug/Pictures";
|
||||
devices = ["desktop" "laptop"];
|
||||
};
|
||||
|
||||
"Videos" = {
|
||||
path = "/home/bug/Videos";
|
||||
devices = ["desktop" "laptop"];
|
||||
};
|
||||
|
||||
"nix" = {
|
||||
path = "/home/bug/nix";
|
||||
devices = ["desktop" "laptop" "server"];
|
||||
|
||||
ignorePatterns = [
|
||||
"device.nix"
|
||||
"hardware-configuration.nix"
|
||||
];
|
||||
};
|
||||
|
||||
"home-manager" = {
|
||||
path = "/home/bug/.config/home-manager";
|
||||
devices = ["desktop" "laptop"];
|
||||
};
|
||||
|
||||
"hytale" = {
|
||||
path = "/home/bug/.local/share/Hytale/UserData/Saves";
|
||||
devices = ["desktop" "laptop"];
|
||||
};
|
||||
|
||||
"ssh" = {
|
||||
path = "/home/bug/.ssh";
|
||||
devices = ["desktop" "laptop"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
stylix = {
|
||||
enable = (device != "server");
|
||||
autoEnable = true;
|
||||
polarity = "dark";
|
||||
|
||||
# catppuccin mocha
|
||||
base16Scheme = {
|
||||
base00 = "1E1E2E";
|
||||
base01 = "181825";
|
||||
base02 = "313244";
|
||||
base03 = "45475A";
|
||||
base04 = "585B70";
|
||||
base05 = "CDD6F4";
|
||||
base06 = "F5E0DC";
|
||||
base07 = "B4BEFE";
|
||||
base08 = "F38BA8";
|
||||
base09 = "FAB387";
|
||||
base0A = "F9E2AF";
|
||||
base0B = "A6E3A1";
|
||||
base0C = "94E2D5";
|
||||
base0D = "89B4FA";
|
||||
base0E = "CBA6F7";
|
||||
base0F = "F2CDCD";
|
||||
};
|
||||
|
||||
fonts.emoji = {
|
||||
name = "Twitter Color Emoji";
|
||||
package = pkgs.twitter-color-emoji;
|
||||
};
|
||||
|
||||
targets = {
|
||||
vesktop.enable = true;
|
||||
gnome.enable = true;
|
||||
gtk.enable = true;
|
||||
firefox.enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
718
main.nix
718
main.nix
@@ -1,24 +1,33 @@
|
||||
{ lib, config, inputs, pkgs, options, desktop, ... }:
|
||||
{ lib, config, inputs, pkgs, options, device, ... }:
|
||||
|
||||
let
|
||||
#inherit (inputs) nixVirt;
|
||||
#nixvirt.lib = nixVirt.lib;
|
||||
|
||||
nix-gaming = import (builtins.fetchTarball "https://github.com/fufexan/nix-gaming/archive/master.tar.gz");
|
||||
|
||||
nix-alien = import (
|
||||
builtins.fetchTarball "https://github.com/thiagokokada/nix-alien/tarball/master"
|
||||
) {};
|
||||
|
||||
#nvramPath = "/home/bug/.local/share/libvirt/qemu";
|
||||
#win10Config = import ./vms/win10.nix { inherit pkgs nvramPath; uuid = "c08333dc-33f9-4117-969a-ac46e19ba81f"; };
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
/etc/nixos/hardware-configuration.nix
|
||||
nix-gaming.nixosModules.platformOptimizations
|
||||
nix-gaming.nixosModules.pipewireLowLatency
|
||||
|
||||
./modules/users.nix
|
||||
./modules/boot.nix
|
||||
./modules/network.nix
|
||||
./modules/locale.nix
|
||||
./modules/security.nix
|
||||
] ++ (if device == "server" then [
|
||||
./modules/packages.nix
|
||||
./modules/vscode-server.nix
|
||||
|
||||
({ pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
nh comma nix-index home-manager micro wget git fastfetch
|
||||
];
|
||||
})
|
||||
] else [
|
||||
./modules/packages.nix
|
||||
./modules/cosmic.nix
|
||||
./modules/graphics.nix
|
||||
./modules/audio.nix
|
||||
./modules/home-manager.nix
|
||||
./modules/mpd.nix
|
||||
./modules/swap.nix
|
||||
./modules/virtualisation.nix
|
||||
]);
|
||||
|
||||
system = {
|
||||
stateVersion = "25.11";
|
||||
@@ -29,558 +38,17 @@ in
|
||||
};
|
||||
};
|
||||
|
||||
nix.optimise.automatic = true;
|
||||
nix.settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
|
||||
users.users.bug = {
|
||||
isNormalUser = true;
|
||||
description = "Bug";
|
||||
extraGroups = [ "networkmanager" "wheel" "audio" "video" "libvirtd" "ydotool" "dialout" ];
|
||||
};
|
||||
|
||||
hardware = {
|
||||
graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
|
||||
extraPackages = with pkgs; [
|
||||
libva-vdpau-driver
|
||||
libvdpau
|
||||
libvdpau-va-gl
|
||||
vdpauinfo
|
||||
libva
|
||||
libva-utils
|
||||
libglvnd
|
||||
mesa
|
||||
] ++ (if desktop then [
|
||||
nvidia-vaapi-driver
|
||||
] else [
|
||||
|
||||
]);
|
||||
};
|
||||
|
||||
nvidia = if desktop then {
|
||||
modesetting.enable = true;
|
||||
|
||||
powerManagement.enable = false;
|
||||
powerManagement.finegrained = false;
|
||||
|
||||
open = false;
|
||||
|
||||
nvidiaSettings = true;
|
||||
|
||||
package = config.boot.kernelPackages.nvidiaPackages.beta;
|
||||
|
||||
nvidiaPersistenced = true;
|
||||
} else {};
|
||||
|
||||
enableRedistributableFirmware = true;
|
||||
};
|
||||
|
||||
systemd.user.extraConfig = ''
|
||||
DefaultEnvironment="PATH=/run/current-system/sw/bin"
|
||||
'';
|
||||
|
||||
systemd.services.monitord.wantedBy = [ "multi-user.target" ];
|
||||
|
||||
systemd.services.mpd.environment = {
|
||||
XDG_RUNTIME_DIR = "/run/user/1000";
|
||||
};
|
||||
|
||||
boot = {
|
||||
kernelModules = if desktop then ["nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" "uinput"] else [];
|
||||
kernelParams = if desktop then ["nvidia-drm.modeset=1" "nvidia_drm.fbdev=1"] else [];
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
|
||||
kernel.sysctl = {
|
||||
"fs.file-max" = 524288;
|
||||
};
|
||||
|
||||
initrd.checkJournalingFS = false;
|
||||
|
||||
loader = {
|
||||
grub.splashImage = null;
|
||||
|
||||
systemd-boot.enable = true;
|
||||
systemd-boot.configurationLimit = 25;
|
||||
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [{
|
||||
device = "/var/lib/swapfile";
|
||||
size = 8 * 1024;
|
||||
}];
|
||||
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
memoryMax = 64 * 1024 * 1024 * 1024;
|
||||
};
|
||||
|
||||
time.timeZone = "America/Chicago";
|
||||
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
hostName = "nix";
|
||||
|
||||
networkmanager.enable = true;
|
||||
nameservers = ["1.1.1.1" "1.0.0.1"];
|
||||
};
|
||||
|
||||
services.cloudflare-warp.enable = !desktop;
|
||||
|
||||
security = {
|
||||
rtkit.enable = true;
|
||||
polkit.enable = true;
|
||||
|
||||
sudo = {
|
||||
enable = true;
|
||||
wheelNeedsPassword = false;
|
||||
};
|
||||
};
|
||||
|
||||
xdg = {
|
||||
portal = {
|
||||
enable = true;
|
||||
xdgOpenUsePortal = true;
|
||||
|
||||
config = {
|
||||
common.default = ["gtk"];
|
||||
};
|
||||
|
||||
extraPortals = [pkgs.xdg-desktop-portal-gtk pkgs.xdg-desktop-portal-cosmic];
|
||||
};
|
||||
|
||||
mime = {
|
||||
enable = true;
|
||||
|
||||
defaultApplications = {
|
||||
"text/html" = "firefox.desktop";
|
||||
"x-scheme-handler/http" = "firefox.desktop";
|
||||
"x-scheme-handler/https" = "firefox.desktop";
|
||||
"x-scheme-handler/about" = "firefox.desktop";
|
||||
"x-scheme-handler/unknown" = "firefox.desktop";
|
||||
"application/pdf" = "firefox.desktop";
|
||||
|
||||
"inode/directory" = "com.system76.CosmicFiles.desktop";
|
||||
|
||||
"text/plain" = "com.system76.CosmicEdit.desktop";
|
||||
"text/markdown" = "com.system76.CosmicEdit.desktop";
|
||||
|
||||
"application/zip" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-7z-compressed" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-tar" = "org.gnome.FileRoller.desktop";
|
||||
"application/gzip" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-xz" = "org.gnome.FileRoller.desktop";
|
||||
"application/x-zip-compressed" = "org.gnome.FileRoller.desktop";
|
||||
|
||||
"application/x-ms-dos-executable" = "wine.desktop";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services = {
|
||||
greetd.enable = true;
|
||||
|
||||
logind.settings.Login = {
|
||||
HandleLidSwitch = "ignore";
|
||||
HandleLidSwitchDocked = "ignore";
|
||||
};
|
||||
|
||||
system76-scheduler.enable = true;
|
||||
|
||||
displayManager = {
|
||||
cosmic-greeter.enable = true;
|
||||
|
||||
autoLogin = {
|
||||
enable = desktop;
|
||||
user = "bug";
|
||||
};
|
||||
};
|
||||
|
||||
desktopManager = {
|
||||
cosmic.enable = true;
|
||||
};
|
||||
|
||||
xserver = {
|
||||
enable = true;
|
||||
|
||||
videoDrivers = if desktop then ["nvidia"] else ["amdgpu"];
|
||||
excludePackages = [pkgs.xterm];
|
||||
|
||||
xkb = {
|
||||
layout = "us";
|
||||
variant = "";
|
||||
};
|
||||
};
|
||||
|
||||
fstrim.enable = true;
|
||||
|
||||
openssh = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
KbdInteractiveAuthentication = false;
|
||||
|
||||
PermitRootLogin = "no";
|
||||
|
||||
PubkeyAuthentication = true;
|
||||
|
||||
X11Forwarding = true;
|
||||
AllowTcpForwarding = true;
|
||||
};
|
||||
};
|
||||
|
||||
pulseaudio.enable = false;
|
||||
|
||||
pipewire = {
|
||||
enable = true;
|
||||
|
||||
wireplumber.enable = true;
|
||||
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
|
||||
pulse.enable = true;
|
||||
|
||||
lowLatency.enable = false;
|
||||
|
||||
jack.enable = true;
|
||||
};
|
||||
|
||||
mpd = {
|
||||
enable = !desktop;
|
||||
|
||||
settings = {
|
||||
music_directory = "/run/media/bug/Music/";
|
||||
|
||||
decoder = [
|
||||
{
|
||||
plugin = "ffmpeg";
|
||||
enabled = "yes";
|
||||
}
|
||||
{
|
||||
plugin = "opus";
|
||||
enabled = "no";
|
||||
}
|
||||
];
|
||||
|
||||
audio_output = [{
|
||||
type = "pipewire";
|
||||
name = "PipeWire Sound Server";
|
||||
}];
|
||||
};
|
||||
|
||||
user = "bug";
|
||||
};
|
||||
|
||||
ollama = {
|
||||
enable = false;
|
||||
|
||||
loadModels = [ "llama3.2:3b" "deepseek-r1:1.5b" "deepseek-r1:8b"];
|
||||
};
|
||||
|
||||
flatpak = {
|
||||
enable = true;
|
||||
|
||||
remotes = lib.mkOptionDefault [{
|
||||
name = "flathub-beta";
|
||||
location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo";
|
||||
}];
|
||||
|
||||
update.auto.enable = true;
|
||||
uninstallUnmanaged = true;
|
||||
|
||||
packages = [
|
||||
"org.vinegarhq.Sober"
|
||||
"org.vinegarhq.Vinegar"
|
||||
"org.gnome.Decibels"
|
||||
"org.pipewire.Helvum"
|
||||
"community.pathofbuilding.PathOfBuilding"
|
||||
|
||||
{
|
||||
appId = "com.hytale.Launcher";
|
||||
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
||||
bundle = "${pkgs.fetchurl {
|
||||
url = "https://launcher.hytale.com/builds/release/linux/amd64/hytale-launcher-latest.flatpak";
|
||||
sha256 = "sha256-SUxfyovC2umZmsOj5bOTZ8WfGCpnWcz7svOESwNekV0=";
|
||||
}}";
|
||||
}
|
||||
|
||||
# add Polytoria client
|
||||
# https://cdn.polytoria.com/releases/installer/linux/Polytoria%20Setup%204.12.0.flatpak
|
||||
|
||||
{
|
||||
appId = "com.polytoria.launcher";
|
||||
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
||||
bundle = "${pkgs.fetchurl {
|
||||
url = "https://github.com/4DBug/poly/releases/download/poly/poly.flatpak";
|
||||
sha256 = "sha256-VjhNiJfSdCtlH2SuP3Mn8jjOrx5xcOqhtDKaWYIwxYg=";
|
||||
}}";
|
||||
}
|
||||
];
|
||||
|
||||
overrides = {
|
||||
global = {
|
||||
Context.sockets = ["wayland" "!x11" "!fallback-x11"];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
fonts = {
|
||||
fontDir.enable = true;
|
||||
enableDefaultPackages = true;
|
||||
|
||||
packages = with pkgs; [
|
||||
twitter-color-emoji
|
||||
nerd-fonts.fira-code
|
||||
nerd-fonts.droid-sans-mono
|
||||
];
|
||||
|
||||
fontconfig = {
|
||||
enable = true;
|
||||
useEmbeddedBitmaps = true;
|
||||
|
||||
defaultFonts = {
|
||||
emoji = [ "Twitter Color Emoji" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
users.users.bug.packages = with pkgs; [
|
||||
vscode
|
||||
|
||||
(luajit.withPackages (ps: with ps; [
|
||||
luasocket
|
||||
bit32
|
||||
]))
|
||||
|
||||
go
|
||||
|
||||
(python3.withPackages (ps: with ps; [
|
||||
unidecode
|
||||
discordpy
|
||||
setuptools
|
||||
|
||||
pip
|
||||
pynput
|
||||
python-uinput
|
||||
|
||||
mido
|
||||
|
||||
pyautogui
|
||||
pygobject3
|
||||
pycairo
|
||||
|
||||
tkinter
|
||||
|
||||
numpy
|
||||
scipy
|
||||
imageio
|
||||
|
||||
evdev
|
||||
]))
|
||||
|
||||
nodejs
|
||||
|
||||
(blender.withPackages (ps: with ps; [
|
||||
libGLU
|
||||
gcc
|
||||
zlib
|
||||
xorg.libX11
|
||||
fontconfig
|
||||
pcre2
|
||||
xorg.libXext
|
||||
xorg.libxcb
|
||||
glib
|
||||
]))
|
||||
|
||||
plasticity
|
||||
obsidian
|
||||
vesktop
|
||||
nicotine-plus
|
||||
fastfetch
|
||||
tree
|
||||
gh
|
||||
scanmem
|
||||
samrewritten
|
||||
impression
|
||||
|
||||
mission-center
|
||||
|
||||
authenticator
|
||||
|
||||
steamtinkerlaunch
|
||||
|
||||
obs-studio
|
||||
|
||||
#prismlauncher
|
||||
|
||||
euphonica
|
||||
|
||||
kooha
|
||||
|
||||
loupe
|
||||
|
||||
arduino-ide
|
||||
];
|
||||
|
||||
environment = {
|
||||
variables = {
|
||||
MICRO_TRUECOLOR = 1;
|
||||
} // (if desktop then {
|
||||
WGPU_BACKEND = "gl";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
EGL_PLATFORM = "wayland";
|
||||
} else {
|
||||
|
||||
});
|
||||
|
||||
sessionVariables = {
|
||||
BROWSER = "firefox";
|
||||
COSMIC_DATA_CONTROL_ENABLED = 1;
|
||||
WEBKIT_DISABLE_COMPOSITING_MODE = "1";
|
||||
NIXPKGS_ALLOW_UNFREE = 1;
|
||||
} // (if desktop then {
|
||||
WGPU_BACKEND = "gl";
|
||||
GBM_BACKEND = "nvidia-drm";
|
||||
LIBVA_DRIVER_NAME = "nvidia";
|
||||
__GLX_VENDOR_LIBRARY_NAME = "nvidia";
|
||||
EGL_PLATFORM = "wayland";
|
||||
} else {
|
||||
|
||||
});
|
||||
|
||||
systemPackages = with pkgs; [
|
||||
home-manager
|
||||
comma
|
||||
nix-index
|
||||
|
||||
git
|
||||
wget
|
||||
|
||||
gcc
|
||||
gnumake
|
||||
|
||||
nmap
|
||||
inetutils
|
||||
|
||||
nix-prefetch
|
||||
nix-output-monitor
|
||||
nvd
|
||||
|
||||
nixfmt
|
||||
nixd
|
||||
nil
|
||||
|
||||
nh
|
||||
|
||||
gnome-boxes
|
||||
|
||||
openjdk
|
||||
zlib
|
||||
glfw
|
||||
glew
|
||||
|
||||
wine64
|
||||
wineWow64Packages.full
|
||||
|
||||
lug-helper
|
||||
|
||||
appimage-run
|
||||
|
||||
vulkan-tools
|
||||
vulkan-validation-layers
|
||||
vulkan-loader
|
||||
|
||||
pulseaudioFull
|
||||
|
||||
gamemode
|
||||
|
||||
winetricks
|
||||
|
||||
steam-run
|
||||
|
||||
firmware-updater
|
||||
|
||||
cosmic-applets
|
||||
cosmic-edit
|
||||
cosmic-ext-calculator
|
||||
cosmic-ext-tweaks
|
||||
cosmic-screenshot
|
||||
quick-webapps
|
||||
|
||||
nix-alien.nix-alien
|
||||
|
||||
file-roller
|
||||
unzip
|
||||
|
||||
xdg-desktop-portal-gtk
|
||||
xdg-desktop-portal-cosmic
|
||||
|
||||
mangohud
|
||||
mesa-demos
|
||||
|
||||
lutris
|
||||
|
||||
gnome-software
|
||||
|
||||
neovim
|
||||
|
||||
micro
|
||||
|
||||
inputs.hytale-launcher.packages.${pkgs.system}.default
|
||||
|
||||
baobab
|
||||
] ++ (if desktop then [
|
||||
(nix-gaming.packages.${pkgs.stdenv.hostPlatform.system}.star-citizen.override {
|
||||
tricks = [ "arial" "vcrun2019" "win10" "sound=alsa" ];
|
||||
})
|
||||
|
||||
libxshmfence
|
||||
|
||||
(appimage-run.override {
|
||||
extraPkgs = pkgs: [ pkgs.xorg.libxshmfence pkgs.linuxPackages.nvidia_x11 ];
|
||||
})
|
||||
] else [
|
||||
(nix-gaming.packages.${pkgs.stdenv.hostPlatform.system}.star-citizen.override {
|
||||
tricks = [ "arial" "vcrun2019" "win10" "sound=alsa" ];
|
||||
})
|
||||
|
||||
bambu-studio
|
||||
|
||||
inputs.noctalia.packages.${pkgs.stdenv.hostPlatform.system}.default
|
||||
|
||||
kitty
|
||||
]);
|
||||
nix = {
|
||||
optimise.automatic = true;
|
||||
settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
};
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
|
||||
cudaSupport = desktop;
|
||||
nvidia.acceptLicense = desktop;
|
||||
cudaSupport = (device == "desktop");
|
||||
nvidia.acceptLicense = (device == "desktop");
|
||||
};
|
||||
|
||||
overlays = [
|
||||
@@ -588,80 +56,28 @@ in
|
||||
];
|
||||
};
|
||||
|
||||
virtualisation = {
|
||||
/*
|
||||
libvirt = {
|
||||
enable = true;
|
||||
environment.sessionVariables.NIXPKGS_ALLOW_UNFREE = 1;
|
||||
|
||||
connections."qemu:///system" = {
|
||||
networks = [
|
||||
{
|
||||
definition = nixvirt.lib.network.writeXML (nixvirt.lib.network.templates.bridge {
|
||||
name = "default";
|
||||
uuid = "cda3b7dd-71fd-44e3-8093-340f47a88c83";
|
||||
subnet_byte = 122;
|
||||
bridge_name = "virbr0";
|
||||
});
|
||||
systemd = {
|
||||
user.extraConfig = ''
|
||||
DefaultEnvironment="PATH=/run/current-system/sw/bin"
|
||||
'';
|
||||
|
||||
active = true;
|
||||
}
|
||||
];
|
||||
|
||||
domains = lib.mkForce [
|
||||
{ definition = nixvirt.lib.domain.writeXML win10Config; }
|
||||
];
|
||||
services.monitord.wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
};
|
||||
*/
|
||||
|
||||
libvirtd.enable = true;
|
||||
|
||||
spiceUSBRedirection.enable = true;
|
||||
};
|
||||
services.fstrim.enable = true;
|
||||
|
||||
programs = {
|
||||
hyprland.enable = !desktop;
|
||||
labwc.enable = !desktop;
|
||||
|
||||
dms-shell = {
|
||||
enable = false; # !desktop;
|
||||
|
||||
enableSystemMonitoring = true;
|
||||
enableClipboard = true;
|
||||
enableDynamicTheming = true;
|
||||
enableAudioWavelength = true;
|
||||
enableCalendarEvents = true;
|
||||
|
||||
plugins = {
|
||||
#nixMonitor.enable = true;
|
||||
|
||||
DankNixMonitor = {
|
||||
enable = true;
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "antonjah";
|
||||
repo = "nix-monitor";
|
||||
rev = "f3dbe00";
|
||||
hash = "sha256-biRc7ESKzPK5Ueus1xjVT8OXCHar3+Qi+Osv/++A+Ls=";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
appimage = {
|
||||
enable = true;
|
||||
binfmt = true;
|
||||
};
|
||||
|
||||
bash.shellAliases = {
|
||||
fetch = "fastfetch --file ~/nix/nix.ans";
|
||||
neofetch = "fetch";
|
||||
|
||||
rebuild = "sudo nixos-rebuild switch --impure"; # home-manager switch --impure
|
||||
rebuild = "ns os switch ~/nix"; #"sudo nixos-rebuild switch --impure"; # home-manager switch --impure
|
||||
|
||||
#pissh = "ssh -t $(avahi-resolve-host-name -4 pi.home | awk '{print $2}')";
|
||||
#pi = "pissh \"cd $(pwd) && bash\"";
|
||||
pi = "ssh pi.bug.tools";
|
||||
#pi = "ssh pi.bug.tools";
|
||||
box = "ssh box.bug.tools";
|
||||
|
||||
pico = "ssh pico.sh";
|
||||
|
||||
@@ -681,59 +97,5 @@ ssh -R \"$\{name}:80:localhost:$\{port}\" tuns.sh'\'' _";
|
||||
|
||||
hytale = "env -u WAYLAND_DISPLAY -u EGL_PLATFORM -u ELECTRON_ENABLE_WAYLAND DISPLAY=:0 XDG_SESSION_TYPE=x11 __GLX_VENDOR_LIBRARY_NAME=nvidia LD_LIBRARY_PATH=/run/opengl-driver/lib hytale-launcher";
|
||||
};
|
||||
|
||||
firefox = {
|
||||
enable = true;
|
||||
|
||||
package = pkgs.firefox-bin;
|
||||
};
|
||||
|
||||
steam = {
|
||||
enable = true;
|
||||
|
||||
remotePlay.openFirewall = true;
|
||||
dedicatedServer.openFirewall = false;
|
||||
|
||||
localNetworkGameTransfers.openFirewall = true;
|
||||
|
||||
gamescopeSession.enable = true;
|
||||
|
||||
extraCompatPackages = with pkgs; [
|
||||
proton-ge-bin
|
||||
];
|
||||
|
||||
platformOptimizations.enable = true;
|
||||
};
|
||||
|
||||
ydotool.enable = true;
|
||||
|
||||
gamescope = {
|
||||
enable = true;
|
||||
capSysNice = true;
|
||||
args = [
|
||||
"--rt"
|
||||
"--expose-wayland"
|
||||
];
|
||||
};
|
||||
|
||||
virt-manager.enable = true;
|
||||
|
||||
nix-ld = {
|
||||
enable = true;
|
||||
|
||||
libraries = options.programs.nix-ld.libraries.default ++ (with pkgs; [
|
||||
libxml2
|
||||
udev
|
||||
gcc
|
||||
egl-wayland
|
||||
mesa
|
||||
libglvnd
|
||||
wayland
|
||||
xorg.libX11
|
||||
xorg.libXcursor
|
||||
xorg.libXrandr
|
||||
xorg.libXi
|
||||
]);
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -20,5 +20,5 @@
|
||||
|
||||
jack.enable = true;
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
@@ -7,10 +7,6 @@
|
||||
|
||||
kernelPackages = pkgs.linuxPackages_zen;
|
||||
|
||||
kernel.sysctl = {
|
||||
"fs.file-max" = 524288;
|
||||
};
|
||||
|
||||
initrd.checkJournalingFS = false;
|
||||
|
||||
loader = {
|
||||
@@ -24,14 +20,4 @@
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [{
|
||||
device = "/var/lib/swapfile";
|
||||
size = 8 * 1024;
|
||||
}];
|
||||
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
memoryMax = 64 * 1024 * 1024 * 1024;
|
||||
};
|
||||
}
|
||||
@@ -29,14 +29,14 @@
|
||||
libva-utils
|
||||
libglvnd
|
||||
mesa
|
||||
] ++ (if desktop then [
|
||||
] ++ (if (device == "desktop") then [
|
||||
nvidia-vaapi-driver
|
||||
] else [
|
||||
|
||||
]);
|
||||
};
|
||||
|
||||
nvidia = if desktop then {
|
||||
nvidia = if (device == "desktop") then {
|
||||
modesetting.enable = true;
|
||||
|
||||
powerManagement.enable = false;
|
||||
@@ -80,4 +80,9 @@
|
||||
|
||||
});
|
||||
};
|
||||
|
||||
services.logind.settings.Login = {
|
||||
HandleLidSwitch = "ignore";
|
||||
HandleLidSwitchDocked = "ignore";
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
{ lib, config, inputs, pkgs, options, desktop, ... }:
|
||||
{ lib, config, inputs, pkgs, options, device, ... }:
|
||||
|
||||
let
|
||||
nix-gaming = import (builtins.fetchTarball "https://github.com/fufexan/nix-gaming/archive/master.tar.gz");
|
||||
@@ -192,7 +192,7 @@ in
|
||||
inputs.hytale-launcher.packages.${pkgs.system}.default
|
||||
|
||||
baobab
|
||||
] ++ (if desktop then [
|
||||
] ++ (if (device == "desktop") then [
|
||||
(nix-gaming.packages.${pkgs.stdenv.hostPlatform.system}.star-citizen.override {
|
||||
tricks = [ "arial" "vcrun2019" "win10" "sound=alsa" ];
|
||||
})
|
||||
@@ -1 +0,0 @@
|
||||
{ device = "laptop"; } # Possible values: "desktop", "laptop", "server"
|
||||
@@ -1,8 +0,0 @@
|
||||
{ lib, config, inputs, pkgs, options, desktop, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../modules/cosmic.nix
|
||||
../modules/graphics.nix
|
||||
]
|
||||
}
|
||||
@@ -1,8 +0,0 @@
|
||||
{ config, pkgs, device, ... }:
|
||||
|
||||
{
|
||||
services.logind.settings.Login = {
|
||||
HandleLidSwitch = "ignore";
|
||||
HandleLidSwitchDocked = "ignore";
|
||||
};
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
../modules/vscode-server.nix
|
||||
../modules/mailserver.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
nh
|
||||
comma
|
||||
nix-index
|
||||
|
||||
home-manager
|
||||
|
||||
micro
|
||||
wget
|
||||
git
|
||||
|
||||
fastfetch
|
||||
];
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
{
|
||||
inputs = {
|
||||
# nixpkgs.follows = "nixos-cosmic/nixpkgs";
|
||||
|
||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||
|
||||
flatpaks.url = "github:gmodena/nix-flatpak/?ref=latest";
|
||||
|
||||
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
|
||||
|
||||
hytale-launcher.url = "github:JPyke3/hytale-launcher-nix";
|
||||
|
||||
stylix = {
|
||||
url = "github:nix-community/stylix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
vscode-server.url = "github:nix-community/nixos-vscode-server";
|
||||
};
|
||||
|
||||
outputs = inputs@{ self, nixpkgs, stylix, home-manager, flatpaks, hytale-launcher, vscode-server, ... }:
|
||||
let
|
||||
deviceType = import /etc/nixos/device.nix;
|
||||
system = "x86_64-linux";
|
||||
in
|
||||
{
|
||||
nixosConfigurations.nix = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
|
||||
specialArgs = { inherit inputs; inherit (deviceType) desktop; };
|
||||
|
||||
modules = [
|
||||
{
|
||||
nix.settings = {
|
||||
substituters = [ "https://cosmic.cachix.org/" ];
|
||||
trusted-public-keys = [ "cosmic.cachix.org-1:Dya9IyXD4xdBehWjrkPv6rtxpmMdRel02smYzA85dPE=" ];
|
||||
};
|
||||
}
|
||||
|
||||
flatpaks.nixosModules.nix-flatpak
|
||||
|
||||
vscode-server.nixosModules.default
|
||||
|
||||
./configuration.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
101
new/main.nix
101
new/main.nix
@@ -1,101 +0,0 @@
|
||||
{ lib, config, inputs, pkgs, options, device, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
/etc/nixos/hardware-configuration.nix
|
||||
|
||||
./modules/users.nix
|
||||
./modules/boot.nix
|
||||
./modules/network.nix
|
||||
./modules/locale.nix
|
||||
./modules/security.nix
|
||||
] ++ (if device == "server" then [
|
||||
./modules/packages.nix
|
||||
./modules/vscode-server.nix
|
||||
|
||||
({ config, pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
nh comma nix-index home-manager micro wget git fastfetch
|
||||
];
|
||||
})
|
||||
] else [
|
||||
./modules/packages.nix
|
||||
./modules/cosmic.nix
|
||||
./modules/graphics.nix
|
||||
./modules/audio.nix
|
||||
./modules/home-manager.nix
|
||||
./modules/mpd.nix
|
||||
./modules/swap.nix
|
||||
./modules/virtualisation.nix
|
||||
]);
|
||||
|
||||
system = {
|
||||
stateVersion = "25.11";
|
||||
|
||||
autoUpgrade = {
|
||||
enable = true;
|
||||
allowReboot = true;
|
||||
};
|
||||
};
|
||||
|
||||
nix = {
|
||||
optimise.automatic = true;
|
||||
settings.experimental-features = [ "nix-command" "flakes" ];
|
||||
};
|
||||
|
||||
nixpkgs = {
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
|
||||
cudaSupport = (device == "desktop");
|
||||
nvidia.acceptLicense = (device == "desktop");
|
||||
};
|
||||
|
||||
overlays = [
|
||||
|
||||
];
|
||||
};
|
||||
|
||||
environment.sessionVariables.NIXPKGS_ALLOW_UNFREE = 1;
|
||||
|
||||
systemd = {
|
||||
user.extraConfig = ''
|
||||
DefaultEnvironment="PATH=/run/current-system/sw/bin"
|
||||
'';
|
||||
|
||||
services.monitord.wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
|
||||
services.fstrim.enable = true;
|
||||
|
||||
programs = {
|
||||
bash.shellAliases = {
|
||||
fetch = "fastfetch --file ~/nix/nix.ans";
|
||||
|
||||
rebuild = "ns os switch ~/nix"; #"sudo nixos-rebuild switch --impure"; # home-manager switch --impure
|
||||
|
||||
#pissh = "ssh -t $(avahi-resolve-host-name -4 pi.home | awk '{print $2}')";
|
||||
#pi = "pissh \"cd $(pwd) && bash\"";
|
||||
#pi = "ssh pi.bug.tools";
|
||||
box = "ssh box.bug.tools";
|
||||
|
||||
pico = "ssh pico.sh";
|
||||
|
||||
# tuns name port
|
||||
tuns = "bash -c '\''if [ \"$#\" -ne 2 ]; then echo \"Usage: tun name port\"; exit 1; fi;
|
||||
if [[ \"$1\" =~ ^[0-9]+$ ]]; then port=\"$1\"; name=\"$2\";
|
||||
elif [[ \"$2\" =~ ^[0-9]+$ ]]; then port=\"$2\"; name=\"$1\";
|
||||
else echo \"Error: One argument must be a number (port)\"; exit 1; fi;
|
||||
ssh -R \"$\{name}:80:localhost:$\{port}\" tuns.sh'\'' _";
|
||||
|
||||
# pgs name directory
|
||||
pgs = "bash -c '\''if [ \"$#\" -ne 2 ]; then echo \"Usage: pgs NAME DIRECTORY\"; exit 1; fi; rsync -rv \"$2\" pgs.sh:/\"$1\"'\'' _";
|
||||
|
||||
bambu = "env -u WAYLAND_DISPLAY XDG_SESSION_TYPE=x11 WEBKIT_FORCE_COMPOSITING_MODE=1 WEBKIT_DISABLE_COMPOSITING_MODE=1 GBM_BACKEND=dri bambu-studio";
|
||||
|
||||
scale = "env GDK_BACKEND=x11 GDK_SCALE=1 GDK_DPI_SCALE=1";
|
||||
|
||||
hytale = "env -u WAYLAND_DISPLAY -u EGL_PLATFORM -u ELECTRON_ENABLE_WAYLAND DISPLAY=:0 XDG_SESSION_TYPE=x11 __GLX_VENDOR_LIBRARY_NAME=nvidia LD_LIBRARY_PATH=/run/opengl-driver/lib hytale-launcher";
|
||||
};
|
||||
};
|
||||
}
|
||||
314
vms/win10.nix
314
vms/win10.nix
@@ -1,314 +0,0 @@
|
||||
{
|
||||
nvramPath,
|
||||
pkgs,
|
||||
uuid,
|
||||
}:
|
||||
|
||||
{
|
||||
inherit uuid;
|
||||
type = "kvm";
|
||||
|
||||
title = "Windows 10";
|
||||
name = "win10";
|
||||
description = "A Windows 10 vm define in nix";
|
||||
|
||||
sysinfo = {
|
||||
type = "smbios";
|
||||
bios.entry = [
|
||||
{
|
||||
name = "vendor";
|
||||
value = "INSYDE Corp.";
|
||||
}
|
||||
{
|
||||
name = "version";
|
||||
value = "03.02";
|
||||
}
|
||||
{
|
||||
name = "date";
|
||||
value = "01/23/2024";
|
||||
}
|
||||
];
|
||||
system.entry = [
|
||||
{
|
||||
name = "manufacturer";
|
||||
value = "Framework";
|
||||
}
|
||||
{
|
||||
name = "product";
|
||||
value = "Laptop 16 (AMD Ryzen 7040 Series)";
|
||||
}
|
||||
{
|
||||
name = "version";
|
||||
value = "AG";
|
||||
}
|
||||
{
|
||||
name = "serial";
|
||||
value = "FRAGADDPAG4096006K";
|
||||
}
|
||||
{
|
||||
name = "uuid";
|
||||
value = uuid;
|
||||
}
|
||||
{
|
||||
name = "sku";
|
||||
value = "FRAGACCP0G";
|
||||
}
|
||||
{
|
||||
name = "family";
|
||||
value = "16in";
|
||||
}
|
||||
];
|
||||
};
|
||||
vcpu = {
|
||||
count = 4;
|
||||
placement = "static";
|
||||
};
|
||||
memory = {
|
||||
count = 16;
|
||||
unit = "GiB";
|
||||
};
|
||||
cputune = {
|
||||
vcpupin = [
|
||||
{
|
||||
vcpu = 0;
|
||||
cpuset = "4";
|
||||
}
|
||||
{
|
||||
vcpu = 1;
|
||||
cpuset = "5";
|
||||
}
|
||||
{
|
||||
vcpu = 2;
|
||||
cpuset = "6";
|
||||
}
|
||||
{
|
||||
vcpu = 3;
|
||||
cpuset = "7";
|
||||
}
|
||||
];
|
||||
};
|
||||
cpu = {
|
||||
mode = "host-passthrough";
|
||||
check = "none";
|
||||
migratable = true;
|
||||
cache = {
|
||||
level = 3;
|
||||
mode = "emulate";
|
||||
};
|
||||
feature = [
|
||||
{
|
||||
policy = "disable";
|
||||
name = "hypervisor";
|
||||
}
|
||||
{
|
||||
policy = "require";
|
||||
name = "svm";
|
||||
}
|
||||
{
|
||||
policy = "require";
|
||||
name = "topoext";
|
||||
}
|
||||
];
|
||||
topology = {
|
||||
sockets = 1;
|
||||
dies = 1;
|
||||
cores = 2;
|
||||
threads = 2;
|
||||
};
|
||||
};
|
||||
|
||||
# OS
|
||||
os = {
|
||||
type = "hvm";
|
||||
arch = "x86_64";
|
||||
machine = "pc-q35-8.2";
|
||||
loader = {
|
||||
readonly = true;
|
||||
type = "pflash";
|
||||
path = "${pkgs.OVMFFull.fd}/FV/OVMF_CODE.ms.fd";
|
||||
};
|
||||
nvram = {
|
||||
template = "${pkgs.OVMFFull.fd}/FV/OVMF_VARS.ms.fd";
|
||||
path = "${nvramPath}/win10gpu.nvram";
|
||||
};
|
||||
smbios.mode = "sysinfo";
|
||||
};
|
||||
|
||||
features = {
|
||||
acpi = { };
|
||||
apic = { };
|
||||
hyperv = {
|
||||
mode = "custom";
|
||||
relaxed = {
|
||||
state = true;
|
||||
};
|
||||
vapic = {
|
||||
state = true;
|
||||
};
|
||||
spinlocks = {
|
||||
state = true;
|
||||
retries = 8191;
|
||||
};
|
||||
vendor_id = {
|
||||
state = true;
|
||||
value = "1234567890ab";
|
||||
};
|
||||
};
|
||||
kvm.hidden = {
|
||||
state = true;
|
||||
};
|
||||
vmport.state = false;
|
||||
};
|
||||
|
||||
clock = {
|
||||
offset = "localtime";
|
||||
timer = [
|
||||
{
|
||||
name = "rtc";
|
||||
tickpolicy = "catchup";
|
||||
}
|
||||
{
|
||||
name = "pit";
|
||||
tickpolicy = "delay";
|
||||
}
|
||||
{
|
||||
name = "hpet";
|
||||
present = false;
|
||||
}
|
||||
{
|
||||
name = "hypervclock";
|
||||
present = true;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
pm = {
|
||||
suspend-to-mem = {
|
||||
enabled = false;
|
||||
};
|
||||
suspend-to-disk = {
|
||||
enabled = false;
|
||||
};
|
||||
};
|
||||
|
||||
devices = {
|
||||
emulator = "${pkgs.qemu}/bin/qemu-system-x86_64";
|
||||
|
||||
# Disks
|
||||
hostdev = [];
|
||||
|
||||
# Input
|
||||
input = [
|
||||
{
|
||||
type = "keyboard";
|
||||
bus = "virtio";
|
||||
}
|
||||
{
|
||||
type = "mouse";
|
||||
bus = "virtio";
|
||||
}
|
||||
];
|
||||
|
||||
# Video + Audio
|
||||
graphics = {
|
||||
type = "spice";
|
||||
autoport = true;
|
||||
listen = {
|
||||
type = "address";
|
||||
};
|
||||
image = {
|
||||
compression = false;
|
||||
};
|
||||
};
|
||||
|
||||
video = {
|
||||
model = {
|
||||
type = "vga";
|
||||
vram = 65536;
|
||||
heads = 1;
|
||||
primary = true;
|
||||
};
|
||||
};
|
||||
|
||||
sound = {
|
||||
model = "ich9";
|
||||
};
|
||||
audio = {
|
||||
id = 1;
|
||||
type = "spice";
|
||||
};
|
||||
|
||||
# Interfaces
|
||||
controller = [
|
||||
{
|
||||
type = "usb";
|
||||
index = 0;
|
||||
model = "qemu-xhci";
|
||||
ports = 15;
|
||||
}
|
||||
{
|
||||
type = "pci";
|
||||
index = 0;
|
||||
model = "pcie-root";
|
||||
}
|
||||
{
|
||||
type = "virtio-serial";
|
||||
index = 0;
|
||||
}
|
||||
];
|
||||
|
||||
serial = [
|
||||
{
|
||||
type = "pty";
|
||||
target = {
|
||||
type = "isa-serial";
|
||||
port = 0;
|
||||
model.name = "isa-serial";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
console = [
|
||||
{
|
||||
type = "pty";
|
||||
target = {
|
||||
type = "serial";
|
||||
port = 0;
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
channel = [
|
||||
{
|
||||
type = "spicevmc";
|
||||
target = {
|
||||
type = "virtio";
|
||||
name = "com.redhat.spice.0";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
||||
# Other
|
||||
watchdog = {
|
||||
model = "itco";
|
||||
action = "reset";
|
||||
};
|
||||
memballoon.model = "none";
|
||||
};
|
||||
|
||||
qemu-commandline = {
|
||||
arg = [
|
||||
{ value = "-cpu"; }
|
||||
{ value = "host,kvm=off,hv_time,hv_vendor_id=null,-hypervisor"; }
|
||||
{ value = "-machine"; }
|
||||
{ value = "q35"; }
|
||||
{ value = "-device"; }
|
||||
{ value = "{\"driver\":\"ivshmem-plain\",\"id\":\"shmem0\",\"memdev\":\"looking-glass\"}"; }
|
||||
{ value = "-object"; }
|
||||
{
|
||||
value = "{\"qom-type\":\"memory-backend-file\",\"id\":\"looking-glass\",\"mem-path\":\"/dev/kvmfr0\",\"size\":134217728,\"share\":true}";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user