Compare commits

..

2 Commits

Author SHA1 Message Date
k
224b53dda1 removed puffer panel 2024-08-31 12:03:49 -04:00
k
fdb32cae0e made changes for clean ness and games-on-whales 2024-08-29 01:23:44 -04:00
24 changed files with 776 additions and 1570 deletions

View File

@@ -1,11 +0,0 @@
name: Verify Nix Flake
run-name: ${{ gitea.actor }} is nix-check
on: [push]
jobs:
verify_build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v30
- run: nix flake check

355
flake.lock generated
View File

@@ -5,11 +5,11 @@
"fromYaml": "fromYaml" "fromYaml": "fromYaml"
}, },
"locked": { "locked": {
"lastModified": 1755819240, "lastModified": 1708890466,
"narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", "narHash": "sha256-LlrC09LoPi8OPYOGPXegD72v+//VapgAqhbOFS3i8sc=",
"owner": "SenchoPens", "owner": "SenchoPens",
"repo": "base16.nix", "repo": "base16.nix",
"rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", "rev": "665b3c6748534eb766c777298721cece9453fdae",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -21,28 +21,43 @@
"base16-fish": { "base16-fish": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1754405784, "lastModified": 1622559957,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=", "narHash": "sha256-PebymhVYbL8trDVVXxCvZgc0S5VxI7I1Hv4RMSquTpA=",
"owner": "tomyun", "owner": "tomyun",
"repo": "base16-fish", "repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "rev": "2f6dd973a9075dabccd26f1cded09508180bf5fe",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tomyun", "owner": "tomyun",
"repo": "base16-fish", "repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "type": "github"
}
},
"base16-foot": {
"flake": false,
"locked": {
"lastModified": 1696725948,
"narHash": "sha256-65bz2bUL/yzZ1c8/GQASnoiGwaF8DczlxJtzik1c0AU=",
"owner": "tinted-theming",
"repo": "base16-foot",
"rev": "eedbcfa30de0a4baa03e99f5e3ceb5535c2755ce",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-foot",
"type": "github" "type": "github"
} }
}, },
"base16-helix": { "base16-helix": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1760703920, "lastModified": 1720809814,
"narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=", "narHash": "sha256-numb3xigRGnr/deF7wdjBwVg7fpbTH7reFDkJ75AJkY=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-helix", "repo": "base16-helix",
"rev": "d646af9b7d14bff08824538164af99d0c521b185", "rev": "34f41987bec14c0f3f6b2155c19787b1f6489625",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -51,68 +66,78 @@
"type": "github" "type": "github"
} }
}, },
"base16-kitty": {
"flake": false,
"locked": {
"lastModified": 1665001328,
"narHash": "sha256-aRaizTYPpuWEcvoYE9U+YRX+Wsc8+iG0guQJbvxEdJY=",
"owner": "kdrag0n",
"repo": "base16-kitty",
"rev": "06bb401fa9a0ffb84365905ffbb959ae5bf40805",
"type": "github"
},
"original": {
"owner": "kdrag0n",
"repo": "base16-kitty",
"type": "github"
}
},
"base16-tmux": {
"flake": false,
"locked": {
"lastModified": 1696725902,
"narHash": "sha256-wDPg5elZPcQpu7Df0lI5O8Jv4A3T6jUQIVg63KDU+3Q=",
"owner": "tinted-theming",
"repo": "base16-tmux",
"rev": "c02050bebb60dbb20cb433cd4d8ce668ecc11ba7",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-tmux",
"type": "github"
}
},
"base16-vim": { "base16-vim": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1732806396, "lastModified": 1716150083,
"narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", "narHash": "sha256-ZMhnNmw34ogE5rJZrjRv5MtG3WaqKd60ds2VXvT6hEc=",
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-vim", "repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7", "rev": "6e955d704d046b0dc3e5c2d68a2a6eeffd2b5d3d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tinted-theming", "owner": "tinted-theming",
"repo": "base16-vim", "repo": "base16-vim",
"rev": "577fe8125d74ff456cf942c733a85d769afe58b7",
"type": "github" "type": "github"
} }
}, },
"firefox-gnome-theme": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1764724327, "lastModified": 1673956053,
"narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=", "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "rafaelmardojai", "owner": "edolstra",
"repo": "firefox-gnome-theme", "repo": "flake-compat",
"rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047", "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "rafaelmardojai", "owner": "edolstra",
"repo": "firefox-gnome-theme", "repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1763759067,
"narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github" "type": "github"
} }
}, },
"fromYaml": { "fromYaml": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1731966426, "lastModified": 1689549921,
"narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", "narHash": "sha256-iX0pk/uB019TdBGlaJEWvBCfydT6sRq+eDcGPifVsCM=",
"owner": "SenchoPens", "owner": "SenchoPens",
"repo": "fromYaml", "repo": "fromYaml",
"rev": "106af9e2f715e2d828df706c386a685698f3223b", "rev": "11fbbbfb32e3289d3c631e0134a23854e7865c84",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -124,52 +149,72 @@
"gnome-shell": { "gnome-shell": {
"flake": false, "flake": false,
"locked": { "locked": {
"host": "gitlab.gnome.org", "lastModified": 1713702291,
"lastModified": 1764524476, "narHash": "sha256-zYP1ehjtcV8fo+c+JFfkAqktZ384Y+y779fzmR9lQAU=",
"narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=",
"owner": "GNOME", "owner": "GNOME",
"repo": "gnome-shell", "repo": "gnome-shell",
"rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22", "rev": "0d0aadf013f78a7f7f1dc984d0d812971864b934",
"type": "gitlab" "type": "github"
}, },
"original": { "original": {
"host": "gitlab.gnome.org",
"owner": "GNOME", "owner": "GNOME",
"ref": "gnome-49", "ref": "46.1",
"repo": "gnome-shell", "repo": "gnome-shell",
"type": "gitlab" "type": "github"
} }
}, },
"home-manager": { "home-manager": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "nixpkgs": [
"nixpkgs"
]
}, },
"locked": { "locked": {
"lastModified": 1765170903, "lastModified": 1719827439,
"narHash": "sha256-O8VTGey1xxiRW+Fpb+Ps9zU7ShmxUA1a7cMTcENCVNg=", "narHash": "sha256-tneHOIv1lEavZ0vQ+rgz67LPNCgOZVByYki3OkSshFU=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "20561be440a11ec57a89715480717baf19fe6343", "rev": "59ce796b2563e19821361abbe2067c3bb4143a7d",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"home-manager_2": {
"inputs": {
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1715930644,
"narHash": "sha256-W9pyM3/vePxrffHtzlJI6lDS3seANQ+Nqp+i58O46LI=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "e3ad5108f54177e6520535768ddbf1e6af54b59d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-community", "owner": "nix-community",
"ref": "release-25.11",
"repo": "home-manager", "repo": "home-manager",
"type": "github" "type": "github"
} }
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1764440730, "lastModified": 1719895800,
"narHash": "sha256-ZlJTNLUKQRANlLDomuRWLBCH5792x+6XUJ4YdFRjtO4=", "narHash": "sha256-xNbjISJTFailxass4LmdWeV4jNhAlmJPwj46a/GxE6M=",
"owner": "nixos", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "9154f4569b6cdfd3c595851a6ba51bfaa472d9f3", "rev": "6e253f12b1009053eff5344be5e835f604bb64cd",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "NixOS",
"ref": "master", "ref": "master",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"type": "github" "type": "github"
@@ -177,82 +222,41 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1764831616, "lastModified": 1719848872,
"narHash": "sha256-OtzF5wBvO0jgW1WW1rQU9cMGx7zuvkF7CAVJ1ypzkxA=", "narHash": "sha256-H3+EC5cYuq+gQW8y0lSrrDZfH71LB4DAf+TDFyvwCNA=",
"owner": "NixOS", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "c97c47f2bac4fa59e2cbdeba289686ae615f8ed4", "rev": "00d80d13810dbfea8ab4ed1009b09100cca86ba8",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "nixos",
"ref": "nixos-25.11", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1764983851, "lastModified": 1714912032,
"narHash": "sha256-y7RPKl/jJ/KAP/VKLMghMgXTlvNIJMHKskl8/Uuar7o=", "narHash": "sha256-clkcOIkg8G4xuJh+1onLG4HPMpbtzdLv4rHxFzgsH9c=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d9bc5c7dceb30d8d6fafa10aeb6aa8a48c218454",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-25.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1764522689,
"narHash": "sha256-SqUuBFjhl/kpDiVaKLQBoD8TLD+/cTUzzgVFoaHrkqY=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "8bb5646e0bed5dbd3ab08c7a7cc15b75ab4e1d0f", "rev": "ee4a6e0f566fe5ec79968c57a9c2c3c25f2cf41d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-25.11", "ref": "nixpkgs-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nur": {
"inputs": {
"flake-parts": [
"stylix",
"flake-parts"
],
"nixpkgs": [
"stylix",
"nixpkgs"
]
},
"locked": {
"lastModified": 1764773531,
"narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=",
"owner": "nix-community",
"repo": "NUR",
"rev": "1d9616689e98beded059ad0384b9951e967a17fa",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"root": { "root": {
"inputs": { "inputs": {
"home-manager": "home-manager", "home-manager": "home-manager",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs",
"stylix": "stylix" "stylix": "stylix"
} }
}, },
@@ -260,130 +264,29 @@
"inputs": { "inputs": {
"base16": "base16", "base16": "base16",
"base16-fish": "base16-fish", "base16-fish": "base16-fish",
"base16-foot": "base16-foot",
"base16-helix": "base16-helix", "base16-helix": "base16-helix",
"base16-kitty": "base16-kitty",
"base16-tmux": "base16-tmux",
"base16-vim": "base16-vim", "base16-vim": "base16-vim",
"firefox-gnome-theme": "firefox-gnome-theme", "flake-compat": "flake-compat",
"flake-parts": "flake-parts",
"gnome-shell": "gnome-shell", "gnome-shell": "gnome-shell",
"nixpkgs": "nixpkgs_3", "home-manager": "home-manager_2",
"nur": "nur", "nixpkgs": "nixpkgs_2"
"systems": "systems",
"tinted-foot": "tinted-foot",
"tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux",
"tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1765065096, "lastModified": 1724260414,
"narHash": "sha256-abrrONk8vzRtY6fHEkjZOyRJpKHjPlFqMBE0+/DxfAU=", "narHash": "sha256-EP1yFDEm/f7+j+fE3TI7KZb5xJH6KNMtmlZciktC71c=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "84d9d55885d463d461234f3aac07b2389a2577d8", "rev": "c5f8f06543b70248a076f888177c7362a24d5dcc",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "danth", "owner": "danth",
"ref": "release-25.11",
"repo": "stylix", "repo": "stylix",
"type": "github" "type": "github"
} }
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"tinted-foot": {
"flake": false,
"locked": {
"lastModified": 1726913040,
"narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=",
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-foot",
"rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4",
"type": "github"
}
},
"tinted-kitty": {
"flake": false,
"locked": {
"lastModified": 1735730497,
"narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=",
"owner": "tinted-theming",
"repo": "tinted-kitty",
"rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-kitty",
"type": "github"
}
},
"tinted-schemes": {
"flake": false,
"locked": {
"lastModified": 1763914658,
"narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=",
"owner": "tinted-theming",
"repo": "schemes",
"rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "schemes",
"type": "github"
}
},
"tinted-tmux": {
"flake": false,
"locked": {
"lastModified": 1764465359,
"narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=",
"owner": "tinted-theming",
"repo": "tinted-tmux",
"rev": "edf89a780e239263cc691a987721f786ddc4f6aa",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "tinted-tmux",
"type": "github"
}
},
"tinted-zed": {
"flake": false,
"locked": {
"lastModified": 1764464512,
"narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=",
"owner": "tinted-theming",
"repo": "base16-zed",
"rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-zed",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@@ -2,61 +2,50 @@
description = "Nixos config flake"; description = "Nixos config flake";
inputs = { inputs = {
stylix.url = "github:danth/stylix/release-25.11"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11"; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
home-manager.url = "github:nix-community/home-manager/release-25.11"; stylix.url = "github:danth/stylix";
nixos-hardware.url = "github:nixos/nixos-hardware/master";
};
outputs = { home-manager = {
self, url = "github:nix-community/home-manager";
nixpkgs, inputs.nixpkgs.follows = "nixpkgs";
nixos-hardware,
...
} @ inputs: let
system = "x86_64-linux";
pkg = nixpkgs.legacyPackages.${system};
in {
formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.alejandra;
nixosConfigurations = {
laptop = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/laptop/configuration.nix
inputs.home-manager.nixosModules.default
inputs.stylix.nixosModules.stylix
nixos-hardware.nixosModules.lenovo-thinkpad-x13-yoga
(import ./overlays/ollama.nix)
];
};
desktop = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/desktop/configuration.nix
inputs.home-manager.nixosModules.default
inputs.stylix.nixosModules.stylix
];
};
server = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/server/configuration.nix
inputs.home-manager.nixosModules.default
nixos-hardware.nixosModules.system76
(import ./overlays/ollama.nix)
];
};
tablet = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/tablet/configuration.nix
inputs.home-manager.nixosModules.default
nixos-hardware.nixosModules.microsoft-surface-pro-intel
];
};
}; };
}; };
outputs = { self, nixpkgs, nixos-hardware, ... }@inputs:
let
system = "x86_64-linux";
pkg = nixpkgs.legacyPackages.${system};
in
{
nixosConfigurations = {
laptop = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/laptop/configuration.nix
inputs.home-manager.nixosModules.default
inputs.stylix.nixosModules.stylix
nixos-hardware.nixosModules.lenovo-thinkpad-x13-yoga
];
};
server = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/server/configuration.nix
inputs.home-manager.nixosModules.default
];
};
tablet = nixpkgs.lib.nixosSystem {
specialArgs = {inherit inputs;};
modules = [
./hosts/tablet/configuration.nix
inputs.home-manager.nixosModules.default
nixos-hardware.nixosModules.microsoft-surface-pro-intel
];
};
};
};
} }

