111 lines
3.4 KiB
EmacsLisp
111 lines
3.4 KiB
EmacsLisp
;;; 05-basic.el --- Setup some basics. -*- no-byte-compile: t; lexical-binding: t; -*-
|
||
|
||
;; Setup the font
|
||
(set-face-attribute 'default nil :height 120 :font "Iosevka Nerd Font" :weight 'normal)
|
||
|
||
;; I use narrowing, I am a mature emacs user! I do not need the hand-holding
|
||
;; (usually).
|
||
(put 'narrow-to-region 'disabled nil)
|
||
|
||
;; This package provides which-key, which is a minor mode for Emacs
|
||
;; that displays the key bindings following your currently entered
|
||
;; incomplete command (a prefix) in a popup.
|
||
(use-package which-key
|
||
:ensure t
|
||
:diminish which-key-mode
|
||
:config
|
||
(which-key-mode))
|
||
|
||
;; Pixel perfect scrolling
|
||
(pixel-scroll-precision-mode)
|
||
;; Display time
|
||
(display-time-mode)
|
||
(show-paren-mode +1) ; Paren match highlighting
|
||
;; Winner mode is a global minor mode that records the changes in the
|
||
;; window configuration (i.e. how the frames are partitioned into
|
||
;; windows) so that the changes can be "undone" using the command
|
||
;; ‘winner-undo’.
|
||
(winner-mode 1)
|
||
|
||
;; Configure Emacs to ask for confirmation before exiting
|
||
(setq confirm-kill-emacs 'y-or-n-p)
|
||
|
||
;; This package provides a complete git integration
|
||
(use-package magit
|
||
:ensure t
|
||
:defer t
|
||
:commands (magit))
|
||
|
||
(electric-indent-mode)
|
||
(electric-pair-mode)
|
||
|
||
(use-package modus-themes
|
||
:ensure t
|
||
:defer nil
|
||
:config
|
||
(load-theme 'modus-operandi t))
|
||
|
||
(use-package hbdh
|
||
:straight (hbdh :type git :host github :repo "zzhjerry/hbdh-mode")
|
||
:config (hbdh-mode))
|
||
|
||
(defun my/hbdh-highlight-line ()
|
||
"Activate hbdh, dim text outside of current line"
|
||
(interactive)
|
||
(let ((point-beginning (line-beginning-position))
|
||
(point-end (line-end-position)))
|
||
;; note that those are internal functions
|
||
;; probably should use hbdh activation commands instead of this
|
||
(hbdh--activate-overlay point-beginning point-end)
|
||
(hbdh--rewrite-region-face)))
|
||
|
||
(setq hbdh-mode-map (make-sparse-keymap))
|
||
(define-key hbdh-mode-map "a" 'hbdh-activate-on-region)
|
||
(define-key hbdh-mode-map "d" 'hbdh-deactivate)
|
||
(define-key hbdh-mode-map "l" 'my/hbdh-highlight-line)
|
||
|
||
(global-set-key "\C-ch" hbdh-mode-map)
|
||
|
||
;; A must have for any NixOS user
|
||
(use-package direnv
|
||
:ensure t
|
||
:defer nil
|
||
:config (direnv-mode))
|
||
|
||
;; RSS reader
|
||
(use-package
|
||
elfeed
|
||
:ensure t
|
||
:defer t
|
||
:commands (elfeed)
|
||
:init (setq elfeed-feeds
|
||
'((http://feeds.nightvalepresents.com/welcometonightvalepodcast
|
||
nightvale)
|
||
("https://sachachua.com/blog/category/emacs-news/feed"
|
||
emacs)
|
||
("https://planet.emacslife.com/atom.xml"
|
||
emacs)
|
||
("https://kagi.com/smallweb/appreciated"
|
||
small-web)
|
||
("https://kagi.com/api/v1/smallweb/feed/?gh"
|
||
small-web)
|
||
("https://scour.ing/@DiToast/rss.xml"
|
||
scour)))
|
||
:bind (("C-c f" . elfeed)))
|
||
|
||
;; Setting this to true makes it so that Emacs saves existing clipboard text
|
||
;; into kill ring before replacing it.
|
||
(setq save-interprogram-paste-before-kill t)
|
||
|
||
;; Compile command allows to easily run noninteractive commands, among other
|
||
;; things, like, you know, compiling stuff.
|
||
(keymap-global-set "C-c l" 'compile)
|
||
(keymap-global-set "C-c C-l" 'recompile)
|
||
|
||
;; When set to true, dired will try to guess the target directory. Use this by
|
||
;; first splitting the window in two, selecting the destination in a new buffer,
|
||
;; and use 'C' to copy the file/directory.
|
||
(setq dired-dwim-target t)
|
||
|
||
;;; 05-basic.el ends here
|