From c8b33df81101a321209a6037ebd6a0a0e502b0a4 Mon Sep 17 00:00:00 2001 From: "M. Tong" Date: Fri, 17 Apr 2015 17:08:21 +0800 Subject: [PATCH 1/5] Don't disabling which-function-mode in Python --- modules/prelude-python.el | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/prelude-python.el b/modules/prelude-python.el index 5c28374..7def5fd 100644 --- a/modules/prelude-python.el +++ b/modules/prelude-python.el @@ -89,7 +89,6 @@ (subword-mode +1) (anaconda-mode 1) (eldoc-mode 1) - (which-function-mode -1) (setq-local electric-layout-rules '((?: . (lambda () (and (zerop (first (syntax-ppss))) From b4717ca5b30c80c40b0a17b356a5addb46b4d6d3 Mon Sep 17 00:00:00 2001 From: Geoff Shannon Date: Fri, 15 May 2015 16:53:39 -0500 Subject: [PATCH 2/5] Make it possible to stop prelude loading any theme at all Fixes #844. --- README.md | 7 +++++++ core/prelude-ui.el | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index f7e5b76..99daeca 100644 --- a/README.md +++ b/README.md @@ -499,6 +499,13 @@ Or you can use another theme altogether by adding something in `personal/preload install it from MELPA first (`M-x package-install RET solarized-theme`). +Finally, if you don't want any theme at all, you can add this to your +`personal/preload`: + +```lisp +(setq prelude-theme nil) +``` + ### Personalizing Fork the official Prelude repo and add your own touch to it. You're advised to avoid changing stuff outside of the diff --git a/core/prelude-ui.el b/core/prelude-ui.el index 3544051..bf59f57 100644 --- a/core/prelude-ui.el +++ b/core/prelude-ui.el @@ -68,7 +68,8 @@ "%b")))) ;; use zenburn as the default theme -(load-theme prelude-theme t) +(when prelude-theme + (load-theme prelude-theme t)) (provide 'prelude-ui) ;;; prelude-ui.el ends here From 61d45f8e6e6fa63416db1cbf9a9f034d54a15d66 Mon Sep 17 00:00:00 2001 From: Geoff Shannon Date: Sat, 16 May 2015 11:43:14 -0500 Subject: [PATCH 3/5] Extract a function for reopening a file as root --- core/prelude-core.el | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/prelude-core.el b/core/prelude-core.el index 353dbfa..94e685a 100644 --- a/core/prelude-core.el +++ b/core/prelude-core.el @@ -285,6 +285,10 @@ there's a region, all lines that region covers will be duplicated." (interactive) (byte-recompile-directory prelude-dir 0)) +(defun prelude-find-alternate-file-as-root (filename) + "Wraps `find-alternate-file' with opening a file as root." + (find-alternate-file (concat "/sudo:root@localhost:" filename))) + (require 'ido) (defun prelude-sudo-edit (&optional arg) "Edit currently visited file as root. @@ -296,7 +300,7 @@ buffer is not visiting a file." (if (or arg (not buffer-file-name)) (find-file (concat "/sudo:root@localhost:" (ido-read-file-name "Find file(as root): "))) - (find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name)))) + (prelude-find-alternate-file-as-root buffer-file-name))) (defadvice ido-find-file (after find-file-sudo activate) "Find file as root if necessary." @@ -304,7 +308,7 @@ buffer is not visiting a file." (equal major-mode 'dired-mode) (not (file-exists-p (file-name-directory buffer-file-name))) (file-writable-p buffer-file-name)) - (find-alternate-file (concat "/sudo:root@localhost:" buffer-file-name)))) + (prelude-find-alternate-file-as-root buffer-file-name))) (defun prelude-start-or-switch-to (function buffer-name) "Invoke FUNCTION if there is no buffer with BUFFER-NAME. From cd9ea1edee66de2e356b01dae659d26263eddccf Mon Sep 17 00:00:00 2001 From: Geoff Shannon Date: Sat, 16 May 2015 11:43:47 -0500 Subject: [PATCH 4/5] Change how the "re-open file as root" functionality works Fixes #850 Use find-file-hook instead of advising ido-find-file. --- core/prelude-core.el | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/prelude-core.el b/core/prelude-core.el index 94e685a..5243eb8 100644 --- a/core/prelude-core.el +++ b/core/prelude-core.el @@ -302,13 +302,14 @@ buffer is not visiting a file." (ido-read-file-name "Find file(as root): "))) (prelude-find-alternate-file-as-root buffer-file-name))) -(defadvice ido-find-file (after find-file-sudo activate) +(defun prelude-reopen-as-root () "Find file as root if necessary." (unless (or (tramp-tramp-file-p buffer-file-name) (equal major-mode 'dired-mode) (not (file-exists-p (file-name-directory buffer-file-name))) (file-writable-p buffer-file-name)) (prelude-find-alternate-file-as-root buffer-file-name))) +(add-hook 'find-file-hook 'prelude-reopen-as-root) (defun prelude-start-or-switch-to (function buffer-name) "Invoke FUNCTION if there is no buffer with BUFFER-NAME. From 67cf26cbbd998ad9ebc85e7fe47c875f7d226f38 Mon Sep 17 00:00:00 2001 From: Geoff Shannon Date: Sat, 16 May 2015 12:39:31 -0500 Subject: [PATCH 5/5] Don't open a file as root if it is owned by the current user Fixes #839. The reasoning behind this is that if we own a file, we can change it's permissions with `chmod` so there's probably a good reason it's not writable. --- core/prelude-core.el | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/core/prelude-core.el b/core/prelude-core.el index 5243eb8..30db174 100644 --- a/core/prelude-core.el +++ b/core/prelude-core.el @@ -285,6 +285,17 @@ there's a region, all lines that region covers will be duplicated." (interactive) (byte-recompile-directory prelude-dir 0)) +(defun prelude-file-owner-uid (filename) + "Return the UID of the FILENAME as an integer. + +See `file-attributes' for more info." + (nth 2 (file-attributes filename 'integer))) + +(defun prelude-file-owned-by-user-p (filename) + "Return t if file FILENAME is owned by the currently logged in user." + (equal (prelude-file-owner-uid filename) + (user-uid))) + (defun prelude-find-alternate-file-as-root (filename) "Wraps `find-alternate-file' with opening a file as root." (find-alternate-file (concat "/sudo:root@localhost:" filename))) @@ -307,7 +318,8 @@ buffer is not visiting a file." (unless (or (tramp-tramp-file-p buffer-file-name) (equal major-mode 'dired-mode) (not (file-exists-p (file-name-directory buffer-file-name))) - (file-writable-p buffer-file-name)) + (file-writable-p buffer-file-name) + (prelude-file-owned-by-user-p buffer-file-name)) (prelude-find-alternate-file-as-root buffer-file-name))) (add-hook 'find-file-hook 'prelude-reopen-as-root)