85 lines
1.9 KiB
Bash
Executable File
85 lines
1.9 KiB
Bash
Executable File
#!/bin/bash
|
|
# Main Emacs launcher with mode selection
|
|
# Usage: em [mode] [args...]
|
|
|
|
SCRIPT_DIR="$(dirname "$0")"
|
|
|
|
show_help() {
|
|
cat << EOF
|
|
Emacs Terminal Mode Launcher
|
|
|
|
Usage: em [mode] [args...]
|
|
|
|
Available modes:
|
|
mail - Launch mu4e email client
|
|
feeds - Launch Elfeed RSS reader
|
|
dev - Launch development environment with Treemacs
|
|
magit - Launch Magit git interface
|
|
compare - Compare two files with ediff
|
|
dired - Launch Dired file manager
|
|
portfolio - Launch portfolio tracker
|
|
org - Launch Org mode
|
|
terminal - Launch terminal emulator in Emacs
|
|
quick - Quick mode without config (emacs -Q)
|
|
help - Show this help message
|
|
|
|
Without mode argument, launches standard Emacs in terminal.
|
|
|
|
Examples:
|
|
em # Launch standard Emacs
|
|
em mail # Launch email client
|
|
em dev myproject/ # Open project in dev mode
|
|
em compare f1.txt f2.txt # Compare two files
|
|
em magit /path/to/repo # Open Magit in specific repo
|
|
|
|
EOF
|
|
}
|
|
|
|
if [ $# -eq 0 ]; then
|
|
# No arguments, launch standard emacs
|
|
emacs -nw
|
|
exit 0
|
|
fi
|
|
|
|
MODE=$1
|
|
shift
|
|
|
|
case "$MODE" in
|
|
mail)
|
|
exec "$SCRIPT_DIR/emacs-mail" "$@"
|
|
;;
|
|
feeds)
|
|
exec "$SCRIPT_DIR/emacs-feeds" "$@"
|
|
;;
|
|
dev)
|
|
exec "$SCRIPT_DIR/emacs-dev" "$@"
|
|
;;
|
|
magit)
|
|
exec "$SCRIPT_DIR/emacs-magit" "$@"
|
|
;;
|
|
compare)
|
|
exec "$SCRIPT_DIR/emacs-compare" "$@"
|
|
;;
|
|
dired)
|
|
exec "$SCRIPT_DIR/emacs-dired" "$@"
|
|
;;
|
|
portfolio)
|
|
exec "$SCRIPT_DIR/emacs-portfolio" "$@"
|
|
;;
|
|
org)
|
|
exec "$SCRIPT_DIR/emacs-org" "$@"
|
|
;;
|
|
terminal)
|
|
exec "$SCRIPT_DIR/emacs-terminal" "$@"
|
|
;;
|
|
quick)
|
|
exec "$SCRIPT_DIR/emacs-quick" "$@"
|
|
;;
|
|
help|--help|-h)
|
|
show_help
|
|
;;
|
|
*)
|
|
# Unknown mode, treat as file argument
|
|
emacs -nw "$MODE" "$@"
|
|
;;
|
|
esac |