new-guix-dotfiles/home/init.el
2024-04-04 02:35:23 -05:00

257 lines
9.6 KiB
EmacsLisp

(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
(use-package parinfer-rust
:custom ((parinfer-rust-library-directory "/home/skylar/.guix-home/profile/lib/")
(parinfer-rust-library "/home/skylar/.guix-home/profile/lib/libparinfer_rust.so"))
:hook (emacs-lisp-mode scheme-mode lisp-mode geiser-mode))
(use-package ivy
:config (ivy-mode t))
(use-package counsel
:config (counsel-mode t))
(use-package swiper
:bind ("C-x /" . swiper))
(use-package company
:config (global-company-mode t))
(use-package company-quickhelp
:config (company-quickhelp-mode 1))
(use-package mu4e
:config (setq
mu4e-sent-folder "/posteo/Sent"
mu4e-drafts-folder "/posteo/Drafts"
mu4e-trash-folder "/posteo/Trash"
mu4e-get-mail-command "offlineimap"
mu4e-update-interval 3000))
(use-package dracula-theme
:config (load-theme 'dracula :no-confirm))
(use-package org
:hook (org-superstar-mode))
(use-package poly-org
:config
(pm-around-advice #'org-babel-tangle #'polymode-with-current-base-buffer)
(pm-around-advice #'org-babel-demarcate-block #'polymode-with-current-base-buffer)
:bind (:map poly-org-mode-map
("C-c C-v C-t" . org-babel-tangle)
("C-c C-v t" . org-babel-tangle)
("C-c C-v C-d" . org-babel-demarcate-block)
("C-c C-v d" . org-babel-demarcate-block))
:hook ((poly-org-mode . (lambda () (setq-local org-src-fontify-natively t)))
(org-mode . poly-org-mode)))
(use-package geiser-guile
:config (add-to-list 'geiser-guile-load-path "~/software/guix"))
(use-package yasnippet
:config (add-to-list 'yas-snippet-dirs "~/software/guix/etc/snippets/yas/"))
(setq user-full-name "Skylar Hill"
user-mail-address "stellarskylark@posteo.net")
(load-file "~/software/guix/etc/copyright.el")
(use-package smtpmail
:config (setq message-send-mail-function 'smtpmail-send-it
smtpmail-stream-type 'ssl
smtpmail-smtp-server "posteo.de"
smtpmail-smtp-service 465))
(use-package ligature
:config
;; Enable the "www" ligature in every possible major mode
(ligature-set-ligatures 't '("www"))
;; Enable traditional ligature support in eww-mode, if the
;; `variable-pitch' face supports it
(ligature-set-ligatures 'eww-mode '("ff" "fi" "ffi"))
;; Enable all Cascadia and Fira Code ligatures in programming modes
(ligature-set-ligatures 'prog-mode
'(;; == === ==== => =| =>>=>=|=>==>> ==< =/=//=// =~
;; =:= =!=
("=" (rx (+ (or ">" "<" "|" "/" "~" ":" "!" "="))))
;; ;; ;;;
(";" (rx (+ ";")))
;; && &&&
("&" (rx (+ "&")))
;; !! !!! !. !: !!. != !== !~
("!" (rx (+ (or "=" "!" "\." ":" "~"))))
;; ?? ??? ?: ?= ?.
("?" (rx (or ":" "=" "\." (+ "?"))))
;; %% %%%
("%" (rx (+ "%")))
;; |> ||> |||> ||||> |] |} || ||| |-> ||-||
;; |->>-||-<<-| |- |== ||=||
;; |==>>==<<==<=>==//==/=!==:===>
("|" (rx (+ (or ">" "<" "|" "/" ":" "!" "}" "\]"
"-" "="))))
;; \\ \\\ \/
("\\" (rx (or "/" (+ "\\"))))
;; ++ +++ ++++ +>
("+" (rx (or ">" (+ "+"))))
;; :: ::: :::: :> :< := :// ::=
(":" (rx (or ">" "<" "=" "//" ":=" (+ ":"))))
;; // /// //// /\ /* /> /===:===!=//===>>==>==/
("/" (rx (+ (or ">" "<" "|" "/" "\\" "\*" ":" "!"
"="))))
;; .. ... .... .= .- .? ..= ..<
("\." (rx (or "=" "-" "\?" "\.=" "\.<" (+ "\."))))
;; -- --- ---- -~ -> ->> -| -|->-->>->--<<-|
("-" (rx (+ (or ">" "<" "|" "~" "-"))))
;; *> */ *) ** *** ****
("*" (rx (or ">" "/" ")" (+ "*"))))
;; www wwww
("w" (rx (+ "w")))
;; <> <!-- <|> <: <~ <~> <~~ <+ <* <$ </ <+> <*>
;; <$> </> <| <|| <||| <|||| <- <-| <-<<-|-> <->>
;; <<-> <= <=> <<==<<==>=|=>==/==//=!==:=>
;; << <<< <<<<
("<" (rx (+ (or "\+" "\*" "\$" "<" ">" ":" "~" "!"
"-" "/" "|" "="))))
;; >: >- >>- >--|-> >>-|-> >= >== >>== >=|=:=>>
;; >> >>> >>>>
(">" (rx (+ (or ">" "<" "|" "/" ":" "=" "-"))))
;; #: #= #! #( #? #[ #{ #_ #_( ## ### #####
("#" (rx (or ":" "=" "!" "(" "\?" "\[" "{" "_(" "_"
(+ "#"))))
;; ~~ ~~~ ~= ~- ~@ ~> ~~>
("~" (rx (or ">" "=" "-" "@" "~>" (+ "~"))))
;; __ ___ ____ _|_ __|____|_
("_" (rx (+ (or "_" "|"))))
;; Fira code: 0xFF 0x12
("0" (rx (and "x" (+ (in "A-F" "a-f" "0-9")))))
;; Fira code:
"Fl" "Tl" "fi" "fj" "fl" "ft"
;; The few not covered by the regexps.
"{|" "[|" "]#" "(*" "}#" "$>" "^="))
;; Enables ligature checks globally in all buffers. You can also do it
;; per mode with `ligature-mode'.
(global-ligature-mode t))
(use-package all-the-icons-dired
:hook (dired-mode . all-the-icons-dired-mode))
(require 'telephone-line)
(defface skylark-accent '((t (:background "#50fa7b" :foreground "#282a36"))) "")
(setq telephone-line-faces
'((skylark-accent . (skylark-accent . skylark-accent))
(accent . (telephone-line-accent-active . telephone-line-accent-inactive))
(nil . (mode-line . mode-line-inactive))))
(setq telephone-line-lhs
'((skylark-accent . (telephone-line-meow-tag-segment))
(accent . (telephone-line-vc-segment
telephone-line-erc-modified-channels-segment
telephone-line-process-segment))
(nil . (telephone-line-minor-mode-segment
telephone-line-buffer-segment))))
(setq telephone-line-rhs
'((nil . (telephone-line-misc-info-segment))
(accent . (telephone-line-major-mode-segment))
(skylark-accent . (telephone-line-airline-position-segment))))
(telephone-line-mode 1)
(setq frame-resize-pixelwise t)
(setq window-resize-pixelwise t)
(setq-default indent-tabs-mode nil)
(add-to-list 'default-frame-alist
'(font . "Fira Code"))
(add-to-list 'default-frame-alist
'(alpha-background . 80))
(require 'meow)
(defun meow-setup ()
(setq meow-cheatsheet-layout meow-cheatsheet-layout-qwerty)
(meow-motion-overwrite-define-key
'("j" . meow-next)
'("k" . meow-prev)
'("<escape>" . ignore))
(meow-leader-define-key
;; SPC j/k will run the original command in MOTION state.
'("j" . "H-j")
'("k" . "H-k")
;; Use SPC (0-9) for digit arguments.
'("1" . meow-digit-argument)
'("2" . meow-digit-argument)
'("3" . meow-digit-argument)
'("4" . meow-digit-argument)
'("5" . meow-digit-argument)
'("6" . meow-digit-argument)
'("7" . meow-digit-argument)
'("8" . meow-digit-argument)
'("9" . meow-digit-argument)
'("0" . meow-digit-argument)
'("/" . meow-keypad-describe-key)
'("?" . meow-cheatsheet))
(meow-normal-define-key
'("0" . meow-expand-0)
'("9" . meow-expand-9)
'("8" . meow-expand-8)
'("7" . meow-expand-7)
'("6" . meow-expand-6)
'("5" . meow-expand-5)
'("4" . meow-expand-4)
'("3" . meow-expand-3)
'("2" . meow-expand-2)
'("1" . meow-expand-1)
'("-" . negative-argument)
'(";" . meow-reverse)
'("," . meow-inner-of-thing)
'("." . meow-bounds-of-thing)
'("[" . meow-beginning-of-thing)
'("]" . meow-end-of-thing)
'("a" . meow-append)
'("A" . meow-open-below)
'("b" . meow-back-word)
'("B" . meow-back-symbol)
'("c" . meow-change)
'("d" . meow-delete)
'("D" . meow-backward-delete)
'("e" . meow-next-word)
'("E" . meow-next-symbol)
'("f" . meow-find)
'("g" . meow-cancel-selection)
'("G" . meow-grab)
'("h" . meow-left)
'("H" . meow-left-expand)
'("i" . meow-insert)
'("I" . meow-open-above)
'("j" . meow-next)
'("J" . meow-next-expand)
'("k" . meow-prev)
'("K" . meow-prev-expand)
'("l" . meow-right)
'("L" . meow-right-expand)
'("m" . meow-join)
'("n" . meow-search)
'("o" . meow-block)
'("O" . meow-to-block)
'("p" . meow-yank)
'("q" . meow-quit)
'("Q" . meow-goto-line)
'("r" . meow-replace)
'("R" . meow-swap-grab)
'("s" . meow-kill)
'("t" . meow-till)
'("u" . meow-undo)
'("U" . meow-undo-in-selection)
'("v" . meow-visit)
'("w" . meow-mark-word)
'("W" . meow-mark-symbol)
'("x" . meow-line)
'("X" . meow-goto-line)
'("y" . meow-save)
'("Y" . meow-sync-grab)
'("z" . meow-pop-selection)
'("'" . repeat)
'("<escape>" . ignore)))
(meow-setup)
(meow-global-mode 1)
(customize-set-variable 'meow-use-clipboard t)