Compare commits
No commits in common. "10e59f0420963a2d8023cca4722fca6d6a297e8d" and "b8f640a051e36c611a6080d51f8b8348084d353a" have entirely different histories.
10e59f0420
...
b8f640a051
|
@ -1,50 +0,0 @@
|
||||||
{ config
|
|
||||||
, proj_root
|
|
||||||
, myLib
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
inherit (myLib) fromYaml;
|
|
||||||
actualConfig = fromYaml (builtins.readFile "${proj_root}//alacritty/alacritty.yml");
|
|
||||||
cfg = config.base.alacritty;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.base.alacritty =
|
|
||||||
{
|
|
||||||
font.family = myLib.mkOption {
|
|
||||||
type = myLib.types.singleLineStr;
|
|
||||||
default = actualConfig.font.normal.family;
|
|
||||||
description = ''
|
|
||||||
The font family for Alacritty
|
|
||||||
'';
|
|
||||||
example = "DroidSansMono NF";
|
|
||||||
};
|
|
||||||
enable = myLib.mkOption {
|
|
||||||
type = myLib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = ''
|
|
||||||
Enables alacritty
|
|
||||||
'';
|
|
||||||
example = true;
|
|
||||||
};
|
|
||||||
_actualConfig = myLib.mkOption {
|
|
||||||
type = myLib.types.attrs;
|
|
||||||
visible = false;
|
|
||||||
default = actualConfig;
|
|
||||||
description = "underlying default config";
|
|
||||||
};
|
|
||||||
additionalConfigPath = myLib.mkOption {
|
|
||||||
type = myLib.types.nullOr myLib.types.path;
|
|
||||||
visible = false;
|
|
||||||
default = null;
|
|
||||||
description = "impurely write our alacritty.yml to this path";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config.programs.alacritty = {
|
|
||||||
enable = cfg.enable;
|
|
||||||
settings = myLib.recursiveUpdate actualConfig {
|
|
||||||
font.normal.family = cfg.font.family;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
let
|
|
||||||
# these are configured to work with home-manager with some mutations that are
|
|
||||||
# reconfigurable
|
|
||||||
homeModules = [
|
|
||||||
./alacritty.nix
|
|
||||||
./git.nix
|
|
||||||
./ssh.nix
|
|
||||||
./shells.nix
|
|
||||||
./neovim.nix
|
|
||||||
./home.req.nix
|
|
||||||
{
|
|
||||||
config.programs.home-manager.enable = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
# These are the modules that should be used only in nixosConfigurations
|
|
||||||
# since it relies on root permission to run
|
|
||||||
serviceModules = [
|
|
||||||
./gitea.service.nix
|
|
||||||
./vault.service.nix
|
|
||||||
./tailscale.service.nix
|
|
||||||
];
|
|
||||||
allModules = homeModules ++ serviceModules;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
mkModuleArgs = import ./mkModuleArgs.nix;
|
|
||||||
modules = allModules;
|
|
||||||
inherit homeModules serviceModules;
|
|
||||||
}
|
|
|
@ -1,81 +0,0 @@
|
||||||
{ config
|
|
||||||
, myLib
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
cfg = config.base.git;
|
|
||||||
baseAliases = {
|
|
||||||
a = "add";
|
|
||||||
c = "commit";
|
|
||||||
ca = "commit --amend";
|
|
||||||
cm = "commit -m";
|
|
||||||
lol = "log --graph --decorate --pretty=oneline --abbrev-commit";
|
|
||||||
lola = "log --graph --decorate --pretty=oneline --abbrev-commit --all";
|
|
||||||
sts = "status";
|
|
||||||
co = "checkout";
|
|
||||||
b = "branch";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.base.git = {
|
|
||||||
aliases = myLib.mkOption {
|
|
||||||
type = myLib.types.attrs;
|
|
||||||
default = { };
|
|
||||||
example = baseAliases;
|
|
||||||
description = ''
|
|
||||||
Additional git aliases. This settings comes with base configuration.
|
|
||||||
Redeclaring the base config will override the values.
|
|
||||||
''; # TODO: Add baseAliases as string here (builtins.toString doesn't work)
|
|
||||||
};
|
|
||||||
name = myLib.mkOption {
|
|
||||||
type = myLib.types.str;
|
|
||||||
default = "Pegasust";
|
|
||||||
description = "Git username that appears on commits";
|
|
||||||
example = "Pegasust";
|
|
||||||
};
|
|
||||||
email = myLib.mkOption {
|
|
||||||
type = myLib.types.str;
|
|
||||||
default = "pegasucksgg@gmail.com";
|
|
||||||
example = "peagsucksgg@gmail.com";
|
|
||||||
description = "Git email that appears on commits";
|
|
||||||
};
|
|
||||||
ignores = myLib.mkOption {
|
|
||||||
type = myLib.types.listOf myLib.types.str;
|
|
||||||
default = [
|
|
||||||
".vscode" # vscode settings
|
|
||||||
".direnv" # .envrc cached outputs
|
|
||||||
];
|
|
||||||
description = ''
|
|
||||||
.gitignore patterns that are applied in every repository.
|
|
||||||
This is useful for IDE-specific settings.
|
|
||||||
'';
|
|
||||||
example = [ ".direnv" "node_modules" ];
|
|
||||||
};
|
|
||||||
enable = myLib.mkOption {
|
|
||||||
type = myLib.types.bool;
|
|
||||||
default = true;
|
|
||||||
description = ''
|
|
||||||
Enables git
|
|
||||||
'';
|
|
||||||
example = false;
|
|
||||||
};
|
|
||||||
credentialCacheTimeoutSeconds = myLib.mkOption {
|
|
||||||
type = myLib.types.int;
|
|
||||||
default = 3000;
|
|
||||||
description = "Credential cache (in-memory store) for Git in seconds.";
|
|
||||||
example = 3000;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# TODO : anyway to override configuration?
|
|
||||||
config.programs.git = lib.mkIf cfg.enable {
|
|
||||||
inherit (cfg) ignores;
|
|
||||||
enable = true;
|
|
||||||
userName = cfg.name;
|
|
||||||
userEmail = cfg.email;
|
|
||||||
aliases = baseAliases // cfg.aliases;
|
|
||||||
extraConfig = {
|
|
||||||
credential.helper = "cache --timeout=${builtins.toString cfg.credentialCacheTimeoutSeconds}";
|
|
||||||
};
|
|
||||||
lfs.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ config, pkgs, lib, ... }@input:
|
|
||||||
let
|
|
||||||
cfg = config.base.home;
|
|
||||||
types = lib.types;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.base.home = {
|
|
||||||
packages = lib.mkOption {
|
|
||||||
type = types.listOf types.package;
|
|
||||||
description = "Addtional packages that are available at user level";
|
|
||||||
default = [ ];
|
|
||||||
example = [ pkgs.python310Full pkgs.ripgrep ];
|
|
||||||
};
|
|
||||||
user = lib.mkOption {
|
|
||||||
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,89 +0,0 @@
|
||||||
# Configurations for shell stuffs.
|
|
||||||
# Should probably be decoupled even more
|
|
||||||
{ config
|
|
||||||
, proj_root
|
|
||||||
, myLib
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
let cfg = config.base.shells;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.base.shells = {
|
|
||||||
enable = myLib.mkOption {
|
|
||||||
type = myLib.types.bool;
|
|
||||||
description = "Enable umbrella shell configuration";
|
|
||||||
default = true;
|
|
||||||
example = false;
|
|
||||||
};
|
|
||||||
# TODO: Support shell-specific init
|
|
||||||
shellInitExtra = myLib.mkOption {
|
|
||||||
type = myLib.types.str;
|
|
||||||
description = "Extra shell init. The syntax should be sh-compliant";
|
|
||||||
default = "";
|
|
||||||
example = ''
|
|
||||||
# X11 support for WSL
|
|
||||||
export DISPLAY=$(ip route list default | awk '{print $3}'):0
|
|
||||||
export LIBGL_ALWAYS_INDIRECT=1
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
shellAliases = myLib.mkOption {
|
|
||||||
type = myLib.types.attrs;
|
|
||||||
description = "Shell command aliases";
|
|
||||||
default = { };
|
|
||||||
example = {
|
|
||||||
nixGL = "nixGLIntel";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
config = myLib.mkIf cfg.enable {
|
|
||||||
xdg.configFile."starship.toml".source = "${proj_root}//starship/starship.toml";
|
|
||||||
# nix: Propagates the environment with packages and vars when enter (children of)
|
|
||||||
# a directory with shell.nix-compatible and .envrc
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
# nix-direnv.enableFlakes = true; # must remove. this will always be supported.
|
|
||||||
};
|
|
||||||
# z <path> as smarter cd
|
|
||||||
programs.zoxide = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
programs.tmux = {
|
|
||||||
enable = true;
|
|
||||||
extraConfig = builtins.readFile "${proj_root}/tmux/tmux.conf";
|
|
||||||
};
|
|
||||||
programs.exa = {
|
|
||||||
enable = true;
|
|
||||||
enableAliases = true;
|
|
||||||
};
|
|
||||||
programs.starship = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true;
|
|
||||||
};
|
|
||||||
programs.fzf.enable = true;
|
|
||||||
programs.bash = {
|
|
||||||
enable = true;
|
|
||||||
enableCompletion = true;
|
|
||||||
initExtra = cfg.shellInitExtra or "";
|
|
||||||
};
|
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
enableCompletion = true;
|
|
||||||
enableAutosuggestions = true;
|
|
||||||
shellAliases = {
|
|
||||||
nix-rebuild = "sudo nixos-rebuild switch";
|
|
||||||
hm-switch = "home-manager switch --flake";
|
|
||||||
} // (cfg.shellAliases or { });
|
|
||||||
history = {
|
|
||||||
size = 10000;
|
|
||||||
path = "${config.xdg.dataHome}/zsh/history";
|
|
||||||
};
|
|
||||||
oh-my-zsh = {
|
|
||||||
enable = true;
|
|
||||||
plugins = [ "git" "sudo" "command-not-found" "gitignore" "ripgrep" "rust" ];
|
|
||||||
};
|
|
||||||
initExtra = cfg.shellInitExtra or "";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ config
|
|
||||||
, proj_root
|
|
||||||
, myLib
|
|
||||||
, ...
|
|
||||||
}:
|
|
||||||
let cfg = config.base.ssh;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.base.ssh.enable = myLib.mkOption {
|
|
||||||
type = myLib.types.bool;
|
|
||||||
default = true;
|
|
||||||
example = false;
|
|
||||||
description = ''
|
|
||||||
Enables SSH
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
config.programs.ssh = {
|
|
||||||
inherit (cfg) enable;
|
|
||||||
forwardAgent = true;
|
|
||||||
extraConfig = builtins.readFile "${proj_root}/ssh/config";
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
import
|
|
216
nix/flake.lock
216
nix/flake.lock
|
@ -1,216 +0,0 @@
|
||||||
{
|
|
||||||
"nodes": {
|
|
||||||
"flake-compat": {
|
|
||||||
"flake": false,
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1668681692,
|
|
||||||
"narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=",
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"rev": "009399224d5e398d03b22badca40a37ac85412a1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "edolstra",
|
|
||||||
"repo": "flake-compat",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1644229661,
|
|
||||||
"narHash": "sha256-1YdnJAsNy69bpcjuoKdOYQX0YxZBiCYZo4Twxerqv7k=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "3cecb5b042f7f209c56ffd8371b2711a290ec797",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils-plus": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1657226504,
|
|
||||||
"narHash": "sha256-GIYNjuq4mJlFgqKsZ+YrgzWm0IpA4axA3MCrdKYj7gs=",
|
|
||||||
"owner": "gytis-ivaskevicius",
|
|
||||||
"repo": "flake-utils-plus",
|
|
||||||
"rev": "2bf0f91643c2e5ae38c1b26893ac2927ac9bd82a",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "gytis-ivaskevicius",
|
|
||||||
"repo": "flake-utils-plus",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1659877975,
|
|
||||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1659877975,
|
|
||||||
"narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"home-manager": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"utils": "utils"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1670970889,
|
|
||||||
"narHash": "sha256-TWJo3/X3Q3r+HeX16QN4FE6ddBpGtAboymSEF+4Nnc0=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"rev": "e412025fffdcd6219ddd21c65d9a1b90005ce508",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "home-manager",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixgl": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils_2",
|
|
||||||
"nixpkgs": "nixpkgs"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1661367362,
|
|
||||||
"narHash": "sha256-Qc8MXcV+YCPREu8kk6oggk23ZBKLqeQRAIsLbHEviPE=",
|
|
||||||
"owner": "guibou",
|
|
||||||
"repo": "nixGL",
|
|
||||||
"rev": "7165ffbccbd2cf4379b6cd6d2edd1620a427e5ae",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "guibou",
|
|
||||||
"repo": "nixGL",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1660551188,
|
|
||||||
"narHash": "sha256-a1LARMMYQ8DPx1BgoI/UN4bXe12hhZkCNqdxNi6uS0g=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "441dc5d512153039f19ef198e662e4f3dbb9fd65",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_2": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1671021324,
|
|
||||||
"narHash": "sha256-MDB6TncBzBCvAgQmjNn14VIaO5wdbxExp8NGP990Udk=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "62433a4892603c523840a67e50b6631c37adb928",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1665296151,
|
|
||||||
"narHash": "sha256-uOB0oxqxN9K7XGF1hcnY+PQnlQJ+3bP2vCn/+Ru/bbc=",
|
|
||||||
"owner": "NixOS",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "14ccaaedd95a488dd7ae142757884d8e125b3363",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "NixOS",
|
|
||||||
"ref": "nixpkgs-unstable",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-compat": "flake-compat",
|
|
||||||
"flake-utils-plus": "flake-utils-plus",
|
|
||||||
"home-manager": "home-manager",
|
|
||||||
"nixgl": "nixgl",
|
|
||||||
"nixpkgs": "nixpkgs_2",
|
|
||||||
"rust-overlay": "rust-overlay"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"rust-overlay": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": "flake-utils_3",
|
|
||||||
"nixpkgs": "nixpkgs_3"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1671071423,
|
|
||||||
"narHash": "sha256-zUldhyWANdgko+lqQuB1Eee7TyYya1KiOS0SCd/Y268=",
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"rev": "684659b7ca903e512a421bc6ade689fb26e509b4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "oxalica",
|
|
||||||
"repo": "rust-overlay",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"utils": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1667395993,
|
|
||||||
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": "root",
|
|
||||||
"version": 7
|
|
||||||
}
|
|
|
@ -1,57 +0,0 @@
|
||||||
{
|
|
||||||
inputs = {
|
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
||||||
home-manager = {
|
|
||||||
url = "github:nix-community/home-manager";
|
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
# useful only when packaging, not really within config zone
|
|
||||||
flake-utils-plus.url = "github:gytis-ivaskevicius/flake-utils-plus";
|
|
||||||
nixgl.url = "github:guibou/nixGL";
|
|
||||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
|
||||||
# Allows default.nix to call onto flake.nix. Useful for nix eval and automations
|
|
||||||
flake-compat = {
|
|
||||||
url = "github:edolstra/flake-compat";
|
|
||||||
flake = false;
|
|
||||||
};
|
|
||||||
# naersk.url = "gihub:nix-community/naersk";
|
|
||||||
};
|
|
||||||
outputs = { nixpkgs, nixgl, rust-overlay, flake-utils-plus, ... } @ inputs:
|
|
||||||
{
|
|
||||||
# HACK:
|
|
||||||
# this is to get multiple platforms support for home-manager
|
|
||||||
# see https://github.com/nix-community/home-manager/issues/3075#issuecomment-1330661815
|
|
||||||
# Expect this to change quite in some near future
|
|
||||||
# packages.linux_something.{nixosConfigurations,homeConfigurations}
|
|
||||||
packages = builtins.foldl'
|
|
||||||
(so_far: system: (
|
|
||||||
let
|
|
||||||
# init config
|
|
||||||
overlays = [ nixgl.overlay rust-overlay.overlays.default ];
|
|
||||||
pkgs = import nixpkgs { inherit system overlays; };
|
|
||||||
_lib = pkgs.lib;
|
|
||||||
lib = _lib.recursiveUpdate _lib import ./lib { inherit pkgs; };
|
|
||||||
configModule = import ./configModule;
|
|
||||||
moduleInputs = lib.recursiveUpdate inputs { inherit pkgs lib configModule; };
|
|
||||||
|
|
||||||
# module collecting
|
|
||||||
hosts = import ./hosts moduleInputs;
|
|
||||||
users = import ./users moduleInputs;
|
|
||||||
exportSystems = { nixosConfigurations, homeConfigurations }@_configs: {
|
|
||||||
packages.${system} = {
|
|
||||||
inherit (_configs) nixosConfigurations homeConfigurations;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
so_far // {
|
|
||||||
${system} = {
|
|
||||||
inherit pkgs lib overlays;
|
|
||||||
nixosConfigurations = hosts;
|
|
||||||
homeConfigurations = users;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
))
|
|
||||||
{ }
|
|
||||||
flake-utils-plus.lib.defaultSystems;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,80 +0,0 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [ ];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
## NOTE: These filesystems are mounted by a wrapper script from nix-wsl
|
|
||||||
|
|
||||||
# fileSystems."/" =
|
|
||||||
# {
|
|
||||||
# device = "/dev/sdc";
|
|
||||||
# fsType = "ext4";
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# fileSystems."/mnt/wsl" =
|
|
||||||
# {
|
|
||||||
# device = "tmpfs";
|
|
||||||
# fsType = "tmpfs";
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# fileSystems."/mnt/wsl/docker-desktop/shared-sockets/guest-services" =
|
|
||||||
# {
|
|
||||||
# device = "none";
|
|
||||||
# fsType = "tmpfs";
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# fileSystems."/usr/lib/wsl/drivers" =
|
|
||||||
# {
|
|
||||||
# device = "drivers";
|
|
||||||
# fsType = "drvfs";
|
|
||||||
# };
|
|
||||||
#
|
|
||||||
# fileSystems."/usr/lib/wsl/lib" =
|
|
||||||
# {
|
|
||||||
# device = "lib";
|
|
||||||
# fsType = "drvfs";
|
|
||||||
# };
|
|
||||||
|
|
||||||
fileSystems."/mnt/c" =
|
|
||||||
{
|
|
||||||
device = "C:";
|
|
||||||
fsType = "drvfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/mnt/d" =
|
|
||||||
{
|
|
||||||
device = "D:";
|
|
||||||
fsType = "drvfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/mnt/f" =
|
|
||||||
{
|
|
||||||
device = "F:";
|
|
||||||
fsType = "drvfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.bond0.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.bonding_masters.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.dummy0.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.eth0.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.sit0.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.tunl0.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ lib # require extended lib
|
|
||||||
, config
|
|
||||||
, pkgs
|
|
||||||
, modulePaths
|
|
||||||
, ...
|
|
||||||
}@inputs:
|
|
||||||
# Yields {nix = import ./nyx.nix inputs; ...}
|
|
||||||
# TODO: use something that can detect .nix into a list for auto adding. Remember to filter out default.nix
|
|
||||||
lib.exportWithInputs (
|
|
||||||
[
|
|
||||||
./nyx.nix
|
|
||||||
./Felia.nix
|
|
||||||
./lizzi.nix
|
|
||||||
./prince.nix
|
|
||||||
]
|
|
||||||
inputs
|
|
||||||
)
|
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[
|
|
||||||
(modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "virtio_pci" "virtio_scsi" "ahci" "sd_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelParams = [ "console=ttyS0,19200n8" ];
|
|
||||||
boot.loader.grub.extraConfig = ''
|
|
||||||
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1
|
|
||||||
terminal_input serial;
|
|
||||||
terminal_output serial
|
|
||||||
'';
|
|
||||||
boot.loader.grub.forceInstall = true;
|
|
||||||
boot.loader.grub.device = "nodev";
|
|
||||||
boot.loader.timeout = 10;
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
fileSystems = {
|
|
||||||
"/" = {
|
|
||||||
device = "/dev/sda";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
# Assume Linode volume "gitea" exists, mount it to '/gitea"'
|
|
||||||
"/gitea" = {
|
|
||||||
device = "/dev/disk/by-id/scsi-0Linode_Volume_gitea";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices =
|
|
||||||
[{ device = "/dev/sdb"; }];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp0s5.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/profiles/qemu-guest.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "virtio_pci" "virtio_scsi" "ahci" "sd_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ ];
|
|
||||||
boot.kernelModules = [ ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
|
|
||||||
boot.kernelParams = ["console=ttyS0,19200n8"];
|
|
||||||
boot.loader.grub.extraConfig = ''
|
|
||||||
serial --speed=19200 --unit=0 --word=8 --parity=no --stop=1
|
|
||||||
terminal_input serial;
|
|
||||||
terminal_output serial;
|
|
||||||
'';
|
|
||||||
boot.loader.grub.forceInstall = true;
|
|
||||||
boot.loader.grub.device = "nodev";
|
|
||||||
boot.loader.timeout = 10;
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/sda";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices =
|
|
||||||
[ { device = "/dev/sdb"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp0s5.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
inputs: {}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{ flake-utils-plus
|
|
||||||
, lib # extended lib from ../lib
|
|
||||||
, ...
|
|
||||||
} @inputs:
|
|
||||||
lib.exportWithInputs [
|
|
||||||
./prince
|
|
||||||
./hwtr
|
|
||||||
] inputs
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
accept-flake-config = true
|
|
||||||
experimental-features = nix-command flakes
|
|
|
@ -1,20 +0,0 @@
|
||||||
# Contains all of the utilities to help build this monorepo
|
|
||||||
# NOTE: lib is evaluated after overlays, but before import of mypkgs
|
|
||||||
# since mypkgs is dependent on ./lib
|
|
||||||
# In the future, if we need to develop utilities on top of mypkgs,
|
|
||||||
# use public_lib instead
|
|
||||||
{ pkgs
|
|
||||||
, lib ? pkgs.lib
|
|
||||||
, ...
|
|
||||||
}@flake_import:
|
|
||||||
let
|
|
||||||
moduleUtils = import ./moduleUtils flake_import;
|
|
||||||
inherit (moduleUtils.exportWithInputs [ ./serde ] flake_import) serde;
|
|
||||||
|
|
||||||
recursiveUpdate = lib.recursiveUpdate;
|
|
||||||
in
|
|
||||||
recursiveUpdate (recursiveUpdate pkgs.lib lib) {
|
|
||||||
fromYaml = serde.fromYaml;
|
|
||||||
fromYamlPath = serde.fromYamlPath;
|
|
||||||
inherit (moduleUtils) exportWithInputs;
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
{ flake-utils-plus
|
|
||||||
, lib
|
|
||||||
, ...
|
|
||||||
}: {
|
|
||||||
# exportWithInputs [./a.nix ./b.nix] {my = "inputs";}
|
|
||||||
# -> {a = import ./a.nix {my = "inputs";}, b = import ./b.nix {my = "inputs";}}
|
|
||||||
exportWithInputs = modules: inputs: (
|
|
||||||
lib.mapAttrs (name: value: (value inputs))
|
|
||||||
(flake-utils-plus.lib.exportModules modules));
|
|
||||||
mkModuleArgs =
|
|
||||||
# This shows the config fields that these modules are expected to have
|
|
||||||
# usage: [extra]specialArgs = mkModuleArgs {pkgs, lib,...} @ inputs
|
|
||||||
# Note that mkModuleArgs also recursively merges `inputs`
|
|
||||||
{ pkgs, lib ? pkgs.lib, ... }@inputs:
|
|
||||||
let
|
|
||||||
recursiveUpdate = lib.recursiveUpdate;
|
|
||||||
_lib = recursiveUpdate lib (import ../../lib { inherit pkgs lib; });
|
|
||||||
in
|
|
||||||
# TODO: Unpollute inputs
|
|
||||||
recursiveUpdate inputs {
|
|
||||||
proj_root = builtins.toString ./../..;
|
|
||||||
myLib = _lib;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
# Takes care of serializing and deserializing to some formats
|
|
||||||
# Blame: Pegasust<pegasucksgg@gmail.com>
|
|
||||||
# TODO: Add to* formats from pkgs.formats.*
|
|
||||||
{ pkgs
|
|
||||||
, lib
|
|
||||||
, ...
|
|
||||||
} @ inputs:
|
|
||||||
let
|
|
||||||
yamlToJsonDrv = yamlContent: outputPath: pkgs.callPackage
|
|
||||||
({ runCommand }:
|
|
||||||
# runCommand source: https://github.com/NixOS/nixpkgs/blob/master/pkgs/build-support/trivial-builders.nix#L33
|
|
||||||
runCommand outputPath { inherit yamlContent; nativeBuildInputs = [ pkgs.yq ]; }
|
|
||||||
# run yq which outputs '.' (no filter) on file at yamlPath
|
|
||||||
# note that $out is passed onto the bash/sh script for execution
|
|
||||||
''
|
|
||||||
echo "$yamlContent" | yq >$out
|
|
||||||
'')
|
|
||||||
{ };
|
|
||||||
in {
|
|
||||||
# Takes in a yaml string and produces a derivation with translated JSON at $outputPath
|
|
||||||
# similar to builtins.fromJSON, turns a YAML string to nix attrset
|
|
||||||
fromYaml = yamlContent: builtins.fromJSON (builtins.readFile (yamlToJsonDrv yamlContent "any_output.json"));
|
|
||||||
fromYamlPath = yamlPath: builtins.fromJSON (
|
|
||||||
builtins.readFile (
|
|
||||||
yamlToJsonDrv (
|
|
||||||
builtins.readFile yamlPath)
|
|
||||||
"any-output.json"));
|
|
||||||
# TODO: fromToml?
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{ pkgs
|
|
||||||
, lib
|
|
||||||
, naersk
|
|
||||||
,...
|
|
||||||
}@pkgs_input: {
|
|
||||||
deriv = pkgs.rustPlatform.buildRustPackage rec {
|
|
||||||
pname = "bacon";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
# This module aims to be merge (not inject/override) with top-level pkgs to provide
|
|
||||||
# personalized/custom packages
|
|
||||||
# For utility functions that aids with development of this whole monorepo,
|
|
||||||
# go into ../lib.
|
|
||||||
{ pkgs
|
|
||||||
, lib # extended lib from ../lib
|
|
||||||
, naersk # rust packages
|
|
||||||
, ...
|
|
||||||
}@pkgs_input:
|
|
||||||
lib.exportWithInputs [
|
|
||||||
./nixgl
|
|
||||||
./neovim
|
|
||||||
./cargo-bacon
|
|
||||||
] pkgs_input
|
|
|
@ -1 +0,0 @@
|
||||||
inputs: null
|
|
|
@ -1 +0,0 @@
|
||||||
inputs: null
|
|
|
@ -1,10 +0,0 @@
|
||||||
{ home-manager
|
|
||||||
, lib # extended lib from ../lib
|
|
||||||
, pkgs
|
|
||||||
, ... }@inputs:
|
|
||||||
lib.exportWithInputs [
|
|
||||||
./hwtr
|
|
||||||
./prince
|
|
||||||
./hungtr
|
|
||||||
] inputs
|
|
||||||
|
|
|
@ -1,31 +0,0 @@
|
||||||
{ home-manager, lib, pkgs, configModule, ... }@inputs: {
|
|
||||||
# end result: homeConfigurations.hwtr = home-manager...
|
|
||||||
homeConfig = home-manager.lib.homeManagerConfiguration {
|
|
||||||
inherit pkgs;
|
|
||||||
modules = configModule.homeModules ++ [
|
|
||||||
{
|
|
||||||
base.alacritty.font.family = "BitstreamVeraSansMono Nerd Font";
|
|
||||||
base.shells = {
|
|
||||||
shellAliases = {
|
|
||||||
nixGL = "nixGLIntel";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
users.users.hungtr = {
|
|
||||||
isNormalUser = true;
|
|
||||||
home = "/home/hungtr";
|
|
||||||
description = "pegasust/hungtr";
|
|
||||||
extraGroups = [ "wheel" "networkmanager" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
extraSpecialArgs = lib.mkModuleArgs {
|
|
||||||
inherit pkgs;
|
|
||||||
myHome = {
|
|
||||||
packages = [
|
|
||||||
pkgs.nixgl.nixGLIntel
|
|
||||||
pkgs.postman
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
{ home-manager, lib, pkgs }@inputs: {
|
|
||||||
# end result: homeConfigurations.hwtr = home-manager...
|
|
||||||
homeConfig = home-manager.lib.homeManagerConfiguration {
|
|
||||||
inherit pkgs;
|
|
||||||
modules = base.modules ++ [
|
|
||||||
./home.req.nix
|
|
||||||
{
|
|
||||||
base.alacritty.font.family = "BitstreamVeraSansMono Nerd Font";
|
|
||||||
base.shells = {
|
|
||||||
shellAliases = {
|
|
||||||
nixGL = "nixGLIntel";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
extraSpecialArgs = lib.mkModuleArgs {
|
|
||||||
inherit pkgs;
|
|
||||||
myHome = {
|
|
||||||
username = "hwtr";
|
|
||||||
homeDirectory = "/home/hwtr";
|
|
||||||
packages = [
|
|
||||||
pkgs.nixgl.nixGLIntel
|
|
||||||
pkgs.postman
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Reference in New Issue