vscode-ibmi
vscode-ibmi copied to clipboard
Terminal - 5250 - Keyboard mapping/import from ACS?
I love the integrated 5250 terminal in Code for i. I don't have to go back to ACS to look at things. But I have a custom keyboard map I use in ACS. I get myself into trouble with the new 5250 due to different keys pressed than I am used to.
Can we get a keyboard mapper or import of an ACS keyboard map into this code for i 5250 terminal so our mappings match?
⚠️ REMOVE THIS LINE AND ANY SENSITIVE INFORMATION BELOW! ⚠️
| Context | Version |
|---|---|
| Code for IBM i version | 2.8.0 |
| Visual Studio Code version | 1.87.0 |
| Operating System | win32_x64 |
Active extensions
COBOL (cobol): 10.2.21
Code for IBM i Walkthroughs (vscode-ibmi-walkthroughs): 0.4.0
Db2 for IBM i (vscode-db2i): 0.7.1
Emmet (emmet): 1.0.0
Error Lens (errorlens): 3.16.0
Git (git): 1.0.0
Git Base (git-base): 1.0.0
GitHub (github): 0.0.1
GitHub Authentication (github-authentication): 0.0.2
GitHub Pull Requests (vscode-pull-request-github): 0.82.0
IBM i Renderer (vscode-displayfile): 0.1.2
JSON Language Features (json-language-features): 1.0.0
Merge Conflict (merge-conflict): 1.0.0
Node Debug Auto-attach (debug-auto-launch): 1.0.0
RPGLE (vscode-rpgle): 0.26.2
TODO Highlight (vscode-todo-highlight): 1.0.5
TypeScript and JavaScript Language Features (typescript-language-features): 1.0.0
WSL (remote-wsl): 0.86.0
Remote system
| Setting | Value |
|---|---|
| IBM i OS | V7R4M0 |
| Tech Refresh | 8 |
| CCSID | 37 |
| Default CCSID | 37 |
| SQL | Enabled |
| Source dates | Disabled |
Enabled features
| /QOpenSys/pkgs/bin | /usr/bin | /QSYS.lib/ILEDITOR.lib | /QSYS.LIB | /QIBM/ProdData/IBMiDebugService/bin |
|---|---|---|---|---|
| bash | attr | GENCMDXML.PGM | QZDFMDB2.PGM | startDebugService.sh |
| chsh | iconv | GETNEWLIBL.PGM | ||
| git | setccsid | |||
| grep | ||||
| ls | ||||
| md5sum | ||||
| sort | ||||
| stat | ||||
| tar | ||||
| tn5250 |
Shell env
BUILDLIB=DOLSON
CURLIB=DOLSON
HOME=/home/DOLS1
HOST=RXDV1
LIBLS=DOLSCOMM DOLSON QGPL QTEMP
LOGIN=dols1
LOGNAME=dols1
MAIL=/var/spool/mail/dols1
OLDPWD=/home/DOLS1
PATH=/QOpenSys/pkgs/bin:/QOpenSys/usr/bin:/usr/ccs/bin:/QOpenSys/usr/bin/X11:/usr/sbin:.:/usr/bin
PWD=/home/DOLS1
SHELL=/QOpenSys/pkgs/bin/bash
SHLVL=1
SSH_CLIENT=xx.xx.xx.xx 57895 22
SSH_CONNECTION=xx.xx.xx.xx 57895 xx.xx.xx.xx 22
TZ=<CST>6<CDT>,M3.2.0,M11.1.0
USER=dols1
USERNAME=dols1
WORKDIR=/home/DOLS1
_=/QOpenSys/pkgs/bin/env
Variants
{
"american": "#@$",
"local": "#@$"
}
Errors
[
{
"command": "/QOpenSys/usr/bin/qsh",
"code": 1,
"stderr": "CPF2111: Library ILEDITOR already exists.\nCPC2206: Ownership of object QZSHSYSTEM in QTEMP type *USRSPC changed.",
"cwd": "/home/DOLS1"
}
]
@duieolson interesting idea. Could you share what your keyboard map looks like? Either sharing the file or a screenshot with us?
In the Host Functions section of the ACS keyboard assignment:
I have 3 keys that are different than the base ACS default keyboard map. Or they were a decade ago when I set them up in client access and converted them to ACS when we migrated.
2 field exit keys.
Field Exit = + (Numpad)
Field Exit = Control (right)
New Line is Shift+ Enter (takes me to the next line down and farthest to the left without wiping out all field data on the current field when the keystrokes are pressed. Quickly takes me down the left side fields)
Sounds doable but tedious to me. To do a "proper" import, you'd need to be able to handle any arbitrary function being customized. I don't know if the full list is even published anywhere (perhaps it only exists as part of the source code for ACS!).
I see a couple of much more limited but expedient options:
- A bit of documentation to explain how a user would go about changing the necessary keybindings within VS Code, including an actual example or two. Honestly, I think this is the best balance of developer effort and user effort.
- Adding a few settings for the most common ones. Perhaps after soliciting feedback from users to determine which ones those are. I know for sure some people like Right Ctrl to be Enter (to better match the old, actual 5250 terminals). Seems like the other ones mentioned here are also in the same vein.