Compare commits

...

21 Commits

Author SHA1 Message Date
62ccc18181 Revert "fix(stylix): Move vencord target to stylix"
This reverts commit 81d59b7cfd.
2025-12-21 00:57:53 +01:00
d175858293 Revert "fix(stylix): Move rofi target to stylix"
This reverts commit e8c5df1a80.
2025-12-21 00:57:03 +01:00
eb51057ac9 Revert "fix(vesktop): Make vesktop splash colors static"
This reverts commit f670c0720c.
2025-12-21 00:56:52 +01:00
e15e64a1f9 feat(stylix): Move stylix to home/demenik.nix 2025-12-21 00:56:42 +01:00
f670c0720c fix(vesktop): Make vesktop splash colors static 2025-12-21 00:51:33 +01:00
e8c5df1a80 fix(stylix): Move rofi target to stylix 2025-12-21 00:49:29 +01:00
81d59b7cfd fix(stylix): Move vencord target to stylix 2025-12-21 00:48:45 +01:00
d6aac89d5d fix(flake): Replace old /home/headless.nix modules 2025-12-21 00:45:40 +01:00
a1c4fcbf1d fix(flake): Use inherit system 2025-12-21 00:43:01 +01:00
3349c8ecad feat(git): Use builtin include option and add gitea instance 2025-12-21 00:29:33 +01:00
f588b7d389 feat(zsh): Add gitea remote icon 2025-12-21 00:29:04 +01:00
demenik
e7b6b488d9 fix(fs): Use fmask=0077, dmask=0077 2025-12-20 15:03:08 +01:00
demenik
28a1a1db4b feat(nvim): Modify nvim-tree 2025-12-17 16:54:01 +01:00
demenik
d5e461524b fix(nvim): Remove unused twilight plugin 2025-12-17 15:32:04 +01:00
demenik
8f6e8a7a14 refactor(nvim): Use NvimTreeToggle instead of lua api, Move gitsigns require to each bind 2025-12-17 15:31:50 +01:00
demenik
80702d6076 fix(nvim): Undo removing vim.g 2025-12-17 13:21:20 +01:00
demenik
5859d26c6c fix(nvim): Remove unused incline import 2025-12-17 13:18:04 +01:00
demenik
451a70d3c7 feat(nvim): Add snacks.profiler 2025-12-17 13:17:39 +01:00
demenik
ce8eddeadf refactor(nvim): Remove builds.nix 2025-12-17 13:17:30 +01:00
demenik
3af9c66290 fix(nvim): Change plugins.snacks.dashboard to plugins.snacks.settings.dashboard 2025-12-17 12:29:36 +01:00
demenik
210ce6236c refactor(nvim): Change snacks/dashboard.nix to also host the extraConfig 2025-12-17 12:28:31 +01:00
18 changed files with 200 additions and 184 deletions

View File

@@ -45,7 +45,6 @@
nixpkgs, nixpkgs,
home-manager, home-manager,
agenix, agenix,
stylix,
nixos-wsl, nixos-wsl,
statusbar, statusbar,
... ...
@@ -98,9 +97,6 @@
agenix.homeManagerModules.default agenix.homeManagerModules.default
./secrets ./secrets
stylix.homeModules.stylix
./home/stylix
]; ];
}; };
@@ -117,9 +113,6 @@
agenix.homeManagerModules.default agenix.homeManagerModules.default
./secrets ./secrets
stylix.homeModules.stylix
./home/stylix
]; ];
}; };
@@ -147,7 +140,7 @@
modules ? [], modules ? [],
}: }:
home-manager.lib.homeManagerConfiguration { home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {hostPlatform = system;}; pkgs = import nixpkgs {inherit system;};
inherit modules; inherit modules;
extraSpecialArgs = {inherit inputs stateVersion user dotsDir;}; extraSpecialArgs = {inherit inputs stateVersion user dotsDir;};
}; };
@@ -156,13 +149,13 @@
user = "nix"; user = "nix";
dotsDir = "/home/homelab-dots"; dotsDir = "/home/homelab-dots";
modules = [ modules = [
./home/headless.nix ./home/demenik.nix
]; ];
}; };
"db56@wsl50" = mkHomeConfig { "db56@wsl50" = mkHomeConfig {
user = "db56"; user = "db56";
modules = [ modules = [
./home/headless.nix ./home/demenik.nix
]; ];
}; };
}; };

