emacs changes

This commit is contained in:
Charlie Root 2024-08-20 16:43:24 +02:00
commit da16d2af27
3 changed files with 41 additions and 83 deletions

View file

@ -24,7 +24,7 @@
}; };
programs = { programs = {
editors = { editors = {
emacs.enable = false; emacs.enable = true;
neovim.enable = true; neovim.enable = true;
helix.enable = false; helix.enable = false;
kakoune.enable = false; kakoune.enable = false;

View file

@ -9,139 +9,92 @@
inherit (config.modules.other.system) username; inherit (config.modules.other.system) username;
inherit (lib) mkIf; inherit (lib) mkIf;
# Taken from outfoxxed since figuring this out is really annoying.
newpkgs = newpkgs =
pkgs.appendOverlays pkgs.appendOverlays
(with inputs.emacs-overlay.overlays; [ (with inputs.emacs-overlay.overlays; [
emacs emacs
package package
(final: prev: {
tree-sitter = prev.tree-sitter.override {
extraGrammars = {
tree-sitter-qmljs = {
version = "master";
src = pkgs.fetchFromGitHub {
owner = "yuja";
repo = "tree-sitter-qmljs";
rev = "35ead5b9955cdb29bcf709d622fa960ff33992b6";
sha256 = "jT47lEGuk6YUjcHB0ZMyL3i5PqyUaCQmt0j78cUpy8Q=";
};
};
};
};
})
]); ]);
tree-sitter-parsers = grammars: tree-sitter-parsers = grammars:
with grammars; [ with grammars; [
tree-sitter-bash
tree-sitter-c
tree-sitter-c-sharp
tree-sitter-cmake
tree-sitter-cpp
tree-sitter-css
tree-sitter-dot tree-sitter-dot
tree-sitter-elisp tree-sitter-elisp
tree-sitter-glsl
tree-sitter-html
tree-sitter-java
tree-sitter-javascript
tree-sitter-json
tree-sitter-json5
tree-sitter-kotlin
tree-sitter-latex
tree-sitter-llvm
tree-sitter-lua
tree-sitter-make
tree-sitter-markdown tree-sitter-markdown
tree-sitter-markdown-inline tree-sitter-markdown-inline
tree-sitter-nickel
tree-sitter-nix
tree-sitter-prisma
tree-sitter-python
tree-sitter-qmljs
tree-sitter-regex
tree-sitter-rust
tree-sitter-scss
tree-sitter-sql
tree-sitter-toml
tree-sitter-tsx
tree-sitter-typescript
tree-sitter-typst
tree-sitter-vim
tree-sitter-yaml
]; ];
custom-emacs = with newpkgs; ((emacsPackagesFor (emacs29-pgtk.override {withNativeCompilation = true;})).emacsWithPackages (epkgs: custom-emacs = with newpkgs; ((emacsPackagesFor (emacs29-pgtk.override {withNativeCompilation = true;})).emacsWithPackages (epkgs:
with epkgs; let with epkgs; [
qml-ts-mode = trivialBuild {
pname = "qml-ts-mode";
version = "master";
src = fetchFromGitHub {
owner = "outfoxxed";
repo = "qml-ts-mode";
rev = "b24b9e78305ed045baa136782623ad16de01b7b8";
sha256 = "PgXm/a92cX5zjA9blTrIRH7DfOUczRwb9oBcMMEzF2I=";
};
};
in [
alert alert
all-the-icons all-the-icons
all-the-icons-dired all-the-icons-dired
avy avy
beacon beacon
catppuccin-theme catppuccin-theme
cask-mode
company company
crux crux
dimmer dimmer
dired-du dired-du
dired-open dired-open
direnv direnv
dirvish
doom-modeline doom-modeline
editorconfig editorconfig
emacs-all-the-icons-fonts emacs-all-the-icons-fonts
evil evil
evil-collection evil-collection
evil-commentary
evil-goggles evil-goggles
erc
erc-hl-nicks
flycheck flycheck
flycheck-relint
flymake
form-feed form-feed
general general
hl-todo hl-todo
kotlin-mode
ligature ligature
lsp-mode lsp-mode
lsp-treemacs lsp-treemacs
lsp-ui lsp-ui
lsp-java macrostep
magit magit
markdown-mode markdown-mode
nasm-mode modus-themes
nix-mode move-text
org-cliplink
org-contacts
org-pomodoro
nano-theme
no-littering no-littering
reformatter # required by nix mode nov
pdf-tools paredit
peep-dired peep-dired
projectile projectile
qml-ts-mode
rainbow-delimiters rainbow-delimiters
rainbow-mode rainbow-mode
relint
ripgrep
smartparens smartparens
string-inflection string-inflection
svg-lib
tldr tldr
toc-org toc-org
(treesit-grammars.with-grammars (grammars: tree-sitter-parsers grammars)) (treesit-grammars.with-grammars tree-sitter-parsers)
treemacs treemacs
treemacs-evil treemacs-evil
treemacs-projectile treemacs-projectile
treemacs-magit treemacs-magit
tree-sitter
undo-tree undo-tree
use-package use-package
vertico vertico
vertico-posframe
vterm vterm
vterm-toggle vterm-toggle
which-key which-key
whitespace-cleanup-mode
wakatime-mode wakatime-mode
ws-butler ws-butler
])); ]));
@ -153,12 +106,16 @@ in {
clang-tools clang-tools
ripgrep ripgrep
fd fd
imagemagick
ispell ispell
mediainfo
findutils findutils
graphviz graphviz
djvulibre djvulibre
hunspell hunspell
poppler
sqlite sqlite
unzip
]; ];
services.emacs = { services.emacs = {
enable = true; enable = true;

View file

@ -4,22 +4,23 @@
pkgs, pkgs,
... ...
}: let }: let
inherit (lib.types) optional;
inherit (config.modules.system.fonts) extraFonts; inherit (config.modules.system.fonts) extraFonts;
inherit (config.modules.other.system) username; inherit (config.modules.other.system) username;
in { in {
# A (somewhat) sane list of default fonts to be installed. # A (somewhat) sane list of default fonts to be installed.
fonts.packages = with pkgs; [ fonts.packages = with pkgs;
material-design-icons [
papirus-icon-theme etBook
(nerdfonts.override {fonts = ["ComicShannsMono"];}) # ComicShanns my beloved material-design-icons
noto-fonts papirus-icon-theme
noto-fonts-cjk-sans (nerdfonts.override {fonts = ["ComicShannsMono"];}) # ComicShanns my beloved
noto-fonts-cjk-serif noto-fonts
noto-fonts-color-emoji noto-fonts-cjk-sans
corefonts noto-fonts-cjk-serif
]; noto-fonts-color-emoji
# ++ optional (extraFonts != null) extraFonts; corefonts
]
++ extraFonts;
# this fixes emoji stuff # this fixes emoji stuff
home-manager.users.${username} = { home-manager.users.${username} = {
fonts.fontconfig = { fonts.fontconfig = {