forked from colonelpanic/dotfiles
Emacs server can sort of open files from finder.... this is hard though. Also emacs_open command.
This commit is contained in:
@@ -1,128 +1,128 @@
|
||||
{
|
||||
"after-scripts": ["brew linkapps"],
|
||||
"casks": [
|
||||
"alfred",
|
||||
"atom",
|
||||
"caffeine",
|
||||
"dropbox",
|
||||
"firefox",
|
||||
"flash",
|
||||
"flux",
|
||||
"google-chrome",
|
||||
"google-hangouts",
|
||||
"heroku-toolbelt",
|
||||
"iterm2",
|
||||
"java",
|
||||
"karabiner",
|
||||
"macpass",
|
||||
"osxfuse",
|
||||
"seil",
|
||||
"slate",
|
||||
"spotify",
|
||||
"sublime-text",
|
||||
"synergy",
|
||||
"transmission",
|
||||
"virtualbox",
|
||||
"vlc",
|
||||
"xquartz"
|
||||
],
|
||||
"formulas": [
|
||||
"ack",
|
||||
"ag",
|
||||
"ant",
|
||||
"autoconf",
|
||||
"automake",
|
||||
"bash",
|
||||
"binutils",
|
||||
"brew-cask",
|
||||
"cabal-install",
|
||||
"cmake",
|
||||
"coreutils",
|
||||
"ctags",
|
||||
"daemonize",
|
||||
"diffutils",
|
||||
"docker",
|
||||
"ed",
|
||||
"emacs --cocoa --srgb",
|
||||
"file-formula",
|
||||
"findutils",
|
||||
"fontconfig",
|
||||
"fontforge",
|
||||
"freetype",
|
||||
"gawk",
|
||||
"gdbm",
|
||||
"gettext",
|
||||
"ghc",
|
||||
"gist",
|
||||
"git",
|
||||
"giter8",
|
||||
"glib",
|
||||
"globals",
|
||||
"gnutls",
|
||||
"go",
|
||||
"gobject-introspection",
|
||||
"grep",
|
||||
"gtk+3",
|
||||
"gupnp",
|
||||
"gzip",
|
||||
"heroku-toolbelt",
|
||||
"htop-osx",
|
||||
"hub",
|
||||
"icu4c",
|
||||
"intltool",
|
||||
"jpeg",
|
||||
"less",
|
||||
"libevent",
|
||||
"libffi",
|
||||
"libidn",
|
||||
"libpng",
|
||||
"libsoup",
|
||||
"libtasn1",
|
||||
"libtiff",
|
||||
"libtool",
|
||||
"lzip",
|
||||
"make",
|
||||
"mercurial",
|
||||
"netcat",
|
||||
"nettle",
|
||||
"ngrep",
|
||||
"nmap",
|
||||
"node",
|
||||
"openssl",
|
||||
"ossp-uuid",
|
||||
"pandoc",
|
||||
"pango",
|
||||
"pcre",
|
||||
"pixman",
|
||||
"pkg-config",
|
||||
"pstree",
|
||||
"pv",
|
||||
"pypy",
|
||||
"python",
|
||||
"python3",
|
||||
"rbenv",
|
||||
"readline",
|
||||
"reattach-to-user-namespace",
|
||||
"rsync",
|
||||
"sbt",
|
||||
"scala",
|
||||
"sdl",
|
||||
"sdl_image",
|
||||
"sdl_mixer",
|
||||
"sdl_ttf",
|
||||
"sleuthkit",
|
||||
"sqlite",
|
||||
"subversion",
|
||||
"tig",
|
||||
"tmux",
|
||||
"unzip",
|
||||
"vim",
|
||||
"watch",
|
||||
"wdiff",
|
||||
"webp",
|
||||
"weechat",
|
||||
"wget",
|
||||
"xz",
|
||||
"zsh"
|
||||
]
|
||||
"after-scripts": ["brew linkapps"],
|
||||
"casks": [
|
||||
"alfred",
|
||||
"atom",
|
||||
"caffeine",
|
||||
"dropbox",
|
||||
"firefox",
|
||||
"flash",
|
||||
"flux",
|
||||
"google-chrome",
|
||||
"google-hangouts",
|
||||
"heroku-toolbelt",
|
||||
"iterm2",
|
||||
"java",
|
||||
"karabiner",
|
||||
"macpass",
|
||||
"osxfuse",
|
||||
"seil",
|
||||
"slate",
|
||||
"spotify",
|
||||
"sublime-text",
|
||||
"synergy",
|
||||
"transmission",
|
||||
"virtualbox",
|
||||
"vlc",
|
||||
"xquartz"
|
||||
],
|
||||
"formulas": [
|
||||
"ack",
|
||||
"ag",
|
||||
"ant",
|
||||
"autoconf",
|
||||
"automake",
|
||||
"bash",
|
||||
"binutils",
|
||||
"brew-cask",
|
||||
"cabal-install",
|
||||
"cmake",
|
||||
"coreutils",
|
||||
"ctags",
|
||||
"daemonize",
|
||||
"diffutils",
|
||||
"docker",
|
||||
"ed",
|
||||
"emacs --cocoa --srgb",
|
||||
"file-formula",
|
||||
"findutils",
|
||||
"fontconfig",
|
||||
"fontforge",
|
||||
"freetype",
|
||||
"gawk",
|
||||
"gdbm",
|
||||
"gettext",
|
||||
"ghc",
|
||||
"gist",
|
||||
"git",
|
||||
"giter8",
|
||||
"glib",
|
||||
"globals",
|
||||
"gnutls",
|
||||
"go",
|
||||
"gobject-introspection",
|
||||
"grep",
|
||||
"gtk+3",
|
||||
"gupnp",
|
||||
"gzip",
|
||||
"heroku-toolbelt",
|
||||
"htop-osx",
|
||||
"hub",
|
||||
"icu4c",
|
||||
"intltool",
|
||||
"jpeg",
|
||||
"less",
|
||||
"libevent",
|
||||
"libffi",
|
||||
"libidn",
|
||||
"libpng",
|
||||
"libsoup",
|
||||
"libtasn1",
|
||||
"libtiff",
|
||||
"libtool",
|
||||
"lzip",
|
||||
"make",
|
||||
"mercurial",
|
||||
"netcat",
|
||||
"nettle",
|
||||
"ngrep",
|
||||
"nmap",
|
||||
"node",
|
||||
"openssl",
|
||||
"ossp-uuid",
|
||||
"pandoc",
|
||||
"pango",
|
||||
"pcre",
|
||||
"pixman",
|
||||
"pkg-config",
|
||||
"pstree",
|
||||
"pv",
|
||||
"pypy",
|
||||
"python",
|
||||
"python3",
|
||||
"rbenv",
|
||||
"readline",
|
||||
"reattach-to-user-namespace",
|
||||
"rsync",
|
||||
"sbt",
|
||||
"scala",
|
||||
"sdl",
|
||||
"sdl_image",
|
||||
"sdl_mixer",
|
||||
"sdl_ttf",
|
||||
"sleuthkit",
|
||||
"sqlite",
|
||||
"subversion",
|
||||
"tig",
|
||||
"tmux",
|
||||
"unzip",
|
||||
"vim",
|
||||
"watch",
|
||||
"wdiff",
|
||||
"webp",
|
||||
"weechat",
|
||||
"wget",
|
||||
"xz",
|
||||
"zsh"
|
||||
]
|
||||
}
|
||||
|
Submodule dotfiles/emacs.d updated: 93424eed9a...d9155dc397
@@ -1,4 +1,4 @@
|
||||
alias emacs='_emacs -c -n'
|
||||
alias emacs='_emacs -c -n '
|
||||
is_osx && alias emacs='cocoa_emacs'
|
||||
alias terminal_emacs='_emacs -t'
|
||||
alias ec='_emacs -n '
|
||||
@@ -10,16 +10,21 @@ function cocoa_emacs {
|
||||
}
|
||||
|
||||
function _emacs {
|
||||
local server_name="$GLOBAL_EMACS"
|
||||
[ -z $GLOBAL_EMACS ] && server_name="$(_current_dot_directory)"
|
||||
if ! _emacs_daemon_exists "$server_name"; then
|
||||
local server_name="$(_emacs_server_file)"
|
||||
if ! emacs_daemon_exists "$server_name"; then
|
||||
echo "Starting emacs with server name '$server_name'"
|
||||
command emacs --daemon="$server_name"
|
||||
fi
|
||||
emacsclient $* --server-file=$server_name
|
||||
emacsclient "$@" --server-file=$server_name
|
||||
}
|
||||
|
||||
function _emacs_daemon_exists {
|
||||
function _emacs_server_file {
|
||||
local server_name="$GLOBAL_EMACS"
|
||||
[ -z $GLOBAL_EMACS ] && server_name="$(_current_dot_directory)"
|
||||
echo $server_name
|
||||
}
|
||||
|
||||
function emacs_daemon_exists {
|
||||
! test -z "$(ps aux | grep -v grep | grep -i "emacs.*--daemon=.*$1$")"
|
||||
}
|
||||
|
||||
@@ -32,6 +37,32 @@ function _current_dot_directory {
|
||||
_dot_directory $directory
|
||||
}
|
||||
|
||||
function existing_emacs {
|
||||
# Return any existing emacs server file or the one that should
|
||||
# be created if it doesn't exist.
|
||||
local server_file="$(\ls ~/.emacs.d/server | head -n1)"
|
||||
[ -z "$server_file" ] && server_file="$(_emacs_server_file)"
|
||||
echo $server_file
|
||||
}
|
||||
|
||||
function emacs_make_frame_if_none_exists {
|
||||
emacsclient -e '(make-frame-if-none-exists)' --server-file=$1
|
||||
}
|
||||
|
||||
function get_running_emacs_instances {
|
||||
pgrep -i emacs | xargs ps -o command -p | egrep -o " --daemon=(.*)" | awk -F= '{print $2}' | sed 's/\^J3,4\^J//'
|
||||
}
|
||||
|
||||
function emacs_open {
|
||||
local server_file="$(get_running_emacs_instances | head -n1)"
|
||||
if [ -z $server_file ]; then
|
||||
_emacs -c -n "$@"
|
||||
return
|
||||
fi
|
||||
emacs_make_frame_if_none_exists $server_file
|
||||
[ ! -z "$@" ] && emacsclient "$@" -n --server-file="$server_file"
|
||||
}
|
||||
|
||||
# Make emacs the default editor.
|
||||
export EDITOR="$(which emacsclient) -n -s "
|
||||
export ALTERNATE_EDITOR=""
|
||||
|
@@ -83,3 +83,64 @@ function set_osx_hostname() {
|
||||
sudo scutil --set LocalHostName $new_hostname
|
||||
sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server NetBIOSName -string $new_hostname
|
||||
}
|
||||
|
||||
function get_bundle_identifier() {
|
||||
defaults read "$1/Contents/Info" CFBundleIdentifier
|
||||
}
|
||||
|
||||
_BUDDY="/usr/libexec/PlistBuddy"
|
||||
_PLIST="$HOME/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist"
|
||||
|
||||
function create_filename_rule {
|
||||
$_BUDDY -c "Add LSHandlers:0 dict" $_PLIST
|
||||
$_BUDDY -c "Add LSHandlers:0:LSHandlerRoleAll string $1" $_PLIST
|
||||
$_BUDDY -c "Add LSHandlers:0:LSHandlerContentTag string $2" $_PLIST
|
||||
$_BUDDY -c "Add LSHandlers:0:LSHandlerContentTagClass string public.filename-extension" $_PLIST
|
||||
$_BUDDY -c "Add LSHandlers:0:LSHandlerPreferredVersions dict" $_PLIST
|
||||
$_BUDDY -c "Add LSHandlers:0:LSHandlerPreferredVersions:LSHandlerRoleAll string -" $_PLIST
|
||||
}
|
||||
|
||||
function set_application_for_file_extension() {
|
||||
local PLIST="$HOME/Library/Preferences/com.apple.LaunchServices/com.apple.launchservices.secure.plist"
|
||||
|
||||
# the key to match with the desired value
|
||||
KEY="LSHandlerContentType"
|
||||
|
||||
# the value for which we'll replace the handler
|
||||
VALUE="${1-public.plain-text}"
|
||||
|
||||
# the new handler for all roles
|
||||
HANDLER="${1}"
|
||||
|
||||
$_BUDDY -c 'Print "LSHandlers"' $_PLIST >/dev/null 2>&1
|
||||
if [[ $? -ne 0 ]] ; then
|
||||
echo "There is no LSHandlers entry in $_PLIST" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
declare -i I=0
|
||||
while [ true ] ; do
|
||||
$_BUDDY -c "Print LSHandlers:$I" $_PLIST >/dev/null 2>&1
|
||||
[[ $? -eq 0 ]] || { echo "Finished, no $VALUE found, setting it to $HANDLER" ; create_entry ; exit ; }
|
||||
|
||||
OUT="$( $_BUDDY -c "Print 'LSHandlers:$I:$KEY'" $_PLIST 2>/dev/null )"
|
||||
if [[ $? -ne 0 ]] ; then
|
||||
I=$I+1
|
||||
continue
|
||||
fi
|
||||
|
||||
CONTENT=$( echo "$OUT" )
|
||||
if [[ $CONTENT = $VALUE ]] ; then
|
||||
echo "Replacing $CONTENT handler with $HANDLER"
|
||||
$_BUDDY -c "Delete 'LSHandlers:$I'" $_PLIST
|
||||
create_entry
|
||||
exit
|
||||
else
|
||||
I=$I+1
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
function reload_preferences {
|
||||
killall -u $(whoami) cfprefsd
|
||||
}
|
||||
|
@@ -129,14 +129,10 @@ function separator {
|
||||
export JOB_COUNT_COLOR="$fg[blue]"
|
||||
|
||||
prompt_tomorrow_colors
|
||||
# For reasons which are currently beyond me,
|
||||
# For reasons which are currently beyond me, it is not possible to use
|
||||
# $? in PROMPT which is why the second line is so strangely
|
||||
# constructed.
|
||||
export PROMPT='⚡ % $(print_with_color "%n" "$USERNAME_COLOR") $(separator "at") $(print_with_color "`hostname -s`" "$HOSTNAME_COLOR") $(separator "in") $(print_with_color "`current_directory`" "$CURRENT_DIRECTORY_COLOR")$(git_prompt_info)
|
||||
$(colored_job_count)%(?.$(print_with_color "$(command_line_character) ❯" $PROMPT_CHAR_SUCCESS).$(print_with_color "$(command_line_character) ❯" $PROMPT_CHAR_ERROR)) '
|
||||
|
||||
PS2='(%_) '
|
||||
|
||||
case "$TERM" in
|
||||
dumb)
|
||||
export PROMPT='> '
|
||||
;;
|
||||
esac
|
||||
|
@@ -1,5 +1,5 @@
|
||||
# This is necessary for tramp.
|
||||
[[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return
|
||||
source ~/.lib/shellrc.sh
|
||||
[[ $TERM == "dumb" ]] && unsetopt zle && PS1='$ ' && return
|
||||
source ~/.lib/zsh.sh
|
||||
test -r ~/custom.zsh && source ~/custom.zsh
|
||||
|
Reference in New Issue
Block a user