View File

@@ -1,139 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{
config,
pkgs,
inputs,
...
}: {
imports = [./hardware-configuration.nix];
hardware.steam-hardware.enable = true;
nixpkgs.config.allowUnfree = true;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
hardware.amdgpu.opencl.enable = true;
boot.kernelParams = [ "amdgpu.ppfeaturemask=0xfff7ffff" "amdgpu.gpu_recovery=1" ];
services.openssh = {enable = true;};
virtualisation.docker.enable = true;
virtualisation.docker.storageDriver = "btrfs";
networking = {
hostName = "desktop";
networkmanager.enable = true;
firewall.enable = false;
};
nix = {
gc.automatic = true;
settings = {
experimental-features = ["nix-command" "flakes"];
};
};
services = {
pipewire = {
enable = false;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
wivrn = {
enable = false;
defaultRuntime = true;
autoStart = true;
};
xserver = {
enable = false;
displayManager.gdm.enable = false;
desktopManager.gnome.enable = false;
};
};
stylix = {
enable = false;
autoEnable = true;
polarity = "light";
image = ../laptop/wallpaper.png;
base16Scheme = "${pkgs.base16-schemes}/share/themes/precious-light-warm.yaml";
opacity = {
terminal = 0.85;
popups = 0.75;
desktop = 0.75;
};
cursor = {
package = pkgs.adwaita-icon-theme;
name = "Adwaita";
size = 28;
};
fonts = {
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka NF";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka NF";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka NFM";
};
};
};
i18n = {
defaultLocale = "en_US.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
};
#hardware = {
# graphics.enable32Bit = true;
#};
programs = {
zsh.enable = true;
steam.enable = false;
gamescope.enable = false;
envision.enable = false;
corectrl.enable = false;
};
users.users.k = {
isNormalUser = true;
description = "k";
extraGroups = ["networkmanager" "wheel" "docker"];
packages = with pkgs; [zsh];
shell = pkgs.zsh;
};
home-manager = {
backupFileExtension = "bk";
users = {"k" = import ./home.nix;};
};
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. Its perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment?
}

