diff options
-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) |