That's pretty much correct, but there are a couple other things that need to happen for the pref file to work:
Reading the system specific pref files starts in the file "pref.prf". At the bottom of that file is a section called "##### System Specific Subfiles #####". This is where an entry needs to be added for the specific console, to tell the game to open and read a pref file unique to a specific port.
What is being read there is a global variable called ANGBAND_SYS, which is defined in the main-xxx.c file for each system. For example, in main-win.c, line 4776:
/* Set the system suffix */
ANGBAND_SYS = "win";
Which lets the game figure out in reading pref.prf to pay attention to this line at the bottom of the file:
?:[EQU $SYS win]
%:pref-win.prf
Those two lines tells the game process the contents of pref-win.prf. Then you create the pref file is where the keymaps are specified.
BTW: This may be a dumb question, but for which console are you making these ports?
Also note the file called graf.prf is automatically read, to process the port-specific graphics files, if the console supports any of the three tilesets. Font.prf is also read to specify system specific characters. An example of this is windows, support is needed to have a wall displayed as a solid white or gray block, as opposed to a white or gray '#', which is the game default symbol for walls (but most prople prefers the solid block instead).
When/if you get around to trying to do this for NPPAngband, I will be happy to help. Although I confess I don't know much about the specific kep maps. I have always just copied them from Vanilla Angband.