all repos — nixfiles @ 5d859b419e1e1a850cd160e05d98bda3fd9883ea

System and user configuration, managed by nix and home-manager

Move Emacs to user configuration

Alan Pearce
commit

5d859b419e1e1a850cd160e05d98bda3fd9883ea

parent

a6008a0432b90faa49ffaa76267d3af98adac54a

M system/modules/user-interface.nixsystem/modules/user-interface.nix
@@ -1,45 +1,8 @@
{ config, pkgs, lib, makeDesktopItem, ... }: -let - emacsPackage = import ../packages/emacs.nix { - pkgs = pkgs.unstable; - emacs = pkgs.unstable.emacs.override { - withGTK3 = false; - }; - }; - editorScript = pkgs.writeScriptBin "edit" '' - #!${pkgs.runtimeShell} - if [ -z "$1" ]; then - exec ${emacsPackage}/bin/emacsclient --create-frame --alternate-editor ${emacsPackage}/bin/emacs - else - exec ${emacsPackage}/bin/emacsclient --alternate-editor ${emacsPackage}/bin/emacs "$@" - fi - ''; - desktopApplicationFile = makeDesktopItem { - name = "emacsclient.desktop"; - destination = "/share/applications/emacsclient.desktop"; - text = '' - [Desktop Entry] - Name=Emacsclient - GenericName=Text Editor - Comment=Edit text - MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; - Exec=${editorScript}/bin/edit %F - Icon=emacs - Type=Application - Terminal=false - Categories=Development;TextEditor; - StartupWMClass=Emacs - Keywords=Text;Editor; - ''; - }; -in { documentation.info.enable = true; nixpkgs.config.firefox.enableOfficialBranding = true; - nixpkgs.config.packageOverrides = pkgs: { - myEmacs = emacsPackage; - }; environment.systemPackages = with pkgs; [ aria2 firefox
@@ -51,8 +14,6 @@
cmus fish # for emacs-fish-completion - myEmacs - editorScript unstable.xst # st, but with support for XResources
@@ -120,7 +81,6 @@ environment.variables = {
# This is required so that GTK applications launched from Emacs # get properly themed: GTK_DATA_PREFIX = "${config.system.path}"; - EDITOR = lib.mkOverride 900 "${editorScript}/bin/edit"; }; services.redshift = {
M system/packages/emacs.nixuser/packages/emacs.nix
@@ -123,5 +123,5 @@ rainbow-mode
]) ++ (if !stdenv.isDarwin then [ # From main packages set - pkgs.unstable.mu + pkgs.mu ] else []))
M system/satoshipad.nixsystem/satoshipad.nix
@@ -54,7 +54,7 @@ path = with pkgs; [ python3Packages.keyring ];
serviceConfig = { Type = "oneshot"; ExecStart = "${pkgs.isync}/bin/mbsync -Va"; - ExecStartPost = "${pkgs.myEmacs}/bin/emacsclient -e (mu4e-update-index)"; + # ExecStartPost = "${pkgs.myEmacs}/bin/emacsclient -e (mu4e-update-index)"; }; };
M system/trillian.nixsystem/trillian.nix
@@ -1,10 +1,5 @@
{ config, pkgs, ... }: -let emacsPackage = import ./packages/emacs.nix { - pkgs = pkgs.unstable; - emacs = pkgs.unstable.emacs; -}; -in { imports = [ ./private/default.nix
@@ -39,7 +34,6 @@ # $ nix-env -qaP | grep wget
environment.systemPackages = with pkgs; [ mosh - emacsPackage aspell aspellDicts.en darwin-zsh-completions
@@ -75,13 +69,6 @@ enableSSHSupport = false;
}; }; - # launchd.user.agents.emacs-daemon = { - # command = "${emacsPackage}/bin/emacs --daemon"; - # serviceConfig = { - # KeepAlive = true; - # }; - # }; - # nix.gc = { automatic = true; options = "--max-freed $((25 * 1024**3 - 1024 * $(df -P -k /nix/store | tail -n 1 | awk '{ print $4 }')))";
D user/emacs/.local/share/applications/emacsclient.desktop
@@ -1,12 +0,0 @@
-#!/usr/bin/env xdg-open -[Desktop Entry] -Name=Emacsclient -Comment=Edit text -MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; -Exec=emacsclient -c %F -a "" -Icon=emacs -Type=Application -Terminal=false -Categories=Development;TextEditor; -StartupWMClass=Emacs -Keywords=Text;Editor;
M user/modules/emacs.nixuser/modules/emacs.nix
@@ -1,9 +1,53 @@
-{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: +let + pkgsUnstable = if pkgs.stdenv.isDarwin then import <nixpkgs-unstable> {} else import <nixos-unstable> {}; + emacsPackage = import ../packages/emacs.nix { + pkgs = pkgs.unstable; + emacs = pkgs.unstable.emacs; + }; + + editorScript = pkgs.writeScriptBin "edit" '' + #!${pkgs.runtimeShell} + if [ -z "$1" ]; then + exec ${emacsPackage}/bin/emacsclient --create-frame --alternate-editor ${emacsPackage}/bin/emacs + else + exec ${emacsPackage}/bin/emacsclient --alternate-editor ${emacsPackage}/bin/emacs "$@" + fi + ''; + desktopApplicationFile = pkgs.writeTextFile { + name = "emacsclient.desktop"; + destination = "/share/applications/emacsclient.desktop"; + text = '' + [Desktop Entry] + Name=Emacsclient + GenericName=Text Editor + Comment=Edit text + MimeType=text/english;text/plain;text/x-makefile;text/x-c++hdr;text/x-c++src;text/x-chdr;text/x-csrc;text/x-java;text/x-moc;text/x-pascal;text/x-tcl;text/x-tex;application/x-shellscript;text/x-c;text/x-c++; + Exec=${editorScript}/bin/edit %F + Icon=emacs + Type=Application + Terminal=false + Categories=Development;TextEditor; + StartupWMClass=Emacs + Keywords=Text;Editor; + ''; + }; +in { + home.packages = [ + emacsPackage + editorScript + ]; + nixpkgs.config.packageOverrides = { + myEmacs = emacsPackage; + }; + systemd.user.sessionVariables = { + EDITOR = lib.mkOverride 900 "${editorScript}/bin/edit"; + }; home.file.".emacs.d" = { recursive = true; source = ../emacs/.emacs.d; }; - home.file.".local/share/applications/emacsclient.desktop".source = ../emacs/.local/share/applications/emacsclient.desktop; + home.file.".local/share/applications/emacsclient.desktop".source = desktopApplicationFile; }