Dwarf Foreman (or its most recent incarnations like Dwarf Manager and Dwarf Therapist) are considered by many to be absolutely essential tools for properly managing a fortress. This has been proposed many times, and currently ranks fairly high in the Eternal Suggestion Voting. But how can such a seemingly complicated feature be implemented?
I've thought about this problem, and coded up a fully functional prototype
(this is just an image, follow the link above for the actual working version)
To be clear, this is not a utility
, but a working prototype for what the integrated Dwarf Foreman could look like. I would suggest putting it under the Units screen with the hotkey "f".
Use the arrow keys to move around the screen. Shift + an arrow key will move 10 units in any direction. The full name, profession, and current labor column are displayed at the bottom, since each is highly abbreviated (especially the labors). The numbers indicate the relative skill levels, and the shaded in cells are enabled labors. I've fit almost all the labors on the one screen, though a second page will be required for the animal/hunting and medical labors. At the very right are the hauling professions; obviously there is no skill for these, but labors can still be easily toggled.
Press Enter in any cell to toggle the labor for the current dwarf. Shift-Enter will toggle the labor for all dwarves with the same custom profession as the currently selected dwarf. Control-Enter will toggle the entire labor group (the ones with the same color) for the selected dwarf; this is mostly intended for quickly turning hauling on and off.
Professions can be edited directly on this page with the y key. An underscore will pop up under the profession name at the bottom, and you can type and use backspace to edit the name. Press enter when you're done.
Another feature I put in that currently has no equivalent in normal Dwarf Fortress is editing the color of dwarves. It always annoys me when dwarves have a completely different color than their actual job, so you can press c to change the color of the current dwarf to that of the current labor. Ideally this would resort the list, but I haven't implemented that. If this goes contrary to DF design in some way, this need not actually be implemented.
Since one will probably have more dwarves than will fit, the screen will probably need to page in some way. Either automatically scrolling when you reach the bottom with the arrow keys or using + and - or / and * would work fine, though I haven't implemented that.
I hope this prototype will be a useful demonstration of what an integrated Dwarf Foreman could look like. I know I would be thrilled if something like this made it into Dwarf Fortress.