The issue seems to be Keysharp interfering!
Original post:
I have this set up as a startup script, but it only sometimes triggers, despite setting a 20-second delay:
#!/bin/bash
sleep 2
xmodmap -e "clear lock"
xmodmap -e "keycode 66 = Return"
I have the startup command set to bash "path/Remap_Caps_Lock_to_Enter.sh". What's going on? It works when I press the triangle button when it doesn't work on boot.
18 Comments
artwork@lemmy.world · 7 pts · 56d
The first and foremost I see unclear is the PATH and PWD. That is, the environment. For starters:
/usr/bin/envvia Shebang?What if the "start" script doesn't find the locations due to missing definitions/locations as a result of different environment if compared to your shell/process you test on?
skankhunt42@lemmy.ca · 3 pts · 56d
Boot logs?
Does it run but error or not run at all?
Flagstaff@programming.dev · 3 pts · 56d
I'm a newb! How do I check boot logs? However, I'm not sure of how relevant those may be (also @Artwork@lemmy.world - I don't know if that tagged correctly, but I hope so); I just discovered another mysterious piece of the puzzle: it initially works on login, but about 5 min in, something actually undoes the mapping and I have no idea of what; rerunning the script fixes it until the next shutdown.
Other remapping/expansion tools I use are Keysharp and Espanso, if that helps to know, but I don't have them interacting with Caps Lock... I would like to more easily manage this just through Keysharp, but Keysharp currently can't seem to block the native function of Caps Lock from simultaneously occurring.
Hmm, another thought I had is that I wish startup times would have no maximum delay; Mint Cinnamon's max is a 100-second delay; why?... That's annoying. That alone could possibly solve this (even if just as a workaround).
artwork@lemmy.world · 3 pts · 56d
Yes, tagging is valid, and I got a notification. Thank you!
I am sorry, but it seems like we have yet to know the actual operating system (OS), distribution, actual paths for the scripts, and Init system (e.g., Systemd, Initd etc.). Did you use Cron, or modify shell configs? We do not know your unique local customized environment, and changes you've done, yet, which is required for more precise investigation.
Flagstaff@programming.dev · 1 pts · 55d
I have almost no idea of what half of what you're saying is; I've heard of systemd, initd, and cron, but I don't know what exactly they are and I don't know what "shell configs" are.
I thought it was obvious that I'm running Linux Mint since I posted this in !linuxmint@programming.dev. I'm using Zena, 22.3 on kernel 7.0.0-14, which seems to be the latest one that Update Manager is showing me.
/home/user/another_folder/remap_caps_to_enter.shcontaining the code abovebashthe above path as a commandartwork@lemmy.world · 2 pts · 55d
I see. Thank you for the details shared!
I've never experienced Linux Mint, but a quick Google shows an option "Caps Lock acts as Return" in the desktop environment (DE) settings. Is that the main idea?
Regarding the custom script case. Is it possible a system-wide service executes after your boot/startup script, slightly later, remapping it again?
We may try investigating. For instance, in a new terminal on the very system start, via
xev, to try capture the moment it changes:Or manually:
I would also try checking out logs:
::: spoiler Edit 2026-06-13
Thank you, @Flagstaff@programming.dev (source) :::
Flagstaff@programming.dev · 1 pts · 54d
I forgot to check these before already applying it... It's okay... I'll just tolerate it for now. I may try the other code later but am wiped out... Thanks for all the ideas, though.
artwork@lemmy.world · 1 pts · 54d
Sincere apologies! Apparently, the
mappingwas in my dated local custom build of the tool...Have you tried recording the general
xev(with no , without any explicit filtering?Your
xevbuild/Man/Info message should list the supported. For example, in v1.2.3, these are supported:Yet, today we found the actual possible culprit, and monitoring the events is probably not required. We know that it will just change, and the issue source should be a separate whole system-wide service that changes your initial change to its own configured, eventually.
There are many custom key remapping tools, including keyd, but I would try realizing/experiment with the standards first, and I appreciate you for still trying! It may help you in the future.
Flagstaff@programming.dev · 1 pts · 55d
That's a figment. It doesn't exist. I had checked the list of possible reassignments and was furious that Enter is, like, literally the only reassignment that isn't in the list. I mean, unless something recently got added, it wasn't there a month ago. That'd be sweet if it is now...
I'm not at a PC right now but will check later, thanks.
artwork@lemmy.world · 2 pts · 55d
If I am not mistaken, Linux Mint settings service uses
xkeyboard-config.---
---
Source
The actual commit: 6b30f36201b40fddcf28918eb4c96b13a23b42ae
Yet, I've checked in a virtual machine online, and there's no such, apparently, indeed (sorry).
However, I believe it's possible to modify it manually in file
/usr/share/X11/xkb/rules/evdev.xml, and I've tried quickly the following (after changes to the file, restart thecsd-keyboard; e.g., by killing it). Would it work in your case (I would also try rebooting after)?:::: spoiler Screenshot
:::
Flagstaff@programming.dev · 2 pts · 54d
Oh, sweet, huh, nice. Thanks a ton for the research; I totally didn't think to go this route. I'll try it when I next can!
Update: So, @Artwork@lemmy.world (I don't know if this will notify you), unfortunately, I did get around to finally trying it but even though the XKB option is picked, it doesn't seem to actually do anything despite rebooting... but I sure appreciate you poking around and trying; I didn't even know that file existed or could be modified.