View File

@@ -1,37 +0,0 @@
# 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")
];
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-label/nixos";
fsType = "btrfs";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/BB87-CC45";
fsType = "vfat";
};
swapDevices = [ ];
# 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
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp8s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View File

@@ -1,47 +0,0 @@
{
config,
pkgs,
inputs,
...
}: {
imports = [../home/home_common.nix];
nixpkgs.config.allowUnfree = true;
#home = {
# packages = with pkgs; [
# steam
# neovim
# firefox
# wivrn
# opencomposite
# wlx-overlay-s
# glslang
# gst_all_1.gstreamer
# libdrm
# openxr-loader
# khronos-ocl-icd-loader
# ];
#};
# For WiVRn:
#xdg.configFile."openxr/1/active_runtime.json".source = "${pkgs.wivrn}/share/openxr/1/openxr_wivrn.json";
#xdg.configFile."openvr/openvrpaths.vrpath".text = ''
# {
# "config" :
# [
# "${config.xdg.dataHome}/Steam/config"
# ],
# "external_drivers" : null,
# "jsonid" : "vrpathreg",
# "log" :
# [
# "${config.xdg.dataHome}/Steam/logs"
# ],
# "runtime" :
# [
# "${pkgs.opencomposite}/lib/opencomposite"
# ],
# "version" : 1
# }
#'';
}

View File

@@ -1,27 +0,0 @@
{
config,
pkgs,
inputs,
...
}: {
# ...
dconf.settings = {
# ...
"org/gnome/shell" = {
disable-user-extensions = false;
# `gnome-extensions list` for a list
enabled-extensions = [
"Vitals@CoreCoding.com"
"blur-my-shell@aunetx"
"search-light@icedman.github.com"
];
};
};
home.packages = with pkgs; [
gnomeExtensions.vitals
gnomeExtensions.blur-my-shell
gnomeExtensions.search-light
];
}

View File

@@ -1,40 +0,0 @@
{
config,
pkgs,
inputs,
...
}: {
home = {
username = "k";
homeDirectory = "/home/k";
stateVersion = "23.11";
};
programs = {
git = {
enable = true;
userName = "k";
userEmail = "markers711@gmail.com";
};
tmux.enable = true;
starship.enable = true;
zsh = {
enable = true;
autosuggestion.enable = true;
enableCompletion = true;
syntaxHighlighting.enable = true;
autocd = true;
plugins = [
{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsh";
src = pkgs.fetchFromGitHub {
owner = "chisui";
repo = "zsh-nix-shell";
rev = "v0.8.0";
sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7";
};
}
];
};
};
}

View File

