add niri, emacs and stylix modules
This commit is contained in:
parent
db2ad54f74
commit
590b415352
6 changed files with 304 additions and 5 deletions
106
modules/home/programs/emacs.nix
Normal file
106
modules/home/programs/emacs.nix
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
{ ... }: {
|
||||
|
||||
flake.homeModules.emacs = { pkgs, ... }: {
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
packages = pkgs.emacs-pgtk;
|
||||
extraConfig = ''
|
||||
;; -*- lexical-binding: t; -*-
|
||||
(setq make-backup-files nil)
|
||||
|
||||
(add-to-list 'default-frame-alist '(font . "JetBrainsMono Nerd Font Mono-14"))
|
||||
|
||||
(require 'package)
|
||||
(add-to-list 'package-archives
|
||||
'("melpa-snapshots"
|
||||
.
|
||||
"https://snapshots.melpa.org/packages/")
|
||||
t)
|
||||
;; add packages
|
||||
(use-package org-view-mode :ensure t)
|
||||
(use-package envrc :ensure t)
|
||||
|
||||
(use-package nix-mode :ensure t)
|
||||
(use-package
|
||||
eldoc-box
|
||||
:ensure t
|
||||
:hook (eglot-managed-mode . eldoc-box-hover-mode)
|
||||
)
|
||||
(use-package
|
||||
elisp-autofmt
|
||||
:ensure t
|
||||
:commands (elisp-autofmt-buffer elisp-autofmt-mode)
|
||||
:hook (emacs-lisp-mode . elisp-autofmt-mode)
|
||||
:config)
|
||||
(use-package portage-modes :ensure t)
|
||||
(use-package
|
||||
corfu
|
||||
:ensure t
|
||||
:init
|
||||
(setq
|
||||
corfu-auto t
|
||||
corfu-auto-prefix 1
|
||||
corfu-auto-delay 0.2)
|
||||
(global-corfu-mode))
|
||||
|
||||
(setq tab-always-indent 'complete)
|
||||
(use-package
|
||||
cape
|
||||
:ensure t
|
||||
:bind ("C-c p" . cape-prefix-map) ;; Alternative key: M-<tab>, M-p, M-+
|
||||
:init (add-hook 'completion-at-point-functions #'cape-file))
|
||||
(setq corfu-auto-prefix 2)
|
||||
(use-package qml-mode :ensure t)
|
||||
(use-package lua-mode :ensure t)
|
||||
(use-package elcord :ensure t :init (elcord-mode))
|
||||
|
||||
(add-to-list
|
||||
'display-buffer-alist
|
||||
'("\\*compilation\\*" (display-buffer-reuse-window
|
||||
display-buffer-below-selected)
|
||||
(window-height . 0.3)))
|
||||
|
||||
|
||||
;; remove useless shit and set default opts
|
||||
(setq org-hide-emphasis-markers t)
|
||||
(setq ring-bell-function 'ignore)
|
||||
(menu-bar-mode -1)
|
||||
(tool-bar-mode -1)
|
||||
(setq display-line-numbers-type 'relative)
|
||||
(global-display-line-numbers-mode +1)
|
||||
(global-tab-line-mode 1)
|
||||
(scroll-bar-mode -1)
|
||||
(setq inhibit-splash-screen 1)
|
||||
(setq custom-file "~/.emacs.d/custom.el")
|
||||
(load custom-file 'noerror)
|
||||
|
||||
|
||||
;; lsp shit
|
||||
(add-hook 'nix-mode-hook #'eglot-ensure)
|
||||
(add-hook 'c-mode-hook #'eglot-ensure)
|
||||
(add-hook 'qml-mode-hook #'eglot-ensure)
|
||||
(with-eval-after-load 'eglot
|
||||
(add-to-list 'eglot-server-programs '(nix-mode . ("nixd")))
|
||||
(add-to-list 'eglot-server-programs '(qml-mode . ("qmlls"))))
|
||||
|
||||
;; keybindings
|
||||
(keymap-global-set "C-c f" 'eglot-format)
|
||||
(keymap-global-set "C-c t" 'term)
|
||||
(keymap-global-set "C-c c" 'compile)
|
||||
(keymap-global-set "C-c k b" 'kill-current-buffer)
|
||||
(keymap-global-set "C-c k w" 'kill-buffer-and-window)
|
||||
(keymap-global-set "C-c v" 'org-view-mode)
|
||||
(windmove-default-keybindings)
|
||||
;; replace dashes with bullets in org mode
|
||||
(font-lock-add-keywords 'org-mode
|
||||
'(("^ +\\([-*]\\) "
|
||||
(0 (prog1 () (compose-region (match-beginning 1) (match-end 1) "•"))))))
|
||||
|
||||
(setq org-view-prettify-credentials nil)
|
||||
(setq org-view-hide-keywords nil)
|
||||
(envrc-global-mode)
|
||||
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Reference in a new issue