From 1ba00b695cbc4f27b82ed6f67f4b5a58d81c3c79 Mon Sep 17 00:00:00 2001 From: Ivan Malison Date: Sat, 6 Dec 2014 01:45:28 -0800 Subject: [PATCH] add socks proxy, finish helm-org-agenda-files-headings --- dotfiles/emacs.d/init.el | 8 +++--- dotfiles/emacs.d/load.d/helm-org-headlines.el | 28 +++++++++++++------ dotfiles/lib/shellenv/functions.sh | 7 ++++- dotfiles/lib/shellrc/osx.sh | 23 +++++++++++++++ 4 files changed, 52 insertions(+), 14 deletions(-) diff --git a/dotfiles/emacs.d/init.el b/dotfiles/emacs.d/init.el index fe29bdd6..77d457f0 100644 --- a/dotfiles/emacs.d/init.el +++ b/dotfiles/emacs.d/init.el @@ -818,7 +818,8 @@ The current directory is assumed to be the project's root otherwise." :bind (("M-y" . helm-show-kill-ring) ("M-x" . helm-M-x) ("C-x C-i" . helm-imenu) - ("C-h a" . helm-apropos)) + ("C-h a" . helm-apropos) + ("C-c C-h" . helm-org-agenda-files-headings)) :init (progn (require 'helm) @@ -1240,9 +1241,8 @@ The current directory is assumed to be the project's root otherwise." (if (eq appropriate-theme current-theme) nil (progn - (disable-all-themes) - (load-theme appropriate-theme t) - (setq current-theme appropriate-theme))))) + (disable-and-load-theme appropriate-theme t) + (setq current-theme appropriate-theme))))) (defun disable-all-themes () (interactive) diff --git a/dotfiles/emacs.d/load.d/helm-org-headlines.el b/dotfiles/emacs.d/load.d/helm-org-headlines.el index 9790c2f2..6bcdc8a0 100644 --- a/dotfiles/emacs.d/load.d/helm-org-headlines.el +++ b/dotfiles/emacs.d/load.d/helm-org-headlines.el @@ -1,27 +1,37 @@ -(defun helm-org-agenda-files-headlines (&optional min-depth max-depth) +(defun helm-org-agenda-files-headings (&optional min-depth max-depth) (interactive) - (helm :sources (helm-source-org-headlines-for-files org-agenda-files))) + (helm :sources (helm-source-org-headings-for-files org-agenda-files min-depth max-depth))) (defun helm-org-goto-marker (marker) (switch-to-buffer (marker-buffer marker)) (goto-char (marker-position marker)) (org-show-entry)) - -(defun helm-source-org-headlines-for-files (filenames &optional min-depth max-depth) +(defun helm-source-org-headings-for-files (filenames &optional min-depth max-depth) (unless min-depth (setq min-depth 1)) (unless max-depth (setq max-depth 8)) - (helm-build-sync-source "Org Headlines" + (helm-build-sync-source "Org Headings" :candidates (helm-org-get-candidates filenames min-depth max-depth) :action 'helm-org-goto-marker :action-transformer (lambda (actions candidate) '(("Go to line" . helm-org-goto-marker) - ("Refile to this headline" . helm-org-headline-refile) - ("Insert link to this headline" - . helm-org-headline-insert-link-to-headline))))) + ("Refile to this heading" . helm-org-heading-refile) + ("Insert link to this heading" + . helm-org-insert-link-to-heading-at-marker))))) -(defun helm-org-headline-refile (marker) +(defun helm-org-insert-link-to-heading-at-marker (marker) + (with-current-buffer (marker-buffer marker) + (goto-char (marker-position marker)) + (let ((heading-name (nth 4 (org-heading-components))) + (file-name buffer-file-name)) + (message heading-name) + (message file-name) + (with-helm-current-buffer + (org-insert-link + file-name (concat "file:" file-name "::*"heading-name)))))) + +(defun helm-org-heading-refile (marker) (with-helm-current-buffer (org-cut-subtree)) (let ((target-level (with-current-buffer (marker-buffer marker) diff --git a/dotfiles/lib/shellenv/functions.sh b/dotfiles/lib/shellenv/functions.sh index 90558579..6dc27534 100644 --- a/dotfiles/lib/shellenv/functions.sh +++ b/dotfiles/lib/shellenv/functions.sh @@ -1,4 +1,4 @@ -shell_contains () { +function shell_contains () { local e for e in "${@:2}"; do [[ "$e" == "$1" ]] && return 0; done return 1 @@ -284,3 +284,8 @@ function timestamp { function parse_timestamp { date -d "@$1" } + +function refresh_config { + source ~/.zshenv + source ~/.zshrc +} diff --git a/dotfiles/lib/shellrc/osx.sh b/dotfiles/lib/shellrc/osx.sh index ab669444..a5dacbe9 100644 --- a/dotfiles/lib/shellrc/osx.sh +++ b/dotfiles/lib/shellrc/osx.sh @@ -144,3 +144,26 @@ function set_application_for_file_extension() { function reload_preferences { killall -u $(whoami) cfprefsd } + +disable_proxy(){ + sudo networksetup -setsocksfirewallproxystate Wi-Fi off + sudo networksetup -setsocksfirewallproxystate Ethernet off + echo "SOCKS proxy disabled." +} + +function socks_proxy { + disable_proxy(){ + sudo networksetup -setsocksfirewallproxystate Wi-Fi off + sudo networksetup -setsocksfirewallproxystate Ethernet off + echo "SOCKS proxy disabled." + } + trap disable_proxy EXIT + sudo networksetup -setsocksfirewallproxy Wi-Fi 127.0.0.1 9999 + sudo networksetup -setsocksfirewallproxy Ethernet 127.0.0.1 9999 + sudo networksetup -setsocksfirewallproxystate Wi-Fi on + sudo networksetup -setsocksfirewallproxystate Ethernet on + echo "SOCKS proxy enabled." + echo "Tunneling..." + echo "$@" + ssh -CND 9999 "$@" +}