this post was submitted on 24 Nov 2024
1218 points (93.1% liked)

Technology

59601 readers
3525 users here now

This is a most excellent place for technology news and articles.


Our Rules


  1. Follow the lemmy.world rules.
  2. Only tech related content.
  3. Be excellent to each another!
  4. Mod approved content bots can post up to 10 articles per day.
  5. Threads asking for personal tech support may be deleted.
  6. Politics threads may be removed.
  7. No memes allowed as posts, OK to post as comments.
  8. Only approved bots from the list below, to ask if your bot can be added please contact us.
  9. Check for duplicates before posting, duplicates may be removed

Approved Bots


founded 1 year ago
MODERATORS
 
you are viewing a single comment's thread
view the rest of the comments
[–] jerkface@lemmy.ca 1 points 19 hours ago* (last edited 19 hours ago) (2 children)

I've used ion, ratpoison, i3, sawfish, and other tiling window managers for fifteen or more years, all totaled up. There is a great deal of pressure to use a modern desktop environment and it's a lot of work maintaining my janky bespoke desktop environment functions necessary for a few critical applications. I use KDE's tiling features and keyboard shortcuts, but it's a double edged sword because I have to disable all window manager bindings in (for example) Blender and emacs to avoid shadowing important features. Actually, I have re-implemented a lot of my custom KDE shortcuts as emacs bindings as well, so they still work when emacs has the focus. Here's one:

(cl-flet ((switch-to (name)
	    (lambda ()
	      (interactive)
	      (shell-command (concat "wmctrl -a " name)))))
  (global-set-key (kbd "s-1") (switch-to "librewolf"))
  (global-set-key (kbd "s-2") (switch-to "konsole"))
  (global-set-key (kbd "s-3") (switch-to "signal"))
  (global-set-key (kbd "s-4") (switch-to "darktable"))
  (global-set-key (kbd "s-5") (switch-to "emacs")))
[–] Shareni@programming.dev 2 points 18 hours ago (1 children)

For my wm+Emacs work, I unified the shortcuts by calling a separate go bin that checks if the active window is Emacs or not. If it is, it sends the command to the Emacs Daemon. If it's not it sends the command to i3. For directional commands like move focus, first check it there's an Emacs window to that side, if not send the command to i3.

[–] jerkface@lemmy.ca 2 points 18 hours ago* (last edited 18 hours ago)

The things we have to go through just to meet basic needs.

How are you redirecting all input through your custom exec? Is that an i3 feature?

[–] jerkface@lemmy.ca 2 points 19 hours ago* (last edited 18 hours ago)

why have I made that anonymous function interactive??

Edit: Oh I think anything you bind to a key has to be interactive.