Skip to content

UI Customization

Customize BrickTracker's interface appearance, behavior, and default settings to match your preferences.

Interface Overview

BrickTracker's interface can be customized in several areas:

  • Default sorting: How collections are ordered by default
  • UI visibility: Show/hide specific interface elements
  • Grid behavior: Filter and sort display options
  • Display formats: Date, currency, and time formats
  • Accordion behavior: How expandable sections work

Optional: Shuffle the lists on the front page.

bash
# Legacy name: RANDOM
BK_RANDOM=false

Default Sort Orders

Note on *_DEFAULT_ORDER:

If set, it will append a direct ORDER BY <whatever you set> to the SQL query while listing objects. You can look at the structure of the SQLite database to see the schema and the column names. Some fields are compound and not visible directly from the schema (joins). You can check the query in the */list.sql and */base/*.sql files in the source to see all column names.

The usual syntax for those variables is "<table>"."<column>" [ASC|DESC]. For composite fields (CASE, SUM, COUNT) the syntax is <field>, there is no <table> name.

For instance:

  • "table"."name" (by "table"."name", default order)
  • "table"."name" ASC (by "table"."name", ascending)
  • "table"."name" DESC (by "table"."name", descending)
  • "field" (by "field", default order)

You can combine the ordering options. You can use the special column name 'rowid' to order by insertion order.

Optional: Change the default order of sets. By default ordered by insertion order.

Useful column names for this option are:

  • "rebrickable_sets"."set": set number as a string (e.g., "10255-1")
  • "rebrickable_sets"."number": the number part of set as text (e.g., "10255")
  • "rebrickable_sets"."version": the version part of set as an integer (e.g., 1)
  • "rebrickable_sets"."name": set name
  • "rebrickable_sets"."year": set release year
  • "rebrickable_sets"."number_of_parts": set number of parts
  • "bricktracker_sets"."purchase_date": purchase date (as REAL/Julian day)
  • "bricktracker_sets"."purchase_price": purchase price
  • "total_missing": number of missing parts (composite field)
  • "total_damaged": number of damaged parts (composite field)
  • "total_minifigures": number of minifigures (composite field)
bash
BK_SETS_DEFAULT_ORDER="rebrickable_sets"."year" DESC, "rebrickable_sets"."name" ASC
BK_SETS_DEFAULT_ORDER="rebrickable_sets"."number_of_parts" DESC
BK_SETS_DEFAULT_ORDER="total_missing" DESC, "rebrickable_sets"."year" ASC

Optional: Change the default order of parts. By default ordered by insertion order.

Useful column names for this option are:

  • "bricktracker_parts"."part": part number (e.g., "3001")
  • "bricktracker_parts"."spare": part is a spare part (0 or 1)
  • "bricktracker_parts"."quantity": quantity of this part
  • "bricktracker_parts"."missing": number of missing parts
  • "bricktracker_parts"."damaged": number of damaged parts
  • "rebrickable_parts"."name": part name
  • "rebrickable_parts"."color_name": part color name
  • "total_missing": total missing across all sets (composite field)
  • "total_damaged": total damaged across all sets (composite field)
  • "total_quantity": total quantity across all sets (composite field)
  • "total_sets": number of sets containing this part (composite field)
  • "total_minifigures": number of minifigures with this part (composite field)
bash
BK_PARTS_DEFAULT_ORDER="total_missing" DESC, "rebrickable_parts"."name" ASC
BK_PARTS_DEFAULT_ORDER="rebrickable_parts"."color_name" ASC, "rebrickable_parts"."name" ASC

Optional: Change the default order of minifigures. By default ordered by insertion order.

Useful column names for this option are:

  • "rebrickable_minifigures"."figure": minifigure ID (e.g., "fig-001234")
  • "rebrickable_minifigures"."number": minifigure ID as an integer (e.g., 1234)
  • "rebrickable_minifigures"."name": minifigure name
  • "rebrickable_minifigures"."number_of_parts": number of parts in the minifigure
  • "bricktracker_minifigures"."quantity": quantity owned
  • "total_missing": number of missing parts (composite field)
  • "total_damaged": number of damaged parts (composite field)
  • "total_quantity": total quantity across all sets (composite field)
  • "total_sets": number of sets containing this minifigure (composite field)
bash
BK_MINIFIGURES_DEFAULT_ORDER="rebrickable_minifigures"."number" DESC
BK_MINIFIGURES_DEFAULT_ORDER="total_missing" DESC, "rebrickable_minifigures"."name" ASC

Optional: Change the default order of storages. By default ordered by insertion order.

Useful column names for this option are:

  • "bricktracker_metadata_storages"."name": storage name
  • "bricktracker_metadata_storages"."rowid": insertion order (special column)
bash
BK_STORAGE_DEFAULT_ORDER="bricktracker_metadata_storages"."name" DESC
BK_STORAGE_DEFAULT_ORDER="bricktracker_metadata_storages"."rowid" DESC

Optional: Change the default order of purchase locations. By default ordered by insertion order.

Useful column names for this option are:

  • "bricktracker_metadata_purchase_locations"."name": purchase location name
  • "bricktracker_metadata_purchase_locations"."rowid": insertion order (special column)
bash
BK_PURCHASE_LOCATION_DEFAULT_ORDER="bricktracker_metadata_purchase_locations"."name" DESC
BK_PURCHASE_LOCATION_DEFAULT_ORDER="bricktracker_metadata_purchase_locations"."rowid" DESC

Optional: Change the default order of wishlist sets. By default ordered by insertion order.

Useful column names for this option are:

  • "bricktracker_wishes"."set": set number as a string (e.g., "10255-1")
  • "bricktracker_wishes"."name": set name
  • "bricktracker_wishes"."year": set release year
  • "bricktracker_wishes"."number_of_parts": set number of parts
  • "bricktracker_wishes"."theme_id": theme ID
  • "bricktracker_wishes"."rowid": insertion order (special column)
bash
BK_WISHES_DEFAULT_ORDER="bricktracker_wishes"."year" DESC, "bricktracker_wishes"."name" ASC
BK_WISHES_DEFAULT_ORDER="bricktracker_wishes"."number_of_parts" DESC
BK_WISHES_DEFAULT_ORDER="bricktracker_wishes"."set" ASC

Display Options

Sort and Filter Controls

Optional: Make the grid filters displayed by default, rather than collapsed

bash
BK_SHOW_GRID_FILTERS=true

Optional: Make the grid sort displayed by default, rather than collapsed

bash
BK_SHOW_GRID_SORT=true

Optional: Show duplicate filter button on sets page

bash
BK_SHOW_SETS_DUPLICATE_FILTER=true

Optional: By default, accordion items are linked together and only one can be in a collapsed state. This makes all the items indepedent.

bash
BK_INDEPENDENT_ACCORDIONS=true

Purchase Date and Currency Formats

Optional: Format of the timestamp for purchase dates. Check https://docs.python.org/3/library/time.html#time.strftime for format details.

bash
BK_PURCHASE_DATE_FORMAT=%d/%m/%Y

Optional: Currency to display for purchase prices.

bash
BK_PURCHASE_CURRENCY=

Element Visibility

Optional: Hide the 'Instructions' entry from the menu. Does not disable the route.

bash
BK_HIDE_ALL_INSTRUCTIONS=false

Optional: Hide the 'Minifigures' entry from the menu. Does not disable the route.

bash
BK_HIDE_ALL_MINIFIGURES=false

Optional: Hide the 'Parts' entry from the menu. Does not disable the route.

bash
BK_HIDE_ALL_PARTS=false

Optional: Hide the 'Problems' entry from the menu. Does not disable the route.

bash
# Legacy name: BK_HIDE_MISSING_PARTS
BK_HIDE_ALL_PROBLEMS_PARTS=false

Optional: Hide the 'Sets' entry from the menu. Does not disable the route.

bash
BK_HIDE_ALL_SETS=false

Optional: Hide the 'Storages' entry from the menu. Does not disable the route.

bash
BK_HIDE_ALL_STORAGES=false

Optional: Hide the 'Statistics' entry from the menu. Does not disable the route.

bash
BK_HIDE_STATISTICS=false

Optional: Hide the 'Instructions' entry in a Set card

bash
BK_HIDE_SET_INSTRUCTIONS=false

Optional: Hide the 'Wishlist' entry from the menu. Does not disable the route.

bash
BK_HIDE_WISHES=false

Optional: Hide the 'Add' entry from the menu. Does not disable the route.

bash
BK_HIDE_ADD_SET=true

Optional: Hide the 'Add' entry from the menu. Does not disable the route.

bash
BK_HIDE_ADD_BULK_SET=true

Optional: Hide the 'Admin' entry from the menu. Does not disable the route.

bash
BK_HIDE_ADMIN=true

Optional: Admin sections to expand by default (comma-separated list). Valid sections: authentication, instructions, image, theme, retired, metadata, owner, purchase_location, status, storage, tag, database

bash
# Default: database (maintains original behavior with database section expanded)
BK_ADMIN_DEFAULT_EXPANDED_SECTIONS=database,theme
BK_ADMIN_DEFAULT_EXPANDED_SECTIONS=instructions,metadata
BK_ADMIN_DEFAULT_EXPANDED_SECTIONS=   (all sections collapsed)

Optional: Display Rebrickable links wherever applicable

bash
BK_REBRICKABLE_LINKS=true

Optional: Display Bricklink links wherever applicable

bash
BK_BRICKLINK_LINKS=true

These links will show up whereever applicable:

Set Parts

Optional: Hide the 'Damaged' column from the parts table.

bash
BK_HIDE_TABLE_DAMAGED_PARTS=true

Optional: Hide the 'Missing' column from the parts table.

bash
BK_HIDE_TABLE_MISSING_PARTS=true

Optional: Hide the 'Checked' column from the parts table.

bash
BK_HIDE_TABLE_CHECKED_PARTS=true

Set Consolidation

Optional: Enable set consolidation/grouping on the main sets page. When enabled, multiple copies of the same set are grouped together showing instance count. When disabled, each set copy is displayed individually

bash
BK_SETS_CONSOLIDATION=true

Statistics

Optional: Show collection growth charts on the statistics page

bash
BK_STATISTICS_SHOW_CHARTS=true

Optional: Default state of statistics page sections (expanded or collapsed). When true, all sections start expanded. When false, all sections start collapsed.

bash
BK_STATISTICS_DEFAULT_EXPANDED=true

Dark Mode

Optional: Enable dark mode by default. When true, the application starts in dark mode.

bash
BK_DARK_MODE=true

Released under the MIT License.