Commit graph

52 commits

Author SHA1 Message Date
Akib Azmain Turja
3a6f418f55
* eat.texi (Top): Add "Sixel" to table of contents 2024-03-15 01:32:41 +06:00
Akib Azmain Turja
25989bf714
; * eat.texi (Password Input): Fix command name 2024-03-15 01:26:11 +06:00
Akib Azmain Turja
77bc6d7acc
Allow customizing the default shell
* eat.el (eat-default-shell-function, eat-shell)
(eat-tramp-shells): New user option.
* eat.el (eat-default-shell): New function.
* eat.el (eat--1, eat): Call the function specified in
'eat-default-shell-function' to get the default shell.
* eat.texi (Changing Shell): New chapter.
2024-01-04 12:00:46 +06:00
Akib Azmain Turja
c91451f2d1
; Release version 0.9.4
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2023-12-15 22:27:53 +06:00
Akib Azmain Turja
8ea30af42f
; * eat.texi (Fonts): Fix italic face name 2023-11-07 12:57:23 +06:00
Akib Azmain Turja
dcd214edbf
; eat.texi (Shell Annotation): Fix reference 2023-11-05 11:03:03 +06:00
Akib Azmain Turja
c890bb240b
; Release version 0.9.3
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2023-10-19 00:14:16 +06:00
Akib Azmain Turja
c071e9e5e3
; Release version 0.9.2
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2023-10-10 00:25:12 +06:00
Akib Azmain Turja
db63d46739
; Release version 0.9.1
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2023-10-09 00:25:02 +06:00
Akib Azmain Turja
38ba9a99b0
; Release version 0.9
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2023-10-08 12:58:34 +06:00
Akib Azmain Turja
fac3f746cd
Support rendering Sixel with XPM images
* eat.el (eat--t-sixel-render-bitmap): Support conversion to
XPM format.
* eat.el (eat-sixel-render-formats): Add XPM to the default.
* eat.el (eat-term-set-parameter, eat--sixel-render-format):
Support XPM as an allowed format.
* eat.texi (Sixel): Update.
2023-10-03 18:51:24 +06:00
Akib Azmain Turja
852168d716
Allow customizing Sixel scaling and aspect ratio
* eat.el (eat-sixel-scale, eat-sixel-aspect-ratio): New user
option.
* eat.el (eat--t-term): Remove slot 'sixel-image-height'.  New
slot 'sixel-image-extra-props'.
* eat.el (eat--t-sixel-flush-line): Give more control to the UI
on the image properties.
* eat.el (eat-term-set-parameter): Don't treat parameter
'sixel-image-height' specially.  Treat parameter
'sixel-image-extra-properties' specially.
* eat.el (eat--set-term-sixel-params): New function.
* eat.el (eat-exec, eat--eshell-setup-proc-and-term): Set Sixel
related terminal parameters with 'eat--set-term-sixel-params'.
* eat.texi (Sixel): Document 'eat-sixel-scale' and
'eat-sixel-aspect-ratio'.
2023-10-02 13:43:01 +06:00
Akib Azmain Turja
7c1dde6f1a
Add command 'eat-send-password'
* eat.el (eat-send-password): New command.
* eat.texi (Password Input): New chapter.
2023-09-24 21:41:41 +06:00
Akib Azmain Turja
fe9a128d6c
Integrate Isearch with line mode input history
* eat.el (eat-line-input-history-isearch): New user option.
* eat.el (eat-line-mode-map): Bind 'M-r' to
'eat-line-history-isearch-backward-regexp'.
* eat.el (eat-line-mode): Error if process isn't running.
* eat.el (eat--line-history-isearch-message-overlay)
(eat--saved-line-input-history-isearch): New variable.
* eat.el (eat--line-delete-input): Remove.
All callers changed.
* eat.el (eat-line-history-isearch-backward-regexp)
(eat-line-history-isearch-backward): New command.
* eat.el (eat--line-history-isearch-setup)
(eat--line-history-isearch-end, eat--line-history-isearch-wrap)
(eat--line-history-isearch-search, eat--line-goto-input)
(eat--line-history-isearch-message)
(eat--line-history-isearch-push-state)
(eat--line-history-isearch-pop-state): New function.
* eat.el (eat-mode): Make
'eat--line-history-isearch-message-overlay',
'isearch-search-fun-function', 'isearch-message-function',
'isearch-wrap-function' and 'isearch-push-state-function'
buffer-local.  Add 'eat--line-history-isearch-setup' to
'isearch-mode-hook' locally.
* eat.texi (Line Mode): Document this new feature.
2023-09-23 20:33:30 +06:00
Akib Azmain Turja
db6c64d029
Move to the input line automatically in line mode
* eat.el (eat-line-auto-move-to-input): New user option.
* eat.el (eat--line-move-to-input): New function.
* eat.el (eat--line-mode): Add/remove 'eat--line-move-to-input'
to 'pre-command-hook' locally.
* eat.texi (Line Mode): Document 'eat-line-auto-move-to-input'.
2023-09-23 12:40:23 +06:00
Akib Azmain Turja
44e9a6f5de
Rename prompt mode to line mode and generalize it
* eat.el: Rename prompt mode to line mode, also rename related
symbols to have 'eat-line-' or 'eat--line-' prefix.
* eat.el (eat-enable-native-shell-prompt-editing): Rename to
'eat-enable-auto-line-mode'.
* eat.el (eat--line-mode-enter-auto)
(eat--line-mode-exit-auto): New function.
* eat.el (eat--post-prompt, eat--post-cont-prompt): Call
'eat--line-mode-enter-auto' to enter line mode.
* eat.el (eat--pre-cmd): Call 'eat--line-mode-exit-auto'.
* eat.el (eat--get-shell-history): Populate input ring
unconditionally.
* eat.el (eat-emacs-mode, eat-semi-char-mode, eat-char-mode):
Call 'eat--line-mode-exit' to exit line mode.
* eat.el (eat--line-mode): Move all logic to 'eat-line-mode',
'eat--line-mode-exit' and 'eat--line-mode-exit-auto'.
* eat.el (eat-line-send): Make non-interactive.  Reset input
history cycling variables.
* eat.el (eat-line-send-input): New argument NO-NEWLINE.
* eat.el (eat-mode): Don't disable undo information recording.
* eat.el (eat--process-output-queue): Disable undo information
recording while process output.
* eat.texi (Line Mode): New section in chapter 'Input Modes'.
* eat.texi (Line Mode Integration): New section in chapter
'Shell Integration'.
* eat.texi (Native Shell Prompt Editing): Remove section.
* README.org (Usage): Avoid the term "keybinding mode", use
"input mode" instead as the manual uses it.  Document line
mode.
* README.org (NonGNU ELPA): Emacs 28 has NonGNU ELPA enabled by
default, so remove unnecessary instructions.
2023-09-23 02:15:45 +06:00
Akib Azmain Turja
0fe5d5cb9d
Allow customizing Sixel rendering format
* eat.el (eat-sixel-render-formats): New user option.
* eat.el (eat-eshell-fallback-if-stty-not-available): Fix
customization type.
* eat.el (eat--t-term): Rename slot 'sixel-display-method' to
'sixel-render-format'.
All callers changed.
* eat.el (eat--t-sixel-flush-line): New support render format,
'none'.
* eat.el (eat-term-set-parameter): Rename parameter
'sixel-display-method' to 'sixel-render-format'.
All callers changed.
* eat.el (eat--sixel-render-format): New function.
* eat.el (eat-exec, eat--eshell-setup-proc-and-term): Set
'sixel-render-format' according to user customization.
2023-09-18 15:08:32 +06:00
Akib Azmain Turja
b2ad1be411
Add message passing support
* eat.el (eat-message-handler-alist): New user option.
* eat.el (eat--handle-message): New function.
* eat.el (eat--handle-uic, eat--eshell-handle-uic): Handle
message passing sequence.
* eat.texi (Message Passing): New section in chapter "Shell
Integration".
* integration/bash (__eat_enable_integration): Remove the
unnecessary complex code to update PROMPT_COMMAND.
* integration/bash (_eat_msg):
* integration/zsh (_eat_msg):
New function.
2023-09-17 21:58:40 +06:00
Akib Azmain Turja
d83f53990f
Document prompt mode
* eat.texi (Shell Integration): Divide into sections.  Add new
section 'Native Shell Prompt Editing'.
* README.org (Usage): Document "prompt" mode.
* README.org (Comparison With Other Terminal Emulators): Update
comparison.
2023-09-14 15:43:24 +06:00
Akib Azmain Turja
598c6827ba
; Fix typo in the menu of Info manual 2023-07-28 23:44:25 +06:00
Akib Azmain Turja
092bdd9b95
; Release version 0.8
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2023-04-13 17:55:57 +06:00
Akib Azmain Turja
c51446bafb
New command 'eat-narrow-to-shell-prompt'
* eat.el (eat--post-prompt): Put the 'eat--shell-prompt-begin'
text property at the beginning of shell prompt.
* eat.el (eat--correct-shell-prompt-mark-overlays): Don't try
to go outside accessible portion of buffer when the buffer is
narrowed.
* eat.el (eat-narrow-to-shell-prompt): New command.
* eat.el (eat-mode-map): Bind key sequence 'C-x n d' to
'eat-narrow-to-shell-prompt'.
* eat.el (eat--filter-buffer-substring): Remove all text
properties added on UI side before passing buffer substring to
'eat-term-filter-string'.
* eat.texi (Shell Integration): Document
'eat-narrow-to-shell-prompt'.
2023-04-09 17:31:14 +06:00
Akib Azmain Turja
a20c01e012
; Release version 0.7
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2023-04-02 20:01:51 +06:00
Akib Azmain Turja
322e10c713
Inform about unlisted semi-char mode exceptions
* eat.texi (Input Modes): Inform about unlisted semi-char mode
exceptions.
* README.org: Inform about unlisted semi-char mode exceptions.
Add Zsh integration instructions.
2023-04-02 14:17:14 +06:00
Akib Azmain Turja
b986063994
Support DECSCUSR control function
* eat.el (eat-very-visible-vertical-bar-cursor-type)
(eat-vertical-bar-cursor-type, eat-horizontal-bar-cursor-type)
(eat-very-visible-horizontal-bar-cursor-type): New user
options.
* eat.el (eat--t-term): New slot 'cur-visible-p'.  Remove slot
'cur-blinking-p'.  Change the default value of 'cur-state' to
':block'.
* eat.el (eat--t-reset): Don't reset slot 'cur-blinking-p'.
Reset slot 'cur-visible-p'.  Reset 'cur-state' to ':block'.
Reset cursor state to ':block'.
* eat.el (eat--t-set-cursor-state): Set slot 'cur-visible-p' to
the current visibility of cursor.  Set slot 'cur-state' to the
shape of cursor, regardless of visibility.
* eat.el (eat--t-default-cursor): Rename to
'eat--t-show-cursor'.  Don't change any cursor state except
visibility.
* eat.el (eat--t-invisible-cursor): Rename to
'eat--t-hide-cursor'.  Don't change any cursor state except
visibility.
* eat.el (eat--t-set-cursor-style): New function.
* eat.el (eat--t-blinking-cursor, eat--t-non-blinking-cursor):
Update to handle new cursor shapes properly.
* eat.el (eat--t-set-modes): Call 'eat--t-show-cursor' instead
of 'eat--t-default-cursor'.
* eat.el (eat--t-reset-modes): Call 'eat--t-hide-cursor'
instead of 'eat--t-invisible-cursor'.
* eat.el (eat--t-handle-output): Handle DECSCUSR control
function.
* eat.el (eat-term-cursor-type): Return ':invisible' if cursor
is invisible, otherwise the value of slot 'cur-state'.  Update
the list of possible cursor states in the docstring.
* eat.el (eat-term-set-cursor-function): Update the list of
possible cursor states and fallback cursor state in the
docstring.
* eat.el (eat--cursor-blink-mode): Add
'eat--cursor-blink-stop-timers' to 'kill-buffer-hook'.
* eat.el (eat--set-cursor): Support new cursor states.  Update
the list of possible cursor states in the docstring.
* eat.texi (Cursor Types): Document new user options
'eat-vertical-bar-cursor-type',
'eat-very-visible-vertical-bar-cursor-type',
'eat-horizontal-bar-cursor-type' and
'eat-very-visible-horizontal-bar-cursor-type'.
2023-03-31 17:51:15 +06:00
chriselrod
644d01f6fd
; eat.texi (Hello Terminal): Fix typo 2023-03-31 11:42:24 +06:00
Akib Azmain Turja
48202c147b
Suggest to invoke 'eat-compile-terminfo' in manual
* eat.texi (Not Recognized, Garbled Text): Suggest to do
'M-x eat-compile-terminfo' when the Terminfo databases aren't
working properly.
2023-03-31 11:10:07 +06:00
Akib Azmain Turja
792a98810e
Implement Zsh integration
* integration/zsh: New file.
* eat.texi (Shell Integration): Add instructions for Zsh.
* integration/bash: Always return zero on succuss.
2023-03-31 00:05:33 +06:00
Akib Azmain Turja
eab01e693b
Add new command 'eat-compile-terminfo'
* eat.el (eat-compile-terminfo): New command.
* eat.texi (Hello Terminal): Refer to 'Common Problems'.
* eat.texi (Common Problems): Add instructions to compile
Terminfo databases with 'eat-compile-terminfo'.
2023-03-30 13:25:16 +06:00
Akib Azmain Turja
26d83d04c1
Update manual to correctly describe command 'eat'
* eat.texi (Hello Terminal): Update to match with the current
behavior of command 'eat'.
2023-03-29 23:09:30 +06:00
Akib Azmain Turja
5a2123910a
; Release version 0.6.1
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2023-03-28 14:08:07 +06:00
Akib Azmain Turja
f2bca97ac6
; Release version 0.6
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2023-02-08 21:22:48 +06:00
Akib Azmain Turja
b8c661c6fa
* eat.texi (Querying Before Kill): New chapter 2023-02-08 21:19:56 +06:00
Akib Azmain Turja
d66c55a285
; Release version 0.5
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2023-01-22 22:44:24 +06:00
Akib Azmain Turja
e12a5be607
; Update copyright years
* eat.el:
* eat.texi:
Update copyright year to add 2023.
2023-01-22 22:42:40 +06:00
Akib Azmain Turja
417e7d2362
Auto reload Eat when "semi-char" map is customized
* eat.el (eat--load-file-path, eat--being-loaded): New
variable.
* eat.el (eat-semi-char-non-bound-keys)
(eat-eshell-semi-char-non-bound-keys): Reload Eat when
customized.  Document what to do if changed from Lisp.
* eat.el (eat-update-semi-char-mode-map)
(eat-eshell-update-semi-char-mode-map): New function.
* eat.el (eat-reload): New command.
* eat.texi (Semi-char Mode): Document what to do if the lists
of not bound keys are changed from Lisp.
2023-01-19 22:46:37 +06:00
Akib Azmain Turja
beb4a57c6f
Document some new user options
* eat.texi (Semi-char Mode): Document
'eat-semi-char-non-bound-keys' and
'eat-eshell-semi-char-non-bound-keys'.
* eat.texi (Input Invisible): New section.
2023-01-18 17:22:13 +06:00
Akib Azmain Turja
9a432eef11
; Release version 0.4
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2022-12-28 22:54:31 +06:00
Akib Azmain Turja
fcc02df105
; Release version 0.3.1
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2022-12-21 01:42:43 +06:00
Akib Azmain Turja
d87392e571
; Release version 0.3
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2022-12-17 01:11:42 +06:00
Akib Azmain Turja
8fce5fe928
; Release version 0.2.3
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2022-12-13 23:45:55 +06:00
Akib Azmain Turja
6756e72d88
; Release version 0.2.2
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2022-12-11 19:45:48 +06:00
Akib Azmain Turja
ab52caff52
; Release version 0.2.1
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update.
2022-12-11 00:43:49 +06:00
Akib Azmain Turja
b6caebb0ab
; Release 0.2
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Update with new entries.
2022-12-10 17:43:47 +06:00
Akib Azmain Turja
e05931d7e9
Document annotation correction delay user option
* eat.texi (Performance Tuning): Document the purpose and the
use of 'eat-shell-prompt-annotation-correction-delay' user
option.
2022-12-07 12:00:41 +06:00
Akib Azmain Turja
e287487b42
Document everything about shell integration
* eat.texi (Shell Integration): Move to be the first chapter of
Part III.  Document everything about shell integration.
* eat.texi (Directory Tracking): Merge with the node 'Shell
Integration'.
2022-12-06 23:37:08 +06:00
Akib Azmain Turja
d918dbae87
Add shell integration script for GNU Bash
* integration/bash: New file.
* eat.el (eat-term-shell-integration-directory): New variable.
Contains path to the directory containing the scripts,
automatically updated when Eat is updated.
* eat.el (eat-exec, eat-eshell-mode): New enviroment variable
'EAT_SHELL_INTEGRATION_DIR'.
* eat.texi (Shell Integration): New chapter.
* eat.texi (Directory Tracking): Refer to 'Shell Integration'.
2022-12-03 11:14:01 +06:00
Akib Azmain Turja
eac1165a1a
Support directory tracking with OSC 7
* eat.el: Require 'url'.
* eat.el (eat-enable-directory-tracking): New user option.
* eat.el (eat--t-term): New slots: 'cwd' and 'set-cwd-fn'.
* eat.el (eat--t-set-cwd, eat-term-cwd): New function.
* eat.el (eat-term-set-cwd-function): New function and
generalized variable.
* eat.el (eat--t-handle-output): Handle OSC 7.
* eat.el (eat--set-cwd): New function.
* eat.el (eat-exec): Use 'eat--set-cwd' to change current
working directory.
* eat.el (eat--eshell-invocation-directory): New variable,
local in Eshell buffers when 'eat-eshell-mode' is enabled.
* eat.el (eat--eshell-setup-proc-and-term): Save the invocation
directory of process.
* eat.el (eat--eshell-cleanup): Revert working directory to
invocation directory.
* eat.el (eat--eshell-local-mode): When enabling, make
'eat--eshell-invocation-directory' local variable and kill when
disabling.
* eat-tests.el (eat-test-set-cwd): New test.
* eat.texi (Directory Tracking): New chapter.
2022-12-01 01:40:17 +06:00
Akib Azmain Turja
16d9a5074f
; Bump version to 0.1.1
* eat.el:
* eat.texi:
Bump version.
* ChangeLog: Add ChangeLog.
2022-11-30 13:09:02 +06:00
Akib Azmain Turja
de93ce07e3
Document eat-eshell-visual-command-mode in manual
* eat.texi (Eshell Terminal): Document
'eat-eshell-visual-command-mode' and suggest to set
'eshell-visual-commands' to nil.
2022-11-30 13:01:42 +06:00