diff options
author | Linnnus <[email protected]> | 2023-09-06 11:35:04 +0200 |
---|---|---|
committer | Linnnus <[email protected]> | 2023-09-06 11:35:04 +0200 |
commit | 1b13a31cfedae20da0a9aed7b8768a6432889b65 (patch) | |
tree | 2fb869e77df73fcc28eeef78dc79b7c39e21fd2d | |
parent | 17d483c8c8a96fad2200acaf802b7ef0b0eb494d (diff) |
more stuff
-rw-r--r-- | flake.nix | 14 | ||||
-rw-r--r-- | hosts/ahmed/ssh.nix | 4 | ||||
-rw-r--r-- | lib/secrets.nix (renamed from lib/secrets/default.nix) | 0 | ||||
-rw-r--r-- | lib/secrets/metadata.toml | 5 | ||||
-rw-r--r-- | metadata.toml | 9 | ||||
-rw-r--r-- | use-cases/default.nix | 23 | ||||
-rw-r--r-- | use-cases/neovim/default.nix | 2 | ||||
-rw-r--r-- | use-cases/zsh/default.nix | 15 | ||||
-rw-r--r-- | use-cases/zsh/plugins.nix | 52 |
9 files changed, 100 insertions, 24 deletions
@@ -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); + }; +} |