Fix other various issues
This commit is contained in:
parent
43eab988cf
commit
d22323535c
6 changed files with 63 additions and 15 deletions
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,4 +1,4 @@
|
|||
.direnv
|
||||
.helix
|
||||
.vale/styles/config/vocabularies/General
|
||||
.pre-commit-config.yaml
|
||||
.vale/styles/config/vocabularies/General/
|
||||
|
|
23
README.md
23
README.md
|
@ -1,13 +1,26 @@
|
|||
# Laptop configuration
|
||||
|
||||
This repository has the Nix home-manager configuration for my laptop, allowing me to manage a user configuration with reproducibility on other machines. It currently operates on a foreign Linux distribution (Fedora Asahi Remix) with plans to switch to NixOS when time allows and to make it reusable for other systems. `direnv` automatically loads the environment for running commands for this Flake.
|
||||
This repository has the Nix home-manager configuration for my laptop, allowing
|
||||
me to manage a user configuration with reproducibility on other machines. It
|
||||
currently operates on a foreign Linux distribution (Fedora Asahi Remix) with
|
||||
plans to switch to NixOS when time allows and to make it reusable for other
|
||||
systems. `direnv` automatically loads the environment for running commands for
|
||||
this Flake.
|
||||
|
||||
## Features
|
||||
|
||||
- **`home-manager`** - Defines the user environment
|
||||
- **`flake-parts`** - Makes the Flake modular and reusable
|
||||
- **`sops`** - Encrypts secrets
|
||||
- **`treefmt`** (with Helix integration) - Automatically formats this repository when modifying it, with features to check the flake for formatting consistency
|
||||
- **Language Server Protocol (LSP)** - Has language servers for file formats used in this repository; integrates with Helix text editor and fully managed by Nix with each language's configuration in its own file
|
||||
- **AI** - Uses Nix home-manager integrations for Codex and `aichat` for querying Large Language Models (LLMs) in the CLI and in Git repositories
|
||||
- **Language tools** - Checks for grammatical and styling issues using Vale, Harper, LTeX, and Typos, centralizing the custom dictionary for these tools in the Nix configuration
|
||||
- **`treefmt`** (with Helix integration) - Automatically formats this repository
|
||||
when modifying it, with features to check the flake for formatting consistency
|
||||
- **Language Server Protocol (LSP)** - Has language servers for file formats
|
||||
used in this repository; integrates with Helix text editor and fully managed
|
||||
by Nix with each language's configuration in its own file
|
||||
- **AI** - Uses Nix home-manager integrations for Codex and `aichat` for
|
||||
querying Large Language Models (LLMs) in the CLI and in Git repositories
|
||||
- **Language tools** - Checks for grammatical and styling issues using Vale,
|
||||
Harper, LTeX, and Typos, centralizing the custom dictionary for these tools in
|
||||
the Nix configuration
|
||||
- **Git pre-commit hooks** - Lints the files before making a commit, both with
|
||||
programming and natural languages
|
||||
|
|
31
flake.nix
31
flake.nix
|
@ -61,6 +61,26 @@
|
|||
perSystem =
|
||||
{ system, config, ... }:
|
||||
let
|
||||
excludes = [
|
||||
".vale/*"
|
||||
"home/vencord.nix"
|
||||
];
|
||||
deepMerge =
|
||||
lhs: rhs:
|
||||
lhs
|
||||
// rhs
|
||||
// (builtins.mapAttrs (
|
||||
rName: rValue:
|
||||
let
|
||||
lValue = lhs.${rName} or null;
|
||||
in
|
||||
if builtins.isAttrs lValue && builtins.isAttrs rValue then
|
||||
deepMerge lValue rValue
|
||||
else if builtins.isList lValue && builtins.isList rValue then
|
||||
lValue ++ rValue
|
||||
else
|
||||
rValue
|
||||
) rhs);
|
||||
pkgs = import inputs.nixpkgs {
|
||||
inherit system;
|
||||
overlays = [
|
||||
|
@ -81,7 +101,9 @@
|
|||
);
|
||||
language-server = builtins.foldl' (acc: cfg: acc // (cfg.helix.language-server or { })) { } configs;
|
||||
};
|
||||
treefmtPrograms = builtins.foldl' (acc: cfg: acc // (cfg.treefmt.programs or { })) { } configs;
|
||||
treefmtPrograms = builtins.foldl' (
|
||||
acc: cfg: deepMerge acc (cfg.treefmt.programs or { })
|
||||
) { } configs;
|
||||
preCommitHooks = builtins.foldl' (acc: cfg: acc // (cfg.pre-commit or { })) { } configs;
|
||||
devshellConfigs = {
|
||||
commands = builtins.concatMap (cfg: cfg.devshell.commands) (
|
||||
|
@ -170,11 +192,6 @@
|
|||
${pkgs.uutils-coreutils-noprefix}/bin/ln -fs ${helixLanguagesFile} ./.helix/languages.toml
|
||||
'';
|
||||
};
|
||||
pre_commit = {
|
||||
text = ''
|
||||
${config.pre-commit.installationScript}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
@ -189,11 +206,13 @@
|
|||
check-symlinks.enable = true;
|
||||
flake-checker.enable = true;
|
||||
};
|
||||
excludes = excludes;
|
||||
};
|
||||
# https://flake.parts/options/treefmt-nix.html
|
||||
treefmt = {
|
||||
projectRootFile = "flake.nix";
|
||||
programs = treefmtPrograms;
|
||||
settings.global.excludes = excludes;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
@ -42,6 +42,10 @@ in
|
|||
configPath = typosConfigFile.outPath;
|
||||
locale = "en-us";
|
||||
};
|
||||
excludes = [
|
||||
".vale/*"
|
||||
"home/vencord.nix"
|
||||
];
|
||||
};
|
||||
vale.enable = true;
|
||||
};
|
||||
|
|
|
@ -24,7 +24,14 @@
|
|||
};
|
||||
treefmt.programs.dprint = {
|
||||
enable = true;
|
||||
settings.plugins = [ "dprint-plugin-markdown" ];
|
||||
settings = {
|
||||
plugins = (pkgs.dprint-plugins.getPluginList (plugins: with plugins; [ dprint-plugin-markdown ]));
|
||||
markdown = {
|
||||
lineWidth = 80;
|
||||
textWrap = "always";
|
||||
};
|
||||
};
|
||||
includes = [ "*.md" ];
|
||||
};
|
||||
pre-commit = {
|
||||
markdownlint.enable = true;
|
||||
|
|
|
@ -21,10 +21,15 @@
|
|||
};
|
||||
treefmt.programs.dprint = {
|
||||
enable = true;
|
||||
settings.plugins = [ "g-plane-pretty_yaml" ];
|
||||
settings.plugins = (
|
||||
pkgs.dprint-plugins.getPluginList (plugins: with plugins; [ g-plane-pretty_yaml ])
|
||||
);
|
||||
includes = [
|
||||
"*.yaml"
|
||||
"*.yml"
|
||||
];
|
||||
};
|
||||
pre-commit = {
|
||||
check-yaml.enable = true;
|
||||
sort-simple-yaml.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue