aboutsummaryrefslogtreecommitdiffstats
path: root/modules/development
diff options
context:
space:
mode:
Diffstat (limited to 'modules/development')
-rw-r--r--modules/development/bruno/default.nix6
-rw-r--r--modules/development/delta/default.nix10
-rw-r--r--modules/development/git/assertions.nix6
-rw-r--r--modules/development/git/default.nix31
-rw-r--r--modules/development/lazygit/default.nix11
-rw-r--r--modules/development/nixvim/colorscheme.nix2
-rw-r--r--modules/development/nixvim/default.nix10
-rw-r--r--modules/development/nixvim/keymaps.nix2
-rw-r--r--modules/development/nixvim/plugins/cmp.nix2
-rw-r--r--modules/development/nixvim/plugins/comment.nix2
-rw-r--r--modules/development/nixvim/plugins/gitsigns.nix2
-rw-r--r--modules/development/nixvim/plugins/indent-blankline.nix2
-rw-r--r--modules/development/nixvim/plugins/lsp.nix2
-rw-r--r--modules/development/nixvim/plugins/lualine.nix2
-rw-r--r--modules/development/nixvim/plugins/luasnip.nix2
-rw-r--r--modules/development/nixvim/plugins/noice.nix2
-rw-r--r--modules/development/nixvim/plugins/nvim-tree.nix2
-rw-r--r--modules/development/nixvim/plugins/telescope.nix2
-rw-r--r--modules/development/nixvim/plugins/treesitter.nix2
-rw-r--r--modules/development/nixvim/plugins/web-devicons.nix2
-rw-r--r--modules/development/nixvim/plugins/which-key.nix2
-rw-r--r--modules/development/opencode/default.nix7
-rw-r--r--modules/development/qemu/default.nix6
-rw-r--r--modules/development/vscodium/default.nix7
24 files changed, 80 insertions, 44 deletions
diff --git a/modules/development/bruno/default.nix b/modules/development/bruno/default.nix
index 7205f31..f7f069c 100644
--- a/modules/development/bruno/default.nix
+++ b/modules/development/bruno/default.nix
@@ -7,13 +7,13 @@
# Bruno - Open-source API client for testing HTTP endpoints
{
- options.programs.bruno = {
+ options.development.bruno = {
enable = lib.mkEnableOption "Enables bruno.";
package = lib.mkPackageOption pkgs "bruno" { };
};
- config = lib.mkIf config.programs.bruno.enable {
- home.packages = [ config.programs.bruno.package ];
+ config = lib.mkIf config.development.bruno.enable {
+ home.packages = [ config.development.bruno.package ];
xdg.mimeApps.defaultApplications = {
"x-scheme-handler/bruno" = "bruno.desktop";
diff --git a/modules/development/delta/default.nix b/modules/development/delta/default.nix
index 90e35d4..b39fee7 100644
--- a/modules/development/delta/default.nix
+++ b/modules/development/delta/default.nix
@@ -5,7 +5,11 @@
}:
# Delta - A syntax-highlighting pager for git, diff, and grep output
{
- config = lib.mkIf config.programs.delta.enable {
+ options.development.delta = {
+ enable = lib.mkEnableOption "Enables delta.";
+ };
+
+ config = lib.mkIf config.development.delta.enable {
programs.delta.options = {
line-numbers = true;
hunk-header-style = "omit";
@@ -14,13 +18,13 @@
line-numbers-right-format = "{np}│ ";
};
- programs.git.settings = lib.mkIf config.programs.git.enable {
+ programs.git.settings = lib.mkIf config.development.git.enable {
core.pager = "delta";
interactive.diffFilter = "delta --color-only";
delta.navigate = true;
};
- programs.lazygit.settings = lib.mkIf config.programs.lazygit.enable {
+ programs.lazygit.settings = lib.mkIf config.development.lazygit.enable {
git.pagers = [
{
colorArg = "always";
diff --git a/modules/development/git/assertions.nix b/modules/development/git/assertions.nix
index fbe5d3c..df85c62 100644
--- a/modules/development/git/assertions.nix
+++ b/modules/development/git/assertions.nix
@@ -3,10 +3,10 @@
assertions = [
{
assertion =
- !config.programs.git.useSSH || (config.programs.git.enable && config.programs.ssh.enable);
+ !config.development.git.useSSH || (config.development.git.enable && config.security.ssh.enable);
message = ''
- programs.git.useSSH is enabled but programs.ssh.enable is not.
- SSH must be enabled (programs.ssh.enable = true) to use SSH for git.
+ development.git.useSSH is enabled but security.ssh.enable is not.
+ SSH must be enabled (security.ssh.enable = true) to use SSH for git.
'';
}
];
diff --git a/modules/development/git/default.nix b/modules/development/git/default.nix
index c1aade5..5d2d89c 100644
--- a/modules/development/git/default.nix
+++ b/modules/development/git/default.nix
@@ -12,7 +12,9 @@
]
++ lib.optional (builtins.pathExists ../../private/git.nix) ../../private/git.nix;
- options.programs.git = {
+ options.development.git = {
+ enable = lib.mkEnableOption "Enables git.";
+
username = lib.mkOption {
type = lib.types.str;
description = "Git username.";
@@ -24,9 +26,19 @@
};
useSSH = lib.mkEnableOption "Use SSH instead of HTTPS for common git platforms.";
+
+ signing = {
+ key = lib.mkOption {
+ type = lib.types.nullOr lib.types.str;
+ default = null;
+ description = "GPG key ID used for signing commits.";
+ };
+
+ signByDefault = lib.mkEnableOption "Sign commits by default.";
+ };
};
- config = lib.mkIf config.programs.git.enable {
+ config = lib.mkIf config.development.git.enable {
home.packages = with pkgs; [
git-graph
];
@@ -56,7 +68,6 @@
['^(bugfix|hotfix).*$', ['bright_red']],
['^tags/.*$', ['bright_green']],
]
- # Everything else (e.g. custom/service branches) cycles through these instead of all being white
unknown = ['bright_white', 'bright_red', 'bright_green', 'bright_yellow', 'bright_blue', 'bright_magenta', 'bright_cyan']
[svg_colors]
@@ -72,24 +83,26 @@
'';
programs.git = {
+ enable = true;
+ signing = {
+ key = config.development.git.signing.key;
+ signByDefault = config.development.git.signing.signByDefault;
+ };
settings =
lib.recursiveUpdate
{
user = {
- name = config.programs.git.username;
- email = config.programs.git.email;
+ name = config.development.git.username;
+ email = config.development.git.email;
};
core.askPass = "";
alias = {
- # The exclamation mark (!) tells Git to execute this as an external shell command.
- # This overrides standard git-graph behavior with your custom format string.
log-graph = ''
!f() {
fmt=$(printf '\033[1;34mCommit:\033[0m \033[33m%%h\033[0m \033[91m%%d\033[0m%%n\033[1;34mParents:\033[0m \033[35m%%p\033[0m%%n\033[1;34mAuthor:\033[0m \033[32m%%an\033[0m <\033[96m%%ae\033[0m>%%n\033[1;34mDate:\033[0m \033[36m%%ad (%%ar)\033[0m%%n%%n%%B%%n\033[90m--------------------------------------------------------\033[0m')
git-graph --model custom --color always --sparse --style round --format="$fmt"
}; f | less -R
'';
- # Same formatting, but no pager — meant for embedding (lazygit, etc.)
log-graph-embed = ''
!f() {
fmt=$(printf '\033[1;34mCommit:\033[0m \033[33m%%h\033[0m \033[91m%%d\033[0m%%n\033[1;34mParents:\033[0m \033[35m%%p\033[0m%%n\033[1;34mAuthor:\033[0m \033[32m%%an\033[0m <\033[96m%%ae\033[0m>%%n\033[1;34mDate:\033[0m \033[36m%%ad (%%ar)\033[0m%%n%%n%%B%%n\033[90m--------------------------------------------------------\033[0m')
@@ -99,7 +112,7 @@
};
}
(
- lib.optionalAttrs config.programs.git.useSSH {
+ lib.optionalAttrs config.development.git.useSSH {
url."git@github.com:".insteadOf = "https://github.com/";
url."git@gitlab.com:".insteadOf = "https://gitlab.com/";
url."git@bitbucket.org:".insteadOf = "https://bitbucket.org/";
diff --git a/modules/development/lazygit/default.nix b/modules/development/lazygit/default.nix
index cf46e9a..2c920c2 100644
--- a/modules/development/lazygit/default.nix
+++ b/modules/development/lazygit/default.nix
@@ -2,12 +2,17 @@
# Lazygit - A simple terminal UI for git commands
{
- config = lib.mkIf config.programs.lazygit.enable {
+ options.development.lazygit = {
+ enable = lib.mkEnableOption "Enables lazygit.";
+ };
+
+ config = lib.mkIf config.development.lazygit.enable {
programs.lazygit = {
- enableBashIntegration = config.programs.bash.enable;
+ enable = true;
+ enableBashIntegration = config.terminal.bash.enable;
enableFishIntegration = config.programs.fish.enable;
enableNushellIntegration = config.programs.nushell.enable;
- enableZshIntegration = config.programs.zsh.enable;
+ enableZshIntegration = config.terminal.zsh.enable;
settings = {
gui = {
diff --git a/modules/development/nixvim/colorscheme.nix b/modules/development/nixvim/colorscheme.nix
index ba81634..ce2e7cc 100644
--- a/modules/development/nixvim/colorscheme.nix
+++ b/modules/development/nixvim/colorscheme.nix
@@ -2,7 +2,7 @@
# Colorscheme - Base16 theme configuration for nixvim
{
- config.programs.nixvim.colorschemes.base16 = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.colorschemes.base16 = lib.mkIf config.development.nixvim.enable {
enable = true;
colorscheme = with config.scheme.withHashtag; {
base00 = base00;
diff --git a/modules/development/nixvim/default.nix b/modules/development/nixvim/default.nix
index c7978d4..6cd0957 100644
--- a/modules/development/nixvim/default.nix
+++ b/modules/development/nixvim/default.nix
@@ -8,8 +8,13 @@
./plugins
];
- config = {
+ options.development.nixvim = {
+ enable = lib.mkEnableOption "Enables nixvim.";
+ };
+
+ config = lib.mkIf config.development.nixvim.enable {
programs.nixvim = {
+ enable = true;
defaultEditor = true;
opts = {
number = true;
@@ -79,14 +84,13 @@
update_in_insert = false;
float = {
border = "rounded";
- source = true; # Show which LSP the diagnostic is from
+ source = true;
header = "";
prefix = "";
};
};
};
- # Show diagnostics float on cursor hold
autoCmd = [
{
event = [ "CursorHold" ];
diff --git a/modules/development/nixvim/keymaps.nix b/modules/development/nixvim/keymaps.nix
index 4e4b35a..941e902 100644
--- a/modules/development/nixvim/keymaps.nix
+++ b/modules/development/nixvim/keymaps.nix
@@ -2,7 +2,7 @@
# Keymaps - Keyboard shortcut configuration for nixvim
{
- config.programs.nixvim.keymaps = lib.mkIf config.programs.nixvim.enable [
+ config.programs.nixvim.keymaps = lib.mkIf config.development.nixvim.enable [
{
key = "<c-h>";
action = "<c-w>h";
diff --git a/modules/development/nixvim/plugins/cmp.nix b/modules/development/nixvim/plugins/cmp.nix
index 683e0d3..0bf8601 100644
--- a/modules/development/nixvim/plugins/cmp.nix
+++ b/modules/development/nixvim/plugins/cmp.nix
@@ -2,7 +2,7 @@
# Cmp - Completion plugin (nvim-cmp) for auto-completion
{
- config.programs.nixvim.plugins.cmp = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.cmp = lib.mkIf config.development.nixvim.enable {
enable = true;
autoEnableSources = true;
settings = {
diff --git a/modules/development/nixvim/plugins/comment.nix b/modules/development/nixvim/plugins/comment.nix
index cc1b9cb..a14bd10 100644
--- a/modules/development/nixvim/plugins/comment.nix
+++ b/modules/development/nixvim/plugins/comment.nix
@@ -2,7 +2,7 @@
# Comment - Comment toggling plugin (comment.nvim)
{
- config.programs.nixvim.plugins.comment = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.comment = lib.mkIf config.development.nixvim.enable {
enable = true;
settings = {
toggler = {
diff --git a/modules/development/nixvim/plugins/gitsigns.nix b/modules/development/nixvim/plugins/gitsigns.nix
index ea99eba..a737238 100644
--- a/modules/development/nixvim/plugins/gitsigns.nix
+++ b/modules/development/nixvim/plugins/gitsigns.nix
@@ -2,7 +2,7 @@
# Gitsigns - Git status in the sign column (gitsigns.nvim)
{
- config.programs.nixvim.plugins.gitsigns = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.gitsigns = lib.mkIf config.development.nixvim.enable {
enable = true;
};
}
diff --git a/modules/development/nixvim/plugins/indent-blankline.nix b/modules/development/nixvim/plugins/indent-blankline.nix
index eb2674a..38e6a91 100644
--- a/modules/development/nixvim/plugins/indent-blankline.nix
+++ b/modules/development/nixvim/plugins/indent-blankline.nix
@@ -2,7 +2,7 @@
# Indent-blankline - Visual indentation guides (indent-blankline.nvim)
{
- config.programs.nixvim.plugins.indent-blankline = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.indent-blankline = lib.mkIf config.development.nixvim.enable {
enable = true;
settings = {
indent = {
diff --git a/modules/development/nixvim/plugins/lsp.nix b/modules/development/nixvim/plugins/lsp.nix
index 7fc3ddd..cac48a2 100644
--- a/modules/development/nixvim/plugins/lsp.nix
+++ b/modules/development/nixvim/plugins/lsp.nix
@@ -2,7 +2,7 @@
# LSP - Language Server Protocol configuration (nvim-lspconfig)
{
- config.programs.nixvim.plugins.lsp = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.lsp = lib.mkIf config.development.nixvim.enable {
enable = true;
inlayHints = true;
autoLoad = true;
diff --git a/modules/development/nixvim/plugins/lualine.nix b/modules/development/nixvim/plugins/lualine.nix
index 72f34be..b621b7c 100644
--- a/modules/development/nixvim/plugins/lualine.nix
+++ b/modules/development/nixvim/plugins/lualine.nix
@@ -2,7 +2,7 @@
# Lualine - Statusline configuration (lualine.nvim)
{
- config.programs.nixvim.plugins.lualine = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.lualine = lib.mkIf config.development.nixvim.enable {
enable = true;
settings = {
options = {
diff --git a/modules/development/nixvim/plugins/luasnip.nix b/modules/development/nixvim/plugins/luasnip.nix
index 60571e9..6c48c8b 100644
--- a/modules/development/nixvim/plugins/luasnip.nix
+++ b/modules/development/nixvim/plugins/luasnip.nix
@@ -2,7 +2,7 @@
# Luasnip - Snippet engine for Neovim (Lua-based)
{
- config.programs.nixvim.plugins.luasnip = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.luasnip = lib.mkIf config.development.nixvim.enable {
enable = true;
};
}
diff --git a/modules/development/nixvim/plugins/noice.nix b/modules/development/nixvim/plugins/noice.nix
index d466506..ddbe6c8 100644
--- a/modules/development/nixvim/plugins/noice.nix
+++ b/modules/development/nixvim/plugins/noice.nix
@@ -2,7 +2,7 @@
# Noice - Modern UI for Neovim (cmdline, popupmenu, messages)
{
- config.programs.nixvim.plugins.noice = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.noice = lib.mkIf config.development.nixvim.enable {
enable = true;
};
}
diff --git a/modules/development/nixvim/plugins/nvim-tree.nix b/modules/development/nixvim/plugins/nvim-tree.nix
index 2ad6570..4eeb8c6 100644
--- a/modules/development/nixvim/plugins/nvim-tree.nix
+++ b/modules/development/nixvim/plugins/nvim-tree.nix
@@ -2,7 +2,7 @@
# Nvim-tree - File explorer sidebar (nvim-tree.lua)
{
- config.programs.nixvim.plugins.nvim-tree = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.nvim-tree = lib.mkIf config.development.nixvim.enable {
enable = true;
settings = {
filters = {
diff --git a/modules/development/nixvim/plugins/telescope.nix b/modules/development/nixvim/plugins/telescope.nix
index b9678fc..cd8c001 100644
--- a/modules/development/nixvim/plugins/telescope.nix
+++ b/modules/development/nixvim/plugins/telescope.nix
@@ -2,7 +2,7 @@
# Telescope - Fuzzy finder
{
- config.programs.nixvim.plugins.telescope = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.telescope = lib.mkIf config.development.nixvim.enable {
enable = true;
extensions = {
fzf-native.enable = true; # faster fuzzy sorting
diff --git a/modules/development/nixvim/plugins/treesitter.nix b/modules/development/nixvim/plugins/treesitter.nix
index 035ac7a..c983832 100644
--- a/modules/development/nixvim/plugins/treesitter.nix
+++ b/modules/development/nixvim/plugins/treesitter.nix
@@ -2,7 +2,7 @@
# Treesitter - Syntax highlighting and parsing (nvim-treesitter)
{
- config.programs.nixvim.plugins.treesitter = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.treesitter = lib.mkIf config.development.nixvim.enable {
enable = true;
folding = {
enable = true;
diff --git a/modules/development/nixvim/plugins/web-devicons.nix b/modules/development/nixvim/plugins/web-devicons.nix
index 3c6ad86..6366af9 100644
--- a/modules/development/nixvim/plugins/web-devicons.nix
+++ b/modules/development/nixvim/plugins/web-devicons.nix
@@ -2,7 +2,7 @@
# Web-devicons - File icons for various file types (nvim-web-devicons)
{
- config.programs.nixvim.plugins.web-devicons = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.web-devicons = lib.mkIf config.development.nixvim.enable {
enable = true;
};
}
diff --git a/modules/development/nixvim/plugins/which-key.nix b/modules/development/nixvim/plugins/which-key.nix
index 18018e7..67f2427 100644
--- a/modules/development/nixvim/plugins/which-key.nix
+++ b/modules/development/nixvim/plugins/which-key.nix
@@ -2,7 +2,7 @@
# Which-key - Popup for keybindings (which-key.nvim)
{
- config.programs.nixvim.plugins.which-key = lib.mkIf config.programs.nixvim.enable {
+ config.programs.nixvim.plugins.which-key = lib.mkIf config.development.nixvim.enable {
enable = true;
settings = {
plugins = {
diff --git a/modules/development/opencode/default.nix b/modules/development/opencode/default.nix
index 0b3f0b6..a685894 100644
--- a/modules/development/opencode/default.nix
+++ b/modules/development/opencode/default.nix
@@ -7,8 +7,13 @@
# Opencode - AI-powered coding assistant (opencode.ai)
{
- config = lib.mkIf config.programs.opencode.enable {
+ options.development.opencode = {
+ enable = lib.mkEnableOption "Enables opencode.";
+ };
+
+ config = lib.mkIf config.development.opencode.enable {
programs.opencode = {
+ enable = true;
package = pkgs.opencode;
};
diff --git a/modules/development/qemu/default.nix b/modules/development/qemu/default.nix
index b34264c..5142458 100644
--- a/modules/development/qemu/default.nix
+++ b/modules/development/qemu/default.nix
@@ -7,7 +7,7 @@
# QEMU - generic and open source machine & userspace emulator and virtualizer.
{
- options.programs.qemu = {
+ options.development.qemu = {
enable = lib.mkEnableOption "Enables qemu.";
package = lib.mkOption {
type = lib.types.package;
@@ -24,7 +24,7 @@
};
};
- config = lib.mkIf config.programs.qemu.enable {
- home.packages = [ config.programs.qemu.package ];
+ config = lib.mkIf config.development.qemu.enable {
+ home.packages = [ config.development.qemu.package ];
};
}
diff --git a/modules/development/vscodium/default.nix b/modules/development/vscodium/default.nix
index a8cbd37..7763a94 100644
--- a/modules/development/vscodium/default.nix
+++ b/modules/development/vscodium/default.nix
@@ -7,8 +7,13 @@
# VSCodium - Visual Studio Code fork
{
- config = lib.mkIf config.programs.vscodium.enable {
+ options.development.vscodium = {
+ enable = lib.mkEnableOption "Enables vscodium.";
+ };
+
+ config = lib.mkIf config.development.vscodium.enable {
programs.vscodium = {
+ enable = true;
package = pkgs.vscodium;
};