home-manager/emacs/default.nix

66 lines
1.8 KiB
Nix
Raw Permalink Normal View History

2023-10-15 22:55:25 +00:00
{pkgs, ...}: {
programs.emacs = {
enable = true;
2023-10-15 22:55:25 +00:00
package = pkgs.emacs29-gtk3;
extraConfig = ''
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
2023-10-15 22:55:25 +00:00
(blink-cursor-mode 0)
;; scale headings in org-mode
(setq zenburn-scale-org-headlines t)
;; scale headings in outline-mode
(setq zenburn-scale-outline-headlines t)
(load-theme 'zenburn :no-confirm)
(add-to-list 'default-frame-alist
2023-10-15 22:55:25 +00:00
'(font . "Comic Mono-13"))
(global-set-key (kbd "C-c a") #'org-agenda)
2023-10-15 22:55:25 +00:00
(global-set-key (kbd "C-c f") #'recentf-open)
(global-hl-line-mode 1)
(require 'evil)
(evil-mode 1)
2023-10-15 22:55:25 +00:00
(define-key evil-normal-state-map (kbd "j") 'next-line)
(define-key evil-normal-state-map (kbd "k") 'previous-line)
(require 'evil-org)
(add-hook 'org-mode-hook 'evil-org-mode)
(evil-org-set-key-theme '(textobjects insert navigation additional shift todo heading))
(require 'evil-org-agenda)
(evil-org-agenda-set-keys)
2023-10-15 22:55:25 +00:00
(global-visual-line-mode 1)
(require 'smooth-scrolling)
(smooth-scrolling-mode 1)
2023-10-15 22:55:25 +00:00
(setq org-startup-with-inline-images 1)
(setq org-startup-indented 1)
(global-display-line-numbers-mode 1)
(setq display-line-numbers-type 'visual)
(require 'org-download)
;; Drag-and-drop to `dired`
(add-hook 'dired-mode-hook 'org-download-enable)
(setq org-image-actual-width nil)
''; # TODO move plugin setup into a seperate file to keep things organized
# also add autoloading so emacs starts faster
extraPackages = epkgs:
with epkgs; [
zenburn-theme
color-theme-tangotango
evil
evil-org
org-download
smooth-scrolling
];
};
}