diff options
author | William Carroll <wpcarro@gmail.com> | 2022-01-28T06·21-0800 |
---|---|---|
committer | clbot <clbot@tvl.fyi> | 2022-01-29T01·13+0000 |
commit | aa502c3bafe089cde5ebe0a964d1bf435435fabe (patch) | |
tree | d6a4ab0dcf659bc78d489d732ce90f2f3c54a5bb /users/wpcarro | |
parent | cdc18c025a519c23fa4dd9e14781349fcdf4035f (diff) |
feat(wpcarro/emacs): Support marcus.el r/3699
Sometimes I need device-specific Elisp. This is similar to what I'm doing in google-briefcase (my gLinux-specific configuration). Change-Id: Idc4031e74d31a91fb8d943acfaeb90b8742fbfc4 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5084 Reviewed-by: wpcarro <wpcarro@gmail.com> Autosubmit: wpcarro <wpcarro@gmail.com> Tested-by: BuildkiteCI
Diffstat (limited to 'users/wpcarro')
-rw-r--r-- | users/wpcarro/emacs/default.nix | 11 | ||||
-rw-r--r-- | users/wpcarro/nixos/marcus/default.nix | 5 | ||||
-rw-r--r-- | users/wpcarro/nixos/marcus/marcus.el | 37 |
3 files changed, 47 insertions, 6 deletions
diff --git a/users/wpcarro/emacs/default.nix b/users/wpcarro/emacs/default.nix index 40e6f8d65d29..c2669f6949e5 100644 --- a/users/wpcarro/emacs/default.nix +++ b/users/wpcarro/emacs/default.nix @@ -3,12 +3,11 @@ # TODO(wpcarro): See if it's possible to expose emacsclient on PATH, so that I # don't need to depend on wpcarros-emacs and emacs in my NixOS configurations. let - inherit (builtins) path; inherit (depot.third_party.nixpkgs) emacsPackagesGen emacs27; inherit (depot.users) wpcarro; - inherit (pkgs) runCommand writeShellScriptBin; inherit (lib) mapAttrsToList; inherit (lib.strings) concatStringsSep makeBinPath; + inherit (pkgs) runCommand writeShellScriptBin; emacsBinPath = makeBinPath ( wpcarro.common.shell-utils ++ @@ -129,7 +128,7 @@ let makeEnvVars = env: concatStringsSep "\n" (mapAttrsToList (k: v: "export ${k}=\"${v}\"") env); - withEmacsPath = { emacsBin, env ? {} }: + withEmacsPath = { emacsBin, env ? {}, load ? [] }: writeShellScriptBin "wpcarros-emacs" '' export XMODIFIERS=emacs export PATH="${emacsBinPath}:$PATH" @@ -141,12 +140,14 @@ let --no-site-file \ --no-site-lisp \ --load ${./.emacs.d/init.el} \ + ${concatStringsSep "\n" (map (el: "--load ${el} \\") load)} "$@" ''; in { inherit withEmacsPath; - nixos = withEmacsPath { + nixos = { load ? [] }: withEmacsPath { + inherit load; emacsBin = "${wpcarrosEmacs}/bin/emacs"; }; @@ -166,5 +167,5 @@ in { touch $out ''; - meta.targets = [ "nixos" "check" ]; + meta.targets = [ "check" ]; } diff --git a/users/wpcarro/nixos/marcus/default.nix b/users/wpcarro/nixos/marcus/default.nix index fb4442c6ccd9..1de320f10c20 100644 --- a/users/wpcarro/nixos/marcus/default.nix +++ b/users/wpcarro/nixos/marcus/default.nix @@ -3,7 +3,10 @@ let inherit (depot.users) wpcarro; - wpcarrosEmacs = wpcarro.emacs.nixos; + + wpcarrosEmacs = wpcarro.emacs.nixos { + load = [ ./marcus.el ]; + }; quasselClient = pkgs.quassel.override { client = true; diff --git a/users/wpcarro/nixos/marcus/marcus.el b/users/wpcarro/nixos/marcus/marcus.el new file mode 100644 index 000000000000..94dd164a1237 --- /dev/null +++ b/users/wpcarro/nixos/marcus/marcus.el @@ -0,0 +1,37 @@ +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Dependencies +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(require 'display) +(require 'window-manager) + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Monitor Configuration +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +(display-register laptop + :output "eDP-1" + :primary t + :coords (0 0) + :size (1920 1080) + :rate 30.0 + :dpi 96 + :rotate normal) + +(display-arrangement primary :displays (laptop)) + +(setq window-manager-named-workspaces + (list (make-window-manager-named-workspace + :label "Web Browsing" + :kbd "c" + :display display-laptop) + (make-window-manager-named-workspace + :label "Coding" + :kbd "d" + :display display-laptop) + (make-window-manager-named-workspace + :label "Chatting" + :kbd "h" + :display display-laptop))) + +(window-manager-init :init-hook #'display-arrange-primary) |