Skip to content

Commit c0c07cf

Browse files
committed
Use alacritty for emacs
1 parent 3943dc0 commit c0c07cf

6 files changed

Lines changed: 129 additions & 62 deletions

File tree

flake.lock

Lines changed: 21 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

modules/common/setup/emacs.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ in {
1010
config = lib.mkIf cfg.enable {
1111
environment.variables.EDITOR = "/run/current-system/sw/bin/emacsclient -tc";
1212
environment.variables.ALTERNATE_EDITOR = "/run/current-system/sw/bin/emacs";
13-
environment.systemPackages = [ pkgs.binutils emacs pkgs.emacs-lsp-booster pkgs.claude-code ];# pkgs.nodePackages.mermaid-cli ];
13+
environment.systemPackages = [ pkgs.binutils emacs pkgs.emacs-lsp-booster pkgs.claude-code pkgs.alacritty ];# pkgs.nodePackages.mermaid-cli ];
1414

1515
services.emacs = {
1616
enable = true;

modules/common/setup/emacs/default.el

Lines changed: 76 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,43 @@
4040
:ensure nil
4141
:config (winner-mode 1))
4242

43+
;; pragmata pro ui borders ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
44+
(use-package window
45+
:ensure nil
46+
:init
47+
(defun my/setup-window-borders ()
48+
"Setup window borders with Pragmata Pro box drawing characters."
49+
;; Only set window border characters, don't touch global display table
50+
(set-face-attribute 'vertical-border nil :foreground "#404040" :background nil)
51+
(set-face-attribute 'window-divider nil :foreground "#404040" :background nil)
52+
(set-face-attribute 'window-divider-first-pixel nil :foreground "#404040" :background nil)
53+
(set-face-attribute 'window-divider-last-pixel nil :foreground "#404040" :background nil)
54+
(unless standard-display-table
55+
(setq standard-display-table (make-display-table)))
56+
(set-display-table-slot standard-display-table 'vertical-border (make-glyph-code ?\u2502)))
57+
:hook (after-init . my/setup-window-borders)
58+
:custom
59+
(window-divider-default-bottom-width 1)
60+
(window-divider-default-right-width 1)
61+
(window-divider-default-places 'right-only)
62+
(window-resize-pixelwise nil)
63+
(frame-resize-pixelwise nil)
64+
:config
65+
(window-divider-mode 1)
66+
(unless window-system
67+
(require 'mouse)
68+
(xterm-mouse-mode t)
69+
(global-set-key [mouse-4] 'scroll-down-line)
70+
(global-set-key [mouse-5] 'scroll-up-line))
71+
72+
;; Better mouse wheel scrolling
73+
(setq mouse-wheel-scroll-amount '(1 ((shift) . 1)))
74+
(setq mouse-wheel-progressive-speed nil)
75+
(setq mouse-wheel-follow-mouse 't)
76+
77+
;; Enable track-mouse for better mouse support
78+
(setq track-mouse t))
79+
4380
;; ivy ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
4481
(use-package vertico
4582
:ensure t
@@ -63,6 +100,7 @@
63100
:ensure t
64101
:custom
65102
(marginalia-annotators '(marginalia-annotators-heavy marginalia-annotators-light nil))
103+
(marginalia-separator " \u2502 ")
66104
:init
67105
(marginalia-mode))
68106

@@ -78,6 +116,7 @@
78116
("C-n" . corfu-next)
79117
("C-p" . corfu-previous))
80118
:custom
119+
(corfu-separator ?\u2502)
81120
(corfu-auto t)
82121
(corfu-auto-prefix 1)
83122
(corfu-commit-predicate nil)
@@ -90,6 +129,7 @@
90129
:bind (("C-x C-b" . consult-buffer)
91130
("C-s" . consult-line)
92131
("C-c C-r" . consult-ripgrep)
132+
("C-c f" . consult-flymake)
93133
("M-g i" . consult-imenu)
94134
([remap switch-to-buffer] . consult-buffer))
95135
:config
@@ -158,7 +198,8 @@
158198
:ensure t
159199
:commands (dired-sidebar-toggle-sidebar)
160200
:bind ("C-x C-n" . dired-sidebar-toggle-sidebar)
161-
:custom (setq dired-sidebar-subtree-line-prefix ""))
201+
:custom
202+
(dired-sidebar-subtree-line-prefix "\u251c\u2500"))
162203

163204
;; bindings ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
164205

@@ -171,8 +212,9 @@
171212
(setq which-key-idle-delay 0
172213
which-key-sort-order 'which-key-prefix-then-key-order)
173214
(which-key-add-key-based-replacements
174-
"C-c f" "flycheck"
215+
"C-c f" "consult-flymake"
175216
"C-c i" "unicode")
217+
(setq which-key-separator " \u2502 ")
176218
(which-key-mode))
177219

178220

@@ -269,6 +311,19 @@
269311
(mark-paragraph -1))
270312
(call-interactively 'fancy-narrow-to-region))))
271313

314+
(use-package flyover
315+
:ensure t
316+
:diminish
317+
:after flymake
318+
:hook (flymake-mode . flyover-mode)
319+
:custom
320+
(flyover-checkers '(flymake))
321+
(flyover-virtual-line-type 'line-no-arrow)
322+
(flyover-show-at-eol nil)
323+
(flyover-info-icon "")
324+
(flyover-warning-icon "")
325+
(flyover-error-icon ""))
326+
272327
(use-package eglot
273328
:demand
274329
:bind (("C-c C-l s" . eglot)
@@ -327,32 +382,9 @@
327382
(use-package claude-code-ide
328383
:ensure t
329384
:after (:all transient envrc inheritenv vterm)
330-
:bind ("C-c c" . claude-code-transient)
385+
:bind ("C-c c" . claude-code-ide-menu)
331386
:config
332-
(transient-define-prefix claude-code-transient ()
333-
"Claude Code IDE Commands"
334-
:transient-suffix 'transient--do-stay
335-
:transient-non-suffix 'transient--do-exit
336-
[
337-
["Session Management"
338-
("s" "Start Claude Code" claude-code-ide)
339-
("r" "Resume session" claude-code-ide-resume)
340-
("S" "Stop Claude Code" claude-code-ide-stop)
341-
("b" "Switch to buffer" claude-code-ide-switch-to-buffer)
342-
("l" "List sessions" claude-code-ide-list-sessions)]
343-
344-
["Interaction"
345-
("i" "Insert at mentioned" claude-code-ide-insert-at-mentioned)
346-
("e" "Send escape" claude-code-ide-send-escape)
347-
("n" "Insert newline" claude-code-ide-insert-newline)]
348-
349-
["Debug & Status"
350-
("c" "Check status" claude-code-ide-check-status)
351-
("d" "Show debug" claude-code-ide-show-debug)
352-
("D" "Clear debug" claude-code-ide-clear-debug)]
353-
354-
["Quit"
355-
("q" "Quit" transient-quit-one)]]))
387+
(claude-code-ide-emacs-tools-setup))
356388

357389
(use-package transient
358390
:demand
@@ -472,7 +504,7 @@
472504
;; .................................................................. restclient
473505
(use-package restclient
474506
:ensure t
475-
:diminish (restclient-mode . " ")
507+
:diminish (restclient-mode . " ")
476508
:mode (("\\.http\\'" . restclient-mode)
477509
("\\.rest\\'" . restclient-mode)
478510
("\\.restclient\\'" . restclient-mode)))
@@ -487,7 +519,7 @@
487519
:ensure t
488520
:mode (("\\.markdown\\'" . markdown-mode)
489521
("\\.md\\'" . markdown-mode))
490-
:diminish (markdown-mode . " "))
522+
:diminish (markdown-mode . " "))
491523

492524
;; ;; ai ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
493525
;; (use-package gptel
@@ -680,10 +712,12 @@
680712

681713
;; terminal ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
682714
(use-package vterm
715+
:demand
683716
:ensure t
684717
:hook (vterm-mode . (lambda ()
685718
(setq-local global-hl-line-mode nil)
686719
(setq-local line-spacing nil)))
720+
(add-hook 'vterm-mode-hook #'my/setup-window-borders)
687721
:bind ("C-c C-d" . peel/vterm-cd)
688722
:custom
689723
(vterm-max-scrollback 100000)
@@ -745,6 +779,15 @@
745779
("M-+" . hs-show-all)
746780
("M--" . hs-hide-level)))
747781

782+
(use-package ediff
783+
:ensure nil
784+
:init
785+
(defun peel/kill-ediff-buffers ()
786+
(kill-buffer ediff-buffer-A)
787+
(kill-buffer ediff-buffer-B)
788+
(kill-buffer ediff-buffer-C))
789+
(add-hook 'ediff-quit-hook 'peel/kill-ediff-buffers))
790+
748791
;; ui ▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁
749792
;; ...................................................................... themes
750793
(use-package emacs
@@ -871,13 +914,14 @@
871914

872915
(setq-default
873916
mode-line-format
917+
;; Enhanced mode line with box drawing
874918
(list
875-
'(:eval (propertize " %b " 'face 'font-lock-keyword-face)) ;; buffer
919+
'(:eval (propertize "\u2524 %b " 'face 'font-lock-keyword-face)) ;; buffer
876920
'(:eval (propertize "%* " 'face 'font-lock-warning-face)) ;; ! ro | * mod | - clean
877-
"%l:%c "
921+
"\u251c %l:%c \u2502 "
878922
'(:eval (propertize "%m" 'face 'font-lock-comment-face)) ;; major
923+
" \u2502"
879924
'(:eval (vc-status-mode-line))
880-
'(:eval (propertize (cl-reduce 'ww/diff-hl-reducer (diff-hl-changes) :initial-value '(0 0 0))) 'face 'font-lock-comment-face)
881925
'(global-mode-string global-mode-string))))
882926

883927
(setq backup-by-copying t

modules/common/setup/emacs/default.nix

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ pkgs.emacsWithPackagesFromUsePackage {
3232
claude-code-ide = elisp (pkgs.fetchFromGitHub {
3333
owner = "manzaltu";
3434
repo = "claude-code-ide.el";
35-
rev = "940f2d147f027309539d0f9f382e5300546d9303";
36-
sha256 = "sha256-SkNKQ/vN9HJBdvxQozbmqVJNgAxKReZbJA72D8bJhIA=";
35+
rev = "923206533a59ee8726674915c259aaba945391db";
36+
sha256 = "sha256-eGihvj0syCbINN5XKyQpOq3IxkAMT/xtqvdUn4r5I1s=";
3737
}) "claude-code-ide";
3838
};
3939
extraEmacsPackages = epkgs: with epkgs; [

modules/common/setup/home.nix

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{config, pkgs, stdenv, lib, ...}:
1+
{config, pkgs, stdenv, lib, ...}:
22

33
let
44
common = {
@@ -10,10 +10,37 @@ let
1010
enableBashIntegration = true;
1111
nix-direnv.enable = true;
1212
};
13+
programs.alacritty = {
14+
enable = true;
15+
theme = "gotham";
16+
settings = {
17+
keyboard.bindings = [{ key = "Slash"; mods = "Control"; chars = "\\u001f"; }];
18+
window = {
19+
option_as_alt = "Both";
20+
decorations = "buttonless";
21+
padding = {
22+
x = 10;
23+
y = 10;
24+
};
25+
dynamic_padding = true;
26+
};
27+
mouse.hide_when_typing = true;
28+
font = {
29+
size = 20;
30+
offset.y = 8;
31+
normal = {
32+
family = "PragmataPro";
33+
style = "Regular";
34+
};
35+
};
36+
};
37+
};
1338
home.packages = [
1439
pkgs.mpv
1540
pkgs.awscli
1641
pkgs._1password-cli
42+
pkgs.docker
43+
pkgs.colima
1744
];
1845
};
1946
nixos = lib.mkIf pkgs.stdenv.hostPlatform.isLinux {

modules/darwin/setup/brew.nix

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,7 @@ in {
1616
"1password"
1717
"alfred"
1818
"dash"
19-
"docker"
2019
"openaudible"
21-
"plexamp"
22-
# "utm"
23-
# "vmware-fusion"
2420
"zoom"
2521
];
2622
brews = [
@@ -29,7 +25,7 @@ in {
2925
masApps = {
3026
# "Slack" = 803453959;
3127
# "1Password" = 1333542190;
32-
"Endel" = 1484348796;
28+
# "Endel" = 1484348796;
3329
"PopClip" = 445189367;
3430
"Tailscale" = 1475387142;
3531
};

0 commit comments

Comments
 (0)