55 lines
1.4 KiB
Nix
55 lines
1.4 KiB
Nix
|
{ user, config, pkgs, ... }:
|
||
|
|
||
|
let
|
||
|
xdg_configHome = "${config.users.users.${user}.home}/.config";
|
||
|
xdg_dataHome = "${config.users.users.${user}.home}/.local/share";
|
||
|
xdg_stateHome = "${config.users.users.${user}.home}/.local/state"; in
|
||
|
{
|
||
|
|
||
|
# Raycast script so that "Run Emacs" is available and uses Emacs daemon
|
||
|
"${xdg_dataHome}/bin/emacsclient" = {
|
||
|
executable = true;
|
||
|
text = ''
|
||
|
#!/bin/zsh
|
||
|
#
|
||
|
# Required parameters:
|
||
|
# @raycast.schemaVersion 1
|
||
|
# @raycast.title Run Emacs
|
||
|
# @raycast.mode silent
|
||
|
#
|
||
|
# Optional parameters:
|
||
|
# @raycast.packageName Emacs
|
||
|
# @raycast.icon ${xdg_dataHome}/img/icons/Emacs.icns
|
||
|
# @raycast.iconDark ${xdg_dataHome}/img/icons/Emacs.icns
|
||
|
|
||
|
if [[ $1 = "-t" ]]; then
|
||
|
# Terminal mode
|
||
|
${pkgs.emacs}/bin/emacsclient -t $@
|
||
|
else
|
||
|
# GUI mode
|
||
|
${pkgs.emacs}/bin/emacsclient -c -n $@
|
||
|
fi
|
||
|
'';
|
||
|
};
|
||
|
|
||
|
# Script to import Drafts into Emacs org-roam
|
||
|
"${xdg_dataHome}/bin/import-drafts" = {
|
||
|
executable = true;
|
||
|
text = ''
|
||
|
#!/bin/sh
|
||
|
|
||
|
for f in ${xdg_stateHome}/drafts/*
|
||
|
do
|
||
|
if [[ ! "$f" =~ "done" ]]; then
|
||
|
echo "Importing $f"
|
||
|
filename="$(head -c 10 $f)"
|
||
|
output="${xdg_dataHome}/org-roam/daily/$filename.org"
|
||
|
echo '\n' >> "$output"
|
||
|
tail -n +3 $f >> "$output"
|
||
|
mv $f done
|
||
|
fi
|
||
|
done
|
||
|
'';
|
||
|
};
|
||
|
}
|