Home Gen348 @ 2024-10-04-19:43
This commit is contained in:
parent
c1a7d8a028
commit
7fc42ae7f9
@ -38,16 +38,12 @@
|
||||
unzip
|
||||
zstd
|
||||
];
|
||||
doom-socket-path = "${config.xdg.configHome}/doom-emacs/server.sock";
|
||||
wrapped-emacs = pkgs.symlinkJoin {
|
||||
name = "wrapped-emacs";
|
||||
paths = [pkgs.emacs29-pgtk];
|
||||
nativeBuildInputs = [pkgs.makeBinaryWrapper];
|
||||
postBuild = ''
|
||||
mkdir -p $out/lib/systemd/system
|
||||
if [ -d ${pkgs.emacs29-pgtk}/lib/systemd/system ]; then
|
||||
cp -r ${pkgs.emacs29-pgtk}/lib/systemd/system/* $out/lib/systemd/system/
|
||||
fi
|
||||
|
||||
wrapProgram $out/bin/emacs \
|
||||
--prefix PATH : ${lib.makeBinPath doom-path-pkgs} \
|
||||
--add-flags "--init-directory=${config.xdg.configHome}/doom-emacs" \
|
||||
@ -59,7 +55,8 @@
|
||||
--prefix PATH : ${lib.makeBinPath doom-path-pkgs} \
|
||||
--set DOOMDIR "${config.home.sessionVariables.DOOMDIR}" \
|
||||
--set DOOMLOCALDIR "${config.home.sessionVariables.DOOMLOCALDIR}" \
|
||||
--suffix LD_LIBRARY_PATH : "${pkgs.stdenv.cc.cc.lib}/lib"
|
||||
--suffix LD_LIBRARY_PATH : "${pkgs.stdenv.cc.cc.lib}/lib" \
|
||||
--append-flags "-s ${doom-socket-path}"
|
||||
'';
|
||||
};
|
||||
doom-setup = pkgs.writeShellScript "doom-setup" ''
|
||||
@ -88,6 +85,29 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
systemd.user.services.doom-emacs-server = {
|
||||
Unit = {
|
||||
Description = "Doom Emacs Server";
|
||||
};
|
||||
Service = {
|
||||
ExecStart = "${wrapped-emacs}/bin/emacs --fg-daemon";
|
||||
Restart = "on-failure";
|
||||
SuccessExitStatus = 15;
|
||||
};
|
||||
Install = {
|
||||
WantedBy = ["default.target"]; # Start with your user session
|
||||
};
|
||||
};
|
||||
systemd.user.sockets.doom-emacs-server = {
|
||||
Socket = {
|
||||
ListenStream = "${doom-socket-path}";
|
||||
DirectoryMode = "0700";
|
||||
};
|
||||
Install = {
|
||||
WantedBy = ["sockets.target"];
|
||||
};
|
||||
};
|
||||
|
||||
xdg = {
|
||||
enable = true;
|
||||
configFile = {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user