Compare commits

...

2 commits

11 changed files with 103 additions and 53 deletions

View file

@ -44,7 +44,7 @@
inherit inputs rootPath;
srcs = self.callPackage (rootPath + "/_sources/generated.nix") { };
inherit (inputs'.nixvim.legacyPackages) makeNixvim makeNixvimWithModule;
inherit (self'.legacyPackages) nixvimPlugins;
inherit (self'.legacyPackages) nixvimPlugins editor-runtime;
neovim_git = inputs'.neovim-nightly.packages.default;
});
in

View file

@ -57,7 +57,6 @@
firefox.enable = true;
openssh.enable = true;
helix.enable = true;
doom.enable = true;
# spacemacs.enable = true;
};
};

View file

@ -1,47 +0,0 @@
{
config,
lib,
pkgs,
inputs,
...
}:
let
cfg = config.david.programs.doom;
inherit (inputs) emacs-overlay nixpkgs;
inherit (pkgs) system;
pkgs' = import nixpkgs {
inherit system;
overlays = [ emacs-overlay.overlays.default ];
};
in
{
options = {
david.programs.doom = {
enable = lib.mkEnableOption "doom";
};
};
config = lib.mkIf cfg.enable {
stylix.targets.emacs.enable = false;
services.emacs.enable = true;
programs.doom-emacs = {
enable = true;
emacs = pkgs'.emacs-igc-pgtk;
extraPackages =
ep: with ep; [
melpaPackages.telega
melpaPackages.nixos-options
];
extraBinPackages = with pkgs; [
editor-runtime
git
ripgrep
fd
imagemagick
];
doomDir = ./config;
provideEmacs = true;
};
};
}

View file

@ -8,7 +8,6 @@
(with inputs; [
sops-nix.homeManagerModules.sops
betterfox-nix.homeModules.betterfox
nix-doom.homeModule
])
++ lib.youthlic.loadImports ./.;

View file

@ -38,9 +38,7 @@ in
onEvent = "fish_command_not_found";
};
fish_greeting = {
body = ''
fastfetch
'';
body = '''';
};
};
shellInitLast = # fish

View file

@ -92,6 +92,7 @@
wineWow64Packages.waylandFull
iperf3
nixvim
doom-emacs
neovide
sbctl

View file

@ -11,6 +11,7 @@ in
./wallpapers.nix
./rime-yuhaostar.nix
./nixvim.nix
./doom-emacs.nix
./pkgsNoCuda.nix
]

View file

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

View file

@ -83,3 +83,31 @@ NOTE: wayland only."
(map! :map global-map
"C-c n"
#'helm-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))

View file

@ -0,0 +1,63 @@
{
inputs,
system,
editor-runtime,
symlinkJoin,
makeWrapper,
}:
let
inherit (inputs) nixpkgs emacs-overlay nix-doom;
pkgs = import nixpkgs {
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; [
melpaPackages.telega
melpaPackages.nixos-options
melpaPackages.scroll-on-jump
];
extraBinPackages =
(with pkgs; [
git
ripgrep
fd
imagemagick
])
++ [ 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"
'';
}