Starting a vanilla emacs config
This commit is contained in:
44
flake.lock
generated
44
flake.lock
generated
@ -115,6 +115,27 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"emacs-overlay": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1732759838,
|
||||||
|
"narHash": "sha256-bBghlNpHztnrUb1o7BAinp+rrWZMpaVNPrxnefhk1LY=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "emacs-overlay",
|
||||||
|
"rev": "f704f6f113bef121c7e38f807e3397f7dbe1aee0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "emacs-overlay",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"flake-compat": {
|
"flake-compat": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -683,6 +704,22 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1732632634,
|
||||||
|
"narHash": "sha256-+G7n/ZD635aN0sEXQLynU7pWMd3PKDM7yBIXvYmjABQ=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "6f6076c37180ea3a916f84928cf3a714c5207a30",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-24.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730741070,
|
"lastModified": 1730741070,
|
||||||
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
|
||||||
@ -698,7 +735,7 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_2": {
|
"nixpkgs-stable_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731797254,
|
"lastModified": 1731797254,
|
||||||
"narHash": "sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g=",
|
"narHash": "sha256-df3dJApLPhd11AlueuoN0Q4fHo/hagP75LlM5K1sz9g=",
|
||||||
@ -807,7 +844,7 @@
|
|||||||
"hyprland",
|
"hyprland",
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
],
|
],
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1731363552,
|
"lastModified": 1731363552,
|
||||||
@ -826,6 +863,7 @@
|
|||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"blocklist-hosts": "blocklist-hosts",
|
"blocklist-hosts": "blocklist-hosts",
|
||||||
|
"emacs-overlay": "emacs-overlay",
|
||||||
"home-manager-stable": "home-manager-stable",
|
"home-manager-stable": "home-manager-stable",
|
||||||
"home-manager-unstable": "home-manager-unstable",
|
"home-manager-unstable": "home-manager-unstable",
|
||||||
"hyprgrass": "hyprgrass",
|
"hyprgrass": "hyprgrass",
|
||||||
@ -834,7 +872,7 @@
|
|||||||
"hyprlock": "hyprlock",
|
"hyprlock": "hyprlock",
|
||||||
"nix-on-droid": "nix-on-droid",
|
"nix-on-droid": "nix-on-droid",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-stable": "nixpkgs-stable_2",
|
"nixpkgs-stable": "nixpkgs-stable_3",
|
||||||
"nvchad": "nvchad",
|
"nvchad": "nvchad",
|
||||||
"rust-overlay": "rust-overlay",
|
"rust-overlay": "rust-overlay",
|
||||||
"stylix": "stylix"
|
"stylix": "stylix"
|
||||||
|
@ -72,7 +72,9 @@
|
|||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
allowUnfreePredicate = (_: true);
|
allowUnfreePredicate = (_: true);
|
||||||
};
|
};
|
||||||
overlays = [ inputs.rust-overlay.overlays.default ];
|
overlays = [ inputs.rust-overlay.overlays.default
|
||||||
|
inputs.emacs-overlay.overlays.default
|
||||||
|
];
|
||||||
}));
|
}));
|
||||||
|
|
||||||
pkgs-stable = import inputs.nixpkgs-stable {
|
pkgs-stable = import inputs.nixpkgs-stable {
|
||||||
@ -232,6 +234,11 @@
|
|||||||
|
|
||||||
stylix.url = "github:danth/stylix";
|
stylix.url = "github:danth/stylix";
|
||||||
|
|
||||||
|
emacs-overlay = {
|
||||||
|
url = "github:nix-community/emacs-overlay";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
rust-overlay.url = "github:oxalica/rust-overlay";
|
rust-overlay.url = "github:oxalica/rust-overlay";
|
||||||
|
|
||||||
blocklist-hosts = {
|
blocklist-hosts = {
|
||||||
|
@ -13,6 +13,7 @@
|
|||||||
../../user/shell/sh.nix # My zsh and bash config
|
../../user/shell/sh.nix # My zsh and bash config
|
||||||
../../user/shell/cli-collection.nix # Useful CLI apps
|
../../user/shell/cli-collection.nix # Useful CLI apps
|
||||||
../../user/app/nvim/nvim.nix # My doom emacs config
|
../../user/app/nvim/nvim.nix # My doom emacs config
|
||||||
|
../../user/app/emacs # Emacs config that I'm currently rebuilding
|
||||||
../../user/app/ranger/ranger.nix # My ranger file manager config
|
../../user/app/ranger/ranger.nix # My ranger file manager config
|
||||||
../../user/app/git/git.nix # My git config
|
../../user/app/git/git.nix # My git config
|
||||||
../../user/app/keepass/keepass.nix # My password manager
|
../../user/app/keepass/keepass.nix # My password manager
|
||||||
|
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