Starting a vanilla emacs config

This commit is contained in:
Emmet
2024-11-28 20:11:59 -06:00
parent 9637ddbb8c
commit 0dbe546122
5 changed files with 176 additions and 4 deletions

View File

@@ -0,0 +1,26 @@
{ config, pkgs, ... }:
{
home.packages = [
(pkgs.emacsWithPackagesFromUsePackage {
config = ./init.el;
package = pkgs.emacs-pgtk;
alwaysEnsure = true;
extraEmacsPackages = epkgs: with epkgs; [
command-log-mode
vertico hotfuzz
evil evil-collection evil-snipe evil-owl evil-vimish-fold
doom-modeline
nerd-icons nerd-icons-dired nerd-icons-corfu
nerd-icons-ibuffer nerd-icons-completion
yasnippet
projectile treemacs
magit magit-file-icons
vterm
gdscript-mode
nix-mode
python python-mode
];
})
];
home.file.".config/emacs/init.el".source = ./init.el;
}

100
user/app/emacs/init.el Normal file
View File

@@ -0,0 +1,100 @@
(set-face-attribute 'default nil :height 150) ; Bigger text
(set-face-attribute 'default nil :family "Intel One Mono") ; Font
(setq inhibit-startup-message t)
(scroll-bar-mode -1) ; Disable visible scrollbar
(tool-bar-mode -1) ; Disable the toolbar
(tooltip-mode -1) ; Disable tooltips
(set-fringe-mode 10) ; Give some breathing room
(menu-bar-mode -1) ; Disable the menu bar
(load-theme 'wombat)
(set-frame-parameter nil 'alpha-background 85)
(add-to-list 'default-frame-alist '(alpha-background . 85))
;; Make ESC quit prompts
(global-set-key (kbd "<escape>") 'keyboard-escape-quit)
(setq scroll-preserve-screen-position t)
(setq scroll-conservatively 101)
(require 'use-package)
(setq use-package-always-ensure t)
(use-package command-log-mode)
;; Enable vertico
(use-package vertico
:custom
(vertico-scroll-margin 0) ;; Different scroll margin
(vertico-count 20) ;; Show more candidates
(vertico-resize nil) ;; Grow and shrink the Vertico minibuffer
(vertico-cycle t) ;; Enable cycling for `vertico-next/previous'
:init
(vertico-mode))
(use-package hotfuzz
:config
(setq completion-styles '(flex hotfuzz)))
;; Enable vim
(use-package evil
:config
(evil-set-leader nil (kbd "C-SPC"))
(evil-set-leader 'normal (kbd "SPC"))
(evil-set-leader 'motion (kbd "SPC"))
(evil-mode 1))
(use-package evil-collection
:init
(setq evil-want-keybinding nil)
(evil-collection-init))
(evil-define-key 'normal 'global (kbd "<leader>.") 'find-file)
(evil-define-key 'normal 'global (kbd "<leader>bi") 'ibuffer)
(evil-define-key 'normal 'global (kbd "<leader>bn") 'next-buffer)
(evil-define-key 'normal 'global (kbd "<leader>bp") 'previous-buffer)
(evil-define-key 'normal 'global (kbd "<leader>pp") 'projectile-switch-project)
(evil-define-key 'normal 'global (kbd "<leader>pf") 'projectile-find-file)
(evil-define-key 'normal 'global (kbd "<leader>pa") 'projectile-add-known-project)
(evil-define-key 'normal 'global (kbd "<leader>gg") 'magit-status)
(evil-define-key 'normal 'global (kbd "<leader>hv") 'describe-variable)
(evil-define-key 'normal 'global (kbd "<leader>hf") 'describe-function)
(evil-define-key 'normal 'global (kbd "<leader>hk") 'describe-key)
(evil-define-key 'normal 'global (kbd "<leader>hF") 'describe-face)
(evil-define-key 'normal 'global (kbd "<leader>ws") 'evil-window-split)
(evil-define-key 'normal 'global (kbd "<leader>wv") 'evil-window-vsplit)
(evil-define-key 'normal 'global (kbd "<leader>wd") 'evil-window-delete)
(evil-define-key 'normal 'global (kbd "<leader>wj") 'evil-window-down)
(evil-define-key 'normal 'global (kbd "<leader>wk") 'evil-window-up)
(evil-define-key 'normal 'global (kbd "<leader>wh") 'evil-window-left)
(evil-define-key 'normal 'global (kbd "<leader>wl") 'evil-window-right)
(global-set-key (kbd "C-j") 'evil-window-down)
(global-set-key (kbd "C-k") 'evil-window-up)
(global-set-key (kbd "C-h") 'evil-window-left)
(global-set-key (kbd "C-l") 'evil-window-right)
(setq magit-bury-buffer-function 'magit-restore-window-configuration)
(setq magit-display-buffer-function
(lambda (buffer)
(display-buffer
buffer (if (and (derived-mode-p 'magit-mode)
(memq (with-current-buffer buffer major-mode)
'(magit-process-mode
magit-revision-mode
magit-diff-mode
magit-stash-mode
magit-status-mode)))
nil
'(display-buffer-same-window)))))
(use-package nerd-icons
:ensure t)
(use-package doom-modeline
:ensure t
:init (doom-modeline-mode 1)
:custom ((doom-modeline-height 15)))