feat(revamp): add zsh and neovim configs, add an install script and a dependencies list

This commit is contained in:
2026-04-20 12:17:46 +02:00
parent f9f5b1e184
commit 27b1db55df
227 changed files with 13985 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
# OSX
Defines [macOS][1] aliases and functions.
This module must be loaded _before_ the [_`completion`_][2] module so that the
provided completion definitions are loaded automatically by _`completion`_
module.
## Settings
### Dash Keyword
To change the keyword used by `mand` to open man pages in [_Dash.app_][3] from
its default value of 'manpages', add the following line in
_`${ZDOTDIR:-$HOME}/.zpreztorc`_ and replace the **keyword** with the one
configured in [_Dash.app_][3].
```sh
zstyle ':prezto:module:osx:man' dash-keyword 'keyword'
```
## Aliases
- `cdf` changes the current working director to the current _Finder_ directory.
- `pushdf` pushes the current working directory onto the directory queue and
changes the current working director to the current _Finder_ directory.
## Functions
- `mand` opens _man_ pages in [_Dash.app_][3].
- `manp` opens _man_ pages in _Preview.app_.
- `pfd` prints the current _Finder_ directory.
- `pfs` prints the current _Finder_ selection.
- `tab` creates a new tab (works in both _Terminal_ and [_iTerm.app_][4]).
- `ql` previews files in Quick Look.
- `osx-rm-dir-metadata` deletes _`.DS_Store`_, _`__MACOSX`_ cruft.
- `osx-ls-download-history` displays the macOS download history.
- `osx-rm-download-history` deletes the macOS download history.
## Authors
_The authors of this module should be contacted via the [issue tracker][5]._
- [Sorin Ionescu](https://github.com/sorin-ionescu)
[1]: https://www.apple.com/macos/
[2]: ../completion#readme
[3]: https://kapeli.com/dash
[4]: https://www.iterm2.com/
[5]: https://github.com/sorin-ionescu/prezto/issues
@@ -0,0 +1,11 @@
#compdef mand manp
#autoload
#
# Completes mand and manp.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
_man
@@ -0,0 +1,23 @@
#
# Opens man pages in Dash.app.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
function mand {
if (( $# > 0 )); then
zstyle -s ':prezto:module:osx:man' dash-keyword 'dashkw' || dashkw='manpages'
open "dash://$dashkw%3A$1" 2> /dev/null
if (( $? != 0 )); then
print "$0: Dash is not installed" >&2
break
fi
else
print 'What manual page do you want?' >&2
fi
unset dashkw
}
mand "$@"
@@ -0,0 +1,19 @@
#
# Opens man pages in Preview.app.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
function manp {
local page
if (( $# > 0 )); then
for page in "$@"; do
mandoc -T pdf "$(/usr/bin/man -w $page)" | open -fa Preview
done
else
print 'What manual page do you want?' >&2
fi
}
manp "$@"
@@ -0,0 +1,17 @@
#
# Displays the macOS download history.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function osx-ls-download-history {
local db
for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do
if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then
sqlite3 "$db" 'SELECT LSQuarantineDataURLString FROM LSQuarantineEvent'
fi
done
# }
@@ -0,0 +1,15 @@
#
# Deletes .DS_Store and __MACOSX directories.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function osx-rm-dir-metadata {
find "${@:-$PWD}" \( \
-type f -name '.DS_Store' -o \
-type d -name '__MACOSX' \
\) -print0 | xargs -0 rm -rf
# }
@@ -0,0 +1,17 @@
#
# Deletes the macOS download history.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function osx-rm-download-history {
local db
for db in ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV*; do
if grep -q 'LSQuarantineEvent' < <(sqlite3 "$db" .tables); then
sqlite3 "$db" 'DELETE FROM LSQuarantineEvent; VACUUM'
fi
done
# }
@@ -0,0 +1,16 @@
#
# Displays the current Finder.app directory.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function pfd {
osascript 2> /dev/null <<EOF
tell application "Finder"
return POSIX path of (target of first window as text)
end tell
EOF
# }
@@ -0,0 +1,19 @@
#
# Displays the current Finder.app selection.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function pfs {
osascript 2>&1 <<EOF
tell application "Finder" to set the_selection to selection
if the_selection is not {}
repeat with an_item in the_selection
log POSIX path of (an_item as text)
end repeat
end if
EOF
# }
@@ -0,0 +1,14 @@
#
# Previews files in Quick Look.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function ql {
if (( $# > 0 )); then
qlmanage -p "$@" &> /dev/null
fi
# }
@@ -0,0 +1,56 @@
#
# Opens a new Terminal.app/iTerm.app tab in the current directory.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# function tab {
local command="cd \\\"$PWD\\\""
(( $# > 0 )) && command="${command}; $*"
the_app=$(
osascript 2> /dev/null <<EOF
tell application "System Events"
name of first item of (every process whose frontmost is true)
end tell
EOF
)
[[ "$the_app" == 'Terminal' ]] && {
osascript 2> /dev/null <<EOF
tell application "System Events"
tell process "Terminal" to keystroke "t" using command down
tell application "Terminal" to do script "${command}" in front window
end tell
EOF
}
[[ "$the_app" == 'iTerm' ]] && {
osascript 2> /dev/null <<EOF
tell application "iTerm"
set current_terminal to current terminal
tell current_terminal
launch session "Default Session"
set current_session to current session
tell current_session
write text "${command}"
end tell
end tell
end tell
EOF
}
[[ "$the_app" == 'iTerm2' ]] && {
osascript 2> /dev/null <<EOF
tell application "iTerm2"
tell current window
create tab with default profile
tell current session to write text "${command}"
end tell
end tell
EOF
}
# }
@@ -0,0 +1,31 @@
#
# Moves files to the macOS trash.
#
# function trash {
emulate -L zsh
setopt LOCAL_OPTIONS EXTENDED_GLOB
local file
local -a files=()
for file in $@; do
if [[ -e $file ]]; then
# ':a' gets the full path (do not use ':A', which would resolve symlinks)
files+=("the POSIX file \"${file:a}\"")
else
print "trash: No such file or directory '$file'." >&2
return 1
fi
done
if (( $#files == 0 )); then
print 'usage: trash <files...>' >&2
return 64 # Match rm's return code.
fi
# Join file list with commas, and tell Finder to trash that list.
local file_list="${(pj., .)files}"
osascript 2>&1 > /dev/null -e "tell app \"Finder\" to move { "${file_list}" } to trash"
# }
+24
View File
@@ -0,0 +1,24 @@
#
# Defines macOS aliases and functions.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Load dependencies.
pmodload 'helper'
# Return if requirements are not found.
if ! is-darwin; then
return 1
fi
#
# Aliases
#
# Changes directory to the current Finder directory.
alias cdf='cd "$(pfd)"'
# Pushes directory to the current Finder directory.
alias pushdf='pushd "$(pfd)"'