nix: use unstable and add home-manager

This commit is contained in:
2023-09-21 11:10:43 +02:00
parent 627b92a611
commit 37b5eafb42
4 changed files with 75 additions and 41 deletions

View File

@ -2,14 +2,22 @@
# 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, pkgs, ... }:
let python-packages = ps: with ps; [ ];
in rec {
imports = [ # Include the results of the hardware scan.
imports = [
./hardware-configuration.nix
inputs.home-manager.nixosModules.home-manager
];
home-manager = {
extraSpecialArgs = { inherit inputs; };
useGlobalPkgs = true;
useUserPackages = true;
users.julian = import ./home.nix;
};
# Bootloader
# Use this for simple nix boot menu, if no dual boot required
boot.loader.systemd-boot.enable = true;
@ -84,7 +92,7 @@ in rec {
services.xserver.windowManager.i3.extraPackages = with pkgs; [
rofi
i3lock
unstable.i3status-rust
i3status-rust
nitrogen
];
@ -140,7 +148,7 @@ in rec {
makemkv
audacity
gnome.cheese
unstable.zoom-us
zoom-us
qutebrowser
unetbootin
@ -152,6 +160,8 @@ in rec {
];
};
programs.zsh.enable = true;
users.groups.julian = { gid = 1000; };
# users.groups.wolfi = { gid = 1001; };
@ -166,9 +176,7 @@ in rec {
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# nixpkgs.config.packageOverrides = pkgs: {
# unstable = import <nixos-unstable> { config = config.nixpkgs.config; };
# };
nixpkgs.config.nvidia.acceptLicense = true;
environment.etc."manual-links/xfce4-notifyd".source =
"${pkgs.xfce.xfce4-notifyd}/lib/xfce4/notifyd/xfce4-notifyd";
@ -257,7 +265,6 @@ in rec {
python3
black
libnotify
# unstable.tor-browser-bundle-bin
libclang
libreoffice
killall
@ -326,7 +333,7 @@ in rec {
})
];
fonts.fonts = with pkgs; [
fonts.packages = with pkgs; [
(nerdfonts.override { fonts = [ "FiraCode" ]; })
font-awesome
dejavu_fonts

42
nix/flake.lock generated
View File

@ -16,6 +16,26 @@
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1695224363,
"narHash": "sha256-+hfjJLUMck5G92RVFDZA7LWkR3kOxs5zQ7RPW9t3eM8=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "408ba13188ff9ce309fa2bdd2f81287d79773b00",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "home-manager",
"type": "github"
}
},
"nix-matlab": {
"inputs": {
"flake-compat": "flake-compat",
@ -49,7 +69,7 @@
"type": "indirect"
}
},
"nixpkgs-unstable": {
"nixpkgs_2": {
"locked": {
"lastModified": 1694959747,
"narHash": "sha256-CXQ2MuledDVlVM5dLC4pB41cFlBWxRw4tCBsFrq3cRk=",
@ -59,31 +79,17 @@
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1688392541,
"narHash": "sha256-lHrKvEkCPTUO+7tPfjIcb7Trk6k31rz18vkyqmkeJfY=",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"rev": "ea4c80b39be4c09702b0cb3b42eab59e2ba4f24b",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-22.11",
"type": "indirect"
}
},
"root": {
"inputs": {
"home-manager": "home-manager",
"nix-matlab": "nix-matlab",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable"
"nixpkgs": "nixpkgs_2"
}
}
},

View File

@ -1,29 +1,24 @@
{
inputs.nixpkgs.url = "nixpkgs/nixos-22.11";
inputs.nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
inputs.home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
inputs.nix-matlab.url = "gitlab:doronbehar/nix-matlab";
# inputs.home-manager.url = "github:nix-community/home-manager";
outputs = { self, nixpkgs, nixpkgs-unstable, nix-matlab, ... }@attrs:
outputs = { self, nixpkgs, home-manager, nix-matlab, ... }@inputs:
let
system = "x86_64-linux";
overlay-unstable = final: prev: {
# unstable = nixpkgs-unstable.legacyPackages.${prev.system};
# use this variant if unfree packages are needed:
unstable = import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
};
};
in {
nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
inherit system;
specialArgs = attrs;
# inherit system;
specialArgs = { inherit inputs system; };
modules = [
# Overlays-module makes "pkgs.unstable" available in configuration.nix
({ config, pkgs, ... }: {
nixpkgs.overlays = [ overlay-unstable nix-matlab.overlay ];
nixpkgs.overlays = [ nix-matlab.overlay ];
})
./configuration.nix
];

26
nix/home.nix Normal file
View File

@ -0,0 +1,26 @@
{ config, pkgs, ... }:
{
# Home Manager needs a bit of information about you and the
# paths it should manage.
home.username = "julian";
home.homeDirectory = "/home/julian";
# This value determines the Home Manager release that your
# configuration is compatible with. This helps avoid breakage
# when a new Home Manager release introduces backwards
# incompatible changes.
#
# You can update Home Manager without changing this value. See
# the Home Manager release notes for a list of state version
# changes in each release.
home.stateVersion = "23.05";
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
home.packages = [
# pkgs.cowsay
];
}