feat: Remove Doom Emacs and Spacemacs

This commit is contained in:
ulic-youthlic 2026-07-04 23:01:21 +08:00
parent d62f71605a
commit 6301d36798
Signed by: youthlic
GPG key ID: 63E86C3C14A0D721
10 changed files with 50 additions and 653 deletions

264
flake.lock generated
View file

@ -178,80 +178,6 @@
"type": "github" "type": "github"
} }
}, },
"doomemacs": {
"flake": false,
"locked": {
"lastModified": 1783093997,
"narHash": "sha256-oIZAGdY1EYMWUyuHMSlLGk9Zv5iEYXigZ4v3bSgdr6c=",
"owner": "doomemacs",
"repo": "core",
"rev": "8e4fbbae048a9abe897bf1878cbd32732a6d41d7",
"type": "github"
},
"original": {
"owner": "doomemacs",
"repo": "core",
"type": "github"
}
},
"doomemacs-modules": {
"flake": false,
"locked": {
"lastModified": 1782931200,
"narHash": "sha256-jzC96RZXEVuGD+qdoTmuzd8PcrqnH+38B7jc6kVfTeQ=",
"owner": "doomemacs",
"repo": "modules",
"rev": "7a3c5a14ec18b088183166dfab560000078e4bea",
"type": "github"
},
"original": {
"owner": "doomemacs",
"repo": "modules",
"type": "github"
}
},
"emacs-overlay": {
"inputs": {
"nixpkgs": "nixpkgs_2",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1783162655,
"narHash": "sha256-ZrgaXb1OPAcDU3QJMLlNfT52dF2wBWuX8O2Txbi/4lo=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "37c0aa1964dfa3e8b224d8d692ff5468efafa0eb",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "emacs-overlay",
"type": "github"
}
},
"emacs-overlay_2": {
"inputs": {
"nixpkgs": [
"nix-doom"
],
"nixpkgs-stable": [
"nix-doom"
]
},
"locked": {
"lastModified": 1783159924,
"narHash": "sha256-VP3EBFYtVa6Kz9kxgZgVyk5zPGKCTkde7PEGUdgcHFQ=",
"owner": "nix-community",
"repo": "emacs-overlay",
"rev": "2eeddeceb43a18a712988529fbb97a8347dcb3d9",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "emacs-overlay",
"type": "github"
}
},
"firefox-gnome-theme": { "firefox-gnome-theme": {
"flake": false, "flake": false,
"locked": { "locked": {
@ -414,7 +340,7 @@
}, },
"helix": { "helix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_2",
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
@ -455,7 +381,7 @@
"lanzaboote": { "lanzaboote": {
"inputs": { "inputs": {
"crane": "crane", "crane": "crane",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_3",
"pre-commit": "pre-commit", "pre-commit": "pre-commit",
"rust-overlay": "rust-overlay_2" "rust-overlay": "rust-overlay_2"
}, },
@ -481,7 +407,7 @@
"nixpkgs": [ "nixpkgs": [
"nixpkgs" "nixpkgs"
], ],
"nixpkgs-stable": "nixpkgs-stable_2", "nixpkgs-stable": "nixpkgs-stable",
"xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-stable": "xwayland-satellite-stable",
"xwayland-satellite-unstable": "xwayland-satellite-unstable" "xwayland-satellite-unstable": "xwayland-satellite-unstable"
}, },
@ -540,7 +466,7 @@
"flake-parts": [ "flake-parts": [
"flake-parts" "flake-parts"
], ],
"nixpkgs": "nixpkgs_5" "nixpkgs": "nixpkgs_4"
}, },
"locked": { "locked": {
"lastModified": 1783104700, "lastModified": 1783104700,
@ -556,33 +482,9 @@
"type": "github" "type": "github"
} }
}, },
"nix-doom": {
"inputs": {
"doomemacs": "doomemacs",
"doomemacs-modules": "doomemacs-modules",
"emacs-overlay": "emacs-overlay_2",
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_2"
},
"locked": {
"lastModified": 1783160885,
"narHash": "sha256-l1xCEgpUPiMYFlrmp2MdOO13kEX2JaoDmIaWulUlO2s=",
"owner": "marienz",
"repo": "nix-doom-emacs-unstraightened",
"rev": "1d122450adecd567d21ace6a46334e0c409a020e",
"type": "github"
},
"original": {
"owner": "marienz",
"repo": "nix-doom-emacs-unstraightened",
"type": "github"
}
},
"nixos-hardware": { "nixos-hardware": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_6" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1782562157, "lastModified": 1782562157,
@ -643,22 +545,6 @@
} }
}, },
"nixpkgs-stable": { "nixpkgs-stable": {
"locked": {
"lastModified": 1782999065,
"narHash": "sha256-5Dgj5+pIQYZKrXUGaLCk7CKfN3MmpwIhO94++WVxvng=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "80d591ed473cfc46329932c2aadac9b435342c7c",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-26.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": { "locked": {
"lastModified": 1782847189, "lastModified": 1782847189,
"narHash": "sha256-twXPFqFsrrY5r28Zh7Homgcp2gUMBgQ6WDS98Q/3xFI=", "narHash": "sha256-twXPFqFsrrY5r28Zh7Homgcp2gUMBgQ6WDS98Q/3xFI=",
@ -674,39 +560,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_10": {
"locked": {
"lastModified": 1770107345,
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": { "nixpkgs_2": {
"locked": {
"lastModified": 1782959384,
"narHash": "sha256-xnJJk+ct+D2+wdRxj1wk36w5zV9RVESwRqcklPdt3fM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "65179426c83bb3f6bc14898b42ea1c6f01d374b0",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1775036866, "lastModified": 1775036866,
"narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=", "narHash": "sha256-ZojAnPuCdy657PbTq5V0Y+AHKhZAIwSIT2cb8UgAz/U=",
@ -722,7 +576,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1781577229, "lastModified": 1781577229,
"narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=", "narHash": "sha256-lrp67w8AulE9Ks53n27I45ADSzbOCn4H+CNW1Ck8B+8=",
@ -738,7 +592,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1783089885, "lastModified": 1783089885,
"narHash": "sha256-02ary8OtZROV9b1sqlNaU2NEhzA706qmTBfX8Alvyk0=", "narHash": "sha256-02ary8OtZROV9b1sqlNaU2NEhzA706qmTBfX8Alvyk0=",
@ -754,7 +608,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_6": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1767892417, "lastModified": 1767892417,
"narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=", "narHash": "sha256-8bW3q88CEg2u4hSP66Vf4lpbLonHz7hqDNBMcCY7E9U=",
@ -767,7 +621,7 @@
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
} }
}, },
"nixpkgs_7": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1782959384, "lastModified": 1782959384,
"narHash": "sha256-xnJJk+ct+D2+wdRxj1wk36w5zV9RVESwRqcklPdt3fM=", "narHash": "sha256-xnJJk+ct+D2+wdRxj1wk36w5zV9RVESwRqcklPdt3fM=",
@ -783,23 +637,23 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_7": {
"locked": {
"lastModified": 1782959384,
"narHash": "sha256-xnJJk+ct+D2+wdRxj1wk36w5zV9RVESwRqcklPdt3fM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "65179426c83bb3f6bc14898b42ea1c6f01d374b0",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_8": { "nixpkgs_8": {
"locked": {
"lastModified": 1782959384,
"narHash": "sha256-xnJJk+ct+D2+wdRxj1wk36w5zV9RVESwRqcklPdt3fM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "65179426c83bb3f6bc14898b42ea1c6f01d374b0",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_9": {
"locked": { "locked": {
"lastModified": 1782467914, "lastModified": 1782467914,
"narHash": "sha256-inDx/w70OSJoJPqtKh0BrzAsbZZhpya7YgS43jHnhwg=", "narHash": "sha256-inDx/w70OSJoJPqtKh0BrzAsbZZhpya7YgS43jHnhwg=",
@ -812,6 +666,22 @@
"url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz" "url": "https://channels.nixos.org/nixos-unstable/nixexprs.tar.xz"
} }
}, },
"nixpkgs_9": {
"locked": {
"lastModified": 1770107345,
"narHash": "sha256-tbS0Ebx2PiA1FRW8mt8oejR0qMXmziJmPaU1d4kYY9g=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "4533d9293756b63904b7238acb84ac8fe4c8c2c4",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"noctalia": { "noctalia": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -840,7 +710,7 @@
"noctalia", "noctalia",
"nixpkgs" "nixpkgs"
], ],
"systems": "systems_3", "systems": "systems_2",
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
@ -860,7 +730,7 @@
"nur": { "nur": {
"inputs": { "inputs": {
"flake-parts": "flake-parts_2", "flake-parts": "flake-parts_2",
"nixpkgs": "nixpkgs_8" "nixpkgs": "nixpkgs_7"
}, },
"locked": { "locked": {
"lastModified": 1783174895, "lastModified": 1783174895,
@ -929,22 +799,19 @@
"dae-flake": "dae-flake", "dae-flake": "dae-flake",
"deploy-rs": "deploy-rs", "deploy-rs": "deploy-rs",
"disko": "disko", "disko": "disko",
"emacs-overlay": "emacs-overlay",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"helix": "helix", "helix": "helix",
"home-manager": "home-manager", "home-manager": "home-manager",
"lanzaboote": "lanzaboote", "lanzaboote": "lanzaboote",
"niri-flake": "niri-flake", "niri-flake": "niri-flake",
"nix-cachyos-kernel": "nix-cachyos-kernel", "nix-cachyos-kernel": "nix-cachyos-kernel",
"nix-doom": "nix-doom",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs_7", "nixpkgs": "nixpkgs_6",
"nixpkgs-patch-rqbit-bump": "nixpkgs-patch-rqbit-bump", "nixpkgs-patch-rqbit-bump": "nixpkgs-patch-rqbit-bump",
"nixpkgs-patcher": "nixpkgs-patcher", "nixpkgs-patcher": "nixpkgs-patcher",
"noctalia": "noctalia", "noctalia": "noctalia",
"nur": "nur", "nur": "nur",
"sops-nix": "sops-nix", "sops-nix": "sops-nix",
"spacemacs": "spacemacs",
"spicetify-nix": "spicetify-nix", "spicetify-nix": "spicetify-nix",
"stylix": "stylix", "stylix": "stylix",
"treefmt-nix": "treefmt-nix_2", "treefmt-nix": "treefmt-nix_2",
@ -1013,26 +880,10 @@
"type": "github" "type": "github"
} }
}, },
"spacemacs": {
"flake": false,
"locked": {
"lastModified": 1782449399,
"narHash": "sha256-4nF8LMfAwN66a5JAgC2inhFgzW3m/oHFATlm1F6f+tE=",
"owner": "syl20bnr",
"repo": "spacemacs",
"rev": "a34310ecbbb85fa9a125caee8fba227af1f94fcf",
"type": "github"
},
"original": {
"owner": "syl20bnr",
"repo": "spacemacs",
"type": "github"
}
},
"spicetify-nix": { "spicetify-nix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_9", "nixpkgs": "nixpkgs_8",
"systems": "systems_4" "systems": "systems_3"
}, },
"locked": { "locked": {
"lastModified": 1782898510, "lastModified": 1782898510,
@ -1063,7 +914,7 @@
"nixpkgs" "nixpkgs"
], ],
"nur": "nur_2", "nur": "nur_2",
"systems": "systems_5", "systems": "systems_4",
"tinted-kitty": "tinted-kitty", "tinted-kitty": "tinted-kitty",
"tinted-schemes": "tinted-schemes", "tinted-schemes": "tinted-schemes",
"tinted-tmux": "tinted-tmux", "tinted-tmux": "tinted-tmux",
@ -1099,21 +950,6 @@
} }
}, },
"systems_2": { "systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_3": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@ -1128,7 +964,7 @@
"type": "github" "type": "github"
} }
}, },
"systems_4": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -1143,7 +979,7 @@
"type": "github" "type": "github"
} }
}, },
"systems_5": { "systems_4": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@ -1246,7 +1082,7 @@
}, },
"treefmt-nix_2": { "treefmt-nix_2": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_10" "nixpkgs": "nixpkgs_9"
}, },
"locked": { "locked": {
"lastModified": 1780220602, "lastModified": 1780220602,

View file

@ -180,24 +180,6 @@
ref = "v1.1.0"; ref = "v1.1.0";
}; };
nix-doom = {
type = "github";
owner = "marienz";
repo = "nix-doom-emacs-unstraightened";
inputs.nixpkgs.follows = "nixpkgs";
};
spacemacs = {
type = "github";
owner = "syl20bnr";
repo = "spacemacs";
flake = false;
};
emacs-overlay = {
type = "github";
owner = "nix-community";
repo = "emacs-overlay";
};
noctalia = { noctalia = {
type = "github"; type = "github";
owner = "noctalia-dev"; owner = "noctalia-dev";

View file

@ -54,7 +54,6 @@
zen-browser.enable = true; zen-browser.enable = true;
openssh.enable = true; openssh.enable = true;
helix.enable = true; helix.enable = true;
# spacemacs.enable = true;
radicle.enable = true; radicle.enable = true;
}; };
}; };

