Giter Club home page Giter Club logo

lxterminal's Introduction

LXTerminal

LXTerminal is a VTE-based terminal emulator with support for multiple tabs. It is completely desktop-independent and does not have any unnecessary dependencies. In order to reduce memory usage and increase the performance all instances of the terminal are sharing a single process.

Building and installation

Dependencies

This dependency is listed as the package name used in Debian. If your distribution is neither Debian nor its derivatives, you could find equivalents for your target distribution.

Basic requirements for building:

  • libglib2.0-dev
  • libgtk2.0-dev
  • libvte-dev
  • autotools-dev
  • intltool

For generating man pages (./configure --enable-man):

  • xsltproc
  • libxml2-utils
  • docbook-xml
  • docbook-xsl

Building on Debian, Ubuntu or their derivatives from git

You may try:

# Install tools and build dependencies
sudo apt install git xsltproc libxml2-utils docbook-xml docbook-xsl
sudo apt build-dep lxterminal

# Get the source code from git
git clone https://github.com/lxde/lxterminal.git
cd lxterminal

# Build and install
./autogen.sh
./configure --enable-man
make
sudo make install

Note that if you get the message E: You must put some 'source' URIs in your sources.list, it means you need to add deb-src URI into /etc/apt/sources.list to find the build dependencies. Try duplicating the URI of the main repository and replace deb with deb-src.

lxterminal's People

Contributors

aileven avatar aldatsa avatar anubisg1 avatar atriwidada avatar billy3321 avatar brother avatar danwin avatar finboyslick avatar forfolias avatar gilir avatar helix84 avatar helixbot avatar ib avatar jalakas avatar jesjimher avatar juergenhoetzel avatar kbirabwa avatar knedlyk avatar lstranger avatar mbouzada avatar medicalwei avatar mseed avatar paxman avatar pcman avatar pjotr123 avatar smarquespt avatar sv99 avatar vililikku avatar wandrien avatar zvacet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lxterminal's Issues

Feature request: reorder tabs

Thank you for LXTerminal; it's small, fast, and a good balance of features. However, I really miss to be able to reorder tabs. Sometimes, specially when comparing different terminal outputs, it is very useful to reorder tabs. Other terminal emulators allow it (Sakura, for example), using drag and drop with the mouse.

Could you please consider adding it? Thanks.

Can't compile: several files missing