View File

@@ -1,4 +1,8 @@
{pkgs, ...}: { {
pkgs,
inputs,
...
}: {
imports = [ imports = [
./global.nix ./global.nix
./xdg-desktop.nix ./xdg-desktop.nix
@@ -16,6 +20,9 @@
./editors/nvim ./editors/nvim
./editors/intellij.nix ./editors/intellij.nix
./editors/godot.nix ./editors/godot.nix
inputs.stylix.homeModules.stylix
./stylix
]; ];
home.file.".face" = { home.file.".face" = {

View File

@@ -1,56 +0,0 @@
pkgs: let
build = {
version,
owner,
name,
rev,
hash,
}:
pkgs.vimUtils.buildVimPlugin {
pname = name;
inherit version;
src = pkgs.fetchFromGitHub {
repo = name;
inherit owner rev;
sha256 = hash;
};
};
in {
# INFO: Last update: 18. Aug. 2025 | Sort latest -> oldest
# https://github.com/SCJangra/table-nvim
table-nvim = build {
version = "27-09-2024";
owner = "SCJangra";
name = "table-nvim";
rev = "c044fd37169eb10376962b0d0cec5f94d58ca626";
hash = "1ygn4bvnpbd49gcgbkh0cdj3p75jsmwi87hby78w0fd22205pvmi";
};
# https://github.com/michaelrommel/nvim-silicon
silicon = build {
version = "09-01-2025";
owner = "michaelrommel";
name = "nvim-silicon";
rev = "7f66bda8f60c97a5bf4b37e5b8acb0e829ae3c32";
hash = "1zk6lgghvdcys20cqvh2g1kjf661q1w97niq5nx1zz4yppy2f9jy";
};
# https://github.com/b0o/incline.nvim
incline = build {
version = "05-06-2025";
owner = "b0o";
name = "incline.nvim";
rev = "0fd2d5a27504dba7fdc507a53275f22c081fe640";
hash = "19x35z2sj3hl3icrxzbs67xhxgq9d237vhgzqrz8ppdc74p8wgaz";
};
# https://github.com/Aasim-A/scrollEOF.nvim
scrollEOF = build {
version = "31-05-2025";
owner = "Aasim-A";
name = "scrollEOF.nvim";
rev = "2575109749b4bf3a0bf979a17947b3c1e8c5137e";
hash = "1s66v9n0arg81wgw1z8iv9s304j78cd506z522avpc88d3ji4yl4";
};
}

View File

@@ -1,5 +1,3 @@
require("incline").setup {}
-- vim_current_word -- vim_current_word
vim.cmd [[ vim.cmd [[
hi CurrentWord guifg=#cba6f7 hi CurrentWord guifg=#cba6f7

View File

@@ -1,10 +1,17 @@
{pkgs, ...}: { {pkgs, ...}: {
extraPlugins = let extraPlugins = let
builds = import ../builds.nix pkgs; scrollEOF = pkgs.vimUtils.buildVimPlugin {
pname = "scrollEOF.nvim";
version = "09-14-2025";
src = pkgs.fetchFromGitHub {
owner = "Aasim-A";
repo = "scrollEOF.nvim";
rev = "e462b9a07b8166c3e8011f1dcbc6bf68b67cd8d7";
hash = "sha256-y7yOCRSGTtQcFyWVkGe3xQqstHZMQKayxtqkOVlZ4PM=";
};
};
in in
with builds;
with pkgs.vimPlugins; [ with pkgs.vimPlugins; [
incline
scrollEOF scrollEOF
vim-hexokinase vim-hexokinase

View File

@@ -23,14 +23,28 @@
}; };
rainbow-delimiters.enable = true; rainbow-delimiters.enable = true;
twilight.enable = true;
nvim-tree = { nvim-tree = {
enable = true; enable = true;
settings = { settings = {
hijack_cursor = true;
view.width = {
min = 30;
max = -1;
};
renderer = { renderer = {
group_empty = true; group_empty = true;
icons = {
show.modified = true;
glyphs.modified = "";
};
indent_markers.enable = true;
}; };
modified = {
enable = true;
show_on_dirs = false;
};
update_focused_file.enable = true;
}; };
}; };
}; };

View File

@@ -1,6 +1,5 @@
{ {
enable = true; enable = true;
settings = { settings = {
numhl = true; numhl = true;
current_line_blame = true; current_line_blame = true;

View File

@@ -1,4 +1,4 @@
{pkgs, ...}: { {
plugins = { plugins = {
markdown-preview = { markdown-preview = {
enable = true; enable = true;
@@ -16,8 +16,4 @@
}; };
}; };
}; };
extraPlugins = let
builds = import ../../builds.nix pkgs;
in [builds.table-nvim];
} }

View File

@@ -6,7 +6,7 @@
./fzf-lua.nix ./fzf-lua.nix
./grug-far.nix ./grug-far.nix
./presence.nix ./presence.nix
./silicon.nix # ./silicon.nix
./todo-comments.nix ./todo-comments.nix
./debugging.nix ./debugging.nix
./snacks ./snacks

View File

@@ -1,6 +1,23 @@
{pkgs, ...}: let {pkgs, ...}: let
theme = "Catppuccin"; silicon-nvim = pkgs.vimUtils.buildVimPlugin {
font = "JetBrainsMono Nerd Font=32;Noto Color Emoji=34"; pname = "silicon.nvim";
version = "12-03-2024";
src = pkgs.fetchFromGitHub {
owner = "krivahtoo";
repo = "silicon.nvim";
rev = "d8a6852b7158cc98f44ab12a0811ccf7d111dc71";
hash = "sha256-3ABUsfJpb6RO6AiuuSL5gwDofJIwC5tlEMzBrlY9/s0=";
};
};
theme =
pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "sublime-text";
rev = "3d8625d937d89869476e94bc100192aa220ce44a";
hash = "sha256-3ABUsfJpb6RO6AiuuSL5gwDofJIwC5tlEMzBrlY9/s0=";
}
+ "/Mocha.tmTheme";
font = "JetBrainsMono Nerd Font=16;Noto Color Emoji=16";
in { in {
extraPackages = with pkgs; [ extraPackages = with pkgs; [
silicon silicon
@@ -8,17 +25,18 @@ in {
noto-fonts-color-emoji noto-fonts-color-emoji
]; ];
extraPlugins = let extraPlugins = [silicon-nvim];
builds = import ../builds.nix pkgs;
in
with builds; [silicon];
extraConfigLua = '' extraConfigLua =
require 'nvim-silicon'.setup { # lua
font = '${font}', ''
theme = '${theme}', require("silicon").setup {
no_line_number = true, font = "${font}",
no_window_controls = true, theme = "${theme}",
} window_controls = false,
''; output = {
path = "~/Downloads",
},
}
'';
} }

View File

@@ -1,53 +1,83 @@
let {
themes = import ./themes.nix; plugins.snacks.settings.dashboard = let
theme = themes.dg_baby; themes = import ./themes.nix;
in { theme = themes.dg_baby;
enabled = true; in {
preset = { enabled = true;
inherit (theme) header; preset = {
keys = [ inherit (theme) header;
keys = [
{
icon = " ";
key = "f";
desc = "Find File";
action = ":lua Snacks.dashboard.pick('files')";
}
{
icon = " ";
key = "n";
desc = "New File";
action = ":ene | startinsert";
}
{
icon = " ";
key = "l";
desc = "Live Grep";
action = ":lua Snacks.dashboard.pick('live_grep')";
}
{
icon = " ";
key = "o";
desc = "Old Files";
action = ":lua Snacks.dashboard.pick('oldfiles')";
}
{
icon = " ";
key = "q";
desc = "Quit";
action = ":qa";
}
];
};
sections = [
{section = "header";}
{ {
icon = " "; section = "keys";
key = "f"; gap = 1;
desc = "Find File"; padding = 1;
action = ":lua Snacks.dashboard.pick('files')";
} }
{ {
icon = " "; title = theme.quote;
key = "n"; align = "center";
desc = "New File";
action = ":ene | startinsert";
}
{
icon = " ";
key = "l";
desc = "Live Grep";
action = ":lua Snacks.dashboard.pick('live_grep')";
}
{
icon = " ";
key = "o";
desc = "Old Files";
action = ":lua Snacks.dashboard.pick('oldfiles')";
}
{
icon = " ";
key = "q";
desc = "Quit";
action = ":qa";
} }
]; ];
}; };
sections = [
{section = "header";} extraConfigLua =
{ # lua
section = "keys"; ''
gap = 1; local prev = { new_name = "", old_name = "" } -- Prevents duplicate events
padding = 1; vim.api.nvim_create_autocmd("User", {
} pattern = "NvimTreeSetup",
{ callback = function()
title = theme.quote; local events = require("nvim-tree.api").events
align = "center"; events.subscribe(events.Event.NodeRenamed, function(data)
} if prev.new_name ~= data.new_name or prev.old_name ~= data.old_name then
]; data = data
Snacks.rename.on_rename_file(data.old_name, data.new_name)
end
end)
end,
})
vim.api.nvim_create_autocmd("User", {
pattern = "SnacksDashboardOpened",
callback = function()
if vim.bo.filetype == "snacks_dashboard" then
vim.b.minitrailspace_disable = true
vim.b.miniindentscope_disable = true
end
end,
})
'';
} }

View File

@@ -1,4 +1,6 @@
{ {
imports = [./dashboard.nix];
plugins.snacks = { plugins.snacks = {
enable = true; enable = true;
settings = { settings = {
@@ -11,35 +13,18 @@
image.enabled = true; image.enabled = true;
quickfile.enabled = true; quickfile.enabled = true;
rename.enabled = true; rename.enabled = true;
dashboard = import ./dashboard.nix;
}; };
}; };
extraConfigLua = extraConfigLuaPre =
# lua # lua
'' ''
local prev = { new_name = "", old_name = "" } -- Prevents duplicate events if vim.env.PROF then
vim.api.nvim_create_autocmd("User", { require("snacks.profiler").startup {
pattern = "NvimTreeSetup", startup = {
callback = function() event = "VimEnter",
local events = require("nvim-tree.api").events },
events.subscribe(events.Event.NodeRenamed, function(data) }
if prev.new_name ~= data.new_name or prev.old_name ~= data.old_name then end
data = data
Snacks.rename.on_rename_file(data.old_name, data.new_name)
end
end)
end,
})
vim.api.nvim_create_autocmd("User", {
pattern = "SnacksDashboardOpened",
callback = function()
if vim.bo.filetype == "snacks_dashboard" then
vim.b.minitrailspace_disable = true
vim.b.miniindentscope_disable = true
end
end,
})
''; '';
} }

View File

@@ -1,5 +1,4 @@
local wk = require "which-key" local wk = require "which-key"
local gitsigns = require "gitsigns"
local Terminal = require("toggleterm.terminal").Terminal local Terminal = require("toggleterm.terminal").Terminal
local set_key = { local set_key = {
@@ -14,7 +13,7 @@ local set_key = {
} }
wk.add { wk.add {
set_key.cmd("e", require("nvim-tree.api").tree.toggle, "Files"), set_key.cmd("e", "NvimTreeToggle", "Files"),
set_key.cmd("w", "w!", "Write buffer"), set_key.cmd("w", "w!", "Write buffer"),
set_key.cmd("n", "ene | startinsert", "New buffer"), set_key.cmd("n", "ene | startinsert", "New buffer"),
set_key.cmd("d", function() set_key.cmd("d", function()
@@ -29,7 +28,7 @@ wk.add {
set_key.git_signs = function(key, action, desc) set_key.git_signs = function(key, action, desc)
return set_key.cmd("g" .. key, function() return set_key.cmd("g" .. key, function()
gitsigns[action]() require("gitsigns")[action]()
end, desc) end, desc)
end end
@@ -64,14 +63,14 @@ wk.add {
set_key.git_signs("hv", "preview_hunk", "Preview"), set_key.git_signs("hv", "preview_hunk", "Preview"),
set_key.git_signs("hu", "undo_stage_hunk", "Undo Stage"), set_key.git_signs("hu", "undo_stage_hunk", "Undo Stage"),
set_key.cmd("ghn", function() set_key.cmd("ghn", function()
gitsigns.nav_hunk "next" require("gitsigns").nav_hunk "next"
end, "Next"), end, "Next"),
set_key.cmd("ghp", function() set_key.cmd("ghp", function()
gitsigns.nav_hunk "prev" require("gitsigns").nav_hunk "prev"
end, "Previous"), end, "Previous"),
set_key.git_signs("hd", "diffthis", "Diff this"), set_key.git_signs("hd", "diffthis", "Diff this"),
set_key.cmd("ghD", function() set_key.cmd("ghD", function()
gitsigns.diffthis "~" require("gitsigns").diffthis "~"
end, "Diff this"), end, "Diff this"),
} }
@@ -172,9 +171,9 @@ wk.add {
set_key.cmd("mv", "MarkdownPreviewToggle", "Browser preview"), set_key.cmd("mv", "MarkdownPreviewToggle", "Browser preview"),
--- Snap (Silicon) -- --- Snap (Silicon) --
{ "<leader>S", group = "Snap(Silicon)" }, -- { "<leader>S", group = "Snap(Silicon)" },
set_key.cmd("Ss", require("silicon").file, "Save as file"), -- set_key.cmd("Ss", require("silicon").file, "Save as file"),
set_key.cmd("Sc", require("silicon").clip, "Copy to clipboard"), -- set_key.cmd("Sc", require("silicon").clip, "Copy to clipboard"),
--- Latex (Vimtex) -- --- Latex (Vimtex) --
{ "<leader>L", group = "Latex" }, { "<leader>L", group = "Latex" },

View File

@@ -24,6 +24,7 @@
url = { url = {
"ssh://git@gitlab.uni-ulm.de".insteadOf = "https://gitlab.uni-ulm.de"; "ssh://git@gitlab.uni-ulm.de".insteadOf = "https://gitlab.uni-ulm.de";
"ssh://git@github.com".insteadOf = "https://github.com"; "ssh://git@github.com".insteadOf = "https://github.com";
"ssh://git@gitea.demenik.dev".insteadOf = "https://gitea.demenik.dev";
}; };
user = { user = {
@@ -32,16 +33,34 @@
signingkey = "${config.home.homeDirectory}/.ssh/id_rsa"; signingkey = "${config.home.homeDirectory}/.ssh/id_rsa";
}; };
"includeIf \"hasconfig:remote.*.url:git@gitlab.uni-ulm.de:*/**\"" = {
path = "${pkgs.writeText ".gitconfig-gitlab.uni-ulm.de" ''
[user]
email = "dominik.bernroider@uni-ulm.de"
name = "Dominik Bernroider"
''}";
};
init.defaultBranch = "main"; init.defaultBranch = "main";
}; };
includes = let
mkRemoteSsh = {
user ? "git",
url,
config,
}: {
condition = "hasconfig:remote.*.url:${user}@${url}:*/**";
path = "${pkgs.writeText "gitconfig-${url}" (pkgs.lib.generators.toGitINI config)}";
};
in [
(mkRemoteSsh {
url = "gitlab.uni-ulm.de";
config.user = {
email = "dominik.bernroider@uni-ulm.de";
name = "Dominik Bernroider";
};
})
(mkRemoteSsh {
url = "gitea.demenik.dev";
config.user = {
email = "mail@demenik.dev";
name = "demenik";
};
})
];
}; };
gpg.enable = true; gpg.enable = true;
}; };

View File

@@ -27,6 +27,10 @@
user = "git"; user = "git";
identitiesOnly = true; identitiesOnly = true;
}; };
"lg" = {
hostname = "192.168.178.160";
user = "root";
};
}; };
}; };
} }

View File

@@ -57,6 +57,9 @@ final_space = true
fetch_upstream_icon = true fetch_upstream_icon = true
fetch_status = true fetch_status = true
[blocks.segments.properties.upstream_icons]
"gitea.demenik.dev" = ""
[[blocks]] [[blocks]]
type = 'prompt' type = 'prompt'
alignment = 'left' alignment = 'left'

View File

@@ -19,7 +19,7 @@
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-label/NIXBOOT"; device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat"; fsType = "vfat";
options = ["fmask=0022" "dmask=0022"]; options = ["fmask=0077" "dmask=0077"];
}; };
swapDevices = []; swapDevices = [];

View File

@@ -19,7 +19,7 @@
fileSystems."/boot" = { fileSystems."/boot" = {
device = "/dev/disk/by-label/NIXBOOT"; device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat"; fsType = "vfat";
options = ["fmask=0022" "dmask=0022"]; options = ["fmask=0077" "dmask=0077"];
}; };
swapDevices = []; swapDevices = [];