From 2e6aa91f360999cd64c135ebf9ac2bda9c1e13c1 Mon Sep 17 00:00:00 2001 From: Thiago Sposito Date: Sat, 13 Dec 2025 11:11:01 -0300 Subject: [PATCH] feat: initial emacs config --- home-manager/emacs/default.nix | 37 ++++++++++++++++++ home-manager/emacs/init.el | 70 ++++++++++++++++++++++++++++++++++ home-manager/home.nix | 3 +- home-manager/zsh.nix | 6 +-- 4 files changed, 111 insertions(+), 5 deletions(-) create mode 100644 home-manager/emacs/default.nix create mode 100644 home-manager/emacs/init.el diff --git a/home-manager/emacs/default.nix b/home-manager/emacs/default.nix new file mode 100644 index 0000000..417400e --- /dev/null +++ b/home-manager/emacs/default.nix @@ -0,0 +1,37 @@ +{ pkgs, ... }: + +{ + home.packages = with pkgs; [ + emacs-all-the-icons-fonts + sbcl + ]; + programs.emacs = { + enable = true; + extraPackages = epkgs: with epkgs; [ + use-package + magit + org + org-roam + evil + evil-collection + which-key + counsel + ivy + swiper + doom-themes + nord-theme + projectile + flycheck + company + lsp-mode + lsp-ui + dap-mode + treemacs + treemacs-evil + treemacs-projectile + sly + ]; + extraConfig = builtins.readFile ./init.el; + }; +} + diff --git a/home-manager/emacs/init.el b/home-manager/emacs/init.el new file mode 100644 index 0000000..e52a4d7 --- /dev/null +++ b/home-manager/emacs/init.el @@ -0,0 +1,70 @@ +(require 'package) +(package-initialize) + +(eval-when-compile + (require 'use-package)) + +(use-package evil + :init + (evil-mode 1)) + +(use-package evil-collection + :after evil + :config + (evil-collection-init)) + +(use-package which-key + :config + (which-key-mode)) + +(use-package ivy + :config + (ivy-mode 1)) + +(use-package counsel + :after ivy + :config + (counsel-mode 1)) + +(use-package swiper + :after ivy) + +(use-package doom-themes + :config + (load-theme 'doom-one t)) + +(use-package projectile + :config + (projectile-mode 1)) + +(use-package company + :config + (global-company-mode)) + +(use-package flycheck + :config + (global-flycheck-mode)) + +(use-package lsp-mode + :hook ((python-mode . lsp) + (rust-mode . lsp) + (go-mode . lsp)) + :commands lsp) + +(use-package lsp-ui + :after lsp-mode + :commands lsp-ui-mode) + +(use-package treemacs + :commands treemacs) + +(use-package treemacs-evil + :after (treemacs evil)) + +(use-package treemacs-projectile + :after (treemacs projectile)) + +(use-package sly + :config + (setq inferior-lisp-program "sbcl")) + diff --git a/home-manager/home.nix b/home-manager/home.nix index 8f881a1..17e581c 100644 --- a/home-manager/home.nix +++ b/home-manager/home.nix @@ -7,6 +7,7 @@ imports = [ # ./backup.nix ./custom.nix + ./emacs ./gnome ./icons.nix ./nvim @@ -30,10 +31,10 @@ code-cursor direnv distrobox - emacs emacs-all-the-icons-fonts fira-code firefox + guile hwinfo inkscape keymapp diff --git a/home-manager/zsh.nix b/home-manager/zsh.nix index f2660dd..5a2ab49 100644 --- a/home-manager/zsh.nix +++ b/home-manager/zsh.nix @@ -1,7 +1,4 @@ { - config, - lib, - pkgs, ... }: { @@ -10,7 +7,7 @@ source = ./scripts/lsgpu.sh; executable = true; }; - + programs.zsh = { enable = true; autosuggestion.enable = true; @@ -20,6 +17,7 @@ export GPG_TTY=$(tty) export EDITOR="nvim -n -c 'set noswapfile nobackup nowritebackup'" export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket) + export PATH="$HOME/.config/emacs/bin:$PATH" '';