mirror of
https://github.com/davegallant/nix-config
synced 2025-11-27 20:54:16 +00:00
Compare commits
1 Commits
d6d5ce1012
...
61e6743c8c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
61e6743c8c |
4
.git-crypt/.gitattributes
vendored
Normal file
4
.git-crypt/.gitattributes
vendored
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# Do not edit this file. To specify the files to encrypt, create your own
|
||||||
|
# .gitattributes file in the directory where your files are.
|
||||||
|
* !filter !diff
|
||||||
|
*.gpg binary
|
||||||
Binary file not shown.
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
**/.aws/** filter=git-crypt diff=git-crypt
|
||||||
10
.github/dependabot.yml
vendored
Normal file
10
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: github-actions
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: daily
|
||||||
|
reviewers:
|
||||||
|
- davegallant
|
||||||
|
assignees:
|
||||||
|
- davegallant
|
||||||
4
Makefile
4
Makefile
@@ -25,10 +25,6 @@ rollback:
|
|||||||
|
|
||||||
update:
|
update:
|
||||||
nix flake update
|
nix flake update
|
||||||
make
|
|
||||||
git add .
|
|
||||||
git commit -S -m "nix flake update: $$(TZ=UTC date +%Y-%m-%d_%H-%M-%S)"
|
|
||||||
git push
|
|
||||||
|
|
||||||
fmt:
|
fmt:
|
||||||
alejandra .
|
alejandra .
|
||||||
|
|||||||
@@ -36,3 +36,7 @@ make rollback
|
|||||||
## Pre-commit hooks
|
## Pre-commit hooks
|
||||||
|
|
||||||
Pre-commit hooks are automatically activated when [direnv](https://github.com/direnv/direnv) is installed.
|
Pre-commit hooks are automatically activated when [direnv](https://github.com/direnv/direnv) is installed.
|
||||||
|
|
||||||
|
## Encryption
|
||||||
|
|
||||||
|
Overly sensitive configuration is encrypted with [git-crypt](https://www.agwa.name/projects/git-crypt/).
|
||||||
|
|||||||
18
flake.lock
generated
18
flake.lock
generated
@@ -30,11 +30,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1708231718,
|
"lastModified": 1707707289,
|
||||||
"narHash": "sha256-IZdieFWvhBkxoOFMDejqLUYqD94WN6k0YSpw0DFy+4g=",
|
"narHash": "sha256-YuDt/eSTXMEHv8jS8BEZJgqCcG8Tr3cyqaZjJFXZHsw=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "0e6857fa1d632637488666c08e7b02c08e3178f8",
|
"rev": "44f50a5ecaab72a61d5fd8e5c5717bc4bf9c25dd",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -204,11 +204,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1708247094,
|
"lastModified": 1708151420,
|
||||||
"narHash": "sha256-H2VS7VwesetGDtIaaz4AMsRkPoSLEVzL/Ika8gnbUnE=",
|
"narHash": "sha256-MGT/4aGCWQPQiu6COqJdCj9kSpLPiShgbwpbC38YXC8=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "045b51a3ae66f673ed44b5bbd1f4a341d96703bf",
|
"rev": "6e2f00c83911461438301db0dba5281197fe4b3a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -220,11 +220,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1708161998,
|
"lastModified": 1708105575,
|
||||||
"narHash": "sha256-6KnemmUorCvlcAvGziFosAVkrlWZGIc6UNT9GUYr0jQ=",
|
"narHash": "sha256-sS4AItZeUnAei6v8FqxNlm+/27MPlfoGym/TZP0rmH0=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "84d981bae8b5e783b3b548de505b22880559515f",
|
"rev": "1d1817869c47682a6bee85b5b0a6537b6c0fba26",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|||||||
BIN
home/.aws/config
Executable file
BIN
home/.aws/config
Executable file
Binary file not shown.
147
home/default.nix
147
home/default.nix
@@ -4,6 +4,16 @@
|
|||||||
unstable,
|
unstable,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
hound-nvim = pkgs.vimUtils.buildVimPlugin {
|
||||||
|
name = "hound-nvim";
|
||||||
|
nativeBuildInputs = with pkgs; [lua53Packages.luacheck stylua];
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "davegallant";
|
||||||
|
repo = "hound.nvim";
|
||||||
|
rev = "e85ba4f65ece79fe6332d8a0ccc594a0d367f4ed";
|
||||||
|
sha256 = "sha256-fxPtixVB6dVjrxpJ1oP+eA00JSiKxWuii8pMxVeuyMY=";
|
||||||
|
};
|
||||||
|
};
|
||||||
inherit (pkgs) stdenv;
|
inherit (pkgs) stdenv;
|
||||||
in {
|
in {
|
||||||
home.stateVersion = "23.11";
|
home.stateVersion = "23.11";
|
||||||
@@ -370,38 +380,6 @@ in {
|
|||||||
nixvim = {
|
nixvim = {
|
||||||
enable = true;
|
enable = true;
|
||||||
colorschemes.gruvbox.enable = true;
|
colorschemes.gruvbox.enable = true;
|
||||||
keymaps = [
|
|
||||||
{
|
|
||||||
key = "<C-n>";
|
|
||||||
mode = ["n"];
|
|
||||||
action = "<cmd>tabnew<cr>";
|
|
||||||
options = {
|
|
||||||
silent = true;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
# copy to OS clipboard
|
|
||||||
{
|
|
||||||
key = "<leader>y";
|
|
||||||
mode = ["v"];
|
|
||||||
action = "\"+y";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "gD";
|
|
||||||
mode = ["n"];
|
|
||||||
action = "<cmd>lua vim.lsp.buf.declaration()<CR>";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "gd";
|
|
||||||
mode = ["n"];
|
|
||||||
action = "<cmd>lua vim.lsp.buf.definition()<CR>";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
key = "gr";
|
|
||||||
mode = ["n"];
|
|
||||||
action = "<cmd>lua vim.lsp.buf.references()<CR>";
|
|
||||||
}
|
|
||||||
];
|
|
||||||
|
|
||||||
plugins = {
|
plugins = {
|
||||||
cmp-path.enable = true;
|
cmp-path.enable = true;
|
||||||
cmp-treesitter.enable = true;
|
cmp-treesitter.enable = true;
|
||||||
@@ -410,19 +388,6 @@ in {
|
|||||||
gitblame.enable = true;
|
gitblame.enable = true;
|
||||||
gitsigns.enable = true;
|
gitsigns.enable = true;
|
||||||
lualine.enable = true;
|
lualine.enable = true;
|
||||||
lsp.enable = true;
|
|
||||||
lsp.servers = {
|
|
||||||
#ansiblels.enable = true;
|
|
||||||
bashls.enable = true;
|
|
||||||
#dockerls.enable = true;
|
|
||||||
gopls.enable = true;
|
|
||||||
#helm-ls.enable = true;
|
|
||||||
jsonls.enable = true;
|
|
||||||
pyright.enable = true;
|
|
||||||
rnix-lsp.enable = true;
|
|
||||||
terraformls.enable = true;
|
|
||||||
yamlls.enable = true;
|
|
||||||
};
|
|
||||||
nvim-cmp.enable = true;
|
nvim-cmp.enable = true;
|
||||||
rainbow-delimiters.enable = true;
|
rainbow-delimiters.enable = true;
|
||||||
treesitter.enable = true;
|
treesitter.enable = true;
|
||||||
@@ -496,6 +461,15 @@ in {
|
|||||||
-- Format JSON
|
-- Format JSON
|
||||||
vim.cmd([[command! JsonFormat execute "::%!jq '.'"]])
|
vim.cmd([[command! JsonFormat execute "::%!jq '.'"]])
|
||||||
|
|
||||||
|
-- Tab shortcuts
|
||||||
|
vim.api.nvim_set_keymap("n", "<C-n>", "<cmd>tabnew<cr>", { noremap = true })
|
||||||
|
|
||||||
|
-- Copy to OS clipboard
|
||||||
|
vim.api.nvim_set_keymap("v", "<leader>y", '"+y', { noremap = true })
|
||||||
|
|
||||||
|
-- Folding
|
||||||
|
vim.api.nvim_set_keymap("n", "<space>", "za", { silent = true, noremap = true })
|
||||||
|
|
||||||
-- Remember line number
|
-- Remember line number
|
||||||
vim.cmd([[au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif]])
|
vim.cmd([[au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") | exe "normal! g`\"" | endif]])
|
||||||
|
|
||||||
@@ -512,6 +486,18 @@ in {
|
|||||||
vim.cmd([[highlight ExtraWhitespace ctermbg=red guibg=red]])
|
vim.cmd([[highlight ExtraWhitespace ctermbg=red guibg=red]])
|
||||||
vim.cmd([[match ExtraWhitespace /\s\+$/]])
|
vim.cmd([[match ExtraWhitespace /\s\+$/]])
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- LSP {{{1 -------------------------------------------------------------------
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- See `:help vim.lsp.*` for documentation on any of the below functions
|
||||||
|
|
||||||
|
local opts = { noremap=true, silent=true }
|
||||||
|
vim.api.nvim_set_keymap('n', 'gD', '<cmd>lua vim.lsp.buf.declaration()<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', 'gd', '<cmd>lua vim.lsp.buf.definition()<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)
|
||||||
|
vim.api.nvim_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)
|
||||||
|
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
-- completion {{{1 -------------------------------------------------------------------
|
-- completion {{{1 -------------------------------------------------------------------
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
@@ -523,6 +509,66 @@ in {
|
|||||||
|
|
||||||
local cmp = require("cmp")
|
local cmp = require("cmp")
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- lsp {{{1 -------------------------------------------------------------------
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
local lspconfig = require "lspconfig"
|
||||||
|
|
||||||
|
lspconfig.ansiblels.setup({
|
||||||
|
capabilities = capabilities,
|
||||||
|
cmd = {os.getenv("HOME") .. "/.npm-packages/bin/ansible-language-server", "--stdio"};
|
||||||
|
})
|
||||||
|
|
||||||
|
lspconfig.bashls.setup({
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
|
||||||
|
lspconfig.gopls.setup({
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
lspconfig.pyright.setup({
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
|
||||||
|
lspconfig.rls.setup({
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
|
||||||
|
lspconfig.rnix.setup({
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
|
||||||
|
lspconfig.solargraph.setup({
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
|
||||||
|
lspconfig.terraformls.setup({
|
||||||
|
filetypes={"terraform","tf","hcl"},
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
|
||||||
|
lspconfig.tflint.setup({
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
|
||||||
|
lspconfig.yamlls.setup({
|
||||||
|
capabilities = capabilities,
|
||||||
|
})
|
||||||
|
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
-- Plugins {{{1 ---------------------------------------------------------------
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-- status line
|
||||||
|
require("lualine").setup({
|
||||||
|
options = {
|
||||||
|
theme = "gruvbox",
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
-- folding
|
-- folding
|
||||||
vim.api.nvim_exec(
|
vim.api.nvim_exec(
|
||||||
[[
|
[[
|
||||||
@@ -533,6 +579,12 @@ in {
|
|||||||
]],
|
]],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
-- vim-prettier
|
||||||
|
vim.g["prettier#autoformat"] = 1
|
||||||
|
|
||||||
|
-- git-blame
|
||||||
|
vim.g.gitblame_enabled = 1
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -578,4 +630,9 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
home.file = {
|
||||||
|
# ".config/nvim/lua".source = ./nvim/lua;
|
||||||
|
".aws/config".source = ./.aws/config;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,8 +21,6 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.NetworkManager-wait-online.enable = false;
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
sshd.enable = true;
|
sshd.enable = true;
|
||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ in {
|
|||||||
# essentials
|
# essentials
|
||||||
curl
|
curl
|
||||||
gcc
|
gcc
|
||||||
|
git-crypt
|
||||||
gnumake
|
gnumake
|
||||||
gnupg
|
gnupg
|
||||||
imagemagick
|
imagemagick
|
||||||
@@ -57,7 +58,7 @@ in {
|
|||||||
unstable.google-cloud-sdk
|
unstable.google-cloud-sdk
|
||||||
unstable.awscli2
|
unstable.awscli2
|
||||||
|
|
||||||
# LSP
|
# language servers
|
||||||
nodePackages.bash-language-server
|
nodePackages.bash-language-server
|
||||||
nodePackages.pyright
|
nodePackages.pyright
|
||||||
nodePackages.yaml-language-server
|
nodePackages.yaml-language-server
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
|
||||||
"extends": [
|
|
||||||
"config:recommended"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user