mirror of
https://github.com/nix-community/home-manager
synced 2024-11-26 21:19:45 +01:00
emacs: Remove obsolete socket file workaround
This commit is contained in:
parent
54586daa59
commit
47226ec7e7
5 changed files with 18 additions and 4 deletions
|
@ -12,6 +12,10 @@ let
|
|||
clientWMClass =
|
||||
if versionAtLeast emacsVersion "28" then "Emacsd" else "Emacs";
|
||||
|
||||
# Workaround for https://debbugs.gnu.org/47511
|
||||
needsSocketWorkaround = versionOlder emacsVersion "28"
|
||||
&& cfg.socketActivation.enable;
|
||||
|
||||
# Adapted from upstream emacs.desktop
|
||||
clientDesktopItem = pkgs.writeTextDir "share/applications/emacsclient.desktop"
|
||||
(generators.toINI { } {
|
||||
|
@ -128,7 +132,7 @@ in {
|
|||
# Avoid killing the Emacs session, which may be full of
|
||||
# unsaved buffers.
|
||||
X-RestartIfChanged = false;
|
||||
} // optionalAttrs (cfg.socketActivation.enable) {
|
||||
} // optionalAttrs needsSocketWorkaround {
|
||||
# Emacs deletes its socket when shutting down, which systemd doesn't
|
||||
# handle, resulting in a server without a socket.
|
||||
# See https://github.com/nix-community/home-manager/issues/2018
|
||||
|
@ -157,7 +161,7 @@ in {
|
|||
SuccessExitStatus = 15;
|
||||
|
||||
Restart = "on-failure";
|
||||
} // optionalAttrs (cfg.socketActivation.enable) {
|
||||
} // optionalAttrs needsSocketWorkaround {
|
||||
# Use read-only directory permissions to prevent emacs from
|
||||
# deleting systemd's socket file before exiting.
|
||||
ExecStartPost =
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
${
|
||||
pkgs.substituteAll {
|
||||
inherit (pkgs) runtimeShell coreutils;
|
||||
src = ./emacs-socket-emacs.service;
|
||||
src = ./emacs-socket-27-emacs.service;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
10
tests/modules/services/emacs/emacs-socket-28-emacs.service
Normal file
10
tests/modules/services/emacs/emacs-socket-28-emacs.service
Normal file
|
@ -0,0 +1,10 @@
|
|||
[Service]
|
||||
ExecStart=@runtimeShell@ -l -c "@emacs@/bin/emacs --fg-daemon='%t/emacs/server' '-f' 'exwm-enable'"
|
||||
Restart=on-failure
|
||||
SuccessExitStatus=15
|
||||
Type=notify
|
||||
|
||||
[Unit]
|
||||
Description=Emacs text editor
|
||||
Documentation=info:emacs man:emacs(1) https://gnu.org/software/emacs/
|
||||
X-RestartIfChanged=false
|
|
@ -32,7 +32,7 @@
|
|||
${
|
||||
pkgs.substituteAll {
|
||||
inherit (pkgs) runtimeShell coreutils;
|
||||
src = ./emacs-socket-emacs.service;
|
||||
src = ./emacs-socket-28-emacs.service;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue