X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/3f0f8d0130f681bf7f5d8d20d60dc0f8d2c8db04..a81db9232492b543525e69e01451374515f835c7:/init.org?ds=sidebyside diff --git a/init.org b/init.org index 56f9fcd..84f8408 100644 --- a/init.org +++ b/init.org @@ -44,7 +44,6 @@ byte-compiled the packages. Something along these lines should work: git clone https://github.com/aminb/dotfiles ~/.emacs.d cd ~/.emacs.d make bootstrap-borg -make tangle-init make bootstrap make build #+end_src @@ -168,10 +167,6 @@ done initializing. (add-hook 'after-init-hook (lambda () - (let ((elapsed (float-time (time-subtract (current-time) - ab--before-user-init-time)))) - (message "Loading %s...done (%.3fs) [after-init]" - user-init-file elapsed)) (setq gc-cons-threshold ab--gc-cons-threshold gc-cons-percentage ab--gc-cons-percentage file-name-handler-alist ab--file-name-handler-alist))) @@ -339,6 +334,44 @@ 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 "DejaVu Sans Mono") + nil + 'append) + ;; (set-fontset-font + ;; ft + ;; 'unicode + ;; (font-spec + ;; :name "Symbola monospacified for DejaVu Sans Mono") + ;; nil + ;; 'append) + ;; (set-fontset-font + ;; ft + ;; #x2115 ; ℕ + ;; (font-spec :name "DejaVu Sans Mono") + ;; nil + ;; 'append) + (set-fontset-font + ft + (cons ?Α ?ω) + (font-spec :name "DejaVu Sans Mono" :size 14) + nil + 'prepend)) +#+end_src + * Core :PROPERTIES: :CUSTOM_ID: core @@ -507,7 +540,7 @@ Roll your own modal mode *** [[https://github.com/ch11ng/exwm][EXWM]] (window manager) -#+begin_src emacs-lisp +#+begin_src emacs-lisp :tangle no (use-package exwm :demand t :config @@ -535,13 +568,13 @@ Roll your own modal mode (exwm-input-set-key (kbd (format "s-%d" i)) (lambda () (interactive) - (exwm-workspace-switch-create ,i)))) + (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 "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) @@ -563,8 +596,8 @@ Roll your own modal mode ([?\C-v] . [next]) ([?\C-d] . [delete]) ([?\C-k] . [S-end delete]) - ;; cut/paste - ([?\C-w] . [?\C-x]) + ;; cut/copy/paste + ;; ([?\C-w] . [?\C-x]) ([?\M-w] . [?\C-c]) ([?\C-y] . [?\C-v]) ;; search @@ -581,11 +614,154 @@ Roll your own modal mode (require 'exwm-randr) (exwm-randr-enable) + ;; (exwm-input-set-key + ;; (kbd "s-") + ;; (lambda () + ;; (interactive) + ;; (start-process "urxvt" nil "urxvt"))) + + ;; (exwm-input-set-key + ;; (kbd "s-SPC") ;; rofi doesn't properly launch programs when started from emacs + ;; (lambda () + ;; (interactive) + ;; (start-process-shell-command "rofi-run" nil "rofi -show run -display-run '> ' -display-window ' 🗔 '"))) + + ;; (exwm-input-set-key + ;; (kbd "s-/") + ;; (lambda () + ;; (interactive) + ;; (start-process-shell-command "rofi-win" nil "rofi -show window -display-run '> ' -display-window ' 🗔 '"))) + + ;; (exwm-input-set-key + ;; (kbd "M-SPC") + ;; (lambda () + ;; (interactive) + ;; (start-process "rofi-pass" nil "rofi-pass"))) + + ;; (exwm-input-set-key + ;; (kbd "") + ;; (lambda () + ;; (interactive) + ;; (start-process-shell-command "pamixer" nil "pamixer --toggle-mute"))) + + ;; (exwm-input-set-key + ;; (kbd "") + ;; (lambda () + ;; (interactive) + ;; (start-process-shell-command "pamixer" nil "pamixer --allow-boost --decrease 5"))) + + ;; (exwm-input-set-key + ;; (kbd "") + ;; (lambda () + ;; (interactive) + ;; (start-process-shell-command "pamixer" nil "pamixer --allow-boost --increase 5"))) + + ;; (exwm-input-set-key + ;; (kbd "") + ;; (lambda () + ;; (interactive) + ;; (start-process-shell-command "mpc" nil "mpc toggle"))) + + ;; (exwm-input-set-key + ;; (kbd "") + ;; (lambda () + ;; (interactive) + ;; (start-process-shell-command "mpc" nil "mpc prev"))) + + ;; (exwm-input-set-key + ;; (kbd "") + ;; (lambda () + ;; (interactive) + ;; (start-process-shell-command "mpc" nil "mpv next"))) + + (defun ab--exwm-pasystray () + "A command used to start pasystray." + (interactive) + (if (executable-find "pasystray") + (progn + (message "EXWM: starting pasystray ...") + (start-process-shell-command "pasystray" nil "pasystray --notify=all")) + (message "EXWM: pasystray is not installed, abort!"))) + + (add-hook 'exwm-init-hook #'ab--exwm-pasystray) + + (exwm-input-set-key + (kbd "s-t") + (lambda () + (interactive) + (exwm-floating-toggle-floating))) + + (exwm-input-set-key + (kbd "s-f") + (lambda () + (interactive) + (exwm-layout-toggle-fullscreen))) + (exwm-input-set-key - (kbd "M-SPC") + (kbd "s-w") (lambda () (interactive) - (start-process "rofi-pass" nil "rofi-pass")))) + (kill-buffer (current-buffer)))) + + (exwm-input-set-key + (kbd "s-q") + (lambda () + (interactive) + (exwm-manage--kill-client)))) +#+end_src + +**** sxhkdrc +:PROPERTIES: +:header-args+: :tangle ~/.config/sxhkd/sxhkdrc :mkdirp yes +:END: + +#+begin_src conf :tangle no +# terminal emulator +super + Return + urxvt + +# program launcher +super + space + rofi -show run -display-run '> ' -display-window ' 🗔 ' + +# window finder +super + slash + rofi -show window -display-run '> ' -display-window ' 🗔 ' + +# password manager +alt + space + rofi-pass + +# make sxhkd reload its configuration files: +super + Escape + pkill -USR1 -x sxhkd + +# volume {up,down} +XF86Audio{Raise,Lower}Volume + pamixer --allow-boost --{in,de}crease 5 + +# mute +XF86AudioMute + pamixer --toggle-mute + +# playback control +XF86Audio{Play,Prev,Next} + mpc {toggle,prev,next} + +# Toggle keyboard layout +# super + F7 +# toggle-layout + +# Toggle Xfce presentation mode +# XF86LaunchB +# toggle-presentation-mode + +# monitor brightness +XF86MonBrightness{Up,Down} + light -{A,U} 5 + +super + apostrophe + rofi-light #+end_src *** [[https://orgmode.org/][Org mode]] @@ -647,6 +823,7 @@ There's no way I could top that, so I won't attempt to. ([S-down] . ivy-next-history-element) ("DEL" . ivy-backward-delete-char)) :config + (setq ivy-wrap t) (ivy-mode 1)) #+end_src @@ -662,7 +839,7 @@ There's no way I could top that, so I won't attempt to. #+begin_src emacs-lisp (use-package counsel - :defer 1.5 + :defer 1 :bind (([remap execute-extended-command] . counsel-M-x) ([remap find-file] . counsel-find-file) ("s-r" . counsel-recentf) @@ -756,12 +933,23 @@ TODO: break this giant source block down into individual org sections. * Programming modes -** Lean mode +** [[https://github.com/leanprover/lean-mode][Lean]] #+begin_src emacs-lisp -(use-package lean-mode) +(use-package lean-mode + :bind (:map lean-mode-map + ("S-SPC" . company-complete))) #+end_src +** [[https://github.com/haskell/haskell-mode][Haskell]] + +#+begin_src emacs-lisp +(use-package haskell-mode + :config + (setq haskell-indentation-layout-offset 4 + haskell-indentation-left-offset 4 + haskell-indentation-ifte-offset 4)) +#+end_src * Post initialization :PROPERTIES: :CUSTOM_ID: post-initialization