Index: src/wp-includes/admin-bar.php
===================================================================
--- src/wp-includes/admin-bar.php	(revision 33126)
+++ src/wp-includes/admin-bar.php	(working copy)
@@ -319,6 +319,33 @@
 }
 
 /**
+ * Add the "Customize" link.
+ *
+ * @since 4.3.0
+ *
+ * @param WP_Admin_Bar $wp_admin_bar
+ */
+function wp_admin_bar_customize_menu( $wp_admin_bar ) {
+	// Don't show for users who can't access the customizer.
+	if ( ! current_user_can( 'customize' ) ) {
+		return;
+	}
+
+	$current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
+	$customize_url = add_query_arg( 'url', urlencode( $current_url ), wp_customize_url() );
+
+	$wp_admin_bar->add_menu( array(
+		'id'     => 'customize',
+		'title'  => __('Customize'),
+		'href'   => $customize_url,
+		'meta'   => array(
+			'class' => 'hide-if-no-customize',
+		),
+	) );
+	add_action( 'wp_before_admin_bar_render', 'wp_customize_support_script' );
+}
+
+/**
  * Add the "My Sites/[Site Name]" menu and all submenus.
  *
  * @since 3.1.0
@@ -664,46 +691,15 @@
 function wp_admin_bar_appearance_menu( $wp_admin_bar ) {
 	$wp_admin_bar->add_group( array( 'parent' => 'site-name', 'id' => 'appearance' ) );
 
-	$current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
-	$customize_url = add_query_arg( 'url', urlencode( $current_url ), wp_customize_url() );
-
 	if ( current_user_can( 'switch_themes' ) ) {
 		$wp_admin_bar->add_menu( array(
 			'parent' => 'appearance',
 			'id'     => 'themes',
 			'title'  => __( 'Themes' ),
 			'href'   => admin_url( 'themes.php' ),
-			'meta'   => array(
-				'class' => 'hide-if-customize',
-			),
 		) );
-
-		if ( current_user_can( 'customize' ) ) {
-			$wp_admin_bar->add_menu( array(
-				'parent' => 'appearance',
-				'id'     => 'customize-themes',
-				'title'  => __( 'Themes' ),
-				'href'   => add_query_arg( urlencode( 'autofocus[section]' ), 'themes', $customize_url ), // urlencode() needed due to #16859
-				'meta'   => array(
-					'class' => 'hide-if-no-customize',
-				),
-			) );
-		}
 	}
 
-	if ( current_user_can( 'customize' ) ) {
-		$wp_admin_bar->add_menu( array(
-			'parent' => 'appearance',
-			'id'     => 'customize',
-			'title'  => __('Customize'),
-			'href'   => $customize_url,
-			'meta'   => array(
-				'class' => 'hide-if-no-customize',
-			),
-		) );
-		add_action( 'wp_before_admin_bar_render', 'wp_customize_support_script' );
-	}
-
 	if ( ! current_user_can( 'edit_theme_options' ) ) {
 		return;
 	}
@@ -714,22 +710,7 @@
 			'id'     => 'widgets',
 			'title'  => __( 'Widgets' ),
 			'href'   => admin_url( 'widgets.php' ),
-			'meta'   => array(
-				'class' => 'hide-if-customize',
-			),
 		) );
-
-		if ( current_user_can( 'customize' ) ) {
-			$wp_admin_bar->add_menu( array(
-				'parent' => 'appearance',
-				'id'     => 'customize-widgets',
-				'title'  => __( 'Widgets' ),
-				'href'   => add_query_arg( urlencode( 'autofocus[panel]' ), 'widgets', $customize_url ), // urlencode() needed due to #16859
-				'meta'   => array(
-					'class' => 'hide-if-no-customize',
-				),
-			) );
-		}
 	}
 
 	if ( current_theme_supports( 'menus' ) || current_theme_supports( 'widgets' ) )
@@ -745,18 +726,6 @@
 				'class' => 'hide-if-customize',
 			),
 		) );
-
-		if ( current_user_can( 'customize' ) ) {
-			$wp_admin_bar->add_menu( array(
-				'parent' => 'appearance',
-				'id'     => 'customize-background',
-				'title'  => __( 'Background' ),
-				'href'   => add_query_arg( urlencode( 'autofocus[control]' ), 'background_image', $customize_url ), // urlencode() needed due to #16859
-				'meta'   => array(
-					'class' => 'hide-if-no-customize',
-				),
-			) );
-		}
 	}
 
 	if ( current_theme_supports( 'custom-header' ) ) {
@@ -769,18 +738,6 @@
 				'class' => 'hide-if-customize',
 			),
 		) );
-
-		if ( current_user_can( 'customize' ) ) {
-			$wp_admin_bar->add_menu( array(
-				'parent' => 'appearance',
-				'id'     => 'customize-header',
-				'title'  => __( 'Header' ),
-				'href'   => add_query_arg( urlencode( 'autofocus[control]' ), 'header_image', $customize_url ), // urlencode() needed due to #16859
-				'meta'   => array(
-					'class' => 'hide-if-no-customize',
-				),
-			) );
-		}
 	}
 
 }
Index: src/wp-includes/class-wp-admin-bar.php
===================================================================
--- src/wp-includes/class-wp-admin-bar.php	(revision 33126)
+++ src/wp-includes/class-wp-admin-bar.php	(working copy)
@@ -556,7 +556,8 @@
 		add_action( 'admin_bar_menu', 'wp_admin_bar_wp_menu', 10 );
 		add_action( 'admin_bar_menu', 'wp_admin_bar_my_sites_menu', 20 );
 		add_action( 'admin_bar_menu', 'wp_admin_bar_site_menu', 30 );
-		add_action( 'admin_bar_menu', 'wp_admin_bar_updates_menu', 40 );
+		add_action( 'admin_bar_menu', 'wp_admin_bar_customize_menu', 40 );
+		add_action( 'admin_bar_menu', 'wp_admin_bar_updates_menu', 50 );
 
 		// Content related.
 		if ( ! is_network_admin() && ! is_user_admin() ) {
Index: src/wp-includes/css/admin-bar.css
===================================================================
--- src/wp-includes/css/admin-bar.css	(revision 33126)
+++ src/wp-includes/css/admin-bar.css	(working copy)
@@ -521,6 +521,12 @@
 	top: 2px;
 }
 
+#wpadminbar #wp-admin-bar-customize > .ab-item:before {
+	content: '\f540';
+	top: 2px;
+}
+
+
 #wpadminbar #wp-admin-bar-edit > .ab-item:before {
 	content: '\f464';
 	top: 2px;
@@ -882,6 +888,7 @@
 	/* My Sites and "Site Title" menu */
 	#wpadminbar #wp-admin-bar-my-sites > .ab-item,
 	#wpadminbar #wp-admin-bar-site-name > .ab-item,
