;; -*- lexical-binding: t -*- (use-package emacs :init (setq frame-resize-pixelwise t window-resize-pixelwise t frame-inhibit-implied-resize t inhibit-splash-screen t inhibit-startup-screen t initial-scratch-message nil) (defun crm-indicator (args) (cons (format "[CRM%s] %s" (replace-regexp-in-string "\\`\\[.*?]\\*\\|\\[.*?]\\*\\'" "" crm-separator) (car args)) (cdr args))) (advice-add #'completing-read-multiple :filter-args #'crm-indicator) (setq minibuffer-prompt-properties '(read-only t cursor-intangible t face minibuffer-prompt)) (add-hook 'minibuffer-setup-hook #'cursor-intangible-mode) :custom (menu-bar-mode nil) (tool-bar-mode nil) (scroll-bar-mode nil) (delete-selection-mode t) (enable-recursive-buffer t) (read-extended-command-predicate #'command-completion-default-include-p) (tab-always-indent 'complete) (mode-line-format nil) :hook (prog-mode . display-line-numbers-mode)) (use-package nano-modeline :hook ((prog-mode . nano-modeline-prog-mode) (text-mode . nano-modeline-text-mode) (org-mode . nano-modeline-org-mode) (pdf-view-mode . nano-modeline-pdf-mode) (mu4e-headers-mode . nano-modeline-mu4e-headers-mode) (mu4e-view-mode . nano-modeline-mu4e-message-mode) (elfeed-show-mode . nano-modeline-elfeed-entry-mode) (elfeed-search-mode . nano-modeline-elfeed-search-mode) (term-mode . nano-modeline-term-mode) (xwidget-webkit-mode . nano-modeline-xwidget-mode) (messages-buffer-mode . nano-modeline-message-mode) (org-capture-mode . nano-modeline-org-capture-mode) (org-agenda-mode . nano-modeline-org-agenda-mode))) (use-package ivy :custom (ivy-use-virtual-buffers t) :bind (("C-s" . swiper-isearch) ("C-c C-r" . ivy-resume) ("" . ivy-resume) ("M-x" . counsel-M-x) ("C-x C-f" . counsel-find-file) (" f" . counsel-describe-function) (" v" . counsel-describe-variable) (" o" . counsel-describe-symbol) (" l" . counsel-find-library) (" i" . counsel-info-lookup-symbol) (" u" . counsel-unicode-char) ("C-c g" . counsel-git) ("C-c j" . counsel-git-grep) ("C-c k" . counsel-ag) ("C-x l" . counsel-locate) ("C-S-o" . counsel-rhythmbox) :map minibuffer-local-map ("C-r" . counsel-minibuffer-history)) :hook after-init) (use-package savehist :hook after-init) (use-package which-key :hook after-init) (use-package base16-theme :config (load-theme 'base16-dracula t)) (use-package nix-mode :mode "\\.nix\\'") (use-package rust-mode :mode "\\.rs\\'") (when (executable-find "direnv") (use-package envrc :hook after-init)) (use-package eglot :hook (prog-mode . eglot-ensure)) (use-package qml-mode :mode "\\.qml\\'") (use-package haskell-mode :mode "\\.hs\\'") (use-package python :custom (python-indent-offset 4)) (use-package cc-mode :custom (c-basic-offset 4)) (use-package nushell-mode :mode "\\.nu\\'") (use-package tuareg :mode "\\.ml\\'") (use-package nerd-icons :custom (nerd-icons-font-family "Symbols Nerd Font Mono")) (provide 'config)