p-e-w / finalterm

At last – a modern terminal emulator (NO LONGER MAINTAINED)
http://finalterm.org
GNU General Public License v3.0
3.84k stars 179 forks source link

not reading bashrc on startup #322

Open rudrab opened 10 years ago

rudrab commented 10 years ago

Hi, I just found finalterm from a fedora projects's post on google+. And its really nice. One thing I am trying to get is how to enable it to read my bashrc on startup....which it is possibly not doing....as: http://picpaste.com/Untitled2-tSQvoxd9.png

Also, just noticed another point: I cant left click on terminal to select a word, or triple click to select a line (as gnome-terminal).

Are those yet to be implemented? or I am missing something?

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

p-e-w commented 9 years ago

Final Term's startup file sources your .bashrc, so if that does not get loaded there is a bug.

Output selection is being tracked in https://github.com/p-e-w/finalterm/issues/7.

lwandrebeck commented 9 years ago

Although I can see .bashrc being accessed to via strace (tested as user and root, selinux doesn’t seem to be the culprit either, nothing particuliar denied in audit.log) : [root@netbook-home-net ~]# cat finalterm.strace | grep ".bashrc" 11137 faccessat(AT_FDCWD, "/root/.bashrc", R_OK) = 0 11137 open("/root/.bashrc", O_RDONLY) = 3 11137 read(3, "# .bashrc\n\n# User specific alias"..., 176) = 176 11137 stat("/etc/bashrc", {st_mode=S_IFREG|0644, st_size=2815, ...}) = 0 11137 open("/etc/bashrc", O_RDONLY) = 3 11137 read(3, "# /etc/bashrc\n\n# System wide fun"..., 2815) = 2815

Without sourcing .bashrc into finalterm by hand, its values aren’t taken into account.

Errors seen in term launching finalterm where I typed: which ls . .bashrc which ls

* (finalterm:12087): WARNING _: Unsupported control sequence: '\u001b[?1034h' (TERMINAL_STREAM_STREAM_ELEMENT_CONTROL_SEQUENCE_TYPE_DEC_PRIVATE_MODESET) * Message: Partially supported control sequence: '\u001b]0;lwandrebeck@netbook-home-net:~\u0007' (TERMINAL_STREAM_STREAM_ELEMENT_CONTROL_SEQUENCE_TYPE_SET_TEXT_PARAMETERS)

* (finalterm:12087): WARNING _: Unsupported control sequence: '\u001b]7;file://netbook-home-net/home/lwandrebeck\u0007' (TERMINAL_STREAM_STREAM_ELEMENT_CONTROL_SEQUENCE_TYPE_SET_TEXTPARAMETERS) * Message: Partially supported control sequence: '\u001b]0;lwandrebeck@netbook-home-net:~\u0007' (TERMINAL_STREAM_STREAM_ELEMENT_CONTROL_SEQUENCE_TYPE_SET_TEXT_PARAMETERS)

\ (finalterm:12087): WARNING **: Unsupported control sequence: '\u001b]7;file://netbook-home-net/home/lwandrebeck\u0007' (TERMINAL_STREAM_STREAM_ELEMENT_CONTROL_SEQUENCE_TYPE_SET_TEXT_PARAMETERS)

\ (finalterm:12087): WARNING **: TerminalOutput.vala:383: Command start control sequence received while already in command mode

I’ve taken a (quick) look at sources, but have no idea about why it doesn’t work as expected right now. Hope this helps to track things down a bit.

lwandrebeck commented 9 years ago

I think I found the problem. In bash_startup, we have at the end:

Set up termlet aliases

pushd "@PKGDATADIR@/Termlets" > /dev/null for filename in *; do alias $filename="run_termlet '$filename'" done popd > /dev/null

in @PKGDATADIR@/Termlets we have 3 files: ls, ps, wget. Having defined a whatever var in .bashrc, whatever is defined in finalterm, thus .bashrc is correctly read. but bash_startup overrides ls, ps and wget due to the previously cited code.

p-e-w commented 9 years ago

I'm not sure I follow. In particular, what do you mean by

Having defined a whatever var in .bashrc, whatever is defined in finalterm, thus .bashrc is correctly read. but bash_startup overrides ls, ps and wget due to the previously cited code.

Why would bash_startup setting termlet aliases cause .bashrc not to be read? Or is the only problem those aliases, and all your other settings are respected? In that case, I'm afraid that's a Final Term "feature" and fundamental part of its functionality.

lwandrebeck commented 9 years ago

.bashrc is being read. thus, ls becomes say "ls --color=auto" via an alias. Then, alias is redefined « only » as "termlet ls" so we lose --color=auto.

Hope it’s clearer. Now, the point is, if we do keep previously defined values, it may well mess up the termlet… So the best way is probably to forgot these values, but users may be at loss.

p-e-w commented 9 years ago

I think I see a fix that could satisfy all purposes: Include the user's .bashrc not at the beginning but at the end of bash_startup. That way, the user is free to override Final Term's defaults, in line with the way we do configuration for other purposes as well. What do you think?

lwandrebeck commented 9 years ago

That would be an easy fix. But, I think most if not all distros have an alias for ls, so everyone would lose termlet for it. Checked Fedora 20 and CentOS 6. By default, ls is aliased (--color=auto), ps and wget are not. So, that could do the trick. Now we just need to ensure termlet is bug free ;)