惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
T
ThreatConnect
SecWiki News
SecWiki News
F
Future of Privacy Forum
AWS News Blog
AWS News Blog
C
Cisco Blogs
A
Arctic Wolf
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Scott Helme
Scott Helme
V
V2EX
博客园 - 叶小钗
阮一峰的网络日志
阮一峰的网络日志
K
Kaspersky official blog
G
Google Developers Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
P
Privacy International News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
N
News | PayPal Newsroom
Schneier on Security
Schneier on Security
NISL@THU
NISL@THU
Microsoft Azure Blog
Microsoft Azure Blog
量子位
The Hacker News
The Hacker News
Stack Overflow Blog
Stack Overflow Blog
Security Latest
Security Latest
M
Microsoft Research Blog - Microsoft Research
Google Online Security Blog
Google Online Security Blog
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
I
InfoQ
Google DeepMind News
Google DeepMind News
Y
Y Combinator Blog
The Cloudflare Blog
Microsoft Security Blog
Microsoft Security Blog
Martin Fowler
Martin Fowler
Cisco Talos Blog
Cisco Talos Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
Troy Hunt's Blog
F
Fox-IT International blog
S
Security @ Cisco Blogs
博客园 - 司徒正美
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
C
Comments on: Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
LINUX DO - 最新话题
GbyAI
GbyAI
Project Zero
Project Zero
腾讯CDC
T
Tailwind CSS Blog

Lobsters

GitHub - yugr/rust-slides Serving files over HTTP three ways: synchronous, epoll, and io_uring The User Is Visibly Frustrated uv must be installed to build a standalone Python distribution Encyclical Letter of His Holiness Leo XIV Magnifica Humanitas (15 May 2026) Using AI to write better code more slowly The Open/Closed Problem in AI A Simple Makefile Tutorial On C extensions, portability, and alternative compilers The social contract of writing Building a Host-Tuned GCC to Make GCC Compile Faster Switching to Colemak | Pedro Alves Fully in-browser container builds Nix's Substituter List Is Not a Routing Table What are you doing this week? Scoped Error in Rust Lambda on Lambda: Serverless Haskell on AWS | Blog Announcing feed-repeat v1.0 Scaling Akvorado BMP RIB with sharding EYG news: A host of CLI improvements, new guides and new effects The Eternal Sloptember JS Crossword C array types are weird; and related topics Flatpak will depend on systemd – OSnews Migrating from Go to Rust | corrode Rust Consulting Building Pi With Pi abyss * your_dotfiles_are_not_a_distro Vivado Licensing Options How my minimal, memory-safe Go rsync steers clear of vulnerabilities From AFSK to Goertzel the entropy layer of a wavelet codec, on its own 10,000 Lines Later: When a Tool Became a Compiler - Rob Durst - Gleam Gathering 2026 Debian SE Linux and PinTheft fht-compositor: A dynamic tiling Wayland compositor A Network Allow-List Won't Stop Exfiltration — André Graf Does bulk memmove speed up std::remove_if? (No.) What is Git made of? wake up! 16b 声明式部分更新 | Blog | Chrome for Developers Don't Roll Your Own ... Dianne Skoll's Web Site - Remind “Long-Term Support” doesn’t mean what you think The Architecture of Open Source Applications (Volume 1)Berkeley DB Pardon MIE? - ironPeak Blog seriot.ch It's time to talk about my writerdeck hershey Cuneiforth: A Forth for your Chifir z386: An Open-Source 80386 Built Around Original Microcode waylandcraft - Minecraft Mod On the <dl> HP QuickWeb, Singular And Pointless mvm - a fast virtual machine for Go That one time I used Go panics for flow control A new suite of modern tools coming for editing and publishing RFCs From the Tabletop… The Digital Antiquarian .NET (OK, C#) finally gets union types🎉: Exploring the .NET 11 preview - Part 2 Revised^7 Report on Scheme, Large: Procedural Fascicle Draft is now public The Soul of Maintaining a New Machine - Third Draft | Books in Progress
Splitting Konsole views from Helix to run tools | AksDev
akselmo.dev · 2026-05-26 · via Lobsters

Posted on by

I have been tinkering with Helix editor lately since I quite like it.

It's a fun little editor. Can recommend for those who like modal editing. I do not know if it'll ever replace Kate editor for me, but I'm challenging myself to try new tools, just for the fun of it.

With Helix, I've used this git tool called gitu that is rather quick and easy to work with. Though I still use lazygit for more complex tasks.

Main pain point for me has been how to use some of these tools like gitu within Helix. Lazygit could be done with some magic, but I was never really satisfied with it.

I also tried Zellij for terminal multiplexing and running commands between two splits and so on. It was a bit cumbersome to get it to work as I wanted, since Zellij has tons of features I'll never need. This also caused my fingers to get entangled since I had to remember all sorts of shortcuts. Just not for me.

In Konsole terminal, there is a shortcut for splitting views easily and automatically to a fitting size. I use it a bunch. But because I'm lazy, I would have to press the shortcut, go to the other splitview, type the command for other tool, do things and then close commands. I wanted something a bit more automated.

I found that Konsole can be set to allow scripting over dbus commands: Scripting Konsole.

So I made myself a little shell script that I placed in my path: konsole-split.sh!

Here's what it does:

#!/usr/bin/env bash

# In konsole settings, make sure
# - run all konsole windows in single process is disabled
# - enable the security sensitive parts is enabled

if [ $# -eq 0 ]; then
    echo "Command is missing!"
    exit
fi

# Split the view automagically. We can use MainWindow_1 since we 
qdbus6 "$KONSOLE_DBUS_SERVICE" /konsole/MainWindow_1 org.kde.KMainWindow.activateAction split-view-auto >/dev/tty

# Get the session of the current terminal window
CURRENTSESSION=$(qdbus6 "$KONSOLE_DBUS_SERVICE" "$KONSOLE_DBUS_WINDOW" org.kde.konsole.Window.currentSession) >/dev/tty

# Run the given arguments as a command in that session
qdbus6 "$KONSOLE_DBUS_SERVICE" /Sessions/"${CURRENTSESSION}" org.kde.konsole.Session.runCommand "$@" >/dev/tty

It's really simple, but now I can use this in my helix config like this:

[keys.normal."+"]
b = ":sh git log -L %{cursor_line},+1:%{buffer_name}" #This is git log for a line, also useful, kinda like git blame
s = ":sh konsole-split.sh 'exec scooter'" # Scooter is a search and replace in multiple files tool, very handy
g = ":sh konsole-split.sh 'exec gitu'"

In practice, what happens is:

  1. In helix, i press +

  2. Then I select the command, in this case gitu, so g

  3. Konsole splits itself automatically to a comfortable size

  4. It then gets the session of that new split

  5. And runs the gitu command with exec

    • So if the execution stops/fails, it just closes the split instantly

This works really well for my needs, and I was surprised to see how simple it was to create something like this. I think the error handling when command does not work could be better, but oh well, works for me for now.

Let me know if you do anything similar or have any improvement ideas! :)