From 0c92317cce75d8d339832174d8fc411dd79502bb Mon Sep 17 00:00:00 2001 From: Myk Taylor Date: Mon, 30 Jan 2023 13:30:15 -0800 Subject: [PATCH 1/3] give gui/control-panel a global hotkey --- data/init/dfhack.keybindings.init | 3 +++ 1 file changed, 3 insertions(+) diff --git a/data/init/dfhack.keybindings.init b/data/init/dfhack.keybindings.init index c1a4191ef..a793e3248 100644 --- a/data/init/dfhack.keybindings.init +++ b/data/init/dfhack.keybindings.init @@ -16,6 +16,9 @@ keybinding add Ctrl-Shift-P "gui/launcher --minimal" # show hotkey popup menu keybinding add Ctrl-Shift-C hotkeys +# control panel +keybinding add Shift-` gui/control-panel + # on-screen keyboard keybinding add Ctrl-Shift-K gui/cp437-table From 3805925c02e5a5f877365609d5d93cc446eb715c Mon Sep 17 00:00:00 2001 From: Myk Taylor Date: Mon, 30 Jan 2023 13:30:34 -0800 Subject: [PATCH 2/3] update quickstart guide with control panel info --- docs/Quickstart.rst | 111 +++++++++++++++++++++++++------------------- 1 file changed, 62 insertions(+), 49 deletions(-) diff --git a/docs/Quickstart.rst b/docs/Quickstart.rst index 81415e3a9..95b1fb0a1 100644 --- a/docs/Quickstart.rst +++ b/docs/Quickstart.rst @@ -46,53 +46,66 @@ Here are some common tasks people use DFHack tools to accomplish: your mining efforts Some tools are one-shot commands. For example, you can run `unforbid all ` -to claim all items on the map after a messy siege. +to claim all (reachable) items on the map after a messy siege. Other tools must be `enabled ` and then they will run in the background. For example, `enable seedwatch ` will start monitoring your stocks of seeds and prevent your chefs from cooking seeds that you need for planting. Tools that are enabled in the context of a fort will save their state with that -fort, and the will remember that they are enabled the next time you load your save. +fort, and they will remember that they are enabled the next time you load your save. A third class of tools add information to the screen or provide new integrated functionality via the DFHack `overlay` framework. For example, the `unsuspend` tool, in addition to its basic function of unsuspending all building construction jobs, can also overlay a marker on suspended buildings to indicate that they are suspended (and will use different markers to tell you whether this is a problem). -These overlays can be enabled and configured with the `gui/overlay` interface. How can I figure out which commands to run? ------------------------------------------- -There are several ways to scan DFHack tools and find the one you need right now. +There are several ways to scan DFHack tools and find the ones you need right now. The first place to check is the DFHack logo hover hotspot. It's in the upper left corner of the screen by default, though you can move it anywhere you want -with the `gui/overlay` tool. +with the `gui/overlay` configuration UI. When you hover the mouse over the logo (or hit the Ctrl-Shift-C keyboard shortcut) a list of DFHack tools relevant to the current context comes up. For example, when you have a unit selected, the hotspot will show a list of tools that inspect units, allow you to edit them, or maybe even teleport them. Next to each tool, -you'll see the global hotkey you can hit to invoke the command without even -opening the hover list. - -You can run any DFHack tool from `gui/launcher`, which is always listed first in -the hover list. You can also bring up the launcher by tapping the backtick key -(\`) or hitting Ctrl-Shift-D. In the launcher, you can quickly autocomplete any -command name by selecting it in the list on the right side of the window. -Commands are ordered by how often you run them, so your favorite commands will -always be on top. You can also pull full commandlines out of your history with -Alt-S (or by clicking on the "history search" hotkey hint). +you'll see the hotkey you can hit to invoke the command without even opening the +hover list. + +The second place to check is the DFHack control panel: `gui/control-panel`. It +will give you an overview of which tools are currently enabled, and will allow +you to toggle them on or off, see help text for them, or launch their dedicated +configuration UIs. You can launch the control panel from anywhere with the +tilde key (Shift-\`) or from the logo hover list. + +In the control panel, you can also select which tools you'd like to be +automatically enabled when you start a new fort. There are also system settings +you can change, like whether DFHack windows will pause the game when they come +up. + +Finally, you can explore the full extent of the DFHack catalog in `gui/launcher`, +which is always listed first in the DFHack logo hover list. You can also bring up +the launcher by tapping the backtick key (\`) or hitting Ctrl-Shift-D. In the +launcher, you can quickly autocomplete any command name by selecting it in the +list on the right side of the window. Commands are ordered by how often you run +them, so your favorite commands will always be on top. You can also pull full +commandlines out of your history with Alt-S or by clicking on the "history search" +hotkey hint. Once you have typed (or autocompleted, or searched for) a command, other commands -related to the one you have selected will appear in the autocomplete list. -Scanning through that list is a great way to learn about new tools that you might -find useful. You can also see how commands are grouped by running the `tags` command. +related to the one you have selected will appear in the right-hand panel. Scanning +through that list is a great way to learn about new tools that you might find +useful. You can also see how commands are grouped by running the `tags` command. The bottom panel will show the full help text for the command you are running, allowing you to refer to the usage documentation and examples when you are typing -your command. +your command. After you run a command, the bottom panel switches to command output +mode, but you can get back to the help text by hitting Ctrl-T or clicking on the +``Showing`` selector. How do DFHack in-game windows work? ----------------------------------- @@ -106,26 +119,27 @@ whether they capture keyboard and mouse input. The DFHack windowing system allows multiple overlapping windows to be active at once. The one with the highlighted title bar has focus and will receive anything you type at the keyboard. Hit Esc or right click to close the window or cancel -the current operation. You can click anywhere on the screen that is not a -DFHack window to unfocus the window and let it just sit in the background. It won't +the current action. You can click anywhere on the screen that is not a DFHack +window to unfocus the window and let it just sit in the background. It won't respond to key presses or mouse clicks until you click on it again to give it -focus. You can right click directly on an unfocused window to close it without -left clicking to activate it first. +focus. If no DFHack windows are focused, you can right click directly on a window +to close it without left clicking to focus it first. DFHack windows are draggable from the title bar or from anywhere on the window that doesn't have a mouse-clickable widget on it. Many are resizable as well (if the tool window has components that can reasonably be resized). You can generally use DFHack tools without interrupting the game. That is, if the -game is unpaused, it can continue to run while a DFHack window is open. Many tools -will initially pause the game to let you focus on the task at hand, but you can -unpause like normal if you want. You can also interact with the map, scrolling it -with the keyboard or mouse and selecting units, buildings, and items. Some tools -will capture all keyboard input, such as tools with editable text fields, and some -will force-pause the game if it makes sense to, like `gui/quickfort`, since you -cannot interact with the map normally while trying to apply a blueprint. Windows -for tools that force-pause the game will have a pause icon in their upper right -corner to indicate which tool is responsible for the pausing. +game is unpaused, it can continue to run while a DFHack window is open. If configured +to do so in `gui/control-panel`, tools will initially pause the game to let you +focus on the task at hand, but you can unpause like normal if you want. You can +also interact with the map, scrolling it with the keyboard or mouse and selecting +units, buildings, and items. Some tools will capture all keyboard input, such as +tools with editable text fields, and some will force-pause the game if it makes +sense to, like `gui/quickfort`, since you cannot interact with the map normally +while trying to apply a blueprint. Windows for tools that force-pause the game +will have a pause icon in their upper right corner to indicate which tool is +preventing you from unpausing. Where do I go next? ------------------- @@ -135,33 +149,32 @@ To recap: You can get to popular, relevant tools for the current context by hovering the mouse over the DFHack logo or by hitting Ctrl-Shift-C. +You can enable DFHack tools and configure settings with `gui/control-panel`, +which you can access directly with the tilde key (Shift-\`). + You can get to the launcher and its integrated autocomplete, history search, and help text by hitting backtick (\`) or Ctrl-Shift-D, or, of course, by running it from the logo hover list. -You can list and start tools that run in the background with the `enable` -command. - -You can configure screen overlays with the `gui/overlay` tool. - -With those four tools, you have the complete DFHack tool suite at your +With those three tools, you have the complete DFHack tool suite at your fingertips. So what to run first? Here are a few commands to get you started. You can run them all from the launcher. First, let's import some useful manager orders to keep your fort stocked with basic necessities. Run ``orders import library/basic``. If you go to your mangager orders screen, you can see all the orders that have been created for you. - -Next, try setting up `autochop` by running the GUI configuration `gui/autochop`. -You can enable it from the GUI, so you don't need to run `enable autochop ` -directly. You can set a target number of logs, and autochop will manage -your logging industry for you. You can control where your woodsdwarves go to -cut down trees by setting up burrows and configuring autochop to only cut in -those burrows. If you have the extra screen space, go ahead and set the -`gui/autochop` window to minimal mode (click on the hint near the upper right -corner of the window or hit Alt-M) and click on the map so the window loses -keyboard focus. As you play the game, you can glance at the status panel to -check on your stocks of wood. +Note that you could have imported the orders directly from this screen as well, +using the DFHack `overlay` widget at the bottom of the manager orders panel. + +Next, try setting up `autochop` to automatically designate trees for chopping when +you get low on usable logs. Run `gui/control-panel` and select ``autochop`` in the +list. Click on the button to the left of the name or hit Enter to enable it. You +can then click on the ``[configure]`` button to launch `gui/autochop` if you'd +like to customize its settings. If you have the extra screen space, you can go +ahead and set the `gui/autochop` window to minimal mode (click on the hint near +the upper right corner of the window or hit Alt-M) and click on the map so the +window loses keyboard focus. As you play the game, you can glance at the live +status panel to check on your stocks of wood. Finally, let's do some fort design copy-pasting. Go to some bedrooms that you have set up in your fort. Run `gui/blueprint`, set a name for your blueprint by From 69860ce419ce2141c5e9165f12108e4b977ff283 Mon Sep 17 00:00:00 2001 From: Myk Taylor Date: Mon, 30 Jan 2023 13:32:51 -0800 Subject: [PATCH 3/3] update changelog --- docs/changelog.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/changelog.txt b/docs/changelog.txt index 74fc26086..a78b14fc7 100644 --- a/docs/changelog.txt +++ b/docs/changelog.txt @@ -54,8 +54,10 @@ changelog.txt uses a syntax similar to RST, with a few special sequences: - `overlay`: overlay widgets can now specify a default enabled state if they are not already set in the player's overlay config file - `getplants`: ID values will now be accepted regardless of case -@ New borders for DFHack tool windows -- tell us what you think! +- `gui/control-panel`: new global hotkey: tilde (Shift-backtick on most keyboards) ## Documentation +-@ Quickstart guide has been updated with info on new window behavior and how to use the control panel ## API - ``Buildings::containsTile()``: no longer takes a ``room`` parameter since that's not how rooms work anymore. If the building has extents, the extents will be checked. otherwise, the result just depends on whether the tile is within the building's bounding box.