This commit is contained in:
Snorre Ettrup Altschul 2025-03-21 02:00:29 +01:00
parent dbefb96cb9
commit 1e0ffa6afb
72 changed files with 1896 additions and 1452 deletions

View file

@ -37,11 +37,11 @@
"base16-helix": {
"flake": false,
"locked": {
"lastModified": 1725860795,
"narHash": "sha256-Z2o8VBPW3I+KKTSfe25kskz0EUj7MpUh8u355Z1nVsU=",
"lastModified": 1736852337,
"narHash": "sha256-esD42YdgLlEh7koBrSqcT7p2fsMctPAcGl/+2sYJa2o=",
"owner": "tinted-theming",
"repo": "base16-helix",
"rev": "7f795bf75d38e0eea9fed287264067ca187b88a9",
"rev": "03860521c40b0b9c04818f2218d9cc9efc21e7a5",
"type": "github"
},
"original": {
@ -53,37 +53,17 @@
"base16-vim": {
"flake": false,
"locked": {
"lastModified": 1731949548,
"narHash": "sha256-XIDexXM66sSh5j/x70e054BnUsviibUShW7XhbDGhYo=",
"lastModified": 1732806396,
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=",
"owner": "tinted-theming",
"repo": "base16-vim",
"rev": "61165b1632409bd55e530f3dbdd4477f011cadc6",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-vim",
"type": "github"
}
},
"devshell": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1735644329,
"narHash": "sha256-tO3HrHriyLvipc4xr+Ewtdlo7wM1OjXNjlWRgmM7peY=",
"owner": "numtide",
"repo": "devshell",
"rev": "f7795ede5b02664b57035b3b757876703e2c3eac",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "devshell",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github"
}
},
@ -94,11 +74,11 @@
]
},
"locked": {
"lastModified": 1736165297,
"narHash": "sha256-OT+sF4eNDFN/OdyUfIQwyp28+CFQL7PAdWn0wGU7F0U=",
"lastModified": 1740485968,
"narHash": "sha256-WK+PZHbfDjLyveXAxpnrfagiFgZWaTJglewBWniTn2Y=",
"owner": "nix-community",
"repo": "disko",
"rev": "76816af65d5294761636a838917e335992a52e0c",
"rev": "19c1140419c4f1cdf88ad4c1cfb6605597628940",
"type": "github"
},
"original": {
@ -107,28 +87,29 @@
"type": "github"
}
},
"firefox-gnome-theme": {
"flake": false,
"locked": {
"lastModified": 1739223196,
"narHash": "sha256-vAxN2f3rvl5q62gQQjZGVSvF93nAsOxntuFz+e/655w=",
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"rev": "a89108e6272426f4eddd93ba17d0ea101c34fb21",
"type": "github"
},
"original": {
"owner": "rafaelmardojai",
"repo": "firefox-gnome-theme",
"type": "github"
}
},
"flake-compat": {
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"revCount": 57,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/edolstra/flake-compat/1.0.1/018afb31-abd1-7bff-a5e4-cff7e18efb7a/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/edolstra/flake-compat/1.tar.gz"
}
},
"flake-compat_2": {
"flake": false,
"locked": {
"lastModified": 1696426674,
"narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=",
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "0f9255e01c2351cc7d116c072cb317785dd33b33",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
@ -145,11 +126,33 @@
]
},
"locked": {
"lastModified": 1736143030,
"narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=",
"lastModified": 1738453229,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de",
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-parts_2": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"
},
"original": {
@ -216,52 +219,21 @@
"git-hooks": {
"inputs": {
"flake-compat": [
"nixvim",
"stylix",
"flake-compat"
],
"gitignore": "gitignore",
"nixpkgs": [
"nixvim",
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1735882644,
"narHash": "sha256-3FZAG+pGt3OElQjesCAWeMkQ7C/nB1oTHLRQ8ceP110=",
"lastModified": 1737465171,
"narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "a5a961387e75ae44cc20f0a57ae463da5e959656",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"git-hooks_2": {
"inputs": {
"flake-compat": [
"stylix",
"flake-compat"
],
"gitignore": "gitignore_2",
"nixpkgs": [
"stylix",
"nixpkgs"
],
"nixpkgs-stable": [
"stylix",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1731363552,
"narHash": "sha256-vFta1uHnD29VUY4HJOO/D6p6rxyObnf+InnSMT4jlMU=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "cd1af27aa85026ac759d5d3fccf650abe7e1bbf0",
"rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17",
"type": "github"
},
"original": {
@ -271,28 +243,6 @@
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
"nixvim",
"git-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "gitignore.nix",
"type": "github"
}
},
"gitignore_2": {
"inputs": {
"nixpkgs": [
"stylix",
@ -338,11 +288,11 @@
]
},
"locked": {
"lastModified": 1736089250,
"narHash": "sha256-/LPWMiiJGPHGd7ZYEgmbE2da4zvBW0acmshUjYC3WG4=",
"lastModified": 1741056285,
"narHash": "sha256-/JKDMVqq8PIqcGonBVKbKq1SooV3kzGmv+cp3rKAgPA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "172b91bfb2b7f5c4a8c6ceac29fd53a01ef07196",
"rev": "70fbbf05a5594b0a72124ab211bff1d502c89e3f",
"type": "github"
},
"original": {
@ -352,27 +302,6 @@
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1736089250,
"narHash": "sha256-/LPWMiiJGPHGd7ZYEgmbE2da4zvBW0acmshUjYC3WG4=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "172b91bfb2b7f5c4a8c6ceac29fd53a01ef07196",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_3": {
"inputs": {
"nixpkgs": [
"stylix",
@ -380,11 +309,11 @@
]
},
"locked": {
"lastModified": 1735774425,
"narHash": "sha256-C73gLFnEh8ZI0uDijUgCDWCd21T6I6tsaWgIBHcfAXg=",
"lastModified": 1740347597,
"narHash": "sha256-st5q9egkPGz8TUcVVlIQX7y6G3AzHob+6M963bwVq74=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "5f6aa268e419d053c3d5025da740e390b12ac936",
"rev": "12e26a74e5eb1a31e13daaa08858689e25ebd449",
"type": "github"
},
"original": {
@ -395,11 +324,11 @@
},
"impermanence": {
"locked": {
"lastModified": 1734945620,
"narHash": "sha256-olIfsfJK4/GFmPH8mXMmBDAkzVQ1TWJmeGT3wBGfQPY=",
"lastModified": 1737831083,
"narHash": "sha256-LJggUHbpyeDvNagTUrdhe/pRVp4pnS6wVKALS782gRI=",
"owner": "nix-community",
"repo": "impermanence",
"rev": "d000479f4f41390ff7cf9204979660ad5dd16176",
"rev": "4b3e914cdf97a5b536a889e939fb2fd2b043a170",
"type": "github"
},
"original": {
@ -436,27 +365,6 @@
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixvim",
"nixpkgs"
]
},
"locked": {
"lastModified": 1736085891,
"narHash": "sha256-bTl9fcUo767VaSx4Q5kFhwiDpFQhBKna7lNbGsqCQiA=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "ba9b3173b0f642ada42b78fb9dfc37ca82266f6c",
"type": "github"
},
"original": {
"owner": "lnl7",
"repo": "nix-darwin",
"type": "github"
}
},
"nix-index-database": {
"inputs": {
"nixpkgs": [
@ -464,11 +372,11 @@
]
},
"locked": {
"lastModified": 1736047960,
"narHash": "sha256-hutd85FA1jUJhhqBRRJ+u7UHO9oFGD/RVm2x5w8WjVQ=",
"lastModified": 1740886574,
"narHash": "sha256-jN6kJ41B6jUVDTebIWeebTvrKP6YiLd1/wMej4uq4Sk=",
"owner": "nix-community",
"repo": "nix-index-database",
"rev": "816a6ae88774ba7e74314830546c29e134e0dffb",
"rev": "26a0f969549cf4d56f6e9046b9e0418b3f3b94a5",
"type": "github"
},
"original": {
@ -479,11 +387,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1736012469,
"narHash": "sha256-/qlNWm/IEVVH7GfgAIyP6EsVZI6zjAx1cV5zNyrs+rI=",
"lastModified": 1741010256,
"narHash": "sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "8f3e1f807051e32d8c95cd12b9b421623850a34d",
"rev": "ba487dbc9d04e0634c64e3b1f0d25839a0a68246",
"type": "github"
},
"original": {
@ -495,11 +403,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1735648875,
"narHash": "sha256-fQ4k/hyQiH9RRPznztsA9kbcDajvwV1sRm01el6Sr3c=",
"lastModified": 1740367490,
"narHash": "sha256-WGaHVAjcrv+Cun7zPlI41SerRtfknGQap281+AakSAw=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "47e29c20abef74c45322eca25ca1550cdf5c3b50",
"rev": "0196c0175e9191c474c26ab5548db27ef5d34b05",
"type": "github"
},
"original": {
@ -511,24 +419,18 @@
},
"nixvim": {
"inputs": {
"devshell": "devshell",
"flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"git-hooks": "git-hooks",
"home-manager": "home-manager_2",
"nix-darwin": "nix-darwin",
"nixpkgs": [
"nixpkgs"
],
"nuschtosSearch": "nuschtosSearch",
"treefmt-nix": "treefmt-nix"
"nuschtosSearch": "nuschtosSearch"
},
"locked": {
"lastModified": 1736157655,
"narHash": "sha256-/ggXMK8Q/rN94kaaSHPtEcf4SPKgPXfzSbDgAR6Odzs=",
"lastModified": 1741098523,
"narHash": "sha256-gXDSXDr6tAb+JgxGMvcEjKC9YO8tVOd8hMMZHJLyQ6Q=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "31139e0605fd886d981e0a197e30ceac4b859d6e",
"rev": "03065fd4708bfdf47dd541d655392a60daa25ded",
"type": "github"
},
"original": {
@ -537,6 +439,29 @@
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": [
"stylix",
"nixpkgs"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1740408283,
"narHash": "sha256-2xECnhgF3MU9YjmvOkrRp8wRFo2OjjewgCtlfckhL5s=",
"owner": "nix-community",
"repo": "NUR",
"rev": "496a4a11162bdffb9a7b258942de138873f019f7",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"nuschtosSearch": {
"inputs": {
"flake-utils": "flake-utils",
@ -547,11 +472,11 @@
]
},
"locked": {
"lastModified": 1735854821,
"narHash": "sha256-Iv59gMDZajNfezTO0Fw6LHE7uKAShxbvMidmZREit7c=",
"lastModified": 1738508923,
"narHash": "sha256-4DaDrQDAIxlWhTjH6h/+xfG05jt3qDZrZE/7zDLQaS4=",
"owner": "NuschtOS",
"repo": "search",
"rev": "836908e3bddd837ae0f13e215dd48767aee355f0",
"rev": "86e2038290859006e05ca7201425ea5b5de4aecb",
"type": "github"
},
"original": {
@ -578,24 +503,27 @@
"base16-fish": "base16-fish",
"base16-helix": "base16-helix",
"base16-vim": "base16-vim",
"flake-compat": "flake-compat_2",
"firefox-gnome-theme": "firefox-gnome-theme",
"flake-compat": "flake-compat",
"flake-utils": "flake-utils_2",
"git-hooks": "git-hooks_2",
"git-hooks": "git-hooks",
"gnome-shell": "gnome-shell",
"home-manager": "home-manager_3",
"home-manager": "home-manager_2",
"nixpkgs": "nixpkgs_2",
"nur": "nur",
"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": 1736176887,
"narHash": "sha256-XacDv8TFEcqaZlfsRqNFUCgca7Xv3SQtzrXon8oEhVo=",
"lastModified": 1741112087,
"narHash": "sha256-dBGwN4aHmX2QUXolZDhV+p06+WM5ZykL4wd9BD6bT7k=",
"owner": "danth",
"repo": "stylix",
"rev": "b47ef3b8560c3921404d72cec95d84632e355e01",
"rev": "11780517948f214b9f93d1bf5a2d29bc181d3a33",
"type": "github"
},
"original": {
@ -668,14 +596,30 @@
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1740351358,
"narHash": "sha256-Hdk850xgAd3DL8KX0AbyU7tC834d3Lej1jOo3duWiOA=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "a1bc2bd89e693e7e3f5764cfe8114e2ae150e184",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1729501581,
"narHash": "sha256-1ohEFMC23elnl39kxWnjzH1l2DFWWx4DhFNNYDTYt54=",
"lastModified": 1740272597,
"narHash": "sha256-/etfUV3HzAaLW3RSJVwUaW8ULbMn3v6wbTlXSKbcoWQ=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "f0e7f7974a6441033eb0a172a0342e96722b4f14",
"rev": "b6c7f46c8718cc484f2db8b485b06e2a98304cd0",
"type": "github"
},
"original": {
@ -703,16 +647,17 @@
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nixvim",
"stylix",
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1736115332,
"narHash": "sha256-FBG9d7e0BTFfxVdw4b5EmNll2Mv7hfRc54hbB4LrKko=",
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "1788ca5acd4b542b923d4757d4cfe4183cc6a92d",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github"
},
"original": {

View file

@ -51,24 +51,31 @@
# url = "github:hyprwm/hyprland-plugins";
# inputs.hyprland.follows = "hyprland";
# };
};
outputs = { self, nixpkgs, ... } @ inputs:
let
outputs = {
self,
nixpkgs,
...
} @ inputs: let
system = "x86_64-linux";
pkgs = import nixpkgs { inherit system; overlays = []; };
in
{
pkgs = import nixpkgs {
inherit system;
overlays = [];
};
in {
nixosConfigurations = {
bootstrap = nixpkgs.lib.nixosSystem {
specialArgs = {
inherit inputs;
};
modules = [
inputs.disko.nixosModules.default
(import ./modules/disko/disko-luks.nix { device = "/dev/nvme0n1"; swap-size = "8G"; encrypted = false; })
(import ./modules/disko/disko-luks.nix {
device = "/dev/nvme0n1";
swap-size = "8G";
encrypted = false;
})
./hosts/bootstrap/configuration.nix
@ -82,7 +89,11 @@
};
modules = [
inputs.disko.nixosModules.default
(import ./modules/disko/disko-luks.nix { device = "/dev/nvme0n1"; swap-size = "8G"; encrypted = false; })
(import ./modules/disko/disko-luks.nix {
device = "/dev/nvme0n1";
swap-size = "8G";
encrypted = false;
})
./hosts/desktop/configuration.nix
@ -92,7 +103,7 @@
inputs.stylix.nixosModules.stylix
inputs.nix-index-database.nixosModules.nix-index
{ programs.nix-index-database.comma.enable = true; }
{programs.nix-index-database.comma.enable = true;}
];
};
@ -102,7 +113,7 @@
};
modules = [
inputs.disko.nixosModules.default
(import ./hosts/nixos-vm/disko-luks.nix { device = "/dev/vda"; })
(import ./hosts/nixos-vm/disko-luks.nix {device = "/dev/vda";})
./hosts/nixos-vm/configuration.nix
@ -119,7 +130,11 @@
};
modules = [
inputs.disko.nixosModules.default
(import ./modules/disko/disko-luks.nix { device = "/dev/sda"; swap-size = "32G"; encrypted = true; })
(import ./modules/disko/disko-luks.nix {
device = "/dev/sda";
swap-size = "32G";
encrypted = true;
})
./hosts/laptop/configuration.nix
@ -129,13 +144,14 @@
inputs.stylix.nixosModules.stylix
inputs.nix-index-database.nixosModules.nix-index
{ programs.nix-index-database.comma.enable = true; }
{programs.nix-index-database.comma.enable = true;}
];
};
};
templates = {
formatter.x86_64-linux = pkgs.alejandra;
templates = {
dotnet = {
path = ./templates/dotnet;
description = "Flake for programming in dotnet";
@ -145,9 +161,6 @@
path = ./templates/latex;
description = "Flake for creating latex documents";
};
};
};
}

View file

@ -1,19 +1,22 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, inputs, ... }:
{
config,
lib,
pkgs,
inputs,
...
}: {
# This is where you specify all .nix files to import
imports =
[
imports = [
# Hardware configuration that you generated in earlier steps
./hardware-configuration.nix
(import ../../modules/disko/delete-on-boot.nix {
inherit lib;
persistExtraDirectories = [ ];
persistExtraFiles = [ ];
persistExtraDirectories = [];
persistExtraFiles = [];
users = {};
})
];
@ -23,7 +26,7 @@
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.timeout = 0;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
# System wide packages goes here
environment.systemPackages = with pkgs; [
@ -80,5 +83,4 @@
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment?
}

View file

@ -1,17 +1,21 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd"];
boot.extraModulePackages = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,16 +1,18 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, inputs, ... }:
let
{
config,
lib,
pkgs,
inputs,
...
}: let
persistence = {
"snorre" = import ./persist.nix;
};
in
{
imports =
[
in {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
# ../../modules/drivers/nvidia.nix
@ -18,19 +20,23 @@ in
(import ../../modules/disko/delete-on-boot.nix {
inherit lib;
persistExtraDirectories = [ ];
persistExtraFiles = [ ];
persistExtraDirectories = [];
persistExtraFiles = [];
users = persistence;
})
# ../../modules/plymouth
#../../modules/users/main-user.nix
];
services.mullvad-vpn.enable = true;
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.timeout = 0;
boot.blacklistedKernelModules = ["btusb"];
boot.kernelPackages = pkgs.linuxPackages_zen;
# boot.plymouth.enable = true;
@ -60,10 +66,10 @@ in
# "udev.log_priority=3"
];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
home-manager = {
extraSpecialArgs = { inherit inputs; };
extraSpecialArgs = {inherit inputs;};
users = {
"snorre" = import ./home.nix;
};
@ -109,9 +115,9 @@ in
"libvirtd"
];
# openssh.authorizedKeys.keyFiles = [
# ./ssh/authorized_keys_snorre
# ];
# openssh.authorizedKeys.keyFiles = [
# ./ssh/authorized_keys_snorre
# ];
shell = pkgs.zsh;
};
@ -175,7 +181,7 @@ in
# Gnome keyring makes it so we dont have to keep logging into programs
gnome-keyring
# Ui for when programs want sudo
polkit-kde-agent
hyprpolkitagent
];
programs.gamemode = {
@ -191,24 +197,20 @@ in
# start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
# end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
start =
let
start = let
script = pkgs.writeScriptBin "gamemode_start.sh" ''
${pkgs.libnotify}/bin/notify-send "GameMode started"
${pkgs.libnotify}/bin/notify-send "user is: $USER"
/home/$USER/.nix-profile/bin/hyprctl keyword input:touchpad:disable_while_typing false
'';
in
"${script}/bin/gamemode_start.sh";
in "${script}/bin/gamemode_start.sh";
end =
let
end = let
script = pkgs.writeScriptBin "gamemode_end.sh" ''
${pkgs.libnotify}/bin/notify-send "GameMode end"
/home/$USER/.nix-profile/bin/hyprctl keyword input:touchpad:disable_while_typing true
'';
in
"${script}/bin/gamemode_end.sh";
in "${script}/bin/gamemode_end.sh";
};
};
};
@ -233,17 +235,20 @@ in
wlr.enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
(pkgs.callPackage ../../modules/portals/xdg-desktop-portal-termfilechooser.nix { })
(pkgs.callPackage ../../modules/portals/xdg-desktop-portal-termfilechooser.nix {})
];
# xdgOpenUsePortal = true;
};
xdg.mime.defaultApplications = {
"application/pdf" = "firefox.desktop";
};
qt = {
enable = true;
platformTheme = "qt5ct";
};
# Delete old entries to
nix = {
gc = {
@ -255,6 +260,7 @@ in
stylix.base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-material-dark-soft.yaml";
stylix.autoEnable = true;
stylix.polarity = "dark";
stylix.targets.qt.platform = "qtct";
# stylix.cursor.package = ( pkgs.callPackage ../../modules/stylix/cursors/posy-improved {} );
# stylix.cursor.name = "Posy_Cursor";
@ -266,18 +272,46 @@ in
stylix.image = ./nixos-wallpaper.png;
networking.hostName = "desktop"; # Define your hostname.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
networking.networkmanager.wifi.powersave = true;
networking.networkmanager.enable = false; # Easiest to use and most distros use this by default.
networking.useNetworkd = true;
networking.useDHCP = false;
networking.hosts."10.0.101.10" = ["server"];
networking.interfaces = {
enp8s0.ipv4.addresses = [
{
address = "10.0.101.11";
prefixLength = 24;
}
];
wlp7s0.ipv4.addresses = [
{
address = "10.0.101.12";
prefixLength = 24;
}
];
};
networking.defaultGateway = {
address = "10.0.101.1";
interface = "enp8s0";
};
networking.nameservers = [
"10.0.101.1"
"4.4.4.4"
];
networking.firewall = {
enable = true;
allowedTCPPorts = [ 8000 ];
allowedTCPPorts = [8000];
allowedUDPPortRanges = [
{ from = 8000; to = 8010; }
{
from = 8000;
to = 8010;
}
];
};
# Fuck off, i wanna boot
systemd.services."NetworkManager-wait-online".enable = false;
systemd.services."systemd-networkd-wait-online".enable = lib.mkForce false;
# Set your time zone.
time.timeZone = "Europe/Copenhagen";
@ -296,16 +330,20 @@ in
'';
};
services.udev.extraRules = ''
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="6964", ATTRS{idProduct}=="0075", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
'';
services.blueman = {
enable = true;
enable = false;
};
virtualisation.docker = {
enable = true;
enable = false;
storageDriver = "btrfs";
};
hardware.bluetooth.enable = true;
hardware.bluetooth.enable = false;
hardware.bluetooth.powerOnBoot = false;
hardware.bluetooth.settings = {
General = {
@ -316,8 +354,8 @@ in
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
intel-media-driver # LIBVA_DRIVER_NAME=iHD
intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
# intel-media-driver # LIBVA_DRIVER_NAME=iHD
# intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium)
libvdpau-va-gl
];
};
@ -355,7 +393,6 @@ in
turbo = "never";
scaling_max_freq = 1000000;
};
};
};
@ -392,7 +429,6 @@ in
# hardware.opengl.driSupport = true; # This is already enabled by default
# hardware.opengl.driSupport32Bit = true; # For 32 bit applications
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
@ -410,6 +446,4 @@ in
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment?
}