@@ -1,184 +0,0 @@
{
config,
pkgs,
inputs,
...
}: {
imports = [./waybar.nix ./tile.nix];
home.packages = with pkgs; [
#iio-hyprland
#jq #iio-hyprland needs this
];
programs = {
hyprlock.enable = true;
};
services = {
hyprpaper.enable = true;
batsignal.enable = true;
hypridle = {
enable = true;
package = pkgs.hypridle;
settings = {
general = {
after_sleep_cmd = "hyprctl dispatch dpms on";
ignore_dbus_inhibit = false;
lock_cmd = "hyprlock";
};
listener = [
{
timeout = 900;
on-timeout = "hyprlock";
}
{
timeout = 1200;
on-timeout = "hyprctl dispatch dpms off";
on-resume = "hyprctl dispatch dpms on";
}
];
};
};
};
wayland.windowManager.hyprland = {
enable = true;
systemd.variables = ["--all"];
xwayland.enable = true;
settings = {
exec-once = [
#"${pkgs.iio-hyprland}/bin/iio-hyprland"
"${pkgs.batsignal}/bin/batsignal -n BAT0 -b"
"${pkgs.waybar}/bin/waybar"
"${pkgs.hyprpaper}/bin/hyprpaper"
];
monitor = "eDP-1,preferred,auto,1";
general = {
"$mainMod" = "SUPER";
layout = "master";
"$terminal" = "${pkgs.alacritty}/bin/alacritty";
"$menu" = "${pkgs.wofi}/bin/wofi --show drun";
gaps_in = 5;
gaps_out = 10;
border_size = 2;
};
decoration = {
rounding = 15;
blur = {
enabled = true;
size = 2;
passes = 2;
brightness = 1;
noise = 0.3;
new_optimizations = true;
};
};
misc = {
disable_autoreload = true;
disable_hyprland_logo = true;
always_follow_on_dnd = true;
layers_hog_keyboard_focus = true;
animate_manual_resizes = false;
enable_swallow = true;
focus_on_activate = true;
new_window_takes_over_fullscreen = 2;
middle_click_paste = true;
vfr = true;
vrr = 1;
};
input = {touchpad = {natural_scroll = true;};};
bind = [
# keybindings
"$mainMod, Return, exec, $terminal"
"$mainMod, D, exec, $menu"
"$mainMod Shift, C, killactive,"
"$mainMod, Space, exec, toggle_float"
"$mainMod, Escape, exec, ${pkgs.hyprlock}/bin/hyprlock"
#emacs
"$mainMod, E, exec, ${pkgs.emacs-pgtk}/bin/emacsclient -c"
"$mainMod, C, exec, ${pkgs.emacs-pgtk}/bin/emacsclient -c -e\ \"(org-roam-capture)\""
"$mainMod, B, exec, ${pkgs.emacs-pgtk}/bin/emacsclient -c -e\ \"(call-interactively #'bookmark-jump)\""
"$mainMod, P, exec, ${pkgs.emacs-pgtk}/bin/emacsclient -c -e\ \"(project-dired)\""
"$mainMod, M, exec, ${pkgs.emacs-pgtk}/bin/emacsclient -c -e \"(mingus)\""
# switch focus
"$mainMod, left, movefocus, l"
"$mainMod, right, movefocus, r"
"$mainMod, up, movefocus, u"
"$mainMod, down, movefocus, d"
# switch workspace
"$mainMod, 1, workspace, 1"
"$mainMod, 2, workspace, 2"
"$mainMod, 3, workspace, 3"
"$mainMod, 4, workspace, 4"
"$mainMod, 5, workspace, 5"
"$mainMod, 6, workspace, 6"
"$mainMod, 7, workspace, 7"
"$mainMod, 8, workspace, 8"
"$mainMod, 9, workspace, 9"
"$mainMod, 0, workspace, 10"
# same as above, but switch to the workspace
"$mainMod SHIFT, 1, movetoworkspacesilent, 1"
"$mainMod SHIFT, 2, movetoworkspacesilent, 2"
"$mainMod SHIFT, 3, movetoworkspacesilent, 3"
"$mainMod SHIFT, 4, movetoworkspacesilent, 4"
"$mainMod SHIFT, 5, movetoworkspacesilent, 5"
"$mainMod SHIFT, 6, movetoworkspacesilent, 6"
"$mainMod SHIFT, 7, movetoworkspacesilent, 7"
"$mainMod SHIFT, 8, movetoworkspacesilent, 8"
"$mainMod SHIFT, 9, movetoworkspacesilent, 9"
"$mainMod SHIFT, 0, movetoworkspacesilent, 10"
"$mainMod CTRL, c, movetoworkspace, empty"
# window control
"$mainMod SHIFT, left, movewindow, l"
"$mainMod SHIFT, right, movewindow, r"
"$mainMod SHIFT, up, movewindow, u"
"$mainMod SHIFT, down, movewindow, d"
"$mainMod CTRL, left, resizeactive, -80 0"
"$mainMod CTRL, right, resizeactive, 80 0"
"$mainMod CTRL, up, resizeactive, 0 -80"
"$mainMod CTRL, down, resizeactive, 0 80"
"$mainMod ALT, left, moveactive, -80 0"
"$mainMod ALT, right, moveactive, 80 0"
"$mainMod ALT, up, moveactive, 0 -80"
"$mainMod ALT, down, moveactive, 0 80"
# media and volume controls
# ",XF86AudioMute,exec, pamixer -t"
",XF86AudioPlay,exec, playerctl play-pause"
",XF86AudioNext,exec, playerctl next"
",XF86AudioPrev,exec, playerctl previous"
",XF86AudioStop,exec, playerctl stop"
",XF86AudioRaiseVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
];
bindm = [
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
};
};
home.sessionVariables = {
MOZ_ENABLE_WAYLAND = "1";
MOZ_USE_XINPUT2 = "1";
XDG_SESSION_TYPE = "wayland";
SDL_VIDEODRIVER = "wayland";
QT_QPA_PLATFORM = "wayland";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
_JAVA_AWT_WM_NONREPARENTING = 1;
};
}

View File

@@ -1,36 +0,0 @@
{
config,
pkgs,
inputs,
...
}: {
imports = [./waybar.nix ./tile.nix];
wayland.windowManager.sway = {
enable = true;
config = {
modifier = "Mod4";
floating.border = 0;
window.border = 1;
window.titlebar = false;
terminal = "${pkgs.alacritty}/bin/alacritty";
menu = "${pkgs.wofi}/bin/wofi --show drun";
bars = [];
gaps = {
inner = 10;
outer = 5;
};
};
};
home.sessionVariables = {
MOZ_ENABLE_WAYLAND = "1";
MOZ_USE_XINPUT2 = "1";
XDG_SESSION_TYPE = "wayland";
SDL_VIDEODRIVER = "wayland";
QT_QPA_PLATFORM = "wayland";
QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
_JAVA_AWT_WM_NONREPARENTING = 1;
};
services = {swayidle = {enable = true;};};
}

View File

@@ -1,28 +0,0 @@
{
config,
pkgs,
inputs,
...
}: {
services = {
mako = {
enable = true;
defaultTimeout = 4000;
};
};
programs = {
alacritty = {enable = true;};
wofi = {enable = true;};
zathura = {enable = true;};
mpv = {enable = true;};
lf = {enable = true;};
};
home.packages = with pkgs; [
brightnessctl
pulsemixer
unzip
zip
swayimg
];
stylix.targets.wofi.enable = true; #this dosnt follow auto enable for some reson
}

View File

@@ -1,84 +0,0 @@
{
config,
pkgs,
...
}: {
programs.waybar = {
enable = true;
systemd.enable = true;
settings = {
mainBar = {
layer = "bottom";
position = "bottom";
output = ["eDP-1"];
margin-left = 45;
margin-right = 45;
spacing = 15;
modules-left = ["sway/workspaces" "sway/mode" "hyprland/window"];
modules-center = ["clock"];
modules-right = ["pulseaudio" "network" "battery"];
cpu = {
interval = 15;
format = " {}%";
max-length = 15;
};
memory = {
interval = 30;
format = " {}%";
max-length = 15;
};
"pulseaudio" = {
format = "{volume}% {icon}";
format-bluetooth = "{volume}% {icon} ";
format-muted = " ";
format-icons = {
headphone = " ";
hands-free = " ";
headset = " ";
phone = " ";
portable = " ";
car = " ";
default = [" " " "];
};
#scroll-step = 1;
#on-click = "pavucontrol";
};
backlight = {
tooltip = false;
format = " {}%";
interval = 1;
on-scroll-up = "${pkgs.brightnessctl}/bin/brightnessctl s 5%+";
on-scroll-down = "${pkgs.brightnessctl}/bin/brightnessctl s 5%+";
};
network = {
format = "{ifname}";
format-wifi = "{essid} ({signalStrength}%) ";
format-ethernet = "{ipaddr}/{cidr} 󰊗 ";
format-disconnected = "󰤮 ";
tooltip-format = "{ifname} via {gwaddr} 󰊗 ";
tooltip-format-wifi = "{essid} ({signalStrength}%) ";
tooltip-format-ethernet = "{ifname} ";
tooltip-format-disconnected = "Disconnected";
max-length = 50;
};
battery = {
format = "{capacity}% {icon}";
"format-icons" = [" " " " " " " " " "];
};
clock = {
format = "{:%I:%M %p}";
"format-alt" = "{:%a, %d. %b %H:%M}";
tooltip = false;
};
};
};
};
}

View File

@@ -1,208 +1,157 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, inputs, ... }:
{ {
config, imports =
pkgs, [ # Include the results of the hardware scan.
inputs, ./hardware-configuration.nix
... ];
}: { nix.settings.experimental-features = ["nix-command" "flakes"];
imports = [./hardware-configuration.nix ];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
system.autoUpgrade.enable = true;
time.timeZone = "America/New_York";
powerManagement.enable = true;
hardware = {
bluetooth = {
enable = true;
powerOnBoot = true;
settings = {
General = {
Enable = "Source,Sink,Media,Socket";
};
};
};
};
nix = {
gc.automatic = false;
settings = {
experimental-features = ["nix-command" "flakes"];
#substituters = ["http://nix.dhilton.xyz/" "https://cache.nixos.org/"];
#trusted-public-keys = ["nix.dhilton.xyz:MOW060dF1A0/UXmPZBue9KMxCO13PHYFwx1X9hcdYZ4="];
};
};
networking = {
hostName = "laptop";
networkmanager.enable = true;
firewall.enable = true;
};
i18n = {
defaultLocale = "en_US.UTF-8";
extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
};
};
services = {
hardware.bolt = {enable = true;};
displayManager.ly = {
enable = true;
x11Support = false;
settings = {
animation = "colormix";
battery_id = "BAT0";
clear_password = true;
colormix_col1 = "0xA7C080";
colormix_col2 = "0x7FBBB3";
colormix_col3 = "0xE67E80";
};
};
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
};
auto-cpufreq = {
enable = false;
settings = {
battery = {
governor = "powersave";
turbo = "never";
};
charger = {
governor = "balance_performance";
turbo = "auto";
};
};
};
logind = {
lidSwitch = "suspend-then-hibernate";
lidSwitchExternalPower = "suspend";
};
avahi = {
enable = false;
nssmdns4 = true;
openFirewall = true;
};
blueman.enable = true;
fwupd.enable = true;
printing.enable = true;
fprintd.enable = true;
thermald.enable = true;
};
stylix = { stylix = {
enable = true; enable = true;
autoEnable = true; polarity = "light";
polarity = "dark";
image = ./wallpaper.png; image = ./wallpaper.png;
base16Scheme = "${pkgs.base16-schemes}/share/themes/everforest.yaml"; base16Scheme = "${pkgs.base16-schemes}/share/themes/rose-pine-dawn.yaml";
opacity = {
terminal = 0.85;
popups = 0.75;
desktop = 0.75;
applications = 0.85;
};
cursor = { cursor = {
package = pkgs.adwaita-icon-theme; package = pkgs.gnome.adwaita-icon-theme;
name = "Adwaita"; name = "Adwaita";
size = 28; size = 28;
}; };
fonts = {
serif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka NF";
};
sansSerif = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka NF";
};
monospace = {
package = pkgs.nerd-fonts.iosevka;
name = "Iosevka NFM";
};
};
}; };
hardware = { # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
sensor.iio.enable = true;
graphics.enable32Bit = true; # Configure network proxy if necessary
graphics.extraPackages = with pkgs; [ # networking.proxy.default = "http://user:password@proxy:port/";
intel-vaapi-driver # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
intel-media-driver
intel-compute-runtime # Enable networking
]; networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "America/New_York";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
}; };
programs = { services.xserver.enable = true;
zsh.enable = true; services.xserver.displayManager.gdm.enable = true;
virt-manager.enable = true; services.xserver.desktopManager.gnome.enable = true;
hyprland = { environment.gnome.excludePackages = (with pkgs; [
enable = true; gnome-photos
}; gnome-tour
xterm
]) ++ (with pkgs.gnome; [
cheese # webcam tool
gnome-music
gnome-weather
gnome-calendar
gnome-contacts
gnome-clocks
gnome-maps
gnome-terminal
epiphany # web browser
geary # email reader
evince # document viewer
gnome-characters
totem # video player
tali # poker game
iagno # go game
hitori # sudoku game
atomix # puzzle game
]);
hardware.sensor.iio.enable = true;
networking.hostName = "laptop"; # Define your hostname.
services.fwupd.enable = true;
# Enable CUPS to print documents.
services.printing.enable = true;
services.fprintd.enable = true;
services.thermald.enable = true;
powerManagement.powertop.enable = true;
powerManagement.enable = true;
virtualisation.podman = {
enable = true;
dockerCompat = true;
}; };
virtualisation = { # Enable sound with pipewire.
libvirtd = {enable = true;}; sound.enable = true;
kvmgt = {enable = true;}; hardware.pulseaudio.enable = false;
docker = {enable = true;}; security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = true;
}; };
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [glibc glib];
programs.zsh.enable = true;
users.users.k = { users.users.k = {
isNormalUser = true; isNormalUser = true;
description = "k"; description = "k";
extraGroups = ["networkmanager" "wheel" "cdrom" "libvirtd"]; extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [zsh]; packages = with pkgs; [zsh];
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
home-manager = { home-manager = {
backupFileExtension = "bk"; users = {
users = {"k" = import ./home.nix;}; "k" = import ./home.nix;
};
};
programs.steam.enable = true;
programs.steam.gamescopeSession.enable = true;
programs.gamemode.enable = true;
environment.sessionVariables = {
MOZ_USE_XINPUT2 = "1";
}; };
environment = {
sessionVariables = {MOZ_USE_XINPUT2 = "1";};
systemPackages = with pkgs; [
config.boot.kernelPackages.perf
];
};
systemd.sleep.extraConfig = '' system.autoUpgrade.enable = true;
HibernateDelaySec=20m nix.gc.automatic = true;
SuspendState=mem
'';
boot = {
plymouth = {enable = true;};
consoleLogLevel = 0; # List packages installed in system profile. To search, run:
initrd.verbose = false; # $ nix search wget
kernelParams = [ environment.systemPackages = with pkgs; [
"quiet" intel-vaapi-driver
"splash" intel-compute-runtime
"boot.shell_on_fail" intel-media-driver
"loglevel=3" microcodeIntel
"rd.systemd.show_status=false" neovim
"rd.udev.log_level=3" gtk2
]; gtk3
loader.timeout = 0; gtk4
}; ];
networking.firewall.enable = true;
hardware.graphics.enable32Bit = true;
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
@@ -211,4 +160,5 @@
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment? system.stateVersion = "23.11"; # Did you read the comment?
} }

