##############################
# Generic dwarfmode bindings #
##############################

# show all current key bindings
keybinding add Ctrl-F1 hotkeys
keybinding add Alt-F1 hotkeys

# toggle the display of water level as 1-7 tiles
keybinding add Ctrl-W twaterlvl

# with cursor:

# designate the whole vein for digging
keybinding add Ctrl-V digv
keybinding add Ctrl-Shift-V "digv x"

# clean the selected tile of blood etc
keybinding add Ctrl-C spotclean

# destroy items designated for dump in the selected tile
keybinding add Ctrl-Shift-K autodump-destroy-here

# set the zone or cage under the cursor as the default
keybinding add Alt-Shift-I@dwarfmode/Zones "zone set"

# with an item selected:

# destroy the selected item
keybinding add Ctrl-K autodump-destroy-item

# scripts:

# quicksave, only in main dwarfmode screen and menu page
keybinding add Ctrl-Alt-S@dwarfmode/Default quicksave

# gui/rename script - rename units and buildings
keybinding add Ctrl-Shift-N gui/rename
keybinding add Ctrl-Shift-T "gui/rename unit-profession"

# a dfhack prompt in df. Sublime text like.
keybinding add Ctrl-Shift-P command-prompt

# show information collected by dwarfmonitor
keybinding add Alt-M@dwarfmode/Default "dwarfmonitor prefs"
keybinding add Ctrl-F@dwarfmode/Default "dwarfmonitor stats"

# export a Dwarf's preferences screen in BBCode to post to a forum
keybinding add Ctrl-Shift-F@dwarfmode forum-dwarves

# an in-game init file editor
keybinding add Alt-S@title gui/settings-manager
keybinding add Alt-S@dwarfmode/Default gui/settings-manager

# change quantity of manager orders
keybinding add Alt-Q@jobmanagement/Main gui/manager-quantity

# view combat reports for the selected unit/corpse/spatter
keybinding add Ctrl-Shift-R view-unit-reports

# view extra unit information
keybinding add Alt-I@dwarfmode/ViewUnits|unitlist gui/unit-info-viewer

##############################
# Generic adv mode bindings  #
##############################

keybinding add Ctrl-B@dungeonmode adv-bodyswap
keybinding add Ctrl-Shift-B@dungeonmode "adv-bodyswap force"
keybinding add Shift-O@dungeonmode gui/companion-order
keybinding add Ctrl-T@dungeonmode gui/advfort
keybinding add Ctrl-A@dungeonmode/ConversationSpeak adv-rumors

##############################
# Generic legends bindings   #
##############################

# export all information, or just the detailed maps (doesn't handle site maps)
keybinding add Ctrl-A@legends "exportlegends all"

#############################
# Context-specific bindings #
#############################

# Stocks plugin
keybinding add Ctrl-Shift-Z@dwarfmode/Default "stocks show"

# open an overview window summarising some stocks (dfstatus)
keybinding add Ctrl-Shift-I@dwarfmode/Default "gui/dfstatus"
keybinding add Ctrl-Shift-I@dfhack/lua/dfstatus "gui/dfstatus"

# q->stockpile - copy & paste stockpiles
keybinding add Alt-P copystock

# q->stockpile - load and save stockpile settings out of game
keybinding add Alt-L@dwarfmode/QueryBuilding/Some/Stockpile "gui/stockpiles -load"
keybinding add Alt-S@dwarfmode/QueryBuilding/Some/Stockpile "gui/stockpiles -save"

# q->workshop - duplicate the selected job
keybinding add Ctrl-D job-duplicate

# materials: q->workshop; b->select items
keybinding add Shift-A "job-material ALUNITE"
keybinding add Shift-M "job-material MICROCLINE"
keybinding add Shift-D "job-material DACITE"
keybinding add Shift-R "job-material RHYOLITE"
keybinding add Shift-I "job-material CINNABAR"
keybinding add Shift-B "job-material COBALTITE"
keybinding add Shift-O "job-material OBSIDIAN"
keybinding add Shift-T "job-material ORTHOCLASE"
keybinding add Shift-G "job-material GLASS_GREEN"

# sort units and items in the on-screen list
keybinding add Alt-Shift-N "sort-units name" "sort-items description"
keybinding add Alt-Shift-R "sort-units arrival"
keybinding add Alt-Shift-T "sort-units profession" "sort-items type material"
keybinding add Alt-Shift-Q "sort-units squad_position" "sort-items quality"

# browse linked mechanisms
keybinding add Ctrl-M@dwarfmode/QueryBuilding/Some gui/mechanisms

# browse rooms of same owner
keybinding add Alt-R@dwarfmode/QueryBuilding/Some gui/room-list

# interface for the liquids plugin - spawn water/magma/obsidian
keybinding add Alt-L@dwarfmode/LookAround gui/liquids

