diff --git a/Telegram/Resources/icons/filters_bots.png b/Telegram/Resources/icons/filters_bots.png
new file mode 100644
index 000000000..590b15279
Binary files /dev/null and b/Telegram/Resources/icons/filters_bots.png differ
diff --git a/Telegram/Resources/icons/filters_bots@2x.png b/Telegram/Resources/icons/filters_bots@2x.png
new file mode 100644
index 000000000..c152af138
Binary files /dev/null and b/Telegram/Resources/icons/filters_bots@2x.png differ
diff --git a/Telegram/Resources/icons/filters_bots@3x.png b/Telegram/Resources/icons/filters_bots@3x.png
new file mode 100644
index 000000000..867e63a7d
Binary files /dev/null and b/Telegram/Resources/icons/filters_bots@3x.png differ
diff --git a/Telegram/Resources/icons/filters_bots_active.png b/Telegram/Resources/icons/filters_bots_active.png
new file mode 100644
index 000000000..3342d8671
Binary files /dev/null and b/Telegram/Resources/icons/filters_bots_active.png differ
diff --git a/Telegram/Resources/icons/filters_bots_active@2x.png b/Telegram/Resources/icons/filters_bots_active@2x.png
new file mode 100644
index 000000000..6788eb795
Binary files /dev/null and b/Telegram/Resources/icons/filters_bots_active@2x.png differ
diff --git a/Telegram/Resources/icons/filters_bots_active@3x.png b/Telegram/Resources/icons/filters_bots_active@3x.png
new file mode 100644
index 000000000..7bf3a689d
Binary files /dev/null and b/Telegram/Resources/icons/filters_bots_active@3x.png differ
diff --git a/Telegram/Resources/icons/filters_channels.png b/Telegram/Resources/icons/filters_channels.png
new file mode 100644
index 000000000..1c0c0601d
Binary files /dev/null and b/Telegram/Resources/icons/filters_channels.png differ
diff --git a/Telegram/Resources/icons/filters_channels@2x.png b/Telegram/Resources/icons/filters_channels@2x.png
new file mode 100644
index 000000000..290d47fed
Binary files /dev/null and b/Telegram/Resources/icons/filters_channels@2x.png differ
diff --git a/Telegram/Resources/icons/filters_channels@3x.png b/Telegram/Resources/icons/filters_channels@3x.png
new file mode 100644
index 000000000..e896f45df
Binary files /dev/null and b/Telegram/Resources/icons/filters_channels@3x.png differ
diff --git a/Telegram/Resources/icons/filters_channels_active.png b/Telegram/Resources/icons/filters_channels_active.png
new file mode 100644
index 000000000..c76a77f8b
Binary files /dev/null and b/Telegram/Resources/icons/filters_channels_active.png differ
diff --git a/Telegram/Resources/icons/filters_channels_active@2x.png b/Telegram/Resources/icons/filters_channels_active@2x.png
new file mode 100644
index 000000000..87b26cd9d
Binary files /dev/null and b/Telegram/Resources/icons/filters_channels_active@2x.png differ
diff --git a/Telegram/Resources/icons/filters_channels_active@3x.png b/Telegram/Resources/icons/filters_channels_active@3x.png
new file mode 100644
index 000000000..535124d2a
Binary files /dev/null and b/Telegram/Resources/icons/filters_channels_active@3x.png differ
diff --git a/Telegram/Resources/icons/filters_groups.png b/Telegram/Resources/icons/filters_groups.png
new file mode 100644
index 000000000..24d62f890
Binary files /dev/null and b/Telegram/Resources/icons/filters_groups.png differ
diff --git a/Telegram/Resources/icons/filters_groups@2x.png b/Telegram/Resources/icons/filters_groups@2x.png
new file mode 100644
index 000000000..00e515474
Binary files /dev/null and b/Telegram/Resources/icons/filters_groups@2x.png differ
diff --git a/Telegram/Resources/icons/filters_groups@3x.png b/Telegram/Resources/icons/filters_groups@3x.png
new file mode 100644
index 000000000..9f3ff16e5
Binary files /dev/null and b/Telegram/Resources/icons/filters_groups@3x.png differ
diff --git a/Telegram/Resources/icons/filters_groups_active.png b/Telegram/Resources/icons/filters_groups_active.png
new file mode 100644
index 000000000..a5a143946
Binary files /dev/null and b/Telegram/Resources/icons/filters_groups_active.png differ
diff --git a/Telegram/Resources/icons/filters_groups_active@2x.png b/Telegram/Resources/icons/filters_groups_active@2x.png
new file mode 100644
index 000000000..6f87b49e4
Binary files /dev/null and b/Telegram/Resources/icons/filters_groups_active@2x.png differ
diff --git a/Telegram/Resources/icons/filters_groups_active@3x.png b/Telegram/Resources/icons/filters_groups_active@3x.png
new file mode 100644
index 000000000..342825ff2
Binary files /dev/null and b/Telegram/Resources/icons/filters_groups_active@3x.png differ
diff --git a/Telegram/Resources/icons/filters_private.png b/Telegram/Resources/icons/filters_private.png
new file mode 100644
index 000000000..68924026e
Binary files /dev/null and b/Telegram/Resources/icons/filters_private.png differ
diff --git a/Telegram/Resources/icons/filters_private@2x.png b/Telegram/Resources/icons/filters_private@2x.png
new file mode 100644
index 000000000..c39dc8d74
Binary files /dev/null and b/Telegram/Resources/icons/filters_private@2x.png differ
diff --git a/Telegram/Resources/icons/filters_private@3x.png b/Telegram/Resources/icons/filters_private@3x.png
new file mode 100644
index 000000000..42ce50320
Binary files /dev/null and b/Telegram/Resources/icons/filters_private@3x.png differ
diff --git a/Telegram/Resources/icons/filters_private_active.png b/Telegram/Resources/icons/filters_private_active.png
new file mode 100644
index 000000000..912ea878d
Binary files /dev/null and b/Telegram/Resources/icons/filters_private_active.png differ
diff --git a/Telegram/Resources/icons/filters_private_active@2x.png b/Telegram/Resources/icons/filters_private_active@2x.png
new file mode 100644
index 000000000..c83948ad4
Binary files /dev/null and b/Telegram/Resources/icons/filters_private_active@2x.png differ
diff --git a/Telegram/Resources/icons/filters_private_active@3x.png b/Telegram/Resources/icons/filters_private_active@3x.png
new file mode 100644
index 000000000..2bf50ef6e
Binary files /dev/null and b/Telegram/Resources/icons/filters_private_active@3x.png differ
diff --git a/Telegram/SourceFiles/window/window.style b/Telegram/SourceFiles/window/window.style
index 58080fa88..bbbd6c1fd 100644
--- a/Telegram/SourceFiles/window/window.style
+++ b/Telegram/SourceFiles/window/window.style
@@ -276,6 +276,22 @@ windowFiltersUnmuted: SideBarButton(windowFiltersButton) {
 	icon: icon {{ "filters_unmuted", sideBarIconFg }};
 	iconActive: icon {{ "filters_unmuted_active", sideBarIconFgActive }};
 }
