2023-10-15 22:55:25 +00:00
|
|
|
{pkgs, ...}: {
|
2023-10-14 03:02:06 +00:00
|
|
|
programs.emacs = {
|
|
|
|
enable = true;
|
2023-10-15 22:55:25 +00:00
|
|
|
package = pkgs.emacs29-gtk3;
|
2023-10-15 03:43:07 +00:00
|
|
|
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)
|
|
|
|
|
2023-10-15 03:43:07 +00:00
|
|
|
(add-to-list 'default-frame-alist
|
2023-10-15 22:55:25 +00:00
|
|
|
'(font . "Comic Mono-13"))
|
2023-10-15 03:43:07 +00:00
|
|
|
|
|
|
|
(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)
|
2023-10-15 03:43:07 +00:00
|
|
|
|
|
|
|
(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)
|
2023-10-15 03:43:07 +00:00
|
|
|
|
|
|
|
(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)
|
|
|
|
|
2023-10-15 03:43:07 +00:00
|
|
|
(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
|
|
|
|
];
|
2023-10-14 03:02:06 +00:00
|
|
|
};
|
|
|
|
}
|