;;; init-keys.el --- Archivo de configuración de atajos   -*- lexical-binding: t -*-

;; Author: kj <webmaster@outcontrol.net>
;; URL: https://git.kj2.me/kj/confi-emacs-actual

;;; Commentary:

;; Aquí se configuran los atajos de teclas generales.
;; Los atajos de teclas relacionados con paquetes en
;; específico estarán en el archivo donde se esté
;; configurando dicho paquete o dentro del paquete
;; mismo, para aquellos que vengan con atajos ya
;; configurados desde su instalación.

;;; Code:

(global-set-key (kbd "C-x C-z") nil)                      ; Unbind C-x C-z (don't minimize)
(global-set-key (kbd "C-z") 'undo)                        ; Unbind C-z y hacerlo funcionar para deshacer cambios
(global-set-key (kbd "C-S-z") 'undo-redo)                 ; Rehacer cambios con C-S-z
(global-set-key (kbd "C-S-a") 'mark-whole-buffer)         ; Seleccionar todo con CTRL+SHIFT+a.
(global-set-key (kbd "C-S-c")
                'comment-or-uncomment-region-or-line)     ; Comentar/descomentar línea o selección
(global-set-key (kbd "C-<f11>") 'toggle-frame-maximized)  ; Maximizar / restaurar
(global-set-key (kbd "C-S-d") 'duplicate-current-line)    ; Duplicar línea
(global-set-key (kbd "C-S-l") 'sort-lines)                ; Ordenar líneas alfabéticamente
(global-set-key (kbd "<mouse-3>") 'context-menu-open)     ; Ordenar líneas alfabéticamente

;; Cambios rápidos de major modes
(global-set-key (kbd "C-x m") nil)                        ; Unbind mail on C-x m
(global-set-key (kbd "C-x mh") 'mhtml-mode)
(global-set-key (kbd "C-x mj") 'js-mode)
(global-set-key (kbd "C-x mp") 'php-mode)
(global-set-key (kbd "C-x mr") 'rust-mode)
(global-set-key (kbd "C-x mw") 'web-mode)

;; Cambiar de ventana
(global-set-key (kbd "C-S-o") 'other-window)

;; Meta atajos (atajos de atajos)
;;(global-set-key (kbd "C-c l d") "\C-a\C- \C-n\M-w\C-y") ; Duplicar línea

;; Deactivar el abrir *messages* al cliquear en el minibuffer
(define-key minibuffer-inactive-mode-map [mouse-1] #'ignore)

(provide 'init-keys)
;;; init-keys.el ends here