From 77e9e90c6de12ed7167bf3c6ffd079cd8af8b4e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Thu, 19 Sep 2024 17:30:03 +0200 Subject: [PATCH 01/11] first version --- flake.nix | 1 + hosts/base/default.nix | 1 - hosts/work-ntb/default.nix | 8 ++++++- modules/dev/default.nix | 43 ------------------------------------ nixosModules/default.nix | 6 +++++ nixosModules/dev/default.nix | 29 ++++++++++++++++++++++++ nixosModules/dev/go.nix | 0 nixosModules/dev/ide.nix | 23 +++++++++++++++++++ nixosModules/dev/python.nix | 24 ++++++++++++++++++++ 9 files changed, 90 insertions(+), 45 deletions(-) delete mode 100644 modules/dev/default.nix create mode 100644 nixosModules/default.nix create mode 100644 nixosModules/dev/default.nix create mode 100644 nixosModules/dev/go.nix create mode 100644 nixosModules/dev/ide.nix create mode 100644 nixosModules/dev/python.nix diff --git a/flake.nix b/flake.nix index 2056ddd..bd33dcd 100644 --- a/flake.nix +++ b/flake.nix @@ -19,6 +19,7 @@ work-ntb = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ + ./nixosModules ./hosts/work-ntb inputs.nix-flatpak.nixosModules.nix-flatpak inputs.home-manager.nixosModules.home-manager diff --git a/hosts/base/default.nix b/hosts/base/default.nix index b909cf9..65a57f6 100644 --- a/hosts/base/default.nix +++ b/hosts/base/default.nix @@ -8,7 +8,6 @@ imports = [ # Include the results of the hardware scan. ../${hostname}/hardware-configuration.nix - ../../modules/dev ]; # Bootloader. diff --git a/hosts/work-ntb/default.nix b/hosts/work-ntb/default.nix index eb6b9eb..c57f037 100644 --- a/hosts/work-ntb/default.nix +++ b/hosts/work-ntb/default.nix @@ -4,7 +4,13 @@ ]; # My own modules configuration - krop.devtools.installIDE = true; + krop = { + ide = { + enable = true; + install-pycharm = true; + }; + python.install-older = true; + }; home-manager = { extraSpecialArgs = { inherit inputs; }; diff --git a/modules/dev/default.nix b/modules/dev/default.nix deleted file mode 100644 index e4f5078..0000000 --- a/modules/dev/default.nix +++ /dev/null @@ -1,43 +0,0 @@ -{ config, pkgs, lib, ... }@inputs: -let - cfg = config.krop.devtools; -in { - options.krop.devtools = { - installIDE = lib.mkOption { - type = lib.types.bool; - default = false; - example = true; - description = "Whether to install the ides"; - }; - installTools = lib.mkOption { - type = lib.types.bool; - default = true; - example = true; - description = "Whether to install the most used tools"; - }; - }; - config = let - ides = with pkgs; [ - jetbrains.pycharm-professional - zed-editor - vscodium - ]; - languages = with pkgs; [ - python3 - python311 - python310 - poetry - ]; - tools = with pkgs; [ - lazygit - lazydocker - micro-with-wl-clipboard - albert - openssl_3_3 - ]; - in { - environment.systemPackages = languages - ++ (lib.optionals cfg.installIDE ides) - ++ (lib.optionals cfg.installTools tools); - }; -} diff --git a/nixosModules/default.nix b/nixosModules/default.nix new file mode 100644 index 0000000..02090d4 --- /dev/null +++ b/nixosModules/default.nix @@ -0,0 +1,6 @@ +{...}: +{ + imports = [ + ./dev + ]; +} \ No newline at end of file diff --git a/nixosModules/dev/default.nix b/nixosModules/dev/default.nix new file mode 100644 index 0000000..cfa59e3 --- /dev/null +++ b/nixosModules/dev/default.nix @@ -0,0 +1,29 @@ +{ config, pkgs, lib, ... }@inputs: +let + cfg = config.krop.devtools; +in { + imports = [ + ./python.nix + ./ide.nix + ]; + options.krop.devtools = { + installTools = lib.mkOption { + type = lib.types.bool; + default = true; + example = true; + description = "Whether to install the most used tools"; + }; + }; + + config = let + tools = with pkgs; [ + lazygit + lazydocker + micro-with-wl-clipboard + albert + openssl_3_3 + ]; + in { + environment.systemPackages = tools; + }; +} diff --git a/nixosModules/dev/go.nix b/nixosModules/dev/go.nix new file mode 100644 index 0000000..e69de29 diff --git a/nixosModules/dev/ide.nix b/nixosModules/dev/ide.nix new file mode 100644 index 0000000..fc29d37 --- /dev/null +++ b/nixosModules/dev/ide.nix @@ -0,0 +1,23 @@ +{ config, pkgs, lib, ... }: +let + cfg = config.krop.ide; +in { + options.krop.ide = { + enable = lib.mkOption { + type = lib.types.bool; + default = lib.mkOptionDefault true; + example = true; + }; + install-pycharm = lib.mkOption { + type = lib.types.bool; + default = lib.mkOptionDefault false; + example = true; + }; + }; + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + zed-editor + vscodium + ] ++ lib.optionals cfg.install-pycharm [pkgs.jetbrains.pycharm-professional]; + }; +} \ No newline at end of file diff --git a/nixosModules/dev/python.nix b/nixosModules/dev/python.nix new file mode 100644 index 0000000..50e188b --- /dev/null +++ b/nixosModules/dev/python.nix @@ -0,0 +1,24 @@ +{ config, pkgs, lib, ... }: +let + cfg = config.krop.python; +in { + options.krop.python = { + enable = lib.mkOption { + type = lib.types.bool; + default = lib.mkOptionDefault false; + example = true; + }; + install-older = lib.mkOption { + type = lib.types.bool; + default = lib.mkOptionDefault true; + example = true; + }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + python3 + poetry + ] ++ lib.optionals cfg.install-older [python311 python310]; + }; +} \ No newline at end of file From c6e3daefbf65aa28b5fa8db35ae9819a596a4a37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Thu, 19 Sep 2024 17:44:40 +0200 Subject: [PATCH 02/11] started reformatting and added formatter --- flake.nix | 41 ++++++++-------- hosts/base/default.nix | 52 +++++++++++++-------- hosts/work-ntb/default.nix | 43 ++++++++++------- hosts/work-ntb/hardware-configuration.nix | 43 +++++++++++------ hosts/work-ntb/home.nix | 57 ++++++++++++----------- nixosModules/default.nix | 4 +- nixosModules/dev/default.nix | 56 ++++++++++++---------- nixosModules/dev/go.nix | 4 ++ nixosModules/dev/ide.nix | 51 +++++++++++--------- nixosModules/dev/python.nix | 56 +++++++++++++--------- 10 files changed, 243 insertions(+), 164 deletions(-) diff --git a/flake.nix b/flake.nix index bd33dcd..c88d47b 100644 --- a/flake.nix +++ b/flake.nix @@ -8,29 +8,32 @@ nix-flatpak.url = "github:gmodena/nix-flatpak"; home-manager = { - url = "github:nix-community/home-manager"; - inputs.nixpkgs.follows = "nixpkgs"; + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; }; }; - outputs = inputs@{ self, nixpkgs, ... }: { - # Please replace my-nixos with your hostname - nixosConfigurations = { + outputs = + inputs@{ self, nixpkgs, ... }: + { + # Please replace my-nixos with your hostname + nixosConfigurations = { work-ntb = nixpkgs.lib.nixosSystem { - system = "x86_64-linux"; - modules = [ - ./nixosModules - ./hosts/work-ntb - inputs.nix-flatpak.nixosModules.nix-flatpak - inputs.home-manager.nixosModules.home-manager - ]; - specialArgs = { - hostname = "work-ntb"; - }; - }; - extraSpecialArgs = { - inherit inputs; - }; + system = "x86_64-linux"; + modules = [ + ./nixosModules + ./hosts/work-ntb + inputs.nix-flatpak.nixosModules.nix-flatpak + inputs.home-manager.nixosModules.home-manager + ]; + specialArgs = { + hostname = "work-ntb"; + }; }; + extraSpecialArgs = { + inherit inputs; + }; + }; + formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style; }; } diff --git a/hosts/base/default.nix b/hosts/base/default.nix index 65a57f6..acbf4f3 100644 --- a/hosts/base/default.nix +++ b/hosts/base/default.nix @@ -2,13 +2,18 @@ # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). -{ config, pkgs, hostname, ... }: +{ + config, + pkgs, + hostname, + ... +}: { - imports = - [ # Include the results of the hardware scan. - ../${hostname}/hardware-configuration.nix - ]; + imports = [ + # Include the results of the hardware scan. + ../${hostname}/hardware-configuration.nix + ]; # Bootloader. boot.loader.systemd-boot.enable = true; @@ -68,8 +73,8 @@ # Enable CUPS to print documents. services.printing = { - enable = true; - drivers = [ pkgs.samsung-unified-linux-driver ]; + enable = true; + drivers = [ pkgs.samsung-unified-linux-driver ]; }; # Enable sound with pipewire. @@ -95,17 +100,21 @@ users.users.krop = { isNormalUser = true; description = "Jakub Kropacek"; - extraGroups = [ "networkmanager" "wheel" ]; + extraGroups = [ + "networkmanager" + "wheel" + ]; shell = pkgs.zsh; }; - # Allow unfree packages nixpkgs.config.allowUnfree = true; - # Enable flakes - nix.settings.experimental-features = [ "nix-command" "flakes" ]; + nix.settings.experimental-features = [ + "nix-command" + "flakes" + ]; # List packages installed in system profile. To search, run: # $ nix search wget @@ -120,13 +129,12 @@ mattermost-desktop gh gparted - dig + dig prismlauncher # REMOVE AND MOVE TO games module after refactoring gnome-extension-manager # DEBUG gnomeExtensions.grand-theft-focus ]; - programs = { tmux.enable = true; zsh.enable = true; @@ -141,14 +149,20 @@ services.flatpak = { enable = true; remotes = [ - { name = "flathub"; location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; } - { name = "flathub-beta"; location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo"; } + { + name = "flathub"; + location = "https://dl.flathub.org/repo/flathub.flatpakrepo"; + } + { + name = "flathub-beta"; + location = "https://flathub.org/beta-repo/flathub-beta.flatpakrepo"; + } ]; packages = [ - "org.gnome.World.PikaBackup" - "ca.desrt.dconf-editor" - "org.onlyoffice.desktopeditors" - "tv.kodi.Kodi" + "org.gnome.World.PikaBackup" + "ca.desrt.dconf-editor" + "org.onlyoffice.desktopeditors" + "tv.kodi.Kodi" ]; }; diff --git a/hosts/work-ntb/default.nix b/hosts/work-ntb/default.nix index c57f037..cb0799c 100644 --- a/hosts/work-ntb/default.nix +++ b/hosts/work-ntb/default.nix @@ -1,21 +1,32 @@ -{config, pkgs, inputs, ...}: { - imports = [ - (import ../base {inherit config pkgs; hostname = "work-ntb"; }) - ]; +{ + config, + pkgs, + inputs, + ... +}: +{ + imports = [ + (import ../base { + inherit config pkgs; + hostname = "work-ntb"; + }) + ]; - # My own modules configuration - krop = { - ide = { - enable = true; - install-pycharm = true; - }; - python.install-older = true; + # My own modules configuration + krop = { + ide = { + enable = true; + install-pycharm = true; }; + python.install-older = true; + }; - home-manager = { - extraSpecialArgs = { inherit inputs; }; - users = { - "krop" = import ./home.nix; - }; + home-manager = { + extraSpecialArgs = { + inherit inputs; }; + users = { + "krop" = import ./home.nix; + }; + }; } diff --git a/hosts/work-ntb/hardware-configuration.nix b/hosts/work-ntb/hardware-configuration.nix index 4275253..6d29069 100644 --- a/hosts/work-ntb/hardware-configuration.nix +++ b/hosts/work-ntb/hardware-configuration.nix @@ -1,28 +1,43 @@ # 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, ... }: +{ + config, + lib, + pkgs, + modulesPath, + ... +}: { - imports = - [ (modulesPath + "/installer/scan/not-detected.nix") - ]; + imports = [ + (modulesPath + "/installer/scan/not-detected.nix") + ]; - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ]; + boot.initrd.availableKernelModules = [ + "xhci_pci" + "ahci" + "usb_storage" + "sd_mod" + "rtsx_pci_sdmmc" + ]; boot.initrd.kernelModules = [ ]; boot.kernelModules = [ "kvm-intel" ]; boot.extraModulePackages = [ ]; - fileSystems."/" = - { device = "/dev/disk/by-uuid/360cfb7a-07d9-445b-83e2-6ef19bd55948"; - fsType = "ext4"; - }; + fileSystems."/" = { + device = "/dev/disk/by-uuid/360cfb7a-07d9-445b-83e2-6ef19bd55948"; + fsType = "ext4"; + }; - fileSystems."/boot" = - { device = "/dev/disk/by-uuid/5F8E-3C09"; - fsType = "vfat"; - options = [ "fmask=0077" "dmask=0077" ]; - }; + fileSystems."/boot" = { + device = "/dev/disk/by-uuid/5F8E-3C09"; + fsType = "vfat"; + options = [ + "fmask=0077" + "dmask=0077" + ]; + }; swapDevices = [ ]; diff --git a/hosts/work-ntb/home.nix b/hosts/work-ntb/home.nix index 40713cb..31dcc03 100644 --- a/hosts/work-ntb/home.nix +++ b/hosts/work-ntb/home.nix @@ -83,14 +83,14 @@ gtk = { enable = true; gtk3.extraConfig = { - Settings = '' + Settings = '' gtk-application-prefer-dark-theme=1 - ''; + ''; }; gtk4.extraConfig = { - Settings = '' + Settings = '' gtk-application-prefer-dark-theme=1 - ''; + ''; }; }; @@ -100,17 +100,20 @@ style.name = "adwaita-dark"; }; - programs.git = { enable = true; userName = "Jakub Kropáček"; userEmail = "kropikuba@gmail.com"; - includes = let workcfg = { - user = { - email = "jakub.kropacek@olc.cz"; - name = "Jakub Kropáček"; - }; - }; in [ + includes = + let + workcfg = { + user = { + email = "jakub.kropacek@olc.cz"; + name = "Jakub Kropáček"; + }; + }; + in + [ { condition = "gitdir:~/Repositories/OLC/**"; contents = workcfg; @@ -119,23 +122,23 @@ condition = "gitdir:~/Repositories/OLC-Hexpol/**"; contents = workcfg; } - ]; + ]; extraConfig = { - init = { - defaultBranch = "master"; - }; - push = { - autoSetupRemote = true; - }; - status = { - submoduleSummary = true; - }; - diff = { - submodule = "log"; - }; - core = { - autocrlf = "input"; - }; + init = { + defaultBranch = "master"; + }; + push = { + autoSetupRemote = true; + }; + status = { + submoduleSummary = true; + }; + diff = { + submodule = "log"; + }; + core = { + autocrlf = "input"; + }; }; }; diff --git a/nixosModules/default.nix b/nixosModules/default.nix index 02090d4..0fd9687 100644 --- a/nixosModules/default.nix +++ b/nixosModules/default.nix @@ -1,6 +1,6 @@ -{...}: +{ ... }: { imports = [ ./dev ]; -} \ No newline at end of file +} diff --git a/nixosModules/dev/default.nix b/nixosModules/dev/default.nix index cfa59e3..c9891b7 100644 --- a/nixosModules/dev/default.nix +++ b/nixosModules/dev/default.nix @@ -1,29 +1,37 @@ -{ config, pkgs, lib, ... }@inputs: +{ + config, + pkgs, + lib, + ... +}@inputs: let - cfg = config.krop.devtools; -in { - imports = [ - ./python.nix - ./ide.nix - ]; - options.krop.devtools = { - installTools = lib.mkOption { - type = lib.types.bool; - default = true; - example = true; - description = "Whether to install the most used tools"; - }; + cfg = config.krop.devtools; +in +{ + imports = [ + ./python.nix + ./ide.nix + ]; + options.krop.devtools = { + installTools = lib.mkOption { + type = lib.types.bool; + default = true; + example = true; + description = "Whether to install the most used tools"; }; + }; - config = let - tools = with pkgs; [ - lazygit - lazydocker - micro-with-wl-clipboard - albert - openssl_3_3 - ]; - in { - environment.systemPackages = tools; + config = + let + tools = with pkgs; [ + lazygit + lazydocker + micro-with-wl-clipboard + albert + openssl_3_3 + ]; + in + { + environment.systemPackages = tools; }; } diff --git a/nixosModules/dev/go.nix b/nixosModules/dev/go.nix index e69de29..26739a1 100644 --- a/nixosModules/dev/go.nix +++ b/nixosModules/dev/go.nix @@ -0,0 +1,4 @@ +{ + ... +}: +{ } diff --git a/nixosModules/dev/ide.nix b/nixosModules/dev/ide.nix index fc29d37..161622c 100644 --- a/nixosModules/dev/ide.nix +++ b/nixosModules/dev/ide.nix @@ -1,23 +1,32 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let - cfg = config.krop.ide; -in { - options.krop.ide = { - enable = lib.mkOption { - type = lib.types.bool; - default = lib.mkOptionDefault true; - example = true; - }; - install-pycharm = lib.mkOption { - type = lib.types.bool; - default = lib.mkOptionDefault false; - example = true; - }; - }; - config = lib.mkIf cfg.enable { - environment.systemPackages = with pkgs; [ - zed-editor - vscodium - ] ++ lib.optionals cfg.install-pycharm [pkgs.jetbrains.pycharm-professional]; + cfg = config.krop.ide; +in +{ + options.krop.ide = { + enable = lib.mkOption { + type = lib.types.bool; + default = true; + example = true; }; -} \ No newline at end of file + install-pycharm = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; + }; + }; + config = lib.mkIf cfg.enable { + environment.systemPackages = + with pkgs; + [ + zed-editor + vscodium + ] + ++ lib.optionals cfg.install-pycharm [ pkgs.jetbrains.pycharm-professional ]; + }; +} diff --git a/nixosModules/dev/python.nix b/nixosModules/dev/python.nix index 50e188b..ab730ae 100644 --- a/nixosModules/dev/python.nix +++ b/nixosModules/dev/python.nix @@ -1,24 +1,36 @@ -{ config, pkgs, lib, ... }: +{ + config, + pkgs, + lib, + ... +}: let - cfg = config.krop.python; -in { - options.krop.python = { - enable = lib.mkOption { - type = lib.types.bool; - default = lib.mkOptionDefault false; - example = true; - }; - install-older = lib.mkOption { - type = lib.types.bool; - default = lib.mkOptionDefault true; - example = true; - }; - }; - - config = lib.mkIf cfg.enable { - environment.systemPackages = with pkgs; [ - python3 - poetry - ] ++ lib.optionals cfg.install-older [python311 python310]; + cfg = config.krop.python; +in +{ + options.krop.python = { + enable = lib.mkOption { + type = lib.types.bool; + default = false; + example = true; }; -} \ No newline at end of file + install-older = lib.mkOption { + type = lib.types.bool; + default = true; + example = true; + }; + }; + + config = lib.mkIf cfg.enable { + environment.systemPackages = + with pkgs; + [ + python3 + poetry + ] + ++ lib.optionals cfg.install-older [ + python311 + python310 + ]; + }; +} From 9c2c168f9f5124a8da0389044ffa63f0f482faf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Fri, 20 Sep 2024 07:33:10 +0200 Subject: [PATCH 03/11] updated lock --- flake.lock | 6 +++--- flake.nix | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/flake.lock b/flake.lock index c115ba0..512a0ba 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1726611255, - "narHash": "sha256-/bxaYvIK6/d3zqpW26QFS0rqfd0cO4qreSNWvYLTl/w=", + "lastModified": 1726785354, + "narHash": "sha256-SLorVhoorZwjM1aS04bBX4fufEXIfkMdAGkj9bu2QAQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "d2493de5cd1da06b6a4c3e97f4e7d5dd791df457", + "rev": "1786e2afdbc48e9038f7cff585069736e1d0ed44", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index c88d47b..015c293 100644 --- a/flake.nix +++ b/flake.nix @@ -21,10 +21,10 @@ work-ntb = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ - ./nixosModules + ./nixosModules # TODO: move to base ./hosts/work-ntb - inputs.nix-flatpak.nixosModules.nix-flatpak - inputs.home-manager.nixosModules.home-manager + inputs.nix-flatpak.nixosModules.nix-flatpak # TODO: move to base + inputs.home-manager.nixosModules.home-manager # TODO: move to base ]; specialArgs = { hostname = "work-ntb"; From b9fe764c475749c6c084c51f66dd8c9c877a2a7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Fri, 20 Sep 2024 14:44:50 +0200 Subject: [PATCH 04/11] added joplin --- hosts/base/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/hosts/base/default.nix b/hosts/base/default.nix index acbf4f3..aeee15d 100644 --- a/hosts/base/default.nix +++ b/hosts/base/default.nix @@ -133,6 +133,7 @@ prismlauncher # REMOVE AND MOVE TO games module after refactoring gnome-extension-manager # DEBUG gnomeExtensions.grand-theft-focus + joplin-desktop ]; programs = { From 9f9ba9ac3dd1b037d3effd80ccb6203312902bdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Fri, 20 Sep 2024 23:15:30 +0200 Subject: [PATCH 05/11] moved everything to base --- flake.nix | 3 +-- hosts/base/default.nix | 9 ++++----- hosts/work-ntb/default.nix | 8 ++++---- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/flake.nix b/flake.nix index 015c293..17dc2d0 100644 --- a/flake.nix +++ b/flake.nix @@ -23,8 +23,7 @@ modules = [ ./nixosModules # TODO: move to base ./hosts/work-ntb - inputs.nix-flatpak.nixosModules.nix-flatpak # TODO: move to base - inputs.home-manager.nixosModules.home-manager # TODO: move to base + ./hosts/base ]; specialArgs = { hostname = "work-ntb"; diff --git a/hosts/base/default.nix b/hosts/base/default.nix index aeee15d..d31db67 100644 --- a/hosts/base/default.nix +++ b/hosts/base/default.nix @@ -5,21 +5,20 @@ { config, pkgs, - hostname, ... -}: +}@extraInputs: { + imports = [ - # Include the results of the hardware scan. - ../${hostname}/hardware-configuration.nix + extraInputs.inputs.nix-flatpak.nixosModules.nix-flatpak # TODO: move to base + extraInputs.inputs.home-manager.nixosModules.home-manager # TODO: move to base ]; # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; - networking.hostName = hostname; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. Not needed if using GNOME # Configure network proxy if necessary diff --git a/hosts/work-ntb/default.nix b/hosts/work-ntb/default.nix index cb0799c..fdf1835 100644 --- a/hosts/work-ntb/default.nix +++ b/hosts/work-ntb/default.nix @@ -6,12 +6,12 @@ }: { imports = [ - (import ../base { - inherit config pkgs; - hostname = "work-ntb"; - }) + # Include the results of the hardware scan. + ./hardware-configuration.nix ]; + networking.hostName = "work-ntb"; # Define your hostname. + # My own modules configuration krop = { ide = { From ff60f0d25c7933a4be0b369cc946664bff1fcdcf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Fri, 20 Sep 2024 23:18:15 +0200 Subject: [PATCH 06/11] changed --- flake.nix | 5 +---- hosts/base/default.nix | 6 +++--- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/flake.nix b/flake.nix index 17dc2d0..a8aef53 100644 --- a/flake.nix +++ b/flake.nix @@ -25,12 +25,9 @@ ./hosts/work-ntb ./hosts/base ]; - specialArgs = { - hostname = "work-ntb"; - }; }; extraSpecialArgs = { - inherit inputs; + inherit (inputs) home-manager nix-flatpak; }; }; formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style; diff --git a/hosts/base/default.nix b/hosts/base/default.nix index d31db67..bb1eebe 100644 --- a/hosts/base/default.nix +++ b/hosts/base/default.nix @@ -6,13 +6,13 @@ config, pkgs, ... -}@extraInputs: +}@inputs: { imports = [ - extraInputs.inputs.nix-flatpak.nixosModules.nix-flatpak # TODO: move to base - extraInputs.inputs.home-manager.nixosModules.home-manager # TODO: move to base + inputs.nix-flatpak.nixosModules.nix-flatpak # TODO: move to base + inputs.home-manager.nixosModules.home-manager # TODO: move to base ]; # Bootloader. From 932002fb862820edb8db85551ad7d5ed9faf8608 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Fri, 20 Sep 2024 23:44:08 +0200 Subject: [PATCH 07/11] fixed --- flake.nix | 5 +---- hosts/base/default.nix | 29 +++++++++++++++-------------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/flake.nix b/flake.nix index a8aef53..cf2eabb 100644 --- a/flake.nix +++ b/flake.nix @@ -21,13 +21,10 @@ work-ntb = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; modules = [ - ./nixosModules # TODO: move to base ./hosts/work-ntb ./hosts/base ]; - }; - extraSpecialArgs = { - inherit (inputs) home-manager nix-flatpak; + specialArgs = { inherit inputs; }; }; }; formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style; diff --git a/hosts/base/default.nix b/hosts/base/default.nix index bb1eebe..eef5204 100644 --- a/hosts/base/default.nix +++ b/hosts/base/default.nix @@ -5,26 +5,25 @@ { config, pkgs, + inputs, ... -}@inputs: +}: { imports = [ - inputs.nix-flatpak.nixosModules.nix-flatpak # TODO: move to base inputs.home-manager.nixosModules.home-manager # TODO: move to base + inputs.nix-flatpak.nixosModules.nix-flatpak # TODO: move to base + ../../nixosModules ]; # Bootloader. - boot.loader.systemd-boot.enable = true; - boot.loader.efi.canTouchEfiVariables = true; - + boot.loader = { + systemd-boot.enable = true; + efi.canTouchEfiVariables = true; + }; # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. Not needed if using GNOME - # 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; @@ -47,11 +46,13 @@ }; # Enable the X11 windowing system. - services.xserver.enable = true; - - # Enable the GNOME Desktop Environment. - services.xserver.displayManager.gdm.enable = true; - services.xserver.desktopManager.gnome.enable = true; + services.xserver = { + enable = true; + # Enable the GNOME Desktop Environment. + displayManager.gdm.enable = true; + desktopManager.gnome.enable = true; + }; + services.gnome.gnome-browser-connector.enable = true; environment.gnome.excludePackages = with pkgs; [ From 87a39426a42f4b49f91ff97f4b5323a65ed12ee2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Fri, 20 Sep 2024 23:44:27 +0200 Subject: [PATCH 08/11] reformat --- flake.nix | 4 +++- hosts/base/default.nix | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/flake.nix b/flake.nix index cf2eabb..f45ff9c 100644 --- a/flake.nix +++ b/flake.nix @@ -24,7 +24,9 @@ ./hosts/work-ntb ./hosts/base ]; - specialArgs = { inherit inputs; }; + specialArgs = { + inherit inputs; + }; }; }; formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style; diff --git a/hosts/base/default.nix b/hosts/base/default.nix index eef5204..70ef43a 100644 --- a/hosts/base/default.nix +++ b/hosts/base/default.nix @@ -52,7 +52,7 @@ displayManager.gdm.enable = true; desktopManager.gnome.enable = true; }; - + services.gnome.gnome-browser-connector.enable = true; environment.gnome.excludePackages = with pkgs; [ From 61335826af45a16d3b950d970c020f53d2e9dc73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Sun, 22 Sep 2024 21:36:02 +0200 Subject: [PATCH 09/11] added lenar --- flake.nix | 13 ++++ hosts/lenar/default.nix | 32 +++++++++ hosts/lenar/disko.nix | 53 +++++++++++++++ hosts/lenar/home.nix | 147 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 245 insertions(+) create mode 100644 hosts/lenar/default.nix create mode 100644 hosts/lenar/disko.nix create mode 100644 hosts/lenar/home.nix diff --git a/flake.nix b/flake.nix index f45ff9c..f9b403d 100644 --- a/flake.nix +++ b/flake.nix @@ -11,6 +11,8 @@ url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; + + disko.url = "github:nix-community/disko"; }; outputs = @@ -28,6 +30,17 @@ inherit inputs; }; }; + lenar = nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; + modules = [ + ./hosts/lenar + ./hosts/base + inputs.disko.nixosModules.disko + ]; + specialArgs = { + inherit inputs; + }; + }; }; formatter.x86_64-linux = nixpkgs.legacyPackages.x86_64-linux.nixfmt-rfc-style; }; diff --git a/hosts/lenar/default.nix b/hosts/lenar/default.nix new file mode 100644 index 0000000..5815b2a --- /dev/null +++ b/hosts/lenar/default.nix @@ -0,0 +1,32 @@ +{ + config, + pkgs, + inputs, + ... +}: +{ + imports = [ + # Include the results of the hardware scan. + ./hardware-configuration.nix + ]; + + networking.hostName = "lenar"; # Define your hostname. + + # My own modules configuration + krop = { + ide = { + enable = true; + install-pycharm = true; + }; + python.install-older = true; + }; + + home-manager = { + extraSpecialArgs = { + inherit inputs; + }; + users = { + "krop" = import ./home.nix; + }; + }; +} diff --git a/hosts/lenar/disko.nix b/hosts/lenar/disko.nix new file mode 100644 index 0000000..8a35c81 --- /dev/null +++ b/hosts/lenar/disko.nix @@ -0,0 +1,53 @@ +{ + disko.devices = { + disk = { + main = { + type = "disk"; + device = "/dev/nvme0n1"; + content = { + type = "gpt"; + partitions = { + ESP = { + priority = 1; + name = "ESP"; + start = "1M"; + end = "128M"; + type = "EF00"; + content = { + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + }; + root = { + size = "100%"; + content = { + type = "btrfs"; + extraArgs = [ "-f" ]; # Override existing partition + # Subvolumes must set a mountpoint in order to be mounted, + # unless their parent is mounted + subvolumes = { + # Subvolume name is different from mountpoint + "/rootfs" = { + mountpoint = "/"; + }; + # Subvolume name is the same as the mountpoint + "/home" = { + mountOptions = [ "compress=zstd" ]; + mountpoint = "/home"; + }; + # Parent is not mounted so the mountpoint must be set + "/nix" = { + mountOptions = [ "compress=zstd" "noatime" ]; + mountpoint = "/nix"; + }; + }; + mountpoint = "/partition-root"; + }; + }; + }; + }; + }; + }; + }; +} \ No newline at end of file diff --git a/hosts/lenar/home.nix b/hosts/lenar/home.nix new file mode 100644 index 0000000..31dcc03 --- /dev/null +++ b/hosts/lenar/home.nix @@ -0,0 +1,147 @@ +{ config, pkgs, ... }: + +{ + home.username = "krop"; + home.homeDirectory = "/home/krop"; + + # 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 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 = "24.05"; # Please read the comment before changing. + + # The home.packages option allows you to install Nix packages into your + # environment. + home.packages = with pkgs; [ + gnomeExtensions.grand-theft-focus + # # Adds the 'hello' command to your environment. It prints a friendly + # # "Hello, world!" when run. + # hello + + # # It is sometimes useful to fine-tune packages, for example, by applying + # # overrides. You can do that directly here, just don't forget the + # # parentheses. Maybe you want to install Nerd Fonts with a limited number of + # # fonts? + # (nerdfonts.override { fonts = [ "FantasqueSansMono" ]; }) + + # # You can also create simple shell scripts directly inside your + # # configuration. For example, this adds a command 'my-hello' to your + # # environment: + # (writeShellScriptBin "my-hello" '' + # echo "Hello, ${config.home.username}!" + # '') + ]; + + # Home Manager is pretty good at managing dotfiles. The primary way to manage + # plain files is through 'home.file'. + home.file = { + # # Building this configuration will create a copy of 'dotfiles/screenrc' in + # # the Nix store. Activating the configuration will then make '~/.screenrc' a + # # symlink to the Nix store copy. + # ".screenrc".source = dotfiles/screenrc; + + # # You can also set the file content immediately. + # ".gradle/gradle.properties".text = '' + # org.gradle.console=verbose + # org.gradle.daemon.idletimeout=3600000 + # ''; + }; + + # Home Manager can also manage your environment variables through + # 'home.sessionVariables'. These will be explicitly sourced when using a + # shell provided by Home Manager. If you don't want to manage your shell + # through Home Manager then you have to manually source 'hm-session-vars.sh' + # located at either + # + # ~/.nix-profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # ~/.local/state/nix/profiles/profile/etc/profile.d/hm-session-vars.sh + # + # or + # + # /etc/profiles/per-user/krop/etc/profile.d/hm-session-vars.sh + # + home.sessionVariables = { + # EDITOR = "emacs"; + }; + + dconf = { + enable = true; + settings."org/gnome/shell" = { + disable-user-extensions = false; + enabled-extensions = with pkgs.gnomeExtensions; [ + grand-theft-focus.extensionUuid + ]; + }; + }; + + gtk = { + enable = true; + gtk3.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + gtk4.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + }; + + qt = { + enable = true; + platformTheme.name = "adwaita"; # TODO: fix themes + style.name = "adwaita-dark"; + }; + + programs.git = { + enable = true; + userName = "Jakub Kropáček"; + userEmail = "kropikuba@gmail.com"; + includes = + let + workcfg = { + user = { + email = "jakub.kropacek@olc.cz"; + name = "Jakub Kropáček"; + }; + }; + in + [ + { + condition = "gitdir:~/Repositories/OLC/**"; + contents = workcfg; + } + { + condition = "gitdir:~/Repositories/OLC-Hexpol/**"; + contents = workcfg; + } + ]; + extraConfig = { + init = { + defaultBranch = "master"; + }; + push = { + autoSetupRemote = true; + }; + status = { + submoduleSummary = true; + }; + diff = { + submodule = "log"; + }; + core = { + autocrlf = "input"; + }; + }; + }; + + # Let Home Manager install and manage itself. + programs.home-manager.enable = true; +} From 8b380261caffd5ae4678f50cd9014aa583a682e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Sun, 22 Sep 2024 23:53:50 +0200 Subject: [PATCH 10/11] added hw-conf --- flake.nix | 1 - hosts/lenar/default.nix | 2 ++ hosts/lenar/hardware-configuration.nix | 22 ++++++++++++++++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 hosts/lenar/hardware-configuration.nix diff --git a/flake.nix b/flake.nix index f9b403d..e5244e9 100644 --- a/flake.nix +++ b/flake.nix @@ -35,7 +35,6 @@ modules = [ ./hosts/lenar ./hosts/base - inputs.disko.nixosModules.disko ]; specialArgs = { inherit inputs; diff --git a/hosts/lenar/default.nix b/hosts/lenar/default.nix index 5815b2a..01a4b3c 100644 --- a/hosts/lenar/default.nix +++ b/hosts/lenar/default.nix @@ -8,6 +8,8 @@ imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix + inputs.disko.nixosModules.disko + ./disko.nix ]; networking.hostName = "lenar"; # Define your hostname. diff --git a/hosts/lenar/hardware-configuration.nix b/hosts/lenar/hardware-configuration.nix new file mode 100644 index 0000000..39024d8 --- /dev/null +++ b/hosts/lenar/hardware-configuration.nix @@ -0,0 +1,22 @@ +{ config, lib, pkgs, modulesPath, ... }: + +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "vmd" "nvme" "usb_storage" "sd_mod" "sdhci_pci" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-intel" ]; + boot.extraModulePackages = [ ]; + + # 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..useDHCP`. + networking.useDHCP = lib.mkDefault true; + # networking.interfaces.wlo1.useDHCP = lib.mkDefault true; + + nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; + hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; +} \ No newline at end of file From a7e3cb989405beb0f68d3c0a0ee7bd82c76c2e77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Krop=C3=A1=C4=8Dek?= Date: Sun, 22 Sep 2024 23:53:59 +0200 Subject: [PATCH 11/11] locked --- flake.lock | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/flake.lock b/flake.lock index 512a0ba..a5b8c40 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,23 @@ { "nodes": { + "disko": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1726842196, + "narHash": "sha256-u9h03JQUuQJ607xmti9F9Eh6E96kKUAGP+aXWgwm70o=", + "owner": "nix-community", + "repo": "disko", + "rev": "51994df8ba24d5db5459ccf17b6494643301ad28", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "disko", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -36,6 +54,22 @@ } }, "nixpkgs": { + "locked": { + "lastModified": 1725194671, + "narHash": "sha256-tLGCFEFTB5TaOKkpfw3iYT9dnk4awTP/q4w+ROpMfuw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "b833ff01a0d694b910daca6e2ff4a3f26dee478c", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_2": { "locked": { "lastModified": 1726583932, "narHash": "sha256-zACxiQx8knB3F8+Ze+1BpiYrI+CbhxyWpcSID9kVhkQ=", @@ -53,9 +87,10 @@ }, "root": { "inputs": { + "disko": "disko", "home-manager": "home-manager", "nix-flatpak": "nix-flatpak", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "stable": "stable" } },