diff --git a/flake.nix b/flake.nix index 1000b92..9688c4b 100644 --- a/flake.nix +++ b/flake.nix @@ -36,6 +36,11 @@ sops-nix, }@inputs: let + homeRoles = [ + "desktop" + "minimal" + "server" + ]; outputs = inputs.self; overlays = [ apple-silicon.overlays.apple-silicon-overlay @@ -69,35 +74,23 @@ }; }; homeManagerModules = import ./modules/home-manager; - homeConfigurations = - { - role = [ - "desktop" - "minimal" - "server" - ]; - system = supportedSystems; - } - |> nixpkgs.lib.cartesianProduct - |> nixpkgs.lib.foldl' ( - c: e: - c - // { - "irl-${e.role}-${e.system}" = home-manager.lib.homeManagerConfiguration { - pkgs = import nixpkgs { - inherit overlays; - system = e.system; - }; - extraSpecialArgs = { - inherit outputs; - }; - modules = [ - ./home-manager/irl.nix - { role = "${e.role}"; } - ]; + homeConfigurations = nixpkgs.lib.foldl' (c: e: + c // { + "irl-${e.role}-${e.system}" = home-manager.lib.homeManagerConfiguration { + pkgs = import nixpkgs { + inherit overlays; + system = e.system; }; - } - ) { }; + extraSpecialArgs = { + inherit outputs; + }; + modules = [ + ./home-manager/irl.nix + { role = "${e.role}"; } + ]; + }; + } + ) { } (nixpkgs.lib.cartesianProduct { role = homeRoles; system = supportedSystems; }); } // flake-utils.lib.eachSystem supportedSystems (system: { formatter = nixpkgs.legacyPackages.${system}.nixfmt-tree; diff --git a/home-manager/irl.nix b/home-manager/irl.nix index 5447f03..4e31fe9 100644 --- a/home-manager/irl.nix +++ b/home-manager/irl.nix @@ -11,48 +11,26 @@ options.role = lib.mkOption { description = "Home role to set up"; default = "minimal"; - type = - with lib.types; - enum [ - "desktop" - "minimal" - "server" - ]; + type = with lib.types; enum ["desktop" "minimal" "server"]; }; config = { - feature.cli.enable = builtins.elem config.role [ - "desktop" - "minimal" - "server" - ]; + feature.cli.enable = builtins.elem config.role ["desktop" "minimal" "server"]; feature.firefox.enable = config.role == "desktop"; - feature.git.enable = builtins.elem config.role [ - "desktop" - "server" - ]; + feature.git.enable = builtins.elem config.role ["desktop" "server"]; feature.ops.enable = config.role == "desktop"; - feature.tmux.enable = builtins.elem config.role [ - "desktop" - "server" - ]; - feature.vim.enable = builtins.elem config.role [ - "desktop" - "minimal" - "server" - ]; + feature.tmux.enable = builtins.elem config.role ["desktop" "server"]; + feature.vim.enable = builtins.elem config.role ["desktop" "minimal" "server"]; home.username = "irl"; home.homeDirectory = if lib.strings.hasSuffix "darwin" pkgs.system then "/Users/irl" else "/home/irl"; - home.file.".config/nix/nix.conf".text = '' - experimental-features = nix-command flakes pipe-operators - ''; home.packages = with pkgs; [ neofetch ]; home.shellAliases = { - hms = "home-manager switch --flake ~/.config/nix-configs#irl-${config.role}-${pkgs.system}"; + hms = + "home-manager switch --flake ~/.config/nix-configs#irl-${config.role}-${pkgs.system}"; drs = "sudo darwin-rebuild switch --flake ~/.config/nix-configs"; }; home.stateVersion = "25.05"; diff --git a/modules/home-manager/cli/starship.toml b/modules/home-manager/cli/starship.toml index ddef1df..9f58605 100644 --- a/modules/home-manager/cli/starship.toml +++ b/modules/home-manager/cli/starship.toml @@ -1,7 +1,3 @@ -"$schema" = 'https://starship.rs/config-schema.json' - -command_timeout = 800 - [shell] disabled = false format = '[$indicator]($style)' diff --git a/modules/home-manager/vim/init.lua b/modules/home-manager/vim/init.lua index 14d71f1..e6283c7 100644 --- a/modules/home-manager/vim/init.lua +++ b/modules/home-manager/vim/init.lua @@ -4,19 +4,11 @@ vim.g.loaded_netrwPlugin = 1 vim.g.mapleader = " " vim.opt.termguicolors = true - -vim.opt.tabstop = 4 -vim.opt.softtabstop = 4 -vim.opt.shiftwidth = 4 vim.opt.expandtab = true -vim.opt.number = true -vim.opt.relativenumber = true -vim.opt.scrolloff = 8 +vim.cmd.colorscheme "catppuccin" -vim.cmd.colorscheme "catppuccin-mocha" - --- Custom bindings for buffer navigation +-- Custom bindings vim.keymap.set("n", "n", "bn", { noremap = true, silent = true }) vim.keymap.set("n", "p", "bp", { noremap = true, silent = true }) @@ -29,60 +21,9 @@ require("lualine").setup{} -- Telescope (anything search) vim.keymap.set("n", "b", "Telescope buffers", { noremap = true, silent = true }) vim.keymap.set("n", "f", "Telescope find_files", { noremap = true, silent = true }) -vim.keymap.set("n", "g", "Telescope git_files", { noremap = true, silent = true }) - --- Tree (file manager) -require("nvim-tree").setup() -vim.keymap.set("n", "t", "NvimTreeToggle", { noremap = true, silent = true }) -- lspconfig (LSPs) -vim.lsp.enable("lua_ls") -vim.lsp.enable("nil_ls") +vim.lsp.enable("nil") vim.lsp.enable("pyright") -vim.lsp.enable("rust_analyzer") - -vim.keymap.set("n", "o", vim.lsp.buf.format) - -vim.api.nvim_create_autocmd('LspAttach', { - desc = 'LSP actions', - callback = function() - local bufmap = function(mode, lhs, rhs) - local opts = {buffer = true} - vim.keymap.set(mode, lhs, rhs, opts) - end - - -- Displays hover information about the symbol under the cursor - bufmap('n', 'K', vim.lsp.buf.hover) - - -- Jump to the definition - bufmap('n', 'gd', vim.lsp.buf.definition) - - -- Jump to declaration - bufmap('n', 'gD', vim.lsp.buf.declaration) - - -- Lists all the implementations for the symbol under the cursor - bufmap('n', 'gi', vim.lsp.buf.implementation) - - -- Jumps to the definition of the type symbol - bufmap('n', 'go', vim.lsp.buf.type_definition) - - -- Lists all the references - bufmap('n', 'gr', vim.lsp.buf.references) - - -- Displays a function's signature information - bufmap('n', '', vim.lsp.buf.signature_help) - - -- Renames all references to the symbol under the cursor - bufmap('n', 'R', vim.lsp.buf.rename) - - -- Show diagnostics in a floating window - bufmap('n', 'gl', vim.diagnostic.open_float) - - -- Move to the previous diagnostic - bufmap('n', '[d', vim.diagnostic.goto_prev) - - -- Move to the next diagnostic - bufmap('n', ']d', vim.diagnostic.goto_next) - end -}) +vim.lsp.enable("rust-analyzer") diff --git a/modules/home-manager/vim/vim.nix b/modules/home-manager/vim/vim.nix index deaef85..20a34a9 100644 --- a/modules/home-manager/vim/vim.nix +++ b/modules/home-manager/vim/vim.nix @@ -14,7 +14,6 @@ in config = lib.mkIf cfg.enable { home.packages = with pkgs; [ - lua-language-server nil pyright rust-analyzer @@ -30,7 +29,6 @@ in bufferline-nvim catppuccin-nvim lualine-nvim - nvim-tree-lua nvim-lspconfig telescope-nvim nvim-web-devicons