diff --git a/configs/common.nix b/configs/common.nix index 8d75731..e64fb1f 100644 --- a/configs/common.nix +++ b/configs/common.nix @@ -5,16 +5,13 @@ _utils, agenix, camasca, - home-manager, + hjem, nixpkgs, nix-index-database, vencord, ... }: let - username = "leo"; - stateVersion = "24.11"; - rootPassword = _utils.setupSingleSecret config "rootPassword" { }; secrets = _utils.setupSharedSecrets config { secrets = [ "userPassword" ]; @@ -23,11 +20,9 @@ in { imports = [ agenix.nixosModules.default - home-manager.nixosModules.home-manager + hjem.nixosModules.default nix-index-database.nixosModules.nix-index - (lib.mkAliasOptionModule [ "hm" ] [ "home-manager" "users" username ]) - rootPassword.generate secrets.generate @@ -71,21 +66,17 @@ in wget ]; - hm = { - home = { inherit stateVersion; }; - - programs.ssh = { - enable = true; - addKeysToAgent = "yes"; - forwardAgent = true; + hjem = { + clobberByDefault = true; + users.leo.files = { + ".ssh/config".text = '' + Host * + ForwardAgent yes + AddKeysToAgent yes + ''; }; }; - home-manager = { - useGlobalPkgs = true; - useUserPackages = true; - }; - i18n.defaultLocale = "en_US.UTF-8"; networking = { @@ -196,7 +187,7 @@ in time.timeZone = "Europe/Paris"; users.users = { - "${username}" = { + leo = { isNormalUser = true; shell = pkgs.fish; extraGroups = [ @@ -225,5 +216,5 @@ in # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). - system.stateVersion = lib.mkDefault stateVersion; # Did you read the comment? + system.stateVersion = lib.mkDefault "24.11"; # Did you read the comment? } diff --git a/configs/desktop.nix b/configs/desktop.nix index 5538560..7b6b0fc 100644 --- a/configs/desktop.nix +++ b/configs/desktop.nix @@ -14,6 +14,7 @@ ../programs/ghostty.nix ../programs/gnome.nix ../programs/java.nix + ../programs/neovim/neovide.nix ]; boot = { @@ -44,8 +45,30 @@ sbctl wl-clipboard + chromium + (discord.override { + withOpenASAR = true; + withVencord = true; + }) + gimp3 + gparted + idea-wrapped + mpv + obsidian + strawberry + teams-for-linux + thunderbird + vscode + niigo-miku-cursors patchouli-cursors + + # libreoffice stuff + libreoffice-qt6-fresh + hunspell + hunspellDicts.en_US + hunspellDicts.fr-moderne + ]; sessionVariables = { @@ -77,32 +100,6 @@ enable32Bit = true; }; - hm.imports = [ ../programs/neovim/neovide.nix ]; - hm.home = { - packages = with pkgs; [ - chromium - (discord.override { - withOpenASAR = true; - withVencord = true; - }) - gimp3 - gparted - idea-wrapped - mpv - obsidian - strawberry - teams-for-linux - thunderbird - vscode - - # libreoffice stuff - libreoffice-qt6-fresh - hunspell - hunspellDicts.en_US - hunspellDicts.fr-moderne - ]; - }; - i18n.extraLocaleSettings = { LC_ADDRESS = "fr_FR.UTF-8"; LC_IDENTIFICATION = "fr_FR.UTF-8"; diff --git a/configs/laptop.nix b/configs/laptop.nix index 7f97765..b72f963 100644 --- a/configs/laptop.nix +++ b/configs/laptop.nix @@ -1,7 +1,5 @@ { - lib, pkgs, - config, ... }: { @@ -31,9 +29,9 @@ programs.light.enable = true; # hyprland stuff - services.blueman = lib.mkIf config.programs.hyprland.enable { enable = true; }; - hm.wayland.windowManager.hyprland.settings.exec-once = with pkgs; [ - "${lib.getExe networkmanagerapplet}" - "${lib.getExe' blueman "blueman-applet"}" - ]; + # services.blueman = lib.mkIf config.programs.hyprland.enable { enable = true; }; + # hm.wayland.windowManager.hyprland.settings.exec-once = with pkgs; [ + # "${lib.getExe networkmanagerapplet}" + # "${lib.getExe' blueman "blueman-applet"}" + # ]; } diff --git a/flake.lock b/flake.lock index cd16f97..017c881 100644 --- a/flake.lock +++ b/flake.lock @@ -3,9 +3,7 @@ "agenix": { "inputs": { "darwin": [], - "home-manager": [ - "home-manager" - ], + "home-manager": [], "nixpkgs": [ "nixpkgs" ], @@ -145,23 +143,23 @@ "type": "github" } }, - "home-manager": { + "hjem": { "inputs": { "nixpkgs": [ "nixpkgs" ] }, "locked": { - "lastModified": 1746413188, - "narHash": "sha256-i6BoiQP0PasExESQHszC0reQHfO6D4aI2GzOwZMOI20=", - "owner": "nix-community", - "repo": "home-manager", - "rev": "8a318641ac13d3bc0a53651feaee9560f9b2d89a", + "lastModified": 1746355589, + "narHash": "sha256-LguszqsDBTtdBxblQTtN7vOAYmfoe43aHkB8aK1dChE=", + "owner": "feel-co", + "repo": "hjem", + "rev": "77b37eeb583d43e1c723119a69c906235174ce57", "type": "github" }, "original": { - "owner": "nix-community", - "repo": "home-manager", + "owner": "feel-co", + "repo": "hjem", "type": "github" } }, @@ -283,7 +281,7 @@ "flake-parts": "flake-parts", "flake-utils": "flake-utils", "getchvim": "getchvim", - "home-manager": "home-manager", + "hjem": "hjem", "lanzaboote": "lanzaboote", "mystia": "mystia", "nix-index-database": "nix-index-database", diff --git a/flake.nix b/flake.nix index af39522..9be34c3 100644 --- a/flake.nix +++ b/flake.nix @@ -68,7 +68,7 @@ url = "github:uku3lig/agenix"; inputs.nixpkgs.follows = "nixpkgs"; inputs.systems.follows = "systems"; - inputs.home-manager.follows = "home-manager"; + inputs.home-manager.follows = ""; inputs.darwin.follows = ""; }; @@ -89,8 +89,8 @@ inputs.nixpkgs.follows = "nixpkgs"; }; - home-manager = { - url = "github:nix-community/home-manager"; + hjem = { + url = "github:feel-co/hjem"; inputs.nixpkgs.follows = "nixpkgs"; }; diff --git a/programs/fish.nix b/programs/fish.nix index 824094b..bc0a632 100644 --- a/programs/fish.nix +++ b/programs/fish.nix @@ -6,17 +6,16 @@ fishPlugins.hydro ]; - hm.programs.fish = { - enable = true; + hjem.users.leo.files.".config/fish/config.fish".text = '' + function fish_greeting + end - interactiveShellInit = '' + if status is-interactive set --global hydro_symbol_git_dirty "*" set --global hydro_color_pwd blue set --global hydro_color_git magenta set --global hydro_color_prompt green set --global hydro_color_duration yellow - ''; - - functions.fish_greeting = ""; - }; + end + ''; } diff --git a/programs/games.nix b/programs/games.nix index 0b09711..dc83c4e 100644 --- a/programs/games.nix +++ b/programs/games.nix @@ -5,7 +5,7 @@ xpadneo.enable = true; }; - hm.home.packages = with pkgs; [ + environment.systemPackages = with pkgs; [ obs-studio osu-lazer-bin krita diff --git a/programs/ghostty.nix b/programs/ghostty.nix index bb7ae9c..d33f833 100644 --- a/programs/ghostty.nix +++ b/programs/ghostty.nix @@ -1,14 +1,12 @@ +{ pkgs, ... }: { - hm.programs.ghostty = { - enable = true; - settings = { - theme = "light:catppuccin-latte,dark:catppuccin-mocha"; - font-family = "Iosevka Term"; - font-size = 12; - font-feature = [ - "-calt" - "-dlig" - ]; - }; - }; + environment.systemPackages = [ pkgs.ghostty ]; + + hjem.users.leo.files.".config/ghostty/config".text = '' + font-family = Iosevka Term + font-feature = -calt + font-feature = -dlig + font-size = 12 + theme = light:catppuccin-latte,dark:catppuccin-mocha + ''; } diff --git a/programs/git.nix b/programs/git.nix index 0ba006b..5e42ee3 100644 --- a/programs/git.nix +++ b/programs/git.nix @@ -1,36 +1,36 @@ -{ config, ... }: +{ lib, pkgs, ... }: { - programs.git.enable = true; + environment.systemPackages = with pkgs; [ + git + gh + ]; - hm.programs = { - git = { - inherit (config.programs.git) enable package; - userName = "uku"; - userEmail = "hi@uku.moe"; - - signing = { - format = "ssh"; - key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN+7+KfdOrhcnHayxvOENUeMx8rE4XEIV/AxMHiaNUP8"; - signByDefault = true; + hjem.users.leo.files = { + ".gitconfig".text = lib.generators.toGitINI { + user = { + name = "uku"; + email = "hi@uku.moe"; + signingKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN+7+KfdOrhcnHayxvOENUeMx8rE4XEIV/AxMHiaNUP8"; }; - # delta.enable = true; - - extraConfig = { - init.defaultBranch = "main"; - core.autocrlf = "input"; - push.autoSetupRemote = true; - merge.conflictStyle = "zdiff3"; - rebase.autoStash = true; - status.submoduleSummary = true; - diff.submodule = "log"; - submodule.recurse = true; - commit.verbose = true; + commit = { + gpgSign = true; + verbose = true; }; + + gpg.format = "ssh"; + tag.gpgSign = true; + core.autocrlf = "input"; + diff.submodule = "log"; + init.defaultBranch = "main"; + merge.conflictStyle = "zdiff3"; + push.autoSetupRemote = true; + rebase.autoStash = true; + status.submoduleSummary = true; + submodule.recurse = true; }; - gh = { - enable = true; + ".config/gh/config.yml".text = lib.generators.toYAML { } { settings.git_protocol = "ssh"; }; }; diff --git a/programs/gnome.nix b/programs/gnome.nix index fa1f145..852786f 100644 --- a/programs/gnome.nix +++ b/programs/gnome.nix @@ -16,14 +16,6 @@ terminal = "ghostty"; }; - hm.programs.gnome-shell = { - enable = true; - extensions = with pkgs.gnomeExtensions; [ - { package = appindicator; } - { package = dash-to-panel; } - ]; - }; - # ssh-agent is provided by gnome-keyring-daemon # (mabye soon by gcr, see NixOS/nixpkgs#140824) programs.ssh.startAgent = lib.mkForce false; @@ -32,6 +24,8 @@ systemPackages = [ adw-gtk3 gnome-tweaks + gnomeExtensions.appindicator + gnomeExtensions.dash-to-panel ]; gnome.excludePackages = [ diff --git a/programs/neovim/neovide.nix b/programs/neovim/neovide.nix index 5e78385..fa95937 100644 --- a/programs/neovim/neovide.nix +++ b/programs/neovim/neovide.nix @@ -1,7 +1,6 @@ -# home-manager module +{ pkgs, ... }: { - programs.neovide = { - enable = true; - settings.fork = true; - }; + environment.systemPackages = [ pkgs.neovide ]; + + hjem.users.leo.files.".config/neovide/config.toml".text = "fork = true"; } diff --git a/programs/rust.nix b/programs/rust.nix index ea33595..c9a3e9e 100644 --- a/programs/rust.nix +++ b/programs/rust.nix @@ -8,8 +8,8 @@ let toml = pkgs.formats.toml { }; in { - hm.home.file.".cargo/config.toml".source = toml.generate "config.toml" { - build.target-dir = "${config.hm.home.homeDirectory}/.cargo/target"; + hjem.users.leo.files.".cargo/config.toml".source = toml.generate "config.toml" { + build.target-dir = "${config.hjem.users.leo.directory}/.cargo/target"; target.x86_64-unknown-linux-gnu = { linker = "${lib.getExe pkgs.clang}"; diff --git a/systems/fuji/default.nix b/systems/fuji/default.nix index c1fb41a..83e4a96 100644 --- a/systems/fuji/default.nix +++ b/systems/fuji/default.nix @@ -7,20 +7,18 @@ services.xserver.videoDrivers = [ "amdgpu" ]; - hm = { - home.packages = with pkgs; [ - wineWowPackages.waylandFull - ]; + environment.systemPackages = with pkgs; [ + wineWowPackages.waylandFull + ]; - wayland.windowManager.hyprland.settings = { - monitor = "DP-1,3840x2160@144,0x0,1.5"; - - xwayland.force_zero_scaling = true; - - env = [ - "GDK_SCALE,1.5" - "XCURSOR_SIZE,24" - ]; - }; - }; + # hm = { + # wayland.windowManager.hyprland.settings = { + # monitor = "DP-1,3840x2160@144,0x0,1.5"; + # xwayland.force_zero_scaling = true; + # env = [ + # "GDK_SCALE,1.5" + # "XCURSOR_SIZE,24" + # ]; + # }; + # }; } diff --git a/systems/fuji/nvidia.nix b/systems/fuji/nvidia.nix index e77dab7..78d2e26 100644 --- a/systems/fuji/nvidia.nix +++ b/systems/fuji/nvidia.nix @@ -37,10 +37,10 @@ }; }; - hm.wayland.windowManager.hyprland.settings.env = [ - "XDG_SESSION_TYPE,wayland" - "GBM_BACKEND,nvidia-drm" - "__GLX_VENDOR_LIBRARY_NAME,nvidia" - "NVD_BACKEND,direct" - ]; + # hm.wayland.windowManager.hyprland.settings.env = [ + # "XDG_SESSION_TYPE,wayland" + # "GBM_BACKEND,nvidia-drm" + # "__GLX_VENDOR_LIBRARY_NAME,nvidia" + # "NVD_BACKEND,direct" + # ]; } diff --git a/systems/mottarone/default.nix b/systems/mottarone/default.nix index 07d28fe..469b62a 100644 --- a/systems/mottarone/default.nix +++ b/systems/mottarone/default.nix @@ -29,9 +29,14 @@ in i18n.defaultLocale = lib.mkForce "fr_FR.UTF-8"; - hm.programs = { - git.includes = [ { path = "~/.config/git/work_config"; } ]; - ssh.includes = [ "work_config" ]; + hjem.users.leo.files = { + ".gitconfig".text = lib.generators.toGitINI { + include.path = "~/.config/git/work_config"; + }; + + ".ssh/config".text = lib.mkBefore '' + Include work_config + ''; }; networking.firewall.allowedTCPPorts = [ 8000 ];