emacs setup
This commit is contained in:
66
packages/emacs/default.nix
Normal file
66
packages/emacs/default.nix
Normal file
@@ -0,0 +1,66 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
emacsWithPackages = (pkgs.emacsPackagesFor pkgs.emacs).emacsWithPackages;
|
||||
in {
|
||||
programs.emacs = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
(load-theme 'catppuccin :no-confirm)
|
||||
(global-display-line-numbers-mode 1)
|
||||
(telephone-line-mode 1)
|
||||
|
||||
(require 'nix-mode)
|
||||
(add-to-list 'auto-mode-alist '("\\.nix\\'" . nix-mode))
|
||||
|
||||
(require 'evil)
|
||||
|
||||
(evil-mode 1)
|
||||
|
||||
(require 'smex)
|
||||
(smex-initialize)
|
||||
|
||||
(global-set-key (kbd "M-x") 'smex)
|
||||
(global-set-key (kbd "M-X") 'smex-major-mode-commands)
|
||||
;; This is your old M-x.
|
||||
(global-set-key (kbd "C-c C-c M-x") 'execute-extended-command)
|
||||
|
||||
|
||||
(add-hook 'dart-mode-hook 'lsp)
|
||||
(add-hook 'prog-mode-hook #'rainbow-delimiters-mode)
|
||||
|
||||
(setq gc-cons-threshold (* 100 1024 1024)
|
||||
read-process-output-max (* 1024 1024))
|
||||
|
||||
;;Exit insert mode by pressing j and then k quickly
|
||||
(setq key-chord-two-keys-delay 0.5)
|
||||
(key-chord-define evil-insert-state-map "jk" 'evil-normal-state)
|
||||
(key-chord-mode 1)
|
||||
|
||||
'';
|
||||
package = emacsWithPackages (epkgs: (with epkgs.melpaStablePackages; [
|
||||
catppuccin-theme
|
||||
])
|
||||
++ (with epkgs.melpaPackages; [
|
||||
evil
|
||||
nix-mode
|
||||
dart-mode
|
||||
lsp-dart
|
||||
lsp-treemacs
|
||||
flycheck
|
||||
lsp-mode
|
||||
company
|
||||
rainbow-delimiters
|
||||
undo-fu
|
||||
key-chord
|
||||
telephone-line
|
||||
smex
|
||||
ranger
|
||||
])
|
||||
++ (with epkgs.elpaPackages; [
|
||||
undo-tree
|
||||
])
|
||||
++ [ pkgs.notmuch ]);
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user