Move welcome to another file. Random stuff and embark
This commit is contained in:
parent
3ddf540c59
commit
0a5b7aa497
@ -374,7 +374,7 @@ Setup other stuff
|
|||||||
(add-to-list 'default-frame-alist '(fullscreen . maximized))
|
(add-to-list 'default-frame-alist '(fullscreen . maximized))
|
||||||
(add-to-list 'default-frame-alist '(vertical-scroll-bars . nil))
|
(add-to-list 'default-frame-alist '(vertical-scroll-bars . nil))
|
||||||
|
|
||||||
(add-hook 'text-mode-hook (lambda () (setq fill-column 100) (turn-on-auto-fill)))
|
(add-hook 'text-mode-hook (lambda () (setq fill-column 80) (turn-on-auto-fill)))
|
||||||
|
|
||||||
(setq-default display-line-numbers 'relative)
|
(setq-default display-line-numbers 'relative)
|
||||||
(make-variable-buffer-local 'global-hl-line-mode)
|
(make-variable-buffer-local 'global-hl-line-mode)
|
||||||
@ -784,76 +784,6 @@ weren't working, until I randomly saw this in someone's init.el
|
|||||||
(setq evil-goggles-pulse t)
|
(setq evil-goggles-pulse t)
|
||||||
(setq evil-goggles-async-duration 0.55)
|
(setq evil-goggles-async-duration 0.55)
|
||||||
|
|
||||||
#+end_src
|
|
||||||
** Initial Buffer
|
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
|
||||||
;; (require 'dashboard)
|
|
||||||
;; (defun dashboard-center-text (start end)
|
|
||||||
;; "Center the text between START and END."
|
|
||||||
;; (save-excursion
|
|
||||||
;; (goto-char start)
|
|
||||||
;; (let ((width 0))
|
|
||||||
;; (while (< (point) end)
|
|
||||||
;; (let* ((line-str (buffer-substring (line-beginning-position) (line-end-position)))
|
|
||||||
;; (line-length (dashboard-str-len line-str)))
|
|
||||||
;; (setq width (max width line-length)))
|
|
||||||
;; (forward-line 1))
|
|
||||||
;; (let ((prefix (propertize " " 'display `(space . (:align-to (- center ,(/ width 2)))))))
|
|
||||||
;; (add-text-properties start end `(line-prefix ,prefix indent-prefix ,prefix))))))
|
|
||||||
|
|
||||||
;; (defun dashboard-insert-center (&rest strings)
|
|
||||||
;; "Insert STRINGS in the center of the buffer."
|
|
||||||
;; (let ((start (point)))
|
|
||||||
;; (apply #'insert strings)
|
|
||||||
;; (dashboard-center-text start (point))))
|
|
||||||
|
|
||||||
(defvar joe/welcome-load-project-map (make-sparse-keymap)
|
|
||||||
"High precedence keymap.")
|
|
||||||
|
|
||||||
(defun joe/welcome-open-project ()
|
|
||||||
"Open the directory at point in dired."
|
|
||||||
(interactive)
|
|
||||||
(let ((path (file-truename (substring-no-properties
|
|
||||||
(thing-at-point 'filename)))))
|
|
||||||
(project-switch-project path)))
|
|
||||||
|
|
||||||
;; (evil-define-key 'normal 'joe/welcome-load-project-map (kbd "RET") #'joe/welcome-open-project)
|
|
||||||
|
|
||||||
(defun load-projects ()
|
|
||||||
(with-temp-buffer
|
|
||||||
(insert-file-contents project-list-file)
|
|
||||||
(goto-char (point-min))
|
|
||||||
(apply #'append (read (current-buffer)))))
|
|
||||||
|
|
||||||
(defun my-dashboard ()
|
|
||||||
"Show Welcome buffer"
|
|
||||||
(with-current-buffer (get-buffer-create "*Welcome*")
|
|
||||||
|
|
||||||
(erase-buffer)
|
|
||||||
(goto-char (point-min))
|
|
||||||
(insert-image (create-image "~/Documents/emacs-alt.png"))
|
|
||||||
(insert "\n\n\n")
|
|
||||||
(insert "Welcome to Emacs!\n\n")
|
|
||||||
;; (dashboard-insert-center "testing this thing out\n\n")
|
|
||||||
(let* ((time-str (emacs-init-time))
|
|
||||||
(time (string-to-number (car (split-string time-str)))))
|
|
||||||
(insert (format "It took %.3f seconds to start up\n\n" time)))
|
|
||||||
(insert "Happy hacking!\n\n")
|
|
||||||
(insert "Projects:\n")
|
|
||||||
(dolist (proj (load-projects))
|
|
||||||
(insert (format "\t%s\n" proj)))
|
|
||||||
;; (insert (propertize (format "\t%s\n" proj) :keymap joe/welcome-load-project-map)))
|
|
||||||
(setq cursor-type nil)
|
|
||||||
(switch-to-buffer (current-buffer))
|
|
||||||
(goto-char 86)
|
|
||||||
(display-line-numbers-mode 0)
|
|
||||||
(olivetti-mode)
|
|
||||||
(read-only-mode +1)
|
|
||||||
(current-buffer)))
|
|
||||||
|
|
||||||
(setq initial-buffer-choice #'my-dashboard)
|
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
** Buffers
|
** Buffers
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
@ -917,6 +847,14 @@ The theme of `C-x 4` bindings is that they operate on other windows, so this fun
|
|||||||
(global-set-key (kbd "s-k") #'windmove-up)
|
(global-set-key (kbd "s-k") #'windmove-up)
|
||||||
(global-set-key (kbd "s-j") #'windmove-down)
|
(global-set-key (kbd "s-j") #'windmove-down)
|
||||||
|
|
||||||
|
;; There's a bug in Gnome where frames are resized to the wrong dimensions
|
||||||
|
(defun joe/resize-frames ()
|
||||||
|
(interactive)
|
||||||
|
(dolist (frame (frame-list))
|
||||||
|
(toggle-frame-maximized frame)
|
||||||
|
(toggle-frame-maximized frame)))
|
||||||
|
|
||||||
|
(global-set-key (kbd "s-<f10>") #'joe/resize-frames)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
Ace Window will show a hint if there are more than 2 windows, but I don't really use it
|
Ace Window will show a hint if there are more than 2 windows, but I don't really use it
|
||||||
@ -986,7 +924,6 @@ Ace Window will show a hint if there are more than 2 windows, but I don't really
|
|||||||
(add-to-list 'consult-buffer-sources 'beframe-consult-source))
|
(add-to-list 'consult-buffer-sources 'beframe-consult-source))
|
||||||
|
|
||||||
(beframe-mode +1)
|
(beframe-mode +1)
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
*** Popper
|
*** Popper
|
||||||
|
|
||||||
@ -997,6 +934,7 @@ Ace Window will show a hint if there are more than 2 windows, but I don't really
|
|||||||
"^\\*vterm\\*" vterm-mode
|
"^\\*vterm\\*" vterm-mode
|
||||||
"^\\*Flymake.*" flymake-mode
|
"^\\*Flymake.*" flymake-mode
|
||||||
"^\\*Flycheck.*" flycheck-error-list-mode
|
"^\\*Flycheck.*" flycheck-error-list-mode
|
||||||
|
"^\\*Occur\\*$" occur-mode
|
||||||
"^\\*lsp-help\\*" lsp-help-mode
|
"^\\*lsp-help\\*" lsp-help-mode
|
||||||
"^\\*eldoc\\*" special-mode
|
"^\\*eldoc\\*" special-mode
|
||||||
"^\\*ert\\*" ert-results-mode
|
"^\\*ert\\*" ert-results-mode
|
||||||
@ -1387,51 +1325,74 @@ Ace Window will show a hint if there are more than 2 windows, but I don't really
|
|||||||
#+end_src
|
#+end_src
|
||||||
*** Embark
|
*** Embark
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(require 'embark)
|
(require 'embark)
|
||||||
|
|
||||||
;; TODO Prot
|
;; TODO Try using embark to kill this buffer
|
||||||
;; 1.) Cannot quickly deleete buffers from the mini buffer with emark
|
(defun prot-simple-kill-buffer-current (&optional arg)
|
||||||
;; 2.) switch-to-buffer-other-frame is not working
|
"Kill current buffer.
|
||||||
(setq embark-quit-after-action '((kill-buffer . nil)))
|
With optional prefix ARG (\\[universal-argument]) delete the
|
||||||
|
buffer's window as well."
|
||||||
|
(interactive "P")
|
||||||
|
(let ((kill-buffer-query-functions nil))
|
||||||
|
(if (and arg (not (one-window-p)))
|
||||||
|
(kill-buffer-and-window)
|
||||||
|
(kill-buffer))))
|
||||||
|
|
||||||
(defun embark-which-key-indicator ()
|
(defun prot-simple-kill-buffer (buffer)
|
||||||
"An embark indicator that displays keymaps using which-key.
|
"Kill current BUFFER.
|
||||||
|
When called interactively, prompt for BUFFER."
|
||||||
|
(interactive (list (read-buffer "Select buffer: ")))
|
||||||
|
(let ((kill-buffer-query-functions nil))
|
||||||
|
(kill-buffer (or buffer (current-buffer)))))
|
||||||
|
|
||||||
|
(setq embark-quit-after-action '((kill-buffer . nil)))
|
||||||
|
|
||||||
|
;; TODO Add this to display-buffer-alist
|
||||||
|
;; ("\\*Embark Actions\\*"
|
||||||
|
;; (display-buffer-reuse-mode-window display-buffer-at-bottom)
|
||||||
|
;; (window-height . fit-window-to-buffer)
|
||||||
|
;; (window-parameters . ((no-other-window . t)
|
||||||
|
;; (mode-line-format . none))))
|
||||||
|
|
||||||
|
;; TODO Remove the which-key stuff because it seems to be breaking things
|
||||||
|
(defun embark-which-key-indicator ()
|
||||||
|
"An embark indicator that displays keymaps using which-key.
|
||||||
The which-key help message will show the type and value of the
|
The which-key help message will show the type and value of the
|
||||||
current target followed by an ellipsis if there are further
|
current target followed by an ellipsis if there are further
|
||||||
targets."
|
targets."
|
||||||
(lambda (&optional keymap targets prefix)
|
(lambda (&optional keymap targets prefix)
|
||||||
(if (null keymap)
|
(if (null keymap)
|
||||||
(which-key--hide-popup-ignore-command)
|
(which-key--hide-popup-ignore-command)
|
||||||
(which-key--show-keymap
|
(which-key--show-keymap
|
||||||
(if (eq (plist-get (car targets) :type) 'embark-become)
|
(if (eq (plist-get (car targets) :type) 'embark-become)
|
||||||
"Become"
|
"Become"
|
||||||
(format "Act on %s '%s'%s"
|
(format "Act on %s '%s'%s"
|
||||||
(plist-get (car targets) :type)
|
(plist-get (car targets) :type)
|
||||||
(embark--truncate-target (plist-get (car targets) :target))
|
(embark--truncate-target (plist-get (car targets) :target))
|
||||||
(if (cdr targets) "…" "")))
|
(if (cdr targets) "…" "")))
|
||||||
(if prefix
|
(if prefix
|
||||||
(pcase (lookup-key keymap prefix 'accept-default)
|
(pcase (lookup-key keymap prefix 'accept-default)
|
||||||
((and (pred keymapp) km) km)
|
((and (pred keymapp) km) km)
|
||||||
(_ (key-binding prefix 'accept-default)))
|
(_ (key-binding prefix 'accept-default)))
|
||||||
keymap)
|
keymap)
|
||||||
nil nil t (lambda (binding)
|
nil nil t (lambda (binding)
|
||||||
(not (string-suffix-p "-argument" (cdr binding))))))))
|
(not (string-suffix-p "-argument" (cdr binding))))))))
|
||||||
|
|
||||||
(setq embark-indicators
|
(setq embark-indicators
|
||||||
'(embark-which-key-indicator
|
'(embark-which-key-indicator
|
||||||
embark-highlight-indicator
|
embark-highlight-indicator
|
||||||
embark-isearch-highlight-indicator))
|
embark-isearch-highlight-indicator))
|
||||||
|
|
||||||
(defun embark-hide-which-key-indicator (fn &rest args)
|
(defun embark-hide-which-key-indicator (fn &rest args)
|
||||||
"Hide the which-key indicator immediately when using the completing-read prompter."
|
"Hide the which-key indicator immediately when using the completing-read prompter."
|
||||||
(which-key--hide-popup-ignore-command)
|
(which-key--hide-popup-ignore-command)
|
||||||
(let ((embark-indicators
|
(let ((embark-indicators
|
||||||
(remq #'embark-which-key-indicator embark-indicators)))
|
(remq #'embark-which-key-indicator embark-indicators)))
|
||||||
(apply fn args)))
|
(apply fn args)))
|
||||||
|
|
||||||
(advice-add #'embark-completing-read-prompter
|
|
||||||
:around #'embark-hide-which-key-indicator)
|
|
||||||
|
|
||||||
|
(advice-add #'embark-completing-read-prompter
|
||||||
|
:around #'embark-hide-which-key-indicator)
|
||||||
|
(advice-remove #'embark-completing-read-prompter #'embark-hide-which-key-indicator)
|
||||||
#+end_src
|
#+end_src
|
||||||
*** Marginalia
|
*** Marginalia
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
@ -1676,8 +1637,13 @@ startup. Reason we have to call this is so the vterm fucntion can call `vterm--i
|
|||||||
(setq mono-complete-backend-capf-complete-fn #'eglot-completion-at-point)
|
(setq mono-complete-backend-capf-complete-fn #'eglot-completion-at-point)
|
||||||
(setq mono-complete-preview-delay 0.1)
|
(setq mono-complete-preview-delay 0.1)
|
||||||
|
|
||||||
;; TODO Prot This setting gets lost when creating a new frame
|
;; (add-to-list 'face-remapping-alist '(mono-complete-preview-face . shadow))
|
||||||
(add-to-list 'face-remapping-alist '(mono-complete-preview-face . shadow))
|
|
||||||
|
(set-face-attribute 'mono-complete-preview-face nil
|
||||||
|
:foreground 'unspecified
|
||||||
|
:background 'unspecified
|
||||||
|
:inherit 'shadow)
|
||||||
|
|
||||||
(mono-complete-mode +1)
|
(mono-complete-mode +1)
|
||||||
#+end_src
|
#+end_src
|
||||||
*** Eldoc
|
*** Eldoc
|
||||||
@ -1923,7 +1889,7 @@ startup. Reason we have to call this is so the vterm fucntion can call `vterm--i
|
|||||||
(defun joe/sql-mode-hook ()
|
(defun joe/sql-mode-hook ()
|
||||||
(define-key sql-mode-map (kbd "C-M-h") #'joe/mark-sql-defun)
|
(define-key sql-mode-map (kbd "C-M-h") #'joe/mark-sql-defun)
|
||||||
(define-key sql-mode-map (kbd "C-M-x") #'sql-send-pg-function)
|
(define-key sql-mode-map (kbd "C-M-x") #'sql-send-pg-function)
|
||||||
(define-key sql-mode-map (kbd "<f8>") #'sql-connect))
|
(global-set-key (kbd "<f8>") #'sql-connect))
|
||||||
|
|
||||||
(add-hook 'sql-mode-hook #'joe/sql-mode-hook)
|
(add-hook 'sql-mode-hook #'joe/sql-mode-hook)
|
||||||
|
|
||||||
@ -2096,7 +2062,7 @@ and there's no need for a middle-man when it's already been implemented.
|
|||||||
#+end_src
|
#+end_src
|
||||||
** Magit
|
** Magit
|
||||||
|
|
||||||
The best git porcelain/client I've ever used. Also kill stray magit buffers left over as explained [[https://manueluberti.eu/emacs/2018/02/17/magit-bury-buffer/][here]]
|
The best git porcelain/client I've ever used. Also kill stray magit buffers left over as explained [[https://manueluberti.eu/2018/02/17/magit-bury-buffer.html][here]]
|
||||||
|
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(require 'magit)
|
(require 'magit)
|
||||||
@ -2130,7 +2096,11 @@ The best git porcelain/client I've ever used. Also kill stray magit buffers left
|
|||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
** Initial Buffer
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(load-file "/home/joe/Dotfiles/.config/emacs/elisp/welcome.el")
|
||||||
|
#+end_src
|
||||||
|
|
||||||
* COMMENT Local variables
|
* COMMENT Local variables
|
||||||
;; Local Variables:
|
;; Local Variables:
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
SETUVAR --export CARGO_HOME:/home/joe/\x2elocal/share/bin/cargo/
|
SETUVAR --export CARGO_HOME:/home/joe/\x2elocal/share/bin/cargo/
|
||||||
SETUVAR EDITOR:hx
|
SETUVAR EDITOR:hx
|
||||||
SETUVAR --export LC_COLLATE:C
|
SETUVAR --export LC_COLLATE:C
|
||||||
|
SETUVAR --export --path LD_LIBRARY_PATH:/usr/local/lib
|
||||||
SETUVAR --export PYTHONSTARTUP:/etc/python/pythonrc
|
SETUVAR --export PYTHONSTARTUP:/etc/python/pythonrc
|
||||||
SETUVAR --export RUSTUP_HOME:/home/joe/\x2elocal/share/rustup/
|
SETUVAR --export RUSTUP_HOME:/home/joe/\x2elocal/share/rustup/
|
||||||
SETUVAR XDG_CACHE_HOME:/home/joe/\x2ecache
|
SETUVAR XDG_CACHE_HOME:/home/joe/\x2ecache
|
||||||
@ -32,6 +33,7 @@ SETUVAR fish_color_selection:white\x1e\x2d\x2dbold\x1e\x2d\x2dbackground\x3dbrbl
|
|||||||
SETUVAR fish_color_status:red
|
SETUVAR fish_color_status:red
|
||||||
SETUVAR fish_color_user:brgreen
|
SETUVAR fish_color_user:brgreen
|
||||||
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
SETUVAR fish_color_valid_path:\x2d\x2dunderline
|
||||||
|
SETUVAR fish_greeting:
|
||||||
SETUVAR fish_key_bindings:fish_default_key_bindings
|
SETUVAR fish_key_bindings:fish_default_key_bindings
|
||||||
SETUVAR fish_pager_color_completion:normal
|
SETUVAR fish_pager_color_completion:normal
|
||||||
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
SETUVAR fish_pager_color_description:B3A06D\x1eyellow
|
||||||
|
Loading…
x
Reference in New Issue
Block a user