×

KDE Plasma 6.7 is ready with Wayland session management & other new improvements by somerandomxander in linux

[–]mike_olson 0 points1 point  (0 children)

Thanks for the feedback. I decided to change the behavior of pttman so that it feels a bit more like first-class PTT: press/release aliases for mute-while-pressed, mute by default on start (and device connect/reconnect), and resists muting from other sources unless they go through the daemon with mute/unmute commands.

If you have some other mechanism that can trigger on key release (instead of just press - or are binding a modifier which KDE seems to allow key-release actions for), that could certainly be integrated with pttman in place of using xremap if the other benefits above are ever wanted.

KDE Plasma 6.7 is ready with Wayland session management & other new improvements by somerandomxander in linux

[–]mike_olson 0 points1 point  (0 children)

In case it's helpful: I made a systemwide push-to-talk program that can work with Discord or any other program; it does need xremap to correctly detect both press & release of the chosen hotkey: https://github.com/mwolson/pttman

Multi-LSP support for Svelte in Emacs with eglot-typescript-preset by mike_olson in sveltejs

[–]mike_olson[S] 0 points1 point  (0 children)

A few for svelte are:
* Issue where svelte LSP and eglot disagree on how to handle filenames starting with "+" causing diagnostics to appear and go away
* Auto-sets typescript.tsdk for you
* Multi-LSP support lets you use typescript's and tailwind's LSP in addition to Svelte's
* Figures out correct root directory for the LSP in monorepo settings

Any up-to-date guides for setting up Emacs for Elixir? by badgerbang in emacs

[–]mike_olson 0 points1 point  (0 children)

The elixir forum page in the other comment was helpful. Here's what I did for my own setup, which includes a little more project.el integration that might help in a monorepo setting: https://github.com/mwolson/emacs-shared/commit/cd668478a127a2d4ccc1dae04cd13f07b8239fa5

Multi-LSP support for Python and TypeScript in Emacs by mike_olson in emacs

[–]mike_olson[S] 2 points3 points  (0 children)

Further explanation in the project README's for why-to-use and why-not-to-use, including some of the kinds of problems solved: for eglot-python-preset | for eglot-typescript-preset

Multi-LSP support for Astro in Emacs with eglot-typescript-preset by mike_olson in astrojs

[–]mike_olson[S] 0 points1 point  (0 children)

Thanks for letting me know; I've updated the README.md instructions a bit for a few of those to make it more clear, and found an up-to-date fork of vscode-langservers-extracted to present as an option: https://www.npmjs.com/package/@t1ckbase/vscode-langservers-extracted

Multi-LSP support for Python and TypeScript in Emacs by mike_olson in emacs

[–]mike_olson[S] 3 points4 points  (0 children)

There’s nothing wrong with using rass directly if it’s working for you. The reason to choose one the eglot-preset projects is (in short, may put up a list on the repo READMEs later) - there are a lot of edge cases in project.el and LSP behavior, especially in monorepo kind of situations, and this is a curated tested list of LSPs that can be combined together well.

How do I choose between DMS and Noctalia? by Exact_Delivery8535 in niri

[–]mike_olson 0 points1 point  (0 children)

I prefer the feature set and look of DMS, but since its quickshell dependency hadn’t been updated in a while, was seeing a few crashes. Noctalia has their own quickshell fork which seems much more stable.

Is there any fix for not being able to paste text from my desktop into my gamescope window? by Arvanche in linux_gaming

[–]mike_olson 0 points1 point  (0 children)

Here's another variation that I assign to Ctrl+V using xremap, to do an on-the-fly paste without a bridge:

