vscode-ibmi icon indicating copy to clipboard operation
vscode-ibmi copied to clipboard

Terminal - 5250 - Keyboard mapping/import from ACS?

Open duieolson opened this issue 1 year ago • 3 comments
trafficstars

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 avatar Mar 06 '24 18:03 duieolson

@duieolson interesting idea. Could you share what your keyboard map looks like? Either sharing the file or a screenshot with us?

worksofliam avatar Mar 06 '24 18:03 worksofliam

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) image

Field Exit = Control (right) image

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) image

duieolson avatar Mar 06 '24 18:03 duieolson

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:

  1. 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.
  2. 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.

jkyeung avatar Mar 21 '24 16:03 jkyeung