Merge pull request #13698 from puffnfresh/feature/window-manager/emacs-exwm
exwm service: init (Emacs X Window Manager)
This commit is contained in:
commit
4b934ec3af
@ -13,6 +13,7 @@ in
|
||||
./clfswm.nix
|
||||
./compiz.nix
|
||||
./dwm.nix
|
||||
./exwm.nix
|
||||
./fluxbox.nix
|
||||
./herbstluftwm.nix
|
||||
./i3.nix
|
||||
|
55
nixos/modules/services/x11/window-managers/exwm.nix
Normal file
55
nixos/modules/services/x11/window-managers/exwm.nix
Normal file
@ -0,0 +1,55 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.xserver.windowManager.exwm;
|
||||
loadScript = pkgs.writeText "emacs-exwm-load" ''
|
||||
(require 'exwm)
|
||||
${optionalString cfg.enableDefaultConfig ''
|
||||
(require 'exwm-config)
|
||||
(exwm-config-default)
|
||||
''}
|
||||
'';
|
||||
packages = epkgs: cfg.extraPackages epkgs ++ [ epkgs.exwm ];
|
||||
exwm-emacs = pkgs.emacsWithPackages packages;
|
||||
in
|
||||
|
||||
{
|
||||
options = {
|
||||
services.xserver.windowManager.exwm = {
|
||||
enable = mkEnableOption "exwm";
|
||||
enableDefaultConfig = mkOption {
|
||||
default = true;
|
||||
example = false;
|
||||
type = lib.types.bool;
|
||||
description = "Enable an uncustomised exwm configuration.";
|
||||
};
|
||||
extraPackages = mkOption {
|
||||
default = self: [];
|
||||
example = literalExample ''
|
||||
epkgs: [
|
||||
epkgs.emms
|
||||
epkgs.magit
|
||||
epkgs.proofgeneral
|
||||
]
|
||||
'';
|
||||
description = ''
|
||||
Extra packages available to Emacs. The value must be a
|
||||
function which receives the attrset defined in
|
||||
<varname>emacsPackages</varname> as the sole argument.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.xserver.windowManager.session = singleton {
|
||||
name = "exwm";
|
||||
start = ''
|
||||
${exwm-emacs}/bin/emacs -l ${loadScript}
|
||||
'';
|
||||
};
|
||||
environment.systemPackages = [ exwm-emacs ];
|
||||
};
|
||||
}
|
@ -132,6 +132,19 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
arbitools = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
|
||||
pname = "arbitools";
|
||||
version = "0.51";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/arbitools-0.51.el";
|
||||
sha256 = "1pwps73s885i1777wlmqhkmfgj564bkb6rkpc964v0vcqia6fpag";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
homepage = "http://elpa.gnu.org/packages/arbitools.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
ascii-art-to-unicode = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "ascii-art-to-unicode";
|
||||
@ -322,10 +335,10 @@
|
||||
company-math = callPackage ({ company, elpaBuild, fetchurl, lib, math-symbol-lists }:
|
||||
elpaBuild {
|
||||
pname = "company-math";
|
||||
version = "1.0.1";
|
||||
version = "1.1";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/company-math-1.0.1.el";
|
||||
sha256 = "1lkj9cqhmdf3h5zvr94hszkz1251i2rq2mycnhscsnzrk5ll3gck";
|
||||
url = "http://elpa.gnu.org/packages/company-math-1.1.tar";
|
||||
sha256 = "10yi5jmv7njcaansgy2aw7wm1j3acch1j9x6lfg9mxk0j21zvgwp";
|
||||
};
|
||||
packageRequires = [ company math-symbol-lists ];
|
||||
meta = {
|
||||
@ -350,10 +363,10 @@
|
||||
context-coloring = callPackage ({ elpaBuild, emacs, fetchurl, js2-mode, lib }:
|
||||
elpaBuild {
|
||||
pname = "context-coloring";
|
||||
version = "7.2.0";
|
||||
version = "7.2.1";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/context-coloring-7.2.0.el";
|
||||
sha256 = "0l7mzmnhqh6sri1fhhv51khi0fnpfp51drzy725s6zfmpbrcn7vn";
|
||||
url = "http://elpa.gnu.org/packages/context-coloring-7.2.1.el";
|
||||
sha256 = "1lh2p3fsym73h0dcj1gqg1xsw3lcikmcskbx8y3j0ds30l4xs13d";
|
||||
};
|
||||
packageRequires = [ emacs js2-mode ];
|
||||
meta = {
|
||||
@ -628,12 +641,26 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
excorporate = callPackage ({ elpaBuild, emacs, fetchurl, fsm, lib, soap-client, url-http-ntlm }:
|
||||
elpaBuild {
|
||||
pname = "excorporate";
|
||||
version = "0.7.1";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/excorporate-0.7.1.tar";
|
||||
sha256 = "1flvhk39yymskzazpwh95j2nj8kg4b02hsg7b8msnqi3q5lpqs54";
|
||||
};
|
||||
packageRequires = [ emacs fsm soap-client url-http-ntlm ];
|
||||
meta = {
|
||||
homepage = "http://elpa.gnu.org/packages/excorporate.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
exwm = callPackage ({ elpaBuild, fetchurl, lib, xelb }: elpaBuild {
|
||||
pname = "exwm";
|
||||
version = "0.2";
|
||||
version = "0.4";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/exwm-0.2.tar";
|
||||
sha256 = "0z96zz6h5r880nbhclbxs2r0zfkg771lg0fjghigqxz8ai0hh1ll";
|
||||
url = "http://elpa.gnu.org/packages/exwm-0.4.tar";
|
||||
sha256 = "1qlplx88mk8c5sahlymxxh46bzf6bxnsqk92wliv5ji4ai5373fb";
|
||||
};
|
||||
packageRequires = [ xelb ];
|
||||
meta = {
|
||||
@ -767,10 +794,10 @@
|
||||
hydra = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "hydra";
|
||||
version = "0.13.4";
|
||||
version = "0.13.5";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/hydra-0.13.4.tar";
|
||||
sha256 = "11msy6n075iv00c2r9f85bzx3srnj403rhlga1rgsl6vsryf21fj";
|
||||
url = "http://elpa.gnu.org/packages/hydra-0.13.5.tar";
|
||||
sha256 = "0vq1pjyq6ddbikbh0vzdigbs0zlldgwad0192s7v9npg8qlwi668";
|
||||
};
|
||||
packageRequires = [ cl-lib ];
|
||||
meta = {
|
||||
@ -978,10 +1005,10 @@
|
||||
}) {};
|
||||
math-symbol-lists = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
|
||||
pname = "math-symbol-lists";
|
||||
version = "1.0";
|
||||
version = "1.1";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/math-symbol-lists-1.0.el";
|
||||
sha256 = "1rry9x4pl7i0sij051i76zp1ypvnj1qbwm40a7bs462c74q4jlwn";
|
||||
url = "http://elpa.gnu.org/packages/math-symbol-lists-1.1.tar";
|
||||
sha256 = "06klvnqipz0n9slw72fxmhrydrw6bi9fs9vnn8hrja8gsqf8inlz";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
@ -1005,10 +1032,10 @@
|
||||
metar = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "metar";
|
||||
version = "0.1";
|
||||
version = "0.2";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/metar-0.1.el";
|
||||
sha256 = "0s9zyzps022h5xax574bwsvsyp893x5w74kznnhfm63sxrifbi18";
|
||||
url = "http://elpa.gnu.org/packages/metar-0.2.el";
|
||||
sha256 = "0rfzq79llh6ixw02kjpn8s2shxrabvfvsq48pagwak1jl2s0askf";
|
||||
};
|
||||
packageRequires = [ cl-lib ];
|
||||
meta = {
|
||||
@ -1215,10 +1242,10 @@
|
||||
}) {};
|
||||
org = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
|
||||
pname = "org";
|
||||
version = "20160215";
|
||||
version = "20160229";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/org-20160215.tar";
|
||||
sha256 = "0w2686rza4xdknq3sy87s04zvlmjxyr6wrj9y9ydcv8hbzws3bhd";
|
||||
url = "http://elpa.gnu.org/packages/org-20160229.tar";
|
||||
sha256 = "15zrkw33ma8q079sb518rmcj97n35rnjv16p6zfw52m9xfdwxgi9";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
@ -1411,6 +1438,19 @@
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
sed-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
|
||||
pname = "sed-mode";
|
||||
version = "1.0";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/sed-mode-1.0.el";
|
||||
sha256 = "1zpdai5k9zhy5hw0a5zx7qv3rcf8cn29hncfjnhk9k6sjq0302lg";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
homepage = "http://elpa.gnu.org/packages/sed-mode.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
seq = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
|
||||
pname = "seq";
|
||||
version = "1.11";
|
||||
@ -1439,10 +1479,10 @@
|
||||
}) {};
|
||||
sisu-mode = callPackage ({ elpaBuild, fetchurl, lib }: elpaBuild {
|
||||
pname = "sisu-mode";
|
||||
version = "3.0.3";
|
||||
version = "7.1.8";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/sisu-mode-3.0.3.el";
|
||||
sha256 = "0ay9hfix3x53f39my02071dzxrw69d4zx5zirxwmmmyxmkaays3r";
|
||||
url = "http://elpa.gnu.org/packages/sisu-mode-7.1.8.el";
|
||||
sha256 = "12zs6y4rzng1d7djl9wh3wc0f9fj0bqb7h754rvixvndlr5c10nj";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
@ -1492,10 +1532,10 @@
|
||||
}) {};
|
||||
sotlisp = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
|
||||
pname = "sotlisp";
|
||||
version = "1.4.1";
|
||||
version = "1.5.1";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/sotlisp-1.4.1.el";
|
||||
sha256 = "1v99pcj5lp1xxavghwv03apwpc589y7wb8vv6w3kai7483p13z5j";
|
||||
url = "http://elpa.gnu.org/packages/sotlisp-1.5.1.el";
|
||||
sha256 = "1dm2pl4i091gi5lljl68s6v3l3904jj38v56qjblm160wjiahgkm";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
@ -1518,10 +1558,10 @@
|
||||
}) {};
|
||||
stream = callPackage ({ elpaBuild, emacs, fetchurl, lib }: elpaBuild {
|
||||
pname = "stream";
|
||||
version = "2.1.0";
|
||||
version = "2.2.0";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/stream-2.1.0.el";
|
||||
sha256 = "05fihjd8gm5w4xbdcvah1g9srcgmk87ymk3i7wwa6961w5s01d5y";
|
||||
url = "http://elpa.gnu.org/packages/stream-2.2.0.el";
|
||||
sha256 = "0i6vwih61a0z0q05v9wyp9nj5h68snlb9n52nmrv1k0hhzsjmlrs";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
@ -1598,10 +1638,10 @@
|
||||
test-simple = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "test-simple";
|
||||
version = "1.1";
|
||||
version = "1.2.0";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/test-simple-1.1.el";
|
||||
sha256 = "0s8r6kr0a6n1c20fraif2ngis436a7d3gsj351s6icx6bbcjdalw";
|
||||
url = "http://elpa.gnu.org/packages/test-simple-1.2.0.el";
|
||||
sha256 = "1j97qrwi3i2kihszsxf3y2cby2bzp8g0zf6jlpdix3dinav8xa3b";
|
||||
};
|
||||
packageRequires = [ cl-lib ];
|
||||
meta = {
|
||||
@ -1704,10 +1744,10 @@
|
||||
url-http-ntlm = callPackage ({ cl-lib ? null, elpaBuild, fetchurl, lib, ntlm ? null }:
|
||||
elpaBuild {
|
||||
pname = "url-http-ntlm";
|
||||
version = "2.0.1";
|
||||
version = "2.0.2";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/url-http-ntlm-2.0.1.tar";
|
||||
sha256 = "0h6xsm1x7v69kb4shyvv1p4f6sxgcqs5ap6ylqydz10mbcx7aq0w";
|
||||
url = "http://elpa.gnu.org/packages/url-http-ntlm-2.0.2.el";
|
||||
sha256 = "0jci5cl31hw4dj0j9ljq0iplg530wnwbw7b63crrwn3mza5cb2wf";
|
||||
};
|
||||
packageRequires = [ cl-lib ntlm ];
|
||||
meta = {
|
||||
@ -1849,10 +1889,10 @@
|
||||
xelb = callPackage ({ cl-generic, elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "xelb";
|
||||
version = "0.5";
|
||||
version = "0.6";
|
||||
src = fetchurl {
|
||||
url = "http://elpa.gnu.org/packages/xelb-0.5.tar";
|
||||
sha256 = "1wypffg492r2a3h136c6mphsbgimxcipsarm971z56kpy3lwi4sb";
|
||||
url = "http://elpa.gnu.org/packages/xelb-0.6.tar";
|
||||
sha256 = "1m91af5srxq8zs9w4gb44kl4bgka8fq7k33h7f2yn213h23kvvvh";
|
||||
};
|
||||
packageRequires = [ cl-generic emacs ];
|
||||
meta = {
|
||||
|
Loading…
Reference in New Issue
Block a user