```

!/bin/bash

set -euo pipefail

for cmd in pgrep sed tr wl-paste xclip xdotool; do if ! command -v "$cmd" &>/dev/null; then echo "Error: '$cmd' is required but not found in PATH." >&2 exit 1 fi done

GAME_NAME="${1:-}" TARGET_DISPLAY="${TARGET_DISPLAY:-}"

find_target_display() { local pid local env

while read -r pid; do
    env="$(tr '\0' '\n' < "/proc/$pid/environ")"

    if [[ -n "$GAME_NAME" ]] && ! grep -Fxq "GAME_NAME=$GAME_NAME" <<<"$env"; then
        continue
    fi

    sed -n 's/^STEAM_GAME_DISPLAY_0=//p' <<<"$env"
    return 0
done < <(pgrep -x gamescopereaper)

return 1

}

if [[ -z "$TARGET_DISPLAY" ]]; then TARGET_DISPLAY="$(find_target_display || true)" fi

if [[ -z "$TARGET_DISPLAY" ]]; then echo "Error: Could not determine Gamescope target display." >&2 exit 1 fi

wl-paste --no-newline | DISPLAY="$TARGET_DISPLAY" xclip -selection clipboard sleep 0.05 DISPLAY="$TARGET_DISPLAY" xdotool key --clearmodifiers ctrl+v ```

Markdown for Agents on the free plan using Transform Rules by mike_olson in CloudFlare

[–]mike_olson[S] 0 points1 point  (0 children)

Thanks! The contains "text/markdown" check has been fine in practice so far. Claude Code, OpenCode, and other tools that implement the spec send it as a straightforward Accept value. The any() wrapper handles multiple Accept header lines, and contains also catches combined headers like text/html, text/markdown;q=0.9 since the substring is still present.

For q-value negotiation, the Transform Rule doesn't need to parse quality factors: it just needs to know "this client is willing to accept markdown" so Cloudflare creates a separate cache entry. The way I have it, the actual content negotiation and preference handling happens at the origin.

using emacs for python development, with uv and basedpyright by AyeMatey in emacs

[–]mike_olson 0 points1 point  (0 children)

The v0.2.0 release has some additional fixes for multiple PEP-723 scripts in the same directory, and simplifies the workspace stuff by using advice instead of setq-default to adjust it. This allows a bit more iteration on the workspace option and makes things a bit more just-in-time when visiting the python file.

using emacs for python development, with uv and basedpyright by AyeMatey in emacs

[–]mike_olson 0 points1 point  (0 children)

I've fixed an additional issue where multiple scripts in the directory could get mixed up if they had different dependencies. the v0.2.0 release puts each PEP-723 script into its own eglot project, which gives each one its own LSP, keeping the environments and dependencies separate.

Guide: Setting up CachyOS on a server by mike_olson in cachyos

[–]mike_olson[S] 0 points1 point  (0 children)

There doesn't seem to be a server-specific or minimal CachyOS ISO yet. You could use a CachyOS desktop ISO potentially and run pacstrap from there, but it's quite large: 2.5GB+ download vs ~165MB for the minimal Arch ISO - and not provided by Hetzner.

Hetzner provides an out-of-the-box "Archlinux" ISO option as one of its standard images that can be attached to a VPS. It does also provide a Rescue CD; I've adjusted the guide to document how to use either one of those (Rescue CD has a few more manual steps).

using emacs for python development, with uv and basedpyright by AyeMatey in emacs

[–]mike_olson 1 point2 points  (0 children)

I landed on changing the approach from inserting the first 2048 chars into temporary buffer, and instead just scanning the current buffer (which also fixed some end-of-line encoding issues on Windows with the prior approach). The other suggestions are implemented in the new module here as well: https://github.com/mwolson/eglot-python-preset ; feel free to let me know if any other ideas/suggestions come to mind.

using emacs for python development, with uv and basedpyright by AyeMatey in emacs

[–]mike_olson 1 point2 points  (0 children)

Thanks, I've haven't tested it on Windows yet, but when encoding the file with CRLF, I found and fixed the issues mentioned above here: https://github.com/mwolson/eglot-python-preset

using emacs for python development, with uv and basedpyright by AyeMatey in emacs

[–]mike_olson 1 point2 points  (0 children)

Agree - it feels harder to change eglot-workspace-configuration than it needs to be. I've added the use case of customizing the workspace configuration for basedpyright to https://github.com/mwolson/eglot-python-preset with some docs about how to do it.