mirror of
https://github.com/Swarsel/.dotfiles.git
synced 2025-12-06 09:07:21 +01:00
feat: add minimal config support (WIP)
This commit is contained in:
parent
34badc91d5
commit
49b557befa
26 changed files with 726 additions and 599 deletions
|
|
@ -2,10 +2,19 @@
|
|||
let
|
||||
inherit (nixosConfig.repo.secrets.common.mail) address1 address2 add2Name address3 add3Name address4;
|
||||
inherit (nixosConfig.repo.secrets.common) fullName;
|
||||
inherit (config.swarselsystems) xdgDir;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.mail = lib.mkEnableOption "mail settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.mail {
|
||||
|
||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||
mrswarsel = { path = "${xdgDir}/secrets/mrswarsel"; };
|
||||
nautilus = { path = "${xdgDir}/secrets/nautilus"; };
|
||||
leon = { path = "${xdgDir}/secrets/leon"; };
|
||||
swarselmail = { path = "${xdgDir}/secrets/swarselmail"; };
|
||||
};
|
||||
|
||||
programs = {
|
||||
mbsync = {
|
||||
enable = true;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ self, lib, pkgs, ... }:
|
||||
{ self, lib, pkgs, globals, minimal, ... }:
|
||||
{
|
||||
options.swarselsystems = {
|
||||
isLaptop = lib.mkEnableOption "laptop host";
|
||||
|
|
@ -9,7 +9,7 @@
|
|||
isBtrfs = lib.mkEnableOption "use btrfs filesystem";
|
||||
mainUser = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "swarsel";
|
||||
default = if (!minimal) then globals.user.name else "setup";
|
||||
};
|
||||
homeDir = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
|
|
|
|||
|
|
@ -1,23 +1,15 @@
|
|||
{ config, lib, ... }:
|
||||
let
|
||||
inherit (config.swarselsystems) homeDir xdgDir;
|
||||
inherit (config.swarselsystems) homeDir;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.sops = lib.mkEnableOption "sops settings";
|
||||
config = lib.mkIf config.swarselsystems.modules.sops {
|
||||
sops = {
|
||||
age.sshKeyPaths = [ "${homeDir}/.ssh/sops" "${homeDir}/.ssh/ssh_host_ed25519_key" ];
|
||||
defaultSopsFile = lib.swarselsystems.mkIfElseList config.swarselsystems.isBtrfs "/persist/.dotfiles/secrets/general/secrets.yaml" "${homeDir}/.dotfiles/secrets/general/secrets.yaml";
|
||||
defaultSopsFile = "${homeDir}/.dotfiles/secrets/general/secrets.yaml";
|
||||
|
||||
validateSopsFiles = false;
|
||||
secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||
mrswarsel = { path = "${xdgDir}/secrets/mrswarsel"; };
|
||||
nautilus = { path = "${xdgDir}/secrets/nautilus"; };
|
||||
leon = { path = "${xdgDir}/secrets/leon"; };
|
||||
swarselmail = { path = "${xdgDir}/secrets/swarselmail"; };
|
||||
github_notif = { path = "${xdgDir}/secrets/github_notif"; };
|
||||
u2f_keys = { path = "${homeDir}/.config/Yubico/u2f_keys"; };
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
{ self, config, lib, pkgs, ... }:
|
||||
let
|
||||
inherit (config.swarselsystems) xdgDir;
|
||||
generateIcons = n: lib.concatStringsSep " " (builtins.map (x: "{icon" + toString x + "}") (lib.range 0 (n - 1)));
|
||||
modulesLeft = [
|
||||
"custom/outer-left-arrow-dark"
|
||||
|
|
@ -52,11 +53,17 @@ in
|
|||
};
|
||||
};
|
||||
config = lib.mkIf config.swarselsystems.modules.waybar {
|
||||
|
||||
swarselsystems = {
|
||||
waybarModules = lib.mkIf config.swarselsystems.isLaptop (modulesLeft ++ [
|
||||
"battery"
|
||||
] ++ modulesRight);
|
||||
};
|
||||
|
||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||
github_notif = { path = "${xdgDir}/secrets/github_notif"; };
|
||||
};
|
||||
|
||||
programs.waybar = {
|
||||
enable = true;
|
||||
systemd = {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,16 @@
|
|||
{ lib, config, nixosConfig, ... }:
|
||||
let
|
||||
inherit (config.swarselsystems) homeDir;
|
||||
in
|
||||
{
|
||||
options.swarselsystems.modules.yubikey = lib.mkEnableOption "yubikey settings";
|
||||
|
||||
config = lib.mkIf config.swarselsystems.modules.yubikey {
|
||||
|
||||
sops.secrets = lib.mkIf (!config.swarselsystems.isPublic) {
|
||||
u2f_keys = { path = "${homeDir}/.config/Yubico/u2f_keys"; };
|
||||
};
|
||||
|
||||
pam.yubico.authorizedYubiKeys = lib.mkIf (config.swarselsystems.isNixos && !config.swarselsystems.isPublic) {
|
||||
ids = [
|
||||
nixosConfig.repo.secrets.common.yubikeys.dev1
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
{ config, lib, ... }:
|
||||
{ config, lib, minimal, ... }:
|
||||
let
|
||||
inherit (config.swarselsystems) flakePath;
|
||||
in
|
||||
|
|
@ -10,115 +10,118 @@ in
|
|||
default = { };
|
||||
};
|
||||
};
|
||||
config = lib.mkIf config.swarselsystems.modules.zsh {
|
||||
config = lib.mkIf config.swarselsystems.modules.zsh
|
||||
{
|
||||
|
||||
sops.secrets = {
|
||||
croc-password = { };
|
||||
};
|
||||
sops.secrets = {
|
||||
croc-password = { };
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
shellAliases = lib.recursiveUpdate
|
||||
{
|
||||
hg = "history | grep";
|
||||
hmswitch = "home-manager --flake ${flakePath}#$(whoami)@$(hostname) switch |& nom";
|
||||
# nswitch = "sudo nixos-rebuild --flake ${flakePath}#$(hostname) --show-trace --log-format internal-json -v switch |& nom --json";
|
||||
nswitch = "swarsel-deploy $(hostname) switch";
|
||||
# nboot = "sudo nixos-rebuild --flake ${flakePath}#$(hostname) --show-trace --log-format internal-json -v boot |& nom --json";
|
||||
nboot = "swarsel-deploy $(hostname) boot";
|
||||
magit = "emacsclient -nc -e \"(magit-status)\"";
|
||||
config = "git --git-dir=$HOME/.cfg/ --work-tree=$HOME";
|
||||
g = "git";
|
||||
c = "git --git-dir=$FLAKE/.git --work-tree=$FLAKE/";
|
||||
passpush = "cd ~/.local/share/password-store; git add .; git commit -m 'pass file changes'; git push; cd -;";
|
||||
passpull = "cd ~/.local/share/password-store; git pull; cd -;";
|
||||
hotspot = "nmcli connection up local; nmcli device wifi hotspot;";
|
||||
youtube-dl = "yt-dlp";
|
||||
cat-orig = "cat";
|
||||
cdr = "cd \"$( (find $DOCUMENT_DIR_WORK $DOCUMENT_DIR_PRIV -maxdepth 1 && echo $FLAKE) | fzf )\"";
|
||||
nix-ldd-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd";
|
||||
nix-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd";
|
||||
nix-ldd-locate = "nix-locate --minimal --top-level -w ";
|
||||
nix-store-search = "ls /nix/store | grep";
|
||||
fs-diff = "sudo mount -o subvol=/ /dev/mapper/cryptroot /mnt ; fs-diff";
|
||||
lt = "eza -las modified --total-size";
|
||||
boot-diff = "nix store diff-closures /run/*-system";
|
||||
gen-diff = "nix profile diff-closures --profile /nix/var/nix/profiles/system";
|
||||
cc = "wl-copy";
|
||||
}
|
||||
config.swarselsystems.shellAliases;
|
||||
autosuggestion.enable = true;
|
||||
enableCompletion = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
autocd = false;
|
||||
cdpath = [
|
||||
"~/.dotfiles"
|
||||
# "~/Documents/GitHub"
|
||||
];
|
||||
defaultKeymap = "emacs";
|
||||
dirHashes = {
|
||||
dl = "$HOME/Downloads";
|
||||
gh = "$HOME/Documents/GitHub";
|
||||
};
|
||||
history = {
|
||||
expireDuplicatesFirst = true;
|
||||
path = "$HOME/.histfile";
|
||||
save = 100000;
|
||||
size = 100000;
|
||||
};
|
||||
historySubstringSearch = {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
searchDownKey = "^[OB";
|
||||
searchUpKey = "^[OA";
|
||||
}
|
||||
// lib.optionalAttrs (!minimal) {
|
||||
shellAliases = lib.recursiveUpdate
|
||||
{
|
||||
hg = "history | grep";
|
||||
hmswitch = "home-manager --flake ${flakePath}#$(whoami)@$(hostname) switch |& nom";
|
||||
# nswitch = "sudo nixos-rebuild --flake ${flakePath}#$(hostname) --show-trace --log-format internal-json -v switch |& nom --json";
|
||||
nswitch = "swarsel-deploy $(hostname) switch";
|
||||
# nboot = "sudo nixos-rebuild --flake ${flakePath}#$(hostname) --show-trace --log-format internal-json -v boot |& nom --json";
|
||||
nboot = "swarsel-deploy $(hostname) boot";
|
||||
magit = "emacsclient -nc -e \"(magit-status)\"";
|
||||
config = "git --git-dir=$HOME/.cfg/ --work-tree=$HOME";
|
||||
g = "git";
|
||||
c = "git --git-dir=$FLAKE/.git --work-tree=$FLAKE/";
|
||||
passpush = "cd ~/.local/share/password-store; git add .; git commit -m 'pass file changes'; git push; cd -;";
|
||||
passpull = "cd ~/.local/share/password-store; git pull; cd -;";
|
||||
hotspot = "nmcli connection up local; nmcli device wifi hotspot;";
|
||||
youtube-dl = "yt-dlp";
|
||||
cat-orig = "cat";
|
||||
cdr = "cd \"$( (find $DOCUMENT_DIR_WORK $DOCUMENT_DIR_PRIV -maxdepth 1 && echo $FLAKE) | fzf )\"";
|
||||
nix-ldd-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd";
|
||||
nix-ldd = "LD_LIBRARY_PATH=$NIX_LD_LIBRARY_PATH ldd";
|
||||
nix-ldd-locate = "nix-locate --minimal --top-level -w ";
|
||||
nix-store-search = "ls /nix/store | grep";
|
||||
fs-diff = "sudo mount -o subvol=/ /dev/mapper/cryptroot /mnt ; fs-diff";
|
||||
lt = "eza -las modified --total-size";
|
||||
boot-diff = "nix store diff-closures /run/*-system";
|
||||
gen-diff = "nix profile diff-closures --profile /nix/var/nix/profiles/system";
|
||||
cc = "wl-copy";
|
||||
}
|
||||
config.swarselsystems.shellAliases;
|
||||
autosuggestion.enable = true;
|
||||
enableCompletion = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
autocd = false;
|
||||
cdpath = [
|
||||
"~/.dotfiles"
|
||||
# "~/Documents/GitHub"
|
||||
];
|
||||
defaultKeymap = "emacs";
|
||||
dirHashes = {
|
||||
dl = "$HOME/Downloads";
|
||||
gh = "$HOME/Documents/GitHub";
|
||||
};
|
||||
history = {
|
||||
expireDuplicatesFirst = true;
|
||||
path = "$HOME/.histfile";
|
||||
save = 100000;
|
||||
size = 100000;
|
||||
};
|
||||
historySubstringSearch = {
|
||||
enable = true;
|
||||
searchDownKey = "^[OB";
|
||||
searchUpKey = "^[OA";
|
||||
};
|
||||
plugins = [
|
||||
# {
|
||||
# name = "fzf-tab";
|
||||
# src = pkgs.zsh-fzf-tab;
|
||||
# }
|
||||
];
|
||||
initContent = lib.mkIf (!config.swarselsystems.isPublic) ''
|
||||
my-forward-word() {
|
||||
local WORDCHARS=$WORDCHARS
|
||||
WORDCHARS="''${WORDCHARS//:}"
|
||||
WORDCHARS="''${WORDCHARS//\/}"
|
||||
WORDCHARS="''${WORDCHARS//.}"
|
||||
zle forward-word
|
||||
}
|
||||
zle -N my-forward-word
|
||||
# ctrl + right
|
||||
bindkey "^[[1;5C" my-forward-word
|
||||
|
||||
# shift + right
|
||||
bindkey "^[[1;2C" forward-word
|
||||
|
||||
my-backward-word() {
|
||||
local WORDCHARS=$WORDCHARS
|
||||
WORDCHARS="''${WORDCHARS//:}"
|
||||
WORDCHARS="''${WORDCHARS//\/}"
|
||||
WORDCHARS="''${WORDCHARS//.}"
|
||||
zle backward-word
|
||||
}
|
||||
zle -N my-backward-word
|
||||
# ctrl + left
|
||||
bindkey "^[[1;5D" my-backward-word
|
||||
|
||||
# shift + left
|
||||
bindkey "^[[1;2D" backward-word
|
||||
|
||||
my-backward-delete-word() {
|
||||
local WORDCHARS=$WORDCHARS
|
||||
WORDCHARS="''${WORDCHARS//:}"
|
||||
WORDCHARS="''${WORDCHARS//\/}"
|
||||
WORDCHARS="''${WORDCHARS//.}"
|
||||
zle backward-delete-word
|
||||
}
|
||||
zle -N my-backward-delete-word
|
||||
# ctrl + del
|
||||
bindkey '^H' my-backward-delete-word
|
||||
|
||||
export CROC_PASS="$(cat ${config.sops.secrets.croc-password.path})"
|
||||
'';
|
||||
};
|
||||
plugins = [
|
||||
# {
|
||||
# name = "fzf-tab";
|
||||
# src = pkgs.zsh-fzf-tab;
|
||||
# }
|
||||
];
|
||||
initContent = lib.mkIf (!config.swarselsystems.isPublic) ''
|
||||
my-forward-word() {
|
||||
local WORDCHARS=$WORDCHARS
|
||||
WORDCHARS="''${WORDCHARS//:}"
|
||||
WORDCHARS="''${WORDCHARS//\/}"
|
||||
WORDCHARS="''${WORDCHARS//.}"
|
||||
zle forward-word
|
||||
}
|
||||
zle -N my-forward-word
|
||||
# ctrl + right
|
||||
bindkey "^[[1;5C" my-forward-word
|
||||
|
||||
# shift + right
|
||||
bindkey "^[[1;2C" forward-word
|
||||
|
||||
my-backward-word() {
|
||||
local WORDCHARS=$WORDCHARS
|
||||
WORDCHARS="''${WORDCHARS//:}"
|
||||
WORDCHARS="''${WORDCHARS//\/}"
|
||||
WORDCHARS="''${WORDCHARS//.}"
|
||||
zle backward-word
|
||||
}
|
||||
zle -N my-backward-word
|
||||
# ctrl + left
|
||||
bindkey "^[[1;5D" my-backward-word
|
||||
|
||||
# shift + left
|
||||
bindkey "^[[1;2D" backward-word
|
||||
|
||||
my-backward-delete-word() {
|
||||
local WORDCHARS=$WORDCHARS
|
||||
WORDCHARS="''${WORDCHARS//:}"
|
||||
WORDCHARS="''${WORDCHARS//\/}"
|
||||
WORDCHARS="''${WORDCHARS//.}"
|
||||
zle backward-delete-word
|
||||
}
|
||||
zle -N my-backward-delete-word
|
||||
# ctrl + del
|
||||
bindkey '^H' my-backward-delete-word
|
||||
|
||||
export CROC_PASS="$(cat ${config.sops.secrets.croc-password.path})"
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue