11

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.

you are viewing a single comment's thread
view the rest of the comments
[-] Flagstaff@programming.dev 1 points 4 days ago

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.

  1. Create the file /home/user/another_folder/remap_caps_to_enter.sh containing the code above
  2. Open Startup Applications and set it to bash the above path as a command
  3. It initially works, but then after a few min, it reverts to native Caps Lock behavior. Manually rerunning the file again makes it work for the rest of the session until I shut down the PC.
[-] artwork@lemmy.world 2 points 4 days ago* (last edited 3 days ago)

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:

xev;

Or manually:

#! /usr/bin/env bash

declare s='' s2='';

while :;
do
    s="$( xmodmap -pke | grep -E 'keycode\s+66'; )";
    
    if [[ "$s" != "$s2" ]];
    then
        printf -- ' [%s] Changed from "%s" to "%s".\n' "$( date -- '+%F_%H-%M-%S'; )" "$s2" "$s";

        s2="$s";
    fi

    sleep 1;
done

I would also try checking out logs:

journalctl --user -f | grep -E 'settings|keyboard|layout|xkb';

# Or: journalctl -f | grep ...

Edit 2026-06-13

-- xev -event mapping;
++ xev;

Thank you, @Flagstaff@programming.dev (source)

[-] Flagstaff@programming.dev 1 points 3 days ago
xev: unrecognized event mask 'mapping'

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 points 3 days ago* (last edited 3 days ago)

Sincere apologies! Apparently, the mapping was in my dated local custom build of the tool...
Have you tried recording the general xev (with no , without any explicit filtering?

Your xev build/Man/Info message should list the supported. For example, in v1.2.3, these are supported:

$ man xev;
# ...
-event event_mask  
When not specified, all events are selected... Available event masks: keyboard mouse expose visibility structure substructure focus property colormap owner_grab_button randr button

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 points 3 days ago

a quick Google shows an option "Caps Lock acts as Return" in the desktop environment (DE) settings.

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 points 3 days ago* (last edited 3 days ago)

If I am not mistaken, Linux Mint settings service uses xkeyboard-config.


Would you mind to add "caps:return" to the list of supported keyboard options?

Source: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/work_items/121 [2017-04-07]

---

xkeyboard-config 2.43...

Added caps:return to make the Caps Lock key an additional Return key.

Source [2024-10-01]

---

<option>
  <configItem>
    <name>caps:return</name>
    <description>Make Caps Lock an additional Return key</description>
  </configItem>
</option>

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 the csd-keyboard; e.g., by killing it). Would it work in your case (I would also try rebooting after)?:

Screenshot

[-] Flagstaff@programming.dev 2 points 3 days ago

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!

this post was submitted on 11 Jun 2026
11 points (100.0% liked)

Linux Mint

341 readers
3 users here now

A community for news and discussion about linux mint

founded 2 years ago
MODERATORS