Compare commits
11 Commits
nvf-neovim
...
standalone
Author | SHA1 | Date | |
---|---|---|---|
ba66937ee3 | |||
a3c53820b1 | |||
8cbdeb4cdc | |||
bfa957adcd | |||
50d22afef8 | |||
29feb9223e | |||
7bc7749f51 | |||
93052529b8 | |||
faed026258 | |||
3af5061a79 | |||
ddd3fb39e4 |
20
defaults/.neoconf.json
Normal file
20
defaults/.neoconf.json
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
{
|
||||||
|
"neodev": {
|
||||||
|
"library": {
|
||||||
|
"enabled": true,
|
||||||
|
"plugins": true
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"neoconf": {
|
||||||
|
"plugins": {
|
||||||
|
"lua_ls": {
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"lspconfig": {
|
||||||
|
"lua_ls": {
|
||||||
|
"Lua.format.enable": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
7
defaults/.stylua.toml
Normal file
7
defaults/.stylua.toml
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
column_width = 120
|
||||||
|
line_endings = "Unix"
|
||||||
|
indent_type = "Spaces"
|
||||||
|
indent_width = 2
|
||||||
|
quote_style = "AutoPreferDouble"
|
||||||
|
call_parentheses = "None"
|
||||||
|
collapse_simple_statement = "Always"
|
27
defaults/nvim/init.lua
Normal file
27
defaults/nvim/init.lua
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
-- 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"
|
67
defaults/nvim/lazy-lock.json
Normal file
67
defaults/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
{
|
||||||
|
"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" }
|
||||||
|
}
|
17
defaults/nvim/lua/community.lua
Normal file
17
defaults/nvim/lua/community.lua
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
-- 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
|
||||||
|
}
|
32
defaults/nvim/lua/lazy_setup.lua
Normal file
32
defaults/nvim/lua/lazy_setup.lua
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
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]])
|
72
defaults/nvim/lua/plugins/astrocore.lua
Normal file
72
defaults/nvim/lua/plugins/astrocore.lua
Normal file
@@ -0,0 +1,72 @@
|
|||||||
|
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,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
114
defaults/nvim/lua/plugins/astrolsp.lua
Normal file
114
defaults/nvim/lua/plugins/astrolsp.lua
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
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,
|
||||||
|
},
|
||||||
|
}
|
37
defaults/nvim/lua/plugins/astroui.lua
Normal file
37
defaults/nvim/lua/plugins/astroui.lua
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
-- 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 = "⠏",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
18
defaults/nvim/lua/plugins/catppuccin.lua
Normal file
18
defaults/nvim/lua/plugins/catppuccin.lua
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
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,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
5
defaults/nvim/lua/plugins/discord.lua
Normal file
5
defaults/nvim/lua/plugins/discord.lua
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
return {
|
||||||
|
{
|
||||||
|
'andweeb/presence.nvim',
|
||||||
|
}
|
||||||
|
}
|
39
defaults/nvim/lua/plugins/mason.lua
Normal file
39
defaults/nvim/lua/plugins/mason.lua
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
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
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
24
defaults/nvim/lua/plugins/none-ls.lua
Normal file
24
defaults/nvim/lua/plugins/none-ls.lua
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
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,
|
||||||
|
}
|
15
defaults/nvim/lua/plugins/treesitter.lua
Normal file
15
defaults/nvim/lua/plugins/treesitter.lua
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
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
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
85
defaults/nvim/lua/plugins/user.lua
Normal file
85
defaults/nvim/lua/plugins/user.lua
Normal file
@@ -0,0 +1,85 @@
|
|||||||
|
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,
|
||||||
|
},
|
||||||
|
}
|
18
defaults/nvim/lua/polish.lua
Normal file
18
defaults/nvim/lua/polish.lua
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
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",
|
||||||
|
},
|
||||||
|
}
|
6
defaults/nvim/neovim.yml
Normal file
6
defaults/nvim/neovim.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
base: lua51
|
||||||
|
|
||||||
|
globals:
|
||||||
|
vim:
|
||||||
|
any: true
|
8
defaults/nvim/selene.toml
Normal file
8
defaults/nvim/selene.toml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
std = "neovim"
|
||||||
|
|
||||||
|
[rules]
|
||||||
|
global_usage = "allow"
|
||||||
|
if_same_then_else = "allow"
|
||||||
|
incorrect_standard_library_use = "allow"
|
||||||
|
mixed_table = "allow"
|
||||||
|
multiple_statements = "allow"
|
@@ -7,37 +7,41 @@ set $down j
|
|||||||
set $up k
|
set $up k
|
||||||
set $right l
|
set $right l
|
||||||
# Alacritty
|
# Alacritty
|
||||||
set $term alacritty
|
set $term foot
|
||||||
|
|
||||||
# Menu (rofi)
|
# Menu (rofi)
|
||||||
set $menu wofi --term '$term'
|
set $menu wofi --show
|
||||||
|
|
||||||
### Output configuration
|
# ### Output configuration
|
||||||
output DP-3 pos 3840 0 res 1920x1080@59Hz
|
# output DP-3 pos 3840 0 res 1920x1080@59Hz
|
||||||
output HDMI-A-1 pos 0 0 res 1920x1080@59Hz
|
# output HDMI-A-1 pos 0 0 res 1920x1080@59Hz
|
||||||
output DP-2 pos 1920 0 res 1920x1080@60Hz
|
# output DP-2 pos 1920 0 res 1920x1080@60Hz
|
||||||
|
|
||||||
### Wallpaper
|
### Wallpaper
|
||||||
output HDMI-A-1 bg ~/.wallpaper/.wallpaper.png fill
|
output * bg ~/.wallpaper/.wallpaper.png fill
|
||||||
output DP-2 bg ~/.wallpaper/.wallpaper.png fill
|
# output HDMI-A-1 bg ~/.wallpaper/.wallpaper.png fill
|
||||||
output DP-3 bg ~/.wallpaper/.wallpaper.png fill
|
# output DP-2 bg ~/.wallpaper/.wallpaper.png fill
|
||||||
|
# output DP-3 bg ~/.wallpaper/.wallpaper.png fill
|
||||||
|
|
||||||
### Workspace binding
|
### Workspace binding
|
||||||
|
|
||||||
## DP-3 bindings
|
## DP-3 bindings
|
||||||
workspace 1 output DP-2
|
# workspace 1 output DP-2
|
||||||
workspace 2 output DP-2
|
# workspace 2 output DP-2
|
||||||
workspace 4 output DP-2
|
# workspace 4 output DP-2
|
||||||
workspace 5 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-3
|
||||||
|
# workspace 7 output DP-3
|
||||||
|
# workspace 8 output DP-3
|
||||||
|
|
||||||
## HDMI-A-1 bindings
|
## eDP-1 bindings scale
|
||||||
workspace 3 output HDMI-A-1
|
output eDP-1 scale 1.25
|
||||||
workspace 9 output HDMI-A-1
|
|
||||||
|
|
||||||
## DP-2 bindings
|
|
||||||
workspace 6 output DP-3
|
|
||||||
workspace 7 output DP-3
|
|
||||||
workspace 8 output DP-3
|
|
||||||
|
|
||||||
### Colour options
|
### Colour options
|
||||||
set $bg #24283b
|
set $bg #24283b
|
||||||
@@ -215,8 +219,7 @@ font pango:FiraCode: 14px
|
|||||||
### Window formatting
|
### Window formatting
|
||||||
default_border none
|
default_border none
|
||||||
default_border pixel 2
|
default_border pixel 2
|
||||||
gaps inner 0
|
gaps inner 10px
|
||||||
gaps outer 0
|
|
||||||
|
|
||||||
# Applications
|
# Applications
|
||||||
exec_always /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
exec_always /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||||
@@ -229,10 +232,4 @@ set $opacity 1.00
|
|||||||
for_window [class=".*"] opacity $opacity
|
for_window [class=".*"] opacity $opacity
|
||||||
for_window [app_id=".*"] opacity $opacity
|
for_window [app_id=".*"] opacity $opacity
|
||||||
|
|
||||||
# Disable locking when conditions are met
|
|
||||||
for_window [class="streaming_client"] inhibit_idle fullscreen
|
|
||||||
for_window [app_id="firefox"] inhibit_idle fullscreen
|
|
||||||
for_window [app_id="neovide"] inhibit_idle fullscreen
|
|
||||||
|
|
||||||
for_window [title="Beyond All Reason"] inhibit_idle fullscreen
|
|
||||||
include /etc/sway/config.d/*
|
include /etc/sway/config.d/*
|
||||||
|
182
flake.lock
generated
182
flake.lock
generated
@@ -37,43 +37,6 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-compat_2": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"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": "hercules-ci",
|
|
||||||
"repo": "flake-parts",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems"
|
"systems": "systems"
|
||||||
@@ -92,6 +55,24 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"flake-utils_2": {
|
||||||
|
"inputs": {
|
||||||
|
"systems": "systems_2"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1731533236,
|
||||||
|
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"ghostty": {
|
"ghostty": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-compat": "flake-compat",
|
"flake-compat": "flake-compat",
|
||||||
@@ -101,11 +82,11 @@
|
|||||||
"zon2nix": "zon2nix"
|
"zon2nix": "zon2nix"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757737252,
|
"lastModified": 1759330332,
|
||||||
"narHash": "sha256-i0GfdFWNlIgFuVjCnf6/nSTqnNU4PSXb+6NBxGJkspE=",
|
"narHash": "sha256-ZKyOgOOm9Itjbc5xi89xMtw+cnnOFfl79zndPMTzKpU=",
|
||||||
"owner": "ghostty-org",
|
"owner": "ghostty-org",
|
||||||
"repo": "ghostty",
|
"repo": "ghostty",
|
||||||
"rev": "0c63946bdb68080cd5cac0f97622b8509b6776a5",
|
"rev": "a5aff0e347b0016e2735d4ec4b4cdca96b5438d1",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -121,11 +102,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1756679287,
|
"lastModified": 1758463745,
|
||||||
"narHash": "sha256-Xd1vOeY9ccDf5VtVK12yM0FS6qqvfUop8UQlxEB+gTQ=",
|
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "07fc025fe10487dd80f2ec694f1cd790e752d0e8",
|
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -135,21 +116,6 @@
|
|||||||
"type": "github"
|
"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": {
|
"nix-flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1739444422,
|
"lastModified": 1739444422,
|
||||||
@@ -166,6 +132,25 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixgl": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-utils": "flake-utils_2",
|
||||||
|
"nixpkgs": "nixpkgs_3"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1752054764,
|
||||||
|
"narHash": "sha256-Ob/HuUhANoDs+nvYqyTKrkcPXf4ZgXoqMTQoCK0RFgQ=",
|
||||||
|
"owner": "guibou",
|
||||||
|
"repo": "nixGL",
|
||||||
|
"rev": "a8e1ce7d49a149ed70df676785b07f63288f53c5",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "guibou",
|
||||||
|
"repo": "nixGL",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748189127,
|
"lastModified": 1748189127,
|
||||||
@@ -181,24 +166,39 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1755972213,
|
"lastModified": 1758360447,
|
||||||
"narHash": "sha256-VYK7aDAv8H1enXn1ECRHmGbeY6RqLnNwUJkOwloIsko=",
|
"narHash": "sha256-XDY3A83bclygHDtesRoaRTafUd80Q30D/Daf9KSG6bs=",
|
||||||
"rev": "73e96df7cff5783f45e21342a75a1540c4eddce4",
|
"rev": "8eaee110344796db060382e15d3af0a9fc396e0e",
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://releases.nixos.org/nixos/unstable-small/nixos-25.11pre850642.73e96df7cff5/nixexprs.tar.xz"
|
"url": "https://releases.nixos.org/nixos/unstable/nixos-25.11pre864002.8eaee1103447/nixexprs.tar.xz"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"type": "tarball",
|
"type": "tarball",
|
||||||
"url": "https://channels.nixos.org/nixos-unstable-small/nixexprs.tar.xz"
|
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_3": {
|
"nixpkgs_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757545623,
|
"lastModified": 1746378225,
|
||||||
"narHash": "sha256-mCxPABZ6jRjUQx3bPP4vjA68ETbPLNz9V2pk9tO7pRQ=",
|
"narHash": "sha256-OeRSuL8PUjIfL3Q0fTbNJD/fmv1R+K2JAOqWJd3Oceg=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8cd5ce828d5d1d16feff37340171a98fc3bf6526",
|
"rev": "93e8cdce7afc64297cfec447c311470788131cd9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_4": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1759281824,
|
||||||
|
"narHash": "sha256-FIBE1qXv9TKvSNwst6FumyHwCRH3BlWDpfsnqRDCll0=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "5b5be50345d4113d04ba58c444348849f5585b4a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -208,52 +208,14 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1756696532,
|
|
||||||
"narHash": "sha256-6FWagzm0b7I/IGigOv9pr6LL7NQ86mextfE8g8Q6HBg=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "58dcbf1ec551914c3756c267b8b9c8c86baa1b2f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nvf": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat_2",
|
|
||||||
"flake-parts": "flake-parts",
|
|
||||||
"mnw": "mnw",
|
|
||||||
"nixpkgs": "nixpkgs_4",
|
|
||||||
"systems": "systems_2"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1757773905,
|
|
||||||
"narHash": "sha256-lM1K3cJsPQyiSGI3rE/F7u02fA/JYBsinMN49IQCY1s=",
|
|
||||||
"owner": "notashelf",
|
|
||||||
"repo": "nvf",
|
|
||||||
"rev": "7e74ee604a7c18dda21e6a809720ad37ab5bae43",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "notashelf",
|
|
||||||
"repo": "nvf",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"darwin": "darwin",
|
"darwin": "darwin",
|
||||||
"ghostty": "ghostty",
|
"ghostty": "ghostty",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixgl": "nixgl",
|
||||||
"nvf": "nvf"
|
"nixpkgs": "nixpkgs_4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems": {
|
"systems": {
|
||||||
@@ -320,17 +282,17 @@
|
|||||||
"nixpkgs": "nixpkgs_2"
|
"nixpkgs": "nixpkgs_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1757167408,
|
"lastModified": 1758405547,
|
||||||
"narHash": "sha256-4XyJ6fmKd9wgJ7vHUQuULYy5ps2gUgkkDk/PrJb2OPY=",
|
"narHash": "sha256-WgaDgvIZMPvlZcZrpPMjkaalTBnGF2lTG+62znXctWM=",
|
||||||
"owner": "jcollie",
|
"owner": "jcollie",
|
||||||
"repo": "zon2nix",
|
"repo": "zon2nix",
|
||||||
"rev": "dc78177e2ad28d5a407c9e783ee781bd559d7dd5",
|
"rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "jcollie",
|
"owner": "jcollie",
|
||||||
"repo": "zon2nix",
|
"repo": "zon2nix",
|
||||||
"rev": "dc78177e2ad28d5a407c9e783ee781bd559d7dd5",
|
"rev": "bf983aa90ff169372b9fa8c02e57ea75e0b42245",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
20
flake.nix
20
flake.nix
@@ -12,7 +12,7 @@
|
|||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
ghostty.url = "github:ghostty-org/ghostty";
|
ghostty.url = "github:ghostty-org/ghostty";
|
||||||
nvf.url = "github:notashelf/nvf";
|
nixgl.url = "github:guibou/nixGL";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs @ {
|
outputs = inputs @ {
|
||||||
@@ -22,13 +22,13 @@
|
|||||||
darwin,
|
darwin,
|
||||||
home-manager,
|
home-manager,
|
||||||
ghostty,
|
ghostty,
|
||||||
nvf,
|
nixgl,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
userName = "wyatt";
|
userName = "wyatt";
|
||||||
userEmail = "wyatt@wyattjmiller.com";
|
userEmail = "wyatt@wyattjmiller.com";
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit userName userEmail ghostty nvf;
|
inherit userName userEmail ghostty;
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
meta = import ./meta;
|
meta = import ./meta;
|
||||||
@@ -59,7 +59,7 @@
|
|||||||
nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem {
|
nixosConfigurations."cloud" = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
inherit userName userEmail;
|
inherit userName userEmail ghostty;
|
||||||
hostname = "cloud";
|
hostname = "cloud";
|
||||||
role = "devel";
|
role = "devel";
|
||||||
};
|
};
|
||||||
@@ -131,5 +131,17 @@
|
|||||||
# }
|
# }
|
||||||
# ];
|
# ];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# For anyone running home-manager standalone
|
||||||
|
homeConfigurations.${userName} = home-manager.lib.homeManagerConfiguration {
|
||||||
|
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||||
|
modules = [
|
||||||
|
./home
|
||||||
|
];
|
||||||
|
# Optionally, pass specialArgs if needed
|
||||||
|
extraSpecialArgs = extraSpecialArgs // {
|
||||||
|
inherit nixgl;
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -38,14 +38,14 @@
|
|||||||
(createChromiumExtension {
|
(createChromiumExtension {
|
||||||
# ublock origin
|
# ublock origin
|
||||||
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
|
id = "cjpalhdlnbpafiamejdnhcphjbkeiagm";
|
||||||
sha256 = "sha256:0pdh1v0vx1d5vnl1zh7nbk6j1fh4k4hhwp1ljs203icn306lahsn";
|
sha256 = "sha256:054kqrai2kd89bzc5c3x17rjfdil2zzxrxrg65vaywmvm77y7kmn";
|
||||||
# sha256 = lib.fakeSha256;
|
# sha256 = lib.fakeSha256;
|
||||||
version = "1.64.0";
|
version = "1.64.0";
|
||||||
})
|
})
|
||||||
(createChromiumExtension {
|
(createChromiumExtension {
|
||||||
# bitwarden
|
# bitwarden
|
||||||
id = "nngceckbapebfimnlniiiahkandclblb";
|
id = "nngceckbapebfimnlniiiahkandclblb";
|
||||||
sha256 = "sha256:0jxk3cqmgd5qj8hnw7s0k5s4bfrcmr0w0rckp3x0bmng07azw4gi";
|
sha256 = "sha256:02cscadjqbfx3a5bky1zc38pxymzgndb9h3wing3pb0fwm30yrzd";
|
||||||
# sha256 = lib.fakeSha256;
|
# sha256 = lib.fakeSha256;
|
||||||
version = "2025.5.0";
|
version = "2025.5.0";
|
||||||
})
|
})
|
||||||
|
@@ -4,7 +4,6 @@
|
|||||||
userName,
|
userName,
|
||||||
userEmail,
|
userEmail,
|
||||||
ghostty,
|
ghostty,
|
||||||
nvf,
|
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
# Have a file sturcture that holds all the configuration files that can't be configured by Nix
|
# Have a file sturcture that holds all the configuration files that can't be configured by Nix
|
||||||
@@ -14,7 +13,7 @@
|
|||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
# Import sub modules
|
# Import sub modules
|
||||||
imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty nvf;}) [
|
imports = map (module: import module {inherit lib pkgs dirs userName userEmail ghostty;}) [
|
||||||
./atuin.nix
|
./atuin.nix
|
||||||
./shell.nix
|
./shell.nix
|
||||||
./packages
|
./packages
|
||||||
@@ -28,6 +27,7 @@ in {
|
|||||||
./browser.nix
|
./browser.nix
|
||||||
./zellij.nix
|
./zellij.nix
|
||||||
./bat.nix
|
./bat.nix
|
||||||
|
./fonts.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home Manager needs a bit of information about you and the
|
# Home Manager needs a bit of information about you and the
|
||||||
@@ -40,9 +40,9 @@ in {
|
|||||||
else "/home/${userName}";
|
else "/home/${userName}";
|
||||||
|
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
XDG_CURRENT_DESKTOP = "sway";
|
XDG_CURRENT_DESKTOP = "gnome";
|
||||||
XDG_SESSION_TYPE = "wayland";
|
XDG_SESSION_TYPE = "wayland";
|
||||||
XDG_SESSION_DESKTOP="sway";
|
XDG_SESSION_DESKTOP="gnome";
|
||||||
XDG_CONFIG_HOME = "$HOME/.config";
|
XDG_CONFIG_HOME = "$HOME/.config";
|
||||||
XDG_CACHE_HOME = "$HOME/.cache";
|
XDG_CACHE_HOME = "$HOME/.cache";
|
||||||
XDG_DATA_HOME = "$HOME/.local/share";
|
XDG_DATA_HOME = "$HOME/.local/share";
|
||||||
|
16
home/fonts.nix
Normal file
16
home/fonts.nix
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
fonts.fontconfig.enable = true;
|
||||||
|
home.packages = with pkgs;
|
||||||
|
[
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-emoji
|
||||||
|
liberation_ttf
|
||||||
|
noto-fonts-cjk-sans
|
||||||
|
monaspace
|
||||||
|
]
|
||||||
|
++ builtins.filter lib.attrsets.isDerivation (builtins.attrValues pkgs.nerd-fonts);
|
||||||
|
}
|
@@ -15,7 +15,7 @@
|
|||||||
extraConfig = {
|
extraConfig = {
|
||||||
init.defaultBranch = "master";
|
init.defaultBranch = "master";
|
||||||
push.autoSetupRemote = true;
|
push.autoSetupRemote = true;
|
||||||
pull.merge = true;
|
pull.rebase = false;
|
||||||
merge.tool = "nvimdiff";
|
merge.tool = "nvimdiff";
|
||||||
mergetool.keepBackup = false;
|
mergetool.keepBackup = false;
|
||||||
};
|
};
|
||||||
|
376
home/neovim.nix
376
home/neovim.nix
@@ -1,372 +1,14 @@
|
|||||||
{
|
{dirs, ...}: {
|
||||||
nvf,
|
programs.neovim = {
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
imports = [
|
|
||||||
nvf.homeManagerModules.default
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.nvf = {
|
|
||||||
# enable nvf neovim distribution
|
|
||||||
enable = true;
|
enable = true;
|
||||||
|
defaultEditor = true;
|
||||||
|
vimAlias = true;
|
||||||
|
};
|
||||||
|
|
||||||
# set stuff!
|
xdg.configFile = {
|
||||||
settings = {
|
nvim = {
|
||||||
vim = {
|
onChange = "nvim --headless -c 'if exists(\":LuaCacheClear\") | :LuaCacheClear' +quitall";
|
||||||
# setting alias to _always_ use neovim
|
source = dirs.defaults + /nvim;
|
||||||
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
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -39,9 +39,13 @@
|
|||||||
babelfish
|
babelfish
|
||||||
|
|
||||||
# language-specific package managers
|
# language-specific package managers
|
||||||
nodejs
|
# nodejs
|
||||||
|
fnm
|
||||||
cargo
|
cargo
|
||||||
python3
|
python3
|
||||||
|
python312Packages.gyp
|
||||||
|
node-gyp
|
||||||
|
node-pre-gyp
|
||||||
|
|
||||||
# nix specific stuff
|
# nix specific stuff
|
||||||
nixd
|
nixd
|
||||||
|
@@ -5,16 +5,19 @@
|
|||||||
}: {
|
}: {
|
||||||
home.packages = lib.mkIf pkgs.stdenv.isLinux (with pkgs; [
|
home.packages = lib.mkIf pkgs.stdenv.isLinux (with pkgs; [
|
||||||
imv
|
imv
|
||||||
betterdiscordctl
|
# betterdiscordctl
|
||||||
vesktop
|
# vesktop
|
||||||
xdg-utils
|
xdg-utils
|
||||||
mcrcon
|
|
||||||
xfce.thunar
|
xfce.thunar
|
||||||
pavucontrol
|
pavucontrol
|
||||||
godot
|
# godot
|
||||||
aseprite
|
# aseprite
|
||||||
gpu-screen-recorder
|
gpu-screen-recorder
|
||||||
gpu-screen-recorder-gtk
|
gpu-screen-recorder-gtk
|
||||||
# ungoogled-chromium
|
# ungoogled-chromium
|
||||||
|
playerctl
|
||||||
|
light
|
||||||
|
brightnessctl
|
||||||
|
wttrbar
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
{pkgs, ...}: {
|
{pkgs, lib, ...}: {
|
||||||
programs.fish = {
|
programs.fish = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# initExtra = ''
|
shellInit = ''
|
||||||
# export PATH="$PATH:$HOME/bin:$HOME/.local/bin:$HOME/go/bin"
|
fnm env --use-on-cd --shell fish | source
|
||||||
# '';
|
'';
|
||||||
|
|
||||||
shellAliases = {
|
shellAliases = {
|
||||||
# ls aliases
|
# ls aliases
|
||||||
@@ -52,6 +52,27 @@
|
|||||||
'';
|
'';
|
||||||
onEvent = "fish_greeting";
|
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
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
242
home/sway.nix
242
home/sway.nix
@@ -6,6 +6,14 @@
|
|||||||
dirs = {
|
dirs = {
|
||||||
defaults = ../defaults;
|
defaults = ../defaults;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Derived from subprojects/cava.wrap
|
||||||
|
libcava.src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "LukashonakV";
|
||||||
|
repo = "cava";
|
||||||
|
rev = "0.10.3";
|
||||||
|
hash = "sha256-ZDFbI69ECsUTjbhlw2kHRufZbQMu+FQSMmncCJ5pagg=";
|
||||||
|
};
|
||||||
in {
|
in {
|
||||||
wayland.windowManager.sway = {
|
wayland.windowManager.sway = {
|
||||||
enable = pkgs.stdenv.isLinux;
|
enable = pkgs.stdenv.isLinux;
|
||||||
@@ -17,131 +25,127 @@ in {
|
|||||||
gtk = true;
|
gtk = 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);
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
|
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;
|
||||||
|
};
|
||||||
|
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 = {
|
services.mako = {
|
||||||
enable = pkgs.stdenv.isLinux;
|
enable = pkgs.stdenv.isLinux;
|
||||||
settings = {
|
settings = {
|
||||||
text-color = "#cad3f5";
|
text-color="#cad3f5";
|
||||||
border-color = "#c6d0f5";
|
border-color="#c6d0f5";
|
||||||
background-color = "#24273a";
|
background-color="#24273a";
|
||||||
width = 420;
|
width=420;
|
||||||
height = 110;
|
height=110;
|
||||||
padding = 10;
|
padding=10;
|
||||||
border-size = 2;
|
border-size=2;
|
||||||
font = "Monaspace Krypton 9";
|
font="Monaspace Krypton 9";
|
||||||
anchor = "top-right";
|
anchor="top-right";
|
||||||
default-timeout = 5000;
|
default-timeout=5000;
|
||||||
max-icon-size = 32;
|
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 = {
|
||||||
font-family: 'Monaspace Krypton 9', monospace;
|
enable = pkgs.stdenv.isLinux;
|
||||||
font-size: 18px;
|
systemd.enable = true;
|
||||||
}
|
|
||||||
|
|
||||||
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;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@@ -100,9 +100,52 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
programs.kitty = {
|
|
||||||
enable = false; # TODO: to enable later
|
programs.foot = {
|
||||||
};
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
main = {
|
||||||
|
font = "Monaspace Argon:size=11";
|
||||||
|
};
|
||||||
|
colors = {
|
||||||
|
alpha = 0.9;
|
||||||
|
|
||||||
|
cursor = "11111b f5e0dc";
|
||||||
|
foreground = "cdd6f4";
|
||||||
|
background = "1e1e2e";
|
||||||
|
|
||||||
|
regular0 = "45475a";
|
||||||
|
regular1 = "f38ba8";
|
||||||
|
regular2 = "a6e3a1";
|
||||||
|
regular3 = "f9e2af";
|
||||||
|
regular4 = "89b4fa";
|
||||||
|
regular5 = "f5c2e7";
|
||||||
|
regular6 = "94e2d5";
|
||||||
|
regular7 = "bac2de";
|
||||||
|
|
||||||
|
bright0 = "585b70";
|
||||||
|
bright1 = "f38ba8";
|
||||||
|
bright2 = "a6e3a1";
|
||||||
|
bright3 = "f9e2af";
|
||||||
|
bright4 = "89b4fa";
|
||||||
|
bright5 = "f5c2e7";
|
||||||
|
bright6 = "94e2d5";
|
||||||
|
bright7 = "a6adc8";
|
||||||
|
|
||||||
|
"16" = "fab387";
|
||||||
|
"17" = "f5e0dc";
|
||||||
|
|
||||||
|
selection-foreground = "cdd6f4";
|
||||||
|
selection-background = "414356";
|
||||||
|
|
||||||
|
search-box-no-match = "11111b f38ba8";
|
||||||
|
search-box-match = "cdd6f4 313244";
|
||||||
|
|
||||||
|
jump-labels = "11111b fab387";
|
||||||
|
urls = "89b4fa";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
home.packages = if pkgs.stdenv.isLinux then
|
home.packages = if pkgs.stdenv.isLinux then
|
||||||
[ ghostty.packages.${pkgs.system}.default ]
|
[ ghostty.packages.${pkgs.system}.default ]
|
||||||
|
@@ -1,20 +1,23 @@
|
|||||||
{ lib, pkgs, ... }: {
|
{ lib, pkgs, ... }: {
|
||||||
# Common packages that every system will use
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
git
|
git
|
||||||
vim
|
vim
|
||||||
neovim
|
neovim
|
||||||
usbutils
|
usbutils
|
||||||
coreutils
|
coreutils
|
||||||
lshw
|
|
||||||
systemd
|
|
||||||
dmidecode
|
|
||||||
pciutils
|
pciutils
|
||||||
nix-ld
|
|
||||||
patchelf
|
patchelf
|
||||||
htop
|
htop
|
||||||
];
|
] ++
|
||||||
|
lib.optionals pkgs.stdenv.isLinux (with pkgs; [
|
||||||
|
systemd
|
||||||
|
lshw
|
||||||
|
dmidecode
|
||||||
|
nix-ld
|
||||||
|
]) ++
|
||||||
|
lib.optionals pkgs.stdenv.isDarwin (with pkgs; [
|
||||||
|
# nothing here, yet ;)
|
||||||
|
]);
|
||||||
|
|
||||||
# Common environment variables that every system will use
|
|
||||||
environment.variables.EDITOR = "nvim";
|
environment.variables.EDITOR = "nvim";
|
||||||
}
|
}
|
||||||
|
@@ -1,30 +1,23 @@
|
|||||||
|
{ lib, pkgs, userName, hostname, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
userName,
|
|
||||||
hostname,
|
|
||||||
...
|
|
||||||
} @ args: {
|
|
||||||
networking.hostName = hostname;
|
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];
|
||||||
|
|
||||||
# Don't forget to set a password with ‘passwd’!
|
security = lib.optionalAttrs pkgs.stdenv.isLinux {
|
||||||
users.users."${userName}" = lib.mkMerge [
|
sudo.extraRules = [
|
||||||
{
|
|
||||||
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" ];
|
groups = [ "wheel" ];
|
||||||
commands = [
|
commands = [
|
||||||
@@ -37,7 +30,9 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
users.groups.wyatt = {};
|
environment = lib.optionalAttrs pkgs.stdenv.isDarwin {
|
||||||
|
etc."sudoers.d/wheel-nopasswd".text = ''
|
||||||
nix.settings.trusted-users = [userName];
|
%wheel ALL=(ALL:ALL) NOPASSWD: SETENV: ALL
|
||||||
|
'';
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
@@ -5,7 +5,7 @@
|
|||||||
}:
|
}:
|
||||||
with lib; {
|
with lib; {
|
||||||
options = {
|
options = {
|
||||||
security.sudo = {
|
security.sudoers = {
|
||||||
needsPassword = mkOption {
|
needsPassword = mkOption {
|
||||||
type = types.bool;
|
type = types.bool;
|
||||||
default = true;
|
default = true;
|
||||||
|
@@ -21,6 +21,7 @@ in {
|
|||||||
environment.systemPackages = with pkgs;
|
environment.systemPackages = with pkgs;
|
||||||
[
|
[
|
||||||
scarlett2
|
scarlett2
|
||||||
|
alsa-scarlett-gui
|
||||||
]
|
]
|
||||||
++ (
|
++ (
|
||||||
if cfg.guiSupport
|
if cfg.guiSupport
|
||||||
|
Reference in New Issue
Block a user