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
@ -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
@ -134,8 +149,9 @@
};
};
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,12 +1,15 @@
# 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
@ -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,11 +1,15 @@
# 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"];

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
@ -26,11 +28,15 @@ in
#../../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;
@ -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";
};
};
};
@ -238,12 +240,15 @@ in
# 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];
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,13 +1,12 @@
{ 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;}
{
@ -19,7 +18,6 @@ in
partitions = {
main = {
size = "100%";
};
};
};

View file

@ -1,16 +1,20 @@
# 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.kernelModules = ["kvm-amd" "joydev" "usbhid"];
boot.extraModulePackages = [];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

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
@ -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";
};
};
};
@ -261,7 +258,6 @@ in
platformTheme = "qt5ct";
};
# Delete old entries to
nix = {
gc = {
@ -290,7 +286,10 @@ in
enable = true;
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,11 +1,15 @@
# 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"];

View file

@ -1,6 +1,8 @@
{ pkgs, inputs, ... }:
{
pkgs,
inputs,
...
}: {
imports = [
# inputs.impermanence.nixosModules.home-manager.impermanence
@ -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
@ -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"
@ -87,8 +94,7 @@
};
};
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 = {
@ -63,7 +61,6 @@
};
};
};
};
};
};

View file

@ -1,11 +1,14 @@
# 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")
];

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,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,6 +1,9 @@
{ config, pkgs, lib, ... }:
{
config,
pkgs,
lib,
...
}: {
nixpkgs.config.nvidia.acceptLicense = true;
services.xserver.videoDrivers = ["nvidia"];
@ -15,7 +18,6 @@
};
hardware.nvidia = {
package = config.boot.kernelPackages.nvidiaPackages.stable;
modesetting.enable = true;
open = false;

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 {
@ -64,7 +66,5 @@
})
]
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,7 +9,8 @@
enable = true;
autoEnableSources = true;
settings = {
sources = [
sources =
[
{name = "nvim_lsp";}
{name = "path";}
# { name = "buffer"; }
@ -18,19 +18,16 @@
{name = "latex_symbols";}
{name = "vsnip";}
]
++
(
++ (
if config.programs.nixvim.plugins.orgmode.enable
then [{name = "orgmode";}]
else []
)
++
(
++ (
if config.programs.nixvim.plugins.neorg.enable
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;
@ -32,6 +31,9 @@
enable = true;
};
cssls.enable = true;
html.enable = true;
rust_analyzer = {
enable = true;
package = null; # Install your own rust
@ -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,5 +1,4 @@
{ ... }:
{
{...}: {
programs.nixvim.plugins.wilder = {
enable = true;
modes = [":" "/" "?"];

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";
@ -274,4 +274,3 @@ PwBkf//Z
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";
@ -70,5 +70,4 @@ stdenv.mkDerivation {
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,8 +11,7 @@ let
Value = true;
Status = "locked";
};
in
{
in {
programs = {
firefox = {
enable = true;

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 = ''

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,7 +45,6 @@ with config.stylix.fonts;
);
settings = {
test = {
layer = "top";
output = ["eDP-1"];
@ -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";
@ -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
@ -76,9 +81,9 @@
]
else ["eval \"$(jump shell zsh)\""]
)
++
(
if config.zsh.direnv then [ "eval \"$(direnv hook zsh)\"" ]
++ (
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";

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 {
@ -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,5 +1,4 @@
{ ... }:
{
{...}: {
wayland.windowManager.hyprland.settings.exec = [];
wayland.windowManager.hyprland.settings.exec-once = [
# "hyprpaper &"

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

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
];