1
0
Fork 0
forked from irl/nix-configs

Compare commits

...
Sign in to create a new pull request.

7 commits
main ... main

Author SHA1 Message Date
irl
3b810aebc0 feat: adding rust lsp to neovim 2025-06-07 15:44:01 +01:00
irl
c03c840154 fix: use new per-system target for hms alias 2025-06-07 15:43:38 +01:00
irl
f655c56b22 feat: use /Users/irl for home on darwin 2025-06-07 13:52:26 +01:00
irl
6e8d58e5ac feat: use new nur overlay
nur.overlay -> nur.overlays.default
2025-06-07 13:51:01 +01:00
1cd9bccbbb feat: use only supported systems, use home config at top level
fixes nix flake check
2025-06-06 11:20:35 +01:00
irl
4bb4ec3db4 feat: get firefox extensions from nur 2025-06-06 11:09:23 +01:00
irl
fb13b01ffd feat: don't use gpg-agent for ssh 2025-06-06 11:08:48 +01:00
4 changed files with 161 additions and 29 deletions

67
flake.lock generated
View file

@ -1,5 +1,26 @@
{
"nodes": {
"flake-parts": {
"inputs": {
"nixpkgs-lib": [
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733312601,
"narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
@ -53,11 +74,34 @@
"type": "github"
}
},
"nur": {
"inputs": {
"flake-parts": "flake-parts",
"nixpkgs": [
"nixpkgs"
],
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1749201010,
"narHash": "sha256-haiPLogZwEFQTrIarZD92LUK7ScIcMbtEzPlcC988Qk=",
"owner": "nix-community",
"repo": "NUR",
"rev": "17efc5275a8f21e2b48f39ecade74cdaff3ba411",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "NUR",
"type": "github"
}
},
"root": {
"inputs": {
"flake-utils": "flake-utils",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs"
"nixpkgs": "nixpkgs",
"nur": "nur"
}
},
"systems": {
@ -74,6 +118,27 @@
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": [
"nur",
"nixpkgs"
]
},
"locked": {
"lastModified": 1733222881,
"narHash": "sha256-JIPcz1PrpXUCbaccEnrcUS8jjEb/1vJbZz5KkobyFdM=",
"owner": "numtide",
"repo": "treefmt-nix",
"rev": "49717b5af6f80172275d47a418c9719a31a78b53",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "treefmt-nix",
"type": "github"
}
}
},
"root": "root",

View file

@ -8,18 +8,30 @@
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
# nur = {
# url = "github:nix-community/NUR";
# inputs.nixpkgs.follows = "nixpkgs";
# };
nur = {
url = "github:nix-community/NUR";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs =
{
nixpkgs,
flake-utils,
home-manager,
nur,
...
}:
let
supportedSystems = [
"x86_64-linux"
"aarch64-darwin"
"aarch64-linux"
];
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
overlays = [
nur.overlays.default
];
in
{
nixosConfigurations = {
laptop = nixpkgs.lib.nixosSystem {
@ -31,16 +43,20 @@
];
};
};
}
// flake-utils.lib.eachSystem flake-utils.lib.allSystems (system: {
formatter = nixpkgs.legacyPackages.${system}.nixfmt-rfc-style;
packages.homeConfigurations = {
irl = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { inherit system; };
homeConfigurations = nixpkgs.lib.foldl' (
acc: system:
acc
// {
"irl-${system}" = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
inherit system overlays;
};
modules = [ ./home/irl.nix ];
};
irl-gui = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs { inherit system; };
"irl-gui-${system}" = home-manager.lib.homeManagerConfiguration {
pkgs = import nixpkgs {
inherit system overlays;
};
modules = [
./home/irl.nix
{
@ -48,6 +64,10 @@
}
];
};
};
}
) { } supportedSystems;
}
// flake-utils.lib.eachSystem supportedSystems (system: {
formatter = nixpkgs.legacyPackages.${system}.nixfmt-rfc-style;
});
}

View file

@ -13,17 +13,21 @@ in
config = {
home.username = "irl";
home.homeDirectory = "/home/irl";
home.homeDirectory =
if lib.strings.hasSuffix "darwin" pkgs.system then "/Users/irl" else "/home/irl";
home.stateVersion = "25.05";
home.packages = with pkgs; [
fish
neofetch
rust-analyzer
starship
tree
];
home.shellAliases = {
hms =
"home-manager switch --flake ~/.config/nix-configs#irl" + (if cfg.gui-packages then "-gui" else "");
"home-manager switch --flake ~/.config/nix-configs#irl"
+ (if cfg.gui-packages then "-gui" else "")
+ "-${pkgs.system}";
};
programs.bash = {
enable = true;
@ -39,11 +43,15 @@ in
enable = true;
profiles.irl = {
extensions = {
# packages = with pkgs.nur.repos.rycee.firefox-addons; [
# bitwarden
# kagi-search
# privacy-badger
# ];
force = true;
packages = with pkgs.nur.repos.rycee.firefox-addons; [
bitwarden
kagi-search
privacy-badger
];
};
settings = {
"extensions.autoDisableScope" = 0;
};
};
};
@ -86,8 +94,47 @@ in
vimdiffAlias = true;
plugins = with pkgs.vimPlugins; [
bufferline-nvim
nvim-lspconfig
nvim-treesitter.withAllGrammars
];
extraLuaConfig = ''
vim.lsp.config('rust_analyzer', {
settings = {
['rust-analyzer'] = {},
},
})
vim.api.nvim_create_autocmd('LspAttach', {
group = vim.api.nvim_create_augroup('my.lsp', {}),
callback = function(args)
local client = assert(vim.lsp.get_client_by_id(args.data.client_id))
if client:supports_method('textDocument/implementation') then
-- Create a keymap for vim.lsp.buf.implementation ...
end
-- Enable auto-completion. Note: Use CTRL-Y to select an item. |complete_CTRL-Y|
if client:supports_method('textDocument/completion') then
-- Optional: trigger autocompletion on EVERY keypress. May be slow!
-- local chars = {}; for i = 32, 126 do table.insert(chars, string.char(i)) end
-- client.server_capabilities.completionProvider.triggerCharacters = chars
vim.lsp.completion.enable(true, client.id, args.buf, {autotrigger = true})
end
-- Auto-format ("lint") on save.
-- Usually not needed if server supports "textDocument/willSaveWaitUntil".
if not client:supports_method('textDocument/willSaveWaitUntil')
and client:supports_method('textDocument/formatting') then
vim.api.nvim_create_autocmd('BufWritePre', {
group = vim.api.nvim_create_augroup('my.lsp', {clear=false}),
buffer = args.buf,
callback = function()
vim.lsp.buf.format({ bufnr = args.buf, id = client.id, timeout_ms = 1000 })
end,
})
end
end,
})
'';
};
programs.starship = {
enable = true;

View file

@ -53,7 +53,7 @@
hardware.gpgSmartcards.enable = true;
programs.gnupg.agent = {
enable = true;
enableSSHSupport = true;
# enableSSHSupport = true;
};
system.stateVersion = "25.05";