X-Git-Url: http://cgit.sxemacs.org/?p=syinit;a=blobdiff_plain;f=90-keys.el;fp=90-keys.el;h=1c302fe18b858aef09194ecc713be0c15cfc0f41;hp=9d9edb796cd2339d8eb7aaca4e79605b526603c3;hb=abfefb4fc7050d0a21514c959b8f0dfc8fe0e7c5;hpb=dd1a6167a96cb99e1a2e3965517d663493e0d040 diff --git a/90-keys.el b/90-keys.el index 9d9edb7..1c302fe 100644 --- a/90-keys.el +++ b/90-keys.el @@ -1,13 +1,13 @@ ;; 02-keys.el --- Keybindings -;; Copyright (C) 2007 - 2020 Steve Youngs +;; Copyright (C) 2007 - 2021 Steve Youngs ;; Author: Steve Youngs ;; Maintainer: Steve Youngs ;; Created: <2007-12-02> -;; Time-stamp: +;; Time-stamp: ;; Download: -;; HTMLised: +;; HTMLised: ;; Git Repo: git clone https://git.sxemacs.org/syinit ;; Keywords: init, compile @@ -61,23 +61,76 @@ ;; ;;; Code: - ;:*======================= ;:* Global key bindings -(global-set-key "\C-xw" 'what-line) +;; Most global bindings are in this section, but there are a few +;; further down where it made sense. +(global-set-key "\C-xw" #'what-line) +(global-set-key "\C-xp" #'what-page) (global-set-key [f2] 'undo) -(global-set-key [(super tab)] 'lisp-complete-symbol) +(global-set-key [(control f2)] 'redo) +(global-set-key [(hyper tab)] 'lisp-complete-symbol) (global-set-key [(meta f3)] 'view-file) -(global-set-key [f5] "\M-w") -(global-set-key [f6] "\C-y") -(global-set-key [f7] 'save-buffer) -(global-set-key [f8] 'start-kbd-macro) -(global-set-key [f9] 'end-kbd-macro) (global-set-key [(control f8)] 'call-last-kbd-macro) (global-set-key [(control f5)] 'sy-extent-kill-save) -(global-set-key [XF86Copy] #'copy-primary-selection) -(global-set-key [XF86Cut] #'kill-primary-selection) -(global-set-key [XF86Paste] #'yank-clipboard-selection) +(global-set-key [(meta ?W)] 'sy-add-to-kill) +;;; Primary Selection +;; Originally I had these on XF86{Copy,Cut,Paste} but I got a new +;; keyboard and I no longer have those keys defined. :-( +; (global-set-key [XF86Copy] #'copy-primary-selection) +; (global-set-key [XF86Cut] #'kill-primary-selection) +; (global-set-key [XF86Paste] #'yank-clipboard-selection) +;; I don't like the defaults for #'copy-primary-selection I think in +;; an Emacs world it's backwards... +;; #'copy-region -- `M-w' #'copy-primary-selection -- `C-insert' +;; So, lets remove the default and put `C-insert' on +;; #'kill-primary-selection and `M-insert' on #'copy-primary-selection +(global-set-key [(control insert)] nil) +(global-set-key [(meta insert)] #'copy-primary-selection) +(global-set-key [(control insert)] #'kill-primary-selection) + +;; Audio keybindings +(global-set-key [XF86AudioPlay] #'mpd-playpause) +(global-set-key [XF86AudioStop] #'mpd-stop) +(global-set-key [XF86AudioNext] #'mpd-next-track) +(global-set-key [XF86AudioPrev] #'mpd-previous-track) +(global-set-key [XF86AudioRaiseVolume] #'mpd-volume-up) +(global-set-key [XF86AudioLowerVolume] #'mpd-volume-down) +(global-set-key [XF86AudioMute] #'mpd-volume-mute/unmute) + +;; comment-region +(global-set-key '(control f12) 'comment-or-uncomment-region) +(global-set-key '(meta f12) 'comment-or-uncomment-region) + +;; speedbar +(global-set-key [(f4)] 'speedbar-get-focus) + +;; ffap +(global-set-key [f3] #'find-file-at-point) +(global-set-key [(control x) ?4 f3] #'ffap-other-window) +(global-set-key [(control x) ?5 f3] #'ffap-other-frame) +(global-set-key [(shift button3)] #'ffap-at-mouse) +(global-set-key [(control shift button3)] #'ffap-menu) + +;; DuckDuckGo +(global-set-key [XF86Search] #'ddg-search) +(global-set-key [(control XF86Search)] #'ddg-search-region) + +;; Misc +(global-set-key '(control f1) 'match-paren) +(global-set-key '(control f3) 'elispcomment) +(global-set-key [(control ?x) ?4 ?i] #'sy-init-file-other-window) +(global-set-key [(hyper ?n)] #'numpoints) + +;; TTY +(define-key global-tty-map [(control ?c) ?r] #'sy-switch-to-riece) + +;:*======================= +;:* Only when in Sawfish (or not) +(unless (sawfish-running-p) + (global-set-key [XF86Messenger] #'LXQt-riece) + (global-set-key [XF86Calendar] #'calendar) + (global-set-key [XF86Mail] #'gnus-other-frame)) ;:*======================= ;:* compose-key tô t¥pé fünky £ïttlê chãrs @@ -96,15 +149,6 @@ (setq menu-accelerator-prefix nil) (define-key global-map [f10] 'accelerate-menu) -;:*======================= -;:* Popup window with buffer list ; from XEmacs FAQ (2.61) -(defun cw-build-buffers () - "Popup buffer menu." - (interactive "@") - (run-hooks 'activate-menubar-hook) - (popup-menu (car (find-menu-item current-menubar '("Buffers"))))) -(global-set-key '(control !) 'cw-build-buffers) - ;:*======================= ;:* keymapping to resize frames (define-key global-map [(control x) (up)] #'shrink-window) @@ -127,9 +171,34 @@ ;:*======================= ;:* Bind the Euro to a key (define-key global-map "\C-ce" - (lambda () - (interactive) + (lambda () + (interactive) (insert (make-char 'latin-iso8859-15 #x24)))) +;; OK yeah, that's cool and all, but lets do it again but with unicode. +;; And while we're at it, how about a copyright, registered, trademark, +;; degree, pound, and yen. +(defun sy-insert-unicode (c) + "Insert unicode character C at point. + +Argument C, a character can be one of the following set + + `c' -- Copyright symbol + `d' -- Degree symbol + `e' -- Euro symbol + `p' -- Pound Sterling symbol + `r' -- Registered symbol + `t' -- Trademark symbol + `y' -- Yen symbol" + (interactive "*cCharacter [cdeprty]: ") + (let ((chars '((?c . #x00a9) ; copyright + (?d . #x00b0) ; degree + (?e . #x20ac) ; euro + (?p . #x00a3) ; pound + (?r . #x00ae) ; registered + (?t . #x2122) ; trademark + (?y . #x00a5)))) ; yen + (insert (ucs-to-char (cdr (assoc c chars)))))) +(global-set-key [(control c) u] #'sy-insert-unicode) ;:*======================= ;:* Toggle in/out of eshell @@ -148,10 +217,85 @@ (define-key global-map [(button5)] 'mwheel-scroll) (define-key global-map [(shift button4)] 'mwheel-scroll) (define-key global-map [(shift button5)] 'mwheel-scroll) -(define-key global-map [(button9)] 'beginning-of-buffer) (define-key global-map [(button8)] 'end-of-buffer) -(define-key global-map [(button10)] 'recenter) +(define-key global-map [(shift button8)] #'scroll-up-command) +(define-key global-map [(button9)] 'beginning-of-buffer) +(define-key global-map [(shift button9)] #'scroll-down-command) + +;:*======================= +;:* global, but just in the C-x map +;; timeclock +(define-key ctl-x-map "ti" 'timeclock-in) +(define-key ctl-x-map "to" 'timeclock-out) +(define-key ctl-x-map "tc" 'timeclock-change) +(define-key ctl-x-map "tr" 'timeclock-reread-log) +(define-key ctl-x-map "tu" 'timeclock-update-modeline) +(define-key ctl-x-map "tw" 'timeclock-when-to-leave-string) + + +;:*======================= +;:* Mode Level Bindings +;; +;; Riece (IRC client) +(define-key riece-command-map (kbd "C-c C") #'sy-riece-clear-unread-chans) +(define-key riece-command-map (kbd "C-c r") + #'sy-riece-relist-chans-clear-blanks) +(define-key riece-command-map (kbd "C-c m") #'sy-riece-command-mute-user) +(define-key riece-command-map (kbd "C-b") #'sy-riece-command-ban-user) +(define-key riece-command-map (kbd "C-o") #'sy-riece-command-quick-op) +(define-key riece-command-map (kbd "C-c n") #'sy-riece-say-now-playing) +(define-key riece-command-map (kbd "C-c V") #'sy-riece-say-version) +(define-key riece-command-map (kbd "C-c s") #'sy-riece-show-off) +(define-key riece-command-map (kbd "C-c f") #'sy-riece-fuck-you) +(define-key riece-command-map (kbd "C-c b") #'sy-riece-add-rem-biff-channel) +(define-key riece-command-map (kbd "C-c ?") #'sy-riece-think) +(define-key riece-command-map (kbd "C-c R") #'sy-riece-reverse) +(define-key riece-command-map (kbd "C-c T") #'sy-riece-sxemacs-topic-version-update) +(define-key riece-command-map (kbd "C-c U") #'sy-riece-sxe-uptime) +(define-key riece-command-map [a] #'sy-riece-say-all-purpose) +(define-key riece-command-map (kbd "C-c l") 'sy-riece-cleanup-login) + +;; Howm +;; The howm people are nuts, they bind C-h to scroll-down +;; Get rid of it and replace with DEL and BACKSPACE +(define-key howm-menu-mode-map "\C-h" nil) +(define-key howm-menu-mode-map [delete] #'scroll-down) +(define-key howm-menu-mode-map [backspace] #'scroll-down) +(define-key riffle-summary-mode-map "\C-h" nil) +(define-key riffle-summary-mode-map [delete] #'scroll-other-window-down) +(define-key riffle-summary-mode-map [backspace] #'scroll-other-window-down) +(define-key riffle-contents-mode-map "\C-h" nil) +(define-key riffle-contents-mode-map [delete] #'scroll-down) +(define-key riffle-contents-mode-map [backspace] #'scroll-down) +;; Add a binding to show the active todo list +(global-set-key [(control ?c) ?t] #'howm-list-active-todo) +(global-set-key [(hyper ?s) ?r] #'snap-record) + +;; iswitchb +(defun sy-iswitchb-keys () + "My keybindings for iswitchb." + (define-key iswitchb-mode-map " " 'iswitchb-next-match) + (define-key iswitchb-mode-map [(control ?\ )] 'iswitchb-prev-match) + (define-key iswitchb-mode-map "\C-a" 'iswitchb-toggle-ignore)) +(add-hook 'iswitchb-define-mode-map-hook #'sy-iswitchb-keys) + +;; easypg +(define-key epa-key-list-mode-map [?O] #'sy-epa-export-key) + +;; manual +(define-key Manual-mode-map [(control return)] #'sy:Manual-follow-xref-kbd) +(define-key Manual-mode-map [button1] #'Manual-follow-xref) + +;; RefTeX +(define-key reftex-mode-map [(shift button=)] 'reftex-mouse-view-crossref) + +;; Fume +(define-key fume-mode-map [(control button3)] #'mouse-function-menu) + +;; dired +(define-key dired-mode-map [(control ?c) ?p] #'sy-dired-play-audio) + ;:*======================= ;:* Numeric keypad (define-key key-translation-map [kp-divide] [?/])