Skip to content

Commit f426f12

Browse files
committed
emacs: misc updates
* Remove copilot override * Add copilot-chat * Use tecosaur's org-mode with upgraded org-latex-preview * Use serif font as default for variable width * Add org-appear-mode * Tweak org headline and title face attributes
1 parent f7de349 commit f426f12

File tree

5 files changed

+88
-63
lines changed

5 files changed

+88
-63
lines changed

modules/common/home-manager/profiles/base/emacs/default.nix

Lines changed: 7 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -28,36 +28,9 @@
2828

2929
programs.emacs.extraPackages = epkgs: [ epkgs.treesit-grammars.with-all-grammars ];
3030

31-
programs.emacs.overrides =
32-
final: prev:
33-
let
34-
inherit (final) trivialBuild;
35-
in
36-
{
37-
38-
copilot = trivialBuild {
39-
pname = "copilot";
40-
version = "0-unstable-2024-09-25";
41-
src = pkgs.fetchFromGitHub {
42-
owner = "zerolfx";
43-
repo = "copilot.el";
44-
rev = "b5878d6a8c741138b5efbf4fe1c594f3fd69dbdd";
45-
sha256 = "sha256-02ywlMPku1FIritZjjtxbQW6MmPvSwmRCrudYsUb8bU=";
46-
};
47-
packageRequires = with final; [
48-
dash
49-
editorconfig
50-
f
51-
jsonrpc
52-
s
53-
];
54-
postInstall = ''
55-
cp -r $src $LISPDIR
56-
'';
57-
};
58-
59-
eglot = null; # use built-in package
60-
};
31+
programs.emacs.overrides = _: _: {
32+
eglot = null; # use built-in package
33+
};
6134

6235
programs.emacs.init = {
6336
enable = true;
@@ -155,6 +128,8 @@
155128
'';
156129
};
157130

131+
auctex.enable = true;
132+
158133
avy = {
159134
enable = true;
160135
demand = true;
@@ -300,6 +275,8 @@
300275
'';
301276
};
302277

278+
copilot-chat.enable = true;
279+
303280
csv-mode.enable = true;
304281

305282
edit-indirect.enable = true;
@@ -533,12 +510,6 @@
533510
'';
534511
};
535512

