Skip to content

Commit 9b54859

Browse files
committed
messy commit
1 parent c68f815 commit 9b54859

File tree

7 files changed

+129
-113
lines changed

7 files changed

+129
-113
lines changed

modules/home/class-laptop/mako.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
settings = {
55
margin = "10";
66
font = "pango:Fira Mono 9";
7-
anchor = "bottom-left";
7+
anchor = "bottom-right";
88
layer = "overlay";
99
group-by = "category,summary,body";
1010
background-color = "#${config.colors.background}";

modules/home/class-laptop/niri.nix

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@
2121
};
2222
keyboard = {
2323
xkb = {
24-
layout = "us";
25-
model = "pc105";
26-
variant = "altgr-intl";
24+
layout = "eu";
2725
options = "compose:rctrl,lv3:ralt_switch_multikey";
2826
};
2927
};
@@ -269,12 +267,20 @@
269267
"Mod+J".action = focus-window-or-workspace-down;
270268
"Mod+K".action = focus-window-or-workspace-up;
271269
"Mod+L".action = focus-column-or-monitor-right;
270+
"Mod+Left".action = focus-column-or-monitor-left;
271+
"Mod+Down".action = focus-window-or-workspace-down;
272+
"Mod+Up".action = focus-window-or-workspace-up;
273+
"Mod+Right".action = focus-column-or-monitor-right;
272274

273275
# small move
274276
"Mod+Shift+H".action = consume-or-expel-window-left;
275277
"Mod+Shift+L".action = consume-or-expel-window-right;
276278
"Mod+Shift+J".action = spawn "fish" "-c" "niri msg -j windows | jq -er '.[]|select(.is_focused==true)|.is_floating' && niri msg action move-window-to-workspace-down || niri msg action move-window-down-or-to-workspace-down";
277279
"Mod+Shift+K".action = spawn "fish" "-c" "niri msg -j windows | jq -er '.[]|select(.is_focused==true)|.is_floating' && niri msg action move-window-to-workspace-up || niri msg action move-window-up-or-to-workspace-up";
280+
"Mod+Shift+Left".action = consume-or-expel-window-left;
281+
"Mod+Shift+Right".action = consume-or-expel-window-right;
282+
"Mod+Shift+Down".action = spawn "fish" "-c" "niri msg -j windows | jq -er '.[]|select(.is_focused==true)|.is_floating' && niri msg action move-window-to-workspace-down || niri msg action move-window-down-or-to-workspace-down";
283+
"Mod+Shift+Up".action = spawn "fish" "-c" "niri msg -j windows | jq -er '.[]|select(.is_focused==true)|.is_floating' && niri msg action move-window-to-workspace-up || niri msg action move-window-up-or-to-workspace-up";
278284

279285
# large move
280286
# "Mod+Ctrl+H".action = move-column-left-or-to-monitor-left;
@@ -283,6 +289,10 @@
283289
# "Mod+Ctrl+L".action = move-column-right-or-to-monitor-right;
284290
"Mod+Ctrl+H".action = spawn "fish" "-c" "niri msg -j windows | jq -er '.[]|select(.is_focused==true)|.is_floating' && niri msg action move-window-to-monitor-left || niri msg action move-column-left-or-to-monitor-left";
285291
"Mod+Ctrl+L".action = spawn "fish" "-c" "niri msg -j windows | jq -er '.[]|select(.is_focused==true)|.is_floating' && niri msg action move-window-to-monitor-right || niri msg action move-column-right-or-to-monitor-right";
292+
"Mod+Ctrl+Down".action = move-workspace-down;
293+
"Mod+Ctrl+Up".action = move-workspace-up;
294+
"Mod+Ctrl+Left".action = spawn "fish" "-c" "niri msg -j windows | jq -er '.[]|select(.is_focused==true)|.is_floating' && niri msg action move-window-to-monitor-left || niri msg action move-column-left-or-to-monitor-left";
295+
"Mod+Ctrl+Right".action = spawn "fish" "-c" "niri msg -j windows | jq -er '.[]|select(.is_focused==true)|.is_floating' && niri msg action move-window-to-monitor-right || niri msg action move-column-right-or-to-monitor-right";
286296

