From e470f49a5c36905e75e0cc725c7e3066654cb434 Mon Sep 17 00:00:00 2001 From: polygon Date: Sat, 16 Mar 2024 13:36:39 +0000 Subject: [PATCH] flake it 'til you make it --- flake.lock | 63 +++++++++++++++++++ flake.nix | 42 +++++++++++++ home-manager/common/.gitkeep | 0 home-manager/desktop/flake.lock | 48 -------------- home-manager/desktop/flake.nix | 29 --------- home-manager/desktop/home.nix | 5 +- hosts/twinkpad/configuration.nix | 6 +- modules/common/default.nix | 5 ++ {hosts => modules}/common/locales.nix | 5 +- {hosts/common => modules/desktop}/default.nix | 2 +- {hosts/common => modules/desktop}/sound.nix | 0 scripts/setup.sh | 34 ---------- 12 files changed, 121 insertions(+), 118 deletions(-) create mode 100644 flake.lock create mode 100644 flake.nix create mode 100644 home-manager/common/.gitkeep delete mode 100644 home-manager/desktop/flake.lock delete mode 100644 home-manager/desktop/flake.nix create mode 100644 modules/common/default.nix rename {hosts => modules}/common/locales.nix (87%) rename {hosts/common => modules/desktop}/default.nix (94%) rename {hosts/common => modules/desktop}/sound.nix (100%) delete mode 100755 scripts/setup.sh diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..5059830 --- /dev/null +++ b/flake.lock @@ -0,0 +1,63 @@ +{ + "nodes": { + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1710532761, + "narHash": "sha256-SUXGZNrXX05YA9G6EmgupxhOr3swI1gcxLUeDMUhrEY=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "206f457fffdb9a73596a4cb2211a471bd305243d", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1710451336, + "narHash": "sha256-pP86Pcfu3BrAvRO7R64x7hs+GaQrjFes+mEPowCfkxY=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "d691274a972b3165335d261cc4671335f5c67de9", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "nixpkgs-stable": { + "locked": { + "lastModified": 1710420202, + "narHash": "sha256-MvFKESbq4rUWuaf2RKPNYENaSZEw/jaCLo2gU6oREcM=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "878ef7d9721bee9f81f8a80819f9211ad1f993da", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-23.11", + "type": "indirect" + } + }, + "root": { + "inputs": { + "home-manager": "home-manager", + "nixpkgs": "nixpkgs", + "nixpkgs-stable": "nixpkgs-stable" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..0d2f3bf --- /dev/null +++ b/flake.nix @@ -0,0 +1,42 @@ +{ + description = "polygon's computer mess"; + + inputs = { + nixpkgs.url = "nixpkgs/nixos-unstable"; + nixpkgs-stable.url = "nixpkgs/nixos-23.11"; + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + + outputs = { + self, + nixpkgs, + nixpkgs-stable, + home-manager, + ... + } @ inputs: let + pkgs = nixpkgs.legacyPackages."x86_64-linux"; + system = "x86_64-linux"; + in { + + nixosConfigurations = { + + twinkpad = nixpkgs.lib.nixosSystem { + specialArgs = { + inherit inputs; + }; + inherit system; + modules = [ + ./hosts/twinkpad/configuration.nix + home-manager.nixosModules.home-manager { + home-manager.useGlobalPkgs = true; + home-manager.useUserPackages = true; + home-manager.users.polygon = import ./home-manager/desktop/home.nix; + } + ]; + }; + }; + }; +} \ No newline at end of file diff --git a/home-manager/common/.gitkeep b/home-manager/common/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/home-manager/desktop/flake.lock b/home-manager/desktop/flake.lock deleted file mode 100644 index 54225e5..0000000 --- a/home-manager/desktop/flake.lock +++ /dev/null @@ -1,48 +0,0 @@ -{ - "nodes": { - "home-manager": { - "inputs": { - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1710062421, - "narHash": "sha256-FiCNRfyUgJOLYIokLiFsfI7B+Zn9HDnOzFR3uVr5qsQ=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "36f873dfc8e2b6b89936ff3e2b74803d50447e0a", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "home-manager", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1709961763, - "narHash": "sha256-6H95HGJHhEZtyYA3rIQpvamMKAGoa8Yh2rFV29QnuGw=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "3030f185ba6a4bf4f18b87f345f104e6a6961f34", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "home-manager": "home-manager", - "nixpkgs": "nixpkgs" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/home-manager/desktop/flake.nix b/home-manager/desktop/flake.nix deleted file mode 100644 index 1b08637..0000000 --- a/home-manager/desktop/flake.nix +++ /dev/null @@ -1,29 +0,0 @@ -{ - description = "Home Manager configuration of polygon"; - - inputs = { - # Specify the source of Home Manager and Nixpkgs. - nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; - home-manager = { - url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; - }; - }; - - outputs = { nixpkgs, home-manager, ... }: - let - system = "x86_64-linux"; - pkgs = nixpkgs.legacyPackages.${system}; - in { - homeConfigurations."polygon" = home-manager.lib.homeManagerConfiguration { - inherit pkgs; - - # Specify your home configuration modules here, for example, - # the path to your home.nix. - modules = [ ./home.nix ]; - - # Optionally use extraSpecialArgs - # to pass through arguments to home.nix - }; - }; -} diff --git a/home-manager/desktop/home.nix b/home-manager/desktop/home.nix index f8b0dff..f88a4b6 100644 --- a/home-manager/desktop/home.nix +++ b/home-manager/desktop/home.nix @@ -13,7 +13,6 @@ # You should not change this value, even if you update Home Manager. If you do # want to update the value, then make sure to first check the Home Manager # release notes. - home.stateVersion = "23.11"; # Please read the comment before changing. nixpkgs.config.allowUnfree = true; # The home.packages option allows you to install Nix packages into your # environment. @@ -89,9 +88,11 @@ # /etc/profiles/per-user/polygon/etc/profile.d/hm-session-vars.sh # home.sessionVariables = { - EDITOR = "neovim"; + EDITOR = "nvim"; }; # Let Home Manager install and manage itself. programs.home-manager.enable = true; + home.sessionVariables.TZ = "Europe/Berlin"; + home.stateVersion = "23.11"; } diff --git a/hosts/twinkpad/configuration.nix b/hosts/twinkpad/configuration.nix index 276ed74..cc36c3f 100644 --- a/hosts/twinkpad/configuration.nix +++ b/hosts/twinkpad/configuration.nix @@ -8,7 +8,8 @@ imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix - ./../common + ./../../modules/common + ./../../modules/desktop ]; # enable flakes nix.settings.experimental-features = [ "nix-command" "flakes" ]; @@ -22,7 +23,6 @@ networking.networkmanager.enable = true; environment.pathsToLink = [ "/share/zsh" ]; environment.shells = [ "/home/polygon/.nix-profile/bin/zsh" ]; - # Set your time zone. # Enable the X11 windowing system. services.xserver.enable = true; @@ -42,7 +42,6 @@ # Enable CUPS to print documents. services.printing.enable = true; - # Define a user account. Don't forget to set a password with ‘passwd’. users.users.polygon = { isNormalUser = true; @@ -63,6 +62,7 @@ neovim wget kitty + git ]; # Some programs need SUID wrappers, can be configured further or are diff --git a/modules/common/default.nix b/modules/common/default.nix new file mode 100644 index 0000000..e95e1e0 --- /dev/null +++ b/modules/common/default.nix @@ -0,0 +1,5 @@ +{ + imports = [ + ./locales.nix + ]; +} diff --git a/hosts/common/locales.nix b/modules/common/locales.nix similarity index 87% rename from hosts/common/locales.nix rename to modules/common/locales.nix index 50bcded..8a5b92e 100644 --- a/hosts/common/locales.nix +++ b/modules/common/locales.nix @@ -20,5 +20,8 @@ }; time.timeZone = "Europe/Berlin"; - console.keyMap = "de"; + console = { + earlySetup = true; + keyMap = "de"; + }; } \ No newline at end of file diff --git a/hosts/common/default.nix b/modules/desktop/default.nix similarity index 94% rename from hosts/common/default.nix rename to modules/desktop/default.nix index 39ca30a..1ec089e 100644 --- a/hosts/common/default.nix +++ b/modules/desktop/default.nix @@ -2,4 +2,4 @@ imports = [ ./sound.nix ]; -} +} \ No newline at end of file diff --git a/hosts/common/sound.nix b/modules/desktop/sound.nix similarity index 100% rename from hosts/common/sound.nix rename to modules/desktop/sound.nix diff --git a/scripts/setup.sh b/scripts/setup.sh deleted file mode 100755 index 295a495..0000000 --- a/scripts/setup.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/sh - -echo "Select a machine:" -select machine in machines/*; do - if [ -n "$machine" ]; then - break - else - echo "Invalid selection." - fi -done - -sudo mv /etc/nixos /etc/nixos.bak -sudo mkdir /etc/nixos -sudo ln -s "$(pwd)/$machine/*" /etc/nixos - -read -p "Do you want to symlink home-manager? (y/n): " symlinkHomeManager -if [ "$symlinkHomeManager" = "y" ] || [ "$symlinkHomeManager" = "Y" ]; then - echo -e "\nSelect a home manager configuration:" - select config in home-manager/*; do - if [ -n "$config" ]; then - break - else - echo "Invalid selection." - fi - done - - mv ~/.config/home-manager ~/.config/home-manager.bak - ln -s "$(pwd)/$config" ~/.config/home-manager -else - echo "Skipped symlink for home-manager" -fi - -echo "Task completed successfully." -