mirror of
https://github.com/davegallant/nix-config
synced 2025-10-06 16:46:00 +00:00
Compare commits
6 Commits
61e6743c8c
...
d6d5ce1012
Author | SHA1 | Date | |
---|---|---|---|
|
d6d5ce1012 | ||
|
96f234b1cb | ||
|
b8f7ee686e | ||
|
113a7b94e2 | ||
|
f2f5b9ee3e | ||
|
adb94b9e57 |
4
.git-crypt/.gitattributes
vendored
4
.git-crypt/.gitattributes
vendored
@@ -1,4 +0,0 @@
|
|||||||
# 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
1
.gitattributes
vendored
@@ -1 +0,0 @@
|
|||||||
**/.aws/** filter=git-crypt diff=git-crypt
|
|
10
.github/dependabot.yml
vendored
10
.github/dependabot.yml
vendored
@@ -1,10 +0,0 @@
|
|||||||
version: 2
|
|
||||||
updates:
|
|
||||||
- package-ecosystem: github-actions
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: daily
|
|
||||||
reviewers:
|
|
||||||
- davegallant
|
|
||||||
assignees:
|
|
||||||
- davegallant
|
|
4
Makefile
4
Makefile
@@ -25,6 +25,10 @@ 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,7 +36,3 @@ 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": 1707707289,
|
"lastModified": 1708231718,
|
||||||
"narHash": "sha256-YuDt/eSTXMEHv8jS8BEZJgqCcG8Tr3cyqaZjJFXZHsw=",
|
"narHash": "sha256-IZdieFWvhBkxoOFMDejqLUYqD94WN6k0YSpw0DFy+4g=",
|
||||||
"owner": "lnl7",
|
"owner": "lnl7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "44f50a5ecaab72a61d5fd8e5c5717bc4bf9c25dd",
|
"rev": "0e6857fa1d632637488666c08e7b02c08e3178f8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -204,11 +204,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1708151420,
|
"lastModified": 1708247094,
|
||||||
"narHash": "sha256-MGT/4aGCWQPQiu6COqJdCj9kSpLPiShgbwpbC38YXC8=",
|
"narHash": "sha256-H2VS7VwesetGDtIaaz4AMsRkPoSLEVzL/Ika8gnbUnE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "6e2f00c83911461438301db0dba5281197fe4b3a",
|
"rev": "045b51a3ae66f673ed44b5bbd1f4a341d96703bf",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@@ -220,11 +220,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1708105575,
|
"lastModified": 1708161998,
|
||||||
"narHash": "sha256-sS4AItZeUnAei6v8FqxNlm+/27MPlfoGym/TZP0rmH0=",
|
"narHash": "sha256-6KnemmUorCvlcAvGziFosAVkrlWZGIc6UNT9GUYr0jQ=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "1d1817869c47682a6bee85b5b0a6537b6c0fba26",
|
"rev": "84d981bae8b5e783b3b548de505b22880559515f",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
BIN
home/.aws/config
BIN
home/.aws/config
Binary file not shown.
147
home/default.nix
147
home/default.nix
@@ -4,16 +4,6 @@
|
|||||||
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";
|
||||||
@@ -380,6 +370,38 @@ 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;
|
||||||
@@ -388,6 +410,19 @@ 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;
|
||||||
@@ -461,15 +496,6 @@ 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]])
|
||||||
|
|
||||||
@@ -486,18 +512,6 @@ 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 -------------------------------------------------------------------
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
@@ -509,66 +523,6 @@ 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(
|
||||||
[[
|
[[
|
||||||
@@ -579,12 +533,6 @@ in {
|
|||||||
]],
|
]],
|
||||||
true
|
true
|
||||||
)
|
)
|
||||||
|
|
||||||
-- vim-prettier
|
|
||||||
vim.g["prettier#autoformat"] = 1
|
|
||||||
|
|
||||||
-- git-blame
|
|
||||||
vim.g.gitblame_enabled = 1
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -630,9 +578,4 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
home.file = {
|
|
||||||
# ".config/nvim/lua".source = ./nvim/lua;
|
|
||||||
".aws/config".source = ./.aws/config;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
@@ -21,6 +21,8 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
systemd.services.NetworkManager-wait-online.enable = false;
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
sshd.enable = true;
|
sshd.enable = true;
|
||||||
tailscale.enable = true;
|
tailscale.enable = true;
|
||||||
|
@@ -12,7 +12,6 @@ in {
|
|||||||
# essentials
|
# essentials
|
||||||
curl
|
curl
|
||||||
gcc
|
gcc
|
||||||
git-crypt
|
|
||||||
gnumake
|
gnumake
|
||||||
gnupg
|
gnupg
|
||||||
imagemagick
|
imagemagick
|
||||||
@@ -58,7 +57,7 @@ in {
|
|||||||
unstable.google-cloud-sdk
|
unstable.google-cloud-sdk
|
||||||
unstable.awscli2
|
unstable.awscli2
|
||||||
|
|
||||||
# language servers
|
# LSP
|
||||||
nodePackages.bash-language-server
|
nodePackages.bash-language-server
|
||||||
nodePackages.pyright
|
nodePackages.pyright
|
||||||
nodePackages.yaml-language-server
|
nodePackages.yaml-language-server
|
||||||
|
6
renovate.json
Normal file
6
renovate.json
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
|
"extends": [
|
||||||
|
"config:recommended"
|
||||||
|
]
|
||||||
|
}
|
Reference in New Issue
Block a user