diff --git a/hosts/nixos-laptop/default.nix b/hosts/nixos-laptop/default.nix index 658b9e2..48f97f7 100644 --- a/hosts/nixos-laptop/default.nix +++ b/hosts/nixos-laptop/default.nix @@ -22,6 +22,7 @@ }; terminal.package = pkgs.kitty; programs.exercism.enable = true; + services.mullvad.enable = true; }; users.users.moritz.packages = [ pkgs.poetry ]; diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index 9aa5607..6d301d6 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -187,7 +187,6 @@ in rs = "sudo systemctl"; uj = "journalctl --user"; rj = "sudo journalctl"; - lg = "lazygit"; }; aliases = { ls = "${getExe pkgs.eza} -lh --icons --git"; @@ -198,6 +197,7 @@ in variables = { EDITOR = "vim"; }; }; programs = { + lazygit.enable = true; direnv.enable = true; fish.enable = true; git.enable = true; @@ -265,6 +265,10 @@ in programs = { mtr.enable = true; command-not-found.enable = false; + nh = { + enable = true; + flake = "/home/moritz/Documents/dotfiles/"; + }; }; services = { @@ -299,65 +303,6 @@ in ]; }; starship.enable = true; - lazygit.enable = true; - lazygit.settings = { - customCommands = [ - { - key = ""; - context = "global"; - description = "Create new conventional commit"; - prompts = [ - { - type = "menu"; - key = "Type"; - title = "Type of change"; - options = [ - { name = "build"; description = "Changes that affect the build system or external dependencies"; value = "build"; } - { name = "feat"; description = "A new feature"; value = "feat"; } - { name = "fix"; description = "A bug fix"; value = "fix"; } - { name = "chore"; description = "Other changes that don't modify src or test files"; value = "chore"; } - { name = "ci"; description = "Changes to CI configuration files and scripts"; value = "ci"; } - { name = "docs"; description = "Documentation only changes"; value = "docs"; } - { name = "perf"; description = "A code change that improves performance"; value = "perf"; } - { name = "refactor"; description = "A code change that neither fixes a bug nor adds a feature"; value = "refactor"; } - { name = "revert"; description = "Reverts a previous commit"; value = "revert"; } - { name = "style"; description = "Changes that do not affect the meaning of the code"; value = "style"; } - { name = "test"; description = "Adding missing tests or correcting existing tests"; value = "test"; } - ]; - } - { - type = "input"; - title = "Scope"; - key = "Scope"; - initialValue = ""; - } - { - type = "menu"; - key = "Breaking"; - title = "Breaking change"; - options = [ - { name = "no"; value = ""; } - { name = "yes"; value = "!"; } - ]; - } - { - type = "input"; - title = "message"; - key = "Message"; - initialValue = ""; - } - { - type = "confirm"; - key = "Confirm"; - title = "Commit"; - body = "Are you sure you want to commit?"; - } - ]; - command = "git commit --message '{{.Form.Type}}{{ if .Form.Scope }}({{ .Form.Scope }}){{ end }}{{.Form.Breaking}}: {{.Form.Message}}'"; - loadingText = "Creating conventional commit..."; - } - ]; - }; }; home = { username = "moritz"; diff --git a/modules/profiles/impermanence.nix b/modules/profiles/impermanence.nix index c5113e7..93568f7 100644 --- a/modules/profiles/impermanence.nix +++ b/modules/profiles/impermanence.nix @@ -27,6 +27,7 @@ in "/var/lib/nixos" "/var/lib/systemd" "/var/log" + "/etc/mullvad-vpn/" ]; files = [ "/etc/machine-id" diff --git a/modules/programs/lazygit.nix b/modules/programs/lazygit.nix new file mode 100644 index 0000000..e3a07ca --- /dev/null +++ b/modules/programs/lazygit.nix @@ -0,0 +1,95 @@ +{ config +, lib +, pkgs +, ... +}: + +with lib; +let + cfg = config.my.programs.lazygit; + + wrapper = pkgs.writeShellApplication { + name = "lg"; + text = '' + export LAZYGIT_NEW_DIR_FILE="$HOME/.lazygit/newdir" + + lazygit "$@" + + if [ -f "$LAZYGIT_NEW_DIR_FILE" ]; then + cd "$(cat "$LAZYGIT_NEW_DIR_FILE")" + rm -f "$LAZYGIT_NEW_DIR_FILE" > /dev/null + fi + ''; + runtimeInputs = [ pkgs.lazygit ]; + }; +in +{ + options.my.programs.lazygit.enable = mkEnableOption "lazygit"; + + config = mkIf cfg.enable { + home-manager.users.moritz.home.packages = [ + wrapper + ]; + home-manager.users.moritz.programs.lazygit = { + enable = true; + settings = { + customCommands = [ + { + key = ""; + context = "global"; + description = "Create new conventional commit"; + prompts = [ + { + type = "menu"; + key = "Type"; + title = "Type of change"; + options = [ + { name = "build"; description = "Changes that affect the build system or external dependencies"; value = "build"; } + { name = "feat"; description = "A new feature"; value = "feat"; } + { name = "fix"; description = "A bug fix"; value = "fix"; } + { name = "chore"; description = "Other changes that don't modify src or test files"; value = "chore"; } + { name = "ci"; description = "Changes to CI configuration files and scripts"; value = "ci"; } + { name = "docs"; description = "Documentation only changes"; value = "docs"; } + { name = "perf"; description = "A code change that improves performance"; value = "perf"; } + { name = "refactor"; description = "A code change that neither fixes a bug nor adds a feature"; value = "refactor"; } + { name = "revert"; description = "Reverts a previous commit"; value = "revert"; } + { name = "style"; description = "Changes that do not affect the meaning of the code"; value = "style"; } + { name = "test"; description = "Adding missing tests or correcting existing tests"; value = "test"; } + ]; + } + { + type = "input"; + title = "Scope"; + key = "Scope"; + initialValue = ""; + } + { + type = "menu"; + key = "Breaking"; + title = "Breaking change"; + options = [ + { name = "no"; value = ""; } + { name = "yes"; value = "!"; } + ]; + } + { + type = "input"; + title = "message"; + key = "Message"; + initialValue = ""; + } + { + type = "confirm"; + key = "Confirm"; + title = "Commit"; + body = "Are you sure you want to commit?"; + } + ]; + command = "git commit --message '{{.Form.Type}}{{ if .Form.Scope }}({{ .Form.Scope }}){{ end }}{{.Form.Breaking}}: {{.Form.Message}}'"; + loadingText = "Creating conventional commit..."; + } + ]; + }; + }; + }; +} diff --git a/modules/programs/nix.nix b/modules/programs/nix.nix index c98c643..2dfc969 100644 --- a/modules/programs/nix.nix +++ b/modules/programs/nix.nix @@ -10,12 +10,6 @@ let inherit (lib) mkEnableOption mkOption types; cfg = config.my.programs.nix; - mkNom = system: nix: - inputs.nix-monitored.packages.${system}.default.override - { - withNotify = false; - nix = nix; - }; in { options.my.programs.nix = { @@ -31,15 +25,6 @@ in }; config = { - my.nixpkgs.overlays = [ - (final: prev: - { - nixos-rebuild = prev.nixos-rebuild.override { - nix = mkNom final.system final.nix; - }; - }) - ]; - home-manager.users.moritz.programs.direnv.nix-direnv.package = pkgs.nix-direnv.override { nix = config.nix.package; }; @@ -49,7 +34,7 @@ in nix = { nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; - package = pkgs.nix; + package = pkgs.lix; extraOptions = '' !include ${config.age.secrets.nix-github-token.path} diff --git a/modules/programs/nvim/new_plugins/lsp.nix b/modules/programs/nvim/new_plugins/lsp.nix index 8a001f5..afc64ab 100644 --- a/modules/programs/nvim/new_plugins/lsp.nix +++ b/modules/programs/nvim/new_plugins/lsp.nix @@ -8,6 +8,11 @@ in plugins.lsp = { enable = true; inlayHints = true; + servers.rust_analyzer = { + enable = true; + installRustc = false; + installCargo = false; + }; servers.elixirls.enable = true; servers.nextls.enable = true; servers.nil_ls.enable = true; @@ -18,7 +23,7 @@ in }; options = { nixos = { - expr = ''(builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations.nixos-desktop.options''; + expr = ''builtins.head (builtins.attrValues ((builtins.getFlake ("git+file://" + toString ./.)).nixosConfigurations).options''; }; "flake-parts" = { expr = ''(builtins.getFlake ("git+file://" + toString ./.)).debug.options'';