X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/e602de376faa029e9ff7bb1240b60b0c73bf97e0..f6d8e3e405936a65fbb985efe79c684c98da0f2f:/init.org diff --git a/init.org b/init.org index 96a9d6f..ca8ab93 100644 --- a/init.org +++ b/init.org @@ -339,6 +339,33 @@ See [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.htm :config (or (server-running-p) (server-mode))) #+end_src +** Unicode support + +Font stack with better unicode support, around =Ubuntu Mono= and +=Hack=. + +#+begin_src emacs-lisp +(dolist (ft (fontset-list)) + (set-fontset-font + ft + 'unicode + (font-spec :name "Ubuntu Mono")) + (set-fontset-font + ft + 'unicode + (font-spec + :name "Hack") + nil + 'append) + (set-fontset-font + ft + 'unicode + (font-spec + :name "Symbola monospacified for DejaVu Sans Mono") + nil + 'append)) +#+end_src + * Core :PROPERTIES: :CUSTOM_ID: core @@ -512,11 +539,80 @@ Roll your own modal mode :demand t :config (require 'exwm-config) - (exwm-config-default) + + ;; Set the initial workspace number. + (setq exwm-workspace-number 4) + + ;; Make class name the buffer name, truncating beyond 50 characters + (defun exwm-rename-buffer () + (interactive) + (exwm-workspace-rename-buffer + (concat exwm-class-name ":" + (if (<= (length exwm-title) 50) exwm-title + (concat (substring exwm-title 0 49) "..."))))) + (add-hook 'exwm-update-class-hook 'exwm-rename-buffer) + (add-hook 'exwm-update-title-hook 'exwm-rename-buffer) + + ;; 's-R': Reset + (exwm-input-set-key (kbd "s-R") #'exwm-reset) + ;; 's-\': Switch workspace + (exwm-input-set-key (kbd "s-\\") #'exwm-workspace-switch) + ;; 's-N': Switch to certain workspace + (dotimes (i 10) + (exwm-input-set-key (kbd (format "s-%d" i)) + (lambda () + (interactive) + (exwm-workspace-switch-create i)))) + ;; 's-SPC': Launch application + (exwm-input-set-key + (kbd "s-SPC") + (lambda (command) + (interactive (list (read-shell-command "➜ "))) + (start-process-shell-command command nil command))) + + (exwm-input-set-key (kbd "M-s-SPC") #'counsel-linux-app) + + ;; Shorten 'C-c C-q' to 'C-q' + (define-key exwm-mode-map [?\C-q] #'exwm-input-send-next-key) + + ;; Line-editing shortcuts + (setq exwm-input-simulation-keys + '(;; movement + ([?\C-b] . [left]) + ([?\M-b] . [C-left]) + ([?\C-f] . [right]) + ([?\M-f] . [C-right]) + ([?\C-p] . [up]) + ([?\C-n] . [down]) + ([?\C-a] . [home]) + ([?\C-e] . [end]) + ([?\M-v] . [prior]) + ([?\C-v] . [next]) + ([?\C-d] . [delete]) + ([?\C-k] . [S-end delete]) + ;; cut/paste + ([?\C-w] . [?\C-x]) + ([?\M-w] . [?\C-c]) + ([?\C-y] . [?\C-v]) + ;; search + ([?\C-s] . [?\C-f]))) + + ;; Enable EXWM + (exwm-enable) + + (add-hook 'exwm-init-hook #'exwm-config--fix/ido-buffer-window-other-frame) + (require 'exwm-systemtray) (exwm-systemtray-enable) + (require 'exwm-randr) - (exwm-randr-enable)) + (exwm-randr-enable) + + (exwm-input-set-key + (kbd "M-SPC") + (lambda () + (interactive) + (start-process "rofi-pass" nil "rofi-pass")))) #+end_src *** [[https://orgmode.org/][Org mode]] @@ -572,12 +668,13 @@ There's no way I could top that, so I won't attempt to. :bind (:map ivy-minibuffer-map ([escape] . keyboard-escape-quit) - ("C-j" . ivy-next-line) - ("C-k" . ivy-previous-line) + ;; ("C-j" . ivy-next-line) + ;; ("C-k" . ivy-previous-line) ([S-up] . ivy-previous-history-element) ([S-down] . ivy-next-history-element) ("DEL" . ivy-backward-delete-char)) :config + (setq ivy-wrap t) (ivy-mode 1)) #+end_src @@ -685,6 +782,16 @@ TODO: break this giant source block down into individual org sections. (setq undo-tree-mode-lighter "")) #+end_src +* Programming modes + +** Lean mode + +#+begin_src emacs-lisp +(use-package lean-mode + :bind (:map lean-mode-map + ("S-SPC" . company-complete))) +#+end_src + * Post initialization :PROPERTIES: :CUSTOM_ID: post-initialization