Compare commits
3
Commits
fbd34508c5
...
7f5d7914c4
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7f5d7914c4 | ||
|
|
deeffb8b8b | ||
|
|
14c6a27b21 |
No files matched your search
@@ -70,100 +70,97 @@ in
|
||||
};
|
||||
}
|
||||
// {
|
||||
assertions = [
|
||||
{
|
||||
assertion = config.nvim.enable;
|
||||
message = "git module requires 'nvim' module (`nvimdiff`)";
|
||||
}
|
||||
];
|
||||
warnings = lib.optional (
|
||||
!config.nvim.enable
|
||||
) "'git.enable' is enabled without 'nvim.enable' (not using 'nvimdiff')";
|
||||
|
||||
xdg.configFile."git/ignore".source = ./global.gitignore;
|
||||
|
||||
programs.git = {
|
||||
enable = true;
|
||||
settings = {
|
||||
core.editor = "nvim";
|
||||
user = {
|
||||
name = "Hektor Misplon";
|
||||
username = "hektor";
|
||||
signingKey = "AEB98353B8D72E465C4236435151AF79E723F21C";
|
||||
};
|
||||
alias = {
|
||||
d = "diff";
|
||||
ds = "diff --staged";
|
||||
a = "add";
|
||||
ap = "add -p";
|
||||
c = "commit";
|
||||
cm = "commit -m";
|
||||
cam = "commit --amend";
|
||||
l = ''log --pretty=format:(%an)\ \ %h\ \ %ad\ \ %s --date=short'';
|
||||
s = "status --short";
|
||||
sv = "status --verbose";
|
||||
co = "checkout";
|
||||
cob = "checkout -b";
|
||||
pullr = "pull --rebase --autostash";
|
||||
pushf = "push --force-with-lease";
|
||||
al = "!git config -l | grep alias | cut -c 7-";
|
||||
alf = "!git config -l | grep alias | cut -c 7- | fzf";
|
||||
"al-" =
|
||||
''!git config --local --unset $(git config -l | grep alias | cut --delimiter="=" --fields=1 | fzf)'';
|
||||
rs = "restore --staged";
|
||||
rb = "rebase";
|
||||
rbi = "rebase -i";
|
||||
wt = "worktree";
|
||||
wtc = ''config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"'';
|
||||
};
|
||||
color = {
|
||||
ui = "auto";
|
||||
diff = {
|
||||
meta = "yellow bold";
|
||||
commit = "green bold";
|
||||
frag = "magenta bold";
|
||||
old = "red bold";
|
||||
new = "green bold";
|
||||
whitespace = "red reverse";
|
||||
settings = lib.mkMerge [
|
||||
{
|
||||
user = {
|
||||
name = "Hektor Misplon";
|
||||
username = "hektor";
|
||||
signingKey = "AEB98353B8D72E465C4236435151AF79E723F21C";
|
||||
};
|
||||
"diff-highlight" = {
|
||||
oldNormal = "red bold";
|
||||
oldHighlight = "red bold 52";
|
||||
newNormal = "green bold";
|
||||
newHighlight = "green bold 22";
|
||||
alias = {
|
||||
d = "diff";
|
||||
ds = "diff --staged";
|
||||
a = "add";
|
||||
ap = "add -p";
|
||||
c = "commit";
|
||||
cm = "commit -m";
|
||||
cam = "commit --amend";
|
||||
l = ''log --pretty=format:(%an)\ \ %h\ \ %ad\ \ %s --date=short'';
|
||||
s = "status --short";
|
||||
sv = "status --verbose";
|
||||
co = "checkout";
|
||||
cob = "checkout -b";
|
||||
pullr = "pull --rebase --autostash";
|
||||
pushf = "push --force-with-lease";
|
||||
al = "!git config -l | grep alias | cut -c 7-";
|
||||
alf = "!git config -l | grep alias | cut -c 7- | fzf";
|
||||
"al-" =
|
||||
''!git config --local --unset $(git config -l | grep alias | cut --delimiter="=" --fields=1 | fzf)'';
|
||||
rs = "restore --staged";
|
||||
rb = "rebase";
|
||||
rbi = "rebase -i";
|
||||
wt = "worktree";
|
||||
wtc = ''config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"'';
|
||||
};
|
||||
branch = {
|
||||
current = "normal bold";
|
||||
local = "normal";
|
||||
remote = "normal italic";
|
||||
color = {
|
||||
ui = "auto";
|
||||
diff = {
|
||||
meta = "yellow bold";
|
||||
commit = "green bold";
|
||||
frag = "magenta bold";
|
||||
old = "red bold";
|
||||
new = "green bold";
|
||||
whitespace = "red reverse";
|
||||
};
|
||||
"diff-highlight" = {
|
||||
oldNormal = "red bold";
|
||||
oldHighlight = "red bold 52";
|
||||
newNormal = "green bold";
|
||||
newHighlight = "green bold 22";
|
||||
};
|
||||
branch = {
|
||||
current = "normal bold";
|
||||
local = "normal";
|
||||
remote = "normal italic";
|
||||
};
|
||||
status = {
|
||||
added = "green";
|
||||
changed = "yellow";
|
||||
untracked = "normal italic";
|
||||
};
|
||||
};
|
||||
status = {
|
||||
added = "green";
|
||||
changed = "yellow";
|
||||
untracked = "normal italic";
|
||||
credential.helper = "cache --timeout=3600";
|
||||
init.defaultBranch = "main";
|
||||
log = {
|
||||
date = "relative";
|
||||
abbrevCommit = true;
|
||||
};
|
||||
};
|
||||
credential.helper = "cache --timeout=3600";
|
||||
init.defaultBranch = "main";
|
||||
log = {
|
||||
date = "relative";
|
||||
abbrevCommit = true;
|
||||
};
|
||||
merge = {
|
||||
tool = "nvimdiff";
|
||||
conflictStyle = "diff3";
|
||||
};
|
||||
diff = {
|
||||
colorMoved = "zebra";
|
||||
tool = "nvimdiff";
|
||||
};
|
||||
difftool.prompt = false;
|
||||
mergetool = {
|
||||
prompt = false;
|
||||
keepBackup = false;
|
||||
};
|
||||
commit.gpgSign = false;
|
||||
interactive.singleKey = true;
|
||||
pull.rebase = true;
|
||||
rerere.enabled = true;
|
||||
};
|
||||
merge.conflictStyle = "diff3";
|
||||
diff.colorMoved = "zebra";
|
||||
commit.gpgSign = false;
|
||||
interactive.singleKey = true;
|
||||
pull.rebase = true;
|
||||
rerere.enabled = true;
|
||||
}
|
||||
(lib.mkIf config.nvim.enable {
|
||||
core.editor = "nvim";
|
||||
diff.tool = "nvimdiff";
|
||||
merge.tool = "nvimdiff";
|
||||
difftool.prompt = false;
|
||||
mergetool = {
|
||||
prompt = false;
|
||||
keepBackup = false;
|
||||
};
|
||||
})
|
||||
];
|
||||
|
||||
includes = [
|
||||
{ path = personalEmail; }
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
system = "x86_64-linux";
|
||||
role = "desktop";
|
||||
tags = [ "personal" ];
|
||||
host = {
|
||||
role = "desktop";
|
||||
username = "h";
|
||||
highRam = true;
|
||||
admin = true;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
system = "x86_64-linux";
|
||||
role = "laptop";
|
||||
tags = [ "personal" ];
|
||||
host = {
|
||||
role = "laptop";
|
||||
username = "h";
|
||||
highRam = true;
|
||||
admin = true;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
system = "aarch64-linux";
|
||||
role = "embedded";
|
||||
tags = [ "lab" ];
|
||||
host = {
|
||||
role = "embedded";
|
||||
username = "h";
|
||||
};
|
||||
}
|
||||
@@ -22,6 +22,8 @@ in
|
||||
generic-extlinux-compatible.enable = true;
|
||||
};
|
||||
|
||||
hardware.deviceTree.name = "allwinner/sun50i-h616-orangepi-zero2.dtb";
|
||||
|
||||
networking = {
|
||||
hostName = config.host.name;
|
||||
networkmanager.enable = true;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
{
|
||||
system = "aarch64-linux";
|
||||
role = "embedded";
|
||||
tags = [ "lab" ];
|
||||
host = {
|
||||
role = "embedded";
|
||||
username = "h";
|
||||
};
|
||||
}
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
system = "x86_64-linux";
|
||||
role = "server";
|
||||
tags = [ "lab" ];
|
||||
deploy.autoRollback = true;
|
||||
host = {
|
||||
role = "server";
|
||||
username = "h";
|
||||
};
|
||||
}
|
||||
+1
-1
@@ -1,8 +1,8 @@
|
||||
{
|
||||
system = "x86_64-linux";
|
||||
role = "vm";
|
||||
tags = [ "lab" ];
|
||||
host = {
|
||||
role = "vm";
|
||||
username = "h";
|
||||
};
|
||||
}
|
||||
@@ -1,92 +1,23 @@
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
dotsPath,
|
||||
myUtils,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ lib, ... }:
|
||||
|
||||
let
|
||||
inherit (inputs.nixpkgs) lib;
|
||||
homeDir = ../../home/hosts + "/${config.host.name}";
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
inputs.home-manager.nixosModules.default
|
||||
./embedded.nix
|
||||
./home-manager.nix
|
||||
./host.nix
|
||||
./nix.nix
|
||||
./nixpkgs.nix
|
||||
./upgrades.nix
|
||||
];
|
||||
|
||||
options.nixpkgs.allowedUnfree = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
config = {
|
||||
system.stateVersion = lib.mkDefault "25.05";
|
||||
boot.zfs.forceImportRoot = lib.mkDefault false;
|
||||
|
||||
nix = {
|
||||
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; # https://github.com/nix-community/nixd/blob/main/nixd/docs/configuration.md
|
||||
optimise = {
|
||||
automatic = true;
|
||||
dates = [ "05:00" ];
|
||||
};
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = lib.mkDefault "--delete-older-than 30d";
|
||||
};
|
||||
settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
settings.trusted-public-keys = [
|
||||
"nix-signing-key:M6ouQRFl/bZ5QQrceQUyar6P7o8qg4wwVkxD1SSLL2k="
|
||||
];
|
||||
};
|
||||
|
||||
system.autoUpgrade = {
|
||||
enable = true;
|
||||
flags = [
|
||||
"--recreate-lock-file"
|
||||
"--commit-lock-file"
|
||||
"--print-build-logs"
|
||||
"--refresh"
|
||||
];
|
||||
dates = "05:00";
|
||||
randomizedDelaySec = "45min";
|
||||
allowReboot = false;
|
||||
};
|
||||
|
||||
nixpkgs.config.allowUnfreePredicate =
|
||||
pkg: builtins.elem (lib.getName pkg) config.nixpkgs.allowedUnfree;
|
||||
|
||||
environment.defaultPackages = lib.mkForce [ ];
|
||||
environment.pathsToLink = [
|
||||
"/share/applications"
|
||||
"/share/xdg-desktop-portal"
|
||||
];
|
||||
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
inputs
|
||||
outputs
|
||||
dotsPath
|
||||
myUtils
|
||||
;
|
||||
};
|
||||
sharedModules = [
|
||||
{
|
||||
host.username = lib.mkDefault config.host.username;
|
||||
}
|
||||
];
|
||||
users = lib.optionalAttrs (builtins.pathExists homeDir) {
|
||||
${config.host.username} = import homeDir;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{ lib, config, ... }:
|
||||
|
||||
{
|
||||
config = lib.mkIf (config.host.role == "embedded") {
|
||||
system.autoUpgrade.enable = false;
|
||||
nix.settings.max-jobs = 0;
|
||||
|
||||
zramSwap = {
|
||||
enable = true;
|
||||
memoryPercent = 100;
|
||||
};
|
||||
|
||||
services.journald.settings.Journal.SystemMaxUse = "100M";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
{
|
||||
inputs,
|
||||
outputs,
|
||||
dotsPath,
|
||||
myUtils,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
homeDir = ../../home/hosts + "/${config.host.name}";
|
||||
in
|
||||
{
|
||||
imports = [ inputs.home-manager.nixosModules.default ];
|
||||
|
||||
config.home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
inputs
|
||||
outputs
|
||||
dotsPath
|
||||
myUtils
|
||||
;
|
||||
};
|
||||
sharedModules = [
|
||||
{
|
||||
host.username = lib.mkDefault config.host.username;
|
||||
}
|
||||
];
|
||||
users = lib.optionalAttrs (builtins.pathExists homeDir) {
|
||||
${config.host.username} = import homeDir;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -10,6 +10,16 @@
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
role = lib.mkOption {
|
||||
type = lib.types.enum [
|
||||
"desktop"
|
||||
"embedded"
|
||||
"laptop"
|
||||
"server"
|
||||
"vm"
|
||||
];
|
||||
};
|
||||
|
||||
tags = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [ ];
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
{ inputs, lib, ... }:
|
||||
|
||||
{
|
||||
config.nix = {
|
||||
nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; # https://github.com/nix-community/nixd/blob/main/nixd/docs/configuration.md
|
||||
optimise = {
|
||||
automatic = true;
|
||||
dates = [ "05:00" ];
|
||||
};
|
||||
gc = {
|
||||
automatic = true;
|
||||
dates = "weekly";
|
||||
options = lib.mkDefault "--delete-older-than 30d";
|
||||
};
|
||||
settings.experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
settings.trusted-public-keys = [
|
||||
"nix-signing-key:M6ouQRFl/bZ5QQrceQUyar6P7o8qg4wwVkxD1SSLL2k="
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{ lib, config, ... }:
|
||||
|
||||
{
|
||||
options.nixpkgs.allowedUnfree = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [ ];
|
||||
};
|
||||
|
||||
config.nixpkgs.config.allowUnfreePredicate =
|
||||
pkg: builtins.elem (lib.getName pkg) config.nixpkgs.allowedUnfree;
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{ lib, ... }:
|
||||
|
||||
{
|
||||
config.system.autoUpgrade = {
|
||||
enable = lib.mkDefault true;
|
||||
flags = [
|
||||
"--recreate-lock-file"
|
||||
"--commit-lock-file"
|
||||
"--print-build-logs"
|
||||
"--refresh"
|
||||
];
|
||||
dates = "05:00";
|
||||
randomizedDelaySec = "45min";
|
||||
allowReboot = false;
|
||||
};
|
||||
}
|
||||
Reference in new issue
Block a user