about summary refs log tree commit diff
Commit message (Collapse)AuthorAgeFilesLines
* termview: update _last_mark even on newlineSören Tempel2021-06-011-2/+1
| | | | | | | | Most REPLs will write a new prompt on newline but when starting a graphical application from a shell (e.g. gitk) no output will be written to the PTY after the newline. This causes _last_mark to not be updated and causes cursor_at_end to always return False making it impossible to quit the application using termios.VINTR.
* termview: assign name and func in loop conditionSören Tempel2021-06-011-2/+1
|
* Allow toggling wordwrap/autoscroll using a key bindingSören Tempel2021-06-012-6/+11
| | | | | | I find it somewhat unpleasent to heavily rely on the mouse. Especially considering that toggeling autoscroll is something I do a lot (e.g. when using cat(1) on a text document).
* terminal: Create terminal-specific action signals using a dictSören Tempel2021-06-011-7/+10
|
* Add command-line flag to hide the vertical scrollbarSören Tempel2021-06-012-2/+8
| | | | | Unfortunately, it does not seem to be possible to hide the scrollbar using the standard Gtk CSS configuration mechanism.
* README.md: Update FAQ to mention implemented buffer searchSören Tempel2021-06-011-2/+2
|
* TODO.txt: Add todo entry regarding echo modeSören Tempel2021-05-311-1/+4
|
* README.md: Fix font configuration in example CSS configuration fileSören Tempel2021-05-311-4/+8
|
* README.md: Change cursor color too in configuration exampleSören Tempel2021-05-311-0/+1
|
* completion: Fix check for absolute pathSören Tempel2021-05-311-1/+1
|
* README.md: Update features sectionSören Tempel2021-05-311-7/+4
|
* TODO.txt: UpdateSören Tempel2021-05-311-2/+0
|
* Document limitation of __clear_viewSören Tempel2021-05-311-0/+1
|
* Add comment to update_sizeSören Tempel2021-05-311-0/+6
|
* Preliminary tab completion supportSören Tempel2021-05-315-3/+136
|
* Scroll to string matched by SearchBarSören Tempel2021-05-302-4/+7
|
* terminal: Restore focus to TermView after closing SearchBarSören Tempel2021-05-301-0/+9
|
* Preliminary TextBuffer SearchBar supportSören Tempel2021-05-303-3/+83
| | | | | | Still lacking some configuration options (highlight all, case insensitive search, …) and focus is not currently restored to the TermView on close currently.
* Add ctrl+l keybinding to clear everything except current lineSören Tempel2021-05-293-2/+11
|
* Only import gi (and specify Gtk version) onceSören Tempel2021-05-294-9/+2
|
* README.md: Update short descriptionSören Tempel2021-05-291-1/+1
|
* terminal: Reduce priority of PTY SourceSören Tempel2021-05-291-0/+1
| | | | | With the default priority, the rendering thread would starve if the PTY already has input ready. For example, when executing yes(1).
* Merge branch 'limit-scroll-buffer'Sören Tempel2021-05-294-10/+41
|\
| * Limit amount of lines stored in buffer using command-line flagSören Tempel2021-05-293-6/+5
| |
| * termview: Allow limiting the amount of lines stored in used bufferSören Tempel2021-05-291-4/+36
|/
* TODO.txt: UpdateSören Tempel2021-05-261-3/+7
|
* Update documentation to reflect addition of history supportSören Tempel2021-05-262-2/+1
|
* history: simplify get_entry query even furtherSören Tempel2021-05-261-2/+1
| | | | | | Since 61ca4b802c7df75de8a31c6e409eeae15190accf the explicit size check should no longer be needed, i.e. offset selects nothing already if the offset exceeds the amount of available entries.
* terminal: Reset self.reset_history_index() directlySören Tempel2021-05-251-5/+3
| | | | | after reaching current entry. While at it, also attempt to clarify the comment.
* Clear the line if Down is pressed at the most recent history entrysterni2021-05-251-5/+16
| | | | | | | | | | | This mimicks the behavior familiar from most shells. We also make sure that this doesn't happen when we hit the oldest history entry -- in that case we will just do nothing if Up is pressed. To implement this correctly we need to distinguish between a position in the history and no position in the history. We encode the latter using `None` and just call `reset_history_index()` in case we encounter it to reacquire a point of reference.
* terminal: Use single case distinction to set hscroll/wrapmodeSören Tempel2021-05-251-4/+14
| | | | | Makes the code a bit more readable IMHO. Also add a comment explaining why we can't use use automatic horizontal scrolling in the first place.
* Add workaround for annoying scrollbar if wordwrap is enabledsterni2021-05-252-1/+7
| | | | | | | | | | | | | | | | | | | | | | | | | There is an issue [1] in GTK 3 which causes the automatic hyphenation of GtkTextViews to cause a horizontal scroll bar to appear despite it being not necessary (in our case the horizontal scrollbar is rendered over the hyphens which is hardly cause for concern). Ideally we would just disable auto hyphenation, but this doesn't seem to be possible [2] in GTK 3 yet. As a workaround we just disable horizontal scrolling altogether in in update_wrapmode() if wordwrap is enabled. While we're at it add a note about the GTK 4 feature [3] which would allow us to disable auto hyphenation. For GTK 3 it seems to require to set a pango [4] attribute in the pango layout used for rendering the widget which is not exposed in a modifiable way by GtkTextView unfortunately -- or at least I haven't been able to figure out how the desired result could be achieved. [1]: https://gitlab.gnome.org/GNOME/gtk/-/issues/2384 [2]: https://gitlab.gnome.org/GNOME/gtk/-/issues/2530 [3]: https://docs.gtk.org/gtk4/property.TextTag.insert-hyphens.html [4]: See these solutions of other projects that ran into this issue: https://github.com/mate-desktop/caja/pull/1334 https://gitlab.gnome.org/GNOME/nautilus/-/merge_requests/482
* history: simplify get_entry querySören Tempel2021-05-252-3/+5
| | | | | By sorting rows in descending order instead of performing an arithmetic operation on the maximum value.
* history: Add explicit ORDER BY to get_entrySören Tempel2021-05-251-1/+1
| | | | Should be the default behaviour though.
* README.md: Add notcurses to related workSören Tempel2021-05-241-0/+1
|
* Merge branch 'history'Sören Tempel2021-05-244-0/+138
|\
| * history: Clarify HISTFILE commentSören Tempel2021-05-241-1/+2
| |
| * history: add docstring to History classSören Tempel2021-05-241-0/+4
| |
| * history: Add To-Do regarding employed SQL queriesSören Tempel2021-05-241-0/+2
| |
| * history: add docstring to get_entrySören Tempel2021-05-241-0/+5
| |
| * Make sure history does not go out-of-boundsSören Tempel2021-05-242-5/+14
| | | | | | | | | | | | Return None if no history entry was found and reset the offset if so. Without this patch the offset would be continuously incremented/decrement.
| * history: Use .rstrip() for removing trailing newlinesSören Tempel2021-05-241-5/+2
| |
| * history: Strip entries if HISTSIZE is exceededSören Tempel2021-05-241-2/+15
| |
| * Add preliminary support for executable-specific historySören Tempel2021-05-244-0/+107
|/ | | | | | The current executable is determined by using tcgetpgrp on the PTY file descriptor. All history entries are stored in an SQL lite database on a per-line basis.
* terminal: Use Gtk.CheckMenuItem for config optionsSören Tempel2021-05-241-6/+3
|
* README.md: Add pager FAQSören Tempel2021-05-241-0/+9
|
* Make wordwrap configurable using context menuSören Tempel2021-05-241-14/+25
|
* README.md: Mention keybinding configurationSören Tempel2021-05-241-0/+2
|
* Use activate instead of select signal for MenuItemSören Tempel2021-05-241-1/+1
|
* Toggle autoscroll via context menuSören Tempel2021-05-241-0/+21
|