+	#wpadminbar #wp-admin-bar-customize > .ab-item,
 	#wpadminbar #wp-admin-bar-edit > .ab-item,
 	#wpadminbar #wp-admin-bar-my-account > .ab-item {
 		text-indent: 100%;
@@ -903,6 +910,7 @@
 	#wpadminbar #wp-admin-bar-edit > .ab-item:before,
 	#wpadminbar #wp-admin-bar-my-sites > .ab-item:before,
 	#wpadminbar #wp-admin-bar-site-name > .ab-item:before,
+	#wpadminbar #wp-admin-bar-customize > .ab-item:before,
 	#wpadminbar #wp-admin-bar-my-account > .ab-item:before {
 		display: block;
 		text-indent: 0;
@@ -1016,6 +1024,7 @@
 	#wpadminbar li#wp-admin-bar-my-sites,
 	#wpadminbar li#wp-admin-bar-updates,
 	#wpadminbar li#wp-admin-bar-site-name,
+	#wpadminbar li#wp-admin-bar-customize,
 	#wpadminbar li#wp-admin-bar-new-content,
 	#wpadminbar li#wp-admin-bar-edit,
 	#wpadminbar li#wp-admin-bar-comments,
@@ -1130,3 +1139,10 @@
 		box-shadow: none;
 	}
 }
+
+/* Very narrow screens */
+@media screen and (max-width: 400px) {
+	#wpadminbar li#wp-admin-bar-new-content {
+		display: none;
+	}
+}
