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"
'';