Compare commits
14 Commits
neovim-ref
...
yshtola-bu
| Author | SHA1 | Date | |
|---|---|---|---|
| af0357aa1e | |||
| 4e0a2fc86f | |||
| 8b7c4fd871 | |||
| e556dae87d | |||
| 1d04c5b5cd | |||
| 313177eff7 | |||
| 754635dafc | |||
| 1b20e6d215 | |||
| edada4c1c9 | |||
| 11e6274e37 | |||
| a2899cf823 | |||
| 807d099a70 | |||
| a3d0c56204 | |||
| 6bdff15117 |
@@ -1,100 +0,0 @@
|
|||||||
k9s:
|
|
||||||
body:
|
|
||||||
fgColor: '#cdd6f4'
|
|
||||||
bgColor: '#1e1e2e'
|
|
||||||
logoColor: '#cba6f7'
|
|
||||||
prompt:
|
|
||||||
fgColor: '#cdd6f4'
|
|
||||||
bgColor: '#181825'
|
|
||||||
suggestColor: '#89b4fa'
|
|
||||||
help:
|
|
||||||
fgColor: '#cdd6f4'
|
|
||||||
bgColor: '#1e1e2e'
|
|
||||||
sectionColor: '#a6e3a1'
|
|
||||||
keyColor: '#89b4fa'
|
|
||||||
numKeyColor: '#eba0ac'
|
|
||||||
frame:
|
|
||||||
title:
|
|
||||||
fgColor: '#94e2d5'
|
|
||||||
bgColor: '#1e1e2e'
|
|
||||||
highlightColor: '#f5c2e7'
|
|
||||||
counterColor: '#f9e2af'
|
|
||||||
filterColor: '#a6e3a1'
|
|
||||||
border:
|
|
||||||
fgColor: '#cba6f7'
|
|
||||||
focusColor: '#b4befe'
|
|
||||||
menu:
|
|
||||||
fgColor: '#cdd6f4'
|
|
||||||
keyColor: '#89b4fa'
|
|
||||||
numKeyColor: '#eba0ac'
|
|
||||||
crumbs:
|
|
||||||
fgColor: '#1e1e2e'
|
|
||||||
bgColor: '#eba0ac'
|
|
||||||
activeColor: '#f2cdcd'
|
|
||||||
status:
|
|
||||||
newColor: '#89b4fa'
|
|
||||||
modifyColor: '#b4befe'
|
|
||||||
addColor: '#a6e3a1'
|
|
||||||
pendingColor: '#fab387'
|
|
||||||
errorColor: '#f38ba8'
|
|
||||||
highlightColor: '#89dceb'
|
|
||||||
killColor: '#cba6f7'
|
|
||||||
completedColor: '#6c7086'
|
|
||||||
info:
|
|
||||||
fgColor: '#fab387'
|
|
||||||
sectionColor: '#cdd6f4'
|
|
||||||
views:
|
|
||||||
table:
|
|
||||||
fgColor: '#cdd6f4'
|
|
||||||
bgColor: '#1e1e2e'
|
|
||||||
cursorFgColor: '#313244'
|
|
||||||
cursorBgColor: '#45475a'
|
|
||||||
markColor: '#f5e0dc'
|
|
||||||
header:
|
|
||||||
fgColor: '#f9e2af'
|
|
||||||
bgColor: '#1e1e2e'
|
|
||||||
sorterColor: '#89dceb'
|
|
||||||
xray:
|
|
||||||
fgColor: '#cdd6f4'
|
|
||||||
bgColor: '#1e1e2e'
|
|
||||||
cursorColor: '#45475a'
|
|
||||||
cursorTextColor: '#1e1e2e'
|
|
||||||
graphicColor: '#f5c2e7'
|
|
||||||
charts:
|
|
||||||
bgColor: '#1e1e2e'
|
|
||||||
chartBgColor: '#1e1e2e'
|
|
||||||
dialBgColor: '#1e1e2e'
|
|
||||||
defaultDialColors:
|
|
||||||
- '#a6e3a1'
|
|
||||||
- '#f38ba8'
|
|
||||||
defaultChartColors:
|
|
||||||
- '#a6e3a1'
|
|
||||||
- '#f38ba8'
|
|
||||||
resourceColors:
|
|
||||||
cpu:
|
|
||||||
- '#cba6f7'
|
|
||||||
- '#89b4fa'
|
|
||||||
mem:
|
|
||||||
- '#f9e2af'
|
|
||||||
- '#fab387'
|
|
||||||
yaml:
|
|
||||||
keyColor: '#89b4fa'
|
|
||||||
valueColor: '#cdd6f4'
|
|
||||||
colonColor: '#a6adc8'
|
|
||||||
logs:
|
|
||||||
fgColor: '#cdd6f4'
|
|
||||||
bgColor: '#1e1e2e'
|
|
||||||
indicator:
|
|
||||||
fgColor: '#b4befe'
|
|
||||||
bgColor: '#1e1e2e'
|
|
||||||
toggleOnColor: '#a6e3a1'
|
|
||||||
toggleOffColor: '#a6adc8'
|
|
||||||
dialog:
|
|
||||||
fgColor: '#f9e2af'
|
|
||||||
bgColor: '#9399b2'
|
|
||||||
buttonFgColor: '#1e1e2e'
|
|
||||||
buttonBgColor: '#7f849c'
|
|
||||||
buttonFocusFgColor: '#1e1e2e'
|
|
||||||
buttonFocusBgColor: '#f5c2e7'
|
|
||||||
labelFgColor: '#f5e0dc'
|
|
||||||
fieldFgColor: '#cdd6f4'
|
|
||||||
|
|||||||
@@ -12,9 +12,6 @@ return {
|
|||||||
-- { import = "astrocommunity.pack.go "}, -- golang support
|
-- { import = "astrocommunity.pack.go "}, -- golang support
|
||||||
{ import = "astrocommunity.pack.fish" }, -- fish support
|
{ import = "astrocommunity.pack.fish" }, -- fish support
|
||||||
-- { import = "astrocommunity.pack.cs" }, -- csharp/dotnet support
|
-- { import = "astrocommunity.pack.cs" }, -- csharp/dotnet support
|
||||||
{ import = "astrocommunity.completion.copilot-lua" }, -- copilot
|
|
||||||
{ import = "astrocommunity.completion.copilot-lua-cmp" }, -- copilot
|
|
||||||
{ import = "astrocommunity.recipes.heirline-mode-text-statusline" }, -- statusline customization
|
|
||||||
|
|
||||||
-- import/override with your plugins folder
|
-- import/override with your plugins folder
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,56 +0,0 @@
|
|||||||
local function toggle_tui(cmd, direction, size)
|
|
||||||
local terminal
|
|
||||||
local dir = direction or "float"
|
|
||||||
local term_size = size
|
|
||||||
|
|
||||||
return function()
|
|
||||||
if not terminal then
|
|
||||||
local Terminal = require("toggleterm.terminal").Terminal
|
|
||||||
terminal = Terminal:new {
|
|
||||||
cmd = cmd,
|
|
||||||
hidden = true,
|
|
||||||
close_on_exit = true,
|
|
||||||
direction = dir,
|
|
||||||
on_open = function() vim.cmd "startinsert!" end,
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
terminal:toggle(term_size, dir)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local toggle_k9s = toggle_tui "k9s"
|
|
||||||
local toggle_ghdash = toggle_tui "gh-dash"
|
|
||||||
local toggle_ai_opencode = toggle_tui("opencode", "vertical", 80)
|
|
||||||
local toggle_ai_copilot = toggle_tui("copilot", "vertical", 80)
|
|
||||||
|
|
||||||
return {
|
|
||||||
{
|
|
||||||
"AstroNvim/astrocore",
|
|
||||||
---@type AstroCoreOpts
|
|
||||||
opts = {
|
|
||||||
mappings = {
|
|
||||||
n = {
|
|
||||||
["<Leader>k"] = { desc = "Kubernetes" },
|
|
||||||
["<Leader>ki"] = {
|
|
||||||
toggle_k9s,
|
|
||||||
desc = "K9s",
|
|
||||||
},
|
|
||||||
["<Leader>gD"] = {
|
|
||||||
toggle_ghdash,
|
|
||||||
desc = "GitHub dashboard",
|
|
||||||
},
|
|
||||||
["<Leader>a"] = { desc = "AI" },
|
|
||||||
["<Leader>ao"] = {
|
|
||||||
toggle_ai_opencode,
|
|
||||||
desc = "opencode",
|
|
||||||
},
|
|
||||||
["<Leader>ag"] = {
|
|
||||||
toggle_ai_copilot,
|
|
||||||
desc = "GH Copilot",
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
@@ -198,8 +198,8 @@ bindsym XF86AudioMicMute exec pactl set-source-mute @DEFAULT_SOURCE@ toggle
|
|||||||
bindsym XF86AudioPlay exec playerctl play-pause
|
bindsym XF86AudioPlay exec playerctl play-pause
|
||||||
bindsym XF86AudioNext exec playerctl next
|
bindsym XF86AudioNext exec playerctl next
|
||||||
bindsym XF86AudioPrev exec playerctl previous
|
bindsym XF86AudioPrev exec playerctl previous
|
||||||
bindsym XF86MonBrightnessUp exec brightnessctl set +5%
|
bindsym XF86MonBrightnessUp exec light -A 5
|
||||||
bindsym XF86MonBrightnessDown exec brightnessctl set 5%-
|
bindsym XF86MonBrightnessDown exec light -U 5
|
||||||
|
|
||||||
### Lock the screen
|
### Lock the screen
|
||||||
bindsym $mod+Ctrl+q 'swaylock -f -i /home/wyatt/.wallpaper/.wallpaper_lock.png'
|
bindsym $mod+Ctrl+q 'swaylock -f -i /home/wyatt/.wallpaper/.wallpaper_lock.png'
|
||||||
|
|||||||
405
flake.lock
generated
405
flake.lock
generated
@@ -9,11 +9,11 @@
|
|||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1780372639,
|
"lastModified": 1771170334,
|
||||||
"narHash": "sha256-VFzXYHlIGwO4h4ovtnpZj9sX/Qu6+dlI00sXjHdwi2w=",
|
"narHash": "sha256-tCgoCWORfNHaRXTh2QS44LwxlV8q28jVvjN5ioMicv8=",
|
||||||
"owner": "ezKEa",
|
"owner": "ezKEa",
|
||||||
"repo": "aagl-gtk-on-nix",
|
"repo": "aagl-gtk-on-nix",
|
||||||
"rev": "1ee1e8864a1fcfcc21a5fb5af4bd328b3c829f42",
|
"rev": "821b4f92c2c0981ea5b571b03403df87d2b2e2ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -29,37 +29,16 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781190061,
|
"lastModified": 1767634391,
|
||||||
"narHash": "sha256-QRMpLbsmlciMGv4yx75FUoIl54K02JbIX1tgdPHPw1s=",
|
"narHash": "sha256-owcSz2ICqTSvhBbhPP+1eWzi88e54rRZtfCNE5E/wwg=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "f2b3fdb347f91dfd344ad196666a0b0fe8aad05c",
|
"rev": "08585aacc3d6d6c280a02da195fdbd4b9cf083c2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"ref": "nix-darwin-26.05",
|
"ref": "nix-darwin-25.11",
|
||||||
"repo": "nix-darwin",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"darwin_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nur",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1779036909,
|
|
||||||
"narHash": "sha256-zXcwYQGCT6pzinK+1dBB2ekTVtfxGZAapb3Evdcu4fY=",
|
|
||||||
"owner": "LnL7",
|
|
||||||
"repo": "nix-darwin",
|
|
||||||
"rev": "56c666e108467d87d13508936aade6d567f2a501",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "LnL7",
|
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -80,137 +59,32 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
"flake-schemas": {
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767039857,
|
"lastModified": 1761577921,
|
||||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
"narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=",
|
||||||
"owner": "NixOS",
|
"rev": "47849c7625e223d36766968cc6dc23ba0e135922",
|
||||||
"repo": "flake-compat",
|
"revCount": 107,
|
||||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
"type": "tarball",
|
||||||
"type": "github"
|
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"type": "tarball",
|
||||||
"repo": "flake-compat",
|
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_3": {
|
"flake-schemas_2": {
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1777699697,
|
"lastModified": 1761577921,
|
||||||
"narHash": "sha256-Eg9b/rq/ECYwNwEXs5i9wHyhxNI0JrYx2srdI2uZMaQ=",
|
"narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=",
|
||||||
"ref": "refs/heads/main",
|
"rev": "47849c7625e223d36766968cc6dc23ba0e135922",
|
||||||
"rev": "382052b74656a369c5408822af3f2501e9b1af81",
|
"revCount": 107,
|
||||||
"revCount": 94,
|
"type": "tarball",
|
||||||
"type": "git",
|
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz"
|
||||||
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "git",
|
"type": "tarball",
|
||||||
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_2": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1731533236,
|
|
||||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"git-hooks": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_2",
|
|
||||||
"gitignore": "gitignore",
|
|
||||||
"nixpkgs": [
|
|
||||||
"go-overlay",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1778507602,
|
|
||||||
"narHash": "sha256-kTwur1wV+01SdqskVMSo6JMEpg71ps3HpbFY2GsflKs=",
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"rev": "61ab0e80d9c7ab14c256b5b453d8b3fb0189ba0a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "cachix",
|
|
||||||
"repo": "git-hooks.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gitignore": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"go-overlay",
|
|
||||||
"git-hooks",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1709087332,
|
|
||||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "hercules-ci",
|
|
||||||
"repo": "gitignore.nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"go-overlay": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"git-hooks": "git-hooks",
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1781239934,
|
|
||||||
"narHash": "sha256-bK84gDc7MgPdoQfr4k1oSIsdA9pSXVjEc3QPpVFGRPs=",
|
|
||||||
"owner": "purpleclay",
|
|
||||||
"repo": "go-overlay",
|
|
||||||
"rev": "efc8ba6788ff0736cc2098d7c588d58819a927e7",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "purpleclay",
|
|
||||||
"repo": "go-overlay",
|
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
@@ -220,53 +94,20 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781184346,
|
"lastModified": 1770260404,
|
||||||
"narHash": "sha256-cZRlW47U6A2nWvAmnZeeO6Xvq23gxYbVLel4KxqOrcQ=",
|
"narHash": "sha256-3iVX1+7YUIt23hBx1WZsUllhbmP2EnXrV8tCRbLxHc8=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "ea6d221d7aa85652d014b6f719dddf036037515b",
|
"rev": "0d782ee42c86b196acff08acfbf41bb7d13eed5b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-26.05",
|
"ref": "release-25.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"home-manager_2": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": "nixpkgs_3"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1779507042,
|
|
||||||
"narHash": "sha256-7wOwi8B6D0BYsieZCnHZZj2sNUzgJhLoIVSfkwB7lxQ=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "509ed3c603349a9d43de9e2ae6613baea6bd5b34",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mnw": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1780772958,
|
|
||||||
"narHash": "sha256-VKKe8r4pwCGWZ3Yr9CPN129R4S3CKLSrlYqdYz3vKpM=",
|
|
||||||
"owner": "Gerg-L",
|
|
||||||
"repo": "mnw",
|
|
||||||
"rev": "0871dbf63a53610c95db04439ed8ea4d6ec9c160",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "Gerg-L",
|
|
||||||
"repo": "mnw",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nix-flatpak": {
|
"nix-flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739444422,
|
"lastModified": 1739444422,
|
||||||
@@ -285,82 +126,37 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1778869304,
|
"lastModified": 1744536153,
|
||||||
"narHash": "sha256-30sZNZoA1cqF5JNO9fVX+wgiQYjB7HJqqJ4ztCDeBZE=",
|
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d233902339c02a9c334e7e593de68855ad26c4cb",
|
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-unstable",
|
"ref": "nixpkgs-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1780902259,
|
"lastModified": 1771043024,
|
||||||
"narHash": "sha256-q8yYEC5f1mFlQO9RGna4LTc9QrcvWunX6FYp83munkQ=",
|
"narHash": "sha256-O1XDr7EWbRp+kHrNNgLWgIrB0/US5wvw9K6RERWAj6I=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "bd0ff2d3eac24699c3664d5966b9ef36f388e2ca",
|
"rev": "3aadb7ca9eac2891d52a9dec199d9580a6e2bf44",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-26.05",
|
"ref": "nixos-25.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
|
||||||
"lastModified": 1778443072,
|
|
||||||
"narHash": "sha256-zi7/fsqM/kFdNuED//4WOCUtezGtKKqRNORjMvfwjnA=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "da5ad661ba4e5ef59ba743f0d112cbc30e474f32",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1780902259,
|
|
||||||
"narHash": "sha256-q8yYEC5f1mFlQO9RGna4LTc9QrcvWunX6FYp83munkQ=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "bd0ff2d3eac24699c3664d5966b9ef36f388e2ca",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixos-26.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_5": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1783148766,
|
|
||||||
"narHash": "sha256-H9+N+GFtsbVC8ZniHliChM7ndizxtqVZs6bnGOLM3WQ=",
|
|
||||||
"rev": "a50de1b7d8a586adc18d2395c19de7d6058e6030",
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://releases.nixos.org/nixos/26.05/nixos-26.05.4193.a50de1b7d8a5/nixexprs.tar.xz?lastModified=1783148766&rev=a50de1b7d8a586adc18d2395c19de7d6058e6030"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"type": "tarball",
|
|
||||||
"url": "https://channels.nixos.org/nixos-26.05/nixexprs.tar.xz"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_6": {
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744536153,
|
"lastModified": 1744536153,
|
||||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||||
@@ -376,73 +172,56 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nur": {
|
"nixpkgs_4": {
|
||||||
"inputs": {
|
|
||||||
"darwin": "darwin_2",
|
|
||||||
"flake-utils": "flake-utils_2",
|
|
||||||
"home-manager": "home-manager_2",
|
|
||||||
"nixpkgs": "nixpkgs_4"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781241353,
|
"lastModified": 1766201043,
|
||||||
"narHash": "sha256-lY3e7d5bA48qnTWGBSH6SK5jfINRlCQEv+zx1eGl1zU=",
|
"narHash": "sha256-eplAP+rorKKd0gNjV3rA6+0WMzb1X1i16F5m5pASnjA=",
|
||||||
"ref": "refs/heads/master",
|
"rev": "b3aad468604d3e488d627c0b43984eb60e75e782",
|
||||||
"rev": "90afe7c81a068fb1f160d68acd0ad06fa1bf7553",
|
"revCount": 904049,
|
||||||
"revCount": 30,
|
"type": "tarball",
|
||||||
"type": "git",
|
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.904049%2Brev-b3aad468604d3e488d627c0b43984eb60e75e782/019b3f6c-8b33-7edb-b858-9979590f270b/source.tar.gz"
|
||||||
"url": "https://scm.wyattjmiller.com/wymiller/nur.git"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "git",
|
"type": "tarball",
|
||||||
"url": "https://scm.wyattjmiller.com/wymiller/nur.git"
|
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nvf": {
|
"nixpkgs_5": {
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_3",
|
|
||||||
"mnw": "mnw",
|
|
||||||
"nixpkgs": "nixpkgs_5"
|
|
||||||
},
|
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1783767627,
|
"lastModified": 1769089682,
|
||||||
"narHash": "sha256-UgQuKee2d5VhXaqectc23i2rarIufUpAVSTA6R8XloY=",
|
"narHash": "sha256-9yA/LIuAVQq0lXelrZPjLuLVuZdm03p8tfmHhnDIkms=",
|
||||||
"owner": "notashelf",
|
"rev": "078d69f03934859a181e81ba987c2bb033eebfc5",
|
||||||
"repo": "nvf",
|
"revCount": 906333,
|
||||||
"rev": "c55a3a783e6e1ecbbaad607b15a9b7b23d42236f",
|
"type": "tarball",
|
||||||
"type": "github"
|
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.906333%2Brev-078d69f03934859a181e81ba987c2bb033eebfc5/019bebf2-031c-7119-8fdc-ce9d29d005fa/source.tar.gz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "notashelf",
|
"type": "tarball",
|
||||||
"repo": "nvf",
|
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"aagl": "aagl",
|
"aagl": "aagl",
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
"go-overlay": "go-overlay",
|
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
"nur": "nur",
|
"rust-overlay": "rust-overlay_2",
|
||||||
"nvf": "nvf",
|
"swaytreesave": "swaytreesave",
|
||||||
"rust-overlay": "rust-overlay_2"
|
"vintage-story": "vintage-story"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": "nixpkgs"
|
||||||
"aagl",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1780197589,
|
"lastModified": 1770952264,
|
||||||
"narHash": "sha256-FVCr2Ij/jKf59a4LW481eeOF6rJRreOBrVgW/aUBTrw=",
|
"narHash": "sha256-CjymNrJZWBtpavyuTkfPVPaZkwzIzGaf0E/3WgcwM14=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "21632e942d89bf1cce4e5a63d7e58a215a0cbfcc",
|
"rev": "ec6a3d5cdf14bb5a1dd03652bd3f6351004d2188",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -453,14 +232,14 @@
|
|||||||
},
|
},
|
||||||
"rust-overlay_2": {
|
"rust-overlay_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_6"
|
"nixpkgs": "nixpkgs_3"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1781234414,
|
"lastModified": 1771211437,
|
||||||
"narHash": "sha256-HdA+P4fKRGOomkewnI/Tww5Wz4xK1O7+hDO90YAsPB4=",
|
"narHash": "sha256-lcNK438i4DGtyA+bPXXyVLHVmJjYpVKmpux9WASa3ro=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "1d18bfe3de6244c641ca4e8011186d0981b81d76",
|
"rev": "c62195b3d6e1bb11e0c2fb2a494117d3b55d410f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -469,34 +248,42 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"swaytreesave": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-schemas": "flake-schemas",
|
||||||
|
"nixpkgs": "nixpkgs_4"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1767148467,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-W0O7SWq8ucokt4ctEAEvRvNoSM/oF7fBfb2kTN+lwTs=",
|
||||||
"owner": "nix-systems",
|
"ref": "refs/heads/master",
|
||||||
"repo": "default",
|
"rev": "0f4bb9bb450b28aa4f29d5eb2062deac6c26687a",
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
"revCount": 4,
|
||||||
"type": "github"
|
"type": "git",
|
||||||
|
"url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-systems",
|
"type": "git",
|
||||||
"repo": "default",
|
"url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git"
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_2": {
|
"vintage-story": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-schemas": "flake-schemas_2",
|
||||||
|
"nixpkgs": "nixpkgs_5"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1681028828,
|
"lastModified": 1769397199,
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
"narHash": "sha256-MSajncUGZtlpl88rqFdj42eGGyWnk2jw84VbK3AgUBA=",
|
||||||
"owner": "nix-systems",
|
"ref": "refs/heads/master",
|
||||||
"repo": "default",
|
"rev": "4d2313c50933645040a0d12556016fc2916bfa65",
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
"revCount": 1,
|
||||||
"type": "github"
|
"type": "git",
|
||||||
|
"url": "https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-systems",
|
"type": "git",
|
||||||
"repo": "default",
|
"url": "https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git"
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
55
flake.nix
55
flake.nix
@@ -1,24 +1,25 @@
|
|||||||
{
|
{
|
||||||
description = "Wyatt's nix configuration suite";
|
description = "Wyatt's nix configuration suite";
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
||||||
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0";
|
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0";
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-26.05";
|
url = "github:nix-community/home-manager/release-25.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
darwin = {
|
darwin = {
|
||||||
url = "github:lnl7/nix-darwin/nix-darwin-26.05";
|
url = "github:lnl7/nix-darwin/nix-darwin-25.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||||
go-overlay.url = "github:purpleclay/go-overlay";
|
|
||||||
aagl = {
|
aagl = {
|
||||||
url = "github:ezKEa/aagl-gtk-on-nix";
|
url = "github:ezKEa/aagl-gtk-on-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nvf.url = "github:notashelf/nvf";
|
|
||||||
nur.url = "git+https://scm.wyattjmiller.com/wymiller/nur.git";
|
# My personal flakes
|
||||||
|
swaytreesave.url = "git+https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git";
|
||||||
|
vintage-story.url = "git+https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ {
|
outputs = inputs @ {
|
||||||
@@ -28,22 +29,20 @@
|
|||||||
darwin,
|
darwin,
|
||||||
home-manager,
|
home-manager,
|
||||||
rust-overlay,
|
rust-overlay,
|
||||||
go-overlay,
|
|
||||||
aagl,
|
aagl,
|
||||||
nur,
|
swaytreesave,
|
||||||
nvf,
|
vintage-story,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
userName = "wyatt";
|
userName = "wyatt";
|
||||||
userEmail = "wyatt@wyattjmiller.com";
|
userEmail = "wyatt@wyattjmiller.com";
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit userName userEmail nur nvf;
|
inherit userName userEmail swaytreesave;
|
||||||
};
|
};
|
||||||
|
|
||||||
myOverlays = { ... }: {
|
myOverlays = { ... }: {
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
rust-overlay.overlays.default
|
rust-overlay.overlays.default
|
||||||
go-overlay.overlays.default
|
|
||||||
aagl.overlays.default
|
aagl.overlays.default
|
||||||
self.common.overlays
|
self.common.overlays
|
||||||
];
|
];
|
||||||
@@ -84,7 +83,7 @@
|
|||||||
nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem {
|
nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit userName userEmail aagl nur;
|
inherit userName userEmail aagl vintage-story;
|
||||||
hostname = "cloud";
|
hostname = "cloud";
|
||||||
role = "workstation";
|
role = "workstation";
|
||||||
};
|
};
|
||||||
@@ -124,7 +123,7 @@
|
|||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "workstation"; };
|
home-manager.extraSpecialArgs = extraSpecialArgs;
|
||||||
home-manager.backupFileExtension = "bak";
|
home-manager.backupFileExtension = "bak";
|
||||||
home-manager.users.${userName}.imports = [
|
home-manager.users.${userName}.imports = [
|
||||||
./home
|
./home
|
||||||
@@ -163,33 +162,6 @@
|
|||||||
# ];
|
# ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Vintage story server
|
|
||||||
nixosConfigurations."thancred" = nixpkgs.lib.nixosSystem {
|
|
||||||
system = "x86_64-linux";
|
|
||||||
specialArgs = {
|
|
||||||
inherit userName userEmail nur;
|
|
||||||
hostname = "thancred";
|
|
||||||
role = "server";
|
|
||||||
};
|
|
||||||
modules = [
|
|
||||||
myOverlays
|
|
||||||
./modules/common
|
|
||||||
./modules/machine/thancred
|
|
||||||
|
|
||||||
home-manager.nixosModules.home-manager
|
|
||||||
{
|
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
home-manager.useUserPackages = true;
|
|
||||||
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "server"; };
|
|
||||||
home-manager.backupFileExtension = "bak";
|
|
||||||
home-manager.users.${userName}.imports = [
|
|
||||||
./home
|
|
||||||
];
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Matrix and Mastodon server
|
|
||||||
nixosConfigurations."yshtola" = nixpkgs.lib.nixosSystem {
|
nixosConfigurations."yshtola" = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
@@ -223,7 +195,7 @@
|
|||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit userName userEmail hostname nvf;
|
inherit userName userEmail hostname;
|
||||||
isNixOS = false;
|
isNixOS = false;
|
||||||
role = "workstation";
|
role = "workstation";
|
||||||
};
|
};
|
||||||
@@ -231,7 +203,6 @@
|
|||||||
{
|
{
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
rust-overlay.overlays.default
|
rust-overlay.overlays.default
|
||||||
go-overlay.overlays.default
|
|
||||||
self.common.overlays
|
self.common.overlays
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
{ lib
|
{ lib
|
||||||
, pkgs
|
, pkgs
|
||||||
, userName
|
, userName
|
||||||
|
, swaytreesave
|
||||||
, isNixOS ? true
|
, isNixOS ? true
|
||||||
, ...
|
, ...
|
||||||
}: let
|
}: let
|
||||||
|
|||||||
14
home/git.nix
14
home/git.nix
@@ -13,15 +13,11 @@
|
|||||||
userEmail = userEmail;
|
userEmail = userEmail;
|
||||||
|
|
||||||
extraConfig = {
|
extraConfig = {
|
||||||
commit.gpgsign = true;
|
|
||||||
gpg.format = "ssh";
|
|
||||||
gpg.ssh.allowedSignersFile = "~/.config/git/allowed_signers";
|
|
||||||
init.defaultBranch = "master";
|
init.defaultBranch = "master";
|
||||||
merge.tool = "nvimdiff";
|
|
||||||
mergetool.keepBackup = false;
|
|
||||||
push.autoSetupRemote = true;
|
push.autoSetupRemote = true;
|
||||||
pull.rebase = false;
|
pull.rebase = false;
|
||||||
user.signingkey = "~/.ssh/id_ed25519_sk.pub";
|
merge.tool = "nvimdiff";
|
||||||
|
mergetool.keepBackup = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
ignores = [
|
ignores = [
|
||||||
@@ -35,7 +31,6 @@
|
|||||||
a = "add";
|
a = "add";
|
||||||
ap = "add -p";
|
ap = "add -p";
|
||||||
br = "branch";
|
br = "branch";
|
||||||
cb = "checkout -b";
|
|
||||||
co = "checkout";
|
co = "checkout";
|
||||||
st = "status -sb";
|
st = "status -sb";
|
||||||
status = "status -sb";
|
status = "status -sb";
|
||||||
@@ -45,11 +40,6 @@
|
|||||||
ca = "commit -am";
|
ca = "commit -am";
|
||||||
dc = "diff --cached";
|
dc = "diff --cached";
|
||||||
amend = "commit --amend -m";
|
amend = "commit --amend -m";
|
||||||
wipe = "reset --hard";
|
|
||||||
gg = "reset --hard";
|
|
||||||
ggs = "reset --hard";
|
|
||||||
sw = "switch";
|
|
||||||
r = "restore";
|
|
||||||
|
|
||||||
# aliases for submodules
|
# aliases for submodules
|
||||||
update = "submodule update --init --recursive";
|
update = "submodule update --init --recursive";
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
liveViewAutoRefresh = false;
|
liveViewAutoRefresh = false;
|
||||||
apiServerTimeout = "30s";
|
apiServerTimeout = "30s";
|
||||||
maxConnRetry = 5;
|
maxConnRetry = 5;
|
||||||
# readOnly = true;
|
readOnly = true;
|
||||||
noExitOnCtrlC = false;
|
noExitOnCtrlC = false;
|
||||||
portForwardAddress = "localhost";
|
portForwardAddress = "localhost";
|
||||||
skipLatestRevCheck = false;
|
skipLatestRevCheck = false;
|
||||||
|
|||||||
@@ -4,7 +4,6 @@
|
|||||||
package = pkgs.lazygitLatest;
|
package = pkgs.lazygitLatest;
|
||||||
|
|
||||||
settings = {
|
settings = {
|
||||||
gui.skipDiscardChangeWarning = true;
|
|
||||||
gui.theme = {
|
gui.theme = {
|
||||||
activeBorderColor = ["#a6e3a1" "bold"];
|
activeBorderColor = ["#a6e3a1" "bold"];
|
||||||
inactiveBorderColor = ["#a6adc8"];
|
inactiveBorderColor = ["#a6adc8"];
|
||||||
|
|||||||
116
home/neovim.nix
116
home/neovim.nix
@@ -1,108 +1,18 @@
|
|||||||
{ nvf, ... }: {
|
{...}: let
|
||||||
imports = [
|
dirs = {
|
||||||
nvf.homeManagerModules.default
|
defaults = ../defaults;
|
||||||
];
|
};
|
||||||
|
in {
|
||||||
programs.nvf = {
|
programs.neovim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
defaultEditor = true;
|
||||||
vim = {
|
vimAlias = true;
|
||||||
viAlias = true;
|
};
|
||||||
vimAlias = true;
|
|
||||||
lsp.enable = true;
|
|
||||||
treesitter.enable = true;
|
|
||||||
autocomplete.nvim-cmp.enable = true;
|
|
||||||
|
|
||||||
languages = {
|
xdg.configFile = {
|
||||||
rust.enable = true;
|
nvim = {
|
||||||
go.enable = true;
|
onChange = "nvim --headless -c 'if exists(\":LuaCacheClear\") | :LuaCacheClear' +quitall";
|
||||||
python.enable = true;
|
source = dirs.defaults + /nvim;
|
||||||
markdown.enable = true;
|
|
||||||
css.enable = true;
|
|
||||||
scss.enable = true;
|
|
||||||
tsx.enable = true;
|
|
||||||
typescript = {
|
|
||||||
enable = true;
|
|
||||||
lsp.servers = [ "typescript-language-server" "deno" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
utility.surround.enable = true;
|
|
||||||
telescope.enable = true;
|
|
||||||
mini.icons.enable = true;
|
|
||||||
notes.obsidian = {
|
|
||||||
enable = true;
|
|
||||||
setupOpts.workspaces = [
|
|
||||||
{
|
|
||||||
name = "personal";
|
|
||||||
path = "~/Documents/Obsidian/notes";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
terminal.toggleterm = {
|
|
||||||
enable = true;
|
|
||||||
lazygit = {
|
|
||||||
enable = true;
|
|
||||||
mappings.open = "<leader>gg";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
filetree.neo-tree.enable = true;
|
|
||||||
binds.whichKey.enable = true;
|
|
||||||
|
|
||||||
clipboard = {
|
|
||||||
enable = true;
|
|
||||||
registers = "unnamedplus";
|
|
||||||
providers = {
|
|
||||||
wl-copy.enable = true;
|
|
||||||
xclip.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
lsp.null-ls = {
|
|
||||||
enable = true;
|
|
||||||
setupOpts = {};
|
|
||||||
};
|
|
||||||
lsp.trouble.enable = true;
|
|
||||||
|
|
||||||
theme = {
|
|
||||||
enable = true;
|
|
||||||
name = "catppuccin";
|
|
||||||
style = "mocha";
|
|
||||||
transparent = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
dashboard.alpha.enable = true;
|
|
||||||
|
|
||||||
statusline.lualine.enable = true;
|
|
||||||
|
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
key = "<C-s>";
|
|
||||||
mode = "n";
|
|
||||||
action = "<cmd>w<CR>";
|
|
||||||
silent = true;
|
|
||||||
noremap = true;
|
|
||||||
}
|
|
||||||
{ key = "<leader>o"; mode = "n"; action = "<cmd>Neotree toggle<CR>"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>tf"; mode = "n"; action = "<cmd>ToggleTerm direction=float<CR>"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>th"; mode = "n"; action = "<cmd>ToggleTerm direction=horizontal<CR>"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>tv"; mode = "n"; action = "<cmd>ToggleTerm direction=vertical<CR>"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>n"; mode = "n"; action = "<nop>"; desc = "Notes"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>nd"; mode = "n"; action = "<cmd>Obsidian today<CR>"; desc = "Obsidian daily note"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>nf"; mode = "n"; action = "<cmd>Obsidian quick_switch<CR>"; desc = "Obsidian find note"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>ns"; mode = "n"; action = "<cmd>Obsidian search<CR>"; desc = "Obsidian search notes"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>nn"; mode = "n"; action = "<cmd>Obsidian new<CR>"; desc = "Obsidian new note"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>ff"; mode = "n"; action = "<cmd>Telescope find_files<CR>"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>fD"; mode = "n"; action = "<cmd>lua require('telescope.builtin').find_files({ cwd = vim.fn.input('Dir: ', vim.loop.cwd() .. '/', 'dir') })<CR>"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>fg"; mode = "n"; action = "<cmd>Telescope live_grep<CR>"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>/"; mode = "n"; action = "<cmd>Telescope current_buffer_fuzzy_find<CR>"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>gb"; mode = "n"; action = "<cmd>Telescope git_branches<CR>"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>gc"; mode = "n"; action = "<cmd>Telescope git_commits<CR>"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>gl"; mode = "n"; action = "<cmd>Telescope git_bcommits<CR>"; silent = true; noremap = true; }
|
|
||||||
{ key = "<leader>gr"; mode = "n"; action = "<cmd>Telescope git_status<CR>"; silent = true; noremap = true; }
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,16 +1,4 @@
|
|||||||
{ lib, pkgs, isNixOS ? true, ... }:
|
{ lib, pkgs, isNixOS ? true, ... }:
|
||||||
lib.mkIf pkgs.stdenv.isLinux {
|
lib.mkIf pkgs.stdenv.isLinux {
|
||||||
home.packages = with pkgs; [
|
|
||||||
imv
|
|
||||||
xdg-utils
|
|
||||||
] ++ lib.optionals isNixOS [
|
|
||||||
vesktop
|
|
||||||
xfce.thunar
|
|
||||||
pavucontrol
|
|
||||||
zathura
|
|
||||||
gpu-screen-recorder
|
|
||||||
gpu-screen-recorder-gtk
|
|
||||||
inetutils
|
|
||||||
easyeffects
|
|
||||||
];
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
fh
|
fh
|
||||||
kubectl # kube config is deliberately not included
|
kubectl # kube config is deliberately not included
|
||||||
kubectx
|
kubectx
|
||||||
|
obsidian
|
||||||
vscode
|
vscode
|
||||||
yt-dlp
|
yt-dlp
|
||||||
weechat
|
weechat
|
||||||
@@ -28,10 +29,5 @@
|
|||||||
deadnix
|
deadnix
|
||||||
alejandra
|
alejandra
|
||||||
statix
|
statix
|
||||||
gh
|
|
||||||
ghDashLatest
|
|
||||||
diffNavLatest
|
|
||||||
] ++ lib.optionals isNixOS [
|
|
||||||
obsidian
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
body = ''
|
body = ''
|
||||||
set memes \
|
set memes \
|
||||||
"Crazy? I was crazy once. They locked me in a room. A rubber room. A rubber room with rats. And rats make me crazy." \
|
"Crazy? I was crazy once. They locked me in a room. A rubber room. A rubber room with rats. And rats make me crazy." \
|
||||||
|
"Daddy, chill!" \
|
||||||
"What the hell is even that?!" \
|
"What the hell is even that?!" \
|
||||||
"Road work ahead? Yeah, I sure hope it does!" \
|
"Road work ahead? Yeah, I sure hope it does!" \
|
||||||
"Look at all those chickens!" \
|
"Look at all those chickens!" \
|
||||||
@@ -39,6 +40,7 @@
|
|||||||
"I didn't get no sleep cause of y'all, y'all not gone get any sleep cause of me!" \
|
"I didn't get no sleep cause of y'all, y'all not gone get any sleep cause of me!" \
|
||||||
"This is the dollar store, how good can it be?" \
|
"This is the dollar store, how good can it be?" \
|
||||||
"That was legitness" \
|
"That was legitness" \
|
||||||
|
"Deez nuts" \
|
||||||
"I wanna be a cowboy baby" \
|
"I wanna be a cowboy baby" \
|
||||||
"Can I get a waffle? Can I please get a waffle?" \
|
"Can I get a waffle? Can I please get a waffle?" \
|
||||||
"I'm lesbian. I thought you were American." \
|
"I'm lesbian. I thought you were American." \
|
||||||
@@ -60,13 +62,7 @@
|
|||||||
"If you’ve brought your ivory standard, I’ll be happy to tell you where you can stick it" \
|
"If you’ve brought your ivory standard, I’ll be happy to tell you where you can stick it" \
|
||||||
"Speeches? Oh, yes, I love them. There's nothing like a good exposition when you're having trouble sleeping!" \
|
"Speeches? Oh, yes, I love them. There's nothing like a good exposition when you're having trouble sleeping!" \
|
||||||
"Somehow, the boy just isn't very buoyant" \
|
"Somehow, the boy just isn't very buoyant" \
|
||||||
"I am...not interested, little sun. Try again when you have become a man" \
|
"I am...not interested, little sun. Try again when you have become a man"
|
||||||
"I am rightousness! And rightousness shall previal!" \
|
|
||||||
"Ahhh such bliss!" \
|
|
||||||
"The gods themselves will be my meal. Your dear companions my dessert. Upon this world I'll feast, and death shall follow in my wake. All your hate, all your rage, you will render unto me." \
|
|
||||||
"Boring, boring, boring" \
|
|
||||||
"Would you be 'happier' had I a 'good reason'?" \
|
|
||||||
"A test of your reflexes!"
|
|
||||||
|
|
||||||
|
|
||||||
set choose_meme (random)"%"(count $memes)
|
set choose_meme (random)"%"(count $memes)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
nur,
|
swaytreesave,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
dirs = {
|
dirs = {
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
nur.homeManagerModules.swaytreesave
|
swaytreesave.homeManagerModules.default
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.swaytreesave.enable = if pkgs.stdenv.isLinux then true else false;
|
programs.swaytreesave.enable = if pkgs.stdenv.isLinux then true else false;
|
||||||
@@ -155,4 +155,5 @@ in {
|
|||||||
enable = pkgs.stdenv.isLinux;
|
enable = pkgs.stdenv.isLinux;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
aagl,
|
aagl,
|
||||||
nur,
|
vintage-story,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.gaming;
|
cfg = config.gaming;
|
||||||
@@ -218,7 +218,7 @@ in {
|
|||||||
)) ++
|
)) ++
|
||||||
(lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++
|
(lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++
|
||||||
(lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher pkgs.fflogs]) ++
|
(lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher pkgs.fflogs]) ++
|
||||||
(lib.optionals cfg.vintage-story.enable [nur.packages.${pkgs.system}.vintage-story]) ++
|
(lib.optionals cfg.vintage-story.enable [vintage-story.packages.${pkgs.system}.default]) ++
|
||||||
(lib.optionals cfg.vkbasalt.enable [pkgs.vkbasalt pkgs.vkbasalt-cli]) ++
|
(lib.optionals cfg.vkbasalt.enable [pkgs.vkbasalt pkgs.vkbasalt-cli]) ++
|
||||||
(lib.optionals cfg.mangohud.enable [pkgs.mangohud]) ++
|
(lib.optionals cfg.mangohud.enable [pkgs.mangohud]) ++
|
||||||
(lib.optionals (cfg.vkbasalt.enable || cfg.mangohud.enable) [pkgs.goverlay pkgs.mesa-demos pkgs.vulkan-tools]);
|
(lib.optionals (cfg.vkbasalt.enable || cfg.mangohud.enable) [pkgs.goverlay pkgs.mesa-demos pkgs.vulkan-tools]);
|
||||||
|
|||||||
@@ -1,23 +1,19 @@
|
|||||||
final: prev: let
|
final: prev: let
|
||||||
|
# Use latest rust from overlay which should work on non-NixOS
|
||||||
rust_latest = prev.rust-bin.stable.latest.default;
|
rust_latest = prev.rust-bin.stable.latest.default;
|
||||||
golang_latest = prev.go-bin.latestStable;
|
|
||||||
buildGoModuleLatest = prev.buildGoModule.override {
|
|
||||||
go = golang_latest;
|
|
||||||
};
|
|
||||||
myRustPlatform = prev.makeRustPlatform {
|
myRustPlatform = prev.makeRustPlatform {
|
||||||
cargo = rust_latest;
|
cargo = rust_latest;
|
||||||
rustc = rust_latest;
|
rustc = rust_latest;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
lazygitLatest = prev.lazygit.overrideAttrs (_: rec {
|
lazygitLatest = prev.lazygit.overrideAttrs (_: rec {
|
||||||
version = "0.61.0";
|
version = "0.55.1";
|
||||||
src = prev.fetchFromGitHub {
|
src = prev.fetchFromGitHub {
|
||||||
owner = "jesseduffield";
|
owner = "jesseduffield";
|
||||||
repo = "lazygit";
|
repo = "lazygit";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-G7JulCK9WUVWbp1V7lYuM3fehCdn1cNAJHYjr3aKDvQ=";
|
hash = "sha256-UofhgILZhVXnYiGpb25m4Ct4sbu5pRmjVgj3oEf5Uyk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = null;
|
vendorHash = null;
|
||||||
subPackages = [ "." ];
|
subPackages = [ "." ];
|
||||||
ldflags = [
|
ldflags = [
|
||||||
@@ -29,31 +25,21 @@ in {
|
|||||||
atuinLatest = (prev.atuin.override {
|
atuinLatest = (prev.atuin.override {
|
||||||
rustPlatform = myRustPlatform;
|
rustPlatform = myRustPlatform;
|
||||||
}).overrideAttrs (oldAttrs: rec {
|
}).overrideAttrs (oldAttrs: rec {
|
||||||
version = "18.13.6";
|
version = "18.10.0";
|
||||||
|
|
||||||
src = prev.fetchFromGitHub {
|
src = prev.fetchFromGitHub {
|
||||||
owner = "atuinsh";
|
owner = "atuinsh";
|
||||||
repo = "atuin";
|
repo = "atuin";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-yAw+ty6FUnFbiRTdAe2QQHzj6uU24fZ/bEIXcHl/thg=";
|
hash = "sha256-bfSa3RtVXxHt3usDqqpE/oXKKDUZOrf+tD9uL59fr6M=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoDeps = myRustPlatform.fetchCargoVendor {
|
cargoDeps = myRustPlatform.fetchCargoVendor {
|
||||||
# name = "atuin-${version}-vendor.tar.gz";
|
# name = "atuin-${version}-vendor.tar.gz";
|
||||||
inherit src;
|
inherit src;
|
||||||
hash = "sha256-jirVe0+N5+UHZWioj8AipUhawMBameqEJJpa8HPTnfw=";
|
hash = "sha256-67ffivZVCly1GWA3fJ9mT8nGv2EGd6eCthbaIu/IW3M=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoBuildFeatures = [
|
|
||||||
"ai"
|
|
||||||
"client"
|
|
||||||
"clipboard"
|
|
||||||
"daemon"
|
|
||||||
"hex"
|
|
||||||
"sync"
|
|
||||||
];
|
|
||||||
cargoCheckFeatures = cargoBuildFeatures;
|
|
||||||
|
|
||||||
preCheck = (oldAttrs.preCheck or "") + ''
|
preCheck = (oldAttrs.preCheck or "") + ''
|
||||||
export HOME="$TMPDIR"
|
export HOME="$TMPDIR"
|
||||||
export XDG_CONFIG_HOME="$TMPDIR/.config"
|
export XDG_CONFIG_HOME="$TMPDIR/.config"
|
||||||
@@ -76,53 +62,4 @@ in {
|
|||||||
# "-X github.com/derailed/k9s/version.BuildSource=nix"
|
# "-X github.com/derailed/k9s/version.BuildSource=nix"
|
||||||
# ];
|
# ];
|
||||||
# });
|
# });
|
||||||
|
|
||||||
ghDashLatest = (prev.gh-dash.override {
|
|
||||||
buildGoModule = buildGoModuleLatest;
|
|
||||||
}).overrideAttrs (oldAttrs: rec {
|
|
||||||
version = "4.23.2";
|
|
||||||
src = prev.fetchFromGitHub {
|
|
||||||
owner = "dlvhdr";
|
|
||||||
repo = "gh-dash";
|
|
||||||
rev = "v${version}";
|
|
||||||
hash = "sha256-C06LPVoE23ITJpMG0x75Djgeup+eb5uYwA8wL7xxvWU=";
|
|
||||||
};
|
|
||||||
|
|
||||||
vendorHash = "sha256-4AbeoH0l7eIS7d0yyJxM7+woC7Q/FCh0BOJj3d1zyX4=";
|
|
||||||
doCheck = false;
|
|
||||||
checkFlags = [
|
|
||||||
"-skip=TestFullOutput"
|
|
||||||
];
|
|
||||||
|
|
||||||
ldflags = [
|
|
||||||
"-s"
|
|
||||||
"-w"
|
|
||||||
"-X github.com/dlvhdr/gh-dash/v4/cmd.Version=${version}"
|
|
||||||
];
|
|
||||||
|
|
||||||
passthru = (oldAttrs.passthru or {}) // {
|
|
||||||
tests = {
|
|
||||||
version = oldAttrs.testers.testVersion { package = final.ghDashLatest; };
|
|
||||||
};
|
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
diffNavLatest = (prev.diffnav.override {
|
|
||||||
buildGoModule = buildGoModuleLatest;
|
|
||||||
}).overrideAttrs (_: rec {
|
|
||||||
version = "0.10.0";
|
|
||||||
src = prev.fetchFromGitHub {
|
|
||||||
owner = "dlvhdr";
|
|
||||||
repo = "diffnav";
|
|
||||||
rev = "v${version}";
|
|
||||||
hash = "sha256-6VtAQzZNLQrf8QYVXxLUgb3F6xguFDbwaE9kahPhbSE=";
|
|
||||||
};
|
|
||||||
|
|
||||||
vendorHash = "sha256-gmmckzR0D1oFuTG5TAb6gLMoNbcZl9EsjbFjhPfJqnQ=";
|
|
||||||
|
|
||||||
ldflags = [
|
|
||||||
"-s"
|
|
||||||
"-w"
|
|
||||||
];
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,6 @@ I like Final Fantasy, alright? Isn't everyone supposed to have a hobby?
|
|||||||
|
|
||||||
These are named after Final Fantasy VII characters.
|
These are named after Final Fantasy VII characters.
|
||||||
|
|
||||||
### Servers/Network Infrastructure (bare metal)
|
### Servers/Network Infrastructure
|
||||||
|
|
||||||
These are named after Final Fantasy summons. There is some infrastructure missing here like my routers and switches that I also name after summons.
|
These are named after Final Fantasy summons. There is some infrastructure missing here like my routers and switches that I also name after summons.
|
||||||
|
|
||||||
### Servers/Network Infrastructure (virtual machines)
|
|
||||||
|
|
||||||
These are named after Final Fantasy XIV Online characters (currently, these are named after the Scions of the Seventh Dawn).
|
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ in {
|
|||||||
../../graphics
|
../../graphics
|
||||||
../../pwrMgmt
|
../../pwrMgmt
|
||||||
../../networking/core.nix
|
../../networking/core.nix
|
||||||
../../security/yubico.nix
|
|
||||||
../../sound/pipewire.nix
|
../../sound/pipewire.nix
|
||||||
../../sound/shairport.nix
|
../../sound/shairport.nix
|
||||||
../../sound/focusrite.nix
|
../../sound/focusrite.nix
|
||||||
@@ -34,22 +33,7 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
# Enable flakes for NixOS
|
# Enable flakes for NixOS
|
||||||
nix.settings = {
|
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||||
experimental-features = ["nix-command" "flakes"];
|
|
||||||
substituters = [
|
|
||||||
"https://attic.home.wyattjmiller.com/wyatt"
|
|
||||||
];
|
|
||||||
|
|
||||||
trusted-substituters = [
|
|
||||||
"https://attic.home.wyattjmiller.com/wyatt"
|
|
||||||
];
|
|
||||||
|
|
||||||
trusted-public-keys = [
|
|
||||||
"wyatt:KBM2U2fVUomYUdMsxeNp0MDrUrCU5BECZHLF72o8TOI="
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Custom kernel/boot stuff
|
# Custom kernel/boot stuff
|
||||||
boot = {
|
boot = {
|
||||||
@@ -72,7 +56,7 @@ in {
|
|||||||
grim
|
grim
|
||||||
slurp
|
slurp
|
||||||
playerctl
|
playerctl
|
||||||
# light - UNMAINTAINED, brightnessctl is the replacement
|
light
|
||||||
brightnessctl
|
brightnessctl
|
||||||
wttrbar
|
wttrbar
|
||||||
cliphist
|
cliphist
|
||||||
@@ -83,9 +67,6 @@ in {
|
|||||||
shared-mime-info
|
shared-mime-info
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
wl-clip-persist
|
wl-clip-persist
|
||||||
ollama-rocm
|
|
||||||
newelle
|
|
||||||
tailscale
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enable Polkit
|
# Enable Polkit
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
neovim
|
neovim
|
||||||
git
|
git
|
||||||
tailscale
|
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.variables.EDITOR = "nvim";
|
environment.variables.EDITOR = "nvim";
|
||||||
|
|||||||
@@ -1,121 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
userName,
|
|
||||||
nur,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
../../pwrMgmt
|
|
||||||
../../networking/core.nix
|
|
||||||
../../virtualization/podman.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enable flakes for NixOS
|
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
|
||||||
|
|
||||||
# Custom kernel/boot stuff
|
|
||||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
# Set your timezone
|
|
||||||
time.timeZone = "America/Detroit";
|
|
||||||
|
|
||||||
# Enable OpenSSH
|
|
||||||
services.openssh.enable = true;
|
|
||||||
|
|
||||||
# Enable keyring
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
# Enable GnuPG
|
|
||||||
programs.gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
enableSSHSupport = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable SUID wrappers (some programs need them)
|
|
||||||
programs.mtr.enable = true;
|
|
||||||
|
|
||||||
# Enable Polkit
|
|
||||||
security.polkit.enable = true;
|
|
||||||
|
|
||||||
# Power management (see ../../pwrMgmt/default.nix)
|
|
||||||
pwrMgmt = {
|
|
||||||
enable = true;
|
|
||||||
cpuFreqGovernor = "performance";
|
|
||||||
powertop.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
network = {
|
|
||||||
firewall = {
|
|
||||||
enable = true;
|
|
||||||
tcpPorts = {
|
|
||||||
allowedPorts = [ 42420 ];
|
|
||||||
};
|
|
||||||
udpPorts = {
|
|
||||||
allowedPorts = [ 42420 ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
networkManager.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = [
|
|
||||||
nur.packages.${pkgs.system}.vintage-story
|
|
||||||
];
|
|
||||||
|
|
||||||
systemd.services.vintagestory-server = {
|
|
||||||
description = "Vintage Story Server";
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
after = [ "network.target" ];
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "simple";
|
|
||||||
User = userName;
|
|
||||||
WorkingDirectory = "/home/${userName}";
|
|
||||||
ExecStart = "${nur.packages.${pkgs.system}.vintage-story}/bin/vintagestory-server";
|
|
||||||
Restart = "on-failure";
|
|
||||||
RestartSec = "5s";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Add username to groups "wheel" and "video" - more may be added here later
|
|
||||||
users = {
|
|
||||||
groups.hazel = {};
|
|
||||||
users = {
|
|
||||||
${userName} = {
|
|
||||||
extraGroups = [ "wheel" "network" ];
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"hazel" = {
|
|
||||||
home = "/home/hazel";
|
|
||||||
group = "hazel";
|
|
||||||
extraGroups = [ "wheel" ];
|
|
||||||
description = "hazel";
|
|
||||||
isNormalUser = true;
|
|
||||||
openssh.authorizedKeys.keys = [
|
|
||||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZnyiQx+k1ygX8E1lsUCB6aTdMc+OKzlZ4admlzknc5ulj0YrtUyqhbNhkNd6pP0QDBFMnXO/rzUvHp4TAyZXKFfpcBCa4zhK97ufymAfvzAjM4vRBqRNcr2n+2iRzxtolbklfjs3ocBQVxXW+pRT5wWxTgK2fcmP2xviDVldr7qte37x5YkQb5SAhYNH8tqJRnuGPe+Q0A3oN4HyHZFnrMq/HlbL5yg/0VKPTtF/IgHf+2dDz5OQQpBx3/N9u/QLwuIm9lkyOG03s0TGmE7up/i0jX2vIqp2BbGSnwdQEL/eSVZx73qQB/J62VFafg13P5yQWDJ33WSoiwhac6bg26HPmPOnCJp5R3c+7jM8N1F1ZbtsKicHSVsRg1RQSree4lchPy7FOPkCuUrB7LNE71mbpOzZNR767S6UAPaXxRw6QNYGBaDqQBwhlU8ZDF5F7EW6ahSUMOI6ECyoibzIMb56xs9osuNeUhB/BcL5sHSFpJjIbdcDLNkEKggrBl6s="
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.fail2ban = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.fail2ban;
|
|
||||||
maxretry = 5;
|
|
||||||
bantime = "3h";
|
|
||||||
bantime-increment = {
|
|
||||||
enable = true;
|
|
||||||
rndtime = "10m";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services.tailscale = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.tailscale;
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "24.11";
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{ ... }: {
|
|
||||||
imports = [
|
|
||||||
./configuration.nix
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
}
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-uuid/e2e621c1-0090-472a-99d9-61c6a87bd068";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-uuid/663E-15C0";
|
|
||||||
fsType = "vfat";
|
|
||||||
options = [ "fmask=0022" "dmask=0022" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices =
|
|
||||||
[ { device = "/dev/disk/by-uuid/60104b1a-4285-4dd1-be5e-3c3dee24515a"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
}
|
|
||||||
@@ -1,5 +1,7 @@
|
|||||||
{
|
{
|
||||||
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
config,
|
||||||
userName,
|
userName,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
@@ -10,6 +12,16 @@
|
|||||||
supportEmail = "wyatt@wyattjmiller.com";
|
supportEmail = "wyatt@wyattjmiller.com";
|
||||||
livekitKeyFile = "/var/lib/livekit/livekit.key";
|
livekitKeyFile = "/var/lib/livekit/livekit.key";
|
||||||
matrixRegistrationTokenFile = "/var/lib/matrix.key";
|
matrixRegistrationTokenFile = "/var/lib/matrix.key";
|
||||||
|
mastodonFqdn = "social.wyattjmiller.com";
|
||||||
|
mastodonSecretsDir = "/var/lib/mastodon/secrets";
|
||||||
|
|
||||||
|
# After deploying Mastodon, register an OAuth application at
|
||||||
|
# https://social.wyattjmiller.com/settings/applications and write the
|
||||||
|
# client ID / secret to these paths (chmod 400, owned by the tuwunel user):
|
||||||
|
mastodonOauthClientIdFile = "/var/lib/private/tuwunel/matrix-oauth-client-id";
|
||||||
|
mastodonOauthClientSecretFile = "/var/lib/private/tuwunel/matrix-oauth-client-secret";
|
||||||
|
mastodonOauthClientId = builtins.readFile mastodonOauthClientIdFile;
|
||||||
|
mastodonOauthClientSecret = builtins.readFile mastodonOauthClientSecretFile;
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
../../pwrMgmt
|
../../pwrMgmt
|
||||||
@@ -94,6 +106,8 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
# Add username to groups "wheel" and "video" - more may be added here later
|
# Add username to groups "wheel" and "video" - more may be added here later
|
||||||
|
users.users.caddy.extraGroups = [ "mastodon" ];
|
||||||
|
|
||||||
users.users.${userName} = {
|
users.users.${userName} = {
|
||||||
openssh.authorizedKeys.keys = [
|
openssh.authorizedKeys.keys = [
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
||||||
@@ -114,6 +128,28 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Mastodon service — social.wyattjmiller.com
|
||||||
|
services.mastodon = {
|
||||||
|
enable = true;
|
||||||
|
localDomain = mastodonFqdn;
|
||||||
|
webPort = 3000;
|
||||||
|
enableUnixSocket = false;
|
||||||
|
configureNginx = false;
|
||||||
|
secretKeyBaseFile = "${mastodonSecretsDir}/secret_key_base";
|
||||||
|
# otpSecretFile = "${mastodonSecretsDir}/otp_secret";
|
||||||
|
vapidPrivateKeyFile = "${mastodonSecretsDir}/vapid_private_key";
|
||||||
|
vapidPublicKeyFile = "${mastodonSecretsDir}/vapid_public_key";
|
||||||
|
streamingProcesses = 3;
|
||||||
|
# Configure SMTP after initial deploy via mastodonSecretsDir or a separate
|
||||||
|
# NixOS secrets manager (sops-nix / agenix).
|
||||||
|
smtp = {
|
||||||
|
host = "mail.wyattjmiller.com";
|
||||||
|
port = 25;
|
||||||
|
fromAddress = "notifications@${mastodonFqdn}";
|
||||||
|
authenticate = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
# Matrix server
|
# Matrix server
|
||||||
services.matrix-tuwunel = {
|
services.matrix-tuwunel = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -150,6 +186,32 @@ in {
|
|||||||
livekit_service_url = "https://${rtcFqdn}";
|
livekit_service_url = "https://${rtcFqdn}";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Mastodon as OIDC provider for Matrix login.
|
||||||
|
# Mastodon 4.3+ exposes OpenID Connect discovery at
|
||||||
|
# https://<domain>/.well-known/openid-configuration.
|
||||||
|
#
|
||||||
|
# REQUIRED RUNTIME SETUP (once, after first Mastodon deploy):
|
||||||
|
# 1. Visit https://social.wyattjmiller.com/settings/applications
|
||||||
|
# 2. Create a new application with the redirect URI:
|
||||||
|
# https://chat.wyattjmiller.com/_matrix/client/v3/login/sso/redirect/oidc-mastodon
|
||||||
|
# and scopes: profile
|
||||||
|
# 3. Write the Client Key → /var/lib/private/tuwunel/matrix-oauth-client-id (chmod 400, owned by tuwunel)
|
||||||
|
# Write the Client Secret → /var/lib/private/tuwunel/matrix-oauth-client-secret
|
||||||
|
# 4. nixos-rebuild switch (or restart tuwunel.service)
|
||||||
|
identity_provider = [
|
||||||
|
{
|
||||||
|
brand = "Mastodon";
|
||||||
|
issuer_url = "https://${mastodonFqdn}";
|
||||||
|
# id = mastodonOauthClientId;
|
||||||
|
callback_url = "https://${matrixFqdn}/_matrix/client/unstable/login/sso/callback/${lib.removeSuffix "\n" (mastodonOauthClientId)}";
|
||||||
|
discovery_url = "https://${mastodonFqdn}/.well-known/oauth-authorization-server";
|
||||||
|
client_id = lib.removeSuffix "\n" (mastodonOauthClientId);
|
||||||
|
client_secret = lib.removeSuffix "\n" (mastodonOauthClientSecret);
|
||||||
|
scope = ["profile"];
|
||||||
|
userid_claims = ["preferred_username"];
|
||||||
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -174,6 +236,32 @@ in {
|
|||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.caddy;
|
package = pkgs.caddy;
|
||||||
virtualHosts = {
|
virtualHosts = {
|
||||||
|
"${mastodonFqdn}" = {
|
||||||
|
extraConfig = ''
|
||||||
|
encode zstd gzip
|
||||||
|
|
||||||
|
root * ${config.services.mastodon.package}/public
|
||||||
|
|
||||||
|
handle /system/* {
|
||||||
|
uri strip_prefix /system
|
||||||
|
root * /var/lib/mastodon/public-system
|
||||||
|
file_server
|
||||||
|
}
|
||||||
|
|
||||||
|
@streaming path /api/v1/streaming*
|
||||||
|
handle @streaming {
|
||||||
|
reverse_proxy localhost:4000
|
||||||
|
}
|
||||||
|
|
||||||
|
handle {
|
||||||
|
@notfile not file
|
||||||
|
handle @notfile {
|
||||||
|
reverse_proxy localhost:3000
|
||||||
|
}
|
||||||
|
file_server
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
"${matrixFqdn}" = {
|
"${matrixFqdn}" = {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
encode zstd gzip
|
encode zstd gzip
|
||||||
@@ -265,6 +353,49 @@ in {
|
|||||||
User = "root";
|
User = "root";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mastodon-secrets-gen = {
|
||||||
|
before = [ "mastodon-web.service" "mastodon-sidekiq-0.service" "mastodon-streaming.service" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
path = with pkgs; [ coreutils openssl ruby_3_4 ];
|
||||||
|
script = ''
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
dir="${mastodonSecretsDir}"
|
||||||
|
install -d -m 0750 -o mastodon -g mastodon "$dir"
|
||||||
|
|
||||||
|
gen_hex() {
|
||||||
|
local f="$1"
|
||||||
|
if [ ! -f "$f" ]; then
|
||||||
|
umask 077
|
||||||
|
openssl rand -hex 64 | install -o mastodon -g mastodon -m 0400 /dev/stdin "$f"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
gen_hex "$dir/secret_key_base"
|
||||||
|
gen_hex "$dir/otp_secret"
|
||||||
|
|
||||||
|
if [ ! -f "$dir/vapid_private_key" ]; then
|
||||||
|
umask 077
|
||||||
|
ruby -ropenssl -rbase64 -e '
|
||||||
|
key = OpenSSL::PKey::EC.generate("prime256v1")
|
||||||
|
priv = Base64.urlsafe_encode64(key.private_key.to_s(2).rjust(32, "\x00"), padding: false)
|
||||||
|
pub = Base64.urlsafe_encode64(key.public_key.to_bn.to_s(2), padding: false)
|
||||||
|
File.write(ARGV[0], priv)
|
||||||
|
File.write(ARGV[1], pub)
|
||||||
|
' \
|
||||||
|
"$dir/vapid_private_key" \
|
||||||
|
"$dir/vapid_public_key"
|
||||||
|
chown mastodon:mastodon "$dir/vapid_private_key" "$dir/vapid_public_key"
|
||||||
|
chmod 0400 "$dir/vapid_private_key" "$dir/vapid_public_key"
|
||||||
|
fi
|
||||||
|
'';
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "oneshot";
|
||||||
|
User = "root";
|
||||||
|
RemainAfterExit = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}: let in {
|
|
||||||
security.pam.services = {
|
|
||||||
login.u2fAuth = true;
|
|
||||||
sudo.u2fAuth = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -6,7 +6,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
# helvum - UNMAINTAINED
|
helvum
|
||||||
crosspipe
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user