;; -*- mode: emacs-lisp; buffer-read-only: t; -*- (custom-set-variables '(wakatime-api-key "waka_60723ebe-de7f-4671-9a0e-6dd1d5087cc7")) (global-wakatime-mode) (electric-indent-mode 1) (set-face-attribute 'default nil :height 110) ;;(rg-define-toggle "-r" "I" t) (global-set-key (kbd "M-c") 'my-custom-map) (define-prefix-command 'my-custom-map) (require 'ox-hugo) (rg-define-search rg-guix "Search in the guix source code." :dir "/mnt/Data/github-stuff/guix_source_code/guix" ;; :flags '("-r" ) :files "*.{scm}") (set-face-attribute 'default nil :family "Wumpus Mono Pro" :height 95 ) (global-set-key (kbd "C-c g") 'rg-guix) ;; cpp template (defun insert-cpp-template () "Insert a template for a C++ source code file." (interactive) (insert "\ // Copyright (C) 2023 千住柱間 #include using namespace std; using namespace fast_io::io; int main() { return 0; } ")) ;; Define a key binding to trigger insertion of C++ template (global-set-key (kbd "C-c t") 'insert-cpp-template) ;;------------------------------- (defun indent-whole-buffer () "Indent the entire buffer." (interactive) (save-excursion (mark-whole-buffer) (indent-region (region-beginning) (region-end)))) (global-set-key (kbd "C-c i") 'indent-whole-buffer) (setq geiser-mode-auto-p nil) (add-to-list 'load-path "~/.emacs.d/org-mode-async/org-mode/") (add-hook 'scheme-mode-hook 'guix-devel-mode) (dirvish-override-dired-mode) ;; Example: Setting cursor-type to 'box (setq cursor-type 'box) (global-set-key (kbd "C-z") 'undo) (global-set-key (kbd "C-c z") 'org-roam-node-insert) (set-frame-parameter nil 'alpha-background 100) (add-to-list 'default-frame-alist '(alpha-background . 100)) (defun toggle-transparency () (interactive) (let ((alpha (frame-parameter nil 'alpha))) (set-frame-parameter nil 'alpha (if (eql (cond ((numberp alpha) alpha) ((numberp (cdr alpha)) (cdr alpha)) ;; Also handle undocumented ( ) form. ((numberp (cadr alpha)) (cadr alpha))) 100) '(85 . 50) '(100 . 100))))) (toggle-transparency) (load-theme 'modus-vivendi) (global-set-key (kbd "M-c i") 'toggle-transparency) (toggle-transparency) (load-file "~/.emacs.d/extensions/emacs-everywhere.el") (global-set-key (kbd "M-c M-d") 'rg-guix) ;;--------------------- (load-file "~/.emacs.d/keys/xah-fly-keys.el") (require 'xah-fly-keys) ;; specify a layout (xah-fly-keys-set-layout "qwerty") (xah-fly-keys 1) ;;------------------------- (load-file "~/.emacs.d/novel/nov.el") (defun enable-olivetti () "Enable `olivetti-mode' for Org mode files." (when (and buffer-file-name (string-match "\\.org\\'" buffer-file-name)) (olivetti-mode 1))) (add-hook 'org-mode-hook 'enable-olivetti) (load-file "~/.emacs.d/org-roam-templates/main.el") (load-file "~/.emacs.d/extensions/alert/alert.el") ;; needs alert (load-file "~/.emacs.d/extensions/pomidor/pomidor.el") (add-to-list 'load-path "~/.emacs.d/extensions/xeft") ;; fix a bug that doesn't let it find the xapian module (load-file "~/.emacs.d/extensions/xeft/xeft.el") (setq xeft-title-function #'file-name-nondirectory) ;; Follow symlinks. (setq xeft-recursive 'follow-symlinks)(defvar-local xeft--displayed-by-xeft-p nil) (defun xeft--eager-preview() (when-let* ((button (button-at (point))) (path (button-get button 'path))) ;; Kill previously displayed buffer. (when (window-live-p xeft--preview-window) (with-selected-window xeft--preview-window (when xeft--displayed-by-xeft-p (kill-buffer)))) ;; Show preview of current selection. (xeft--preview-file path))) (add-hook 'xeft-find-file-hook (lambda () (setq xeft--displayed-by-xeft-p t))) (advice-add 'xeft-next :after #'xeft--eager-preview) (advice-add 'xeft-previous :after #'xeft--eager-preview) (load-file "~/.emacs.d/blog/blog.el") (global-set-key (kbd "M-c C-n") 'org-roam-capture) (global-set-key (kbd "C-c q") 'org-roam-node-insert) (global-set-key (kbd "M-c C-x") 'org-capture) (global-set-key (kbd "M-c C-k") 'xeft) (defun enable-rainbow-delimiters-mode () "Enable rainbow-delimiters-mode." (rainbow-delimiters-mode 1)) (add-hook 'prog-mode-hook 'enable-rainbow-delimiters-mode) ;; Associate file extensions with major modes (add-to-list 'auto-mode-alist '("\\.scm\\'" . scheme-mode)) (add-to-list 'auto-mode-alist '("\\.cl\\'" . lisp-mode)) (add-to-list 'auto-mode-alist '("\\.el\\'" . emacs-lisp-mode)) ;; Disable menu bar, tool bar, and scroll bar (menu-bar-mode -1) (tool-bar-mode -1) (scroll-bar-mode -1) ;; Disable splash screen and startup message (setq inhibit-splash-screen t inhibit-startup-message t) ;; Show line numbers (global-display-line-numbers-mode) ;; Highlight current line (global-hl-line-mode t) ;; Clean mode-line (setq-default mode-line-format '("%e" mode-line-front-space mode-line-mule-info mode-line-client mode-line-modified mode-line-remote mode-line-frame-identification mode-line-buffer-identification " " mode-line-position (vc-mode vc-mode) " " mode-line-modes mode-line-misc-info mode-line-end-spaces)) ;; Set a clean minibuffer prompt (setq-default minibuffer-prompt-properties '(read-only t intangible t cursor-intangible t face minibuffer-prompt)) (add-to-list 'custom-theme-load-path "~/.emacs.d/themes") ;;(load-theme 'meimuna :no-confirm) (load-theme 'modus-operandi :no-confirm) (setq whitespace-style '(face tabs trailing)) (set-face-attribute 'whitespace-tab nil :background "background-color-from-theme" :foreground 'unspecified :inherit 'default) (set-face-attribute 'whitespace-trailing nil :background "background-color-from-theme" :foreground 'unspecified :inherit 'default) ;; Set font to Iosevka Comfy with aliasing (set-face-attribute 'default nil :family "Wumpus Mono Pro" :height 95 ) ;; Set the font for Kanji and Kana characters (let ((fontspec (font-spec :family "Calex Code JP" :size 16))) (set-fontset-font "fontset-default" '(#x4e00 . #x9fff) fontspec) ; Kanji range (set-fontset-font "fontset-default" '(#x3040 . #x30ff) fontspec)) ; Hiragana and Katakana range (defun my-enable-nov-and-olivetti () (interactive) (nov-mode) (olivetti-mode)) ;; Add a hook to enable nov-mode and olivetti-mode when opening EPUB files (add-hook 'nov-mode-hook 'olivetti-mode) ;; Associate EPUB files with nov-mode and olivetti-mode (add-to-list 'auto-mode-alist '("\\.epub\\'" . my-enable-nov-and-olivetti)) (add-to-list 'org-capture-templates `("wN" "Web link" entry (file+headline ,(car org-agenda-files) "Links to read later") "* %?%a \nSCHEDULED: %(org-insert-time-stamp (org-read-date nil t \"Fri\"))\n" :immediate-finish t :empty-lines 2)) (load-file "~/.emacs.d/emacs-nyxt.el" )