Compare commits

...

7 commits

6 changed files with 109 additions and 77 deletions

View file

@ -22,6 +22,7 @@
}; };
terminal.package = pkgs.kitty; terminal.package = pkgs.kitty;
programs.exercism.enable = true; programs.exercism.enable = true;
services.mullvad.enable = true;
}; };
users.users.moritz.packages = [ pkgs.poetry ]; users.users.moritz.packages = [ pkgs.poetry ];

View file

@ -187,7 +187,6 @@ in
rs = "sudo systemctl"; rs = "sudo systemctl";
uj = "journalctl --user"; uj = "journalctl --user";
rj = "sudo journalctl"; rj = "sudo journalctl";
lg = "lazygit";
}; };
aliases = { aliases = {
ls = "${getExe pkgs.eza} -lh --icons --git"; ls = "${getExe pkgs.eza} -lh --icons --git";
@ -198,6 +197,7 @@ in
variables = { EDITOR = "vim"; }; variables = { EDITOR = "vim"; };
}; };
programs = { programs = {
lazygit.enable = true;
direnv.enable = true; direnv.enable = true;
fish.enable = true; fish.enable = true;
git.enable = true; git.enable = true;
@ -265,6 +265,10 @@ in
programs = { programs = {
mtr.enable = true; mtr.enable = true;
command-not-found.enable = false; command-not-found.enable = false;
nh = {
enable = true;
flake = "/home/moritz/Documents/dotfiles/";
};
}; };
services = { services = {
@ -299,65 +303,6 @@ in
]; ];
}; };
starship.enable = true; starship.enable = true;
lazygit.enable = true;
lazygit.settings = {
customCommands = [
{
key = "<c-v>";
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 = { home = {
username = "moritz"; username = "moritz";

View file

@ -27,6 +27,7 @@ in
"/var/lib/nixos" "/var/lib/nixos"
"/var/lib/systemd" "/var/lib/systemd"
"/var/log" "/var/log"
"/etc/mullvad-vpn/"
]; ];
files = [ files = [
"/etc/machine-id" "/etc/machine-id"

View file

@ -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 = "<c-v>";
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...";
}
];
};
};
};
}

View file

@ -10,12 +10,6 @@ let
inherit (lib) mkEnableOption mkOption types; inherit (lib) mkEnableOption mkOption types;
cfg = config.my.programs.nix; cfg = config.my.programs.nix;
mkNom = system: nix:
inputs.nix-monitored.packages.${system}.default.override
{
withNotify = false;
nix = nix;
};
in in
{ {
options.my.programs.nix = { options.my.programs.nix = {
@ -31,15 +25,6 @@ in
}; };
config = { 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 { home-manager.users.moritz.programs.direnv.nix-direnv.package = pkgs.nix-direnv.override {
nix = config.nix.package; nix = config.nix.package;
}; };
@ -49,7 +34,7 @@ in
nix = { nix = {
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; nixPath = [ "nixpkgs=${inputs.nixpkgs}" ];
package = pkgs.nix; package = pkgs.lix;
extraOptions = '' extraOptions = ''
!include ${config.age.secrets.nix-github-token.path} !include ${config.age.secrets.nix-github-token.path}

View file

@ -8,6 +8,11 @@ in
plugins.lsp = { plugins.lsp = {
enable = true; enable = true;
inlayHints = true; inlayHints = true;
servers.rust_analyzer = {
enable = true;
installRustc = false;
installCargo = false;
};
servers.elixirls.enable = true; servers.elixirls.enable = true;
servers.nextls.enable = true; servers.nextls.enable = true;
servers.nil_ls.enable = true; servers.nil_ls.enable = true;
@ -18,7 +23,7 @@ in
}; };
options = { options = {
nixos = { 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" = { "flake-parts" = {
expr = ''(builtins.getFlake ("git+file://" + toString ./.)).debug.options''; expr = ''(builtins.getFlake ("git+file://" + toString ./.)).debug.options'';