View file

@ -1,48 +0,0 @@
{
config,
pkgs,
lib,
inputs,
...
}: let
inherit (inputs) nixpkgs emacs-overlay spacemacs;
inherit (pkgs) system;
cfg = config.david.programs.spacemacs;
pkgs' = import nixpkgs {
localSystem = {inherit system;};
overlays = [emacs-overlay.overlays.default];
};
in {
options = {
david.programs.spacemacs = {
enable = lib.mkEnableOption "spacemacs";
};
};
config = lib.mkIf cfg.enable {
stylix.targets.emacs.enable = false;
xdg.configFile = {
emacs = {
source = "${spacemacs}";
recursive = true;
};
};
programs.emacs = {
enable = true;
package = with pkgs';
(emacsPackagesFor emacs-pgtk).emacsWithPackages (_epkgs: [
git
gnutar
ripgrep
]);
};
services.emacs = {
client = {
enable = true;
};
defaultEditor = false;
enable = true;
socketActivation.enable = true;
startWithUserSession = true;
};
};
}

View file

@ -114,7 +114,6 @@
juicity juicity
waypipe waypipe
iperf3 iperf3
doom-emacs
neovide neovide
prismlauncher prismlauncher

View file

@ -9,7 +9,6 @@ in
./editor-runtime.nix ./editor-runtime.nix
./wallpapers.nix ./wallpapers.nix
./rime-all.nix ./rime-all.nix
./doom-emacs.nix
./iosevka-serif_fixed.nix ./iosevka-serif_fixed.nix
./pkgsNoCuda.nix ./pkgsNoCuda.nix

