From 62987add4b0873a2bb28c57b1e80334e93f81438 Mon Sep 17 00:00:00 2001 From: Romain Paquet Date: Fri, 14 Feb 2025 19:34:14 +0100 Subject: [PATCH] move haze home-manager config to shared modules --- home/cli.nix | 37 +++++++++++++++++++++++++++++++++ home/common.nix | 16 +++++++++++++++ home/desktop/default.nix | 36 ++++++++++++++++++++++++++++++++ home/desktop/pass.nix | 14 +++++++++++++ home/dev.nix | 13 ++++++++++++ home/dotfiles.nix | 14 +++++++++++++ home/helix.nix | 12 +++++++++++ hosts/haze/home.nix | 44 +++++++--------------------------------- 8 files changed, 149 insertions(+), 37 deletions(-) create mode 100644 home/cli.nix create mode 100644 home/common.nix create mode 100644 home/desktop/default.nix create mode 100644 home/desktop/pass.nix create mode 100644 home/dev.nix create mode 100644 home/dotfiles.nix create mode 100644 home/helix.nix diff --git a/home/cli.nix b/home/cli.nix new file mode 100644 index 0000000..d1aed9c --- /dev/null +++ b/home/cli.nix @@ -0,0 +1,37 @@ +{ config, pkgs, ... }: +{ + home.packages = with pkgs; [ + difftastic + doggo + duf + eza + fd + ripgrep + tealdeer + tree + vivid + zoxide + ]; + + programs.zoxide.enable = true; + programs.starship.enable = true; + programs.atuin.enable = true; + programs.bat.enable = true; + + programs.zsh = { + enable = true; + syntaxHighlighting.enable = true; + shellAliases = { + ls = "eza"; + ll = "ls -lh"; + lsa = "ls -A"; + h = "hx"; + g = "git"; + cd = "z"; + ".." = "cd .."; + "..." = "cd ../.."; + }; + }; + + xdg.configFile."git".source = "${config.dotfiles.path}/.config/git"; +} diff --git a/home/common.nix b/home/common.nix new file mode 100644 index 0000000..a16f218 --- /dev/null +++ b/home/common.nix @@ -0,0 +1,16 @@ +{ + home.username = "rpqt"; + home.homeDirectory = "/home/rpqt"; + + # 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.11"; + + # Let Home Manager install and manage itself + programs.home-manager.enable = true; +} diff --git a/home/desktop/default.nix b/home/desktop/default.nix new file mode 100644 index 0000000..9c79217 --- /dev/null +++ b/home/desktop/default.nix @@ -0,0 +1,36 @@ +{ config, pkgs, ... }: +{ + imports = [ + ./pass.nix + ]; + + home.packages = [ + pkgs.nerd-fonts.jetbrains-mono + + pkgs.alacritty + pkgs.tofi + pkgs.i3status-rust + pkgs.wlsunset + + pkgs.discord + + pkgs.seahorse + ]; + + fonts.fontconfig.enable = true; + + programs.alacritty.enable = true; + xdg.configFile."alacritty".source = "${config.dotfiles.path}/.config/alacritty"; + + xdg.configFile = { + "sway".source = "${config.dotfiles.path}/.config/sway"; + "i3status-rust".source = "${config.dotfiles.path}/.config/i3status-rust"; + "tofi/config".source = "${config.dotfiles.path}/.config/tofi/config"; + }; + + home.pointerCursor = { + gtk.enable = true; + package = pkgs.capitaine-cursors; + name = "capitaine-cursors-4"; + }; +} diff --git a/home/desktop/pass.nix b/home/desktop/pass.nix new file mode 100644 index 0000000..84cc37f --- /dev/null +++ b/home/desktop/pass.nix @@ -0,0 +1,14 @@ +{ pkgs, ... }: +{ + home.packages = [ + pkgs.pass + pkgs.gnupg + pkgs.pinentry-gnome3 + ]; + + programs.gpg.enable = true; + services.gpg-agent = { + enable = true; + pinentryPackage = pkgs.pinentry-gnome3; + }; +} diff --git a/home/dev.nix b/home/dev.nix new file mode 100644 index 0000000..ec018c4 --- /dev/null +++ b/home/dev.nix @@ -0,0 +1,13 @@ +{ pkgs, ... }: +{ + home.packages = with pkgs; [ + devenv + direnv + radicle-node + typescript-language-server + nil # Nix language server + nixfmt-rfc-style + ]; + + programs.direnv.enable = true; +} diff --git a/home/dotfiles.nix b/home/dotfiles.nix new file mode 100644 index 0000000..818bec3 --- /dev/null +++ b/home/dotfiles.nix @@ -0,0 +1,14 @@ +{ config, lib, ... }: +{ + options = { + dotfiles = { + path = lib.mkOption { + type = lib.types.path; + apply = toString; + default = config.lib.file.mkOutOfStoreSymlink "${config.home.homeDirectory}/rep/dotfiles"; + example = "${config.home.homeDirectory}/.dotfiles"; + description = "Location of the dotfiles working copy"; + }; + }; + }; +} diff --git a/home/helix.nix b/home/helix.nix new file mode 100644 index 0000000..0c6f61c --- /dev/null +++ b/home/helix.nix @@ -0,0 +1,12 @@ +{ config, pkgs, ... }: + +{ + home.packages = [ pkgs.helix ]; + + programs.helix = { + enable = true; + defaultEditor = true; + }; + + xdg.configFile."helix".source = "${config.dotfiles.path}/.config/helix"; +} diff --git a/hosts/haze/home.nix b/hosts/haze/home.nix index 7430059..b55fb80 100644 --- a/hosts/haze/home.nix +++ b/hosts/haze/home.nix @@ -1,40 +1,10 @@ -{ pkgs, inputs, ... }: { - home.username = "rpqt"; - home.homeDirectory = "/home/rpqt"; - - home.packages = [ - inputs.agenix.packages.x86_64-linux.default - - pkgs.helix - - pkgs.devenv - pkgs.direnv - pkgs.radicle-node - - pkgs.deploy-rs - - pkgs.nil # Nix language server - pkgs.nixfmt-rfc-style + imports = [ + ../../home/cli.nix + ../../home/common.nix + ../../home/desktop + ../../home/dev.nix + ../../home/dotfiles.nix + ../../home/helix.nix ]; - - programs.zsh.enable = true; - programs.starship.enable = true; - programs.atuin.enable = true; - programs.bat.enable = true; - programs.git.enable = true; - - programs.alacritty.enable = true; - - # 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.11"; - - # Let Home Manager install and manage itself - programs.home-manager.enable = true; }