From 16727e3c708ca5ecebfb42d591077c8a33a2a672 Mon Sep 17 00:00:00 2001 From: Bozhidar Batsov Date: Tue, 15 Sep 2020 11:21:36 +0300 Subject: [PATCH] [Fix #1277] Make it possible to disable the creation of Super-based keybindings --- CHANGELOG.md | 1 + core/prelude-custom.el | 8 ++++++++ core/prelude-macos.el | 1 - core/prelude-mode.el | 21 ++++++++++++--------- 4 files changed, 21 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e6d00f0..ee66a7b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ ### Changes * [#1278](https://github.com/bbatsov/prelude/issues/1278): Don't disable `menu-bar-mode` unless `prelude-minimalistic-ui` is enabled. +* [#1277](https://github.com/bbatsov/prelude/issues/1277): Make it possible to disable the creation of `Super`-based keybindings via `prelude-super-keybindings`. ### Bugs fixed diff --git a/core/prelude-custom.el b/core/prelude-custom.el index 2a57455..26fd48a 100644 --- a/core/prelude-custom.el +++ b/core/prelude-custom.el @@ -43,6 +43,14 @@ Note that the toolbar is always hidden regardless of this setting." :group 'prelude :package-version '(prelude . "1.1")) +(defcustom prelude-super-keybindings t + "Controls whether to use the Super key in keybindings. +They can be problematic in some operating systems (e.g. Windows) +or desktop environments that make heavy use of them." + :type 'boolean + :group 'prelude + :package-version '(prelude . "1.1")) + (defcustom prelude-auto-save t "Non-nil values enable Prelude's auto save." :type 'boolean diff --git a/core/prelude-macos.el b/core/prelude-macos.el index eab55ae..829065d 100644 --- a/core/prelude-macos.el +++ b/core/prelude-macos.el @@ -55,7 +55,6 @@ Windows external keyboard from time to time." (message "Command is now bound to SUPER and Option is bound to META."))) (define-key prelude-mode-map (kbd "C-c w") 'prelude-swap-meta-and-super) -(define-key prelude-mode-map (kbd "s-/") 'hippie-expand) ;; There's no point in hiding the menu bar on macOS, so let's not do it (menu-bar-mode +1) diff --git a/core/prelude-mode.el b/core/prelude-mode.el index fa53a6d..ec50b2d 100644 --- a/core/prelude-mode.el +++ b/core/prelude-mode.el @@ -66,17 +66,20 @@ (define-key map (kbd "C-c S") 'crux-find-shell-init-file) (define-key map (kbd "C-c i") 'imenu-anywhere) ;; extra prefix for projectile - (define-key map (kbd "s-p") 'projectile-command-map) + (when prelude-super-keybindings + (define-key map (kbd "s-p") 'projectile-command-map)) (define-key map (kbd "C-c p") 'projectile-command-map) ;; make some use of the Super key - (define-key map (kbd "s-r") 'crux-recentf-find-file) - (define-key map (kbd "s-j") 'crux-top-join-line) - (define-key map (kbd "s-k") 'crux-kill-whole-line) - (define-key map (kbd "s-m m") 'magit-status) - (define-key map (kbd "s-m l") 'magit-log) - (define-key map (kbd "s-m f") 'magit-log-buffer-file) - (define-key map (kbd "s-m b") 'magit-blame) - (define-key map (kbd "s-o") 'crux-smart-open-line-above) + (when prelude-super-keybinds + (define-key map (kbd "s-r") 'crux-recentf-find-file) + (define-key map (kbd "s-j") 'crux-top-join-line) + (define-key map (kbd "s-k") 'crux-kill-whole-line) + (define-key map (kbd "s-m m") 'magit-status) + (define-key map (kbd "s-m l") 'magit-log) + (define-key map (kbd "s-m f") 'magit-log-buffer-file) + (define-key map (kbd "s-m b") 'magit-blame) + (define-key map (kbd "s-o") 'crux-smart-open-line-above) + (define-key prelude-mode-map (kbd "s-/") 'hippie-expand)) (easy-menu-define prelude-mode-menu map "Prelude's menu." '("Prelude"