View file

@ -1,5 +0,0 @@
{outputs, ...}: _final: prev: let
inherit (prev.stdenv.hostPlatform) system;
in {
inherit (outputs.packages.${system}) doom-emacs;
}

View file

@ -1,101 +0,0 @@
;;; config.el -*- lexical-binding: t; -*-
;;; Fix non-POSIX SHELL
(setq shell-file-name
(executable-find "bash"))
(let ((fish-exe (executable-find "fish")))
(setq-default vterm-shell
fish-exe)
(setq-default explicit-shell-file-name
fish-exe))
(setq doom-font (font-spec
:family "MonoLisa"
:size 20))
(setq doom-theme 'doom-one-light)
;;; Fix failure to locate 'Symbols Nerd Font Mono' font
(setq nerd-icons-font-family "Maple Mono NF CN")
(setq telega-emoji-use-images
nil)
(map! :map global-map
"C-c t"
telega-prefix-map)
(setq display-line-numbers-type
'relative)
(add-hook 'telega-load-hook
'telega-notifications-mode)
(defvar my/emacs-deps-exec-path (seq-filter
(lambda (p)
(string-match-p
"/nix/store/.*-emacs-packages-deps/bin"
p))
exec-path))
(advice-add #'envrc--update
:after #'(lambda ()
(setq exec-path
(append exec-path
my/emacs-deps-exec-path))))
(defun +telega-save-file-to-clipboard (msg)
"Save file at point to clipboard.
NOTE: wayland only."
(interactive (list (telega-msg-for-interactive)))
(let ((file (telega-msg--content-file msg)))
(unless file
(user-error "No file associated with message"))
(telega-file--download file
:priority 32
:update-callback
(lambda (dfile)
(telega-msg-redisplay msg)
(message "Wait for downloading to finish…")
(when (telega-file--downloaded-p dfile)
(let* ((fpath (telega--tl-get dfile :local :path)))
(shell-command (format "wl-copy < \"%s\"" fpath))
(message (format "File saved to clipboard: %s" fpath))))))))
(map! :map global-map
"C-c n"
#'company-nixos-options)
(with-eval-after-load 'evil
(scroll-on-jump-advice-add evil-redo)
(scroll-on-jump-advice-add evil-jump-item)
(scroll-on-jump-advice-add evil-jump-forward)
(scroll-on-jump-advice-add evil-jump-backward)
(scroll-on-jump-advice-add evil-ex-search-next)
(scroll-on-jump-advice-add evil-ex-search-previous)
(scroll-on-jump-advice-add evil-forward-paragraph)
(scroll-on-jump-advice-add evil-backward-paragraph)
(scroll-on-jump-advice-add evil-goto-mark)
;; Actions that themselves scroll.
(scroll-on-jump-with-scroll-advice-add evil-goto-line)
(scroll-on-jump-with-scroll-advice-add evil-goto-first-line)
(scroll-on-jump-with-scroll-advice-add evil-scroll-down)
(scroll-on-jump-with-scroll-advice-add evil-scroll-up)
(scroll-on-jump-with-scroll-advice-add evil-scroll-line-to-center)
(scroll-on-jump-with-scroll-advice-add evil-scroll-line-to-top)
(scroll-on-jump-with-scroll-advice-add evil-scroll-line-to-bottom)
(scroll-on-jump-with-scroll-advice-add evil-scroll-page-down)
(scroll-on-jump-with-scroll-advice-add evil-scroll-page-up))
(with-eval-after-load 'goto-chg
(scroll-on-jump-advice-add goto-last-change)
(scroll-on-jump-advice-add goto-last-change-reverse))
(global-set-key (kbd "<C-M-next>") (scroll-on-jump-interactive 'diff-hl-next-hunk))
(global-set-key (kbd "<C-M-prior>") (scroll-on-jump-interactive 'diff-hl-previous-hunk))
(use-package org-modern-mode
:hook
(org-mode . org-modern-mode)
(org-agenda-finalize . org-modern-agenda)
:config
(setq org-modern-hide-stars nil
org-modern-table nil))

View file

@ -1,199 +0,0 @@
;;; init.el -*- lexical-binding: t; -*-
;; This file controls what Doom modules are enabled and what order they load
;; in. Remember to run 'doom sync' after modifying it!
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
;; documentation. There you'll find a link to Doom's Module Index where all
;; of our modules are listed, including what flags they support.
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
;; 'C-c c k' for non-vim users) to view its documentation. This works on
;; flags as well (those symbols that start with a plus).
;;
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
;; directory (for easy access to its source code).
;; typochecker: off
(doom! :input
;;bidi ; (tfel ot) thgir etirw uoy gnipleh
;;chinese
;;japanese
;;layout ; auie,ctsrnm is the superior home row
:completion
(company +childframe) ; the ultimate code completion backend
;;(corfu +orderless) ; complete with cap(f), cape and a flying feather!
;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
;;ivy ; a search engine for love and life
(vertico +icons) ; the search engine of the future
:ui
;;deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does
doom-dashboard ; a nifty splash screen for Emacs
doom-quit ; DOOM quit-message prompts when you quit Emacs
;;(emoji +unicode) ; 🙂
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
indent-guides ; highlighted indent columns
ligatures ; ligatures and symbols to make your code pretty again
minimap ; show a map of the code on the side
modeline ; snazzy, Atom-inspired modeline, plus API
nav-flash ; blink cursor line after big motions
;;neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
(popup +defaults) ; tame sudden yet inevitable temporary windows
smooth-scroll ; So smooth you won't believe it's not butter
tabs ; a tab bar for Emacs
treemacs ; a project drawer, like neotree but cooler
unicode ; extended unicode support for various languages
(vc-gutter +pretty) ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
;;window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
zen ; distraction-free coding or writing
:editor
(evil +everywhere); come to the dark side, we have cookies
file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding
(format +onsave) ; automated prettiness
;;god ; run Emacs commands without modifier keys
;;lispy ; vim for lisp, for people who don't like vim
multiple-cursors ; editing in many places at once
;;objed ; text object editing for the innocent
;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
word-wrap ; soft wrapping with language-aware indent
:emacs
dired ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent
;;eww ; the internet is gross
ibuffer ; interactive buffer management
undo ; persistent, smarter undo for your inevitable mistakes
vc ; version-control and Emacs, sitting in a tree
:term
;;eshell ; the elisp shell that works everywhere
;;shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs
vterm ; the best terminal emulation in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
;;(spell +flyspell) ; tasing you for misspelling mispelling
;;grammar ; tasing grammar mistake every you make
:tools
;;ansible
;;biblio ; Writes a PhD for you (citation needed)
;;collab ; buffers with friends
;;debugger ; FIXME stepping through code, to help you add bugs
direnv
;;docker
editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls)
lookup ; navigate your code and its documentation
;;llm ; when I said you needed friends, I didn't mean...
lsp ; M-x vscode
magit ; a git porcelain for Emacs
make ; run make tasks from Emacs
;;pass ; password manager for nerds
pdf ; pdf enhancements
;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux
tree-sitter ; syntax and parsing, sitting in a tree...
upload ; map local to remote projects via ssh/ftp
:os
(:if (featurep :system 'macos) macos) ; improve compatibility with macOS
;;tty ; improve the terminal Emacs experience
:lang
;;agda ; types of types of types of types...
;;beancount ; mind the GAAP
(cc +lsp) ; C > C++ == 1
clojure ; java with a lisp
;;common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
;;csharp ; unity, .NET, and mono shenanigans
;;data ; config/data formats
;;(dart +flutter) ; paint ui and not much else
;;dhall
;;elixir ; erlang done right
;;elm ; care for a cup of TEA?
emacs-lisp ; drown in parentheses
;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics
;;factor
;;faust ; dsp, but you get to keep your soul
;;fortran ; in FORTRAN, GOD is REAL (unless declared INTEGER)
;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3
;;gdscript ; the language you waited for
(go +lsp) ; the hipster dialect
;;(graphql +lsp) ; Give queries a REST
(haskell +lsp) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
idris ; a language you can depend on
json ; At least it ain't XML
;;janet ; Fun fact: Janet is me!
;;(java +lsp) ; the poster child for carpal tunnel syndrome
;;javascript ; all(hope(abandon(ye(who(enter(here))))))
;;julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
;;latex ; writing papers in Emacs has never been so fun
lean ; for folks with too much to prove
;;ledger ; be audit you can be
lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
org ; organize your plain life in plain text
;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
graphviz ; diagrams for confusing yourself even more
;;purescript ; javascript, but functional
python ; beautiful is better than ugly
qt ; the 'cutest' gui framework ever
racket ; a DSL for DSLs
;;raku ; the artist formerly known as perl6
;;rest ; Emacs as a REST client
;;rst ; ReST in peace
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
(rust +lsp) ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
(scheme +guile) ; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor
;;sml
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
web ; the tubes
yaml ; JSON, but readable
zig ; C, but simpler
:email
;;(mu4e +org +gmail)
;;notmuch
;;(wanderlust +gmail)
:app
;;calendar
;;emms
;;everywhere ; *leave* Emacs!? You must be joking
;;irc ; how neckbeards socialize
;;(rss +org) ; emacs as an RSS reader
:config
;;literate
(default +bindings +smartparens))
;; typochecker: on

View file

@ -1,65 +0,0 @@
{
inputs,
stdenv,
editor-runtime,
symlinkJoin,
makeWrapper,
}: let
inherit (stdenv.hostPlatform) system;
inherit (inputs) nixpkgs emacs-overlay nix-doom;
pkgs = import nixpkgs {
localSystem = {inherit system;};
overlays = [
emacs-overlay.overlays.default
nix-doom.overlays.default
];
};
emacs = pkgs.emacs-igc-pgtk;
doom-emacs = pkgs.doomEmacs {
doomDir = ./config;
doomLocalDir = "~/.local/share/nix-doom";
emacs = emacs;
extraPackages = ep:
with ep; [
melpaStablePackages.telega
melpaPackages.nixos-options
melpaPackages.scroll-on-jump
melpaPackages.org-modern
];
extraBinPackages =
(with pkgs; [
git
ripgrep
fd
])
++ [
editor-runtime
];
};
in
symlinkJoin {
name = "doom-emacs";
paths = [doom-emacs];
inherit (doom-emacs) meta;
buildInputs = [
makeWrapper
];
env = {
ORIGINAL_EMACS = toString emacs;
};
postBuild = ''
wrapProgram $out/bin/doom-emacs \
--unset EMACSNATIVELOADPATH \
--unset EMACSLOADPATH \
--inherit-argv0
mkdir -p $out/share/applications
cp ''${ORIGINAL_EMACS}/share/applications/emacs.desktop \
$out/share/applications/doom-emacs.desktop
cp -rt $out/share ''${ORIGINAL_EMACS}/share/icons
substituteInPlace $out/share/applications/doom-emacs.desktop \
--replace 'Name=Emacs' 'Name=Doom Emacs' \
--replace 'Exec=emacs' "Exec=$out/bin/doom-emacs" \
--replace 'StartupWMClass=Emacs' "StartupWMClass=Doom Emacs"
'';
}