287297
# swaylike workspace focus with wrapping
288298
# "Mod+Ctrl+J".action = spawn "fish" "-c" "niri msg -j workspaces | jq -r 'sort_by(.idx).[-2].is_focused' | grep true; and niri msg action focus-workspace (niri msg -j workspaces | jq -r 'sort_by(.idx).[0].idx'); or niri msg action focus-workspace-down";

modules/home/common/git.nix

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@
8787
url."ssh://[email protected]/".insteadOf = "https://github.com/";
8888
user.signingkey = "~/.ssh/id_ed25519";
8989

90-
aliases = {
90+
alias = {
9191
# shorthands for daily stuff
9292
a = "add";
9393
amend = "commit --amend --no-edit";
@@ -192,6 +192,8 @@
192192
};
193193
programs.delta = {
194194
enable = true;
195+
enableJujutsuIntegration = true;
196+
enableGitIntegration = true;
195197
options = {
196198
file-style = "omit";
197199
hunk-header-decoration-style = "blue ul box";

modules/home/common/nvim/lua/maps.lua

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,31 @@
11
vim.g.mapleader = " "
22

3+
vim.keymap.set({ "i", "c" }, "<c-bs>", "<c-w>")
4+
35
vim.keymap.set("n", "<c-s>", ":w<cr>", { desc = "write" })
46
vim.keymap.set("n", "<c-q>", ":wqa<cr>", { desc = "write and quit all" })
7+
vim.keymap.set("n", "<pageup>", "<c-u>", { desc = "scroll half a page up" })
8+
vim.keymap.set("n", "<pagedown>", "<c-d>", { desc = "scroll half a page down" })
9+
vim.keymap.set("n", "<s-pageup>", "<c-b>", { desc = "scroll a page up" })
10+
vim.keymap.set("n", "<s-pagedown>", "<c-f>", { desc = "scroll a page down" })
11+
vim.keymap.set("n", "<s-left>", function()
12+
local _, _, col, _ = unpack(vim.fn.getpos("."))
13+
vim.cmd("normal! ^")
14+
if col == vim.fn.getpos(".")[3] then
15+
vim.cmd("normal! 0")
16+
end
17+
end, { desc = "go to start of line" })
18+
vim.keymap.set({ "o", "x" }, "<s-left>", "^", { desc = "go to start of line" })
19+
vim.keymap.set({ "n", "o", "x" }, "<s-right>", "$", { desc = "go to end of line" })
20+
vim.keymap.set("n", "<home>", function()
21+
local _, _, col, _ = unpack(vim.fn.getpos("."))
22+
vim.cmd("normal! ^")
23+
if col == vim.fn.getpos(".")[3] then
24+
vim.cmd("normal! 0")
25+
end
26+
end, { desc = "go to start of line" })
27+
vim.keymap.set({ "o", "x" }, "<home>", "^", { desc = "go to start of line" })
28+
vim.keymap.set({ "n", "o", "x" }, "<end>", "$", { desc = "go to end of line" })
529

630
-- better up/down
731
vim.keymap.set("n", "j", [[ v:count > 1 ? "m'" . v:count . "j" : "gj" ]], { expr = true, silent = true })

modules/home/common/nvim/lua/plugins.lua

Lines changed: 62 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -24,59 +24,7 @@ local function inject_all(specs)
2424
end
2525

2626
return inject_all({
27-
{
28-
"sourcegraph/amp.nvim",
29-
branch = "main",
30-
lazy = false,
31-
opts = { auto_start = false, log_level = "info" },
32-
},
33-
{
34-
"zbirenbaum/copilot.lua",
35-
cmd = "Copilot",
36-
event = "InsertEnter",
37-
keys = {
38-
{
39-
"<leader>oa",
40-
function()
41-
require("copilot.suggestion").toggle_auto_trigger()
42-
end,
43-
desc = "toggle AI completion",
44-
},
45-
},
46-
opts = {
47-
server = {
48-
type = "binary",
49-
custom_server_filepath = "/etc/profiles/per-user/danieln/bin/copilot-language-server",
50-
},
51-
suggestion = {
52-
trigger_on_accept = false,
53-
auto_trigger = true,
54-
keymap = {
55-
accept = "<cr>",
56-
accept_word = "<s-cr>",
57-
accept_line = false,
58-
next = "<c-cr>",
59-
prev = false,
60-
dismiss = "<space>",
61-
},
62-
},
63-
},
64-
config = function(_, opts)
65-
require("copilot").setup(opts)
66-
vim.api.nvim_create_autocmd("User", {
67-
pattern = "BlinkCmpMenuOpen",
68-
callback = function()
69-
vim.b.copilot_suggestion_hidden = true
70-
end,
71-
})
72-
vim.api.nvim_create_autocmd("User", {
73-
pattern = "BlinkCmpMenuClose",
74-
callback = function()
75-
vim.b.copilot_suggestion_hidden = false
76-
end,
77-
})
78-
end,
79-
},
27+
8028
{
8129
"coder/claudecode.nvim",
8230
dependencies = {
@@ -114,12 +62,12 @@ return inject_all({
11462
{ "<leader>ad", "<cmd>ClaudeCodeDiffDeny<cr>", desc = "Deny diff" },
11563
},
11664
},
65+
11766
{
11867
"saghen/blink.cmp",
11968
lazy = false, -- it handles itself and is an integral part anyhow
12069
dependencies = {
12170
{ "rafamadriz/friendly-snippets" },
122-
{ "zbirenbaum/copilot.lua" },
12371
},
12472
opts = {
12573
appearance = {
@@ -203,9 +151,6 @@ return inject_all({
203151
},
204152
sources = {
205153
default = { "lsp", "path", "snippets", "buffer", "lazydev" },
206-
per_filetype = {
207-
codecompanion = { "codecompanion" },
208-
},
209154
providers = {
210155
lsp = {
211156
fallbacks = { "lazydev" },
@@ -285,6 +230,7 @@ return inject_all({
285230

286231
{
287232
"sindrets/diffview.nvim",
233+
enabled = false,
288234
cmd = { "DiffviewOpen", "DiffviewPR" },
289235
keys = {
290236
{
@@ -764,7 +710,7 @@ return inject_all({
764710
opts = {
765711
view = {
766712
style = "sign",
767-
signs = { add = "", change = "", delete = "_" },
713+
signs = { add = "", change = "", delete = "_" },
768714
priority = 20,
769715
},
770716
mappings = {
@@ -793,6 +739,20 @@ return inject_all({
793739
desc = "browse files",
794740
},
795741
},
742+
config = function(_, opts)
743+
require("mini.files").setup(opts)
744+
vim.api.nvim_create_autocmd("User", {
745+
pattern = "MiniFilesBufferCreate",
746+
callback = function(args)
747+
local buf_id = args.data.buf_id
748+
vim.keymap.set("n", "<left>", MiniFiles.go_out, { buffer = buf_id })
749+
vim.keymap.set("n", "<right>", function()
750+
MiniFiles.go_in({ close_on_file = true })
751+
end, { buffer = buf_id })
752+
vim.keymap.set("n", "<s-right>", MiniFiles.go_in, { buffer = buf_id })
753+
end,
754+
})
755+
end,
796756
},
797757

798758
{
@@ -1725,61 +1685,61 @@ return inject_all({
17251685
end,
17261686
},
17271687

1728-
-- {
1729-
-- "nvim-treesitter/nvim-treesitter",
1730-
-- branch = "main",
1731-
-- lazy = false,
1732-
-- dependencies = {
1733-
-- {
1734-
-- "nvim-treesitter/nvim-treesitter-textobjects",
1735-
-- branch = "main",
1736-
-- },
1737-
-- },
1738-
-- config = function(_, _)
1739-
-- vim.api.nvim_create_autocmd("FileType", {
1740-
-- pattern = { "*" },
1741-
-- callback = function()
1742-
-- local ok = pcall(vim.treesitter.start)
1743-
-- if ok then
1744-
-- vim.wo.foldexpr = "v:lua.vim.treesitter.foldexpr()"
1745-
-- vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
1746-
-- end
1747-
-- end,
1748-
-- })
1749-
-- end,
1750-
-- },
1751-
17521688
{
17531689
"nvim-treesitter/nvim-treesitter",
1690+
branch = "main",
17541691
lazy = false,
17551692
dependencies = {
17561693
{
17571694
"nvim-treesitter/nvim-treesitter-textobjects",
1695+
branch = "main",
17581696
},
17591697
},
1760-
opts = {
1761-
ensure_installed = {}, -- we get this from nix
1762-
highlight = {
1763-
enable = true,
1764-
},
1765-
incremental_selection = {
1766-
enable = false,
1767-
keymaps = {
1768-
init_selection = "<cr>",
1769-
node_incremental = "<cr>",
1770-
scope_incremental = "<s-cr>",
1771-
node_decremental = "<bs>",
1772-
},
1773-
},
1774-
indent = {
1775-
enable = true,
1776-
},
1777-
},
1778-
config = function(_, opts)
1779-
require("nvim-treesitter.configs").setup(opts)
1698+
config = function(_, _)
1699+
vim.api.nvim_create_autocmd("FileType", {
1700+
pattern = { "*" },
1701+
callback = function()
1702+
local ok = pcall(vim.treesitter.start)
1703+
if ok then
1704+
vim.wo.foldexpr = "v:lua.vim.treesitter.foldexpr()"
1705+
vim.bo.indentexpr = "v:lua.require'nvim-treesitter'.indentexpr()"
1706+
end
1707+
end,
1708+
})
17801709
end,
17811710
},
17821711

1712+
-- {
1713+
-- "nvim-treesitter/nvim-treesitter",
1714+
-- lazy = false,
1715+
-- dependencies = {
1716+
-- {
1717+
-- "nvim-treesitter/nvim-treesitter-textobjects",
1718+
-- },
1719+
-- },
1720+
-- opts = {
1721+
-- ensure_installed = {}, -- we get this from nix
1722+
-- highlight = {
1723+
-- enable = true,
1724+
-- },
1725+
-- incremental_selection = {
1726+
-- enable = false,
1727+
-- keymaps = {
1728+
-- init_selection = "<cr>",
1729+
-- node_incremental = "<cr>",
1730+
-- scope_incremental = "<s-cr>",
1731+
-- node_decremental = "<bs>",
1732+
-- },
1733+
-- },
1734+
-- indent = {
1735+
-- enable = true,
1736+
-- },
1737+
-- },
1738+
-- config = function(_, opts)
1739+
-- require("nvim-treesitter.configs").setup(opts)
1740+
-- end,
1741+
-- },
1742+
17831743
{
17841744
"nvim-treesitter/nvim-treesitter-context",
17851745
dependencies = {

modules/nixos/class-laptop/virt.nix

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
{...}: {
1+
{pkgs, ...}: {
22
virtualisation = {
33
docker = {
4-
enable = false; # rootful docker disabled
5-
daemon.settings = {
6-
rootless = {
7-
enable = true;
8-
setSocketVariable = true;
4+
enable = false;
5+
rootless = {
6+
enable = true;
7+
setSocketVariable = true;
8+
daemon.settings = {
99
bip = "10.200.0.1/24";
1010
default-address-pools = [
1111
{
@@ -21,4 +21,23 @@
2121
};
2222
};
2323
};
24+
25+
# Use pasta instead of slirp4netns for better DNS handling
26+
# Pasta auto-discovers DNS from /etc/resolv.conf by default via --dns-host
27+
environment.systemPackages = [ pkgs.passt ];
28+
systemd.user.services.docker = {
29+
path = [ pkgs.passt ];
30+
environment = {
31+
DOCKERD_ROOTLESS_ROOTLESSKIT_NET = "pasta";
32+
DOCKERD_ROOTLESS_ROOTLESSKIT_PORT_DRIVER = "implicit";
33+
# Use Cloudflare DNS for pasta (works on any network)
34+
# Containers don't need split DNS, so public resolver is fine
35+
DOCKERD_ROOTLESS_ROOTLESSKIT_PASTA_OPTIONS = "--dns-host 1.1.1.1";
36+
};
37+
};
38+
# https://github.com/NixOS/nixpkgs/issues/231191#issuecomment-1664053176
39+
environment.etc."resolv.conf".mode = "direct-symlink";
40+
networking.firewall = {
41+
checkReversePath = "loose";
42+
};
2443
}

modules/nixos/common/default.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
networking = {
2727
hostName = hostName;
28+
firewall.enable = true;
2829
nftables.enable = true;
2930
};
3031

0 commit comments

Comments
 (0)