diff options
-rw-r--r-- | .emacs.d/init.el | 85 | ||||
-rwxr-xr-x | org/emacs.org | 87 |
2 files changed, 162 insertions, 10 deletions
diff --git a/.emacs.d/init.el b/.emacs.d/init.el index 7dad538..4d62bef 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -736,6 +736,74 @@ Contains the list of packages that need to be installed.") (setq message-send-mail-function 'smtpmail-send-it smtpmail-stream-type 'ssl)) +;;;; sudo completion +(defun pcomplete/sudo () + "Completion rules for the `sudo' command." + (let ((pcomplete-ignore-case t)) + (pcomplete-here (funcall pcomplete-command-completion-function)) + (while (pcomplete-here (pcomplete-entries))))) + +;;;; systemctl completion +(defcustom pcomplete-systemctl-commands + '("disable" "enable" "status" "start" "restart" "stop" "reenable" + "list-units" "list-unit-files") + "p-completion candidates for `systemctl' main commands" + :type '(repeat (string :tag "systemctl command")) + :group 'pcomplete) + +(defvar pcomplete-systemd-units + (split-string + (shell-command-to-string + "(systemctl list-units --all --full --no-legend;systemctl list-unit-files --full --no-legend)|while read -r a b; do echo \" $a\";done;")) + "p-completion candidates for all `systemd' units") + +(defvar pcomplete-systemd-user-units + (split-string + (shell-command-to-string + "(systemctl list-units --user --all --full --no-legend;systemctl list-unit-files --user --full --no-legend)|while read -r a b;do echo \" $a\";done;")) + "p-completion candidates for all `systemd' user units") + +(defun pcomplete/systemctl () + "Completion rules for the `systemctl' command." + (pcomplete-here (append pcomplete-systemctl-commands '("--user"))) + (cond ((pcomplete-test "--user") + (pcomplete-here pcomplete-systemctl-commands) + (pcomplete-here pcomplete-systemd-user-units)) + (t (pcomplete-here pcomplete-systemd-units)))) + +;;;; man completion +(defvar pcomplete-man-user-commands + (split-string + (shell-command-to-string + "apropos -s 1 .|while read -r a b; do echo \" $a\";done;")) + "p-completion candidates for `man' command") + +(defun pcomplete/man () + "Completion rules for the `man' command." + (pcomplete-here pcomplete-man-user-commands)) + +;; hut completion +(defcustom pcomplete-hut-commands + '("builds" "export" "git" "graphql" "lists" "help" "hg" + "init" "meta" "pages" "paste" "todo") + "p-completion candidates for `hut' main commands" + :type '(repeat (string :tag "hut command")) + :group 'pcomplete) + +(defvar pcomplete-hut-user-commands + (split-string + (shell-command-to-string + "hut |while read -r a b; do echo \" $a\";done;")) + "p-completion candidates for `hut' command") + +(defun apollo/hut () + "Replace." + (replace-match "Usage:" "Someasdf")) + +(defun pcomplete/hut () + "Completion rules for `hut' command" + (pcomplete-here (append pcomplete-hut-user-commands))) + (defun apollo/html-boostrap-boilerplate () "Insert html boilerplate with boostrap link." (interactive) @@ -843,13 +911,16 @@ Contains the list of packages that need to be installed.") (switch-to-buffer (get-buffer-create "*Keimenografos*")) (text-mode)) +(defun create-scratch () + (interactive) + (switch-to-buffer (get-buffer-create "*scratch*")) + (emacs-lisp-mode)) + (define-key dired-mode-map "b" 'dired-up-directory) (global-set-key (kbd "<escape>") 'keyboard-escape-quit) -(global-set-key (kbd "C-=") 'text-scale-increase) -(global-set-key (kbd "C--") 'text-scale-decrease) -(global-set-key (kbd "C-k") 'copy-region-as-kill) +(global-set-key (kbd "C-c c") 'copy-region-as-kill) ;; Pass (global-set-key (kbd "C-c p i") 'password-store-insert) @@ -932,11 +1003,15 @@ Contains the list of packages that need to be installed.") (setq openai-key (password-store-get "chatgpt/api2")) (setq openai-key (password-store-get "chatgpt/api"))) -(setq circe-network-options +(use-package circe + :ensure t + :config + (setq circe-network-options `(("Libera Chat" :host "irc.libera.chat" :port 6697 :tls t :nick "thanosapollo" :sasl-username "thanos_apollo" :channels ("#emacs" "#emacs-circe") :sasl-password ,(password-store-get "liberachat/thanos_apollo") - ))) + ))) + (define-key thanos/applications-map (kbd "i") 'circe)) diff --git a/org/emacs.org b/org/emacs.org index 2c8cf35..cc26c78 100755 --- a/org/emacs.org +++ b/org/emacs.org @@ -832,6 +832,76 @@ Hook with ~dired-mode~ #+end_src +* Eshell +#+begin_src emacs-lisp + ;;;; sudo completion + (defun pcomplete/sudo () + "Completion rules for the `sudo' command." + (let ((pcomplete-ignore-case t)) + (pcomplete-here (funcall pcomplete-command-completion-function)) + (while (pcomplete-here (pcomplete-entries))))) + + ;;;; systemctl completion + (defcustom pcomplete-systemctl-commands + '("disable" "enable" "status" "start" "restart" "stop" "reenable" + "list-units" "list-unit-files") + "p-completion candidates for `systemctl' main commands" + :type '(repeat (string :tag "systemctl command")) + :group 'pcomplete) + + (defvar pcomplete-systemd-units + (split-string + (shell-command-to-string + "(systemctl list-units --all --full --no-legend;systemctl list-unit-files --full --no-legend)|while read -r a b; do echo \" $a\";done;")) + "p-completion candidates for all `systemd' units") + + (defvar pcomplete-systemd-user-units + (split-string + (shell-command-to-string + "(systemctl list-units --user --all --full --no-legend;systemctl list-unit-files --user --full --no-legend)|while read -r a b;do echo \" $a\";done;")) + "p-completion candidates for all `systemd' user units") + + (defun pcomplete/systemctl () + "Completion rules for the `systemctl' command." + (pcomplete-here (append pcomplete-systemctl-commands '("--user"))) + (cond ((pcomplete-test "--user") + (pcomplete-here pcomplete-systemctl-commands) + (pcomplete-here pcomplete-systemd-user-units)) + (t (pcomplete-here pcomplete-systemd-units)))) + + ;;;; man completion + (defvar pcomplete-man-user-commands + (split-string + (shell-command-to-string + "apropos -s 1 .|while read -r a b; do echo \" $a\";done;")) + "p-completion candidates for `man' command") + + (defun pcomplete/man () + "Completion rules for the `man' command." + (pcomplete-here pcomplete-man-user-commands)) + + ;; hut completion + (defcustom pcomplete-hut-commands + '("builds" "export" "git" "graphql" "lists" "help" "hg" + "init" "meta" "pages" "paste" "todo") + "p-completion candidates for `hut' main commands" + :type '(repeat (string :tag "hut command")) + :group 'pcomplete) + + (defvar pcomplete-hut-user-commands + (split-string + (shell-command-to-string + "hut |while read -r a b; do echo \" $a\";done;")) + "p-completion candidates for `hut' command") + + (defun apollo/hut () + "Replace." + (replace-match "Usage:" "Someasdf")) + + (defun pcomplete/hut () + "Completion rules for `hut' command" + (pcomplete-here (append pcomplete-hut-user-commands))) +#+end_src * Misc ** Random functions #+begin_src emacs-lisp @@ -941,6 +1011,11 @@ Hook with ~dired-mode~ (interactive) (switch-to-buffer (get-buffer-create "*Keimenografos*")) (text-mode)) + + (defun create-scratch () + (interactive) + (switch-to-buffer (get-buffer-create "*scratch*")) + (emacs-lisp-mode)) #+end_src ** Keybindings #+begin_src emacs-lisp @@ -948,9 +1023,7 @@ Hook with ~dired-mode~ (global-set-key (kbd "<escape>") 'keyboard-escape-quit) - (global-set-key (kbd "C-=") 'text-scale-increase) - (global-set-key (kbd "C--") 'text-scale-decrease) - (global-set-key (kbd "C-k") 'copy-region-as-kill) + (global-set-key (kbd "C-c c") 'copy-region-as-kill) ;; Pass (global-set-key (kbd "C-c p i") 'password-store-insert) @@ -1040,12 +1113,16 @@ Hook with ~dired-mode~ #+end_src ** Circe #+begin_src emacs-lisp - (setq circe-network-options + (use-package circe + :ensure t + :config + (setq circe-network-options `(("Libera Chat" :host "irc.libera.chat" :port 6697 :tls t :nick "thanosapollo" :sasl-username "thanos_apollo" :channels ("#emacs" "#emacs-circe") :sasl-password ,(password-store-get "liberachat/thanos_apollo") - ))) + ))) + (define-key thanos/applications-map (kbd "i") 'circe)) #+end_src |