View File

@@ -1,31 +1,31 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{ {
config, imports =
lib, [ (modulesPath + "/installer/scan/not-detected.nix")
pkgs, ];
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod"]; boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = []; boot.initrd.kernelModules = [ ];
boot.kernelModules = ["kvm-intel"]; boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = []; boot.extraModulePackages = [ ];
fileSystems."/" = { fileSystems."/" =
device = "/dev/disk/by-uuid/a7301069-c11f-411e-9a23-446744c3ae76"; { device = "/dev/disk/by-uuid/a7301069-c11f-411e-9a23-446744c3ae76";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = { fileSystems."/boot" =
device = "/dev/disk/by-uuid/19F3-CD7E"; { device = "/dev/disk/by-uuid/19F3-CD7E";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [{device = "/dev/disk/by-uuid/d9df94a1-5088-468c-839d-f4cd10cb7e5f";}]; swapDevices =
[ { device = "/dev/disk/by-uuid/d9df94a1-5088-468c-839d-f4cd10cb7e5f"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's
@@ -35,8 +35,7 @@
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
lib.mkDefault config.hardware.enableRedistributableFirmware;
# Bootloader. # Bootloader.
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;

View File

@@ -1,71 +1,55 @@
{ { config, pkgs, inputs, ... }:
config,
pkgs,
inputs,
...
}: {
imports = [
../home/home_common.nix
../home/hyprland.nix
];
{
home.enableNixpkgsReleaseCheck = false;
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
home = { home.username = "k";
packages = with pkgs; [ home.homeDirectory = "/home/k";
firefox home.stateVersion = "23.11";
chromium #this might replace firefox
keepassxc
thunderbird
blender
vesktop
spotify
alacritty
btop home.packages = [
zip pkgs.nerdfonts
pkgs.firefox
pkgs.keepassxc
pkgs.syncthing
pkgs.thunderbird
pkgs.blender
pkgs.discord
pkgs.btop
pkgs.zip
pkgs.spotify
pkgs.distrobox
prismlauncher pkgs.modrinth-app
steam ];
gamescope
direnv programs.git = {
texliveFull enable = true;
ispell userName = "k";
userEmail = "markers711@gmail.com";
};
programs.starship.enable = true;
programs.zsh = {
enable = true;
autosuggestion.enable = true;
enableCompletion = true;
syntaxHighlighting.enable = true;
autocd = true;
plugins = [
{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsh";
src = pkgs.fetchFromGitHub {
owner = "chisui";
repo = "zsh-nix-shell";
rev = "v0.8.0";
sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7";
};
}
]; ];
}; };
programs = { services.syncthing.enable = true;
direnv = {
enable = true;
enableZshIntegration = true;
nix-direnv.enable = true;
};
emacs = {
enable = true;
package = pkgs.emacs-pgtk.override{withTreeSitter=true; withNativeCompilation=true;};
extraPackages = epkgs: [
epkgs.vterm
];
};
};
services = {
syncthing.enable = true;
mpd = {
enable = true;
musicDirectory = "/home/k/Music";
};
emacs = {
enable = true;
defaultEditor = true;
};
};
stylix = {
enable = true;
autoEnable = true;
};
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 MiB

After

Width:  |  Height:  |  Size: 3.4 MiB

View File

@@ -1,75 +1,127 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, inputs, ... }:
{ {
config, imports =
pkgs, [ # Include the results of the hardware scan.
inputs, ./hardware-configuration.nix
... ./service.nix
}: { ];
imports = [./hardware-configuration.nix ./service.nix]; nix.settings.experimental-features = ["nix-command" "flakes"];
powerManagement.enable = true; nixpkgs.config.allowUnfree = true;
system.autoUpgrade.enable = true;
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
nix = { # Set your time zone.
gc.automatic = true; time.timeZone = "America/New_York";
settings = {
experimental-features = ["nix-command" "flakes"]; # Select internationalisation properties.
#substituters = ["http://nix.dhilton.xyz/" "https://cache.nixos.org/"]; i18n.defaultLocale = "en_US.UTF-8";
#trusted-public-keys = ["nix.dhilton.xyz:MOW060dF1A0/UXmPZBue9KMxCO13PHYFwx1X9hcdYZ4="];
}; i18n.extraLocaleSettings = {
LC_ADDRESS = "en_US.UTF-8";
LC_IDENTIFICATION = "en_US.UTF-8";
LC_MEASUREMENT = "en_US.UTF-8";
LC_MONETARY = "en_US.UTF-8";
LC_NAME = "en_US.UTF-8";
LC_NUMERIC = "en_US.UTF-8";
LC_PAPER = "en_US.UTF-8";
LC_TELEPHONE = "en_US.UTF-8";
LC_TIME = "en_US.UTF-8";
}; };
nixpkgs.config = {
allowUnfree = true;
vaapiIntel = pkgs.vaapiIntel.override {enableHybridCodec = true;};
};
programs = { # Enable the X11 windowing system.
zsh.enable = true; services.xserver.enable = false;
neovim.enable = true;
};
users = { # Enable the GNOME Desktop Environment.
motd = "Welcome to the Server"; services.xserver.displayManager.gdm.enable = false;
defaultUserShell = pkgs.zsh; services.xserver.desktopManager.gnome.enable = false;
users = {
k = { # Enable CUPS to print documents.
isNormalUser = true; # services.auto-cpufreq.enable = true;
description = "k"; # services.thermald.enable = true;
extraGroups = ["networkmanager" "wheel" "libvirtd"]; # powerManagement.powertop.enable = true;
openssh.authorizedKeys.keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPKbKVe6gneJ9ghFih3bOeL++iDNPJNIMoZSdNMOsD0I k@laptop"]; # powerManagement.enable = true;
};
docker = {
isNormalUser = true;
description = "user for runing docker";
extraGroups = ["docker"];
openssh.authorizedKeys.keys = ["ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPKbKVe6gneJ9ghFih3bOeL++iDNPJNIMoZSdNMOsD0I k@laptop"];
packages = with pkgs; [docker-compose];
};
};
};
home-manager = { # Enable sound with pipewire.
backupFileExtension = "bk"; sound.enable = false;
users = {"k" = import ./home.nix;};
};
environment.systemPackages = with pkgs; [ # Enable touchpad support (enabled default in most desktopManager).
microcodeIntel # services.xserver.libinput.enable = true;
firefox
# Define a user account. Don't forget to set a password with passwd.
programs.nix-ld.enable = true;
programs.nix-ld.libraries = with pkgs; [
]; ];
programs.zsh.enable = true;
users.users.k = {
isNormalUser = true;
description = "k";
extraGroups = [ "networkmanager" "wheel" "libvirtd"];
packages = with pkgs; [zsh];
shell = pkgs.zsh;
};
home-manager = {
users = {
"k" = import ./home.nix;
};
};
hardware.bluetooth.enable = true; services.udev.extraRules = ''
hardware.bluetooth.powerOnBoot = true; # Allows Wolf to acces /dev/uinput
hardware.graphics = { KERNEL=="uinput", SUBSYSTEM=="misc", MODE="0660", GROUP="input", OPTIONS+="static_node=uinput"
enable = true;
extraPackages = with pkgs; [ # Allows Wolf to access /dev/uhid
intel-media-driver KERNEL=="uhid", TAG+="uaccess"
intel-vaapi-driver
vaapiVdpau # Move virtual keyboard and mouse into a different seat
intel-compute-runtime # OpenCL filter support (hardware tonemapping and subtitle burn-in) SUBSYSTEMS=="input", ATTRS{id/vendor}=="ab00", MODE="0660", GROUP="input", ENV{ID_SEAT}="seat9"
vpl-gpu-rt # QSV on 11th gen or newer
intel-media-sdk # QSV up to 11th gen # Joypads
]; SUBSYSTEMS=="input", ATTRS{name}=="Wolf X-Box One (virtual) pad", MODE="0660", GROUP="input"
SUBSYSTEMS=="input", ATTRS{name}=="Wolf PS5 (virtual) pad", MODE="0660", GROUP="input"
SUBSYSTEMS=="input", ATTRS{name}=="Wolf gamepad (virtual) motion sensors", MODE="0660", GROUP="input"
SUBSYSTEMS=="input", ATTRS{name}=="Wolf Nintendo (virtual) pad", MODE="0660", GROUP="input"
'';
users.users.game = {
isNormalUser = true;
extraGroups = ["docker" "input"];
packages = with pkgs; [docker-compose];
};
users.users.media = {
isNormalUser = true;
packages = with pkgs; [mpv ffmpeg handbrake makemkv];
};
system.autoUpgrade.enable = true;
nix.gc.automatic = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
docker-compose
intel-vaapi-driver
intel-compute-runtime
intel-media-driver
microcodeIntel
];
networking.firewall = {
enable = false;
allowedTCPPorts = [80 443 22 ];
}; };
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
@@ -79,4 +131,5 @@
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment? system.stateVersion = "23.11"; # Did you read the comment?
} }

View File

@@ -1,36 +1,37 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { config, lib, pkgs, modulesPath, ... }:
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = ["xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"]; {
boot.initrd.kernelModules = []; imports =
boot.kernelModules = ["kvm-intel"]; [ (modulesPath + "/installer/scan/not-detected.nix")
boot.extraModulePackages = []; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "nixserver"; # Define your hostname. networking.hostName = "nixserver"; # Define your hostname.
fileSystems."/" = { fileSystems."/" =
device = "/dev/disk/by-uuid/aaf4a4be-fed2-42b2-be79-4ca920bb7292"; { device = "/dev/disk/by-uuid/aaf4a4be-fed2-42b2-be79-4ca920bb7292";
fsType = "ext4"; fsType = "ext4";
}; };
fileSystems."/boot" = { fileSystems."/boot" =
device = "/dev/disk/by-uuid/150F-09C6"; { device = "/dev/disk/by-uuid/150F-09C6";
fsType = "vfat"; fsType = "vfat";
}; };
swapDevices = [{device = "/dev/disk/by-uuid/ecde85bd-abea-4926-80d5-810b01d0e364";}]; swapDevices =
[ { device = "/dev/disk/by-uuid/ecde85bd-abea-4926-80d5-810b01d0e364"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's
@@ -40,6 +41,5 @@
# networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true; # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@@ -1,12 +1,44 @@
{ config, pkgs, inputs, ... }:
{ {
config, home.enableNixpkgsReleaseCheck = false;
pkgs, nixpkgs.config.allowUnfree = true;
inputs,
... home.username = "k";
}: { home.homeDirectory = "/home/k";
imports = [../home/home_common.nix]; home.stateVersion = "23.11";
home = {packages = with pkgs; [docker docker-compose neovim waypipe];};
services = { home.packages = [
syncthing.enable = true; pkgs.syncthing
pkgs.neovim
pkgs.btop
];
programs.git = {
enable = true;
userName = "k";
userEmail = "markers711@gmail.com";
}; };
programs.starship.enable = true;
programs.zsh = {
enable = true;
autosuggestion.enable = true;
enableCompletion = true;
syntaxHighlighting.enable = true;
autocd = true;
plugins = [
{
name = "zsh-nix-shell";
file = "nix-shell.plugin.zsh";
src = pkgs.fetchFromGitHub {
owner = "chisui";
repo = "zsh-nix-shell";
rev = "v0.8.0";
sha256 = "1lzrn0n4fxfcgg65v0qhnj7wnybybqzs4adz7xsrkgmcsr0ii8b7";
};
}
];
};
services.syncthing.enable = true;
} }

View File

@@ -1,215 +1,186 @@
{pkgs,lib,...}:
{ {
pkgs, services.openssh = {
lib, enable = true;
... };
}: {
networking = {
firewall = {
enable = true;
allowedTCPPorts = [80 443 22 25565 26615 8080 53 19132 ];
allowedUDPPorts = [26615 8080 1900 51820 53 19132 ];
};
nat.externalInterface = "wlp0s20f3";
nat.internalInterfaces = [ "wg0" ];
wireguard.interfaces = {
wg0 = {
ips = ["10.0.0.1/24"];
listenPort = 51820;
privateKeyFile = "/keys/wg-private";
peers = [
{ # laptop
publicKey = "Ze2y3K+blI3aBc1AKTlvv90j+McBaitB+qSLazsuSFM=";
allowedIPs = ["10.0.0.2/32"];
}
{ # phone services.jellyfin = {
publicKey = "vcheBoHRxCrwzbMw0UI9ZsQfVDJizBWkeM+pF5/8+HE="; enable = true;
allowedIPs = ["10.0.0.3/32"]; };
}
]; services.gitea = {
enable = true;
settings = {
service.DISABLE_REGISTRATION = true;
server = {
HTTP_PORT = 8001;
DOMAIN = "dhilton.xyz";
ROOT_URL = "https://git.dhilton.xyz";
}; };
}; };
}; };
networking.nat.enable = true; services.gitea-actions-runner.instances.home = {
enable = true;
url = "https://git.dhilton.xyz";
name = "nixsrv";
token = "LaqTWUDidsm510TGBglGvcphsUxYmCzMjrZbEtJj";
labels = ["ubuntu-latest:docker://node:16-bullseye" "ubuntu-22.04:docker://node:16-bullseye" "ubuntu-20.04:docker://node:16-bullseye" "ubuntu-18.04:docker://node:16-buster" "native:host"];
};
services.home-assistant = {
enable = true;
extraComponents = ["wiz" "fail2ban" "whisper" "piper" "wyoming" "ollama"];
config = {
default_config={};
"automation ui" = "!include automations.yaml";
http = {
use_x_forwarded_for="true";
trusted_proxies=["127.0.0.1"];
server_port=8003;
};
};
};
services.ntfy-sh = {
enable = true;
settings = {
listen-http = ":8004";
auth-file = "/var/lib/ntfy.db";
auth-default-access = "read-only";
base-url = "https://ntfy.dhilton.xyz";
};
};
services.searx = {
enable=true;
settings = { server.port = 8005; server.secret_key = "secretlol";};
};
networking.domain = "dhilton.xyz";
services.postgresql.enable = true;
services.akkoma.enable = true;
services.akkoma.config = {
":pleroma" = {
":instance" = {
name = "dhilton fedi";
description = "dhilton akkoma server";
email = "markers711@gmail.com";
registration_open = false;
};
"Pleroma.Web.Endpoint" = {
url.host = "fed.dhilton.xyz";
};
};
};
services.akkoma.nginx = {
enableACME = true;
forceSSL = true;
};
services.fail2ban = {
enable=true;
};
virtualisation.docker = {
enable = true;
};
services.nginx = {
enable = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
};
services.nginx.virtualHosts = {
"dhilton.xyz" = {
enableACME = true;
forceSSL = true;
root = "/var/www/dhilton";
};
"git.dhilton.xyz" = {
addSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8001";
proxyWebsockets = true;
};
};
"ntfy.dhilton.xyz" = {
addSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8004";
proxyWebsockets = true;
};
};
"jel.dhilton.xyz" = {
addSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8096";
proxyWebsockets = true;
};
};
"srx.dhilton.xyz" = {
addSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8005";
proxyWebsockets = true;
};
};
"map.dhilton.xyz" = {
addSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8100";
proxyWebsockets = true;
};
};
"hom.dhilton.xyz" = {
addSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8003";
proxyWebsockets = true;
};
};
};
security.acme = { security.acme = {
acceptTerms = true; acceptTerms = true;
defaults.email = "markers711@gmail.com"; defaults.email = "markers711@gmail.com";
}; };
virtualisation.libvirtd = {
virtualisation = { enable = true;
docker = {enable = true;}; qemu = {
libvirtd = {enable = true;}; package = pkgs.qemu_kvm;
kvmgt = {enable = true;}; runAsRoot = true;
}; swtpm.enable = true;
ovmf = {
services = {
openssh = {enable = true;};
jellyfin = {enable = true;};
fail2ban = {enable = true;};
postgresql = {enable = true;};
i2p = {enable = true;};
nix-serve = {
enable = true; enable = true;
secretKeyFile = "/var/cache-priv-key.pem"; packages = [(pkgs.OVMF.override {
}; secureBoot = true;
tpmSupport = true;
ollama = { }).fd];
enable = false;
package = pkgs.ollama-intel;
};
gitea = {
enable = true;
settings = {
service.DISABLE_REGISTRATION = true;
service.ENABLE_PUSH_CREATE_USER = true;
server = {
HTTP_PORT = 8001;
DOMAIN = "dhilton.xyz";
ROOT_URL = "https://git.dhilton.xyz";
ENABLE_PUSH_CREATE_USER = true;
};
};
};
gitea-actions-runner.instances.home = {
enable = true;
url = "https://git.dhilton.xyz";
name = "nixsrv";
token = "LaqTWUDidsm510TGBglGvcphsUxYmCzMjrZbEtJj";
labels = [
"ubuntu-latest:docker://catthehacker/ubuntu:act-latest"
"ubuntu-22.04:docker://catthehacker/ubuntu:act-22.04"
"ubuntu-20.04:docker://catthehacker/ubuntu:act-20.04"
"ubuntu-18.04:docker://catthehacker/ubuntu:act-18.04"
"native:host"
];
};
home-assistant = {
enable = false;
extraComponents = ["wiz" "fail2ban" "ollama" "wyoming" "androidtv" "androidtv_remote"];
config = {
default_config = {};
"automation ui" = "!include automations.yaml";
http = {
use_x_forwarded_for = "true";
trusted_proxies = ["127.0.0.1"];
server_port = 8002;
};
};
};
wyoming = {
piper.servers."piperNix" = {
enable = false;
uri = "tcp://0.0.0.0:10200";
voice = "en-us-ryan-low";
};
faster-whisper.servers."whisperNix" = {
enable = false;
uri = "tcp://0.0.0.0:10300";
language = "en";
};
};
searx = {
enable = true;
settings = {
server.port = 8003;
server.secret_key = "secretlol";
search.formats = ["html" "json"];
};
};
akkoma = {
enable = true;
initDb.enable = true;
config = {
":pleroma" = {
":instance" = {
name = "dhilton fedi";
description = "dhilton akkoma server";
email = "markers711@gmail.com";
registration_open = false;
};
"Pleroma.Web.Endpoint" = {url.host = "fed.dhilton.xyz";};
};
};
nginx = {
enableACME = true;
forceSSL = true;
};
};
nginx = {
enable = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
virtualHosts = {
"dhilton.xyz" = {
enableACME = true;
forceSSL = true;
root = "/var/www/dhilton";
};
"git.dhilton.xyz" = {
enableACME = true;
forceSSL = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8001";
proxyWebsockets = true;
};
};
"jel.dhilton.xyz" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8096";
proxyWebsockets = true;
};
};
"hom.dhilton.xyz" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8002";
proxyWebsockets = true;
};
};
"srx.dhilton.xyz" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8003";
proxyWebsockets = true;
};
};
"map.dhilton.xyz" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://127.0.0.1:8100";
proxyWebsockets = true;
};
};
"nix.dhilton.xyz" = {
locations."/".proxyPass = "http://127.0.0.1:5000";
};
};
}; };
}; };
};
} }

