juho-p / fatty Goto Github PK
View Code? Open in Web Editor NEWTabbed terminal for Cygwin based on mintty
License: GNU General Public License v3.0
Tabbed terminal for Cygwin based on mintty
License: GNU General Public License v3.0
How to truncate the tab title? I want to do so because sometimes the title (path) is too long (even longer than the tab width), and I just want to show the last part of a path, or something else shorter.
Screenshot.
Please! :D
A package would spare users the tedious process of building.
My reading of the help led me to believe that the -h parameter would prevent the tab from closing when the command finished.
As a trivial example,
fatty -b "date" --hold always (or maybe --hold start, I've tried both)
I would have though this would leave the tab open with the date output and the cursor beneath it, but what happens is that the command runs (probably the underlying shell exits) and the tab closes immediately.
I just updated gcc-g++ and gcc-core on my cygwin install (using babun) and while attempting to build, I get these errors (attached as a link)
I'm not too familiar with actually building programs, I just want a nicer way to have a tabbed terminal than using conemu.
Thanks for checking it out!
The page https://github.com/juho-p/fatty says that "You can spawn multiple tabs." but I can't figure out how. The example command given launches fatty with only one tab and doesn't seem to be modifiable to make multiple tabs at once.
I would like to use one command to launch fatty with 3 tabs with a different program running in each of them. If it requires calling a script that's okay.
Hi,
Can you please pass this repo to @paolo-sz? It looks like he has more time to update this repo.
Thanks!
Best,
Alex
when I follow the instructions and make the files, it turns out so many 'multiple definition of xxxx' errors
Following command doesn't work:
find . -type f -name "*"
FIND: Parameter format not correct
vi and vim editors need q! to quit even without the file is changed.
The original cygwin64 terminal does not have these issue.
My cygwin64 version is:
@ cygcheck -V
cygcheck (cygwin) 3.3.5
System Checker for Cygwin
Copyright (C) 1998 - 2022 Cygwin Authors
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
I am on windows 11 laptop.
The normal cygwin mintty terminal has /usr/local/bin:/usr/bin
at the start of the PATH
variable, which FaTTY doesn't have out of the box (only the Windows paths are on FaTTY).
It can be "fixed" by putting export PATH=/usr/local/bin:/usr/bin:$PATH
in the .bashrc
file, but this is just a work-around.`
I just cloned and built commit-tag 7fc5832. It looks great! I think I found a bug - it looks like FaTTY ignores the 'BoldAsFont' setting. Changing the option in the Fatty's preference window has no effect. Changing it in the config file has no effect either. It seems like BoldAsFont is always-on.
I extended the tab height by
g_render_tab_height = win_tab_height() + 5;
and then I noticed there's a vertical bar which is shorter than tab height inbetween two tabs, do you know how to get rid of it?
+----------------------------------------------+
| tab1 | tab2 |
+----------------------------------------------+
^
|
a solid short line
I noticed the maximized window got shrinked a little at the bottom after I close a tab with C-S-w
.
This happens when and only when from 2 tabs to no tab (1 tab).
Does FaTTY supports windows subsystem for linux? If no, how hard can it be to accomplish it?
I downloaded the latest versions of all the required packages from cygwin64 download UI, then followed the given instructions to install fatty, but I got the below errors when running make:
windres --preprocessor 'gcc -E -xc -DRC_INVOKED -MMD -MT build/res.o -DTARGET=x86_64-pc-cygwin -D_GNU_SOURCE -DNDEBUG' res.rc res.o /bin/sh: gcc -E -xc -DRC_INVOKED -MMD -MT build/res.o -DTARGET=x86_64-pc-cygwin -D_GNU_SOURCE -DNDEBUG: No such file or directory windres: preprocessing failed. make[1]: *** [Makefile:52: build/res.o] Error 1 make[1]: Leaving directory '/cygdrive/c/Users/bongh/fatty/src' make: *** [Makefile:2: exe] Error 2
I also got a warning below, but not sure if that is a real issue:
gcc -DTARGET=x86_64-pc-cygwin -D_GNU_SOURCE -DNDEBUG -std=gnu99 -include std.h -Wall -Wextra -Wundef -Os -c termmouse.c -o build/termmouse.o -MMD -MT build/termmouse.o termmouse.c: In function ‘term_mouse_click’: termmouse.c:336:23: warning: implicit conversion from ‘mouse_button’ to ‘enum <anonymous>’ [-Wenum-conversion] 336 | term->mouse_state = b; | ^ termmouse.c: In function ‘term_mouse_move’: termmouse.c:515:43: warning: implicit conversion from ‘enum <anonymous>’ to ‘mouse_button’ [-Wenum-conversion] 515 | send_mouse_event(term, MA_MOVE, term->mouse_state, mods, bp); |
Could you please help guide me how to overcome the issue? Thanks a lot!
I installed Cygwin and then fatty as in the readme file here: https://github.com/juho-p/fatty
When I cd to my project and git pull or git fetch, it just hang on forever.
I tried "git checkout " or "git status" it worked.
So I think there must be something wrong with the credentials.
All the above commands work with Cygwin normally.
Feature suggestion - it would be great if the currently active tab was highlighted clearly, inverse video (i.e. black on green goes to green on black) or bold/font-change might work nicely.
Hi,
this the only way I found on GitHub to get in touch with you...
I notice the Fatty code is based on a very old version of mintty source code so I took some time to try to realign to the most recent version.
You can have a look of what I have done on https://github.com/paolo-sz/fatty.
The code compiles and Fatty does not suddenly crash just after starting but I'm 200% sure the re-alignment is full of hidden issues (maybe big issues).
The changes are pretty wide and I do not know if they are of any interest to you so I have chose to not directly open a pull request.
Before starting the mintty code realignment I did some commits in order to fix (or try to fix) a couple of issues of your current code (e804395, f3664a0, 332b9ce, 8833422). These single commits could be merged into your tree without too much issues.
Also I made an additional improvement using the TabCtrl window provided by Microsoft in order to manage the tabs (832b2fc). Also this commit could be merged into your tree without too much issues.
In all the other commits (mintty alignment), most of the changes are "simply" a fix due to your changes on term and child structures (pointers to) but there are also big features additions like searchbar (4955e5d).
Also, along the way, mintty started using Shift+LeftArrow/RightArrow so I changed the tab swap key combination in Ctrl+Shift+PgUp/PgDn and the previous/next tab key combination in Ctrl+PgUp/PgDn (which, by the way, are the standard key combination for the same feature on linux gnome terminal).
Let me know if you are interested in any of the commit I have done.
According to manual mintty supports following functionality:
Searching in the text and scrollback buffer
Alt-F3 opens a search bar with an input field for a search string. Matches are highlighted in the scrollback buffer. Enter/Shift+Enter find the next/previous position of the match and scrolls the scrollback buffer accordingly. The appearance of the search bar and the matching highlight colours can be customized.
Matching is case-insensitive and ignores combining characters.
But pressing Alt-F3 in fatty does nothing.
Hello,
i love your project but i have a big problem, i can't kill a process with "CTRL-C", do you have a solution ?
i have to kill the tab & restart my program.
Thank you
When I use the example in the readme:
fatty -b "source $HOME/.bashrc; uname -a; exec bash"
I get the following window flash real fast and close:
I had to use a screen capture to grab it because it was only for a frame or 2 - sorry about the desktop stuff in the bg - it says:
/bin/bash: uname: command not found
/bin/bash: line 0: exec: bash: command not found
how can i change tab colour, font and font size
In README screenshot I see that tab name indicate your path, but in my situation all tab name is '/bin/bash', is that normal, or can I fix it?
Enjoy using FaTTY btw, nice work!
I'm aware this may not be fatty's fault, but as I am a newbie and it doesn't compile, I thought I'll ask here - I also did a little websearch for this error, to no avail.
I did as required, installed all the packages described in fatty readme. after starting make, this is what happens after a minute or so:
g++ -DTARGET=i686-pc-cygwin -DNDEBUG -Wall -Wextra -std=gnu++11 -Os -c childxx.cc -o build/childxx.o -MMD -MT build/childxx.o
In file included from /usr/lib/gcc/i686-pc-cygwin/5.3.0/include/c++/ext/string_conversions.h:41:0,
from /usr/lib/gcc/i686-pc-cygwin/5.3.0/include/c++/bits/basic_string.h:5251,
from /usr/lib/gcc/i686-pc-cygwin/5.3.0/include/c++/string:52,
from /usr/lib/gcc/i686-pc-cygwin/5.3.0/include/c++/stdexcept:39,
from /usr/lib/gcc/i686-pc-cygwin/5.3.0/include/c++/array:38,
from /usr/lib/gcc/i686-pc-cygwin/5.3.0/include/c++/tuple:39,
from /usr/lib/gcc/i686-pc-cygwin/5.3.0/include/c++/functional:55,
from /usr/lib/gcc/i686-pc-cygwin/5.3.0/include/c++/memory:79,
from win.hh:18,
from childxx.cc:1:
/usr/lib/gcc/i686-pc-cygwin/5.3.0/include/c++/cstdlib:126:11: error: ‘::at_quick_exit’ has not been declared
using ::at_quick_exit;
^
/usr/lib/gcc/i686-pc-cygwin/5.3.0/include/c++/cstdlib:149:11: error: ‘::quick_exit’ has not been declared
using ::quick_exit;
^
Makefile:45: recipe for target 'build/childxx.o' failed
make[1]: *** [build/childxx.o] Error 1
make[1]: Leaving directory '/c/~/fatty/src'
Makefile:2: recipe for target 'exe' failed
make: *** [exe] Error 2
if anyone has any idea, it would be of great help. thanks.
I tried fatty -b "bash"
in fatty and it starts bash in a new window instead of in a tab.
I wanted to start Fatty as default, so I changed the shortcut by replacing "mintty.exe" with "fatty.exe" in it's path.
After this change, Fatty started as expected in a single window, but I couldn't use SSH in Cygwin64 anymore.
After lot of searching I found a solution which fixed the mentioned problem, but coused a new one so that two windows where opened now. After further research I found a solution wich makes SSH executable again and opens a single window only:
C:\cygwin64\bin\mintty.exe --nopin -w hide -e /bin/bash -lc fatty
A complete list of options for "mintty.exe" is available at the following URL:
https://mintty.github.io/mintty.1.html
Hope I spare someone the research.
Attached are two screenshots running Vim, one directly under mintty, the other via fatty.
When using cat or zsh to echo the symbol directly to the console in fatty, the symbol is rendered properly, yet when inside of Vim (and presumably other interactive commands) the symbols above and presumably other symbols are not rendered correctly.
Meanwhile, the symbols are rendered properly when running via mintty, with the same minttyrc and vimrc.
Thanks for the great little package. It all compiled and ran fine first time but the keyboard tab navigation isn't working for me - if I click the tab tops with the mouse it switches fine, if I use CTRL+SHIFT+ARROW the tab tops change order but the window contents remain the same (might be swapping the wrong thing).
I'd like to request the ability to rename tabs with ctrl+shift+r. Is this a planned feature or is there a way I can add it myself?
The Ctrl+(Shift+)Tab shortcuts for changing tabs don't seem to work in the current version. Also, is it possible to change tabs with Ctrl+PgUp/Dn? Otherwise the app is very nice, thanks :-)!
In my mintty window in settings I can select theme, which is placed in ~/.mintty/themes
folder, but in fatty I don't see that drop down. So I wonder if I can force use mintty theme somehow, maybe via .minttyrc or source code?
Hi,
I am runnning Windows (and Cygwin) in case sensitive mode. That means that the names D2d1.h and d2d1.h does not refer to the same file in my file system.
Fatty includes and D2d1.h and links with -lD2d2 when it should use d2d1.h1 and -ld1d2.
Had to change this to be able to build and it won't affect you who are running Windows case insentive, so could you please look into changing this?
Cheers
//Jan Flyborg
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.