summaryrefslogtreecommitdiff
path: root/use-cases
diff options
context:
space:
mode:
authorLinnnus <[email protected]>2023-09-06 11:35:04 +0200
committerLinnnus <[email protected]>2023-09-06 11:35:04 +0200
commit1b13a31cfedae20da0a9aed7b8768a6432889b65 (patch)
tree2fb869e77df73fcc28eeef78dc79b7c39e21fd2d /use-cases
parent17d483c8c8a96fad2200acaf802b7ef0b0eb494d (diff)
more stuff
Diffstat (limited to 'use-cases')
-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
4 files changed, 79 insertions, 13 deletions
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);
+ };
+}