Compare commits
9 Commits
overlay-up
...
nvf-neovim
| Author | SHA1 | Date | |
|---|---|---|---|
| 82eeacddaf | |||
| 0e4d27c861 | |||
| 7827633080 | |||
| cacde55d48 | |||
| 20b6af7155 | |||
| d0adef7f77 | |||
| 1313579961 | |||
| b4c2ab126c | |||
| 7d76c105c1 |
@@ -1,20 +0,0 @@
|
||||
{
|
||||
"neodev": {
|
||||
"library": {
|
||||
"enabled": true,
|
||||
"plugins": true
|
||||
}
|
||||
},
|
||||
"neoconf": {
|
||||
"plugins": {
|
||||
"lua_ls": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"lspconfig": {
|
||||
"lua_ls": {
|
||||
"Lua.format.enable": false
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
column_width = 120
|
||||
line_endings = "Unix"
|
||||
indent_type = "Spaces"
|
||||
indent_width = 2
|
||||
quote_style = "AutoPreferDouble"
|
||||
call_parentheses = "None"
|
||||
collapse_simple_statement = "Always"
|
||||
@@ -1,27 +0,0 @@
|
||||
-- This file simply bootstraps the installation of Lazy.nvim and then calls other files for execution
|
||||
-- This file doesn't necessarily need to be touched, BE CAUTIOUS editing this file and proceed at your own risk.
|
||||
local lazypath = vim.env.LAZY or vim.fn.stdpath "data" .. "/lazy/lazy.nvim"
|
||||
|
||||
vim.api.nvim_set_keymap("v", "<sc-c>", '"+y', { noremap = true })
|
||||
vim.api.nvim_set_keymap("n", "<sc-v>", 'l"+P', { noremap = true })
|
||||
vim.api.nvim_set_keymap("v", "<sc-v>", '"+P', { noremap = true })
|
||||
vim.api.nvim_set_keymap("c", "<sc-v>", '<C-o>l<C-o>"+<C-o>P<C-o>l', { noremap = true })
|
||||
vim.api.nvim_set_keymap("i", "<sc-v>", '<ESC>l"+Pli', { noremap = true })
|
||||
vim.api.nvim_set_keymap("t", "<sc-v>", '<C-\\><C-n>"+Pi', { noremap = true })
|
||||
|
||||
if not (vim.env.LAZY or (vim.uv or vim.loop).fs_stat(lazypath)) then
|
||||
-- stylua: ignore
|
||||
vim.fn.system({ "git", "clone", "--filter=blob:none", "https://github.com/folke/lazy.nvim.git", "--branch=stable", lazypath })
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
-- validate that lazy is available
|
||||
if not pcall(require, "lazy") then
|
||||
-- stylua: ignore
|
||||
vim.api.nvim_echo({ { ("Unable to load lazy from: %s\n"):format(lazypath), "ErrorMsg" }, { "Press any key to exit...", "MoreMsg" } }, true, {})
|
||||
vim.fn.getchar()
|
||||
vim.cmd.quit()
|
||||
end
|
||||
|
||||
require "lazy_setup"
|
||||
require "polish"
|
||||
@@ -1,67 +0,0 @@
|
||||
{
|
||||
"AstroNvim": { "branch": "main", "commit": "bfa02306c91c53f9b5782103f530ff729d6fd5b3" },
|
||||
"Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" },
|
||||
"LuaSnip": { "branch": "master", "commit": "03c8e67eb7293c404845b3982db895d59c0d1538" },
|
||||
"aerial.nvim": { "branch": "master", "commit": "7e2615991cf110f6688112abcb45cf338248d1f6" },
|
||||
"alpha-nvim": { "branch": "main", "commit": "41283fb402713fc8b327e60907f74e46166f4cfd" },
|
||||
"astrocommunity": { "branch": "main", "commit": "18978b14446256e68eae39b3c7770d15dfc025bd" },
|
||||
"astrocore": { "branch": "main", "commit": "e659ec1f23dd070fa9a68a78eab0675b7bf3e97d" },
|
||||
"astrolsp": { "branch": "main", "commit": "10ca6399694baca87982eafb0871b386fa33cf80" },
|
||||
"astrotheme": { "branch": "main", "commit": "41b7d8430a55fd771e41bd763af4c3fd1c2fc0b5" },
|
||||
"astroui": { "branch": "main", "commit": "a96ee08273f8050025c9e5b40776b0f2808313fa" },
|
||||
"better-escape.nvim": { "branch": "master", "commit": "f45b52f8f87792e8659526f23261ffe278a54be5" },
|
||||
"catppuccin": { "branch": "main", "commit": "d97387aea8264f484bb5d5e74f2182a06c83e0d8" },
|
||||
"cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" },
|
||||
"cmp-dap": { "branch": "master", "commit": "ea92773e84c0ad3288c3bc5e452ac91559669087" },
|
||||
"cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" },
|
||||
"cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" },
|
||||
"cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" },
|
||||
"crates.nvim": { "branch": "main", "commit": "891063a2dc8471501b9742406a514be62a20c138" },
|
||||
"csharpls-extended-lsp.nvim": { "branch": "master", "commit": "5a474b06743bb20a90191994457f5e62f444976b" },
|
||||
"dressing.nvim": { "branch": "master", "commit": "71349f24c6e07b39f33600985843c289ca735308" },
|
||||
"friendly-snippets": { "branch": "main", "commit": "00ebcaa159e817150bd83bfe2d51fa3b3377d5c4" },
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "0b04035bb7b3c83e999b9676e2fb46fd0aa9f910" },
|
||||
"guess-indent.nvim": { "branch": "main", "commit": "6cd61f7a600bb756e558627cd2e740302c58e32d" },
|
||||
"heirline.nvim": { "branch": "master", "commit": "0d797435e54645a5f98bad7ad6046aac1ef95c1e" },
|
||||
"indent-blankline.nvim": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "077102c5bfc578693f12377846d427f49bc50076" },
|
||||
"lazydev.nvim": { "branch": "main", "commit": "491452cf1ca6f029e90ad0d0368848fac717c6d2" },
|
||||
"lspkind.nvim": { "branch": "master", "commit": "cff4ae321a91ee3473a92ea1a8c637e3a9510aec" },
|
||||
"luvit-meta": { "branch": "main", "commit": "ce76f6f6cdc9201523a5875a4471dcfe0186eb60" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "9ae570e206360e47d30b4c35a4550c165f4ea7b7" },
|
||||
"mason-null-ls.nvim": { "branch": "main", "commit": "2b8433f76598397fcc97318d410e0c4f7a4bea6a" },
|
||||
"mason-nvim-dap.nvim": { "branch": "main", "commit": "4ba55f9755ebe8297d92c419b90a946123292ae6" },
|
||||
"mason.nvim": { "branch": "main", "commit": "c43eeb5614a09dc17c03a7fb49de2e05de203924" },
|
||||
"mini.bufremove": { "branch": "main", "commit": "e6044aa28e61d4dd9ec86194d6f81743eced0c1c" },
|
||||
"neo-tree.nvim": { "branch": "main", "commit": "8c75e8a2949cd6cd35525799200a8d34471ee9eb" },
|
||||
"neoconf.nvim": { "branch": "main", "commit": "7ce69e831556861f3bd32a5678f0176618df8621" },
|
||||
"neodev.nvim": { "branch": "main", "commit": "46aa467dca16cf3dfe27098042402066d2ae242d" },
|
||||
"none-ls.nvim": { "branch": "main", "commit": "a0fe586525eac4247d40076cdb2f1c2f55912171" },
|
||||
"nui.nvim": { "branch": "main", "commit": "a0fd35fcbb4cb479366f1dc5f20145fd718a3733" },
|
||||
"nvim-autopairs": { "branch": "master", "commit": "e38c5d837e755ce186ae51d2c48e1b387c4425c6" },
|
||||
"nvim-cmp": { "branch": "main", "commit": "d818fd0624205b34e14888358037fb6f5dc51234" },
|
||||
"nvim-colorizer.lua": { "branch": "master", "commit": "194ec600488f7c7229668d0e80bd197f3a2b84ff" },
|
||||
"nvim-dap": { "branch": "master", "commit": "bc03b83c94d0375145ff5ac6a6dcf28c1241e06f" },
|
||||
"nvim-dap-ui": { "branch": "master", "commit": "a5606bc5958db86f8d92803bea7400ee26a8d7e4" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "9c762dcd457d2ab99edb3f3433cea9865ded47ad" },
|
||||
"nvim-nio": { "branch": "master", "commit": "a428f309119086dc78dd4b19306d2d67be884eee" },
|
||||
"nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "63be47f203d3e9174fdac3872fb9766e5bcc5a11" },
|
||||
"nvim-treesitter-textobjects": { "branch": "master", "commit": "34867c69838078df7d6919b130c0541c0b400c47" },
|
||||
"nvim-ts-autotag": { "branch": "main", "commit": "dc5e1687ab76ee02e0f11c5ce137f530b36e98b3" },
|
||||
"nvim-ts-context-commentstring": { "branch": "main", "commit": "6b5f95aa4d24f2c629a74f2c935c702b08dbde62" },
|
||||
"nvim-ufo": { "branch": "main", "commit": "a5390706f510d39951dd581f6d2a972741b3fa26" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "e612de3d3a41a6b7be47f51e956dddabcbf419d9" },
|
||||
"nvim-window-picker": { "branch": "main", "commit": "41cfaa428577c53552200a404ae9b3a0b5719706" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" },
|
||||
"promise-async": { "branch": "main", "commit": "38a4575da9497326badd3995e768b4ccf0bb153e" },
|
||||
"resession.nvim": { "branch": "master", "commit": "cc819b0489938d03e4f3532a583354f0287c015b" },
|
||||
"rustaceanvim": { "branch": "master", "commit": "047f9c9d8cd2861745eb9de6c1570ee0875aa795" },
|
||||
"smart-splits.nvim": { "branch": "master", "commit": "66fda3a601a5b4c679656f15eb6ddd613c8d3216" },
|
||||
"telescope-fzf-native.nvim": { "branch": "main", "commit": "cf48d4dfce44e0b9a2e19a008d6ec6ea6f01a83b" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "a0bbec21143c7bc5f8bb02e0005fa0b982edc026" },
|
||||
"todo-comments.nvim": { "branch": "main", "commit": "313b04e5b02d29ab9275c9295ff5e2b73921b0eb" },
|
||||
"toggleterm.nvim": { "branch": "main", "commit": "48be57eaba817f038d61bbf64d2c597f578c0827" },
|
||||
"vim-illuminate": { "branch": "master", "commit": "5eeb7951fc630682c322e88a9bbdae5c224ff0aa" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "6c1584eb76b55629702716995cca4ae2798a9cca" }
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
-- AstroCommunity: import any community modules here
|
||||
-- We import this file in `lazy_setup.lua` before the `plugins/` folder.
|
||||
-- This guarantees that the specs are processed before any user plugins.
|
||||
|
||||
---@type LazySpec
|
||||
return {
|
||||
"AstroNvim/astrocommunity",
|
||||
{ import = "astrocommunity.pack.lua" }, -- lua support
|
||||
{ import = "astrocommunity.pack.rust" }, -- rust support
|
||||
{ import = "astrocommunity.pack.markdown" }, -- markdown support
|
||||
{ import = "astrocommunity.pack.nix" }, -- nix support
|
||||
-- { import = "astrocommunity.pack.go "}, -- golang support
|
||||
{ import = "astrocommunity.pack.fish" }, -- fish support
|
||||
-- { import = "astrocommunity.pack.cs" }, -- csharp/dotnet support
|
||||
|
||||
-- import/override with your plugins folder
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
require("lazy").setup({
|
||||
{
|
||||
"AstroNvim/AstroNvim",
|
||||
version = "^4", -- Remove version tracking to elect for nighly AstroNvim
|
||||
import = "astronvim.plugins",
|
||||
opts = { -- AstroNvim options must be set here with the `import` key
|
||||
mapleader = " ", -- This ensures the leader key must be configured before Lazy is set up
|
||||
maplocalleader = ",", -- This ensures the localleader key must be configured before Lazy is set up
|
||||
icons_enabled = true, -- Set to false to disable icons (if no Nerd Font is available)
|
||||
pin_plugins = nil, -- Default will pin plugins when tracking `version` of AstroNvim, set to true/false to override
|
||||
update_notifications = true, -- Enable/disable notification about running `:Lazy update` twice to update pinned plugins
|
||||
},
|
||||
},
|
||||
{ import = "community" },
|
||||
{ import = "plugins" },
|
||||
} --[[@as LazySpec]], {
|
||||
-- Configure any other `lazy.nvim` configuration options here
|
||||
install = { colorscheme = { "astrotheme", "habamax" } },
|
||||
ui = { backdrop = 100 },
|
||||
performance = {
|
||||
rtp = {
|
||||
-- disable some rtp plugins, add more to your liking
|
||||
disabled_plugins = {
|
||||
"gzip",
|
||||
"netrwPlugin",
|
||||
"tarPlugin",
|
||||
"tohtml",
|
||||
"zipPlugin",
|
||||
},
|
||||
},
|
||||
},
|
||||
} --[[@as LazyConfig]])
|
||||
@@ -1,72 +0,0 @@
|
||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||
|
||||
-- AstroCore provides a central place to modify mappings, vim options, autocommands, and more!
|
||||
-- Configuration documentation can be found with `:h astrocore`
|
||||
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
||||
-- as this provides autocomplete and documentation while editing
|
||||
|
||||
---@type LazySpec
|
||||
return {
|
||||
"AstroNvim/astrocore",
|
||||
---@type AstroCoreOpts
|
||||
opts = {
|
||||
-- Configure core features of AstroNvim
|
||||
features = {
|
||||
large_buf = { size = 1024 * 256, lines = 10000 }, -- set global limits for large files for disabling features like treesitter
|
||||
autopairs = true, -- enable autopairs at start
|
||||
cmp = true, -- enable completion at start
|
||||
diagnostics_mode = 3, -- diagnostic mode on start (0 = off, 1 = no signs/virtual text, 2 = no virtual text, 3 = on)
|
||||
highlighturl = true, -- highlight URLs at start
|
||||
notifications = true, -- enable notifications at start
|
||||
},
|
||||
-- Diagnostics configuration (for vim.diagnostics.config({...})) when diagnostics are on
|
||||
diagnostics = {
|
||||
virtual_text = true,
|
||||
underline = true,
|
||||
},
|
||||
-- vim options can be configured here
|
||||
options = {
|
||||
opt = { -- vim.opt.<key>
|
||||
relativenumber = true, -- sets vim.opt.relativenumber
|
||||
number = true, -- sets vim.opt.number
|
||||
spell = false, -- sets vim.opt.spell
|
||||
signcolumn = "yes", -- sets vim.opt.signcolumn to yes
|
||||
wrap = false, -- sets vim.opt.wrap
|
||||
},
|
||||
g = { -- vim.g.<key>
|
||||
-- configure global vim variables (vim.g)
|
||||
-- NOTE: `mapleader` and `maplocalleader` must be set in the AstroNvim opts or before `lazy.setup`
|
||||
-- This can be found in the `lua/lazy_setup.lua` file
|
||||
},
|
||||
},
|
||||
-- Mappings can be configured through AstroCore as well.
|
||||
-- NOTE: keycodes follow the casing in the vimdocs. For example, `<Leader>` must be capitalized
|
||||
mappings = {
|
||||
-- first key is the mode
|
||||
n = {
|
||||
-- second key is the lefthand side of the map
|
||||
|
||||
-- navigate buffer tabs
|
||||
["]b"] = { function() require("astrocore.buffer").nav(vim.v.count1) end, desc = "Next buffer" },
|
||||
["[b"] = { function() require("astrocore.buffer").nav(-vim.v.count1) end, desc = "Previous buffer" },
|
||||
|
||||
-- mappings seen under group name "Buffer"
|
||||
["<Leader>bd"] = {
|
||||
function()
|
||||
require("astroui.status.heirline").buffer_picker(
|
||||
function(bufnr) require("astrocore.buffer").close(bufnr) end
|
||||
)
|
||||
end,
|
||||
desc = "Close buffer from tabline",
|
||||
},
|
||||
|
||||
-- tables with just a `desc` key will be registered with which-key if it's installed
|
||||
-- this is useful for naming menus
|
||||
-- ["<Leader>b"] = { desc = "Buffers" },
|
||||
|
||||
-- setting a mapping to false will disable it
|
||||
-- ["<C-S>"] = false,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,114 +0,0 @@
|
||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||
|
||||
-- AstroLSP allows you to customize the features in AstroNvim's LSP configuration engine
|
||||
-- Configuration documentation can be found with `:h astrolsp`
|
||||
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
||||
-- as this provides autocomplete and documentation while editing
|
||||
|
||||
---@type LazySpec
|
||||
return {
|
||||
"AstroNvim/astrolsp",
|
||||
---@type AstroLSPOpts
|
||||
opts = {
|
||||
-- Configuration table of features provided by AstroLSP
|
||||
features = {
|
||||
codelens = true, -- enable/disable codelens refresh on start
|
||||
inlay_hints = false, -- enable/disable inlay hints on start
|
||||
semantic_tokens = true, -- enable/disable semantic token highlighting
|
||||
},
|
||||
-- customize lsp formatting options
|
||||
formatting = {
|
||||
-- control auto formatting on save
|
||||
format_on_save = {
|
||||
enabled = true, -- enable or disable format on save globally
|
||||
allow_filetypes = { -- enable format on save for specified filetypes only
|
||||
-- "go",
|
||||
},
|
||||
ignore_filetypes = { -- disable format on save for specified filetypes
|
||||
-- "python",
|
||||
},
|
||||
},
|
||||
disabled = { -- disable formatting capabilities for the listed language servers
|
||||
-- disable lua_ls formatting capability if you want to use StyLua to format your lua code
|
||||
-- "lua_ls",
|
||||
},
|
||||
timeout_ms = 1000, -- default format timeout
|
||||
-- filter = function(client) -- fully override the default formatting function
|
||||
-- return true
|
||||
-- end
|
||||
},
|
||||
-- enable servers that you already have installed without mason
|
||||
servers = {
|
||||
-- "pyright"
|
||||
},
|
||||
-- customize language server configuration options passed to `lspconfig`
|
||||
---@diagnostic disable: missing-fields
|
||||
config = {
|
||||
-- clangd = { capabilities = { offsetEncoding = "utf-8" } },
|
||||
rust_analyzer = {
|
||||
settings = {
|
||||
['rust_analyzer'] = {
|
||||
files = {
|
||||
excludeDirs = ".direnv/",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
-- customize how language servers are attached
|
||||
handlers = {
|
||||
-- a function without a key is simply the default handler, functions take two parameters, the server name and the configured options table for that server
|
||||
-- function(server, opts) require("lspconfig")[server].setup(opts) end
|
||||
|
||||
-- the key is the server that is being setup with `lspconfig`
|
||||
-- rust_analyzer = false, -- setting a handler to false will disable the set up of that language server
|
||||
-- pyright = function(_, opts) require("lspconfig").pyright.setup(opts) end -- or a custom handler function can be passed
|
||||
},
|
||||
-- Configure buffer local auto commands to add when attaching a language server
|
||||
autocmds = {
|
||||
-- first key is the `augroup` to add the auto commands to (:h augroup)
|
||||
lsp_codelens_refresh = {
|
||||
-- Optional condition to create/delete auto command group
|
||||
-- can either be a string of a client capability or a function of `fun(client, bufnr): boolean`
|
||||
-- condition will be resolved for each client on each execution and if it ever fails for all clients,
|
||||
-- the auto commands will be deleted for that buffer
|
||||
cond = "textDocument/codeLens",
|
||||
-- cond = function(client, bufnr) return client.name == "lua_ls" end,
|
||||
-- list of auto commands to set
|
||||
{
|
||||
-- events to trigger
|
||||
event = { "InsertLeave", "BufEnter" },
|
||||
-- the rest of the autocmd options (:h nvim_create_autocmd)
|
||||
desc = "Refresh codelens (buffer)",
|
||||
callback = function(args)
|
||||
if require("astrolsp").config.features.codelens then vim.lsp.codelens.refresh { bufnr = args.buf } end
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
-- mappings to be set up on attaching of a language server
|
||||
mappings = {
|
||||
n = {
|
||||
-- a `cond` key can provided as the string of a server capability to be required to attach, or a function with `client` and `bufnr` parameters from the `on_attach` that returns a boolean
|
||||
gD = {
|
||||
function() vim.lsp.buf.declaration() end,
|
||||
desc = "Declaration of current symbol",
|
||||
cond = "textDocument/declaration",
|
||||
},
|
||||
["<Leader>uY"] = {
|
||||
function() require("astrolsp.toggles").buffer_semantic_tokens() end,
|
||||
desc = "Toggle LSP semantic highlight (buffer)",
|
||||
cond = function(client)
|
||||
return client.supports_method "textDocument/semanticTokens/full" and vim.lsp.semantic_tokens ~= nil
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
-- A custom `on_attach` function to be run after the default `on_attach` function
|
||||
-- takes two parameters `client` and `bufnr` (`:h lspconfig-setup`)
|
||||
on_attach = function(client, bufnr)
|
||||
-- this would disable semanticTokensProvider for all clients
|
||||
-- client.server_capabilities.semanticTokensProvider = nil
|
||||
end,
|
||||
},
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
-- AstroUI provides the basis for configuring the AstroNvim User Interface
|
||||
-- Configuration documentation can be found with `:h astroui`
|
||||
-- NOTE: We highly recommend setting up the Lua Language Server (`:LspInstall lua_ls`)
|
||||
-- as this provides autocomplete and documentation while editing
|
||||
|
||||
---@type LazySpec
|
||||
return {
|
||||
"AstroNvim/astroui",
|
||||
---@type AstroUIOpts
|
||||
opts = {
|
||||
-- change colorscheme
|
||||
colorscheme = "catppuccin",
|
||||
-- AstroUI allows you to easily modify highlight groups easily for any and all colorschemes
|
||||
highlights = {
|
||||
init = { -- this table overrides highlights in all themes
|
||||
-- Normal = { bg = "#000000" },
|
||||
},
|
||||
astrodark = { -- a table of overrides/changes when applying the astrotheme theme
|
||||
-- Normal = { bg = "#000000" },
|
||||
},
|
||||
},
|
||||
-- Icons can be configured throughout the interface
|
||||
icons = {
|
||||
-- configure the loading of the lsp in the status line
|
||||
LSPLoading1 = "⠋",
|
||||
LSPLoading2 = "⠙",
|
||||
LSPLoading3 = "⠹",
|
||||
LSPLoading4 = "⠸",
|
||||
LSPLoading5 = "⠼",
|
||||
LSPLoading6 = "⠴",
|
||||
LSPLoading7 = "⠦",
|
||||
LSPLoading8 = "⠧",
|
||||
LSPLoading9 = "⠇",
|
||||
LSPLoading10 = "⠏",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
return {
|
||||
{
|
||||
"catppuccin/nvim",
|
||||
name = "catppuccin",
|
||||
opts = {
|
||||
dim_inactive = { enabled = true, percentage = 0.25 },
|
||||
highlight_overrides = {
|
||||
mocha = function(c)
|
||||
return {
|
||||
Normal = { bg = c.mantle },
|
||||
Comment = { fg = "#7687a0" },
|
||||
["@tag.attribute"] = { style = {} },
|
||||
}
|
||||
end,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
return {
|
||||
{
|
||||
'andweeb/presence.nvim',
|
||||
}
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||
|
||||
-- Customize Mason plugins
|
||||
|
||||
---@type LazySpec
|
||||
return {
|
||||
-- use mason-lspconfig to configure LSP installations
|
||||
{
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
-- overrides `require("mason-lspconfig").setup(...)`
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"lua_ls",
|
||||
-- add more arguments for adding more language servers
|
||||
},
|
||||
},
|
||||
},
|
||||
-- use mason-null-ls to configure Formatters/Linter installation for null-ls sources
|
||||
{
|
||||
"jay-babu/mason-null-ls.nvim",
|
||||
-- overrides `require("mason-null-ls").setup(...)`
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"stylua",
|
||||
-- add more arguments for adding more null-ls sources
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
"jay-babu/mason-nvim-dap.nvim",
|
||||
-- overrides `require("mason-nvim-dap").setup(...)`
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"python",
|
||||
-- add more arguments for adding more debuggers
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||
|
||||
-- Customize None-ls sources
|
||||
|
||||
---@type LazySpec
|
||||
return {
|
||||
"nvimtools/none-ls.nvim",
|
||||
opts = function(_, opts)
|
||||
-- opts variable is the default configuration table for the setup function call
|
||||
-- local null_ls = require "null-ls"
|
||||
|
||||
-- Check supported formatters and linters
|
||||
-- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/formatting
|
||||
-- https://github.com/nvimtools/none-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics
|
||||
|
||||
-- Only insert new sources, do not replace the existing ones
|
||||
-- (If you wish to replace, use `opts.sources = {}` instead of the `list_insert_unique` function)
|
||||
opts.sources = require("astrocore").list_insert_unique(opts.sources, {
|
||||
-- Set a formatter
|
||||
-- null_ls.builtins.formatting.stylua,
|
||||
-- null_ls.builtins.formatting.prettier,
|
||||
})
|
||||
end,
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
if true then return {} end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||
|
||||
-- Customize Treesitter
|
||||
|
||||
---@type LazySpec
|
||||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
opts = {
|
||||
ensure_installed = {
|
||||
"lua",
|
||||
"vim",
|
||||
-- add more arguments for adding more treesitter parsers
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,85 +0,0 @@
|
||||
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
|
||||
return {
|
||||
|
||||
-- == Examples of Adding Plugins ==
|
||||
|
||||
"andweeb/presence.nvim",
|
||||
{
|
||||
"ray-x/lsp_signature.nvim",
|
||||
event = "BufRead",
|
||||
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,
|
||||
},
|
||||
}
|
||||
@@ -1,18 +0,0 @@
|
||||
if true then return end -- WARN: REMOVE THIS LINE TO ACTIVATE THIS FILE
|
||||
|
||||
-- This will run last in the setup process and is a good place to configure
|
||||
-- things like custom filetypes. This just pure lua so anything that doesn't
|
||||
-- fit in the normal config locations above can go here
|
||||
|
||||
-- Set up custom filetypes
|
||||
vim.filetype.add {
|
||||
extension = {
|
||||
foo = "fooscript",
|
||||
},
|
||||
filename = {
|
||||
["Foofile"] = "fooscript",
|
||||
},
|
||||
pattern = {
|
||||
["~/%.config/foo/.*"] = "fooscript",
|
||||
},
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
---
|
||||
base: lua51
|
||||
|
||||
globals:
|
||||
vim:
|
||||
any: true
|
||||
@@ -1,8 +0,0 @@
|
||||
std = "neovim"
|
||||
|
||||
[rules]
|
||||
global_usage = "allow"
|
||||
if_same_then_else = "allow"
|
||||
incorrect_standard_library_use = "allow"
|
||||
mixed_table = "allow"
|
||||
multiple_statements = "allow"
|
||||
@@ -13,9 +13,9 @@ set $term alacritty
|
||||
set $menu wofi --term '$term'
|
||||
|
||||
### Output configuration
|
||||
output DP-3 pos 1920 0 res 1920x1080@60Hz
|
||||
output HDMI-A-1 pos 0 0 res 1920x1080@60Hz
|
||||
output DP-2 pos 3840 0 res 1920x1080@60Hz
|
||||
output DP-3 pos 3840 0 res 1920x1080@59Hz
|
||||
output HDMI-A-1 pos 0 0 res 1920x1080@59Hz
|
||||
output DP-2 pos 1920 0 res 1920x1080@60Hz
|
||||
|
||||
### Wallpaper
|
||||
output HDMI-A-1 bg ~/.wallpaper/.wallpaper.png fill
|
||||
@@ -25,22 +25,22 @@ output DP-3 bg ~/.wallpaper/.wallpaper.png fill
|
||||
### Workspace binding
|
||||
|
||||
## DP-3 bindings
|
||||
workspace 1 output DP-3
|
||||
workspace 2 output DP-3
|
||||
workspace 4 output DP-3
|
||||
workspace 5 output DP-3
|
||||
workspace 1 output DP-2
|
||||
workspace 2 output DP-2
|
||||
workspace 4 output DP-2
|
||||
workspace 5 output DP-2
|
||||
|
||||
## HDMI-A-1 bindings
|
||||
workspace 3 output HDMI-A-1
|
||||
workspace 9 output HDMI-A-1
|
||||
|
||||
## DP-2 bindings
|
||||
workspace 6 output DP-2
|
||||
workspace 7 output DP-2
|
||||
workspace 8 output DP-2
|
||||
workspace 6 output DP-3
|
||||
workspace 7 output DP-3
|
||||
workspace 8 output DP-3
|
||||
|
||||
### Colour options
|
||||
set $bg #24283b
|
||||
set $bg #24283b
|
||||
set $bg-inactive #323232
|
||||
set $bg-urgent #000000
|
||||
set $text #eeeeec
|
||||
@@ -215,7 +215,8 @@ font pango:FiraCode: 14px
|
||||
### Window formatting
|
||||
default_border none
|
||||
default_border pixel 2
|
||||
gaps inner 10px
|
||||
gaps inner 0
|
||||
gaps outer 0
|
||||
|
||||
# Applications
|
||||
exec_always /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
|
||||
421
flake.lock
generated
421
flake.lock
generated
@@ -1,27 +1,5 @@
|
||||
{
|
||||
"nodes": {
|
||||
"aagl": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"rust-overlay": "rust-overlay"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774186997,
|
||||
"narHash": "sha256-hyNVlhAqmwcBPl7XRkxbGcMt1BfCOdvuEfBDUf0k8Oo=",
|
||||
"owner": "ezKEa",
|
||||
"repo": "aagl-gtk-on-nix",
|
||||
"rev": "546e95f7ec74892a31f883a10b1723c35f2c2edd",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ezKEa",
|
||||
"repo": "aagl-gtk-on-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"darwin": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
@@ -29,16 +7,16 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1772129556,
|
||||
"narHash": "sha256-Utk0zd8STPsUJPyjabhzPc5BpPodLTXrwkpXBHYnpeg=",
|
||||
"lastModified": 1757432263,
|
||||
"narHash": "sha256-qHn+/0+IOz5cG68BZUwL9BV3EO/e9eNKCjH3+N7wMdI=",
|
||||
"owner": "lnl7",
|
||||
"repo": "nix-darwin",
|
||||
"rev": "ebec37af18215214173c98cf6356d0aca24a2585",
|
||||
"rev": "1fef4404de4d1596aa5ab2bd68078370e1b9dcdb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "lnl7",
|
||||
"ref": "nix-darwin-25.11",
|
||||
"ref": "nix-darwin-25.05",
|
||||
"repo": "nix-darwin",
|
||||
"type": "github"
|
||||
}
|
||||
@@ -46,11 +24,11 @@
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1767039857,
|
||||
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
|
||||
"lastModified": 1747046372,
|
||||
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
|
||||
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -62,57 +40,50 @@
|
||||
"flake-compat_2": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1761588595,
|
||||
"narHash": "sha256-XKUZz9zewJNUj46b4AJdiRZJAvSZ0Dqj2BNfXvFlJC4=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "f387cd2afec9419c8ee37694406ca490c3f34ee5",
|
||||
"lastModified": 1751685974,
|
||||
"narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1",
|
||||
"revCount": 92,
|
||||
"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-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nvf",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1756770412,
|
||||
"narHash": "sha256-+uWLQZccFHwqpGqr2Yt5VsW/PbeJVTn9Dk6SHWhNRPw=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "4524271976b625a4a605beefd893f270620fd751",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-schemas": {
|
||||
"locked": {
|
||||
"lastModified": 1761577921,
|
||||
"narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=",
|
||||
"rev": "47849c7625e223d36766968cc6dc23ba0e135922",
|
||||
"revCount": 107,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
|
||||
}
|
||||
},
|
||||
"flake-schemas_2": {
|
||||
"locked": {
|
||||
"lastModified": 1761577921,
|
||||
"narHash": "sha256-eK3/xbUOrxp9fFlei09XNjqcdiHXxndzrTXp7jFpOk8=",
|
||||
"rev": "47849c7625e223d36766968cc6dc23ba0e135922",
|
||||
"revCount": 107,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.2.0/019a4a84-544d-7c59-b26d-e334e320c932/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1701680307,
|
||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
@@ -121,68 +92,25 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"git-hooks": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"gitignore": "gitignore",
|
||||
"nixpkgs": [
|
||||
"go-overlay",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1765016596,
|
||||
"narHash": "sha256-rhSqPNxDVow7OQKi4qS5H8Au0P4S3AYbawBSmJNUtBQ=",
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"rev": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "cachix",
|
||||
"repo": "git-hooks.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"gitignore": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"go-overlay",
|
||||
"git-hooks",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1709087332,
|
||||
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "gitignore.nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"go-overlay": {
|
||||
"ghostty": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": "flake-utils",
|
||||
"git-hooks": "git-hooks",
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
"nixpkgs": "nixpkgs",
|
||||
"zig": "zig",
|
||||
"zon2nix": "zon2nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775676807,
|
||||
"narHash": "sha256-l7B5l6cGBZoW4bs+4Zq/FMgxaZWWJqdUDkCVuH98hMY=",
|
||||
"owner": "purpleclay",
|
||||
"repo": "go-overlay",
|
||||
"rev": "c5bd812957211f42c207da6b1415f49de30e183f",
|
||||
"lastModified": 1757737252,
|
||||
"narHash": "sha256-i0GfdFWNlIgFuVjCnf6/nSTqnNU4PSXb+6NBxGJkspE=",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"rev": "0c63946bdb68080cd5cac0f97622b8509b6776a5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "purpleclay",
|
||||
"repo": "go-overlay",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
@@ -193,20 +121,35 @@
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774274588,
|
||||
"narHash": "sha256-dnHvv5EMUgTzGZmA+3diYjQU2O6BEpGLEOgJ1Qe9LaY=",
|
||||
"lastModified": 1756679287,
|
||||
"narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "cf9686ba26f5ef788226843bc31fda4cf72e373b",
|
||||
"rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.11",
|
||||
"ref": "release-25.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"mnw": {
|
||||
"locked": {
|
||||
"lastModified": 1756659871,
|
||||
"narHash": "sha256-v6Rh4aQ6RKjM2N02kK9Usn0Ix7+OY66vNpeklc1MnGE=",
|
||||
"owner": "Gerg-L",
|
||||
"repo": "mnw",
|
||||
"rev": "ed6cc3e48557ba18266e598a5ebb6602499ada16",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Gerg-L",
|
||||
"repo": "mnw",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-flatpak": {
|
||||
"locked": {
|
||||
"lastModified": 1739444422,
|
||||
@@ -225,162 +168,92 @@
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1744536153,
|
||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
|
||||
"type": "github"
|
||||
"lastModified": 1748189127,
|
||||
"narHash": "sha256-zRDR+EbbeObu4V2X5QCd2Bk5eltfDlCr5yvhBwUT6pY=",
|
||||
"rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334",
|
||||
"type": "tarball",
|
||||
"url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.802491.7c43f080a7f2/nixexprs.tar.xz"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
"type": "tarball",
|
||||
"url": "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1765779637,
|
||||
"narHash": "sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1306659b587dc277866c7b69eb97e5f07864d8c4",
|
||||
"type": "github"
|
||||
"lastModified": 1755972213,
|
||||
"narHash": "sha256-VYK7aDAv8H1enXn1ECRHmGbeY6RqLnNwUJkOwloIsko=",
|
||||
"rev": "73e96df7cff5783f45e21342a75a1540c4eddce4",
|
||||
"type": "tarball",
|
||||
"url": "https://releases.nixos.org/nixos/unstable-small/nixos-25.11pre850642.73e96df7cff5/nixexprs.tar.xz"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
"type": "tarball",
|
||||
"url": "https://channels.nixos.org/nixos-unstable-small/nixexprs.tar.xz"
|
||||
}
|
||||
},
|
||||
"nixpkgs_3": {
|
||||
"locked": {
|
||||
"lastModified": 1774244481,
|
||||
"narHash": "sha256-4XfMXU0DjN83o6HWZoKG9PegCvKvIhNUnRUI19vzTcQ=",
|
||||
"lastModified": 1757545623,
|
||||
"narHash": "sha256-mCxPABZ6jRjUQx3bPP4vjA68ETbPLNz9V2pk9tO7pRQ=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "4590696c8693fea477850fe379a01544293ca4e2",
|
||||
"rev": "8cd5ce828d5d1d16feff37340171a98fc3bf6526",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-25.11",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_4": {
|
||||
"locked": {
|
||||
"lastModified": 1744536153,
|
||||
"narHash": "sha256-awS2zRgF4uTwrOKwwiJcByDzDOdo3Q1rPZbiHQg/N38=",
|
||||
"owner": "NixOS",
|
||||
"lastModified": 1756696532,
|
||||
"narHash": "sha256-6FWagzm0b7I/IGigOv9pr6LL7NQ86mextfE8g8Q6HBg=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "18dd725c29603f582cf1900e0d25f9f1063dbf11",
|
||||
"rev": "58dcbf1ec551914c3756c267b8b9c8c86baa1b2f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_5": {
|
||||
"nvf": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat_2",
|
||||
"flake-parts": "flake-parts",
|
||||
"mnw": "mnw",
|
||||
"nixpkgs": "nixpkgs_4",
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1766201043,
|
||||
"narHash": "sha256-eplAP+rorKKd0gNjV3rA6+0WMzb1X1i16F5m5pASnjA=",
|
||||
"rev": "b3aad468604d3e488d627c0b43984eb60e75e782",
|
||||
"revCount": 904049,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.904049%2Brev-b3aad468604d3e488d627c0b43984eb60e75e782/019b3f6c-8b33-7edb-b858-9979590f270b/source.tar.gz"
|
||||
"lastModified": 1757773905,
|
||||
"narHash": "sha256-lM1K3cJsPQyiSGI3rE/F7u02fA/JYBsinMN49IQCY1s=",
|
||||
"owner": "notashelf",
|
||||
"repo": "nvf",
|
||||
"rev": "7e74ee604a7c18dda21e6a809720ad37ab5bae43",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
|
||||
}
|
||||
},
|
||||
"nixpkgs_6": {
|
||||
"locked": {
|
||||
"lastModified": 1769089682,
|
||||
"narHash": "sha256-9yA/LIuAVQq0lXelrZPjLuLVuZdm03p8tfmHhnDIkms=",
|
||||
"rev": "078d69f03934859a181e81ba987c2bb033eebfc5",
|
||||
"revCount": 906333,
|
||||
"type": "tarball",
|
||||
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2511.906333%2Brev-078d69f03934859a181e81ba987c2bb033eebfc5/019bebf2-031c-7119-8fdc-ce9d29d005fa/source.tar.gz"
|
||||
},
|
||||
"original": {
|
||||
"type": "tarball",
|
||||
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
|
||||
"owner": "notashelf",
|
||||
"repo": "nvf",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"aagl": "aagl",
|
||||
"darwin": "darwin",
|
||||
"go-overlay": "go-overlay",
|
||||
"ghostty": "ghostty",
|
||||
"home-manager": "home-manager",
|
||||
"nix-flatpak": "nix-flatpak",
|
||||
"nixpkgs": "nixpkgs_3",
|
||||
"rust-overlay": "rust-overlay_2",
|
||||
"swaytreesave": "swaytreesave",
|
||||
"vintage-story": "vintage-story"
|
||||
}
|
||||
},
|
||||
"rust-overlay": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1770952264,
|
||||
"narHash": "sha256-CjymNrJZWBtpavyuTkfPVPaZkwzIzGaf0E/3WgcwM14=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "ec6a3d5cdf14bb5a1dd03652bd3f6351004d2188",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"rust-overlay_2": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_4"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1774321696,
|
||||
"narHash": "sha256-g18xMjMNla/nsF5XyQCNyWmtb2UlZpkY0XE8KinIXAA=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "49a67e6894d4cb782842ee6faa466aa90c92812d",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"swaytreesave": {
|
||||
"inputs": {
|
||||
"flake-schemas": "flake-schemas",
|
||||
"nixpkgs": "nixpkgs_5"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1767148467,
|
||||
"narHash": "sha256-W0O7SWq8ucokt4ctEAEvRvNoSM/oF7fBfb2kTN+lwTs=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "0f4bb9bb450b28aa4f29d5eb2062deac6c26687a",
|
||||
"revCount": 4,
|
||||
"type": "git",
|
||||
"url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git"
|
||||
"nvf": "nvf"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
@@ -398,23 +271,67 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"vintage-story": {
|
||||
"inputs": {
|
||||
"flake-schemas": "flake-schemas_2",
|
||||
"nixpkgs": "nixpkgs_6"
|
||||
},
|
||||
"systems_2": {
|
||||
"locked": {
|
||||
"lastModified": 1769397199,
|
||||
"narHash": "sha256-MSajncUGZtlpl88rqFdj42eGGyWnk2jw84VbK3AgUBA=",
|
||||
"ref": "refs/heads/master",
|
||||
"rev": "4d2313c50933645040a0d12556016fc2916bfa65",
|
||||
"revCount": 1,
|
||||
"type": "git",
|
||||
"url": "https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git"
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git"
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zig": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"ghostty",
|
||||
"flake-compat"
|
||||
],
|
||||
"flake-utils": [
|
||||
"ghostty",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"ghostty",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1748261582,
|
||||
"narHash": "sha256-3i0IL3s18hdDlbsf0/E+5kyPRkZwGPbSFngq5eToiAA=",
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"rev": "aafb1b093fb838f7a02613b719e85ec912914221",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zon2nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1757167408,
|
||||
"narHash": "sha256-4XyJ6fmKd9wgJ7vHUQuULYy5ps2gUgkkDk/PrJb2OPY=",
|
||||
"owner": "jcollie",
|
||||
"repo": "zon2nix",
|
||||
"rev": "dc78177e2ad28d5a407c9e783ee781bd559d7dd5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "jcollie",
|
||||
"repo": "zon2nix",
|
||||
"rev": "dc78177e2ad28d5a407c9e783ee781bd559d7dd5",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
137
flake.nix
137
flake.nix
@@ -1,26 +1,18 @@
|
||||
{
|
||||
description = "Wyatt's nix configuration suite";
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.11";
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||
nix-flatpak.url = "github:gmodena/nix-flatpak/?ref=v0.6.0";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.11";
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
darwin = {
|
||||
url = "github:lnl7/nix-darwin/nix-darwin-25.11";
|
||||
url = "github:lnl7/nix-darwin/nix-darwin-25.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||
go-overlay.url = "github:purpleclay/go-overlay";
|
||||
aagl = {
|
||||
url = "github:ezKEa/aagl-gtk-on-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
|
||||
# My personal flakes
|
||||
swaytreesave.url = "git+https://scm.wyattjmiller.com/wymiller/swaytreesave-nix.git";
|
||||
vintage-story.url = "git+https://scm.wyattjmiller.com/wymiller/vintage-story-nix.git";
|
||||
ghostty.url = "github:ghostty-org/ghostty";
|
||||
nvf.url = "github:notashelf/nvf";
|
||||
};
|
||||
|
||||
outputs = inputs @ {
|
||||
@@ -29,44 +21,27 @@
|
||||
nix-flatpak,
|
||||
darwin,
|
||||
home-manager,
|
||||
rust-overlay,
|
||||
go-overlay,
|
||||
aagl,
|
||||
swaytreesave,
|
||||
vintage-story,
|
||||
ghostty,
|
||||
nvf,
|
||||
...
|
||||
}: let
|
||||
userName = "wyatt";
|
||||
userEmail = "wyatt@wyattjmiller.com";
|
||||
extraSpecialArgs = {
|
||||
inherit userName userEmail swaytreesave;
|
||||
};
|
||||
|
||||
myOverlays = { ... }: {
|
||||
nixpkgs.overlays = [
|
||||
rust-overlay.overlays.default
|
||||
go-overlay.overlays.default
|
||||
aagl.overlays.default
|
||||
self.common.overlays
|
||||
];
|
||||
inherit userName userEmail ghostty nvf;
|
||||
};
|
||||
in {
|
||||
meta = import ./meta;
|
||||
|
||||
common = {
|
||||
overlays = import ./modules/common/overlays.nix;
|
||||
};
|
||||
|
||||
# Primary laptop - MacBook Pro (2023, M3)
|
||||
darwinConfigurations."sephiroth" = darwin.lib.darwinSystem {
|
||||
system = "aarch64-darwin";
|
||||
specialArgs = {
|
||||
inherit userName userEmail;
|
||||
inherit userName userEmail ghostty;
|
||||
hostname = "sephiroth";
|
||||
role = "workstation";
|
||||
role = "devel";
|
||||
};
|
||||
modules = [
|
||||
myOverlays
|
||||
./modules/common
|
||||
./modules/machine/sephiroth
|
||||
|
||||
@@ -74,9 +49,7 @@
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = false; role = "workstation"; };
|
||||
# home-manager.extraSpecialArgs = extraSpecialArgs;
|
||||
home-manager.backupFileExtension = "bak";
|
||||
home-manager.extraSpecialArgs = extraSpecialArgs;
|
||||
home-manager.users.${userName} = import ./home;
|
||||
}
|
||||
];
|
||||
@@ -86,12 +59,11 @@
|
||||
nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit userName userEmail aagl vintage-story;
|
||||
inherit userName userEmail;
|
||||
hostname = "cloud";
|
||||
role = "workstation";
|
||||
role = "devel";
|
||||
};
|
||||
modules = [
|
||||
myOverlays
|
||||
nix-flatpak.nixosModules.nix-flatpak
|
||||
./modules/common
|
||||
./modules/machine/cloud
|
||||
@@ -100,8 +72,7 @@
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "workstation"; };
|
||||
home-manager.backupFileExtension = "bak";
|
||||
home-manager.extraSpecialArgs = extraSpecialArgs;
|
||||
home-manager.users.${userName}.imports = [
|
||||
./home
|
||||
];
|
||||
@@ -118,7 +89,6 @@
|
||||
role = "server";
|
||||
};
|
||||
modules = [
|
||||
myOverlays
|
||||
./modules/common
|
||||
./modules/machine/valefor
|
||||
|
||||
@@ -127,7 +97,6 @@
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = extraSpecialArgs;
|
||||
home-manager.backupFileExtension = "bak";
|
||||
home-manager.users.${userName}.imports = [
|
||||
./home
|
||||
];
|
||||
@@ -144,7 +113,6 @@
|
||||
role = "server";
|
||||
};
|
||||
# modules = [
|
||||
# myOverlays
|
||||
# nix-flatpak.nixosModules.nix-flatpak
|
||||
# nix-ld.nixosModules.nix-ld
|
||||
# ./modules/nixos/hardware-configuration.nix
|
||||
@@ -157,88 +125,11 @@
|
||||
# home-manager.useGlobalPkgs = true;
|
||||
# home-manager.useUserPackages = true;
|
||||
# home-manager.extraSpecialArgs = extraSpecialArgs;
|
||||
# home-manager.backupFileExtension = "bak";
|
||||
# home-manager.users.${userName}.imports = [
|
||||
# ./home
|
||||
# ];
|
||||
# }
|
||||
# ];
|
||||
};
|
||||
|
||||
# Vintage story server
|
||||
nixosConfigurations."thancred" = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit userName userEmail vintage-story;
|
||||
hostname = "thancred";
|
||||
role = "server";
|
||||
};
|
||||
modules = [
|
||||
myOverlays
|
||||
./modules/common
|
||||
./modules/machine/thancred
|
||||
|
||||
home-manager.nixosModules.home-manager
|
||||
{
|
||||
home-manager.useGlobalPkgs = true;
|
||||
home-manager.useUserPackages = true;
|
||||
home-manager.extraSpecialArgs = extraSpecialArgs // { isNixOS = true; role = "server"; };
|
||||
home-manager.backupFileExtension = "bak";
|
||||
home-manager.users.${userName}.imports = [
|
||||
./home
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# Matrix and Mastodon server
|
||||
nixosConfigurations."yshtola" = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
specialArgs = {
|
||||
inherit userName userEmail;
|
||||
hostname = "yshtola";
|
||||
role = "server";
|
||||
};
|
||||
modules = [
|
||||
myOverlays
|
||||
./modules/common
|
||||
./modules/machine/yshtola
|
||||
|
||||
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
|
||||
homeConfigurations."generic" = let
|
||||
hostname = builtins.getEnv "HOSTNAME";
|
||||
system = "x86_64-linux";
|
||||
in home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
|
||||
extraSpecialArgs = {
|
||||
inherit userName userEmail hostname;
|
||||
isNixOS = false;
|
||||
role = "workstation";
|
||||
};
|
||||
modules = [
|
||||
{
|
||||
nixpkgs.overlays = [
|
||||
rust-overlay.overlays.default
|
||||
go-overlay.overlays.default
|
||||
self.common.overlays
|
||||
];
|
||||
}
|
||||
./home
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{ pkgs, ...}: {
|
||||
{...}: {
|
||||
programs.atuin = {
|
||||
enable = true;
|
||||
enableFishIntegration = true;
|
||||
package = pkgs.atuinLatest;
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
isNixOS ? true,
|
||||
...
|
||||
}: {
|
||||
programs.firefox = {
|
||||
@@ -10,7 +9,7 @@
|
||||
};
|
||||
|
||||
programs.chromium = {
|
||||
enable = pkgs.stdenv.isLinux && isNixOS;
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
package = pkgs.ungoogled-chromium.override {
|
||||
enableWideVine = true;
|
||||
commandLineArgs = [
|
||||
@@ -41,37 +40,14 @@
|
||||
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
|
||||
sha256 = "sha256:0pdh1v0vx1d5vnl1zh7nbk6j1fh4k4hhwp1ljs203icn306lahsn";
|
||||
# sha256 = lib.fakeSha256;
|
||||
version = "1.67.0";
|
||||
version = "1.64.0";
|
||||
})
|
||||
(createChromiumExtension {
|
||||
# bitwarden
|
||||
id = "nngceckbapebfimnlniiiahkandclblb";
|
||||
sha256 = "sha256:0jxk3cqmgd5qj8hnw7s0k5s4bfrcmr0w0rckp3x0bmng07azw4gi";
|
||||
version = "2025.10.0";
|
||||
})
|
||||
(createChromiumExtension {
|
||||
# react dev tools
|
||||
id = "fmkadmapgofadopljbjfkapdkoienihi";
|
||||
sha256 = "sha256:01vy0x7hdkj4g3m2l4kw5rwldhhpkcxmd2miy5rj2dzxdnbchw2z";
|
||||
version = "7.0.1";
|
||||
})
|
||||
(createChromiumExtension {
|
||||
# wappalyzer
|
||||
id = "gppongmhjkpfnbhagpmjfkannfbllamg";
|
||||
sha256 = "sha256:1mi1wpm714r8yp0zh0yg6kccnld36rj4xb8j4y0c18y9176vc6wx";
|
||||
version = "6.10.86";
|
||||
})
|
||||
(createChromiumExtension {
|
||||
# obsidian web clipper
|
||||
id = "cnjifjpddelmedmihgijeibhnjfabmlf";
|
||||
sha256 = "sha256:0bp6g63g9hk2xbq054lpf5hzwmn73jzh3hswyjfp9r7yqj83mzgy";
|
||||
version = "0.12.0";
|
||||
})
|
||||
(createChromiumExtension {
|
||||
# dark reader
|
||||
id = "eimadpbcbfnmbkopoojfekhnkhdbieeh";
|
||||
sha256 = "sha256:06a9dz589i1da519kivzp7bljksl2xxsd151y7ww0hx28jd1694b";
|
||||
version = "4.9.113";
|
||||
# sha256 = lib.fakeSha256;
|
||||
version = "2025.5.0";
|
||||
})
|
||||
];
|
||||
};
|
||||
|
||||
@@ -1,59 +1,64 @@
|
||||
{ lib
|
||||
, pkgs
|
||||
, userName
|
||||
, swaytreesave
|
||||
, isNixOS ? true
|
||||
, ...
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
userName,
|
||||
userEmail,
|
||||
ghostty,
|
||||
nvf,
|
||||
...
|
||||
}: let
|
||||
# Have a file sturcture that holds all the configuration files that can't be configured by Nix
|
||||
# or maybe I'm too lazy to do anything about it? I dunno
|
||||
dirs = {
|
||||
defaults = ../defaults;
|
||||
};
|
||||
in
|
||||
{
|
||||
_module.args = {
|
||||
inherit dirs;
|
||||
};
|
||||
|
||||
in {
|
||||
# Import sub modules
|
||||
imports = [
|
||||
imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty nvf;}) [
|
||||
./atuin.nix
|
||||
./shell.nix
|
||||
./packages
|
||||
./git.nix
|
||||
./starship.nix
|
||||
./eza.nix
|
||||
./neovim.nix
|
||||
./direnv.nix
|
||||
./sway.nix
|
||||
./terminal.nix
|
||||
./browser.nix
|
||||
./zellij.nix
|
||||
./bat.nix
|
||||
];
|
||||
|
||||
home = lib.mkMerge [
|
||||
{
|
||||
username = userName;
|
||||
homeDirectory =
|
||||
if pkgs.stdenv.isDarwin
|
||||
then "/Users/${userName}"
|
||||
else "/home/${userName}";
|
||||
# Home Manager needs a bit of information about you and the
|
||||
# paths it should manage.
|
||||
home = {
|
||||
username = userName;
|
||||
homeDirectory =
|
||||
if pkgs.stdenv.isDarwin
|
||||
then "/Users/${userName}"
|
||||
else "/home/${userName}";
|
||||
|
||||
stateVersion = "24.11";
|
||||
}
|
||||
sessionVariables = {
|
||||
XDG_CURRENT_DESKTOP = "sway";
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
XDG_SESSION_DESKTOP="sway";
|
||||
XDG_CONFIG_HOME = "$HOME/.config";
|
||||
XDG_CACHE_HOME = "$HOME/.cache";
|
||||
XDG_DATA_HOME = "$HOME/.local/share";
|
||||
XDG_STATE_HOME = "$HOME/.local/state";
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
|
||||
(lib.mkIf isNixOS {
|
||||
sessionVariables = {
|
||||
XDG_CURRENT_DESKTOP = "sway";
|
||||
XDG_SESSION_TYPE = "wayland";
|
||||
XDG_SESSION_DESKTOP = "sway";
|
||||
XDG_CONFIG_HOME = "$HOME/.config";
|
||||
XDG_CACHE_HOME = "$HOME/.cache";
|
||||
XDG_DATA_HOME = "$HOME/.local/share";
|
||||
XDG_STATE_HOME = "$HOME/.local/state";
|
||||
NIXOS_OZONE_WL = "1";
|
||||
};
|
||||
})
|
||||
pointerCursor = lib.mkIf pkgs.stdenv.isLinux {
|
||||
gtk.enable = true;
|
||||
package = pkgs.catppuccin-cursors.mochaDark;
|
||||
name = "catppuccin-mocha-dark-cursors";
|
||||
size = 22;
|
||||
};
|
||||
|
||||
(lib.mkIf pkgs.stdenv.isLinux {
|
||||
pointerCursor = {
|
||||
gtk.enable = true;
|
||||
package = pkgs.catppuccin-cursors.mochaDark;
|
||||
name = "catppuccin-mocha-dark-cursors";
|
||||
size = 22;
|
||||
};
|
||||
})
|
||||
];
|
||||
stateVersion = "24.11";
|
||||
};
|
||||
|
||||
# Let Home Manager install and manage itself.
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
extraConfig = {
|
||||
init.defaultBranch = "master";
|
||||
push.autoSetupRemote = true;
|
||||
pull.rebase = false;
|
||||
pull.merge = true;
|
||||
merge.tool = "nvimdiff";
|
||||
mergetool.keepBackup = false;
|
||||
};
|
||||
@@ -31,7 +31,6 @@
|
||||
a = "add";
|
||||
ap = "add -p";
|
||||
br = "branch";
|
||||
cb = "checkout -b";
|
||||
co = "checkout";
|
||||
st = "status -sb";
|
||||
status = "status -sb";
|
||||
@@ -41,11 +40,6 @@
|
||||
ca = "commit -am";
|
||||
dc = "diff --cached";
|
||||
amend = "commit --amend -m";
|
||||
wipe = "reset --hard";
|
||||
gg = "reset --hard";
|
||||
ggs = "reset --hard";
|
||||
sw = "switch";
|
||||
r = "restore";
|
||||
|
||||
# aliases for submodules
|
||||
update = "submodule update --init --recursive";
|
||||
|
||||
32
home/k9s.nix
32
home/k9s.nix
@@ -1,32 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.k9s = {
|
||||
enable = true;
|
||||
package = pkgs.k9s;
|
||||
settings.k9s = {
|
||||
refreshRate = "2s";
|
||||
liveViewAutoRefresh = false;
|
||||
apiServerTimeout = "30s";
|
||||
maxConnRetry = 5;
|
||||
readOnly = true;
|
||||
noExitOnCtrlC = false;
|
||||
portForwardAddress = "localhost";
|
||||
skipLatestRevCheck = false;
|
||||
|
||||
skin = {
|
||||
catppuccin-mocha = ../defaults/k9s/catppuccin-mocha.yaml;
|
||||
};
|
||||
|
||||
ui = {
|
||||
skin = "catppuccin-mocha";
|
||||
enableMouse = true;
|
||||
headless = false;
|
||||
logoless = true;
|
||||
crumbsless = false;
|
||||
splashless = true;
|
||||
reactive = false;
|
||||
noIcons = false;
|
||||
defaultsToFullscreen = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{ pkgs, lib, ... }:
|
||||
with pkgs;
|
||||
let
|
||||
plugins = [
|
||||
"krew"
|
||||
"oidc-login"
|
||||
];
|
||||
in {
|
||||
home.activation.krew = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
${lib.concatMapStringsSep "\n" (plugin: ''
|
||||
$DRY_RUN_CMD ${krew}/bin/krew install ${plugin} || true
|
||||
'') plugins}
|
||||
'';
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
{ pkgs, ... }: {
|
||||
{...}: {
|
||||
programs.lazygit = {
|
||||
enable = true;
|
||||
package = pkgs.lazygitLatest;
|
||||
|
||||
settings = {
|
||||
gui.theme = {
|
||||
|
||||
382
home/neovim.nix
382
home/neovim.nix
@@ -1,18 +1,372 @@
|
||||
{...}: let
|
||||
dirs = {
|
||||
defaults = ../defaults;
|
||||
};
|
||||
in {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
vimAlias = true;
|
||||
};
|
||||
{
|
||||
nvf,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
nvf.homeManagerModules.default
|
||||
];
|
||||
|
||||
xdg.configFile = {
|
||||
nvim = {
|
||||
onChange = "nvim --headless -c 'if exists(\":LuaCacheClear\") | :LuaCacheClear' +quitall";
|
||||
source = dirs.defaults + /nvim;
|
||||
programs.nvf = {
|
||||
# enable nvf neovim distribution
|
||||
enable = true;
|
||||
|
||||
# set stuff!
|
||||
settings = {
|
||||
vim = {
|
||||
# setting alias to _always_ use neovim
|
||||
viAlias = true;
|
||||
vimAlias = true;
|
||||
|
||||
options = {
|
||||
tabstop = 4;
|
||||
shiftwidth = 4;
|
||||
expandtab = true;
|
||||
autoindent = true;
|
||||
smartindent = true;
|
||||
smarttab = true;
|
||||
scrolloff = 12;
|
||||
sidescrolloff = 8;
|
||||
wrap = false;
|
||||
linebreak = false;
|
||||
number = true;
|
||||
relativenumber = true;
|
||||
cursorline = true;
|
||||
signcolumn = "yes";
|
||||
tabline = "2";
|
||||
};
|
||||
|
||||
# clipboard configuration
|
||||
clipboard = {
|
||||
enable = true;
|
||||
providers = {
|
||||
wl-copy.enable = true;
|
||||
};
|
||||
registers = "unnamed,unnamedplus";
|
||||
};
|
||||
|
||||
# LSP configuration
|
||||
lsp = {
|
||||
enable = true;
|
||||
formatOnSave = true;
|
||||
lspkind.enable = true;
|
||||
lspconfig.enable = true;
|
||||
lightbulb.enable = false;
|
||||
lspsaga.enable = false;
|
||||
trouble.enable = false;
|
||||
lspSignature.enable = true;
|
||||
otter-nvim.enable = false;
|
||||
nvim-docs-view.enable = false;
|
||||
};
|
||||
|
||||
# debugger configuration
|
||||
debugger = {
|
||||
nvim-dap = {
|
||||
enable = true;
|
||||
ui.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# disable spellcheck
|
||||
spellcheck.enable = false;
|
||||
|
||||
# enable diagnostics (inline)
|
||||
diagnostics = {
|
||||
enable = true;
|
||||
config = {
|
||||
underline = true;
|
||||
signs = true;
|
||||
update_in_insert = false;
|
||||
virtual_lines = true;
|
||||
};
|
||||
};
|
||||
|
||||
# language specific configuartion
|
||||
languages = {
|
||||
enableFormat = true;
|
||||
enableTreesitter = true;
|
||||
enableExtraDiagnostics = true;
|
||||
|
||||
nix = {
|
||||
enable = true;
|
||||
lsp.enable = true;
|
||||
treesitter.enable = true;
|
||||
format = {
|
||||
enable = true;
|
||||
package = pkgs.alejandra;
|
||||
};
|
||||
extraDiagnostics = {
|
||||
enable = true;
|
||||
types = ["statix"];
|
||||
};
|
||||
};
|
||||
markdown.enable = true;
|
||||
bash.enable = true;
|
||||
clang.enable = true;
|
||||
css = {
|
||||
enable = true;
|
||||
format = {
|
||||
enable = true;
|
||||
package = pkgs.prettierd;
|
||||
};
|
||||
};
|
||||
html.enable = true;
|
||||
sql.enable = true;
|
||||
java.enable = true;
|
||||
kotlin = {
|
||||
enable = true;
|
||||
lsp.enable = true;
|
||||
treesitter.enable = true;
|
||||
extraDiagnostics.enable = true;
|
||||
};
|
||||
ts = {
|
||||
enable = true;
|
||||
format = {
|
||||
enable = true;
|
||||
package = pkgs.prettierd;
|
||||
};
|
||||
lsp = {
|
||||
enable = true;
|
||||
server = "ts_ls";
|
||||
};
|
||||
};
|
||||
lua.enable = false;
|
||||
python.enable = true;
|
||||
rust = {
|
||||
enable = true;
|
||||
lsp.enable = true;
|
||||
dap.enable = true;
|
||||
format.enable = true;
|
||||
crates.enable = true;
|
||||
};
|
||||
csharp = {
|
||||
enable = true;
|
||||
lsp = {
|
||||
enable = true;
|
||||
server = "omnisharp";
|
||||
};
|
||||
treesitter.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# statusline configuration
|
||||
statusline = {
|
||||
lualine = {
|
||||
enable = true;
|
||||
theme = "catppuccin";
|
||||
};
|
||||
};
|
||||
|
||||
# theme configuration
|
||||
theme = {
|
||||
enable = true;
|
||||
name = "catppuccin";
|
||||
style = "mocha";
|
||||
transparent = true;
|
||||
};
|
||||
|
||||
# visual/ui configuration
|
||||
visuals = {
|
||||
nvim-scrollbar.enable = false;
|
||||
nvim-web-devicons.enable = true;
|
||||
nvim-cursorline.enable = true;
|
||||
cinnamon-nvim.enable = true;
|
||||
fidget-nvim.enable = false;
|
||||
|
||||
highlight-undo.enable = true;
|
||||
indent-blankline.enable = true;
|
||||
};
|
||||
|
||||
ui = {
|
||||
borders.enable = true;
|
||||
noice.enable = false;
|
||||
colorizer.enable = true;
|
||||
modes-nvim.enable = false; # the theme looks terrible with catppuccin
|
||||
illuminate.enable = true;
|
||||
breadcrumbs = {
|
||||
enable = true;
|
||||
navbuddy.enable = false;
|
||||
};
|
||||
fastaction.enable = true;
|
||||
};
|
||||
|
||||
# autocomplete/intellisense configuration
|
||||
autopairs.nvim-autopairs.enable = true;
|
||||
autocomplete.nvim-cmp = {
|
||||
enable = true;
|
||||
sources = {
|
||||
nvim-lsp = "nvim_lsp";
|
||||
async-path = "async_path";
|
||||
};
|
||||
};
|
||||
|
||||
# tabline configuration
|
||||
tabline = {
|
||||
nvimBufferline = {
|
||||
enable = true;
|
||||
setupOpts.options = {
|
||||
numbers = "none";
|
||||
};
|
||||
mappings = {
|
||||
closeCurrent = "<leader>x";
|
||||
cycleNext = "<tab>";
|
||||
cyclePrevious = "<S-tab>";
|
||||
moveNext = null;
|
||||
movePrevious = null;
|
||||
sortByDirectory = null;
|
||||
sortByExtension = null;
|
||||
sortById = null;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
treesitter = {
|
||||
context = {
|
||||
enable = true;
|
||||
setupOpts.max_lines = 3;
|
||||
};
|
||||
};
|
||||
|
||||
binds = {
|
||||
whichKey.enable = true;
|
||||
cheatsheet.enable = true;
|
||||
};
|
||||
|
||||
telescope.enable = true;
|
||||
|
||||
git = {
|
||||
enable = true;
|
||||
gitsigns.enable = true;
|
||||
gitsigns.codeActions.enable = false; # throws an annoying debug message
|
||||
git-conflict.enable = true;
|
||||
};
|
||||
|
||||
comments = {
|
||||
comment-nvim.enable = true;
|
||||
};
|
||||
|
||||
# discord integration
|
||||
presence = {
|
||||
neocord.enable = true;
|
||||
};
|
||||
|
||||
notify = {
|
||||
nvim-notify.enable = true;
|
||||
};
|
||||
|
||||
dashboard = {
|
||||
dashboard-nvim.enable = false;
|
||||
alpha.enable = true;
|
||||
};
|
||||
|
||||
filetree = {
|
||||
neo-tree = {
|
||||
enable = true;
|
||||
setupOpts.enable_refresh_on_write = true;
|
||||
};
|
||||
};
|
||||
|
||||
# terminal integration configuration
|
||||
terminal = {
|
||||
toggleterm = {
|
||||
enable = true;
|
||||
lazygit.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# notes!
|
||||
notes = {
|
||||
obsidian = {
|
||||
enable = true; # more to be added here
|
||||
setupOpts = {
|
||||
workspaces = [
|
||||
{
|
||||
name = "notes";
|
||||
path = "~/Source/notes";
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
todo-comments.enable = true;
|
||||
};
|
||||
|
||||
# ai assistant configuration
|
||||
assistant = {
|
||||
copilot = {
|
||||
enable = true;
|
||||
cmp.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
# custom key mappings
|
||||
keymaps = [
|
||||
# Ctrl-S save
|
||||
{
|
||||
mode = ["n" "v" "i"];
|
||||
key = "<C-s>";
|
||||
action = "<cmd>w<CR>";
|
||||
}
|
||||
|
||||
# toggle file explorer
|
||||
{
|
||||
mode = ["n"];
|
||||
key = "<leader><o>";
|
||||
action = "<cmd>Neotree toggle left<CR>";
|
||||
}
|
||||
|
||||
# copy/cut/paste to system clipboard
|
||||
# {
|
||||
# mode = ["v"];
|
||||
# key = "<sc-c>";
|
||||
# action = ''
|
||||
# "+y
|
||||
# '';
|
||||
# noremap = true;
|
||||
# }
|
||||
# {
|
||||
# mode = ["n"];
|
||||
# key = "<sc-v>";
|
||||
# action = ''
|
||||
# l"+P
|
||||
# '';
|
||||
# noremap = true;
|
||||
# }
|
||||
# {
|
||||
# mode = ["v"];
|
||||
# key = "<sc-v>";
|
||||
# action = ''
|
||||
# "+P
|
||||
# '';
|
||||
# noremap = true;
|
||||
# }
|
||||
# {
|
||||
# mode = ["c"];
|
||||
# key = "<sc-v>";
|
||||
# action = ''
|
||||
# <C-o>l<C-o>"+<C-o>P<C-o>
|
||||
# '';
|
||||
# noremap = true;
|
||||
# }
|
||||
# {
|
||||
# mode = ["i"];
|
||||
# key = "<sc-v>";
|
||||
# action = ''
|
||||
# <ESC>l"+Pli
|
||||
# '';
|
||||
# noremap = true;
|
||||
# }
|
||||
# {
|
||||
# mode = ["t"];
|
||||
# key = "<sc-v>";
|
||||
# action = ''
|
||||
# <C-\><C-n>"+Pi
|
||||
# '';
|
||||
# noremap = true;
|
||||
# }
|
||||
];
|
||||
|
||||
### end of settings
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,20 +1,11 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../atuin.nix
|
||||
../shell.nix
|
||||
../git.nix
|
||||
../starship.nix
|
||||
../eza.nix
|
||||
../neovim.nix
|
||||
../bat.nix
|
||||
];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
yazi # terminal file manager
|
||||
|
||||
# archives
|
||||
zip
|
||||
xz
|
||||
@@ -22,21 +13,40 @@
|
||||
p7zip
|
||||
|
||||
# utils
|
||||
yazi
|
||||
tmux
|
||||
lazygit
|
||||
bottom
|
||||
ripgrep
|
||||
jq
|
||||
yq-go
|
||||
fzf
|
||||
fh
|
||||
aria2
|
||||
gnupg
|
||||
yt-dlp
|
||||
obsidian
|
||||
vscode
|
||||
weechat
|
||||
inetutils
|
||||
|
||||
# misc
|
||||
cowsay
|
||||
file
|
||||
which
|
||||
tree
|
||||
gnutar
|
||||
gnupg
|
||||
zoxide
|
||||
babelfish
|
||||
|
||||
# language-specific package managers
|
||||
nodejs
|
||||
cargo
|
||||
python3
|
||||
|
||||
# nix specific stuff
|
||||
nixd
|
||||
deadnix
|
||||
alejandra
|
||||
statix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,7 +1,10 @@
|
||||
{ lib, pkgs, ... }:
|
||||
lib.mkIf pkgs.stdenv.isDarwin {
|
||||
home.packages = with pkgs; [
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
home.packages = lib.mkIf pkgs.stdenv.isDarwin (with pkgs; [
|
||||
discord
|
||||
ollama
|
||||
];
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
{ lib, role ? "workstation", ... }:
|
||||
{
|
||||
imports =
|
||||
[
|
||||
./common.nix
|
||||
./darwin.nix
|
||||
./linux.nix
|
||||
]
|
||||
++ lib.optional (role == "workstation") ./workstation.nix
|
||||
++ lib.optional (role == "server") ./server.nix;
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./common.nix
|
||||
./darwin.nix
|
||||
./linux.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,16 +1,20 @@
|
||||
{ lib, pkgs, isNixOS ? true, ... }:
|
||||
lib.mkIf pkgs.stdenv.isLinux {
|
||||
home.packages = with pkgs; [
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
home.packages = lib.mkIf pkgs.stdenv.isLinux (with pkgs; [
|
||||
imv
|
||||
xdg-utils
|
||||
] ++ lib.optionals isNixOS [
|
||||
betterdiscordctl
|
||||
vesktop
|
||||
xdg-utils
|
||||
mcrcon
|
||||
xfce.thunar
|
||||
pavucontrol
|
||||
zathura
|
||||
godot
|
||||
aseprite
|
||||
gpu-screen-recorder
|
||||
gpu-screen-recorder-gtk
|
||||
inetutils
|
||||
easyeffects
|
||||
];
|
||||
# ungoogled-chromium
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
home.packages = [
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
isNixOS ? true,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
../terminal.nix
|
||||
../browser.nix
|
||||
../zellij.nix
|
||||
../lazygit.nix
|
||||
../k9s.nix
|
||||
../krew.nix
|
||||
../direnv.nix
|
||||
] ++ lib.optional isNixOS ../sway.nix;
|
||||
|
||||
home.packages = with pkgs; [
|
||||
fh
|
||||
kubectl # kube config is deliberately not included
|
||||
kubectx
|
||||
vscode
|
||||
yt-dlp
|
||||
weechat
|
||||
nodejs
|
||||
cargo
|
||||
python3
|
||||
nixd
|
||||
deadnix
|
||||
alejandra
|
||||
statix
|
||||
gh
|
||||
ghDashLatest
|
||||
diffNavLatest
|
||||
] ++ lib.optionals isNixOS [
|
||||
obsidian
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
{pkgs, lib, ...}: {
|
||||
{pkgs, ...}: {
|
||||
programs.fish = {
|
||||
enable = true;
|
||||
shellInit = ''
|
||||
if test -d $HOME/.krew/bin
|
||||
set -gx PATH $HOME/.krew/bin $PATH
|
||||
end
|
||||
'';
|
||||
# initExtra = ''
|
||||
# export PATH="$PATH:$HOME/bin:$HOME/.local/bin:$HOME/go/bin"
|
||||
# '';
|
||||
|
||||
shellAliases = {
|
||||
# ls aliases
|
||||
@@ -45,31 +43,7 @@
|
||||
"Can I get a waffle? Can I please get a waffle?" \
|
||||
"I'm lesbian. I thought you were American." \
|
||||
"You gotta give 'em that 'hawk tuah' and spit on that thang!" \
|
||||
"We don't do that here..." \
|
||||
"What are those?! They are my crocs..." \
|
||||
"It's an avocado... Thanks!" \
|
||||
"I am once again asking for your financial support" \
|
||||
"Is that a weed?" \
|
||||
"No, this is Patrick!" \
|
||||
"Come ride, heroes, ride" \
|
||||
"Away with the tide" \
|
||||
"Concede your mind unto the fiend" \
|
||||
"Darkness come, rend the shield of light" \
|
||||
"The sun is setting, darkness taking over - a date with chaos and you're dressed to the nines" \
|
||||
"Now kneel overdweller, your lord commands, there's no salvation for the sons of man" \
|
||||
"Snap click clank whirr whizz wham boom!" \
|
||||
"Rohs an kyn ala na" \
|
||||
"If you’ve brought your ivory standard, I’ll be happy to tell you where you can stick it" \
|
||||
"Speeches? Oh, yes, I love them. There's nothing like a good exposition when you're having trouble sleeping!" \
|
||||
"Somehow, the boy just isn't very buoyant" \
|
||||
"I am...not interested, little sun. Try again when you have become a man" \
|
||||
"I am rightousness! And rightousness shall previal!" \
|
||||
"Ahhh such bliss!" \
|
||||
"The gods themselves will be my meal. Your dear companions my dessert. Upon this world I'll feast, and death shall follow in my wake. All your hate, all your rage, you will render unto me." \
|
||||
"Boring, boring, boring" \
|
||||
"Would you be 'happier' had I a 'good reason'?" \
|
||||
"A test of your reflexes!"
|
||||
|
||||
"We don't do that here..."
|
||||
|
||||
set choose_meme (random)"%"(count $memes)
|
||||
set choose_meme $memes[(math $choose_meme"+1")]
|
||||
@@ -78,27 +52,6 @@
|
||||
'';
|
||||
onEvent = "fish_greeting";
|
||||
};
|
||||
} // lib.optionalAttrs pkgs.stdenv.isLinux {
|
||||
block = {
|
||||
body = ''
|
||||
systemd-inhibit --what=sleep --who="$USER" --why="manual invocation" --mode=block sleep infinity &
|
||||
set -g INHIBIT_PID $last_pid
|
||||
echo "Sleep inhibited. PID: $INHIBIT_PID"
|
||||
'';
|
||||
};
|
||||
|
||||
unblock = {
|
||||
body = ''
|
||||
if set -q INHIBIT_PID
|
||||
kill $INHIBIT_PID 2>/dev/null
|
||||
and echo "Sleep inhibitor removed. PID: $INHIBIT_PID"
|
||||
or echo "Failed to kill process or already terminated."
|
||||
set -e INHIBIT_PID
|
||||
else
|
||||
echo "No active sleep inhibitor found."
|
||||
end
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
248
home/sway.nix
248
home/sway.nix
@@ -1,27 +1,12 @@
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
swaytreesave,
|
||||
...
|
||||
}: let
|
||||
dirs = {
|
||||
defaults = ../defaults;
|
||||
};
|
||||
|
||||
# Derived from subprojects/cava.wrap
|
||||
libcava.src = pkgs.fetchFromGitHub {
|
||||
owner = "LukashonakV";
|
||||
repo = "cava";
|
||||
rev = "0.10.3";
|
||||
hash = "sha256-ZDFbI69ECsUTjbhlw2kHRufZbQMu+FQSMmncCJ5pagg=";
|
||||
};
|
||||
in {
|
||||
imports = [
|
||||
swaytreesave.homeManagerModules.default
|
||||
];
|
||||
|
||||
programs.swaytreesave.enable = if pkgs.stdenv.isLinux then true else false;
|
||||
|
||||
wayland.windowManager.sway = {
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
extraOptions = []; # Extra arguments to pass into sway. If sway goes haywire, we might need something in here
|
||||
@@ -32,128 +17,131 @@ in {
|
||||
gtk = true;
|
||||
};
|
||||
};
|
||||
|
||||
xdg.configFile."sway/config".source = lib.mkForce (dirs.defaults + /sway/config);
|
||||
xdg.configFile."waybar/config".source = lib.mkForce (dirs.defaults + /waybar/config);
|
||||
xdg.configFile."waybar/style.css".source = lib.mkForce (dirs.defaults + /waybar/style.css);
|
||||
|
||||
programs.wofi = {
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
settings = {
|
||||
width=600;
|
||||
height=350;
|
||||
location="center";
|
||||
show="drun";
|
||||
prompt="Search...";
|
||||
filter_rate=100;
|
||||
allow_markup=true;
|
||||
no_actions=true;
|
||||
halign="fill";
|
||||
orientation="vertical";
|
||||
content_halign="fill";
|
||||
insensitive=true;
|
||||
allow_images=true;
|
||||
image_size=40;
|
||||
gtk_dark=true;
|
||||
xdg = {
|
||||
configFile = {
|
||||
"sway/config".source = lib.mkForce (dirs.defaults + /sway/config);
|
||||
"waybar/config".source = lib.mkForce (dirs.defaults + /waybar/config);
|
||||
"waybar/style.css".source = lib.mkForce (dirs.defaults + /waybar/style.css);
|
||||
};
|
||||
style = ''
|
||||
@define-color selected-text #8caaee;
|
||||
@define-color text #c6d0f5;
|
||||
@define-color base #24273a;
|
||||
|
||||
* {
|
||||
font-family: 'Monaspace Krypton 9', monospace;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
window {
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
background-color: @base;
|
||||
opacity: 0.95;
|
||||
}
|
||||
|
||||
#inner-box {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#input {
|
||||
margin: 0;
|
||||
padding: 10px;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#input:focus {
|
||||
outline: none;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#text {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#entry {
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
outline: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#entry:selected #text {
|
||||
color: @selected-text;
|
||||
}
|
||||
|
||||
#entry image {
|
||||
-gtk-icon-transform: scale(0.7);
|
||||
}
|
||||
'';
|
||||
};
|
||||
programs.swaylock.enable = pkgs.stdenv.isLinux;
|
||||
|
||||
|
||||
services.mako = {
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
settings = {
|
||||
text-color="#cad3f5";
|
||||
border-color="#c6d0f5";
|
||||
background-color="#24273a";
|
||||
width=420;
|
||||
height=110;
|
||||
padding=10;
|
||||
border-size=2;
|
||||
font="Monaspace Krypton 9";
|
||||
anchor="top-right";
|
||||
default-timeout=5000;
|
||||
max-icon-size=32;
|
||||
text-color = "#cad3f5";
|
||||
border-color = "#c6d0f5";
|
||||
background-color = "#24273a";
|
||||
width = 420;
|
||||
height = 110;
|
||||
padding = 10;
|
||||
border-size = 2;
|
||||
font = "Monaspace Krypton 9";
|
||||
anchor = "top-right";
|
||||
default-timeout = 5000;
|
||||
max-icon-size = 32;
|
||||
};
|
||||
};
|
||||
programs = {
|
||||
wofi = {
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
settings = {
|
||||
width = 600;
|
||||
height = 350;
|
||||
location = "center";
|
||||
show = "drun";
|
||||
prompt = "Search...";
|
||||
filter_rate = 100;
|
||||
allow_markup = true;
|
||||
no_actions = true;
|
||||
halign = "fill";
|
||||
orientation = "vertical";
|
||||
content_halign = "fill";
|
||||
insensitive = true;
|
||||
allow_images = true;
|
||||
image_size = 40;
|
||||
gtk_dark = true;
|
||||
};
|
||||
style = ''
|
||||
@define-color selected-text #8caaee;
|
||||
@define-color text #c6d0f5;
|
||||
@define-color base #24273a;
|
||||
|
||||
programs.waybar = {
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
systemd.enable = true;
|
||||
* {
|
||||
font-family: 'Monaspace Krypton 9', monospace;
|
||||
font-size: 18px;
|
||||
}
|
||||
|
||||
window {
|
||||
margin: 0px;
|
||||
padding: 20px;
|
||||
background-color: @base;
|
||||
opacity: 0.95;
|
||||
}
|
||||
|
||||
#inner-box {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#outer-box {
|
||||
margin: 0;
|
||||
padding: 20px;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#scroll {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#input {
|
||||
margin: 0;
|
||||
padding: 10px;
|
||||
border: none;
|
||||
background-color: @base;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#input:focus {
|
||||
outline: none;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#text {
|
||||
margin: 5px;
|
||||
border: none;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
#entry {
|
||||
background-color: @base;
|
||||
}
|
||||
|
||||
#entry:selected {
|
||||
outline: none;
|
||||
border: none;
|
||||
}
|
||||
|
||||
#entry:selected #text {
|
||||
color: @selected-text;
|
||||
}
|
||||
|
||||
#entry image {
|
||||
-gtk-icon-transform: scale(0.7);
|
||||
}
|
||||
'';
|
||||
};
|
||||
swaylock.enable = pkgs.stdenv.isLinux;
|
||||
|
||||
waybar = {
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
systemd.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }: {
|
||||
{ lib, pkgs, ghostty, ... }: {
|
||||
programs.alacritty = {
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
settings = {
|
||||
@@ -103,4 +103,9 @@
|
||||
programs.kitty = {
|
||||
enable = false; # TODO: to enable later
|
||||
};
|
||||
|
||||
home.packages = if pkgs.stdenv.isLinux then
|
||||
[ ghostty.packages.${pkgs.system}.default ]
|
||||
else
|
||||
[ ];
|
||||
}
|
||||
|
||||
@@ -1,17 +1,11 @@
|
||||
{
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
aagl,
|
||||
vintage-story,
|
||||
...
|
||||
}: let
|
||||
cfg = config.gaming;
|
||||
in {
|
||||
imports = [
|
||||
aagl.nixosModules.default
|
||||
];
|
||||
|
||||
options.gaming = {
|
||||
steam = {
|
||||
enable = lib.mkEnableOption "Steam gaming platform";
|
||||
@@ -68,14 +62,6 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
vkbasalt = {
|
||||
enable = lib.mkEnableOption "vkBasalt/ReShade/GShade post processing shaders";
|
||||
};
|
||||
|
||||
mangohud = {
|
||||
enable = lib.mkEnableOption "OpenGL/Vulkan overlay tool shown in games presenting FPS, CPU/GPU/memory utilization, load, etc.";
|
||||
};
|
||||
|
||||
lutris = {
|
||||
enable = lib.mkEnableOption "Lutris game manager and launcher";
|
||||
package = lib.mkOption {
|
||||
@@ -122,38 +108,9 @@ in {
|
||||
ffxiv = {
|
||||
enable = lib.mkEnableOption "Final Fantasy XIV and it's accompanied (unofficial) launcher";
|
||||
};
|
||||
|
||||
# TODO: when aagl gets it's unified launcher all finished/in a stable state, transition to that launcher
|
||||
aagl = {
|
||||
anime-game-launcher = {
|
||||
enable = lib.mkEnableOption "Genshin Impact launcher (legacy)";
|
||||
};
|
||||
|
||||
honkers-railway-launcher = {
|
||||
enable = lib.mkEnableOption "Honkai: Star Rail launcher";
|
||||
};
|
||||
|
||||
honkers-launcher = {
|
||||
enable = lib.mkEnableOption "Honkai: Impact 3rd launcher";
|
||||
};
|
||||
|
||||
wavey-launcher = {
|
||||
enable = lib.mkEnableOption "Wuthering Waves launcher";
|
||||
};
|
||||
|
||||
sleepy-launcher = {
|
||||
enable = lib.mkEnableOption "Zenless Zone Zero (ZZZ) launcher";
|
||||
};
|
||||
};
|
||||
|
||||
vintage-story = {
|
||||
enable = lib.mkEnableOption "Vintage Story client and server";
|
||||
};
|
||||
};
|
||||
|
||||
config = let
|
||||
agl = cfg.aagl;
|
||||
in {
|
||||
config = {
|
||||
programs.steam = lib.mkIf cfg.steam.enable {
|
||||
enable = true;
|
||||
remotePlay.openFirewall = cfg.steam.firewall.remotePlay;
|
||||
@@ -182,26 +139,6 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
programs.anime-game-launcher = lib.mkIf agl.anime-game-launcher.enable {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.honkers-railway-launcher = lib.mkIf agl.honkers-railway-launcher.enable {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.honkers-launcher = lib.mkIf agl.honkers-launcher.enable {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.wavey-launcher = lib.mkIf agl.wavey-launcher.enable {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
programs.sleepy-launcher = lib.mkIf agl.sleepy-launcher.enable {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages =
|
||||
(lib.optionals cfg.lutris.enable (
|
||||
[cfg.lutris.package] ++
|
||||
@@ -217,20 +154,6 @@ in {
|
||||
cfg.lutris.extraPackages
|
||||
)) ++
|
||||
(lib.optionals cfg.minecraft.enable [pkgs.prismlauncher]) ++
|
||||
(lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher pkgs.fflogs]) ++
|
||||
(lib.optionals cfg.vintage-story.enable [vintage-story.packages.${pkgs.system}.default]) ++
|
||||
(lib.optionals cfg.vkbasalt.enable [pkgs.vkbasalt pkgs.vkbasalt-cli]) ++
|
||||
(lib.optionals cfg.mangohud.enable [pkgs.mangohud]) ++
|
||||
(lib.optionals (cfg.vkbasalt.enable || cfg.mangohud.enable) [pkgs.goverlay pkgs.mesa-demos pkgs.vulkan-tools]);
|
||||
|
||||
nix.settings = let
|
||||
inherit agl;
|
||||
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)
|
||||
{
|
||||
substituters = [ "https://ezkea.cachix.org" ];
|
||||
trusted-public-keys = [ "ezkea.cachix.org-1:ioBmUbJTZIKsHmWWXPe1FSFbeVe+afhfgqgTSNd34eI=" ];
|
||||
}
|
||||
);
|
||||
(lib.optionals cfg.ffxiv.enable [pkgs.xivlauncher]);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,11 +7,3 @@ Licensed by the Mozilla Public License v2
|
||||
## Synopsis
|
||||
|
||||
This is the directory that holds shared configuration files amongst computers that I own. They are called by the root `flake.nix` file.
|
||||
|
||||
Here's a quick synopsis of each file:
|
||||
|
||||
- core: Sane Nix options that I set for myself
|
||||
- environment: Core packages and environment variables to be set and installed
|
||||
- fonts: Fonts and icons that are to be installed
|
||||
- overlays: Customized packages tailored to my needs
|
||||
- users: Users to be set on my system
|
||||
|
||||
@@ -8,9 +8,6 @@
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"mbedtls-2.28.10"
|
||||
];
|
||||
|
||||
nix.package = pkgs.nix;
|
||||
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
{ ... }: {
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
./core.nix
|
||||
./environment.nix
|
||||
./fonts.nix
|
||||
# ./overlays.nix
|
||||
./users.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,22 +1,20 @@
|
||||
{ lib, pkgs, ... }: {
|
||||
# Common packages that every system will use
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
vim
|
||||
neovim
|
||||
usbutils
|
||||
coreutils
|
||||
lshw
|
||||
systemd
|
||||
dmidecode
|
||||
pciutils
|
||||
nix-ld
|
||||
patchelf
|
||||
htop
|
||||
] ++
|
||||
lib.optionals pkgs.stdenv.isLinux (with pkgs; [
|
||||
systemd
|
||||
lshw
|
||||
dmidecode
|
||||
]) ++
|
||||
lib.optionals pkgs.stdenv.isDarwin (with pkgs; [
|
||||
# nothing here, yet ;)
|
||||
]);
|
||||
];
|
||||
|
||||
# Common environment variables that every system will use
|
||||
environment.variables.EDITOR = "nvim";
|
||||
}
|
||||
|
||||
@@ -6,14 +6,10 @@
|
||||
fonts.packages = with pkgs;
|
||||
[
|
||||
noto-fonts
|
||||
noto-fonts-color-emoji
|
||||
noto-fonts-emoji
|
||||
liberation_ttf
|
||||
noto-fonts-cjk-sans
|
||||
monaspace
|
||||
]
|
||||
++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts);
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
adwaita-icon-theme
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,62 +0,0 @@
|
||||
{ pkgs, ... }: {
|
||||
programs.nix-ld = {
|
||||
enable = true;
|
||||
libraries = with pkgs;
|
||||
[
|
||||
acl
|
||||
attr
|
||||
bzip2
|
||||
dbus
|
||||
expat
|
||||
fontconfig
|
||||
freetype
|
||||
fuse3
|
||||
icu
|
||||
libnotify
|
||||
libsodium
|
||||
libssh
|
||||
libunwind
|
||||
libusb1
|
||||
libuuid
|
||||
nspr
|
||||
nss
|
||||
stdenv.cc.cc
|
||||
util-linux
|
||||
zlib
|
||||
zstd
|
||||
pipewire
|
||||
cups
|
||||
libxkbcommon
|
||||
pango
|
||||
mesa
|
||||
libdrm
|
||||
libglvnd
|
||||
libpulseaudio
|
||||
atk
|
||||
cairo
|
||||
alsa-lib
|
||||
at-spi2-atk
|
||||
at-spi2-core
|
||||
gdk-pixbuf
|
||||
glib
|
||||
gtk3
|
||||
libGL
|
||||
libappindicator-gtk3
|
||||
vulkan-loader
|
||||
xorg.libX11
|
||||
xorg.libXScrnSaver
|
||||
xorg.libXcomposite
|
||||
xorg.libXcursor
|
||||
xorg.libXdamage
|
||||
xorg.libXext
|
||||
xorg.libXfixes
|
||||
xorg.libXi
|
||||
xorg.libXrandr
|
||||
xorg.libXrender
|
||||
xorg.libXtst
|
||||
xorg.libxcb
|
||||
xorg.libxkbfile
|
||||
xorg.libxshmfence
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,128 +0,0 @@
|
||||
final: prev: let
|
||||
rust_latest = prev.rust-bin.stable.latest.default;
|
||||
golang_latest = prev.go-bin.latestStable;
|
||||
buildGoModuleLatest = prev.buildGoModule.override {
|
||||
go = golang_latest;
|
||||
};
|
||||
myRustPlatform = prev.makeRustPlatform {
|
||||
cargo = rust_latest;
|
||||
rustc = rust_latest;
|
||||
};
|
||||
in {
|
||||
lazygitLatest = prev.lazygit.overrideAttrs (_: rec {
|
||||
version = "0.61.0";
|
||||
src = prev.fetchFromGitHub {
|
||||
owner = "jesseduffield";
|
||||
repo = "lazygit";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-G7JulCK9WUVWbp1V7lYuM3fehCdn1cNAJHYjr3aKDvQ=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
subPackages = [ "." ];
|
||||
ldflags = [
|
||||
"-X main.version=${version}"
|
||||
"-X main.buildSource=nix"
|
||||
];
|
||||
});
|
||||
|
||||
atuinLatest = (prev.atuin.override {
|
||||
rustPlatform = myRustPlatform;
|
||||
}).overrideAttrs (oldAttrs: rec {
|
||||
version = "18.13.6";
|
||||
|
||||
src = prev.fetchFromGitHub {
|
||||
owner = "atuinsh";
|
||||
repo = "atuin";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-yAw+ty6FUnFbiRTdAe2QQHzj6uU24fZ/bEIXcHl/thg=";
|
||||
};
|
||||
|
||||
cargoDeps = myRustPlatform.fetchCargoVendor {
|
||||
# name = "atuin-${version}-vendor.tar.gz";
|
||||
inherit src;
|
||||
hash = "sha256-jirVe0+N5+UHZWioj8AipUhawMBameqEJJpa8HPTnfw=";
|
||||
};
|
||||
|
||||
cargoBuildFeatures = [
|
||||
"ai"
|
||||
"client"
|
||||
"clipboard"
|
||||
"daemon"
|
||||
"hex"
|
||||
"sync"
|
||||
];
|
||||
cargoCheckFeatures = cargoBuildFeatures;
|
||||
|
||||
preCheck = (oldAttrs.preCheck or "") + ''
|
||||
export HOME="$TMPDIR"
|
||||
export XDG_CONFIG_HOME="$TMPDIR/.config"
|
||||
export XDG_DATA_HOME="$TMPDIR/.local/share"
|
||||
export XDG_STATE_HOME="$TMPDIR/.local/state"
|
||||
mkdir -p "$XDG_CONFIG_HOME" "$XDG_DATA_HOME" "$XDG_STATE_HOME"
|
||||
'';
|
||||
});
|
||||
|
||||
# k9sLatest = prev.k9s.overrideAttrs (oldAttrs: rec {
|
||||
# version = "0.30.16";
|
||||
# src = prev.fetchFromGitHub {
|
||||
# owner = "derailed";
|
||||
# repo = "k9s";
|
||||
# rev = "v${version}";
|
||||
# hash = "sha256-1z6r6v3n1p6vd2q6n4pl5q3f7q3q7q1p7j5j1k3l4m5n6o7p8q9r";
|
||||
# };
|
||||
# ldflags = [
|
||||
# "-X github.com/derailed/k9s/version.Version=${version}"
|
||||
# "-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"
|
||||
];
|
||||
});
|
||||
}
|
||||
@@ -1,23 +1,30 @@
|
||||
{ lib, pkgs, userName, hostname, ... }:
|
||||
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
userName,
|
||||
hostname,
|
||||
...
|
||||
} @ args: {
|
||||
networking.hostName = hostname;
|
||||
|
||||
users.users."${userName}" = {
|
||||
home = if pkgs.stdenv.isDarwin
|
||||
then "/Users/${userName}"
|
||||
else "/home/${userName}";
|
||||
description = userName;
|
||||
} // lib.optionalAttrs pkgs.stdenv.isLinux {
|
||||
group = "${userName}";
|
||||
isNormalUser = true;
|
||||
};
|
||||
|
||||
users.groups.wyatt = {};
|
||||
nix.settings.trusted-users = [userName];
|
||||
|
||||
security = lib.optionalAttrs pkgs.stdenv.isLinux {
|
||||
sudo.extraRules = [
|
||||
# Don't forget to set a password with ‘passwd’!
|
||||
users.users."${userName}" = lib.mkMerge [
|
||||
{
|
||||
home =
|
||||
if pkgs.stdenv.isDarwin
|
||||
then "/Users/${userName}"
|
||||
else "/home/${userName}";
|
||||
description = userName;
|
||||
}
|
||||
|
||||
(lib.mkIf (pkgs.stdenv.isLinux) {
|
||||
group = "${userName}";
|
||||
isNormalUser = true;
|
||||
})
|
||||
];
|
||||
|
||||
security.sudo = {
|
||||
extraRules = [
|
||||
{
|
||||
groups = [ "wheel" ];
|
||||
commands = [
|
||||
@@ -30,9 +37,7 @@
|
||||
];
|
||||
};
|
||||
|
||||
environment = lib.optionalAttrs pkgs.stdenv.isDarwin {
|
||||
etc."sudoers.d/wheel-nopasswd".text = ''
|
||||
%wheel ALL=(ALL:ALL) NOPASSWD: SETENV: ALL
|
||||
'';
|
||||
};
|
||||
users.groups.wyatt = {};
|
||||
|
||||
nix.settings.trusted-users = [userName];
|
||||
}
|
||||
|
||||
@@ -40,6 +40,7 @@ in {
|
||||
config = mkIf cfg.enable (mkMerge [
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
glxinfo
|
||||
vulkan-tools
|
||||
mesa-demos
|
||||
];
|
||||
@@ -61,9 +62,9 @@ in {
|
||||
|
||||
(mkIf (cfg.gpuVendor == "amd") {
|
||||
services.xserver.videoDrivers = ["amdgpu"];
|
||||
# hardware.graphics.extraPackages = with pkgs; [
|
||||
# amdvlk
|
||||
# ];
|
||||
hardware.graphics.extraPackages = with pkgs; [
|
||||
amdvlk
|
||||
];
|
||||
environment.systemPackages = with pkgs; [
|
||||
radeontop
|
||||
];
|
||||
|
||||
@@ -10,10 +10,6 @@ I like Final Fantasy, alright? Isn't everyone supposed to have a hobby?
|
||||
|
||||
These are named after Final Fantasy VII characters.
|
||||
|
||||
### Servers/Network Infrastructure (bare metal)
|
||||
### Servers/Network Infrastructure
|
||||
|
||||
These are named after Final Fantasy summons. There is some infrastructure missing here like my routers and switches that I also name after summons.
|
||||
|
||||
### Servers/Network Infrastructure (virtual machines)
|
||||
|
||||
These are named after Final Fantasy XIV Online characters (currently, these are named after the Scions of the Seventh Dawn).
|
||||
These are named after Final Fantasy summons.
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
userName,
|
||||
aagl,
|
||||
...
|
||||
}: let
|
||||
flatpakPackages = [
|
||||
@@ -18,7 +18,7 @@
|
||||
in {
|
||||
imports = [
|
||||
(import ../../apps/flatpak.nix {
|
||||
inherit lib pkgs flatpakPackages userName aagl;
|
||||
inherit lib pkgs flatpakPackages;
|
||||
})
|
||||
../../apps/gaming.nix
|
||||
../../apps/appimage.nix
|
||||
@@ -89,10 +89,8 @@ in {
|
||||
localNetworkGameTransfers = true;
|
||||
};
|
||||
};
|
||||
vkbasalt.enable = true;
|
||||
gamemode.enable = true;
|
||||
gamescope.enable = true;
|
||||
mangohud.enable = true;
|
||||
lutris = {
|
||||
enable = true;
|
||||
wine = {
|
||||
@@ -102,12 +100,14 @@ in {
|
||||
compatibility = {
|
||||
protonSupport = true;
|
||||
};
|
||||
extraPackages = with pkgs; [
|
||||
gamemode
|
||||
mangohud
|
||||
];
|
||||
};
|
||||
|
||||
ffxiv.enable = true;
|
||||
minecraft.enable = true;
|
||||
aagl.anime-game-launcher.enable = true;
|
||||
vintage-story.enable = true;
|
||||
};
|
||||
|
||||
# Power management (see ../../pwrMgmt/default.nix)
|
||||
@@ -151,7 +151,7 @@ in {
|
||||
};
|
||||
|
||||
# Add username to groups "wheel" and "video" - more may be added here later
|
||||
users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network" "libvirtd"];
|
||||
users.users.${userName}.extraGroups = ["wheel" "video" "gamemode" "podman" "network"];
|
||||
|
||||
services = {
|
||||
# Enable OpenSSH
|
||||
@@ -191,23 +191,5 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
# sched_ext userspace CPU scheduling stuff - idk
|
||||
services.scx = {
|
||||
enable = true;
|
||||
scheduler = "scx_bpfland";
|
||||
};
|
||||
|
||||
programs.obs-studio = {
|
||||
enable = true;
|
||||
plugins = with pkgs.obs-studio-plugins; [
|
||||
wlrobs
|
||||
obs-backgroundremoval
|
||||
obs-pipewire-audio-capture
|
||||
obs-vaapi #optional AMD hardware acceleration
|
||||
obs-gstreamer
|
||||
obs-vkcapture
|
||||
];
|
||||
};
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
|
||||
@@ -2,6 +2,5 @@
|
||||
imports = [
|
||||
./configuration.nix
|
||||
./hardware-configuration.nix
|
||||
../../common/linker.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -12,24 +12,24 @@
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "thunderbolt" "ahci" "usb_storage" "usbhid" "sd_mod"];
|
||||
boot.initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
|
||||
boot.initrd.kernelModules = [];
|
||||
boot.kernelModules = ["kvm-amd"];
|
||||
boot.extraModulePackages = [];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/f8f39aae-61d2-437d-a8e1-01066bbb3c5c";
|
||||
device = "/dev/disk/by-label/COMPUTER";
|
||||
fsType = "xfs";
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/B72F-087F";
|
||||
device = "/dev/disk/by-label/BOOT";
|
||||
fsType = "vfat";
|
||||
options = ["fmask=0022" "dmask=0022"];
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{device = "/dev/disk/by-uuid/6d6bcc02-20a9-4ae8-9c1e-5124fb2b2634";}
|
||||
{device = "/dev/disk/by-label/SWAP";}
|
||||
];
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
|
||||
@@ -1,121 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
userName,
|
||||
vintage-story,
|
||||
...
|
||||
}: {
|
||||
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 = [
|
||||
vintage-story.packages.${pkgs.system}.default
|
||||
];
|
||||
|
||||
systemd.services.vintagestory-server = {
|
||||
description = "Vintage Story Server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
User = userName;
|
||||
WorkingDirectory = "/home/${userName}";
|
||||
ExecStart = "${vintage-story.packages.${pkgs.system}.default}/bin/vintagestory-server";
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5s";
|
||||
};
|
||||
};
|
||||
|
||||
# Add username to groups "wheel" and "video" - more may be added here later
|
||||
users = {
|
||||
groups.hazel = {};
|
||||
users = {
|
||||
${userName} = {
|
||||
extraGroups = [ "wheel" "network" ];
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com"
|
||||
];
|
||||
};
|
||||
"hazel" = {
|
||||
home = "/home/hazel";
|
||||
group = "hazel";
|
||||
extraGroups = [ "wheel" ];
|
||||
description = "hazel";
|
||||
isNormalUser = true;
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDZnyiQx+k1ygX8E1lsUCB6aTdMc+OKzlZ4admlzknc5ulj0YrtUyqhbNhkNd6pP0QDBFMnXO/rzUvHp4TAyZXKFfpcBCa4zhK97ufymAfvzAjM4vRBqRNcr2n+2iRzxtolbklfjs3ocBQVxXW+pRT5wWxTgK2fcmP2xviDVldr7qte37x5YkQb5SAhYNH8tqJRnuGPe+Q0A3oN4HyHZFnrMq/HlbL5yg/0VKPTtF/IgHf+2dDz5OQQpBx3/N9u/QLwuIm9lkyOG03s0TGmE7up/i0jX2vIqp2BbGSnwdQEL/eSVZx73qQB/J62VFafg13P5yQWDJ33WSoiwhac6bg26HPmPOnCJp5R3c+7jM8N1F1ZbtsKicHSVsRg1RQSree4lchPy7FOPkCuUrB7LNE71mbpOzZNR767S6UAPaXxRw6QNYGBaDqQBwhlU8ZDF5F7EW6ahSUMOI6ECyoibzIMb56xs9osuNeUhB/BcL5sHSFpJjIbdcDLNkEKggrBl6s="
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
services.fail2ban = {
|
||||
enable = true;
|
||||
package = pkgs.fail2ban;
|
||||
maxretry = 5;
|
||||
bantime = "3h";
|
||||
bantime-increment = {
|
||||
enable = true;
|
||||
rndtime = "10m";
|
||||
};
|
||||
};
|
||||
|
||||
services.tailscale = {
|
||||
enable = true;
|
||||
package = pkgs.tailscale;
|
||||
};
|
||||
|
||||
system.stateVersion = "24.11";
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{ ... }: {
|
||||
imports = [
|
||||
./configuration.nix
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
}
|
||||
@@ -1,32 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "ahci" "xhci_pci" "virtio_pci" "virtio_scsi" "sr_mod" "virtio_blk" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/e2e621c1-0090-472a-99d9-61c6a87bd068";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/663E-15C0";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/disk/by-uuid/60104b1a-4285-4dd1-be5e-3c3dee24515a"; }
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
}
|
||||
@@ -1,271 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
userName,
|
||||
...
|
||||
}: let
|
||||
# INFO: set these to your liking
|
||||
matrixFqdn = "chat.wyattjmiller.com";
|
||||
rtcFqdn = "rtc.wyattjmiller.com";
|
||||
|
||||
supportEmail = "wyatt@wyattjmiller.com";
|
||||
livekitKeyFile = "/var/lib/livekit/livekit.key";
|
||||
matrixRegistrationTokenFile = "/var/lib/matrix.key";
|
||||
in {
|
||||
imports = [
|
||||
../../pwrMgmt
|
||||
];
|
||||
|
||||
# Enable flakes for NixOS
|
||||
nix.settings.experimental-features = ["nix-command" "flakes"];
|
||||
|
||||
nix.settings = {
|
||||
download-buffer-size = 134217728; # 128 MiB in bytes
|
||||
};
|
||||
|
||||
# Custom kernel/boot stuff
|
||||
boot.kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
# Set your timezone
|
||||
time.timeZone = "America/Detroit";
|
||||
|
||||
# Enable OpenSSH
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings.PermitRootLogin = "no";
|
||||
settings.PasswordAuthentication = false;
|
||||
};
|
||||
|
||||
# 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;
|
||||
};
|
||||
|
||||
# Firewall settings (fallback, upstream way of doing things)
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
|
||||
allowedTCPPorts = [
|
||||
80
|
||||
443
|
||||
8448
|
||||
3478
|
||||
5349
|
||||
7880
|
||||
7881
|
||||
8080
|
||||
8081
|
||||
];
|
||||
|
||||
allowedUDPPorts = [
|
||||
3478
|
||||
7881
|
||||
8448
|
||||
];
|
||||
|
||||
allowedUDPPortRanges =[
|
||||
# TURN UDP relays
|
||||
{
|
||||
from = 49000;
|
||||
to = 50000;
|
||||
}
|
||||
#
|
||||
{
|
||||
from = 50100;
|
||||
to = 50200;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
# Add username to groups "wheel" and "video" - more may be added here later
|
||||
users.users.${userName} = {
|
||||
openssh.authorizedKeys.keys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFV9eSc9L+aJLoKoexq2f/jb5rpyZnhuGiyhS8YQAbaS wyatt@wyattjmiller.com"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIO4WKvKnnYpTbzZHFEslOKyfiiMqWxhW3AfX6E7ACmYU wyatt@wyattjmiller.com"
|
||||
];
|
||||
extraGroups = ["wheel" "video" "network"];
|
||||
};
|
||||
|
||||
# fail2ban
|
||||
services.fail2ban = {
|
||||
enable = true;
|
||||
package = pkgs.fail2ban;
|
||||
maxretry = 5;
|
||||
bantime = "3h";
|
||||
bantime-increment = {
|
||||
enable = true;
|
||||
rndtime = "10m";
|
||||
};
|
||||
};
|
||||
|
||||
# Matrix server
|
||||
services.matrix-tuwunel = {
|
||||
enable = true;
|
||||
package = pkgs.matrix-tuwunel;
|
||||
settings = {
|
||||
global = {
|
||||
server_name = matrixFqdn;
|
||||
allow_encryption = true;
|
||||
allow_federation = true;
|
||||
allow_registration = true;
|
||||
registration_token = matrixRegistrationTokenFile;
|
||||
allow_unstable_room_versions = false;
|
||||
allow_experimental_room_versions = false;
|
||||
zstd_compression = true;
|
||||
new_user_displayname_suffix = "✨";
|
||||
max_request_size = 1048575600; # 100MB in bytes, for file uploads
|
||||
database_backup_path = "/var/lib/tuwunel/database_backups";
|
||||
database_backups_to_keep = 2;
|
||||
|
||||
address = [
|
||||
"127.0.0.1"
|
||||
"::1"
|
||||
];
|
||||
port = [ 8008 ];
|
||||
|
||||
well_known = {
|
||||
client = "https://${matrixFqdn}";
|
||||
server = "${matrixFqdn}:443";
|
||||
support_email = supportEmail;
|
||||
support_mxid = "@wymiller:${matrixFqdn}";
|
||||
|
||||
rtc_transports = [{
|
||||
type = "livekit";
|
||||
livekit_service_url = "https://${rtcFqdn}";
|
||||
}];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# LiveKit (Matrix RTC)
|
||||
services.livekit = {
|
||||
enable = true;
|
||||
package = pkgs.livekit;
|
||||
openFirewall = true;
|
||||
keyFile = livekitKeyFile;
|
||||
settings = {
|
||||
port = 7880;
|
||||
room.auto_create = true;
|
||||
rtc = {
|
||||
use_external_ip = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# Reverse proxy
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
package = pkgs.caddy;
|
||||
virtualHosts = {
|
||||
"${matrixFqdn}" = {
|
||||
extraConfig = ''
|
||||
encode zstd gzip
|
||||
reverse_proxy localhost:8008
|
||||
'';
|
||||
};
|
||||
"${matrixFqdn}:8448" = {
|
||||
extraConfig = ''
|
||||
encode zstd gzip
|
||||
reverse_proxy localhost:8008
|
||||
'';
|
||||
};
|
||||
"${rtcFqdn}" = {
|
||||
extraConfig = ''
|
||||
@jwt_service {
|
||||
path /sfu/get* /healthz*
|
||||
}
|
||||
|
||||
handle @jwt_service {
|
||||
reverse_proxy localhost:8080
|
||||
}
|
||||
|
||||
handle {
|
||||
reverse_proxy localhost:7880 {
|
||||
header_up Connection "upgrade"
|
||||
header_up Upgrade {http.request.header.Upgrade}
|
||||
}
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
# LiveKit JWT service
|
||||
services.lk-jwt-service = {
|
||||
enable = true;
|
||||
port = 8080;
|
||||
livekitUrl = "wss://rtc.wyattjmiller.com";
|
||||
keyFile = livekitKeyFile;
|
||||
};
|
||||
|
||||
# Generate LiveKit key if it doesn't exist
|
||||
systemd.services = {
|
||||
matrix-registration-token-gen = {
|
||||
before = [ "tuwunel.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = with pkgs; [ coreutils openssl ];
|
||||
script = ''
|
||||
set -eu
|
||||
|
||||
if [ -f "${matrixRegistrationTokenFile}" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
install -d -m 0700 "$(dirname "${matrixRegistrationTokenFile}")"
|
||||
|
||||
TOKEN="$(openssl rand -hex 32)"
|
||||
|
||||
umask 077
|
||||
printf '%s\n' "$TOKEN" > "${matrixRegistrationTokenFile}"
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "root";
|
||||
};
|
||||
};
|
||||
|
||||
livekit-key-gen = {
|
||||
before = [ "lk-jwt-service.service" "livekit.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = with pkgs; [ coreutils openssl ];
|
||||
script = ''
|
||||
set -eu
|
||||
|
||||
if [ -f "${livekitKeyFile}" ]; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
install -d -m 0700 "$(dirname "${livekitKeyFile}")"
|
||||
|
||||
API_KEY="$(openssl rand -hex 8)"
|
||||
API_SECRET="$(openssl rand -hex 32)"
|
||||
|
||||
umask 077
|
||||
printf '%s: %s\n' "$API_KEY" "$API_SECRET" > "${livekitKeyFile}"
|
||||
'';
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = "root";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
system.stateVersion = "25.11";
|
||||
}
|
||||
@@ -1,6 +0,0 @@
|
||||
{ ... }: {
|
||||
imports = [
|
||||
./configuration.nix
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "virtio_pci" "virtio_scsi" "ahci" "sd_mod" ];
|
||||
boot.kernelParams = [ "console=ttyS0,19200n8" ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
boot.loader.grub.extraConfig = ''
|
||||
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1;
|
||||
terminal_input serial;
|
||||
terminal_output serial;
|
||||
'';
|
||||
boot.loader.grub.forceInstall = true;
|
||||
# boot.loader.grub.enable = true;
|
||||
boot.loader.grub.device = "nodev";
|
||||
boot.loader.timeout = 10;
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/sda";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
swapDevices =
|
||||
[ { device = "/dev/sdb"; }
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
}:
|
||||
with lib; {
|
||||
options = {
|
||||
security.sudoers = {
|
||||
security.sudo = {
|
||||
needsPassword = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
|
||||
@@ -21,7 +21,6 @@ in {
|
||||
environment.systemPackages = with pkgs;
|
||||
[
|
||||
scarlett2
|
||||
alsa-scarlett-gui
|
||||
]
|
||||
++ (
|
||||
if cfg.guiSupport
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
# TODO: refactor into module
|
||||
{ pkgs, ...}: {
|
||||
{...}: {
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
helvum
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,16 +1,7 @@
|
||||
{ lib, pkgs, userName, ...}: {
|
||||
{pkgs, ...}: {
|
||||
services.shairport-sync = {
|
||||
enable = pkgs.stdenv.isLinux;
|
||||
openFirewall = pkgs.stdenv.isLinux;
|
||||
# arguments = "-v -o pa";
|
||||
};
|
||||
|
||||
systemd.services.shairport-sync = {
|
||||
serviceConfig = {
|
||||
User = lib.mkForce "${userName}";
|
||||
};
|
||||
environment = {
|
||||
XDG_RUNTIME_DIR = "/run/user/1000";
|
||||
};
|
||||
arguments = "-v -o pw";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,10 +1,4 @@
|
||||
{ pkgs, ... }: {
|
||||
{...}: {
|
||||
virtualisation.libvirtd.enable = true;
|
||||
programs.virt-manager.enable = true;
|
||||
services.qemuGuest.enable = true;
|
||||
services.spice-vdagentd.enable = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
qemu
|
||||
quickemu
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user