536-
mixed-pitch = {
537-
enable = true;
538-
hook = [ "(text-mode . mixed-pitch-mode)" ];
539-
diminish = [ "mixed-pitch-mode" ];
540-
};
541-
542513
orderless = {
543514
enable = true;
544515
init = ''

modules/common/home-manager/profiles/base/emacs/org.nix

Lines changed: 78 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,60 @@
1-
{ config, lib, ... }:
1+
{
2+
config,
3+
lib,
4+
pkgs,
5+
...
6+
}:
27
{
38
config = lib.mkIf config.profiles.base.enable {
49

10+
programs.emacs.overrides = self: _: {
11+
# org-mode fork with upgraded org-latex-preview
12+
# https://code.tecosaur.net/tec/org-mode
13+
# TODO: remove once changes are merged
14+
org =
15+
let
16+
rev = "cd2269ddb64bda7203acf2ee2e26188237a578ea";
17+
in
18+
self.trivialBuild {
19+
pname = "org";
20+
version = "9.7.26+${builtins.substring 0 7 rev}";
21+
22+
src =
23+
let
24+
root = pkgs.fetchgit {
25+
name = "org-src";
26+
url = "https://code.tecosaur.net/tec/org-mode.git";
27+
inherit rev;
28+
hash = "sha256-mw11v3r+6/xCTaYht/hD+/Nhd+gIcOmAbtEJUGMiphA=";
29+
};
30+
in
31+
"${root}/lisp";
32+
};
33+
};
34+
535
programs.emacs.init.usePackage = {
636

37+
cdlatex.enable = true;
38+
739
frames-only-mode.config = lib.mkBefore ''
840
(add-to-list 'frames-only-mode-use-window-functions #'org-capture)
941
'';
1042

43+
mixed-pitch = {
44+
enable = true;
45+
hook = [ "(org-mode . mixed-pitch-mode)" ];
46+
diminish = [ "mixed-pitch-mode" ];
47+
};
48+
1149
org = {
1250
enable = true;
1351

1452
hook = [
15-
"(org-mode . turn-on-visual-line-mode)"
53+
"(org-mode . turn-on-cdlatex)"
1654
"(org-mode . turn-on-flyspell)"
55+
"(org-mode . turn-on-visual-line-mode)"
56+
"(org-mode . org-appear-mode)"
57+
"(org-mode . org-latex-preview-auto-mode)"
1758
"(org-capture-mode . evil-insert-state)"
1859
];
1960

@@ -30,7 +71,16 @@
3071

3172
custom = {
3273
org-directory = ''"~/org"'';
74+
75+
org-hide-emphasis-markers = true;
76+
org-hidden-keywords = '''(title subtitle author date email)'';
77+
3378
org-startup-indented = true;
79+
80+
org-latex-preview-live = true;
81+
org-latex-preview-live-debounce = 0.25;
82+
org-highlight-latex-and-related = '''(native)'';
83+
3484
org-agenda-files = ''
3585
'("~/org/gtd.org"
3686
"~/org/inbox.org"
@@ -51,6 +101,7 @@
51101
(search . " %i %-12:c"))
52102
'';
53103
org-agenda-breadcrumbs-separator = ''"/"'';
104+
54105
org-capture-templates = ''
55106
'(("t" "todo" entry (file "~/org/inbox.org") "* TODO %a%?\n%i")
56107
("k" "tickler" entry (file "~/org/tickler.org") "* %i%?"))
@@ -60,6 +111,25 @@
60111
};
61112

62113
config = ''
114+
;; Resize Org headings
115+
;; https://sophiebos.io/posts/prettifying-emacs-org-mode/
116+
(dolist (face '((org-level-1 . 1.35)
117+
(org-level-2 . 1.3)
118+
(org-level-3 . 1.2)
119+
(org-level-4 . 1.1)
120+
(org-level-5 . 1.1)
121+
(org-level-6 . 1.1)
122+
(org-level-7 . 1.1)
123+
(org-level-8 . 1.1)))
124+
(set-face-attribute (car face) nil :weight 'bold :height (cdr face)))
125+
126+
;; Make the document title a bit bigger
127+
(set-face-attribute 'org-document-title nil :weight 'bold :height 1.8)
128+
129+
;; Increase size of latex fragment previews
130+
(plist-put org-latex-preview-appearance-options :page-width 0.8)
131+
(plist-put org-latex-preview-appearance-options :scale 1.35)
132+
63133
;; The following is used to treat frames named "org-capture"
64134
;; as dedicated capture frames, meaning they will
65135
;;
@@ -90,9 +160,13 @@
90160
'';
91161
};
92162

93-
org-fragtog = {
163+
org-appear = {
94164
enable = true;
95-
hook = [ ''(org-mode . org-fragtog-mode)'' ];
165+
custom = {
166+
org-appear-autoemphasis = true;
167+
org-appear-autolinks = true;
168+
org-appear-autokeywords = true;
169+
};
96170
};
97171

98172
org-protocol.enable = true;

modules/common/home-manager/profiles/base/emacs/theme/default.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
:height ${toString (fonts.sizes.applications * 10)})
2020
(set-face-attribute 'variable-pitch
2121
nil
22-
:family "${fonts.sansSerif.name}")
22+
:family "${fonts.serif.name}")
2323
'';
2424

2525
modus-themes = {

modules/common/home-manager/profiles/personal/default.nix

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -85,27 +85,7 @@ in
8585

8686
programs.texlive = {
8787
enable = true;
88-
extraPackages = tpkgs: {
89-
inherit (tpkgs)
90-
scheme-basic
91-
92-
# packages required for Org Mode latex export (see org-latex-default-packages-alist documentation)
93-
dvipng
94-
dvisvgm
95-
wrapfig
96-
ulem
97-
amsmath
98-
capt-of
99-
hyperref
100-
101-
# not mentioned but required
102-
minted
103-
newfloat
104-
105-
# not packaged nixpkgs.texlive?
106-
# inputenc fontenc graphicx longtable rotating amssymb
107-
;
108-
};
88+
extraPackages = tpkgs: { inherit (tpkgs) scheme-full; };
10989
};
11090

11191
tools = {

modules/stylix/default.nix

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767

6868
serif = {
6969
package = pkgs.merriweather;
70-
name = "Merriweather Regular";
70+
name = "Merriweather";
7171
};
7272

7373
sizes = {

0 commit comments

Comments
 (0)