diff --git a/src/features.coffee b/src/features.coffee
index 96a2079a7..362a3a1c7 100644
--- a/src/features.coffee
+++ b/src/features.coffee
@@ -17,12 +17,10 @@ Header =
@bar = $ '#header-bar', headerEl
@toggle = $ '#toggle-header-bar', @bar
- @setBarVisibility Conf['Header auto-hide']
- $.sync 'Header auto-hide', @setBarVisibility
@menu = new UI.Menu 'header'
- $.on $('.menu-button', @bar), 'click', @menuToggle
- $.on $('#toggle-header-bar', @bar), 'click', @toggleBarVisibility
+ $.on $('.menu-button', @bar), 'click', @menuToggle
+ $.on @toggle, 'click', @toggleBarVisibility
catalogToggler = $.el 'label',
innerHTML: " Use catalog board links"
@@ -33,6 +31,17 @@ Header =
el: catalogToggler
order: 50
+ @headerToggler = $.el 'label',
+ innerHTML: " Auto-hide header"
+ $.on @headerToggler.firstElementChild, 'change', @toggleBarVisibility
+ $.event 'AddMenuEntry',
+ type: 'header'
+ el: @headerToggler
+ order: 109
+
+ @setBarVisibility Conf['Header auto-hide']
+ $.sync 'Header auto-hide', @setBarVisibility
+
$.asap (-> d.body), ->
return unless Main.isThisPageLegit()
# Wait for #boardNavMobile instead of #boardNavDesktop,
@@ -120,9 +129,13 @@ Header =
$.set 'Header catalog links', @checked
setBarVisibility: (hide) ->
+ @headerToggler.firstElementChild.checked = hide
(if hide then $.addClass else $.rmClass) Header.bar, 'autohide'
toggleBarVisibility: ->
- hide = !$.hasClass Header.bar, 'autohide'
+ hide = if @nodeName is 'INPUT'
+ @checked
+ else
+ !$.hasClass Header.bar, 'autohide'
Header.setBarVisibility hide
message = if hide
'The header bar will automatically hide itself.'