Starting a vanilla emacs config
This commit is contained in:
26
user/app/emacs/default.nix
Normal file
26
user/app/emacs/default.nix
Normal 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
100
user/app/emacs/init.el
Normal 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)))
|
Reference in New Issue
Block a user