transient
neogit
transient | neogit | |
---|---|---|
24 | 54 | |
606 | 3,300 | |
0.3% | 4.1% | |
9.3 | 9.9 | |
3 days ago | 4 days ago | |
Emacs Lisp | Lua | |
GNU General Public License v3.0 only | MIT License |
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.
transient
-
On Desktop GUI Minimalism
> Even in this article just a few sentences after stating we should start from first principles he then jumps into the assumption of the "desktop".
Agree. Although I can see how the idea of "first principles" can be a very difficult starting point. A blank sheet of paper is a scary monster.
There's a huge breadth and depth of non-"desktop" GUIs out there, some (like smartphones) are even wildly successful. It's good to explore them for inspiration. Some of my favourites:
- Arcan (https://arcan-fe.com/about/) - I won't attempt to summarize, just dive in!
- SailfishOS (https://sailfishos.org/) - mobile UI focused on interaction through gestures / swipes; I've used it as my daily driver for a couple years.
- Speaking of mobiles, classic Nokia UIs allowed you to navigate to a specific item in the menu by pressing the corresponding digit on the dial pad. Once you learned where a particular item is, accessing e.g. your SMS inbox was extremely quick.
- Apple Watch / WatchOS (https://www.apple.com/watchos/) - I've always loved the idea of a device where one of the primary interaction methods was a wheel/dial of some sort. The watch even gives you context-sensitive tactile feedback.
- ZUIs in general (https://en.wikipedia.org/wiki/Zooming_user_interface) and the work of Jef Raskin in particular: https://en.wikipedia.org/wiki/Archy_(software) - this is the guy who helped design the Macintosh, but his other work took a radically different route.
- Magit (https://magit.vc/). Many common git operations are reduced to a couple of keystrokes; the obscure features are more discoverable, and the cumbersome procedures (such as rebasing, or staging individual hunks) become simple and intuitive. Also check out transient (https://github.com/magit/transient), which is the "UI toolkit" that powers Magit.
-
Warp is a modern, Rust-based terminal with AI built in
True, and I'd personally rather move away from Emacs to something more modern. (Helix is great, although I appreciate the irony of it being terminal-only, while Emacs supports several different window systems natively.) Magit is the only real reason I'm sticking with Emacs.
Magit itself is powered by <https://github.com/magit/transient>, which I see more as an interaction paradigm than a library; it could enable more ergonomic interaction with other stateful tools that are typically native to the command line / terminal (such as docker/kubectl, systemctl, mpd/mpc, etc). Rather than using Emacs as a middle layer, Transient could build on top of pluggable native toolkit backends, such as Cocoa, Gtk, Win32, or even web or a terminal.
We continue investing into terminals because the terminal remains the lowest common denominator of interacting with a computer. On the other end of the spectrum we have Electron, which has very clear and obvious downsides. I think there is low-hanging fruit with amazing ROI somewhere in the middle, and Magit/Transient is an example of what it could be.
-
What do you use for git integration in neovim?
You can also manage via a holistic UI: - Bisection - Log and reflog, stashes - subtrees, submodules - certain third party subcommands like git-absorb, and extend it with your own - interact with issues and pull requests via forge - pretty much all of the hundreds of CLI flags via a modal UI that got generalized and extracted to a lib called transient - well-integrated diff and conflict resolution (which is mostly just smerge) - the rebase/cherry-pick workflows I liked the best, including support for --update-refs - at any time you can always press a key to see the raw commands and output that it's using, which taught me a ton of corner cases - IMO it has a great manual
-
Transient Demo Requests?
See https://github.com/magit/transient/issues/239 .
-
Transient v0.4.0 released
More information can be found on my blog and in the release notes.
-
Dynamic Transient Infixes Based on Current Values of Other Infixes
AFAIK :if etc. do not "live update", but only function on initial prefix setup (see this issue). You could use a sub-prefix that evaluates settings from its parent to set the available options. Another tip: add an incompatible list so you can't get two desserts:
-
I cannot get EmacSQL to work
Yeah, ok, simplest is then to just trash the transient folder and either let Emacs clone it again on startup, or manually clone it: https://github.com/magit/transient
-
Khoj Chat: A Search Assistant for your Org-Mode Notes
M-x khoj RET c via transient
-
Transient for resizing windows
This is about resizing the frame, but might also be relevant: https://github.com/magit/transient/issues/216.
-
quick-actions.el: Uniform Compile/Run/Debug across programming languages
Will a hydra or a transient menu?
neogit
-
Neovim: creating keymaps in lua
I would use this feature of lazy.nvim in a plugin that I rarely need. Something neogit for example. I can spend hours coding without using it. In that particular case I think is nice to have the option to load it when I actually call it.
-
GitUI
This looks very much like the Noevim plugin I began using about a month ago: neogit[0].
The keybindings were a bit rough, and it took me about an hour of use before I was really comfortable with the overall workflow. Once I was, though, Iโve found it to be much faster than my previous workflow (suspending neovim and using git directly in the shell).
0: https://github.com/NeogitOrg/neogit
-
Is there a discard all option in neogit?
Edit: FYI: I made a feature request and got the answer, that it it possible to visually select the files and discard them like this together.
- Massive Update to Neogit and New Home!
-
What IDEA or Vscode feature/function you want to have in neovim eco-system?
This is what I use for general git interaction and itโs pretty neat: neogit. Also integrates diffview
-
Magit
For neovim users, there's a work-in-progress clone, neogit: https://github.com/timUntersberger/neogit/
Some of my colleagues use emacs/magit, and after seeing how absolutely lovely the workflow is, I've put in a lot of work over the last few months expanding it. You can check out my fork here: https://github.com/ckolkey/neogit/
One thing I particularly like to tease my emacs' colleagues about is that my magit is faster than theirs thanks to neovim's async capabilities.
- Your favourite Neovim plugins?
-
What do you use for git integration in neovim?
You could use neogit (https://github.com/TimUntersberger/neogit) for basic commands however I have found it's easier / more versatile to just use lazygit in either another tmux tmux window or within neovim itself.
-
Switching from Emacs. My experience
The only thing I truly miss from Emacs is [Magit](https://magit.vc/) since I still consider it the best git wrapper available. It is just too good. Unfortunately [Neogit](https://github.com/TimUntersberger/neogit) is not quite there yet although I hope it makes it at some point. I didn't like [Fugitive]https://github.com/tpope/vim-fugitive), but I ended up finding a good enough workaround by using [Lazygit](https://github.com/jesseduffield/lazygit) through [Toggleterm](https://github.com/akinsho/toggleterm.nvim).
- Neovim vs VSCode Neovim - what are the tradeoffs?
What are some alternatives?
emacs-lite
vim-fugitive - fugitive.vim: A Git wrapper so awesome, it should be illegal
ani-cli - A cli tool to browse and play anime
lazygit.nvim - Plugin for calling lazygit from within neovim.
emacs-light - My lightweight bare necessities emacs config
octo.nvim - Edit and review GitHub issues and pull requests from the comfort of your favorite editor
crunchyroll-go - ๐ A Crunchyroll (beta) API implementation in Go
lazygit - simple terminal UI for git commands
anime-helper-shell - A python shell for searching, watching, and downloading anime.
difftastic - a structural diff that understands syntax ๐ฅ๐ฉ
evil - The extensible vi layer for Emacs.
gitsigns.nvim - Git integration for buffers