View file

@ -1,15 +1,14 @@
{ device ? throw "Set this to your disk device, e.g. /dev/sda"
, swap-size ? "0"
, encrypted ? false
, lib
, ...
}:
let
disko-luks = import ../modules/disko/disko-luks.nix;
in
{
device ? throw "Set this to your disk device, e.g. /dev/sda",
swap-size ? "0",
encrypted ? false,
lib,
...
}: let
disko-luks = import ../modules/disko/disko-luks.nix;
in {
disko.devices.disk = lib.mergeAttrsList [
{ main = disko-luks.devices.disk.main; }
{main = disko-luks.devices.disk.main;}
{
hdd = {
device = "/dev/sda";
@ -19,7 +18,6 @@ in
partitions = {
main = {
size = "100%";
};
};
};

View file

@ -1,17 +1,21 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-amd" "joydev" "usbhid"];
boot.extraModulePackages = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,6 +1,9 @@
{ pkgs, inputs, lib, ... }:
{
pkgs,
inputs,
lib,
...
}: {
imports = [
# inputs.impermanence.nixosModules.home-manager.impermanence
@ -12,7 +15,11 @@
../../modules/programs/waybar
../../modules/programs/hyprpaper.nix
../../modules/programs/tofi.nix
../../modules/programs/alacritty.nix
# ../../modules/programs/alacritty.nix
../../modules/programs/foot.nix
../../modules/programs/legcord.nix
../../modules/programs/firefox.nix
../../modules/programs/tmux.nix
../../modules/programs/mangohud.nix
@ -66,16 +73,24 @@
nixpkgs.config.allowUnfree = true;
home.packages =
let
tex = (pkgs.texlive.combine {
inherit (pkgs.texlive) scheme-medium
nixpkgs.config.permittedInsecurePackages = [
"dotnet-runtime-7.0.20"
];
home.packages = let
tex = pkgs.texlive.combine {
inherit
(pkgs.texlive)
scheme-medium
titling
biblatex hyperref amsmath tcolorbox environ
biblatex
hyperref
amsmath
tcolorbox
environ
;
});
in
(with pkgs; [
};
in (with pkgs; [
file
nixpkgs-fmt
ripgrep
@ -92,7 +107,7 @@
localsend
ipe
# ipe
texlivePackages.latex
texlivePackages.luatex
zathura
@ -102,13 +117,28 @@
prismlauncher
spotify
vesktop
# vesktop
sublime-merge
obs-studio
(vintagestory.overrideAttrs (old: {
desktopItems = [
(makeDesktopItem {
name = "vintagestory";
desktopName = "Vintage Story";
exec = "mangohud gamemoderun vintagestory";
icon = "vintagestory";
comment = "Innovate and explore in a sandbox world";
categories = ["Game"];
})
];
}))
vial
(qt6Packages.callPackage ../../modules/programs/path-of-building-poe2 {})
path-of-building
]);

View file

@ -16,8 +16,10 @@
".mozilla"
".config/vesktop"
# ".config/vesktop"
".config/legcord"
".config/zsh"
".config/VintagestoryData"
".cache/mozilla"
".cache/nix"

View file

@ -1,17 +1,19 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, inputs, ... }:
let
{
config,
lib,
pkgs,
inputs,
...
}: let
persistence = {
"snorre" = import ./persist.nix;
"work" = import ./persist-work.nix;
};
in
{
imports =
[
in {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
../../modules/drivers/nvidia.nix
@ -19,8 +21,8 @@ in
(import ../../modules/disko/delete-on-boot.nix {
inherit lib;
persistExtraDirectories = [ ];
persistExtraFiles = [ ];
persistExtraDirectories = [];
persistExtraFiles = [];
users = persistence;
})
# ../../modules/plymouth
@ -61,10 +63,10 @@ in
# "udev.log_priority=3"
];
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
home-manager = {
extraSpecialArgs = { inherit inputs; };
extraSpecialArgs = {inherit inputs;};
users = {
"snorre" = import ./home.nix;
"work" = import ./work-home.nix;
@ -116,7 +118,6 @@ in
];
shell = pkgs.zsh;
};
users.users."work" = {
@ -209,24 +210,20 @@ in
# start = "${pkgs.libnotify}/bin/notify-send 'GameMode started'";
# end = "${pkgs.libnotify}/bin/notify-send 'GameMode ended'";
start =
let
start = let
script = pkgs.writeScriptBin "gamemode_start.sh" ''
${pkgs.libnotify}/bin/notify-send "GameMode started"
${pkgs.libnotify}/bin/notify-send "user is: $USER"
/home/$USER/.nix-profile/bin/hyprctl keyword input:touchpad:disable_while_typing false
'';
in
"${script}/bin/gamemode_start.sh";
in "${script}/bin/gamemode_start.sh";
end =
let
end = let
script = pkgs.writeScriptBin "gamemode_end.sh" ''
${pkgs.libnotify}/bin/notify-send "GameMode end"
/home/$USER/.nix-profile/bin/hyprctl keyword input:touchpad:disable_while_typing true
'';
in
"${script}/bin/gamemode_end.sh";
in "${script}/bin/gamemode_end.sh";
};
};
};
@ -251,7 +248,7 @@ in
wlr.enable = true;
extraPortals = [
pkgs.xdg-desktop-portal-gtk
(pkgs.callPackage ../../modules/portals/xdg-desktop-portal-termfilechooser.nix { })
(pkgs.callPackage ../../modules/portals/xdg-desktop-portal-termfilechooser.nix {})
];
# xdgOpenUsePortal = true;
};
@ -261,7 +258,6 @@ in
platformTheme = "qt5ct";
};
# Delete old entries to
nix = {
gc = {
@ -288,9 +284,12 @@ in
networking.networkmanager.wifi.powersave = true;
networking.firewall = {
enable = true;
allowedTCPPorts = [ 8000 ];
allowedTCPPorts = [8000];
allowedUDPPortRanges = [
{ from = 8000; to = 8010; }
{
from = 8000;
to = 8010;
}
];
};
@ -373,7 +372,6 @@ in
turbo = "never";
scaling_max_freq = 1000000;
};
};
};
@ -410,7 +408,6 @@ in
# hardware.opengl.driSupport = true; # This is already enabled by default
# hardware.opengl.driSupport32Bit = true; # For 32 bit applications
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
@ -428,6 +425,4 @@ in
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment?
}

View file

@ -1,17 +1,21 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["xhci_pci" "ahci" "nvme" "usb_storage" "usbhid" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,6 +1,8 @@
{ pkgs, inputs, ... }:
{
pkgs,
inputs,
...
}: {
imports = [
# inputs.impermanence.nixosModules.home-manager.impermanence
@ -16,7 +18,7 @@
# ../../modules/programs/firefox.nix
../../modules/programs/tmux.nix
(import ../../modules/window-managers/hyprland { monitors = ["eDP-1, 1920x1080@60, auto, 1"]; })
(import ../../modules/window-managers/hyprland {monitors = ["eDP-1, 1920x1080@60, auto, 1"];})
../../modules/window-managers/hyprland/hyprlock.nix
../../modules/window-managers/hyprland/hypridle.nix
@ -57,16 +59,20 @@
nixpkgs.config.allowUnfree = true;
home.packages =
let
tex = (pkgs.texlive.combine {
inherit (pkgs.texlive) scheme-medium
home.packages = let
tex = pkgs.texlive.combine {
inherit
(pkgs.texlive)
scheme-medium
titling
biblatex hyperref amsmath tcolorbox environ
biblatex
hyperref
amsmath
tcolorbox
environ
;
});
in
(with pkgs; [
};
in (with pkgs; [
file
nixpkgs-fmt
ripgrep

View file

@ -1,6 +1,9 @@
{ config, pkgs, inputs, ... }:
{
config,
pkgs,
inputs,
...
}: {
imports = [
inputs.impermanence.nixosModules.home-manager.impermanence

View file

@ -1,12 +1,14 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, inputs, ... }:
{
imports =
[
config,
lib,
pkgs,
inputs,
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
#../../modules/users/main-user.nix
@ -16,7 +18,7 @@
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
nix.settings.experimental-features = [ "nix-command" "flakes" ];
nix.settings.experimental-features = ["nix-command" "flakes"];
boot.initrd.postDeviceCommands = lib.mkAfter ''
# Prepare temporary folder
@ -67,7 +69,12 @@
"/var/lib/nixos"
"/var/lib/systemd/coredump"
"/etc/NetworkManager/system-connections"
{ directory = "/var/lib/colord"; user = "colord"; group = "colord"; mode = "u=rwx, g=rx, o="; }
{
directory = "/var/lib/colord";
user = "colord";
group = "colord";
mode = "u=rwx, g=rx, o=";
}
];
files = [
"/etc/machine-id"
@ -81,14 +88,13 @@
programs.fuse.userAllowOther = true;
home-manager = {
extraSpecialArgs = { inherit inputs; };
extraSpecialArgs = {inherit inputs;};
users = {
"snorre" = import ./home.nix;
};
};
users.users."snorre" =
{
users.users."snorre" = {
isNormalUser = true;
initialPassword = "1234";
extraGroups = [
@ -128,7 +134,6 @@
# Set your time zone.
time.timeZone = "Europe/Copenhagen";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
console = {
@ -179,6 +184,4 @@
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "23.11"; # Did you read the comment?
}

View file

@ -1,6 +1,4 @@
{ device ? throw "Set this to your disk device, e.g. /dev/sda"
, ...
}: {
{device ? throw "Set this to your disk device, e.g. /dev/sda", ...}: {
disko.devices = {
disk = {
main = {
@ -45,25 +43,24 @@
# additionalKeyFiles = [ "/tmp/additionalSecret.key" ];
content = {
type = "btrfs";
extraArgs = [ "-f" ];
extraArgs = ["-f"];
subvolumes = {
"/root" = {
mountpoint = "/";
mountOptions = [ "compress=zstd" "noatime" ];
mountOptions = ["compress=zstd" "noatime"];
};
"/persist" = {
mountpoint = "/persist";
mountOptions = [ "subvol=persist" "compress=zstd" "noatime" ];
mountOptions = ["subvol=persist" "compress=zstd" "noatime"];
};
"/nix" = {
mountpoint = "/nix";
mountOptions = [ "subvol=nix" "compress=zstd" "noatime" ];
mountOptions = ["subvol=nix" "compress=zstd" "noatime"];
};
};
};
};
};
};
};
};

View file

@ -1,18 +1,21 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/profiles/qemu-guest.nix")
];
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.initrd.availableKernelModules = ["ahci" "xhci_pci" "virtio_pci" "sr_mod" "virtio_blk"];
boot.initrd.kernelModules = [];
boot.kernelModules = ["kvm-intel"];
boot.extraModulePackages = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's

View file

@ -1,6 +1,9 @@
{ config, pkgs, inputs, ... }:
{
config,
pkgs,
inputs,
...
}: {
imports = [
inputs.impermanence.nixosModules.home-manager.impermanence

View file

@ -1,12 +1,11 @@
{ lib
, persistExtraDirectories
, persistExtraFiles
, users ? {}
, extraConfig ? {}
, ...
}:
{
lib,
persistExtraDirectories,
persistExtraFiles,
users ? {},
extraConfig ? {},
...
}: {
boot.initrd.postDeviceCommands = lib.mkAfter ''
# Prepare temporary folder
mkdir /btrfs_tmp
@ -49,23 +48,40 @@
fileSystems."/persist".neededForBoot = true;
environment.persistence."/persist/system" = {
hideMounts = true;
directories = [
directories =
[
"/etc/nixos"
"/var/log"
"/var/lib/bluetooth"
"/var/lib/nixos"
"/var/lib/systemd/coredump"
"/etc/NetworkManager/system-connections"
{ directory = "/var/lib/colord"; user = "colord"; group = "colord"; mode = "u=rwx, g=rx, o="; }
] ++ (if (persistExtraDirectories == null) then [ ] else persistExtraDirectories);
{
directory = "/var/lib/colord";
user = "colord";
group = "colord";
mode = "u=rwx, g=rx, o=";
}
]
++ (
if (persistExtraDirectories == null)
then []
else persistExtraDirectories
);
files = [
files =
[
"/etc/machine-id"
"/etc/ssh/ssh_host_rsa_key"
"/etc/ssh/ssh_host_ed25519_key"
"/etc/ssh/ssh_host_rsa_key.pub"
"/etc/ssh/ssh_host_ed25519_key.pub"
] ++ (if (persistExtraFiles == null) then [ ] else persistExtraFiles);
]
++ (
if (persistExtraFiles == null)
then []
else persistExtraFiles
);
inherit users;
};

View file

@ -1,18 +1,18 @@
{
type = "btrfs";
extraArgs = [ "-f" ];
extraArgs = ["-f"];
subvolumes = {
"/root" = {
mountpoint = "/";
mountOptions = [ "compress=zstd" "noatime" ];
mountOptions = ["compress=zstd" "noatime"];
};
"/persist" = {
mountpoint = "/persist";
mountOptions = [ "subvol=persist" "compress=zstd" "noatime" ];
mountOptions = ["subvol=persist" "compress=zstd" "noatime"];
};
"/nix" = {
mountpoint = "/nix";
mountOptions = [ "subvol=nix" "compress=zstd" "noatime" ];
mountOptions = ["subvol=nix" "compress=zstd" "noatime"];
};
};
}

View file

@ -1,7 +1,8 @@
{ device ? throw "Set this to your disk device, e.g. /dev/sda"
, swap-size ? "0"
, encrypted ? false
, ...
{
device ? throw "Set this to your disk device, e.g. /dev/sda",
swap-size ? "0",
encrypted ? false,
...
}: {
disko.devices = {
disk = {
@ -24,7 +25,10 @@
};
};
swap = if swap-size == "0" then {} else {
swap =
if swap-size == "0"
then {}
else {
size = swap-size;
content = {
type = "swap";
@ -33,7 +37,9 @@
};
# Fill until 8gb are left
root = if encrypted then {
root =
if encrypted
then {
size = "100%";
content = {
type = "luks";
@ -45,15 +51,13 @@
keyFile = null;
};
# additionalKeyFiles = [ "/tmp/additionalSecret.key" ];
content = (import ./disko-btrfs-impermanence.nix);
content = import ./disko-btrfs-impermanence.nix;
};
}
else
{
else {
size = "100%";
content = (import ./disko-btrfs-impermanence.nix);
content = import ./disko-btrfs-impermanence.nix;
};
};
};
};

View file

@ -1,13 +1,13 @@
{ extraDirectories
, extraFiles
, username ? throw "need to know the username"
, nixIndexEnabled ? false
, ...
}:
{
extraDirectories,
extraFiles,
username ? throw "need to know the username",
nixIndexEnabled ? false,
...
}: {
home.persistence."/persist/home/${username}" = {
directories = [
directories =
[
# "Downloads" # no.
"Documents"
"Music"
@ -19,11 +19,22 @@
".cache/mesa_shader_cache"
".cache/mesa_shader_cache_db"
# TODO: Move this shit into work user
] ++ (if (extraDirectories == null) then [ ] else extraDirectories);
files = [
]
++ (
if (extraDirectories == null)
then []
else extraDirectories
);
files =
[
".gitconfig"
# ".zsh_history"
] ++ (if (extraFiles == null) then [ ] else extraFiles)
]
++ (
if (extraFiles == null)
then []
else extraFiles
)
# ++ (if nixIndexEnabled then [ ".cache/nix-index" ] else [])
;
allowOther = true;

View file

@ -1,10 +1,13 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
nixpkgs.config.nvidia.acceptLicense = true;
services.xserver.videoDrivers = [ "nvidia" ];
services.xserver.videoDrivers = ["nvidia"];
boot.kernelParams = [ "nvidia.NVreg_PreserveVideoMemoryAllocations=1" ];
boot.kernelParams = ["nvidia.NVreg_PreserveVideoMemoryAllocations=1"];
hardware.graphics = {
enable = true;
@ -15,7 +18,6 @@
};
hardware.nvidia = {
package = config.boot.kernelPackages.nvidiaPackages.stable;
modesetting.enable = true;
open = false;
@ -41,13 +43,13 @@
specialisation = {
Battery.configuration = {
system.nixos.tags = [ "Battery" ];
system.nixos.tags = ["Battery"];
boot.extraModprobeConfig = ''
blacklist nouveau
options nouveau modeset=0
'';
services.udev.extraRules = ''s
services.udev.extraRules = '' s
# Remove NVIDIA USB xHCI Host Controller devices, if present
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x0c0330", ATTR{power/control}="auto", ATTR{remove}="1"
# Remove NVIDIA USB Type-C UCSI devices, if present
@ -56,8 +58,8 @@
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x040300", ATTR{power/control}="auto", ATTR{remove}="1"
# Remove NVIDIA VGA/3D controller devices
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x03[0-9]*", ATTR{power/control}="auto", ATTR{remove}="1"
'';
boot.blacklistedKernelModules = [ "nouveau" "nvidia" "nvidia_drm" "nvidia_modeset" ];
'';
boot.blacklistedKernelModules = ["nouveau" "nvidia" "nvidia_drm" "nvidia_modeset"];
};
};
}

View file

@ -1,6 +1,10 @@
{ config, pkgs, lib, inputs, ... }:
{
config,
pkgs,
lib,
inputs,
...
}: {
imports = [
inputs.nixvim.homeManagerModules.default
@ -8,11 +12,10 @@
./plugins/undotree.nix
./plugins/telescope.nix
./plugins/lsp.nix
./plugins/lsp-lines.nix
# ./plugins/lsp-lines.nix
./plugins/cmp.nix
./plugins/wilder.nix
./plugins/nvim-ts-comment-context.nix
./plugins/treesitter.nix
./plugins/vimtex.nix
# ./plugins/neorg.nix
# ./plugins/image.nix

View file

@ -1,6 +1,10 @@
{ config, pkgs, lib, ... }:
{
programs.nixvim.extraConfigLua = lib.strings.concatLines ([
config,
pkgs,
lib,
...
}: {
programs.nixvim.extraConfigLua = lib.strings.concatLines [
''
vim.cmd([[
augroup highlight_yank
@ -10,10 +14,10 @@
]])
''
]
);
];
programs.nixvim.extraPlugins = [
programs.nixvim.extraPlugins =
[
# actions-preview.nvim
(pkgs.vimUtils.buildVimPlugin {
name = "actions-preview.nvim";
@ -45,10 +49,8 @@
# hash = "";
# };
# })
]
++
(
++ (
if config.programs.nixvim.plugins.neorg.enable
then [
(pkgs.vimUtils.buildVimPlugin {
@ -63,8 +65,6 @@
inherit (pkgs.luaPackages.nvim-nio) pname version src;
})
]
else [ ]
)
;
else []
);
}

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.nixvim.globals.mapleader = " ";
programs.nixvim.globals.maplocalleader = ",";

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.nixvim.opts = {
number = true;
relativenumber = true;

View file

@ -1,5 +1,4 @@
{ config, ... }:
{
{config, ...}: {
# programs.nixvim.plugins.cmp-vsnip.enable = true;
# programs.nixvim.plugins.cmp_luasnip.enable = true;
programs.nixvim.plugins.cmp-nvim-lsp-signature-help.enable = true;
@ -10,27 +9,25 @@
enable = true;
autoEnableSources = true;
settings = {
sources = [
{ name = "nvim_lsp"; }
{ name = "path"; }
sources =
[
{name = "nvim_lsp";}
{name = "path";}
# { name = "buffer"; }
{ name = "nvim_lsp_signature_help"; }
{ name = "latex_symbols"; }
{ name = "vsnip"; }
{name = "nvim_lsp_signature_help";}
{name = "latex_symbols";}
{name = "vsnip";}
]
++
(
++ (
if config.programs.nixvim.plugins.orgmode.enable
then [{ name = "orgmode"; }]
else [ ]
then [{name = "orgmode";}]
else []
)
++
(
++ (
if config.programs.nixvim.plugins.neorg.enable
then [{ name = "neorg"; }]
else [ ]
)
;
then [{name = "neorg";}]
else []
);
mapping = {
"<CR>" = "cmp.mapping.confirm({ select = true })";

View file

@ -1,5 +1,4 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
programs.nixvim.plugins.image = {
enable = true;
backend = "ueberzug";

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.nixvim.plugins.lsp-lines = {
enable = true;
};

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.nixvim.plugins.zig.enable = true;
programs.nixvim.plugins.lsp = {
enable = true;
@ -9,14 +8,14 @@
enable = true;
settings = {
formatting.command = [ "nixpkgs-fmt" ];
formatting.command = ["nixpkgs-fmt"];
};
};
clangd = {
enable = true;
# package = null; # Install your own clang fucker # actually dont, its aids
cmd = [ "clangd" "--background-index" "--suggest-missing-includes" ];
cmd = ["clangd" "--background-index" "--suggest-missing-includes"];
};
# As much as i hate python, it is useful for CTF and quick scripts
@ -32,6 +31,9 @@
enable = true;
};
cssls.enable = true;
html.enable = true;
rust_analyzer = {
enable = true;
package = null; # Install your own rust
@ -48,8 +50,8 @@
fsautocomplete = {
enable = false;
cmd = [ "fsautocomplete" "--adaptive-lsp-server-enabled" "--verbose" ];
filetypes = [ "fsharp" "fs" ];
cmd = ["fsautocomplete" "--adaptive-lsp-server-enabled" "--verbose"];
filetypes = ["fsharp" "fs"];
package = null; # Fuck you too
# settings = {
@ -65,11 +67,12 @@
# };
};
omnisharp.enable = true;
csharp_ls = {
enable = true;
enable = false;
# package = null; # Fuck c#, install it yourself if you need it
};
};
};
}

View file

@ -1,4 +1,3 @@
{ ... }:
{
{...}: {
programs.nixvim.plugins.lualine.enable = true;
}

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.nixvim.plugins.neorg = {
enable = true;
# lazyLoading = true;
@ -22,5 +21,4 @@
};
};
};
}

View file

@ -1,6 +1,4 @@
{ lib, ... }:
{
{lib, ...}: {
programs.nixvim.plugins.ts-context-commentstring.enable = true;
programs.nixvim.plugins.comment.enable = true;
}

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.nixvim.plugins.orgmode = {
enable = true;
settings = {

View file

@ -1,5 +1,4 @@
{...}:
{
{...}: {
programs.nixvim.plugins.telescope.enable = true;
programs.nixvim.plugins.web-devicons.enable = true;
}

View file

@ -1,12 +1,15 @@
{ ... }:
{
{pkgs, ...}: {
programs.nixvim.plugins.treesitter = {
enable = true;
settings = {
auto_install = false;
# highlight.enable = true;
};
# grammarPackages = with pkgs.vimPlugins.nvim-treesitter.builtGrammars; [
# wgsl
# ];
};
programs.nixvim.plugins.treesitter-textobjects.enable = true;

View file

@ -1,4 +1,3 @@
{ ... }:
{
{...}: {
programs.nixvim.plugins.undotree.enable = true;
}

View file

@ -1,5 +1,4 @@
{ ... }:
{
{...}: {
programs.nixvim.plugins.vimtex = {
enable = true;
texlivePackage = null;

View file

@ -1,4 +1,3 @@
{ ... }:
{
{...}: {
programs.nixvim.plugins.which-key.enable = true;
}

View file

@ -1,8 +1,7 @@
{ ... }:
{
{...}: {
programs.nixvim.plugins.wilder = {
enable = true;
modes = [ ":" "/" "?" ];
modes = [":" "/" "?"];
enableCmdlineEnter = true;
acceptKey = "<CR>";
renderer = ''

View file

@ -0,0 +1,10 @@
{pkgs, ...}: {
xdg.configFile."nvim/syntax/e2.vim" = let
fetch = pkgs.fetchurl {
url = "https://www.vim.org/scripts/download_script.php?src_id=17326";
sha256 = "";
};
in {
source = "${fetch}/e2.vim";
};
}

View file

@ -1,15 +1,12 @@
{ pkgs, ... }:
{
xdg.configFile."nvim/syntax/fsharp.vim" =
let
{pkgs, ...}: {
xdg.configFile."nvim/syntax/fsharp.vim" = let
git = pkgs.fetchFromGitHub {
owner = "lulu-berlin";
repo = "vim-fsharp";
rev = "1afff075e0a1bcbedcc52881454b99f58ec5bbfc";
sha256 = "sha256-tpEgCxZubyzz4z+JVep1R6F+mQidw/iAfRMTOF00v6U=";
};
in
{
in {
source = "${git}/syntax/fsharp.vim";
};
}

View file

@ -1,5 +1,4 @@
{pkgs, ...}:
{
{pkgs, ...}: {
boot.plymouth.enable = true;
boot.plymouth.themePackages = with pkgs; [
plymouth-blahaj-theme

View file

@ -1,5 +1,4 @@
{pkgs, ...}:
{
{pkgs, ...}: {
boot.plymouth.enable = true;
# boot.plymouth.themePackages = with pkgs; [
# plymouth-blahaj-theme

View file

@ -1,10 +1,10 @@
{ lib
, stdenv
, fetchFromGitHub
, unstableGitUpdater
, pkgs
{
lib,
stdenv,
fetchFromGitHub,
unstableGitUpdater,
pkgs,
}:
stdenv.mkDerivation {
name = "modern-bgrt";
version = "0-unstable-2023-03-10";
@ -19,7 +19,7 @@ stdenv.mkDerivation {
dontConfigure = true;
dontBuild = true;
nativeBuildInputs = [ pkgs.imagemagick ];
nativeBuildInputs = [pkgs.imagemagick];
installPhase = ''
runHook preInstall
@ -40,222 +40,222 @@ stdenv.mkDerivation {
substituteInPlace /tmp/plymouth-theme/install.sh --replace 'convert' "${pkgs.imagemagick}/bin/convert"
echo "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
PwBkf//Z
" | base64 --decode > /tmp/plymouth-theme/bgrt.jpg
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
PwBkf//Z
" | base64 --decode > /tmp/plymouth-theme/bgrt.jpg
# curl "https://static-community.frame.work/original/2X/1/191e90201ff9e3276524e10064310c3fb439cde7.jpeg" -o "/tmp/plymouth-theme/theme/bgrt.jpeg"
@ -264,14 +264,13 @@ PwBkf//Z
runHook postInstall
'';
passthru.updateScript = unstableGitUpdater { };
passthru.updateScript = unstableGitUpdater {};
meta = with lib; {
description = "This theme uses your UEFI logo for seamless booting";
homepage = "https://github.com/glics/plymouth-modern-bgrt";
license = licenses.mit;
maintainers = with maintainers; [ me ];
maintainers = with maintainers; [me];
platforms = platforms.all;
};
}

View file

@ -1,10 +1,10 @@
{ lib
, stdenv
, fetchFromGitHub
, unstableGitUpdater
, pkgs
{
lib,
stdenv,
fetchFromGitHub,
unstableGitUpdater,
pkgs,
}:
stdenv.mkDerivation {
name = "xdg-desktop-portal-termfilechooser";
version = "1.0.0";
@ -66,9 +66,8 @@ stdenv.mkDerivation {
homepage = "https://github.com/GermainZ/xdg-desktop-portal-termfilechooser";
description = "xdg-desktop-portal backend for choosing files with your favorite file chooser.";
license = licenses.mit;
maintainers = with maintainers; [ SpoodyTheOne ];
maintainers = with maintainers; [SpoodyTheOne];
mainProgram = "xdg-desktop-portal-termfilechooser";
platforms = platforms.linux;
};
}

View file

@ -1,6 +1,4 @@
{ ... }:
{
{...}: {
programs.alacritty = {
enable = true;

View file

@ -1,5 +1,9 @@
{ pkgs, lib, config, ... }:
{
pkgs,
lib,
config,
...
}: {
services.dunst.enable = true;
services.dunst.settings = {
global = {
@ -38,7 +42,6 @@
stack_duplicates = false;
show_indicators = false;
};
"[spotify-album-art-waybar]" = {

View file

@ -1,8 +1,8 @@
{ config
, pkgs
, ...
}:
let
{
config,
pkgs,
...
}: let
lock-false = {
Value = false;
Status = "locked";
@ -11,12 +11,11 @@ let
Value = true;
Status = "locked";
};
in
{
in {
programs = {
firefox = {
enable = true;
languagePacks = [ "en-US" ];
languagePacks = ["en-US"];
/*
---- PROFILES ----

View file

@ -1,9 +1,7 @@
{ ... }:
{
{...}: {
programs.foot.enable = true;
home.sessionVariables.TERM = "alacritty";
home.sessionVariables.TERMINAL = "alacritty";
home.sessionVariables.TERMCMD = "alacritty";
home.sessionVariables.TERM = "xterm";
home.sessionVariables.TERMINAL = "foot";
home.sessionVariables.TERMCMD = "foot";
}

View file

@ -1,5 +1,8 @@
{ lib, config, ... }:
{
lib,
config,
...
}: {
options = {
hyprpaper.wallpaper = lib.mkOption {
description = "Path to the wallpaper that should be used";
@ -10,8 +13,8 @@
config = {
xdg.configFile."hypr/hyprpaper.conf".text =
# if builtins.pathExists config.hyprpaper.wallpaper then
if config.stylix.enable then
"
if config.stylix.enable
then "
preload = ${config.stylix.image}
wallpaper = ,${config.stylix.image}
"

View file

@ -0,0 +1 @@
{}

View file

@ -0,0 +1,75 @@
{
config,
lib,
pkgs,
...
}:
with config.lib.stylix.colors.withHashtag; {
home.packages = with pkgs; [
legcord
];
xdg.configFile."legcord/themes/Stylix-BD/manifest.json".text = builtins.toJSON {
theme = "src.css";
name = "Stylix";
enabled = true;
author = "Stylix";
version = "0.0.0";
description = "Theme configured via NixOS or Home Manager.";
supportsLegcordTitlebar = false;
};
xdg.configFile."legcord/themes/Stylix-BD/src.css".text = ''
:root {
--base00: ${base00}; /* Black */
--base01: ${base01}; /* Bright Black */
--base02: ${base02}; /* Grey */
--base03: ${base03}; /* Brighter Grey */
--base04: ${base04}; /* Bright Grey */
--base05: ${base05}; /* White */
--base06: ${base06}; /* Brighter White */
--base07: ${base07}; /* Bright White */
--base08: ${base08}; /* Red */
--base09: ${base09}; /* Orange */
--base0A: ${base0A}; /* Yellow */
--base0B: ${base0B}; /* Green */
--base0C: ${base0C}; /* Cyan */
--base0D: ${base0D}; /* Blue */
--base0E: ${base0E}; /* Purple */
--base0F: ${base0F}; /* Magenta */
--primary-630: var(--base00); /* Autocomplete background */
--primary-660: var(--base00); /* Search input background */
}
.theme-light, .theme-dark {
--search-popout-option-fade: none; /* Disable fade for search popout */
--bg-overlay-2: var(--base00); /* These 2 are needed for proper threads coloring */
--home-background: var(--base00);
--bg-overlay-chat : var(--base00); /* Recolor forum channels */
--background-primary: var(--base00);
--background-secondary: var(--base01);
--background-secondary-alt: var(--base01);
--channeltextarea-background: var(--base01);
--background-tertiary: var(--base00);
--background-accent: var(--base0E);
--background-floating: var(--base01);
--background-modifier-hover: ${base00}4c; /* 30% of base00 */
--background-modifier-selected: var(--base00);
--text-normal: var(--base05);
--text-secondary: var(--base03);
--text-muted: var(--base04);
--text-link: var(--base0C);
--interactive-normal: var(--base05);
--interactive-hover: var(--base05);
--interactive-active: var(--base07);
--interactive-muted: var(--base03);
--channels-default: var(--base04);
--channel-icon: var(--base04);
--header-primary: var(--base06);
--header-secondary: var(--base04);
--scrollbar-thin-track: transparent;
--scrollbar-auto-track: transparent;
}
'';
}

View file

@ -1,5 +1,9 @@
{ pkgs, config, lib, ... }:
{
pkgs,
config,
lib,
...
}: {
programs.mangohud = {
enable = true;
settings = {
@ -10,6 +14,11 @@
alpha = lib.mkForce 1.0;
round_corners = lib.mkForce 4;
gpu_name = true;
battery = true;
device_battery = ["gamepad" "mouse"];
battery_watt = true;
battery_time = true;
};
};
}

View file

@ -0,0 +1,96 @@
{
stdenv,
lib,
fetchFromGitHub,
unzip,
wineWowPackages,
luajit,
copyDesktopItems,
makeDesktopItem,
}:
stdenv.mkDerivation rec {
pname = "path-of-building-poe2";
version = "v0.3.0";
src = fetchFromGitHub {
owner = "PathOfBuildingCommunity";
repo = "PathOfBuilding-PoE2";
rev = "${version}";
hash = "sha256-eIT5QWadpIAgRLCQpA80D3wKmtikSnP6wBqj3TqkUPs=";
};
nativeBuildInputs = [unzip] ++ lib.optional stdenv.hostPlatform.isLinux copyDesktopItems;
buildInputs = [
# wineWowPackages.base.out
# luajit
# luajit.pkgs.lua-curl
];
installPhase = ''
runHook preInstall
# I have absolutely no idea how this file is generated
# and I don't think I want to know. The Flatpak also does this.
unzip -j -d $out $src/runtime-win32.zip lua/sha1.lua
# Install the actual data
# cp -r $src/src $src/runtime/lua/*.lua $src/manifest.xml $out
cp -r $src/* $out
# Pretend this is an official build so we don't get the ugly "dev mode" warning
substituteInPlace $out/manifest.xml --replace '<Version' '<Version platform="nixos"'
substituteInPlace $out/manifest.xml --replace '<Version' '<Version branch="master"'
touch $out/installed.cfg
# touch $out/src/Settings.xml
# chmod +w $out/src/Settings.xml
# echo '<?xml version="1.0" encoding="UTF-8"?>
# <PathOfBuilding2>
# <Mode mode="BUILD">
# <Arg boolean="false"/>
# <Arg string="Unnamed build"/>
# </Mode>
# <Accounts/>
# <SharedItems/>
# <Misc betaTest="nil" connectionProtocol="0" colorNegative="^xDD0022" thousandsSeparator="," showThousandsSeparators="true" colorPositive="^x33FF77" buildSortMode="NAME" showPublicBuilds="true" edgeSearchHighlight="true" POESESSID="" showTitlebarName="true" invertSliderScrollDirection="nil" disableDevAutoSave="nil" colorHighlight="^xFF0000" slotOnlyTooltips="true" defaultCharLevel="1" showWarnings="true" decimalSeparator="." defaultGemQuality="0" defaultItemAffixQuality="0.5" nodePowerTheme="RED/BLUE" buildPath="/home/snorre/Documents/PathOfBuilding"/>
# </PathOfBuilding2>
# ' > $out/src/Settings.xml
# Completely stub out the update check
chmod +w $out/src/UpdateCheck.lua
echo 'return "none"' > $out/src/UpdateCheck.lua
runHook postInstall
'';
desktopItems = [
(makeDesktopItem {
name = "path-of-building-poe2";
desktopName = "Path of Building for PoE2";
comment = "Offline build planner for Path of Exile 2";
exec = "nix-shell -p wineWowPackages.base.out --run \"wine ${src}/runtime/Path{space}of{space}Building-PoE2.exe %U\"";
terminal = false;
type = "Application";
icon = "pathofbuilding";
categories = ["Game"];
keywords = [
"poe"
"pob"
"pobc"
"path"
"exile"
];
mimeTypes = ["x-scheme-handler/pob"];
})
];
meta = {
description = "Offline build planner for Path of Exile 2";
homepage = "https://pathofbuilding.community/";
license = lib.licenses.mit;
maintainers = [];
mainProgram = "pob2frontend";
broken = stdenv.hostPlatform.isDarwin; # doesn't find uic6 for some reason
};
}

View file

@ -0,0 +1,20 @@
diff --git a/src/Classes/PassiveTreeView.lua b/src/Classes/PassiveTreeView.lua
index 5757f18e..60a49b9b 100644
--- a/src/Classes/PassiveTreeView.lua
+++ b/src/Classes/PassiveTreeView.lua
@@ -912,7 +912,7 @@ function PassiveTreeViewClass:DrawAsset(data, x, y, scale, isHalf)
DrawImage(data.handle, x - width, y - height * 2, width * 2, height * 2)
DrawImage(data.handle, x - width, y, width * 2, height * 2, 0, 1, 1, 0)
else
- DrawImage(data.handle, x - width, y - height, width * 2, height * 2, unpack(data))
+ -- DrawImage(data.handle, x - width, y - height, width * 2, height * 2, 0,1,1,0)
end
end
@@ -1308,4 +1308,4 @@ function PassiveTreeViewClass:LessLuminance()
local newA = a * alphaFactor;
SetDrawColor(newR, newG, newB, newA)
-end
\ No newline at end of file
+end

View file

@ -0,0 +1,140 @@
{
stdenv,
lib,
fetchFromGitHub,
unzip,
meson,
ninja,
pkg-config,
qtbase,
qttools,
wrapQtAppsHook,
icoutils,
copyDesktopItems,
makeDesktopItem,
luajit,
}: let
data = stdenv.mkDerivation (finalAttrs: {
pname = "path-of-building-poe2-data";
version = "0.3.0";
src = fetchFromGitHub {
owner = "PathOfBuildingCommunity";
repo = "PathOfBuilding-PoE2";
rev = "v${finalAttrs.version}";
hash = "sha256-eIT5QWadpIAgRLCQpA80D3wKmtikSnP6wBqj3TqkUPs=";
};
nativeBuildInputs = [unzip];
buildCommand = ''
# I have absolutely no idea how this file is generated
# and I don't think I want to know. The Flatpak also does this.
unzip -j -d $out $src/runtime-win32.zip lua/sha1.lua
# Install the actual data
cp -r $src/src $src/runtime/lua/*.lua $src/manifest.xml $out
# Pretend this is an official build so we don't get the ugly "dev mode" warning
substituteInPlace $out/manifest.xml --replace '<Version' '<Version platform="nixos"'
substituteInPlace $out/manifest.xml --replace '<Version' '<Version branch="master"'
touch $out/installed.cfg
# patch doesnt work, so fix manually
substituteInPlace $out/src/Classes/PassiveTreeView.lua --replace "DrawImage(data.handle, x - width, y - height, width * 2, height * 2, unpack(data))" "DrawImage(data.handle, x - width, y - height, width * 2, height * 2, 0,1,1,0)"
# Completely stub out the update check
chmod +w $out/src/UpdateCheck.lua
echo 'return "none"' > $out/src/UpdateCheck.lua
'';
});
in
stdenv.mkDerivation {
pname = "path-of-building-poe2";
version = "${data.version}-unstable-2025-01-23";
patches = [
./fix_drawimage.patch
];
src = fetchFromGitHub {
owner = "ernstp";
repo = "pobfrontend";
rev = "9faa19aa362f975737169824c1578d5011487c18";
hash = "sha256-zhw2PZ6ZNMgZ2hG+a6AcYBkeg7kbBHNc2eSt4if17Wk=";
};
nativeBuildInputs =
[
meson
ninja
pkg-config
qttools
wrapQtAppsHook
icoutils
]
++ lib.optional stdenv.hostPlatform.isLinux copyDesktopItems;
buildInputs = [
qtbase
luajit
luajit.pkgs.lua-curl
];
installPhase = ''
runHook preInstall
install -Dm555 pobfrontend $out/bin/pob2frontend
wrestool -x -t 14 ${data.src}/runtime/Path{space}of{space}Building-PoE2.exe -o pathofbuilding2.ico
icotool -x pathofbuilding2.ico
for size in 16 32 48 256; do
mkdir -p $out/share/icons/hicolor/"$size"x"$size"/apps
install -Dm 644 pathofbuilding*"$size"x"$size"*.png \
$out/share/icons/hicolor/"$size"x"$size"/apps/pathofbuilding2.png
done
rm pathofbuilding2.ico
runHook postInstall
'';
preFixup = ''
qtWrapperArgs+=(
--set LUA_PATH "$LUA_PATH"
--set LUA_CPATH "$LUA_CPATH"
--chdir "${data}"
)
'';
desktopItems = [
(makeDesktopItem {
name = "path-of-building-poe2";
desktopName = "Path of Building for PoE2";
comment = "Offline build planner for Path of Exile 2";
exec = "pob2frontend %U";
terminal = false;
type = "Application";
icon = "pathofbuilding2";
categories = ["Game"];
keywords = [
"poe"
"pob"
"pobc"
"path"
"exile"
];
mimeTypes = ["x-scheme-handler/pob"];
})
];
passthru.data = data;
meta = {
description = "Offline build planner for Path of Exile";
homepage = "https://pathofbuilding.community/";
license = lib.licenses.mit;
maintainers = [lib.maintainers.k900];
mainProgram = "pob2frontend";
broken = stdenv.hostPlatform.isDarwin; # doesn't find uic6 for some reason
};
}

View file

@ -1,9 +1,15 @@
{ pkgs, lib, config, ... }: {
{
pkgs,
lib,
config,
...
}: {
programs.tmux = {
enable = true;
# Enable 24-hour clock
clock24 = true;
terminal = if config.programs.alacritty.enable then "alacritty" else lib.mkDefault;
# terminal = if config.programs.alacritty.enable then "alacritty" else lib.mkDefault;
terminal = config.home.sessionVariables.TERMINAL;
baseIndex = 1;
mouse = true;
shell = "${pkgs.zsh}/bin/zsh";

View file

@ -1,4 +1,8 @@
{ lib, config, ...}: {
{
lib,
config,
...
}: {
programs.tofi.enable = true;
# xdg.configFile."tofi/config".text = ''
@ -44,7 +48,7 @@
home.activation = {
# https://github.com/philj56/tofi/issues/115#issuecomment-1701748297
regenerateTofiCache = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
regenerateTofiCache = lib.hm.dag.entryAfter ["writeBoundary"] ''
tofi_cache=${config.xdg.cacheHome}/tofi-drun
[[ -f "$tofi_cache" ]] && rm "$tofi_cache"
'';

View file

@ -1,8 +1,11 @@
{ config, lib, pkgs, ... }:
with config.lib.stylix.colors.withHashtag;
with config.stylix.fonts;
{
config,
lib,
pkgs,
...
}:
with config.lib.stylix.colors.withHashtag;
with config.stylix.fonts; {
stylix.targets.waybar.enable = false;
services.playerctld.enable = true;
@ -12,8 +15,10 @@ with config.stylix.fonts;
enable = true;
# style = ./style.css;
style = lib.mkForce
(''
style =
lib.mkForce
(
''
@define-color base00 ${base00}; @define-color base01 ${base01}; @define-color base02 ${base02}; @define-color base03 ${base03};
@define-color base04 ${base04}; @define-color base05 ${base05}; @define-color base06 ${base06}; @define-color base07 ${base07};
@ -40,10 +45,9 @@ with config.stylix.fonts;
);
settings = {
test = {
layer = "top";
output = [ "eDP-1" ];
output = ["eDP-1"];
position = "top";
width = 1920;
@ -169,7 +173,7 @@ with config.stylix.fonts;
"wireplumber" = {
format = "{volume}% {icon}";
format-muted = "";
format-icons = [ "" "" "" ];
format-icons = ["" "" ""];
on-click = "wpctl set-mute @DEFAULT_SINK@ toggle";
max-volume = 150;
scroll-step = 0.2;
@ -185,7 +189,7 @@ with config.stylix.fonts;
format = "{capacity}% {icon}";
format-charging = "{capacity}% ";
format-icons = [ "" "" "" "" "" ];
format-icons = ["" "" "" "" ""];
max-length = 25;
};
@ -230,7 +234,6 @@ with config.stylix.fonts;
interval = 2;
};
};
};
};
}

View file

@ -1,5 +1,9 @@
{ pkgs, lib, config, ... }: {
{
pkgs,
lib,
config,
...
}: {
options = {
zsh.jump = {
enable = lib.mkEnableOption "enables jump in zsh";
@ -8,7 +12,7 @@
zsh.extraLines = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
default = [];
description = "List of extra commands to run on zsh init";
};
@ -61,7 +65,8 @@
programs.zsh.initExtra = lib.concatStringsSep "\n" (
# Add any extra lines to the zsh config
config.zsh.extraLines ++
config.zsh.extraLines
++
# Add jump shell script to list if jump is enabled
(
if config.zsh.jump.show-destination
@ -74,12 +79,12 @@
}
''
]
else [ "eval \"$(jump shell zsh)\"" ]
else ["eval \"$(jump shell zsh)\""]
)
++
(
if config.zsh.direnv then [ "eval \"$(direnv hook zsh)\"" ]
else [ ]
++ (
if config.zsh.direnv
then ["eval \"$(direnv hook zsh)\""]
else []
)
# ++
# (
@ -91,4 +96,3 @@
);
};
}

View file

@ -1,10 +1,10 @@
{ lib
, stdenvNoCC
, fetchFromGitHub
, unstableGitUpdater
, pkgs
{
lib,
stdenvNoCC,
fetchFromGitHub,
unstableGitUpdater,
pkgs,
}:
stdenvNoCC.mkDerivation {
name = "posy-cursors";
@ -34,9 +34,9 @@ stdenvNoCC.mkDerivation {
description = "Posy cursors for NixOS";
homepage = "https://github.com/simtrami/posy-improved-cursor-linux";
# license = licenses.mit;
maintainers = with maintainers; [ me ];
maintainers = with maintainers; [me];
platforms = platforms.all;
};
# https://github.com/ripperhowls/Posys-Cursors-Improved-by-ripperhowls.git
# https://github.com/ripperhowls/Posys-Cursors-Improved-by-ripperhowls.git
}

View file

@ -1,17 +1,19 @@
{ pkgs, ... }:
{
{pkgs, ...}: {
stylix.enable = true;
# stylix.image = ./nixos-wallpaper.png;
stylix.autoEnable = true;
home.packages = [pkgs.dejavu_fonts];
stylix.fonts = {
serif = {
package = pkgs.dejavu_fonts;
name = "DejaVu Serif";
package = pkgs.iosevka-comfy.comfy;
name = "FreeSerif";
};
sansSerif = {
package = pkgs.dejavu_fonts;
name = "DejaVu Sans";
package = pkgs.ubuntu-sans;
name = "Ubuntu Sans";
};
monospace = {
@ -21,14 +23,13 @@
# "Mononoki"
# ];
# });
package = pkgs.nerd-fonts.mononoki;
name = "Mononoki Nerd Font";
package = pkgs.nerd-fonts.jetbrains-mono;
name = "JetBrainsMono Nerd Font";
};
emoji = {
package = pkgs.noto-fonts-emoji;
name = "Noto Color Emoji";
};
};
}

View file

@ -1,7 +1,10 @@
{ pkgs, lib, config, ... }:
{
pkgs,
lib,
config,
...
}: {
options = {
main-user = {
enable = lib.mkEnableOption "Enable main user";
name = lib.mkOption {
@ -12,7 +15,7 @@
groups = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [ ];
default = [];
description = "List of groups to add the user to";
};
@ -25,13 +28,13 @@
home-manager = {
enable = lib.mkEnableOption "Enable home-manager for the user";
import = lib.mkOption
import =
lib.mkOption
{
description = "Import path. MUST BE SET IN CONFIGURATION.NIX";
};
};
};
};
config = lib.mkIf config.main-user.enable {
@ -39,7 +42,8 @@
isNormalUser = true;
initialPassword = "1234";
description = "Main system user";
extraGroups = [
extraGroups =
[
"networkmanager"
"audio"
]
@ -53,4 +57,3 @@
lib.mkIf config.main-user.home-manager.enable config.main-user.home-manager.import;
};
}

View file

@ -1,8 +1,13 @@
{ monitors ? []
, border-radius ? 0
}:
{ lib, pkgs, inputs, config, ... } @ params:
{
monitors ? [],
border-radius ? 0,
}: {
lib,
pkgs,
inputs,
config,
...
} @ params: {
imports = [
./exec.nix
./env.nix
@ -10,12 +15,10 @@
# programs.alacritty.enable = lib.mkDefault true;
wayland.windowManager.hyprland =
let
pluginsNix = (import ./plugins.nix params);
wayland.windowManager.hyprland = let
pluginsNix = import ./plugins.nix params;
inherit (pluginsNix) plugins;
in
{
in {
enable = true;
# plugins = plugins;
@ -99,7 +102,8 @@
# Set mod key
"$mod" = "super";
bind = [
bind =
[
"$mod, Return, exec, ${config.home.sessionVariables.TERMCMD}"
"$mod, C, killactive"
"$mod, V, togglefloating"
@ -124,20 +128,17 @@
"$mod SHIFT, Q, exec, hyprctl kill"
"$mod, L, exec, hyprlock"
] ++ (
]
++ (
# Auto generate workspace switching from [0-9] and shift + [0-9]
builtins.concatLists (builtins.genList
(
x:
let
ws =
let
x: let
ws = let
c = (x + 1) / 10;
in
builtins.toString (x + 1 - (c * 10));
in
[
in [
"$mod, ${ws}, workspace, ${toString (x + 1)}"
"$mod SHIFT, ${ws}, movetoworkspace, ${toString (x + 1)}"
]
@ -170,12 +171,15 @@
windowrulev2 = [
"pin, initialClass:^(zen-alpha)$, initialTitle:^(Zen)$"
"fullscreen, initialTitle:^(Steam Big Picture Mode)$"
];
};
extraConfig = ''
''
# + (import ./plugins.nix { inherit pkgs; inherit inputs; }).pluginConfig
;
bind=CTRL,ALT_L,submap,passthrough
submap=passthrough
bindr=CTRL,Escape,submap,reset
submap=reset
'';
};
}

View file

@ -1,9 +1,7 @@
{...}:
{
{...}: {
wayland.windowManager.hyprland.settings.env = [
# "LIBVA_DRIVER_NAME,nvidia"
"LIBVA_DRIVER_NAME,iHD"
"LIBVA_DRIVER_NAME,radeonsi"
"XDG_SESSION_TYPE,wayland"
# "GBM_BACKEND,wayland"
"GTK_USE_PORTAL,1"

View file

@ -1,6 +1,5 @@
{ ... }:
{
wayland.windowManager.hyprland.settings.exec = [ ];
{...}: {
wayland.windowManager.hyprland.settings.exec = [];
wayland.windowManager.hyprland.settings.exec-once = [
# "hyprpaper &"
"waybar &"

View file

@ -1,6 +1,4 @@
{ ... }:
{
{...}: {
services.hypridle = {
enable = true;
@ -41,5 +39,4 @@
];
};
};
}

View file

@ -1,15 +1,21 @@
{ lib, inputs, config, ... }:
{
lib,
inputs,
config,
...
}: {
programs.hyprlock = {
enable = true;
settings = {
general.grace = 2;
general.grace = 15;
background = {
# path = (if config.stylix.enable then builtins.toString config.stylix.image else "");
# color = (if config.stylix.enable then config.lib.stylix.colors.base01 else "");
};
# background = {
# # path = (if config.stylix.enable then builtins.toString config.stylix.image else "");
# # color = (if config.stylix.enable then config.lib.stylix.colors.base01 else "");
# };
background = lib.mkForce [];
input-field = {
size = "250, 50";

View file

@ -1,6 +1,8 @@
{ pkgs, inputs, ... }:
{
pkgs,
inputs,
...
}: {
plugins = with pkgs.hyprlandPlugins; [
hyprfocus
# inputs.hypr-dynamic-cursors.packages.${pkgs.system}.hypr-dynamic-cursors
@ -162,7 +164,7 @@
# specifying clientside will use the actual shape, but will be pixelated
fallback = clientside
}
}
}
'';
# wayland.windowManager.hyprland.hyprfocus = {

View file

@ -1,12 +1,14 @@
{
description = "Dotnet flake for dotnet development";
outputs = { self, nixpkgs }:
let
outputs = {
self,
nixpkgs,
}: let
pkgs = nixpkgs.legacyPackages.x86_64-linux;
in
{
in {
devShells.x86_64-linux = {
default = with pkgs; mkShell {
default = with pkgs;
mkShell {
buildInputs = with pkgs; [
dotnet-sdk_8
];