From edab660ee9329244ef17cd3593da10f7052cb83e Mon Sep 17 00:00:00 2001 From: aaron Date: Fri, 21 Nov 2025 18:39:22 +0100 Subject: [PATCH] refactor: clean up config --- flake.nix | 13 +++++- hosts/default/configuration.nix | 23 ++++++---- hosts/default/home.nix | 74 ++++++--------------------------- 3 files changed, 38 insertions(+), 72 deletions(-) diff --git a/flake.nix b/flake.nix index 2268677..275ef53 100644 --- a/flake.nix +++ b/flake.nix @@ -2,25 +2,34 @@ description = "0x29a NixOS flake config"; inputs = { + + # the main nix package collection nixpkgs = { url = "github:nixos/nixpkgs/nixos-unstable"; }; + + # home manager for dotfiles home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; + }; outputs = { self, nixpkgs, home-manager, ... }@inputs: { + + # nixos system config nixosConfigurations.default = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = {inherit inputs;}; + modules = [ + # import host specific configs ./hosts/default/configuration.nix + # import host specific hardware configs ./hosts/default/hardware-configuration.nix - { home-manager.users.aaron = import ./hosts/default/home.nix; } - home-manager.nixosModules.default ]; }; }; + } diff --git a/hosts/default/configuration.nix b/hosts/default/configuration.nix index f0ffe50..0d8252d 100644 --- a/hosts/default/configuration.nix +++ b/hosts/default/configuration.nix @@ -58,23 +58,28 @@ keyMap = "de_CH-latin1"; }; - # xserver config + # window manager configs services.xserver = { enable = true; xkb.layout = "ch"; xkb.options = "eurosign:e,caps:escape"; - windowManager.i3 = { + + windowManager.qtile = { enable = true; - extraPackages = with pkgs; [ - dmenu - i3status + extraPackages = python3Packages: with python3Packages; [ + qtile-extras ]; }; }; - - # window manager configs - services.displayManager.defaultSession = "none+i3"; - programs.i3lock.enable = true; + + #services.displayManager.lightdm.enable = true; + #services.desktopManager.session = [ { + # name = "qtile"; + # start = '' + # exec ${pkgs.qtile}/bin/qtile start + # ''; + #} ]; + environment.pathsToLink = [ "/libexec" ]; environment.variables.EDITOR = "vim"; diff --git a/hosts/default/home.nix b/hosts/default/home.nix index 892a309..9426234 100644 --- a/hosts/default/home.nix +++ b/hosts/default/home.nix @@ -1,39 +1,12 @@ -{ config, pkgs, ... }: +{ config, pkgs, inputs, ... }: { - # Home Manager needs a bit of information about you and the paths it should - # manage. + # user config home.username = "aaron"; home.homeDirectory = "/home/aaron"; - # 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 = "25.05"; # Please read the comment before changing. - - # The home.packages option allows you to install Nix packages into your - # environment. + # packages home.packages = with pkgs; [ - # # Adds the 'hello' command to your environment. It prints a friendly - # # "Hello, world!" when run. - # pkgs.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? - # (pkgs.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: - # (pkgs.writeShellScriptBin "my-hello" '' - # echo "Hello, ${config.home.username}!" - # '') fastfetch zip xz @@ -72,41 +45,20 @@ userEmail = "aaron@0x29a.ch"; }; - # 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 - # ''; + # deploy qtile config + home.file."qtile-config" = { + target = ".config/qtile/config.py"; + source = "${inputs.qtile-config}/qtile_config/config.py"; + force = true; }; - # 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/aaron/etc/profile.d/hm-session-vars.sh - # home.sessionVariables = { - # EDITOR = "emacs"; + EDITOR = "vim"; }; - # Let Home Manager install and manage itself. + # enable home manager programs.home-manager.enable = true; + + # don't change + home.stateVersion = "25.05"; }