diff --git a/init.el b/init.el new file mode 100644 index 0000000..2a7be64 --- /dev/null +++ b/init.el @@ -0,0 +1,141 @@ +(add-to-list 'load-path "~/.emacs.d/elisp/") +;; OpenBSD KNF for C/C++ +(require 'openbsd-knf-style) +(c-add-style "OpenBSD" openbsd-knf-style) +(setq c-default-style '((c-mode . "OpenBSD"))) +(custom-set-variables + ;; custom-set-variables was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(blink-cursor-mode nil) + '(circe-default-realname "narehate") + '(custom-enabled-themes '(inkpot)) + '(custom-safe-themes + '("2422f18687980d29da5e276547171c99f1cc1b2cb4cdbec124a53e1f34143001" + "058ba0ed929f801fc4077617e816797654c7775382943520875642d5507d8696" + "44e6d6845e571402c149a12acbf698391e62928443b3d1924478bbc54a573b32" + "d323d7aa432e9d02647069b1ecc58b8c3ab2f1104a399c5df7427e8ddc13505e" + "ad7d874d137291e09fe2963babc33d381d087fa14928cb9d34350b67b6556b6d" + "0407bc59241a431e71d639f8fe8049f2490428a4c073b657edf5f5f915ae2aa0" + "f1c8202c772d1de83eda4765fe21429a528a4fb350a28394d3705fe9678ed1f9" + default)) + '(elfeed-feeds '("https://bimshwel.com/?feed=rss2")) + '(package-selected-packages + '(abyss-theme acme-theme circe dirvish elfeed evangelion-theme exwm + faff-theme inkpot-theme inverse-acme-theme mingus + pass vmd-mode)) + '(rmail-spool-directory "/home/tate/Mail/INBOX") + '(tab-bar-mode t) + '(tool-bar-mode nil) + '(transient-mark-mode nil)) +(custom-set-faces + ;; custom-set-faces was added by Custom. + ;; If you edit it by hand, you could mess it up, so be careful. + ;; Your init file should contain only one such instance. + ;; If there is more than one, they won't work right. + '(default ((t (:inherit nil :extend nil :stipple nil :background "#1e1e27" :foreground "#cfbfad" :inverse-video nil :box nil :strike-through nil :overline nil :underline nil :slant normal :weight regular :height 91 :width normal :foundry "SGI" :family "Comic Mono")))) + '(line-number ((t (:inherit (shadow default) :background "gray9")))) + '(line-number-current-line ((t (:inherit line-number :foreground "dark goldenrod")))) + '(mode-line ((t (:background "indian red" :foreground "white" :box nil)))) + '(mode-line-active ((t (:inherit mode-line :background "purple"))))) +;; +;; ====== Appearance ====== +;; +(menu-bar-mode -1) +(tool-bar-mode -1) +(display-time-mode) +(defun my-display-numbers-hook () + (display-line-numbers-mode 1) + ) +(defun my-spotlight-mode-hook () + (hl-line-mode 1) + ) +(add-hook 'prog-mode-hook 'my-display-numbers-hook) +(add-hook 'text-mode-hook 'my-display-numbers-hook) +(add-hook 'prog-mode-hook 'my-spotlight-mode-hook) +(add-hook 'text-mode-hook 'my-spotlight-mode-hook) +(add-hook 'dired-mode-hook 'my-spotlight-mode-hook) +(setq-default cursor-type 'box) + +;; +;; ====== Keybinds ====== +;; + +(keymap-global-set "C-c s" (lambda () (interactive) (term "/bin/ksh"))) +(keymap-global-set "C-c e" 'eshell) +(keymap-global-set "C-c f" 'elfeed) + +;; +;; ====== Exwm ====== +;; + +(use-package exwm + :config + ;; Set the default number of workspaces + (setq exwm-workspace-number 5) + + ;; When window "class" updates, use it to set the buffer name + ;; (add-hook 'exwm-update-class-hook #'efs/exwm-update-class) + + ;; These keys should always pass through to Emacs + (setq exwm-input-prefix-keys + '(?\C-x + ?\C-u + ?\C-h + ?\M-x + ?\M-` + ?\M-& + ?\M-: + ?\C-\M-j ;; Buffer list + ?\C-\ )) ;; Ctrl+Space + + ;; Ctrl+Q will enable the next key to be sent directly + (define-key exwm-mode-map [?\C-q] 'exwm-input-send-next-key) + + ;; Set up global key bindings. These always work, no matter the input state! + ;; Keep in mind that changing this list after EXWM initializes has no effect. + (setq exwm-input-global-keys + `( + ;; Reset to line-mode (C-c C-k switches to char-mode via exwm-input-release-keyboard) + ([?\s-r] . exwm-reset) + + ;; Move between windows + ([s-left] . windmove-left) + ([s-right] . windmove-right) + ([s-up] . windmove-up) + ([s-down] . windmove-down) + + ;; Launch applications via shell command + ([?\s-&] . (lambda (command) + (interactive (list (read-shell-command "$ "))) + (start-process-shell-command command nil command))) + + ;; Switch workspace + ([?\s-w] . exwm-workspace-switch) + + ;; 's-N': Switch to certain workspace with Super (Win) plus a number key (0 - 9) + ,@(mapcar (lambda (i) + `(,(kbd (format "s-%d" i)) . + (lambda () + (interactive) + (exwm-workspace-switch-create ,i)))) + (number-sequence 0 9)))) + + (exwm-wm-mode)) +(require 'package) +(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t) +;; Comment/uncomment this line to enable MELPA Stable if desired. See `package-archive-priorities` +;; and `package-pinned-packages`. Most users will not need or want to do this. +;;(add-to-list 'package-archives '("melpa-stable" . "https://stable.melpa.org/packages/") t) +(package-initialize) +(setq circe-network-options + '(("Libera Chat" + :tls t + :tls-keylist (("/home/tate/.config/weechat/libera.pem" + "/home/tate/.config/weechat/libera.pem")) + :host "irc.libera.chat" + :sasl-external t + :nick "nanach1" + :channels ("#emacs") + )))