summaryrefslogtreecommitdiff
path: root/.emacs.d/modules/thanos-shells.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d/modules/thanos-shells.el')
-rw-r--r--.emacs.d/modules/thanos-shells.el176
1 files changed, 0 insertions, 176 deletions
diff --git a/.emacs.d/modules/thanos-shells.el b/.emacs.d/modules/thanos-shells.el
deleted file mode 100644
index 57fd8dc..0000000
--- a/.emacs.d/modules/thanos-shells.el
+++ /dev/null
@@ -1,176 +0,0 @@
-;;; thanos-shell.el --- shells configuration -*- lexical-binding: t; -*-
-
-;; Copyright (C) 2023 Thanos Apollo
-
-;; Author: Thanos Apollo <[email protected]>
-;; Keywords:
-
-;; This program is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; This program is distributed in the hope that it will be useful,
-;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-;; GNU General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-;;; Commentary:
-;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮
-;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯
-;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮
-;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫
-;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃
-;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃
-;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯
-;;; Code:
-
-(setenv "EDITOR" "emacsclient -n")
-(setenv "XDG_SESSION_TYPE" "x11")
-
-;;
-(require 'pcomplete)
-(require 'eshell)
-
-(setf eshell-visual-commands
- '("vi" "vim" "screen" "tmux" "top" "htop" "less"
- "more" "lynx" "links" "ncftp" "mutt" "pine" "tin"
- "trn" "elm"))
-
-(require 'eat)
-(add-hook 'eshell-mode-hook #'eat-eshell-visual-command-mode)
-;; (add-hook 'eshell-mode-hook #'eat-eshell-mode)
-(setf eat-term-name "xterm")
-
-;;;; doas completion
-(defun pcomplete/doas ()
- "Completion rules for the `doas' 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)
-
-(defun pcomplete/hut ()
- "Completion rules for `hut' command"
- (pcomplete-here (append pcomplete-hut-commands)))
-
-
-;; Setting eshell aliases
-(defvar thanos/aliases
- '((g . magit)
- (gl . magit-log)
- (gc . magit-clone)
- (d . dired)
- (o . find-file)
- (oo . find-file-other-window)
- (ll . (lambda () (eshell/ls '-lha)))
- (eshell/clear . eshell/clear-scrollback)))
-
-(defun thanos/set-eshell-aliases (aliases)
- "Set ALIASES as eshell aliases."
- (mapc (lambda (alias)
- (defalias (car alias) (cdr alias)))
- aliases))
-
-(add-hook 'eshell-mode-hook #'(lambda () (thanos/set-eshell-aliases thanos/aliases)))
-
-;; PATH
-(defvar eshell-path-env (getenv "~/.local/bin"))
-
-(require 'eshell-git-prompt)
-
-;; customize multiline theme
-(defun eshell-git-prompt-multiline ()
- "Eshell Git prompt inspired by spaceship-prompt."
- (let (separator hr dir git git-dirty time sign command)
- (setq separator (with-face " | " 'eshell-git-prompt-multiline-secondary-face))
- (setq hr (with-face (concat "\n" (make-string (/ (window-total-width) 2) ?─) "\n") 'eshell-git-prompt-multiline-secondary-face))
- (setq dir
- (concat
- (concat (abbreviate-file-name (eshell/pwd)))))
- (setq git
- (concat (with-face "⎇" 'eshell-git-prompt-exit-success-face)
- (concat (eshell-git-prompt--branch-name))))
- (setq git-dirty
- (when (eshell-git-prompt--branch-name)
- (if (eshell-git-prompt--collect-status)
- (with-face " ✎" 'eshell-git-prompt-modified-face)
- (with-face " ✔" 'eshell-git-prompt-exit-success-face))))
- (setq time (with-face (format-time-string "%I:%M:%S %p") 'eshell-git-prompt-multiline-secondary-face))
- (setq sign
- (if (= (user-uid) 0)
- (with-face "\n#" 'eshell-git-prompt-multiline-sign-face)
- (with-face "\nλ" 'eshell-git-prompt-multiline-sign-face)))
- (setq command (with-face " " 'eshell-git-prompt-multiline-command-face))
-
-
- (eshell-git-prompt---str-read-only
- (concat hr dir separator git git-dirty separator time sign command))))
-
-(eshell-git-prompt-use-theme 'multiline)
-
-(eshell-syntax-highlighting-global-mode 1)
-
-(setq eshell-highlight-prompt t
- eshell-term-name "emacs")
-
-;; Keybindings
-(define-key global-map (kbd "C-c e") 'eshell)
-
-(require 'vterm)
-(define-key global-map (kbd "C-c v") 'vterm)
-(define-key vterm-mode-map (kbd "M-&") #'async-shell-command)
-
-
-(provide 'thanos-shells)
-;;; thanos-shells.el ends here