View File

@@ -1,20 +1,18 @@
# Edit this configuration file to define what should be installed on # Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page # your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running nixos-help). # and in the NixOS manual (accessible by running nixos-help).
{ config, pkgs, inputs, nixos-hardware, ... }:
{ {
config, imports =
pkgs, [ # Include the results of the hardware scan.
inputs, ./hardware-configuration.nix
nixos-hardware, ];
...
}: {
imports = [
# Include the results of the hardware scan.
./hardware-configuration.nix
];
nix.settings.experimental-features = ["nix-command" "flakes"]; nix.settings.experimental-features = ["nix-command" "flakes"];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
# Set your time zone. # Set your time zone.
@@ -35,22 +33,27 @@
LC_TIME = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8";
}; };
# Enable the X11 windowing system. # Enable the X11 windowing system.
#services.xserver.enable = true; #services.xserver.enable = true;
# Enable the GNOME Desktop Environment. # Enable the GNOME Desktop Environment.
services.xserver.desktopManager.phosh = { services.xserver.desktopManager.phosh = {
enable = true; enable = true;
group = ""; group = "";
user = "k"; user = "k";
phocConfig.xwayland = "immediate"; phocConfig.xwayland = "immediate";
}; };
# Enable CUPS to print documents. # Enable CUPS to print documents.
services.printing.enable = true; services.printing.enable = true;
services.auto-cpufreq.enable = true;
services.thermald.enable = true; services.thermald.enable = true;
powerManagement.powertop.enable = true;
powerManagement.enable = true;
# Enable sound with pipewire. # Enable sound with pipewire.
sound.enable = true;
hardware.pulseaudio.enable = false; hardware.pulseaudio.enable = false;
security.rtkit.enable = true; security.rtkit.enable = true;
services.pipewire = { services.pipewire = {
@@ -60,36 +63,41 @@
pulse.enable = true; pulse.enable = true;
jack.enable = true; jack.enable = true;
}; };
# Enable touchpad support (enabled default in most desktopManager). # Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true; # services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
programs.zsh.enable = true; programs.zsh.enable = true;
users.users.k = { users.users.k = {
isNormalUser = true; isNormalUser = true;
description = "k"; description = "k";
extraGroups = ["networkmanager" "wheel"]; extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [zsh]; packages = with pkgs; [zsh];
shell = pkgs.zsh; shell = pkgs.zsh;
}; };
home-manager = {users = {"k" = import ./home.nix;};}; home-manager = {
users = {
"k" = import ./home.nix;
};
};
system.autoUpgrade.enable = true; system.autoUpgrade.enable = true;
nix.gc.automatic = true; nix.gc.automatic = true;
# List packages installed in system profile. To search, run: # List packages installed in system profile. To search, run:
# $ nix search wget # $ nix search wget
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
intel-vaapi-driver intel-vaapi-driver
intel-compute-runtime intel-compute-runtime
intel-media-driver intel-media-driver
microcodeIntel microcodeIntel
gnome-console gnome-console
neovim neovim
]; ];
boot.kernelModules = ["soc_button_array"]; boot.kernelModules = [ "soc_button_array" ];
networking.firewall.enable = true; networking.firewall.enable = true;
@@ -100,4 +108,5 @@
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "23.11"; # Did you read the comment? system.stateVersion = "23.11"; # Did you read the comment?
} }

