summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.nix14
-rw-r--r--hosts/ahmed/ssh.nix4
-rw-r--r--lib/secrets.nix (renamed from lib/secrets/default.nix)0
-rw-r--r--lib/secrets/metadata.toml5
-rw-r--r--metadata.toml9
-rw-r--r--use-cases/default.nix23
-rw-r--r--use-cases/neovim/default.nix2
-rw-r--r--use-cases/zsh/default.nix15
-rw-r--r--use-cases/zsh/plugins.nix52
9 files changed, 100 insertions, 24 deletions
diff --git a/flake.nix b/flake.nix
index f294ae9..f8309ca 100644
--- a/flake.nix
+++ b/flake.nix
@@ -14,15 +14,21 @@
};
outputs = { nixpkgs, home-manager, nix-darwin, ... }@inputs:
+ let
+ args = {
+ flakeInputs = inputs;
+ misc.metadata = nixpkgs.lib.importTOML ./metadata.toml;
+ };
+ in
{
darwinConfigurations = {
muhammed = nix-darwin.lib.darwinSystem {
inherit inputs;
system = "aarch64-darwin";
modules = [
- { _module.args = { flakeInputs = inputs; }; }
- ./hosts/muhammed/configuration.nix
+ { _module.args = args; }
home-manager.darwinModules.home-manager
+ ./hosts/muhammed/configuration.nix
./use-cases/default.nix
];
};
@@ -32,9 +38,9 @@
ahmed = nixpkgs.lib.nixosSystem {
system = "x86_64-linux";
modules = [
- { _module.args = { flakeInputs = inputs; }; }
- ./hosts/ahmed/configuration.nix
+ { _module.args = args; }
home-manager.nixosModules.home-manager
+ ./hosts/ahmed/configuration.nix
./use-cases/default.nix
];
};
diff --git a/hosts/ahmed/ssh.nix b/hosts/ahmed/ssh.nix
index cedf56e..9e34d99 100644
--- a/hosts/ahmed/ssh.nix
+++ b/hosts/ahmed/ssh.nix
@@ -1,6 +1,6 @@
# This file configures openSSH on this host.
-{ config, pkgs, lib, ... }:
+{ config, pkgs, lib, misc, ... }:
{
# Who is allowed/expected to connect to this machine?
@@ -13,7 +13,7 @@
users.users = lib.genAttrs ["root" "linus"] (_: {
openssh.authorizedKeys.keys =
[
- "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDcmUCfFA/arYpT0zBWoOXcyxN5bgk5cMrWgTIol5RsHB82VzoS+LG3IV4IwBz4QALaCj5DlhfbasGKMkFRgFvLerEtBleIb58RtOXIOf6TIUaqpyHB3h2CjdwrbmyjjWEl9W2BTpadrR5uPr0HoeED8dCFYE5cPjrSELtrYxEW0o1DBJw8bXfpgyYB21loBzrcOhRsrPSaS0gYHZLGY7Av7FGfncVZDLNYL0/pZ/t0UWD6JF+6FgOdGWAuuwSt5WR9DVxGilVG5aFktDB14fNPEBIVf7tkT4/McAihR/u344yaiUWA4bV7w039Ubhn9NdnoBSvGrP6jTy/zDgq5ywFj8aqcdlahxtELNWgxYYrI8HZzvITKo1FU7BOcUN1vNS4npOvyWBl7s3jFCO+R2E/BoyjfsjYTylacpepf26D87U32jNsh39OKdHxRF3/qmMGYa1L7N4M0iT9WFEMCcKB/MMAcHgE25vWPQaY1orU8X8NZPhxjfIVcw1rqcjwCryNwb1ZOMTIEc9kbGiP99MhE7ZA0yvHZfMezeymSwg1kN+iJDTp24gSsFtYuz5vm9lRu/PzfU9lNlp2KHdaLISUouSCCHPgF7zZSWtXa1B920zrAg2Fco8/Iymh+Fa0UNnrbnfyQTgLeNT12SLD4Y5gHimUsuq8tFkxjR6WffmrRw== [email protected]"
+ misc.metadata.hosts.muhammed.sshPubKey
];
});
}
diff --git a/lib/secrets/default.nix b/lib/secrets.nix
index 401d4a5..401d4a5 100644
--- a/lib/secrets/default.nix
+++ b/lib/secrets.nix
diff --git a/lib/secrets/metadata.toml b/lib/secrets/metadata.toml
deleted file mode 100644
index a956c31..0000000
--- a/lib/secrets/metadata.toml
+++ /dev/null
@@ -1,5 +0,0 @@
-# This file specifies metadata for each host.
-
-[hosts.ahmed]
-ipAddress = "192.168.68.126"
-sshPubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL3/DjOuKMN18fs/0ZHI3kKLHGytXOFEDBbx+09ZrS3G"
diff --git a/metadata.toml b/metadata.toml
new file mode 100644
index 0000000..1d804c8
--- /dev/null
+++ b/metadata.toml
@@ -0,0 +1,9 @@
+# This file specifies metadata for each host.
+
+[hosts.ahmed]
+ipAddress = "192.168.68.126"
+sshPubKey = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL3/DjOuKMN18fs/0ZHI3kKLHGytXOFEDBbx+09ZrS3G"
+
+[hosts.muhammed]
+ipAddress = "???"
+sshPubKey = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDcmUCfFA/arYpT0zBWoOXcyxN5bgk5cMrWgTIol5RsHB82VzoS+LG3IV4IwBz4QALaCj5DlhfbasGKMkFRgFvLerEtBleIb58RtOXIOf6TIUaqpyHB3h2CjdwrbmyjjWEl9W2BTpadrR5uPr0HoeED8dCFYE5cPjrSELtrYxEW0o1DBJw8bXfpgyYB21loBzrcOhRsrPSaS0gYHZLGY7Av7FGfncVZDLNYL0/pZ/t0UWD6JF+6FgOdGWAuuwSt5WR9DVxGilVG5aFktDB14fNPEBIVf7tkT4/McAihR/u344yaiUWA4bV7w039Ubhn9NdnoBSvGrP6jTy/zDgq5ywFj8aqcdlahxtELNWgxYYrI8HZzvITKo1FU7BOcUN1vNS4npOvyWBl7s3jFCO+R2E/BoyjfsjYTylacpepf26D87U32jNsh39OKdHxRF3/qmMGYa1L7N4M0iT9WFEMCcKB/MMAcHgE25vWPQaY1orU8X8NZPhxjfIVcw1rqcjwCryNwb1ZOMTIEc9kbGiP99MhE7ZA0yvHZfMezeymSwg1kN+iJDTp24gSsFtYuz5vm9lRu/PzfU9lNlp2KHdaLISUouSCCHPgF7zZSWtXa1B920zrAg2Fco8/Iymh+Fa0UNnrbnfyQTgLeNT12SLD4Y5gHimUsuq8tFkxjR6WffmrRw=="
diff --git a/use-cases/default.nix b/use-cases/default.nix
index 6823d9c..d158bf9 100644
--- a/use-cases/default.nix
+++ b/use-cases/default.nix
@@ -1,9 +1,12 @@
-{ config, lib, flakeInputs, ... }:
+{ config, pkgs, lib, flakeInputs, misc, ... }:
let
inherit (lib) mkOption types optional elem;
hasUseCase = c: elem c config.my.use-cases;
+ development = hasUseCase "development";
+ sysadmin = hasUseCase "sysadmin";
+ gui = hasUseCase "gui";
in
{
options.my.use-cases = mkOption {
@@ -13,21 +16,21 @@ in
config = {
home-manager.users.linus = {
- imports =
- (optional (hasUseCase "development") ./neovim) ++
- (optional (hasUseCase "development") && (hasUseCase "gui" && pkgs.stdenv.isDarwin) ./kitty) ++
- (optional (hasUseCase "development") && (hasUseCase "gui" && pkgs.stdenv.isLinux) ./st) ++
- (optional (hasUseCase "sysadmin") || (hasUseCase "development") ./zsh) ++
- (optional (hasUseCase "sysadmin") || (hasUseCase "development") ./cli-basics.nix);
+ imports = (optional development ./neovim)
+ ++ (optional development ./git)
+ #++ (optional (development && gui && pkgs.stdenv.isDarwin) ./iterm2)
+ #++ (optional (development && gui && pkgs.stdenv.isDarwin) ./st)
+ ++ (optional (development || sysadmin) ./zsh)
+ ++ (optional (development || sysadmin) ./cli-basics.nix);
xdg.enable = true;
};
- home.extraSpecialArgs = {
+ home-manager.extraSpecialArgs = {
super = config;
- inherit flakeInputs;
+ inherit flakeInputs misc;
};
- home.useGlobalPkgs = true;
+ home-manager.useGlobalPkgs = true;
};
}
diff --git a/use-cases/neovim/default.nix b/use-cases/neovim/default.nix
index 5c265b8..883c170 100644
--- a/use-cases/neovim/default.nix
+++ b/use-cases/neovim/default.nix
@@ -25,5 +25,3 @@
# Use neovim as man pager.
home.sessionVariables.MANPAGER = "nvim +Man!";
}
-
-# vi: foldmethod=marker
diff --git a/use-cases/zsh/default.nix b/use-cases/zsh/default.nix
index ac88554..fe574a4 100644
--- a/use-cases/zsh/default.nix
+++ b/use-cases/zsh/default.nix
@@ -1,6 +1,11 @@
-{ pkgs, config, ... }:
+{ pkgs, config, lib, ... }:
{
+ imports =
+ [
+ ./plugins.nix
+ ];
+
programs.zsh = {
enable = true;
@@ -10,6 +15,14 @@
# TODO: dotDir = (pathRelativeTo config.xdg.configHome config.home) + "/zsh";
dotDir = ".config/zsh";
history.path = config.xdg.cacheHome + "/zsh/history";
+
+ shellAliases = {
+ "mv" = "mv -i";
+ "rm" = "rm -i";
+ "cp" = "cp -i";
+ "ls" = "ls -A --color=auto";
+ "grep" = "grep --color=auto";
+ };
};
programs.fzf = {
diff --git a/use-cases/zsh/plugins.nix b/use-cases/zsh/plugins.nix
new file mode 100644
index 0000000..a5b6099
--- /dev/null
+++ b/use-cases/zsh/plugins.nix
@@ -0,0 +1,52 @@
+{ pkgs, lib, config, ... }:
+
+let
+ inherit (lib.strings) concatStringsSep;
+ inherit (lib.attrsets) catAttrs;
+
+ plugins =
+ [
+ {
+ name = "autovenv";
+ src = pkgs.fetchFromGitHub {
+ owner = "linnnus";
+ repo = "autovenv";
+ rev = "d9f0cd7";
+ hash = "sha256-GfJIybMYxE97xLSkrOSGsn+AREmnCyqe9n2aZwjw4w4=";
+ };
+ }
+ {
+ name = "zsh-cwd-history";
+ src = pkgs.fetchFromGitHub {
+ owner = "ericfreese";
+ repo = "zsh-cwd-history";
+ rev = "73afed8";
+ hash = "sha256-xW11wPFDuFU80AzgAgLwkvK7Qv58fo3i3kSasE3p0zs=";
+ };
+ config = ''
+ # Where to but history files
+ export ZSH_CWD_HISTORY_DIR=${config.xdg.dataHome}/zsh-cwd-history
+ mkdir -p "$ZSH_CWD_HISTORY_DIR"
+
+ # Toggle between global/local history
+ bindkey '^G' cwd-history-toggle
+ '';
+ }
+ {
+ name = "zsh-vi-mode-cursor";
+ src = pkgs.fetchFromGitHub {
+ owner = "Buckmeister";
+ repo = "zsh-vi-mode-cursor";
+ rev = "fa7cc0973ee71636e906e25e782d0aea19545d60";
+ hash = "sha256-j73M4bvAoHWt5Wwg47hM0p5Or74x/3btTOPnI22SqG8=";
+ };
+ }
+ ];
+in
+{
+ programs.zsh = {
+ plugins = map (p: removeAttrs p ["config"]) plugins;
+
+ initExtra = concatStringsSep "\n" (catAttrs "config" plugins);
+ };
+}