$ autoconf
$ ./configure
checking whether make supports nested variables... yes
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
[...]
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating data/Makefile
config.status: creating data/lxterminal.conf
config.status: error: cannot find input file: `po/Makefile.in.in'
$ make
cd . && /bin/bash ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
make all-recursive
make[1]: Entering directory '/lxterminal'
Making all in src
make[2]: Entering directory '
/lxterminal/src'
Makefile:391: .deps/lxterminal-lxterminal.Po: No such file or directory
Makefile:392: .deps/lxterminal-preferences.Po: No such file or directory
Makefile:393: .deps/lxterminal-setting.Po: No such file or directory
Makefile:394: .deps/lxterminal-unixsocket.Po: No such file or directory
make[2]: *** No rule to make target '.deps/lxterminal-unixsocket.Po'. Stop.
make[2]: Leaving directory '/lxterminal/src'
Makefile:377: recipe for target 'all-recursive' failed
make[1]: *
* [all-recursive] Error 1
make[1]: Leaving directory '/lxterminal'
Makefile:317: recipe for target 'all' failed
make: *
* [all] Error 2

0.1.11 compiles just fine. If you made any changes to the build process, please, update the README. In any case, it is clear that something is broken.

WINDOWID variable not being set makes it impossible to figure out last active/focused shell

Terminal emulators like aterm, konsole, mate-terminal, sakura, urxvt, xfce4-terminal and xterm set the WINDOWID environment variable to the window id of the window corresponding to the shell.

For terminal emulators that have the same child process in each window, like xfce4-terminal, that variable makes it possible to figure out which shell in one of those windows was used last.

Lxterminal, like xfce4-terminal, has the same child process in each window, but lacks the WINDOWID variable. This matters in cases like this one, for instance https://github.com/wknapik/lastcwd, where the user wants to figure out the last CWD (the README explains the WINDOWID problem in more detail).

There is no feasible workaround, because WINDOWID has to be set after the window is created, but will not show up in /proc/pid/environ if set after the window/shell is spawned, so this has to be done by lxterminal - no wrapper, or profile script can solve this, at least as far as I can tell.

It seems like it would be trivial to implement, would not cause any problems and would put lxterminal in line with classic terminal emulators like xterm and urxvt.

[bug] unwanted additional window spawned

Greetings,

with version 0.3.1 if i launch lxterminal when i already have a lxterminal window open, it launches an addition windiow

how to reproduce:
lxterminal &
lxterminal &

i now have 3 lxterminal windows open instead of 2

lxterminal &
lxterminal &
lxterminal &

i now have 5 lxterminal windows open instead of 3

Crash on arm64

Hi, I observe a crash with 0.3.1 on arm64 on gentoo. It does not happen with 0.2.0.

dmesg output:

[ 1042.559123] lxterminal[5862]: unhandled level 1 translation fault (11) at 0x0000000c, esr 0x92000005
[ 1042.559147] pgd = ffffffc07129e000
[ 1042.562888] [0000000c] *pgd=0000000000000000

[ 1042.567718] CPU: 3 PID: 5862 Comm: lxterminal Not tainted 3.10.104 #5
[ 1042.567732] task: ffffffc071006700 ti: ffffffc06b108000 task.ti: ffffffc06b108000
[ 1042.567757] PC is at 0x7f93680f30
[ 1042.567768] LR is at 0x7f9377fda4
[ 1042.567780] pc : [<0000007f93680f30>] lr : [<0000007f9377fda4>] pstate: 80000000
[ 1042.567789] sp : 0000007fcf30edf0
[ 1042.567799] x29: 0000007fcf30edf0 x28: 0000007fcf30f0b8 
[ 1042.567814] x27: 0000005581afc020 x26: 0000007f937d4000 
[ 1042.567830] x25: 0000007f937d5000 x24: 0000007f937d4000 
[ 1042.567855] x23: 0000000000000001 x22: 0000000000000000 
[ 1042.567870] x21: 0000000000000002 x20: 0000000000000000 
[ 1042.567884] x19: 0000005581aeb680 x18: 0000000000000008 
[ 1042.567898] x17: 0000007f937d5288 x16: 0000007f93680f30 
[ 1042.567912] x15: 0000000000000002 x14: 0000007f93675c68 
[ 1042.567927] x13: 0000007f93679418 x12: 0000000000000000 
[ 1042.567941] x11: 0000007f93a5a530 x10: 0000000000000000 
[ 1042.567955] x9 : 0000007f9592a900 x8 : 0000000000000001 
[ 1042.567969] x7 : 0000000000000000 x6 : 0000007f9592a900 
[ 1042.567983] x5 : 0000000000000000 x4 : 0000007f9592a900 
[ 1042.567997] x3 : 0000000000000000 x2 : 2f9797d512b76e00 
[ 1042.568011] x1 : 0000000000000000 x0 : 0000000000000000 

Cannot use "Tab" in a shortcut

I want to switch to the next tab using the Ctrl-Tab key combination. Neither "Tab" not "tab" are accepted by the preferences dialog. To make things worse, they are silently replaced with an old settings.

I have found that "ht" and "BackTab" are accepted. But Ctrl-Tab still doesn't work.

I observe the issue with the current git version of lxterminal.

LXTerminal ignores XOFF and YOFF parts of argument to --geometry

See the "Geometry Specifications" section of man 7 x for more information. In particular:

Although the layout of windows on a display is controlled by the window manager that the user is running (described below), most X programs accept a command line argument of the form -geometry WIDTHxHEIGHT+XOFF+YOFF (where WIDTH, HEIGHT, XOFF, and YOFF are numbers) for specifying a preferred size and location for this application's main window.

While LXTerminal determines the number of rows from the HEIGHT part and the number of columns from the WIDTH part, including XOFF and YOFF parts of different values has no effect on the terminal window's position. For example, lxterminal --geometry=80x24+0+0 should position a terminal window at the top left of the desktop, while lxterminal --geometry=80x24-0-0 should position a terminal window at the bottom right of the desktop.

Feature Request: Urgency Hints as Visual Bell

I think it would be a great addition if lxterminal would allow to set urgency hints in addition to audible bells.

This should be as easy as calling gtk_window_set_urgency_hint(GTK_WINDOW(…), TRUE) and introducing a new config option for this kind of "visual bell".

Edit: A quick look reveals that lxterminal is not handling the terminal bell itself. To register a callback in VTE other terminal emulators use something like g_signal_connect(G_OBJECT(vte_object), "bell", G_CALLBACK(my_custom_beep_function), NULL).

Feature request: Scroll buffer without CTRL

Right now, if one wants to scroll line-by-line with arrow keys, you must use shift+ctrl+up/down arrow, whereas if you want to scroll pages, you use shift+pgup/pgdown. When switching between line-by-line scrolling and page scrolling you have to constantly toggle the ctrl key while also switching between arrow/pg keys. Eliminating the ctrl key would be nice for this.

mouse wheel scroll

howdy! I'd like to be able to use the mouse wheel to scroll the terminal history up and down. This doesn't seem to be working right now. I'm not certain this isn't user error, but is it possible you can help me troubleshoot?

thanks,

  • patrick

window size and tabbing

When a tab is created the window height increases to accommodate the tab bar. This is OK, but undesirable. However, the issue is that the window height doesn't come back to normal when the tab is closed and the tab bar is gone. So, every time a tab is opened and closed the window height keeps on increasing.

Ideally, 1) either, opening or closing tabs shouldn't change window size, 2) or, if opening increases height, closing should revert the height back to the original height.

random freeze/crash when copying text with mouse

Problem description

I'm experiencing random hangs and codedump of the whole lxterminal. It happens most frequently when I copy text by double-clicking left mouse button. It is not consistently reproducible. I would say it happens ~1% of the time.

Here is the stacktrace I found in journal from the most recent crash:

Mar 07 16:14:25 laptop systemd-coredump[5495]: Process 4767 (lxterminal) of user 1000 dumped core.
                                               
                                               Stack trace of thread 4767:
                                               #0  0x00007f3376d1ceab raise (libc.so.6)
                                               #1  0x00007f3376d075b9 abort (libc.so.6)
                                               #2  0x00007f3376d07491 __assert_fail_base.cold.0 (libc.so.6)
                                               #3  0x00007f3376d15612 __assert_fail (libc.so.6)
                                               #4  0x00007f337751939a poll_for_event (libX11.so.6)
                                               #5  0x00007f337751943e poll_for_response (libX11.so.6)
                                               #6  0x00007f3377519735 _XEventsQueued (libX11.so.6)
                                               #7  0x00007f337751c3f8 _XData32 (libX11.so.6)
                                               #8  0x00007f33774f5d0c XChangeProperty (libX11.so.6)
                                               #9  0x00007f33793fde25 gdk_window_set_icon_list (libgdk-x11-2.0.so.0)
                                               #10 0x00007f33798d3e95 gtk_window_realize_icon (libgtk-x11-2.0.so.0)
                                               #11 0x00007f33798d9b97 gtk_window_realize (libgtk-x11-2.0.so.0)
                                               #12 0x00007f3377fc1c8d g_closure_invoke (libgobject-2.0.so.0)
                                               #13 0x00007f3377fd5386 signal_emit_unlocked_R (libgobject-2.0.so.0)
                                               #14 0x00007f3377fde30a g_signal_emit_valist (libgobject-2.0.so.0)
                                               #15 0x00007f3377fde903 g_signal_emit (libgobject-2.0.so.0)
                                               #16 0x00007f33798cc7a4 gtk_widget_realize (libgtk-x11-2.0.so.0)
                                               #17 0x00007f33798d7be8 gtk_window_show (libgtk-x11-2.0.so.0)
                                               #18 0x00007f3377fc1c8d g_closure_invoke (libgobject-2.0.so.0)
                                               #19 0x00007f3377fd5386 signal_emit_unlocked_R (libgobject-2.0.so.0)
                                               #20 0x00007f3377fde30a g_signal_emit_valist (libgobject-2.0.so.0)
                                               #21 0x00007f3377fde903 g_signal_emit (libgobject-2.0.so.0)
                                               #22 0x00007f33798cbd96 gtk_widget_show (libgtk-x11-2.0.so.0)
                                               #23 0x000055e67e631c91 lxterminal_initialize (lxterminal)
                                               #24 0x000055e67e62c9ea handle_request (lxterminal)
                                               #25 0x00007f3379d2291d g_main_context_dispatch (libglib-2.0.so.0)
                                               #26 0x00007f3379d22ce8 g_main_context_iterate.isra.21 (libglib-2.0.so.0)
                                               #27 0x00007f3379d23012 g_main_loop_run (libglib-2.0.so.0)
                                               #28 0x00007f337978e95f gtk_main (libgtk-x11-2.0.so.0)
                                               #29 0x000055e67e62c7bb main (lxterminal)
                                               #30 0x00007f3376d0911b __libc_start_main (libc.so.6)
                                               #31 0x000055e67e62c7fa _start (lxterminal)
                                               
                                               Stack trace of thread 4770:
                                               #0  0x00007f3376dd5429 __poll (libc.so.6)
                                               #1  0x00007f3379d22c56 g_main_context_iterate.isra.21 (libglib-2.0.so.0)
                                               #2  0x00007f3379d22d80 g_main_context_iteration (libglib-2.0.so.0)
                                               #3  0x00007f3379d22dd1 glib_worker_main (libglib-2.0.so.0)
                                               #4  0x00007f3379d4b01a g_thread_proxy (libglib-2.0.so.0)
                                               #5  0x00007f33770ac594 start_thread (libpthread.so.0)
                                               #6  0x00007f3376ddff4f __clone (libc.so.6)
                                               
                                               Stack trace of thread 4775:
                                               #0  0x00007f3376dd5429 __poll (libc.so.6)
                                               #1  0x00007f3379d22c56 g_main_context_iterate.isra.21 (libglib-2.0.so.0)
                                               #2  0x00007f3379d23012 g_main_loop_run (libglib-2.0.so.0)
                                               #3  0x00007f337873485a gdbus_shared_thread_func (libgio-2.0.so.0)
                                               #4  0x00007f3379d4b01a g_thread_proxy (libglib-2.0.so.0)
                                               #5  0x00007f33770ac594 start_thread (libpthread.so.0)
                                               #6  0x00007f3376ddff4f __clone (libc.so.6)

...
Mar 07 16:14:26 laptop abrt-notification[5586]: Process 18557 (lxterminal) crashed in _nl_load_domain.cold.0()

If the problem is not in your code, can you tell me on which project should I open the ticket ? I cannot decypher it from the stacktrace.

Versions:

  • lxterminal-0.3.2-1.fc28.x86_64
  • libX11-1.6.5-7.fc28.x86_64
  • Linux laptop 4.17.18-200.fc28.x86_64 #1 SMP Wed Aug 22 19:08:07 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Additional info:

  • it started happening after upgrading from LXDE Fedora 26? to 28.
  • AFAIK, I have just basic lxterminal customization (scrollback lines increased, hidden some UI elements, etc)
  • I usually disable the default clipit app after OS installation (I will try to have it running, just to see if it happens again)
  • it never hangs on "paste" (middle button). Only "copy" is the problem.

Unable to renaming "tabs" titles

Distro: Debian Testing (LXDE)
Shipped version: 0.3.0

I'm unable to change the window/tab title with "CRTL-SHIT-I": A pop-up appears but the "ok" button is missing and pressing ENTER nothing happens

Is it possible set window size?

Is it possible set window size?

Once we open new terminal window, the size too small, may we custom set the default windows size ?

such as 800x600 px or what ever.

Closing tab with middle-button ?

Currently an opened tab in LXTerminal is closed when one issues a middle-button click within the tag title. I'm not sure to understand the rationale of this action, I was many times trapped by this feature while trying to paste a text within an opened tab (action of the middle-button, as is done in most linux environments) and having unfortunately placed my pointer a bit too high in the terminal window: the immediate result is an immediate and unwanted disparition of the tab. This trap being hard-coded (in function terminal_tab_button_press_event), it was possible to recompile the package with this middle-click action commented out, which for me is much more secure. But maybe this action would better be parametrized from the configuration ?

Write unit test for lxterminal

Hi

I wanna contribute for the development of lxterminal, but I'm not really know about it much.

So as a start I want write unit test for it using cmoka (https://cmocka.org/).

Can some devs kindly show me which module/section need to implement fisrt?

Please add a Search function similar to GNOME Terminal

Please add the ability to search the scrollback buffer (backwards or forwards) similar to how GNOME Terminal does. Optional regex feature would be nice, but simple substring match will do the job. Note the standard approach of piping stdout to grep is insufficient for my purposes.

Cannot rename tab

Cannot rename tab
Control+Shitf+i only provides input box for new name, no option for ok or cancel

feature request: run command on bell

LxTerminal already implements an "audible bell" feature. However, it would be useful to have lxterminal run an external command whenever a bell character (\a) is printed.

The use-case I have in mind is sending a custom notification to my window manager whenever a long-running command finishes, as I don't have a PC speaker nor want to emulate one.

I might try to implement this if I get positive feedback.

Feature request: ask confirmation on exit

Hi

It would be nice if lxterminal asked for confirmation before exiting, because current behaviour (closing without confirmation) makes it easy to lose lots of tabs, which may contain open files, SSH connections, and other sensitive things.

Perhaps it could be configurable via settings, and/or only ask confirmation when there's more than one tab open, but I think it would be very useful and would avoid a lot of disasters :-)

feature request: move a tab into its own window

This is common is many "tabbed" applications.

For example, Firefox has "Move to New Window" and Chrome allows mouse "drag" to move a tab into its own window.

I sometimes have multiple tabs open and then want to see the contents of two tabs side-by-side. It would be very helpful to be able to "pop out" one of the tabs into its own window.

Thanks!

Install document need improve

I wan to contribe the lxterminal install document

if we want to compile from sources, we need to prepare some dependency libarary

I am testing under Ubuntu

apt-get install autoconf xsltproc docbook-xml docbook-xsl
apt-get build-dep lxterminal
./autogen.sh
./configure --prefix=/usr --enable-man
make && sudo make install

Alt+# sent to vte after tab switch in 0.1.11

I'm using lxterminal 0.1.11 on Gentoo and noticed that when I switch tabs with Alt+, this key combination is sent to the terminal after the switch, resulting in (arg: <number>) being printed in bash. Sorry for the noise if this has been fixed in more recent versions.
My vte version is 0.28.2 and my Gtk version is 2.24.28.

lxterminal don't support startup notifications

At least this version doesn't support them:

[ss@arch ~]$ lxterminal --version
lxterminal 0.3.2

To test for example using awesome wm
awesome-client 'require("awful.spawn")({"lxterminal"}, { callback = function(c) require("naughty").notify{ text = c.name } end })'

for gvim a notification appear, for lxterminal not.

This leads to different hacks like:
https://awesomewm.org/apidoc/classes/client.html#client.startup_id

Bugs like:
awesomeWM/awesome#2517
awesomeWM/awesome#2491

And switching to xfce4-terminal for no reason other then that.

Allow temporarily disabling ESC character sequences

I'd like to have a setting to disallow ESC character usage temporary. When I'm on a server with multiple users via ssh, someone could write "\033P" (where \033 is the ESC character) to me and then my terminal is broken. (Test it with $ echo -e "\033P")

Changed -e and --command behavior

Running lxterminal on Fedora 23

In previous versions of lxterminal either of these were valid:

lxterminal -e "echo bob"
lxterminal --command "echo bob"

But now this is not possible with the quotations around the command to be run in the new terminal. It seems this is related to d1827de. While these flags can still be used to run commands other terminal emulators seem to accept quotations around the command being passed (tested in terminator and gnome-terminal) also since previous versions of lxterminal did support quotations changing this behavior may break peoples scripts.

ANSI escape sequences not handled correctly

I have observed some strange behaviour from lxterminal when running a mksh shell script, uhr (included in the Debian package under /usr/share/doc/mksh/examples and available from MirBSD CVS here), under lxterminal. This script renders an analogue clock face using ANSI escape sequences and unicode characters.

The expected behaviour is that it will render the boundary of the clock face in non-bold white font (by default rendered as light grey) and the background in black. When the script is started and when the window size is changed, the script recalculates some internal values and displays a progress bar, which is rendered with yellow text on a blue background. This expected behaviour can be observed when I run the script under xterm, gnome-terminal or in tmux under lxterminal.

However, the observed behaviour when the script is run under lxterminal directly (i.e. without tmux) is that after the script has finished loading, the background colour of the terminal is set to blue and the boundary of the clock is yellow, like the progress bar. It should also be noted that the hands of the clock are rendered normally (light grey text and black background) and that the blue background is erased by hands being rendered over it.

I have contacted the maintainer of mksh (and the author of this script) about this behaviour, and their suspicion is that lxterminal is either improperly handling some of the escape sequences in use by the script or improperly reporting the window size in some manner.

This behaviour has been observed with commit hash 1e9f2d4 compiled against GTK+2 on Debian Stretch and with version 0.3.1 compiled against both GTK+2 and GTK+3 on OpenBSD.

unixsocket.c code over optimized

$ gcc --version
gcc (GCC) 7.2.0

When doing a standard build, lxterminal exits immediately. I traced this down the code in unixsocket.c function init():

unlink(socket_path);
g_free(socket_path);
start_controller(&sock_addr, lxtermwin, fd);
return TRUE;

The start_controller() code is called in line and the return code is not set properly. If I pass:

CFLAGS="-O2 -fno-inline-functions-called-once -fno-inline-small-functions" ./configure

and rebuild unixsocket.c, lxterminal then starts normally. This actually looks like a compiler optimization bug to me, but I suggest you address it either as above or with some other way to return the correct value.

-- Bruce Dubbs
linuxfromscratch.org

Enable kinetic scrolling on GTK+3 (Was: Proper scrolling on touchpads)

When scrolling up and down, it currently peacemeal scrolls more than one line at once (lines count depends on the window height). When using a touchpad instead of a mouse wheel, you don't scroll discrete, you can e.g. scroll 0.1 lines in a scroll event, but lxterminal's scrolling doesn't support it yet. I'd like to have it scroll line by line on a touchpad (and a scrolling speed factor depending on the window height). It could add the scrolling distance, multiplied with the scrolling speed factor, to a double and every frame (60 fps) it takes the integer part from the double and scrolls these lines. If scrolling up, the scrolling distance is negative, else it's positive.

Keybinding UI: Prompt user to hit key combinations, rather than typing the key names

I tried to find some config. or preferences regarding setting zoom in/out keybindings (keyboard shortcuts) in lxterminal, but couldn't find it. I am talking about like I used gnome-terminal in which we can do Ctrl Shift + to zoom in. Now I have to go to Preferences to set the font size manually.

If there is any workaround then please help. Thank you.

Using lxterminal on ArchBang.

How to execute code in tabs

Hi,

Im trying to open in bash some tabs

lxterminal \
--tabs =1 --comand = "sleep 20s", 2 --command "sleep 10;" 

but it dosent't work :( Is it possible in lxterminal to open and execute some tabs?

In gnome terminal I can do something like that:

gnome-terminal \
--tab -e "bash -ic \" echo 'First tab' "; exec bash\"" \
--tab -e "bash -ic \"echo 'Second tab' "; exec bash\"" 

feature request: have a option for "Restore previous session"

Every daily work I open my browser and enjoy this feature of this decade - "restore previous session" - for the sake of web development and practicality. But I not enjoy this feature when is to start the terminal emulator. In that case I have to reopen a series of tabs and change directories and start a bunch of developing services. In this way, would be nice to have this feature.

Trying to not just being requestful I ask some relevant question:

  • Fast thinking: that functionality will deviate the philosophy and principles of the project by consumption of memory or others resources?
  • Can I make a fork, implement it (effortfully following the pattern of the project) and make a Pull Request to in some way contribute to the project?

[Feature Request] Ligatures

Hello! Thank you for your work on this project— it has been my terminal of choice for the past year.

I see that QTerminal supports ligatures, but LXTermimal does not. Would it be possible to add this functionality to this terminal as well?

The use case is so that fonts such as Fira Code can render their ligatures, rather than have their raw characters output on the screen.

Critical message when open lxterminal window or tab

When I open lxterminal in Ubuntu default terminal, I found there are some critical message showed on the default terminal.
critical1
The message "GLib-CRITICAL *: g_key_file_set_string: assertion 'key_file != NULL' failed" shows when the lxterminal just opened.
critical2
And the message "GLib-CRITICAL *
: g_str_has_prefix: assertion 'str != NULL' failed" shows when opening a new tab in lxterminal.

With VTE 0.54, hitting X button of one tab closes all tabs

Original bug report: https://bugs.archlinux.org/task/60035

gdb indicates that running gtk_notebook_remove_page(GTK_NOTEBOOK(terminal->notebook), term->index) for the closing tab triggers another child-exited signal, thus causing the next tab to be closed. This procedure is going through recursively and then all tabs are closed.

The relevant change in VTE might be this: https://gitlab.gnome.org/GNOME/vte/commit/0276859709692ec53f35a8cc158d7553a195c730

lxterminal crashes when closing a single tab

If I open an lxterminal instance and close out a single tab, the entire lxterminal crashes.

I opened a bug at the Gentoo bug site as well https://bugs.gentoo.org/690958

** Logs: **
anthony@anthony ~ $ sudo egrep --color -ai 'lxterm.(general protection|segfault)' /var/log/messages
Jun 7 20:11:51 anthony kernel: lxterminal[3074]: segfault at 559658b0ab40 ip 00007f24773ec9e0 sp 00007ffc1cc24798 error 4 in libc-2.29.so[7f24772a0000+15a000]
Jul 3 20:31:52 anthony kernel: lxterminal[3092]: segfault at 30 ip 0000560b9d2a5261 sp 00007ffd43ee6700 error 4 in lxterminal[560b9d29a000+12000]
Jul 19 21:19:28 anthony kernel: lxterminal[7676]: segfault at a0 ip 00007f32a03f0b76 sp 00007ffdbd8f4858 error 4 in libgtk-3.so.0.2404.4[7f32a02fe000+351000]
Jul 20 10:56:58 anthony kernel: lxterminal[3167]: segfault at fe2cf82 ip 00007fb4a6b943ce sp 00007fff1e433ff0 error 4 in libglib-2.0.so.0.5800.3[7fb4a6b2a000+11b000]
Jul 20 13:49:40 anthony kernel: lxterminal[4665]: segfault at 8 ip 00007fb62114d2ff sp 00007ffd551f69f0 error 6 in libglib-2.0.so.0.5800.3[7fb6210e2000+11b000]
Jul 21 13:57:00 anthony kernel: lxterminal[3134]: segfault at 9e72 ip 00007f15809b917a sp 00007ffc6175d7d0 error 4 in libglib-2.0.so.0.5800.3[7f158094e000+11b000]
Jul 21 19:15:59 anthony kernel: lxterminal[3341]: segfault at 4ec8 ip 00007fd0c3a6c17a sp 00007fffd2727f70 error 4 in libglib-2.0.so.0.5800.3[7fd0c3a01000+11b000]
Jul 27 14:56:14 anthony kernel: lxterminal[3090]: segfault at 1 ip 00007fd51f49e17a sp 00007fff8080bf20 error 4 in libglib-2.0.so.0.5800.3[7fd51f433000+11b000]
Jul 27 15:19:44 anthony kernel: lxterminal[12515]: segfault at 8 ip 00007f6668076426 sp 00007ffe4c03d460 error 6 in libglib-2.0.so.0.5800.3[7f666800c000+11b000]
Jul 27 15:38:10 anthony kernel: lxterminal[1516]: segfault at 7fcced7661f0 ip 00007fcb88f69810 sp 00007ffdd611cac8 error 4 in libc-2.29.so[7fcb88e1d000+15a000]
Jul 27 16:33:45 anthony kernel: traps: lxterminal[13545] general protection fault ip:557c3e16f436 sp:7fff5b42b940 error:0 in lxterminal[557c3e16b000+9000]
Jul 27 16:59:39 anthony kernel: traps: lxterminal[14033] general protection fault ip:7f2a95ed2c4c sp:7ffc66d28610 error:0 in libgobject-2.0.so.0.5800.3[7f2a95ea8000+32000]
Jul 27 16:59:44 anthony kernel: traps: lxterminal[13520] general protection fault ip:7f6b3c555c4c sp:7ffe3eab11d0 error:0 in libgobject-2.0.so.0.5800.3[7f6b3c52b000+32000]
Jul 27 21:03:59 anthony kernel: traps: lxterminal[3155] general protection fault ip:555ee8541436 sp:7ffc03f6fc40 error:0 in lxterminal[555ee853d000+9000]
Jul 28 21:12:05 anthony sudo[5187]: anthony : TTY=pts/2 ; PWD=/home/anthony ; USER=root ; COMMAND=/bin/egrep --color -ai lxterm.
(general protection|segfault) /var/log/messages
anthony@anthony ~ $

anthony@anthony ~ $ eix -I sys-libs/glibc
[I] sys-libs/glibc
Available versions: (2.2) [M]~2.19-r2^s [M]2.23-r4^s [M]~2.24-r4^s [M]2.25-r11^s [M]2.26-r7^s [M]2.27-r6^s 2.28-r6^s 2.29-r2^s **9999^s
{audit caps cet compile-locales custom-cflags debug doc gd hardened headers-only +multiarch multilib nscd profile +rpc selinux split-usr +ssp +static-libs suid systemtap test vanilla}
Installed versions: 2.29-r2(2.2)^s(04:55:31 PM 07/27/2019)(multiarch multilib split-usr ssp -audit -caps -cet -compile-locales -doc -gd -headers-only -nscd -profile -selinux -suid -systemtap -test -vanilla)
Homepage: https://www.gnu.org/software/libc/
Description: GNU libc C library

anthony@anthony ~ $ eix -I lxde-base/lxterminal
[I] lxde-base/lxterminal
Available versions: 0.3.1 ~0.3.2 {gtk3}
Installed versions: 0.3.1(04:33:12 PM 07/27/2019)(gtk3)
Homepage: https://wiki.lxde.org/en/LXTerminal
Description: Lightweight vte-based tabbed terminal emulator for LXDE

anthony@anthony ~ $

anthony@anthony ~ $ ldd -v /usr/lib64/libglib-2.0.so.0.5800.3
linux-vdso.so.1 (0x00007ffc076f3000)
libpcre.so.1 => /lib64/libpcre.so.1 (0x00007f5f848ba000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f5f84897000)
libc.so.6 => /lib64/libc.so.6 (0x00007f5f846c7000)
/lib64/ld-linux-x86-64.so.2 (0x00007f5f84a76000)

Version information:
/usr/lib64/libglib-2.0.so.0.5800.3:
	libpthread.so.0 (GLIBC_2.12) => /lib64/libpthread.so.0
	libpthread.so.0 (GLIBC_2.2.5) => /lib64/libpthread.so.0
	libc.so.6 (GLIBC_2.9) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.3.3) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.16) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.8) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.14) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.10) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.15) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.4) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.17) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.7) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.3.4) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.3) => /lib64/libc.so.6
/lib64/libpcre.so.1:
	libpthread.so.0 (GLIBC_2.2.5) => /lib64/libpthread.so.0
	libc.so.6 (GLIBC_2.14) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.3.4) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.4) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.3) => /lib64/libc.so.6
/lib64/libpthread.so.0:
	ld-linux-x86-64.so.2 (GLIBC_2.2.5) => /lib64/ld-linux-x86-64.so.2
	ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2
	libc.so.6 (GLIBC_2.7) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.14) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.3.2) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.4) => /lib64/libc.so.6
	libc.so.6 (GLIBC_2.2.5) => /lib64/libc.so.6
	libc.so.6 (GLIBC_PRIVATE) => /lib64/libc.so.6
/lib64/libc.so.6:
	ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
	ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2

anthony@anthony ~ $

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.