+windowFiltersBots: SideBarButton(windowFiltersButton) {
+	icon: icon {{ "filters_bots", sideBarIconFg }};
+	iconActive: icon {{ "filters_bots_active", sideBarIconFgActive }};
+}
+windowFiltersChannels: SideBarButton(windowFiltersButton) {
+	icon: icon {{ "filters_channels", sideBarIconFg }};
+	iconActive: icon {{ "filters_channels_active", sideBarIconFgActive }};
+}
+windowFiltersGroups: SideBarButton(windowFiltersButton) {
+	icon: icon {{ "filters_groups", sideBarIconFg }};
+	iconActive: icon {{ "filters_groups_active", sideBarIconFgActive }};
+}
+windowFiltersPrivate: SideBarButton(windowFiltersButton) {
+	icon: icon {{ "filters_private", sideBarIconFg }};
+	iconActive: icon {{ "filters_private_active", sideBarIconFgActive }};
+}
 windowFiltersCustom: SideBarButton(windowFiltersButton) {
 	icon: icon {{ "filters_custom", sideBarIconFg }};
 	iconActive: icon {{ "filters_custom_active", sideBarIconFgActive }};
diff --git a/Telegram/SourceFiles/window/window_filters_menu.cpp b/Telegram/SourceFiles/window/window_filters_menu.cpp
index 31a5abea6..844bb2604 100644
--- a/Telegram/SourceFiles/window/window_filters_menu.cpp
+++ b/Telegram/SourceFiles/window/window_filters_menu.cpp
@@ -24,6 +24,10 @@ namespace {
 enum class Type {
 	Unread,
 	Unmuted,
+	People,
+	Groups,
+	Channels,
+	Bots,
 	Custom,
 };
 
@@ -35,12 +39,26 @@ enum class Type {
 		| Flag::Groups
 		| Flag::Broadcasts
 		| Flag::Bots;
+	const auto removed = Flag::NoRead | Flag::NoMuted;
+	const auto people = Flag::Contacts | Flag::NonContacts;
 	const auto allNoArchive = all | Flag::NoArchive;
-	if (!filter.always().empty() || !filter.never().empty()) {
+	if (!filter.always().empty()
+		|| !filter.never().empty()
+		|| !(filter.flags() & all)) {
 		return Type::Custom;
-	} else if (filter.flags() == (all | Flag::NoRead)) {
+	} else if ((filter.flags() & all) == Flag::Contacts
+		|| (filter.flags() & all) == Flag::NonContacts
+		|| (filter.flags() & all) == people) {
+		return Type::People;
+	} else if ((filter.flags() & all) == Flag::Groups) {
+		return Type::Groups;
+	} else if ((filter.flags() & all) == Flag::Broadcasts) {
+		return Type::Channels;
+	} else if ((filter.flags() & all) == Flag::Bots) {
+		return Type::Bots;
+	} else if ((filter.flags() & removed) == Flag::NoRead) {
 		return Type::Unread;
-	} else if (filter.flags() == (all | Flag::NoMuted)) {
+	} else if ((filter.flags() & removed) == Flag::NoMuted) {
 		return Type::Unmuted;
 	}
 	return Type::Custom;
@@ -50,6 +68,10 @@ enum class Type {
 	switch (type) {
 	case Type::Unread: return st::windowFiltersUnread;
 	case Type::Unmuted: return st::windowFiltersUnmuted;
+	case Type::People: return st::windowFiltersPrivate;
+	case Type::Groups: return st::windowFiltersGroups;
+	case Type::Channels: return st::windowFiltersChannels;
+	case Type::Bots: return st::windowFiltersBots;
 	case Type::Custom: return st::windowFiltersCustom;
 	}
 	Unexpected("Filter type in FiltersMenu::refresh.");