Compare commits

...

6 commits

5 changed files with 87 additions and 33 deletions

56
flake.nix Normal file
View file

@ -0,0 +1,56 @@
{
description = "NixOS system flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11";
nixos-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
home-manager = {
url = "github:nix-community/home-manager/release-22.11";
inputs.nixpkgs.follows = "nixpkgs";
};
nur.url = "github:nix-community/NUR";
# TODO: possible make this a flake as well
mysecrets = {
flake = false;
url = "git+ssh://gitea@git.orlives.de:2342/schmittlauch/home-manager_secrets.git";
};
};
outputs =
{ self, nixpkgs, nur, ... }@inputs:
let
system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system};
in
{
nixosConfigurations.thinknix = nixpkgs.lib.nixosSystem {
inherit system;
modules = [ ./nixos/configuration.nix ];
# necessary to make the top-level inputs available to system configuration
specialArgs = { inherit inputs; };
};
homeConfigurations.spiollinux = inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
{
imports = [
nur.hmModules.nur
./home/home.nix
];
# extends the home config
home.username = "spiollinux";
home.homeDirectory = "/home/spiollinux";
}
];
# Optionally use extraSpecialArgs
# to pass through arguments to home.nix
extraSpecialArgs = {
inherit inputs;
};
};
};
}

View file

@ -1,7 +1,4 @@
let { lib, ...}:
lib = (import <nixpkgs> {}).lib;
in
{ {
firefox.enablePlasmaBrowserIntegration = true; firefox.enablePlasmaBrowserIntegration = true;

View file

@ -1,12 +1,9 @@
{ pkgs, ... }: { pkgs, inputs, config, ... }:
with pkgs; with pkgs;
let let
# nix-channel --add https://nixos.org/channels/nixos-unstable nixos-unstable # nix-channel --add https://nixos.org/channels/nixos-unstable nixos-unstable
unstable = import <nixos-unstable> { }; unstable = inputs.nixos-unstable;
# nix-channel --add https://github.com/nix-community/NUR/archive/master.tar.gz NUR
nur = import <NUR> { inherit pkgs; };
myNur = nur.repos.schmittlauch;
desktopApps = [ desktopApps = [
firefox firefox
@ -122,7 +119,7 @@ let
reptyr # re-bind running program to other tty reptyr # re-bind running program to other tty
xclip xclip
unzip unzip
myNur.lolcommits # from NUR config.nur.repos.schmittlauch.lolcommits # from NUR
]; ];
nixHelpers = [ nixHelpers = [
@ -248,7 +245,7 @@ let
(iosevka-bin.override { (iosevka-bin.override {
variant = "curly-slab"; variant = "curly-slab";
}) })
myNur.vollkorn config.nur.repos.schmittlauch.vollkorn
# TODO: humor-sans # TODO: humor-sans
]; ];
@ -260,6 +257,8 @@ let
in in
{ {
nixpkgs.overlays = (import ./overlays.nix);
home.packages = home.packages =
desktopApps desktopApps
++ latexApps ++ latexApps
@ -276,7 +275,7 @@ in
programs.home-manager.enable = true; programs.home-manager.enable = true;
programs.home-manager.path = "$HOME/.nix-defexpr/channels/home-manager"; programs.home-manager.path = "$HOME/.nix-defexpr/channels/home-manager";
home.stateVersion = "18.09"; home.stateVersion = "22.11";
programs.direnv = programs.direnv =
{ {
@ -302,7 +301,7 @@ in
enable = true; enable = true;
# ssh host config # ssh host config
matchBlocks = matchBlocks =
import ./secrets/ssh_hosts.nix; import "${inputs.mysecrets}/ssh_hosts.nix";
}; };
programs.tmux = { programs.tmux = {
@ -331,7 +330,7 @@ in
fonts.fontconfig.enable = true; fonts.fontconfig.enable = true;
programs.git = programs.git =
let contacts = import ./secrets/contacts.nix; let contacts = import "${inputs.mysecrets}/contacts.nix";
in in
{ {
enable = true; enable = true;

View file

@ -2,10 +2,10 @@
# 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, ... }: { config, pkgs, lib, inputs, ... }:
let let
unstable = import <nixos-unstable> { }; unstable = inputs.nixos-unstable;
localfork = import /home/spiollinux/src/nixpkgs { }; localfork = import /home/spiollinux/src/nixpkgs { };
in in
@ -234,8 +234,14 @@ in
# Enable all sysrq functions (useful to recover from some issues): # Enable all sysrq functions (useful to recover from some issues):
boot.kernel.sysctl."kernel.sysrq" = 1; # NixOS default: 16 (only the sync command) boot.kernel.sysctl."kernel.sysrq" = 1; # NixOS default: 16 (only the sync command)
nix = {
# expose all flake inputs through nix Path and registry
registry = (lib.mapAttrs (_: value: { flake = value; }) inputs) // {
nixpkgs.flake = inputs.nixpkgs;
};
nixPath = lib.mapAttrsToList (key: value: "${key}=${value.to.path}") config.nix.registry;
# keep build-time deps around for offline-rebuilding # keep build-time deps around for offline-rebuilding
nix.settings = { settings = {
# keep around all inputs necessary for offline-rebuilding the system # keep around all inputs necessary for offline-rebuilding the system
keep-outputs = true; keep-outputs = true;
keep-derivations = true; keep-derivations = true;
@ -244,6 +250,7 @@ in
# use all cores for building # use all cores for building
cores = 0; cores = 0;
}; };
};
# override tmpdir for daemon # override tmpdir for daemon
#systemd.services.nix-daemon.environment.TMPDIR = "/var/tmp"; #systemd.services.nix-daemon.environment.TMPDIR = "/var/tmp";

View file

@ -1,4 +1,4 @@
{ config, lib, pkgs, ... }: { config, lib, pkgs, modulesPath, inputs, ... }:
let let
@ -7,13 +7,8 @@ in
{ {
imports = imports =
[ [
<nixpkgs/nixos/modules/installer/scan/not-detected.nix> (modulesPath + "/installer/scan/not-detected.nix")
( (inputs.nixos-hardware + "/lenovo/thinkpad/t440s")
builtins.fetchGit {
url = "https://github.com/NixOS/nixos-hardware";
rev = "a4bc66709604ab78abc575b60baa6d23ae027a59";
} + "/lenovo/thinkpad/t440s"
)
]; ];
boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; boot.initrd.availableKernelModules = [ "xhci_pci" "ehci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];