# machine power sensitive pressure plate construction
keybinding add Ctrl-Shift-M@dwarfmode/Build/Position/Trap gui/power-meter

# siege engine control
keybinding add Alt-A@dwarfmode/QueryBuilding/Some/SiegeEngine gui/siege-engine

# military weapon auto-select
keybinding add Ctrl-W@layer_military/Equip/Customize/View gui/choose-weapons

# military copy uniform
keybinding add Ctrl-C@layer_military/Uniforms gui/clone-uniform

# minecart Guide path
keybinding add Alt-P@dwarfmode/Hauling/DefineStop/Cond/Guide gui/guide-path

# workshop job details
keybinding add Alt-A@dwarfmode/QueryBuilding/Some/Workshop/Job gui/workshop-job

# workflow front-end
keybinding add Alt-W@dwarfmode/QueryBuilding/Some/Workshop/Job gui/workflow
keybinding add Alt-W@overallstatus "gui/workflow status"
# equivalent to the one above when gui/extended-status is enabled
keybinding add Alt-W@dfhack/lua/status_overlay "gui/workflow status"

# autobutcher front-end
keybinding add Shift-B@pet/List/Unit "gui/autobutcher"

# assign weapon racks to squads so that they can be used
keybinding add P@dwarfmode/QueryBuilding/Some/Weaponrack gui/assign-rack

# view pathable tiles from active cursor
keybinding add Alt-Shift-P@dwarfmode/LookAround gui/pathable

############################
# UI and game logic tweaks #
############################

# stabilize the cursor of dwarfmode when switching menus
tweak stable-cursor

# stop stacked liquid/bar/thread/cloth items from lasting forever
# if used in reactions that use only a fraction of the dimension.
# might be fixed by DF
# tweak fix-dimensions

# make reactions requiring containers usable in advmode - the issue is
# that the screen asks for those reagents to be selected directly
tweak advmode-contained

# support Shift-Enter in Trade and Move Goods to Depot screens for faster
# selection; it selects the current item or stack and scrolls down one line
tweak fast-trade

# stop the right list in military->positions from resetting to top all the time
tweak military-stable-assign
# in same list, color units already assigned to squads in brown & green
tweak military-color-assigned

# remove inverse dependency of squad training speed on unit list size and use more sparring
# tweak military-training

# make crafted cloth items wear out with time like in old versions (bug 6003)
tweak craft-age-wear

# stop adamantine clothing from wearing out (bug 6481)
#tweak adamantine-cloth-wear

# Add "Select all" and "Deselect all" options to farm plot menus
tweak farm-plot-select

# Add Shift-Left/Right controls to import agreement screen
tweak import-priority-category

# Fixes a crash in the work order contition material list (bug 9905).
tweak condition-material

# Adds an option to clear currently-bound hotkeys
tweak hotkey-clear

# Allows lowercase letters in embark profile names, and allows exiting the name prompt without saving
tweak embark-profile-name

# Misc. UI tweaks
tweak block-labors              # Prevents labors that can't be used from being toggled
tweak burrow-name-cancel
tweak cage-butcher
tweak civ-view-agreement
tweak eggs-fertile
tweak fps-min
tweak hide-priority
tweak kitchen-prefs-all
tweak kitchen-prefs-empty
tweak max-wheelbarrow
tweak shift-8-scroll
tweak stone-status-all
tweak title-start-rename
tweak tradereq-pet-gender

###########################
# Globally acting plugins #
###########################

# Display DFHack version on title screen
enable title-version

# Dwarf Manipulator (simple in-game Dwarf Therapist replacement)
enable manipulator

# Search tool in various screens (by falconne)
enable search

# Improved build material selection interface (by falconne)
enable automaterial

# Other interface improvement tools
enable \
 confirm \
 dwarfmonitor \
 mousequery \
 autogems \
 automelt \
 autotrade \
 buildingplan \
 resume \
 trackstop \
 zone \
 stocks \
 autochop \
 stockpiles
#end a line with a backslash to make it continue to the next line. The \ is deleted for the final command.
# Multiline commands are ONLY supported for scripts like dfhack.init. You cannot do multiline command manually on the DFHack console.
# You cannot extend a commented line.
# You can comment out the extension of a line.

# enable mouse controls and sand indicator in embark screen
embark-tools enable sticky sand mouse

# enable option to enter embark assistant
enable embark-assistant

###########
# Scripts #
###########

# write extra information to the gamelog
modtools/extra-gamelog enable

# extended status screen (bedrooms page)
enable gui/extended-status

# add information to item viewscreens
view-item-info enable

# a replacement for the "load game" screen
gui/load-screen enable

##############################
# Extra DFHack command files #
##############################

# Run commands in this file when a world loads
sc-script add SC_WORLD_LOADED onLoad.init-example
