mirror of
https://github.com/genebean/dots.git
synced 2026-03-27 01:17:42 -04:00
Restructure modules/shared and update all imports
- Rename modules/hosts/common to modules/shared - Split shared into home/general, home/linux, and nixos subdirectories - Update all import paths in lib/ and modules/hosts/ - Fix hardcoded /Users/ path to use config.home.homeDirectory - Update .sops.yaml path for secrets
This commit is contained in:
parent
14fbadd9aa
commit
5047d93b86
77 changed files with 44 additions and 359 deletions
4
modules/shared/files/Microsoft.PowerShell_profile.ps1
Normal file
4
modules/shared/files/Microsoft.PowerShell_profile.ps1
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# With PowerCLI installed via ps-get this isn't needed anymore
|
||||
#Get-Module -ListAvailable PowerCLI.* | Import-Module
|
||||
|
||||
oh-my-posh init pwsh --config ~/.config/oh-my-posh/config.json | Invoke-Expression
|
||||
31
modules/shared/files/nvim/lua/config/vim-options.lua
Normal file
31
modules/shared/files/nvim/lua/config/vim-options.lua
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
vim.g.mapleader = " "
|
||||
vim.g.maplocalleader = " "
|
||||
|
||||
-- make sure vim know I always have a dark terminal
|
||||
vim.opt.background = "dark"
|
||||
|
||||
-- use spaces for tabs and whatnot
|
||||
vim.opt.expandtab = true
|
||||
vim.opt.tabstop = 2
|
||||
vim.opt.softtabstop = 2
|
||||
vim.opt.shiftwidth = 2
|
||||
vim.opt.shiftround = true
|
||||
|
||||
-- make sure all the mouse stuff is on.
|
||||
-- pressing alt to hightlight + copy/paste works like it does outside of nvim
|
||||
vim.opt.mouse = "a"
|
||||
|
||||
vim.keymap.set("n", "<leader>h", ":nohlsearch<CR>")
|
||||
|
||||
vim.wo.relativenumber = true
|
||||
|
||||
vim.o.termguicolors = true
|
||||
|
||||
-- Tips from https://github.com/folke/edgy.nvim
|
||||
-- views can only be fully collapsed with the global statusline
|
||||
vim.opt.laststatus = 3
|
||||
|
||||
-- Default splitting will cause your main splits to jump when opening an edgebar.
|
||||
-- To prevent this, set `splitkeep` to either `screen` or `topline`.
|
||||
vim.opt.splitkeep = "screen"
|
||||
|
||||
14
modules/shared/files/nvim/lua/disabled/barbar.lua
Normal file
14
modules/shared/files/nvim/lua/disabled/barbar.lua
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
return {'romgrk/barbar.nvim',
|
||||
dependencies = {
|
||||
'lewis6991/gitsigns.nvim', -- OPTIONAL: for git status
|
||||
'nvim-tree/nvim-web-devicons', -- OPTIONAL: for file icons
|
||||
},
|
||||
init = function() vim.g.barbar_auto_setup = false end,
|
||||
opts = {
|
||||
-- lazy.nvim will automatically call setup for you. put your options here, anything missing will use the default:
|
||||
-- animation = true,
|
||||
-- insert_at_start = true,
|
||||
-- …etc.
|
||||
},
|
||||
}
|
||||
|
||||
9
modules/shared/files/nvim/lua/disabled/cheatsheet.lua
Normal file
9
modules/shared/files/nvim/lua/disabled/cheatsheet.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
return {
|
||||
"sudormrfbin/cheatsheet.nvim",
|
||||
dependencies = {
|
||||
'nvim-telescope/telescope.nvim',
|
||||
'nvim-lua/popup.nvim',
|
||||
'nvim-lua/plenary.nvim',
|
||||
},
|
||||
config = true,
|
||||
}
|
||||
11
modules/shared/files/nvim/lua/disabled/nvim-tree.lua
Normal file
11
modules/shared/files/nvim/lua/disabled/nvim-tree.lua
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
return{
|
||||
"nvim-tree/nvim-tree.lua",
|
||||
config = function ()
|
||||
vim.g.loaded_netrw = 1
|
||||
vim.g.loaded_netrwPlugin = 1
|
||||
|
||||
require('nvim-tree').setup()
|
||||
|
||||
vim.keymap.set('n', '<c-n>', ':NvimTreeFindFileToggle<CR>')
|
||||
end
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
return {
|
||||
"Mofiqul/dracula.nvim",
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
vim.cmd.colorscheme("dracula")
|
||||
end,
|
||||
}
|
||||
11
modules/shared/files/nvim/lua/disabled/themes/gruvbox.lua
Normal file
11
modules/shared/files/nvim/lua/disabled/themes/gruvbox.lua
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
return {
|
||||
"ellisonleao/gruvbox.nvim",
|
||||
priority = 1000 ,
|
||||
config = function ()
|
||||
require("gruvbox").setup()
|
||||
|
||||
vim.o.background = "dark"
|
||||
vim.o.termguicolors = true
|
||||
vim.cmd.colorscheme "gruvbox"
|
||||
end
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
return {
|
||||
"rebelot/kanagawa.nvim",
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
vim.cmd.colorscheme "kanagawa"
|
||||
end,
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
return {
|
||||
"nyoom-engineering/oxocarbon.nvim",
|
||||
config = function ()
|
||||
vim.o.background = "dark"
|
||||
vim.o.termguicolors = true
|
||||
vim.cmd.colorscheme "oxocarbon"
|
||||
end
|
||||
}
|
||||
10
modules/shared/files/nvim/lua/disabled/themes/tokyonight.lua
Normal file
10
modules/shared/files/nvim/lua/disabled/themes/tokyonight.lua
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
return {
|
||||
-- the colorscheme should be available when starting Neovim
|
||||
"folke/tokyonight.nvim",
|
||||
lazy = false, -- make sure we load this during startup if it is your main colorscheme
|
||||
priority = 1000, -- make sure to load this before all the other start plugins
|
||||
config = function()
|
||||
-- load the colorscheme here
|
||||
vim.cmd.colorscheme "tokyonight-storm"
|
||||
end,
|
||||
}
|
||||
33
modules/shared/files/nvim/lua/plugins/alpha.lua
Normal file
33
modules/shared/files/nvim/lua/plugins/alpha.lua
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
return {
|
||||
"goolord/alpha-nvim",
|
||||
dependencies = {
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
},
|
||||
|
||||
config = function()
|
||||
local alpha = require("alpha")
|
||||
local dashboard = require("alpha.themes.startify")
|
||||
|
||||
dashboard.section.header.val = {
|
||||
[[ ]],
|
||||
[[ ]],
|
||||
[[ ]],
|
||||
[[ ]],
|
||||
[[ ]],
|
||||
[[ ████ ██████ █████ ██ ]],
|
||||
[[ ███████████ █████ ]],
|
||||
[[ █████████ ███████████████████ ███ ███████████ ]],
|
||||
[[ █████████ ███ █████████████ █████ ██████████████ ]],
|
||||
[[ █████████ ██████████ █████████ █████ █████ ████ █████ ]],
|
||||
[[ ███████████ ███ ███ █████████ █████ █████ ████ █████ ]],
|
||||
[[ ██████ █████████████████████ ████ █████ █████ ████ ██████ ]],
|
||||
[[ ]],
|
||||
[[ ]],
|
||||
[[ ]],
|
||||
}
|
||||
|
||||
alpha.setup(dashboard.opts)
|
||||
|
||||
vim.cmd('autocmd User AlphaReady Neotree show')
|
||||
end,
|
||||
}
|
||||
49
modules/shared/files/nvim/lua/plugins/bufferline.lua
Normal file
49
modules/shared/files/nvim/lua/plugins/bufferline.lua
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
return {
|
||||
"akinsho/bufferline.nvim",
|
||||
after = "catppuccin",
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
version = "*",
|
||||
config = function()
|
||||
-- Get the color pallet of the theme flavor I am using
|
||||
local color_palette = require("catppuccin.palettes").get_palette("frappe")
|
||||
|
||||
-- Set variables to use the color they'd use if the background was not transparent
|
||||
local bg_highlight = color_palette.crust
|
||||
local separator_fg = color_palette.crust
|
||||
|
||||
require("bufferline").setup({
|
||||
highlights = require("catppuccin.groups.integrations.bufferline").get({
|
||||
-- Copy settings from Catppuccin bufferline integration and override just the
|
||||
-- part that is needed to make it look like it would if the background was not
|
||||
-- set to transparent in catppuccin.lua
|
||||
-- https://github.com/catppuccin/nvim/blob/main/lua/catppuccin/groups/integrations/bufferline.lua
|
||||
custom = {
|
||||
all = {
|
||||
-- this makes the background behind the tabs contrast with the tabs themselves
|
||||
fill = { bg = bg_highlight },
|
||||
|
||||
-- separators
|
||||
-- I am only overriding the foreground as that is what makes the tabs look correct
|
||||
separator = { fg = separator_fg },
|
||||
separator_visible = { fg = separator_fg },
|
||||
separator_selected = { fg = separator_fg },
|
||||
offset_separator = { fg = separator_fg },
|
||||
},
|
||||
},
|
||||
}),
|
||||
options = {
|
||||
mode = "buffers",
|
||||
separator_style = "slant",
|
||||
offsets = {
|
||||
{
|
||||
filetype = "neo-tree",
|
||||
text = "File Explorer",
|
||||
highlight = "Directory",
|
||||
separator = true,
|
||||
},
|
||||
},
|
||||
diagnostics = "nvim_lsp",
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
57
modules/shared/files/nvim/lua/plugins/catppuccin.lua
Normal file
57
modules/shared/files/nvim/lua/plugins/catppuccin.lua
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
return {
|
||||
"catppuccin/nvim",
|
||||
name = "catppuccin",
|
||||
flavour = "frappe", -- latte, frappe, macchiato, mocha
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
require("catppuccin").setup({
|
||||
transparent_background = true,
|
||||
color_overrides = {
|
||||
frappe = {
|
||||
base = "#07042B",
|
||||
mantle = "#0c0746",
|
||||
crust = "#10095d",
|
||||
rosewater = "#FF7F7F", -- used for cursor
|
||||
},
|
||||
},
|
||||
custom_highlights = function(colors)
|
||||
return {
|
||||
Comment = { fg = colors.subtext0 },
|
||||
LineNr = { fg = colors.subtext0 },
|
||||
}
|
||||
end,
|
||||
})
|
||||
vim.cmd.colorscheme("catppuccin")
|
||||
end,
|
||||
|
||||
--[[
|
||||
-- original palette from frappe:
|
||||
rosewater = "#f2d5cf",
|
||||
flamingo = "#eebebe",
|
||||
pink = "#f4b8e4",
|
||||
mauve = "#ca9ee6",
|
||||
red = "#e78284",
|
||||
maroon = "#ea999c",
|
||||
peach = "#ef9f76",
|
||||
yellow = "#e5c890",
|
||||
green = "#a6d189",
|
||||
teal = "#81c8be",
|
||||
sky = "#99d1db",
|
||||
sapphire = "#85c1dc",
|
||||
blue = "#8caaee",
|
||||
lavender = "#babbf1",
|
||||
text = "#c6d0f5",
|
||||
subtext1 = "#b5bfe2",
|
||||
subtext0 = "#a5adce",
|
||||
overlay2 = "#949cbb",
|
||||
overlay1 = "#838ba7",
|
||||
overlay0 = "#737994",
|
||||
surface2 = "#626880",
|
||||
surface1 = "#51576d",
|
||||
surface0 = "#414559",
|
||||
base = "#303446",
|
||||
mantle = "#292c3c",
|
||||
crust = "#232634",
|
||||
--]]
|
||||
}
|
||||
49
modules/shared/files/nvim/lua/plugins/completions.lua
Normal file
49
modules/shared/files/nvim/lua/plugins/completions.lua
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
return {
|
||||
{
|
||||
"hrsh7th/nvim-cmp",
|
||||
config = function()
|
||||
local cmp = require("cmp")
|
||||
require("luasnip.loaders.from_vscode").lazy_load()
|
||||
|
||||
cmp.setup({
|
||||
snippet = {
|
||||
expand = function(args)
|
||||
require("luasnip").lsp_expand(args.body)
|
||||
end,
|
||||
},
|
||||
window = {
|
||||
completion = cmp.config.window.bordered(),
|
||||
documentation = cmp.config.window.bordered(),
|
||||
},
|
||||
mapping = cmp.mapping.preset.insert({
|
||||
["<C-b>"] = cmp.mapping.scroll_docs(-4),
|
||||
["<C-f>"] = cmp.mapping.scroll_docs(4),
|
||||
["<C-Space>"] = cmp.mapping.complete(),
|
||||
["<C-e>"] = cmp.mapping.abort(),
|
||||
["<CR>"] = cmp.mapping.confirm({ select = true }),
|
||||
}),
|
||||
sources = cmp.config.sources({
|
||||
{
|
||||
name = "nvim_lsp",
|
||||
entry_filter = function(entry)
|
||||
return require("cmp.types").lsp.CompletionItemKind[entry:get_kind()] ~= "Text"
|
||||
end,
|
||||
},
|
||||
{ name = "luasnip" },
|
||||
}, {
|
||||
{ name = "buffer" },
|
||||
}),
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"hrsh7th/cmp-nvim-lsp",
|
||||
},
|
||||
{
|
||||
"L3MON4D3/LuaSnip",
|
||||
dependencies = {
|
||||
"saadparwaiz1/cmp_luasnip",
|
||||
"rafamadriz/friendly-snippets",
|
||||
},
|
||||
},
|
||||
}
|
||||
65
modules/shared/files/nvim/lua/plugins/edgy.lua
Normal file
65
modules/shared/files/nvim/lua/plugins/edgy.lua
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
return {
|
||||
"folke/edgy.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
exit_when_last = false,
|
||||
bottom = {
|
||||
-- toggleterm / lazyterm at the bottom with a height of 40% of the screen
|
||||
{
|
||||
ft = "toggleterm",
|
||||
size = { height = 0.2 },
|
||||
-- exclude floating windows
|
||||
filter = function(buf, win)
|
||||
return vim.api.nvim_win_get_config(win).relative == ""
|
||||
end,
|
||||
},
|
||||
"Trouble",
|
||||
{ ft = "qf", title = "QuickFix" },
|
||||
{
|
||||
ft = "help",
|
||||
size = { height = 20 },
|
||||
-- only show help buffers
|
||||
filter = function(buf)
|
||||
return vim.bo[buf].buftype == "help"
|
||||
end,
|
||||
},
|
||||
{ ft = "spectre_panel", size = { height = 0.4 } },
|
||||
},
|
||||
left = {
|
||||
-- Neo-tree filesystem always takes half the screen height
|
||||
{
|
||||
title = "Neo-Tree",
|
||||
ft = "neo-tree",
|
||||
filter = function(buf)
|
||||
return vim.b[buf].neo_tree_source == "filesystem"
|
||||
end,
|
||||
size = { height = 0.5 },
|
||||
},
|
||||
{
|
||||
title = "Neo-Tree Git",
|
||||
ft = "neo-tree",
|
||||
filter = function(buf)
|
||||
return vim.b[buf].neo_tree_source == "git_status"
|
||||
end,
|
||||
pinned = true,
|
||||
open = "Neotree position=right git_status",
|
||||
},
|
||||
{
|
||||
title = "Neo-Tree Buffers",
|
||||
ft = "neo-tree",
|
||||
filter = function(buf)
|
||||
return vim.b[buf].neo_tree_source == "buffers"
|
||||
end,
|
||||
pinned = true,
|
||||
open = "Neotree position=top buffers",
|
||||
},
|
||||
{
|
||||
ft = "Outline",
|
||||
pinned = true,
|
||||
open = "SymbolsOutlineOpen",
|
||||
},
|
||||
-- any other neo-tree windows
|
||||
"neo-tree",
|
||||
},
|
||||
},
|
||||
}
|
||||
38
modules/shared/files/nvim/lua/plugins/git-stuff.lua
Normal file
38
modules/shared/files/nvim/lua/plugins/git-stuff.lua
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
return {
|
||||
{
|
||||
"lewis6991/gitsigns.nvim",
|
||||
config = function()
|
||||
require("gitsigns").setup({
|
||||
current_line_blame = true,
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader gp", ":Gitsigns preview_hunk<CR>", {})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"tpope/vim-fugitive",
|
||||
},
|
||||
{
|
||||
"kdheepak/lazygit.nvim",
|
||||
cmd = {
|
||||
"LazyGit",
|
||||
"LazyGitConfig",
|
||||
"LazyGitCurrentFile",
|
||||
"LazyGitFilter",
|
||||
"LazyGitFilterCurrentFile",
|
||||
},
|
||||
-- optional for floating window border decoration
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
},
|
||||
-- setting the keybinding for LazyGit with 'keys' is recommended in
|
||||
-- order to load the plugin when the command is run for the first time
|
||||
keys = {
|
||||
{ "<leader>lg", "<cmd>LazyGit<cr>", desc = "LazyGit" },
|
||||
},
|
||||
config = function()
|
||||
require("telescope").load_extension("lazygit")
|
||||
end,
|
||||
},
|
||||
}
|
||||
65
modules/shared/files/nvim/lua/plugins/lsp-config.lua
Normal file
65
modules/shared/files/nvim/lua/plugins/lsp-config.lua
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
return {
|
||||
{
|
||||
"williamboman/mason.nvim",
|
||||
config = true,
|
||||
},
|
||||
{
|
||||
"williamboman/mason-lspconfig.nvim",
|
||||
config = function()
|
||||
require("mason-lspconfig").setup({
|
||||
ensure_installed = {
|
||||
"lemminx", -- xml
|
||||
"lua_ls", -- lua
|
||||
"nil_ls", -- nix
|
||||
"puppet", -- puppet
|
||||
"ruff", -- python
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"neovim/nvim-lspconfig",
|
||||
config = function()
|
||||
local on_attach = function(_, _)
|
||||
vim.keymap.set("n", "<leader>rn", vim.lsp.buf.rename, {})
|
||||
vim.keymap.set("n", "<leader>ca", vim.lsp.buf.code_action, {})
|
||||
|
||||
vim.keymap.set("n", "gd", vim.lsp.buf.definition, {})
|
||||
vim.keymap.set("n", "gi", vim.lsp.buf.implementation, {})
|
||||
vim.keymap.set("n", "gr", require("telescope.builtin").lsp_references, {})
|
||||
vim.keymap.set("n", "K", vim.lsp.buf.hover, {})
|
||||
end
|
||||
|
||||
local lspconfig = require("lspconfig")
|
||||
local capabilities = require("cmp_nvim_lsp").default_capabilities()
|
||||
|
||||
lspconfig.lemminx.setup({
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
})
|
||||
|
||||
lspconfig.lua_ls.setup({
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
settings = { Lua = { diagnostics = { globals = { "vim" } } } },
|
||||
})
|
||||
|
||||
lspconfig.nil_ls.setup({
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
})
|
||||
|
||||
local puppet_languageserver = vim.fn.expand(
|
||||
"$HOME/.local/share/nvim/mason/packages/puppet-editor-services/libexec/puppet-languageserver"
|
||||
)
|
||||
|
||||
lspconfig.puppet.setup({
|
||||
capabilities = capabilities,
|
||||
on_attach = on_attach,
|
||||
cmd = { puppet_languageserver, "--feature-flags=puppetstrings" },
|
||||
settings = { puppet = { editorServices = { formatOnType = { enable = true } } } },
|
||||
})
|
||||
lspconfig.ruff.setup({ on_attach = on_attach })
|
||||
end,
|
||||
},
|
||||
}
|
||||
19
modules/shared/files/nvim/lua/plugins/lualine.lua
Normal file
19
modules/shared/files/nvim/lua/plugins/lualine.lua
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
return {
|
||||
"nvim-lualine/lualine.nvim",
|
||||
config = function()
|
||||
require("lualine").setup({
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
-- theme = "dracula-nvim",
|
||||
},
|
||||
sections = {
|
||||
lualine_a = {
|
||||
{
|
||||
"filename",
|
||||
path = 1,
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
24
modules/shared/files/nvim/lua/plugins/neo-tree.lua
Normal file
24
modules/shared/files/nvim/lua/plugins/neo-tree.lua
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
return {
|
||||
"nvim-neo-tree/neo-tree.nvim",
|
||||
lazy = false,
|
||||
branch = "v3.x",
|
||||
dependencies = {
|
||||
"nvim-lua/plenary.nvim",
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
"MunifTanjim/nui.nvim",
|
||||
},
|
||||
config = function()
|
||||
vim.g.loaded_netrw = 1
|
||||
vim.g.loaded_netrwPlugin = 1
|
||||
vim.keymap.set("n", "<C-n>", ":Neotree toggle<CR>", {})
|
||||
require("neo-tree").setup({
|
||||
filesystem = {
|
||||
follow_current_file = {
|
||||
enabled = true,
|
||||
},
|
||||
hijack_netrw_behavior = "open_default",
|
||||
},
|
||||
follow_current_file = { enabled = true },
|
||||
})
|
||||
end,
|
||||
}
|
||||
61
modules/shared/files/nvim/lua/plugins/noice.lua
Normal file
61
modules/shared/files/nvim/lua/plugins/noice.lua
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
return {
|
||||
"folke/noice.nvim",
|
||||
event = "VeryLazy",
|
||||
opts = {
|
||||
-- add any options here
|
||||
},
|
||||
dependencies = {
|
||||
-- if you lazy-load any plugin below, make sure to add proper `module="..."` entries
|
||||
"MunifTanjim/nui.nvim",
|
||||
-- OPTIONAL:
|
||||
-- `nvim-notify` is only needed, if you want to use the notification view.
|
||||
-- If not available, we use `mini` as the fallback
|
||||
-- "rcarriga/nvim-notify",
|
||||
},
|
||||
config = function()
|
||||
require("noice").setup({
|
||||
cmdline = { enabled = true },
|
||||
messages = { enabled = false },
|
||||
|
||||
lsp = {
|
||||
-- override markdown rendering so that **cmp** and other plugins use **Treesitter**
|
||||
override = {
|
||||
["vim.lsp.util.convert_input_to_markdown_lines"] = true,
|
||||
["vim.lsp.util.stylize_markdown"] = true,
|
||||
["cmp.entry.get_documentation"] = true,
|
||||
},
|
||||
},
|
||||
|
||||
views = {
|
||||
cmdline_popup = {
|
||||
position = {
|
||||
row = "50%",
|
||||
col = "50%",
|
||||
},
|
||||
size = {
|
||||
width = 60,
|
||||
height = "auto",
|
||||
},
|
||||
},
|
||||
popupmenu = {
|
||||
relative = "editor",
|
||||
position = {
|
||||
row = "61%",
|
||||
col = "50%",
|
||||
},
|
||||
size = {
|
||||
width = 60,
|
||||
height = 10,
|
||||
},
|
||||
border = {
|
||||
style = "rounded",
|
||||
padding = { 0, 1 },
|
||||
},
|
||||
win_options = {
|
||||
winhighlight = { Normal = "Normal", FloatBorder = "DiagnosticInfo" },
|
||||
},
|
||||
},
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
40
modules/shared/files/nvim/lua/plugins/none-ls.lua
Normal file
40
modules/shared/files/nvim/lua/plugins/none-ls.lua
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
return {
|
||||
{
|
||||
"jay-babu/mason-null-ls.nvim",
|
||||
event = { "BufReadPre", "BufNewFile" },
|
||||
dependencies = {
|
||||
"williamboman/mason.nvim",
|
||||
"nvimtools/none-ls.nvim",
|
||||
},
|
||||
config = function()
|
||||
require("mason-null-ls").setup({
|
||||
ensure_installed = {
|
||||
"prettier", -- HTML, JS, JSON, etc.
|
||||
"stylua", -- LUA
|
||||
},
|
||||
})
|
||||
end,
|
||||
},
|
||||
{
|
||||
-- none-ls replaces null_ls... it's weird
|
||||
"nvimtools/none-ls.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
config = function()
|
||||
local null_ls = require("null-ls")
|
||||
|
||||
null_ls.setup({
|
||||
sources = {
|
||||
null_ls.builtins.completion.spell,
|
||||
null_ls.builtins.diagnostics.puppet_lint,
|
||||
null_ls.builtins.diagnostics.rubocop,
|
||||
null_ls.builtins.formatting.prettier,
|
||||
null_ls.builtins.formatting.puppet_lint,
|
||||
null_ls.builtins.formatting.rubocop,
|
||||
null_ls.builtins.formatting.stylua,
|
||||
},
|
||||
})
|
||||
|
||||
vim.keymap.set("n", "<leader>gf", vim.lsp.buf.format, {})
|
||||
end,
|
||||
},
|
||||
}
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
return {
|
||||
"nvim-tree/nvim-web-devicons",
|
||||
config = true,
|
||||
}
|
||||
40
modules/shared/files/nvim/lua/plugins/telescope.lua
Normal file
40
modules/shared/files/nvim/lua/plugins/telescope.lua
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
return {
|
||||
{
|
||||
"nvim-telescope/telescope.nvim",
|
||||
tag = "0.1.5",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
config = function()
|
||||
-- This is your opts table
|
||||
require("telescope").setup({
|
||||
extensions = {
|
||||
["ui-select"] = {
|
||||
require("telescope.themes").get_dropdown({
|
||||
-- even more opts
|
||||
}),
|
||||
},
|
||||
},
|
||||
})
|
||||
|
||||
-- load_extension, somewhere after setup function:
|
||||
require("telescope").load_extension("cheat")
|
||||
require("telescope").load_extension("ui-select")
|
||||
|
||||
local builtin = require("telescope.builtin")
|
||||
|
||||
vim.keymap.set("n", "<leader>ts", ":Telescope<CR>")
|
||||
vim.keymap.set("n", "<C-p>", builtin.find_files, {})
|
||||
vim.keymap.set("n", "<leader><leader>", builtin.oldfiles, {})
|
||||
vim.keymap.set("n", "<leader>fg", builtin.live_grep, {})
|
||||
vim.keymap.set("n", "<leader>fh", builtin.help_tags, {})
|
||||
end,
|
||||
},
|
||||
{
|
||||
"nvim-telescope/telescope-cheat.nvim",
|
||||
dependencies = {
|
||||
"kkharji/sqlite.lua",
|
||||
"nvim-telescope/telescope.nvim",
|
||||
},
|
||||
},
|
||||
{ "nvim-telescope/telescope-symbols.nvim" },
|
||||
{ "nvim-telescope/telescope-ui-select.nvim" },
|
||||
}
|
||||
9
modules/shared/files/nvim/lua/plugins/todo-comments.lua
Normal file
9
modules/shared/files/nvim/lua/plugins/todo-comments.lua
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
return {
|
||||
"folke/todo-comments.nvim",
|
||||
dependencies = { "nvim-lua/plenary.nvim" },
|
||||
opts = {
|
||||
-- your configuration comes here
|
||||
-- or leave it empty to use the default settings
|
||||
-- refer to the configuration section below
|
||||
},
|
||||
}
|
||||
5
modules/shared/files/nvim/lua/plugins/toggleterm.lua
Normal file
5
modules/shared/files/nvim/lua/plugins/toggleterm.lua
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
return {
|
||||
"akinsho/toggleterm.nvim",
|
||||
version = "*",
|
||||
config = true,
|
||||
}
|
||||
53
modules/shared/files/nvim/lua/plugins/treesitter.lua
Normal file
53
modules/shared/files/nvim/lua/plugins/treesitter.lua
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
return {
|
||||
"nvim-treesitter/nvim-treesitter",
|
||||
build = ":TSUpdate",
|
||||
config = function()
|
||||
local config = require("nvim-treesitter.configs")
|
||||
config.setup({
|
||||
auto_install = true,
|
||||
highlight = { enable = true },
|
||||
indent = { enable = true },
|
||||
sync_install = false,
|
||||
ensure_installed = {
|
||||
"bash",
|
||||
"css",
|
||||
"csv",
|
||||
"diff",
|
||||
"dockerfile",
|
||||
"git_config",
|
||||
"git_rebase",
|
||||
"gitattributes",
|
||||
"gitignore",
|
||||
"go",
|
||||
"hcl",
|
||||
"hocon",
|
||||
"html",
|
||||
"javascript",
|
||||
"json",
|
||||
"lua",
|
||||
"make",
|
||||
"markdown",
|
||||
"markdown_inline",
|
||||
"nix",
|
||||
"passwd",
|
||||
"promql",
|
||||
"puppet",
|
||||
"python",
|
||||
"regex",
|
||||
--"pip_requirements",
|
||||
"ruby",
|
||||
"sql",
|
||||
"ssh_config",
|
||||
"terraform",
|
||||
"toml",
|
||||
"tsv",
|
||||
"typescript",
|
||||
"udev",
|
||||
"vim",
|
||||
"vimdoc",
|
||||
"xml",
|
||||
"yaml",
|
||||
},
|
||||
})
|
||||
end,
|
||||
}
|
||||
5
modules/shared/files/nvim/lua/plugins/trouble.lua
Normal file
5
modules/shared/files/nvim/lua/plugins/trouble.lua
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
return {
|
||||
"folke/trouble.nvim",
|
||||
dependencies = { "nvim-tree/nvim-web-devicons" },
|
||||
config = true,
|
||||
}
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
return {
|
||||
"christoomey/vim-tmux-navigator",
|
||||
}
|
||||
4
modules/shared/files/nvim/lua/plugins/which-key.lua
Normal file
4
modules/shared/files/nvim/lua/plugins/which-key.lua
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
return {
|
||||
"folke/which-key.nvim",
|
||||
config = true,
|
||||
}
|
||||
35
modules/shared/files/tilix/Beanbag-Mathias.json
Normal file
35
modules/shared/files/tilix/Beanbag-Mathias.json
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"name": "Beanbag-Mathias",
|
||||
"comment": "Inspired by colors from EndeavourOS",
|
||||
"background-color": "#07042B",
|
||||
"badge-color": "#FFFFFF",
|
||||
"bold-color": "#FFFFFF",
|
||||
"cursor-background-color": "#FF7F7F",
|
||||
"cursor-foreground-color": "#07042B",
|
||||
"foreground-color": "#E3E3EA",
|
||||
"highlight-background-color": "#000000",
|
||||
"highlight-foreground-color": "#FFFFFF",
|
||||
"palette": [
|
||||
"#000000",
|
||||
"#E52222",
|
||||
"#A6E32D",
|
||||
"#FC951E",
|
||||
"#C48DFF",
|
||||
"#FA2573",
|
||||
"#67D9F0",
|
||||
"#F2F2F2",
|
||||
"#555555",
|
||||
"#FF5555",
|
||||
"#55FF55",
|
||||
"#FFFF55",
|
||||
"#5555FF",
|
||||
"#FF55FF",
|
||||
"#55FFFF",
|
||||
"#FFFFFF"
|
||||
],
|
||||
"use-badge-color": false,
|
||||
"use-bold-color": false,
|
||||
"use-cursor-color": true,
|
||||
"use-highlight-color": false,
|
||||
"use-theme-colors": false
|
||||
}
|
||||
99
modules/shared/files/waybar/config
Normal file
99
modules/shared/files/waybar/config
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
{
|
||||
"layer": "top", // Waybar at top layer
|
||||
// "position": "bottom", // Waybar position (top|bottom|left|right)
|
||||
"height": 30, // Waybar height (to be removed for auto height)
|
||||
// "width": 1280, // Waybar width
|
||||
"spacing": 4, // Gaps between modules (4px)
|
||||
// Choose the order of the modules
|
||||
"modules-left": ["hyprland/workspaces"],
|
||||
"modules-center": ["hyprland/window"],
|
||||
"modules-right": ["idle_inhibitor", "pulseaudio", "network", "cpu", "memory", "backlight", "keyboard-state", "battery", "clock", "tray"],
|
||||
"keyboard-state": {
|
||||
"numlock": true,
|
||||
"capslock": true,
|
||||
"format": "{name} {icon}",
|
||||
"format-icons": {
|
||||
"locked": "",
|
||||
"unlocked": ""
|
||||
}
|
||||
},
|
||||
"idle_inhibitor": {
|
||||
"format": "{icon}",
|
||||
"format-icons": {
|
||||
"activated": "",
|
||||
"deactivated": ""
|
||||
}
|
||||
},
|
||||
"tray": {
|
||||
// "icon-size": 21,
|
||||
"spacing": 10
|
||||
},
|
||||
"clock": {
|
||||
// "timezone": "America/New_York",
|
||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||
"format-alt": "{:%Y-%m-%d}"
|
||||
},
|
||||
"cpu": {
|
||||
"format": "{usage}% ",
|
||||
"tooltip": false
|
||||
},
|
||||
"memory": {
|
||||
"format": "{}% "
|
||||
},
|
||||
"temperature": {
|
||||
// "thermal-zone": 2,
|
||||
// "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
|
||||
"critical-threshold": 80,
|
||||
// "format-critical": "{temperatureC}°C {icon}",
|
||||
"format": "{temperatureF}°F {icon}",
|
||||
"format-icons": ["", "", ""]
|
||||
},
|
||||
"backlight": {
|
||||
// "device": "acpi_video1",
|
||||
"format": "{percent}% {icon}",
|
||||
"format-icons": ["", "", "", "", "", "", "", "", ""]
|
||||
},
|
||||
"battery": {
|
||||
"states": {
|
||||
// "good": 95,
|
||||
"warning": 30,
|
||||
"critical": 15
|
||||
},
|
||||
"format": "{capacity}% {icon}",
|
||||
"format-charging": "{capacity}% ",
|
||||
"format-plugged": "{capacity}% ",
|
||||
"format-alt": "{time} {icon}",
|
||||
// "format-good": "", // An empty format will hide the module
|
||||
// "format-full": "",
|
||||
"format-icons": ["", "", "", "", ""]
|
||||
},
|
||||
"network": {
|
||||
// "interface": "wlp2*", // (Optional) To force the use of this interface
|
||||
"format-wifi": "{essid} ({signalStrength}%) ",
|
||||
"format-ethernet": "{ipaddr}/{cidr} ",
|
||||
"tooltip-format": "{ifname} via {gwaddr} ",
|
||||
"format-linked": "{ifname} (No IP) ",
|
||||
"format-disconnected": "Disconnected ⚠",
|
||||
"format-alt": "{ifname}: {ipaddr}/{cidr}"
|
||||
},
|
||||
"pulseaudio": {
|
||||
// "scroll-step": 1, // %, can be a float
|
||||
"format": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||
"format-bluetooth-muted": " {icon} {format_source}",
|
||||
"format-muted": " {format_source}",
|
||||
"format-source": "{volume}% ",
|
||||
"format-source-muted": "",
|
||||
"format-icons": {
|
||||
"headphone": "",
|
||||
"hands-free": "",
|
||||
"headset": "",
|
||||
"phone": "",
|
||||
"portable": "",
|
||||
"car": "",
|
||||
"default": ["", "", ""]
|
||||
},
|
||||
"on-click": "pavucontrol"
|
||||
}
|
||||
}
|
||||
|
||||
164
modules/shared/files/waybar/style.css
Normal file
164
modules/shared/files/waybar/style.css
Normal file
|
|
@ -0,0 +1,164 @@
|
|||
@import "frappe.css";
|
||||
* {
|
||||
/* `otf-font-awesome` is required to be installed for icons */
|
||||
font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
|
||||
font-size: 13px;
|
||||
color: @text;
|
||||
}
|
||||
|
||||
window#waybar {
|
||||
background-color: shade(@base, 0.9);
|
||||
border-bottom: 3px solid alpha(@crust, 0.3);
|
||||
transition-property: background-color;
|
||||
transition-duration: .5s;
|
||||
}
|
||||
|
||||
window#waybar.hidden {
|
||||
opacity: 0.2;
|
||||
}
|
||||
|
||||
button {
|
||||
/* Use box-shadow instead of border so the text isn't offset */
|
||||
box-shadow: inset 0 -3px transparent;
|
||||
/* Avoid rounded borders under each button name */
|
||||
border: none;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
|
||||
button:hover {
|
||||
background: inherit;
|
||||
box-shadow: inset 0 -3px #ffffff;
|
||||
}
|
||||
|
||||
#workspaces button {
|
||||
padding: 0 5px;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
#workspaces button:hover {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
#workspaces button.focused {
|
||||
background-color: #64727D;
|
||||
box-shadow: inset 0 -3px #ffffff;
|
||||
}
|
||||
|
||||
#workspaces button.urgent {
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#mode {
|
||||
background-color: #64727D;
|
||||
border-bottom: 3px solid #ffffff;
|
||||
}
|
||||
|
||||
#clock,
|
||||
#battery,
|
||||
#cpu,
|
||||
#memory,
|
||||
#disk,
|
||||
#temperature,
|
||||
#backlight,
|
||||
#network,
|
||||
#pulseaudio,
|
||||
#wireplumber,
|
||||
#custom-media,
|
||||
#tray,
|
||||
#mode,
|
||||
#idle_inhibitor,
|
||||
#scratchpad,
|
||||
#mpd {
|
||||
padding: 0 10px;
|
||||
}
|
||||
|
||||
#window,
|
||||
#workspaces {
|
||||
margin: 0 4px;
|
||||
}
|
||||
|
||||
/* If workspaces is the leftmost module, omit left margin */
|
||||
.modules-left > widget:first-child > #workspaces {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
/* If workspaces is the rightmost module, omit right margin */
|
||||
.modules-right > widget:last-child > #workspaces {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
#battery.charging, #battery.plugged {
|
||||
color: #26A65B;
|
||||
}
|
||||
|
||||
@keyframes blink {
|
||||
to {
|
||||
background-color: #ffffff;
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
|
||||
#battery.critical:not(.charging) {
|
||||
background-color: #f53c3c;
|
||||
color: #ffffff;
|
||||
animation-name: blink;
|
||||
animation-duration: 0.5s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
animation-direction: alternate;
|
||||
}
|
||||
|
||||
label:focus {
|
||||
background-color: #000000;
|
||||
}
|
||||
|
||||
#temperature.critical {
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#tray {
|
||||
background-color: #2980b9;
|
||||
}
|
||||
|
||||
#tray > .passive {
|
||||
-gtk-icon-effect: dim;
|
||||
}
|
||||
|
||||
#tray > .needs-attention {
|
||||
-gtk-icon-effect: highlight;
|
||||
background-color: #eb4d4b;
|
||||
}
|
||||
|
||||
#idle_inhibitor.activated {
|
||||
background-color: #ecf0f1;
|
||||
color: #2d3436;
|
||||
}
|
||||
|
||||
#language {
|
||||
padding: 0 5px;
|
||||
margin: 0 5px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#keyboard-state {
|
||||
padding: 0 0px;
|
||||
margin: 0 5px;
|
||||
min-width: 16px;
|
||||
}
|
||||
|
||||
#keyboard-state > label {
|
||||
padding: 0 5px;
|
||||
}
|
||||
|
||||
#keyboard-state > label.locked {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
#scratchpad {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
#scratchpad.empty {
|
||||
background-color: transparent;
|
||||
}
|
||||
68
modules/shared/files/xfce4/terminal/accels.scm
Normal file
68
modules/shared/files/xfce4/terminal/accels.scm
Normal file
|
|
@ -0,0 +1,68 @@
|
|||
; xfce4-terminal GtkAccelMap rc-file -*- scheme -*-
|
||||
; this file is an automated accelerator map dump
|
||||
;
|
||||
; (gtk_accel_path "<Actions>/terminal-window/copy-html" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/new-tab" "<Primary><Shift>t")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/reset" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/next-tab" "<Primary>Page_Down")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/search-prev" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/close-tab" "<Primary><Shift>w")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/help-menu" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/tabs-menu" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/zoom-in-alt" "<Primary>KP_Add")
|
||||
; (gtk_accel_path "<Actions>/terminal-widget/shift-pagedown" "<Shift>Page_Down")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/show-toolbar" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/move-tab-right" "<Primary><Shift>Page_Down")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/zoom-in" "<Primary>plus")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/fullscreen" "F11")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/about" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/paste-selection" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/paste" "<Primary><Shift>v")
|
||||
; (gtk_accel_path "<Actions>/terminal-widget/shift-down" "<Shift>Down")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/new-window" "<Primary><Shift>n")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/edit-menu" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/goto-tab-9" "<Alt>9")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/reset-and-clear" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/toggle-menubar" "F10")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/paste-selection-alt" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/set-title-color" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/zoom-reset" "<Primary>0")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/goto-tab-8" "<Alt>8")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/detach-tab" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/copy" "<Primary><Shift>c")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/show-borders" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/undo-close-tab" "<Primary><Shift>d")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/open-folder" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/select-all" "<Primary><Shift>a")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/search-next" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/goto-tab-7" "<Alt>7")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/show-menubar" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/move-tab-left" "<Primary><Shift>Page_Up")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/zoom-reset-alt" "<Primary>KP_0")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/read-only" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/file-menu" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/zoom-out-alt" "<Primary>KP_Subtract")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/search" "<Primary><Shift>f")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/goto-tab-6" "<Alt>6")
|
||||
(gtk_accel_path "<Actions>/terminal-window/preferences" "<Primary><Shift>p")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/prev-tab" "<Primary>Page_Up")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/set-title" "<Primary><Shift>s")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/terminal-menu" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/copy-input" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/goto-tab-5" "<Alt>5")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/contents" "F1")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/paste-alt" "<Primary><Shift>Insert")
|
||||
; (gtk_accel_path "<Actions>/terminal-widget/shift-up" "<Shift>Up")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/goto-tab-4" "<Alt>4")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/scroll-on-output" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/zoom-out" "<Primary>minus")
|
||||
; (gtk_accel_path "<Actions>/terminal-widget/shift-pageup" "<Shift>Page_Up")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/zoom-menu" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/close-window" "<Primary><Shift>q")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/goto-tab-3" "<Alt>3")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/last-active-tab" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/save-contents" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/goto-tab-2" "<Alt>2")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/close-other-tabs" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/view-menu" "")
|
||||
; (gtk_accel_path "<Actions>/terminal-window/goto-tab-1" "<Alt>1")
|
||||
36
modules/shared/files/xfce4/terminal/terminalrc
Normal file
36
modules/shared/files/xfce4/terminal/terminalrc
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
[Configuration]
|
||||
MiscAlwaysShowTabs=FALSE
|
||||
MiscBell=FALSE
|
||||
MiscBellUrgent=FALSE
|
||||
MiscBordersDefault=TRUE
|
||||
MiscCursorBlinks=FALSE
|
||||
MiscCursorShape=TERMINAL_CURSOR_SHAPE_BLOCK
|
||||
MiscDefaultGeometry=120x24
|
||||
MiscInheritGeometry=FALSE
|
||||
MiscMenubarDefault=TRUE
|
||||
MiscMouseAutohide=FALSE
|
||||
MiscMouseWheelZoom=TRUE
|
||||
MiscToolbarDefault=FALSE
|
||||
MiscConfirmClose=TRUE
|
||||
MiscCycleTabs=TRUE
|
||||
MiscTabCloseButtons=TRUE
|
||||
MiscTabCloseMiddleClick=TRUE
|
||||
MiscTabPosition=GTK_POS_TOP
|
||||
MiscHighlightUrls=TRUE
|
||||
MiscMiddleClickOpensUri=FALSE
|
||||
MiscCopyOnSelect=FALSE
|
||||
MiscShowRelaunchDialog=TRUE
|
||||
MiscRewrapOnResize=TRUE
|
||||
MiscUseShiftArrowsToScroll=FALSE
|
||||
MiscSlimTabs=FALSE
|
||||
MiscNewTabAdjacent=FALSE
|
||||
MiscSearchDialogOpacity=100
|
||||
MiscShowUnsafePasteDialog=TRUE
|
||||
ColorForeground=#e3e3ea
|
||||
ColorCursor=#ff7f7f
|
||||
ColorPalette=#000000;#e52222;#a6e32d;#fc951e;#c48dff;#fa2573;#67d9f0;#f2f2f2;#555555;#ff5555;#55ff55;#ffff55;#5555ff;#ff55ff;#55ffff;#ffffff
|
||||
ColorBackground=#08052b
|
||||
ColorCursorUseDefault=FALSE
|
||||
BackgroundMode=TERMINAL_BACKGROUND_TRANSPARENT
|
||||
BackgroundDarkness=0.950000
|
||||
|
||||
10
modules/shared/home/general/all-gui.nix
Normal file
10
modules/shared/home/general/all-gui.nix
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
esptool
|
||||
];
|
||||
programs = {
|
||||
git.settings.aliases = {
|
||||
kraken = "!gitkraken -p $(cd \"\${1:-.}\" && git rev-parse --show-toplevel)";
|
||||
};
|
||||
};
|
||||
}
|
||||
366
modules/shared/home/general/default.nix
Normal file
366
modules/shared/home/general/default.nix
Normal file
|
|
@ -0,0 +1,366 @@
|
|||
{ config, inputs, pkgs, ... }: let
|
||||
sqlite_lib = if builtins.elem pkgs.stdenv.hostPlatform.system [
|
||||
"aarch64-darwin"
|
||||
"x86_64-darwin"
|
||||
]
|
||||
then "libsqlite3.dylib"
|
||||
else "libsqlite3.so";
|
||||
in {
|
||||
home.packages = with pkgs; [
|
||||
btop
|
||||
bundix
|
||||
cargo
|
||||
cheat
|
||||
colordiff
|
||||
dogdns
|
||||
dos2unix
|
||||
duf
|
||||
dust
|
||||
fd
|
||||
f2
|
||||
git-filter-repo
|
||||
glab
|
||||
glow
|
||||
gomuks
|
||||
gotop
|
||||
htop
|
||||
httpie
|
||||
hub
|
||||
inputs.nix-auth.packages.${stdenv.hostPlatform.system}.default
|
||||
jq
|
||||
lazydocker
|
||||
lazygit
|
||||
lua-language-server
|
||||
minicom
|
||||
mtr
|
||||
nil
|
||||
nix-search
|
||||
nix-zsh-completions
|
||||
nodejs
|
||||
nurl
|
||||
nvd
|
||||
onefetch
|
||||
powershell
|
||||
pre-commit
|
||||
puppet-lint
|
||||
rename
|
||||
ruby
|
||||
subversion
|
||||
tldr
|
||||
tree
|
||||
trippy
|
||||
vimv
|
||||
watch
|
||||
wget
|
||||
yq-go
|
||||
];
|
||||
home.sessionVariables = {
|
||||
CLICLOLOR = 1;
|
||||
PAGER = "less";
|
||||
};
|
||||
programs = {
|
||||
atuin = {
|
||||
enable = true;
|
||||
settings = {
|
||||
ctrl_n_shortcuts = true; # Use Ctrl-0 .. Ctrl-9 instead of Alt-0 .. Alt-9 UI shortcuts
|
||||
enter_accept = true; # press tab to edit command before running
|
||||
filter_mode_shell_up_key_binding = "host"; # or global, host, directory, etc
|
||||
sync_address = "https://atuin.home.technicalissues.us";
|
||||
sync_frequency = "15m";
|
||||
|
||||
};
|
||||
};
|
||||
bat = {
|
||||
enable = true;
|
||||
config = {
|
||||
theme = "Catppuccin-frappe";
|
||||
};
|
||||
themes = {
|
||||
Catppuccin-frappe = {
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "bat";
|
||||
rev = "ba4d16880d63e656acced2b7d4e034e4a93f74b1";
|
||||
hash = "sha256-6WVKQErGdaqb++oaXnY3i6/GuH2FhTgK0v4TN4Y0Wbw=";
|
||||
};
|
||||
file = "Catppuccin-frappe.tmTheme";
|
||||
};
|
||||
};
|
||||
};
|
||||
bottom.enable = true;
|
||||
broot.enable = true;
|
||||
diff-so-fancy = {
|
||||
enable = true;
|
||||
enableGitIntegration = true;
|
||||
};
|
||||
direnv = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
nix-direnv.enable = true;
|
||||
};
|
||||
eza.enable = true;
|
||||
fzf.enable = true;
|
||||
gh.enable = true;
|
||||
git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
diff.sopsdiffer.textconv = "sops --config /dev/null --decrypt";
|
||||
};
|
||||
ignores = [
|
||||
"*~"
|
||||
"*.swp"
|
||||
".DS_Store"
|
||||
];
|
||||
includes = [ { path = "~/.gitconfig-local"; }];
|
||||
lfs.enable = true;
|
||||
package = pkgs.gitFull;
|
||||
settings = {
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
merge = {
|
||||
conflictStyle = "diff3";
|
||||
tool = "meld";
|
||||
};
|
||||
pull = {
|
||||
rebase = false;
|
||||
};
|
||||
user = {
|
||||
name = "Gene Liverman";
|
||||
};
|
||||
};
|
||||
}; # end git
|
||||
irssi.enable = true;
|
||||
jq.enable = true;
|
||||
neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
extraLuaConfig = ''
|
||||
-- NOTE: This will get the OS from Lua:
|
||||
-- print(vim.loop.os_uname().sysname)
|
||||
|
||||
-- setup lazy.nvim
|
||||
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
-- hack to deal with bug in telescope-cheat.nvim
|
||||
-- https://github.com/nvim-telescope/telescope-cheat.nvim/issues/7
|
||||
local cheat_dbdir = vim.fn.stdpath "data" .. "/databases"
|
||||
if not vim.loop.fs_stat(cheat_dbdir) then
|
||||
vim.loop.fs_mkdir(cheat_dbdir, 493)
|
||||
end
|
||||
|
||||
-- load additional settings
|
||||
require("config.vim-options")
|
||||
require("lazy").setup("plugins")
|
||||
|
||||
-- tell sqlite.lua where to find the bits it needs
|
||||
vim.g.sqlite_clib_path = '${pkgs.sqlite.out}/lib/${sqlite_lib}'
|
||||
|
||||
'';
|
||||
extraPackages = with pkgs; [
|
||||
gcc # needed so treesitter can do compiling
|
||||
sqlite # needed by sqlite.lua used by telescope-cheat
|
||||
];
|
||||
plugins = [ pkgs.vimPlugins.lazy-nvim ]; # let lazy.nvim manage every other plugin
|
||||
};
|
||||
nh = {
|
||||
enable = true;
|
||||
flake = "${config.home.homeDirectory}/repos/dots";
|
||||
};
|
||||
oh-my-posh = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
settings = builtins.fromJSON (builtins.unsafeDiscardStringContext (builtins.readFile (inputs.genebean-omp-themes + "/beanbag.omp.json")));
|
||||
#useTheme = "amro";
|
||||
#useTheme = "montys";
|
||||
};
|
||||
ripgrep.enable = true;
|
||||
tmux = {
|
||||
enable = true;
|
||||
historyLimit = 100000;
|
||||
mouse = true;
|
||||
tmuxinator.enable = true;
|
||||
plugins = with pkgs.tmuxPlugins; [
|
||||
vim-tmux-navigator
|
||||
{
|
||||
plugin = dracula;
|
||||
extraConfig = ''
|
||||
set -g @dracula-show-battery false
|
||||
set -g @dracula-show-powerline true
|
||||
set -g @dracula-refresh-rate 10
|
||||
'';
|
||||
}
|
||||
];
|
||||
extraConfig = ''
|
||||
set -g status-position top
|
||||
'';
|
||||
};
|
||||
vim = {
|
||||
enable = true;
|
||||
defaultEditor = false;
|
||||
plugins = with pkgs.vimPlugins; [
|
||||
syntastic
|
||||
tabular
|
||||
tlib_vim
|
||||
vim-addon-mw-utils
|
||||
vim-airline
|
||||
vim-airline-themes
|
||||
vim-flog
|
||||
vim-fugitive
|
||||
vim-json
|
||||
vim-markdown
|
||||
vim-nix
|
||||
vim-puppet
|
||||
vim-ruby
|
||||
vim-snipmate
|
||||
vim-snippets
|
||||
vim-tmux-navigator
|
||||
vim-yaml
|
||||
];
|
||||
settings = {
|
||||
background = "dark";
|
||||
expandtab = true;
|
||||
};
|
||||
extraConfig = ''
|
||||
set nocompatible " be iMproved, required
|
||||
filetype plugin indent on " required for plugins to be able to adjust indent
|
||||
syntax on " enable syntax highlighting
|
||||
set encoding=utf-8
|
||||
set termencoding=utf-8
|
||||
set t_Co=256 " tell vim we have 256 colors to work with
|
||||
|
||||
set autoindent " automatically indent new lines
|
||||
set backspace=2 " make backspace work like most other programs
|
||||
set fillchars+=stl:\ ,stlnc:\ " fix added per powerline troubleshooting docs
|
||||
set laststatus=2 " Always display the status line in all windows
|
||||
set noshowmode " Hide the default mode text (e.g. -- INSERT -- below the status line)
|
||||
set smarttab " helps with expanding tabs to spaces (I think)
|
||||
set statusline+=%{FugitiveStatusline()} " get git info via fugitive plugin
|
||||
set statusline+=%#warningmsg# " recommended setting from syntastic plugin
|
||||
set statusline+=%{SyntasticStatuslineFlag()} " recommended setting from syntastic plugin
|
||||
set statusline+=%* " recommended setting from syntastic plugin
|
||||
|
||||
" This has to come after colorscheme, if defined, to not be masked
|
||||
highlight ColorColumn ctermbg=232 " set the color to be used for guidelines
|
||||
let &colorcolumn=join(range(81,999),",") " change the background color of everything beyond 80 characters
|
||||
|
||||
let g:snipMate = { 'snippet_version' : 1 }
|
||||
|
||||
" settings for the syntastic plugin
|
||||
let g:syntastic_always_populate_loc_list = 1
|
||||
let g:syntastic_auto_loc_list = 1
|
||||
let g:syntastic_check_on_open = 1
|
||||
let g:syntastic_check_on_wq = 0
|
||||
let g:syntastic_enable_signs = 1
|
||||
let g:syntastic_ruby_checkers = ['rubocop']
|
||||
let g:syntastic_quiet_messages = {'level': 'warnings'}
|
||||
|
||||
" don't wrap text in markdown files
|
||||
let g:vim_markdown_folding_disabled = 1
|
||||
|
||||
" settings for vim-airline
|
||||
let g:airline_theme='badwolf'
|
||||
let g:airline_powerline_fonts = 1
|
||||
'';
|
||||
};
|
||||
zellij = {
|
||||
enable = true;
|
||||
enableZshIntegration = false;
|
||||
};
|
||||
zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
history.save = 1000000;
|
||||
history.size = 1000000;
|
||||
initContent = ''
|
||||
[ -f ~/.private-env ] && source ~/.private-env || echo '~/.private-env is missing'
|
||||
[ -f ~/.gitconfig-local ] || echo '~/.gitconfig-local is missing. Create it and set user.email'
|
||||
|
||||
# Start GPG agent
|
||||
# Some tips from https://hedberg.io/yubikey-for-ssh/ helped simplify this:
|
||||
if [[ $(uname) == 'Darwin' ]]; then
|
||||
# Add GPG Suite binaries to the path:
|
||||
export PATH=/usr/local/MacGPG2/bin:$PATH
|
||||
fi
|
||||
|
||||
export GPG_TTY=$(tty)
|
||||
function nv() {
|
||||
# Assumes all configs exist in directories named ~/.config/nvim-*
|
||||
local config=$(fd --max-depth 1 --glob 'nvim*' ~/.config | fzf --prompt="Neovim Configs > " --height=~50% --layout=reverse --border --exit-0)
|
||||
|
||||
# If I exit fzf without selecting a config, don't open Neovim
|
||||
[[ -z $config ]] && echo "No config selected" && return
|
||||
|
||||
# Open Neovim with the selected config
|
||||
NVIM_APPNAME=$(basename $config) nvim $*
|
||||
}
|
||||
|
||||
function svndiffless() {
|
||||
svn diff "$@" |diff-so-fancy |less -R
|
||||
}
|
||||
|
||||
function svndiffless-nows() {
|
||||
svn diff -x -w "$@" |diff-so-fancy |less -R
|
||||
}
|
||||
|
||||
# unset oh-my-zsh's gk so that gk can refer to the gitkraken-cli
|
||||
unalias gk
|
||||
'';
|
||||
oh-my-zsh = {
|
||||
enable = true;
|
||||
plugins = [
|
||||
"bundler"
|
||||
"gem"
|
||||
"git"
|
||||
"github"
|
||||
"history"
|
||||
"kubectl"
|
||||
"pip"
|
||||
"terraform"
|
||||
"vagrant"
|
||||
"vscode"
|
||||
];
|
||||
};
|
||||
shellAliases = {
|
||||
bcrr = "bolt command run --run-as root --sudo-password-prompt";
|
||||
bcrrs = "bcrr --stream --no-verbose";
|
||||
beo = "bundle exec onceover run spec --trace --force";
|
||||
biv = "bundle install --path=vendor/bundle";
|
||||
bottom = "echo 'To run bottom, the command is btm'";
|
||||
ce = "code-exploration";
|
||||
dots = "cd ~/repos/dots";
|
||||
gbc = ''
|
||||
git branch --merged | command grep -vE "^(\*|\s*(main|master|develop|production|qa)\s*$)" | command xargs -n 1 git branch -d
|
||||
'';
|
||||
gitextract = "git log --pretty=email --patch-with-stat --reverse --full-index --binary --";
|
||||
gpge = "gpg2 --encrypt --sign --armor -r ";
|
||||
hubpr = "hub pull-request --push --browse";
|
||||
nvdots = "NVIM_APPNAME=nvim-dots nvim";
|
||||
nve = "nvdots ~/repos/dots/modules/home-manager/files/nvim/lua";
|
||||
pssh = "ssh -o 'UserKnownHostsFile /dev/null' -o 'StrictHostKeyChecking no' -o PubkeyAcceptedKeyTypes=+ssh-rsa -o HostKeyAlgorithms=+ssh-rsa -o KexAlgorithms=+diffie-hellman-group1-sha1 -i ~/.ssh/id_rsa-acceptance";
|
||||
sal = "ssh-add -L";
|
||||
sshnull = "ssh -o UserKnownHostsFile=/dev/null";
|
||||
st = "open -a SourceTree";
|
||||
sz = "source ~/.zshrc";
|
||||
trippy = "echo 'To run trippy, the command is trip'";
|
||||
usegpg = "killall ssh-agent; export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) && gpgconf --launch gpg-agent";
|
||||
usessh = "gpgconf --kill gpg-agent";
|
||||
};
|
||||
}; # end zsh
|
||||
}; # end programs
|
||||
|
||||
home.file = {
|
||||
".config/nvim/lua/config" = {
|
||||
source = ../../files/nvim/lua/config;
|
||||
recursive = true;
|
||||
};
|
||||
".config/nvim/lua/plugins" = {
|
||||
source = ../../files/nvim/lua/plugins;
|
||||
recursive = true;
|
||||
};
|
||||
".config/powershell/Microsoft.PowerShell_profile.ps1".source = ../../files/Microsoft.PowerShell_profile.ps1;
|
||||
".config/powershell/Microsoft.VSCode_profile.ps1".source = ../../files/Microsoft.PowerShell_profile.ps1;
|
||||
};
|
||||
}
|
||||
3
modules/shared/home/linux/apps/hexchat.nix
Normal file
3
modules/shared/home/linux/apps/hexchat.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{ ... }: {
|
||||
programs.hexchat.enable = true;
|
||||
}
|
||||
3
modules/shared/home/linux/apps/pidgin.nix
Normal file
3
modules/shared/home/linux/apps/pidgin.nix
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{ ... }: {
|
||||
programs.pidgin.enable = true;
|
||||
}
|
||||
30
modules/shared/home/linux/apps/tilix.nix
Normal file
30
modules/shared/home/linux/apps/tilix.nix
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
{ lib, pkgs, ... }: with lib.hm.gvariant; {
|
||||
|
||||
dconf.settings = {
|
||||
"com/gexperts/Tilix/profiles/2b7c4080-0ddd-46c5-8f23-563fd3ba789d" = {
|
||||
background-color = "#272822";
|
||||
background-transparency-percent = 10;
|
||||
badge-color-set = false;
|
||||
bold-color-set = false;
|
||||
cursor-colors-set = false;
|
||||
font = "Hack Nerd Font Mono 12";
|
||||
foreground-color = "#F8F8F2";
|
||||
highlight-colors-set = false;
|
||||
palette = [ "#272822" "#F92672" "#A6E22E" "#F4BF75" "#66D9EF" "#AE81FF" "#A1EFE4" "#F8F8F2" "#75715E" "#F92672" "#A6E22E" "#F4BF75" "#66D9EF" "#AE81FF" "#A1EFE4" "#F9F8F5" ];
|
||||
use-system-font = false;
|
||||
use-theme-colors = false;
|
||||
visible-name = "Default";
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
home.file = {
|
||||
".config/tilix/schemes/Beanbag-Mathias.json".source = ../../../files/tilix/Beanbag-Mathias.json;
|
||||
".config/tilix/schemes/Catppuccin-Frappe.json".source = (pkgs.fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "tilix";
|
||||
rev = "3fd05e03419321f2f2a6aad6da733b28be1765ef";
|
||||
hash = "sha256-SI7QxQ+WBHzeuXbTye+s8pi4tDVZOV4Aa33mRYO276k=";
|
||||
} + "/src/Catppuccin-Frappe.json");
|
||||
};
|
||||
}
|
||||
17
modules/shared/home/linux/apps/waybar.nix
Normal file
17
modules/shared/home/linux/apps/waybar.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{ pkgs, ... }: {
|
||||
home.file = {
|
||||
".config/waybar/config".source = ../../../files/waybar/config;
|
||||
".config/waybar/frappe.css".source = (pkgs.fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "waybar";
|
||||
rev = "f74ab1eecf2dcaf22569b396eed53b2b2fbe8aff";
|
||||
hash = "sha256-WLJMA2X20E5PCPg0ZPtSop0bfmu+pLImP9t8A8V4QK8=";
|
||||
} + "/themes/frappe.css");
|
||||
".config/waybar/style.css".source = ../../../files/waybar/style.css;
|
||||
};
|
||||
|
||||
programs = {
|
||||
# Using file in ../../files/waybar/ to configure waybar
|
||||
waybar.enable = true;
|
||||
};
|
||||
}
|
||||
46
modules/shared/home/linux/apps/xfce4-terminal.nix
Normal file
46
modules/shared/home/linux/apps/xfce4-terminal.nix
Normal file
|
|
@ -0,0 +1,46 @@
|
|||
{ ... }: {
|
||||
home.file = {
|
||||
".config/xfce4/terminal/accels.scm".source = ../../../files/xfce4/terminal/accels.scm;
|
||||
};
|
||||
|
||||
xfconf.settings = {
|
||||
xfce4-terminal = {
|
||||
"background-mode" = "TERMINAL_BACKGROUND_TRANSPARENT";
|
||||
"background-darkness" = "0.90000000000000000";
|
||||
"color-foreground" = "#e3e3ea";
|
||||
"color-background" = "#08052b";
|
||||
"color-cursor" = "#ff7f7f";
|
||||
"color-cursor-use-default" = false;
|
||||
"color-palette" = "#000000;#e52222;#a6e32d;#fc951e;#c48dff;#fa2573;#67d9f0;#f2f2f2;#555555;#ff5555;#55ff55;#ffff55;#5555ff;#ff55ff;#55ffff;#ffffff";
|
||||
"font-name" = "Hack Nerd Font Mono 12";
|
||||
"misc-always-show-tabs" = false;
|
||||
"misc-bell" = false;
|
||||
"misc-bell-urgent" = true;
|
||||
"misc-borders-default" = true;
|
||||
"misc-cursor-blinks" = false;
|
||||
"misc-cursor-shape" = "TERMINAL_CURSOR_SHAPE_BLOCK";
|
||||
"misc-default-geometry" = "120x24";
|
||||
"misc-inherit-geometry" = false;
|
||||
"misc-menubar-default" = true;
|
||||
"misc-mouse-autohide" = false;
|
||||
"misc-mouse-wheel-zoom" = true;
|
||||
"misc-toolbar-default" = false;
|
||||
"misc-confirm-close" = true;
|
||||
"misc-cycle-tabs" = true;
|
||||
"misc-tab-close-buttons" = true;
|
||||
"misc-tab-close-middle-click" = true;
|
||||
"misc-tab-position" = "GTK_POS_TOP";
|
||||
"misc-highlight-urls" = true;
|
||||
"misc-middle-click-opens-uri" = false;
|
||||
"misc-copy-on-select" = false;
|
||||
"misc-show-relaunch-dialog" = true;
|
||||
"misc-rewrap-on-resize" = true;
|
||||
"misc-slim-tabs" = true;
|
||||
"misc-new-tab-adjacent" = false;
|
||||
"misc-search-dialog-opacity" = "100";
|
||||
"misc-show-unsafe-paste-dialog" = true;
|
||||
"scrolling-unlimited" = true;
|
||||
"title-initial" = "xfce4-terminal";
|
||||
};
|
||||
};
|
||||
}
|
||||
17
modules/shared/home/linux/default.nix
Normal file
17
modules/shared/home/linux/default.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{ pkgs, ... }: {
|
||||
home.packages = with pkgs; [
|
||||
fastfetch
|
||||
];
|
||||
|
||||
programs = {
|
||||
# Linux-specific aliases
|
||||
zsh.shellAliases = {
|
||||
nixboot = "sudo nixos-rebuild boot --flake ~/repos/dots && echo 'Time to reboot!'";
|
||||
nixdiff = "cd ~/repos/dots && nixos-rebuild build --flake . && nvd diff /run/current-system result";
|
||||
nixup = "sudo nixos-rebuild switch --flake ~/repos/dots";
|
||||
uwgconnect = "nmcli dev wifi connect SecureWest password";
|
||||
uwgforget = "nmcli connection delete SecureWest";
|
||||
ykey = "sudo systemctl restart pcscd && sudo pkill -9 gpg-agent && source ~/.zshrc; ssh-add -L";
|
||||
};
|
||||
};
|
||||
}
|
||||
20
modules/shared/nixos/flatpaks.nix
Normal file
20
modules/shared/nixos/flatpaks.nix
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
|
||||
{ ... }: {
|
||||
services = {
|
||||
flatpak = {
|
||||
enable = true;
|
||||
packages = [
|
||||
"im.riot.Riot"
|
||||
"com.cassidyjames.butler"
|
||||
"com.logseq.Logseq"
|
||||
"com.vivaldi.Vivaldi"
|
||||
"org.signal.Signal"
|
||||
"org.telegram.desktop"
|
||||
];
|
||||
update.auto = {
|
||||
enable = true;
|
||||
onCalendar = "daily";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
17
modules/shared/nixos/internationalisation.nix
Normal file
17
modules/shared/nixos/internationalisation.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
{ ... }: {
|
||||
# Select internationalisation properties.
|
||||
i18n = {
|
||||
defaultLocale = "en_US.UTF-8";
|
||||
extraLocaleSettings = {
|
||||
LC_ADDRESS = "en_US.UTF-8";
|
||||
LC_IDENTIFICATION = "en_US.UTF-8";
|
||||
LC_MEASUREMENT = "en_US.UTF-8";
|
||||
LC_MONETARY = "en_US.UTF-8";
|
||||
LC_NAME = "en_US.UTF-8";
|
||||
LC_NUMERIC = "en_US.UTF-8";
|
||||
LC_PAPER = "en_US.UTF-8";
|
||||
LC_TELEPHONE = "en_US.UTF-8";
|
||||
LC_TIME = "en_US.UTF-8";
|
||||
};
|
||||
};
|
||||
}
|
||||
25
modules/shared/nixos/lets-encrypt.nix
Normal file
25
modules/shared/nixos/lets-encrypt.nix
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
{ config, username, ... }: {
|
||||
|
||||
##########################################################################
|
||||
# #
|
||||
# This module sets up Let's Encrypt certs via a DNS challenge to Gandi #
|
||||
# #
|
||||
##########################################################################
|
||||
|
||||
security.acme = {
|
||||
acceptTerms = true;
|
||||
defaults = {
|
||||
email = "lets-encrypt@technicalissues.us";
|
||||
credentialFiles = { "GANDIV5_PERSONAL_ACCESS_TOKEN_FILE" = "${config.sops.secrets.gandi_dns_pat.path}"; };
|
||||
dnsProvider = "gandiv5";
|
||||
dnsResolver = "ns1.gandi.net";
|
||||
# uncomment below for testing
|
||||
#server = "https://acme-staging-v02.api.letsencrypt.org/directory";
|
||||
};
|
||||
};
|
||||
|
||||
sops = {
|
||||
age.keyFile = "${config.users.users.${username}.home}/.config/sops/age/keys.txt";
|
||||
secrets.gandi_dns_pat.sopsFile = ../secrets.yaml;
|
||||
};
|
||||
}
|
||||
7
modules/shared/nixos/nixroutes.nix
Normal file
7
modules/shared/nixos/nixroutes.nix
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
{ config, lib, ... }:
|
||||
let
|
||||
hostName = config.networking.hostName;
|
||||
in {
|
||||
programs.zsh.shellAliases.nixroutes =
|
||||
"cd ~/repos/dots && echo '=== Current Routes ===' && ip route show && ip -6 route show && echo '' && echo '=== New Build Routes ===' && nix eval --json '.#nixosConfigurations.${hostName}.config.systemd.network.networks.\"10-wan\".routes'";
|
||||
}
|
||||
32
modules/shared/nixos/restic.nix
Normal file
32
modules/shared/nixos/restic.nix
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{ config, pkgs, ... }: {
|
||||
environment.systemPackages = with pkgs; [
|
||||
restic
|
||||
];
|
||||
|
||||
sops.secrets = {
|
||||
restic_env.sopsFile = ../secrets.yaml;
|
||||
restic_repo.sopsFile = ../secrets.yaml;
|
||||
restic_password.sopsFile = ../secrets.yaml;
|
||||
};
|
||||
|
||||
services.restic.backups = {
|
||||
daily = {
|
||||
initialize = true;
|
||||
|
||||
environmentFile = config.sops.secrets.restic_env.path;
|
||||
repositoryFile = config.sops.secrets.restic_repo.path;
|
||||
passwordFile = config.sops.secrets.restic_password.path;
|
||||
|
||||
extraBackupArgs = [
|
||||
"--retry-lock 2h"
|
||||
];
|
||||
|
||||
pruneOpts = [
|
||||
"--keep-daily 7"
|
||||
"--keep-weekly 5"
|
||||
"--keep-monthly 6"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
23
modules/shared/nixos/ripping.nix
Normal file
23
modules/shared/nixos/ripping.nix
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
{ pkgs, ... }: {
|
||||
# Be sure this is added if on NixOS
|
||||
# boot.kernelModules = [ "sg" ];
|
||||
|
||||
# Also, get KEYDB.cfg per https://wiki.archlinux.org/title/Blu-ray
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
abcde
|
||||
asunder
|
||||
handbrake
|
||||
lame
|
||||
libaacs
|
||||
libbdplus
|
||||
libbluray
|
||||
libdvdcss
|
||||
libdvdnav
|
||||
libdvdread
|
||||
makemkv
|
||||
mkvtoolnix
|
||||
mkvtoolnix-cli
|
||||
];
|
||||
}
|
||||
|
||||
115
modules/shared/secrets.yaml
Normal file
115
modules/shared/secrets.yaml
Normal file
|
|
@ -0,0 +1,115 @@
|
|||
gandi_dns_pat: ENC[AES256_GCM,data:3L1RDSbCqkmLmguSgsJsf3gdnSi/zxS8xtl+B+kwBeaOnX3X5fmM7A==,iv:SWAfEAC/3klgreTppGZWV5SACrQEEL8tsXUvYFlJXyk=,tag:IiekQLSf1vnjRQr6ZRsVMQ==,type:str]
|
||||
gandi_api: ENC[AES256_GCM,data:YsdDMk75miIKO4LkCZjfwJw6gxfrmsTL,iv:BOPRxB661sPJnUH1AUKEALIJfBeyAHZpkWJEDbY+7i8=,tag:TvtW7qhPbOqi9kKDcIe28w==,type:str]
|
||||
hetzner_api_token: ENC[AES256_GCM,data:8+bYBnI6vSQ7QIDFv0zplU2A2lW2c7JA9WArCGeAgjg=,iv:Y92uRgjKfuGDY4HMr+j6uDweMmMCx0FBydP3alGgb3M=,tag:cbmeVnP1XcqE+T0qpzJfbw==,type:str]
|
||||
hetzner_lego_env: ENC[AES256_GCM,data:xRADnkMC/mTq8/oRpZ+NYTStB9qX2N6V0GNIpGsXNedgO3bTvowgMukyDW4nX19V627ykk5vPC/HTRhZ8ia2KxRJfqa+9n5+Eg83iAFtrQGOe2rvEGEHDUoCTSb/G8YA8XzB3t69Xc+o8g59Grf4rXvNLEEwewn92BP7YWoxvpPaeT3yl/g7/0m4SDXKR/D3LtiN4nikiUFYT6nBG+WipMK3oEw=,iv:dL4hw4/v1FgJKwmCzIpMKvryrm+mMb7SoohPi78paPY=,tag:Lq3vBkyVbv7w5/RIHcsiUg==,type:str]
|
||||
restic_env: ENC[AES256_GCM,data:FCYR8tkClRwfcjUotcr28D6uRz7sNihn50nw38CaYnqOD/U9+5kU0iAPSvqAbeuw+xUoKKKAPAfMHI12dPTYt17Wz1N7i4a+MRkiIR9pjyv5KZTK59G+,iv:jStc8GMbZUQUgooZiRdImSZskdckYN1cRm2gsKbUyYY=,tag:HpQQIj1j7fjCmxkSeY/k4g==,type:str]
|
||||
restic_repo: ENC[AES256_GCM,data:kCoNYVKwB87W4h5doa3IXj4n,iv:jKEw/Hki/tp3RSTsRB4dlg593I5B4pCLBav84ADCh70=,tag:+GFF5vHOVw0r/G8BbhcCjw==,type:str]
|
||||
restic_password: ENC[AES256_GCM,data:PfQsxJul1Qpt3WQoUEI941l+yng3lVjhDd8=,iv:U5KjhcVqyksN2ay19RBjNhYIB31tUbfNRIqCEx/+Wbc=,tag:jsoU+B1mjAprPK+M5I0pAQ==,type:str]
|
||||
vmagent_push_pw: ENC[AES256_GCM,data:Ey82+FQWOdTn8iTcCbn73A2pYIh8dfD6Dw==,iv:0xEtakEOzZd2wbg407aA0rLeZqPo5NpqWdTSD3VQ+yw=,tag:wINlAjbCYnw9L4odxKJFAg==,type:str]
|
||||
uptimekuma_grafana_api_key: ENC[AES256_GCM,data:cXdbdiEa4dqigcojFgE8Wf4esjbF7wmrx5BuEQltfwM5fNJQG6LP/8ZcopI=,iv:dUftPkEyy1DMq5fJTQiJlDab2UMAbwJt+81p35eBrAU=,tag:Nh+X6lTKB5EboADaSVK00g==,type:str]
|
||||
wifi_creds: ENC[AES256_GCM,data:9lgTtI8YHyCHrvqss4W7coLnqfOAoQzrCQne6dLv0x66pt7jLo4Y6YSd3TklRTurS9usvNk3sg==,iv:6g86hOmpnOxf4p4C+wPit7EP0DD+xb+cINiWRJnTRDM=,tag:ZW336IhXtrf5l5n/RJecoQ==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age1hraf69phgqg9y48m2r2sn6tr2sw7tf2h5j62ysl8nrv3qs2ft9kst0ysxm
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByYlJMcjFGdXlqUjRKSGFm
|
||||
bSszUXFhWHlJRFRVRDBxQ0hzeFpXOFJ1aGxNCjhPOVFkN2Mwc2p3WFkrOUdkN2lH
|
||||
RDNSUXRMTzFaUEFqR1RtRnZKTTFJZnMKLS0tIHp2MUYxdFkzTHJsdXkyaGZ6Z3g3
|
||||
VVB2cWg4Zzd3eDhXZUxnUXU3OTVQaEkKmqqosAsTkB1CHuX15K6z05YeW+nKS4ra
|
||||
y+vwbvsL3MrA60abGzbap3kwTxKcI24syF6VM+aLOhjZ0uXl/tNlig==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1rd55wsu0hhvxk25tm69d9h57z0z0u6556x4ypg09muj3vh4yqs5qaw23nu
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBrZEtaZXFkZm9veHBoTmFk
|
||||
VngyVkw1Rk5ZN3g2YThwcGEyTW5VVVVKNFZFClNkUnpEOXAvNGpVdEF5Z1hvbXZo
|
||||
UkQ1WVpCSEZBUHVqTlpocGxUbVJHTWcKLS0tIDg1dHRjTXRMN1VCdEYyTi94dWlF
|
||||
SzVwU1V0MG0yUlJRcXhsUlNFTWJRSjAK73rY+yjr0iqYv+CaB5GPlIc024MYCLCC
|
||||
2OUBYY08R2B1XpRCASfKiIIPQ/Huuc5gg5YvVif+AqhtknuEDjbpOQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age180w4c04kga07097u0us6d72aslnv2523hx64x8fzgzu4tccrxuyqa50hpm
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzNkRvRmlkSEFKaFN0Z1hm
|
||||
a1NIMFRDa3BESGpxMnJXQ1Y5QUNkZWYwQ0NBCjFEeTBCWmRLeHFWRVNqZW4xYWZz
|
||||
RnhDMUk0UENDL3RzeVJUOGY3Mk1vZ1kKLS0tIHI5eExNRm8yd1ZkYzk2OEdEMzlr
|
||||
WStheUs3cUhxTDM4WHFFTlNYbGlIYWsKaO4b3vdMyYelMiSBFetgly4es86gHTnw
|
||||
2LfArG6WkyNBd67Ph+h8ZKoStBbomSxHQGQucjNNMZrCDthCWcEWOw==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1an6t5f0rr6h55rzsv5ejycxju72rp46jka840fwvupwfk65jegrq7hmkl9
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaRHNzeFhUWWVEd2R6TWR4
|
||||
OE81a3crTG1vTUszNFloV0FzZ3p0dmxrZGhVCjhvdTFreHFBaUZuQXNHVDRvQVcw
|
||||
ZkpzR2FsZ2wvQlc5eDg5dXZTVURnMzgKLS0tIDUvN3F0NFJXbkFjb0V3bFJBSjlB
|
||||
WnBCVGRwcnMxTStlUXNDNngzZldYZk0KY01d0gKZv9jw3Cw+YQRJt0zU729Cw0qn
|
||||
Gq5spObvBxDtVUD0fxPSKLISEHewjp4SHGXyEtZgOBfVn34i8so/Bg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1g4h5a4f5xfle2a6np8te342pphs3mcuan60emz2zp87nrwjzl5yquhr5vl
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxSUdqL0k3SW9CNkhaZS9v
|
||||
QStDcDEvWU0zdlBVeGp0N1UyK0U2QUFRendNCnBTTE9ISEx5YXF4L3ZZS2Vkc09T
|
||||
R2o0MThxNDZodmtNZGVCaTdRaHp6ZDAKLS0tIG9makRzNXl0T296ZFNxcml1Tm8y
|
||||
dmUxL2h5NW4wREJESWtKUE9uaWJWaFkKgTI0BAVLKv6nFwux8qYEzY/WaIpsVjvs
|
||||
QedPomARpnTMeyioRmx5b053iyjp8CQc6QQq2xjK44QXBuiku37+Cw==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1g24zhwvgenpc4wqejt63thvgd4rn5x9n7nnwwme7dm83nfqpp93se2vmq4
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3L1RqVTFXYjV6aDhUNEx2
|
||||
VHlkK2o1c2k3NHVDWFNOcXNQTDByZmk5WkN3Cmd6UDNmYSs1YXZ2c3BkNVEzQWQy
|
||||
MUhoTmlYUHQyN05CZU1VQ21kMkcwc0kKLS0tIDF4cnZpYW5BRUdJbDcycjZGQndi
|
||||
K2VRaHlFV0NGdU1lQ1NjTlhnRXpxK28KDa5ZhWkYMmiZDe8vqyvxkpQT59B5JWWl
|
||||
8Yv0lagvphZWUlW9+VDDtzJ5xxAIB2e2SSFbVifIDdOtUnqK1BElkQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1ueus0ucmvqhgkw3vyc8zxaq0qjc84cfrcuqpheppem68s4a2vq0qw376yc
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA2amlRMHdldFBCMnJEZWxF
|
||||
MHhlU0dVQlFOUHVYZkJwMlhlUWgxa2tuWVR3CnVOaDRCZXR0cHc5VnExUTZQVkpm
|
||||
UnM4YUNTVmoyRnN2T0NoQmFpajNDYU0KLS0tIGtiS1poclhNb0g0VnhSMDRoc1U0
|
||||
SUlNOEtHZHAxQUZzMXQ0enExVU5KcEUKmT+lutdKcHMZoeSRAdiucgCHktjEbJJA
|
||||
aW0kgGzwzX35+hmAp3rRopXIV8q78yFKquQXw8KKg3QrEIN3lfZgsA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1awdf9h0avajf57cudx0rjfmxu2wlxw8wf3sa7yvfk8rp4j6taecsu74x77
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBmbG9nMFNsQllmZmdOSHQ0
|
||||
dkFMaGpReHRMZDdFcFBuV3EwZlMvUnRYMEEwCmtOVFYyV3RmcWdPQUhhQWRJL1lR
|
||||
NEpQOHM0YXJ2V0pzK3BIY3k3RDJsVTgKLS0tIHh0MkZxWWxoVU03UE1HVjdhNnRh
|
||||
UzlJaXR4bEpGQ1hDLzB5cS8xWUY4MGcKh6avg0kdeETMcmarQ2ePK7Xf/RA5kwJ0
|
||||
6s2DbtzlsRKqzHnlgreBUYzDlXq3FSqcOMa4BStPTlCY63sbmm6S8Q==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1rt72txg22w8y3cdvq9w7zff0cas6xtkplpj36kxnevfnrtn82f6ss7yw7d
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBNTnF2WTNuQUxlblVucXds
|
||||
TS84MHZ0TldnTWVhQkc0TGxRemhYV2RQTDJZCmI1dk05Rm80VnVRL20yU0pPeHlY
|
||||
cEdQbjVlaWZRSE40enBJWEo4eUF0MmcKLS0tIDJWMEpGc2IyVUllbnF4MENLY2xL
|
||||
NG5rWXI2Vmo5TTJKVVZTdW1jYnlCREEKE6FLmk6sTAUXL0tNTOD48KulzKPUZWuG
|
||||
E5T8dfMYK6mtnQ3g2lwUS+0dhLO5RTcGvHZZt1tpwgEVDrjrs7pAdA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1xaaf9enkf669w0cfnlx4ksd9g2kvvkuskp4xw7x84x6u492ulquqfjez5s
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2K1dLNDZRY3hnYkdkYnFj
|
||||
OHFrL2ttMlZLT1VRNkpIMmY1eVpON1BnVDI4CkhrcHNLVFZVUnQyUWlhanVqQkVL
|
||||
T3JmTTBWSUxNd2JwS3NWZkl3NUdDa00KLS0tIEZCaS9rbnhmQkovSVA3ODFPRnlZ
|
||||
SFZpSFhNdzF5V2JISm5pSTJZeWU4a2MKfFyLl6KXSuNFKX7mQdK4Vvt1I9WHWhto
|
||||
xscy8hwIC4BW7K2STE3rM4l7fOUoi+52remWzmH4paS50WCMBHLelw==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1zz34qx3n3dj63sva24kaymetv3apn58lafjq4dl6zw7xxachuyts00mhck
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZa1VXTFpndkZTK0VybEsv
|
||||
K011NlJYTjd4UjRFaWU4ZUY2S0hvL3BHbWk0Cmw2a0YreDNVRUU2Y0VGK0p6dHRG
|
||||
YXlkZUpHTENTV2lmcGYrQUhVRkg2V1kKLS0tIEtYLzNkUG5lZXJ4b0hKOXJLZzJw
|
||||
ODFjcWxtRjkweGJvdzdWSEphMHRCdm8Kx0amHgaZZR26c+VRVTyBEnm+w5c5nA7R
|
||||
txHj1U349LbfEsovTqZAL1o2WuX+gmXSj1aeXPKW+S0bIagC6dDacA==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2026-02-01T03:15:26Z"
|
||||
mac: ENC[AES256_GCM,data:gGk69AnZNAlA5fxViXZQMpGStn8v2L/IyIUAshyrlAKu8dcTDQfCDfC2kTlo0Q/gwhqchSKYFFKWWze7EUwUWmlYjJu5MEEK4aQ0HEObff27AKQloOln1X3jiIR7bnsKoakbAKJWYpGf6PWClbH64mjoJhBroG5amAwE25bevDE=,iv:bO2kFuGcq/1j2uo2y5/UwOHNQ5A8orStI190NMdAr1E=,tag:7xwClQ28I695qDICc0GS+A==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.11.0
|
||||
Loading…
Add table
Add a link
Reference in a new issue