Compare commits
67
Commits
7d8dcee57c
..
krile
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1bf77e4eb6
|
||
|
|
4965e9ed1d | ||
|
|
b42f545195
|
||
|
|
b27fa2440e | ||
|
|
6ae398abdc | ||
|
|
57490387aa | ||
|
|
b76df1881b | ||
|
|
3fa4fb8ef7 | ||
|
|
bf799ca883 | ||
|
|
828154845b
|
||
|
|
880d1508cc
|
||
|
|
c75ecae2dc | ||
|
|
6405a3f0aa
|
||
|
|
9f14456ecc
|
||
|
|
c6b1eb5337 | ||
|
|
a3f1b26f31 | ||
|
|
c78fb3019c
|
||
|
|
a70cb42d04
|
||
|
|
f8065ad6e1
|
||
|
|
0b4027f0c0
|
||
|
|
ee60d5de02 | ||
|
|
6cf609acc1 | ||
|
|
7853a1b457 | ||
|
|
ce3a1bc06d
|
||
|
|
b8340019e8 | ||
|
|
b4390109c9 | ||
|
|
d602b3ba45 | ||
|
|
a1f77ed407
|
||
|
|
d7a2d4cf38
|
||
|
|
04518129d5
|
||
|
|
0769fe1e0d
|
||
|
|
fee14618b8
|
||
|
|
7bc8e821b5
|
||
|
|
9f61ec8200
|
||
|
|
28a8ccc532
|
||
|
|
76ea6e6e13
|
||
|
|
3fa654f774
|
||
|
|
f2be3130a2
|
||
|
|
23999ee3a4
|
||
|
|
593ab20414
|
||
|
|
e4614dbee5
|
||
|
|
1070f65c6e
|
||
|
|
884999f719
|
||
|
|
d3dbf8583a
|
||
|
|
cf2a710a79 | ||
|
|
927628a576
|
||
|
|
0b16eaf3b0 | ||
|
|
c89fc1366d
|
||
|
|
4c29cc3bfc
|
||
|
|
ad717d64b8
|
||
|
|
4acbd22078
|
||
|
|
75982f5f5e
|
||
|
|
ce65a70de4
|
||
|
|
8567e7b671
|
||
|
|
a1f37f6b19 | ||
|
|
9fa85be412 | ||
|
|
23500b07fa | ||
|
|
fdf4e5e1b9 | ||
|
|
67648eda89 | ||
|
|
76ac41a965 | ||
|
|
5c70cdc20f | ||
|
|
c21066e810 | ||
|
|
93b15391ca | ||
|
|
317571499e | ||
|
|
971a263963 | ||
|
|
2fb3e2867c | ||
|
|
4492dcdff5 |
No files matched your search
@@ -0,0 +1,40 @@
|
|||||||
|
name: Update flake lock
|
||||||
|
|
||||||
|
on:
|
||||||
|
schedule:
|
||||||
|
# Gitea cron schedules use UTC. 07:00 UTC is 03:00 EDT.
|
||||||
|
- cron: "0 7 * * 0"
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: write
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update-flake-lock:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Check out repository
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install upstream Nix
|
||||||
|
uses: cachix/install-nix-action@v31
|
||||||
|
|
||||||
|
- name: Update flake lock
|
||||||
|
run: nix flake update
|
||||||
|
|
||||||
|
- name: Commit and push changes
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
if git diff --quiet -- flake.lock; then
|
||||||
|
echo "flake.lock is already up to date"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
git config user.name "gitea-actions[bot]"
|
||||||
|
git config user.email "gitea-actions[bot]@noreply.localhost"
|
||||||
|
git add flake.lock
|
||||||
|
git commit -m "chore: update flake lock"
|
||||||
|
git push
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
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,6 +12,9 @@ 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
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
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",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
@@ -1,85 +1,10 @@
|
|||||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
|
||||||
|
|
||||||
-- You can also add or configure plugins by creating files in this `plugins/` folder
|
|
||||||
-- Here are some examples:
|
|
||||||
|
|
||||||
---@type LazySpec
|
---@type LazySpec
|
||||||
return {
|
return {
|
||||||
|
{ "nvim-treesitter/nvim-treesitter" },
|
||||||
-- == Examples of Adding Plugins ==
|
{ "neovim/nvim-lspconfig" },
|
||||||
|
{ "kylechui/nvim-surround" },
|
||||||
"andweeb/presence.nvim",
|
{ "nvim-neo-tree/neo-tree.nvim" },
|
||||||
{
|
{ "akinsho/toggleterm.nvim" },
|
||||||
"ray-x/lsp_signature.nvim",
|
{ "nvimtools/none-ls.nvim" },
|
||||||
event = "BufRead",
|
{ "rebelot/heirline.nvim" },
|
||||||
config = function() require("lsp_signature").setup() end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- == Examples of Overriding Plugins ==
|
|
||||||
|
|
||||||
-- customize alpha options
|
|
||||||
{
|
|
||||||
"goolord/alpha-nvim",
|
|
||||||
opts = function(_, opts)
|
|
||||||
-- customize the dashboard header
|
|
||||||
opts.section.header.val = {
|
|
||||||
" █████ ███████ ████████ ██████ ██████",
|
|
||||||
"██ ██ ██ ██ ██ ██ ██ ██",
|
|
||||||
"███████ ███████ ██ ██████ ██ ██",
|
|
||||||
"██ ██ ██ ██ ██ ██ ██ ██",
|
|
||||||
"██ ██ ███████ ██ ██ ██ ██████",
|
|
||||||
" ",
|
|
||||||
" ███ ██ ██ ██ ██ ███ ███",
|
|
||||||
" ████ ██ ██ ██ ██ ████ ████",
|
|
||||||
" ██ ██ ██ ██ ██ ██ ██ ████ ██",
|
|
||||||
" ██ ██ ██ ██ ██ ██ ██ ██ ██",
|
|
||||||
" ██ ████ ████ ██ ██ ██",
|
|
||||||
}
|
|
||||||
return opts
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
-- You can disable default plugins as follows:
|
|
||||||
{ "max397574/better-escape.nvim", enabled = false },
|
|
||||||
|
|
||||||
-- You can also easily customize additional setup of plugins that is outside of the plugin's setup call
|
|
||||||
{
|
|
||||||
"L3MON4D3/LuaSnip",
|
|
||||||
config = function(plugin, opts)
|
|
||||||
require "astronvim.plugins.configs.luasnip"(plugin, opts) -- include the default astronvim config that calls the setup call
|
|
||||||
-- add more custom luasnip configuration such as filetype extend or custom snippets
|
|
||||||
local luasnip = require "luasnip"
|
|
||||||
luasnip.filetype_extend("javascript", { "javascriptreact" })
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
"windwp/nvim-autopairs",
|
|
||||||
config = function(plugin, opts)
|
|
||||||
require "astronvim.plugins.configs.nvim-autopairs"(plugin, opts) -- include the default astronvim config that calls the setup call
|
|
||||||
-- add more custom autopairs configuration such as custom rules
|
|
||||||
local npairs = require "nvim-autopairs"
|
|
||||||
local Rule = require "nvim-autopairs.rule"
|
|
||||||
local cond = require "nvim-autopairs.conds"
|
|
||||||
npairs.add_rules(
|
|
||||||
{
|
|
||||||
Rule("$", "$", { "tex", "latex" })
|
|
||||||
-- don't add a pair if the next character is %
|
|
||||||
:with_pair(cond.not_after_regex "%%")
|
|
||||||
-- don't add a pair if the previous character is xxx
|
|
||||||
:with_pair(
|
|
||||||
cond.not_before_regex("xxx", 3)
|
|
||||||
)
|
|
||||||
-- don't move right when repeat character
|
|
||||||
:with_move(cond.none())
|
|
||||||
-- don't delete if the next character is xx
|
|
||||||
:with_del(cond.not_after_regex "xx")
|
|
||||||
-- disable adding a newline when you press <cr>
|
|
||||||
:with_cr(cond.none()),
|
|
||||||
},
|
|
||||||
-- disable for .vim files, but it work for another filetypes
|
|
||||||
Rule("a", "a", "-vim")
|
|
||||||
)
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
@@ -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 light -A 5
|
bindsym XF86MonBrightnessUp exec brightnessctl set +5%
|
||||||
bindsym XF86MonBrightnessDown exec light -U 5
|
bindsym XF86MonBrightnessDown exec brightnessctl set 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'
|
||||||
|
|||||||
Generated
+521
-85
@@ -9,11 +9,11 @@
|
|||||||
"rust-overlay": "rust-overlay"
|
"rust-overlay": "rust-overlay"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774186997,
|
"lastModified": 1792853286,
|
||||||
"narHash": "sha256-hyNVlhAqmwcBPl7XRkxbGcMt1BfCOdvuEfBDUf0k8Oo=",
|
"narHash": "sha256-l/Oh5k1NQqQuwh4gBF3VcmCF0WGiCT/LqfvY5huhOq4=",
|
||||||
"owner": "ezKEa",
|
"owner": "ezKEa",
|
||||||
"repo": "aagl-gtk-on-nix",
|
"repo": "aagl-gtk-on-nix",
|
||||||
"rev": "546e95f7ec74892a31f883a10b1723c35f2c2edd",
|
"rev": "e9a3b8fdb50a7d77a90c02c84e298c286310385b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -22,6 +22,29 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"caitsith": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-schemas": "flake-schemas",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nur",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-overlay": "rust-overlay_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1792911802,
|
||||||
|
"narHash": "sha256-GdMiAfj8hRDCqrE2AvQJ3atf0y2XVGFx9/Ptr6qiju0=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "a355f99a17b9dc38fc626b80340646a94ae7f1c9",
|
||||||
|
"revCount": 30,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://scm.wyattjmiller.com/wymiller/caitsith.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://scm.wyattjmiller.com/wymiller/caitsith.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
"darwin": {
|
"darwin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -29,16 +52,37 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1772129556,
|
"lastModified": 1792800221,
|
||||||
"narHash": "sha256-Utk0zd8STPsUJPyjabhzPc5BpPodLTXrwkpXBHYnpeg=",
|
"narHash": "sha256-53jIZEWNh96irEXhsMZFoNhLJgGSU3nYl1i4wFQHAsU=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "ebec37af18215214173c98cf6356d0aca24a2585",
|
"rev": "d31953cf55f9027a56e9be938daf5db8c5655663",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"ref": "nix-darwin-25.11",
|
"ref": "nix-darwin-26.05",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"darwin_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nur",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1792737899,
|
||||||
|
"narHash": "sha256-P0/GhewcEQmAbzq3QunNWY2jLJaYH9F6c/5dEM/jQ4M=",
|
||||||
|
"owner": "LnL7",
|
||||||
|
"repo": "nix-darwin",
|
||||||
|
"rev": "bb0b90dbd54e207100de72b5dcbe3188c98a4b69",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "LnL7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@@ -59,14 +103,78 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-compat_2": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767039857,
|
||||||
|
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_3": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1767039857,
|
||||||
|
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_4": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1747046372,
|
||||||
|
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-compat_5": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1777699697,
|
||||||
|
"narHash": "sha256-Eg9b/rq/ECYwNwEXs5i9wHyhxNI0JrYx2srdI2uZMaQ=",
|
||||||
|
"ref": "refs/heads/main",
|
||||||
|
"rev": "382052b74656a369c5408822af3f2501e9b1af81",
|
||||||
|
"revCount": 94,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-schemas": {
|
"flake-schemas": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761577921,
|
"lastModified": 1780327564,
|
||||||
"narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=",
|
"narHash": "sha256-HiRPtA0spK+Dkgbhz/1zW9glXxNVB+L4Rj2VYmdawb8=",
|
||||||
"rev": "47849c7625e223d36766968cc6dc23ba0e135922",
|
"rev": "6cc9bd98891b1fc6bb2b8cb3277df8bc72799ca6",
|
||||||
"revCount": 107,
|
"revCount": 149,
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz"
|
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.5.0/019e83cf-9af3-78b1-ac5b-70e68ad1efe1/source.tar.gz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
@@ -75,18 +183,165 @@
|
|||||||
},
|
},
|
||||||
"flake-schemas_2": {
|
"flake-schemas_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1761577921,
|
"lastModified": 1780327564,
|
||||||
"narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=",
|
"narHash": "sha256-HiRPtA0spK+Dkgbhz/1zW9glXxNVB+L4Rj2VYmdawb8=",
|
||||||
"rev": "47849c7625e223d36766968cc6dc23ba0e135922",
|
"rev": "6cc9bd98891b1fc6bb2b8cb3277df8bc72799ca6",
|
||||||
"revCount": 107,
|
"revCount": 149,
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz"
|
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.5.0/019e83cf-9af3-78b1-ac5b-70e68ad1efe1/source.tar.gz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
|
"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",
|
||||||
|
"nixpkgs": [
|
||||||
|
"go-overlay",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1788267358,
|
||||||
|
"narHash": "sha256-nt+lUqYVpc9Y6JeMd2WmXzCDojasdadKo0mWcluvY2Y=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "27555e2624241fb116b49095df4caaee85a25691",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"git-hooks_2": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_3",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nur",
|
||||||
|
"go-overlay",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1788267358,
|
||||||
|
"narHash": "sha256-nt+lUqYVpc9Y6JeMd2WmXzCDojasdadKo0mWcluvY2Y=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"rev": "27555e2624241fb116b49095df4caaee85a25691",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "git-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"go-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"git-hooks": "git-hooks",
|
||||||
|
"nixpkgs": "nixpkgs"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1792644631,
|
||||||
|
"narHash": "sha256-3aILZu5bQ+6khPvGCdIbC7wBFZOgPbpP0TBSL9tf89E=",
|
||||||
|
"owner": "purpleclay",
|
||||||
|
"repo": "go-overlay",
|
||||||
|
"rev": "ff2b494b477eb4349dd40f0564cedab552f9804d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "purpleclay",
|
||||||
|
"repo": "go-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"go-overlay_2": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"git-hooks": "git-hooks_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nur",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1792644631,
|
||||||
|
"narHash": "sha256-3aILZu5bQ+6khPvGCdIbC7wBFZOgPbpP0TBSL9tf89E=",
|
||||||
|
"owner": "purpleclay",
|
||||||
|
"repo": "go-overlay",
|
||||||
|
"rev": "ff2b494b477eb4349dd40f0564cedab552f9804d",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "purpleclay",
|
||||||
|
"repo": "go-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"hildibrand": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-schemas": "flake-schemas_2",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nur",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"rust-overlay": "rust-overlay_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1792911744,
|
||||||
|
"narHash": "sha256-iXH6FL8HYaZg0+p9lUv5bEc4k1YpvwKFYtMYbY1phTA=",
|
||||||
|
"ref": "refs/heads/master",
|
||||||
|
"rev": "01ff244467f011033d98286e8f4171a890e9060a",
|
||||||
|
"revCount": 19,
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://scm.wyattjmiller.com/wymiller/hildibrand.git"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://scm.wyattjmiller.com/wymiller/hildibrand.git"
|
||||||
|
}
|
||||||
|
},
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -94,20 +349,56 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774274588,
|
"lastModified": 1792818383,
|
||||||
"narHash": "sha256-dnHvv5EMUgTzGZmA+3diYjQU2O6BEpGLEOgJ1Qe9LaY=",
|
"narHash": "sha256-199i7ubVSXTMl+0AAlL7cVCXSjcI+jWByMcimYjeMX0=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "cf9686ba26f5ef788226843bc31fda4cf72e373b",
|
"rev": "24f2190587513b9c2f73db112a17844ae912d965",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-25.11",
|
"ref": "release-26.05",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"home-manager_2": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nur",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1792896866,
|
||||||
|
"narHash": "sha256-/0tELNnhdSnP+bHSdWiEe6KpfSwi6WrTnT9cm/jNkjA=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"rev": "c216bf5a1f173b0481bd5c8c489ebe5595ecc68c",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "home-manager",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mnw": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1784154424,
|
||||||
|
"narHash": "sha256-HRn4O1X2ShYtbq5Egji72/aemyc2cIQicjRZD9hBqM8=",
|
||||||
|
"owner": "Gerg-L",
|
||||||
|
"repo": "mnw",
|
||||||
|
"rev": "0151d9fa87992cbeb67c86616fb9170dcec830b6",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Gerg-L",
|
||||||
|
"repo": "mnw",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-flatpak": {
|
"nix-flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739444422,
|
"lastModified": 1739444422,
|
||||||
@@ -124,39 +415,91 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nix-minecraft": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_4",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nur",
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"systems": "systems_3"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744536153,
|
"lastModified": 1792988509,
|
||||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
"narHash": "sha256-1Li/v57ePpV9t6E57w/XTu760H6hYHztwm1RSd6RA8k=",
|
||||||
"owner": "NixOS",
|
"owner": "Infinidoge",
|
||||||
"repo": "nixpkgs",
|
"repo": "nix-minecraft",
|
||||||
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
|
"rev": "931d87d3811cabc0277be27b94392d19291bd344",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "Infinidoge",
|
||||||
"ref": "nixpkgs-unstable",
|
"repo": "nix-minecraft",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1789286504,
|
||||||
|
"narHash": "sha256-eiEK7cKZORNEvX0GeF3RtNEF/JXhgf2RqSp3230q13E=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "ef34387ddd751e1ab8857adf4676492d32eb24ec",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774244481,
|
"lastModified": 1792898606,
|
||||||
"narHash": "sha256-4XfMXU0DjN83o6HWZoKG9PegCvKvIhNUnRUI19vzTcQ=",
|
"narHash": "sha256-Mg3rRjsbMqhSMxop5PYMXos8SwAjejrxSgVThTvP9eg=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "4590696c8693fea477850fe379a01544293ca4e2",
|
"rev": "1f607aa79b6356ed45d3cd3c8079c196e79efa2c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-25.11",
|
"ref": "nixos-26.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1792615934,
|
||||||
|
"narHash": "sha256-MlvRfa1O5Cqc2/a+gG+l9TSuowEoCKCmrJ1d9oAVm0I=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "da6dc0e7b26060f2f71ce3ef7088fb56ee44fa36",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-26.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1790046670,
|
||||||
|
"narHash": "sha256-OJe62m8gZx4xEAQnMcqH1u31/uu4Xf0q2ykAEHZfgrg=",
|
||||||
|
"rev": "6774f7bc253789b113a4f39285dc0fa100abeacc",
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://releases.nixos.org/nixos/unstable/nixos-26.11pre1077996.6774f7bc2537/nixexprs.tar.xz"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"type": "tarball",
|
||||||
|
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_5": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1744536153,
|
"lastModified": 1744536153,
|
||||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||||
@@ -172,56 +515,77 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nur": {
|
||||||
|
"inputs": {
|
||||||
|
"caitsith": "caitsith",
|
||||||
|
"darwin": "darwin_2",
|
||||||
|
"go-overlay": "go-overlay_2",
|
||||||
|
"hildibrand": "hildibrand",
|
||||||
|
"home-manager": "home-manager_2",
|
||||||
|
"nix-minecraft": "nix-minecraft",
|
||||||
|
"nixpkgs": "nixpkgs_3",
|
||||||
|
"rust-overlay": "rust-overlay_4"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1766201043,
|
"lastModified": 1793051642,
|
||||||
"narHash": "sha256-eplAP+rorKKd0gNjV3rA6+0WMzb1X1i16F5m5pASnjA=",
|
"narHash": "sha256-b+CbWZU8sYR9TNBg6KJur680E+5+Zm4S4IVzkzFnJEc=",
|
||||||
"rev": "b3aad468604d3e488d627c0b43984eb60e75e782",
|
"ref": "refs/heads/master",
|
||||||
"revCount": 904049,
|
"rev": "8ec05b20cea4865f9fd5dd797c6e090f41863db1",
|
||||||
"type": "tarball",
|
"revCount": 121,
|
||||||
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.904049%2Brev-b3aad468604d3e488d627c0b43984eb60e75e782/019b3f6c-8b33-7edb-b858-9979590f270b/source.tar.gz"
|
"type": "git",
|
||||||
|
"url": "https://scm.wyattjmiller.com/wymiller/nur.git"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "git",
|
||||||
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
|
"url": "https://scm.wyattjmiller.com/wymiller/nur.git"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_5": {
|
"nvf": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat_5",
|
||||||
|
"mnw": "mnw",
|
||||||
|
"nixpkgs": "nixpkgs_4"
|
||||||
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769089682,
|
"lastModified": 1793047357,
|
||||||
"narHash": "sha256-9yA/LIuAVQq0lXelrZPjLuLVuZdm03p8tfmHhnDIkms=",
|
"narHash": "sha256-eY8aBTGSgtx+25254i22jyjbj+JQkEIfb+JyQ2Exnuk=",
|
||||||
"rev": "078d69f03934859a181e81ba987c2bb033eebfc5",
|
"owner": "notashelf",
|
||||||
"revCount": 906333,
|
"repo": "nvf",
|
||||||
"type": "tarball",
|
"rev": "60b4593979c39e9a1227c9913bd835bb1a59054b",
|
||||||
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.906333%2Brev-078d69f03934859a181e81ba987c2bb033eebfc5/019bebf2-031c-7119-8fdc-ce9d29d005fa/source.tar.gz"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"owner": "notashelf",
|
||||||
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
|
"repo": "nvf",
|
||||||
|
"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",
|
||||||
"rust-overlay": "rust-overlay_2",
|
"nur": "nur",
|
||||||
"swaytreesave": "swaytreesave",
|
"nvf": "nvf",
|
||||||
"vintage-story": "vintage-story"
|
"rust-overlay": "rust-overlay_5"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"rust-overlay": {
|
"rust-overlay": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": [
|
||||||
|
"aagl",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1770952264,
|
"lastModified": 1785476452,
|
||||||
"narHash": "sha256-CjymNrJZWBtpavyuTkfPVPaZkwzIzGaf0E/3WgcwM14=",
|
"narHash": "sha256-/CXwCFPS41rb/JI2VitKCgVK6V5E6/sfw5ke3B9zyVQ=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "ec6a3d5cdf14bb5a1dd03652bd3f6351004d2188",
|
"rev": "6ef009bf4c4873cdc1a621826722bdea7c03e62c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -232,14 +596,18 @@
|
|||||||
},
|
},
|
||||||
"rust-overlay_2": {
|
"rust-overlay_2": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs_3"
|
"nixpkgs": [
|
||||||
|
"nur",
|
||||||
|
"caitsith",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1774321696,
|
"lastModified": 1792825530,
|
||||||
"narHash": "sha256-g18xMjMNla/nsF5XyQCNyWmtb2UlZpkY0XE8KinIXAA=",
|
"narHash": "sha256-aphXA2IFNd3q48++TKmfuuvDDjkrgGdJDnDIhij9684=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "49a67e6894d4cb782842ee6faa466aa90c92812d",
|
"rev": "5b9f1198b59bcb31c5c3250b332e7d77590e6306",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -248,42 +616,110 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"swaytreesave": {
|
"rust-overlay_3": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-schemas": "flake-schemas",
|
"nixpkgs": [
|
||||||
"nixpkgs": "nixpkgs_4"
|
"nur",
|
||||||
|
"hildibrand",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1767148467,
|
"lastModified": 1792825530,
|
||||||
"narHash": "sha256-W0O7SWq8ucokt4ctEAEvRvNoSM/oF7fBfb2kTN+lwTs=",
|
"narHash": "sha256-aphXA2IFNd3q48++TKmfuuvDDjkrgGdJDnDIhij9684=",
|
||||||
"ref": "refs/heads/master",
|
"owner": "oxalica",
|
||||||
"rev": "0f4bb9bb450b28aa4f29d5eb2062deac6c26687a",
|
"repo": "rust-overlay",
|
||||||
"revCount": 4,
|
"rev": "5b9f1198b59bcb31c5c3250b332e7d77590e6306",
|
||||||
"type": "git",
|
"type": "github"
|
||||||
"url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "git",
|
"owner": "oxalica",
|
||||||
"url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git"
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"vintage-story": {
|
"rust-overlay_4": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nur",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1792825530,
|
||||||
|
"narHash": "sha256-aphXA2IFNd3q48++TKmfuuvDDjkrgGdJDnDIhij9684=",
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"rev": "5b9f1198b59bcb31c5c3250b332e7d77590e6306",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "oxalica",
|
||||||
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"rust-overlay_5": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-schemas": "flake-schemas_2",
|
|
||||||
"nixpkgs": "nixpkgs_5"
|
"nixpkgs": "nixpkgs_5"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1769397199,
|
"lastModified": 1793000331,
|
||||||
"narHash": "sha256-MSajncUGZtlpl88rqFdj42eGGyWnk2jw84VbK3AgUBA=",
|
"narHash": "sha256-6sLQgHX/V/yF8VrhmsJroujeRua1GY3nDTEpnY7tHF4=",
|
||||||
"ref": "refs/heads/master",
|
"owner": "oxalica",
|
||||||
"rev": "4d2313c50933645040a0d12556016fc2916bfa65",
|
"repo": "rust-overlay",
|
||||||
"revCount": 1,
|
"rev": "0d0575988e4bb9ebc4cf1afb1cec1ceac0b5914e",
|
||||||
"type": "git",
|
"type": "github"
|
||||||
"url": "https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git"
|
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "git",
|
"owner": "oxalica",
|
||||||
"url": "https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git"
|
"repo": "rust-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems_3": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,25 +1,24 @@
|
|||||||
{
|
{
|
||||||
description = "Wyatt's nix configuration suite";
|
description = "Wyatt's nix configuration suite";
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
|
||||||
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-25.11";
|
url = "github:nix-community/home-manager/release-26.05";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
darwin = {
|
darwin = {
|
||||||
url = "github:lnl7/nix-darwin/nix-darwin-25.11";
|
url = "github:lnl7/nix-darwin/nix-darwin-26.05";
|
||||||
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";
|
||||||
# My personal flakes
|
nur.url = "git+https://scm.wyattjmiller.com/wymiller/nur.git";
|
||||||
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 @ {
|
||||||
@@ -29,26 +28,32 @@
|
|||||||
darwin,
|
darwin,
|
||||||
home-manager,
|
home-manager,
|
||||||
rust-overlay,
|
rust-overlay,
|
||||||
|
go-overlay,
|
||||||
aagl,
|
aagl,
|
||||||
swaytreesave,
|
nur,
|
||||||
vintage-story,
|
nvf,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
userName = "wyatt";
|
userName = "wyatt";
|
||||||
userEmail = "wyatt@wyattjmiller.com";
|
userEmail = "wyatt@wyattjmiller.com";
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit userName userEmail swaytreesave;
|
inherit userName userEmail nur nvf;
|
||||||
};
|
};
|
||||||
|
|
||||||
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
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
meta = import ./meta;
|
meta = import ./meta;
|
||||||
|
formatter = nixpkgs.lib.genAttrs [
|
||||||
|
"x86_64-linux"
|
||||||
|
"aarch64-darwin"
|
||||||
|
] (system: nixpkgs.legacyPackages.${system}.nixfmt);
|
||||||
|
|
||||||
common = {
|
common = {
|
||||||
overlays = import ./modules/common/overlays.nix;
|
overlays = import ./modules/common/overlays.nix;
|
||||||
@@ -83,7 +88,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 vintage-story;
|
inherit userName userEmail aagl nur;
|
||||||
hostname = "cloud";
|
hostname = "cloud";
|
||||||
role = "workstation";
|
role = "workstation";
|
||||||
};
|
};
|
||||||
@@ -123,7 +128,7 @@
|
|||||||
{
|
{
|
||||||
home-manager.useGlobalPkgs = true;
|
home-manager.useGlobalPkgs = true;
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.extraSpecialArgs = extraSpecialArgs;
|
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "workstation"; };
|
||||||
home-manager.backupFileExtension = "bak";
|
home-manager.backupFileExtension = "bak";
|
||||||
home-manager.users.${userName}.imports = [
|
home-manager.users.${userName}.imports = [
|
||||||
./home
|
./home
|
||||||
@@ -166,7 +171,7 @@
|
|||||||
nixosConfigurations."thancred" = nixpkgs.lib.nixosSystem {
|
nixosConfigurations."thancred" = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit userName userEmail vintage-story;
|
inherit userName userEmail nur;
|
||||||
hostname = "thancred";
|
hostname = "thancred";
|
||||||
role = "server";
|
role = "server";
|
||||||
};
|
};
|
||||||
@@ -188,11 +193,37 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Vintage story server - for a friend
|
||||||
|
nixosConfigurations."raubahn" = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = {
|
||||||
|
inherit userName userEmail nur;
|
||||||
|
hostname = "raubahn";
|
||||||
|
role = "server";
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
myOverlays
|
||||||
|
./modules/common
|
||||||
|
./modules/machine/raubahn
|
||||||
|
|
||||||
|
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
|
# Matrix and Mastodon server
|
||||||
nixosConfigurations."yshtola" = nixpkgs.lib.nixosSystem {
|
nixosConfigurations."yshtola" = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit userName userEmail;
|
inherit userName userEmail nur;
|
||||||
hostname = "yshtola";
|
hostname = "yshtola";
|
||||||
role = "server";
|
role = "server";
|
||||||
};
|
};
|
||||||
@@ -214,6 +245,56 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Discord bot server
|
||||||
|
nixosConfigurations."estinien" = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = {
|
||||||
|
inherit userName userEmail nur;
|
||||||
|
hostname = "estinien";
|
||||||
|
role = "server";
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
myOverlays
|
||||||
|
./modules/common
|
||||||
|
./modules/machine/estinien
|
||||||
|
|
||||||
|
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
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# Homestead 2.0 Minecraft server
|
||||||
|
nixosConfigurations."krile" = nixpkgs.lib.nixosSystem {
|
||||||
|
system = "x86_64-linux";
|
||||||
|
specialArgs = {
|
||||||
|
inherit userName userEmail nur;
|
||||||
|
hostname = "krile";
|
||||||
|
role = "server";
|
||||||
|
};
|
||||||
|
modules = [
|
||||||
|
myOverlays
|
||||||
|
./modules/common
|
||||||
|
./modules/machine/krile
|
||||||
|
|
||||||
|
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];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
# generic non-NixOS Linux machine
|
# generic non-NixOS Linux machine
|
||||||
homeConfigurations."generic" = let
|
homeConfigurations."generic" = let
|
||||||
hostname = builtins.getEnv "HOSTNAME";
|
hostname = builtins.getEnv "HOSTNAME";
|
||||||
@@ -222,7 +303,7 @@
|
|||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
|
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit userName userEmail hostname;
|
inherit userName userEmail hostname nvf;
|
||||||
isNixOS = false;
|
isNixOS = false;
|
||||||
role = "workstation";
|
role = "workstation";
|
||||||
};
|
};
|
||||||
@@ -230,6 +311,7 @@
|
|||||||
{
|
{
|
||||||
nixpkgs.overlays = [
|
nixpkgs.overlays = [
|
||||||
rust-overlay.overlays.default
|
rust-overlay.overlays.default
|
||||||
|
go-overlay.overlays.default
|
||||||
self.common.overlays
|
self.common.overlays
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
{ lib
|
{ lib
|
||||||
, pkgs
|
, pkgs
|
||||||
, userName
|
, userName
|
||||||
, swaytreesave
|
|
||||||
, isNixOS ? true
|
, isNixOS ? true
|
||||||
, ...
|
, ...
|
||||||
}: let
|
}: let
|
||||||
|
|||||||
+6
-2
@@ -13,11 +13,15 @@
|
|||||||
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";
|
||||||
push.autoSetupRemote = true;
|
|
||||||
pull.rebase = false;
|
|
||||||
merge.tool = "nvimdiff";
|
merge.tool = "nvimdiff";
|
||||||
mergetool.keepBackup = false;
|
mergetool.keepBackup = false;
|
||||||
|
push.autoSetupRemote = true;
|
||||||
|
pull.rebase = false;
|
||||||
|
user.signingkey = "~/.ssh/id_ed25519_sk.pub";
|
||||||
};
|
};
|
||||||
|
|
||||||
ignores = [
|
ignores = [
|
||||||
|
|||||||
+1
-1
@@ -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,6 +4,7 @@
|
|||||||
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"];
|
||||||
|
|||||||
+105
-11
@@ -1,18 +1,112 @@
|
|||||||
{...}: let
|
{ nvf, ... }: {
|
||||||
dirs = {
|
imports = [
|
||||||
defaults = ../defaults;
|
nvf.homeManagerModules.default
|
||||||
};
|
];
|
||||||
in {
|
|
||||||
programs.neovim = {
|
programs.nvf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultEditor = true;
|
settings = {
|
||||||
|
vim = {
|
||||||
|
viAlias = true;
|
||||||
vimAlias = true;
|
vimAlias = true;
|
||||||
|
lsp.enable = true;
|
||||||
|
treesitter.enable = true;
|
||||||
|
autocomplete.nvim-cmp.enable = true;
|
||||||
|
autopairs.nvim-autopairs.enable = true;
|
||||||
|
|
||||||
|
languages = {
|
||||||
|
nix.enable = true;
|
||||||
|
rust.enable = true;
|
||||||
|
go.enable = true;
|
||||||
|
python.enable = true;
|
||||||
|
markdown.enable = true;
|
||||||
|
css.enable = true;
|
||||||
|
scss.enable = true;
|
||||||
|
tsx.enable = true;
|
||||||
|
typescript = {
|
||||||
|
enable = true;
|
||||||
|
lsp.servers = [ "typescript-language-server" "deno" ];
|
||||||
|
};
|
||||||
|
csharp.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
xdg.configFile = {
|
utility.surround.enable = true;
|
||||||
nvim = {
|
telescope.enable = true;
|
||||||
onChange = "nvim --headless -c 'if exists(\":LuaCacheClear\") | :LuaCacheClear' +quitall";
|
mini.icons.enable = true;
|
||||||
source = dirs.defaults + /nvim;
|
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;
|
||||||
|
tabline.nvimBufferline.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; }
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -5,11 +5,17 @@ lib.mkIf pkgs.stdenv.isLinux {
|
|||||||
xdg-utils
|
xdg-utils
|
||||||
] ++ lib.optionals isNixOS [
|
] ++ lib.optionals isNixOS [
|
||||||
vesktop
|
vesktop
|
||||||
xfce.thunar
|
thunar
|
||||||
|
thunar-volman
|
||||||
|
thunar-shares-plugin
|
||||||
|
thunar-vcs-plugin
|
||||||
|
thunar-archive-plugin
|
||||||
|
thunar-media-tags-plugin
|
||||||
pavucontrol
|
pavucontrol
|
||||||
zathura
|
zathura
|
||||||
gpu-screen-recorder
|
gpu-screen-recorder
|
||||||
gpu-screen-recorder-gtk
|
gpu-screen-recorder-gtk
|
||||||
inetutils
|
inetutils
|
||||||
|
easyeffects
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
@@ -18,7 +18,6 @@
|
|||||||
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
|
||||||
@@ -29,5 +28,10 @@
|
|||||||
deadnix
|
deadnix
|
||||||
alejandra
|
alejandra
|
||||||
statix
|
statix
|
||||||
|
gh
|
||||||
|
ghDashLatest
|
||||||
|
diffNavLatest
|
||||||
|
] ++ lib.optionals isNixOS [
|
||||||
|
obsidian
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
+8
-4
@@ -31,7 +31,6 @@
|
|||||||
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!" \
|
||||||
@@ -40,7 +39,6 @@
|
|||||||
"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." \
|
||||||
@@ -68,8 +66,14 @@
|
|||||||
"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." \
|
"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" \
|
"Boring, boring, boring" \
|
||||||
"Would you be 'happier' had I a 'good reason'?" \
|
"Would you be 'happier' had I a 'good reason'?" \
|
||||||
"A test of your reflexes!"
|
"A test of your reflexes!" \
|
||||||
|
"Yer a wizard, Wyatt" \
|
||||||
|
"Yer a lizard, Wyatt" \
|
||||||
|
"Po-Tay-To boil em mash em stick em in a stew" \
|
||||||
|
"Oh look it's the cutie patootie potato!" \
|
||||||
|
"What a charming young man" \
|
||||||
|
"Wyatt, you are smart, kind, and resilient. I believe in you no matter what life throws at you! Kick this project's butt!! - Nico" \
|
||||||
|
"Ganbatte!"
|
||||||
|
|
||||||
set choose_meme (random)"%"(count $memes)
|
set choose_meme (random)"%"(count $memes)
|
||||||
set choose_meme $memes[(math $choose_meme"+1")]
|
set choose_meme $memes[(math $choose_meme"+1")]
|
||||||
|
|||||||
+2
-3
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
swaytreesave,
|
nur,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
dirs = {
|
dirs = {
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
imports = [
|
imports = [
|
||||||
swaytreesave.homeManagerModules.default
|
nur.homeManagerModules.swaytreesave
|
||||||
];
|
];
|
||||||
|
|
||||||
programs.swaytreesave.enable = if pkgs.stdenv.isLinux then true else false;
|
programs.swaytreesave.enable = if pkgs.stdenv.isLinux then true else false;
|
||||||
@@ -155,5 +155,4 @@ in {
|
|||||||
enable = pkgs.stdenv.isLinux;
|
enable = pkgs.stdenv.isLinux;
|
||||||
systemd.enable = true;
|
systemd.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
+33
-14
@@ -3,7 +3,7 @@
|
|||||||
lib,
|
lib,
|
||||||
pkgs,
|
pkgs,
|
||||||
aagl,
|
aagl,
|
||||||
vintage-story,
|
nur,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
cfg = config.gaming;
|
cfg = config.gaming;
|
||||||
@@ -76,6 +76,16 @@ in {
|
|||||||
enable = lib.mkEnableOption "OpenGL/Vulkan overlay tool shown in games presenting FPS, CPU/GPU/memory utilization, load, etc.";
|
enable = lib.mkEnableOption "OpenGL/Vulkan overlay tool shown in games presenting FPS, CPU/GPU/memory utilization, load, etc.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
proton = {
|
||||||
|
enable = lib.mkEnableOption "Proton compatibility tool management";
|
||||||
|
|
||||||
|
manager = lib.mkOption {
|
||||||
|
type = lib.types.enum ["protonplus" "protonup-qt"];
|
||||||
|
default = "protonup-qt";
|
||||||
|
description = "Graphical Proton compatibility tool manager to install";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
lutris = {
|
lutris = {
|
||||||
enable = lib.mkEnableOption "Lutris game manager and launcher";
|
enable = lib.mkEnableOption "Lutris game manager and launcher";
|
||||||
package = lib.mkOption {
|
package = lib.mkOption {
|
||||||
@@ -93,14 +103,7 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Compatibility layers for Lutris
|
|
||||||
compatibility = {
|
compatibility = {
|
||||||
protonSupport = lib.mkOption {
|
|
||||||
type = lib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = "Enable Proton-like compatibility layers for Lutris";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraTools = lib.mkOption {
|
extraTools = lib.mkOption {
|
||||||
type = lib.types.listOf lib.types.package;
|
type = lib.types.listOf lib.types.package;
|
||||||
default = [];
|
default = [];
|
||||||
@@ -149,13 +152,31 @@ in {
|
|||||||
vintage-story = {
|
vintage-story = {
|
||||||
enable = lib.mkEnableOption "Vintage Story client and server";
|
enable = lib.mkEnableOption "Vintage Story client and server";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
archon = {
|
||||||
|
enable = lib.mkEnableOption "Archon from NUR";
|
||||||
|
};
|
||||||
|
|
||||||
|
opengoal = {
|
||||||
|
enable = lib.mkEnableOption "OpenGOAL, a game engine used in a certain PlayStation 2 franchise";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = let
|
config = let
|
||||||
agl = cfg.aagl;
|
agl = cfg.aagl;
|
||||||
|
nurPkgs = import "${nur.outPath}/pkgs" { inherit pkgs; };
|
||||||
|
protonManager = {
|
||||||
|
protonplus = pkgs.protonplus;
|
||||||
|
protonup-qt = pkgs.protonup-qt;
|
||||||
|
}.${cfg.proton.manager};
|
||||||
in {
|
in {
|
||||||
programs.steam = lib.mkIf cfg.steam.enable {
|
programs.steam = lib.mkIf cfg.steam.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
gamescope
|
||||||
|
gamemode
|
||||||
|
];
|
||||||
|
|
||||||
remotePlay.openFirewall = cfg.steam.firewall.remotePlay;
|
remotePlay.openFirewall = cfg.steam.firewall.remotePlay;
|
||||||
localNetworkGameTransfers.openFirewall = cfg.steam.firewall.localNetworkGameTransfers;
|
localNetworkGameTransfers.openFirewall = cfg.steam.firewall.localNetworkGameTransfers;
|
||||||
};
|
};
|
||||||
@@ -209,16 +230,14 @@ in {
|
|||||||
cfg.lutris.wine.package
|
cfg.lutris.wine.package
|
||||||
pkgs.winetricks
|
pkgs.winetricks
|
||||||
]) ++
|
]) ++
|
||||||
(lib.optionals cfg.lutris.compatibility.protonSupport [
|
|
||||||
pkgs.protonup-ng
|
|
||||||
pkgs.protonup-qt
|
|
||||||
]) ++
|
|
||||||
cfg.lutris.compatibility.extraTools ++
|
cfg.lutris.compatibility.extraTools ++
|
||||||
cfg.lutris.extraPackages
|
cfg.lutris.extraPackages
|
||||||
)) ++
|
)) ++
|
||||||
|
(lib.optionals cfg.proton.enable [protonManager]) ++
|
||||||
(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 [vintage-story.packages.${pkgs.system}.default]) ++
|
(lib.optionals cfg.vintage-story.enable [nurPkgs.vintage-story]) ++
|
||||||
|
(lib.optionals cfg.archon.enable [nurPkgs.archon]) ++
|
||||||
(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]);
|
||||||
@@ -226,7 +245,7 @@ in {
|
|||||||
nix.settings = let
|
nix.settings = let
|
||||||
inherit agl;
|
inherit agl;
|
||||||
in (lib.mkIf
|
in (lib.mkIf
|
||||||
(agl.anime-game-launcher.enable || agl.honkers-railway-laucher.enable || agl.honkers-launcher.enable || agl.wavey-launcher.enable || agl.sleepy-launcher.enable)
|
(agl.anime-game-launcher.enable || agl.honkers-railway-launcher.enable || agl.honkers-launcher.enable || agl.wavey-launcher.enable || agl.sleepy-launcher.enable)
|
||||||
{
|
{
|
||||||
substituters = [ "https://ezkea.cachix.org" ];
|
substituters = [ "https://ezkea.cachix.org" ];
|
||||||
trusted-public-keys = [ "ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" ];
|
trusted-public-keys = [ "ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" ];
|
||||||
|
|||||||
@@ -1,19 +1,23 @@
|
|||||||
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.55.1";
|
version = "0.61.0";
|
||||||
src = prev.fetchFromGitHub {
|
src = prev.fetchFromGitHub {
|
||||||
owner = "jesseduffield";
|
owner = "jesseduffield";
|
||||||
repo = "lazygit";
|
repo = "lazygit";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-UofhgILZhVXnYiGpb25m4Ct4sbu5pRmjVgj3oEf5Uyk=";
|
hash = "sha256-G7JulCK9WUVWbp1V7lYuM3fehCdn1cNAJHYjr3aKDvQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorHash = null;
|
vendorHash = null;
|
||||||
subPackages = [ "." ];
|
subPackages = [ "." ];
|
||||||
ldflags = [
|
ldflags = [
|
||||||
@@ -25,21 +29,31 @@ in {
|
|||||||
atuinLatest = (prev.atuin.override {
|
atuinLatest = (prev.atuin.override {
|
||||||
rustPlatform = myRustPlatform;
|
rustPlatform = myRustPlatform;
|
||||||
}).overrideAttrs (oldAttrs: rec {
|
}).overrideAttrs (oldAttrs: rec {
|
||||||
version = "18.10.0";
|
version = "18.13.6";
|
||||||
|
|
||||||
src = prev.fetchFromGitHub {
|
src = prev.fetchFromGitHub {
|
||||||
owner = "atuinsh";
|
owner = "atuinsh";
|
||||||
repo = "atuin";
|
repo = "atuin";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
hash = "sha256-bfSa3RtVXxHt3usDqqpE/oXKKDUZOrf+tD9uL59fr6M=";
|
hash = "sha256-yAw+ty6FUnFbiRTdAe2QQHzj6uU24fZ/bEIXcHl/thg=";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoDeps = myRustPlatform.fetchCargoVendor {
|
cargoDeps = myRustPlatform.fetchCargoVendor {
|
||||||
# name = "atuin-${version}-vendor.tar.gz";
|
# name = "atuin-${version}-vendor.tar.gz";
|
||||||
inherit src;
|
inherit src;
|
||||||
hash = "sha256-67ffivZVCly1GWA3fJ9mT8nGv2EGd6eCthbaIu/IW3M=";
|
hash = "sha256-jirVe0+N5+UHZWioj8AipUhawMBameqEJJpa8HPTnfw=";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
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"
|
||||||
@@ -62,4 +76,53 @@ 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"
|
||||||
|
];
|
||||||
|
});
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
# Homestead 2.0 on krile
|
||||||
|
|
||||||
|
This module uses the Minecraft NixOS module and Fabric overlay re-exported by
|
||||||
|
the existing `nur` flake input. It pins Minecraft 1.20.1, Fabric 0.19.5, Java 17,
|
||||||
|
and the [official Homestead 2.0 server pack](https://cozystudios.org/homestead/server-pack/).
|
||||||
|
The archive and all eight additional mods listed in its `startserver.sh` are
|
||||||
|
downloaded with fixed SHA-256 hashes during the Nix build. The upstream startup
|
||||||
|
script is not run.
|
||||||
|
|
||||||
|
`modules/machine/krile/configuration.nix` enables the server, accepts the Minecraft
|
||||||
|
EULA, and opens TCP 25565 and UDP 24454 (Simple Voice Chat). Forward those ports
|
||||||
|
to krile on your router if players connect from outside your network. Players
|
||||||
|
need the Homestead 2.0 client pack.
|
||||||
|
|
||||||
|
The default heap is 6 GiB initially and 10 GiB maximum. Give the VM additional
|
||||||
|
RAM for the OS, native libraries, and filesystem cache; 16 GiB total is a
|
||||||
|
reasonable starting point.
|
||||||
|
|
||||||
|
## Deploy
|
||||||
|
|
||||||
|
On krile, from the repository root:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
nix eval --raw path:.#nixosConfigurations.krile.config.system.build.toplevel.drvPath
|
||||||
|
sudo nixos-rebuild switch --flake path:.#krile
|
||||||
|
```
|
||||||
|
|
||||||
|
The `path:.` form includes new files before they have been added to Git. Once the
|
||||||
|
new module and krile files are tracked, `--flake .#krile` works as usual.
|
||||||
|
|
||||||
|
The service starts on boot and restarts after an unexpected exit. Check it with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
systemctl status minecraft-server-homestead
|
||||||
|
journalctl -u minecraft-server-homestead -f
|
||||||
|
```
|
||||||
|
|
||||||
|
The console uses nix-minecraft's systemd FIFO. For example, run a command with:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo sh -c 'echo list > /run/minecraft/homestead.stdin'
|
||||||
|
```
|
||||||
|
|
||||||
|
Stop the service with `sudo systemctl stop minecraft-server-homestead` so it can
|
||||||
|
save the world cleanly.
|
||||||
|
|
||||||
|
## Configuration and state
|
||||||
|
|
||||||
|
Worlds, player progress, and other runtime state live in
|
||||||
|
`/srv/minecraft/homestead`. Back up that directory, particularly `world/`, before
|
||||||
|
changing pack versions. The module does not provide automatic backups.
|
||||||
|
|
||||||
|
The `mods` directory and server icon are store symlinks. `config`, `defaultconfigs`,
|
||||||
|
`kubejs`, `scripts`, and `patchouli_books` are writable copies of the pinned pack,
|
||||||
|
recreated on each start and removed on stop by nix-minecraft. Edits to those
|
||||||
|
copies do not persist across restarts. World data is not part of those managed
|
||||||
|
directories.
|
||||||
|
|
||||||
|
Change memory in the host configuration:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
services.homestead.jvmOpts = "-Xms6G -Xmx12G -XX:+UseG1GC";
|
||||||
|
```
|
||||||
|
|
||||||
|
Other server settings use the underlying nix-minecraft options:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
services.minecraft-servers.servers.homestead = {
|
||||||
|
serverProperties = {
|
||||||
|
server-port = 25566;
|
||||||
|
max-players = 10;
|
||||||
|
white-list = true;
|
||||||
|
};
|
||||||
|
# Add real player UUIDs here, or manage the whitelist through the console.
|
||||||
|
whitelist = { };
|
||||||
|
};
|
||||||
|
```
|
||||||
|
|
||||||
|
Changing `server-port` also changes the opened TCP port. Voice chat remains on
|
||||||
|
UDP 24454, matching the pack's `config/voicechat/voicechat-server.properties`.
|
||||||
|
|
||||||
|
To use this module on another NixOS host, pass `nur` in `specialArgs`, import
|
||||||
|
`modules/games/homestead`, set `services.homestead.enable = true`, and set
|
||||||
|
`services.minecraft-servers.eula = true` after accepting the EULA. The host must
|
||||||
|
allow unfree packages, as the common modules already do for krile.
|
||||||
|
|
||||||
|
## Pack updates
|
||||||
|
|
||||||
|
For a new release, inspect the official archive and startup script, update the
|
||||||
|
archive URL/hash in `package.nix`, update `required-mods.json` with any separate
|
||||||
|
downloads and their hashes, and match the Minecraft/Fabric versions in
|
||||||
|
`default.nix`. Evaluate and build before switching, then check the startup log.
|
||||||
|
The pack is kept fixed at 2.0 until these declarations change.
|
||||||
|
|
||||||
|
## Validation
|
||||||
|
|
||||||
|
The krile system derivation evaluates, and the pack, Fabric launcher, and
|
||||||
|
nix-minecraft setup/cleanup scripts build successfully. A temporary local server
|
||||||
|
reached `Done`, started Simple Voice Chat, and exited with status 0 after `stop`,
|
||||||
|
saving every dimension. Setup/cleanup was also checked to preserve world data
|
||||||
|
and reset managed configs. Multiplayer gameplay was not tested.
|
||||||
|
|
||||||
|
The upstream 2.0 pack emits some nonfatal mixin/recipe warnings and an optional
|
||||||
|
Falling Trees/Jade integration error during startup; these did not prevent the
|
||||||
|
startup and shutdown check from passing.
|
||||||
@@ -0,0 +1,81 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
nur,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
cfg = config.services.homestead;
|
||||||
|
modpack = pkgs.callPackage ./package.nix { };
|
||||||
|
in
|
||||||
|
{
|
||||||
|
imports = [ nur.nixosModules.minecraft-servers ];
|
||||||
|
|
||||||
|
options.services.homestead = {
|
||||||
|
enable = lib.mkEnableOption "the Homestead 2.0 Minecraft server";
|
||||||
|
|
||||||
|
openFirewall = lib.mkOption {
|
||||||
|
type = lib.types.bool;
|
||||||
|
default = false;
|
||||||
|
description = "Open the Minecraft TCP port and Simple Voice Chat UDP port (24454).";
|
||||||
|
};
|
||||||
|
|
||||||
|
jvmOpts = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
default = "-Xms6G -Xmx10G -XX:+UseG1GC";
|
||||||
|
description = "JVM options for Homestead. Leave additional RAM for the OS and native allocations.";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf cfg.enable {
|
||||||
|
nixpkgs.overlays = [ nur.overlays.minecraft ];
|
||||||
|
|
||||||
|
services.minecraft-servers = {
|
||||||
|
enable = true;
|
||||||
|
servers.homestead = {
|
||||||
|
enable = true;
|
||||||
|
inherit (cfg) openFirewall jvmOpts;
|
||||||
|
|
||||||
|
package = pkgs.fabricServers.fabric-1_20_1.override {
|
||||||
|
loaderVersion = "0.19.5";
|
||||||
|
jre_headless = pkgs.jdk17_headless;
|
||||||
|
};
|
||||||
|
|
||||||
|
managementSystem = {
|
||||||
|
tmux.enable = false;
|
||||||
|
systemd-socket.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Match the properties generated by the pack's startserver.sh.
|
||||||
|
serverProperties = lib.mapAttrs (_: lib.mkDefault) {
|
||||||
|
motd = "Homestead 2.0";
|
||||||
|
allow-flight = true;
|
||||||
|
max-tick-time = 180000;
|
||||||
|
simulation-distance = 6;
|
||||||
|
view-distance = 10;
|
||||||
|
server-port = 25565;
|
||||||
|
online-mode = true;
|
||||||
|
# keep-inventory = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
symlinks = {
|
||||||
|
mods = "${modpack}/mods";
|
||||||
|
"server-icon.png" = "${modpack}/server-icon.png";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Mods may rewrite their configs or generate files here. nix-minecraft
|
||||||
|
# supplies writable copies on each start and cleans them on stop.
|
||||||
|
files = lib.genAttrs [
|
||||||
|
"config"
|
||||||
|
"defaultconfigs"
|
||||||
|
"kubejs"
|
||||||
|
"scripts"
|
||||||
|
"patchouli_books"
|
||||||
|
] (dir: "${modpack}/${dir}");
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedUDPPorts = lib.mkIf cfg.openFirewall [ 24454 ];
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
lib,
|
||||||
|
stdenvNoCC,
|
||||||
|
fetchurl,
|
||||||
|
unzip,
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
# These eight downloads come from startserver.sh in the official 2.0 pack.
|
||||||
|
requiredMods = map fetchurl (lib.importJSON ./required-mods.json);
|
||||||
|
in
|
||||||
|
stdenvNoCC.mkDerivation {
|
||||||
|
pname = "homestead-server-pack";
|
||||||
|
version = "2.0";
|
||||||
|
|
||||||
|
src = fetchurl {
|
||||||
|
name = "Homestead-2.0-Server.zip";
|
||||||
|
url = "https://drive.usercontent.google.com/download?id=1SpJBa80o_Jx_yqLjQ49pz7HP1FY2PCJj&export=download&confirm=t";
|
||||||
|
hash = "sha256-QVenE6dz+lZPHkC1hwL7Yy4lw6vg/Cr/8pnmK3iaK4o=";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ unzip ];
|
||||||
|
dontUnpack = true;
|
||||||
|
dontConfigure = true;
|
||||||
|
dontBuild = true;
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
mkdir -p "$out"
|
||||||
|
unzip -q "$src" \
|
||||||
|
'mods/*' 'config/*' 'defaultconfigs/*' 'kubejs/*' \
|
||||||
|
'scripts/*' 'patchouli_books/*' 'server-icon.png' -d "$out"
|
||||||
|
|
||||||
|
${lib.concatMapStringsSep "\n" (mod: ''
|
||||||
|
install -m644 ${mod} "$out/mods/${mod.name}"
|
||||||
|
'') requiredMods}
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "Homestead 2.0 server assets, including the eight separately downloaded mods";
|
||||||
|
homepage = "https://cozystudios.org/homestead/server-pack/";
|
||||||
|
# The pack contains mods with different licenses; do not redistribute it.
|
||||||
|
license = lib.licenses.unfree;
|
||||||
|
platforms = lib.platforms.linux;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"name": "balm-fabric-1.20.1-7.3.44.jar",
|
||||||
|
"url": "https://edge.forgecdn.net/files/8969/704/balm-fabric-1.20.1-7.3.44.jar",
|
||||||
|
"hash": "sha256-hMoKTCjV9cxwjuEqKQ+U4ixMntDxXZNM0MDCMPClpMY="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "CraftTweaker-fabric-1.20.1-14.0.60.jar",
|
||||||
|
"url": "https://edge.forgecdn.net/files/7772/872/CraftTweaker-fabric-1.20.1-14.0.60.jar",
|
||||||
|
"hash": "sha256-y4Kl3wHCNr6oY8SxxZtgaS/ARGHWVIK/eW1EZizqiQA="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "libraryferret-fabric-1.20.1-4.0.0.jar",
|
||||||
|
"url": "https://edge.forgecdn.net/files/4601/231/libraryferret-fabric-1.20.1-4.0.0.jar",
|
||||||
|
"hash": "sha256-d/UX69gN5R+fh62cTZIrNMQNfF+2iu1tl0zu0NthuG0="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sophisticatedbackpacks-1.20.1-3.23.4.5.110.jar",
|
||||||
|
"url": "https://edge.forgecdn.net/files/7147/929/sophisticatedbackpacks-1.20.1-3.23.4.5.110.jar",
|
||||||
|
"hash": "sha256-Fewy1BGnA4R0OldwrmoitxqEGK9/juu/+se/yKGDbA8="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sophisticatedcore-1.20.1-1.2.7.15.166.jar",
|
||||||
|
"url": "https://edge.forgecdn.net/files/7341/57/sophisticatedcore-1.20.1-1.2.7.15.166.jar",
|
||||||
|
"hash": "sha256-Fzmsti4i+ZQk8yQkuZYr2S0p4HUvVJWqEW35p8Hdgxo="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "sophisticatedstorage-1.20.1-1.3.5.11.142.jar",
|
||||||
|
"url": "https://edge.forgecdn.net/files/8032/765/sophisticatedstorage-1.20.1-1.3.5.11.142.jar",
|
||||||
|
"hash": "sha256-VgjSIGpr0TJlhLUrTFp7Mpvpw/izOqOiQGAHiu0Lz4k="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "trashslot-fabric-1.20.1-15.1.5.jar",
|
||||||
|
"url": "https://edge.forgecdn.net/files/8019/425/trashslot-fabric-1.20.1-15.1.5.jar",
|
||||||
|
"hash": "sha256-u876a68TrhF8ShNtf/ZrYlx1QLncwNQHe08jcIXuRAg="
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "wirelessredstone-fabric-1.20.1-1.1.2.jar",
|
||||||
|
"url": "https://edge.forgecdn.net/files/5175/782/wirelessredstone-fabric-1.20.1-1.1.2.jar",
|
||||||
|
"hash": "sha256-Kw8xy4ngmAgD9kEvwAjTS6KatJEnA6UPkI1X3xnWf48="
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -43,6 +43,11 @@ in {
|
|||||||
vulkan-tools
|
vulkan-tools
|
||||||
mesa-demos
|
mesa-demos
|
||||||
];
|
];
|
||||||
|
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
enable32Bit = true;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
(mkIf (cfg.gpuVendor == "nvidia") {
|
(mkIf (cfg.gpuVendor == "nvidia") {
|
||||||
@@ -61,9 +66,6 @@ in {
|
|||||||
|
|
||||||
(mkIf (cfg.gpuVendor == "amd") {
|
(mkIf (cfg.gpuVendor == "amd") {
|
||||||
services.xserver.videoDrivers = ["amdgpu"];
|
services.xserver.videoDrivers = ["amdgpu"];
|
||||||
# hardware.graphics.extraPackages = with pkgs; [
|
|
||||||
# amdvlk
|
|
||||||
# ];
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
radeontop
|
radeontop
|
||||||
];
|
];
|
||||||
@@ -82,7 +84,6 @@ in {
|
|||||||
environment.sessionVariables = {
|
environment.sessionVariables = {
|
||||||
MOZ_ENABLE_WAYLAND = "1";
|
MOZ_ENABLE_WAYLAND = "1";
|
||||||
QT_QPA_PLATFORM = "wayland";
|
QT_QPA_PLATFORM = "wayland";
|
||||||
SDL_VIDEODRIVER = "wayland";
|
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ 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
|
||||||
@@ -33,7 +34,20 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
# Enable flakes for NixOS
|
# Enable flakes for NixOS
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
nix.settings = {
|
||||||
|
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 = {
|
||||||
@@ -56,7 +70,7 @@ in {
|
|||||||
grim
|
grim
|
||||||
slurp
|
slurp
|
||||||
playerctl
|
playerctl
|
||||||
light
|
# light - UNMAINTAINED, brightnessctl is the replacement
|
||||||
brightnessctl
|
brightnessctl
|
||||||
wttrbar
|
wttrbar
|
||||||
cliphist
|
cliphist
|
||||||
@@ -67,6 +81,9 @@ in {
|
|||||||
shared-mime-info
|
shared-mime-info
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
wl-clip-persist
|
wl-clip-persist
|
||||||
|
ollama-rocm
|
||||||
|
newelle
|
||||||
|
vlc
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enable Polkit
|
# Enable Polkit
|
||||||
@@ -93,23 +110,25 @@ in {
|
|||||||
gamemode.enable = true;
|
gamemode.enable = true;
|
||||||
gamescope.enable = true;
|
gamescope.enable = true;
|
||||||
mangohud.enable = true;
|
mangohud.enable = true;
|
||||||
|
proton = {
|
||||||
|
enable = true;
|
||||||
|
manager = "protonplus";
|
||||||
|
};
|
||||||
lutris = {
|
lutris = {
|
||||||
enable = true;
|
enable = true;
|
||||||
wine = {
|
wine = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs.wine-staging;
|
package = pkgs.wine-staging;
|
||||||
};
|
};
|
||||||
compatibility = {
|
|
||||||
protonSupport = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
ffxiv.enable = true;
|
ffxiv.enable = true;
|
||||||
|
archon.enable = true;
|
||||||
minecraft.enable = true;
|
minecraft.enable = true;
|
||||||
aagl.anime-game-launcher.enable = true;
|
|
||||||
vintage-story.enable = true;
|
vintage-story.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
# Power management (see ../../pwrMgmt/default.nix)
|
# Power management (see ../../pwrMgmt/default.nix)
|
||||||
pwrMgmt = {
|
pwrMgmt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -209,5 +228,8 @@ in {
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Tailscale service
|
||||||
|
services.tailscale.enable = true;
|
||||||
|
|
||||||
system.stateVersion = "24.11";
|
system.stateVersion = "24.11";
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
userName,
|
||||||
|
nur,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
hildibrand = nur.packages.${pkgs.stdenv.hostPlatform.system}.hildibrand;
|
||||||
|
in {
|
||||||
|
imports = [
|
||||||
|
../../pwrMgmt
|
||||||
|
../../networking/core.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;
|
||||||
|
};
|
||||||
|
networkManager.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = [
|
||||||
|
hildibrand
|
||||||
|
];
|
||||||
|
|
||||||
|
systemd.services.hildibrand = {
|
||||||
|
description = "Hildibrand - trivia buzzer bot";
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
Type = "simple";
|
||||||
|
User = userName;
|
||||||
|
WorkingDirectory = "/home/${userName}";
|
||||||
|
ExecStart = "${hildibrand}/bin/hildebrand";
|
||||||
|
Restart = "on-failure";
|
||||||
|
RestartSec = "5s";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Add username to groups "wheel" and "video" - more may be added here later
|
||||||
|
users = {
|
||||||
|
users = {
|
||||||
|
${userName} = {
|
||||||
|
extraGroups = [ "wheel" "network" ];
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.fail2ban = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.fail2ban;
|
||||||
|
maxretry = 5;
|
||||||
|
bantime = "3h";
|
||||||
|
bantime-increment = {
|
||||||
|
enable = true;
|
||||||
|
rndtime = "10m";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "24.11";
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{ ... }: {
|
||||||
|
imports = [
|
||||||
|
./configuration.nix
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
# 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/498ce176-f090-46d8-96bf-9e6141cffa19";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/09A6-B803";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[ { device = "/dev/disk/by-uuid/4a64a2ee-2b32-4e53-b00f-7b1f127162aa"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
}
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
userName,
|
||||||
|
nur,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
imports = [
|
||||||
|
../../pwrMgmt
|
||||||
|
../../networking/core.nix
|
||||||
|
../../virtualization/podman.nix
|
||||||
|
../../games/homestead
|
||||||
|
];
|
||||||
|
|
||||||
|
# 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;
|
||||||
|
};
|
||||||
|
networkManager.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Add username to groups "wheel" and "video" - more may be added here later
|
||||||
|
users = {
|
||||||
|
users = {
|
||||||
|
${userName} = {
|
||||||
|
extraGroups = [ "wheel" "network" ];
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.fail2ban = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.fail2ban;
|
||||||
|
maxretry = 5;
|
||||||
|
bantime = "3h";
|
||||||
|
bantime-increment = {
|
||||||
|
enable = true;
|
||||||
|
rndtime = "10m";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.homestead = {
|
||||||
|
enable = true;
|
||||||
|
openFirewall = true;
|
||||||
|
};
|
||||||
|
services.minecraft-servers.eula = true;
|
||||||
|
|
||||||
|
system.stateVersion = "26.05";
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{ ... }: {
|
||||||
|
imports = [
|
||||||
|
./configuration.nix
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
# 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/ec4c43ec-efcc-40ea-a4c8-411e60ee7c4e";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/140E-FE19";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[ { device = "/dev/disk/by-uuid/547bbd78-85be-4d17-a519-c4a2a923bdab"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
}
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
{
|
||||||
|
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 = {
|
||||||
|
users = {
|
||||||
|
${userName} = {
|
||||||
|
extraGroups = [ "wheel" "network" ];
|
||||||
|
openssh.authorizedKeys.keys = [
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
||||||
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
services.fail2ban = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.fail2ban;
|
||||||
|
maxretry = 5;
|
||||||
|
bantime = "3h";
|
||||||
|
bantime-increment = {
|
||||||
|
enable = true;
|
||||||
|
rndtime = "10m";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "24.11";
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
{ ... }: {
|
||||||
|
imports = [
|
||||||
|
./configuration.nix
|
||||||
|
./hardware-configuration.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
# 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/ec4c43ec-efcc-40ea-a4c8-411e60ee7c4e";
|
||||||
|
fsType = "ext4";
|
||||||
|
};
|
||||||
|
|
||||||
|
fileSystems."/boot" =
|
||||||
|
{ device = "/dev/disk/by-uuid/140E-FE19";
|
||||||
|
fsType = "vfat";
|
||||||
|
options = [ "fmask=0022" "dmask=0022" ];
|
||||||
|
};
|
||||||
|
|
||||||
|
swapDevices =
|
||||||
|
[ { device = "/dev/disk/by-uuid/547bbd78-85be-4d17-a519-c4a2a923bdab"; }
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||||
|
}
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
neovim
|
neovim
|
||||||
git
|
git
|
||||||
|
tailscale
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.variables.EDITOR = "nvim";
|
environment.variables.EDITOR = "nvim";
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
userName,
|
userName,
|
||||||
vintage-story,
|
nur,
|
||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
imports = [
|
imports = [
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
vintage-story.packages.${pkgs.system}.default
|
nur.packages.${pkgs.system}.vintage-story
|
||||||
];
|
];
|
||||||
|
|
||||||
systemd.services.vintagestory-server = {
|
systemd.services.vintagestory-server = {
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
Type = "simple";
|
Type = "simple";
|
||||||
User = userName;
|
User = userName;
|
||||||
WorkingDirectory = "/home/${userName}";
|
WorkingDirectory = "/home/${userName}";
|
||||||
ExecStart = "${vintage-story.packages.${pkgs.system}.default}/bin/vintagestory-server";
|
ExecStart = "${nur.packages.${pkgs.system}.vintage-story}/bin/vintagestory-server";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
RestartSec = "5s";
|
RestartSec = "5s";
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
{
|
{
|
||||||
|
nur,
|
||||||
pkgs,
|
pkgs,
|
||||||
userName,
|
userName,
|
||||||
...
|
...
|
||||||
}: let
|
}:
|
||||||
|
let
|
||||||
# INFO: set these to your liking
|
# INFO: set these to your liking
|
||||||
matrixFqdn = "chat.wyattjmiller.com";
|
matrixFqdn = "chat.wyattjmiller.com";
|
||||||
rtcFqdn = "rtc.wyattjmiller.com";
|
rtcFqdn = "rtc.wyattjmiller.com";
|
||||||
@@ -10,13 +12,47 @@
|
|||||||
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";
|
||||||
in {
|
|
||||||
|
sableWeb = nur.packages.${pkgs.stdenv.hostPlatform.system}.sable-web;
|
||||||
|
|
||||||
|
sableConfig = pkgs.writeTextDir "config.json" (
|
||||||
|
builtins.toJSON {
|
||||||
|
defaultHomeserver = 0;
|
||||||
|
homeserverList = [ matrixFqdn ];
|
||||||
|
allowCustomHomeservers = false;
|
||||||
|
|
||||||
|
disableAccountSwitcher = false;
|
||||||
|
hideUsernamePasswordFields = false;
|
||||||
|
|
||||||
|
hashRouter = {
|
||||||
|
enabled = false;
|
||||||
|
basename = "/";
|
||||||
|
};
|
||||||
|
|
||||||
|
featuredCommunities = {
|
||||||
|
spaces = [
|
||||||
|
"#seventhdawn:chat.wyattjmiller.com"
|
||||||
|
];
|
||||||
|
rooms = [
|
||||||
|
"#general:chat.wyattjmiller.com"
|
||||||
|
"#gposeglams:chat.wyattjmiller.com"
|
||||||
|
"#lobby-vc:chat.wyattjmiller.com"
|
||||||
|
"#annoucements:chat.wyattjmiller.com"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
);
|
||||||
|
in
|
||||||
|
{
|
||||||
imports = [
|
imports = [
|
||||||
../../pwrMgmt
|
../../pwrMgmt
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enable flakes for NixOS
|
# Enable flakes for NixOS
|
||||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
nix.settings.experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
|
|
||||||
nix.settings = {
|
nix.settings = {
|
||||||
download-buffer-size = 134217728; # 128 MiB in bytes
|
download-buffer-size = 134217728; # 128 MiB in bytes
|
||||||
@@ -79,7 +115,7 @@ in {
|
|||||||
8448
|
8448
|
||||||
];
|
];
|
||||||
|
|
||||||
allowedUDPPortRanges =[
|
allowedUDPPortRanges = [
|
||||||
# TURN UDP relays
|
# TURN UDP relays
|
||||||
{
|
{
|
||||||
from = 49000;
|
from = 49000;
|
||||||
@@ -99,7 +135,11 @@ in {
|
|||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
||||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com"
|
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com"
|
||||||
];
|
];
|
||||||
extraGroups = ["wheel" "video" "network"];
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"video"
|
||||||
|
"network"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# fail2ban
|
# fail2ban
|
||||||
@@ -145,10 +185,12 @@ in {
|
|||||||
support_email = supportEmail;
|
support_email = supportEmail;
|
||||||
support_mxid = "@wymiller:${matrixFqdn}";
|
support_mxid = "@wymiller:${matrixFqdn}";
|
||||||
|
|
||||||
rtc_transports = [{
|
rtc_transports = [
|
||||||
|
{
|
||||||
type = "livekit";
|
type = "livekit";
|
||||||
livekit_service_url = "https://${rtcFqdn}";
|
livekit_service_url = "https://${rtcFqdn}";
|
||||||
}];
|
}
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -176,8 +218,37 @@ in {
|
|||||||
virtualHosts = {
|
virtualHosts = {
|
||||||
"${matrixFqdn}" = {
|
"${matrixFqdn}" = {
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
@matrixEndpoints path \
|
||||||
|
/_matrix/* \
|
||||||
|
/_tuwunel/* \
|
||||||
|
/.well-known/matrix/*
|
||||||
|
|
||||||
|
handle @matrixEndpoints {
|
||||||
|
reverse_proxy 127.0.0.1:8008
|
||||||
|
}
|
||||||
|
|
||||||
|
@sableConfig path /config.json
|
||||||
|
handle @sableConfig {
|
||||||
|
root * ${sableConfig}
|
||||||
|
header Cache-Control "no-store"
|
||||||
|
file_server
|
||||||
|
}
|
||||||
|
|
||||||
|
handle {
|
||||||
|
root * ${sableWeb}
|
||||||
|
|
||||||
encode zstd gzip
|
encode zstd gzip
|
||||||
reverse_proxy localhost:8008
|
try_files {path} /index.html
|
||||||
|
|
||||||
|
file_server {
|
||||||
|
precompressed br
|
||||||
|
}
|
||||||
|
|
||||||
|
header /assets/* Cache-Control "public, max-age=31536000, immutable"
|
||||||
|
header /sw.js Cache-Control "no-cache"
|
||||||
|
header /index.html Cache-Control "no-cache"
|
||||||
|
header Document-Policy "js-profiling"
|
||||||
|
}
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
"${matrixFqdn}:8448" = {
|
"${matrixFqdn}:8448" = {
|
||||||
@@ -220,7 +291,10 @@ in {
|
|||||||
matrix-registration-token-gen = {
|
matrix-registration-token-gen = {
|
||||||
before = [ "tuwunel.service" ];
|
before = [ "tuwunel.service" ];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
path = with pkgs; [ coreutils openssl ];
|
path = with pkgs; [
|
||||||
|
coreutils
|
||||||
|
openssl
|
||||||
|
];
|
||||||
script = ''
|
script = ''
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
@@ -242,9 +316,15 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
livekit-key-gen = {
|
livekit-key-gen = {
|
||||||
before = [ "lk-jwt-service.service" "livekit.service" ];
|
before = [
|
||||||
|
"lk-jwt-service.service"
|
||||||
|
"livekit.service"
|
||||||
|
];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
path = with pkgs; [ coreutils openssl ];
|
path = with pkgs; [
|
||||||
|
coreutils
|
||||||
|
openssl
|
||||||
|
];
|
||||||
script = ''
|
script = ''
|
||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
...
|
||||||
|
}: let in {
|
||||||
|
security.pam.services = {
|
||||||
|
login.u2fAuth = true;
|
||||||
|
sudo.u2fAuth = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -3,9 +3,15 @@
|
|||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
|
|
||||||
|
alsa = {
|
||||||
|
enable = true;
|
||||||
|
support32Bit = true;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
helvum
|
# helvum - UNMAINTAINED
|
||||||
|
crosspipe
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user