View File

@@ -1,19 +1,17 @@
# Do not modify this file! It was generated by nixos-generate-config # Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes # and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead. # to /etc/nixos/configuration.nix instead.
{ { config, lib, pkgs, modulesPath, ... }:
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [(modulesPath + "/installer/scan/not-detected.nix")];
boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "sd_mod"]; {
boot.initrd.kernelModules = []; imports =
boot.kernelModules = ["kvm-intel"]; [ (modulesPath + "/installer/scan/not-detected.nix")
boot.extraModulePackages = []; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-intel" ];
boot.extraModulePackages = [ ];
hardware.opengl.driSupport32Bit = true; hardware.opengl.driSupport32Bit = true;
networking.hostName = "surface"; networking.hostName = "surface";
@@ -22,17 +20,21 @@
boot.loader.systemd-boot.enable = true; boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.canTouchEfiVariables = true;
fileSystems."/" = {
device = "/dev/disk/by-uuid/479b497e-7807-48e4-82e6-d6468549a281";
fsType = "ext4";
};
fileSystems."/boot" = {
device = "/dev/disk/by-uuid/DACA-E1BC";
fsType = "vfat";
};
swapDevices = [{device = "/dev/disk/by-uuid/19941c01-ac8c-4609-a834-20259f3ee32e";}]; fileSystems."/" =
{ device = "/dev/disk/by-uuid/479b497e-7807-48e4-82e6-d6468549a281";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/DACA-E1BC";
fsType = "vfat";
};
swapDevices =
[ { device = "/dev/disk/by-uuid/19941c01-ac8c-4609-a834-20259f3ee32e"; }
];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking # 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 # (the default) this is the recommended approach. When using systemd-networkd it's
@@ -42,6 +44,5 @@
# networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true; # networking.interfaces.wlp1s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
lib.mkDefault config.hardware.enableRedistributableFirmware;
} }

