aboutsummaryrefslogtreecommitdiff
path: root/home/shell
diff options
context:
space:
mode:
Diffstat (limited to 'home/shell')
-rw-r--r--home/shell/aliases.nix2
-rw-r--r--home/shell/zsh/completion-style.zsh18
-rw-r--r--home/shell/zsh/default.nix1
-rw-r--r--home/shell/zsh/new-go-project.zsh19
-rw-r--r--home/shell/zsh/prompt.zsh9
-rw-r--r--home/shell/zsh/ssh-agent.zsh3
6 files changed, 46 insertions, 6 deletions
diff --git a/home/shell/aliases.nix b/home/shell/aliases.nix
index b3190dc..1759b3c 100644
--- a/home/shell/aliases.nix
+++ b/home/shell/aliases.nix
@@ -2,4 +2,6 @@
ll = "ls -l --color=auto";
lt = "ls -ltrh --color=auto";
pkgsearch = "nix search nixpkgs";
+ hms = "home-manager switch --flake .";
+ nr = "sudo nixos-rebuild switch --flake .";
}
diff --git a/home/shell/zsh/completion-style.zsh b/home/shell/zsh/completion-style.zsh
index 32bd6f4..79a4e68 100644
--- a/home/shell/zsh/completion-style.zsh
+++ b/home/shell/zsh/completion-style.zsh
@@ -1,5 +1,16 @@
-# Style the completion a bit
-zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS}
+# 'ctrl-x r' will complete the 12 last modified (mtime) files/directories
+zle -C newest-files menu-complete _generic
+# Use "*newest-files" so that it matches both "newest-files" and
+# "load-completion-and-newest-files".
+zstyle ':completion:*newest-files:*' completer _files
+zstyle ':completion:*newest-files:*' file-patterns '*(omN[1,12])'
+zstyle ':completion:*newest-files:*' menu select yes
+zstyle ':completion:*newest-files:*' sort false
+zstyle ':completion:*newest-files:*' matcher-list 'b:=*' # important
+
+# colors for zsh file name completion
+zmodload zsh/complist
+zstyle ':completion:*:default' list-colors ${(s.:.)LS_COLORS}
# Show a prompt on selection
zstyle ':completion:*' select-prompt '%SScrolling active: current selection at %p%s'
@@ -13,9 +24,6 @@ zstyle ':completion:*' group-name ''
# Keep directories and files separated
zstyle ':completion:*' list-dirs-first true
-# Add colors to processes for kill completion
-zstyle ':completion:*:*:kill:*:processes' list-colors '=(#b) #([0-9]#)*=0=01;31'
-
# match uppercase from lowercase
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
diff --git a/home/shell/zsh/default.nix b/home/shell/zsh/default.nix
index ffc6c41..67cc370 100644
--- a/home/shell/zsh/default.nix
+++ b/home/shell/zsh/default.nix
@@ -46,6 +46,7 @@ in
./options.zsh
./prompt.zsh
./tmux.zsh
+ ./ssh-agent.zsh
];
};
};
diff --git a/home/shell/zsh/new-go-project.zsh b/home/shell/zsh/new-go-project.zsh
new file mode 100644
index 0000000..0b96a34
--- /dev/null
+++ b/home/shell/zsh/new-go-project.zsh
@@ -0,0 +1,19 @@
+new-go-project() {
+ local project_name=$1
+
+ echo "> creating ${project_name}"
+ cd ~/workspace/
+ mkdir $project_name
+ cd $project_name
+
+ echo "> initializing the git repository"
+ git init .
+
+ echo "> setting the default template for go projects"
+ nix flake init -t ~/workspace/world/templates#go
+ direnv allow
+
+ echo "> creating initial commit, touch your yubikey"
+ git add .
+ git commit -m 'initial commit'
+}
diff --git a/home/shell/zsh/prompt.zsh b/home/shell/zsh/prompt.zsh
index 291f436..8473f72 100644
--- a/home/shell/zsh/prompt.zsh
+++ b/home/shell/zsh/prompt.zsh
@@ -1,6 +1,13 @@
setopt prompt_subst
-PROMPT='%K{cyan}%F{black}%m%k%f %~ %% '
+autoload -Uz vcs_info
+
+# display the name of the branch
+zstyle ':vcs_info:git*' formats "[%b]"
+zstyle ':vcs_info:*' enable git
+
+precmd () { vcs_info }
+PROMPT="%K{cyan}%F{black}%n@%m%k%F{yellow}%~%f %F{green}${vcs_info_msg_0_}%f%% "
# For tramp (emacs).
if [ "$TERM" = "dumb" ]; then
diff --git a/home/shell/zsh/ssh-agent.zsh b/home/shell/zsh/ssh-agent.zsh
new file mode 100644
index 0000000..1e5d81c
--- /dev/null
+++ b/home/shell/zsh/ssh-agent.zsh
@@ -0,0 +1,3 @@
+if [ $(ps ax | grep "[s]sh-agent" | wc -l) -eq 0 ] ; then
+ eval $(ssh-agent -s -a ${XDG_RUNTIME_DIR}/ssh-agent.sock) > /dev/null
+fi