static-haskell-nix
termite
Our great sponsors
static-haskell-nix | termite | |
---|---|---|
7 | 35 | |
382 | 2,850 | |
- | - | |
5.2 | 1.1 | |
4 months ago | almost 3 years ago | |
Nix | C++ | |
- | - |
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.
static-haskell-nix
-
Trying to build a statically linked binary against glibc (Linux)
Using Nix: https://github.com/nh2/static-haskell-nix
- Generating static binary + CI questions
-
GHC reports "Loading static libraries is not supported"
To debug this type of problem (I have to debug linker errors regularly as part of static-haskell-nix):
-
[ANN] Monomer, a GUI library for Haskell
In static-haskell-nix there is currently this PR to enable support for that: https://github.com/nh2/static-haskell-nix/pull/108
- What's all the hype with Nix?
-
Termite Is Obsoleted by Alacritty
I think there's a misunderstanding: Most people want to use the .a file from their Linux/package distro that provides static libraries, such as Alpine Linux or nixpkgs.
Such package distributions just use the build system default options to build static libs. For example, Alpine might use `-Ddefault_library=both`.
> if they could keep that libgtk_static around
Why make these special cases instead of just using the build system defaults? That's easier to maintain and more obvious.
> I'd be interested to hear if static linking GTK even has that many benefits
One benefit is almost-infinite backwards compatibility that the Linux and Xorg ABIs provide, being able to make GUI apps that work out of the box everywhere.
Another is that these generated executables are very small, e.g. 12 MB for a full static GTK GUI app [1], or 6 MB when xz-compressed.
This is much less than when using shared libraries. One reason is that dead-code elimination works much better for static linking: It links in only the functions you actually use. For dynamic linking, it's always the entire .so.
[1] https://github.com/nh2/static-haskell-nix/releases/tag/c-sta...
-
Clodl: Turn dynamically linked ELF binaries into self-contained closures
GTK can be statically linked.
Example executable:
https://github.com/nh2/static-haskell-nix/releases/tag/c-sta...
It lost this ability temporarily when switching to Meson, but I fixed it in GTK3 and GTK4. But I just checked and apparently it is broken again:
https://gitlab.gnome.org/GNOME/gtk/-/issues/3774#note_109746...
termite
-
Contour: Modern and Fast Terminal Emulator
- you can also rectangular select like in vim, and then press either p (includes LF) or which joins the multiline clipboard text into a single line (removing LF's), that payed off a lot for output like `git status` and wanting to operate on parts of the output (files e.g.)
Have a look at the still young website's documentation here: https://contour-terminal.org/input-modes/#supported-text-obj...
for a more complete look of what you can do with the keyboard (normal mode) :)
[1] https://github.com/thestinger/termite/
-
GNOME’s horrid coding practices
Also, regarding VTE, the author of termite (discontinued terminal emulator) expressed similar concerns about the GNOME devs. Apparently, they have little interest in making the library useful to people not working on GNOME apps: https://github.com/thestinger/termite
- Wayland Core Protocol Is Tailored Only for Gnome and That’s Not a Good Thing
-
Help me to find a minimal terminal that supports full transparency
Termite is obsolete by Alacritty.
-
Why are kitty and alacritty so popular? Where's the foot love?
I simply do not want to use anything libvte based. And that's what sakura is and termite used to be.
-
Exploring System76's New Rust Based Desktop Environment
History and experience tells a different story [1]. Never trust a library that is maintained by GNOME.
1.: https://github.com/thestinger/termite
-
System76: A Case Study on How Not To Collaborate With Upstream
This post by the Termite developer, with respect to VTE, is quite instructive
- Why is termite not in arch's official repositories?
- Recommended terminal emulator for swaywm?
-
Show HN: Sixel-tmux displays graphics even if your terminal has no Sixel support
> https://github.com/thestinger/termite/blob/master/README.rst...
Wow, this confirms a lot of my impressions:
>> In 2012, we submitted a tiny patch exposing the APIs needed for the keyboard text selection, hints mode and other features. Despite support from multiple other projects, the patch was rejected. It's now almost a decade later and no progress has been made. There is no implementation of these kinds of features in VTE and it's unlikely they'll be provided either internally or as flexible APIs. This is the tip of the iceberg when it comes to their hostility towards other projects using VTE as a library. GTK and most of the GNOME project are much of the same. Avoid them and don't make the mistake of thinking their libraries are meant for others to use.
This is exactly why sixel-tmux exists as a separate entity!
> Yeah, I read the entire conversation and if sixel support lands in tmux upstream, it would indeed be good news.
I'll keep my fingers crossed, but right now, there seems to be a lot of good will. I will do everything I can.
What are some alternatives?
monomer - An easy to use, cross platform, GUI library for writing Haskell applications.
kitty - Cross-platform, fast, feature-rich, GPU based terminal
haskell.nix - Alternative Haskell Infrastructure for Nixpkgs
alacritty - A cross-platform, OpenGL terminal emulator.
Cabal - Official upstream development repository for Cabal and cabal-install
st - build of the suckless simple terminal with patches for alpha, font2, copyurl, openclipboard, invert, appsync, xresources, scrollback, w3m, keyboard select, boxdraw
gi-gtk-declarative - Declarative GTK+ programming in Haskell
gruvbox - Retro groove color scheme for Vim
Windows Terminal - The new Windows Terminal and the original Windows console host, all in the same place!
nixos-config - Personal collection of NixOS config files
dunst - Lightweight and customizable notification daemon