View File

@@ -1,9 +1,6 @@
{ config, pkgs, inputs, ... }:
{ {
config,
pkgs,
inputs,
...
}: {
home.enableNixpkgsReleaseCheck = false; home.enableNixpkgsReleaseCheck = false;
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;

View File

@@ -1,49 +0,0 @@
{
config,
pkgs,
lib,
...
}: {
nixpkgs.overlays = [
(final: prev: {
ollama-intel = prev.ollama.overrideAttrs (oldAttrs: {
buildInputs =
oldAttrs.buildInputs
or []
++ [prev.intel-compute-runtime.drivers];
propagatedBuildInputs =
oldAttrs.propagetedBuildInputs
or []
++ [prev.intel-compute-runtime.drivers];
cmakeFlags = [
"GGML_NATIVE=true"
"BUILD_SHARED_LIBS=true"
"GGML_BLAS=true"
"GGML_SYCL=true"
"GGML_SYCL_F16=false"
"CMAKE_C_COMPILER=icx"
"CMAKE_CXX_COMPILER=icpx"
];
postInstall =
(oldAttrs.postInstall or "")
+ ''
mkdir -p "$out/bin"
cat << EOF > "$out/bin/ollama-wrapped"
#!/bin/sh
export LD_LIBRARY_PATH="${prev.intel-compute-runtime.drivers}/lib"
export OLLAMA_INTEL_GPU=1
export OLLAMA_NUM_GPU=999
export ZES_ENABLE_SYSMAN=1
export SYCL_CACHE_PERSISTENT=1
exec "$out/bin/ollama-base" "\$@"
EOF
chmod +x "$out/bin/ollama-wrapped"
mv $out/bin/ollama $out/bin/ollama-base
ln -s "$out/bin/ollama-wrapped" "$out/bin/ollama"
'';
});
})
];
}