muxile
widecharwidth
Our great sponsors
muxile | widecharwidth | |
---|---|---|
4 | 2 | |
91 | 50 | |
- | - | |
1.2 | 4.0 | |
about 1 year ago | 8 months ago | |
Shell | Python | |
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
muxile
-
Ask HN: Admittedly Useless Side Projects?
I have plenty of ultra niche projects and I never regretted working on any of them. On the contrary - i use them daily and it brings me much joy. Here are three:
https://github.com/bjesus/muxile lets me continue my tmux session on the phone, bridging the two over WebSockets. How many people use tmux extensively AND want to continue on the phone? Not much i guess...
https://github.com/bjesus/callibella is my way to sync my personal calendar to my work calendar without revealing my personal entries. It's very useful for me but less needed if your personal calendar is Google because i heard they have their own integration.
https://github.com/bjesus/air is my AwesomeWM based Interface to my PostmarketOS Kobo e-reader. Linux on your e-reader isn't a huge market share to begin with...
-
Mosh: The Mobile Shell
Love mosh, back when the connection was bad I had it aliased to ssh. Somewhat relevant: if you actually a need to take your shell mobile, check out my tmux plugin that allows you to quickly transfer your tmux session to your phone without any app, using websockets and a QR code: https://github.com/bjesus/muxile
- Show HN: Muxile – a tmux plugin that puts your terminal on your mobile
- Muxile lets you view and control tmux from your mobile
widecharwidth
-
Terminal support for Emoji – or why terminals don't like families
>For example, iTerm2 considers the "rosette" emoji to have width 1
The reason for this is quite possibly that Unicode 9 changed the width for some codepoints (mostly emoji) from 1 to 2, and iTerm until very recently (don't know if it's released yet) defaulted to the Unicode 8 widths, with an opt-in escape sequence to change to Unicode 9.
>This approach comes from the wcwidth utility, and the comment at the top of the C source file provides further insight into the difficulties faced here.
That's link goes to Markus Kuhn's implementation from 2007. It supports Unicode 5, and is by now woefully out of date. You don't want to use it anymore.
Most terminals have their own definition, and the annoying part is that the client application and the terminal need to have theirs in sync or they get weird glitches when moving the cursor.
Shameless plug: Fish's solution is widecharwidth[0], which is a python script that parses the Unicode data files and generates a wcwidth for C++, Javascript and Rust. It's still a wcwidth, meaning that it has issues with joining code points, but it's at least a start. It's up-to-date with Unicode 14 and, unless they change the data format (again) should be easy to update to future Unicode releases.
It's public domain and used by at least fish and WezTerm.
-
Mosh: The Mobile Shell
With fish we've made the experience that relying on libc isn't good enough.
Specifically in the case of connecting to a server that typically has an old libc with old unicode information, from a desktop that has a much newer system, or in case of ambiguous characters, where libc will just give you one width that might not match what the terminal actually renders (and they frequently have configuration options to change it!).
So we've made something we call widecharwidth (https://github.com/ridiculousfish/widecharwidth), which is a python script that parses the unicode datafiles (UnicodeData.txt, emoji-data.txt and friends) and generates a header you can #include.
And someone's opened a PR to mosh to integrate it: https://github.com/mobile-shell/mosh/pull/1143
What are some alternatives?
tmux-xpanes - Awesome tmux-based terminal divider
unicode-properties - Provides fast access to unicode character properties
tmux - An arctic, north-bluish clean and elegant tmux color theme.
DomTerm - DOM/JavaScript-based terminal-emulator/console
tmux-yank - Tmux plugin for copying to system clipboard. Works on OSX, Linux and Cygwin.
mosh - Mobile Shell
guardian-agent - [beta] Guardian Agent: secure ssh-agent forwarding for Mosh and SSH
Windows Terminal - The new Windows Terminal and the original Windows console host, all in the same place!
easy-wg-quick - Creates Wireguard configuration for hub and peers with ease
mosh - Mobile Shell