chore: reorganize
This commit is contained in:
parent
4897d002a8
commit
318294f683
7 changed files with 0 additions and 0 deletions
24
modules/base/home/default.nix
Normal file
24
modules/base/home/default.nix
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
flake.modules = {
|
||||
nixos.base = {
|
||||
nixpkgs.config.allowUnFree = true;
|
||||
home-manager = {
|
||||
backupFileExtension = "bak";
|
||||
useUserPackages = true;
|
||||
useGlobalPkgs = true;
|
||||
};
|
||||
};
|
||||
|
||||
homeManager.base = {
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
services = {
|
||||
home-manager.autoExpire = {
|
||||
enable = true;
|
||||
frequency = "weekly";
|
||||
store.cleanup = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
80
modules/base/home/fish.nix
Normal file
80
modules/base/home/fish.nix
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
{
|
||||
flake.modules = {
|
||||
nixos.base =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
fastfetch
|
||||
|
||||
fd
|
||||
tree
|
||||
ripgrep
|
||||
fzf
|
||||
eza
|
||||
|
||||
#optional
|
||||
pciutils
|
||||
usbutils
|
||||
btop
|
||||
|
||||
zip
|
||||
unzip
|
||||
nettools
|
||||
];
|
||||
};
|
||||
|
||||
homeManager.base =
|
||||
{
|
||||
lib,
|
||||
osConfig,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
catppuccin.fish.enable = true;
|
||||
|
||||
programs = {
|
||||
fish = {
|
||||
enable = true;
|
||||
shellInit = ''
|
||||
set -x LESS_TERMCAP_mb \e'[01;32m'
|
||||
set -x LESS_TERMCAP_md \e'[01;32m'
|
||||
set -x LESS_TERMCAP_me \e'[0m'
|
||||
set -x LESS_TERMCAP_se \e'[0m'
|
||||
set -x LESS_TERMCAP_so \e'[01;47;34m'
|
||||
set -x LESS_TERMCAP_ue \e'[0m'
|
||||
set -x LESS_TERMCAP_us \e'[01;36m'
|
||||
set -x LESS -R
|
||||
set -x GROFF_NO_SGR 1
|
||||
'';
|
||||
shellAliases = {
|
||||
vim = "hx";
|
||||
ls = "eza -lah --icons --git";
|
||||
lss = "ls --total-size";
|
||||
lt = "ls -T --git-ignore";
|
||||
};
|
||||
functions = {
|
||||
checkHash = "nix hash to-sri --type sha256 $(nix-prefetch-url --unpack $argv)";
|
||||
deployNixberry = "${lib.getExe osConfig.programs.nh.package} os switch --target-host nixberry -H nixberry";
|
||||
deployLoptland = "${lib.getExe osConfig.programs.nh.package} os switch --target-host christophhollizeck.dev -H loptland";
|
||||
exportMachineSSHkey = "export SOPS_AGE_KEY=$(sudo ssh-to-age -i /etc/ssh/ssh_host_ed25519_key -private-key)
|
||||
";
|
||||
checkPR = ''cd /home/cholli/projects/NixOS/nixpkgs && ${lib.getExe pkgs.nixpkgs-review} pr $argv --post-result --systems "x86_64-linux aarch64-linux"'';
|
||||
};
|
||||
plugins = with pkgs.fishPlugins; [
|
||||
{
|
||||
name = "forgit";
|
||||
src = forgit.src;
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
zoxide = {
|
||||
enable = true;
|
||||
options = [ "--cmd cd" ];
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
129
modules/base/home/git.nix
Normal file
129
modules/base/home/git.nix
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
topLevel: {
|
||||
flake.modules = {
|
||||
nixos.base =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
git
|
||||
];
|
||||
};
|
||||
|
||||
homeManager.cholli =
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
osConfig,
|
||||
...
|
||||
}:
|
||||
let
|
||||
username = topLevel.config.flake.meta.users.cholli.username;
|
||||
in
|
||||
{
|
||||
programs.git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
signing = {
|
||||
key = topLevel.config.flake.meta.users.cholli.key;
|
||||
signByDefault = true;
|
||||
};
|
||||
ignores = [
|
||||
".direnv/"
|
||||
".devenv/"
|
||||
"result"
|
||||
];
|
||||
|
||||
settings = {
|
||||
user = {
|
||||
name = topLevel.config.flake.meta.users.cholli.name;
|
||||
email = topLevel.config.flake.meta.users.cholli.email;
|
||||
};
|
||||
core = {
|
||||
fsmonitor = true;
|
||||
};
|
||||
init = {
|
||||
defaultBranch = "main";
|
||||
};
|
||||
pull = {
|
||||
rebase = true;
|
||||
};
|
||||
push = {
|
||||
autoSetupRemote = true;
|
||||
};
|
||||
rebase = {
|
||||
autoStash = true;
|
||||
};
|
||||
safe = {
|
||||
directory = "/home/${username}/projects/config";
|
||||
};
|
||||
maintenance = {
|
||||
repo = [
|
||||
"/home/${username}/projects/NixOS/nixpkgs"
|
||||
"/home/${username}/projects/config"
|
||||
];
|
||||
strategy = "incremental";
|
||||
};
|
||||
lfs."https://git.christophhollizeck.dev/Daholli/nixos-config.git/info/lfs".locksverify = true;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user = lib.mkIf (osConfig.networking.hostName == "yggdrasil") {
|
||||
services."git-maintenance@" = {
|
||||
Unit = {
|
||||
Description = "Optimize Git repositories data";
|
||||
};
|
||||
Service = {
|
||||
Type = "oneshot";
|
||||
ExecStart = ''"${lib.getExe config.programs.git.package}" --exec-path="${lib.getBin config.programs.git.package}/bin" -c credential.interactive=false -c core.askPass=true for-each-repo --config=maintenance.repo maintenance run --schedule=%i'';
|
||||
LockPersonality = "yes";
|
||||
MemoryDenyWriteExecute = "yes";
|
||||
NoNewPrivileges = "yes";
|
||||
RestrictAddressFamilies = "AF_UNIX AF_INET AF_INET6 AF_VSOCK";
|
||||
RestrictNamespaces = "yes";
|
||||
RestrictRealtime = "yes";
|
||||
RestrictSUIDSGID = "yes";
|
||||
SystemCallArchitectures = "native";
|
||||
SystemCallFilter = "@system-service";
|
||||
};
|
||||
};
|
||||
timers = {
|
||||
"git-maintenance@hourly" = {
|
||||
Unit = {
|
||||
Description = "Optimize Git repositories data";
|
||||
};
|
||||
Timer = {
|
||||
OnCalendar = "*-*-* *:00:00";
|
||||
Persistent = true;
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
"git-maintenance@daily" = {
|
||||
Unit = {
|
||||
Description = "Optimize Git repositories data";
|
||||
};
|
||||
Timer = {
|
||||
OnCalendar = "*-*-* 20:00:00";
|
||||
Persistent = true;
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
"git-maintenance@weekly" = {
|
||||
Unit = {
|
||||
Description = "Optimize Git repositories data";
|
||||
};
|
||||
Timer = {
|
||||
OnCalendar = "Sun *-*-* 20:00:00";
|
||||
Persistent = true;
|
||||
};
|
||||
Install = {
|
||||
WantedBy = [ "timers.target" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
200
modules/base/home/helix.nix
Normal file
200
modules/base/home/helix.nix
Normal file
|
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
flake.modules = {
|
||||
nixos.base =
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
helix-pkg = inputs.helix.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
in
|
||||
{
|
||||
environment = {
|
||||
systemPackages = [
|
||||
helix-pkg
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
homeManager.cholli =
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
helix-pkg = inputs.helix.packages.${pkgs.stdenv.hostPlatform.system}.default;
|
||||
in
|
||||
{
|
||||
home.file.".config/helix/ignore".text = ''
|
||||
.idea/
|
||||
!**/appsettings.json
|
||||
.direnv/
|
||||
.devenv/
|
||||
'';
|
||||
|
||||
catppuccin.helix.enable = true;
|
||||
|
||||
programs.helix = {
|
||||
enable = true;
|
||||
package = helix-pkg;
|
||||
defaultEditor = true;
|
||||
settings = {
|
||||
editor = {
|
||||
auto-format = true;
|
||||
line-number = "relative";
|
||||
file-picker = {
|
||||
hidden = false;
|
||||
};
|
||||
|
||||
lsp = {
|
||||
display-inlay-hints = true;
|
||||
display-messages = true;
|
||||
};
|
||||
|
||||
cursor-shape = {
|
||||
normal = "block";
|
||||
insert = "bar";
|
||||
select = "underline";
|
||||
};
|
||||
|
||||
indent-guides = {
|
||||
render = true;
|
||||
character = "|";
|
||||
};
|
||||
|
||||
statusline = {
|
||||
left = [
|
||||
"mode"
|
||||
"spinner"
|
||||
];
|
||||
center = [ "file-name" ];
|
||||
right = [
|
||||
"workspace-diagnostics"
|
||||
"diagnostics"
|
||||
"selections"
|
||||
"position"
|
||||
"total-line-numbers"
|
||||
"spacer"
|
||||
"file-encoding"
|
||||
"file-line-ending"
|
||||
"file-type"
|
||||
];
|
||||
separator = "│";
|
||||
};
|
||||
};
|
||||
|
||||
keys = {
|
||||
normal = {
|
||||
esc = [
|
||||
"collapse_selection"
|
||||
"keep_primary_selection"
|
||||
];
|
||||
space = {
|
||||
space = "file_picker";
|
||||
};
|
||||
|
||||
C-j = (builtins.genList (_: "move_line_down") 5) ++ [ "align_view_center" ];
|
||||
C-k = (builtins.genList (_: "move_line_up") 5) ++ [ "align_view_center" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
languages = {
|
||||
language = [
|
||||
{
|
||||
name = "nix";
|
||||
auto-format = true;
|
||||
formatter.command = "${pkgs.nixfmt-rfc-style}/bin/nixfmt";
|
||||
language-servers = [
|
||||
"nixd"
|
||||
"nil"
|
||||
"harper-ls"
|
||||
];
|
||||
}
|
||||
{
|
||||
# Provided by the dev environment in the rust shell
|
||||
name = "rust";
|
||||
auto-format = true;
|
||||
formatter.command = "cargo fmt";
|
||||
language-servers = [
|
||||
"rust-analyzer"
|
||||
"harper-ls"
|
||||
];
|
||||
}
|
||||
{
|
||||
name = "zig";
|
||||
language-servers = [
|
||||
"zls"
|
||||
"harper-ls"
|
||||
];
|
||||
}
|
||||
];
|
||||
|
||||
language-server = {
|
||||
nixd = {
|
||||
command = "${pkgs.nixd}/bin/nixd";
|
||||
args = [ "--semantic-tokens=true" ];
|
||||
config.nixd =
|
||||
let
|
||||
myFlake = "(builtins.getFlake (toString /home/cholli/projects/config))";
|
||||
nixosOpts = "${myFlake}.nixosConfigurations.manin.options";
|
||||
in
|
||||
{
|
||||
nixpkgs.expr = "import ${myFlake}.inputs.nixpkgs { }";
|
||||
formatting.command = [ "nixfmt" ];
|
||||
options = {
|
||||
nixos.expr = nixosOpts;
|
||||
home-manager.expr = "${nixosOpts}.home-manager.users.type.getSubOptions []";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
marksman = {
|
||||
command = "${pkgs.marksman}/bin/marksman";
|
||||
};
|
||||
|
||||
vscode-json-language-server = {
|
||||
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-json-language-server";
|
||||
args = [ "--stdio" ];
|
||||
config.provideFormatter = true;
|
||||
config.json.validate.enable = true;
|
||||
};
|
||||
|
||||
vscode-html-language-server = {
|
||||
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-html-language-server";
|
||||
args = [ "--stdio" ];
|
||||
config.provideFormatter = true;
|
||||
};
|
||||
|
||||
vscode-css-language-server = {
|
||||
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-css-language-server";
|
||||
args = [ "--stdio" ];
|
||||
config.provideFormatter = true;
|
||||
};
|
||||
|
||||
vscode-eslint-language-server = {
|
||||
command = "${pkgs.vscode-langservers-extracted}/bin/vscode-eslint-language-server";
|
||||
args = [ "--stdio" ];
|
||||
config.provideFormatter = true;
|
||||
};
|
||||
|
||||
harper-ls = {
|
||||
command = "${lib.getExe pkgs.harper}";
|
||||
args = [ "--stdio" ];
|
||||
config = {
|
||||
linters = {
|
||||
long_sentences = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
49
modules/base/home/kitty.nix
Normal file
49
modules/base/home/kitty.nix
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
{
|
||||
flake.modules = {
|
||||
homeManager.cholli =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
catppuccin.kitty.enable = true;
|
||||
|
||||
home.packages = [
|
||||
pkgs.kitty
|
||||
];
|
||||
|
||||
home.sessionVariables.TERMINAL = "kitty";
|
||||
|
||||
home.file.".config/Thunar/uca.xml".text = ''
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<actions>
|
||||
<action>
|
||||
<icon>kitty</icon>
|
||||
<name>Open Kitty here</name>
|
||||
<submenu></submenu>
|
||||
<unique-id>1726095927116900-1</unique-id>
|
||||
<command>${pkgs.kitty}/bin/kitty %f</command>
|
||||
<description>Example for a custom action</description>
|
||||
<range></range>
|
||||
<patterns>*</patterns>
|
||||
<startup-notify/>
|
||||
<directories/>
|
||||
</action>
|
||||
</actions>
|
||||
'';
|
||||
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
# themeFile = "tokyo_night_night";
|
||||
font = {
|
||||
name = "FiraCode Nerd Font";
|
||||
size = 15;
|
||||
};
|
||||
shellIntegration.enableFishIntegration = true;
|
||||
settings = {
|
||||
"background_opacity" = "0.90";
|
||||
"shell" = "fish";
|
||||
"confirm_os_window_close" = "0";
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
};
|
||||
}
|
||||
56
modules/base/home/starship.nix
Normal file
56
modules/base/home/starship.nix
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
{
|
||||
flake.modules.homeManager.cholli =
|
||||
{ ... }:
|
||||
{
|
||||
programs = {
|
||||
starship = {
|
||||
enable = true;
|
||||
enableTransience = true;
|
||||
settings = {
|
||||
character = {
|
||||
error_symbol = "[ ](bold red)";
|
||||
};
|
||||
time = {
|
||||
disabled = false;
|
||||
time_format = "%T";
|
||||
utc_time_offset = "+2";
|
||||
};
|
||||
username = {
|
||||
style_user = "#00de00";
|
||||
style_root = "red";
|
||||
format = "[$user]($style) ";
|
||||
disabled = false;
|
||||
show_always = true;
|
||||
};
|
||||
hostname = {
|
||||
ssh_only = false;
|
||||
format = "@ [$hostname](bold yellow) ";
|
||||
disabled = false;
|
||||
};
|
||||
directory = {
|
||||
home_symbol = " ~";
|
||||
read_only_style = "197";
|
||||
read_only = " ";
|
||||
format = "at [$path]($style)[$read_only]($read_only_style) ";
|
||||
};
|
||||
git_metrics = {
|
||||
disabled = false;
|
||||
added_style = "bold blue";
|
||||
format = "[+$added]($added_style)/[-$deleted]($deleted_style) ";
|
||||
};
|
||||
git_status = {
|
||||
format = "([$all_status$ahead_behind]($style) )";
|
||||
ahead = "[↑$count](bold green)";
|
||||
behind = "[↓$count](bold red)";
|
||||
diverged = "[↕↓$ahead_count↑$behind_count](red)";
|
||||
deleted = "[✘$count](red) ";
|
||||
modified = "[!$count](yellow) ";
|
||||
staged = "[+$count](green) ";
|
||||
renamed = "[➜$count](green) ";
|
||||
untracked = "[?$count](blue) ";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue