diff --git a/config/Kvantum/catppuccin-latte-blue/catppuccin-latte-blue.kvconfig b/config/Kvantum/catppuccin-latte-blue/catppuccin-latte-blue.kvconfig new file mode 100644 index 0000000..0ce2484 --- /dev/null +++ b/config/Kvantum/catppuccin-latte-blue/catppuccin-latte-blue.kvconfig @@ -0,0 +1,465 @@ +[%General] +author=elkrien based on Arc Dark style +comment=Catppuccin-Latte-Blue +combo_focus_rect=true +spread_menuitems=true +left_tabs=true +mirror_doc_tabs=true +scroll_width=8 +attach_active_tab=true +composite=true +menu_shadow_depth=7 +tooltip_shadow_depth=0 +splitter_width=7 +check_size=16 +slider_width=4 +slider_handle_width=18 +slider_handle_length=18 +textless_progressbar=false +menubar_mouse_tracking=true +slim_toolbars=false +toolbutton_style=1 +x11drag=menubar_and_primary_toolbar +double_click=false +translucent_windows=false +blurring=false +popup_blurring=true +opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam,qmplay2 +group_toolbar_buttons=false +vertical_spin_indicators=false +fill_rubberband=false +spread_progressbar=true +merge_menubar_with_toolbar=true +small_icon_size=16 +large_icon_size=32 +button_icon_size=16 +scroll_arrows=false +iconless_pushbutton=true +toolbar_icon_size=16 +combo_as_lineedit=true +button_contents_shift=false +groupbox_top_label=true +inline_spin_indicators=true +joined_inactive_tabs=false +layout_spacing=2 +submenu_overlap=0 +tooltip_delay=-1 +animate_states=false +transient_scrollbar=true +alt_mnemonic=true +combo_menu=true +layout_margin=4 +no_window_pattern=false +respect_DE=true +scroll_min_extent=36 +scrollable_menu=false +scrollbar_in_view=false +spin_button_width=16 +submenu_delay=250 +tree_branch_line=true +progressbar_thickness=8 +click_behavior=0 +contrast=1.00 +dialog_button_layout=0 +drag_from_buttons=false +hide_combo_checkboxes=false +intensity=1.00 +no_inactiveness=false +reduce_menu_opacity=0 +reduce_window_opacity=10 +saturation=1.00 +shadowless_popup=false +transient_groove=false + +[GeneralColors] +window.color=#EFF1F5 +base.color=#E6E9EF +alt.base.color=#E6E9EF +button.color=#CCD0DA +light.color=#BCC0CC +mid.light.color=#BCC0CC +dark.color=#E6E9EF +mid.color=#E6E9EF +highlight.color=#1E66F5 +inactive.highlight.color=#1E66F5 +text.color=#4C4F69 +window.text.color=#4C4F69 +button.text.color=#4C4F69 +disabled.text.color=#ACB0BE +tooltip.text.color=#4C4F69 +highlight.text.color=#E6E9EF +link.color=#DC8A78 +link.visited.color=#1E66F5 + +[ItemView] +inherits=PanelButtonCommand +frame.element=itemview +interior.element=itemview +frame=true +interior=true +text.iconspacing=3 +text.toggle.color=#E6E9EF + +[RadioButton] +inherits=PanelButtonCommand +frame=false +interior.element=radio + +[CheckBox] +inherits=PanelButtonCommand +frame=false +interior.element=checkbox + +[TreeExpander] +indicator.element=tree +indicator.size=8 + +[ToolTip] +frame.top=4 +frame.right=4 +frame.bottom=4 +frame.left=4 +frame=true + +[PanelButtonCommand] +inherits=PanelButtonCommand +interior.element=button +frame.element=button +text.normal.color=#4C4F69 +text.focus.color=#4C4F69 +text.press.color=#E6E9EF +text.toggle.color=#E6E9EF + +[PanelButtonTool] +inherits=PanelButtonCommand + +[DockTitle] +inherits=PanelButtonCommand +interior=false +frame=false +text.margin.top=5 +text.margin.bottom=5 +text.margin.left=5 +text.margin.right=5 +indicator.size=0 + +[Dock] +interior.element=toolbar +frame.element=toolbar +frame=true +interior=true + +[GroupBox] +inherits=PanelButtonCommand +interior.element=tabframe +interior=true +frame=false + +[Focus] +inherits=PanelButtonCommand +frame=true +frame.element=focus +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 +frame.patternsize=20 + +[GenericFrame] +inherits=PanelButtonCommand +frame.element=common +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 + +[Slider] +inherits=PanelButtonCommand +interior=true +frame.element=slider +interior.element=slider +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 +focusFrame=true + +[SliderCursor] +inherits=PanelButtonCommand +interior=true +interior.element=slidercursor +frame=false + +[LineEdit] +inherits=PanelButtonCommand +frame.element=lineedit +interior.element=lineedit + +[IndicatorSpinBox] +inherits=LineEdit +frame.element=lineedit +interior.element=lineedit +frame.top=0 +frame.bottom=2 +frame.left=2 +frame.right=2 +indicator.size=8 + +[DropDownButton] +inherits=PanelButtonCommand +frame.top=2 +frame.bottom=2 +frame.left=0 +frame.right=1 +indicator.size=8 + +[ToolboxTab] +inherits=PanelButtonCommand +frame.element=tabframe +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 + +[Tab] +inherits=PanelButtonCommand +interior.element=tab +frame.element=tab +frame.top=2 +frame.bottom=3 +frame.left=3 +frame.right=3 +indicator.size=10 +text.normal.color=#ACB0BE +text.focus.color=#4C4F69 +text.press.color=#4C4F69 +text.toggle.color=#4C4F69 +focusFrame=true + +[TabBarFrame] +inherits=GenericFrame +frame=true +frame.element=tabBarFrame +interior=false +frame.top=4 +frame.bottom=4 +frame.left=4 +frame.right=4 + +[TabFrame] +inherits=PanelButtonCommand +frame.element=tabframe +interior.element=tabframe + +[Dialog] +inherits=TabBarFrame +frame.element=tabframe +interior=false +frame=false +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 + +[HeaderSection] +inherits=PanelButtonCommand +interior.element=header +frame.element=header +frame.top=0 +frame.bottom=1 +frame.left=1 +frame.right=1 +frame.expansion=0 +text.normal.color=#4C4F69 +text.focus.color=#1E66F5 +text.press.color=#4C4F69 +text.toggle.color=#4C4F69 +indicator.element=harrow + +[SizeGrip] +inherits=PanelButtonCommand +frame=false +interior=false +indicator.element=resize-grip +indicator.size=0 + +[Toolbar] +inherits=PanelButtonCommand +interior.element=menubar +frame.element=menubar +frame=true +frame.bottom=4 +frame.left=4 +frame.right=4 +text.normal.color=#4C4F69 +text.focus.color=#4C4F69 +text.press.color=#1E66F5 +text.toggle.color=#1E66F5 +text.bold=false + +[MenuBar] +inherits=PanelButtonCommand +frame.element=menubar +interior.element=menubar +frame.bottom=0 +text.normal.color=#4C4F69 +frame.expansion=0 +text.bold=false + +[ToolbarButton] +frame.element=tbutton +interior.element=tbutton +indicator.element=arrow +text.normal.color=#4C4F69 +text.focus.color=#4C4F69 +text.press.color=#E6E9EF +text.toggle.color=#E6E9EF +text.bold=false + +[Scrollbar] +inherits=PanelButtonCommand +indicator.size=0 +interior=false +frame=false + +[ScrollbarGroove] +inherits=PanelButtonCommand +interior=false +frame=false + +[ScrollbarSlider] +inherits=PanelButtonCommand +interior=false +frame.element=scrollbarslider +frame.top=4 +frame.bottom=4 +frame.left=4 +frame.right=4 + +[ProgressbarContents] +inherits=PanelButtonCommand +frame=true +frame.element=progress-pattern +interior.element=progress-pattern +frame.top=2 +frame.bottom=2 +frame.left=2 +frame.right=2 + +[Progressbar] +inherits=PanelButtonCommand +frame.element=progress +interior.element=progress +frame.top=2 +frame.bottom=2 +frame.left=2 +frame.right=2 +text.margin=0 +text.normal.color=#4C4F69 +text.focus.color=#4C4F69 +text.press.color=#E6E9EF +text.toggle.color=#E6E9EF +text.bold=false +frame.expansion=18 + +[RadioButton] +inherits=PanelButtonCommand + +[Menu] +frame.element=menu +interior.element=menu +inherits=PanelButtonCommand +text.press.color=#E6E9EF +text.toggle.color=#E6E9EF +text.bold=false +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 + +[MenuItem] +inherits=PanelButtonCommand +interior.element=menuitem +indicator.size=8 +text.focus.color=#4C4F69 +text.press.color=#4C4F69 + +[MenuBarItem] +inherits=PanelButtonCommand +interior.element=menubaritem +frame=false +text.margin.top=3 +text.margin.bottom=3 +text.margin.left=5 +text.margin.right=5 + +[StatusBar] +inherits=Toolbar +frame.element=toolbar +font.bold=true +text.normal.color=#4C4F69 +frame=true +frame.top=0 +frame.bottom=0 + +[TitleBar] +inherits=PanelButtonCommand +frame=false +interior=false +text.margin.top=2 +text.margin.bottom=2 +text.margin.left=3 +text.margin.right=3 + +[ComboBox] +inherits=PanelButtonCommand +indicator.size=8 +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 +text.margin.top=1 +text.margin.bottom=1 +text.margin.left=3 +text.margin.right=3 +text.toggle.color=#4C4F69 + +[ToolboxTab] +inherits=PanelButtonCommand +text.normal.color=#4C4F69 +text.press.color=#4C4F69 +text.focus.color=#4C4F69 + +[Hacks] +transparent_dolphin_view=false +blur_konsole=true +transparent_ktitle_label=true +transparent_menutitle=true +respect_darkness=true +kcapacitybar_as_progressbar=true +force_size_grip=false +iconless_pushbutton=true +iconless_menu=false +disabled_icon_opacity=100 +lxqtmainmenu_iconsize=0 +normal_default_pushbutton=true +single_top_toolbar=false +tint_on_mouseover=0 +transparent_pcmanfm_sidepane=true +transparent_pcmanfm_view=false +blur_translucent=true +centered_forms=false +kinetic_scrolling=false +middle_click_scroll=false +no_selection_tint=false +noninteger_translucency=false +style_vertical_toolbars=false +blur_only_active_window=false + +[Window] +interior=true +interior.element=window +frame.top=0 +frame.bottom=0 +frame.left=0 +frame.right=0 diff --git a/config/Kvantum/catppuccin-latte-blue/catppuccin-latte-blue.svg b/config/Kvantum/catppuccin-latte-blue/catppuccin-latte-blue.svg new file mode 100644 index 0000000..de83096 --- /dev/null +++ b/config/Kvantum/catppuccin-latte-blue/catppuccin-latte-blue.svg @@ -0,0 +1,1958 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/Kvantum/catppuccin-mocha-blue/catppuccin-mocha-blue.kvconfig b/config/Kvantum/catppuccin-mocha-blue/catppuccin-mocha-blue.kvconfig new file mode 100644 index 0000000..e61067b --- /dev/null +++ b/config/Kvantum/catppuccin-mocha-blue/catppuccin-mocha-blue.kvconfig @@ -0,0 +1,465 @@ +[%General] +author=elkrien based on Arc Dark style +comment=Catppuccin-Mocha-Blue +combo_focus_rect=true +spread_menuitems=true +left_tabs=true +mirror_doc_tabs=true +scroll_width=8 +attach_active_tab=true +composite=true +menu_shadow_depth=7 +tooltip_shadow_depth=0 +splitter_width=7 +check_size=16 +slider_width=4 +slider_handle_width=18 +slider_handle_length=18 +textless_progressbar=false +menubar_mouse_tracking=true +slim_toolbars=false +toolbutton_style=1 +x11drag=menubar_and_primary_toolbar +double_click=false +translucent_windows=false +blurring=false +popup_blurring=true +opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam,qmplay2 +group_toolbar_buttons=false +vertical_spin_indicators=false +fill_rubberband=false +spread_progressbar=true +merge_menubar_with_toolbar=true +small_icon_size=16 +large_icon_size=32 +button_icon_size=16 +scroll_arrows=false +iconless_pushbutton=true +toolbar_icon_size=16 +combo_as_lineedit=true +button_contents_shift=false +groupbox_top_label=true +inline_spin_indicators=true +joined_inactive_tabs=false +layout_spacing=2 +submenu_overlap=0 +tooltip_delay=-1 +animate_states=false +transient_scrollbar=true +alt_mnemonic=true +combo_menu=true +layout_margin=4 +no_window_pattern=false +respect_DE=true +scroll_min_extent=36 +scrollable_menu=false +scrollbar_in_view=false +spin_button_width=16 +submenu_delay=250 +tree_branch_line=true +progressbar_thickness=8 +click_behavior=0 +contrast=1.00 +dialog_button_layout=0 +drag_from_buttons=false +hide_combo_checkboxes=false +intensity=1.00 +no_inactiveness=false +reduce_menu_opacity=0 +reduce_window_opacity=10 +saturation=1.00 +shadowless_popup=false +transient_groove=false + +[GeneralColors] +window.color=#1E1E2E +base.color=#181825 +alt.base.color=#181825 +button.color=#313244 +light.color=#45475A +mid.light.color=#45475A +dark.color=#181825 +mid.color=#181825 +highlight.color=#89B4FA +inactive.highlight.color=#89B4FA +text.color=#CDD6F4 +window.text.color=#CDD6F4 +button.text.color=#CDD6F4 +disabled.text.color=#585B70 +tooltip.text.color=#CDD6F4 +highlight.text.color=#181825 +link.color=#F5E0DC +link.visited.color=#89B4FA + +[ItemView] +inherits=PanelButtonCommand +frame.element=itemview +interior.element=itemview +frame=true +interior=true +text.iconspacing=3 +text.toggle.color=#181825 + +[RadioButton] +inherits=PanelButtonCommand +frame=false +interior.element=radio + +[CheckBox] +inherits=PanelButtonCommand +frame=false +interior.element=checkbox + +[TreeExpander] +indicator.element=tree +indicator.size=8 + +[ToolTip] +frame.top=4 +frame.right=4 +frame.bottom=4 +frame.left=4 +frame=true + +[PanelButtonCommand] +inherits=PanelButtonCommand +interior.element=button +frame.element=button +text.normal.color=#CDD6F4 +text.focus.color=#CDD6F4 +text.press.color=#181825 +text.toggle.color=#181825 + +[PanelButtonTool] +inherits=PanelButtonCommand + +[DockTitle] +inherits=PanelButtonCommand +interior=false +frame=false +text.margin.top=5 +text.margin.bottom=5 +text.margin.left=5 +text.margin.right=5 +indicator.size=0 + +[Dock] +interior.element=toolbar +frame.element=toolbar +frame=true +interior=true + +[GroupBox] +inherits=PanelButtonCommand +interior.element=tabframe +interior=true +frame=false + +[Focus] +inherits=PanelButtonCommand +frame=true +frame.element=focus +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 +frame.patternsize=20 + +[GenericFrame] +inherits=PanelButtonCommand +frame.element=common +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 + +[Slider] +inherits=PanelButtonCommand +interior=true +frame.element=slider +interior.element=slider +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 +focusFrame=true + +[SliderCursor] +inherits=PanelButtonCommand +interior=true +interior.element=slidercursor +frame=false + +[LineEdit] +inherits=PanelButtonCommand +frame.element=lineedit +interior.element=lineedit + +[IndicatorSpinBox] +inherits=LineEdit +frame.element=lineedit +interior.element=lineedit +frame.top=0 +frame.bottom=2 +frame.left=2 +frame.right=2 +indicator.size=8 + +[DropDownButton] +inherits=PanelButtonCommand +frame.top=2 +frame.bottom=2 +frame.left=0 +frame.right=1 +indicator.size=8 + +[ToolboxTab] +inherits=PanelButtonCommand +frame.element=tabframe +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 + +[Tab] +inherits=PanelButtonCommand +interior.element=tab +frame.element=tab +frame.top=2 +frame.bottom=3 +frame.left=3 +frame.right=3 +indicator.size=10 +text.normal.color=#585B70 +text.focus.color=#CDD6F4 +text.press.color=#CDD6F4 +text.toggle.color=#CDD6F4 +focusFrame=true + +[TabBarFrame] +inherits=GenericFrame +frame=true +frame.element=tabBarFrame +interior=false +frame.top=4 +frame.bottom=4 +frame.left=4 +frame.right=4 + +[TabFrame] +inherits=PanelButtonCommand +frame.element=tabframe +interior.element=tabframe + +[Dialog] +inherits=TabBarFrame +frame.element=tabframe +interior=false +frame=false +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 + +[HeaderSection] +inherits=PanelButtonCommand +interior.element=header +frame.element=header +frame.top=0 +frame.bottom=1 +frame.left=1 +frame.right=1 +frame.expansion=0 +text.normal.color=#CDD6F4 +text.focus.color=#89B4FA +text.press.color=#CDD6F4 +text.toggle.color=#CDD6F4 +indicator.element=harrow + +[SizeGrip] +inherits=PanelButtonCommand +frame=false +interior=false +indicator.element=resize-grip +indicator.size=0 + +[Toolbar] +inherits=PanelButtonCommand +interior.element=menubar +frame.element=menubar +frame=true +frame.bottom=4 +frame.left=4 +frame.right=4 +text.normal.color=#CDD6F4 +text.focus.color=#CDD6F4 +text.press.color=#89B4FA +text.toggle.color=#89B4FA +text.bold=false + +[MenuBar] +inherits=PanelButtonCommand +frame.element=menubar +interior.element=menubar +frame.bottom=0 +text.normal.color=#CDD6F4 +frame.expansion=0 +text.bold=false + +[ToolbarButton] +frame.element=tbutton +interior.element=tbutton +indicator.element=arrow +text.normal.color=#CDD6F4 +text.focus.color=#CDD6F4 +text.press.color=#181825 +text.toggle.color=#181825 +text.bold=false + +[Scrollbar] +inherits=PanelButtonCommand +indicator.size=0 +interior=false +frame=false + +[ScrollbarGroove] +inherits=PanelButtonCommand +interior=false +frame=false + +[ScrollbarSlider] +inherits=PanelButtonCommand +interior=false +frame.element=scrollbarslider +frame.top=4 +frame.bottom=4 +frame.left=4 +frame.right=4 + +[ProgressbarContents] +inherits=PanelButtonCommand +frame=true +frame.element=progress-pattern +interior.element=progress-pattern +frame.top=2 +frame.bottom=2 +frame.left=2 +frame.right=2 + +[Progressbar] +inherits=PanelButtonCommand +frame.element=progress +interior.element=progress +frame.top=2 +frame.bottom=2 +frame.left=2 +frame.right=2 +text.margin=0 +text.normal.color=#CDD6F4 +text.focus.color=#CDD6F4 +text.press.color=#181825 +text.toggle.color=#181825 +text.bold=false +frame.expansion=18 + +[RadioButton] +inherits=PanelButtonCommand + +[Menu] +frame.element=menu +interior.element=menu +inherits=PanelButtonCommand +text.press.color=#181825 +text.toggle.color=#181825 +text.bold=false +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 + +[MenuItem] +inherits=PanelButtonCommand +interior.element=menuitem +indicator.size=8 +text.focus.color=#CDD6F4 +text.press.color=#CDD6F4 + +[MenuBarItem] +inherits=PanelButtonCommand +interior.element=menubaritem +frame=false +text.margin.top=3 +text.margin.bottom=3 +text.margin.left=5 +text.margin.right=5 + +[StatusBar] +inherits=Toolbar +frame.element=toolbar +font.bold=true +text.normal.color=#CDD6F4 +frame=true +frame.top=0 +frame.bottom=0 + +[TitleBar] +inherits=PanelButtonCommand +frame=false +interior=false +text.margin.top=2 +text.margin.bottom=2 +text.margin.left=3 +text.margin.right=3 + +[ComboBox] +inherits=PanelButtonCommand +indicator.size=8 +frame.top=3 +frame.bottom=3 +frame.left=3 +frame.right=3 +text.margin.top=1 +text.margin.bottom=1 +text.margin.left=3 +text.margin.right=3 +text.toggle.color=#CDD6F4 + +[ToolboxTab] +inherits=PanelButtonCommand +text.normal.color=#CDD6F4 +text.press.color=#CDD6F4 +text.focus.color=#CDD6F4 + +[Hacks] +transparent_dolphin_view=false +blur_konsole=true +transparent_ktitle_label=true +transparent_menutitle=true +respect_darkness=true +kcapacitybar_as_progressbar=true +force_size_grip=false +iconless_pushbutton=true +iconless_menu=false +disabled_icon_opacity=100 +lxqtmainmenu_iconsize=0 +normal_default_pushbutton=true +single_top_toolbar=false +tint_on_mouseover=0 +transparent_pcmanfm_sidepane=true +transparent_pcmanfm_view=false +blur_translucent=true +centered_forms=false +kinetic_scrolling=false +middle_click_scroll=false +no_selection_tint=false +noninteger_translucency=false +style_vertical_toolbars=false +blur_only_active_window=false + +[Window] +interior=true +interior.element=window +frame.top=0 +frame.bottom=0 +frame.left=0 +frame.right=0 diff --git a/config/Kvantum/catppuccin-mocha-blue/catppuccin-mocha-blue.svg b/config/Kvantum/catppuccin-mocha-blue/catppuccin-mocha-blue.svg new file mode 100644 index 0000000..cc027e4 --- /dev/null +++ b/config/Kvantum/catppuccin-mocha-blue/catppuccin-mocha-blue.svg @@ -0,0 +1,1958 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/Kvantum/kvantum.kvconfig b/config/Kvantum/kvantum.kvconfig new file mode 100644 index 0000000..9505ded --- /dev/null +++ b/config/Kvantum/kvantum.kvconfig @@ -0,0 +1,2 @@ +[General] +theme=catppuccin-mocha-blue \ No newline at end of file diff --git a/config/cava/config b/config/cava/config new file mode 100644 index 0000000..77033b2 --- /dev/null +++ b/config/cava/config @@ -0,0 +1,185 @@ +## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting. + + +[general] + +# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 +; mode = normal + +# Accepts only non-negative values. +; framerate = 60 + +# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off +# new as of 0.6.0 autosens of low values (dynamic range) +# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 +; autosens = 1 +; overshoot = 20 + +# Manual sensitivity in %. If autosens is enabled, this will only be the initial value. +# 200 means double height. Accepts only non-negative values. +; sensitivity = 100 + +# The number of bars (0-200). 0 sets it to auto (fill up console). +# Bars' width and space between bars in number of characters. +; bars = 0 +; bar_width = 2 +; bar_spacing = 1 + +# For SDL width and space between bars is in pixels, defaults are: +; bar_width = 20 +; bar_spacing = 5 + + +# Lower and higher cutoff frequencies for lowest and highest bars +# the bandwidth of the visualizer. +# Note: there is a minimum total bandwidth of 43Mhz x number of bars. +# Cava will automatically increase the higher cutoff if a too low band is specified. +; lower_cutoff_freq = 50 +; higher_cutoff_freq = 10000 + + +# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and +# only check for input once per second. Cava will wake up once input is detected. 0 = disable. +; sleep_timer = 0 + + +[input] + +# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem' +# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. +# +# All input methods uses the same config variable 'source' +# to define where it should get the audio. +# +# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink +# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). +# +# For alsa 'source' will be the capture device. +# For fifo 'source' will be the path to fifo-file. +# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address +method = pulse +source = auto + +; method = alsa +; source = hw:Loopback,1 + +; method = fifo +; source = /tmp/mpd.fifo +; sample_rate = 44100 +; sample_bits = 16 + +; method = shmem +; source = /squeezelite-AA:BB:CC:DD:EE:FF + +; method = portaudio +; source = auto + + +[output] + +# Output method. Can be 'ncurses', 'noncurses', 'raw' or 'sdl'. +# 'noncurses' uses a custom framebuffer technique and prints only changes +# from frame to frame in the terminal. 'ncurses' is default if supported. +# +# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data +# stream of the bar heights that can be used to send to other applications. +# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. +# +# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context. +; method = ncurses + +# Visual channels. Can be 'stereo' or 'mono'. +# 'stereo' mirrors both channels with low frequencies in center. +# 'mono' outputs left to right lowest to highest frequencies. +# 'mono_option' set mono to either take input from 'left', 'right' or 'average'. +; channels = stereo +; mono_option = average + +# Raw output target. A fifo will be created if target does not exist. +; raw_target = /dev/stdout + +# Raw data format. Can be 'binary' or 'ascii'. +; data_format = binary + +# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). +; bit_format = 16bit + +# Ascii max value. In 'ascii' mode range will run from 0 to value specified here +; ascii_max_range = 1000 + +# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. +# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). +; bar_delimiter = 59 +; frame_delimiter = 10 + +# sdl window size and position. -1,-1 is centered. +; sdl_width = 1000 +; sdl_height = 500 +; sdl_x = -1 +; sdl_y= -1 + +[color] + +# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. +# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires +# ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt. +# if supported, ncurses mode will be forced on if user defined colors are used. +# default is to keep current terminal color +; background = default +; foreground = default + +# SDL only support hex code colors, these are the default: +; background = '#111111' +; foreground = '#33cccc' + + +# Gradient mode, only hex defined colors (and thereby ncurses mode) are supported, +# background must also be defined in hex or remain commented out. 1 = on, 0 = off. +# You can define as many as 8 different colors. They range from bottom to top of screen +# In the [color] section + +[color] + +gradient = 1 + +gradient_count = 8 +gradient_color_1 = '#030508' +gradient_color_2 = '#2A3859' +gradient_color_3 = '#324166' +gradient_color_4 = '#11606B' +gradient_color_5 = '#BCADBB' +gradient_color_6 = '#2B7F48' +gradient_color_7 = '#16808F' +gradient_color_8 = '#BCADBB' + +[color] + +[smoothing] + +# Percentage value for integral smoothing. Takes values from 0 - 100. +# Higher values means smoother, but less precise. 0 to disable. +; integral = 77 + +# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. +; monstercat = 0 +; waves = 0 + +# Set gravity percentage for "drop off". Higher values means bars will drop faster. +# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". +; gravity = 100 + + +# In bar height, bars that would have been lower that this will not be drawn. +; ignore = 0 + + +[eq] + +# This one is tricky. You can have as much keys as you want. +# Remember to uncomment more then one key! More keys = more precision. +# Look at readme.md on github for further explanations and examples. +; 1 = 1 # bass +; 2 = 1 +; 3 = 1 # midtone +; 4 = 1 +; 5 = 1 # treble \ No newline at end of file diff --git a/config/cava/shaders/bar_spectrum.frag b/config/cava/shaders/bar_spectrum.frag new file mode 100644 index 0000000..b078913 --- /dev/null +++ b/config/cava/shaders/bar_spectrum.frag @@ -0,0 +1,79 @@ +#version 330 + +in vec2 fragCoord; +out vec4 fragColor; + +// bar values. defaults to left channels first (low to high), then right (high to low). +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) +uniform int bar_width; // bar width (configurable), not used here +uniform int bar_spacing; // space bewteen bars (configurable) + +uniform vec3 u_resolution; // window resolution + +//colors, configurable in cava config file (r,g,b) (0.0 - 1.0) +uniform vec3 bg_color; // background color +uniform vec3 fg_color; // foreground color + +uniform int gradient_count; +uniform vec3 gradient_colors[8]; // gradient colors + +vec3 normalize_C(float y,vec3 col_1, vec3 col_2, float y_min, float y_max) +{ + //create color based on fraction of this color and next color + float yr = (y - y_min) / (y_max - y_min); + return col_1 * (1.0 - yr) + col_2 * yr; +} + +void main() +{ + // find which bar to use based on where we are on the x axis + float x = u_resolution.x * fragCoord.x; + int bar = int(bars_count * fragCoord.x); + + //calculate a bar size + float bar_size = u_resolution.x / bars_count; + + //the y coordinate and bar values are the same + float y = bars[bar]; + + // make sure there is a thin line at bottom + if (y * u_resolution.y < 1.0) + { + y = 1.0 / u_resolution.y; + } + + //draw the bar up to current height + if (y > fragCoord.y) + { + //make some space between bars basen on settings + if (x > (bar + 1) * (bar_size) - bar_spacing) + { + fragColor = vec4(bg_color,1.0); + } + else + { + if (gradient_count == 0) + { + fragColor = vec4(fg_color,1.0); + } + else + { + //find which color in the configured gradient we are at + int color = int((gradient_count - 1) * fragCoord.y); + + //find where on y this and next color is supposed to be + float y_min = color / (gradient_count - 1.0); + float y_max = (color + 1.0) / (gradient_count - 1.0); + + //make color + fragColor = vec4(normalize_C(fragCoord.y, gradient_colors[color], gradient_colors[color + 1], y_min, y_max), 1.0); + } + } + } + else + { + fragColor = vec4(bg_color,1.0); + } +} \ No newline at end of file diff --git a/config/cava/shaders/normalized_bars.frag b/config/cava/shaders/normalized_bars.frag new file mode 100644 index 0000000..81a27e2 --- /dev/null +++ b/config/cava/shaders/normalized_bars.frag @@ -0,0 +1,38 @@ +#version 330 + +in vec2 fragCoord; +out vec4 fragColor; + +// bar values. defaults to left channels first (low to high), then right (high to low). +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) + +uniform vec3 u_resolution; // window resolution, not used here + +//colors, configurable in cava config file +uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here +uniform vec3 fg_color; // foreground color, not used here + +float normalize_C(float x, float x_min, float x_max, float r_min, float r_max ) +{ + float xr; + xr = (r_max-r_min) * (x - x_min) / (x_max - x_min) + r_min; + return xr; +} + +void main() +{ + // find which bar to use based on where we are on the x axis + int bar = int(bars_count * fragCoord.x); + + // create a normal along the y axis based on the bar height + float x = normalize_C(fragCoord.y, 1.0, 0.0, 0.0, bars[bar]); + + // set color + fragColor.r=fg_color.x*x; + fragColor.g=fg_color.y*x; + fragColor.b=fg_color.z*x; + fragColor.a=1.0; + +} diff --git a/config/cava/shaders/northern_lights.frag b/config/cava/shaders/northern_lights.frag new file mode 100644 index 0000000..ecd859a --- /dev/null +++ b/config/cava/shaders/northern_lights.frag @@ -0,0 +1,34 @@ +#version 330 + +in vec2 fragCoord; +out vec4 fragColor; + +// bar values. defaults to left channels first (low to high), then right (high to low). +uniform float bars[512]; + +uniform int bars_count; // number of bars (left + right) (configurable) + +uniform vec3 u_resolution; // window resolution, not used here + +//colors, configurable in cava config file +uniform vec3 bg_color; // background color(r,g,b) (0.0 - 1.0), not used here +uniform vec3 fg_color; // foreground color, not used here + +void main() +{ + // find which bar to use based on where we are on the x axis + int bar = int(bars_count * fragCoord.x); + + float bar_y = 1.0 - abs((fragCoord.y - 0.5)) * 2.0; + float y = (bars[bar]) * bar_y; + + float bar_x = (fragCoord.x - float(bar) / float(bars_count)) * bars_count; + float bar_r = 1.0 - abs((bar_x - 0.5)) * 2; + + bar_r = bar_r * bar_r * 2; + + // set color + fragColor.r = fg_color.x * y * bar_r; + fragColor.g = fg_color.y * y * bar_r; + fragColor.b = fg_color.z * y * bar_r; +} diff --git a/config/cava/shaders/pass_through.vert b/config/cava/shaders/pass_through.vert new file mode 100644 index 0000000..a4f20e5 --- /dev/null +++ b/config/cava/shaders/pass_through.vert @@ -0,0 +1,14 @@ +#version 330 + + +// Input vertex data, different for all executions of this shader. +layout(location = 0) in vec3 vertexPosition_modelspace; + +// Output data ; will be interpolated for each fragment. +out vec2 fragCoord; + +void main() +{ + gl_Position = vec4(vertexPosition_modelspace,1); + fragCoord = (vertexPosition_modelspace.xy+vec2(1,1))/2.0; +} diff --git a/config/hypr/UserConfigs/00-Readme b/config/hypr/UserConfigs/00-Readme new file mode 100644 index 0000000..ec19027 --- /dev/null +++ b/config/hypr/UserConfigs/00-Readme @@ -0,0 +1,14 @@ +hyprland-dotfiles + +1.) Suggest not to rename any files in this folder. As this is connected and being sourced from hyprland.conf in ~/.config/hypr + +2.) This folder, along with UserScripts folder will NOT be touch when running upgrade.sh + +3.) However, if hyprland has a big change in settings, i.e., blur section is moved into another group, you should managed the change yourself. + +4.) Guidance on the keybinds. Suggest NOT to assign a keybind which I set on the default Keybinds. Else will conflict. Once Hyprland decided to have a global keybinds, then I will adjust. + +5.) If you think that the default keybinds SHOULD be adjusted, open an issue on my github page and present me a valid argument. Like conflicting to GLOBAL keybinds, etc etc etc. + + +I will update the Hyprland-Dots wiki for guidance. Make sure to check out changelogs as well diff --git a/config/hypr/UserConfigs/ENVariables.conf b/config/hypr/UserConfigs/ENVariables.conf new file mode 100644 index 0000000..32b0431 --- /dev/null +++ b/config/hypr/UserConfigs/ENVariables.conf @@ -0,0 +1,79 @@ +# Environment variables. See https://wiki.hyprland.org/Configuring/Environment-variables/ + +# Set your defaults here +#env = EDITOR,vim #default editor + +# environment-variables +# Toolkit Backend Variables +env = GDK_BACKEND,wayland,x11 +env = QT_QPA_PLATFORM,wayland;xcb +env = CLUTTER_BACKEND,wayland + +#Run SDL2 applications on Wayland. +#Remove or set to x11 if games that provide older versions of SDL cause compatibility issues +#env = SDL_VIDEODRIVER,wayland + +# xdg Specifications +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_DESKTOP,Hyprland +env = XDG_SESSION_TYPE,wayland + +# QT Variables +env = QT_AUTO_SCREEN_SCALE_FACTOR,1 +env = QT_WAYLAND_DISABLE_WINDOWDECORATION,1 +env = QT_QPA_PLATFORMTHEME,qt5ct +env = QT_QPA_PLATFORMTHEME,qt6ct + +# hyprland-qt-support +env = QT_QUICK_CONTROLS_STYLE,org.hyprland.style + +# xwayland apps scale fix (useful if you are use monitor scaling). +# Set same value if you use scaling in Monitors.conf +# 1 is 100% 1.5 is 150% +# see https://wiki.hyprland.org/Configuring/XWayland/ +env = GDK_SCALE,1 +env = QT_SCALE_FACTOR,1 + +# Bibata-Modern-Ice-Cursor +# NOTE! You must have the hyprcursor version to activate this. +# https://wiki.hyprland.org/Hypr-Ecosystem/hyprcursor/ +#env = HYPRCURSOR_THEME,Bibata-Modern-Ice +#env = HYPRCURSOR_SIZE,24 + +# firefox +env = MOZ_ENABLE_WAYLAND,1 + +# electron >28 apps (may help) +env = ELECTRON_OZONE_PLATFORM_HINT,auto + +# NVIDIA +# This is from Hyprland Wiki. Below will be activated nvidia gpu detected +# See hyprland wiki https://wiki.hyprland.org/Nvidia/#environment-variables + +#env = LIBVA_DRIVER_NAME,nvidia +#env = __GLX_VENDOR_LIBRARY_NAME,nvidia +#env = NVD_BACKEND,direct + +# to use nvidia as primary renderer (need hyprland >0.45) +#env = AQ_DRM_DEVICES,/dev/dri/card1 (nvidia) +#env = AQ_DRM_DEVICES,/dev/dri/card0 + +#env = AQ_NO_ATOMIC,1 #use legacy DRM interface + +# additional ENV's for nvidia. Caution, activate with care +#env = GBM_BACKEND,nvidia-drm + +#env = __GL_GSYNC_ALLOWED,1 #adaptive Vsync +#env = __NV_PRIME_RENDER_OFFLOAD,1 +#env = __VK_LAYER_NV_optimus,NVIDIA_only +#env = WLR_DRM_NO_ATOMIC,1 + +# FOR VM and POSSIBLY NVIDIA +# LIBGL_ALWAYS_SOFTWARE software mesa rendering +#env = LIBGL_ALWAYS_SOFTWARE,1 # Warning. May cause hyprland to crash +#env = WLR_RENDERER_ALLOW_SOFTWARE,1 + +# nvidia firefox (for hardware acceleration on FF)? +# check this post https://github.com/elFarto/nvidia-vaapi-driver#configuration +#env = MOZ_DISABLE_RDD_SANDBOX,1 +#env = EGL_PLATFORM,wayland \ No newline at end of file diff --git a/config/hypr/UserConfigs/LaptopDisplay.conf b/config/hypr/UserConfigs/LaptopDisplay.conf new file mode 100644 index 0000000..9f76658 --- /dev/null +++ b/config/hypr/UserConfigs/LaptopDisplay.conf @@ -0,0 +1,4 @@ +# NOTE, THIS FILE IS BEING USED by disabling Laptop display monitor behaviour when closing lid. +# See notes on Laptops.conf + +#monitor = eDP-1, preferred, auto, 1 diff --git a/config/hypr/UserConfigs/Laptops.conf b/config/hypr/UserConfigs/Laptops.conf new file mode 100644 index 0000000..6bbbf39 --- /dev/null +++ b/config/hypr/UserConfigs/Laptops.conf @@ -0,0 +1,53 @@ +# See https://wiki.hyprland.org/Configuring/Keywords/ for more variable settings +# These configs are mostly for laptops. This is addemdum to Keybinds.conf + +$mainMod = SUPER +$scriptsDir = $HOME/.config/hypr/scripts +$UserConfigs = $HOME/.config/hypr/UserConfigs + +# for disabling Touchpad. hyprctl devices to get device name. +$Touchpad_Device=asue1209:00-04f3:319f-touchpad + +binde = , xf86KbdBrightnessDown, exec, $scriptsDir/BrightnessKbd.sh --dec # decrease keyboard brightness +binde = , xf86KbdBrightnessUp, exec, $scriptsDir/BrightnessKbd.sh --inc # increase keyboard brightness +bind = , xf86Launch1, exec, rog-control-center # ASUS Armory crate button +bind = , xf86Launch3, exec, asusctl led-mode -n # FN+F4 Switch keyboard RGB profile +bind = , xf86Launch4, exec, asusctl profile -n # FN+F5 change of fan profiles (Quite, Balance, Performance) +binde = , xf86MonBrightnessDown, exec, $scriptsDir/Brightness.sh --dec # decrease monitor brightness +binde = , xf86MonBrightnessUp, exec, $scriptsDir/Brightness.sh --inc # increase monitor brightness +bind = , xf86TouchpadToggle, exec, $scriptsDir/TouchPad.sh # disable touchpad + +# Screenshot keybindings using F6 (no PrinSrc button) +bind = $mainMod, F6, exec, $scriptsDir/ScreenShot.sh --now # screenshot +bind = $mainMod SHIFT, F6, exec, $scriptsDir/ScreenShot.sh --area # screenshot (area) +bind = $mainMod CTRL, F6, exec, $scriptsDir/ScreenShot.sh --in5 # # screenshot (5 secs delay) +bind = $mainMod ALT, F6, exec, $scriptsDir/ScreenShot.sh --in10 # screenshot (10 secs delay) +bind = ALT, F6, exec, $scriptsDir/ScreenShot.sh --active # screenshot (active window only) + +$TOUCHPAD_ENABLED = true +device { + name = $Touchpad_Device + enabled = $TOUCHPAD_ENABLED +} +# Below are useful when you are connecting your laptop in external display +# Suggest you edit below for your laptop display +# From WIKI This is to disable laptop monitor when lid is closed. +# consult https://wiki.hyprland.org/hyprland-wiki/pages/Configuring/Binds/#switches +#bindl = , switch:off:Lid Switch,exec,hyprctl keyword monitor "eDP-1, preferred, auto, 1" +#bindl = , switch:on:Lid Switch,exec,hyprctl keyword monitor "eDP-1, disable" + + +# WARNING! Using this method has some caveats!! USE THIS PART WITH SOME CAUTION! +# CONS of doing this, is that you need to set up your wallpaper (SUPER W) and choose wallpaper. +# CAVEATS! Sometimes the Main Laptop Monitor DOES NOT have display that it needs to re-connect your external monitor +# One work around is to ensure that before shutting down laptop, MAKE SURE your laptop lid is OPEN!! +# Make sure to comment (put # on the both the bindl = , switch ......) above +# NOTE: Display for laptop are being generated into LaptopDisplay.conf +# This part is to be use if you do not want your main laptop monitor to wake up during say wallpaper change etc + +#bindl = , switch:off:Lid Switch,exec,echo "monitor = eDP-1, preferred, auto, 1" > $UserConfigs/LaptopDisplay.conf +#bindl = , switch:on:Lid Switch,exec,echo "monitor = eDP-1, disable" > $UserConfigs/LaptopDisplay.conf + +# for laptop-lid action (to erase the last entry) +#exec-once = echo "monitor = eDP-1, preferred, auto, 1" > $HOME/.config/hypr/UserConfigs/LaptopDisplay.conf +# diff --git a/config/hypr/UserConfigs/Monitors.conf b/config/hypr/UserConfigs/Monitors.conf new file mode 100644 index 0000000..9378fd3 --- /dev/null +++ b/config/hypr/UserConfigs/Monitors.conf @@ -0,0 +1,49 @@ +# Monitor Configuration +# See Hyprland wiki for more details +# https://wiki.hyprland.org/Configuring/Monitors/ +# Configure your Display resolution, offset, scale and Monitors here, use `hyprctl monitors` to get the info. + +# Monitors +monitor=,preferred,auto,1 + +# High Refresh Rate +monitor=,highrr,auto,1 + +# High Resolution +monitor=,highres,auto,1 + +# NOTE: for laptop, kindly check notes in Laptops.conf regarding display +# Created this inorder for the monitor display to not wake up if not intended. +# See here: https://github.com/hyprwm/Hyprland/issues/4090 + +# Some examples to set your own monitor +#monitor = eDP-1, preferred, auto, 1 +#monitor = eDP-1, 2560x1440@165, 0x0, 1 #own screen +#monitor = DP-3, 1920x1080@240, auto, 1 +#monitor = DP-1, preferred, auto, 1 +#monitor = HDMI-A-1, preferred,auto,1 + +# QEMU-KVM, virtual box or vmware +#monitor = Virtual-1, 1920x1080@60,auto,1 + +# to disable a monitor +#monitor=name,disable + +# Mirror samples +#monitor=DP-3,1920x1080@60,0x0,1,mirror,DP-2 +#monitor=,preferred,auto,1,mirror,eDP-1 +#monitor=HDMI-A-1,2560x1440@144,0x0,1,mirror,eDP-1 + +# 10 bit monitor support - See wiki https://wiki.hyprland.org/Configuring/Monitors/#10-bit-support - See NOTES below +# NOTE: Colors registered in Hyprland (e.g. the border color) do not support 10 bit. +# NOTE: Some applications do not support screen capture with 10 bit enabled. (Screen captures like OBS may render black screen) +# monitor=,preferred,auto,1,bitdepth,10 + +#monitor=eDP-1,transform,0 +#monitor=eDP-1,addreserved,10,10,10,49 + +# workspaces - Monitor rules +# https://wiki.hyprland.org/Configuring/Workspace-Rules/ +# SUPER E - Workspace-Rules +# See ~/.config/hypr/UserConfigs/WorkspaceRules.conf + diff --git a/config/hypr/UserConfigs/Startup_Apps.conf b/config/hypr/UserConfigs/Startup_Apps.conf new file mode 100644 index 0000000..c434a65 --- /dev/null +++ b/config/hypr/UserConfigs/Startup_Apps.conf @@ -0,0 +1,49 @@ +#Commands & Apps to be executed at launch + +$scriptsDir = $HOME/.config/hypr/scripts +$UserScripts = $HOME/.config/hypr/UserScripts + +$wallDIR=$HOME/Pictures/wallpapers +$lock = $scriptsDir/LockScreen.sh +$SwwwRandom = $UserScripts/WallpaperAutoChange.sh + +# wallpaper stuff / More wallpaper options below +exec-once = swww-daemon --format xrgb +#exec-once = $SwwwRandom $wallDIR # random wallpaper switcher every 30 minutes + +# Startup +exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP +exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + +# Polkit (Polkit Gnome / KDE) +exec-once = $scriptsDir/Polkit.sh + +# starup apps +exec-once = waybar & +exec-once = nm-applet --indicator & +exec-once = swaync & +#exec-once = ags & +#exec-once = blueman-applet & +#exec-once = rog-control-center & + +#clipboard manager +exec-once = wl-paste --type text --watch cliphist store +exec-once = wl-paste --type image --watch cliphist store + +# Rainbow borders +exec-once = $UserScripts/RainbowBorders.sh & + +# Starting hypridle to start hyprlock +exec-once = hypridle & + +# Start pyprland daemon +exec-once = pypr & + +# Here are list of features available but disabled by default +# exec-once = swww-daemon --format xrgb && swww img $HOME/Pictures/wallpapers/mecha-nostalgia.png # persistent wallpaper + +#gnome polkit for nixos +#exec-once = $scriptsDir/Polkit-NixOS.sh + +# xdg-desktop-portal-hyprland (should be auto starting. However, you can force to start) +#exec-once = $scriptsDir/PortalHyprland.sh diff --git a/config/hypr/UserConfigs/UserAnimations.conf b/config/hypr/UserConfigs/UserAnimations.conf new file mode 100644 index 0000000..dc1b5e1 --- /dev/null +++ b/config/hypr/UserConfigs/UserAnimations.conf @@ -0,0 +1,24 @@ +animations { + enabled = yes + + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = liner, 1, 1, 1, 1 + bezier = overshot, 0.05, 0.9, 0.1, 1.05 + bezier = smoothOut, 0.5, 0, 0.99, 0.99 + bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 + + animation = windows, 1, 6, wind, slide + animation = windowsIn, 1, 5, winIn, slide + animation = windowsOut, 1, 3, smoothOut, slide + animation = windowsMove, 1, 5, wind, slide + animation = border, 1, 1, liner + animation = borderangle, 1, 180, liner, loop #used by rainbow borders and rotating colors + animation = fade, 1, 3, smoothOut + animation = workspaces, 1, 5, overshot + + # animations for -git or version >0.42.0 + animation = workspacesIn, 1, 5, winIn, slide + animation = workspacesOut, 1, 5, winOut, slide +} \ No newline at end of file diff --git a/config/hypr/UserConfigs/UserDecorations.conf b/config/hypr/UserConfigs/UserDecorations.conf new file mode 100644 index 0000000..3f82270 --- /dev/null +++ b/config/hypr/UserConfigs/UserDecorations.conf @@ -0,0 +1,57 @@ +# Decoration Settings + +# Hyprland Wiki Links +# Animation - https://wiki.hyprland.org/Configuring/Animations/ +# Decoration - https://wiki.hyprland.org/Configuring/Variables/#decoration + +# Sourcing colors generated by wallust +source = $HOME/.config/hypr/wallust/wallust-hyprland.conf + +general { + border_size = 2 + gaps_in = 4 + gaps_out = 6 + + col.active_border = $color12 + col.inactive_border = $color10 +} + +decoration { + rounding = 10 + + active_opacity = 1.0 + inactive_opacity = 0.9 + fullscreen_opacity = 1.0 + + dim_inactive = true + dim_strength = 0.1 + dim_special = 0.8 + + shadow { + enabled = true + range = 3 + render_power = 1 + + color = $color12 + color_inactive = $color10 + } + + + blur { + enabled = true + size = 6 + passes = 2 + ignore_opacity = true + new_optimizations = true + special = true + popups = true + } +} + +group { + col.border_active = $color15 + + groupbar { + col.active = $color0 + } +} \ No newline at end of file diff --git a/config/hypr/UserConfigs/UserKeybinds.conf b/config/hypr/UserConfigs/UserKeybinds.conf new file mode 100644 index 0000000..a61d236 --- /dev/null +++ b/config/hypr/UserConfigs/UserKeybinds.conf @@ -0,0 +1,67 @@ +# This is where you put your own keybinds. Be Mindful to check as well ~/.config/hypr/configs/Keybinds.conf to avoid conflict + +# See https://wiki.hyprland.org/Configuring/Keywords/ for more settings and variables +# See also Laptops.conf for laptops keybinds + +# /* ---- โœด๏ธ Variables โœด๏ธ ---- */ # +$mainMod = SUPER +$files = thunar +$term = kitty +$scriptsDir = $HOME/.config/hypr/scripts +$UserScripts = $HOME/.config/hypr/UserScripts + +# common shortcuts +#bindr = $mainMod, $mainMod_L, exec, pkill rofi || rofi -show drun -modi drun,filebrowser,run,window # Super Key to Launch rofi menu +bind = $mainMod, D, exec, pkill rofi || true && rofi -show drun -modi drun,filebrowser,run,window # Main Menu (APP Launcher) +bind = $mainMod, B, exec, xdg-open "http:// &" # default browser +bind = $mainMod, A, exec, pkill rofi || true && ags -t 'overview' # desktop overview (if installed) +bind = $mainMod, Return, exec, $term #terminal +bind = $mainMod, E, exec, $files #file manager + + +# FEATURES / EXTRAS +bind = $mainMod, H, exec, $scriptsDir/KeyHints.sh # help / cheat sheet +bind = $mainMod ALT, R, exec, $scriptsDir/Refresh.sh # Refresh waybar, swaync, rofi +bind = $mainMod ALT, E, exec, $scriptsDir/RofiEmoji.sh # emoji menu +bind = $mainMod, S, exec, $scriptsDir/RofiSearch.sh # Google search using rofi +bind = $mainMod ALT, O, exec, $scriptsDir/ChangeBlur.sh # Toggle blur settings +bind = $mainMod SHIFT, G, exec, $scriptsDir/GameMode.sh # Toggle animations ON/OFF +bind = $mainMod ALT, L, exec, $scriptsDir/ChangeLayout.sh # Toggle Master or Dwindle Layout +bind = $mainMod ALT, V, exec, $scriptsDir/ClipManager.sh # Clipboard Manager +bind = $mainMod CTRL, R, exec, $scriptsDir/RofiThemeSelector.sh # Rofi Menu Theme Selector +bind = $mainMod CTRL SHIFT, R, exec, pkill rofi || true && $scriptsDir/RofiThemeSelector-modified.sh # modified Rofi Theme Selector + +bind = $mainMod SHIFT, F, fullscreen # whole full screen +bind = $mainMod CTRL, F, fullscreen, 1 # fake full screen +bind = $mainMod, SPACE, togglefloating, #Float Mode +bind = $mainMod ALT, SPACE, exec, hyprctl dispatch workspaceopt allfloat #All Float Mode + +# Waybar / Bar related +bind = $mainMod CTRL ALT, B, exec, pkill -SIGUSR1 waybar # Toggle hide/show waybar +bind = $mainMod CTRL, B, exec, $scriptsDir/WaybarStyles.sh # Waybar Styles Menu +bind = $mainMod ALT, B, exec, $scriptsDir/WaybarLayout.sh # Waybar Layout Menu + +# FEATURES / EXTRAS (UserScripts) +bind = $mainMod SHIFT, E, exec, $UserScripts/QuickEdit.sh # Quick Edit Hyprland Settings +bind = $mainMod SHIFT, M, exec, $UserScripts/RofiBeats.sh # online music using rofi +bind = $mainMod, W, exec, $UserScripts/WallpaperSelect.sh # Select wallpaper to apply +bind = $mainMod SHIFT, W, exec, $UserScripts/WallpaperEffects.sh # Wallpaper Effects by imagemagick +bind = CTRL ALT, W, exec, $UserScripts/WallpaperRandom.sh # Random wallpapers +bind = $mainMod CTRL, O, exec, hyprctl setprop active opaque toggle # disable opacity on active window +bind = $mainMod SHIFT, K, exec, $scriptsDir/KeyBinds.sh # search keybinds via rofi +bind = $mainMod SHIFT, A, exec, $scriptsDir/Animations.sh #hyprland animations menu +bind = $mainMod SHIFT, O, exec, $UserScripts/ZshChangeTheme.sh # Change oh-my-zsh theme +bindn = ALT_L, SHIFT_L, exec, $scriptsDir/SwitchKeyboardLayout.sh # Change keyboard layout +bind = $mainMod ALT, C, exec, $UserScripts/RofiCalc.sh # calculator (qalculate) + +# pyprland (This is not available in Debian and Ubuntu) +bind = $mainMod SHIFT, Return, exec, pypr toggle term # Dropdown terminal not avail Debian and Ubuntu +bind = $mainMod, Z, exec, pypr zoom # Toggle Desktop Zoom + + +# For passthrough keyboard into a VM +# bind = $mainMod ALT, P, submap, passthru +#submap = passthru +# to unbind +#bind = $mainMod ALT, P, submap, reset +#submap = reset diff --git a/config/hypr/UserConfigs/UserSettings.conf b/config/hypr/UserConfigs/UserSettings.conf new file mode 100644 index 0000000..303e7f9 --- /dev/null +++ b/config/hypr/UserConfigs/UserSettings.conf @@ -0,0 +1,118 @@ +# User Settings +# This is where you put your own settings as this will not be touched during update +# if the upgrade.sh is used. + +# refer to Hyprland wiki for more info https://wiki.hyprland.org/Configuring/Variables/ + +# NOTE: some settings are in ~/.config/hypr/UserConfigs/UserDecorAnimations.conf + +dwindle { + pseudotile = yes + preserve_split = yes + special_scale_factor = 0.8 +} + +master { + new_status = master + new_on_top = 1 + mfact = 0.5 +} + +general { + resize_on_border = true + + layout = dwindle +} + +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = + kb_rules = + repeat_rate = 50 + repeat_delay = 300 + + sensitivity = 0 #mouse sensitivity + numlock_by_default = true + left_handed = false + follow_mouse = true + float_switch_override_focus = false + + touchpad { + disable_while_typing = true + natural_scroll = false + clickfinger_behavior = false + middle_button_emulation = true + tap-to-click = true + drag_lock = false + } + + # below for devices with touchdevice ie. touchscreen + touchdevice { + enabled = true + } + + # below is for table see link above for proper variables + tablet { + transform = 0 + left_handed = 0 + } +} + +gestures { + workspace_swipe = true + workspace_swipe_fingers = 3 + workspace_swipe_distance = 500 + workspace_swipe_invert = true + workspace_swipe_min_speed_to_force = 30 + workspace_swipe_cancel_ratio = 0.5 + workspace_swipe_create_new = true + workspace_swipe_forever = true + #workspace_swipe_use_r = true #uncomment if wanted a forever create a new workspace with swipe right +} + + +misc { + disable_hyprland_logo = true + disable_splash_rendering = true + vfr = true + vrr = 2 + mouse_move_enables_dpms = true + enable_swallow = true + swallow_regex = ^(kitty)$ + focus_on_activate = false + initial_workspace_tracking = 0 + middle_click_paste = false +} + +#opengl { +# nvidia_anti_flicker = true +#} + +binds { + workspace_back_and_forth = true + allow_workspace_cycles = true + pass_mouse_when_bound = false +} + +#Could help when scaling and not pixelating +xwayland { + enabled = true + force_zero_scaling = true +} + +# render section for Hyprland >= v0.42.0 +render { + explicit_sync = 2 + explicit_sync_kms = 2 + direct_scanout = false +} + +cursor { + sync_gsettings_theme = true + no_hardware_cursors = false + enable_hyprcursor = true + warp_on_change_workspace = 2 + no_warps = true +} diff --git a/config/hypr/UserConfigs/WindowRules.conf b/config/hypr/UserConfigs/WindowRules.conf new file mode 100644 index 0000000..2ab4332 --- /dev/null +++ b/config/hypr/UserConfigs/WindowRules.conf @@ -0,0 +1,194 @@ +# For window rules and layerrules +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + +# windowrule v2 - tags - add apps under appropriate tag to use the same settings +# browser tags +windowrulev2 = tag +browser, class:^([Ff]irefox|org.mozilla.firefox|[Ff]irefox-esr)$ +windowrulev2 = tag +browser, class:^([Gg]oogle-chrome(-beta|-dev|-unstable)?)$ +windowrulev2 = tag +browser, class:^(chrome-.+-Default)$ # Chrome PWAs +windowrulev2 = tag +browser, class:^([Cc]hromium)$ +windowrulev2 = tag +browser, class:^([Mm]icrosoft-edge(-stable|-beta|-dev|-unstable))$ +windowrulev2 = tag +browser, class:^(Brave-browser(-beta|-dev|-unstable)?)$ +windowrulev2 = tag +browser, class:^([Tt]horium-browser|[Cc]achy-browser)$ +windowrulev2 = tag +browser, class:^(zen-alpha|zen)$ +windowrulev2 = tag +notif, class:^(swaync-control-center|swaync-notification-window|swaync-client|class)$ + +# terminal tags +windowrulev2 = tag +terminal, class:^(Alacritty|kitty|kitty-dropterm)$ + +# email tags +windowrulev2 = tag +email, class:^([Tt]hunderbird|org.gnome.Evolution)$ +windowrulev2 = tag +email, class:^(eu.betterbird.Betterbird)$ + +# project tags +windowrulev2 = tag +projects, class:^(codium|codium-url-handler|VSCodium)$ +windowrulev2 = tag +projects, class:^(VSCode|code-url-handler)$ +windowrulev2 = tag +projects, class:^(jetbrains-.+)$ # JetBrains IDEs + +# screenshare tags +windowrulev2 = tag +screenshare, class:^(com.obsproject.Studio)$ + +# IM tags +windowrulev2 = tag +im, class:^([Dd]iscord|[Ww]ebCord|[Vv]esktop)$ +windowrulev2 = tag +im, class:^([Ff]erdium)$ +windowrulev2 = tag +im, class:^([Ww]hatsapp-for-linux)$ +windowrulev2 = tag +im, class:^(ZapZap|com.rtosta.zapzap)$ +windowrulev2 = tag +im, class:^(org.telegram.desktop|io.github.tdesktop_x64.TDesktop)$ +windowrulev2 = tag +im, class:^(teams-for-linux)$ + +# game tags +windowrulev2 = tag +games, class:^(gamescope)$ +windowrulev2 = tag +games, class:^(steam_app_\d+)$ + +# gamestore tags +windowrulev2 = tag +gamestore, class:^([Ss]team)$ +windowrulev2 = tag +gamestore, title:^([Ll]utris)$ +windowrulev2 = tag +gamestore, class:^(com.heroicgameslauncher.hgl)$ + +# file-manager tags +windowrulev2 = tag +file-manager, class:^([Tt]hunar|org.gnome.Nautilus|[Pp]cmanfm-qt)$ +windowrulev2 = tag +file-manager, class:^(app.drey.Warp)$ + +# wallpaper tags +windowrulev2 = tag +wallpaper title:^([Ww]aytrogen)$ +windowrulev2 = tag +wallpaper, class:^([Ww]aytrogen)$ + +# multimedia tags +windowrulev2 = tag +multimedia, class:^([Aa]udacious)$ + + +# settings tags +windowrulev2 = tag +settings, title:^(ROG Control)$ +windowrulev2 = tag +settings, class:^(wihotspot(-gui)?)$ # wifi hotspot +windowrulev2 = tag +settings, class:^([Bb]aobab|org.gnome.[Bb]aobab)$ # Disk usage analyzer +windowrulev2 = tag +settings, class:^(gnome-disks|wihotspot(-gui)?)$ +windowrulev2 = tag +settings, title:(Kvantum Manager) +windowrulev2 = tag +settings, class:^(file-roller|org.gnome.FileRoller)$ # archive manager +windowrulev2 = tag +settings, class:^(nm-applet|nm-connection-editor|blueman-manager)$ +windowrulev2 = tag +settings, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$ +windowrulev2 = tag +settings, class:^(nwg-look|qt5ct|qt6ct|[Yy]ad)$ +windowrulev2 = tag +settings, class:(xdg-desktop-portal-gtk) +windowrulev2 = tag +settings, class:^(org.kde.polkit-kde-authentication-agent-1)$ +windowrulev2 = tag +settings, class:^([Rr]ofi)$ + +# viewer tags +windowrulev2 = tag +viewer, class:^(gnome-system-monitor|org.gnome.SystemMonitor|io.missioncenter.MissionCenter)$ # system monitor +windowrulev2 = tag +viewer, class:^(evince)$ # document viewer +windowrulev2 = tag +viewer, class:^(eog|org.gnome.Loupe)$ # image viewer + +# POSITION +# windowrulev2 = center,floating:1 # warning, it cause even the menu to float and center. +windowrulev2 = center, title:^(Quick Cheat Sheet)$ +windowrulev2 = center, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*) +windowrulev2 = center, title:^(ROG Control)$ +windowrulev2 = center, title:^(Keybindings)$ +windowrulev2 = center, class:^(pavucontrol|org.pulseaudio.pavucontrol|com.saivert.pwvucontrol)$ +windowrulev2 = center, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ +windowrulev2 = center, class:^([Ff]erdium)$ +windowrulev2 = move 72% 7%,title:^(Picture-in-Picture)$ +#windowrulev2 = move 72% 7%,title:^(Firefox)$ + +# windowrule v2 to avoid idle for fullscreen apps +#windowrulev2 = idleinhibit fullscreen, class:^(*)$ +#windowrulev2 = idleinhibit fullscreen, title:^(*)$ +windowrulev2 = idleinhibit fullscreen, fullscreen:1 + +# windowrule v2 move to workspace +windowrulev2 = workspace 1, tag:email* +windowrulev2 = workspace 2, tag:browser* +#windowrulev2 = workspace 3, class:^([Tt]hunar)$ +#windowrulev2 = workspace 3, tag:projects* +windowrulev2 = workspace 5, tag:gamestore* +windowrulev2 = workspace 7, tag:im* +windowrulev2 = workspace 8, tag:games* + +# windowrule v2 move to workspace (silent) +windowrulev2 = workspace 4 silent, tag:screenshare* +windowrulev2 = workspace 6 silent, class:^(virt-manager)$ +windowrulev2 = workspace 6 silent, class:^(.virt-manager-wrapped)$ +windowrulev2 = workspace 9 silent, tag:multimedia* + +# FLOAT +windowrulev2 = float, title:^(Quick Cheat Sheet)$ +windowrulev2 = float, tag:wallpaper* +windowrulev2 = float, tag:settings* +windowrulev2 = float, tag:viewer* +windowrulev2 = float, class:([Zz]oom|onedriver|onedriver-launcher)$ +windowrulev2 = float, class:(org.gnome.Calculator), title:(Calculator) +windowrulev2 = float, class:^(mpv|com.github.rafostar.Clapper)$ +windowrulev2 = float, class:^([Qq]alculate-gtk)$ +#windowrulev2 = float, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ +windowrulev2 = float, class:^([Ff]erdium)$ +windowrulev2 = float, title:^(Picture-in-Picture)$ +#windowrulev2 = float, title:^(Firefox)$ + +#windowrule v2 - float popups and dialogue +windowrulev2 = float, title:^(Authentication Required)$ +windowrulev2 = center, title:^(Authentication Required)$ +windowrulev2 = float, class:(codium|codium-url-handler|VSCodium), title:negative:(.*codium.*|.*VSCodium.*) +windowrulev2 = float, class:^(com.heroicgameslauncher.hgl)$, title:negative:(Heroic Games Launcher) +windowrulev2 = float, class:^([Ss]team)$, title:negative:^([Ss]team)$ +windowrulev2 = float, class:([Tt]hunar), title:negative:(.*[Tt]hunar.*) +#windowrulev2 = float, class:(electron), title:(Add Folder to Workspace) +windowrulev2 = float, title:^(Add Folder to Workspace)$ +windowrulev2 = size 70% 60%, title:^(Add Folder to Workspace)$ +windowrulev2 = center, title:^(Add Folder to Workspace)$ +windowrulev2 = float, initialTitle:(Open Files) +windowrulev2 = size 70% 60%, initialTitle:(Open Files) + +# OPACITY +windowrulev2 = opacity 0.9 0.7, tag:browser* +windowrulev2 = opacity 0.9 0.8, tag:projects* +windowrulev2 = opacity 0.94 0.86, tag:im* +windowrulev2 = opacity 0.94 0.86, tag:multimedia* +windowrulev2 = opacity 0.9 0.8, tag:file-manager* +windowrulev2 = opacity 0.8 0.7, tag:terminal* +windowrulev2 = opacity 0.8 0.7, tag:settings* +windowrulev2 = opacity 0.82 0.75, tag:viewer* +windowrulev2 = opacity 0.9 0.7, tag:wallpaper* +windowrulev2 = opacity 0.8 0.7, class:^(gedit|org.gnome.TextEditor|mousepad)$ +windowrulev2 = opacity 0.9 0.8, class:^(deluge)$ +windowrulev2 = opacity 0.9 0.8, class:^(im.riot.Riot)$ # Element matrix client +windowrulev2 = opacity 0.9 0.8, class:^(seahorse)$ # gnome-keyring gui +windowrulev2 = opacity 0.95 0.75, title:^(Picture-in-Picture)$ + + +# SIZE +windowrulev2 = size 65% 90%, title:^(Quick Cheat Sheet)$ +windowrulev2 = size 70% 70%, tag:wallpaper* +windowrulev2 = size 70% 70%, tag:settings* +windowrulev2 = size 60% 70%, class:^([Ww]hatsapp-for-linux|ZapZap|com.rtosta.zapzap)$ +windowrulev2 = size 60% 70%, class:^([Ff]erdium)$ + +#windowrulev2 = size 25% 25%, title:^(Picture-in-Picture)$ +#windowrulev2 = size 25% 25%, title:^(Firefox)$ + +# PINNING +windowrulev2 = pin, title:^(Picture-in-Picture)$ +#windowrulev2 = pin,title:^(Firefox)$ + +# windowrule v2 - extras +windowrulev2 = keepaspectratio, title:^(Picture-in-Picture)$ + +# BLUR & FULLSCREEN +windowrulev2 = noblur, tag:games* +windowrulev2 = fullscreen, tag:games* + +#windowrulev2 = bordercolor rgb(EE4B55) rgb(880808), fullscreen:1 +#windowrulev2 = bordercolor rgb(282737) rgb(1E1D2D), floating:1 +#windowrulev2 = opacity 0.8 0.8, pinned:1 + +# LAYER RULES +layerrule = blur, rofi +layerrule = ignorezero, rofi +layerrule = blur, notifications +layerrule = ignorezero, notifications +#layerrule = ignorealpha 0.5, tag:notif* + +#layerrule = ignorezero, class:^([Rr]ofi)$ +#layerrule = blur, class:^([Rr]ofi)$ +#layerrule = unset,class:^([Rr]ofi)$ +#layerrule = ignorezero, + +#layerrule = ignorezero, overview +#layerrule = blur, overview diff --git a/config/hypr/UserConfigs/WorkspaceRules.conf b/config/hypr/UserConfigs/WorkspaceRules.conf new file mode 100644 index 0000000..3f43017 --- /dev/null +++ b/config/hypr/UserConfigs/WorkspaceRules.conf @@ -0,0 +1,24 @@ +# You can set workspace rules to achieve workspace-specific behaviors. +# For instance, you can define a workspace where all windows are drawn without borders or gaps. + +# https://wiki.hyprland.org/Configuring/Workspace-Rules/ + +# Assigning workspace to a certain monitor. Below are just examples +# workspace = 1, monitor:eDP-1 +# workspace = 2, monitor:eDP-1 +# workspace = 3, monitor:eDP-1 +# workspace = 4, monitor:eDP-1 +# workspace = 5, monitor:DP-2 +# workspace = 6, monitor:DP-2 +# workspace = 7, monitor:DP-2 +# workspace = 8, monitor:DP-2 + + +# example rules (from wiki) +# workspace = 3, rounding:false, decorate:false +# workspace = name:coding, rounding:false, decorate:false, gapsin:0, gapsout:0, border:false, decorate:false, monitor:DP-1 +# workspace = 8,bordersize:8 +# workspace = name:Hello, monitor:DP-1, default:true +# workspace = name:gaming, monitor:desc:Chimei Innolux Corporation 0x150C, default:true +# workspace = 5, on-created-empty:[float] firefox +# workspace = special:scratchpad, on-created-empty:foot \ No newline at end of file diff --git a/config/hypr/UserScripts/00-Readme b/config/hypr/UserScripts/00-Readme new file mode 100644 index 0000000..b1733b0 --- /dev/null +++ b/config/hypr/UserScripts/00-Readme @@ -0,0 +1,3 @@ +# Place your new scripts here. +# If you need to edit a script from main script (~/.config/hypr/scripts), copy it on this folder, and edit. +# Make sure to update as well the keybinds in ~/.config/hypr/UserConfigs folder if any script is linked to it \ No newline at end of file diff --git a/config/hypr/UserScripts/QuickEdit.sh b/config/hypr/UserScripts/QuickEdit.sh new file mode 100644 index 0000000..2a39e32 --- /dev/null +++ b/config/hypr/UserScripts/QuickEdit.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# Rofi menu for Quick Edit/View of Settings (SUPER E) + +# Define preferred text editor and terminal +edit=${EDITOR:-nano} +tty=kitty + +# Paths to configuration directories +configs="$HOME/.config/hypr/configs" +UserConfigs="$HOME/.config/hypr/UserConfigs" +rofi_theme="~/.config/rofi/config-edit.rasi" +msg=' โ‰๏ธ Choose which config to View or Edit โ‰๏ธ' + +# Function to display the menu options +menu() { + cat < /dev/null; then + pkill rofi +fi + +main diff --git a/config/hypr/UserScripts/RainbowBorders.sh b/config/hypr/UserScripts/RainbowBorders.sh new file mode 100644 index 0000000..5e47030 --- /dev/null +++ b/config/hypr/UserScripts/RainbowBorders.sh @@ -0,0 +1,13 @@ +#!/bin/bash +# for rainbow borders animation + +function random_hex() { + random_hex=("0xff$(openssl rand -hex 3)") + echo $random_hex +} + +# rainbow colors only for active window +hyprctl keyword general:col.active_border $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) 270deg + +# rainbow colors for inactive window (uncomment to take effect) +#hyprctl keyword general:col.inactive_border $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) $(random_hex) 270deg \ No newline at end of file diff --git a/config/hypr/UserScripts/RofiBeats.sh b/config/hypr/UserScripts/RofiBeats.sh new file mode 100644 index 0000000..f328508 --- /dev/null +++ b/config/hypr/UserScripts/RofiBeats.sh @@ -0,0 +1,121 @@ +#!/bin/bash +# For Rofi Beats to play online Music or Locally save media files + +# Variables +mDIR="$HOME/Music/" +iDIR="$HOME/.config/swaync/icons" +rofi_theme="~/.config/rofi/config-rofi-Beats.rasi" +rofi_theme_1="~/.config/rofi/config-rofi-Beats-menu.rasi" + +# Online Stations. Edit as required +declare -A online_music=( + ["FM - Easy Rock 96.3 ๐Ÿ“ป๐ŸŽถ"]="https://radio-stations-philippines.com/easy-rock" + ["FM - Easy Rock - Baguio 91.9 ๐Ÿ“ป๐ŸŽถ"]="https://radio-stations-philippines.com/easy-rock-baguio" + ["FM - Love Radio 90.7 ๐Ÿ“ป๐ŸŽถ"]="https://radio-stations-philippines.com/love" + ["FM - WRock - CEBU 96.3 ๐Ÿ“ป๐ŸŽถ"]="https://onlineradio.ph/126-96-3-wrock.html" + ["FM - Fresh Philippines ๐Ÿ“ป๐ŸŽถ"]="https://onlineradio.ph/553-fresh-fm.html" + ["Radio - Lofi Girl ๐ŸŽง๐ŸŽถ"]="https://play.streamafrica.net/lofiradio" + ["Radio - Chillhop ๐ŸŽง๐ŸŽถ"]="http://stream.zeno.fm/fyn8eh3h5f8uv" + ["Radio - Ibiza Global ๐ŸŽง๐ŸŽถ"]="https://filtermusic.net/ibiza-global" + ["Radio - Metal Music ๐ŸŽง๐ŸŽถ"]="https://tunein.com/radio/mETaLmuSicRaDio-s119867/" + ["YT - Wish 107.5 YT Pinoy HipHop ๐Ÿ“ป๐ŸŽถ"]="https://youtube.com/playlist?list=PLkrzfEDjeYJnmgMYwCKid4XIFqUKBVWEs&si=vahW_noh4UDJ5d37" + ["YT - Youtube Top 100 Songs Global ๐Ÿ“น๐ŸŽถ"]="https://youtube.com/playlist?list=PL4fGSI1pDJn6puJdseH2Rt9sMvt9E2M4i&si=5jsyfqcoUXBCSLeu" + ["YT - Wish 107.5 YT Wishclusives ๐Ÿ“น๐ŸŽถ"]="https://youtube.com/playlist?list=PLkrzfEDjeYJn5B22H9HOWP3Kxxs-DkPSM&si=d_Ld2OKhGvpH48WO" + ["YT - Relaxing Piano Music ๐ŸŽน๐ŸŽถ"]="https://youtu.be/6H7hXzjFoVU?si=nZTPREC9lnK1JJUG" + ["YT - Youtube Remix ๐Ÿ“น๐ŸŽถ"]="https://youtube.com/playlist?list=PLeqTkIUlrZXlSNn3tcXAa-zbo95j0iN-0" + ["YT - Korean Drama OST ๐Ÿ“น๐ŸŽถ"]="https://youtube.com/playlist?list=PLUge_o9AIFp4HuA-A3e3ZqENh63LuRRlQ" + ["YT - lofi hip hop radio beats ๐Ÿ“น๐ŸŽถ"]="https://www.youtube.com/live/jfKfPfyJRdk?si=PnJIA9ErQIAw6-qd" + ["YT - Relaxing Piano Jazz Music ๐ŸŽน๐ŸŽถ"]="https://youtu.be/85UEqRat6E4?si=jXQL1Yp2VP_G6NSn" +) + +# Populate local_music array with files from music directory and subdirectories +populate_local_music() { + local_music=() + filenames=() + while IFS= read -r file; do + local_music+=("$file") + filenames+=("$(basename "$file")") + done < <(find -L "$mDIR" -type f \( -iname "*.mp3" -o -iname "*.flac" -o -iname "*.wav" -o -iname "*.ogg" -o -iname "*.mp4" \)) +} + +# Function for displaying notifications +notification() { + notify-send -u normal -i "$iDIR/music.png" " Now Playing:" " $@" +} + +# Main function for playing local music +play_local_music() { + populate_local_music + + # Prompt the user to select a song + choice=$(printf "%s\n" "${filenames[@]}" | rofi -i -dmenu -config $rofi_theme) + + if [ -z "$choice" ]; then + exit 1 + fi + + # Find the corresponding file path based on user's choice and set that to play the song then continue on the list + for (( i=0; i<"${#filenames[@]}"; ++i )); do + if [ "${filenames[$i]}" = "$choice" ]; then + + notification "$choice" + + # Play the selected local music file using mpv + mpv --playlist-start="$i" --loop-playlist --vid=no "${local_music[@]}" + + break + fi + done +} + +# Main function for shuffling local music +shuffle_local_music() { + notification "Shuffle Play local music" + + # Play music in $mDIR on shuffle + mpv --shuffle --loop-playlist --vid=no "$mDIR" +} + +# Main function for playing online music +play_online_music() { + choice=$(printf "%s\n" "${!online_music[@]}" | rofi -i -dmenu -config $rofi_theme) + + if [ -z "$choice" ]; then + exit 1 + fi + + link="${online_music[$choice]}" + + notification "$choice" + + # Play the selected online music using mpv + mpv --shuffle --vid=no "$link" +} + +# Check if an online music process is running and send a notification, otherwise run the main function +pkill mpv && notify-send -u low -i "$iDIR/music.png" "Music stopped" || { + +# Check if rofi is already running +if pidof rofi > /dev/null; then + pkill rofi +fi + + +# Prompt the user to choose between local and online music +user_choice=$(printf "Play from Online Stations\nPlay from Music Folder\nShuffle Play from Music Folder" | rofi -dmenu -config $rofi_theme_1) + + case "$user_choice" in + "Play from Music Folder") + play_local_music + ;; + "Play from Online Stations") + play_online_music + ;; + "Shuffle Play from Music Folder") + shuffle_local_music + ;; + *) + echo "Invalid choice" + ;; + esac +} diff --git a/config/hypr/UserScripts/RofiCalc.sh b/config/hypr/UserScripts/RofiCalc.sh new file mode 100644 index 0000000..b2de22f --- /dev/null +++ b/config/hypr/UserScripts/RofiCalc.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# /* Calculator (using qalculate) and rofi */ +# /* Submitted by: https://github.com/JosephArmas */ + +rofi_theme="$HOME/.config/rofi/config-calc.rasi" + +# Kill Rofi if already running before execution +if pgrep -x "rofi" >/dev/null; then + pkill rofi +fi + +# main function + +while true; do + result=$( + rofi -i -dmenu \ + -config $rofi_theme \ + -mesg "$result = $calc_result" + ) + + if [ $? -ne 0 ]; then + exit + fi + + if [ -n "$result" ]; then + calc_result=$(qalc -t "$result") + echo "$calc_result" | wl-copy + fi +done diff --git a/config/hypr/UserScripts/WallpaperAutoChange.sh b/config/hypr/UserScripts/WallpaperAutoChange.sh new file mode 100644 index 0000000..03002a2 --- /dev/null +++ b/config/hypr/UserScripts/WallpaperAutoChange.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# source https://wiki.archlinux.org/title/Hyprland#Using_a_script_to_change_wallpaper_every_X_minutes + +# This script will randomly go through the files of a directory, setting it +# up as the wallpaper at regular intervals +# +# NOTE: this script uses bash (not POSIX shell) for the RANDOM variable + +wallust_refresh=$HOME/.config/hypr/scripts/RefreshNoWaybar.sh + +focused_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}') + +if [[ $# -lt 1 ]] || [[ ! -d $1 ]]; then + echo "Usage: + $0 " + exit 1 +fi + +# Edit below to control the images transition +export SWWW_TRANSITION_FPS=60 +export SWWW_TRANSITION_TYPE=simple + +# This controls (in seconds) when to switch to the next image +INTERVAL=1800 + +while true; do + find "$1" \ + | while read -r img; do + echo "$((RANDOM % 1000)):$img" + done \ + | sort -n | cut -d':' -f2- \ + | while read -r img; do + swww img -o $focused_monitor "$img" + $wallust_refresh + sleep $INTERVAL + + done +done diff --git a/config/hypr/UserScripts/WallpaperEffects.sh b/config/hypr/UserScripts/WallpaperEffects.sh new file mode 100644 index 0000000..30e9c36 --- /dev/null +++ b/config/hypr/UserScripts/WallpaperEffects.sh @@ -0,0 +1,135 @@ +#!/bin/bash +# Wallpaper Effects using ImageMagick (SUPER SHIFT W) + +# Variables +terminal=kitty +wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" +wallpaper_output="$HOME/.config/hypr/wallpaper_effects/.wallpaper_modified" +SCRIPTSDIR="$HOME/.config/hypr/scripts" +focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name') +rofi_theme="~/.config/rofi/config-wallpaper-effect.rasi" + +# Directory for swaync +iDIR="$HOME/.config/swaync/images" +iDIRi="$HOME/.config/swaync/icons" + +# swww transition config +FPS=60 +TYPE="wipe" +DURATION=2 +BEZIER=".43,1.19,1,.4" +SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION" + +# Define ImageMagick effects +declare -A effects=( + ["No Effects"]="no-effects" + ["Black & White"]="magick $wallpaper_current -colorspace gray -sigmoidal-contrast 10,40% $wallpaper_output" + ["Blurred"]="magick $wallpaper_current -blur 0x10 $wallpaper_output" + ["Charcoal"]="magick $wallpaper_current -charcoal 0x5 $wallpaper_output" + ["Edge Detect"]="magick $wallpaper_current -edge 1 $wallpaper_output" + ["Emboss"]="magick $wallpaper_current -emboss 0x5 $wallpaper_output" + ["Frame Raised"]="magick $wallpaper_current +raise 150 $wallpaper_output" + ["Frame Sunk"]="magick $wallpaper_current -raise 150 $wallpaper_output" + ["Negate"]="magick $wallpaper_current -negate $wallpaper_output" + ["Oil Paint"]="magick $wallpaper_current -paint 4 $wallpaper_output" + ["Posterize"]="magick $wallpaper_current -posterize 4 $wallpaper_output" + ["Polaroid"]="magick $wallpaper_current -polaroid 0 $wallpaper_output" + ["Sepia Tone"]="magick $wallpaper_current -sepia-tone 65% $wallpaper_output" + ["Solarize"]="magick $wallpaper_current -solarize 80% $wallpaper_output" + ["Sharpen"]="magick $wallpaper_current -sharpen 0x5 $wallpaper_output" + ["Vignette"]="magick $wallpaper_current -vignette 0x3 $wallpaper_output" + ["Vignette-black"]="magick $wallpaper_current -background black -vignette 0x3 $wallpaper_output" + ["Zoomed"]="magick $wallpaper_current -gravity Center -extent 1:1 $wallpaper_output" +) + +# Function to apply no effects +no-effects() { + swww img -o "$focused_monitor" "$wallpaper_current" $SWWW_PARAMS && + wait $! + wallust run "$wallpaper_current" -s && + wait $! + # Refresh rofi, waybar, wallust palettes + sleep 2 + "$SCRIPTSDIR/Refresh.sh" + + notify-send -u low -i "$iDIR/ja.png" "No wallpaper" "effects applied" + # copying wallpaper for rofi menu + cp "$wallpaper_current" "$wallpaper_output" +} + +# Function to run rofi menu +main() { + # Populate rofi menu options + options=("No Effects") + for effect in "${!effects[@]}"; do + [[ "$effect" != "No Effects" ]] && options+=("$effect") + done + + choice=$(printf "%s\n" "${options[@]}" | LC_COLLATE=C sort | rofi -dmenu -i -config $rofi_theme) + + # Process user choice + if [[ -n "$choice" ]]; then + if [[ "$choice" == "No Effects" ]]; then + no-effects + elif [[ "${effects[$choice]+exists}" ]]; then + # Apply selected effect + notify-send -u normal -i "$iDIR/ja.png" "Applying:" "$choice effects" + eval "${effects[$choice]}" + + sleep 1 + swww img -o "$focused_monitor" "$wallpaper_output" $SWWW_PARAMS & + + sleep 2 + + wallust run "$wallpaper_output" -s & + sleep 1 + # Refresh rofi, waybar, wallust palettes + "${SCRIPTSDIR}/Refresh.sh" + notify-send -u low -i "$iDIR/ja.png" "$choice" "effects applied" + else + echo "Effect '$choice' not recognized." + fi + fi +} + +# Check if rofi is already running and kill it +if pidof rofi > /dev/null; then + pkill rofi +fi + +main + +sleep 1 +# Check if user selected a wallpaper +if [[ -n "$choice" ]]; then + sddm_sequoia="/usr/share/sddm/themes/sequoia_2" + if [ -d "$sddm_sequoia" ]; then + notify-send -i "$iDIR/ja.png" "Set wallpaper" "as SDDM background?" \ + -t 10000 \ + -A "yes=Yes" \ + -A "no=No" \ + -h string:x-canonical-private-synchronous:wallpaper-notify + + # Wait for user input using dbus-monitor + dbus-monitor "interface='org.freedesktop.Notifications',member='ActionInvoked'" | + while read -r line; do + if echo "$line" | grep -q "yes"; then + + # Check if terminal exists + if ! command -v "$terminal" &>/dev/null; then + notify-send -i "$iDIR/ja.png" "Missing $terminal" "Install $terminal to enable setting of wallpaper background" + exit 1 + fi + + $terminal -e bash -c "echo 'Enter your password to set wallpaper as SDDM Background'; \ + sudo cp -r $wallpaper_output '$sddm_sequoia/backgrounds/default' && \ + notify-send -i '$iDIR/ja.png' 'SDDM' 'Background SET'" + break + elif echo "$line" | grep -q "no"; then + echo "Wallpaper not set as SDDM background. Exiting." + break + fi + + done & + fi +fi \ No newline at end of file diff --git a/config/hypr/UserScripts/WallpaperRandom.sh b/config/hypr/UserScripts/WallpaperRandom.sh new file mode 100644 index 0000000..3c513c9 --- /dev/null +++ b/config/hypr/UserScripts/WallpaperRandom.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# Script for Random Wallpaper ( CTRL ALT W) + +wallDIR="$HOME/Pictures/wallpapers" +SCRIPTSDIR="$HOME/.config/hypr/scripts" + +focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name') + +PICS=($(find -L ${wallDIR} -type f \( -name "*.jpg" -o -name "*.jpeg" -o -name "*.png" -o -name "*.pnm" -o -name "*.tga" -o -name "*.tiff" -o -name "*.webp" -o -name "*.bmp" -o -name "*.farbfeld" -o -name "*.gif" \))) +RANDOMPICS=${PICS[ $RANDOM % ${#PICS[@]} ]} + + +# Transition config +FPS=30 +TYPE="random" +DURATION=1 +BEZIER=".43,1.19,1,.4" +SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION --transition-bezier $BEZIER" + + +swww query || swww-daemon --format xrgb && swww img -o $focused_monitor ${RANDOMPICS} $SWWW_PARAMS + +wait $! +"$SCRIPTSDIR/WallustSwww.sh" && + +wait $! +sleep 2 +"$SCRIPTSDIR/Refresh.sh" + diff --git a/config/hypr/UserScripts/WallpaperSelect.sh b/config/hypr/UserScripts/WallpaperSelect.sh new file mode 100644 index 0000000..b9c477d --- /dev/null +++ b/config/hypr/UserScripts/WallpaperSelect.sh @@ -0,0 +1,164 @@ +#!/bin/bash +# This script for selecting wallpapers (SUPER W) + +# WALLPAPERS PATH +terminal=kitty +wallDIR="$HOME/Pictures/wallpapers" +SCRIPTSDIR="$HOME/.config/hypr/scripts" +wallpaper_current="$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" + +rofi_override="element-icon{size:${icon_size}px;}" + +# Directory for swaync +iDIR="$HOME/.config/swaync/images" +iDIRi="$HOME/.config/swaync/icons" + +# variables +rofi_theme="~/.config/rofi/config-wallpaper.rasi" +focused_monitor=$(hyprctl monitors -j | jq -r '.[] | select(.focused) | .name') + +# Get monitor width and DPI +monitor_width=$(hyprctl monitors -j | jq -r --arg mon "$focused_monitor" '.[] | select(.name == $mon) | .width') +scale_factor=$(hyprctl monitors -j | jq -r --arg mon "$focused_monitor" '.[] | select(.name == $mon) | .scale') + +# Calculate icon size for rofi +icon_size=$(echo "scale=1; ($monitor_width * 14) / ($scale_factor * 100)" | bc) +rofi_override="element-icon{size:${icon_size}px;}" + +# swww transition config +FPS=60 +TYPE="any" +DURATION=2 +BEZIER=".43,1.19,1,.4" +SWWW_PARAMS="--transition-fps $FPS --transition-type $TYPE --transition-duration $DURATION" + +# Check if swaybg is running +if pidof swaybg > /dev/null; then + pkill swaybg +fi + +# Retrieve image files using null delimiter to handle spaces in filenames +mapfile -d '' PICS < <(find -L "${wallDIR}" -type f \( -iname "*.jpg" -o -iname "*.jpeg" -o -iname "*.pnm" -o -iname "*.tga" -o -iname "*.tiff" -o -iname "*.webp" -o -iname "*.bmp" -o -iname "*.farbfeld" -o -iname "*.png" -o -iname "*.gif" \) -print0) + +RANDOM_PIC="${PICS[$((RANDOM % ${#PICS[@]}))]}" +RANDOM_PIC_NAME=". random" + +# Rofi command +rofi_command="rofi -i -show -dmenu -config $rofi_theme -theme-str $rofi_override" + +# Sorting Wallpapers +menu() { + # Sort the PICS array + IFS=$'\n' sorted_options=($(sort <<<"${PICS[*]}")) + + # Place ". random" at the beginning with the random picture as an icon + printf "%s\x00icon\x1f%s\n" "$RANDOM_PIC_NAME" "$RANDOM_PIC" + + for pic_path in "${sorted_options[@]}"; do + pic_name=$(basename "$pic_path") + + # Displaying .gif to indicate animated images + if [[ ! "$pic_name" =~ \.gif$ ]]; then + printf "%s\x00icon\x1f%s\n" "$(echo "$pic_name" | cut -d. -f1)" "$pic_path" + else + printf "%s\n" "$pic_name" + fi + done +} + +# initiate swww if not running +swww query || swww-daemon --format xrgb + +# Choice of wallpapers +main() { + choice=$(menu | $rofi_command) + + # Trim any potential whitespace or hidden characters + choice=$(echo "$choice" | xargs) + RANDOM_PIC_NAME=$(echo "$RANDOM_PIC_NAME" | xargs) + + # No choice case + if [[ -z "$choice" ]]; then + echo "No choice selected. Exiting." + exit 0 + fi + + # Random choice case + if [[ "$choice" == "$RANDOM_PIC_NAME" ]]; then + swww img -o "$focused_monitor" "$RANDOM_PIC" $SWWW_PARAMS; + sleep 2 + "$SCRIPTSDIR/WallustSwww.sh" + sleep 0.5 + "$SCRIPTSDIR/Refresh.sh" + exit 0 + fi + + # Find the index of the selected file + pic_index=-1 + for i in "${!PICS[@]}"; do + filename=$(basename "${PICS[$i]}") + if [[ "$filename" == "$choice"* ]]; then + pic_index=$i + break + fi + done + + if [[ $pic_index -ne -1 ]]; then + swww img -o "$focused_monitor" "${PICS[$pic_index]}" $SWWW_PARAMS + else + echo "Image not found." + exit 1 + fi + +} + +# Check if rofi is already running +if pidof rofi > /dev/null; then + pkill rofi +fi + +main + +wait $! +"$SCRIPTSDIR/WallustSwww.sh" && + +wait $! +sleep 2 +"$SCRIPTSDIR/Refresh.sh" + +sleep 1 +# Check if user selected a wallpaper +if [[ -n "$choice" ]]; then + sddm_sequoia="/usr/share/sddm/themes/sequoia_2" + if [ -d "$sddm_sequoia" ]; then + notify-send -i "$iDIR/ja.png" "Set wallpaper" "as SDDM background?" \ + -t 10000 \ + -A "yes=Yes" \ + -A "no=No" \ + -h string:x-canonical-private-synchronous:wallpaper-notify + + # Wait for user input using dbus-monitor + dbus-monitor "interface='org.freedesktop.Notifications',member='ActionInvoked'" | + while read -r line; do + if echo "$line" | grep -q "yes"; then + + # Check if terminal exists + if ! command -v "$terminal" &>/dev/null; then + notify-send -i "$iDIR/ja.png" "Missing $terminal" "Install $terminal to enable setting of wallpaper background" + exit 1 + fi + + $terminal -e bash -c "echo 'Enter your password to set wallpaper as SDDM Background'; \ + sudo cp -r $wallpaper_current '$sddm_sequoia/backgrounds/default' && \ + notify-send -i '$iDIR/ja.png' 'SDDM' 'Background SET'" + break + elif echo "$line" | grep -q "no"; then + echo "Wallpaper not set as SDDM background. Exiting." + break + fi + + done & + fi +fi + + diff --git a/config/hypr/UserScripts/Weather.py b/config/hypr/UserScripts/Weather.py new file mode 100644 index 0000000..dd03624 --- /dev/null +++ b/config/hypr/UserScripts/Weather.py @@ -0,0 +1,137 @@ +#!/usr/bin/env python3 +# weather using python + +import subprocess +from pyquery import PyQuery # install using `pip install pyquery` +import json +import os + +# original code https://gist.github.com/Surendrajat/ff3876fd2166dd86fb71180f4e9342d7 +# weather icons +weather_icons = { + "sunnyDay": "๓ฐ–™", + "clearNight": "๓ฐ–”", + "cloudyFoggyDay": "๎Œƒ", + "cloudyFoggyNight": "๎†", + "rainyDay": "๎Œ†", + "rainyNight": "๎Œฑ", + "snowyIcyDay": "๎ŒŠ", + "snowyIcyNight": "๎Œง", + "severe": "๎ฎ", + "default": "๎Œ‚", +} + +# get location_id +# to get your own location_id, go to https://weather.com & search your location. +# once you choose your location, you can see the location_id in the URL(64 chars long hex string) +# like this: https://weather.com/en-PH/weather/today/l/bca47d1099e762a012b9a139c36f30a0b1e647f69c0c4ac28b537e7ae9c1c200 +location_id = "bca47d1099e762a012b9a139c36f30a0b1e647f69c0c4ac28b537e7ae9c1c200" # TODO + +# NOTE to change to deg F, change the URL to your preffered location after weather.com +# Default is English-Philippines with Busan, South Korea as location_id +# get html page +url = "https://weather.com/en-PH/weather/today/l/" + location_id +html_data = PyQuery(url=url) + +# current temperature +temp = html_data("span[data-testid='TemperatureValue']").eq(0).text() +# print(temp) + +# current status phrase +status = html_data("div[data-testid='wxPhrase']").text() +status = f"{status[:16]}.." if len(status) > 17 else status +# print(status) + +# status code +status_code = html_data("#regionHeader").attr("class").split(" ")[2].split("-")[2] +# print(status_code) + +# status icon +icon = ( + weather_icons[status_code] + if status_code in weather_icons + else weather_icons["default"] +) +# print(icon) + +# temperature feels like +temp_feel = html_data( + "div[data-testid='FeelsLikeSection'] > span > span[data-testid='TemperatureValue']" +).text() +temp_feel_text = f"Feels like {temp_feel}c" +# print(temp_feel_text) + +# min-max temperature +temp_min = ( + html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']") + .eq(1) + .text() +) +temp_max = ( + html_data("div[data-testid='wxData'] > span[data-testid='TemperatureValue']") + .eq(0) + .text() +) +temp_min_max = f"๏‹‹ {temp_min}\t\t๏‹‡ {temp_max}" +# print(temp_min_max) + +# wind speed +wind_speed = html_data("span[data-testid='Wind']").text().split("\n")[1] +wind_text = f"๎‰พ {wind_speed}" +# print(wind_text) + +# humidity +humidity = html_data("span[data-testid='PercentageValue']").text() +humidity_text = f"๎ณ {humidity}" +# print(humidity_text) + +# visibility +visbility = html_data("span[data-testid='VisibilityValue']").text() +visbility_text = f"๏ฎ {visbility}" +# print(visbility_text) + +# air quality index +air_quality_index = html_data("text[data-testid='DonutChartValue']").text() +# print(air_quality_index) + +# hourly rain prediction +prediction = html_data("section[aria-label='Hourly Forecast']")( + "div[data-testid='SegmentPrecipPercentage'] > span" +).text() +prediction = prediction.replace("Chance of Rain", "") +prediction = f"\n\n๎Œ˜ (hourly) {prediction}" if len(prediction) > 0 else prediction +# print(prediction) + +# tooltip text +tooltip_text = str.format( + "\t\t{}\t\t\n{}\n{}\n{}\n\n{}\n{}\n{}{}", + f'{temp}', + f" {icon}", + f"{status}", + f"{temp_feel_text}", + f"{temp_min_max}", + f"{wind_text}\t{humidity_text}", + f"{visbility_text}\tAQI {air_quality_index}", + f" {prediction}", +) + +# print waybar module data +out_data = { + "text": f"{icon} {temp}", + "alt": status, + "tooltip": tooltip_text, + "class": status_code, +} +print(json.dumps(out_data)) + +simple_weather =f"{icon} {status}\n" + \ + f"๏‹‰ {temp} ({temp_feel_text})\n" + \ + f"{wind_text} \n" + \ + f"{humidity_text} \n" + \ + f"{visbility_text} AQI{air_quality_index}\n" + +try: + with open(os.path.expanduser("~/.cache/.weather_cache"), "w") as file: + file.write(simple_weather) +except: + pass diff --git a/config/hypr/UserScripts/Weather.sh b/config/hypr/UserScripts/Weather.sh new file mode 100644 index 0000000..c3086dc --- /dev/null +++ b/config/hypr/UserScripts/Weather.sh @@ -0,0 +1,86 @@ +#!/bin/bash +# weather info from wttr. https://github.com/chubin/wttr.in +# Remember to add city + +city= +cachedir=~/.cache/rbn +cachefile=${0##*/}-$1 + +if [ ! -d $cachedir ]; then + mkdir -p $cachedir +fi + +if [ ! -f $cachedir/$cachefile ]; then + touch $cachedir/$cachefile +fi + +# Save current IFS +SAVEIFS=$IFS +# Change IFS to new line. +IFS=$'\n' + +cacheage=$(($(date +%s) - $(stat -c '%Y' "$cachedir/$cachefile"))) +if [ $cacheage -gt 1740 ] || [ ! -s $cachedir/$cachefile ]; then + data=($(curl -s https://en.wttr.in/"$city"$1\?0qnT 2>&1)) + echo ${data[0]} | cut -f1 -d, > $cachedir/$cachefile + echo ${data[1]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile + echo ${data[2]} | sed -E 's/^.{15}//' >> $cachedir/$cachefile +fi + +weather=($(cat $cachedir/$cachefile)) + +# Restore IFSClear +IFS=$SAVEIFS + +temperature=$(echo ${weather[2]} | sed -E 's/([[:digit:]]+)\.\./\1 to /g') + +#echo ${weather[1]##*,} + +# https://fontawesome.com/icons?s=solid&c=weather +case $(echo ${weather[1]##*,} | tr '[:upper:]' '[:lower:]') in +"clear" | "sunny") + condition="๎Œ" + ;; +"partly cloudy") + condition="๓ฐ–•" + ;; +"cloudy") + condition="๎Œ’" + ;; +"overcast") + condition="๎ŒŒ" + ;; +"fog" | "freezing fog") + condition="๎Œ“" + ;; +"patchy rain possible" | "patchy light drizzle" | "light drizzle" | "patchy light rain" | "light rain" | "light rain shower" | "mist" | "rain") + condition="๓ฐผณ" + ;; +"moderate rain at times" | "moderate rain" | "heavy rain at times" | "heavy rain" | "moderate or heavy rain shower" | "torrential rain shower" | "rain shower") + condition="๎ˆน" + ;; +"patchy snow possible" | "patchy sleet possible" | "patchy freezing drizzle possible" | "freezing drizzle" | "heavy freezing drizzle" | "light freezing rain" | "moderate or heavy freezing rain" | "light sleet" | "ice pellets" | "light sleet showers" | "moderate or heavy sleet showers") + condition="๓ฐผด" + ;; +"blowing snow" | "moderate or heavy sleet" | "patchy light snow" | "light snow" | "light snow showers") + condition="๓ฐ™ฟ" + ;; +"blizzard" | "patchy moderate snow" | "moderate snow" | "patchy heavy snow" | "heavy snow" | "moderate or heavy snow with thunder" | "moderate or heavy snow showers") + condition="๎ž" + ;; +"thundery outbreaks possible" | "patchy light rain with thunder" | "moderate or heavy rain with thunder" | "patchy light snow with thunder") + condition="๎Œ" + ;; +*) + condition="๏ช" + echo -e "{\"text\":\""$condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" + ;; +esac + +#echo $temp $condition + +echo -e "{\"text\":\""$temperature $condition"\", \"alt\":\""${weather[0]}"\", \"tooltip\":\""${weather[0]}: $temperature ${weather[1]}"\"}" + +cached_weather="๏‹‰ $temperature \n$condition ${weather[1]}" + +echo -e $cached_weather > ~/.cache/.weather_cache \ No newline at end of file diff --git a/config/hypr/UserScripts/ZshChangeTheme.sh b/config/hypr/UserScripts/ZshChangeTheme.sh new file mode 100644 index 0000000..23cc776 --- /dev/null +++ b/config/hypr/UserScripts/ZshChangeTheme.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# Script for Oh my ZSH theme ( CTRL SHIFT O) + +# preview of theme can be view here: https://github.com/ohmyzsh/ohmyzsh/wiki/Themes +# after choosing theme, TTY need to be closed and re-open + +themes_dir="$HOME/.oh-my-zsh/themes" +file_extension=".zsh-theme" + +# Variables +iDIR="$HOME/.config/swaync/images" +rofi_theme="~/.config/rofi/config-zsh-theme.rasi" + +themes_array=($(find -L "$themes_dir" -type f -name "*$file_extension" -exec basename {} \; | sed -e "s/$file_extension//")) + +# Add "Random" option to the beginning of the array +themes_array=("Random" "${themes_array[@]}") + +rofi_command="rofi -i -dmenu -config $rofi_theme" + +menu() { + for theme in "${themes_array[@]}"; do + echo "$theme" + done +} + +main() { + choice=$(menu | ${rofi_command}) + + # if nothing selected, script won't change anything + if [ -z "$choice" ]; then + exit 0 + fi + + zsh_path="$HOME/.zshrc" + var_name="ZSH_THEME" + + if [[ "$choice" == "Random" ]]; then + # Pick a random theme from the original themes_array (excluding "Random") + random_theme=${themes_array[$((RANDOM % (${#themes_array[@]} - 1) + 1))]} + theme_to_set="$random_theme" + notify-send -i "$iDIR/ja.png" "Random theme:" "selected: $random_theme" + else + # Set theme to the selected choice + theme_to_set="$choice" + notify-send -i "$iDIR/ja.png" "Theme selected:" "$choice" + fi + + if [ -f "$zsh_path" ]; then + sed -i "s/^$var_name=.*/$var_name=\"$theme_to_set\"/" "$zsh_path" + notify-send -i "$iDIR/ja.png" "OMZ theme" "applied. restart your terminal" + else + notify-send -i "$iDIR/ja.png" "Error:" "~.zshrc file not found!" + fi +} + +# Check if rofi is already running +if pidof rofi > /dev/null; then + pkill rofi +fi + +main diff --git a/config/hypr/animations/00-default.conf b/config/hypr/animations/00-default.conf new file mode 100644 index 0000000..dc1b5e1 --- /dev/null +++ b/config/hypr/animations/00-default.conf @@ -0,0 +1,24 @@ +animations { + enabled = yes + + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = liner, 1, 1, 1, 1 + bezier = overshot, 0.05, 0.9, 0.1, 1.05 + bezier = smoothOut, 0.5, 0, 0.99, 0.99 + bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 + + animation = windows, 1, 6, wind, slide + animation = windowsIn, 1, 5, winIn, slide + animation = windowsOut, 1, 3, smoothOut, slide + animation = windowsMove, 1, 5, wind, slide + animation = border, 1, 1, liner + animation = borderangle, 1, 180, liner, loop #used by rainbow borders and rotating colors + animation = fade, 1, 3, smoothOut + animation = workspaces, 1, 5, overshot + + # animations for -git or version >0.42.0 + animation = workspacesIn, 1, 5, winIn, slide + animation = workspacesOut, 1, 5, winOut, slide +} \ No newline at end of file diff --git a/config/hypr/animations/01-default - v2.conf b/config/hypr/animations/01-default - v2.conf new file mode 100644 index 0000000..4dbd991 --- /dev/null +++ b/config/hypr/animations/01-default - v2.conf @@ -0,0 +1,25 @@ +# old animations + +animations { + enabled = yes + + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + bezier = linear, 0.0, 0.0, 1.0, 1.0 + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = slow, 0, 0.85, 0.3, 1 + bezier = overshot, 0.7, 0.6, 0.1, 1.1 + bezier = bounce, 1.1, 1.6, 0.1, 0.85 + bezier = sligshot, 1, -1, 0.15, 1.25 + bezier = nice, 0, 6.9, 0.5, -4.20 + + animation = windowsIn, 1, 5, slow, popin + animation = windowsOut, 1, 5, winOut, popin + animation = windowsMove, 1, 5, wind, slide + animation = border, 1, 10, linear + animation = borderangle, 1, 180, linear, loop #used by rainbow borders and rotating colors + animation = fade, 1, 5, overshot + animation = workspaces, 1, 5, wind + animation = windows, 1, 5, bounce, popin +} \ No newline at end of file diff --git a/config/hypr/animations/03-disabled.conf b/config/hypr/animations/03-disabled.conf new file mode 100644 index 0000000..276271e --- /dev/null +++ b/config/hypr/animations/03-disabled.conf @@ -0,0 +1,3 @@ +animations { + enabled = no +} \ No newline at end of file diff --git a/config/hypr/animations/END-4.conf b/config/hypr/animations/END-4.conf new file mode 100644 index 0000000..8d90c59 --- /dev/null +++ b/config/hypr/animations/END-4.conf @@ -0,0 +1,38 @@ +# name "End-4" +# credit https://github.com/end-4/dots-hyprland + +animations { + enabled = true + # Animation curves + + bezier = linear, 0, 0, 1, 1 + bezier = md3_standard, 0.2, 0, 0, 1 + bezier = md3_decel, 0.05, 0.7, 0.1, 1 + bezier = md3_accel, 0.3, 0, 0.8, 0.15 + bezier = overshot, 0.05, 0.9, 0.1, 1.1 + bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 + bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 + bezier = menu_decel, 0.1, 1, 0, 1 + bezier = menu_accel, 0.38, 0.04, 1, 0.07 + bezier = easeInOutCirc, 0.85, 0, 0.15, 1 + bezier = easeOutCirc, 0, 0.55, 0.45, 1 + bezier = easeOutExpo, 0.16, 1, 0.3, 1 + bezier = softAcDecel, 0.26, 0.26, 0.15, 1 + bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration + # Animation configs + animation = windows, 1, 3, md3_decel, popin 60% + animation = windowsIn, 1, 3, md3_decel, popin 60% + animation = windowsOut, 1, 3, md3_accel, popin 60% + animation = border, 1, 10, default + animation = fade, 1, 3, md3_decel + # animation = layers, 1, 2, md3_decel, slide + animation = layersIn, 1, 3, menu_decel, slide + animation = layersOut, 1, 1.6, menu_accel + animation = fadeLayersIn, 1, 2, menu_decel + animation = fadeLayersOut, 1, 4.5, menu_accel + animation = workspaces, 1, 7, menu_decel, slide + # animation = workspaces, 1, 2.5, softAcDecel, slide + # animation = workspaces, 1, 7, menu_decel, slidefade 15% + # animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15% + animation = specialWorkspace, 1, 3, md3_decel, slidevert +} diff --git a/config/hypr/animations/HYDE - Vertical.conf b/config/hypr/animations/HYDE - Vertical.conf new file mode 100644 index 0000000..86ddcee --- /dev/null +++ b/config/hypr/animations/HYDE - Vertical.conf @@ -0,0 +1,32 @@ +# name "Vertical" +# credit https://github.com/prasanthrangan/hyprdots + +animations { + enabled = yes + + bezier = fluent_decel, 0, 0.2, 0.4, 1 + bezier = easeOutCirc, 0, 0.55, 0.45, 1 + bezier = easeOutCubic, 0.33, 1, 0.68, 1 + bezier = easeinoutsine, 0.37, 0, 0.63, 1 + + # Windows + animation = windowsIn, 1, 1.5, easeinoutsine, popin 60% # window open + animation = windowsOut, 1, 1.5, easeOutCubic, popin 60% # window close. + animation = windowsMove, 1, 1.5, easeinoutsine, slide # everything in between, moving, dragging, resizing. + + # Fading + animation = fade, 1, 2.5, fluent_decel + + animation = fadeLayersIn, 0 + animation = border, 0 + + + # Layers + animation = layers, 1, 1.5, easeinoutsine, popin + + # Workspaces + #animation = workspaces, 1, 3, fluent_decel, slidefade 30% # styles: slide, slidevert, fade, slidefade, slidefadevert + animation = workspaces, 1, 3, fluent_decel, slidefadevert 30% # styles: slide, slidevert, fade, slidefade, slidefadevert + + animation = specialWorkspace, 1, 2, fluent_decel, slidefade 10% +} diff --git a/config/hypr/animations/HYDE - default.conf b/config/hypr/animations/HYDE - default.conf new file mode 100644 index 0000000..a468660 --- /dev/null +++ b/config/hypr/animations/HYDE - default.conf @@ -0,0 +1,19 @@ +# name "Default" +# credit https://github.com/prasanthrangan/hyprdots + +animations { + enabled = yes + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = liner, 1, 1, 1, 1 + animation = windows, 1, 6, wind, slide + animation = windowsIn, 1, 6, winIn, slide + animation = windowsOut, 1, 5, winOut, slide + animation = windowsMove, 1, 5, wind, slide + animation = border, 1, 1, liner + animation = borderangle, 1, 30, liner, once + animation = fade, 1, 10, default + animation = workspaces, 1, 5, wind + animation = specialWorkspace, 1, 5, wind, slidevert +} diff --git a/config/hypr/animations/HYDE - minimal-1.conf b/config/hypr/animations/HYDE - minimal-1.conf new file mode 100644 index 0000000..b0c2073 --- /dev/null +++ b/config/hypr/animations/HYDE - minimal-1.conf @@ -0,0 +1,25 @@ +# # name "Minimal-1" +# credit https://github.com/prasanthrangan/hyprdots- + +animations { + enabled = true + + # โ–ˆโ–„โ–„โ€ƒโ–ˆโ–€โ–€โ€ƒโ–€โ–ˆโ€ƒโ–ˆโ€ƒโ–ˆโ–€โ–€โ€ƒโ–ˆโ–€โ–ˆโ€ƒ โ€ƒโ–ˆโ–€โ–€โ€ƒโ–ˆโ–‘โ–ˆโ€ƒโ–ˆโ–€โ–ˆโ€ƒโ–ˆโ–‘โ–ˆโ€ƒโ–ˆโ–€โ–€ + # โ–ˆโ–„โ–ˆโ€ƒโ–ˆโ–ˆโ–„โ€ƒโ–ˆโ–„โ€ƒโ–ˆโ€ƒโ–ˆโ–ˆโ–„โ€ƒโ–ˆโ–€โ–„โ€ƒ โ€ƒโ–ˆโ–„โ–„โ€ƒโ–ˆโ–„โ–ˆโ€ƒโ–ˆโ–€โ–„โ€ƒโ–€โ–„โ–€โ€ƒโ–ˆโ–ˆโ–„ + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = liner, 1, 1, 1, 1 + + + #โ–„โ–€โ–ˆโ€ƒโ–ˆโ–„โ–‘โ–ˆโ€ƒโ–ˆโ€ƒโ–ˆโ–€โ–„โ–€โ–ˆโ€ƒโ–„โ–€โ–ˆโ€ƒโ–€โ–ˆโ–€โ€ƒโ–ˆโ€ƒโ–ˆโ–€โ–ˆโ€ƒโ–ˆโ–„โ–‘โ–ˆ + #โ–ˆโ–€โ–ˆโ€ƒโ–ˆโ–‘โ–€โ–ˆโ€ƒโ–ˆโ€ƒโ–ˆโ–‘โ–€โ–‘โ–ˆโ€ƒโ–ˆโ–€โ–ˆโ€ƒโ–‘โ–ˆโ–‘โ€ƒโ–ˆโ€ƒโ–ˆโ–„โ–ˆโ€ƒโ–ˆโ–‘โ–€โ–ˆ + animation = windows, 1, 6, wind, slide + animation = windowsIn, 1, 6, winIn, slide + animation = windowsOut, 1, 5, winOut, slide + animation = windowsMove, 1, 5, wind, slide + animation = border, 1, 1, liner + animation = borderangle, 1, 30, liner, once + animation = fade, 1, 10, default + animation = workspaces, 1, 5, wind +} diff --git a/config/hypr/animations/HYDE - minimal-2.conf b/config/hypr/animations/HYDE - minimal-2.conf new file mode 100644 index 0000000..c1b7577 --- /dev/null +++ b/config/hypr/animations/HYDE - minimal-2.conf @@ -0,0 +1,14 @@ +# name "Minimal-2" +# credit https://github.com/prasanthrangan/hyprdots + +animations { + enabled = yes + + bezier = quart, 0.25, 1, 0.5, 1 + + animation = windows, 1, 6, quart, slide + animation = border, 1, 6, quart + animation = borderangle, 1, 6, quart + animation = fade, 1, 6, quart + animation = workspaces, 1, 6, quart +} \ No newline at end of file diff --git a/config/hypr/animations/HYDE - optimized.conf b/config/hypr/animations/HYDE - optimized.conf new file mode 100644 index 0000000..ea292d0 --- /dev/null +++ b/config/hypr/animations/HYDE - optimized.conf @@ -0,0 +1,39 @@ +# name "Optimized" +# credit https://github.com/prasanthrangan/hyprdots + +animations { + enabled = true + bezier = wind, 0.05, 0.85, 0.03, 0.97 + bezier = winIn, 0.07, 0.88, 0.04, 0.99 + bezier = winOut, 0.20, -0.15, 0, 1 + bezier = liner, 1, 1, 1, 1 + bezier = md3_standard, 0.12, 0, 0, 1 + bezier = md3_decel, 0.05, 0.80, 0.10, 0.97 + bezier = md3_accel, 0.20, 0, 0.80, 0.08 + bezier = overshot, 0.05, 0.85, 0.07, 1.04 + bezier = crazyshot, 0.1, 1.22, 0.68, 0.98 + bezier = hyprnostretch, 0.05, 0.82, 0.03, 0.94 + bezier = menu_decel, 0.05, 0.82, 0, 1 + bezier = menu_accel, 0.20, 0, 0.82, 0.10 + bezier = easeInOutCirc, 0.75, 0, 0.15, 1 + bezier = easeOutCirc, 0, 0.48, 0.38, 1 + bezier = easeOutExpo, 0.10, 0.94, 0.23, 0.98 + bezier = softAcDecel, 0.20, 0.20, 0.15, 1 + bezier = md2, 0.30, 0, 0.15, 1 + + bezier = OutBack, 0.28, 1.40, 0.58, 1 + bezier = easeInOutCirc, 0.78, 0, 0.15, 1 + + animation = border, 1, 1.6, liner + animation = borderangle, 1, 82, liner, once + animation = windowsIn, 1, 3.2, winIn, slide + animation = windowsOut, 1, 2.8, easeOutCirc + animation = windowsMove, 1, 3.0, wind, slide + animation = fade, 1, 1.8, md3_decel + animation = layersIn, 1, 1.8, menu_decel, slide + animation = layersOut, 1, 1.5, menu_accel + animation = fadeLayersIn, 1, 1.6, menu_decel + animation = fadeLayersOut, 1, 1.8, menu_accel + animation = workspaces, 1, 4.0, menu_decel, slide + animation = specialWorkspace, 1, 2.3, md3_decel, slidefadevert 15% +} diff --git a/config/hypr/animations/ML4W - classic.conf b/config/hypr/animations/ML4W - classic.conf new file mode 100644 index 0000000..3d347aa --- /dev/null +++ b/config/hypr/animations/ML4W - classic.conf @@ -0,0 +1,13 @@ +# name "Classic" +# credit https://github.com/mylinuxforwork/dotfiles + +animations { + enabled = true + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} diff --git a/config/hypr/animations/ML4W - dynamic.conf b/config/hypr/animations/ML4W - dynamic.conf new file mode 100644 index 0000000..43c83d8 --- /dev/null +++ b/config/hypr/animations/ML4W - dynamic.conf @@ -0,0 +1,18 @@ +# name "Dynamic" +# credit https://github.com/mylinuxforwork/dotfiles + +animations { + enabled = true + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = liner, 1, 1, 1, 1 + animation = windows, 1, 6, wind, slide + animation = windowsIn, 1, 6, winIn, slide + animation = windowsOut, 1, 5, winOut, slide + animation = windowsMove, 1, 5, wind, slide + animation = border, 1, 1, liner + animation = borderangle, 1, 30, liner, loop + animation = fade, 1, 10, default + animation = workspaces, 1, 5, wind +} diff --git a/config/hypr/animations/ML4W - fast.conf b/config/hypr/animations/ML4W - fast.conf new file mode 100644 index 0000000..37121a3 --- /dev/null +++ b/config/hypr/animations/ML4W - fast.conf @@ -0,0 +1,22 @@ +# name "Fast" +# credit https://github.com/mylinuxforwork/dotfiles + +animations { + enabled = true + bezier = linear, 0, 0, 1, 1 + bezier = md3_standard, 0.2, 0, 0, 1 + bezier = md3_decel, 0.05, 0.7, 0.1, 1 + bezier = md3_accel, 0.3, 0, 0.8, 0.15 + bezier = overshot, 0.05, 0.9, 0.1, 1.1 + bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 + bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 + bezier = fluent_decel, 0.1, 1, 0, 1 + bezier = easeInOutCirc, 0.85, 0, 0.15, 1 + bezier = easeOutCirc, 0, 0.55, 0.45, 1 + bezier = easeOutExpo, 0.16, 1, 0.3, 1 + animation = windows, 1, 3, md3_decel, popin 60% + animation = border, 1, 10, default + animation = fade, 1, 2.5, md3_decel + animation = workspaces, 1, 3.5, easeOutExpo, slide + animation = specialWorkspace, 1, 3, md3_decel, slidevert +} \ No newline at end of file diff --git a/config/hypr/animations/ML4W - high.conf b/config/hypr/animations/ML4W - high.conf new file mode 100644 index 0000000..7266ce5 --- /dev/null +++ b/config/hypr/animations/ML4W - high.conf @@ -0,0 +1,18 @@ +# name "High" +# credit https://github.com/mylinuxforwork/dotfiles + +animations { + enabled = true + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = liner, 1, 1, 1, 1 + animation = windows, 1, 6, wind, slide + animation = windowsIn, 1, 6, winIn, slide + animation = windowsOut, 1, 5, winOut, slide + animation = windowsMove, 1, 5, wind, slide + animation = border, 1, 1, liner + animation = borderangle, 1, 30, liner, once + animation = fade, 1, 10, default + animation = workspaces, 1, 5, wind +} diff --git a/config/hypr/animations/ML4W - moving.conf b/config/hypr/animations/ML4W - moving.conf new file mode 100644 index 0000000..9171ff5 --- /dev/null +++ b/config/hypr/animations/ML4W - moving.conf @@ -0,0 +1,18 @@ +# name "Moving" +# credit https://github.com/mylinuxforwork/dotfiles + + +animations { + enabled = true + bezier = overshot, 0.05, 0.9, 0.1, 1.05 + bezier = smoothOut, 0.5, 0, 0.99, 0.99 + bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 + animation = windows, 1, 5, overshot, slide + animation = windowsOut, 1, 3, smoothOut + animation = windowsIn, 1, 3, smoothOut + animation = windowsMove, 1, 4, smoothIn, slide + animation = border, 1, 5, default + animation = fade, 1, 5, smoothIn + animation = fadeDim, 1, 5, smoothIn + animation = workspaces, 1, 6, default +} diff --git a/config/hypr/animations/ML4W - standard.conf b/config/hypr/animations/ML4W - standard.conf new file mode 100644 index 0000000..2bd0f8b --- /dev/null +++ b/config/hypr/animations/ML4W - standard.conf @@ -0,0 +1,13 @@ +# name "Standard" +# credit https://github.com/mylinuxforwork/dotfiles + +animations { + enabled = true + bezier = myBezier, 0.05, 0.9, 0.1, 1.05 + animation = windows, 1, 7, myBezier + animation = windowsOut, 1, 7, default, popin 80% + animation = border, 1, 10, default + animation = borderangle, 1, 8, default + animation = fade, 1, 7, default + animation = workspaces, 1, 6, default +} diff --git a/config/hypr/animations/Mahaveer - me-1.conf b/config/hypr/animations/Mahaveer - me-1.conf new file mode 100644 index 0000000..cacf922 --- /dev/null +++ b/config/hypr/animations/Mahaveer - me-1.conf @@ -0,0 +1,53 @@ +# name "Me-1" +# credit https://github.com/mahaveergurjar + +animations { + enabled = true + # Animation curves + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = liner, 1, 1, 1, 1 + # bezier = linear, 0, 0, 1, 1 + bezier = md3_standard, 0.2, 0, 0, 1 + bezier = md3_decel, 0.05, 0.7, 0.1, 1 + bezier = md3_accel, 0.3, 0, 0.8, 0.15 + bezier = overshot, 0.05, 0.9, 0.1, 1.1 + bezier = crazyshot, 0.1, 1.5, 0.76, 0.92 + bezier = hyprnostretch, 0.05, 0.9, 0.1, 1.0 + bezier = menu_decel, 0.1, 1, 0, 1 + bezier = menu_accel, 0.38, 0.04, 1, 0.07 + bezier = easeInOutCirc, 0.85, 0, 0.15, 1 + bezier = easeOutCirc, 0, 0.55, 0.45, 1 + bezier = easeOutExpo, 0.16, 1, 0.3, 1 + bezier = softAcDecel, 0.26, 0.26, 0.15, 1 + bezier = md2, 0.4, 0, 0.2, 1 # use with .2s duration + + # Animation configs + # animation = windows, 1, 3, md3_decel, popin 60% + # animation = windowsIn, 1, 3, md3_decel, popin 60% + # animation = windowsOut, 1, 3, md3_accel, popin 60% + # animation = windows, 1, 6, wind, slide + animation = border, 1, 1, liner + animation = borderangle, 1, 30, liner, once + animation = windows, 1, 6, wind, slide + animation = windowsIn, 1, 6, winIn, slide + animation = windowsOut, 1, 5, winOut, slide + animation = windowsMove, 1, 5, wind, slide + + # animation = border, 1, 10, default + animation = fade, 1, 3, md3_decel + # animation = layers, 1, 2, md3_decel, slide + animation = layersIn, 1, 3, menu_decel, slide + animation = layersOut, 1, 1.6, menu_accel + animation = fadeLayersIn, 1, 2, menu_decel + animation = fadeLayersOut, 1, 4.5, menu_accel + animation = workspaces, 1, 7, menu_decel, slide + animation = workspaces, 1, 5, wind + # animation = workspaces, 1, 2.5, softAcDecel, slide + # animation = workspaces, 1, 7, menu_decel, slidefade 15% + animation = specialWorkspace, 1, 3, md3_decel, slidefadevert 15% + animation = specialWorkspace, 1, 3, md3_decel, slidevert +} + + diff --git a/config/hypr/animations/Mahaveer - me-2.conf b/config/hypr/animations/Mahaveer - me-2.conf new file mode 100644 index 0000000..c9d1eca --- /dev/null +++ b/config/hypr/animations/Mahaveer - me-2.conf @@ -0,0 +1,28 @@ +# name "Me-2" +# credit https://github.com/mahaveergurjar + + +animations { + enabled = yes + + bezier = wind, 0.05, 0.9, 0.1, 1.05 + bezier = winIn, 0.1, 1.1, 0.1, 1.1 + bezier = winOut, 0.3, -0.3, 0, 1 + bezier = liner, 1, 1, 1, 1 + bezier = overshot, 0.05, 0.9, 0.1, 1.05 + bezier = smoothOut, 0.5, 0, 0.99, 0.99 + bezier = smoothIn, 0.5, -0.5, 0.68, 1.5 + + animation = windows, 1, 6, wind, slide + animation = windowsIn, 1, 5, winIn, slide + animation = windowsOut, 1, 3, smoothOut, slide + animation = windowsMove, 1, 5, wind, slide + animation = border, 1, 1, liner + animation = borderangle, 1, 180, liner, loop #used by rainbow borders and rotating colors + animation = fade, 1, 3, smoothOut + animation = workspaces, 1, 5, overshot + + # animations for -git or version >0.42.0 + animation = workspacesIn, 1, 5, winIn, slide + animation = workspacesOut, 1, 5, winOut, slide +} \ No newline at end of file diff --git a/config/hypr/application-style.conf b/config/hypr/application-style.conf new file mode 100644 index 0000000..9d50743 --- /dev/null +++ b/config/hypr/application-style.conf @@ -0,0 +1,7 @@ +# as per Hyprland wiki: hyprland-qt-support provides a QML style for hypr* qt6 apps + +roundess = 2 + +border_width = 0 + +reduce_motion = false \ No newline at end of file diff --git a/config/hypr/configs/Keybinds.conf b/config/hypr/configs/Keybinds.conf new file mode 100644 index 0000000..b152dcc --- /dev/null +++ b/config/hypr/configs/Keybinds.conf @@ -0,0 +1,142 @@ +# Default Keybinds +# visit https://wiki.hyprland.org/Configuring/Binds/ for more info + +# /* ---- โœด๏ธ Variables โœด๏ธ ---- */ # +$mainMod = SUPER +# Default +$scriptsDir = $HOME/.config/hypr/scripts +$UserConfigs = $HOME/.config/hypr/UserConfigs +$UserScripts = $HOME/.config/hypr/UserScripts + +bind = CTRL ALT, Delete, exec, hyprctl dispatch exit 0 +bind = $mainMod, Q, killactive, #kill +bind = $mainMod SHIFT, Q, exec, $scriptsDir/KillActiveProcess.sh # Kill active process +bind = CTRL ALT, L, exec, $scriptsDir/LockScreen.sh # screen lock +bind = CTRL ALT, P, exec, $scriptsDir/Wlogout.sh # power menu +bind = $mainMod SHIFT, N, exec, swaync-client -t -sw # swayNC notification panel + +# Master Layout +bind = $mainMod CTRL, D, layoutmsg, removemaster +bind = $mainMod, I, layoutmsg, addmaster +bind = $mainMod, J, layoutmsg, cyclenext +bind = $mainMod, K, layoutmsg, cycleprev +bind = $mainMod CTRL, Return, layoutmsg, swapwithmaster + +# Dwindle Layout +bind = $mainMod SHIFT, I, togglesplit # only works on dwindle layout +bind = $mainMod, P, pseudo, # dwindle + +# Works on either layout (Master or Dwindle) +bind = $mainMod, M, exec, hyprctl dispatch splitratio 0.3 + +# group +bind = $mainMod, G, togglegroup # toggle group +bind = $mainMod CTRL, tab, changegroupactive # change focus to another window + + # Cycle windows if floating bring to top +bind = ALT, tab, cyclenext +bind = ALT, tab, bringactivetotop + +# Special Keys / Hot Keys +bindel = , xf86audioraisevolume, exec, $scriptsDir/Volume.sh --inc # volume up +bindel = , xf86audiolowervolume, exec, $scriptsDir/Volume.sh --dec # volume down +bindl = , xf86AudioMicMute, exec, $scriptsDir/Volume.sh --toggle-mic # mic mute +bindl = , xf86audiomute, exec, $scriptsDir/Volume.sh --toggle # mute +bindl = , xf86Sleep, exec, systemctl suspend # sleep button +bindl = , xf86Rfkill, exec, $scriptsDir/AirplaneMode.sh # Airplane mode + +# media controls using keyboards +bindl = , xf86AudioPlayPause, exec, $scriptsDir/MediaCtrl.sh --pause +bindl = , xf86AudioPause, exec, $scriptsDir/MediaCtrl.sh --pause +bindl = , xf86AudioPlay, exec, $scriptsDir/MediaCtrl.sh --pause +bindl = , xf86AudioNext, exec, $scriptsDir/MediaCtrl.sh --nxt +bindl = , xf86AudioPrev, exec, $scriptsDir/MediaCtrl.sh --prv +bindl = , xf86audiostop, exec, $scriptsDir/MediaCtrl.sh --stop + +# Screenshot keybindings NOTE: You may need to press Fn key as well +bind = $mainMod, Print, exec, $scriptsDir/ScreenShot.sh --now # screenshot +bind = $mainMod SHIFT, Print, exec, $scriptsDir/ScreenShot.sh --area # screenshot (area) +bind = $mainMod CTRL, Print, exec, $scriptsDir/ScreenShot.sh --in5 # screenshot (5 secs delay) +bind = $mainMod CTRL SHIFT, Print, exec, $scriptsDir/ScreenShot.sh --in10 # screenshot (10 secs delay) +bind = ALT, Print, exec, $scriptsDir/ScreenShot.sh --active # screenshot (active window only) + +# screenshot with swappy (another screenshot tool) +bind = $mainMod SHIFT, S, exec, $scriptsDir/ScreenShot.sh --swappy #screenshot (swappy) + +# Resize windows +binde = $mainMod SHIFT, left, resizeactive,-50 0 +binde = $mainMod SHIFT, right, resizeactive,50 0 +binde = $mainMod SHIFT, up, resizeactive,0 -50 +binde = $mainMod SHIFT, down, resizeactive,0 50 + +# Move windows +bind = $mainMod CTRL, left, movewindow, l +bind = $mainMod CTRL, right, movewindow, r +bind = $mainMod CTRL, up, movewindow, u +bind = $mainMod CTRL, down, movewindow, d + +# Move focus with mainMod + arrow keys +bind = $mainMod, left, movefocus, l +bind = $mainMod, right, movefocus, r +bind = $mainMod, up, movefocus, u +bind = $mainMod, down, movefocus, d + +# Workspaces related +bind = $mainMod, tab, workspace, m+1 +bind = $mainMod SHIFT, tab, workspace, m-1 + +# Special workspace +bind = $mainMod SHIFT, U, movetoworkspace, special +bind = $mainMod, U, togglespecialworkspace, + +# The following mappings use the key codes to better support various keyboard layouts +# 1 is code:10, 2 is code 11, etc +# Switch workspaces with mainMod + [0-9] +bind = $mainMod, code:10, workspace, 1 # NOTE: code:10 = key 1 +bind = $mainMod, code:11, workspace, 2 # NOTE: code:11 = key 2 +bind = $mainMod, code:12, workspace, 3 # NOTE: code:12 = key 3 +bind = $mainMod, code:13, workspace, 4 # NOTE: code:13 = key 4 +bind = $mainMod, code:14, workspace, 5 # NOTE: code:14 = key 5 +bind = $mainMod, code:15, workspace, 6 # NOTE: code:15 = key 6 +bind = $mainMod, code:16, workspace, 7 # NOTE: code:16 = key 7 +bind = $mainMod, code:17, workspace, 8 # NOTE: code:17 = key 8 +bind = $mainMod, code:18, workspace, 9 # NOTE: code:18 = key 9 +bind = $mainMod, code:19, workspace, 10 # NOTE: code:19 = key 0 + +# Move active window and follow to workspace mainMod + SHIFT [0-9] +bind = $mainMod SHIFT, code:10, movetoworkspace, 1 # NOTE: code:10 = key 1 +bind = $mainMod SHIFT, code:11, movetoworkspace, 2 # NOTE: code:11 = key 2 +bind = $mainMod SHIFT, code:12, movetoworkspace, 3 # NOTE: code:12 = key 3 +bind = $mainMod SHIFT, code:13, movetoworkspace, 4 # NOTE: code:13 = key 4 +bind = $mainMod SHIFT, code:14, movetoworkspace, 5 # NOTE: code:14 = key 5 +bind = $mainMod SHIFT, code:15, movetoworkspace, 6 # NOTE: code:15 = key 6 +bind = $mainMod SHIFT, code:16, movetoworkspace, 7 # NOTE: code:16 = key 7 +bind = $mainMod SHIFT, code:17, movetoworkspace, 8 # NOTE: code:17 = key 8 +bind = $mainMod SHIFT, code:18, movetoworkspace, 9 # NOTE: code:18 = key 9 +bind = $mainMod SHIFT, code:19, movetoworkspace, 10 # NOTE: code:19 = key 0 +bind = $mainMod SHIFT, bracketleft, movetoworkspace, -1 # brackets [ +bind = $mainMod SHIFT, bracketright, movetoworkspace, +1 # brackets ] + +# Move active window to a workspace silently mainMod + CTRL [0-9] +bind = $mainMod CTRL, code:10, movetoworkspacesilent, 1 # NOTE: code:10 = key 1 +bind = $mainMod CTRL, code:11, movetoworkspacesilent, 2 # NOTE: code:11 = key 2 +bind = $mainMod CTRL, code:12, movetoworkspacesilent, 3 # NOTE: code:12 = key 3 +bind = $mainMod CTRL, code:13, movetoworkspacesilent, 4 # NOTE: code:13 = key 4 +bind = $mainMod CTRL, code:14, movetoworkspacesilent, 5 # NOTE: code:14 = key 5 +bind = $mainMod CTRL, code:15, movetoworkspacesilent, 6 # NOTE: code:15 = key 6 +bind = $mainMod CTRL, code:16, movetoworkspacesilent, 7 # NOTE: code:16 = key 7 +bind = $mainMod CTRL, code:17, movetoworkspacesilent, 8 # NOTE: code:17 = key 8 +bind = $mainMod CTRL, code:18, movetoworkspacesilent, 9 # NOTE: code:18 = key 9 +bind = $mainMod CTRL, code:19, movetoworkspacesilent, 10 # NOTE: code:19 = key 0 +bind = $mainMod CTRL, bracketleft, movetoworkspacesilent, -1 # brackets [ +bind = $mainMod CTRL, bracketright, movetoworkspacesilent, +1 # brackets ] + +# Scroll through existing workspaces with mainMod + scroll +bind = $mainMod, mouse_down, workspace, e+1 +bind = $mainMod, mouse_up, workspace, e-1 +bind = $mainMod, period, workspace, e+1 +bind = $mainMod, comma, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindm = $mainMod, mouse:272, movewindow # NOTE: mouse:272 = left click +bindm = $mainMod, mouse:273, resizewindow # NOTE: mouse:272 = right click diff --git a/config/hypr/hypridle.conf b/config/hypr/hypridle.conf new file mode 100644 index 0000000..7dc727d --- /dev/null +++ b/config/hypr/hypridle.conf @@ -0,0 +1,49 @@ +# Hypridle +# Original config submitted by https://github.com/SherLock707 + +$iDIR="$HOME/.config/swaync/images/ja.png" + +general { + lock_cmd = pidof hyprlock || hyprlock # runs hyprlock if it is not already running (this is always run when "loginctl lock-session" is called) + # unlock_cmd = killall hyprlock # kills hyprlock when unlocking (this is always run when "loginctl unlock-session" is called) + before_sleep_cmd = loginctl lock-session # ensures that the session is locked before going to sleep + after_sleep_cmd = hyprctl dispatch dpms on # turn of screen after sleep (not strictly necessary, but just in case) + ignore_dbus_inhibit = false # whether to ignore dbus-sent idle-inhibit requests (used by e.g. firefox or steam) +} + +# turn off screen faster if session is already locked +# (disabled by default) +# listener { +# timeout = 30 # 30 seconds +# on-timeout = pidof hyprlock && hyprctl dispatch dpms off # turns off the screen if hyprlock is active +# on-resume = pidof hyprlock && hyprctl dispatch dpms on # command to run when activity is detected after timeout has fired. +# } + +# Warn +listener { + timeout = 540 # 9 min + on-timeout = notify-send -i $iDIR " You are idle!" # command to run when timeout has passed + on-resume = notify-send -i $iDIR " Oh! you're Back" " Hello !!!" # command to run when activity is detected after timeout has fired. +} + +# Screenlock +listener { + timeout = 600 # 10 min + on-timeout = loginctl lock-session # command to run when timeout has passed + #on-resume = notify-send -i $iDIR " System Unlocked!" # command to run when activity is detected after timeout has fired. +} + +# Turn off screen +# (disabled by default) +# listener { +# timeout = 630 # 10.5 min +# on-timeout = hyprctl dispatch dpms off # command to run when timeout has passed +# on-resume = hyprctl dispatch dpms on # command to run when activity is detected after timeout has fired. +# } + +# Suspend # disabled by default +# listener { + # timeout = 1200 # 20 min + # on-timeout = systemctl suspend # command to run when timeout has passed + # on-resume = notify-send -i $iDIR " Oh! you're back" "Hello !!!" # command to run when activity is detected after timeout has fired. +# } diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf new file mode 100644 index 0000000..2c3cb0f --- /dev/null +++ b/config/hypr/hyprland.conf @@ -0,0 +1,37 @@ +# always refer to Hyprland wiki +# https://wiki.hyprland.org/ + +# Initial boot script enable to apply initial wallpapers, theming, new settings etc. +# suggest not to change this or delete this including deleting referrence file in ~/.config/hypr/.initial_startup_done +# as long as the referrence file is present, this initial-boot.sh will not execute +exec-once = $HOME/.config/hypr/initial-boot.sh + +# Sourcing external config files +$configs = $HOME/.config/hypr/configs # Default Configs directory path + +source=$configs/Keybinds.conf # Pre-configured keybinds + +# ## This is where you want to start tinkering +$UserConfigs = $HOME/.config/hypr/UserConfigs # User Configs directory path + +source= $UserConfigs/Startup_Apps.conf # put your start-up packages on this file + +source= $UserConfigs/ENVariables.conf # Environment variables to load + +source= $UserConfigs/Monitors.conf # Its all about your monitor config + +source= $UserConfigs/Laptops.conf # For laptop related + +source= $UserConfigs/LaptopDisplay.conf # Laptop display related. You need to read the comment on this file + +source= $UserConfigs/WindowRules.conf # all about Hyprland Window Rules and Layer Rules + +source= $UserConfigs/UserDecorations.conf # Decorations config file + +source= $UserConfigs/UserAnimations.conf # Animation config file + +source= $UserConfigs/UserKeybinds.conf # Put your own keybinds here + +source= $UserConfigs/UserSettings.conf # Main Hyprland Settings. + +source= $UserConfigs/WorkspaceRules.conf # Hyprland workspaces \ No newline at end of file diff --git a/config/hypr/hyprlock-1080p.conf b/config/hypr/hyprlock-1080p.conf new file mode 100644 index 0000000..e6b2607 --- /dev/null +++ b/config/hypr/hyprlock-1080p.conf @@ -0,0 +1,159 @@ +# Hyprlock config for < 1080p monitor resolutions +# Original config submitted by https://github.com/SherLock707 + +# Sourcing colors generated by wallust +source = $HOME/.config/hypr/wallust/wallust-hyprland.conf +$Scripts = $HOME/.config/hypr/scripts + +general { + grace = 1 +} + +background { + monitor = + # NOTE: use only 1 path + #path = screenshot # screenshot of your desktop + #path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_modified # by wallpaper effects + path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current # current wallpaper + + #color = $color7 + + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + blur_size = 2 + blur_passes = 1 # 0 disables blurring + noise = 0.0117 + contrast = 1.3000 # Vibrant!!! + brightness = 0.8000 + vibrancy = 0.2100 + vibrancy_darkness = 0.0 +} + + +# Date +label { + monitor = + text = cmd[update:18000000] echo " "$(date +'%A, %-d %B')" " + color = $color12 + font_size = 24 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, -50 + halign = center + valign = top +} + +# Hour-Time +label { + monitor = + text = cmd[update:1000] echo "$(date +"%H")" +# text = cmd[update:1000] echo "$(date +"%I")" #AM/PM + #color = rgba(255, 185, 0, .8) + color = $color13 + font_size = 160 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, -100 + halign = center + valign = top +} + +# Minute-Time +label { + monitor = + text = cmd[update:1000] echo "$(date +"%M")" + #color = rgba(15, 10, 222, .8) + color = $color12 + font_size = 160 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, -320 + halign = center + valign = top +} + +# Seconds-Time +label { + monitor = + text = cmd[update:1000] echo "$(date +"%S")" +# text = cmd[update:1000] echo "$(date +"%S %p")" #AM/PM + color = $color11 + font_size = 35 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, -325 + halign = center + valign = top +} + +# Put a picture of choice here. Default is the current wallpaper +image { + monitor = + path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current + size = 160 + rounding = -1 + border_size = 0 + border_color = $color11 + rotate = 0 + reload_time = -1 + position = 0, 280 + halign = center + valign = bottom +} + +# USER +label { + monitor = + text = ๏Šพ $USER + color = $color13 + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + font_size = 24 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, 80 + halign = center + valign = bottom +} + + +# INPUT FIELD +input-field { + monitor = + size = 300, 60 + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + outer_color = rgba(0, 0, 0, 0) + inner_color = rgba(255, 255, 255, 0.1) + font_color = $color11 + fade_on_empty = false + font_family = JetBrainsMono Nerd Font ExtraBold + placeholder_text = ๐Ÿ”’ Type Password + hide_input = false + position = 0, 180 + halign = center + valign = bottom +} + +# uptime +label { + monitor = + text = cmd[update:60000] echo " "$(uptime -p || $Scripts/UptimeNixOS.sh)" " + color = $color13 + font_size = 18 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, 0 + halign = right + valign = bottom +} + +# weather edit the scripts for locations +# weather scripts are located in ~/.config/hypr/UserScripts Weather.sh and/or Weather.py +label { + monitor = + text = cmd[update:3600000] [ -f ~/.cache/.weather_cache ] && cat ~/.cache/.weather_cache + color = $color13 + font_size = 18 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 50, 0 + halign = left + valign = bottom +} \ No newline at end of file diff --git a/config/hypr/hyprlock.conf b/config/hypr/hyprlock.conf new file mode 100644 index 0000000..e8a62df --- /dev/null +++ b/config/hypr/hyprlock.conf @@ -0,0 +1,159 @@ +# Hyprlock config for => 2k monitor resolutions +# Original config submitted by https://github.com/SherLock707 + +# Sourcing colors generated by wallust +source = $HOME/.config/hypr/wallust/wallust-hyprland.conf +$Scripts = $HOME/.config/hypr/scripts + +general { + grace = 1 +} + +background { + monitor = + # NOTE: use only 1 path + #path = screenshot # screenshot of your desktop + #path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_modified # by wallpaper effects + path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current # current wallpaper + + #color = $color7 + + # all these options are taken from hyprland, see https://wiki.hyprland.org/Configuring/Variables/#blur for explanations + blur_size = 2 + blur_passes = 1 # 0 disables blurring + noise = 0.0117 + contrast = 1.3000 # Vibrant!!! + brightness = 0.8000 + vibrancy = 0.2100 + vibrancy_darkness = 0.0 +} + + +# Date +label { + monitor = + text = cmd[update:18000000] echo " "$(date +'%A, %-d %B')" " + color = $color12 + font_size = 24 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, -100 + halign = center + valign = top +} + +# Hour-Time +label { + monitor = + text = cmd[update:1000] echo "$(date +"%H")" +# text = cmd[update:1000] echo "$(date +"%I")" #AM/PM + #color = rgba(255, 185, 0, .8) + color = $color13 + font_size = 200 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, -150 + halign = center + valign = top +} + +# Minute-Time +label { + monitor = + text = cmd[update:1000] echo "$(date +"%M")" + #color = rgba(15, 10, 222, .8) + color = $color12 + font_size = 200 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, -475 + halign = center + valign = top +} + +# Seconds-Time +label { + monitor = + text = cmd[update:1000] echo "$(date +"%S")" +# text = cmd[update:1000] echo "$(date +"%S %p")" #AM/PM + color = $color11 + font_size = 40 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, -460 + halign = center + valign = top +} + +# Put a picture of choice here. Default is the current wallpaper +image { + monitor = + path = $HOME/.config/hypr/wallpaper_effects/.wallpaper_current + size = 160 + rounding = -1 + border_size = 0 + border_color = $color11 + rotate = 0 + reload_time = -1 + position = 0, 400 + halign = center + valign = bottom +} + +# USER +label { + monitor = + text = ๏Šพ $USER + color = $color13 + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + font_size = 24 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, 150 + halign = center + valign = bottom +} + + +# INPUT FIELD +input-field { + monitor = + size = 300, 60 + outline_thickness = 2 + dots_size = 0.2 # Scale of input-field height, 0.2 - 0.8 + dots_spacing = 0.2 # Scale of dots' absolute size, 0.0 - 1.0 + dots_center = true + outer_color = rgba(0, 0, 0, 0) + inner_color = rgba(255, 255, 255, 0.1) + font_color = $color11 + fade_on_empty = false + font_family = JetBrainsMono Nerd Font ExtraBold + placeholder_text = ๐Ÿ”’ Type Password + hide_input = false + position = 0, 250 + halign = center + valign = bottom +} + +# uptime +label { + monitor = + text = cmd[update:60000] echo " "$(uptime -p || $Scripts/UptimeNixOS.sh)" " + color = $color13 + font_size = 18 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 0, 0 + halign = right + valign = bottom +} + +# weather edit the scripts for locations +# weather scripts are located in ~/.config/hypr/UserScripts Weather.sh and/or Weather.py +label { + monitor = + text = cmd[update:3600000] [ -f ~/.cache/.weather_cache ] && cat ~/.cache/.weather_cache + color = $color13 + font_size = 18 + font_family = JetBrainsMono Nerd Font ExtraBold + position = 50, 0 + halign = left + valign = bottom +} \ No newline at end of file diff --git a/config/hypr/initial-boot.sh b/config/hypr/initial-boot.sh new file mode 100644 index 0000000..4ba433b --- /dev/null +++ b/config/hypr/initial-boot.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# A bash script designed to run only once dotfiles installed + +# THIS SCRIPT CAN BE DELETED ONCE SUCCESSFULLY BOOTED!! And also, edit ~/.config/hypr/configs/Settings.conf +# NOT necessary to do since this script is only designed to run only once as long as the marker exists +# marker file is located at ~/.config/hypr/.initial_startup_done +# However, I do highly suggest not to touch it since again, as long as the marker exist, script wont run + +# Variables +scriptsDir=$HOME/.config/hypr/scripts +wallpaper=$HOME/.config/hypr/wallpaper_effects/.wallpaper_current +waybar_style="$HOME/.config/waybar/style/[Extra] Modern-Combined - Transparent.css" +kvantum_theme="catppuccin-mocha-blue" +color_scheme="prefer-dark" +gtk_theme="Flat-Remix-GTK-Blue-Dark" +icon_theme="Flat-Remix-Blue-Dark" +cursor_theme="Bibata-Modern-Ice" + +swww="swww img" +effect="--transition-bezier .43,1.19,1,.4 --transition-fps 30 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2" + +# Check if a marker file exists. +if [ ! -f ~/.config/hypr/.initial_startup_done ]; then + sleep 1 + # Initialize wallust and wallpaper + if [ -f "$wallpaper" ]; then + wallust run -s $wallpaper > /dev/null + swww query || swww-daemon && $swww $wallpaper $effect + "$scriptsDir/WallustSwww.sh" > /dev/null 2>&1 & + fi + + # initiate GTK dark mode and apply icon and cursor theme + gsettings set org.gnome.desktop.interface color-scheme $color_scheme > /dev/null 2>&1 & + gsettings set org.gnome.desktop.interface gtk-theme $gtk_theme > /dev/null 2>&1 & + gsettings set org.gnome.desktop.interface icon-theme $icon_theme > /dev/null 2>&1 & + gsettings set org.gnome.desktop.interface cursor-theme $cursor_theme > /dev/null 2>&1 & + gsettings set org.gnome.desktop.interface cursor-size 24 > /dev/null 2>&1 & + + # NIXOS initiate GTK dark mode and apply icon and cursor theme + if [ -n "$(grep -i nixos < /etc/os-release)" ]; then + gsettings set org.gnome.desktop.interface color-scheme "'$color_scheme'" > /dev/null 2>&1 & + dconf write /org/gnome/desktop/interface/gtk-theme "'$gtk_theme'" > /dev/null 2>&1 & + dconf write /org/gnome/desktop/interface/icon-theme "'$icon_theme'" > /dev/null 2>&1 & + dconf write /org/gnome/desktop/interface/cursor-theme "'$cursor_theme'" > /dev/null 2>&1 & + dconf write /org/gnome/desktop/interface/cursor-size "24" > /dev/null 2>&1 & + fi + + # initiate kvantum theme + kvantummanager --set "$kvantum_theme" > /dev/null 2>&1 & + + # initiate the kb_layout (for some reason) waybar cant launch it + "$scriptsDir/SwitchKeyboardLayout.sh" > /dev/null 2>&1 & + + # Initial waybar style + if [ -f "$waybar_style" ]; then + ln -sf "$waybar_style" "$HOME/.config/waybar/style.css" + + # Refreshing waybar, swaync, rofi etc. + "$scriptsDir/Refresh.sh" > /dev/null 2>&1 & + fi + + # Create a marker file to indicate that the script has been executed. + touch ~/.config/hypr/.initial_startup_done + + exit +fi diff --git a/config/hypr/pyprland.toml b/config/hypr/pyprland.toml new file mode 100644 index 0000000..2ab74e8 --- /dev/null +++ b/config/hypr/pyprland.toml @@ -0,0 +1,12 @@ +[pyprland] + +plugins = [ + "scratchpads", + "magnify", +] + +[scratchpads.term] +animation = "fromTop" +command = "kitty --class kitty-dropterm" +class = "kitty-dropterm" +size = "75% 60%" diff --git a/config/hypr/scripts/AirplaneMode.sh b/config/hypr/scripts/AirplaneMode.sh new file mode 100644 index 0000000..72718f4 --- /dev/null +++ b/config/hypr/scripts/AirplaneMode.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# Airplane Mode. Turning on or off all wifi using rfkill. + +notif="$HOME/.config/swaync/images/ja.png" + +# Check if any wireless device is blocked +wifi_blocked=$(rfkill list wifi | grep -o "Soft blocked: yes") + +if [ -n "$wifi_blocked" ]; then + rfkill unblock wifi + notify-send -u low -i "$notif" " Airplane" " mode: OFF" +else + rfkill block wifi + notify-send -u low -i "$notif" " Airplane" " mode: ON" +fi diff --git a/config/hypr/scripts/Animations.sh b/config/hypr/scripts/Animations.sh new file mode 100644 index 0000000..b707fa5 --- /dev/null +++ b/config/hypr/scripts/Animations.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# For applying Animations from different users + +# Check if rofi is already running +if pidof rofi > /dev/null; then + pkill rofi +fi + +# Variables +iDIR="$HOME/.config/swaync/images" +SCRIPTSDIR="$HOME/.config/hypr/scripts" +animations_dir="$HOME/.config/hypr/animations" +UserConfigs="$HOME/.config/hypr/UserConfigs" +rofi_theme="~/.config/rofi/config-Animations.rasi" +msg='โ—NOTE:โ— This will copy animations into UserAnimations.conf' +# list of animation files, sorted alphabetically with numbers first +animations_list=$(find -L "$animations_dir" -maxdepth 1 -type f | sed 's/.*\///' | sed 's/\.conf$//' | sort -V) + +# Rofi Menu +chosen_file=$(echo "$animations_list" | rofi -i -dmenu -config $rofi_theme -mesg "$msg") + +# Check if a file was selected +if [[ -n "$chosen_file" ]]; then + full_path="$animations_dir/$chosen_file.conf" + cp "$full_path" "$UserConfigs/UserAnimations.conf" + notify-send -u low -i "$iDIR/ja.png" "$chosen_file" "Hyprland Animation Loaded" +fi + +sleep 1 +"$SCRIPTSDIR/RefreshNoWaybar.sh" diff --git a/config/hypr/scripts/Brightness.sh b/config/hypr/scripts/Brightness.sh new file mode 100644 index 0000000..0d30af0 --- /dev/null +++ b/config/hypr/scripts/Brightness.sh @@ -0,0 +1,73 @@ +#!/bin/bash +# Script for Monitor backlights (if supported) using brightnessctl + +iDIR="$HOME/.config/swaync/icons" +notification_timeout=1000 +step=10 # INCREASE/DECREASE BY THIS VALUE + +# Get brightness +get_backlight() { + brightnessctl -m | cut -d, -f4 | sed 's/%//' +} + +# Get icons +get_icon() { + current=$(get_backlight) + if [ "$current" -le "20" ]; then + icon="$iDIR/brightness-20.png" + elif [ "$current" -le "40" ]; then + icon="$iDIR/brightness-40.png" + elif [ "$current" -le "60" ]; then + icon="$iDIR/brightness-60.png" + elif [ "$current" -le "80" ]; then + icon="$iDIR/brightness-80.png" + else + icon="$iDIR/brightness-100.png" + fi +} + +# Notify +notify_user() { + notify-send -e -h string:x-canonical-private-synchronous:brightness_notif -h int:value:$current -u low -i $icon "Screen" "Brightness:$current%" +} + +# Change brightness +change_backlight() { + local current_brightness + current_brightness=$(get_backlight) + + # Calculate new brightness + if [[ "$1" == "+${step}%" ]]; then + new_brightness=$((current_brightness + step)) + elif [[ "$1" == "${step}%-" ]]; then + new_brightness=$((current_brightness - step)) + fi + + # Ensure new brightness is within valid range + if (( new_brightness < 5 )); then + new_brightness=5 + elif (( new_brightness > 100 )); then + new_brightness=100 + fi + + brightnessctl set "${new_brightness}%" + get_icon + current=$new_brightness + notify_user +} + +# Execute accordingly +case "$1" in + "--get") + get_backlight + ;; + "--inc") + change_backlight "+${step}%" + ;; + "--dec") + change_backlight "${step}%-" + ;; + *) + get_backlight + ;; +esac diff --git a/config/hypr/scripts/BrightnessKbd.sh b/config/hypr/scripts/BrightnessKbd.sh new file mode 100644 index 0000000..221a168 --- /dev/null +++ b/config/hypr/scripts/BrightnessKbd.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# Script for keyboard backlights (if supported) using brightnessctl + +iDIR="$HOME/.config/swaync/icons" + +# Get keyboard brightness +get_kbd_backlight() { + echo $(brightnessctl -d '*::kbd_backlight' -m | cut -d, -f4) +} + +# Get icons +get_icon() { + current=$(get_kbd_backlight | sed 's/%//') + if [ "$current" -le "20" ]; then + icon="$iDIR/brightness-20.png" + elif [ "$current" -le "40" ]; then + icon="$iDIR/brightness-40.png" + elif [ "$current" -le "60" ]; then + icon="$iDIR/brightness-60.png" + elif [ "$current" -le "80" ]; then + icon="$iDIR/brightness-80.png" + else + icon="$iDIR/brightness-100.png" + fi +} +# Notify +notify_user() { + notify-send -e -h string:x-canonical-private-synchronous:brightness_notif -h int:value:$current -u low -i "$icon" "Keyboard" "Brightness:$current%" +} + +# Change brightness +change_kbd_backlight() { + brightnessctl -d *::kbd_backlight set "$1" && get_icon && notify_user +} + +# Execute accordingly +case "$1" in + "--get") + get_kbd_backlight + ;; + "--inc") + change_kbd_backlight "+30%" + ;; + "--dec") + change_kbd_backlight "30%-" + ;; + *) + get_kbd_backlight + ;; +esac diff --git a/config/hypr/scripts/ChangeBlur.sh b/config/hypr/scripts/ChangeBlur.sh new file mode 100644 index 0000000..6accc3b --- /dev/null +++ b/config/hypr/scripts/ChangeBlur.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# Script for changing blurs on the fly + +notif="$HOME/.config/swaync/images/ja.png" + +STATE=$(hyprctl -j getoption decoration:blur:passes | jq ".int") + +if [ "${STATE}" == "2" ]; then + hyprctl keyword decoration:blur:size 2 + hyprctl keyword decoration:blur:passes 1 + notify-send -e -u low -i "$notif" " Less Blur" +else + hyprctl keyword decoration:blur:size 5 + hyprctl keyword decoration:blur:passes 2 + notify-send -e -u low -i "$notif" " Normal Blur" +fi diff --git a/config/hypr/scripts/ChangeLayout.sh b/config/hypr/scripts/ChangeLayout.sh new file mode 100644 index 0000000..19ce36d --- /dev/null +++ b/config/hypr/scripts/ChangeLayout.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# for changing Hyprland Layouts (Master or Dwindle) on the fly + +notif="$HOME/.config/swaync/images/ja.png" + +LAYOUT=$(hyprctl -j getoption general:layout | jq '.str' | sed 's/"//g') + +case $LAYOUT in +"master") + hyprctl keyword general:layout dwindle + hyprctl keyword unbind SUPER,J + hyprctl keyword unbind SUPER,K + hyprctl keyword bind SUPER,J,cyclenext + hyprctl keyword bind SUPER,K,cyclenext,prev + hyprctl keyword bind SUPER,O,togglesplit + notify-send -e -u low -i "$notif" " Dwindle Layout" + ;; +"dwindle") + hyprctl keyword general:layout master + hyprctl keyword unbind SUPER,J + hyprctl keyword unbind SUPER,K + hyprctl keyword unbind SUPER,O + hyprctl keyword bind SUPER,J,layoutmsg,cyclenext + hyprctl keyword bind SUPER,K,layoutmsg,cycleprev + notify-send -e -u low -i "$notif" " Master Layout" + ;; +*) ;; + +esac diff --git a/config/hypr/scripts/ClipManager.sh b/config/hypr/scripts/ClipManager.sh new file mode 100644 index 0000000..bedf6de --- /dev/null +++ b/config/hypr/scripts/ClipManager.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# Clipboard Manager. This script uses cliphist, rofi, and wl-copy. + +# Variables +rofi_theme="~/.config/rofi/config-clipboard.rasi" +msg='๐Ÿ‘€ **note** CTRL DEL = cliphist del (entry) or ALT DEL - cliphist wipe (all)' +# Actions: +# CTRL Del to delete an entry +# ALT Del to wipe clipboard contents + +# Check if rofi is already running +if pidof rofi > /dev/null; then + pkill rofi +fi + +while true; do + result=$( + rofi -i -dmenu \ + -kb-custom-1 "Control-Delete" \ + -kb-custom-2 "Alt-Delete" \ + -config $rofi_theme < <(cliphist list) \ + -mesg "$msg" + ) + + case "$?" in + 1) + exit + ;; + 0) + case "$result" in + "") + continue + ;; + *) + cliphist decode <<<"$result" | wl-copy + exit + ;; + esac + ;; + 10) + cliphist delete <<<"$result" + ;; + 11) + cliphist wipe + ;; + esac +done + diff --git a/config/hypr/scripts/DarkLight.sh b/config/hypr/scripts/DarkLight.sh new file mode 100644 index 0000000..f1f5e40 --- /dev/null +++ b/config/hypr/scripts/DarkLight.sh @@ -0,0 +1,249 @@ +#!/bin/bash +# For Dark and Light switching +# Note: Scripts are looking for keywords Light or Dark except for wallpapers as the are in a separate folders + +# Paths +wallpaper_base_path="$HOME/Pictures/wallpapers/Dynamic-Wallpapers" +dark_wallpapers="$wallpaper_base_path/Dark" +light_wallpapers="$wallpaper_base_path/Light" +hypr_config_path="$HOME/.config/hypr" +swaync_style="$HOME/.config/swaync/style.css" +ags_style="$HOME/.config/ags/user/style.css" +SCRIPTSDIR="$HOME/.config/hypr/scripts" +notif="$HOME/.config/swaync/images/bell.png" +wallust_rofi="$HOME/.config/wallust/templates/colors-rofi.rasi" + +kitty_conf="$HOME/.config/kitty/kitty.conf" + +wallust_config="$HOME/.config/wallust/wallust.toml" +pallete_dark="dark16" +pallete_light="light16" + +# intial kill process +for pid in kitty waybar rofi swaync ags swaybg; do + killall -SIGUSR1 "$pid" +done + + +# Initialize swww if needed +swww query || swww-daemon --format xrgb + +# Set swww options +swww="swww img" +effect="--transition-bezier .43,1.19,1,.4 --transition-fps 60 --transition-type grow --transition-pos 0.925,0.977 --transition-duration 2" + +# Determine current theme mode +if [ "$(cat $HOME/.cache/.theme_mode)" = "Light" ]; then + next_mode="Dark" + # Logic for Dark mode + wallpaper_path="$dark_wallpapers" +else + next_mode="Light" + # Logic for Light mode + wallpaper_path="$light_wallpapers" +fi + +# Function to update theme mode for the next cycle +update_theme_mode() { + echo "$next_mode" > ~/.cache/.theme_mode +} + +# Function to notify user +notify_user() { + notify-send -u low -i "$notif" " Switching to" " $1 mode" +} + +# Use sed to replace the palette setting in the wallust config file +if [ "$next_mode" = "Dark" ]; then + sed -i 's/^palette = .*/palette = "'"$pallete_dark"'"/' "$wallust_config" +else + sed -i 's/^palette = .*/palette = "'"$pallete_light"'"/' "$wallust_config" +fi + +# Function to set Waybar style +set_waybar_style() { + theme="$1" + waybar_styles="$HOME/.config/waybar/style" + waybar_style_link="$HOME/.config/waybar/style.css" + style_prefix="\\[${theme}\\].*\\.css$" + + style_file=$(find -L "$waybar_styles" -maxdepth 1 -type f -regex ".*$style_prefix" | shuf -n 1) + + if [ -n "$style_file" ]; then + ln -sf "$style_file" "$waybar_style_link" + else + echo "Style file not found for $theme theme." + fi +} + +# Call the function after determining the mode +set_waybar_style "$next_mode" +notify_user "$next_mode" + + +# swaync color change +if [ "$next_mode" = "Dark" ]; then + sed -i '/@define-color noti-bg/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(0, 0, 0, 0.8);/' "${swaync_style}" + sed -i '/@define-color noti-bg-alt/s/#.*;/#111111;/' "${swaync_style}" +else + sed -i '/@define-color noti-bg/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(255, 255, 255, 0.9);/' "${swaync_style}" + sed -i '/@define-color noti-bg-alt/s/#.*;/#F0F0F0;/' "${swaync_style}" +fi + +# ags color change +if command -v ags >/dev/null 2>&1; then + if [ "$next_mode" = "Dark" ]; then + sed -i '/@define-color noti-bg/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(0, 0, 0, 0.4);/' "${ags_style}" + sed -i '/@define-color text-color/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(255, 255, 255, 0.7);/' "${ags_style}" + sed -i '/@define-color noti-bg-alt/s/#.*;/#111111;/' "${ags_style}" + else + sed -i '/@define-color noti-bg/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(255, 255, 255, 0.4);/' "${ags_style}" + sed -i '/@define-color text-color/s/rgba([0-9]*,\s*[0-9]*,\s*[0-9]*,\s*[0-9.]*);/rgba(0, 0, 0, 0.7);/' "${ags_style}" + sed -i '/@define-color noti-bg-alt/s/#.*;/#F0F0F0;/' "${ags_style}" + fi +fi + +# kitty background color change +if [ "$next_mode" = "Dark" ]; then + sed -i '/^foreground /s/^foreground .*/foreground #dddddd/' "${kitty_conf}" + sed -i '/^background /s/^background .*/background #000000/' "${kitty_conf}" + sed -i '/^cursor /s/^cursor .*/cursor #dddddd/' "${kitty_conf}" +else + sed -i '/^foreground /s/^foreground .*/foreground #000000/' "${kitty_conf}" + sed -i '/^background /s/^background .*/background #dddddd/' "${kitty_conf}" + sed -i '/^cursor /s/^cursor .*/cursor #000000/' "${kitty_conf}" +fi + +# Set Dynamic Wallpaper for Dark or Light Mode +if [ "$next_mode" = "Dark" ]; then + next_wallpaper="$(find -L "${dark_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)" +else + next_wallpaper="$(find -L "${light_wallpapers}" -type f \( -iname "*.jpg" -o -iname "*.png" \) -print0 | shuf -n1 -z | xargs -0)" +fi + +# Update wallpaper using swww command +$swww "${next_wallpaper}" $effect + + +# Set Kvantum Manager theme & QT5/QT6 settings +if [ "$next_mode" = "Dark" ]; then + kvantum_theme="catppuccin-mocha-blue" + #qt5ct_color_scheme="$HOME/.config/qt5ct/colors/Catppuccin-Mocha.conf" + #qt6ct_color_scheme="$HOME/.config/qt6ct/colors/Catppuccin-Mocha.conf" +else + kvantum_theme="catppuccin-latte-blue" + #qt5ct_color_scheme="$HOME/.config/qt5ct/colors/Catppuccin-Latte.conf" + #qt6ct_color_scheme="$HOME/.config/qt6ct/colors/Catppuccin-Latte.conf" +fi + +sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt5ct_color_scheme|" "$HOME/.config/qt5ct/qt5ct.conf" +sed -i "s|^color_scheme_path=.*$|color_scheme_path=$qt6ct_color_scheme|" "$HOME/.config/qt6ct/qt6ct.conf" +kvantummanager --set "$kvantum_theme" + + +# set the rofi color for background +if [ "$next_mode" = "Dark" ]; then + sed -i '24s/.*/background: rgba(0,0,0,0.7);/' $wallust_rofi +else + sed -i '24s/.*/background: rgba(255,255,255,0.9);/' $wallust_rofi +fi + + +# GTK themes and icons switching +set_custom_gtk_theme() { + mode=$1 + gtk_themes_directory="$HOME/.themes" + icon_directory="$HOME/.icons" + color_setting="org.gnome.desktop.interface color-scheme" + theme_setting="org.gnome.desktop.interface gtk-theme" + icon_setting="org.gnome.desktop.interface icon-theme" + + if [ "$mode" == "Light" ]; then + search_keywords="*Light*" + gsettings set $color_setting 'prefer-light' + elif [ "$mode" == "Dark" ]; then + search_keywords="*Dark*" + gsettings set $color_setting 'prefer-dark' + else + echo "Invalid mode provided." + return 1 + fi + + themes=() + icons=() + + while IFS= read -r -d '' theme_search; do + themes+=("$(basename "$theme_search")") + done < <(find "$gtk_themes_directory" -maxdepth 1 -type d -iname "$search_keywords" -print0) + + while IFS= read -r -d '' icon_search; do + icons+=("$(basename "$icon_search")") + done < <(find "$icon_directory" -maxdepth 1 -type d -iname "$search_keywords" -print0) + + if [ ${#themes[@]} -gt 0 ]; then + if [ "$mode" == "Dark" ]; then + selected_theme=${themes[RANDOM % ${#themes[@]}]} + else + selected_theme=${themes[$RANDOM % ${#themes[@]}]} + fi + echo "Selected GTK theme for $mode mode: $selected_theme" + gsettings set $theme_setting "$selected_theme" + + # Flatpak GTK apps (themes) + if command -v flatpak &> /dev/null; then + flatpak --user override --filesystem=$HOME/.themes + sleep 0.5 + flatpak --user override --env=GTK_THEME="$selected_theme" + fi + else + echo "No $mode GTK theme found" + fi + + if [ ${#icons[@]} -gt 0 ]; then + if [ "$mode" == "Dark" ]; then + selected_icon=${icons[RANDOM % ${#icons[@]}]} + else + selected_icon=${icons[$RANDOM % ${#icons[@]}]} + fi + echo "Selected icon theme for $mode mode: $selected_icon" + gsettings set $icon_setting "$selected_icon" + + ## QT5ct icon_theme + sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "$HOME/.config/qt5ct/qt5ct.conf" + sed -i "s|^icon_theme=.*$|icon_theme=$selected_icon|" "$HOME/.config/qt6ct/qt6ct.conf" + + # Flatpak GTK apps (icons) + if command -v flatpak &> /dev/null; then + flatpak --user override --filesystem=$HOME/.icons + sleep 0.5 + flatpak --user override --env=ICON_THEME="$selected_icon" + fi + else + echo "No $mode icon theme found" + fi +} + +# Call the function to set GTK theme and icon theme based on mode +set_custom_gtk_theme "$next_mode" + +# Update theme mode for the next cycle +update_theme_mode + + +${SCRIPTSDIR}/WallustSwww.sh && + +sleep 2 +# kill process +for pid1 in kitty waybar rofi swaync ags swaybg; do + killall "$pid1" +done + +sleep 1 +${SCRIPTSDIR}/Refresh.sh + +sleep 0.5 +# Display notifications for theme and icon changes +notify-send -u low -i "$notif" " Themes switched to:" " $next_mode Mode" + +exit 0 + diff --git a/config/hypr/scripts/GameMode.sh b/config/hypr/scripts/GameMode.sh new file mode 100644 index 0000000..e990d75 --- /dev/null +++ b/config/hypr/scripts/GameMode.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Game Mode. Turning off all animations + +notif="$HOME/.config/swaync/images/ja.png" +SCRIPTSDIR="$HOME/.config/hypr/scripts" + + +HYPRGAMEMODE=$(hyprctl getoption animations:enabled | awk 'NR==1{print $2}') +if [ "$HYPRGAMEMODE" = 1 ] ; then + hyprctl --batch "\ + keyword animations:enabled 0;\ + keyword decoration:shadow:enabled 0;\ + keyword decoration:blur:enabled 0;\ + keyword general:gaps_in 0;\ + keyword general:gaps_out 0;\ + keyword general:border_size 1;\ + keyword decoration:rounding 0" + + hyprctl keyword "windowrule opacity 1 override 1 override 1 override, ^(.*)$" + swww kill + notify-send -e -u low -i "$notif" " Gamemode:" " enabled" + exit +else + swww-daemon --format xrgb && swww img "$HOME/.config/rofi/.current_wallpaper" & + sleep 0.1 + ${SCRIPTSDIR}/WallustSwww.sh + sleep 0.5 + ${SCRIPTSDIR}/Refresh.sh + notify-send -e -u normal -i "$notif" " Gamemode:" " disabled" + exit +fi +hyprctl reload diff --git a/config/hypr/scripts/Hypridle.sh b/config/hypr/scripts/Hypridle.sh new file mode 100644 index 0000000..6a5027a --- /dev/null +++ b/config/hypr/scripts/Hypridle.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# This is for custom version of waybar idle_inhibitor which activates / deactivates hypridle instead + +PROCESS="hypridle" + +if [[ "$1" == "status" ]]; then + sleep 1 + if pgrep -x "$PROCESS" >/dev/null; then + echo '{"text": "RUNNING", "class": "active", "tooltip": "idle_inhibitor NOT ACTIVE\nLeft Click: Activate\nRight Click: Lock Screen"}' + else + echo '{"text": "NOT RUNNING", "class": "notactive", "tooltip": "idle_inhibitor is ACTIVE\nLeft Click: Deactivate\nRight Click: Lock Screen"}' + fi +elif [[ "$1" == "toggle" ]]; then + if pgrep -x "$PROCESS" >/dev/null; then + pkill "$PROCESS" + else + "$PROCESS" + fi +else + echo "Usage: $0 {status|toggle}" + exit 1 +fi diff --git a/config/hypr/scripts/HyprlandDotfilesUpdate.sh b/config/hypr/scripts/HyprlandDotfilesUpdate.sh new file mode 100644 index 0000000..8dc90f4 --- /dev/null +++ b/config/hypr/scripts/HyprlandDotfilesUpdate.sh @@ -0,0 +1,72 @@ +#!/bin/bash +# simple bash script to check if update is available by comparing local version and remote version + +# Local Paths +local_dir="$HOME/.config/hypr" +iDIR="$HOME/.config/swaync/images/ja.png" +local_version=$(ls $local_dir/v* 2>/dev/null | sort -V | tail -n 1 | sed 's/.*v\(.*\)/\1/') +hyprland_dotfiles_DIR="$HOME/hyprland-dotfiles" + +# exit if cannot find local version +if [ -z "$local_version" ]; then + notify-send -i $iDIR "ERROR "!?!?!!"" "Unable to find hyprland-dotfiles version . exiting.... " + exit 1 +fi + +# git repo - hyprland-dotfiles +branch="master" +remote_url="https://g.r-io.lu/shynd/hyprland-dotfiles/src/$branch/config/hypr/" + +# Fetch the version from git repo URL - hyprland-dotfiles +remote_version=$(curl -s $remote_url | grep -o 'v[0-9]\+\.[0-9]\+\.[0-9]\+' | sort -V | tail -n 1 | sed 's/v//') + +# Cant find GitHub URL - hyprland-dotfiles version +if [ -z "$remote_version" ]; then + exit 1 +fi + +# Comparing local and remote versions +if [ "$(echo -e "$remote_version\n$local_version" | sort -V | head -n 1)" = "$remote_version" ]; then + notify-send -i $iDIR "hyprland-dotfiles:" "No update available" + exit 0 +else + # update available + notify_cmd_base="notify-send -t 10000 -A action1=Update -A action2=NO -h string:x-canonical-private-synchronous:shot-notify" + notify_cmd_shot="${notify_cmd_base} -i $iDIR" + + response=$($notify_cmd_shot "hyprland-dotfiles:" "Update available! Update now?") + + case "$response" in + "action1") + if [ -d $hyprland_dotfiles_DIR ]; then + if ! command -v kitty &> /dev/null; then + notify-send -i $iDIR "Need Kitty:" "Kitty terminal not found. Please install Kitty terminal." + exit 1 + fi + kitty -e bash -c " + cd $hyprland_dotfiles_DIR && + git stash && + git pull && + ./copy.sh && + notify-send -u critical -i $iDIR 'Update Completed:' 'Kindly log out and relogin to take effect' + " + + else + if ! command -v kitty &> /dev/null; then + notify-send -i $iDIR "Need Kitty:" "Kitty terminal not found. Please install Kitty terminal." + exit 1 + fi + kitty -e bash -c " + git clone --depth=1 https://g.r-io.lu/shynd/hyprland-dotfiles.git $hyprland_dotfiles_DIR && + cd $hyprland_dotfiles_DIR && + chmod +x copy.sh && + ./copy.sh && + notify-send -u critical -i $iDIR 'Update Completed:' 'Kindly log out and relogin to take effect' + " + fi + ;; + "action2") + exit 0 + ;; + esac +fi diff --git a/config/hypr/scripts/KeyBinds.sh b/config/hypr/scripts/KeyBinds.sh new file mode 100644 index 0000000..a3ee5be --- /dev/null +++ b/config/hypr/scripts/KeyBinds.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# searchable enabled keybinds using rofi + +# kill yad to not interfere with this binds +pkill yad || true + +# check if rofi is already running +if pidof rofi > /dev/null; then + pkill rofi +fi + +# define the config files +keybinds_conf="$HOME/.config/hypr/configs/Keybinds.conf" +user_keybinds_conf="$HOME/.config/hypr/UserConfigs/UserKeybinds.conf" +laptop_conf="$HOME/.config/hypr/UserConfigs/Laptops.conf" +rofi_theme="$HOME/.config/rofi/config-keybinds.rasi" +msg='โ˜ฃ๏ธ NOTE โ˜ฃ๏ธ: Clicking with Mouse or Pressing ENTER will have NO function' + +# combine the contents of the keybinds files and filter for keybinds +keybinds=$(cat "$keybinds_conf" "$user_keybinds_conf" | grep -E '^bind') + +# check if laptop.conf exists and add its keybinds if present +if [[ -f "$laptop_conf" ]]; then + laptop_binds=$(grep -E '^bind' "$laptop_conf") + keybinds+=$'\n'"$laptop_binds" +fi + +# check for any keybinds to display +if [[ -z "$keybinds" ]]; then + echo "no keybinds found." + exit 1 +fi + +# replace $mainmod with super in the displayed keybinds for rofi +display_keybinds=$(echo "$keybinds" | sed 's/\$mainMod/SUPER/g') + +# use rofi to display the keybinds with the modified content +echo "$display_keybinds" | rofi -dmenu -i -config "$rofi_theme" -mesg "$msg" +s \ No newline at end of file diff --git a/config/hypr/scripts/KeyHints.sh b/config/hypr/scripts/KeyHints.sh new file mode 100644 index 0000000..e33cdba --- /dev/null +++ b/config/hypr/scripts/KeyHints.sh @@ -0,0 +1,72 @@ +#!/bin/bash + +# GDK BACKEND. Change to either wayland or x11 if having issues +BACKEND=wayland + +# Check if rofi or yad is running and kill them if they are +if pidof rofi > /dev/null; then + pkill rofi +fi + +if pidof yad > /dev/null; then + pkill yad +fi + +# Launch yad with calculated width and height +GDK_BACKEND=$BACKEND yad \ + --center \ + --title="Quick Cheat Sheet" \ + --no-buttons \ + --list \ + --column=Key: \ + --column=Description: \ + --column=Command: \ + --timeout-indicator=bottom \ +"ESC" "close this app" "๏—" "๎ฏ† = ๏…บ" "SUPER KEY (Windows Key Button)" "(SUPER KEY)" \ +"๎ฏ† SHIFT K" "Searchable Keybinds" "(Search all Keybinds via rofi)" \ +"๎ฏ† SHIFT E" "View or EDIT Keybinds, Settings, Monitor" "" \ +"" "" "" \ +"๎ฏ† enter" "Terminal" "(kitty)" \ +"๎ฏ† SHIFT enter" "DropDown Terminal" "(Not available in Debian and Ubuntu)" \ +"๎ฏ† B" "Launch Browser" "(Default browser)" \ +"๎ฏ† A" "Desktop Overview" "(AGS - if opted to install)" \ +"๎ฏ† D" "Application Launcher" "(rofi-wayland)" \ +"๎ฏ† E" "Open File Manager" "(Thunar)" \ +"๎ฏ† S" "Google Search using rofi" "(rofi)" \ +"๎ฏ† Q" "close active window" "(not kill)" \ +"๎ฏ† Shift Q " "kills an active window" "(kill)" \ +"๎ฏ† Z" "Desktop Zoom" "(Not available in Debian and Ubuntu)" \ +"๎ฏ† Alt V" "Clipboard Manager" "(cliphist)" \ +"๎ฏ† W" "Choose wallpaper" "(Wallpaper Menu)" \ +"๎ฏ† Shift W" "Choose wallpaper effects" "(imagemagick + swww)" \ +"CTRL ALT W" "Random wallpaper" "(via swww)" \ +"๎ฏ† CTRL ALT B" "Hide/UnHide Waybar" "waybar" \ +"๎ฏ† CTRL B" "Choose waybar styles" "(waybar styles)" \ +"๎ฏ† ALT B" "Choose waybar layout" "(waybar layout)" \ +"๎ฏ† ALT R" "Reload Waybar swaync Rofi" "CHECK NOTIFICATION FIRST!!!" \ +"๎ฏ† SHIFT N" "Launch Notification Panel" "swaync Notification Center" \ +"๎ฏ† Print" "screenshot" "(grim)" \ +"๎ฏ† Shift Print" "screenshot region" "(grim + slurp)" \ +"๎ฏ† Shift S" "screenshot region" "(swappy)" \ +"๎ฏ† CTRL Print" "screenshot timer 5 secs " "(grim)" \ +"๎ฏ† CTRL SHIFT Print" "screenshot timer 10 secs " "(grim)" \ +"ALT Print" "Screenshot active window" "active window only" \ +"CTRL ALT P" "power-menu" "(wlogout)" \ +"CTRL ALT L" "screen lock" "(hyprlock)" \ +"CTRL ALT Del" "Hyprland Exit" "(NOTE: Hyprland Will exit immediately)" \ +"๎ฏ† SHIFT F" "Fullscreen" "Toggles to full screen" \ +"๎ฏ† CTL F" "Fake Fullscreen" "Toggles to fake full screen" \ +"๎ฏ† ALT L" "Toggle Dwindle | Master Layout" "Hyprland Layout" \ +"๎ฏ† SPACEBAR" "Toggle float" "single window" \ +"๎ฏ† ALT SPACEBAR" "Toggle all windows to float" "all windows" \ +"๎ฏ† ALT O" "Toggle Blur" "normal or less blur" \ +"๎ฏ† CTRL O" "Toggle Opaque ON or OFF" "on active window only" \ +"๎ฏ† Shift A" "Animations Menu" "Choose Animations via rofi" \ +"๎ฏ† CTRL R" "Rofi Themes Menu" "Choose Rofi Themes via rofi" \ +"๎ฏ† CTRL Shift R" "Rofi Themes Menu v2" "Choose Rofi Themes via Theme Selector (modified)" \ +"๎ฏ† SHIFT G" "Gamemode! All animations OFF or ON" "toggle" \ +"๎ฏ† ALT E" "Rofi Emoticons" "Emoticon" \ +"๎ฏ† ALT V" "Clipboard Manager" "cliphist" \ +"๎ฏ† H" "Launch this Quick Cheat Sheet" "" \ +"" "" "" \ +"More tips:" "https://g.r-io.lu/shynd/hyprland-dotfiles/wiki" ""\ \ No newline at end of file diff --git a/config/hypr/scripts/KillActiveProcess.sh b/config/hypr/scripts/KillActiveProcess.sh new file mode 100644 index 0000000..59afbf3 --- /dev/null +++ b/config/hypr/scripts/KillActiveProcess.sh @@ -0,0 +1,8 @@ +#!/bin/bash + + +# Get id of an active window +active_pid=$(hyprctl activewindow | grep -o 'pid: [0-9]*' | cut -d' ' -f2) + +# Close active window +kill $active_pid \ No newline at end of file diff --git a/config/hypr/scripts/LockScreen.sh b/config/hypr/scripts/LockScreen.sh new file mode 100644 index 0000000..c0d74da --- /dev/null +++ b/config/hypr/scripts/LockScreen.sh @@ -0,0 +1,5 @@ +#!/bin/bash +# For Hyprlock + +pidof hyprlock || hyprlock -q + diff --git a/config/hypr/scripts/MediaCtrl.sh b/config/hypr/scripts/MediaCtrl.sh new file mode 100644 index 0000000..ed22f7e --- /dev/null +++ b/config/hypr/scripts/MediaCtrl.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# Playerctl + +music_icon="$HOME/.config/swaync/icons/music.png" + +# Play the next track +play_next() { + playerctl next + show_music_notification +} + +# Play the previous track +play_previous() { + playerctl previous + show_music_notification +} + +# Toggle play/pause +toggle_play_pause() { + playerctl play-pause + show_music_notification +} + +# Stop playback +stop_playback() { + playerctl stop + notify-send -e -u low -i $music_icon " Playback:" " Stopped" +} + +# Display notification with song information +show_music_notification() { + status=$(playerctl status) + if [[ "$status" == "Playing" ]]; then + song_title=$(playerctl metadata title) + song_artist=$(playerctl metadata artist) + notify-send -e -u low -i $music_icon "Now Playing:" "$song_title by $song_artist" + elif [[ "$status" == "Paused" ]]; then + notify-send -e -u low -i $music_icon " Playback:" " Paused" + fi +} + +# Get media control action from command line argument +case "$1" in + "--nxt") + play_next + ;; + "--prv") + play_previous + ;; + "--pause") + toggle_play_pause + ;; + "--stop") + stop_playback + ;; + *) + echo "Usage: $0 [--nxt|--prv|--pause|--stop]" + exit 1 + ;; +esac diff --git a/config/hypr/scripts/Polkit-NixOS.sh b/config/hypr/scripts/Polkit-NixOS.sh new file mode 100644 index 0000000..cdcd815 --- /dev/null +++ b/config/hypr/scripts/Polkit-NixOS.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# For NixOS starting of polkit-gnome. Dec 2023, the settings stated in NixOS wiki does not work so have to manual start it + +# Find all polkit-gnome executables in the Nix store +polkit_gnome_paths=$(find /nix/store -name 'polkit-gnome-authentication-agent-1' -type f 2>/dev/null) + +for polkit_gnome_path in $polkit_gnome_paths; do + # Extract the directory containing the executable + polkit_gnome_dir=$(dirname "$polkit_gnome_path") + + # Check if the executable is valid and exists + if [ -x "$polkit_gnome_dir/polkit-gnome-authentication-agent-1" ]; then + # Start the Polkit-GNOME Authentication Agent + "$polkit_gnome_dir/polkit-gnome-authentication-agent-1" & + exit 0 + fi +done + +# If no valid executable is found, report an error +echo "No valid Polkit-GNOME Authentication Agent executable found." \ No newline at end of file diff --git a/config/hypr/scripts/Polkit.sh b/config/hypr/scripts/Polkit.sh new file mode 100644 index 0000000..0c78f5e --- /dev/null +++ b/config/hypr/scripts/Polkit.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# This is for polkits, it will start from top and will stop if the top is executed + +# Polkit possible paths files to check +polkit=( + "/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1" + "/usr/libexec/hyprpolkitagent" + "/usr/lib/hyprpolkitagent" + "/usr/lib/polkit-kde-authentication-agent-1" + "/usr/lib/polkit-gnome-authentication-agent-1" + "/usr/libexec/polkit-gnome-authentication-agent-1" + "/usr/libexec/polkit-mate-authentication-agent-1" + "/usr/lib/x86_64-linux-gnu/libexec/polkit-kde-authentication-agent-1" + "/usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1" +) + +executed=false # Flag to track if a file has been executed + +# Loop through the list of files +for file in "${polkit[@]}"; do + if [ -e "$file" ]; then + echo "File $file found, executing command..." + exec "$file" + executed=true + break + fi +done + +# If none of the files were found, you can add a fallback command here +if [ "$executed" == false ]; then + echo "None of the specified files were found. Install a Polkit" +fi diff --git a/config/hypr/scripts/PortalHyprland.sh b/config/hypr/scripts/PortalHyprland.sh new file mode 100644 index 0000000..5370755 --- /dev/null +++ b/config/hypr/scripts/PortalHyprland.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# For manually starting xdg-desktop-portal-hyprland + +sleep 1 +killall xdg-desktop-portal-hyprland +killall xdg-desktop-portal-wlr +killall xdg-desktop-portal-gnome +killall xdg-desktop-portal +sleep 1 +/usr/lib/xdg-desktop-portal-hyprland & +/usr/libexec/xdg-desktop-portal-hyprland & +sleep 2 +/usr/lib/xdg-desktop-portal & +/usr/libexec/xdg-desktop-portal & + diff --git a/config/hypr/scripts/Refresh.sh b/config/hypr/scripts/Refresh.sh new file mode 100644 index 0000000..91e3c38 --- /dev/null +++ b/config/hypr/scripts/Refresh.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# Scripts for refreshing ags, waybar, rofi, swaync, wallust + +SCRIPTSDIR=$HOME/.config/hypr/scripts +UserScripts=$HOME/.config/hypr/UserScripts + +# Define file_exists function +file_exists() { + if [ -e "$1" ]; then + return 0 # File exists + else + return 1 # File does not exist + fi +} + +# Kill already running processes +_ps=(waybar rofi swaync ags) +for _prs in "${_ps[@]}"; do + if pidof "${_prs}" >/dev/null; then + pkill "${_prs}" + fi +done + +# added since wallust sometimes not applying +killall -SIGUSR2 waybar +killall -SIGUSR2 swaync + +# quit ags & relaunch ags +#ags -q && ags & + +# some process to kill +for pid in $(pidof waybar rofi swaync ags swaybg); do + kill -SIGUSR1 "$pid" +done + +#Restart waybar +sleep 1 +waybar & + +# relaunch swaync +sleep 0.5 +swaync > /dev/null 2>&1 & + +# Relaunching rainbow borders if the script exists +sleep 1 +if file_exists "${UserScripts}/RainbowBorders.sh"; then + ${UserScripts}/RainbowBorders.sh & +fi + +exit 0 \ No newline at end of file diff --git a/config/hypr/scripts/RefreshNoWaybar.sh b/config/hypr/scripts/RefreshNoWaybar.sh new file mode 100644 index 0000000..819d1d7 --- /dev/null +++ b/config/hypr/scripts/RefreshNoWaybar.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# Modified version of Refresh.sh but waybar wont refresh +# Used by automatic wallpaper change +# Modified inorder to refresh rofi background, Wallust, SwayNC only + +SCRIPTSDIR=$HOME/.config/hypr/scripts +UserScripts=$HOME/.config/hypr/UserScripts + +# Define file_exists function +file_exists() { + if [ -e "$1" ]; then + return 0 # File exists + else + return 1 # File does not exist + fi +} + +# Kill already running processes +_ps=(rofi) +for _prs in "${_ps[@]}"; do + if pidof "${_prs}" >/dev/null; then + pkill "${_prs}" + fi +done + +# quit ags & relaunch ags +#ags -q && ags & + +# Wallust refresh +${SCRIPTSDIR}/WallustSwww.sh & + +# Relaunching rainbow borders if the script exists +sleep 1 +if file_exists "${UserScripts}/RainbowBorders.sh"; then + ${UserScripts}/RainbowBorders.sh & +fi + + +exit 0 \ No newline at end of file diff --git a/config/hypr/scripts/RofiEmoji.sh b/config/hypr/scripts/RofiEmoji.sh new file mode 100644 index 0000000..9bd0869 --- /dev/null +++ b/config/hypr/scripts/RofiEmoji.sh @@ -0,0 +1,5059 @@ +#!/bin/bash + +# Variables +rofi_theme="~/.config/rofi/config-emoji.rasi" +msg='** note ** ๐Ÿ‘€ Click or Return to choose || Ctrl V to Paste' + +# Check if rofi is already running +if pidof rofi > /dev/null; then + pkill rofi +fi + +sed '1,/^# # DATA # #$/d' "$0" | \ +rofi -i -dmenu -mesg "$msg" -config $rofi_theme | \ +awk '{print $1}' | \ +head -n 1 | \ +tr -d '\n' | \ +wl-copy + +exit + +# # DATA # # +๐Ÿ˜€ grinning face +๐Ÿ˜ƒ grinning face with big eyes +๐Ÿ˜„ grinning face with smiling eyes +๐Ÿ˜ beaming face with smiling eyes +๐Ÿ˜† grinning squinting face +๐Ÿ˜… grinning face with sweat +๐Ÿคฃ rolling on the floor laughing +๐Ÿ˜‚ face with tears of joy +๐Ÿ™‚ slightly smiling face +๐Ÿ™ƒ upside-down face +๐Ÿซ  melting face +๐Ÿ˜‰ winking face +๐Ÿ˜Š smiling face with smiling eyes +๐Ÿ˜‡ smiling face with halo +๐Ÿฅฐ smiling face with hearts +๐Ÿ˜ smiling face with heart-eyes +๐Ÿคฉ star-struck +๐Ÿ˜˜ face blowing a kiss +๐Ÿ˜— kissing face +โ˜บ๏ธ smiling face +โ˜บ smiling face +๐Ÿ˜š kissing face with closed eyes +๐Ÿ˜™ kissing face with smiling eyes +๐Ÿฅฒ smiling face with tear +๐Ÿ˜‹ face savoring food +๐Ÿ˜› face with tongue +๐Ÿ˜œ winking face with tongue +๐Ÿคช zany face +๐Ÿ˜ squinting face with tongue +๐Ÿค‘ money-mouth face +๐Ÿค— smiling face with open hands +๐Ÿคญ face with hand over mouth +๐Ÿซข face with open eyes and hand over mouth +๐Ÿซฃ face with peeking eye +๐Ÿคซ shushing face +๐Ÿค” thinking face +๐Ÿซก saluting face +๐Ÿค zipper-mouth face +๐Ÿคจ face with raised eyebrow +๐Ÿ˜ neutral face +๐Ÿ˜‘ expressionless face +๐Ÿ˜ถ face without mouth +๐Ÿซฅ dotted line face +๐Ÿ˜ถโ€๐ŸŒซ๏ธ face in clouds +๐Ÿ˜ถโ€๐ŸŒซ face in clouds +๐Ÿ˜ smirking face +๐Ÿ˜’ unamused face +๐Ÿ™„ face with rolling eyes +๐Ÿ˜ฌ grimacing face +๐Ÿ˜ฎโ€๐Ÿ’จ face exhaling +๐Ÿคฅ lying face +๐Ÿซจ shaking face +๐Ÿ™‚โ€โ†”๏ธ head shaking horizontally +๐Ÿ™‚โ€โ†” head shaking horizontally +๐Ÿ™‚โ€โ†•๏ธ head shaking vertically +๐Ÿ™‚โ€โ†• head shaking vertically +๐Ÿ˜Œ relieved face +๐Ÿ˜” pensive face +๐Ÿ˜ช sleepy face +๐Ÿคค drooling face +๐Ÿ˜ด sleeping face +๐Ÿซฉ face with bags under eyes +๐Ÿ˜ท face with medical mask +๐Ÿค’ face with thermometer +๐Ÿค• face with head-bandage +๐Ÿคข nauseated face +๐Ÿคฎ face vomiting +๐Ÿคง sneezing face +๐Ÿฅต hot face +๐Ÿฅถ cold face +๐Ÿฅด woozy face +๐Ÿ˜ต face with crossed-out eyes +๐Ÿ˜ตโ€๐Ÿ’ซ face with spiral eyes +๐Ÿคฏ exploding head +๐Ÿค  cowboy hat face +๐Ÿฅณ partying face +๐Ÿฅธ disguised face +๐Ÿ˜Ž smiling face with sunglasses +๐Ÿค“ nerd face +๐Ÿง face with monocle +๐Ÿ˜• confused face +๐Ÿซค face with diagonal mouth +๐Ÿ˜Ÿ worried face +๐Ÿ™ slightly frowning face +โ˜น๏ธ frowning face +โ˜น frowning face +๐Ÿ˜ฎ face with open mouth +๐Ÿ˜ฏ hushed face +๐Ÿ˜ฒ astonished face +๐Ÿ˜ณ flushed face +๐Ÿฅบ pleading face +๐Ÿฅน face holding back tears +๐Ÿ˜ฆ frowning face with open mouth +๐Ÿ˜ง anguished face +๐Ÿ˜จ fearful face +๐Ÿ˜ฐ anxious face with sweat +๐Ÿ˜ฅ sad but relieved face +๐Ÿ˜ข crying face +๐Ÿ˜ญ loudly crying face +๐Ÿ˜ฑ face screaming in fear +๐Ÿ˜– confounded face +๐Ÿ˜ฃ persevering face +๐Ÿ˜ž disappointed face +๐Ÿ˜“ downcast face with sweat +๐Ÿ˜ฉ weary face +๐Ÿ˜ซ tired face +๐Ÿฅฑ yawning face +๐Ÿ˜ค face with steam from nose +๐Ÿ˜ก enraged face +๐Ÿ˜  angry face +๐Ÿคฌ face with symbols on mouth +๐Ÿ˜ˆ smiling face with horns +๐Ÿ‘ฟ angry face with horns +๐Ÿ’€ skull +โ˜ ๏ธ skull and crossbones +โ˜  skull and crossbones +๐Ÿ’ฉ pile of poo +๐Ÿคก clown face +๐Ÿ‘น ogre +๐Ÿ‘บ goblin +๐Ÿ‘ป ghost +๐Ÿ‘ฝ alien +๐Ÿ‘พ alien monster +๐Ÿค– robot +๐Ÿ˜บ grinning cat +๐Ÿ˜ธ grinning cat with smiling eyes +๐Ÿ˜น cat with tears of joy +๐Ÿ˜ป smiling cat with heart-eyes +๐Ÿ˜ผ cat with wry smile +๐Ÿ˜ฝ kissing cat +๐Ÿ™€ weary cat +๐Ÿ˜ฟ crying cat +๐Ÿ˜พ pouting cat +๐Ÿ™ˆ see-no-evil monkey +๐Ÿ™‰ hear-no-evil monkey +๐Ÿ™Š speak-no-evil monkey +๐Ÿ’Œ love letter +๐Ÿ’˜ heart with arrow +๐Ÿ’ heart with ribbon +๐Ÿ’– sparkling heart +๐Ÿ’— growing heart +๐Ÿ’“ beating heart +๐Ÿ’ž revolving hearts +๐Ÿ’• two hearts +๐Ÿ’Ÿ heart decoration +โฃ๏ธ heart exclamation +โฃ heart exclamation +๐Ÿ’” broken heart +โค๏ธโ€๐Ÿ”ฅ heart on fire +โคโ€๐Ÿ”ฅ heart on fire +โค๏ธโ€๐Ÿฉน mending heart +โคโ€๐Ÿฉน mending heart +โค๏ธ red heart +โค red heart +๐Ÿฉท pink heart +๐Ÿงก orange heart +๐Ÿ’› yellow heart +๐Ÿ’š green heart +๐Ÿ’™ blue heart +๐Ÿฉต light blue heart +๐Ÿ’œ purple heart +๐ŸคŽ brown heart +๐Ÿ–ค black heart +๐Ÿฉถ grey heart +๐Ÿค white heart +๐Ÿ’‹ kiss mark +๐Ÿ’ฏ hundred points +๐Ÿ’ข anger symbol +๐Ÿ’ฅ collision +๐Ÿ’ซ dizzy +๐Ÿ’ฆ sweat droplets +๐Ÿ’จ dashing away +๐Ÿ•ณ๏ธ hole +๐Ÿ•ณ hole +๐Ÿ’ฌ speech balloon +๐Ÿ‘๏ธโ€๐Ÿ—จ๏ธ eye in speech bubble +๐Ÿ‘โ€๐Ÿ—จ๏ธ eye in speech bubble +๐Ÿ‘๏ธโ€๐Ÿ—จ eye in speech bubble +๐Ÿ‘โ€๐Ÿ—จ eye in speech bubble +๐Ÿ—จ๏ธ left speech bubble +๐Ÿ—จ left speech bubble +๐Ÿ—ฏ๏ธ right anger bubble +๐Ÿ—ฏ right anger bubble +๐Ÿ’ญ thought balloon +๐Ÿ’ค ZZZ +๐Ÿ‘‹ waving hand +๐Ÿ‘‹๐Ÿป waving hand: light skin tone +๐Ÿ‘‹๐Ÿผ waving hand: medium-light skin tone +๐Ÿ‘‹๐Ÿฝ waving hand: medium skin tone +๐Ÿ‘‹๐Ÿพ waving hand: medium-dark skin tone +๐Ÿ‘‹๐Ÿฟ waving hand: dark skin tone +๐Ÿคš raised back of hand +๐Ÿคš๐Ÿป raised back of hand: light skin tone +๐Ÿคš๐Ÿผ raised back of hand: medium-light skin tone +๐Ÿคš๐Ÿฝ raised back of hand: medium skin tone +๐Ÿคš๐Ÿพ raised back of hand: medium-dark skin tone +๐Ÿคš๐Ÿฟ raised back of hand: dark skin tone +๐Ÿ–๏ธ hand with fingers splayed +๐Ÿ– hand with fingers splayed +๐Ÿ–๐Ÿป hand with fingers splayed: light skin tone +๐Ÿ–๐Ÿผ hand with fingers splayed: medium-light skin tone +๐Ÿ–๐Ÿฝ hand with fingers splayed: medium skin tone +๐Ÿ–๐Ÿพ hand with fingers splayed: medium-dark skin tone +๐Ÿ–๐Ÿฟ hand with fingers splayed: dark skin tone +โœ‹ raised hand +โœ‹๐Ÿป raised hand: light skin tone +โœ‹๐Ÿผ raised hand: medium-light skin tone +โœ‹๐Ÿฝ raised hand: medium skin tone +โœ‹๐Ÿพ raised hand: medium-dark skin tone +โœ‹๐Ÿฟ raised hand: dark skin tone +๐Ÿ–– vulcan salute +๐Ÿ––๐Ÿป vulcan salute: light skin tone +๐Ÿ––๐Ÿผ vulcan salute: medium-light skin tone +๐Ÿ––๐Ÿฝ vulcan salute: medium skin tone +๐Ÿ––๐Ÿพ vulcan salute: medium-dark skin tone +๐Ÿ––๐Ÿฟ vulcan salute: dark skin tone +๐Ÿซฑ rightwards hand +๐Ÿซฑ๐Ÿป rightwards hand: light skin tone +๐Ÿซฑ๐Ÿผ rightwards hand: medium-light skin tone +๐Ÿซฑ๐Ÿฝ rightwards hand: medium skin tone +๐Ÿซฑ๐Ÿพ rightwards hand: medium-dark skin tone +๐Ÿซฑ๐Ÿฟ rightwards hand: dark skin tone +๐Ÿซฒ leftwards hand +๐Ÿซฒ๐Ÿป leftwards hand: light skin tone +๐Ÿซฒ๐Ÿผ leftwards hand: medium-light skin tone +๐Ÿซฒ๐Ÿฝ leftwards hand: medium skin tone +๐Ÿซฒ๐Ÿพ leftwards hand: medium-dark skin tone +๐Ÿซฒ๐Ÿฟ leftwards hand: dark skin tone +๐Ÿซณ palm down hand +๐Ÿซณ๐Ÿป palm down hand: light skin tone +๐Ÿซณ๐Ÿผ palm down hand: medium-light skin tone +๐Ÿซณ๐Ÿฝ palm down hand: medium skin tone +๐Ÿซณ๐Ÿพ palm down hand: medium-dark skin tone +๐Ÿซณ๐Ÿฟ palm down hand: dark skin tone +๐Ÿซด palm up hand +๐Ÿซด๐Ÿป palm up hand: light skin tone +๐Ÿซด๐Ÿผ palm up hand: medium-light skin tone +๐Ÿซด๐Ÿฝ palm up hand: medium skin tone +๐Ÿซด๐Ÿพ palm up hand: medium-dark skin tone +๐Ÿซด๐Ÿฟ palm up hand: dark skin tone +๐Ÿซท leftwards pushing hand +๐Ÿซท๐Ÿป leftwards pushing hand: light skin tone +๐Ÿซท๐Ÿผ leftwards pushing hand: medium-light skin tone +๐Ÿซท๐Ÿฝ leftwards pushing hand: medium skin tone +๐Ÿซท๐Ÿพ leftwards pushing hand: medium-dark skin tone +๐Ÿซท๐Ÿฟ leftwards pushing hand: dark skin tone +๐Ÿซธ rightwards pushing hand +๐Ÿซธ๐Ÿป rightwards pushing hand: light skin tone +๐Ÿซธ๐Ÿผ rightwards pushing hand: medium-light skin tone +๐Ÿซธ๐Ÿฝ rightwards pushing hand: medium skin tone +๐Ÿซธ๐Ÿพ rightwards pushing hand: medium-dark skin tone +๐Ÿซธ๐Ÿฟ rightwards pushing hand: dark skin tone +๐Ÿ‘Œ OK hand +๐Ÿ‘Œ๐Ÿป OK hand: light skin tone +๐Ÿ‘Œ๐Ÿผ OK hand: medium-light skin tone +๐Ÿ‘Œ๐Ÿฝ OK hand: medium skin tone +๐Ÿ‘Œ๐Ÿพ OK hand: medium-dark skin tone +๐Ÿ‘Œ๐Ÿฟ OK hand: dark skin tone +๐ŸคŒ pinched fingers +๐ŸคŒ๐Ÿป pinched fingers: light skin tone +๐ŸคŒ๐Ÿผ pinched fingers: medium-light skin tone +๐ŸคŒ๐Ÿฝ pinched fingers: medium skin tone +๐ŸคŒ๐Ÿพ pinched fingers: medium-dark skin tone +๐ŸคŒ๐Ÿฟ pinched fingers: dark skin tone +๐Ÿค pinching hand +๐Ÿค๐Ÿป pinching hand: light skin tone +๐Ÿค๐Ÿผ pinching hand: medium-light skin tone +๐Ÿค๐Ÿฝ pinching hand: medium skin tone +๐Ÿค๐Ÿพ pinching hand: medium-dark skin tone +๐Ÿค๐Ÿฟ pinching hand: dark skin tone +โœŒ๏ธ victory hand +โœŒ victory hand +โœŒ๐Ÿป victory hand: light skin tone +โœŒ๐Ÿผ victory hand: medium-light skin tone +โœŒ๐Ÿฝ victory hand: medium skin tone +โœŒ๐Ÿพ victory hand: medium-dark skin tone +โœŒ๐Ÿฟ victory hand: dark skin tone +๐Ÿคž crossed fingers +๐Ÿคž๐Ÿป crossed fingers: light skin tone +๐Ÿคž๐Ÿผ crossed fingers: medium-light skin tone +๐Ÿคž๐Ÿฝ crossed fingers: medium skin tone +๐Ÿคž๐Ÿพ crossed fingers: medium-dark skin tone +๐Ÿคž๐Ÿฟ crossed fingers: dark skin tone +๐Ÿซฐ hand with index finger and thumb crossed +๐Ÿซฐ๐Ÿป hand with index finger and thumb crossed: light skin tone +๐Ÿซฐ๐Ÿผ hand with index finger and thumb crossed: medium-light skin tone +๐Ÿซฐ๐Ÿฝ hand with index finger and thumb crossed: medium skin tone +๐Ÿซฐ๐Ÿพ hand with index finger and thumb crossed: medium-dark skin tone +๐Ÿซฐ๐Ÿฟ hand with index finger and thumb crossed: dark skin tone +๐ŸคŸ love-you gesture +๐ŸคŸ๐Ÿป love-you gesture: light skin tone +๐ŸคŸ๐Ÿผ love-you gesture: medium-light skin tone +๐ŸคŸ๐Ÿฝ love-you gesture: medium skin tone +๐ŸคŸ๐Ÿพ love-you gesture: medium-dark skin tone +๐ŸคŸ๐Ÿฟ love-you gesture: dark skin tone +๐Ÿค˜ sign of the horns +๐Ÿค˜๐Ÿป sign of the horns: light skin tone +๐Ÿค˜๐Ÿผ sign of the horns: medium-light skin tone +๐Ÿค˜๐Ÿฝ sign of the horns: medium skin tone +๐Ÿค˜๐Ÿพ sign of the horns: medium-dark skin tone +๐Ÿค˜๐Ÿฟ sign of the horns: dark skin tone +๐Ÿค™ call me hand +๐Ÿค™๐Ÿป call me hand: light skin tone +๐Ÿค™๐Ÿผ call me hand: medium-light skin tone +๐Ÿค™๐Ÿฝ call me hand: medium skin tone +๐Ÿค™๐Ÿพ call me hand: medium-dark skin tone +๐Ÿค™๐Ÿฟ call me hand: dark skin tone +๐Ÿ‘ˆ backhand index pointing left +๐Ÿ‘ˆ๐Ÿป backhand index pointing left: light skin tone +๐Ÿ‘ˆ๐Ÿผ backhand index pointing left: medium-light skin tone +๐Ÿ‘ˆ๐Ÿฝ backhand index pointing left: medium skin tone +๐Ÿ‘ˆ๐Ÿพ backhand index pointing left: medium-dark skin tone +๐Ÿ‘ˆ๐Ÿฟ backhand index pointing left: dark skin tone +๐Ÿ‘‰ backhand index pointing right +๐Ÿ‘‰๐Ÿป backhand index pointing right: light skin tone +๐Ÿ‘‰๐Ÿผ backhand index pointing right: medium-light skin tone +๐Ÿ‘‰๐Ÿฝ backhand index pointing right: medium skin tone +๐Ÿ‘‰๐Ÿพ backhand index pointing right: medium-dark skin tone +๐Ÿ‘‰๐Ÿฟ backhand index pointing right: dark skin tone +๐Ÿ‘† backhand index pointing up +๐Ÿ‘†๐Ÿป backhand index pointing up: light skin tone +๐Ÿ‘†๐Ÿผ backhand index pointing up: medium-light skin tone +๐Ÿ‘†๐Ÿฝ backhand index pointing up: medium skin tone +๐Ÿ‘†๐Ÿพ backhand index pointing up: medium-dark skin tone +๐Ÿ‘†๐Ÿฟ backhand index pointing up: dark skin tone +๐Ÿ–• middle finger +๐Ÿ–•๐Ÿป middle finger: light skin tone +๐Ÿ–•๐Ÿผ middle finger: medium-light skin tone +๐Ÿ–•๐Ÿฝ middle finger: medium skin tone +๐Ÿ–•๐Ÿพ middle finger: medium-dark skin tone +๐Ÿ–•๐Ÿฟ middle finger: dark skin tone +๐Ÿ‘‡ backhand index pointing down +๐Ÿ‘‡๐Ÿป backhand index pointing down: light skin tone +๐Ÿ‘‡๐Ÿผ backhand index pointing down: medium-light skin tone +๐Ÿ‘‡๐Ÿฝ backhand index pointing down: medium skin tone +๐Ÿ‘‡๐Ÿพ backhand index pointing down: medium-dark skin tone +๐Ÿ‘‡๐Ÿฟ backhand index pointing down: dark skin tone +โ˜๏ธ index pointing up +โ˜ index pointing up +โ˜๐Ÿป index pointing up: light skin tone +โ˜๐Ÿผ index pointing up: medium-light skin tone +โ˜๐Ÿฝ index pointing up: medium skin tone +โ˜๐Ÿพ index pointing up: medium-dark skin tone +โ˜๐Ÿฟ index pointing up: dark skin tone +๐Ÿซต index pointing at the viewer +๐Ÿซต๐Ÿป index pointing at the viewer: light skin tone +๐Ÿซต๐Ÿผ index pointing at the viewer: medium-light skin tone +๐Ÿซต๐Ÿฝ index pointing at the viewer: medium skin tone +๐Ÿซต๐Ÿพ index pointing at the viewer: medium-dark skin tone +๐Ÿซต๐Ÿฟ index pointing at the viewer: dark skin tone +๐Ÿ‘ thumbs up +๐Ÿ‘๐Ÿป thumbs up: light skin tone +๐Ÿ‘๐Ÿผ thumbs up: medium-light skin tone +๐Ÿ‘๐Ÿฝ thumbs up: medium skin tone +๐Ÿ‘๐Ÿพ thumbs up: medium-dark skin tone +๐Ÿ‘๐Ÿฟ thumbs up: dark skin tone +๐Ÿ‘Ž thumbs down +๐Ÿ‘Ž๐Ÿป thumbs down: light skin tone +๐Ÿ‘Ž๐Ÿผ thumbs down: medium-light skin tone +๐Ÿ‘Ž๐Ÿฝ thumbs down: medium skin tone +๐Ÿ‘Ž๐Ÿพ thumbs down: medium-dark skin tone +๐Ÿ‘Ž๐Ÿฟ thumbs down: dark skin tone +โœŠ raised fist +โœŠ๐Ÿป raised fist: light skin tone +โœŠ๐Ÿผ raised fist: medium-light skin tone +โœŠ๐Ÿฝ raised fist: medium skin tone +โœŠ๐Ÿพ raised fist: medium-dark skin tone +โœŠ๐Ÿฟ raised fist: dark skin tone +๐Ÿ‘Š oncoming fist +๐Ÿ‘Š๐Ÿป oncoming fist: light skin tone +๐Ÿ‘Š๐Ÿผ oncoming fist: medium-light skin tone +๐Ÿ‘Š๐Ÿฝ oncoming fist: medium skin tone +๐Ÿ‘Š๐Ÿพ oncoming fist: medium-dark skin tone +๐Ÿ‘Š๐Ÿฟ oncoming fist: dark skin tone +๐Ÿค› left-facing fist +๐Ÿค›๐Ÿป left-facing fist: light skin tone +๐Ÿค›๐Ÿผ left-facing fist: medium-light skin tone +๐Ÿค›๐Ÿฝ left-facing fist: medium skin tone +๐Ÿค›๐Ÿพ left-facing fist: medium-dark skin tone +๐Ÿค›๐Ÿฟ left-facing fist: dark skin tone +๐Ÿคœ right-facing fist +๐Ÿคœ๐Ÿป right-facing fist: light skin tone +๐Ÿคœ๐Ÿผ right-facing fist: medium-light skin tone +๐Ÿคœ๐Ÿฝ right-facing fist: medium skin tone +๐Ÿคœ๐Ÿพ right-facing fist: medium-dark skin tone +๐Ÿคœ๐Ÿฟ right-facing fist: dark skin tone +๐Ÿ‘ clapping hands +๐Ÿ‘๐Ÿป clapping hands: light skin tone +๐Ÿ‘๐Ÿผ clapping hands: medium-light skin tone +๐Ÿ‘๐Ÿฝ clapping hands: medium skin tone +๐Ÿ‘๐Ÿพ clapping hands: medium-dark skin tone +๐Ÿ‘๐Ÿฟ clapping hands: dark skin tone +๐Ÿ™Œ raising hands +๐Ÿ™Œ๐Ÿป raising hands: light skin tone +๐Ÿ™Œ๐Ÿผ raising hands: medium-light skin tone +๐Ÿ™Œ๐Ÿฝ raising hands: medium skin tone +๐Ÿ™Œ๐Ÿพ raising hands: medium-dark skin tone +๐Ÿ™Œ๐Ÿฟ raising hands: dark skin tone +๐Ÿซถ heart hands +๐Ÿซถ๐Ÿป heart hands: light skin tone +๐Ÿซถ๐Ÿผ heart hands: medium-light skin tone +๐Ÿซถ๐Ÿฝ heart hands: medium skin tone +๐Ÿซถ๐Ÿพ heart hands: medium-dark skin tone +๐Ÿซถ๐Ÿฟ heart hands: dark skin tone +๐Ÿ‘ open hands +๐Ÿ‘๐Ÿป open hands: light skin tone +๐Ÿ‘๐Ÿผ open hands: medium-light skin tone +๐Ÿ‘๐Ÿฝ open hands: medium skin tone +๐Ÿ‘๐Ÿพ open hands: medium-dark skin tone +๐Ÿ‘๐Ÿฟ open hands: dark skin tone +๐Ÿคฒ palms up together +๐Ÿคฒ๐Ÿป palms up together: light skin tone +๐Ÿคฒ๐Ÿผ palms up together: medium-light skin tone +๐Ÿคฒ๐Ÿฝ palms up together: medium skin tone +๐Ÿคฒ๐Ÿพ palms up together: medium-dark skin tone +๐Ÿคฒ๐Ÿฟ palms up together: dark skin tone +๐Ÿค handshake +๐Ÿค๐Ÿป handshake: light skin tone +๐Ÿค๐Ÿผ handshake: medium-light skin tone +๐Ÿค๐Ÿฝ handshake: medium skin tone +๐Ÿค๐Ÿพ handshake: medium-dark skin tone +๐Ÿค๐Ÿฟ handshake: dark skin tone +๐Ÿซฑ๐Ÿปโ€๐Ÿซฒ๐Ÿผ handshake: light skin tone, medium-light skin tone +๐Ÿซฑ๐Ÿปโ€๐Ÿซฒ๐Ÿฝ handshake: light skin tone, medium skin tone +๐Ÿซฑ๐Ÿปโ€๐Ÿซฒ๐Ÿพ handshake: light skin tone, medium-dark skin tone +๐Ÿซฑ๐Ÿปโ€๐Ÿซฒ๐Ÿฟ handshake: light skin tone, dark skin tone +๐Ÿซฑ๐Ÿผโ€๐Ÿซฒ๐Ÿป handshake: medium-light skin tone, light skin tone +๐Ÿซฑ๐Ÿผโ€๐Ÿซฒ๐Ÿฝ handshake: medium-light skin tone, medium skin tone +๐Ÿซฑ๐Ÿผโ€๐Ÿซฒ๐Ÿพ handshake: medium-light skin tone, medium-dark skin tone +๐Ÿซฑ๐Ÿผโ€๐Ÿซฒ๐Ÿฟ handshake: medium-light skin tone, dark skin tone +๐Ÿซฑ๐Ÿฝโ€๐Ÿซฒ๐Ÿป handshake: medium skin tone, light skin tone +๐Ÿซฑ๐Ÿฝโ€๐Ÿซฒ๐Ÿผ handshake: medium skin tone, medium-light skin tone +๐Ÿซฑ๐Ÿฝโ€๐Ÿซฒ๐Ÿพ handshake: medium skin tone, medium-dark skin tone +๐Ÿซฑ๐Ÿฝโ€๐Ÿซฒ๐Ÿฟ handshake: medium skin tone, dark skin tone +๐Ÿซฑ๐Ÿพโ€๐Ÿซฒ๐Ÿป handshake: medium-dark skin tone, light skin tone +๐Ÿซฑ๐Ÿพโ€๐Ÿซฒ๐Ÿผ handshake: medium-dark skin tone, medium-light skin tone +๐Ÿซฑ๐Ÿพโ€๐Ÿซฒ๐Ÿฝ handshake: medium-dark skin tone, medium skin tone +๐Ÿซฑ๐Ÿพโ€๐Ÿซฒ๐Ÿฟ handshake: medium-dark skin tone, dark skin tone +๐Ÿซฑ๐Ÿฟโ€๐Ÿซฒ๐Ÿป handshake: dark skin tone, light skin tone +๐Ÿซฑ๐Ÿฟโ€๐Ÿซฒ๐Ÿผ handshake: dark skin tone, medium-light skin tone +๐Ÿซฑ๐Ÿฟโ€๐Ÿซฒ๐Ÿฝ handshake: dark skin tone, medium skin tone +๐Ÿซฑ๐Ÿฟโ€๐Ÿซฒ๐Ÿพ handshake: dark skin tone, medium-dark skin tone +๐Ÿ™ folded hands +๐Ÿ™๐Ÿป folded hands: light skin tone +๐Ÿ™๐Ÿผ folded hands: medium-light skin tone +๐Ÿ™๐Ÿฝ folded hands: medium skin tone +๐Ÿ™๐Ÿพ folded hands: medium-dark skin tone +๐Ÿ™๐Ÿฟ folded hands: dark skin tone +โœ๏ธ writing hand +โœ writing hand +โœ๐Ÿป writing hand: light skin tone +โœ๐Ÿผ writing hand: medium-light skin tone +โœ๐Ÿฝ writing hand: medium skin tone +โœ๐Ÿพ writing hand: medium-dark skin tone +โœ๐Ÿฟ writing hand: dark skin tone +๐Ÿ’… nail polish +๐Ÿ’…๐Ÿป nail polish: light skin tone +๐Ÿ’…๐Ÿผ nail polish: medium-light skin tone +๐Ÿ’…๐Ÿฝ nail polish: medium skin tone +๐Ÿ’…๐Ÿพ nail polish: medium-dark skin tone +๐Ÿ’…๐Ÿฟ nail polish: dark skin tone +๐Ÿคณ selfie +๐Ÿคณ๐Ÿป selfie: light skin tone +๐Ÿคณ๐Ÿผ selfie: medium-light skin tone +๐Ÿคณ๐Ÿฝ selfie: medium skin tone +๐Ÿคณ๐Ÿพ selfie: medium-dark skin tone +๐Ÿคณ๐Ÿฟ selfie: dark skin tone +๐Ÿ’ช flexed biceps +๐Ÿ’ช๐Ÿป flexed biceps: light skin tone +๐Ÿ’ช๐Ÿผ flexed biceps: medium-light skin tone +๐Ÿ’ช๐Ÿฝ flexed biceps: medium skin tone +๐Ÿ’ช๐Ÿพ flexed biceps: medium-dark skin tone +๐Ÿ’ช๐Ÿฟ flexed biceps: dark skin tone +๐Ÿฆพ mechanical arm +๐Ÿฆฟ mechanical leg +๐Ÿฆต leg +๐Ÿฆต๐Ÿป leg: light skin tone +๐Ÿฆต๐Ÿผ leg: medium-light skin tone +๐Ÿฆต๐Ÿฝ leg: medium skin tone +๐Ÿฆต๐Ÿพ leg: medium-dark skin tone +๐Ÿฆต๐Ÿฟ leg: dark skin tone +๐Ÿฆถ foot +๐Ÿฆถ๐Ÿป foot: light skin tone +๐Ÿฆถ๐Ÿผ foot: medium-light skin tone +๐Ÿฆถ๐Ÿฝ foot: medium skin tone +๐Ÿฆถ๐Ÿพ foot: medium-dark skin tone +๐Ÿฆถ๐Ÿฟ foot: dark skin tone +๐Ÿ‘‚ ear +๐Ÿ‘‚๐Ÿป ear: light skin tone +๐Ÿ‘‚๐Ÿผ ear: medium-light skin tone +๐Ÿ‘‚๐Ÿฝ ear: medium skin tone +๐Ÿ‘‚๐Ÿพ ear: medium-dark skin tone +๐Ÿ‘‚๐Ÿฟ ear: dark skin tone +๐Ÿฆป ear with hearing aid +๐Ÿฆป๐Ÿป ear with hearing aid: light skin tone +๐Ÿฆป๐Ÿผ ear with hearing aid: medium-light skin tone +๐Ÿฆป๐Ÿฝ ear with hearing aid: medium skin tone +๐Ÿฆป๐Ÿพ ear with hearing aid: medium-dark skin tone +๐Ÿฆป๐Ÿฟ ear with hearing aid: dark skin tone +๐Ÿ‘ƒ nose +๐Ÿ‘ƒ๐Ÿป nose: light skin tone +๐Ÿ‘ƒ๐Ÿผ nose: medium-light skin tone +๐Ÿ‘ƒ๐Ÿฝ nose: medium skin tone +๐Ÿ‘ƒ๐Ÿพ nose: medium-dark skin tone +๐Ÿ‘ƒ๐Ÿฟ nose: dark skin tone +๐Ÿง  brain +๐Ÿซ€ anatomical heart +๐Ÿซ lungs +๐Ÿฆท tooth +๐Ÿฆด bone +๐Ÿ‘€ eyes +๐Ÿ‘๏ธ eye +๐Ÿ‘ eye +๐Ÿ‘… tongue +๐Ÿ‘„ mouth +๐Ÿซฆ biting lip +๐Ÿ‘ถ baby +๐Ÿ‘ถ๐Ÿป baby: light skin tone +๐Ÿ‘ถ๐Ÿผ baby: medium-light skin tone +๐Ÿ‘ถ๐Ÿฝ baby: medium skin tone +๐Ÿ‘ถ๐Ÿพ baby: medium-dark skin tone +๐Ÿ‘ถ๐Ÿฟ baby: dark skin tone +๐Ÿง’ child +๐Ÿง’๐Ÿป child: light skin tone +๐Ÿง’๐Ÿผ child: medium-light skin tone +๐Ÿง’๐Ÿฝ child: medium skin tone +๐Ÿง’๐Ÿพ child: medium-dark skin tone +๐Ÿง’๐Ÿฟ child: dark skin tone +๐Ÿ‘ฆ boy +๐Ÿ‘ฆ๐Ÿป boy: light skin tone +๐Ÿ‘ฆ๐Ÿผ boy: medium-light skin tone +๐Ÿ‘ฆ๐Ÿฝ boy: medium skin tone +๐Ÿ‘ฆ๐Ÿพ boy: medium-dark skin tone +๐Ÿ‘ฆ๐Ÿฟ boy: dark skin tone +๐Ÿ‘ง girl +๐Ÿ‘ง๐Ÿป girl: light skin tone +๐Ÿ‘ง๐Ÿผ girl: medium-light skin tone +๐Ÿ‘ง๐Ÿฝ girl: medium skin tone +๐Ÿ‘ง๐Ÿพ girl: medium-dark skin tone +๐Ÿ‘ง๐Ÿฟ girl: dark skin tone +๐Ÿง‘ person +๐Ÿง‘๐Ÿป person: light skin tone +๐Ÿง‘๐Ÿผ person: medium-light skin tone +๐Ÿง‘๐Ÿฝ person: medium skin tone +๐Ÿง‘๐Ÿพ person: medium-dark skin tone +๐Ÿง‘๐Ÿฟ person: dark skin tone +๐Ÿ‘ฑ person: blond hair +๐Ÿ‘ฑ๐Ÿป person: light skin tone, blond hair +๐Ÿ‘ฑ๐Ÿผ person: medium-light skin tone, blond hair +๐Ÿ‘ฑ๐Ÿฝ person: medium skin tone, blond hair +๐Ÿ‘ฑ๐Ÿพ person: medium-dark skin tone, blond hair +๐Ÿ‘ฑ๐Ÿฟ person: dark skin tone, blond hair +๐Ÿ‘จ man +๐Ÿ‘จ๐Ÿป man: light skin tone +๐Ÿ‘จ๐Ÿผ man: medium-light skin tone +๐Ÿ‘จ๐Ÿฝ man: medium skin tone +๐Ÿ‘จ๐Ÿพ man: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟ man: dark skin tone +๐Ÿง” person: beard +๐Ÿง”๐Ÿป person: light skin tone, beard +๐Ÿง”๐Ÿผ person: medium-light skin tone, beard +๐Ÿง”๐Ÿฝ person: medium skin tone, beard +๐Ÿง”๐Ÿพ person: medium-dark skin tone, beard +๐Ÿง”๐Ÿฟ person: dark skin tone, beard +๐Ÿง”โ€โ™‚๏ธ man: beard +๐Ÿง”โ€โ™‚ man: beard +๐Ÿง”๐Ÿปโ€โ™‚๏ธ man: light skin tone, beard +๐Ÿง”๐Ÿปโ€โ™‚ man: light skin tone, beard +๐Ÿง”๐Ÿผโ€โ™‚๏ธ man: medium-light skin tone, beard +๐Ÿง”๐Ÿผโ€โ™‚ man: medium-light skin tone, beard +๐Ÿง”๐Ÿฝโ€โ™‚๏ธ man: medium skin tone, beard +๐Ÿง”๐Ÿฝโ€โ™‚ man: medium skin tone, beard +๐Ÿง”๐Ÿพโ€โ™‚๏ธ man: medium-dark skin tone, beard +๐Ÿง”๐Ÿพโ€โ™‚ man: medium-dark skin tone, beard +๐Ÿง”๐Ÿฟโ€โ™‚๏ธ man: dark skin tone, beard +๐Ÿง”๐Ÿฟโ€โ™‚ man: dark skin tone, beard +๐Ÿง”โ€โ™€๏ธ woman: beard +๐Ÿง”โ€โ™€ woman: beard +๐Ÿง”๐Ÿปโ€โ™€๏ธ woman: light skin tone, beard +๐Ÿง”๐Ÿปโ€โ™€ woman: light skin tone, beard +๐Ÿง”๐Ÿผโ€โ™€๏ธ woman: medium-light skin tone, beard +๐Ÿง”๐Ÿผโ€โ™€ woman: medium-light skin tone, beard +๐Ÿง”๐Ÿฝโ€โ™€๏ธ woman: medium skin tone, beard +๐Ÿง”๐Ÿฝโ€โ™€ woman: medium skin tone, beard +๐Ÿง”๐Ÿพโ€โ™€๏ธ woman: medium-dark skin tone, beard +๐Ÿง”๐Ÿพโ€โ™€ woman: medium-dark skin tone, beard +๐Ÿง”๐Ÿฟโ€โ™€๏ธ woman: dark skin tone, beard +๐Ÿง”๐Ÿฟโ€โ™€ woman: dark skin tone, beard +๐Ÿ‘จโ€๐Ÿฆฐ man: red hair +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฐ man: light skin tone, red hair +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฐ man: medium-light skin tone, red hair +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฐ man: medium skin tone, red hair +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฐ man: medium-dark skin tone, red hair +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฐ man: dark skin tone, red hair +๐Ÿ‘จโ€๐Ÿฆฑ man: curly hair +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฑ man: light skin tone, curly hair +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฑ man: medium-light skin tone, curly hair +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฑ man: medium skin tone, curly hair +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฑ man: medium-dark skin tone, curly hair +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฑ man: dark skin tone, curly hair +๐Ÿ‘จโ€๐Ÿฆณ man: white hair +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆณ man: light skin tone, white hair +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆณ man: medium-light skin tone, white hair +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆณ man: medium skin tone, white hair +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆณ man: medium-dark skin tone, white hair +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆณ man: dark skin tone, white hair +๐Ÿ‘จโ€๐Ÿฆฒ man: bald +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฒ man: light skin tone, bald +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฒ man: medium-light skin tone, bald +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฒ man: medium skin tone, bald +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฒ man: medium-dark skin tone, bald +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฒ man: dark skin tone, bald +๐Ÿ‘ฉ woman +๐Ÿ‘ฉ๐Ÿป woman: light skin tone +๐Ÿ‘ฉ๐Ÿผ woman: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝ woman: medium skin tone +๐Ÿ‘ฉ๐Ÿพ woman: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟ woman: dark skin tone +๐Ÿ‘ฉโ€๐Ÿฆฐ woman: red hair +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฐ woman: light skin tone, red hair +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฐ woman: medium-light skin tone, red hair +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฐ woman: medium skin tone, red hair +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฐ woman: medium-dark skin tone, red hair +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฐ woman: dark skin tone, red hair +๐Ÿง‘โ€๐Ÿฆฐ person: red hair +๐Ÿง‘๐Ÿปโ€๐Ÿฆฐ person: light skin tone, red hair +๐Ÿง‘๐Ÿผโ€๐Ÿฆฐ person: medium-light skin tone, red hair +๐Ÿง‘๐Ÿฝโ€๐Ÿฆฐ person: medium skin tone, red hair +๐Ÿง‘๐Ÿพโ€๐Ÿฆฐ person: medium-dark skin tone, red hair +๐Ÿง‘๐Ÿฟโ€๐Ÿฆฐ person: dark skin tone, red hair +๐Ÿ‘ฉโ€๐Ÿฆฑ woman: curly hair +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฑ woman: light skin tone, curly hair +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฑ woman: medium-light skin tone, curly hair +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฑ woman: medium skin tone, curly hair +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฑ woman: medium-dark skin tone, curly hair +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฑ woman: dark skin tone, curly hair +๐Ÿง‘โ€๐Ÿฆฑ person: curly hair +๐Ÿง‘๐Ÿปโ€๐Ÿฆฑ person: light skin tone, curly hair +๐Ÿง‘๐Ÿผโ€๐Ÿฆฑ person: medium-light skin tone, curly hair +๐Ÿง‘๐Ÿฝโ€๐Ÿฆฑ person: medium skin tone, curly hair +๐Ÿง‘๐Ÿพโ€๐Ÿฆฑ person: medium-dark skin tone, curly hair +๐Ÿง‘๐Ÿฟโ€๐Ÿฆฑ person: dark skin tone, curly hair +๐Ÿ‘ฉโ€๐Ÿฆณ woman: white hair +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆณ woman: light skin tone, white hair +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆณ woman: medium-light skin tone, white hair +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆณ woman: medium skin tone, white hair +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆณ woman: medium-dark skin tone, white hair +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆณ woman: dark skin tone, white hair +๐Ÿง‘โ€๐Ÿฆณ person: white hair +๐Ÿง‘๐Ÿปโ€๐Ÿฆณ person: light skin tone, white hair +๐Ÿง‘๐Ÿผโ€๐Ÿฆณ person: medium-light skin tone, white hair +๐Ÿง‘๐Ÿฝโ€๐Ÿฆณ person: medium skin tone, white hair +๐Ÿง‘๐Ÿพโ€๐Ÿฆณ person: medium-dark skin tone, white hair +๐Ÿง‘๐Ÿฟโ€๐Ÿฆณ person: dark skin tone, white hair +๐Ÿ‘ฉโ€๐Ÿฆฒ woman: bald +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฒ woman: light skin tone, bald +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฒ woman: medium-light skin tone, bald +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฒ woman: medium skin tone, bald +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฒ woman: medium-dark skin tone, bald +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฒ woman: dark skin tone, bald +๐Ÿง‘โ€๐Ÿฆฒ person: bald +๐Ÿง‘๐Ÿปโ€๐Ÿฆฒ person: light skin tone, bald +๐Ÿง‘๐Ÿผโ€๐Ÿฆฒ person: medium-light skin tone, bald +๐Ÿง‘๐Ÿฝโ€๐Ÿฆฒ person: medium skin tone, bald +๐Ÿง‘๐Ÿพโ€๐Ÿฆฒ person: medium-dark skin tone, bald +๐Ÿง‘๐Ÿฟโ€๐Ÿฆฒ person: dark skin tone, bald +๐Ÿ‘ฑโ€โ™€๏ธ woman: blond hair +๐Ÿ‘ฑโ€โ™€ woman: blond hair +๐Ÿ‘ฑ๐Ÿปโ€โ™€๏ธ woman: light skin tone, blond hair +๐Ÿ‘ฑ๐Ÿปโ€โ™€ woman: light skin tone, blond hair +๐Ÿ‘ฑ๐Ÿผโ€โ™€๏ธ woman: medium-light skin tone, blond hair +๐Ÿ‘ฑ๐Ÿผโ€โ™€ woman: medium-light skin tone, blond hair +๐Ÿ‘ฑ๐Ÿฝโ€โ™€๏ธ woman: medium skin tone, blond hair +๐Ÿ‘ฑ๐Ÿฝโ€โ™€ woman: medium skin tone, blond hair +๐Ÿ‘ฑ๐Ÿพโ€โ™€๏ธ woman: medium-dark skin tone, blond hair +๐Ÿ‘ฑ๐Ÿพโ€โ™€ woman: medium-dark skin tone, blond hair +๐Ÿ‘ฑ๐Ÿฟโ€โ™€๏ธ woman: dark skin tone, blond hair +๐Ÿ‘ฑ๐Ÿฟโ€โ™€ woman: dark skin tone, blond hair +๐Ÿ‘ฑโ€โ™‚๏ธ man: blond hair +๐Ÿ‘ฑโ€โ™‚ man: blond hair +๐Ÿ‘ฑ๐Ÿปโ€โ™‚๏ธ man: light skin tone, blond hair +๐Ÿ‘ฑ๐Ÿปโ€โ™‚ man: light skin tone, blond hair +๐Ÿ‘ฑ๐Ÿผโ€โ™‚๏ธ man: medium-light skin tone, blond hair +๐Ÿ‘ฑ๐Ÿผโ€โ™‚ man: medium-light skin tone, blond hair +๐Ÿ‘ฑ๐Ÿฝโ€โ™‚๏ธ man: medium skin tone, blond hair +๐Ÿ‘ฑ๐Ÿฝโ€โ™‚ man: medium skin tone, blond hair +๐Ÿ‘ฑ๐Ÿพโ€โ™‚๏ธ man: medium-dark skin tone, blond hair +๐Ÿ‘ฑ๐Ÿพโ€โ™‚ man: medium-dark skin tone, blond hair +๐Ÿ‘ฑ๐Ÿฟโ€โ™‚๏ธ man: dark skin tone, blond hair +๐Ÿ‘ฑ๐Ÿฟโ€โ™‚ man: dark skin tone, blond hair +๐Ÿง“ older person +๐Ÿง“๐Ÿป older person: light skin tone +๐Ÿง“๐Ÿผ older person: medium-light skin tone +๐Ÿง“๐Ÿฝ older person: medium skin tone +๐Ÿง“๐Ÿพ older person: medium-dark skin tone +๐Ÿง“๐Ÿฟ older person: dark skin tone +๐Ÿ‘ด old man +๐Ÿ‘ด๐Ÿป old man: light skin tone +๐Ÿ‘ด๐Ÿผ old man: medium-light skin tone +๐Ÿ‘ด๐Ÿฝ old man: medium skin tone +๐Ÿ‘ด๐Ÿพ old man: medium-dark skin tone +๐Ÿ‘ด๐Ÿฟ old man: dark skin tone +๐Ÿ‘ต old woman +๐Ÿ‘ต๐Ÿป old woman: light skin tone +๐Ÿ‘ต๐Ÿผ old woman: medium-light skin tone +๐Ÿ‘ต๐Ÿฝ old woman: medium skin tone +๐Ÿ‘ต๐Ÿพ old woman: medium-dark skin tone +๐Ÿ‘ต๐Ÿฟ old woman: dark skin tone +๐Ÿ™ person frowning +๐Ÿ™๐Ÿป person frowning: light skin tone +๐Ÿ™๐Ÿผ person frowning: medium-light skin tone +๐Ÿ™๐Ÿฝ person frowning: medium skin tone +๐Ÿ™๐Ÿพ person frowning: medium-dark skin tone +๐Ÿ™๐Ÿฟ person frowning: dark skin tone +๐Ÿ™โ€โ™‚๏ธ man frowning +๐Ÿ™โ€โ™‚ man frowning +๐Ÿ™๐Ÿปโ€โ™‚๏ธ man frowning: light skin tone +๐Ÿ™๐Ÿปโ€โ™‚ man frowning: light skin tone +๐Ÿ™๐Ÿผโ€โ™‚๏ธ man frowning: medium-light skin tone +๐Ÿ™๐Ÿผโ€โ™‚ man frowning: medium-light skin tone +๐Ÿ™๐Ÿฝโ€โ™‚๏ธ man frowning: medium skin tone +๐Ÿ™๐Ÿฝโ€โ™‚ man frowning: medium skin tone +๐Ÿ™๐Ÿพโ€โ™‚๏ธ man frowning: medium-dark skin tone +๐Ÿ™๐Ÿพโ€โ™‚ man frowning: medium-dark skin tone +๐Ÿ™๐Ÿฟโ€โ™‚๏ธ man frowning: dark skin tone +๐Ÿ™๐Ÿฟโ€โ™‚ man frowning: dark skin tone +๐Ÿ™โ€โ™€๏ธ woman frowning +๐Ÿ™โ€โ™€ woman frowning +๐Ÿ™๐Ÿปโ€โ™€๏ธ woman frowning: light skin tone +๐Ÿ™๐Ÿปโ€โ™€ woman frowning: light skin tone +๐Ÿ™๐Ÿผโ€โ™€๏ธ woman frowning: medium-light skin tone +๐Ÿ™๐Ÿผโ€โ™€ woman frowning: medium-light skin tone +๐Ÿ™๐Ÿฝโ€โ™€๏ธ woman frowning: medium skin tone +๐Ÿ™๐Ÿฝโ€โ™€ woman frowning: medium skin tone +๐Ÿ™๐Ÿพโ€โ™€๏ธ woman frowning: medium-dark skin tone +๐Ÿ™๐Ÿพโ€โ™€ woman frowning: medium-dark skin tone +๐Ÿ™๐Ÿฟโ€โ™€๏ธ woman frowning: dark skin tone +๐Ÿ™๐Ÿฟโ€โ™€ woman frowning: dark skin tone +๐Ÿ™Ž person pouting +๐Ÿ™Ž๐Ÿป person pouting: light skin tone +๐Ÿ™Ž๐Ÿผ person pouting: medium-light skin tone +๐Ÿ™Ž๐Ÿฝ person pouting: medium skin tone +๐Ÿ™Ž๐Ÿพ person pouting: medium-dark skin tone +๐Ÿ™Ž๐Ÿฟ person pouting: dark skin tone +๐Ÿ™Žโ€โ™‚๏ธ man pouting +๐Ÿ™Žโ€โ™‚ man pouting +๐Ÿ™Ž๐Ÿปโ€โ™‚๏ธ man pouting: light skin tone +๐Ÿ™Ž๐Ÿปโ€โ™‚ man pouting: light skin tone +๐Ÿ™Ž๐Ÿผโ€โ™‚๏ธ man pouting: medium-light skin tone +๐Ÿ™Ž๐Ÿผโ€โ™‚ man pouting: medium-light skin tone +๐Ÿ™Ž๐Ÿฝโ€โ™‚๏ธ man pouting: medium skin tone +๐Ÿ™Ž๐Ÿฝโ€โ™‚ man pouting: medium skin tone +๐Ÿ™Ž๐Ÿพโ€โ™‚๏ธ man pouting: medium-dark skin tone +๐Ÿ™Ž๐Ÿพโ€โ™‚ man pouting: medium-dark skin tone +๐Ÿ™Ž๐Ÿฟโ€โ™‚๏ธ man pouting: dark skin tone +๐Ÿ™Ž๐Ÿฟโ€โ™‚ man pouting: dark skin tone +๐Ÿ™Žโ€โ™€๏ธ woman pouting +๐Ÿ™Žโ€โ™€ woman pouting +๐Ÿ™Ž๐Ÿปโ€โ™€๏ธ woman pouting: light skin tone +๐Ÿ™Ž๐Ÿปโ€โ™€ woman pouting: light skin tone +๐Ÿ™Ž๐Ÿผโ€โ™€๏ธ woman pouting: medium-light skin tone +๐Ÿ™Ž๐Ÿผโ€โ™€ woman pouting: medium-light skin tone +๐Ÿ™Ž๐Ÿฝโ€โ™€๏ธ woman pouting: medium skin tone +๐Ÿ™Ž๐Ÿฝโ€โ™€ woman pouting: medium skin tone +๐Ÿ™Ž๐Ÿพโ€โ™€๏ธ woman pouting: medium-dark skin tone +๐Ÿ™Ž๐Ÿพโ€โ™€ woman pouting: medium-dark skin tone +๐Ÿ™Ž๐Ÿฟโ€โ™€๏ธ woman pouting: dark skin tone +๐Ÿ™Ž๐Ÿฟโ€โ™€ woman pouting: dark skin tone +๐Ÿ™… person gesturing NO +๐Ÿ™…๐Ÿป person gesturing NO: light skin tone +๐Ÿ™…๐Ÿผ person gesturing NO: medium-light skin tone +๐Ÿ™…๐Ÿฝ person gesturing NO: medium skin tone +๐Ÿ™…๐Ÿพ person gesturing NO: medium-dark skin tone +๐Ÿ™…๐Ÿฟ person gesturing NO: dark skin tone +๐Ÿ™…โ€โ™‚๏ธ man gesturing NO +๐Ÿ™…โ€โ™‚ man gesturing NO +๐Ÿ™…๐Ÿปโ€โ™‚๏ธ man gesturing NO: light skin tone +๐Ÿ™…๐Ÿปโ€โ™‚ man gesturing NO: light skin tone +๐Ÿ™…๐Ÿผโ€โ™‚๏ธ man gesturing NO: medium-light skin tone +๐Ÿ™…๐Ÿผโ€โ™‚ man gesturing NO: medium-light skin tone +๐Ÿ™…๐Ÿฝโ€โ™‚๏ธ man gesturing NO: medium skin tone +๐Ÿ™…๐Ÿฝโ€โ™‚ man gesturing NO: medium skin tone +๐Ÿ™…๐Ÿพโ€โ™‚๏ธ man gesturing NO: medium-dark skin tone +๐Ÿ™…๐Ÿพโ€โ™‚ man gesturing NO: medium-dark skin tone +๐Ÿ™…๐Ÿฟโ€โ™‚๏ธ man gesturing NO: dark skin tone +๐Ÿ™…๐Ÿฟโ€โ™‚ man gesturing NO: dark skin tone +๐Ÿ™…โ€โ™€๏ธ woman gesturing NO +๐Ÿ™…โ€โ™€ woman gesturing NO +๐Ÿ™…๐Ÿปโ€โ™€๏ธ woman gesturing NO: light skin tone +๐Ÿ™…๐Ÿปโ€โ™€ woman gesturing NO: light skin tone +๐Ÿ™…๐Ÿผโ€โ™€๏ธ woman gesturing NO: medium-light skin tone +๐Ÿ™…๐Ÿผโ€โ™€ woman gesturing NO: medium-light skin tone +๐Ÿ™…๐Ÿฝโ€โ™€๏ธ woman gesturing NO: medium skin tone +๐Ÿ™…๐Ÿฝโ€โ™€ woman gesturing NO: medium skin tone +๐Ÿ™…๐Ÿพโ€โ™€๏ธ woman gesturing NO: medium-dark skin tone +๐Ÿ™…๐Ÿพโ€โ™€ woman gesturing NO: medium-dark skin tone +๐Ÿ™…๐Ÿฟโ€โ™€๏ธ woman gesturing NO: dark skin tone +๐Ÿ™…๐Ÿฟโ€โ™€ woman gesturing NO: dark skin tone +๐Ÿ™† person gesturing OK +๐Ÿ™†๐Ÿป person gesturing OK: light skin tone +๐Ÿ™†๐Ÿผ person gesturing OK: medium-light skin tone +๐Ÿ™†๐Ÿฝ person gesturing OK: medium skin tone +๐Ÿ™†๐Ÿพ person gesturing OK: medium-dark skin tone +๐Ÿ™†๐Ÿฟ person gesturing OK: dark skin tone +๐Ÿ™†โ€โ™‚๏ธ man gesturing OK +๐Ÿ™†โ€โ™‚ man gesturing OK +๐Ÿ™†๐Ÿปโ€โ™‚๏ธ man gesturing OK: light skin tone +๐Ÿ™†๐Ÿปโ€โ™‚ man gesturing OK: light skin tone +๐Ÿ™†๐Ÿผโ€โ™‚๏ธ man gesturing OK: medium-light skin tone +๐Ÿ™†๐Ÿผโ€โ™‚ man gesturing OK: medium-light skin tone +๐Ÿ™†๐Ÿฝโ€โ™‚๏ธ man gesturing OK: medium skin tone +๐Ÿ™†๐Ÿฝโ€โ™‚ man gesturing OK: medium skin tone +๐Ÿ™†๐Ÿพโ€โ™‚๏ธ man gesturing OK: medium-dark skin tone +๐Ÿ™†๐Ÿพโ€โ™‚ man gesturing OK: medium-dark skin tone +๐Ÿ™†๐Ÿฟโ€โ™‚๏ธ man gesturing OK: dark skin tone +๐Ÿ™†๐Ÿฟโ€โ™‚ man gesturing OK: dark skin tone +๐Ÿ™†โ€โ™€๏ธ woman gesturing OK +๐Ÿ™†โ€โ™€ woman gesturing OK +๐Ÿ™†๐Ÿปโ€โ™€๏ธ woman gesturing OK: light skin tone +๐Ÿ™†๐Ÿปโ€โ™€ woman gesturing OK: light skin tone +๐Ÿ™†๐Ÿผโ€โ™€๏ธ woman gesturing OK: medium-light skin tone +๐Ÿ™†๐Ÿผโ€โ™€ woman gesturing OK: medium-light skin tone +๐Ÿ™†๐Ÿฝโ€โ™€๏ธ woman gesturing OK: medium skin tone +๐Ÿ™†๐Ÿฝโ€โ™€ woman gesturing OK: medium skin tone +๐Ÿ™†๐Ÿพโ€โ™€๏ธ woman gesturing OK: medium-dark skin tone +๐Ÿ™†๐Ÿพโ€โ™€ woman gesturing OK: medium-dark skin tone +๐Ÿ™†๐Ÿฟโ€โ™€๏ธ woman gesturing OK: dark skin tone +๐Ÿ™†๐Ÿฟโ€โ™€ woman gesturing OK: dark skin tone +๐Ÿ’ person tipping hand +๐Ÿ’๐Ÿป person tipping hand: light skin tone +๐Ÿ’๐Ÿผ person tipping hand: medium-light skin tone +๐Ÿ’๐Ÿฝ person tipping hand: medium skin tone +๐Ÿ’๐Ÿพ person tipping hand: medium-dark skin tone +๐Ÿ’๐Ÿฟ person tipping hand: dark skin tone +๐Ÿ’โ€โ™‚๏ธ man tipping hand +๐Ÿ’โ€โ™‚ man tipping hand +๐Ÿ’๐Ÿปโ€โ™‚๏ธ man tipping hand: light skin tone +๐Ÿ’๐Ÿปโ€โ™‚ man tipping hand: light skin tone +๐Ÿ’๐Ÿผโ€โ™‚๏ธ man tipping hand: medium-light skin tone +๐Ÿ’๐Ÿผโ€โ™‚ man tipping hand: medium-light skin tone +๐Ÿ’๐Ÿฝโ€โ™‚๏ธ man tipping hand: medium skin tone +๐Ÿ’๐Ÿฝโ€โ™‚ man tipping hand: medium skin tone +๐Ÿ’๐Ÿพโ€โ™‚๏ธ man tipping hand: medium-dark skin tone +๐Ÿ’๐Ÿพโ€โ™‚ man tipping hand: medium-dark skin tone +๐Ÿ’๐Ÿฟโ€โ™‚๏ธ man tipping hand: dark skin tone +๐Ÿ’๐Ÿฟโ€โ™‚ man tipping hand: dark skin tone +๐Ÿ’โ€โ™€๏ธ woman tipping hand +๐Ÿ’โ€โ™€ woman tipping hand +๐Ÿ’๐Ÿปโ€โ™€๏ธ woman tipping hand: light skin tone +๐Ÿ’๐Ÿปโ€โ™€ woman tipping hand: light skin tone +๐Ÿ’๐Ÿผโ€โ™€๏ธ woman tipping hand: medium-light skin tone +๐Ÿ’๐Ÿผโ€โ™€ woman tipping hand: medium-light skin tone +๐Ÿ’๐Ÿฝโ€โ™€๏ธ woman tipping hand: medium skin tone +๐Ÿ’๐Ÿฝโ€โ™€ woman tipping hand: medium skin tone +๐Ÿ’๐Ÿพโ€โ™€๏ธ woman tipping hand: medium-dark skin tone +๐Ÿ’๐Ÿพโ€โ™€ woman tipping hand: medium-dark skin tone +๐Ÿ’๐Ÿฟโ€โ™€๏ธ woman tipping hand: dark skin tone +๐Ÿ’๐Ÿฟโ€โ™€ woman tipping hand: dark skin tone +๐Ÿ™‹ person raising hand +๐Ÿ™‹๐Ÿป person raising hand: light skin tone +๐Ÿ™‹๐Ÿผ person raising hand: medium-light skin tone +๐Ÿ™‹๐Ÿฝ person raising hand: medium skin tone +๐Ÿ™‹๐Ÿพ person raising hand: medium-dark skin tone +๐Ÿ™‹๐Ÿฟ person raising hand: dark skin tone +๐Ÿ™‹โ€โ™‚๏ธ man raising hand +๐Ÿ™‹โ€โ™‚ man raising hand +๐Ÿ™‹๐Ÿปโ€โ™‚๏ธ man raising hand: light skin tone +๐Ÿ™‹๐Ÿปโ€โ™‚ man raising hand: light skin tone +๐Ÿ™‹๐Ÿผโ€โ™‚๏ธ man raising hand: medium-light skin tone +๐Ÿ™‹๐Ÿผโ€โ™‚ man raising hand: medium-light skin tone +๐Ÿ™‹๐Ÿฝโ€โ™‚๏ธ man raising hand: medium skin tone +๐Ÿ™‹๐Ÿฝโ€โ™‚ man raising hand: medium skin tone +๐Ÿ™‹๐Ÿพโ€โ™‚๏ธ man raising hand: medium-dark skin tone +๐Ÿ™‹๐Ÿพโ€โ™‚ man raising hand: medium-dark skin tone +๐Ÿ™‹๐Ÿฟโ€โ™‚๏ธ man raising hand: dark skin tone +๐Ÿ™‹๐Ÿฟโ€โ™‚ man raising hand: dark skin tone +๐Ÿ™‹โ€โ™€๏ธ woman raising hand +๐Ÿ™‹โ€โ™€ woman raising hand +๐Ÿ™‹๐Ÿปโ€โ™€๏ธ woman raising hand: light skin tone +๐Ÿ™‹๐Ÿปโ€โ™€ woman raising hand: light skin tone +๐Ÿ™‹๐Ÿผโ€โ™€๏ธ woman raising hand: medium-light skin tone +๐Ÿ™‹๐Ÿผโ€โ™€ woman raising hand: medium-light skin tone +๐Ÿ™‹๐Ÿฝโ€โ™€๏ธ woman raising hand: medium skin tone +๐Ÿ™‹๐Ÿฝโ€โ™€ woman raising hand: medium skin tone +๐Ÿ™‹๐Ÿพโ€โ™€๏ธ woman raising hand: medium-dark skin tone +๐Ÿ™‹๐Ÿพโ€โ™€ woman raising hand: medium-dark skin tone +๐Ÿ™‹๐Ÿฟโ€โ™€๏ธ woman raising hand: dark skin tone +๐Ÿ™‹๐Ÿฟโ€โ™€ woman raising hand: dark skin tone +๐Ÿง deaf person +๐Ÿง๐Ÿป deaf person: light skin tone +๐Ÿง๐Ÿผ deaf person: medium-light skin tone +๐Ÿง๐Ÿฝ deaf person: medium skin tone +๐Ÿง๐Ÿพ deaf person: medium-dark skin tone +๐Ÿง๐Ÿฟ deaf person: dark skin tone +๐Ÿงโ€โ™‚๏ธ deaf man +๐Ÿงโ€โ™‚ deaf man +๐Ÿง๐Ÿปโ€โ™‚๏ธ deaf man: light skin tone +๐Ÿง๐Ÿปโ€โ™‚ deaf man: light skin tone +๐Ÿง๐Ÿผโ€โ™‚๏ธ deaf man: medium-light skin tone +๐Ÿง๐Ÿผโ€โ™‚ deaf man: medium-light skin tone +๐Ÿง๐Ÿฝโ€โ™‚๏ธ deaf man: medium skin tone +๐Ÿง๐Ÿฝโ€โ™‚ deaf man: medium skin tone +๐Ÿง๐Ÿพโ€โ™‚๏ธ deaf man: medium-dark skin tone +๐Ÿง๐Ÿพโ€โ™‚ deaf man: medium-dark skin tone +๐Ÿง๐Ÿฟโ€โ™‚๏ธ deaf man: dark skin tone +๐Ÿง๐Ÿฟโ€โ™‚ deaf man: dark skin tone +๐Ÿงโ€โ™€๏ธ deaf woman +๐Ÿงโ€โ™€ deaf woman +๐Ÿง๐Ÿปโ€โ™€๏ธ deaf woman: light skin tone +๐Ÿง๐Ÿปโ€โ™€ deaf woman: light skin tone +๐Ÿง๐Ÿผโ€โ™€๏ธ deaf woman: medium-light skin tone +๐Ÿง๐Ÿผโ€โ™€ deaf woman: medium-light skin tone +๐Ÿง๐Ÿฝโ€โ™€๏ธ deaf woman: medium skin tone +๐Ÿง๐Ÿฝโ€โ™€ deaf woman: medium skin tone +๐Ÿง๐Ÿพโ€โ™€๏ธ deaf woman: medium-dark skin tone +๐Ÿง๐Ÿพโ€โ™€ deaf woman: medium-dark skin tone +๐Ÿง๐Ÿฟโ€โ™€๏ธ deaf woman: dark skin tone +๐Ÿง๐Ÿฟโ€โ™€ deaf woman: dark skin tone +๐Ÿ™‡ person bowing +๐Ÿ™‡๐Ÿป person bowing: light skin tone +๐Ÿ™‡๐Ÿผ person bowing: medium-light skin tone +๐Ÿ™‡๐Ÿฝ person bowing: medium skin tone +๐Ÿ™‡๐Ÿพ person bowing: medium-dark skin tone +๐Ÿ™‡๐Ÿฟ person bowing: dark skin tone +๐Ÿ™‡โ€โ™‚๏ธ man bowing +๐Ÿ™‡โ€โ™‚ man bowing +๐Ÿ™‡๐Ÿปโ€โ™‚๏ธ man bowing: light skin tone +๐Ÿ™‡๐Ÿปโ€โ™‚ man bowing: light skin tone +๐Ÿ™‡๐Ÿผโ€โ™‚๏ธ man bowing: medium-light skin tone +๐Ÿ™‡๐Ÿผโ€โ™‚ man bowing: medium-light skin tone +๐Ÿ™‡๐Ÿฝโ€โ™‚๏ธ man bowing: medium skin tone +๐Ÿ™‡๐Ÿฝโ€โ™‚ man bowing: medium skin tone +๐Ÿ™‡๐Ÿพโ€โ™‚๏ธ man bowing: medium-dark skin tone +๐Ÿ™‡๐Ÿพโ€โ™‚ man bowing: medium-dark skin tone +๐Ÿ™‡๐Ÿฟโ€โ™‚๏ธ man bowing: dark skin tone +๐Ÿ™‡๐Ÿฟโ€โ™‚ man bowing: dark skin tone +๐Ÿ™‡โ€โ™€๏ธ woman bowing +๐Ÿ™‡โ€โ™€ woman bowing +๐Ÿ™‡๐Ÿปโ€โ™€๏ธ woman bowing: light skin tone +๐Ÿ™‡๐Ÿปโ€โ™€ woman bowing: light skin tone +๐Ÿ™‡๐Ÿผโ€โ™€๏ธ woman bowing: medium-light skin tone +๐Ÿ™‡๐Ÿผโ€โ™€ woman bowing: medium-light skin tone +๐Ÿ™‡๐Ÿฝโ€โ™€๏ธ woman bowing: medium skin tone +๐Ÿ™‡๐Ÿฝโ€โ™€ woman bowing: medium skin tone +๐Ÿ™‡๐Ÿพโ€โ™€๏ธ woman bowing: medium-dark skin tone +๐Ÿ™‡๐Ÿพโ€โ™€ woman bowing: medium-dark skin tone +๐Ÿ™‡๐Ÿฟโ€โ™€๏ธ woman bowing: dark skin tone +๐Ÿ™‡๐Ÿฟโ€โ™€ woman bowing: dark skin tone +๐Ÿคฆ person facepalming +๐Ÿคฆ๐Ÿป person facepalming: light skin tone +๐Ÿคฆ๐Ÿผ person facepalming: medium-light skin tone +๐Ÿคฆ๐Ÿฝ person facepalming: medium skin tone +๐Ÿคฆ๐Ÿพ person facepalming: medium-dark skin tone +๐Ÿคฆ๐Ÿฟ person facepalming: dark skin tone +๐Ÿคฆโ€โ™‚๏ธ man facepalming +๐Ÿคฆโ€โ™‚ man facepalming +๐Ÿคฆ๐Ÿปโ€โ™‚๏ธ man facepalming: light skin tone +๐Ÿคฆ๐Ÿปโ€โ™‚ man facepalming: light skin tone +๐Ÿคฆ๐Ÿผโ€โ™‚๏ธ man facepalming: medium-light skin tone +๐Ÿคฆ๐Ÿผโ€โ™‚ man facepalming: medium-light skin tone +๐Ÿคฆ๐Ÿฝโ€โ™‚๏ธ man facepalming: medium skin tone +๐Ÿคฆ๐Ÿฝโ€โ™‚ man facepalming: medium skin tone +๐Ÿคฆ๐Ÿพโ€โ™‚๏ธ man facepalming: medium-dark skin tone +๐Ÿคฆ๐Ÿพโ€โ™‚ man facepalming: medium-dark skin tone +๐Ÿคฆ๐Ÿฟโ€โ™‚๏ธ man facepalming: dark skin tone +๐Ÿคฆ๐Ÿฟโ€โ™‚ man facepalming: dark skin tone +๐Ÿคฆโ€โ™€๏ธ woman facepalming +๐Ÿคฆโ€โ™€ woman facepalming +๐Ÿคฆ๐Ÿปโ€โ™€๏ธ woman facepalming: light skin tone +๐Ÿคฆ๐Ÿปโ€โ™€ woman facepalming: light skin tone +๐Ÿคฆ๐Ÿผโ€โ™€๏ธ woman facepalming: medium-light skin tone +๐Ÿคฆ๐Ÿผโ€โ™€ woman facepalming: medium-light skin tone +๐Ÿคฆ๐Ÿฝโ€โ™€๏ธ woman facepalming: medium skin tone +๐Ÿคฆ๐Ÿฝโ€โ™€ woman facepalming: medium skin tone +๐Ÿคฆ๐Ÿพโ€โ™€๏ธ woman facepalming: medium-dark skin tone +๐Ÿคฆ๐Ÿพโ€โ™€ woman facepalming: medium-dark skin tone +๐Ÿคฆ๐Ÿฟโ€โ™€๏ธ woman facepalming: dark skin tone +๐Ÿคฆ๐Ÿฟโ€โ™€ woman facepalming: dark skin tone +๐Ÿคท person shrugging +๐Ÿคท๐Ÿป person shrugging: light skin tone +๐Ÿคท๐Ÿผ person shrugging: medium-light skin tone +๐Ÿคท๐Ÿฝ person shrugging: medium skin tone +๐Ÿคท๐Ÿพ person shrugging: medium-dark skin tone +๐Ÿคท๐Ÿฟ person shrugging: dark skin tone +๐Ÿคทโ€โ™‚๏ธ man shrugging +๐Ÿคทโ€โ™‚ man shrugging +๐Ÿคท๐Ÿปโ€โ™‚๏ธ man shrugging: light skin tone +๐Ÿคท๐Ÿปโ€โ™‚ man shrugging: light skin tone +๐Ÿคท๐Ÿผโ€โ™‚๏ธ man shrugging: medium-light skin tone +๐Ÿคท๐Ÿผโ€โ™‚ man shrugging: medium-light skin tone +๐Ÿคท๐Ÿฝโ€โ™‚๏ธ man shrugging: medium skin tone +๐Ÿคท๐Ÿฝโ€โ™‚ man shrugging: medium skin tone +๐Ÿคท๐Ÿพโ€โ™‚๏ธ man shrugging: medium-dark skin tone +๐Ÿคท๐Ÿพโ€โ™‚ man shrugging: medium-dark skin tone +๐Ÿคท๐Ÿฟโ€โ™‚๏ธ man shrugging: dark skin tone +๐Ÿคท๐Ÿฟโ€โ™‚ man shrugging: dark skin tone +๐Ÿคทโ€โ™€๏ธ woman shrugging +๐Ÿคทโ€โ™€ woman shrugging +๐Ÿคท๐Ÿปโ€โ™€๏ธ woman shrugging: light skin tone +๐Ÿคท๐Ÿปโ€โ™€ woman shrugging: light skin tone +๐Ÿคท๐Ÿผโ€โ™€๏ธ woman shrugging: medium-light skin tone +๐Ÿคท๐Ÿผโ€โ™€ woman shrugging: medium-light skin tone +๐Ÿคท๐Ÿฝโ€โ™€๏ธ woman shrugging: medium skin tone +๐Ÿคท๐Ÿฝโ€โ™€ woman shrugging: medium skin tone +๐Ÿคท๐Ÿพโ€โ™€๏ธ woman shrugging: medium-dark skin tone +๐Ÿคท๐Ÿพโ€โ™€ woman shrugging: medium-dark skin tone +๐Ÿคท๐Ÿฟโ€โ™€๏ธ woman shrugging: dark skin tone +๐Ÿคท๐Ÿฟโ€โ™€ woman shrugging: dark skin tone +๐Ÿง‘โ€โš•๏ธ health worker +๐Ÿง‘โ€โš• health worker +๐Ÿง‘๐Ÿปโ€โš•๏ธ health worker: light skin tone +๐Ÿง‘๐Ÿปโ€โš• health worker: light skin tone +๐Ÿง‘๐Ÿผโ€โš•๏ธ health worker: medium-light skin tone +๐Ÿง‘๐Ÿผโ€โš• health worker: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€โš•๏ธ health worker: medium skin tone +๐Ÿง‘๐Ÿฝโ€โš• health worker: medium skin tone +๐Ÿง‘๐Ÿพโ€โš•๏ธ health worker: medium-dark skin tone +๐Ÿง‘๐Ÿพโ€โš• health worker: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€โš•๏ธ health worker: dark skin tone +๐Ÿง‘๐Ÿฟโ€โš• health worker: dark skin tone +๐Ÿ‘จโ€โš•๏ธ man health worker +๐Ÿ‘จโ€โš• man health worker +๐Ÿ‘จ๐Ÿปโ€โš•๏ธ man health worker: light skin tone +๐Ÿ‘จ๐Ÿปโ€โš• man health worker: light skin tone +๐Ÿ‘จ๐Ÿผโ€โš•๏ธ man health worker: medium-light skin tone +๐Ÿ‘จ๐Ÿผโ€โš• man health worker: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€โš•๏ธ man health worker: medium skin tone +๐Ÿ‘จ๐Ÿฝโ€โš• man health worker: medium skin tone +๐Ÿ‘จ๐Ÿพโ€โš•๏ธ man health worker: medium-dark skin tone +๐Ÿ‘จ๐Ÿพโ€โš• man health worker: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โš•๏ธ man health worker: dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โš• man health worker: dark skin tone +๐Ÿ‘ฉโ€โš•๏ธ woman health worker +๐Ÿ‘ฉโ€โš• woman health worker +๐Ÿ‘ฉ๐Ÿปโ€โš•๏ธ woman health worker: light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โš• woman health worker: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โš•๏ธ woman health worker: medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โš• woman health worker: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โš•๏ธ woman health worker: medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โš• woman health worker: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€โš•๏ธ woman health worker: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โš• woman health worker: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โš•๏ธ woman health worker: dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โš• woman health worker: dark skin tone +๐Ÿง‘โ€๐ŸŽ“ student +๐Ÿง‘๐Ÿปโ€๐ŸŽ“ student: light skin tone +๐Ÿง‘๐Ÿผโ€๐ŸŽ“ student: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐ŸŽ“ student: medium skin tone +๐Ÿง‘๐Ÿพโ€๐ŸŽ“ student: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐ŸŽ“ student: dark skin tone +๐Ÿ‘จโ€๐ŸŽ“ man student +๐Ÿ‘จ๐Ÿปโ€๐ŸŽ“ man student: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐ŸŽ“ man student: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐ŸŽ“ man student: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐ŸŽ“ man student: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐ŸŽ“ man student: dark skin tone +๐Ÿ‘ฉโ€๐ŸŽ“ woman student +๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽ“ woman student: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽ“ woman student: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽ“ woman student: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽ“ woman student: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽ“ woman student: dark skin tone +๐Ÿง‘โ€๐Ÿซ teacher +๐Ÿง‘๐Ÿปโ€๐Ÿซ teacher: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿซ teacher: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿซ teacher: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿซ teacher: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿซ teacher: dark skin tone +๐Ÿ‘จโ€๐Ÿซ man teacher +๐Ÿ‘จ๐Ÿปโ€๐Ÿซ man teacher: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿซ man teacher: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿซ man teacher: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿซ man teacher: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿซ man teacher: dark skin tone +๐Ÿ‘ฉโ€๐Ÿซ woman teacher +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿซ woman teacher: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿซ woman teacher: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿซ woman teacher: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿซ woman teacher: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿซ woman teacher: dark skin tone +๐Ÿง‘โ€โš–๏ธ judge +๐Ÿง‘โ€โš– judge +๐Ÿง‘๐Ÿปโ€โš–๏ธ judge: light skin tone +๐Ÿง‘๐Ÿปโ€โš– judge: light skin tone +๐Ÿง‘๐Ÿผโ€โš–๏ธ judge: medium-light skin tone +๐Ÿง‘๐Ÿผโ€โš– judge: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€โš–๏ธ judge: medium skin tone +๐Ÿง‘๐Ÿฝโ€โš– judge: medium skin tone +๐Ÿง‘๐Ÿพโ€โš–๏ธ judge: medium-dark skin tone +๐Ÿง‘๐Ÿพโ€โš– judge: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€โš–๏ธ judge: dark skin tone +๐Ÿง‘๐Ÿฟโ€โš– judge: dark skin tone +๐Ÿ‘จโ€โš–๏ธ man judge +๐Ÿ‘จโ€โš– man judge +๐Ÿ‘จ๐Ÿปโ€โš–๏ธ man judge: light skin tone +๐Ÿ‘จ๐Ÿปโ€โš– man judge: light skin tone +๐Ÿ‘จ๐Ÿผโ€โš–๏ธ man judge: medium-light skin tone +๐Ÿ‘จ๐Ÿผโ€โš– man judge: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€โš–๏ธ man judge: medium skin tone +๐Ÿ‘จ๐Ÿฝโ€โš– man judge: medium skin tone +๐Ÿ‘จ๐Ÿพโ€โš–๏ธ man judge: medium-dark skin tone +๐Ÿ‘จ๐Ÿพโ€โš– man judge: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โš–๏ธ man judge: dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โš– man judge: dark skin tone +๐Ÿ‘ฉโ€โš–๏ธ woman judge +๐Ÿ‘ฉโ€โš– woman judge +๐Ÿ‘ฉ๐Ÿปโ€โš–๏ธ woman judge: light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โš– woman judge: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โš–๏ธ woman judge: medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โš– woman judge: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โš–๏ธ woman judge: medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โš– woman judge: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€โš–๏ธ woman judge: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โš– woman judge: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โš–๏ธ woman judge: dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โš– woman judge: dark skin tone +๐Ÿง‘โ€๐ŸŒพ farmer +๐Ÿง‘๐Ÿปโ€๐ŸŒพ farmer: light skin tone +๐Ÿง‘๐Ÿผโ€๐ŸŒพ farmer: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐ŸŒพ farmer: medium skin tone +๐Ÿง‘๐Ÿพโ€๐ŸŒพ farmer: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐ŸŒพ farmer: dark skin tone +๐Ÿ‘จโ€๐ŸŒพ man farmer +๐Ÿ‘จ๐Ÿปโ€๐ŸŒพ man farmer: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐ŸŒพ man farmer: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐ŸŒพ man farmer: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐ŸŒพ man farmer: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐ŸŒพ man farmer: dark skin tone +๐Ÿ‘ฉโ€๐ŸŒพ woman farmer +๐Ÿ‘ฉ๐Ÿปโ€๐ŸŒพ woman farmer: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐ŸŒพ woman farmer: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŒพ woman farmer: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐ŸŒพ woman farmer: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŒพ woman farmer: dark skin tone +๐Ÿง‘โ€๐Ÿณ cook +๐Ÿง‘๐Ÿปโ€๐Ÿณ cook: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿณ cook: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿณ cook: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿณ cook: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿณ cook: dark skin tone +๐Ÿ‘จโ€๐Ÿณ man cook +๐Ÿ‘จ๐Ÿปโ€๐Ÿณ man cook: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿณ man cook: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿณ man cook: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿณ man cook: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿณ man cook: dark skin tone +๐Ÿ‘ฉโ€๐Ÿณ woman cook +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿณ woman cook: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿณ woman cook: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿณ woman cook: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿณ woman cook: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿณ woman cook: dark skin tone +๐Ÿง‘โ€๐Ÿ”ง mechanic +๐Ÿง‘๐Ÿปโ€๐Ÿ”ง mechanic: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿ”ง mechanic: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿ”ง mechanic: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿ”ง mechanic: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿ”ง mechanic: dark skin tone +๐Ÿ‘จโ€๐Ÿ”ง man mechanic +๐Ÿ‘จ๐Ÿปโ€๐Ÿ”ง man mechanic: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿ”ง man mechanic: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿ”ง man mechanic: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿ”ง man mechanic: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿ”ง man mechanic: dark skin tone +๐Ÿ‘ฉโ€๐Ÿ”ง woman mechanic +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ”ง woman mechanic: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ”ง woman mechanic: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ”ง woman mechanic: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ”ง woman mechanic: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ”ง woman mechanic: dark skin tone +๐Ÿง‘โ€๐Ÿญ factory worker +๐Ÿง‘๐Ÿปโ€๐Ÿญ factory worker: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿญ factory worker: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿญ factory worker: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿญ factory worker: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿญ factory worker: dark skin tone +๐Ÿ‘จโ€๐Ÿญ man factory worker +๐Ÿ‘จ๐Ÿปโ€๐Ÿญ man factory worker: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿญ man factory worker: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿญ man factory worker: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿญ man factory worker: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿญ man factory worker: dark skin tone +๐Ÿ‘ฉโ€๐Ÿญ woman factory worker +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿญ woman factory worker: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿญ woman factory worker: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿญ woman factory worker: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿญ woman factory worker: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿญ woman factory worker: dark skin tone +๐Ÿง‘โ€๐Ÿ’ผ office worker +๐Ÿง‘๐Ÿปโ€๐Ÿ’ผ office worker: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿ’ผ office worker: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿ’ผ office worker: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿ’ผ office worker: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿ’ผ office worker: dark skin tone +๐Ÿ‘จโ€๐Ÿ’ผ man office worker +๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ผ man office worker: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ผ man office worker: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ผ man office worker: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿ’ผ man office worker: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ผ man office worker: dark skin tone +๐Ÿ‘ฉโ€๐Ÿ’ผ woman office worker +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ผ woman office worker: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ’ผ woman office worker: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ผ woman office worker: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ’ผ woman office worker: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ’ผ woman office worker: dark skin tone +๐Ÿง‘โ€๐Ÿ”ฌ scientist +๐Ÿง‘๐Ÿปโ€๐Ÿ”ฌ scientist: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿ”ฌ scientist: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿ”ฌ scientist: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿ”ฌ scientist: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿ”ฌ scientist: dark skin tone +๐Ÿ‘จโ€๐Ÿ”ฌ man scientist +๐Ÿ‘จ๐Ÿปโ€๐Ÿ”ฌ man scientist: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿ”ฌ man scientist: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿ”ฌ man scientist: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿ”ฌ man scientist: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿ”ฌ man scientist: dark skin tone +๐Ÿ‘ฉโ€๐Ÿ”ฌ woman scientist +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ”ฌ woman scientist: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ”ฌ woman scientist: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ”ฌ woman scientist: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ”ฌ woman scientist: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ”ฌ woman scientist: dark skin tone +๐Ÿง‘โ€๐Ÿ’ป technologist +๐Ÿง‘๐Ÿปโ€๐Ÿ’ป technologist: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿ’ป technologist: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿ’ป technologist: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿ’ป technologist: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿ’ป technologist: dark skin tone +๐Ÿ‘จโ€๐Ÿ’ป man technologist +๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป man technologist: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿ’ป man technologist: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿ’ป man technologist: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿ’ป man technologist: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿ’ป man technologist: dark skin tone +๐Ÿ‘ฉโ€๐Ÿ’ป woman technologist +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿ’ป woman technologist: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿ’ป woman technologist: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿ’ป woman technologist: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿ’ป woman technologist: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿ’ป woman technologist: dark skin tone +๐Ÿง‘โ€๐ŸŽค singer +๐Ÿง‘๐Ÿปโ€๐ŸŽค singer: light skin tone +๐Ÿง‘๐Ÿผโ€๐ŸŽค singer: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐ŸŽค singer: medium skin tone +๐Ÿง‘๐Ÿพโ€๐ŸŽค singer: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐ŸŽค singer: dark skin tone +๐Ÿ‘จโ€๐ŸŽค man singer +๐Ÿ‘จ๐Ÿปโ€๐ŸŽค man singer: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐ŸŽค man singer: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐ŸŽค man singer: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐ŸŽค man singer: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐ŸŽค man singer: dark skin tone +๐Ÿ‘ฉโ€๐ŸŽค woman singer +๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽค woman singer: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽค woman singer: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽค woman singer: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽค woman singer: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽค woman singer: dark skin tone +๐Ÿง‘โ€๐ŸŽจ artist +๐Ÿง‘๐Ÿปโ€๐ŸŽจ artist: light skin tone +๐Ÿง‘๐Ÿผโ€๐ŸŽจ artist: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐ŸŽจ artist: medium skin tone +๐Ÿง‘๐Ÿพโ€๐ŸŽจ artist: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐ŸŽจ artist: dark skin tone +๐Ÿ‘จโ€๐ŸŽจ man artist +๐Ÿ‘จ๐Ÿปโ€๐ŸŽจ man artist: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐ŸŽจ man artist: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐ŸŽจ man artist: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐ŸŽจ man artist: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐ŸŽจ man artist: dark skin tone +๐Ÿ‘ฉโ€๐ŸŽจ woman artist +๐Ÿ‘ฉ๐Ÿปโ€๐ŸŽจ woman artist: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐ŸŽจ woman artist: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐ŸŽจ woman artist: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐ŸŽจ woman artist: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐ŸŽจ woman artist: dark skin tone +๐Ÿง‘โ€โœˆ๏ธ pilot +๐Ÿง‘โ€โœˆ pilot +๐Ÿง‘๐Ÿปโ€โœˆ๏ธ pilot: light skin tone +๐Ÿง‘๐Ÿปโ€โœˆ pilot: light skin tone +๐Ÿง‘๐Ÿผโ€โœˆ๏ธ pilot: medium-light skin tone +๐Ÿง‘๐Ÿผโ€โœˆ pilot: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€โœˆ๏ธ pilot: medium skin tone +๐Ÿง‘๐Ÿฝโ€โœˆ pilot: medium skin tone +๐Ÿง‘๐Ÿพโ€โœˆ๏ธ pilot: medium-dark skin tone +๐Ÿง‘๐Ÿพโ€โœˆ pilot: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€โœˆ๏ธ pilot: dark skin tone +๐Ÿง‘๐Ÿฟโ€โœˆ pilot: dark skin tone +๐Ÿ‘จโ€โœˆ๏ธ man pilot +๐Ÿ‘จโ€โœˆ man pilot +๐Ÿ‘จ๐Ÿปโ€โœˆ๏ธ man pilot: light skin tone +๐Ÿ‘จ๐Ÿปโ€โœˆ man pilot: light skin tone +๐Ÿ‘จ๐Ÿผโ€โœˆ๏ธ man pilot: medium-light skin tone +๐Ÿ‘จ๐Ÿผโ€โœˆ man pilot: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€โœˆ๏ธ man pilot: medium skin tone +๐Ÿ‘จ๐Ÿฝโ€โœˆ man pilot: medium skin tone +๐Ÿ‘จ๐Ÿพโ€โœˆ๏ธ man pilot: medium-dark skin tone +๐Ÿ‘จ๐Ÿพโ€โœˆ man pilot: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โœˆ๏ธ man pilot: dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โœˆ man pilot: dark skin tone +๐Ÿ‘ฉโ€โœˆ๏ธ woman pilot +๐Ÿ‘ฉโ€โœˆ woman pilot +๐Ÿ‘ฉ๐Ÿปโ€โœˆ๏ธ woman pilot: light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โœˆ woman pilot: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โœˆ๏ธ woman pilot: medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โœˆ woman pilot: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โœˆ๏ธ woman pilot: medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โœˆ woman pilot: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€โœˆ๏ธ woman pilot: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โœˆ woman pilot: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โœˆ๏ธ woman pilot: dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โœˆ woman pilot: dark skin tone +๐Ÿง‘โ€๐Ÿš€ astronaut +๐Ÿง‘๐Ÿปโ€๐Ÿš€ astronaut: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿš€ astronaut: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿš€ astronaut: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿš€ astronaut: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿš€ astronaut: dark skin tone +๐Ÿ‘จโ€๐Ÿš€ man astronaut +๐Ÿ‘จ๐Ÿปโ€๐Ÿš€ man astronaut: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿš€ man astronaut: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿš€ man astronaut: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿš€ man astronaut: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿš€ man astronaut: dark skin tone +๐Ÿ‘ฉโ€๐Ÿš€ woman astronaut +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿš€ woman astronaut: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿš€ woman astronaut: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿš€ woman astronaut: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿš€ woman astronaut: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿš€ woman astronaut: dark skin tone +๐Ÿง‘โ€๐Ÿš’ firefighter +๐Ÿง‘๐Ÿปโ€๐Ÿš’ firefighter: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿš’ firefighter: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿš’ firefighter: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿš’ firefighter: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿš’ firefighter: dark skin tone +๐Ÿ‘จโ€๐Ÿš’ man firefighter +๐Ÿ‘จ๐Ÿปโ€๐Ÿš’ man firefighter: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿš’ man firefighter: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿš’ man firefighter: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿš’ man firefighter: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿš’ man firefighter: dark skin tone +๐Ÿ‘ฉโ€๐Ÿš’ woman firefighter +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿš’ woman firefighter: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿš’ woman firefighter: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿš’ woman firefighter: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿš’ woman firefighter: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿš’ woman firefighter: dark skin tone +๐Ÿ‘ฎ police officer +๐Ÿ‘ฎ๐Ÿป police officer: light skin tone +๐Ÿ‘ฎ๐Ÿผ police officer: medium-light skin tone +๐Ÿ‘ฎ๐Ÿฝ police officer: medium skin tone +๐Ÿ‘ฎ๐Ÿพ police officer: medium-dark skin tone +๐Ÿ‘ฎ๐Ÿฟ police officer: dark skin tone +๐Ÿ‘ฎโ€โ™‚๏ธ man police officer +๐Ÿ‘ฎโ€โ™‚ man police officer +๐Ÿ‘ฎ๐Ÿปโ€โ™‚๏ธ man police officer: light skin tone +๐Ÿ‘ฎ๐Ÿปโ€โ™‚ man police officer: light skin tone +๐Ÿ‘ฎ๐Ÿผโ€โ™‚๏ธ man police officer: medium-light skin tone +๐Ÿ‘ฎ๐Ÿผโ€โ™‚ man police officer: medium-light skin tone +๐Ÿ‘ฎ๐Ÿฝโ€โ™‚๏ธ man police officer: medium skin tone +๐Ÿ‘ฎ๐Ÿฝโ€โ™‚ man police officer: medium skin tone +๐Ÿ‘ฎ๐Ÿพโ€โ™‚๏ธ man police officer: medium-dark skin tone +๐Ÿ‘ฎ๐Ÿพโ€โ™‚ man police officer: medium-dark skin tone +๐Ÿ‘ฎ๐Ÿฟโ€โ™‚๏ธ man police officer: dark skin tone +๐Ÿ‘ฎ๐Ÿฟโ€โ™‚ man police officer: dark skin tone +๐Ÿ‘ฎโ€โ™€๏ธ woman police officer +๐Ÿ‘ฎโ€โ™€ woman police officer +๐Ÿ‘ฎ๐Ÿปโ€โ™€๏ธ woman police officer: light skin tone +๐Ÿ‘ฎ๐Ÿปโ€โ™€ woman police officer: light skin tone +๐Ÿ‘ฎ๐Ÿผโ€โ™€๏ธ woman police officer: medium-light skin tone +๐Ÿ‘ฎ๐Ÿผโ€โ™€ woman police officer: medium-light skin tone +๐Ÿ‘ฎ๐Ÿฝโ€โ™€๏ธ woman police officer: medium skin tone +๐Ÿ‘ฎ๐Ÿฝโ€โ™€ woman police officer: medium skin tone +๐Ÿ‘ฎ๐Ÿพโ€โ™€๏ธ woman police officer: medium-dark skin tone +๐Ÿ‘ฎ๐Ÿพโ€โ™€ woman police officer: medium-dark skin tone +๐Ÿ‘ฎ๐Ÿฟโ€โ™€๏ธ woman police officer: dark skin tone +๐Ÿ‘ฎ๐Ÿฟโ€โ™€ woman police officer: dark skin tone +๐Ÿ•ต๏ธ detective +๐Ÿ•ต detective +๐Ÿ•ต๐Ÿป detective: light skin tone +๐Ÿ•ต๐Ÿผ detective: medium-light skin tone +๐Ÿ•ต๐Ÿฝ detective: medium skin tone +๐Ÿ•ต๐Ÿพ detective: medium-dark skin tone +๐Ÿ•ต๐Ÿฟ detective: dark skin tone +๐Ÿ•ต๏ธโ€โ™‚๏ธ man detective +๐Ÿ•ตโ€โ™‚๏ธ man detective +๐Ÿ•ต๏ธโ€โ™‚ man detective +๐Ÿ•ตโ€โ™‚ man detective +๐Ÿ•ต๐Ÿปโ€โ™‚๏ธ man detective: light skin tone +๐Ÿ•ต๐Ÿปโ€โ™‚ man detective: light skin tone +๐Ÿ•ต๐Ÿผโ€โ™‚๏ธ man detective: medium-light skin tone +๐Ÿ•ต๐Ÿผโ€โ™‚ man detective: medium-light skin tone +๐Ÿ•ต๐Ÿฝโ€โ™‚๏ธ man detective: medium skin tone +๐Ÿ•ต๐Ÿฝโ€โ™‚ man detective: medium skin tone +๐Ÿ•ต๐Ÿพโ€โ™‚๏ธ man detective: medium-dark skin tone +๐Ÿ•ต๐Ÿพโ€โ™‚ man detective: medium-dark skin tone +๐Ÿ•ต๐Ÿฟโ€โ™‚๏ธ man detective: dark skin tone +๐Ÿ•ต๐Ÿฟโ€โ™‚ man detective: dark skin tone +๐Ÿ•ต๏ธโ€โ™€๏ธ woman detective +๐Ÿ•ตโ€โ™€๏ธ woman detective +๐Ÿ•ต๏ธโ€โ™€ woman detective +๐Ÿ•ตโ€โ™€ woman detective +๐Ÿ•ต๐Ÿปโ€โ™€๏ธ woman detective: light skin tone +๐Ÿ•ต๐Ÿปโ€โ™€ woman detective: light skin tone +๐Ÿ•ต๐Ÿผโ€โ™€๏ธ woman detective: medium-light skin tone +๐Ÿ•ต๐Ÿผโ€โ™€ woman detective: medium-light skin tone +๐Ÿ•ต๐Ÿฝโ€โ™€๏ธ woman detective: medium skin tone +๐Ÿ•ต๐Ÿฝโ€โ™€ woman detective: medium skin tone +๐Ÿ•ต๐Ÿพโ€โ™€๏ธ woman detective: medium-dark skin tone +๐Ÿ•ต๐Ÿพโ€โ™€ woman detective: medium-dark skin tone +๐Ÿ•ต๐Ÿฟโ€โ™€๏ธ woman detective: dark skin tone +๐Ÿ•ต๐Ÿฟโ€โ™€ woman detective: dark skin tone +๐Ÿ’‚ guard +๐Ÿ’‚๐Ÿป guard: light skin tone +๐Ÿ’‚๐Ÿผ guard: medium-light skin tone +๐Ÿ’‚๐Ÿฝ guard: medium skin tone +๐Ÿ’‚๐Ÿพ guard: medium-dark skin tone +๐Ÿ’‚๐Ÿฟ guard: dark skin tone +๐Ÿ’‚โ€โ™‚๏ธ man guard +๐Ÿ’‚โ€โ™‚ man guard +๐Ÿ’‚๐Ÿปโ€โ™‚๏ธ man guard: light skin tone +๐Ÿ’‚๐Ÿปโ€โ™‚ man guard: light skin tone +๐Ÿ’‚๐Ÿผโ€โ™‚๏ธ man guard: medium-light skin tone +๐Ÿ’‚๐Ÿผโ€โ™‚ man guard: medium-light skin tone +๐Ÿ’‚๐Ÿฝโ€โ™‚๏ธ man guard: medium skin tone +๐Ÿ’‚๐Ÿฝโ€โ™‚ man guard: medium skin tone +๐Ÿ’‚๐Ÿพโ€โ™‚๏ธ man guard: medium-dark skin tone +๐Ÿ’‚๐Ÿพโ€โ™‚ man guard: medium-dark skin tone +๐Ÿ’‚๐Ÿฟโ€โ™‚๏ธ man guard: dark skin tone +๐Ÿ’‚๐Ÿฟโ€โ™‚ man guard: dark skin tone +๐Ÿ’‚โ€โ™€๏ธ woman guard +๐Ÿ’‚โ€โ™€ woman guard +๐Ÿ’‚๐Ÿปโ€โ™€๏ธ woman guard: light skin tone +๐Ÿ’‚๐Ÿปโ€โ™€ woman guard: light skin tone +๐Ÿ’‚๐Ÿผโ€โ™€๏ธ woman guard: medium-light skin tone +๐Ÿ’‚๐Ÿผโ€โ™€ woman guard: medium-light skin tone +๐Ÿ’‚๐Ÿฝโ€โ™€๏ธ woman guard: medium skin tone +๐Ÿ’‚๐Ÿฝโ€โ™€ woman guard: medium skin tone +๐Ÿ’‚๐Ÿพโ€โ™€๏ธ woman guard: medium-dark skin tone +๐Ÿ’‚๐Ÿพโ€โ™€ woman guard: medium-dark skin tone +๐Ÿ’‚๐Ÿฟโ€โ™€๏ธ woman guard: dark skin tone +๐Ÿ’‚๐Ÿฟโ€โ™€ woman guard: dark skin tone +๐Ÿฅท ninja +๐Ÿฅท๐Ÿป ninja: light skin tone +๐Ÿฅท๐Ÿผ ninja: medium-light skin tone +๐Ÿฅท๐Ÿฝ ninja: medium skin tone +๐Ÿฅท๐Ÿพ ninja: medium-dark skin tone +๐Ÿฅท๐Ÿฟ ninja: dark skin tone +๐Ÿ‘ท construction worker +๐Ÿ‘ท๐Ÿป construction worker: light skin tone +๐Ÿ‘ท๐Ÿผ construction worker: medium-light skin tone +๐Ÿ‘ท๐Ÿฝ construction worker: medium skin tone +๐Ÿ‘ท๐Ÿพ construction worker: medium-dark skin tone +๐Ÿ‘ท๐Ÿฟ construction worker: dark skin tone +๐Ÿ‘ทโ€โ™‚๏ธ man construction worker +๐Ÿ‘ทโ€โ™‚ man construction worker +๐Ÿ‘ท๐Ÿปโ€โ™‚๏ธ man construction worker: light skin tone +๐Ÿ‘ท๐Ÿปโ€โ™‚ man construction worker: light skin tone +๐Ÿ‘ท๐Ÿผโ€โ™‚๏ธ man construction worker: medium-light skin tone +๐Ÿ‘ท๐Ÿผโ€โ™‚ man construction worker: medium-light skin tone +๐Ÿ‘ท๐Ÿฝโ€โ™‚๏ธ man construction worker: medium skin tone +๐Ÿ‘ท๐Ÿฝโ€โ™‚ man construction worker: medium skin tone +๐Ÿ‘ท๐Ÿพโ€โ™‚๏ธ man construction worker: medium-dark skin tone +๐Ÿ‘ท๐Ÿพโ€โ™‚ man construction worker: medium-dark skin tone +๐Ÿ‘ท๐Ÿฟโ€โ™‚๏ธ man construction worker: dark skin tone +๐Ÿ‘ท๐Ÿฟโ€โ™‚ man construction worker: dark skin tone +๐Ÿ‘ทโ€โ™€๏ธ woman construction worker +๐Ÿ‘ทโ€โ™€ woman construction worker +๐Ÿ‘ท๐Ÿปโ€โ™€๏ธ woman construction worker: light skin tone +๐Ÿ‘ท๐Ÿปโ€โ™€ woman construction worker: light skin tone +๐Ÿ‘ท๐Ÿผโ€โ™€๏ธ woman construction worker: medium-light skin tone +๐Ÿ‘ท๐Ÿผโ€โ™€ woman construction worker: medium-light skin tone +๐Ÿ‘ท๐Ÿฝโ€โ™€๏ธ woman construction worker: medium skin tone +๐Ÿ‘ท๐Ÿฝโ€โ™€ woman construction worker: medium skin tone +๐Ÿ‘ท๐Ÿพโ€โ™€๏ธ woman construction worker: medium-dark skin tone +๐Ÿ‘ท๐Ÿพโ€โ™€ woman construction worker: medium-dark skin tone +๐Ÿ‘ท๐Ÿฟโ€โ™€๏ธ woman construction worker: dark skin tone +๐Ÿ‘ท๐Ÿฟโ€โ™€ woman construction worker: dark skin tone +๐Ÿซ… person with crown +๐Ÿซ…๐Ÿป person with crown: light skin tone +๐Ÿซ…๐Ÿผ person with crown: medium-light skin tone +๐Ÿซ…๐Ÿฝ person with crown: medium skin tone +๐Ÿซ…๐Ÿพ person with crown: medium-dark skin tone +๐Ÿซ…๐Ÿฟ person with crown: dark skin tone +๐Ÿคด prince +๐Ÿคด๐Ÿป prince: light skin tone +๐Ÿคด๐Ÿผ prince: medium-light skin tone +๐Ÿคด๐Ÿฝ prince: medium skin tone +๐Ÿคด๐Ÿพ prince: medium-dark skin tone +๐Ÿคด๐Ÿฟ prince: dark skin tone +๐Ÿ‘ธ princess +๐Ÿ‘ธ๐Ÿป princess: light skin tone +๐Ÿ‘ธ๐Ÿผ princess: medium-light skin tone +๐Ÿ‘ธ๐Ÿฝ princess: medium skin tone +๐Ÿ‘ธ๐Ÿพ princess: medium-dark skin tone +๐Ÿ‘ธ๐Ÿฟ princess: dark skin tone +๐Ÿ‘ณ person wearing turban +๐Ÿ‘ณ๐Ÿป person wearing turban: light skin tone +๐Ÿ‘ณ๐Ÿผ person wearing turban: medium-light skin tone +๐Ÿ‘ณ๐Ÿฝ person wearing turban: medium skin tone +๐Ÿ‘ณ๐Ÿพ person wearing turban: medium-dark skin tone +๐Ÿ‘ณ๐Ÿฟ person wearing turban: dark skin tone +๐Ÿ‘ณโ€โ™‚๏ธ man wearing turban +๐Ÿ‘ณโ€โ™‚ man wearing turban +๐Ÿ‘ณ๐Ÿปโ€โ™‚๏ธ man wearing turban: light skin tone +๐Ÿ‘ณ๐Ÿปโ€โ™‚ man wearing turban: light skin tone +๐Ÿ‘ณ๐Ÿผโ€โ™‚๏ธ man wearing turban: medium-light skin tone +๐Ÿ‘ณ๐Ÿผโ€โ™‚ man wearing turban: medium-light skin tone +๐Ÿ‘ณ๐Ÿฝโ€โ™‚๏ธ man wearing turban: medium skin tone +๐Ÿ‘ณ๐Ÿฝโ€โ™‚ man wearing turban: medium skin tone +๐Ÿ‘ณ๐Ÿพโ€โ™‚๏ธ man wearing turban: medium-dark skin tone +๐Ÿ‘ณ๐Ÿพโ€โ™‚ man wearing turban: medium-dark skin tone +๐Ÿ‘ณ๐Ÿฟโ€โ™‚๏ธ man wearing turban: dark skin tone +๐Ÿ‘ณ๐Ÿฟโ€โ™‚ man wearing turban: dark skin tone +๐Ÿ‘ณโ€โ™€๏ธ woman wearing turban +๐Ÿ‘ณโ€โ™€ woman wearing turban +๐Ÿ‘ณ๐Ÿปโ€โ™€๏ธ woman wearing turban: light skin tone +๐Ÿ‘ณ๐Ÿปโ€โ™€ woman wearing turban: light skin tone +๐Ÿ‘ณ๐Ÿผโ€โ™€๏ธ woman wearing turban: medium-light skin tone +๐Ÿ‘ณ๐Ÿผโ€โ™€ woman wearing turban: medium-light skin tone +๐Ÿ‘ณ๐Ÿฝโ€โ™€๏ธ woman wearing turban: medium skin tone +๐Ÿ‘ณ๐Ÿฝโ€โ™€ woman wearing turban: medium skin tone +๐Ÿ‘ณ๐Ÿพโ€โ™€๏ธ woman wearing turban: medium-dark skin tone +๐Ÿ‘ณ๐Ÿพโ€โ™€ woman wearing turban: medium-dark skin tone +๐Ÿ‘ณ๐Ÿฟโ€โ™€๏ธ woman wearing turban: dark skin tone +๐Ÿ‘ณ๐Ÿฟโ€โ™€ woman wearing turban: dark skin tone +๐Ÿ‘ฒ person with skullcap +๐Ÿ‘ฒ๐Ÿป person with skullcap: light skin tone +๐Ÿ‘ฒ๐Ÿผ person with skullcap: medium-light skin tone +๐Ÿ‘ฒ๐Ÿฝ person with skullcap: medium skin tone +๐Ÿ‘ฒ๐Ÿพ person with skullcap: medium-dark skin tone +๐Ÿ‘ฒ๐Ÿฟ person with skullcap: dark skin tone +๐Ÿง• woman with headscarf +๐Ÿง•๐Ÿป woman with headscarf: light skin tone +๐Ÿง•๐Ÿผ woman with headscarf: medium-light skin tone +๐Ÿง•๐Ÿฝ woman with headscarf: medium skin tone +๐Ÿง•๐Ÿพ woman with headscarf: medium-dark skin tone +๐Ÿง•๐Ÿฟ woman with headscarf: dark skin tone +๐Ÿคต person in tuxedo +๐Ÿคต๐Ÿป person in tuxedo: light skin tone +๐Ÿคต๐Ÿผ person in tuxedo: medium-light skin tone +๐Ÿคต๐Ÿฝ person in tuxedo: medium skin tone +๐Ÿคต๐Ÿพ person in tuxedo: medium-dark skin tone +๐Ÿคต๐Ÿฟ person in tuxedo: dark skin tone +๐Ÿคตโ€โ™‚๏ธ man in tuxedo +๐Ÿคตโ€โ™‚ man in tuxedo +๐Ÿคต๐Ÿปโ€โ™‚๏ธ man in tuxedo: light skin tone +๐Ÿคต๐Ÿปโ€โ™‚ man in tuxedo: light skin tone +๐Ÿคต๐Ÿผโ€โ™‚๏ธ man in tuxedo: medium-light skin tone +๐Ÿคต๐Ÿผโ€โ™‚ man in tuxedo: medium-light skin tone +๐Ÿคต๐Ÿฝโ€โ™‚๏ธ man in tuxedo: medium skin tone +๐Ÿคต๐Ÿฝโ€โ™‚ man in tuxedo: medium skin tone +๐Ÿคต๐Ÿพโ€โ™‚๏ธ man in tuxedo: medium-dark skin tone +๐Ÿคต๐Ÿพโ€โ™‚ man in tuxedo: medium-dark skin tone +๐Ÿคต๐Ÿฟโ€โ™‚๏ธ man in tuxedo: dark skin tone +๐Ÿคต๐Ÿฟโ€โ™‚ man in tuxedo: dark skin tone +๐Ÿคตโ€โ™€๏ธ woman in tuxedo +๐Ÿคตโ€โ™€ woman in tuxedo +๐Ÿคต๐Ÿปโ€โ™€๏ธ woman in tuxedo: light skin tone +๐Ÿคต๐Ÿปโ€โ™€ woman in tuxedo: light skin tone +๐Ÿคต๐Ÿผโ€โ™€๏ธ woman in tuxedo: medium-light skin tone +๐Ÿคต๐Ÿผโ€โ™€ woman in tuxedo: medium-light skin tone +๐Ÿคต๐Ÿฝโ€โ™€๏ธ woman in tuxedo: medium skin tone +๐Ÿคต๐Ÿฝโ€โ™€ woman in tuxedo: medium skin tone +๐Ÿคต๐Ÿพโ€โ™€๏ธ woman in tuxedo: medium-dark skin tone +๐Ÿคต๐Ÿพโ€โ™€ woman in tuxedo: medium-dark skin tone +๐Ÿคต๐Ÿฟโ€โ™€๏ธ woman in tuxedo: dark skin tone +๐Ÿคต๐Ÿฟโ€โ™€ woman in tuxedo: dark skin tone +๐Ÿ‘ฐ person with veil +๐Ÿ‘ฐ๐Ÿป person with veil: light skin tone +๐Ÿ‘ฐ๐Ÿผ person with veil: medium-light skin tone +๐Ÿ‘ฐ๐Ÿฝ person with veil: medium skin tone +๐Ÿ‘ฐ๐Ÿพ person with veil: medium-dark skin tone +๐Ÿ‘ฐ๐Ÿฟ person with veil: dark skin tone +๐Ÿ‘ฐโ€โ™‚๏ธ man with veil +๐Ÿ‘ฐโ€โ™‚ man with veil +๐Ÿ‘ฐ๐Ÿปโ€โ™‚๏ธ man with veil: light skin tone +๐Ÿ‘ฐ๐Ÿปโ€โ™‚ man with veil: light skin tone +๐Ÿ‘ฐ๐Ÿผโ€โ™‚๏ธ man with veil: medium-light skin tone +๐Ÿ‘ฐ๐Ÿผโ€โ™‚ man with veil: medium-light skin tone +๐Ÿ‘ฐ๐Ÿฝโ€โ™‚๏ธ man with veil: medium skin tone +๐Ÿ‘ฐ๐Ÿฝโ€โ™‚ man with veil: medium skin tone +๐Ÿ‘ฐ๐Ÿพโ€โ™‚๏ธ man with veil: medium-dark skin tone +๐Ÿ‘ฐ๐Ÿพโ€โ™‚ man with veil: medium-dark skin tone +๐Ÿ‘ฐ๐Ÿฟโ€โ™‚๏ธ man with veil: dark skin tone +๐Ÿ‘ฐ๐Ÿฟโ€โ™‚ man with veil: dark skin tone +๐Ÿ‘ฐโ€โ™€๏ธ woman with veil +๐Ÿ‘ฐโ€โ™€ woman with veil +๐Ÿ‘ฐ๐Ÿปโ€โ™€๏ธ woman with veil: light skin tone +๐Ÿ‘ฐ๐Ÿปโ€โ™€ woman with veil: light skin tone +๐Ÿ‘ฐ๐Ÿผโ€โ™€๏ธ woman with veil: medium-light skin tone +๐Ÿ‘ฐ๐Ÿผโ€โ™€ woman with veil: medium-light skin tone +๐Ÿ‘ฐ๐Ÿฝโ€โ™€๏ธ woman with veil: medium skin tone +๐Ÿ‘ฐ๐Ÿฝโ€โ™€ woman with veil: medium skin tone +๐Ÿ‘ฐ๐Ÿพโ€โ™€๏ธ woman with veil: medium-dark skin tone +๐Ÿ‘ฐ๐Ÿพโ€โ™€ woman with veil: medium-dark skin tone +๐Ÿ‘ฐ๐Ÿฟโ€โ™€๏ธ woman with veil: dark skin tone +๐Ÿ‘ฐ๐Ÿฟโ€โ™€ woman with veil: dark skin tone +๐Ÿคฐ pregnant woman +๐Ÿคฐ๐Ÿป pregnant woman: light skin tone +๐Ÿคฐ๐Ÿผ pregnant woman: medium-light skin tone +๐Ÿคฐ๐Ÿฝ pregnant woman: medium skin tone +๐Ÿคฐ๐Ÿพ pregnant woman: medium-dark skin tone +๐Ÿคฐ๐Ÿฟ pregnant woman: dark skin tone +๐Ÿซƒ pregnant man +๐Ÿซƒ๐Ÿป pregnant man: light skin tone +๐Ÿซƒ๐Ÿผ pregnant man: medium-light skin tone +๐Ÿซƒ๐Ÿฝ pregnant man: medium skin tone +๐Ÿซƒ๐Ÿพ pregnant man: medium-dark skin tone +๐Ÿซƒ๐Ÿฟ pregnant man: dark skin tone +๐Ÿซ„ pregnant person +๐Ÿซ„๐Ÿป pregnant person: light skin tone +๐Ÿซ„๐Ÿผ pregnant person: medium-light skin tone +๐Ÿซ„๐Ÿฝ pregnant person: medium skin tone +๐Ÿซ„๐Ÿพ pregnant person: medium-dark skin tone +๐Ÿซ„๐Ÿฟ pregnant person: dark skin tone +๐Ÿคฑ breast-feeding +๐Ÿคฑ๐Ÿป breast-feeding: light skin tone +๐Ÿคฑ๐Ÿผ breast-feeding: medium-light skin tone +๐Ÿคฑ๐Ÿฝ breast-feeding: medium skin tone +๐Ÿคฑ๐Ÿพ breast-feeding: medium-dark skin tone +๐Ÿคฑ๐Ÿฟ breast-feeding: dark skin tone +๐Ÿ‘ฉโ€๐Ÿผ woman feeding baby +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿผ woman feeding baby: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿผ woman feeding baby: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿผ woman feeding baby: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿผ woman feeding baby: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿผ woman feeding baby: dark skin tone +๐Ÿ‘จโ€๐Ÿผ man feeding baby +๐Ÿ‘จ๐Ÿปโ€๐Ÿผ man feeding baby: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿผ man feeding baby: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿผ man feeding baby: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿผ man feeding baby: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿผ man feeding baby: dark skin tone +๐Ÿง‘โ€๐Ÿผ person feeding baby +๐Ÿง‘๐Ÿปโ€๐Ÿผ person feeding baby: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿผ person feeding baby: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿผ person feeding baby: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿผ person feeding baby: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿผ person feeding baby: dark skin tone +๐Ÿ‘ผ baby angel +๐Ÿ‘ผ๐Ÿป baby angel: light skin tone +๐Ÿ‘ผ๐Ÿผ baby angel: medium-light skin tone +๐Ÿ‘ผ๐Ÿฝ baby angel: medium skin tone +๐Ÿ‘ผ๐Ÿพ baby angel: medium-dark skin tone +๐Ÿ‘ผ๐Ÿฟ baby angel: dark skin tone +๐ŸŽ… Santa Claus +๐ŸŽ…๐Ÿป Santa Claus: light skin tone +๐ŸŽ…๐Ÿผ Santa Claus: medium-light skin tone +๐ŸŽ…๐Ÿฝ Santa Claus: medium skin tone +๐ŸŽ…๐Ÿพ Santa Claus: medium-dark skin tone +๐ŸŽ…๐Ÿฟ Santa Claus: dark skin tone +๐Ÿคถ Mrs. Claus +๐Ÿคถ๐Ÿป Mrs. Claus: light skin tone +๐Ÿคถ๐Ÿผ Mrs. Claus: medium-light skin tone +๐Ÿคถ๐Ÿฝ Mrs. Claus: medium skin tone +๐Ÿคถ๐Ÿพ Mrs. Claus: medium-dark skin tone +๐Ÿคถ๐Ÿฟ Mrs. Claus: dark skin tone +๐Ÿง‘โ€๐ŸŽ„ Mx Claus +๐Ÿง‘๐Ÿปโ€๐ŸŽ„ Mx Claus: light skin tone +๐Ÿง‘๐Ÿผโ€๐ŸŽ„ Mx Claus: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐ŸŽ„ Mx Claus: medium skin tone +๐Ÿง‘๐Ÿพโ€๐ŸŽ„ Mx Claus: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐ŸŽ„ Mx Claus: dark skin tone +๐Ÿฆธ superhero +๐Ÿฆธ๐Ÿป superhero: light skin tone +๐Ÿฆธ๐Ÿผ superhero: medium-light skin tone +๐Ÿฆธ๐Ÿฝ superhero: medium skin tone +๐Ÿฆธ๐Ÿพ superhero: medium-dark skin tone +๐Ÿฆธ๐Ÿฟ superhero: dark skin tone +๐Ÿฆธโ€โ™‚๏ธ man superhero +๐Ÿฆธโ€โ™‚ man superhero +๐Ÿฆธ๐Ÿปโ€โ™‚๏ธ man superhero: light skin tone +๐Ÿฆธ๐Ÿปโ€โ™‚ man superhero: light skin tone +๐Ÿฆธ๐Ÿผโ€โ™‚๏ธ man superhero: medium-light skin tone +๐Ÿฆธ๐Ÿผโ€โ™‚ man superhero: medium-light skin tone +๐Ÿฆธ๐Ÿฝโ€โ™‚๏ธ man superhero: medium skin tone +๐Ÿฆธ๐Ÿฝโ€โ™‚ man superhero: medium skin tone +๐Ÿฆธ๐Ÿพโ€โ™‚๏ธ man superhero: medium-dark skin tone +๐Ÿฆธ๐Ÿพโ€โ™‚ man superhero: medium-dark skin tone +๐Ÿฆธ๐Ÿฟโ€โ™‚๏ธ man superhero: dark skin tone +๐Ÿฆธ๐Ÿฟโ€โ™‚ man superhero: dark skin tone +๐Ÿฆธโ€โ™€๏ธ woman superhero +๐Ÿฆธโ€โ™€ woman superhero +๐Ÿฆธ๐Ÿปโ€โ™€๏ธ woman superhero: light skin tone +๐Ÿฆธ๐Ÿปโ€โ™€ woman superhero: light skin tone +๐Ÿฆธ๐Ÿผโ€โ™€๏ธ woman superhero: medium-light skin tone +๐Ÿฆธ๐Ÿผโ€โ™€ woman superhero: medium-light skin tone +๐Ÿฆธ๐Ÿฝโ€โ™€๏ธ woman superhero: medium skin tone +๐Ÿฆธ๐Ÿฝโ€โ™€ woman superhero: medium skin tone +๐Ÿฆธ๐Ÿพโ€โ™€๏ธ woman superhero: medium-dark skin tone +๐Ÿฆธ๐Ÿพโ€โ™€ woman superhero: medium-dark skin tone +๐Ÿฆธ๐Ÿฟโ€โ™€๏ธ woman superhero: dark skin tone +๐Ÿฆธ๐Ÿฟโ€โ™€ woman superhero: dark skin tone +๐Ÿฆน supervillain +๐Ÿฆน๐Ÿป supervillain: light skin tone +๐Ÿฆน๐Ÿผ supervillain: medium-light skin tone +๐Ÿฆน๐Ÿฝ supervillain: medium skin tone +๐Ÿฆน๐Ÿพ supervillain: medium-dark skin tone +๐Ÿฆน๐Ÿฟ supervillain: dark skin tone +๐Ÿฆนโ€โ™‚๏ธ man supervillain +๐Ÿฆนโ€โ™‚ man supervillain +๐Ÿฆน๐Ÿปโ€โ™‚๏ธ man supervillain: light skin tone +๐Ÿฆน๐Ÿปโ€โ™‚ man supervillain: light skin tone +๐Ÿฆน๐Ÿผโ€โ™‚๏ธ man supervillain: medium-light skin tone +๐Ÿฆน๐Ÿผโ€โ™‚ man supervillain: medium-light skin tone +๐Ÿฆน๐Ÿฝโ€โ™‚๏ธ man supervillain: medium skin tone +๐Ÿฆน๐Ÿฝโ€โ™‚ man supervillain: medium skin tone +๐Ÿฆน๐Ÿพโ€โ™‚๏ธ man supervillain: medium-dark skin tone +๐Ÿฆน๐Ÿพโ€โ™‚ man supervillain: medium-dark skin tone +๐Ÿฆน๐Ÿฟโ€โ™‚๏ธ man supervillain: dark skin tone +๐Ÿฆน๐Ÿฟโ€โ™‚ man supervillain: dark skin tone +๐Ÿฆนโ€โ™€๏ธ woman supervillain +๐Ÿฆนโ€โ™€ woman supervillain +๐Ÿฆน๐Ÿปโ€โ™€๏ธ woman supervillain: light skin tone +๐Ÿฆน๐Ÿปโ€โ™€ woman supervillain: light skin tone +๐Ÿฆน๐Ÿผโ€โ™€๏ธ woman supervillain: medium-light skin tone +๐Ÿฆน๐Ÿผโ€โ™€ woman supervillain: medium-light skin tone +๐Ÿฆน๐Ÿฝโ€โ™€๏ธ woman supervillain: medium skin tone +๐Ÿฆน๐Ÿฝโ€โ™€ woman supervillain: medium skin tone +๐Ÿฆน๐Ÿพโ€โ™€๏ธ woman supervillain: medium-dark skin tone +๐Ÿฆน๐Ÿพโ€โ™€ woman supervillain: medium-dark skin tone +๐Ÿฆน๐Ÿฟโ€โ™€๏ธ woman supervillain: dark skin tone +๐Ÿฆน๐Ÿฟโ€โ™€ woman supervillain: dark skin tone +๐Ÿง™ mage +๐Ÿง™๐Ÿป mage: light skin tone +๐Ÿง™๐Ÿผ mage: medium-light skin tone +๐Ÿง™๐Ÿฝ mage: medium skin tone +๐Ÿง™๐Ÿพ mage: medium-dark skin tone +๐Ÿง™๐Ÿฟ mage: dark skin tone +๐Ÿง™โ€โ™‚๏ธ man mage +๐Ÿง™โ€โ™‚ man mage +๐Ÿง™๐Ÿปโ€โ™‚๏ธ man mage: light skin tone +๐Ÿง™๐Ÿปโ€โ™‚ man mage: light skin tone +๐Ÿง™๐Ÿผโ€โ™‚๏ธ man mage: medium-light skin tone +๐Ÿง™๐Ÿผโ€โ™‚ man mage: medium-light skin tone +๐Ÿง™๐Ÿฝโ€โ™‚๏ธ man mage: medium skin tone +๐Ÿง™๐Ÿฝโ€โ™‚ man mage: medium skin tone +๐Ÿง™๐Ÿพโ€โ™‚๏ธ man mage: medium-dark skin tone +๐Ÿง™๐Ÿพโ€โ™‚ man mage: medium-dark skin tone +๐Ÿง™๐Ÿฟโ€โ™‚๏ธ man mage: dark skin tone +๐Ÿง™๐Ÿฟโ€โ™‚ man mage: dark skin tone +๐Ÿง™โ€โ™€๏ธ woman mage +๐Ÿง™โ€โ™€ woman mage +๐Ÿง™๐Ÿปโ€โ™€๏ธ woman mage: light skin tone +๐Ÿง™๐Ÿปโ€โ™€ woman mage: light skin tone +๐Ÿง™๐Ÿผโ€โ™€๏ธ woman mage: medium-light skin tone +๐Ÿง™๐Ÿผโ€โ™€ woman mage: medium-light skin tone +๐Ÿง™๐Ÿฝโ€โ™€๏ธ woman mage: medium skin tone +๐Ÿง™๐Ÿฝโ€โ™€ woman mage: medium skin tone +๐Ÿง™๐Ÿพโ€โ™€๏ธ woman mage: medium-dark skin tone +๐Ÿง™๐Ÿพโ€โ™€ woman mage: medium-dark skin tone +๐Ÿง™๐Ÿฟโ€โ™€๏ธ woman mage: dark skin tone +๐Ÿง™๐Ÿฟโ€โ™€ woman mage: dark skin tone +๐Ÿงš fairy +๐Ÿงš๐Ÿป fairy: light skin tone +๐Ÿงš๐Ÿผ fairy: medium-light skin tone +๐Ÿงš๐Ÿฝ fairy: medium skin tone +๐Ÿงš๐Ÿพ fairy: medium-dark skin tone +๐Ÿงš๐Ÿฟ fairy: dark skin tone +๐Ÿงšโ€โ™‚๏ธ man fairy +๐Ÿงšโ€โ™‚ man fairy +๐Ÿงš๐Ÿปโ€โ™‚๏ธ man fairy: light skin tone +๐Ÿงš๐Ÿปโ€โ™‚ man fairy: light skin tone +๐Ÿงš๐Ÿผโ€โ™‚๏ธ man fairy: medium-light skin tone +๐Ÿงš๐Ÿผโ€โ™‚ man fairy: medium-light skin tone +๐Ÿงš๐Ÿฝโ€โ™‚๏ธ man fairy: medium skin tone +๐Ÿงš๐Ÿฝโ€โ™‚ man fairy: medium skin tone +๐Ÿงš๐Ÿพโ€โ™‚๏ธ man fairy: medium-dark skin tone +๐Ÿงš๐Ÿพโ€โ™‚ man fairy: medium-dark skin tone +๐Ÿงš๐Ÿฟโ€โ™‚๏ธ man fairy: dark skin tone +๐Ÿงš๐Ÿฟโ€โ™‚ man fairy: dark skin tone +๐Ÿงšโ€โ™€๏ธ woman fairy +๐Ÿงšโ€โ™€ woman fairy +๐Ÿงš๐Ÿปโ€โ™€๏ธ woman fairy: light skin tone +๐Ÿงš๐Ÿปโ€โ™€ woman fairy: light skin tone +๐Ÿงš๐Ÿผโ€โ™€๏ธ woman fairy: medium-light skin tone +๐Ÿงš๐Ÿผโ€โ™€ woman fairy: medium-light skin tone +๐Ÿงš๐Ÿฝโ€โ™€๏ธ woman fairy: medium skin tone +๐Ÿงš๐Ÿฝโ€โ™€ woman fairy: medium skin tone +๐Ÿงš๐Ÿพโ€โ™€๏ธ woman fairy: medium-dark skin tone +๐Ÿงš๐Ÿพโ€โ™€ woman fairy: medium-dark skin tone +๐Ÿงš๐Ÿฟโ€โ™€๏ธ woman fairy: dark skin tone +๐Ÿงš๐Ÿฟโ€โ™€ woman fairy: dark skin tone +๐Ÿง› vampire +๐Ÿง›๐Ÿป vampire: light skin tone +๐Ÿง›๐Ÿผ vampire: medium-light skin tone +๐Ÿง›๐Ÿฝ vampire: medium skin tone +๐Ÿง›๐Ÿพ vampire: medium-dark skin tone +๐Ÿง›๐Ÿฟ vampire: dark skin tone +๐Ÿง›โ€โ™‚๏ธ man vampire +๐Ÿง›โ€โ™‚ man vampire +๐Ÿง›๐Ÿปโ€โ™‚๏ธ man vampire: light skin tone +๐Ÿง›๐Ÿปโ€โ™‚ man vampire: light skin tone +๐Ÿง›๐Ÿผโ€โ™‚๏ธ man vampire: medium-light skin tone +๐Ÿง›๐Ÿผโ€โ™‚ man vampire: medium-light skin tone +๐Ÿง›๐Ÿฝโ€โ™‚๏ธ man vampire: medium skin tone +๐Ÿง›๐Ÿฝโ€โ™‚ man vampire: medium skin tone +๐Ÿง›๐Ÿพโ€โ™‚๏ธ man vampire: medium-dark skin tone +๐Ÿง›๐Ÿพโ€โ™‚ man vampire: medium-dark skin tone +๐Ÿง›๐Ÿฟโ€โ™‚๏ธ man vampire: dark skin tone +๐Ÿง›๐Ÿฟโ€โ™‚ man vampire: dark skin tone +๐Ÿง›โ€โ™€๏ธ woman vampire +๐Ÿง›โ€โ™€ woman vampire +๐Ÿง›๐Ÿปโ€โ™€๏ธ woman vampire: light skin tone +๐Ÿง›๐Ÿปโ€โ™€ woman vampire: light skin tone +๐Ÿง›๐Ÿผโ€โ™€๏ธ woman vampire: medium-light skin tone +๐Ÿง›๐Ÿผโ€โ™€ woman vampire: medium-light skin tone +๐Ÿง›๐Ÿฝโ€โ™€๏ธ woman vampire: medium skin tone +๐Ÿง›๐Ÿฝโ€โ™€ woman vampire: medium skin tone +๐Ÿง›๐Ÿพโ€โ™€๏ธ woman vampire: medium-dark skin tone +๐Ÿง›๐Ÿพโ€โ™€ woman vampire: medium-dark skin tone +๐Ÿง›๐Ÿฟโ€โ™€๏ธ woman vampire: dark skin tone +๐Ÿง›๐Ÿฟโ€โ™€ woman vampire: dark skin tone +๐Ÿงœ merperson +๐Ÿงœ๐Ÿป merperson: light skin tone +๐Ÿงœ๐Ÿผ merperson: medium-light skin tone +๐Ÿงœ๐Ÿฝ merperson: medium skin tone +๐Ÿงœ๐Ÿพ merperson: medium-dark skin tone +๐Ÿงœ๐Ÿฟ merperson: dark skin tone +๐Ÿงœโ€โ™‚๏ธ merman +๐Ÿงœโ€โ™‚ merman +๐Ÿงœ๐Ÿปโ€โ™‚๏ธ merman: light skin tone +๐Ÿงœ๐Ÿปโ€โ™‚ merman: light skin tone +๐Ÿงœ๐Ÿผโ€โ™‚๏ธ merman: medium-light skin tone +๐Ÿงœ๐Ÿผโ€โ™‚ merman: medium-light skin tone +๐Ÿงœ๐Ÿฝโ€โ™‚๏ธ merman: medium skin tone +๐Ÿงœ๐Ÿฝโ€โ™‚ merman: medium skin tone +๐Ÿงœ๐Ÿพโ€โ™‚๏ธ merman: medium-dark skin tone +๐Ÿงœ๐Ÿพโ€โ™‚ merman: medium-dark skin tone +๐Ÿงœ๐Ÿฟโ€โ™‚๏ธ merman: dark skin tone +๐Ÿงœ๐Ÿฟโ€โ™‚ merman: dark skin tone +๐Ÿงœโ€โ™€๏ธ mermaid +๐Ÿงœโ€โ™€ mermaid +๐Ÿงœ๐Ÿปโ€โ™€๏ธ mermaid: light skin tone +๐Ÿงœ๐Ÿปโ€โ™€ mermaid: light skin tone +๐Ÿงœ๐Ÿผโ€โ™€๏ธ mermaid: medium-light skin tone +๐Ÿงœ๐Ÿผโ€โ™€ mermaid: medium-light skin tone +๐Ÿงœ๐Ÿฝโ€โ™€๏ธ mermaid: medium skin tone +๐Ÿงœ๐Ÿฝโ€โ™€ mermaid: medium skin tone +๐Ÿงœ๐Ÿพโ€โ™€๏ธ mermaid: medium-dark skin tone +๐Ÿงœ๐Ÿพโ€โ™€ mermaid: medium-dark skin tone +๐Ÿงœ๐Ÿฟโ€โ™€๏ธ mermaid: dark skin tone +๐Ÿงœ๐Ÿฟโ€โ™€ mermaid: dark skin tone +๐Ÿง elf +๐Ÿง๐Ÿป elf: light skin tone +๐Ÿง๐Ÿผ elf: medium-light skin tone +๐Ÿง๐Ÿฝ elf: medium skin tone +๐Ÿง๐Ÿพ elf: medium-dark skin tone +๐Ÿง๐Ÿฟ elf: dark skin tone +๐Ÿงโ€โ™‚๏ธ man elf +๐Ÿงโ€โ™‚ man elf +๐Ÿง๐Ÿปโ€โ™‚๏ธ man elf: light skin tone +๐Ÿง๐Ÿปโ€โ™‚ man elf: light skin tone +๐Ÿง๐Ÿผโ€โ™‚๏ธ man elf: medium-light skin tone +๐Ÿง๐Ÿผโ€โ™‚ man elf: medium-light skin tone +๐Ÿง๐Ÿฝโ€โ™‚๏ธ man elf: medium skin tone +๐Ÿง๐Ÿฝโ€โ™‚ man elf: medium skin tone +๐Ÿง๐Ÿพโ€โ™‚๏ธ man elf: medium-dark skin tone +๐Ÿง๐Ÿพโ€โ™‚ man elf: medium-dark skin tone +๐Ÿง๐Ÿฟโ€โ™‚๏ธ man elf: dark skin tone +๐Ÿง๐Ÿฟโ€โ™‚ man elf: dark skin tone +๐Ÿงโ€โ™€๏ธ woman elf +๐Ÿงโ€โ™€ woman elf +๐Ÿง๐Ÿปโ€โ™€๏ธ woman elf: light skin tone +๐Ÿง๐Ÿปโ€โ™€ woman elf: light skin tone +๐Ÿง๐Ÿผโ€โ™€๏ธ woman elf: medium-light skin tone +๐Ÿง๐Ÿผโ€โ™€ woman elf: medium-light skin tone +๐Ÿง๐Ÿฝโ€โ™€๏ธ woman elf: medium skin tone +๐Ÿง๐Ÿฝโ€โ™€ woman elf: medium skin tone +๐Ÿง๐Ÿพโ€โ™€๏ธ woman elf: medium-dark skin tone +๐Ÿง๐Ÿพโ€โ™€ woman elf: medium-dark skin tone +๐Ÿง๐Ÿฟโ€โ™€๏ธ woman elf: dark skin tone +๐Ÿง๐Ÿฟโ€โ™€ woman elf: dark skin tone +๐Ÿงž genie +๐Ÿงžโ€โ™‚๏ธ man genie +๐Ÿงžโ€โ™‚ man genie +๐Ÿงžโ€โ™€๏ธ woman genie +๐Ÿงžโ€โ™€ woman genie +๐ŸงŸ zombie +๐ŸงŸโ€โ™‚๏ธ man zombie +๐ŸงŸโ€โ™‚ man zombie +๐ŸงŸโ€โ™€๏ธ woman zombie +๐ŸงŸโ€โ™€ woman zombie +๐ŸงŒ troll +๐Ÿ’† person getting massage +๐Ÿ’†๐Ÿป person getting massage: light skin tone +๐Ÿ’†๐Ÿผ person getting massage: medium-light skin tone +๐Ÿ’†๐Ÿฝ person getting massage: medium skin tone +๐Ÿ’†๐Ÿพ person getting massage: medium-dark skin tone +๐Ÿ’†๐Ÿฟ person getting massage: dark skin tone +๐Ÿ’†โ€โ™‚๏ธ man getting massage +๐Ÿ’†โ€โ™‚ man getting massage +๐Ÿ’†๐Ÿปโ€โ™‚๏ธ man getting massage: light skin tone +๐Ÿ’†๐Ÿปโ€โ™‚ man getting massage: light skin tone +๐Ÿ’†๐Ÿผโ€โ™‚๏ธ man getting massage: medium-light skin tone +๐Ÿ’†๐Ÿผโ€โ™‚ man getting massage: medium-light skin tone +๐Ÿ’†๐Ÿฝโ€โ™‚๏ธ man getting massage: medium skin tone +๐Ÿ’†๐Ÿฝโ€โ™‚ man getting massage: medium skin tone +๐Ÿ’†๐Ÿพโ€โ™‚๏ธ man getting massage: medium-dark skin tone +๐Ÿ’†๐Ÿพโ€โ™‚ man getting massage: medium-dark skin tone +๐Ÿ’†๐Ÿฟโ€โ™‚๏ธ man getting massage: dark skin tone +๐Ÿ’†๐Ÿฟโ€โ™‚ man getting massage: dark skin tone +๐Ÿ’†โ€โ™€๏ธ woman getting massage +๐Ÿ’†โ€โ™€ woman getting massage +๐Ÿ’†๐Ÿปโ€โ™€๏ธ woman getting massage: light skin tone +๐Ÿ’†๐Ÿปโ€โ™€ woman getting massage: light skin tone +๐Ÿ’†๐Ÿผโ€โ™€๏ธ woman getting massage: medium-light skin tone +๐Ÿ’†๐Ÿผโ€โ™€ woman getting massage: medium-light skin tone +๐Ÿ’†๐Ÿฝโ€โ™€๏ธ woman getting massage: medium skin tone +๐Ÿ’†๐Ÿฝโ€โ™€ woman getting massage: medium skin tone +๐Ÿ’†๐Ÿพโ€โ™€๏ธ woman getting massage: medium-dark skin tone +๐Ÿ’†๐Ÿพโ€โ™€ woman getting massage: medium-dark skin tone +๐Ÿ’†๐Ÿฟโ€โ™€๏ธ woman getting massage: dark skin tone +๐Ÿ’†๐Ÿฟโ€โ™€ woman getting massage: dark skin tone +๐Ÿ’‡ person getting haircut +๐Ÿ’‡๐Ÿป person getting haircut: light skin tone +๐Ÿ’‡๐Ÿผ person getting haircut: medium-light skin tone +๐Ÿ’‡๐Ÿฝ person getting haircut: medium skin tone +๐Ÿ’‡๐Ÿพ person getting haircut: medium-dark skin tone +๐Ÿ’‡๐Ÿฟ person getting haircut: dark skin tone +๐Ÿ’‡โ€โ™‚๏ธ man getting haircut +๐Ÿ’‡โ€โ™‚ man getting haircut +๐Ÿ’‡๐Ÿปโ€โ™‚๏ธ man getting haircut: light skin tone +๐Ÿ’‡๐Ÿปโ€โ™‚ man getting haircut: light skin tone +๐Ÿ’‡๐Ÿผโ€โ™‚๏ธ man getting haircut: medium-light skin tone +๐Ÿ’‡๐Ÿผโ€โ™‚ man getting haircut: medium-light skin tone +๐Ÿ’‡๐Ÿฝโ€โ™‚๏ธ man getting haircut: medium skin tone +๐Ÿ’‡๐Ÿฝโ€โ™‚ man getting haircut: medium skin tone +๐Ÿ’‡๐Ÿพโ€โ™‚๏ธ man getting haircut: medium-dark skin tone +๐Ÿ’‡๐Ÿพโ€โ™‚ man getting haircut: medium-dark skin tone +๐Ÿ’‡๐Ÿฟโ€โ™‚๏ธ man getting haircut: dark skin tone +๐Ÿ’‡๐Ÿฟโ€โ™‚ man getting haircut: dark skin tone +๐Ÿ’‡โ€โ™€๏ธ woman getting haircut +๐Ÿ’‡โ€โ™€ woman getting haircut +๐Ÿ’‡๐Ÿปโ€โ™€๏ธ woman getting haircut: light skin tone +๐Ÿ’‡๐Ÿปโ€โ™€ woman getting haircut: light skin tone +๐Ÿ’‡๐Ÿผโ€โ™€๏ธ woman getting haircut: medium-light skin tone +๐Ÿ’‡๐Ÿผโ€โ™€ woman getting haircut: medium-light skin tone +๐Ÿ’‡๐Ÿฝโ€โ™€๏ธ woman getting haircut: medium skin tone +๐Ÿ’‡๐Ÿฝโ€โ™€ woman getting haircut: medium skin tone +๐Ÿ’‡๐Ÿพโ€โ™€๏ธ woman getting haircut: medium-dark skin tone +๐Ÿ’‡๐Ÿพโ€โ™€ woman getting haircut: medium-dark skin tone +๐Ÿ’‡๐Ÿฟโ€โ™€๏ธ woman getting haircut: dark skin tone +๐Ÿ’‡๐Ÿฟโ€โ™€ woman getting haircut: dark skin tone +๐Ÿšถ person walking +๐Ÿšถ๐Ÿป person walking: light skin tone +๐Ÿšถ๐Ÿผ person walking: medium-light skin tone +๐Ÿšถ๐Ÿฝ person walking: medium skin tone +๐Ÿšถ๐Ÿพ person walking: medium-dark skin tone +๐Ÿšถ๐Ÿฟ person walking: dark skin tone +๐Ÿšถโ€โ™‚๏ธ man walking +๐Ÿšถโ€โ™‚ man walking +๐Ÿšถ๐Ÿปโ€โ™‚๏ธ man walking: light skin tone +๐Ÿšถ๐Ÿปโ€โ™‚ man walking: light skin tone +๐Ÿšถ๐Ÿผโ€โ™‚๏ธ man walking: medium-light skin tone +๐Ÿšถ๐Ÿผโ€โ™‚ man walking: medium-light skin tone +๐Ÿšถ๐Ÿฝโ€โ™‚๏ธ man walking: medium skin tone +๐Ÿšถ๐Ÿฝโ€โ™‚ man walking: medium skin tone +๐Ÿšถ๐Ÿพโ€โ™‚๏ธ man walking: medium-dark skin tone +๐Ÿšถ๐Ÿพโ€โ™‚ man walking: medium-dark skin tone +๐Ÿšถ๐Ÿฟโ€โ™‚๏ธ man walking: dark skin tone +๐Ÿšถ๐Ÿฟโ€โ™‚ man walking: dark skin tone +๐Ÿšถโ€โ™€๏ธ woman walking +๐Ÿšถโ€โ™€ woman walking +๐Ÿšถ๐Ÿปโ€โ™€๏ธ woman walking: light skin tone +๐Ÿšถ๐Ÿปโ€โ™€ woman walking: light skin tone +๐Ÿšถ๐Ÿผโ€โ™€๏ธ woman walking: medium-light skin tone +๐Ÿšถ๐Ÿผโ€โ™€ woman walking: medium-light skin tone +๐Ÿšถ๐Ÿฝโ€โ™€๏ธ woman walking: medium skin tone +๐Ÿšถ๐Ÿฝโ€โ™€ woman walking: medium skin tone +๐Ÿšถ๐Ÿพโ€โ™€๏ธ woman walking: medium-dark skin tone +๐Ÿšถ๐Ÿพโ€โ™€ woman walking: medium-dark skin tone +๐Ÿšถ๐Ÿฟโ€โ™€๏ธ woman walking: dark skin tone +๐Ÿšถ๐Ÿฟโ€โ™€ woman walking: dark skin tone +๐Ÿšถโ€โžก๏ธ person walking facing right +๐Ÿšถโ€โžก person walking facing right +๐Ÿšถ๐Ÿปโ€โžก๏ธ person walking facing right: light skin tone +๐Ÿšถ๐Ÿปโ€โžก person walking facing right: light skin tone +๐Ÿšถ๐Ÿผโ€โžก๏ธ person walking facing right: medium-light skin tone +๐Ÿšถ๐Ÿผโ€โžก person walking facing right: medium-light skin tone +๐Ÿšถ๐Ÿฝโ€โžก๏ธ person walking facing right: medium skin tone +๐Ÿšถ๐Ÿฝโ€โžก person walking facing right: medium skin tone +๐Ÿšถ๐Ÿพโ€โžก๏ธ person walking facing right: medium-dark skin tone +๐Ÿšถ๐Ÿพโ€โžก person walking facing right: medium-dark skin tone +๐Ÿšถ๐Ÿฟโ€โžก๏ธ person walking facing right: dark skin tone +๐Ÿšถ๐Ÿฟโ€โžก person walking facing right: dark skin tone +๐Ÿšถโ€โ™€๏ธโ€โžก๏ธ woman walking facing right +๐Ÿšถโ€โ™€โ€โžก๏ธ woman walking facing right +๐Ÿšถโ€โ™€๏ธโ€โžก woman walking facing right +๐Ÿšถโ€โ™€โ€โžก woman walking facing right +๐Ÿšถ๐Ÿปโ€โ™€๏ธโ€โžก๏ธ woman walking facing right: light skin tone +๐Ÿšถ๐Ÿปโ€โ™€โ€โžก๏ธ woman walking facing right: light skin tone +๐Ÿšถ๐Ÿปโ€โ™€๏ธโ€โžก woman walking facing right: light skin tone +๐Ÿšถ๐Ÿปโ€โ™€โ€โžก woman walking facing right: light skin tone +๐Ÿšถ๐Ÿผโ€โ™€๏ธโ€โžก๏ธ woman walking facing right: medium-light skin tone +๐Ÿšถ๐Ÿผโ€โ™€โ€โžก๏ธ woman walking facing right: medium-light skin tone +๐Ÿšถ๐Ÿผโ€โ™€๏ธโ€โžก woman walking facing right: medium-light skin tone +๐Ÿšถ๐Ÿผโ€โ™€โ€โžก woman walking facing right: medium-light skin tone +๐Ÿšถ๐Ÿฝโ€โ™€๏ธโ€โžก๏ธ woman walking facing right: medium skin tone +๐Ÿšถ๐Ÿฝโ€โ™€โ€โžก๏ธ woman walking facing right: medium skin tone +๐Ÿšถ๐Ÿฝโ€โ™€๏ธโ€โžก woman walking facing right: medium skin tone +๐Ÿšถ๐Ÿฝโ€โ™€โ€โžก woman walking facing right: medium skin tone +๐Ÿšถ๐Ÿพโ€โ™€๏ธโ€โžก๏ธ woman walking facing right: medium-dark skin tone +๐Ÿšถ๐Ÿพโ€โ™€โ€โžก๏ธ woman walking facing right: medium-dark skin tone +๐Ÿšถ๐Ÿพโ€โ™€๏ธโ€โžก woman walking facing right: medium-dark skin tone +๐Ÿšถ๐Ÿพโ€โ™€โ€โžก woman walking facing right: medium-dark skin tone +๐Ÿšถ๐Ÿฟโ€โ™€๏ธโ€โžก๏ธ woman walking facing right: dark skin tone +๐Ÿšถ๐Ÿฟโ€โ™€โ€โžก๏ธ woman walking facing right: dark skin tone +๐Ÿšถ๐Ÿฟโ€โ™€๏ธโ€โžก woman walking facing right: dark skin tone +๐Ÿšถ๐Ÿฟโ€โ™€โ€โžก woman walking facing right: dark skin tone +๐Ÿšถโ€โ™‚๏ธโ€โžก๏ธ man walking facing right +๐Ÿšถโ€โ™‚โ€โžก๏ธ man walking facing right +๐Ÿšถโ€โ™‚๏ธโ€โžก man walking facing right +๐Ÿšถโ€โ™‚โ€โžก man walking facing right +๐Ÿšถ๐Ÿปโ€โ™‚๏ธโ€โžก๏ธ man walking facing right: light skin tone +๐Ÿšถ๐Ÿปโ€โ™‚โ€โžก๏ธ man walking facing right: light skin tone +๐Ÿšถ๐Ÿปโ€โ™‚๏ธโ€โžก man walking facing right: light skin tone +๐Ÿšถ๐Ÿปโ€โ™‚โ€โžก man walking facing right: light skin tone +๐Ÿšถ๐Ÿผโ€โ™‚๏ธโ€โžก๏ธ man walking facing right: medium-light skin tone +๐Ÿšถ๐Ÿผโ€โ™‚โ€โžก๏ธ man walking facing right: medium-light skin tone +๐Ÿšถ๐Ÿผโ€โ™‚๏ธโ€โžก man walking facing right: medium-light skin tone +๐Ÿšถ๐Ÿผโ€โ™‚โ€โžก man walking facing right: medium-light skin tone +๐Ÿšถ๐Ÿฝโ€โ™‚๏ธโ€โžก๏ธ man walking facing right: medium skin tone +๐Ÿšถ๐Ÿฝโ€โ™‚โ€โžก๏ธ man walking facing right: medium skin tone +๐Ÿšถ๐Ÿฝโ€โ™‚๏ธโ€โžก man walking facing right: medium skin tone +๐Ÿšถ๐Ÿฝโ€โ™‚โ€โžก man walking facing right: medium skin tone +๐Ÿšถ๐Ÿพโ€โ™‚๏ธโ€โžก๏ธ man walking facing right: medium-dark skin tone +๐Ÿšถ๐Ÿพโ€โ™‚โ€โžก๏ธ man walking facing right: medium-dark skin tone +๐Ÿšถ๐Ÿพโ€โ™‚๏ธโ€โžก man walking facing right: medium-dark skin tone +๐Ÿšถ๐Ÿพโ€โ™‚โ€โžก man walking facing right: medium-dark skin tone +๐Ÿšถ๐Ÿฟโ€โ™‚๏ธโ€โžก๏ธ man walking facing right: dark skin tone +๐Ÿšถ๐Ÿฟโ€โ™‚โ€โžก๏ธ man walking facing right: dark skin tone +๐Ÿšถ๐Ÿฟโ€โ™‚๏ธโ€โžก man walking facing right: dark skin tone +๐Ÿšถ๐Ÿฟโ€โ™‚โ€โžก man walking facing right: dark skin tone +๐Ÿง person standing +๐Ÿง๐Ÿป person standing: light skin tone +๐Ÿง๐Ÿผ person standing: medium-light skin tone +๐Ÿง๐Ÿฝ person standing: medium skin tone +๐Ÿง๐Ÿพ person standing: medium-dark skin tone +๐Ÿง๐Ÿฟ person standing: dark skin tone +๐Ÿงโ€โ™‚๏ธ man standing +๐Ÿงโ€โ™‚ man standing +๐Ÿง๐Ÿปโ€โ™‚๏ธ man standing: light skin tone +๐Ÿง๐Ÿปโ€โ™‚ man standing: light skin tone +๐Ÿง๐Ÿผโ€โ™‚๏ธ man standing: medium-light skin tone +๐Ÿง๐Ÿผโ€โ™‚ man standing: medium-light skin tone +๐Ÿง๐Ÿฝโ€โ™‚๏ธ man standing: medium skin tone +๐Ÿง๐Ÿฝโ€โ™‚ man standing: medium skin tone +๐Ÿง๐Ÿพโ€โ™‚๏ธ man standing: medium-dark skin tone +๐Ÿง๐Ÿพโ€โ™‚ man standing: medium-dark skin tone +๐Ÿง๐Ÿฟโ€โ™‚๏ธ man standing: dark skin tone +๐Ÿง๐Ÿฟโ€โ™‚ man standing: dark skin tone +๐Ÿงโ€โ™€๏ธ woman standing +๐Ÿงโ€โ™€ woman standing +๐Ÿง๐Ÿปโ€โ™€๏ธ woman standing: light skin tone +๐Ÿง๐Ÿปโ€โ™€ woman standing: light skin tone +๐Ÿง๐Ÿผโ€โ™€๏ธ woman standing: medium-light skin tone +๐Ÿง๐Ÿผโ€โ™€ woman standing: medium-light skin tone +๐Ÿง๐Ÿฝโ€โ™€๏ธ woman standing: medium skin tone +๐Ÿง๐Ÿฝโ€โ™€ woman standing: medium skin tone +๐Ÿง๐Ÿพโ€โ™€๏ธ woman standing: medium-dark skin tone +๐Ÿง๐Ÿพโ€โ™€ woman standing: medium-dark skin tone +๐Ÿง๐Ÿฟโ€โ™€๏ธ woman standing: dark skin tone +๐Ÿง๐Ÿฟโ€โ™€ woman standing: dark skin tone +๐ŸงŽ person kneeling +๐ŸงŽ๐Ÿป person kneeling: light skin tone +๐ŸงŽ๐Ÿผ person kneeling: medium-light skin tone +๐ŸงŽ๐Ÿฝ person kneeling: medium skin tone +๐ŸงŽ๐Ÿพ person kneeling: medium-dark skin tone +๐ŸงŽ๐Ÿฟ person kneeling: dark skin tone +๐ŸงŽโ€โ™‚๏ธ man kneeling +๐ŸงŽโ€โ™‚ man kneeling +๐ŸงŽ๐Ÿปโ€โ™‚๏ธ man kneeling: light skin tone +๐ŸงŽ๐Ÿปโ€โ™‚ man kneeling: light skin tone +๐ŸงŽ๐Ÿผโ€โ™‚๏ธ man kneeling: medium-light skin tone +๐ŸงŽ๐Ÿผโ€โ™‚ man kneeling: medium-light skin tone +๐ŸงŽ๐Ÿฝโ€โ™‚๏ธ man kneeling: medium skin tone +๐ŸงŽ๐Ÿฝโ€โ™‚ man kneeling: medium skin tone +๐ŸงŽ๐Ÿพโ€โ™‚๏ธ man kneeling: medium-dark skin tone +๐ŸงŽ๐Ÿพโ€โ™‚ man kneeling: medium-dark skin tone +๐ŸงŽ๐Ÿฟโ€โ™‚๏ธ man kneeling: dark skin tone +๐ŸงŽ๐Ÿฟโ€โ™‚ man kneeling: dark skin tone +๐ŸงŽโ€โ™€๏ธ woman kneeling +๐ŸงŽโ€โ™€ woman kneeling +๐ŸงŽ๐Ÿปโ€โ™€๏ธ woman kneeling: light skin tone +๐ŸงŽ๐Ÿปโ€โ™€ woman kneeling: light skin tone +๐ŸงŽ๐Ÿผโ€โ™€๏ธ woman kneeling: medium-light skin tone +๐ŸงŽ๐Ÿผโ€โ™€ woman kneeling: medium-light skin tone +๐ŸงŽ๐Ÿฝโ€โ™€๏ธ woman kneeling: medium skin tone +๐ŸงŽ๐Ÿฝโ€โ™€ woman kneeling: medium skin tone +๐ŸงŽ๐Ÿพโ€โ™€๏ธ woman kneeling: medium-dark skin tone +๐ŸงŽ๐Ÿพโ€โ™€ woman kneeling: medium-dark skin tone +๐ŸงŽ๐Ÿฟโ€โ™€๏ธ woman kneeling: dark skin tone +๐ŸงŽ๐Ÿฟโ€โ™€ woman kneeling: dark skin tone +๐ŸงŽโ€โžก๏ธ person kneeling facing right +๐ŸงŽโ€โžก person kneeling facing right +๐ŸงŽ๐Ÿปโ€โžก๏ธ person kneeling facing right: light skin tone +๐ŸงŽ๐Ÿปโ€โžก person kneeling facing right: light skin tone +๐ŸงŽ๐Ÿผโ€โžก๏ธ person kneeling facing right: medium-light skin tone +๐ŸงŽ๐Ÿผโ€โžก person kneeling facing right: medium-light skin tone +๐ŸงŽ๐Ÿฝโ€โžก๏ธ person kneeling facing right: medium skin tone +๐ŸงŽ๐Ÿฝโ€โžก person kneeling facing right: medium skin tone +๐ŸงŽ๐Ÿพโ€โžก๏ธ person kneeling facing right: medium-dark skin tone +๐ŸงŽ๐Ÿพโ€โžก person kneeling facing right: medium-dark skin tone +๐ŸงŽ๐Ÿฟโ€โžก๏ธ person kneeling facing right: dark skin tone +๐ŸงŽ๐Ÿฟโ€โžก person kneeling facing right: dark skin tone +๐ŸงŽโ€โ™€๏ธโ€โžก๏ธ woman kneeling facing right +๐ŸงŽโ€โ™€โ€โžก๏ธ woman kneeling facing right +๐ŸงŽโ€โ™€๏ธโ€โžก woman kneeling facing right +๐ŸงŽโ€โ™€โ€โžก woman kneeling facing right +๐ŸงŽ๐Ÿปโ€โ™€๏ธโ€โžก๏ธ woman kneeling facing right: light skin tone +๐ŸงŽ๐Ÿปโ€โ™€โ€โžก๏ธ woman kneeling facing right: light skin tone +๐ŸงŽ๐Ÿปโ€โ™€๏ธโ€โžก woman kneeling facing right: light skin tone +๐ŸงŽ๐Ÿปโ€โ™€โ€โžก woman kneeling facing right: light skin tone +๐ŸงŽ๐Ÿผโ€โ™€๏ธโ€โžก๏ธ woman kneeling facing right: medium-light skin tone +๐ŸงŽ๐Ÿผโ€โ™€โ€โžก๏ธ woman kneeling facing right: medium-light skin tone +๐ŸงŽ๐Ÿผโ€โ™€๏ธโ€โžก woman kneeling facing right: medium-light skin tone +๐ŸงŽ๐Ÿผโ€โ™€โ€โžก woman kneeling facing right: medium-light skin tone +๐ŸงŽ๐Ÿฝโ€โ™€๏ธโ€โžก๏ธ woman kneeling facing right: medium skin tone +๐ŸงŽ๐Ÿฝโ€โ™€โ€โžก๏ธ woman kneeling facing right: medium skin tone +๐ŸงŽ๐Ÿฝโ€โ™€๏ธโ€โžก woman kneeling facing right: medium skin tone +๐ŸงŽ๐Ÿฝโ€โ™€โ€โžก woman kneeling facing right: medium skin tone +๐ŸงŽ๐Ÿพโ€โ™€๏ธโ€โžก๏ธ woman kneeling facing right: medium-dark skin tone +๐ŸงŽ๐Ÿพโ€โ™€โ€โžก๏ธ woman kneeling facing right: medium-dark skin tone +๐ŸงŽ๐Ÿพโ€โ™€๏ธโ€โžก woman kneeling facing right: medium-dark skin tone +๐ŸงŽ๐Ÿพโ€โ™€โ€โžก woman kneeling facing right: medium-dark skin tone +๐ŸงŽ๐Ÿฟโ€โ™€๏ธโ€โžก๏ธ woman kneeling facing right: dark skin tone +๐ŸงŽ๐Ÿฟโ€โ™€โ€โžก๏ธ woman kneeling facing right: dark skin tone +๐ŸงŽ๐Ÿฟโ€โ™€๏ธโ€โžก woman kneeling facing right: dark skin tone +๐ŸงŽ๐Ÿฟโ€โ™€โ€โžก woman kneeling facing right: dark skin tone +๐ŸงŽโ€โ™‚๏ธโ€โžก๏ธ man kneeling facing right +๐ŸงŽโ€โ™‚โ€โžก๏ธ man kneeling facing right +๐ŸงŽโ€โ™‚๏ธโ€โžก man kneeling facing right +๐ŸงŽโ€โ™‚โ€โžก man kneeling facing right +๐ŸงŽ๐Ÿปโ€โ™‚๏ธโ€โžก๏ธ man kneeling facing right: light skin tone +๐ŸงŽ๐Ÿปโ€โ™‚โ€โžก๏ธ man kneeling facing right: light skin tone +๐ŸงŽ๐Ÿปโ€โ™‚๏ธโ€โžก man kneeling facing right: light skin tone +๐ŸงŽ๐Ÿปโ€โ™‚โ€โžก man kneeling facing right: light skin tone +๐ŸงŽ๐Ÿผโ€โ™‚๏ธโ€โžก๏ธ man kneeling facing right: medium-light skin tone +๐ŸงŽ๐Ÿผโ€โ™‚โ€โžก๏ธ man kneeling facing right: medium-light skin tone +๐ŸงŽ๐Ÿผโ€โ™‚๏ธโ€โžก man kneeling facing right: medium-light skin tone +๐ŸงŽ๐Ÿผโ€โ™‚โ€โžก man kneeling facing right: medium-light skin tone +๐ŸงŽ๐Ÿฝโ€โ™‚๏ธโ€โžก๏ธ man kneeling facing right: medium skin tone +๐ŸงŽ๐Ÿฝโ€โ™‚โ€โžก๏ธ man kneeling facing right: medium skin tone +๐ŸงŽ๐Ÿฝโ€โ™‚๏ธโ€โžก man kneeling facing right: medium skin tone +๐ŸงŽ๐Ÿฝโ€โ™‚โ€โžก man kneeling facing right: medium skin tone +๐ŸงŽ๐Ÿพโ€โ™‚๏ธโ€โžก๏ธ man kneeling facing right: medium-dark skin tone +๐ŸงŽ๐Ÿพโ€โ™‚โ€โžก๏ธ man kneeling facing right: medium-dark skin tone +๐ŸงŽ๐Ÿพโ€โ™‚๏ธโ€โžก man kneeling facing right: medium-dark skin tone +๐ŸงŽ๐Ÿพโ€โ™‚โ€โžก man kneeling facing right: medium-dark skin tone +๐ŸงŽ๐Ÿฟโ€โ™‚๏ธโ€โžก๏ธ man kneeling facing right: dark skin tone +๐ŸงŽ๐Ÿฟโ€โ™‚โ€โžก๏ธ man kneeling facing right: dark skin tone +๐ŸงŽ๐Ÿฟโ€โ™‚๏ธโ€โžก man kneeling facing right: dark skin tone +๐ŸงŽ๐Ÿฟโ€โ™‚โ€โžก man kneeling facing right: dark skin tone +๐Ÿง‘โ€๐Ÿฆฏ person with white cane +๐Ÿง‘๐Ÿปโ€๐Ÿฆฏ person with white cane: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿฆฏ person with white cane: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿฆฏ person with white cane: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿฆฏ person with white cane: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿฆฏ person with white cane: dark skin tone +๐Ÿง‘โ€๐Ÿฆฏโ€โžก๏ธ person with white cane facing right +๐Ÿง‘โ€๐Ÿฆฏโ€โžก person with white cane facing right +๐Ÿง‘๐Ÿปโ€๐Ÿฆฏโ€โžก๏ธ person with white cane facing right: light skin tone +๐Ÿง‘๐Ÿปโ€๐Ÿฆฏโ€โžก person with white cane facing right: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿฆฏโ€โžก๏ธ person with white cane facing right: medium-light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿฆฏโ€โžก person with white cane facing right: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿฆฏโ€โžก๏ธ person with white cane facing right: medium skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿฆฏโ€โžก person with white cane facing right: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿฆฏโ€โžก๏ธ person with white cane facing right: medium-dark skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿฆฏโ€โžก person with white cane facing right: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿฆฏโ€โžก๏ธ person with white cane facing right: dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿฆฏโ€โžก person with white cane facing right: dark skin tone +๐Ÿ‘จโ€๐Ÿฆฏ man with white cane +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฏ man with white cane: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฏ man with white cane: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฏ man with white cane: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฏ man with white cane: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฏ man with white cane: dark skin tone +๐Ÿ‘จโ€๐Ÿฆฏโ€โžก๏ธ man with white cane facing right +๐Ÿ‘จโ€๐Ÿฆฏโ€โžก man with white cane facing right +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฏโ€โžก๏ธ man with white cane facing right: light skin tone +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฏโ€โžก man with white cane facing right: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฏโ€โžก๏ธ man with white cane facing right: medium-light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฏโ€โžก man with white cane facing right: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฏโ€โžก๏ธ man with white cane facing right: medium skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฏโ€โžก man with white cane facing right: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฏโ€โžก๏ธ man with white cane facing right: medium-dark skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฏโ€โžก man with white cane facing right: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฏโ€โžก๏ธ man with white cane facing right: dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฏโ€โžก man with white cane facing right: dark skin tone +๐Ÿ‘ฉโ€๐Ÿฆฏ woman with white cane +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฏ woman with white cane: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฏ woman with white cane: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฏ woman with white cane: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฏ woman with white cane: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฏ woman with white cane: dark skin tone +๐Ÿ‘ฉโ€๐Ÿฆฏโ€โžก๏ธ woman with white cane facing right +๐Ÿ‘ฉโ€๐Ÿฆฏโ€โžก woman with white cane facing right +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฏโ€โžก๏ธ woman with white cane facing right: light skin tone +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฏโ€โžก woman with white cane facing right: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฏโ€โžก๏ธ woman with white cane facing right: medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฏโ€โžก woman with white cane facing right: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฏโ€โžก๏ธ woman with white cane facing right: medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฏโ€โžก woman with white cane facing right: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฏโ€โžก๏ธ woman with white cane facing right: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฏโ€โžก woman with white cane facing right: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฏโ€โžก๏ธ woman with white cane facing right: dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฏโ€โžก woman with white cane facing right: dark skin tone +๐Ÿง‘โ€๐Ÿฆผ person in motorized wheelchair +๐Ÿง‘๐Ÿปโ€๐Ÿฆผ person in motorized wheelchair: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿฆผ person in motorized wheelchair: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿฆผ person in motorized wheelchair: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿฆผ person in motorized wheelchair: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿฆผ person in motorized wheelchair: dark skin tone +๐Ÿง‘โ€๐Ÿฆผโ€โžก๏ธ person in motorized wheelchair facing right +๐Ÿง‘โ€๐Ÿฆผโ€โžก person in motorized wheelchair facing right +๐Ÿง‘๐Ÿปโ€๐Ÿฆผโ€โžก๏ธ person in motorized wheelchair facing right: light skin tone +๐Ÿง‘๐Ÿปโ€๐Ÿฆผโ€โžก person in motorized wheelchair facing right: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿฆผโ€โžก๏ธ person in motorized wheelchair facing right: medium-light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿฆผโ€โžก person in motorized wheelchair facing right: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿฆผโ€โžก๏ธ person in motorized wheelchair facing right: medium skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿฆผโ€โžก person in motorized wheelchair facing right: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿฆผโ€โžก๏ธ person in motorized wheelchair facing right: medium-dark skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿฆผโ€โžก person in motorized wheelchair facing right: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿฆผโ€โžก๏ธ person in motorized wheelchair facing right: dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿฆผโ€โžก person in motorized wheelchair facing right: dark skin tone +๐Ÿ‘จโ€๐Ÿฆผ man in motorized wheelchair +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆผ man in motorized wheelchair: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆผ man in motorized wheelchair: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆผ man in motorized wheelchair: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆผ man in motorized wheelchair: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆผ man in motorized wheelchair: dark skin tone +๐Ÿ‘จโ€๐Ÿฆผโ€โžก๏ธ man in motorized wheelchair facing right +๐Ÿ‘จโ€๐Ÿฆผโ€โžก man in motorized wheelchair facing right +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆผโ€โžก๏ธ man in motorized wheelchair facing right: light skin tone +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆผโ€โžก man in motorized wheelchair facing right: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆผโ€โžก๏ธ man in motorized wheelchair facing right: medium-light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆผโ€โžก man in motorized wheelchair facing right: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆผโ€โžก๏ธ man in motorized wheelchair facing right: medium skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆผโ€โžก man in motorized wheelchair facing right: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆผโ€โžก๏ธ man in motorized wheelchair facing right: medium-dark skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆผโ€โžก man in motorized wheelchair facing right: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆผโ€โžก๏ธ man in motorized wheelchair facing right: dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆผโ€โžก man in motorized wheelchair facing right: dark skin tone +๐Ÿ‘ฉโ€๐Ÿฆผ woman in motorized wheelchair +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆผ woman in motorized wheelchair: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆผ woman in motorized wheelchair: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆผ woman in motorized wheelchair: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆผ woman in motorized wheelchair: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆผ woman in motorized wheelchair: dark skin tone +๐Ÿ‘ฉโ€๐Ÿฆผโ€โžก๏ธ woman in motorized wheelchair facing right +๐Ÿ‘ฉโ€๐Ÿฆผโ€โžก woman in motorized wheelchair facing right +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆผโ€โžก๏ธ woman in motorized wheelchair facing right: light skin tone +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆผโ€โžก woman in motorized wheelchair facing right: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆผโ€โžก๏ธ woman in motorized wheelchair facing right: medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆผโ€โžก woman in motorized wheelchair facing right: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆผโ€โžก๏ธ woman in motorized wheelchair facing right: medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆผโ€โžก woman in motorized wheelchair facing right: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆผโ€โžก๏ธ woman in motorized wheelchair facing right: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆผโ€โžก woman in motorized wheelchair facing right: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆผโ€โžก๏ธ woman in motorized wheelchair facing right: dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆผโ€โžก woman in motorized wheelchair facing right: dark skin tone +๐Ÿง‘โ€๐Ÿฆฝ person in manual wheelchair +๐Ÿง‘๐Ÿปโ€๐Ÿฆฝ person in manual wheelchair: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿฆฝ person in manual wheelchair: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿฆฝ person in manual wheelchair: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿฆฝ person in manual wheelchair: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿฆฝ person in manual wheelchair: dark skin tone +๐Ÿง‘โ€๐Ÿฆฝโ€โžก๏ธ person in manual wheelchair facing right +๐Ÿง‘โ€๐Ÿฆฝโ€โžก person in manual wheelchair facing right +๐Ÿง‘๐Ÿปโ€๐Ÿฆฝโ€โžก๏ธ person in manual wheelchair facing right: light skin tone +๐Ÿง‘๐Ÿปโ€๐Ÿฆฝโ€โžก person in manual wheelchair facing right: light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿฆฝโ€โžก๏ธ person in manual wheelchair facing right: medium-light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿฆฝโ€โžก person in manual wheelchair facing right: medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿฆฝโ€โžก๏ธ person in manual wheelchair facing right: medium skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿฆฝโ€โžก person in manual wheelchair facing right: medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿฆฝโ€โžก๏ธ person in manual wheelchair facing right: medium-dark skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿฆฝโ€โžก person in manual wheelchair facing right: medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿฆฝโ€โžก๏ธ person in manual wheelchair facing right: dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿฆฝโ€โžก person in manual wheelchair facing right: dark skin tone +๐Ÿ‘จโ€๐Ÿฆฝ man in manual wheelchair +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฝ man in manual wheelchair: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฝ man in manual wheelchair: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฝ man in manual wheelchair: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฝ man in manual wheelchair: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฝ man in manual wheelchair: dark skin tone +๐Ÿ‘จโ€๐Ÿฆฝโ€โžก๏ธ man in manual wheelchair facing right +๐Ÿ‘จโ€๐Ÿฆฝโ€โžก man in manual wheelchair facing right +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฝโ€โžก๏ธ man in manual wheelchair facing right: light skin tone +๐Ÿ‘จ๐Ÿปโ€๐Ÿฆฝโ€โžก man in manual wheelchair facing right: light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฝโ€โžก๏ธ man in manual wheelchair facing right: medium-light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿฆฝโ€โžก man in manual wheelchair facing right: medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฝโ€โžก๏ธ man in manual wheelchair facing right: medium skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿฆฝโ€โžก man in manual wheelchair facing right: medium skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฝโ€โžก๏ธ man in manual wheelchair facing right: medium-dark skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿฆฝโ€โžก man in manual wheelchair facing right: medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฝโ€โžก๏ธ man in manual wheelchair facing right: dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿฆฝโ€โžก man in manual wheelchair facing right: dark skin tone +๐Ÿ‘ฉโ€๐Ÿฆฝ woman in manual wheelchair +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฝ woman in manual wheelchair: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฝ woman in manual wheelchair: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฝ woman in manual wheelchair: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฝ woman in manual wheelchair: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฝ woman in manual wheelchair: dark skin tone +๐Ÿ‘ฉโ€๐Ÿฆฝโ€โžก๏ธ woman in manual wheelchair facing right +๐Ÿ‘ฉโ€๐Ÿฆฝโ€โžก woman in manual wheelchair facing right +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฝโ€โžก๏ธ woman in manual wheelchair facing right: light skin tone +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿฆฝโ€โžก woman in manual wheelchair facing right: light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฝโ€โžก๏ธ woman in manual wheelchair facing right: medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿฆฝโ€โžก woman in manual wheelchair facing right: medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฝโ€โžก๏ธ woman in manual wheelchair facing right: medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿฆฝโ€โžก woman in manual wheelchair facing right: medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฝโ€โžก๏ธ woman in manual wheelchair facing right: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿฆฝโ€โžก woman in manual wheelchair facing right: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฝโ€โžก๏ธ woman in manual wheelchair facing right: dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿฆฝโ€โžก woman in manual wheelchair facing right: dark skin tone +๐Ÿƒ person running +๐Ÿƒ๐Ÿป person running: light skin tone +๐Ÿƒ๐Ÿผ person running: medium-light skin tone +๐Ÿƒ๐Ÿฝ person running: medium skin tone +๐Ÿƒ๐Ÿพ person running: medium-dark skin tone +๐Ÿƒ๐Ÿฟ person running: dark skin tone +๐Ÿƒโ€โ™‚๏ธ man running +๐Ÿƒโ€โ™‚ man running +๐Ÿƒ๐Ÿปโ€โ™‚๏ธ man running: light skin tone +๐Ÿƒ๐Ÿปโ€โ™‚ man running: light skin tone +๐Ÿƒ๐Ÿผโ€โ™‚๏ธ man running: medium-light skin tone +๐Ÿƒ๐Ÿผโ€โ™‚ man running: medium-light skin tone +๐Ÿƒ๐Ÿฝโ€โ™‚๏ธ man running: medium skin tone +๐Ÿƒ๐Ÿฝโ€โ™‚ man running: medium skin tone +๐Ÿƒ๐Ÿพโ€โ™‚๏ธ man running: medium-dark skin tone +๐Ÿƒ๐Ÿพโ€โ™‚ man running: medium-dark skin tone +๐Ÿƒ๐Ÿฟโ€โ™‚๏ธ man running: dark skin tone +๐Ÿƒ๐Ÿฟโ€โ™‚ man running: dark skin tone +๐Ÿƒโ€โ™€๏ธ woman running +๐Ÿƒโ€โ™€ woman running +๐Ÿƒ๐Ÿปโ€โ™€๏ธ woman running: light skin tone +๐Ÿƒ๐Ÿปโ€โ™€ woman running: light skin tone +๐Ÿƒ๐Ÿผโ€โ™€๏ธ woman running: medium-light skin tone +๐Ÿƒ๐Ÿผโ€โ™€ woman running: medium-light skin tone +๐Ÿƒ๐Ÿฝโ€โ™€๏ธ woman running: medium skin tone +๐Ÿƒ๐Ÿฝโ€โ™€ woman running: medium skin tone +๐Ÿƒ๐Ÿพโ€โ™€๏ธ woman running: medium-dark skin tone +๐Ÿƒ๐Ÿพโ€โ™€ woman running: medium-dark skin tone +๐Ÿƒ๐Ÿฟโ€โ™€๏ธ woman running: dark skin tone +๐Ÿƒ๐Ÿฟโ€โ™€ woman running: dark skin tone +๐Ÿƒโ€โžก๏ธ person running facing right +๐Ÿƒโ€โžก person running facing right +๐Ÿƒ๐Ÿปโ€โžก๏ธ person running facing right: light skin tone +๐Ÿƒ๐Ÿปโ€โžก person running facing right: light skin tone +๐Ÿƒ๐Ÿผโ€โžก๏ธ person running facing right: medium-light skin tone +๐Ÿƒ๐Ÿผโ€โžก person running facing right: medium-light skin tone +๐Ÿƒ๐Ÿฝโ€โžก๏ธ person running facing right: medium skin tone +๐Ÿƒ๐Ÿฝโ€โžก person running facing right: medium skin tone +๐Ÿƒ๐Ÿพโ€โžก๏ธ person running facing right: medium-dark skin tone +๐Ÿƒ๐Ÿพโ€โžก person running facing right: medium-dark skin tone +๐Ÿƒ๐Ÿฟโ€โžก๏ธ person running facing right: dark skin tone +๐Ÿƒ๐Ÿฟโ€โžก person running facing right: dark skin tone +๐Ÿƒโ€โ™€๏ธโ€โžก๏ธ woman running facing right +๐Ÿƒโ€โ™€โ€โžก๏ธ woman running facing right +๐Ÿƒโ€โ™€๏ธโ€โžก woman running facing right +๐Ÿƒโ€โ™€โ€โžก woman running facing right +๐Ÿƒ๐Ÿปโ€โ™€๏ธโ€โžก๏ธ woman running facing right: light skin tone +๐Ÿƒ๐Ÿปโ€โ™€โ€โžก๏ธ woman running facing right: light skin tone +๐Ÿƒ๐Ÿปโ€โ™€๏ธโ€โžก woman running facing right: light skin tone +๐Ÿƒ๐Ÿปโ€โ™€โ€โžก woman running facing right: light skin tone +๐Ÿƒ๐Ÿผโ€โ™€๏ธโ€โžก๏ธ woman running facing right: medium-light skin tone +๐Ÿƒ๐Ÿผโ€โ™€โ€โžก๏ธ woman running facing right: medium-light skin tone +๐Ÿƒ๐Ÿผโ€โ™€๏ธโ€โžก woman running facing right: medium-light skin tone +๐Ÿƒ๐Ÿผโ€โ™€โ€โžก woman running facing right: medium-light skin tone +๐Ÿƒ๐Ÿฝโ€โ™€๏ธโ€โžก๏ธ woman running facing right: medium skin tone +๐Ÿƒ๐Ÿฝโ€โ™€โ€โžก๏ธ woman running facing right: medium skin tone +๐Ÿƒ๐Ÿฝโ€โ™€๏ธโ€โžก woman running facing right: medium skin tone +๐Ÿƒ๐Ÿฝโ€โ™€โ€โžก woman running facing right: medium skin tone +๐Ÿƒ๐Ÿพโ€โ™€๏ธโ€โžก๏ธ woman running facing right: medium-dark skin tone +๐Ÿƒ๐Ÿพโ€โ™€โ€โžก๏ธ woman running facing right: medium-dark skin tone +๐Ÿƒ๐Ÿพโ€โ™€๏ธโ€โžก woman running facing right: medium-dark skin tone +๐Ÿƒ๐Ÿพโ€โ™€โ€โžก woman running facing right: medium-dark skin tone +๐Ÿƒ๐Ÿฟโ€โ™€๏ธโ€โžก๏ธ woman running facing right: dark skin tone +๐Ÿƒ๐Ÿฟโ€โ™€โ€โžก๏ธ woman running facing right: dark skin tone +๐Ÿƒ๐Ÿฟโ€โ™€๏ธโ€โžก woman running facing right: dark skin tone +๐Ÿƒ๐Ÿฟโ€โ™€โ€โžก woman running facing right: dark skin tone +๐Ÿƒโ€โ™‚๏ธโ€โžก๏ธ man running facing right +๐Ÿƒโ€โ™‚โ€โžก๏ธ man running facing right +๐Ÿƒโ€โ™‚๏ธโ€โžก man running facing right +๐Ÿƒโ€โ™‚โ€โžก man running facing right +๐Ÿƒ๐Ÿปโ€โ™‚๏ธโ€โžก๏ธ man running facing right: light skin tone +๐Ÿƒ๐Ÿปโ€โ™‚โ€โžก๏ธ man running facing right: light skin tone +๐Ÿƒ๐Ÿปโ€โ™‚๏ธโ€โžก man running facing right: light skin tone +๐Ÿƒ๐Ÿปโ€โ™‚โ€โžก man running facing right: light skin tone +๐Ÿƒ๐Ÿผโ€โ™‚๏ธโ€โžก๏ธ man running facing right: medium-light skin tone +๐Ÿƒ๐Ÿผโ€โ™‚โ€โžก๏ธ man running facing right: medium-light skin tone +๐Ÿƒ๐Ÿผโ€โ™‚๏ธโ€โžก man running facing right: medium-light skin tone +๐Ÿƒ๐Ÿผโ€โ™‚โ€โžก man running facing right: medium-light skin tone +๐Ÿƒ๐Ÿฝโ€โ™‚๏ธโ€โžก๏ธ man running facing right: medium skin tone +๐Ÿƒ๐Ÿฝโ€โ™‚โ€โžก๏ธ man running facing right: medium skin tone +๐Ÿƒ๐Ÿฝโ€โ™‚๏ธโ€โžก man running facing right: medium skin tone +๐Ÿƒ๐Ÿฝโ€โ™‚โ€โžก man running facing right: medium skin tone +๐Ÿƒ๐Ÿพโ€โ™‚๏ธโ€โžก๏ธ man running facing right: medium-dark skin tone +๐Ÿƒ๐Ÿพโ€โ™‚โ€โžก๏ธ man running facing right: medium-dark skin tone +๐Ÿƒ๐Ÿพโ€โ™‚๏ธโ€โžก man running facing right: medium-dark skin tone +๐Ÿƒ๐Ÿพโ€โ™‚โ€โžก man running facing right: medium-dark skin tone +๐Ÿƒ๐Ÿฟโ€โ™‚๏ธโ€โžก๏ธ man running facing right: dark skin tone +๐Ÿƒ๐Ÿฟโ€โ™‚โ€โžก๏ธ man running facing right: dark skin tone +๐Ÿƒ๐Ÿฟโ€โ™‚๏ธโ€โžก man running facing right: dark skin tone +๐Ÿƒ๐Ÿฟโ€โ™‚โ€โžก man running facing right: dark skin tone +๐Ÿ’ƒ woman dancing +๐Ÿ’ƒ๐Ÿป woman dancing: light skin tone +๐Ÿ’ƒ๐Ÿผ woman dancing: medium-light skin tone +๐Ÿ’ƒ๐Ÿฝ woman dancing: medium skin tone +๐Ÿ’ƒ๐Ÿพ woman dancing: medium-dark skin tone +๐Ÿ’ƒ๐Ÿฟ woman dancing: dark skin tone +๐Ÿ•บ man dancing +๐Ÿ•บ๐Ÿป man dancing: light skin tone +๐Ÿ•บ๐Ÿผ man dancing: medium-light skin tone +๐Ÿ•บ๐Ÿฝ man dancing: medium skin tone +๐Ÿ•บ๐Ÿพ man dancing: medium-dark skin tone +๐Ÿ•บ๐Ÿฟ man dancing: dark skin tone +๐Ÿ•ด๏ธ person in suit levitating +๐Ÿ•ด person in suit levitating +๐Ÿ•ด๐Ÿป person in suit levitating: light skin tone +๐Ÿ•ด๐Ÿผ person in suit levitating: medium-light skin tone +๐Ÿ•ด๐Ÿฝ person in suit levitating: medium skin tone +๐Ÿ•ด๐Ÿพ person in suit levitating: medium-dark skin tone +๐Ÿ•ด๐Ÿฟ person in suit levitating: dark skin tone +๐Ÿ‘ฏ people with bunny ears +๐Ÿ‘ฏโ€โ™‚๏ธ men with bunny ears +๐Ÿ‘ฏโ€โ™‚ men with bunny ears +๐Ÿ‘ฏโ€โ™€๏ธ women with bunny ears +๐Ÿ‘ฏโ€โ™€ women with bunny ears +๐Ÿง– person in steamy room +๐Ÿง–๐Ÿป person in steamy room: light skin tone +๐Ÿง–๐Ÿผ person in steamy room: medium-light skin tone +๐Ÿง–๐Ÿฝ person in steamy room: medium skin tone +๐Ÿง–๐Ÿพ person in steamy room: medium-dark skin tone +๐Ÿง–๐Ÿฟ person in steamy room: dark skin tone +๐Ÿง–โ€โ™‚๏ธ man in steamy room +๐Ÿง–โ€โ™‚ man in steamy room +๐Ÿง–๐Ÿปโ€โ™‚๏ธ man in steamy room: light skin tone +๐Ÿง–๐Ÿปโ€โ™‚ man in steamy room: light skin tone +๐Ÿง–๐Ÿผโ€โ™‚๏ธ man in steamy room: medium-light skin tone +๐Ÿง–๐Ÿผโ€โ™‚ man in steamy room: medium-light skin tone +๐Ÿง–๐Ÿฝโ€โ™‚๏ธ man in steamy room: medium skin tone +๐Ÿง–๐Ÿฝโ€โ™‚ man in steamy room: medium skin tone +๐Ÿง–๐Ÿพโ€โ™‚๏ธ man in steamy room: medium-dark skin tone +๐Ÿง–๐Ÿพโ€โ™‚ man in steamy room: medium-dark skin tone +๐Ÿง–๐Ÿฟโ€โ™‚๏ธ man in steamy room: dark skin tone +๐Ÿง–๐Ÿฟโ€โ™‚ man in steamy room: dark skin tone +๐Ÿง–โ€โ™€๏ธ woman in steamy room +๐Ÿง–โ€โ™€ woman in steamy room +๐Ÿง–๐Ÿปโ€โ™€๏ธ woman in steamy room: light skin tone +๐Ÿง–๐Ÿปโ€โ™€ woman in steamy room: light skin tone +๐Ÿง–๐Ÿผโ€โ™€๏ธ woman in steamy room: medium-light skin tone +๐Ÿง–๐Ÿผโ€โ™€ woman in steamy room: medium-light skin tone +๐Ÿง–๐Ÿฝโ€โ™€๏ธ woman in steamy room: medium skin tone +๐Ÿง–๐Ÿฝโ€โ™€ woman in steamy room: medium skin tone +๐Ÿง–๐Ÿพโ€โ™€๏ธ woman in steamy room: medium-dark skin tone +๐Ÿง–๐Ÿพโ€โ™€ woman in steamy room: medium-dark skin tone +๐Ÿง–๐Ÿฟโ€โ™€๏ธ woman in steamy room: dark skin tone +๐Ÿง–๐Ÿฟโ€โ™€ woman in steamy room: dark skin tone +๐Ÿง— person climbing +๐Ÿง—๐Ÿป person climbing: light skin tone +๐Ÿง—๐Ÿผ person climbing: medium-light skin tone +๐Ÿง—๐Ÿฝ person climbing: medium skin tone +๐Ÿง—๐Ÿพ person climbing: medium-dark skin tone +๐Ÿง—๐Ÿฟ person climbing: dark skin tone +๐Ÿง—โ€โ™‚๏ธ man climbing +๐Ÿง—โ€โ™‚ man climbing +๐Ÿง—๐Ÿปโ€โ™‚๏ธ man climbing: light skin tone +๐Ÿง—๐Ÿปโ€โ™‚ man climbing: light skin tone +๐Ÿง—๐Ÿผโ€โ™‚๏ธ man climbing: medium-light skin tone +๐Ÿง—๐Ÿผโ€โ™‚ man climbing: medium-light skin tone +๐Ÿง—๐Ÿฝโ€โ™‚๏ธ man climbing: medium skin tone +๐Ÿง—๐Ÿฝโ€โ™‚ man climbing: medium skin tone +๐Ÿง—๐Ÿพโ€โ™‚๏ธ man climbing: medium-dark skin tone +๐Ÿง—๐Ÿพโ€โ™‚ man climbing: medium-dark skin tone +๐Ÿง—๐Ÿฟโ€โ™‚๏ธ man climbing: dark skin tone +๐Ÿง—๐Ÿฟโ€โ™‚ man climbing: dark skin tone +๐Ÿง—โ€โ™€๏ธ woman climbing +๐Ÿง—โ€โ™€ woman climbing +๐Ÿง—๐Ÿปโ€โ™€๏ธ woman climbing: light skin tone +๐Ÿง—๐Ÿปโ€โ™€ woman climbing: light skin tone +๐Ÿง—๐Ÿผโ€โ™€๏ธ woman climbing: medium-light skin tone +๐Ÿง—๐Ÿผโ€โ™€ woman climbing: medium-light skin tone +๐Ÿง—๐Ÿฝโ€โ™€๏ธ woman climbing: medium skin tone +๐Ÿง—๐Ÿฝโ€โ™€ woman climbing: medium skin tone +๐Ÿง—๐Ÿพโ€โ™€๏ธ woman climbing: medium-dark skin tone +๐Ÿง—๐Ÿพโ€โ™€ woman climbing: medium-dark skin tone +๐Ÿง—๐Ÿฟโ€โ™€๏ธ woman climbing: dark skin tone +๐Ÿง—๐Ÿฟโ€โ™€ woman climbing: dark skin tone +๐Ÿคบ person fencing +๐Ÿ‡ horse racing +๐Ÿ‡๐Ÿป horse racing: light skin tone +๐Ÿ‡๐Ÿผ horse racing: medium-light skin tone +๐Ÿ‡๐Ÿฝ horse racing: medium skin tone +๐Ÿ‡๐Ÿพ horse racing: medium-dark skin tone +๐Ÿ‡๐Ÿฟ horse racing: dark skin tone +โ›ท๏ธ skier +โ›ท skier +๐Ÿ‚ snowboarder +๐Ÿ‚๐Ÿป snowboarder: light skin tone +๐Ÿ‚๐Ÿผ snowboarder: medium-light skin tone +๐Ÿ‚๐Ÿฝ snowboarder: medium skin tone +๐Ÿ‚๐Ÿพ snowboarder: medium-dark skin tone +๐Ÿ‚๐Ÿฟ snowboarder: dark skin tone +๐ŸŒ๏ธ person golfing +๐ŸŒ person golfing +๐ŸŒ๐Ÿป person golfing: light skin tone +๐ŸŒ๐Ÿผ person golfing: medium-light skin tone +๐ŸŒ๐Ÿฝ person golfing: medium skin tone +๐ŸŒ๐Ÿพ person golfing: medium-dark skin tone +๐ŸŒ๐Ÿฟ person golfing: dark skin tone +๐ŸŒ๏ธโ€โ™‚๏ธ man golfing +๐ŸŒโ€โ™‚๏ธ man golfing +๐ŸŒ๏ธโ€โ™‚ man golfing +๐ŸŒโ€โ™‚ man golfing +๐ŸŒ๐Ÿปโ€โ™‚๏ธ man golfing: light skin tone +๐ŸŒ๐Ÿปโ€โ™‚ man golfing: light skin tone +๐ŸŒ๐Ÿผโ€โ™‚๏ธ man golfing: medium-light skin tone +๐ŸŒ๐Ÿผโ€โ™‚ man golfing: medium-light skin tone +๐ŸŒ๐Ÿฝโ€โ™‚๏ธ man golfing: medium skin tone +๐ŸŒ๐Ÿฝโ€โ™‚ man golfing: medium skin tone +๐ŸŒ๐Ÿพโ€โ™‚๏ธ man golfing: medium-dark skin tone +๐ŸŒ๐Ÿพโ€โ™‚ man golfing: medium-dark skin tone +๐ŸŒ๐Ÿฟโ€โ™‚๏ธ man golfing: dark skin tone +๐ŸŒ๐Ÿฟโ€โ™‚ man golfing: dark skin tone +๐ŸŒ๏ธโ€โ™€๏ธ woman golfing +๐ŸŒโ€โ™€๏ธ woman golfing +๐ŸŒ๏ธโ€โ™€ woman golfing +๐ŸŒโ€โ™€ woman golfing +๐ŸŒ๐Ÿปโ€โ™€๏ธ woman golfing: light skin tone +๐ŸŒ๐Ÿปโ€โ™€ woman golfing: light skin tone +๐ŸŒ๐Ÿผโ€โ™€๏ธ woman golfing: medium-light skin tone +๐ŸŒ๐Ÿผโ€โ™€ woman golfing: medium-light skin tone +๐ŸŒ๐Ÿฝโ€โ™€๏ธ woman golfing: medium skin tone +๐ŸŒ๐Ÿฝโ€โ™€ woman golfing: medium skin tone +๐ŸŒ๐Ÿพโ€โ™€๏ธ woman golfing: medium-dark skin tone +๐ŸŒ๐Ÿพโ€โ™€ woman golfing: medium-dark skin tone +๐ŸŒ๐Ÿฟโ€โ™€๏ธ woman golfing: dark skin tone +๐ŸŒ๐Ÿฟโ€โ™€ woman golfing: dark skin tone +๐Ÿ„ person surfing +๐Ÿ„๐Ÿป person surfing: light skin tone +๐Ÿ„๐Ÿผ person surfing: medium-light skin tone +๐Ÿ„๐Ÿฝ person surfing: medium skin tone +๐Ÿ„๐Ÿพ person surfing: medium-dark skin tone +๐Ÿ„๐Ÿฟ person surfing: dark skin tone +๐Ÿ„โ€โ™‚๏ธ man surfing +๐Ÿ„โ€โ™‚ man surfing +๐Ÿ„๐Ÿปโ€โ™‚๏ธ man surfing: light skin tone +๐Ÿ„๐Ÿปโ€โ™‚ man surfing: light skin tone +๐Ÿ„๐Ÿผโ€โ™‚๏ธ man surfing: medium-light skin tone +๐Ÿ„๐Ÿผโ€โ™‚ man surfing: medium-light skin tone +๐Ÿ„๐Ÿฝโ€โ™‚๏ธ man surfing: medium skin tone +๐Ÿ„๐Ÿฝโ€โ™‚ man surfing: medium skin tone +๐Ÿ„๐Ÿพโ€โ™‚๏ธ man surfing: medium-dark skin tone +๐Ÿ„๐Ÿพโ€โ™‚ man surfing: medium-dark skin tone +๐Ÿ„๐Ÿฟโ€โ™‚๏ธ man surfing: dark skin tone +๐Ÿ„๐Ÿฟโ€โ™‚ man surfing: dark skin tone +๐Ÿ„โ€โ™€๏ธ woman surfing +๐Ÿ„โ€โ™€ woman surfing +๐Ÿ„๐Ÿปโ€โ™€๏ธ woman surfing: light skin tone +๐Ÿ„๐Ÿปโ€โ™€ woman surfing: light skin tone +๐Ÿ„๐Ÿผโ€โ™€๏ธ woman surfing: medium-light skin tone +๐Ÿ„๐Ÿผโ€โ™€ woman surfing: medium-light skin tone +๐Ÿ„๐Ÿฝโ€โ™€๏ธ woman surfing: medium skin tone +๐Ÿ„๐Ÿฝโ€โ™€ woman surfing: medium skin tone +๐Ÿ„๐Ÿพโ€โ™€๏ธ woman surfing: medium-dark skin tone +๐Ÿ„๐Ÿพโ€โ™€ woman surfing: medium-dark skin tone +๐Ÿ„๐Ÿฟโ€โ™€๏ธ woman surfing: dark skin tone +๐Ÿ„๐Ÿฟโ€โ™€ woman surfing: dark skin tone +๐Ÿšฃ person rowing boat +๐Ÿšฃ๐Ÿป person rowing boat: light skin tone +๐Ÿšฃ๐Ÿผ person rowing boat: medium-light skin tone +๐Ÿšฃ๐Ÿฝ person rowing boat: medium skin tone +๐Ÿšฃ๐Ÿพ person rowing boat: medium-dark skin tone +๐Ÿšฃ๐Ÿฟ person rowing boat: dark skin tone +๐Ÿšฃโ€โ™‚๏ธ man rowing boat +๐Ÿšฃโ€โ™‚ man rowing boat +๐Ÿšฃ๐Ÿปโ€โ™‚๏ธ man rowing boat: light skin tone +๐Ÿšฃ๐Ÿปโ€โ™‚ man rowing boat: light skin tone +๐Ÿšฃ๐Ÿผโ€โ™‚๏ธ man rowing boat: medium-light skin tone +๐Ÿšฃ๐Ÿผโ€โ™‚ man rowing boat: medium-light skin tone +๐Ÿšฃ๐Ÿฝโ€โ™‚๏ธ man rowing boat: medium skin tone +๐Ÿšฃ๐Ÿฝโ€โ™‚ man rowing boat: medium skin tone +๐Ÿšฃ๐Ÿพโ€โ™‚๏ธ man rowing boat: medium-dark skin tone +๐Ÿšฃ๐Ÿพโ€โ™‚ man rowing boat: medium-dark skin tone +๐Ÿšฃ๐Ÿฟโ€โ™‚๏ธ man rowing boat: dark skin tone +๐Ÿšฃ๐Ÿฟโ€โ™‚ man rowing boat: dark skin tone +๐Ÿšฃโ€โ™€๏ธ woman rowing boat +๐Ÿšฃโ€โ™€ woman rowing boat +๐Ÿšฃ๐Ÿปโ€โ™€๏ธ woman rowing boat: light skin tone +๐Ÿšฃ๐Ÿปโ€โ™€ woman rowing boat: light skin tone +๐Ÿšฃ๐Ÿผโ€โ™€๏ธ woman rowing boat: medium-light skin tone +๐Ÿšฃ๐Ÿผโ€โ™€ woman rowing boat: medium-light skin tone +๐Ÿšฃ๐Ÿฝโ€โ™€๏ธ woman rowing boat: medium skin tone +๐Ÿšฃ๐Ÿฝโ€โ™€ woman rowing boat: medium skin tone +๐Ÿšฃ๐Ÿพโ€โ™€๏ธ woman rowing boat: medium-dark skin tone +๐Ÿšฃ๐Ÿพโ€โ™€ woman rowing boat: medium-dark skin tone +๐Ÿšฃ๐Ÿฟโ€โ™€๏ธ woman rowing boat: dark skin tone +๐Ÿšฃ๐Ÿฟโ€โ™€ woman rowing boat: dark skin tone +๐ŸŠ person swimming +๐ŸŠ๐Ÿป person swimming: light skin tone +๐ŸŠ๐Ÿผ person swimming: medium-light skin tone +๐ŸŠ๐Ÿฝ person swimming: medium skin tone +๐ŸŠ๐Ÿพ person swimming: medium-dark skin tone +๐ŸŠ๐Ÿฟ person swimming: dark skin tone +๐ŸŠโ€โ™‚๏ธ man swimming +๐ŸŠโ€โ™‚ man swimming +๐ŸŠ๐Ÿปโ€โ™‚๏ธ man swimming: light skin tone +๐ŸŠ๐Ÿปโ€โ™‚ man swimming: light skin tone +๐ŸŠ๐Ÿผโ€โ™‚๏ธ man swimming: medium-light skin tone +๐ŸŠ๐Ÿผโ€โ™‚ man swimming: medium-light skin tone +๐ŸŠ๐Ÿฝโ€โ™‚๏ธ man swimming: medium skin tone +๐ŸŠ๐Ÿฝโ€โ™‚ man swimming: medium skin tone +๐ŸŠ๐Ÿพโ€โ™‚๏ธ man swimming: medium-dark skin tone +๐ŸŠ๐Ÿพโ€โ™‚ man swimming: medium-dark skin tone +๐ŸŠ๐Ÿฟโ€โ™‚๏ธ man swimming: dark skin tone +๐ŸŠ๐Ÿฟโ€โ™‚ man swimming: dark skin tone +๐ŸŠโ€โ™€๏ธ woman swimming +๐ŸŠโ€โ™€ woman swimming +๐ŸŠ๐Ÿปโ€โ™€๏ธ woman swimming: light skin tone +๐ŸŠ๐Ÿปโ€โ™€ woman swimming: light skin tone +๐ŸŠ๐Ÿผโ€โ™€๏ธ woman swimming: medium-light skin tone +๐ŸŠ๐Ÿผโ€โ™€ woman swimming: medium-light skin tone +๐ŸŠ๐Ÿฝโ€โ™€๏ธ woman swimming: medium skin tone +๐ŸŠ๐Ÿฝโ€โ™€ woman swimming: medium skin tone +๐ŸŠ๐Ÿพโ€โ™€๏ธ woman swimming: medium-dark skin tone +๐ŸŠ๐Ÿพโ€โ™€ woman swimming: medium-dark skin tone +๐ŸŠ๐Ÿฟโ€โ™€๏ธ woman swimming: dark skin tone +๐ŸŠ๐Ÿฟโ€โ™€ woman swimming: dark skin tone +โ›น๏ธ person bouncing ball +โ›น person bouncing ball +โ›น๐Ÿป person bouncing ball: light skin tone +โ›น๐Ÿผ person bouncing ball: medium-light skin tone +โ›น๐Ÿฝ person bouncing ball: medium skin tone +โ›น๐Ÿพ person bouncing ball: medium-dark skin tone +โ›น๐Ÿฟ person bouncing ball: dark skin tone +โ›น๏ธโ€โ™‚๏ธ man bouncing ball +โ›นโ€โ™‚๏ธ man bouncing ball +โ›น๏ธโ€โ™‚ man bouncing ball +โ›นโ€โ™‚ man bouncing ball +โ›น๐Ÿปโ€โ™‚๏ธ man bouncing ball: light skin tone +โ›น๐Ÿปโ€โ™‚ man bouncing ball: light skin tone +โ›น๐Ÿผโ€โ™‚๏ธ man bouncing ball: medium-light skin tone +โ›น๐Ÿผโ€โ™‚ man bouncing ball: medium-light skin tone +โ›น๐Ÿฝโ€โ™‚๏ธ man bouncing ball: medium skin tone +โ›น๐Ÿฝโ€โ™‚ man bouncing ball: medium skin tone +โ›น๐Ÿพโ€โ™‚๏ธ man bouncing ball: medium-dark skin tone +โ›น๐Ÿพโ€โ™‚ man bouncing ball: medium-dark skin tone +โ›น๐Ÿฟโ€โ™‚๏ธ man bouncing ball: dark skin tone +โ›น๐Ÿฟโ€โ™‚ man bouncing ball: dark skin tone +โ›น๏ธโ€โ™€๏ธ woman bouncing ball +โ›นโ€โ™€๏ธ woman bouncing ball +โ›น๏ธโ€โ™€ woman bouncing ball +โ›นโ€โ™€ woman bouncing ball +โ›น๐Ÿปโ€โ™€๏ธ woman bouncing ball: light skin tone +โ›น๐Ÿปโ€โ™€ woman bouncing ball: light skin tone +โ›น๐Ÿผโ€โ™€๏ธ woman bouncing ball: medium-light skin tone +โ›น๐Ÿผโ€โ™€ woman bouncing ball: medium-light skin tone +โ›น๐Ÿฝโ€โ™€๏ธ woman bouncing ball: medium skin tone +โ›น๐Ÿฝโ€โ™€ woman bouncing ball: medium skin tone +โ›น๐Ÿพโ€โ™€๏ธ woman bouncing ball: medium-dark skin tone +โ›น๐Ÿพโ€โ™€ woman bouncing ball: medium-dark skin tone +โ›น๐Ÿฟโ€โ™€๏ธ woman bouncing ball: dark skin tone +โ›น๐Ÿฟโ€โ™€ woman bouncing ball: dark skin tone +๐Ÿ‹๏ธ person lifting weights +๐Ÿ‹ person lifting weights +๐Ÿ‹๐Ÿป person lifting weights: light skin tone +๐Ÿ‹๐Ÿผ person lifting weights: medium-light skin tone +๐Ÿ‹๐Ÿฝ person lifting weights: medium skin tone +๐Ÿ‹๐Ÿพ person lifting weights: medium-dark skin tone +๐Ÿ‹๐Ÿฟ person lifting weights: dark skin tone +๐Ÿ‹๏ธโ€โ™‚๏ธ man lifting weights +๐Ÿ‹โ€โ™‚๏ธ man lifting weights +๐Ÿ‹๏ธโ€โ™‚ man lifting weights +๐Ÿ‹โ€โ™‚ man lifting weights +๐Ÿ‹๐Ÿปโ€โ™‚๏ธ man lifting weights: light skin tone +๐Ÿ‹๐Ÿปโ€โ™‚ man lifting weights: light skin tone +๐Ÿ‹๐Ÿผโ€โ™‚๏ธ man lifting weights: medium-light skin tone +๐Ÿ‹๐Ÿผโ€โ™‚ man lifting weights: medium-light skin tone +๐Ÿ‹๐Ÿฝโ€โ™‚๏ธ man lifting weights: medium skin tone +๐Ÿ‹๐Ÿฝโ€โ™‚ man lifting weights: medium skin tone +๐Ÿ‹๐Ÿพโ€โ™‚๏ธ man lifting weights: medium-dark skin tone +๐Ÿ‹๐Ÿพโ€โ™‚ man lifting weights: medium-dark skin tone +๐Ÿ‹๐Ÿฟโ€โ™‚๏ธ man lifting weights: dark skin tone +๐Ÿ‹๐Ÿฟโ€โ™‚ man lifting weights: dark skin tone +๐Ÿ‹๏ธโ€โ™€๏ธ woman lifting weights +๐Ÿ‹โ€โ™€๏ธ woman lifting weights +๐Ÿ‹๏ธโ€โ™€ woman lifting weights +๐Ÿ‹โ€โ™€ woman lifting weights +๐Ÿ‹๐Ÿปโ€โ™€๏ธ woman lifting weights: light skin tone +๐Ÿ‹๐Ÿปโ€โ™€ woman lifting weights: light skin tone +๐Ÿ‹๐Ÿผโ€โ™€๏ธ woman lifting weights: medium-light skin tone +๐Ÿ‹๐Ÿผโ€โ™€ woman lifting weights: medium-light skin tone +๐Ÿ‹๐Ÿฝโ€โ™€๏ธ woman lifting weights: medium skin tone +๐Ÿ‹๐Ÿฝโ€โ™€ woman lifting weights: medium skin tone +๐Ÿ‹๐Ÿพโ€โ™€๏ธ woman lifting weights: medium-dark skin tone +๐Ÿ‹๐Ÿพโ€โ™€ woman lifting weights: medium-dark skin tone +๐Ÿ‹๐Ÿฟโ€โ™€๏ธ woman lifting weights: dark skin tone +๐Ÿ‹๐Ÿฟโ€โ™€ woman lifting weights: dark skin tone +๐Ÿšด person biking +๐Ÿšด๐Ÿป person biking: light skin tone +๐Ÿšด๐Ÿผ person biking: medium-light skin tone +๐Ÿšด๐Ÿฝ person biking: medium skin tone +๐Ÿšด๐Ÿพ person biking: medium-dark skin tone +๐Ÿšด๐Ÿฟ person biking: dark skin tone +๐Ÿšดโ€โ™‚๏ธ man biking +๐Ÿšดโ€โ™‚ man biking +๐Ÿšด๐Ÿปโ€โ™‚๏ธ man biking: light skin tone +๐Ÿšด๐Ÿปโ€โ™‚ man biking: light skin tone +๐Ÿšด๐Ÿผโ€โ™‚๏ธ man biking: medium-light skin tone +๐Ÿšด๐Ÿผโ€โ™‚ man biking: medium-light skin tone +๐Ÿšด๐Ÿฝโ€โ™‚๏ธ man biking: medium skin tone +๐Ÿšด๐Ÿฝโ€โ™‚ man biking: medium skin tone +๐Ÿšด๐Ÿพโ€โ™‚๏ธ man biking: medium-dark skin tone +๐Ÿšด๐Ÿพโ€โ™‚ man biking: medium-dark skin tone +๐Ÿšด๐Ÿฟโ€โ™‚๏ธ man biking: dark skin tone +๐Ÿšด๐Ÿฟโ€โ™‚ man biking: dark skin tone +๐Ÿšดโ€โ™€๏ธ woman biking +๐Ÿšดโ€โ™€ woman biking +๐Ÿšด๐Ÿปโ€โ™€๏ธ woman biking: light skin tone +๐Ÿšด๐Ÿปโ€โ™€ woman biking: light skin tone +๐Ÿšด๐Ÿผโ€โ™€๏ธ woman biking: medium-light skin tone +๐Ÿšด๐Ÿผโ€โ™€ woman biking: medium-light skin tone +๐Ÿšด๐Ÿฝโ€โ™€๏ธ woman biking: medium skin tone +๐Ÿšด๐Ÿฝโ€โ™€ woman biking: medium skin tone +๐Ÿšด๐Ÿพโ€โ™€๏ธ woman biking: medium-dark skin tone +๐Ÿšด๐Ÿพโ€โ™€ woman biking: medium-dark skin tone +๐Ÿšด๐Ÿฟโ€โ™€๏ธ woman biking: dark skin tone +๐Ÿšด๐Ÿฟโ€โ™€ woman biking: dark skin tone +๐Ÿšต person mountain biking +๐Ÿšต๐Ÿป person mountain biking: light skin tone +๐Ÿšต๐Ÿผ person mountain biking: medium-light skin tone +๐Ÿšต๐Ÿฝ person mountain biking: medium skin tone +๐Ÿšต๐Ÿพ person mountain biking: medium-dark skin tone +๐Ÿšต๐Ÿฟ person mountain biking: dark skin tone +๐Ÿšตโ€โ™‚๏ธ man mountain biking +๐Ÿšตโ€โ™‚ man mountain biking +๐Ÿšต๐Ÿปโ€โ™‚๏ธ man mountain biking: light skin tone +๐Ÿšต๐Ÿปโ€โ™‚ man mountain biking: light skin tone +๐Ÿšต๐Ÿผโ€โ™‚๏ธ man mountain biking: medium-light skin tone +๐Ÿšต๐Ÿผโ€โ™‚ man mountain biking: medium-light skin tone +๐Ÿšต๐Ÿฝโ€โ™‚๏ธ man mountain biking: medium skin tone +๐Ÿšต๐Ÿฝโ€โ™‚ man mountain biking: medium skin tone +๐Ÿšต๐Ÿพโ€โ™‚๏ธ man mountain biking: medium-dark skin tone +๐Ÿšต๐Ÿพโ€โ™‚ man mountain biking: medium-dark skin tone +๐Ÿšต๐Ÿฟโ€โ™‚๏ธ man mountain biking: dark skin tone +๐Ÿšต๐Ÿฟโ€โ™‚ man mountain biking: dark skin tone +๐Ÿšตโ€โ™€๏ธ woman mountain biking +๐Ÿšตโ€โ™€ woman mountain biking +๐Ÿšต๐Ÿปโ€โ™€๏ธ woman mountain biking: light skin tone +๐Ÿšต๐Ÿปโ€โ™€ woman mountain biking: light skin tone +๐Ÿšต๐Ÿผโ€โ™€๏ธ woman mountain biking: medium-light skin tone +๐Ÿšต๐Ÿผโ€โ™€ woman mountain biking: medium-light skin tone +๐Ÿšต๐Ÿฝโ€โ™€๏ธ woman mountain biking: medium skin tone +๐Ÿšต๐Ÿฝโ€โ™€ woman mountain biking: medium skin tone +๐Ÿšต๐Ÿพโ€โ™€๏ธ woman mountain biking: medium-dark skin tone +๐Ÿšต๐Ÿพโ€โ™€ woman mountain biking: medium-dark skin tone +๐Ÿšต๐Ÿฟโ€โ™€๏ธ woman mountain biking: dark skin tone +๐Ÿšต๐Ÿฟโ€โ™€ woman mountain biking: dark skin tone +๐Ÿคธ person cartwheeling +๐Ÿคธ๐Ÿป person cartwheeling: light skin tone +๐Ÿคธ๐Ÿผ person cartwheeling: medium-light skin tone +๐Ÿคธ๐Ÿฝ person cartwheeling: medium skin tone +๐Ÿคธ๐Ÿพ person cartwheeling: medium-dark skin tone +๐Ÿคธ๐Ÿฟ person cartwheeling: dark skin tone +๐Ÿคธโ€โ™‚๏ธ man cartwheeling +๐Ÿคธโ€โ™‚ man cartwheeling +๐Ÿคธ๐Ÿปโ€โ™‚๏ธ man cartwheeling: light skin tone +๐Ÿคธ๐Ÿปโ€โ™‚ man cartwheeling: light skin tone +๐Ÿคธ๐Ÿผโ€โ™‚๏ธ man cartwheeling: medium-light skin tone +๐Ÿคธ๐Ÿผโ€โ™‚ man cartwheeling: medium-light skin tone +๐Ÿคธ๐Ÿฝโ€โ™‚๏ธ man cartwheeling: medium skin tone +๐Ÿคธ๐Ÿฝโ€โ™‚ man cartwheeling: medium skin tone +๐Ÿคธ๐Ÿพโ€โ™‚๏ธ man cartwheeling: medium-dark skin tone +๐Ÿคธ๐Ÿพโ€โ™‚ man cartwheeling: medium-dark skin tone +๐Ÿคธ๐Ÿฟโ€โ™‚๏ธ man cartwheeling: dark skin tone +๐Ÿคธ๐Ÿฟโ€โ™‚ man cartwheeling: dark skin tone +๐Ÿคธโ€โ™€๏ธ woman cartwheeling +๐Ÿคธโ€โ™€ woman cartwheeling +๐Ÿคธ๐Ÿปโ€โ™€๏ธ woman cartwheeling: light skin tone +๐Ÿคธ๐Ÿปโ€โ™€ woman cartwheeling: light skin tone +๐Ÿคธ๐Ÿผโ€โ™€๏ธ woman cartwheeling: medium-light skin tone +๐Ÿคธ๐Ÿผโ€โ™€ woman cartwheeling: medium-light skin tone +๐Ÿคธ๐Ÿฝโ€โ™€๏ธ woman cartwheeling: medium skin tone +๐Ÿคธ๐Ÿฝโ€โ™€ woman cartwheeling: medium skin tone +๐Ÿคธ๐Ÿพโ€โ™€๏ธ woman cartwheeling: medium-dark skin tone +๐Ÿคธ๐Ÿพโ€โ™€ woman cartwheeling: medium-dark skin tone +๐Ÿคธ๐Ÿฟโ€โ™€๏ธ woman cartwheeling: dark skin tone +๐Ÿคธ๐Ÿฟโ€โ™€ woman cartwheeling: dark skin tone +๐Ÿคผ people wrestling +๐Ÿคผโ€โ™‚๏ธ men wrestling +๐Ÿคผโ€โ™‚ men wrestling +๐Ÿคผโ€โ™€๏ธ women wrestling +๐Ÿคผโ€โ™€ women wrestling +๐Ÿคฝ person playing water polo +๐Ÿคฝ๐Ÿป person playing water polo: light skin tone +๐Ÿคฝ๐Ÿผ person playing water polo: medium-light skin tone +๐Ÿคฝ๐Ÿฝ person playing water polo: medium skin tone +๐Ÿคฝ๐Ÿพ person playing water polo: medium-dark skin tone +๐Ÿคฝ๐Ÿฟ person playing water polo: dark skin tone +๐Ÿคฝโ€โ™‚๏ธ man playing water polo +๐Ÿคฝโ€โ™‚ man playing water polo +๐Ÿคฝ๐Ÿปโ€โ™‚๏ธ man playing water polo: light skin tone +๐Ÿคฝ๐Ÿปโ€โ™‚ man playing water polo: light skin tone +๐Ÿคฝ๐Ÿผโ€โ™‚๏ธ man playing water polo: medium-light skin tone +๐Ÿคฝ๐Ÿผโ€โ™‚ man playing water polo: medium-light skin tone +๐Ÿคฝ๐Ÿฝโ€โ™‚๏ธ man playing water polo: medium skin tone +๐Ÿคฝ๐Ÿฝโ€โ™‚ man playing water polo: medium skin tone +๐Ÿคฝ๐Ÿพโ€โ™‚๏ธ man playing water polo: medium-dark skin tone +๐Ÿคฝ๐Ÿพโ€โ™‚ man playing water polo: medium-dark skin tone +๐Ÿคฝ๐Ÿฟโ€โ™‚๏ธ man playing water polo: dark skin tone +๐Ÿคฝ๐Ÿฟโ€โ™‚ man playing water polo: dark skin tone +๐Ÿคฝโ€โ™€๏ธ woman playing water polo +๐Ÿคฝโ€โ™€ woman playing water polo +๐Ÿคฝ๐Ÿปโ€โ™€๏ธ woman playing water polo: light skin tone +๐Ÿคฝ๐Ÿปโ€โ™€ woman playing water polo: light skin tone +๐Ÿคฝ๐Ÿผโ€โ™€๏ธ woman playing water polo: medium-light skin tone +๐Ÿคฝ๐Ÿผโ€โ™€ woman playing water polo: medium-light skin tone +๐Ÿคฝ๐Ÿฝโ€โ™€๏ธ woman playing water polo: medium skin tone +๐Ÿคฝ๐Ÿฝโ€โ™€ woman playing water polo: medium skin tone +๐Ÿคฝ๐Ÿพโ€โ™€๏ธ woman playing water polo: medium-dark skin tone +๐Ÿคฝ๐Ÿพโ€โ™€ woman playing water polo: medium-dark skin tone +๐Ÿคฝ๐Ÿฟโ€โ™€๏ธ woman playing water polo: dark skin tone +๐Ÿคฝ๐Ÿฟโ€โ™€ woman playing water polo: dark skin tone +๐Ÿคพ person playing handball +๐Ÿคพ๐Ÿป person playing handball: light skin tone +๐Ÿคพ๐Ÿผ person playing handball: medium-light skin tone +๐Ÿคพ๐Ÿฝ person playing handball: medium skin tone +๐Ÿคพ๐Ÿพ person playing handball: medium-dark skin tone +๐Ÿคพ๐Ÿฟ person playing handball: dark skin tone +๐Ÿคพโ€โ™‚๏ธ man playing handball +๐Ÿคพโ€โ™‚ man playing handball +๐Ÿคพ๐Ÿปโ€โ™‚๏ธ man playing handball: light skin tone +๐Ÿคพ๐Ÿปโ€โ™‚ man playing handball: light skin tone +๐Ÿคพ๐Ÿผโ€โ™‚๏ธ man playing handball: medium-light skin tone +๐Ÿคพ๐Ÿผโ€โ™‚ man playing handball: medium-light skin tone +๐Ÿคพ๐Ÿฝโ€โ™‚๏ธ man playing handball: medium skin tone +๐Ÿคพ๐Ÿฝโ€โ™‚ man playing handball: medium skin tone +๐Ÿคพ๐Ÿพโ€โ™‚๏ธ man playing handball: medium-dark skin tone +๐Ÿคพ๐Ÿพโ€โ™‚ man playing handball: medium-dark skin tone +๐Ÿคพ๐Ÿฟโ€โ™‚๏ธ man playing handball: dark skin tone +๐Ÿคพ๐Ÿฟโ€โ™‚ man playing handball: dark skin tone +๐Ÿคพโ€โ™€๏ธ woman playing handball +๐Ÿคพโ€โ™€ woman playing handball +๐Ÿคพ๐Ÿปโ€โ™€๏ธ woman playing handball: light skin tone +๐Ÿคพ๐Ÿปโ€โ™€ woman playing handball: light skin tone +๐Ÿคพ๐Ÿผโ€โ™€๏ธ woman playing handball: medium-light skin tone +๐Ÿคพ๐Ÿผโ€โ™€ woman playing handball: medium-light skin tone +๐Ÿคพ๐Ÿฝโ€โ™€๏ธ woman playing handball: medium skin tone +๐Ÿคพ๐Ÿฝโ€โ™€ woman playing handball: medium skin tone +๐Ÿคพ๐Ÿพโ€โ™€๏ธ woman playing handball: medium-dark skin tone +๐Ÿคพ๐Ÿพโ€โ™€ woman playing handball: medium-dark skin tone +๐Ÿคพ๐Ÿฟโ€โ™€๏ธ woman playing handball: dark skin tone +๐Ÿคพ๐Ÿฟโ€โ™€ woman playing handball: dark skin tone +๐Ÿคน person juggling +๐Ÿคน๐Ÿป person juggling: light skin tone +๐Ÿคน๐Ÿผ person juggling: medium-light skin tone +๐Ÿคน๐Ÿฝ person juggling: medium skin tone +๐Ÿคน๐Ÿพ person juggling: medium-dark skin tone +๐Ÿคน๐Ÿฟ person juggling: dark skin tone +๐Ÿคนโ€โ™‚๏ธ man juggling +๐Ÿคนโ€โ™‚ man juggling +๐Ÿคน๐Ÿปโ€โ™‚๏ธ man juggling: light skin tone +๐Ÿคน๐Ÿปโ€โ™‚ man juggling: light skin tone +๐Ÿคน๐Ÿผโ€โ™‚๏ธ man juggling: medium-light skin tone +๐Ÿคน๐Ÿผโ€โ™‚ man juggling: medium-light skin tone +๐Ÿคน๐Ÿฝโ€โ™‚๏ธ man juggling: medium skin tone +๐Ÿคน๐Ÿฝโ€โ™‚ man juggling: medium skin tone +๐Ÿคน๐Ÿพโ€โ™‚๏ธ man juggling: medium-dark skin tone +๐Ÿคน๐Ÿพโ€โ™‚ man juggling: medium-dark skin tone +๐Ÿคน๐Ÿฟโ€โ™‚๏ธ man juggling: dark skin tone +๐Ÿคน๐Ÿฟโ€โ™‚ man juggling: dark skin tone +๐Ÿคนโ€โ™€๏ธ woman juggling +๐Ÿคนโ€โ™€ woman juggling +๐Ÿคน๐Ÿปโ€โ™€๏ธ woman juggling: light skin tone +๐Ÿคน๐Ÿปโ€โ™€ woman juggling: light skin tone +๐Ÿคน๐Ÿผโ€โ™€๏ธ woman juggling: medium-light skin tone +๐Ÿคน๐Ÿผโ€โ™€ woman juggling: medium-light skin tone +๐Ÿคน๐Ÿฝโ€โ™€๏ธ woman juggling: medium skin tone +๐Ÿคน๐Ÿฝโ€โ™€ woman juggling: medium skin tone +๐Ÿคน๐Ÿพโ€โ™€๏ธ woman juggling: medium-dark skin tone +๐Ÿคน๐Ÿพโ€โ™€ woman juggling: medium-dark skin tone +๐Ÿคน๐Ÿฟโ€โ™€๏ธ woman juggling: dark skin tone +๐Ÿคน๐Ÿฟโ€โ™€ woman juggling: dark skin tone +๐Ÿง˜ person in lotus position +๐Ÿง˜๐Ÿป person in lotus position: light skin tone +๐Ÿง˜๐Ÿผ person in lotus position: medium-light skin tone +๐Ÿง˜๐Ÿฝ person in lotus position: medium skin tone +๐Ÿง˜๐Ÿพ person in lotus position: medium-dark skin tone +๐Ÿง˜๐Ÿฟ person in lotus position: dark skin tone +๐Ÿง˜โ€โ™‚๏ธ man in lotus position +๐Ÿง˜โ€โ™‚ man in lotus position +๐Ÿง˜๐Ÿปโ€โ™‚๏ธ man in lotus position: light skin tone +๐Ÿง˜๐Ÿปโ€โ™‚ man in lotus position: light skin tone +๐Ÿง˜๐Ÿผโ€โ™‚๏ธ man in lotus position: medium-light skin tone +๐Ÿง˜๐Ÿผโ€โ™‚ man in lotus position: medium-light skin tone +๐Ÿง˜๐Ÿฝโ€โ™‚๏ธ man in lotus position: medium skin tone +๐Ÿง˜๐Ÿฝโ€โ™‚ man in lotus position: medium skin tone +๐Ÿง˜๐Ÿพโ€โ™‚๏ธ man in lotus position: medium-dark skin tone +๐Ÿง˜๐Ÿพโ€โ™‚ man in lotus position: medium-dark skin tone +๐Ÿง˜๐Ÿฟโ€โ™‚๏ธ man in lotus position: dark skin tone +๐Ÿง˜๐Ÿฟโ€โ™‚ man in lotus position: dark skin tone +๐Ÿง˜โ€โ™€๏ธ woman in lotus position +๐Ÿง˜โ€โ™€ woman in lotus position +๐Ÿง˜๐Ÿปโ€โ™€๏ธ woman in lotus position: light skin tone +๐Ÿง˜๐Ÿปโ€โ™€ woman in lotus position: light skin tone +๐Ÿง˜๐Ÿผโ€โ™€๏ธ woman in lotus position: medium-light skin tone +๐Ÿง˜๐Ÿผโ€โ™€ woman in lotus position: medium-light skin tone +๐Ÿง˜๐Ÿฝโ€โ™€๏ธ woman in lotus position: medium skin tone +๐Ÿง˜๐Ÿฝโ€โ™€ woman in lotus position: medium skin tone +๐Ÿง˜๐Ÿพโ€โ™€๏ธ woman in lotus position: medium-dark skin tone +๐Ÿง˜๐Ÿพโ€โ™€ woman in lotus position: medium-dark skin tone +๐Ÿง˜๐Ÿฟโ€โ™€๏ธ woman in lotus position: dark skin tone +๐Ÿง˜๐Ÿฟโ€โ™€ woman in lotus position: dark skin tone +๐Ÿ›€ person taking bath +๐Ÿ›€๐Ÿป person taking bath: light skin tone +๐Ÿ›€๐Ÿผ person taking bath: medium-light skin tone +๐Ÿ›€๐Ÿฝ person taking bath: medium skin tone +๐Ÿ›€๐Ÿพ person taking bath: medium-dark skin tone +๐Ÿ›€๐Ÿฟ person taking bath: dark skin tone +๐Ÿ›Œ person in bed +๐Ÿ›Œ๐Ÿป person in bed: light skin tone +๐Ÿ›Œ๐Ÿผ person in bed: medium-light skin tone +๐Ÿ›Œ๐Ÿฝ person in bed: medium skin tone +๐Ÿ›Œ๐Ÿพ person in bed: medium-dark skin tone +๐Ÿ›Œ๐Ÿฟ person in bed: dark skin tone +๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘ people holding hands +๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿป people holding hands: light skin tone +๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ people holding hands: light skin tone, medium-light skin tone +๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ people holding hands: light skin tone, medium skin tone +๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ people holding hands: light skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿปโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ people holding hands: light skin tone, dark skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿป people holding hands: medium-light skin tone, light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ people holding hands: medium-light skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ people holding hands: medium-light skin tone, medium skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ people holding hands: medium-light skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿผโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ people holding hands: medium-light skin tone, dark skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿป people holding hands: medium skin tone, light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ people holding hands: medium skin tone, medium-light skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ people holding hands: medium skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ people holding hands: medium skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿฝโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ people holding hands: medium skin tone, dark skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿป people holding hands: medium-dark skin tone, light skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ people holding hands: medium-dark skin tone, medium-light skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ people holding hands: medium-dark skin tone, medium skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ people holding hands: medium-dark skin tone +๐Ÿง‘๐Ÿพโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ people holding hands: medium-dark skin tone, dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿป people holding hands: dark skin tone, light skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿผ people holding hands: dark skin tone, medium-light skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿฝ people holding hands: dark skin tone, medium skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿพ people holding hands: dark skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€๐Ÿคโ€๐Ÿง‘๐Ÿฟ people holding hands: dark skin tone +๐Ÿ‘ญ women holding hands +๐Ÿ‘ญ๐Ÿป women holding hands: light skin tone +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ women holding hands: light skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ women holding hands: light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ women holding hands: light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ women holding hands: light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป women holding hands: medium-light skin tone, light skin tone +๐Ÿ‘ญ๐Ÿผ women holding hands: medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ women holding hands: medium-light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ women holding hands: medium-light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ women holding hands: medium-light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป women holding hands: medium skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ women holding hands: medium skin tone, medium-light skin tone +๐Ÿ‘ญ๐Ÿฝ women holding hands: medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ women holding hands: medium skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ women holding hands: medium skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป women holding hands: medium-dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ women holding hands: medium-dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ women holding hands: medium-dark skin tone, medium skin tone +๐Ÿ‘ญ๐Ÿพ women holding hands: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฟ women holding hands: medium-dark skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿป women holding hands: dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿผ women holding hands: dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿฝ women holding hands: dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘ฉ๐Ÿพ women holding hands: dark skin tone, medium-dark skin tone +๐Ÿ‘ญ๐Ÿฟ women holding hands: dark skin tone +๐Ÿ‘ซ woman and man holding hands +๐Ÿ‘ซ๐Ÿป woman and man holding hands: light skin tone +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ woman and man holding hands: light skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ woman and man holding hands: light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ woman and man holding hands: light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ woman and man holding hands: light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป woman and man holding hands: medium-light skin tone, light skin tone +๐Ÿ‘ซ๐Ÿผ woman and man holding hands: medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ woman and man holding hands: medium-light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ woman and man holding hands: medium-light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ woman and man holding hands: medium-light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป woman and man holding hands: medium skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ woman and man holding hands: medium skin tone, medium-light skin tone +๐Ÿ‘ซ๐Ÿฝ woman and man holding hands: medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ woman and man holding hands: medium skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ woman and man holding hands: medium skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป woman and man holding hands: medium-dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ woman and man holding hands: medium-dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ woman and man holding hands: medium-dark skin tone, medium skin tone +๐Ÿ‘ซ๐Ÿพ woman and man holding hands: medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ woman and man holding hands: medium-dark skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป woman and man holding hands: dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ woman and man holding hands: dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ woman and man holding hands: dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ woman and man holding hands: dark skin tone, medium-dark skin tone +๐Ÿ‘ซ๐Ÿฟ woman and man holding hands: dark skin tone +๐Ÿ‘ฌ men holding hands +๐Ÿ‘ฌ๐Ÿป men holding hands: light skin tone +๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ men holding hands: light skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ men holding hands: light skin tone, medium skin tone +๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ men holding hands: light skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿปโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ men holding hands: light skin tone, dark skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป men holding hands: medium-light skin tone, light skin tone +๐Ÿ‘ฌ๐Ÿผ men holding hands: medium-light skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ men holding hands: medium-light skin tone, medium skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ men holding hands: medium-light skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿผโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ men holding hands: medium-light skin tone, dark skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป men holding hands: medium skin tone, light skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ men holding hands: medium skin tone, medium-light skin tone +๐Ÿ‘ฌ๐Ÿฝ men holding hands: medium skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ men holding hands: medium skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿฝโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ men holding hands: medium skin tone, dark skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป men holding hands: medium-dark skin tone, light skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ men holding hands: medium-dark skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ men holding hands: medium-dark skin tone, medium skin tone +๐Ÿ‘ฌ๐Ÿพ men holding hands: medium-dark skin tone +๐Ÿ‘จ๐Ÿพโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฟ men holding hands: medium-dark skin tone, dark skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿป men holding hands: dark skin tone, light skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿผ men holding hands: dark skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿฝ men holding hands: dark skin tone, medium skin tone +๐Ÿ‘จ๐Ÿฟโ€๐Ÿคโ€๐Ÿ‘จ๐Ÿพ men holding hands: dark skin tone, medium-dark skin tone +๐Ÿ‘ฌ๐Ÿฟ men holding hands: dark skin tone +๐Ÿ’ kiss +๐Ÿ’๐Ÿป kiss: light skin tone +๐Ÿ’๐Ÿผ kiss: medium-light skin tone +๐Ÿ’๐Ÿฝ kiss: medium skin tone +๐Ÿ’๐Ÿพ kiss: medium-dark skin tone +๐Ÿ’๐Ÿฟ kiss: dark skin tone +๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ kiss: person, person, light skin tone, medium-light skin tone +๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ kiss: person, person, light skin tone, medium-light skin tone +๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ kiss: person, person, light skin tone, medium skin tone +๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ kiss: person, person, light skin tone, medium skin tone +๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ kiss: person, person, light skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ kiss: person, person, light skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ kiss: person, person, light skin tone, dark skin tone +๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ kiss: person, person, light skin tone, dark skin tone +๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป kiss: person, person, medium-light skin tone, light skin tone +๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป kiss: person, person, medium-light skin tone, light skin tone +๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ kiss: person, person, medium-light skin tone, medium skin tone +๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ kiss: person, person, medium-light skin tone, medium skin tone +๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ kiss: person, person, medium-light skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ kiss: person, person, medium-light skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ kiss: person, person, medium-light skin tone, dark skin tone +๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ kiss: person, person, medium-light skin tone, dark skin tone +๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป kiss: person, person, medium skin tone, light skin tone +๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป kiss: person, person, medium skin tone, light skin tone +๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ kiss: person, person, medium skin tone, medium-light skin tone +๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ kiss: person, person, medium skin tone, medium-light skin tone +๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ kiss: person, person, medium skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ kiss: person, person, medium skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ kiss: person, person, medium skin tone, dark skin tone +๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ kiss: person, person, medium skin tone, dark skin tone +๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป kiss: person, person, medium-dark skin tone, light skin tone +๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป kiss: person, person, medium-dark skin tone, light skin tone +๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ kiss: person, person, medium-dark skin tone, medium-light skin tone +๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ kiss: person, person, medium-dark skin tone, medium-light skin tone +๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ kiss: person, person, medium-dark skin tone, medium skin tone +๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ kiss: person, person, medium-dark skin tone, medium skin tone +๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ kiss: person, person, medium-dark skin tone, dark skin tone +๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฟ kiss: person, person, medium-dark skin tone, dark skin tone +๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป kiss: person, person, dark skin tone, light skin tone +๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿป kiss: person, person, dark skin tone, light skin tone +๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ kiss: person, person, dark skin tone, medium-light skin tone +๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿผ kiss: person, person, dark skin tone, medium-light skin tone +๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ kiss: person, person, dark skin tone, medium skin tone +๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿฝ kiss: person, person, dark skin tone, medium skin tone +๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ kiss: person, person, dark skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿง‘๐Ÿพ kiss: person, person, dark skin tone, medium-dark skin tone +๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ kiss: woman, man +๐Ÿ‘ฉโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ kiss: woman, man +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: woman, man, light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: woman, man, light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: woman, man, light skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: woman, man, light skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: woman, man, light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: woman, man, light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: woman, man, light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: woman, man, light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: woman, man, light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: woman, man, light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: woman, man, medium-light skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: woman, man, medium-light skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: woman, man, medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: woman, man, medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: woman, man, medium-light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: woman, man, medium-light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: woman, man, medium-light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: woman, man, medium-light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: woman, man, medium-light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: woman, man, medium-light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: woman, man, medium skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: woman, man, medium skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: woman, man, medium skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: woman, man, medium skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: woman, man, medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: woman, man, medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: woman, man, medium skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: woman, man, medium skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: woman, man, medium skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: woman, man, medium skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: woman, man, medium-dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: woman, man, medium-dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: woman, man, medium-dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: woman, man, medium-dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: woman, man, medium-dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: woman, man, medium-dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: woman, man, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: woman, man, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: woman, man, medium-dark skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: woman, man, medium-dark skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: woman, man, dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: woman, man, dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: woman, man, dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: woman, man, dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: woman, man, dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: woman, man, dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: woman, man, dark skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: woman, man, dark skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: woman, man, dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: woman, man, dark skin tone +๐Ÿ‘จโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ kiss: man, man +๐Ÿ‘จโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ kiss: man, man +๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: man, man, light skin tone +๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: man, man, light skin tone +๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: man, man, light skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: man, man, light skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: man, man, light skin tone, medium skin tone +๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: man, man, light skin tone, medium skin tone +๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: man, man, light skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: man, man, light skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: man, man, light skin tone, dark skin tone +๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: man, man, light skin tone, dark skin tone +๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: man, man, medium-light skin tone, light skin tone +๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: man, man, medium-light skin tone, light skin tone +๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: man, man, medium-light skin tone +๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: man, man, medium-light skin tone +๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: man, man, medium-light skin tone, medium skin tone +๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: man, man, medium-light skin tone, medium skin tone +๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: man, man, medium-light skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: man, man, medium-light skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: man, man, medium-light skin tone, dark skin tone +๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: man, man, medium-light skin tone, dark skin tone +๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: man, man, medium skin tone, light skin tone +๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: man, man, medium skin tone, light skin tone +๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: man, man, medium skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: man, man, medium skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: man, man, medium skin tone +๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: man, man, medium skin tone +๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: man, man, medium skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: man, man, medium skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: man, man, medium skin tone, dark skin tone +๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: man, man, medium skin tone, dark skin tone +๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: man, man, medium-dark skin tone, light skin tone +๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: man, man, medium-dark skin tone, light skin tone +๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: man, man, medium-dark skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: man, man, medium-dark skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: man, man, medium-dark skin tone, medium skin tone +๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: man, man, medium-dark skin tone, medium skin tone +๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: man, man, medium-dark skin tone +๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: man, man, medium-dark skin tone +๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: man, man, medium-dark skin tone, dark skin tone +๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: man, man, medium-dark skin tone, dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: man, man, dark skin tone, light skin tone +๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿป kiss: man, man, dark skin tone, light skin tone +๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: man, man, dark skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿผ kiss: man, man, dark skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: man, man, dark skin tone, medium skin tone +๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฝ kiss: man, man, dark skin tone, medium skin tone +๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: man, man, dark skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿพ kiss: man, man, dark skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: man, man, dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘จ๐Ÿฟ kiss: man, man, dark skin tone +๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ kiss: woman, woman +๐Ÿ‘ฉโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ kiss: woman, woman +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป kiss: woman, woman, light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป kiss: woman, woman, light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ kiss: woman, woman, light skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ kiss: woman, woman, light skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ kiss: woman, woman, light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ kiss: woman, woman, light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ kiss: woman, woman, light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ kiss: woman, woman, light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ kiss: woman, woman, light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ kiss: woman, woman, light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป kiss: woman, woman, medium-light skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป kiss: woman, woman, medium-light skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ kiss: woman, woman, medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ kiss: woman, woman, medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ kiss: woman, woman, medium-light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ kiss: woman, woman, medium-light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ kiss: woman, woman, medium-light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ kiss: woman, woman, medium-light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ kiss: woman, woman, medium-light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ kiss: woman, woman, medium-light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป kiss: woman, woman, medium skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป kiss: woman, woman, medium skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ kiss: woman, woman, medium skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ kiss: woman, woman, medium skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ kiss: woman, woman, medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ kiss: woman, woman, medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ kiss: woman, woman, medium skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ kiss: woman, woman, medium skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ kiss: woman, woman, medium skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ kiss: woman, woman, medium skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป kiss: woman, woman, medium-dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป kiss: woman, woman, medium-dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ kiss: woman, woman, medium-dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ kiss: woman, woman, medium-dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ kiss: woman, woman, medium-dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ kiss: woman, woman, medium-dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ kiss: woman, woman, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ kiss: woman, woman, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ kiss: woman, woman, medium-dark skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ kiss: woman, woman, medium-dark skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป kiss: woman, woman, dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿป kiss: woman, woman, dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ kiss: woman, woman, dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿผ kiss: woman, woman, dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ kiss: woman, woman, dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฝ kiss: woman, woman, dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ kiss: woman, woman, dark skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿพ kiss: woman, woman, dark skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ kiss: woman, woman, dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ’‹โ€๐Ÿ‘ฉ๐Ÿฟ kiss: woman, woman, dark skin tone +๐Ÿ’‘ couple with heart +๐Ÿ’‘๐Ÿป couple with heart: light skin tone +๐Ÿ’‘๐Ÿผ couple with heart: medium-light skin tone +๐Ÿ’‘๐Ÿฝ couple with heart: medium skin tone +๐Ÿ’‘๐Ÿพ couple with heart: medium-dark skin tone +๐Ÿ’‘๐Ÿฟ couple with heart: dark skin tone +๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿง‘๐Ÿผ couple with heart: person, person, light skin tone, medium-light skin tone +๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿผ couple with heart: person, person, light skin tone, medium-light skin tone +๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿง‘๐Ÿฝ couple with heart: person, person, light skin tone, medium skin tone +๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿฝ couple with heart: person, person, light skin tone, medium skin tone +๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿง‘๐Ÿพ couple with heart: person, person, light skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿพ couple with heart: person, person, light skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿปโ€โค๏ธโ€๐Ÿง‘๐Ÿฟ couple with heart: person, person, light skin tone, dark skin tone +๐Ÿง‘๐Ÿปโ€โคโ€๐Ÿง‘๐Ÿฟ couple with heart: person, person, light skin tone, dark skin tone +๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿง‘๐Ÿป couple with heart: person, person, medium-light skin tone, light skin tone +๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿป couple with heart: person, person, medium-light skin tone, light skin tone +๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿง‘๐Ÿฝ couple with heart: person, person, medium-light skin tone, medium skin tone +๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿฝ couple with heart: person, person, medium-light skin tone, medium skin tone +๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿง‘๐Ÿพ couple with heart: person, person, medium-light skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿพ couple with heart: person, person, medium-light skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿผโ€โค๏ธโ€๐Ÿง‘๐Ÿฟ couple with heart: person, person, medium-light skin tone, dark skin tone +๐Ÿง‘๐Ÿผโ€โคโ€๐Ÿง‘๐Ÿฟ couple with heart: person, person, medium-light skin tone, dark skin tone +๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿง‘๐Ÿป couple with heart: person, person, medium skin tone, light skin tone +๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿป couple with heart: person, person, medium skin tone, light skin tone +๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿง‘๐Ÿผ couple with heart: person, person, medium skin tone, medium-light skin tone +๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿผ couple with heart: person, person, medium skin tone, medium-light skin tone +๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿง‘๐Ÿพ couple with heart: person, person, medium skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿพ couple with heart: person, person, medium skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿฝโ€โค๏ธโ€๐Ÿง‘๐Ÿฟ couple with heart: person, person, medium skin tone, dark skin tone +๐Ÿง‘๐Ÿฝโ€โคโ€๐Ÿง‘๐Ÿฟ couple with heart: person, person, medium skin tone, dark skin tone +๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿง‘๐Ÿป couple with heart: person, person, medium-dark skin tone, light skin tone +๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿป couple with heart: person, person, medium-dark skin tone, light skin tone +๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿง‘๐Ÿผ couple with heart: person, person, medium-dark skin tone, medium-light skin tone +๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿผ couple with heart: person, person, medium-dark skin tone, medium-light skin tone +๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿง‘๐Ÿฝ couple with heart: person, person, medium-dark skin tone, medium skin tone +๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿฝ couple with heart: person, person, medium-dark skin tone, medium skin tone +๐Ÿง‘๐Ÿพโ€โค๏ธโ€๐Ÿง‘๐Ÿฟ couple with heart: person, person, medium-dark skin tone, dark skin tone +๐Ÿง‘๐Ÿพโ€โคโ€๐Ÿง‘๐Ÿฟ couple with heart: person, person, medium-dark skin tone, dark skin tone +๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿง‘๐Ÿป couple with heart: person, person, dark skin tone, light skin tone +๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿป couple with heart: person, person, dark skin tone, light skin tone +๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿง‘๐Ÿผ couple with heart: person, person, dark skin tone, medium-light skin tone +๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿผ couple with heart: person, person, dark skin tone, medium-light skin tone +๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿง‘๐Ÿฝ couple with heart: person, person, dark skin tone, medium skin tone +๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿฝ couple with heart: person, person, dark skin tone, medium skin tone +๐Ÿง‘๐Ÿฟโ€โค๏ธโ€๐Ÿง‘๐Ÿพ couple with heart: person, person, dark skin tone, medium-dark skin tone +๐Ÿง‘๐Ÿฟโ€โคโ€๐Ÿง‘๐Ÿพ couple with heart: person, person, dark skin tone, medium-dark skin tone +๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘จ couple with heart: woman, man +๐Ÿ‘ฉโ€โคโ€๐Ÿ‘จ couple with heart: woman, man +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป couple with heart: woman, man, light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿป couple with heart: woman, man, light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ couple with heart: woman, man, light skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿผ couple with heart: woman, man, light skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ couple with heart: woman, man, light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฝ couple with heart: woman, man, light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ couple with heart: woman, man, light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿพ couple with heart: woman, man, light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ couple with heart: woman, man, light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฟ couple with heart: woman, man, light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป couple with heart: woman, man, medium-light skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿป couple with heart: woman, man, medium-light skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ couple with heart: woman, man, medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿผ couple with heart: woman, man, medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ couple with heart: woman, man, medium-light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฝ couple with heart: woman, man, medium-light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ couple with heart: woman, man, medium-light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿพ couple with heart: woman, man, medium-light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ couple with heart: woman, man, medium-light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฟ couple with heart: woman, man, medium-light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป couple with heart: woman, man, medium skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿป couple with heart: woman, man, medium skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ couple with heart: woman, man, medium skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿผ couple with heart: woman, man, medium skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ couple with heart: woman, man, medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฝ couple with heart: woman, man, medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ couple with heart: woman, man, medium skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿพ couple with heart: woman, man, medium skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ couple with heart: woman, man, medium skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฟ couple with heart: woman, man, medium skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป couple with heart: woman, man, medium-dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿป couple with heart: woman, man, medium-dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ couple with heart: woman, man, medium-dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿผ couple with heart: woman, man, medium-dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ couple with heart: woman, man, medium-dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฝ couple with heart: woman, man, medium-dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ couple with heart: woman, man, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿพ couple with heart: woman, man, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ couple with heart: woman, man, medium-dark skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฟ couple with heart: woman, man, medium-dark skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป couple with heart: woman, man, dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿป couple with heart: woman, man, dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ couple with heart: woman, man, dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿผ couple with heart: woman, man, dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ couple with heart: woman, man, dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฝ couple with heart: woman, man, dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ couple with heart: woman, man, dark skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿพ couple with heart: woman, man, dark skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ couple with heart: woman, man, dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฟ couple with heart: woman, man, dark skin tone +๐Ÿ‘จโ€โค๏ธโ€๐Ÿ‘จ couple with heart: man, man +๐Ÿ‘จโ€โคโ€๐Ÿ‘จ couple with heart: man, man +๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป couple with heart: man, man, light skin tone +๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿป couple with heart: man, man, light skin tone +๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ couple with heart: man, man, light skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿผ couple with heart: man, man, light skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ couple with heart: man, man, light skin tone, medium skin tone +๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฝ couple with heart: man, man, light skin tone, medium skin tone +๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ couple with heart: man, man, light skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿพ couple with heart: man, man, light skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿปโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ couple with heart: man, man, light skin tone, dark skin tone +๐Ÿ‘จ๐Ÿปโ€โคโ€๐Ÿ‘จ๐Ÿฟ couple with heart: man, man, light skin tone, dark skin tone +๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป couple with heart: man, man, medium-light skin tone, light skin tone +๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿป couple with heart: man, man, medium-light skin tone, light skin tone +๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ couple with heart: man, man, medium-light skin tone +๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿผ couple with heart: man, man, medium-light skin tone +๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ couple with heart: man, man, medium-light skin tone, medium skin tone +๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฝ couple with heart: man, man, medium-light skin tone, medium skin tone +๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ couple with heart: man, man, medium-light skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿพ couple with heart: man, man, medium-light skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿผโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ couple with heart: man, man, medium-light skin tone, dark skin tone +๐Ÿ‘จ๐Ÿผโ€โคโ€๐Ÿ‘จ๐Ÿฟ couple with heart: man, man, medium-light skin tone, dark skin tone +๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป couple with heart: man, man, medium skin tone, light skin tone +๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿป couple with heart: man, man, medium skin tone, light skin tone +๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ couple with heart: man, man, medium skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿผ couple with heart: man, man, medium skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ couple with heart: man, man, medium skin tone +๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฝ couple with heart: man, man, medium skin tone +๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ couple with heart: man, man, medium skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿพ couple with heart: man, man, medium skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ couple with heart: man, man, medium skin tone, dark skin tone +๐Ÿ‘จ๐Ÿฝโ€โคโ€๐Ÿ‘จ๐Ÿฟ couple with heart: man, man, medium skin tone, dark skin tone +๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป couple with heart: man, man, medium-dark skin tone, light skin tone +๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿป couple with heart: man, man, medium-dark skin tone, light skin tone +๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ couple with heart: man, man, medium-dark skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿผ couple with heart: man, man, medium-dark skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ couple with heart: man, man, medium-dark skin tone, medium skin tone +๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฝ couple with heart: man, man, medium-dark skin tone, medium skin tone +๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ couple with heart: man, man, medium-dark skin tone +๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿพ couple with heart: man, man, medium-dark skin tone +๐Ÿ‘จ๐Ÿพโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ couple with heart: man, man, medium-dark skin tone, dark skin tone +๐Ÿ‘จ๐Ÿพโ€โคโ€๐Ÿ‘จ๐Ÿฟ couple with heart: man, man, medium-dark skin tone, dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿป couple with heart: man, man, dark skin tone, light skin tone +๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿป couple with heart: man, man, dark skin tone, light skin tone +๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿผ couple with heart: man, man, dark skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿผ couple with heart: man, man, dark skin tone, medium-light skin tone +๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฝ couple with heart: man, man, dark skin tone, medium skin tone +๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฝ couple with heart: man, man, dark skin tone, medium skin tone +๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿพ couple with heart: man, man, dark skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿพ couple with heart: man, man, dark skin tone, medium-dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘จ๐Ÿฟ couple with heart: man, man, dark skin tone +๐Ÿ‘จ๐Ÿฟโ€โคโ€๐Ÿ‘จ๐Ÿฟ couple with heart: man, man, dark skin tone +๐Ÿ‘ฉโ€โค๏ธโ€๐Ÿ‘ฉ couple with heart: woman, woman +๐Ÿ‘ฉโ€โคโ€๐Ÿ‘ฉ couple with heart: woman, woman +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป couple with heart: woman, woman, light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿป couple with heart: woman, woman, light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ couple with heart: woman, woman, light skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿผ couple with heart: woman, woman, light skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ couple with heart: woman, woman, light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ couple with heart: woman, woman, light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ couple with heart: woman, woman, light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿพ couple with heart: woman, woman, light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ couple with heart: woman, woman, light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿปโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ couple with heart: woman, woman, light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป couple with heart: woman, woman, medium-light skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿป couple with heart: woman, woman, medium-light skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ couple with heart: woman, woman, medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿผ couple with heart: woman, woman, medium-light skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ couple with heart: woman, woman, medium-light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ couple with heart: woman, woman, medium-light skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ couple with heart: woman, woman, medium-light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿพ couple with heart: woman, woman, medium-light skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ couple with heart: woman, woman, medium-light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿผโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ couple with heart: woman, woman, medium-light skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป couple with heart: woman, woman, medium skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿป couple with heart: woman, woman, medium skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ couple with heart: woman, woman, medium skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿผ couple with heart: woman, woman, medium skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ couple with heart: woman, woman, medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ couple with heart: woman, woman, medium skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ couple with heart: woman, woman, medium skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿพ couple with heart: woman, woman, medium skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ couple with heart: woman, woman, medium skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฝโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ couple with heart: woman, woman, medium skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป couple with heart: woman, woman, medium-dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿป couple with heart: woman, woman, medium-dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ couple with heart: woman, woman, medium-dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿผ couple with heart: woman, woman, medium-dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ couple with heart: woman, woman, medium-dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ couple with heart: woman, woman, medium-dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ couple with heart: woman, woman, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿพ couple with heart: woman, woman, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ couple with heart: woman, woman, medium-dark skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿพโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ couple with heart: woman, woman, medium-dark skin tone, dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿป couple with heart: woman, woman, dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿป couple with heart: woman, woman, dark skin tone, light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿผ couple with heart: woman, woman, dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿผ couple with heart: woman, woman, dark skin tone, medium-light skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฝ couple with heart: woman, woman, dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿฝ couple with heart: woman, woman, dark skin tone, medium skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿพ couple with heart: woman, woman, dark skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿพ couple with heart: woman, woman, dark skin tone, medium-dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โค๏ธโ€๐Ÿ‘ฉ๐Ÿฟ couple with heart: woman, woman, dark skin tone +๐Ÿ‘ฉ๐Ÿฟโ€โคโ€๐Ÿ‘ฉ๐Ÿฟ couple with heart: woman, woman, dark skin tone +๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ family: man, woman, boy +๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง family: man, woman, girl +๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ family: man, woman, girl, boy +๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ family: man, woman, boy, boy +๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง family: man, woman, girl, girl +๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆ family: man, man, boy +๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ง family: man, man, girl +๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ family: man, man, girl, boy +๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ family: man, man, boy, boy +๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง family: man, man, girl, girl +๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆ family: woman, woman, boy +๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ง family: woman, woman, girl +๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ family: woman, woman, girl, boy +๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ family: woman, woman, boy, boy +๐Ÿ‘ฉโ€๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง family: woman, woman, girl, girl +๐Ÿ‘จโ€๐Ÿ‘ฆ family: man, boy +๐Ÿ‘จโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ family: man, boy, boy +๐Ÿ‘จโ€๐Ÿ‘ง family: man, girl +๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ family: man, girl, boy +๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ง family: man, girl, girl +๐Ÿ‘ฉโ€๐Ÿ‘ฆ family: woman, boy +๐Ÿ‘ฉโ€๐Ÿ‘ฆโ€๐Ÿ‘ฆ family: woman, boy, boy +๐Ÿ‘ฉโ€๐Ÿ‘ง family: woman, girl +๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ฆ family: woman, girl, boy +๐Ÿ‘ฉโ€๐Ÿ‘งโ€๐Ÿ‘ง family: woman, girl, girl +๐Ÿ—ฃ๏ธ speaking head +๐Ÿ—ฃ speaking head +๐Ÿ‘ค bust in silhouette +๐Ÿ‘ฅ busts in silhouette +๐Ÿซ‚ people hugging +๐Ÿ‘ช family +๐Ÿง‘โ€๐Ÿง‘โ€๐Ÿง’ family: adult, adult, child +๐Ÿง‘โ€๐Ÿง‘โ€๐Ÿง’โ€๐Ÿง’ family: adult, adult, child, child +๐Ÿง‘โ€๐Ÿง’ family: adult, child +๐Ÿง‘โ€๐Ÿง’โ€๐Ÿง’ family: adult, child, child +๐Ÿ‘ฃ footprints +๐Ÿซ† fingerprint +๐Ÿป light skin tone +๐Ÿผ medium-light skin tone +๐Ÿฝ medium skin tone +๐Ÿพ medium-dark skin tone +๐Ÿฟ dark skin tone +๐Ÿฆฐ red hair +๐Ÿฆฑ curly hair +๐Ÿฆณ white hair +๐Ÿฆฒ bald +๐Ÿต monkey face +๐Ÿ’ monkey +๐Ÿฆ gorilla +๐Ÿฆง orangutan +๐Ÿถ dog face +๐Ÿ• dog +๐Ÿฆฎ guide dog +๐Ÿ•โ€๐Ÿฆบ service dog +๐Ÿฉ poodle +๐Ÿบ wolf +๐ŸฆŠ fox +๐Ÿฆ raccoon +๐Ÿฑ cat face +๐Ÿˆ cat +๐Ÿˆโ€โฌ› black cat +๐Ÿฆ lion +๐Ÿฏ tiger face +๐Ÿ… tiger +๐Ÿ† leopard +๐Ÿด horse face +๐ŸซŽ moose +๐Ÿซ donkey +๐ŸŽ horse +๐Ÿฆ„ unicorn +๐Ÿฆ“ zebra +๐ŸฆŒ deer +๐Ÿฆฌ bison +๐Ÿฎ cow face +๐Ÿ‚ ox +๐Ÿƒ water buffalo +๐Ÿ„ cow +๐Ÿท pig face +๐Ÿ– pig +๐Ÿ— boar +๐Ÿฝ pig nose +๐Ÿ ram +๐Ÿ‘ ewe +๐Ÿ goat +๐Ÿช camel +๐Ÿซ two-hump camel +๐Ÿฆ™ llama +๐Ÿฆ’ giraffe +๐Ÿ˜ elephant +๐Ÿฆฃ mammoth +๐Ÿฆ rhinoceros +๐Ÿฆ› hippopotamus +๐Ÿญ mouse face +๐Ÿ mouse +๐Ÿ€ rat +๐Ÿน hamster +๐Ÿฐ rabbit face +๐Ÿ‡ rabbit +๐Ÿฟ๏ธ chipmunk +๐Ÿฟ chipmunk +๐Ÿฆซ beaver +๐Ÿฆ” hedgehog +๐Ÿฆ‡ bat +๐Ÿป bear +๐Ÿปโ€โ„๏ธ polar bear +๐Ÿปโ€โ„ polar bear +๐Ÿจ koala +๐Ÿผ panda +๐Ÿฆฅ sloth +๐Ÿฆฆ otter +๐Ÿฆจ skunk +๐Ÿฆ˜ kangaroo +๐Ÿฆก badger +๐Ÿพ paw prints +๐Ÿฆƒ turkey +๐Ÿ” chicken +๐Ÿ“ rooster +๐Ÿฃ hatching chick +๐Ÿค baby chick +๐Ÿฅ front-facing baby chick +๐Ÿฆ bird +๐Ÿง penguin +๐Ÿ•Š๏ธ dove +๐Ÿ•Š dove +๐Ÿฆ… eagle +๐Ÿฆ† duck +๐Ÿฆข swan +๐Ÿฆ‰ owl +๐Ÿฆค dodo +๐Ÿชถ feather +๐Ÿฆฉ flamingo +๐Ÿฆš peacock +๐Ÿฆœ parrot +๐Ÿชฝ wing +๐Ÿฆโ€โฌ› black bird +๐Ÿชฟ goose +๐Ÿฆโ€๐Ÿ”ฅ phoenix +๐Ÿธ frog +๐ŸŠ crocodile +๐Ÿข turtle +๐ŸฆŽ lizard +๐Ÿ snake +๐Ÿฒ dragon face +๐Ÿ‰ dragon +๐Ÿฆ• sauropod +๐Ÿฆ– T-Rex +๐Ÿณ spouting whale +๐Ÿ‹ whale +๐Ÿฌ dolphin +๐Ÿฆญ seal +๐ŸŸ fish +๐Ÿ  tropical fish +๐Ÿก blowfish +๐Ÿฆˆ shark +๐Ÿ™ octopus +๐Ÿš spiral shell +๐Ÿชธ coral +๐Ÿชผ jellyfish +๐Ÿฆ€ crab +๐Ÿฆž lobster +๐Ÿฆ shrimp +๐Ÿฆ‘ squid +๐Ÿฆช oyster +๐ŸŒ snail +๐Ÿฆ‹ butterfly +๐Ÿ› bug +๐Ÿœ ant +๐Ÿ honeybee +๐Ÿชฒ beetle +๐Ÿž lady beetle +๐Ÿฆ— cricket +๐Ÿชณ cockroach +๐Ÿ•ท๏ธ spider +๐Ÿ•ท spider +๐Ÿ•ธ๏ธ spider web +๐Ÿ•ธ spider web +๐Ÿฆ‚ scorpion +๐ŸฆŸ mosquito +๐Ÿชฐ fly +๐Ÿชฑ worm +๐Ÿฆ  microbe +๐Ÿ’ bouquet +๐ŸŒธ cherry blossom +๐Ÿ’ฎ white flower +๐Ÿชท lotus +๐Ÿต๏ธ rosette +๐Ÿต rosette +๐ŸŒน rose +๐Ÿฅ€ wilted flower +๐ŸŒบ hibiscus +๐ŸŒป sunflower +๐ŸŒผ blossom +๐ŸŒท tulip +๐Ÿชป hyacinth +๐ŸŒฑ seedling +๐Ÿชด potted plant +๐ŸŒฒ evergreen tree +๐ŸŒณ deciduous tree +๐ŸŒด palm tree +๐ŸŒต cactus +๐ŸŒพ sheaf of rice +๐ŸŒฟ herb +โ˜˜๏ธ shamrock +โ˜˜ shamrock +๐Ÿ€ four leaf clover +๐Ÿ maple leaf +๐Ÿ‚ fallen leaf +๐Ÿƒ leaf fluttering in wind +๐Ÿชน empty nest +๐Ÿชบ nest with eggs +๐Ÿ„ mushroom +๐Ÿชพ leafless tree +๐Ÿ‡ grapes +๐Ÿˆ melon +๐Ÿ‰ watermelon +๐ŸŠ tangerine +๐Ÿ‹ lemon +๐Ÿ‹โ€๐ŸŸฉ lime +๐ŸŒ banana +๐Ÿ pineapple +๐Ÿฅญ mango +๐ŸŽ red apple +๐Ÿ green apple +๐Ÿ pear +๐Ÿ‘ peach +๐Ÿ’ cherries +๐Ÿ“ strawberry +๐Ÿซ blueberries +๐Ÿฅ kiwi fruit +๐Ÿ… tomato +๐Ÿซ’ olive +๐Ÿฅฅ coconut +๐Ÿฅ‘ avocado +๐Ÿ† eggplant +๐Ÿฅ” potato +๐Ÿฅ• carrot +๐ŸŒฝ ear of corn +๐ŸŒถ๏ธ hot pepper +๐ŸŒถ hot pepper +๐Ÿซ‘ bell pepper +๐Ÿฅ’ cucumber +๐Ÿฅฌ leafy green +๐Ÿฅฆ broccoli +๐Ÿง„ garlic +๐Ÿง… onion +๐Ÿฅœ peanuts +๐Ÿซ˜ beans +๐ŸŒฐ chestnut +๐Ÿซš ginger root +๐Ÿซ› pea pod +๐Ÿ„โ€๐ŸŸซ brown mushroom +๐Ÿซœ root vegetable +๐Ÿž bread +๐Ÿฅ croissant +๐Ÿฅ– baguette bread +๐Ÿซ“ flatbread +๐Ÿฅจ pretzel +๐Ÿฅฏ bagel +๐Ÿฅž pancakes +๐Ÿง‡ waffle +๐Ÿง€ cheese wedge +๐Ÿ– meat on bone +๐Ÿ— poultry leg +๐Ÿฅฉ cut of meat +๐Ÿฅ“ bacon +๐Ÿ” hamburger +๐ŸŸ french fries +๐Ÿ• pizza +๐ŸŒญ hot dog +๐Ÿฅช sandwich +๐ŸŒฎ taco +๐ŸŒฏ burrito +๐Ÿซ” tamale +๐Ÿฅ™ stuffed flatbread +๐Ÿง† falafel +๐Ÿฅš egg +๐Ÿณ cooking +๐Ÿฅ˜ shallow pan of food +๐Ÿฒ pot of food +๐Ÿซ• fondue +๐Ÿฅฃ bowl with spoon +๐Ÿฅ— green salad +๐Ÿฟ popcorn +๐Ÿงˆ butter +๐Ÿง‚ salt +๐Ÿฅซ canned food +๐Ÿฑ bento box +๐Ÿ˜ rice cracker +๐Ÿ™ rice ball +๐Ÿš cooked rice +๐Ÿ› curry rice +๐Ÿœ steaming bowl +๐Ÿ spaghetti +๐Ÿ  roasted sweet potato +๐Ÿข oden +๐Ÿฃ sushi +๐Ÿค fried shrimp +๐Ÿฅ fish cake with swirl +๐Ÿฅฎ moon cake +๐Ÿก dango +๐ŸฅŸ dumpling +๐Ÿฅ  fortune cookie +๐Ÿฅก takeout box +๐Ÿฆ soft ice cream +๐Ÿง shaved ice +๐Ÿจ ice cream +๐Ÿฉ doughnut +๐Ÿช cookie +๐ŸŽ‚ birthday cake +๐Ÿฐ shortcake +๐Ÿง cupcake +๐Ÿฅง pie +๐Ÿซ chocolate bar +๐Ÿฌ candy +๐Ÿญ lollipop +๐Ÿฎ custard +๐Ÿฏ honey pot +๐Ÿผ baby bottle +๐Ÿฅ› glass of milk +โ˜• hot beverage +๐Ÿซ– teapot +๐Ÿต teacup without handle +๐Ÿถ sake +๐Ÿพ bottle with popping cork +๐Ÿท wine glass +๐Ÿธ cocktail glass +๐Ÿน tropical drink +๐Ÿบ beer mug +๐Ÿป clinking beer mugs +๐Ÿฅ‚ clinking glasses +๐Ÿฅƒ tumbler glass +๐Ÿซ— pouring liquid +๐Ÿฅค cup with straw +๐Ÿง‹ bubble tea +๐Ÿงƒ beverage box +๐Ÿง‰ mate +๐ŸงŠ ice +๐Ÿฅข chopsticks +๐Ÿฝ๏ธ fork and knife with plate +๐Ÿฝ fork and knife with plate +๐Ÿด fork and knife +๐Ÿฅ„ spoon +๐Ÿ”ช kitchen knife +๐Ÿซ™ jar +๐Ÿบ amphora +๐ŸŒ globe showing Europe-Africa +๐ŸŒŽ globe showing Americas +๐ŸŒ globe showing Asia-Australia +๐ŸŒ globe with meridians +๐Ÿ—บ๏ธ world map +๐Ÿ—บ world map +๐Ÿ—พ map of Japan +๐Ÿงญ compass +๐Ÿ”๏ธ snow-capped mountain +๐Ÿ” snow-capped mountain +โ›ฐ๏ธ mountain +โ›ฐ mountain +๐ŸŒ‹ volcano +๐Ÿ—ป mount fuji +๐Ÿ•๏ธ camping +๐Ÿ• camping +๐Ÿ–๏ธ beach with umbrella +๐Ÿ– beach with umbrella +๐Ÿœ๏ธ desert +๐Ÿœ desert +๐Ÿ๏ธ desert island +๐Ÿ desert island +๐Ÿž๏ธ national park +๐Ÿž national park +๐ŸŸ๏ธ stadium +๐ŸŸ stadium +๐Ÿ›๏ธ classical building +๐Ÿ› classical building +๐Ÿ—๏ธ building construction +๐Ÿ— building construction +๐Ÿงฑ brick +๐Ÿชจ rock +๐Ÿชต wood +๐Ÿ›– hut +๐Ÿ˜๏ธ houses +๐Ÿ˜ houses +๐Ÿš๏ธ derelict house +๐Ÿš derelict house +๐Ÿ  house +๐Ÿก house with garden +๐Ÿข office building +๐Ÿฃ Japanese post office +๐Ÿค post office +๐Ÿฅ hospital +๐Ÿฆ bank +๐Ÿจ hotel +๐Ÿฉ love hotel +๐Ÿช convenience store +๐Ÿซ school +๐Ÿฌ department store +๐Ÿญ factory +๐Ÿฏ Japanese castle +๐Ÿฐ castle +๐Ÿ’’ wedding +๐Ÿ—ผ Tokyo tower +๐Ÿ—ฝ Statue of Liberty +โ›ช church +๐Ÿ•Œ mosque +๐Ÿ›• hindu temple +๐Ÿ• synagogue +โ›ฉ๏ธ shinto shrine +โ›ฉ shinto shrine +๐Ÿ•‹ kaaba +โ›ฒ fountain +โ›บ tent +๐ŸŒ foggy +๐ŸŒƒ night with stars +๐Ÿ™๏ธ cityscape +๐Ÿ™ cityscape +๐ŸŒ„ sunrise over mountains +๐ŸŒ… sunrise +๐ŸŒ† cityscape at dusk +๐ŸŒ‡ sunset +๐ŸŒ‰ bridge at night +โ™จ๏ธ hot springs +โ™จ hot springs +๐ŸŽ  carousel horse +๐Ÿ› playground slide +๐ŸŽก ferris wheel +๐ŸŽข roller coaster +๐Ÿ’ˆ barber pole +๐ŸŽช circus tentnd +๐Ÿš‚ locomotive +๐Ÿšƒ railway car +๐Ÿš„ high-speed train +๐Ÿš… bullet train +๐Ÿš† train +๐Ÿš‡ metro +๐Ÿšˆ light rail +๐Ÿš‰ station +๐ŸšŠ tram +๐Ÿš monorail +๐Ÿšž mountain railway +๐Ÿš‹ tram car +๐ŸšŒ bus +๐Ÿš oncoming bus +๐ŸšŽ trolleybus +๐Ÿš minibus +๐Ÿš‘ ambulance +๐Ÿš’ fire engine +๐Ÿš“ police car +๐Ÿš” oncoming police car +๐Ÿš• taxi +๐Ÿš– oncoming taxi +๐Ÿš— automobile +๐Ÿš˜ oncoming automobile +๐Ÿš™ sport utility vehicle +๐Ÿ›ป pickup truck +๐Ÿšš delivery truck +๐Ÿš› articulated lorry +๐Ÿšœ tractor +๐ŸŽ๏ธ racing car +๐ŸŽ racing car +๐Ÿ๏ธ motorcycle +๐Ÿ motorcycle +๐Ÿ›ต motor scooter +๐Ÿฆฝ manual wheelchair +๐Ÿฆผ motorized wheelchair +๐Ÿ›บ auto rickshaw +๐Ÿšฒ bicycle +๐Ÿ›ด kick scooter +๐Ÿ›น skateboard +๐Ÿ›ผ roller skate +๐Ÿš bus stop +๐Ÿ›ฃ๏ธ motorway +๐Ÿ›ฃ motorway +๐Ÿ›ค๏ธ railway track +๐Ÿ›ค railway track +๐Ÿ›ข๏ธ oil drum +๐Ÿ›ข oil drum +โ›ฝ fuel pump +๐Ÿ›ž wheel +๐Ÿšจ police car light +๐Ÿšฅ horizontal traffic light +๐Ÿšฆ vertical traffic light +๐Ÿ›‘ stop sign +๐Ÿšง constructionr +โš“ anchor +๐Ÿ›Ÿ ring buoy +โ›ต sailboat +๐Ÿ›ถ canoe +๐Ÿšค speedboat +๐Ÿ›ณ๏ธ passenger ship +๐Ÿ›ณ passenger ship +โ›ด๏ธ ferry +โ›ด ferry +๐Ÿ›ฅ๏ธ motor boat +๐Ÿ›ฅ motor boat +๐Ÿšข ship +โœˆ๏ธ airplane +โœˆ airplane +๐Ÿ›ฉ๏ธ small airplane +๐Ÿ›ฉ small airplane +๐Ÿ›ซ airplane departure +๐Ÿ›ฌ airplane arrival +๐Ÿช‚ parachute +๐Ÿ’บ seat +๐Ÿš helicopter +๐ŸšŸ suspension railway +๐Ÿš  mountain cableway +๐Ÿšก aerial tramway +๐Ÿ›ฐ๏ธ satellite +๐Ÿ›ฐ satellite +๐Ÿš€ rocket +๐Ÿ›ธ flying saucer +๐Ÿ›Ž๏ธ bellhop bell +๐Ÿ›Ž bellhop bell +๐Ÿงณ luggage +โŒ› hourglass done +โณ hourglass not done +โŒš watch +โฐ alarm clock +โฑ๏ธ stopwatch +โฑ stopwatch +โฒ๏ธ timer clock +โฒ timer clock +๐Ÿ•ฐ๏ธ mantelpiece clock +๐Ÿ•ฐ mantelpiece clock +๐Ÿ•› twelve oโ€™clock +๐Ÿ•ง twelve-thirty +๐Ÿ• one oโ€™clock +๐Ÿ•œ one-thirty +๐Ÿ•‘ two oโ€™clock +๐Ÿ• two-thirty +๐Ÿ•’ three oโ€™clock +๐Ÿ•ž three-thirty +๐Ÿ•“ four oโ€™clock +๐Ÿ•Ÿ four-thirty +๐Ÿ•” five oโ€™clock +๐Ÿ•  five-thirty +๐Ÿ•• six oโ€™clock +๐Ÿ•ก six-thirty +๐Ÿ•– seven oโ€™clock +๐Ÿ•ข seven-thirty +๐Ÿ•— eight oโ€™clock +๐Ÿ•ฃ eight-thirty +๐Ÿ•˜ nine oโ€™clock +๐Ÿ•ค nine-thirty +๐Ÿ•™ ten oโ€™clock +๐Ÿ•ฅ ten-thirty +๐Ÿ•š eleven oโ€™clock +๐Ÿ•ฆ eleven-thirty +๐ŸŒ‘ new moon +๐ŸŒ’ waxing crescent moon +๐ŸŒ“ first quarter moon +๐ŸŒ” waxing gibbous moon +๐ŸŒ• full moon +๐ŸŒ– waning gibbous moon +๐ŸŒ— last quarter moon +๐ŸŒ˜ waning crescent moon +๐ŸŒ™ crescent moon +๐ŸŒš new moon face +๐ŸŒ› first quarter moon face +๐ŸŒœ last quarter moon face +๐ŸŒก๏ธ thermometer +๐ŸŒก thermometer +โ˜€๏ธ sun +โ˜€ sun +๐ŸŒ full moon face +๐ŸŒž sun with face +๐Ÿช ringed planet +โญ star +๐ŸŒŸ glowing star +๐ŸŒ  shooting star +๐ŸŒŒ milky way +โ˜๏ธ cloud +โ˜ cloud +โ›… sun behind cloud +โ›ˆ๏ธ cloud with lightning and rain +โ›ˆ cloud with lightning and rain +๐ŸŒค๏ธ sun behind small cloud +๐ŸŒค sun behind small cloud +๐ŸŒฅ๏ธ sun behind large cloud +๐ŸŒฅ sun behind large cloud +๐ŸŒฆ๏ธ sun behind rain cloud +๐ŸŒฆ sun behind rain cloud +๐ŸŒง๏ธ cloud with rain +๐ŸŒง cloud with rain +๐ŸŒจ๏ธ cloud with snow +๐ŸŒจ cloud with snow +๐ŸŒฉ๏ธ cloud with lightning +๐ŸŒฉ cloud with lightning +๐ŸŒช๏ธ tornado +๐ŸŒช tornado +๐ŸŒซ๏ธ fog +๐ŸŒซ fog +๐ŸŒฌ๏ธ wind face +๐ŸŒฌ wind face +๐ŸŒ€ cyclone +๐ŸŒˆ rainbow +๐ŸŒ‚ closed umbrella +โ˜‚๏ธ umbrella +โ˜‚ umbrella +โ˜” umbrella with rain drops +โ›ฑ๏ธ umbrella on ground +โ›ฑ umbrella on ground +โšก high voltage +โ„๏ธ snowflake +โ„ snowflake +โ˜ƒ๏ธ snowman +โ˜ƒ snowman +โ›„ snowman without snow +โ˜„๏ธ comet +โ˜„ comet +๐Ÿ”ฅ fire +๐Ÿ’ง droplet +๐ŸŒŠ water wave +๐ŸŽƒ jack-o-lantern +๐ŸŽ„ Christmas tree +๐ŸŽ† fireworks +๐ŸŽ‡ sparkler +๐Ÿงจ firecracker +โœจ sparkles +๐ŸŽˆ balloon +๐ŸŽ‰ party popper +๐ŸŽŠ confetti ball +๐ŸŽ‹ tanabata tree +๐ŸŽ pine decoration +๐ŸŽŽ Japanese dolls +๐ŸŽ carp streamer +๐ŸŽ wind chime +๐ŸŽ‘ moon viewing ceremony +๐Ÿงง red envelope +๐ŸŽ€ ribbon +๐ŸŽ wrapped gift +๐ŸŽ—๏ธ reminder ribbon +๐ŸŽ— reminder ribbon +๐ŸŽŸ๏ธ admission tickets +๐ŸŽŸ admission tickets +๐ŸŽซ ticket +๐ŸŽ–๏ธ military medal +๐ŸŽ– military medal +๐Ÿ† trophy +๐Ÿ… sports medal +๐Ÿฅ‡ 1st place medal +๐Ÿฅˆ 2nd place medal +๐Ÿฅ‰ 3rd place medal +โšฝ soccer ball +โšพ baseball +๐ŸฅŽ softball +๐Ÿ€ basketball +๐Ÿ volleyball +๐Ÿˆ american football +๐Ÿ‰ rugby football +๐ŸŽพ tennis +๐Ÿฅ flying disc +๐ŸŽณ bowling +๐Ÿ cricket game +๐Ÿ‘ field hockey +๐Ÿ’ ice hockey +๐Ÿฅ lacrosse +๐Ÿ“ ping pong +๐Ÿธ badminton +๐ŸฅŠ boxing glove +๐Ÿฅ‹ martial arts uniform +๐Ÿฅ… goal net +โ›ณ flag in hole +โ›ธ๏ธ ice skate +โ›ธ ice skate +๐ŸŽฃ fishing pole +๐Ÿคฟ diving mask +๐ŸŽฝ running shirt +๐ŸŽฟ skis +๐Ÿ›ท sled +๐ŸฅŒ curling stonee +๐ŸŽฏ bullseye +๐Ÿช€ yo-yo +๐Ÿช kite +๐Ÿ”ซ water pistol +๐ŸŽฑ pool 8 ball +๐Ÿ”ฎ crystal ball +๐Ÿช„ magic wand +๐ŸŽฎ video game +๐Ÿ•น๏ธ joystick +๐Ÿ•น joystick +๐ŸŽฐ slot machine +๐ŸŽฒ game die +๐Ÿงฉ puzzle piece +๐Ÿงธ teddy bear +๐Ÿช… piรฑata +๐Ÿชฉ mirror ball +๐Ÿช† nesting dolls +โ™ ๏ธ spade suit +โ™  spade suit +โ™ฅ๏ธ heart suit +โ™ฅ heart suit +โ™ฆ๏ธ diamond suit +โ™ฆ diamond suit +โ™ฃ๏ธ club suit +โ™ฃ club suit +โ™Ÿ๏ธ chess pawn +โ™Ÿ chess pawn +๐Ÿƒ joker +๐Ÿ€„ mahjong red dragon +๐ŸŽด flower playing cards +๐ŸŽญ performing arts +๐Ÿ–ผ๏ธ framed picture +๐Ÿ–ผ framed picture +๐ŸŽจ artist palette +๐Ÿงต thread +๐Ÿชก sewing needle +๐Ÿงถ yarn +๐Ÿชข knot +๐Ÿ‘“ glasses +๐Ÿ•ถ๏ธ sunglasses +๐Ÿ•ถ sunglasses +๐Ÿฅฝ goggles +๐Ÿฅผ lab coat +๐Ÿฆบ safety vest +๐Ÿ‘” necktie +๐Ÿ‘• t-shirt +๐Ÿ‘– jeans +๐Ÿงฃ scarf +๐Ÿงค gloves +๐Ÿงฅ coat +๐Ÿงฆ socks +๐Ÿ‘— dress +๐Ÿ‘˜ kimono +๐Ÿฅป sari +๐Ÿฉฑ one-piece swimsuit +๐Ÿฉฒ briefs +๐Ÿฉณ shorts +๐Ÿ‘™ bikini +๐Ÿ‘š womanโ€™s clothes +๐Ÿชญ folding hand fan +๐Ÿ‘› purse +๐Ÿ‘œ handbag +๐Ÿ‘ clutch bag +๐Ÿ›๏ธ shopping bags +๐Ÿ› shopping bags +๐ŸŽ’ backpack +๐Ÿฉด thong sandal +๐Ÿ‘ž manโ€™s shoe +๐Ÿ‘Ÿ running shoe +๐Ÿฅพ hiking boot +๐Ÿฅฟ flat shoe +๐Ÿ‘  high-heeled shoe +๐Ÿ‘ก womanโ€™s sandal +๐Ÿฉฐ ballet shoes +๐Ÿ‘ข womanโ€™s boot +๐Ÿชฎ hair pick +๐Ÿ‘‘ crown +๐Ÿ‘’ womanโ€™s hat +๐ŸŽฉ top hat +๐ŸŽ“ graduation cap +๐Ÿงข billed cap +๐Ÿช– military helmet +โ›‘๏ธ rescue workerโ€™s helmet +โ›‘ rescue workerโ€™s helmet +๐Ÿ“ฟ prayer beads +๐Ÿ’„ lipstick +๐Ÿ’ ring +๐Ÿ’Ž gem stone +๐Ÿ”‡ muted speaker +๐Ÿ”ˆ speaker low volume +๐Ÿ”‰ speaker medium volume +๐Ÿ”Š speaker high volume +๐Ÿ“ข loudspeaker +๐Ÿ“ฃ megaphone +๐Ÿ“ฏ postal horn +๐Ÿ”” bell +๐Ÿ”• bell with slash +๐ŸŽผ musical score +๐ŸŽต musical note +๐ŸŽถ musical notes +๐ŸŽ™๏ธ studio microphone +๐ŸŽ™ studio microphone +๐ŸŽš๏ธ level slider +๐ŸŽš level slider +๐ŸŽ›๏ธ control knobs +๐ŸŽ› control knobs +๐ŸŽค microphone +๐ŸŽง headphone +๐Ÿ“ป radio +๐ŸŽท saxophone +๐Ÿช— accordion +๐ŸŽธ guitar +๐ŸŽน musical keyboard +๐ŸŽบ trumpet +๐ŸŽป violin +๐Ÿช• banjo +๐Ÿฅ drum +๐Ÿช˜ long drum +๐Ÿช‡ maracas +๐Ÿชˆ flute +๐Ÿช‰ harp +๐Ÿ“ฑ mobile phone +๐Ÿ“ฒ mobile phone with arrow +โ˜Ž๏ธ telephone +โ˜Ž telephone +๐Ÿ“ž telephone receiver +๐Ÿ“Ÿ pager +๐Ÿ“  fax machine +๐Ÿ”‹ battery +๐Ÿชซ low battery +๐Ÿ”Œ electric plug +๐Ÿ’ป laptop +๐Ÿ–ฅ๏ธ desktop computer +๐Ÿ–ฅ desktop computer +๐Ÿ–จ๏ธ printer +๐Ÿ–จ printer +โŒจ๏ธ keyboard +โŒจ keyboard +๐Ÿ–ฑ๏ธ computer mouse +๐Ÿ–ฑ computer mouse +๐Ÿ–ฒ๏ธ trackball +๐Ÿ–ฒ trackball +๐Ÿ’ฝ computer disk +๐Ÿ’พ floppy disk +๐Ÿ’ฟ optical disk +๐Ÿ“€ dvd +๐Ÿงฎ abacus +๐ŸŽฅ movie camera +๐ŸŽž๏ธ film frames +๐ŸŽž film frames +๐Ÿ“ฝ๏ธ film projector +๐Ÿ“ฝ film projector +๐ŸŽฌ clapper board +๐Ÿ“บ television +๐Ÿ“ท camera +๐Ÿ“ธ camera with flash +๐Ÿ“น video camera +๐Ÿ“ผ videocassette +๐Ÿ” magnifying glass tilted left +๐Ÿ”Ž magnifying glass tilted right +๐Ÿ•ฏ๏ธ candle +๐Ÿ•ฏ candle +๐Ÿ’ก light bulb +๐Ÿ”ฆ flashlight +๐Ÿฎ red paper lantern +๐Ÿช” diya lamp +๐Ÿ“” notebook with decorative cover +๐Ÿ“• closed book +๐Ÿ“– open book +๐Ÿ“— green book +๐Ÿ“˜ blue book +๐Ÿ“™ orange book +๐Ÿ“š books +๐Ÿ““ notebook +๐Ÿ“’ ledger +๐Ÿ“ƒ page with curl +๐Ÿ“œ scroll +๐Ÿ“„ page facing up +๐Ÿ“ฐ newspaper +๐Ÿ—ž๏ธ rolled-up newspaper +๐Ÿ—ž rolled-up newspaper +๐Ÿ“‘ bookmark tabs +๐Ÿ”– bookmark +๐Ÿท๏ธ label +๐Ÿท label +๐Ÿ’ฐ money bag +๐Ÿช™ coin +๐Ÿ’ด yen banknote +๐Ÿ’ต dollar banknote +๐Ÿ’ถ euro banknote +๐Ÿ’ท pound banknote +๐Ÿ’ธ money with wings +๐Ÿ’ณ credit card +๐Ÿงพ receipt +๐Ÿ’น chart increasing with yen +โœ‰๏ธ envelope +โœ‰ envelope +๐Ÿ“ง e-mail +๐Ÿ“จ incoming envelope +๐Ÿ“ฉ envelope with arrow +๐Ÿ“ค outbox tray +๐Ÿ“ฅ inbox tray +๐Ÿ“ฆ package +๐Ÿ“ซ closed mailbox with raised flag +๐Ÿ“ช closed mailbox with lowered flag +๐Ÿ“ฌ open mailbox with raised flag +๐Ÿ“ญ open mailbox with lowered flag +๐Ÿ“ฎ postbox +๐Ÿ—ณ๏ธ ballot box with ballot +๐Ÿ—ณ ballot box with ballot +โœ๏ธ pencil +โœ pencil +โœ’๏ธ black nib +โœ’ black nib +๐Ÿ–‹๏ธ fountain pen +๐Ÿ–‹ fountain pen +๐Ÿ–Š๏ธ pen +๐Ÿ–Š pen +๐Ÿ–Œ๏ธ paintbrush +๐Ÿ–Œ paintbrush +๐Ÿ–๏ธ crayon +๐Ÿ– crayon +๐Ÿ“ memo +๐Ÿ’ผ briefcase +๐Ÿ“ file folder +๐Ÿ“‚ open file folder +๐Ÿ—‚๏ธ card index dividers +๐Ÿ—‚ card index dividers +๐Ÿ“… calendar +๐Ÿ“† tear-off calendar +๐Ÿ—’๏ธ spiral notepad +๐Ÿ—’ spiral notepad +๐Ÿ—“๏ธ spiral calendar +๐Ÿ—“ spiral calendar +๐Ÿ“‡ card index +๐Ÿ“ˆ chart increasing +๐Ÿ“‰ chart decreasing +๐Ÿ“Š bar chart +๐Ÿ“‹ clipboard +๐Ÿ“Œ pushpin +๐Ÿ“ round pushpin +๐Ÿ“Ž paperclip +๐Ÿ–‡๏ธ linked paperclips +๐Ÿ–‡ linked paperclips +๐Ÿ“ straight ruler +๐Ÿ“ triangular ruler +โœ‚๏ธ scissors +โœ‚ scissors +๐Ÿ—ƒ๏ธ card file box +๐Ÿ—ƒ card file box +๐Ÿ—„๏ธ file cabinet +๐Ÿ—„ file cabinet +๐Ÿ—‘๏ธ wastebasket +๐Ÿ—‘ wastebasket +๐Ÿ”’ locked +๐Ÿ”“ unlocked +๐Ÿ” locked with pen +๐Ÿ” locked with key +๐Ÿ”‘ key +๐Ÿ—๏ธ old key +๐Ÿ— old key +๐Ÿ”จ hammer +๐Ÿช“ axe +โ›๏ธ pick +โ› pick +โš’๏ธ hammer and pick +โš’ hammer and pick +๐Ÿ› ๏ธ hammer and wrench +๐Ÿ›  hammer and wrench +๐Ÿ—ก๏ธ dagger +๐Ÿ—ก dagger +โš”๏ธ crossed swords +โš” crossed swords +๐Ÿ’ฃ bomb +๐Ÿชƒ boomerang +๐Ÿน bow and arrow +๐Ÿ›ก๏ธ shield +๐Ÿ›ก shield +๐Ÿชš carpentry saw +๐Ÿ”ง wrench +๐Ÿช› screwdriver +๐Ÿ”ฉ nut and bolt +โš™๏ธ gear +โš™ gear +๐Ÿ—œ๏ธ clamp +๐Ÿ—œ clamp +โš–๏ธ balance scale +โš– balance scale +๐Ÿฆฏ white cane +๐Ÿ”— link +โ›“๏ธโ€๐Ÿ’ฅ broken chain +โ›“โ€๐Ÿ’ฅ broken chain +โ›“๏ธ chains +โ›“ chains +๐Ÿช hook +๐Ÿงฐ toolbox +๐Ÿงฒ magnet +๐Ÿชœ ladder +๐Ÿช shovel +โš—๏ธ alembic +โš— alembic +๐Ÿงช test tube +๐Ÿงซ petri dish +๐Ÿงฌ dna +๐Ÿ”ฌ microscope +๐Ÿ”ญ telescope +๐Ÿ“ก satellite antenna +๐Ÿ’‰ syringe +๐Ÿฉธ drop of blood +๐Ÿ’Š pill +๐Ÿฉน adhesive bandage +๐Ÿฉผ crutch +๐Ÿฉบ stethoscope +๐Ÿฉป x-ray +๐Ÿšช door +๐Ÿ›— elevator +๐Ÿชž mirror +๐ŸชŸ window +๐Ÿ›๏ธ bed +๐Ÿ› bed +๐Ÿ›‹๏ธ couch and lamp +๐Ÿ›‹ couch and lamp +๐Ÿช‘ chair +๐Ÿšฝ toilet +๐Ÿช  plunger +๐Ÿšฟ shower +๐Ÿ› bathtub +๐Ÿชค mouse trap +๐Ÿช’ razor +๐Ÿงด lotion bottle +๐Ÿงท safety pin +๐Ÿงน broom +๐Ÿงบ basket +๐Ÿงป roll of paper +๐Ÿชฃ bucket +๐Ÿงผ soap +๐Ÿซง bubbles +๐Ÿชฅ toothbrush +๐Ÿงฝ sponge +๐Ÿงฏ fire extinguisher +๐Ÿ›’ shopping cart +๐Ÿšฌ cigarette +โšฐ๏ธ coffin +โšฐ coffin +๐Ÿชฆ headstone +โšฑ๏ธ funeral urn +โšฑ funeral urn +๐Ÿงฟ nazar amulet +๐Ÿชฌ hamsa +๐Ÿ—ฟ moai +๐Ÿชง placard +๐Ÿชช identification card +๐Ÿง ATM sign +๐Ÿšฎ litter in bin sign +๐Ÿšฐ potable water +โ™ฟ wheelchair symbol +๐Ÿšน menโ€™s room +๐Ÿšบ womenโ€™s room +๐Ÿšป restroom +๐Ÿšผ baby symbol +๐Ÿšพ water closet +๐Ÿ›‚ passport control +๐Ÿ›ƒ customs +๐Ÿ›„ baggage claim +๐Ÿ›… left luggage +โš ๏ธ warning +โš  warning +๐Ÿšธ children crossing +โ›” no entry +๐Ÿšซ prohibited +๐Ÿšณ no bicycles +๐Ÿšญ no smoking +๐Ÿšฏ no littering +๐Ÿšฑ non-potable water +๐Ÿšท no pedestrians +๐Ÿ“ต no mobile phones +๐Ÿ”ž no one under eighteen +โ˜ข๏ธ radioactive +โ˜ข radioactive +โ˜ฃ๏ธ biohazard +โ˜ฃ biohazard +โฌ†๏ธ up arrow +โฌ† up arrow +โ†—๏ธ up-right arrow +โ†— up-right arrow +โžก๏ธ right arrow +โžก right arrow +โ†˜๏ธ down-right arrow +โ†˜ down-right arrow +โฌ‡๏ธ down arrow +โฌ‡ down arrow +โ†™๏ธ down-left arrow +โ†™ down-left arrow +โฌ…๏ธ left arrow +โฌ… left arrow +โ†–๏ธ up-left arrow +โ†– up-left arrow +โ†•๏ธ up-down arrow +โ†• up-down arrow +โ†”๏ธ left-right arrow +โ†” left-right arrow +โ†ฉ๏ธ right arrow curving left +โ†ฉ right arrow curving left +โ†ช๏ธ left arrow curving right +โ†ช left arrow curving right +โคด๏ธ right arrow curving up +โคด right arrow curving up +โคต๏ธ right arrow curving down +โคต right arrow curving down +๐Ÿ”ƒ clockwise vertical arrows +๐Ÿ”„ counterclockwise arrows button +๐Ÿ”™ BACK arrow +๐Ÿ”š END arrow +๐Ÿ”› ON! arrow +๐Ÿ”œ SOON arrow +๐Ÿ” TOP arrow +๐Ÿ› place of worship +โš›๏ธ atom symbol +โš› atom symbol +๐Ÿ•‰๏ธ om +๐Ÿ•‰ om +โœก๏ธ star of David +โœก star of David +โ˜ธ๏ธ wheel of dharma +โ˜ธ wheel of dharma +โ˜ฏ๏ธ yin yang +โ˜ฏ yin yang +โœ๏ธ latin cross +โœ latin cross +โ˜ฆ๏ธ orthodox cross +โ˜ฆ orthodox cross +โ˜ช๏ธ star and crescent +โ˜ช star and crescent +โ˜ฎ๏ธ peace symbol +โ˜ฎ peace symbol +๐Ÿ•Ž menorah +๐Ÿ”ฏ dotted six-pointed star +๐Ÿชฏ khanda +โ™ˆ Aries +โ™‰ Taurus +โ™Š Gemini +โ™‹ Cancer +โ™Œ Leo +โ™ Virgo +โ™Ž Libra +โ™ Scorpio +โ™ Sagittarius +โ™‘ Capricorn +โ™’ Aquarius +โ™“ Pisces +โ›Ž Ophiuchus +๐Ÿ”€ shuffle tracks button +๐Ÿ” repeat button +๐Ÿ”‚ repeat single button +โ–ถ๏ธ play button +โ–ถ play button +โฉ fast-forward button +โญ๏ธ next track button +โญ next track button +โฏ๏ธ play or pause button +โฏ play or pause button +โ—€๏ธ reverse button +โ—€ reverse button +โช fast reverse button +โฎ๏ธ last track button +โฎ last track button +๐Ÿ”ผ upwards button +โซ fast up button +๐Ÿ”ฝ downwards button +โฌ fast down button +โธ๏ธ pause button +โธ pause button +โน๏ธ stop button +โน stop button +โบ๏ธ record button +โบ record button +โ๏ธ eject button +โ eject button +๐ŸŽฆ cinema +๐Ÿ”… dim button +๐Ÿ”† bright button +๐Ÿ“ถ antenna bars +๐Ÿ›œ wireless +๐Ÿ“ณ vibration mode +๐Ÿ“ด mobile phone off +โ™€๏ธ female sign +โ™€ female sign +โ™‚๏ธ male sign +โ™‚ male sign +โšง๏ธ transgender symbol +โšง transgender symbol +โœ–๏ธ multiply +โœ– multiply +โž• plus +โž– minus +โž— divide +๐ŸŸฐ heavy equals sign +โ™พ๏ธ infinity +โ™พ infinity +โ€ผ๏ธ double exclamation mark +โ€ผ double exclamation mark +โ‰๏ธ exclamation question mark +โ‰ exclamation question mark +โ“ red question mark +โ” white question mark +โ• white exclamation mark +โ— red exclamation mark +ใ€ฐ๏ธ wavy dash +ใ€ฐ wavy dash +๐Ÿ’ฑ currency exchange +๐Ÿ’ฒ heavy dollar sign +โš•๏ธ medical symbol +โš• medical symbol +โ™ป๏ธ recycling symbol +โ™ป recycling symbol +โšœ๏ธ fleur-de-lis +โšœ fleur-de-lis +๐Ÿ”ฑ trident emblem +๐Ÿ“› name badge +๐Ÿ”ฐ Japanese symbol for beginner +โญ• hollow red circle +โœ… check mark button +โ˜‘๏ธ check box with check +โ˜‘ check box with check +โœ”๏ธ check mark +โœ” check mark +โŒ cross mark +โŽ cross mark button +โžฐ curly loop +โžฟ double curly loop +ใ€ฝ๏ธ part alternation mark +ใ€ฝ part alternation mark +โœณ๏ธ eight-spoked asterisk +โœณ eight-spoked asterisk +โœด๏ธ eight-pointed star +โœด eight-pointed star +โ‡๏ธ sparkle +โ‡ sparkle +ยฉ๏ธ copyright +ยฉ copyright +ยฎ๏ธ registered +ยฎ registered +โ„ข๏ธ trade mark +โ„ข trade mark +๐ŸซŸ splatter +#๏ธโƒฃ keycap: # +#โƒฃ keycap: # +*๏ธโƒฃ keycap: * +*โƒฃ keycap: * +0๏ธโƒฃ keycap: 0 +0โƒฃ keycap: 0 +1๏ธโƒฃ keycap: 1 +1โƒฃ keycap: 1 +2๏ธโƒฃ keycap: 2 +2โƒฃ keycap: 2 +3๏ธโƒฃ keycap: 3 +3โƒฃ keycap: 3 +4๏ธโƒฃ keycap: 4 +4โƒฃ keycap: 4 +5๏ธโƒฃ keycap: 5 +5โƒฃ keycap: 5 +6๏ธโƒฃ keycap: 6 +6โƒฃ keycap: 6 +7๏ธโƒฃ keycap: 7 +7โƒฃ keycap: 7 +8๏ธโƒฃ keycap: 8 +8โƒฃ keycap: 8 +9๏ธโƒฃ keycap: 9 +9โƒฃ keycap: 9 +๐Ÿ”Ÿ keycap: 10 +๐Ÿ”  input latin uppercase +๐Ÿ”ก input latin lowercase +๐Ÿ”ข input numbers +๐Ÿ”ฃ input symbols +๐Ÿ”ค input latin letters +๐Ÿ…ฐ๏ธ A button (blood type) +๐Ÿ…ฐ A button (blood type) +๐Ÿ†Ž AB button (blood type) +๐Ÿ…ฑ๏ธ B button (blood type) +๐Ÿ…ฑ B button (blood type) +๐Ÿ†‘ CL button +๐Ÿ†’ COOL button +๐Ÿ†“ FREE button +โ„น๏ธ information +โ„น information +๐Ÿ†” ID button +โ“‚๏ธ circled M +โ“‚ circled M +๐Ÿ†• NEW button +๐Ÿ†– NG button +๐Ÿ…พ๏ธ O button (blood type) +๐Ÿ…พ O button (blood type) +๐Ÿ†— OK button +๐Ÿ…ฟ๏ธ P button +๐Ÿ…ฟ P button +๐Ÿ†˜ SOS button +๐Ÿ†™ UP! button +๐Ÿ†š VS button +๐Ÿˆ Japanese โ€œhereโ€ button +๐Ÿˆ‚๏ธ Japanese โ€œservice chargeโ€ button +๐Ÿˆ‚ Japanese โ€œservice chargeโ€ button +๐Ÿˆท๏ธ Japanese โ€œmonthly amountโ€ button +๐Ÿˆท Japanese โ€œmonthly amountโ€ button +๐Ÿˆถ Japanese โ€œnot free of chargeโ€ button +๐Ÿˆฏ Japanese โ€œreservedโ€ button +๐Ÿ‰ Japanese โ€œbargainโ€ button +๐Ÿˆน Japanese โ€œdiscountโ€ button +๐Ÿˆš Japanese โ€œfree of chargeโ€ button +๐Ÿˆฒ Japanese โ€œprohibitedโ€ button +๐Ÿ‰‘ Japanese โ€œacceptableโ€ button +๐Ÿˆธ Japanese โ€œapplicationโ€ button +๐Ÿˆด Japanese โ€œpassing gradeโ€ button +๐Ÿˆณ Japanese โ€œvacancyโ€ button +ใŠ—๏ธ Japanese โ€œcongratulationsโ€ button +ใŠ— Japanese โ€œcongratulationsโ€ button +ใŠ™๏ธ Japanese โ€œsecretโ€ button +ใŠ™ Japanese โ€œsecretโ€ button +๐Ÿˆบ Japanese โ€œopen for businessโ€ button +๐Ÿˆต Japanese โ€œno vacancyโ€ button +๐Ÿ”ด red circle +๐ŸŸ  orange circle +๐ŸŸก yellow circle +๐ŸŸข green circle +๐Ÿ”ต blue circle +๐ŸŸฃ purple circle +๐ŸŸค brown circle +โšซ black circle +โšช white circle +๐ŸŸฅ red square +๐ŸŸง orange square +๐ŸŸจ yellow square +๐ŸŸฉ green square +๐ŸŸฆ blue square +๐ŸŸช purple square +๐ŸŸซ brown square +โฌ› black large square +โฌœ white large square +โ—ผ๏ธ black medium square +โ—ผ black medium square +โ—ป๏ธ white medium square +โ—ป white medium square +โ—พ black medium-small square +โ—ฝ white medium-small square +โ–ช๏ธ black small square +โ–ช black small square +โ–ซ๏ธ white small square +โ–ซ white small square +๐Ÿ”ถ large orange diamond +๐Ÿ”ท large blue diamond +๐Ÿ”ธ small orange diamond +๐Ÿ”น small blue diamond +๐Ÿ”บ red triangle pointed up +๐Ÿ”ป red triangle pointed down +๐Ÿ’  diamond with a dot +๐Ÿ”˜ radio button +๐Ÿ”ณ white square button +๐Ÿ”ฒ black square button +๐Ÿ chequered flag +๐Ÿšฉ triangular flag +๐ŸŽŒ crossed flags +๐Ÿด black flag +๐Ÿณ๏ธ white flag +๐Ÿณ white flag +๐Ÿณ๏ธโ€๐ŸŒˆ rainbow flag +๐Ÿณโ€โšง transgender flag +๐Ÿดโ€โ˜ ๏ธ pirate flag +๐Ÿดโ€โ˜  pirate flag +๐Ÿ‡ฆ๐Ÿ‡จ flag: Ascension Island +๐Ÿ‡ฆ๐Ÿ‡ฉ flag: Andorra +๐Ÿ‡ฆ๐Ÿ‡ช flag: United Arab Emirates +๐Ÿ‡ฆ๐Ÿ‡ซ flag: Afghanistan +๐Ÿ‡ฆ๐Ÿ‡ฌ flag: Antigua & Barbuda +๐Ÿ‡ฆ๐Ÿ‡ฎ flag: Anguilla +๐Ÿ‡ฆ๐Ÿ‡ฑ flag: Albania +๐Ÿ‡ฆ๐Ÿ‡ฒ flag: Armenia +๐Ÿ‡ฆ๐Ÿ‡ด flag: Angola +๐Ÿ‡ฆ๐Ÿ‡ถ flag: Antarctica +๐Ÿ‡ฆ๐Ÿ‡ท flag: Argentina +๐Ÿ‡ฆ๐Ÿ‡ธ flag: American Samoa +๐Ÿ‡ฆ๐Ÿ‡น flag: Austria +๐Ÿ‡ฆ๐Ÿ‡บ flag: Australia +๐Ÿ‡ฆ๐Ÿ‡ผ flag: Aruba +๐Ÿ‡ฆ๐Ÿ‡ฝ flag: ร…land Islands +๐Ÿ‡ฆ๐Ÿ‡ฟ flag: Azerbaijan +๐Ÿ‡ง๐Ÿ‡ฆ flag: Bosnia & Herzegovina +๐Ÿ‡ง๐Ÿ‡ง flag: Barbados +๐Ÿ‡ง๐Ÿ‡ฉ flag: Bangladesh +๐Ÿ‡ง๐Ÿ‡ช flag: Belgium +๐Ÿ‡ง๐Ÿ‡ซ flag: Burkina Faso +๐Ÿ‡ง๐Ÿ‡ฌ flag: Bulgaria +๐Ÿ‡ง๐Ÿ‡ญ flag: Bahrain +๐Ÿ‡ง๐Ÿ‡ฎ flag: Burundi +๐Ÿ‡ง๐Ÿ‡ฏ flag: Benin +๐Ÿ‡ง๐Ÿ‡ฑ flag: St. Barthรฉlemy +๐Ÿ‡ง๐Ÿ‡ฒ flag: Bermuda +๐Ÿ‡ง๐Ÿ‡ณ flag: Brunei +๐Ÿ‡ง๐Ÿ‡ด flag: Bolivia +๐Ÿ‡ง๐Ÿ‡ถ flag: Caribbean Netherlands +๐Ÿ‡ง๐Ÿ‡ท flag: Brazil +๐Ÿ‡ง๐Ÿ‡ธ flag: Bahamas +๐Ÿ‡ง๐Ÿ‡น flag: Bhutan +๐Ÿ‡ง๐Ÿ‡ป flag: Bouvet Island +๐Ÿ‡ง๐Ÿ‡ผ flag: Botswana +๐Ÿ‡ง๐Ÿ‡พ flag: Belarus +๐Ÿ‡ง๐Ÿ‡ฟ flag: Belize +๐Ÿ‡จ๐Ÿ‡ฆ flag: Canada +๐Ÿ‡จ๐Ÿ‡จ flag: Cocos (Keeling) Islands +๐Ÿ‡จ๐Ÿ‡ฉ flag: Congo - Kinshasa +๐Ÿ‡จ๐Ÿ‡ซ flag: Central African Republic +๐Ÿ‡จ๐Ÿ‡ฌ flag: Congo - Brazzaville +๐Ÿ‡จ๐Ÿ‡ญ flag: Switzerland +๐Ÿ‡จ๐Ÿ‡ฎ flag: Cรดte dโ€™Ivoire +๐Ÿ‡จ๐Ÿ‡ฐ flag: Cook Islands +๐Ÿ‡จ๐Ÿ‡ฑ flag: Chile +๐Ÿ‡จ๐Ÿ‡ฒ flag: Cameroon +๐Ÿ‡จ๐Ÿ‡ณ flag: China +๐Ÿ‡จ๐Ÿ‡ด flag: Colombia +๐Ÿ‡จ๐Ÿ‡ต flag: Clipperton Island +๐Ÿ‡จ๐Ÿ‡ถ flag: Sark +๐Ÿ‡จ๐Ÿ‡ท flag: Costa Rica +๐Ÿ‡จ๐Ÿ‡บ flag: Cuba +๐Ÿ‡จ๐Ÿ‡ป flag: Cape Verde +๐Ÿ‡จ๐Ÿ‡ผ flag: Curaรงao +๐Ÿ‡จ๐Ÿ‡ฝ flag: Christmas Island +๐Ÿ‡จ๐Ÿ‡พ flag: Cyprus +๐Ÿ‡จ๐Ÿ‡ฟ flag: Czechia +๐Ÿ‡ฉ๐Ÿ‡ช flag: Germany +๐Ÿ‡ฉ๐Ÿ‡ฌ flag: Diego Garcia +๐Ÿ‡ฉ๐Ÿ‡ฏ flag: Djibouti +๐Ÿ‡ฉ๐Ÿ‡ฐ flag: Denmark +๐Ÿ‡ฉ๐Ÿ‡ฒ flag: Dominica +๐Ÿ‡ฉ๐Ÿ‡ด flag: Dominican Republic +๐Ÿ‡ฉ๐Ÿ‡ฟ flag: Algeria +๐Ÿ‡ช๐Ÿ‡ฆ flag: Ceuta & Melilla +๐Ÿ‡ช๐Ÿ‡จ flag: Ecuador +๐Ÿ‡ช๐Ÿ‡ช flag: Estonia +๐Ÿ‡ช๐Ÿ‡ฌ flag: Egypt +๐Ÿ‡ช๐Ÿ‡ญ flag: Western Sahara +๐Ÿ‡ช๐Ÿ‡ท flag: Eritrea +๐Ÿ‡ช๐Ÿ‡ธ flag: Spain +๐Ÿ‡ช๐Ÿ‡น flag: Ethiopia +๐Ÿ‡ช๐Ÿ‡บ flag: European Union +๐Ÿ‡ซ๐Ÿ‡ฎ flag: Finland +๐Ÿ‡ซ๐Ÿ‡ฏ flag: Fiji +๐Ÿ‡ซ๐Ÿ‡ฐ flag: Falkland Islands +๐Ÿ‡ซ๐Ÿ‡ฒ flag: Micronesia +๐Ÿ‡ซ๐Ÿ‡ด flag: Faroe Islands +๐Ÿ‡ซ๐Ÿ‡ท flag: France +๐Ÿ‡ฌ๐Ÿ‡ฆ flag: Gabon +๐Ÿ‡ฌ๐Ÿ‡ง flag: United Kingdom +๐Ÿ‡ฌ๐Ÿ‡ฉ flag: Grenada +๐Ÿ‡ฌ๐Ÿ‡ช flag: Georgia +๐Ÿ‡ฌ๐Ÿ‡ซ flag: French Guiana +๐Ÿ‡ฌ๐Ÿ‡ฌ flag: Guernsey +๐Ÿ‡ฌ๐Ÿ‡ญ flag: Ghana +๐Ÿ‡ฌ๐Ÿ‡ฎ flag: Gibraltar +๐Ÿ‡ฌ๐Ÿ‡ฑ flag: Greenland +๐Ÿ‡ฌ๐Ÿ‡ฒ flag: Gambia +๐Ÿ‡ฌ๐Ÿ‡ณ flag: Guinea +๐Ÿ‡ฌ๐Ÿ‡ต flag: Guadeloupe +๐Ÿ‡ฌ๐Ÿ‡ถ flag: Equatorial Guinea +๐Ÿ‡ฌ๐Ÿ‡ท flag: Greece +๐Ÿ‡ฌ๐Ÿ‡ธ flag: South Georgia & South Sandwich Islands +๐Ÿ‡ฌ๐Ÿ‡น flag: Guatemala +๐Ÿ‡ฌ๐Ÿ‡บ flag: Guam +๐Ÿ‡ฌ๐Ÿ‡ผ flag: Guinea-Bissau +๐Ÿ‡ฌ๐Ÿ‡พ flag: Guyana +๐Ÿ‡ญ๐Ÿ‡ฐ flag: Hong Kong SAR China +๐Ÿ‡ญ๐Ÿ‡ฒ flag: Heard & McDonald Islands +๐Ÿ‡ญ๐Ÿ‡ณ flag: Honduras +๐Ÿ‡ญ๐Ÿ‡ท flag: Croatia +๐Ÿ‡ญ๐Ÿ‡น flag: Haiti +๐Ÿ‡ญ๐Ÿ‡บ flag: Hungary +๐Ÿ‡ฎ๐Ÿ‡จ flag: Canary Islands +๐Ÿ‡ฎ๐Ÿ‡ฉ flag: Indonesia +๐Ÿ‡ฎ๐Ÿ‡ช flag: Ireland +๐Ÿ‡ฎ๐Ÿ‡ฑ flag: Israel +๐Ÿ‡ฎ๐Ÿ‡ฒ flag: Isle of Man +๐Ÿ‡ฎ๐Ÿ‡ณ flag: India +๐Ÿ‡ฎ๐Ÿ‡ด flag: British Indian Ocean Territory +๐Ÿ‡ฎ๐Ÿ‡ถ flag: Iraq +๐Ÿ‡ฎ๐Ÿ‡ท flag: Iran +๐Ÿ‡ฎ๐Ÿ‡ธ flag: Iceland +๐Ÿ‡ฎ๐Ÿ‡น flag: Italy ๐Ÿ‡ฏ +๐Ÿ‡ฏ๐Ÿ‡ช flag: Jersey +๐Ÿ‡ฏ๐Ÿ‡ฒ flag: Jamaica +๐Ÿ‡ฏ๐Ÿ‡ด flag: Jordan +๐Ÿ‡ฏ๐Ÿ‡ต flag: Japan +๐Ÿ‡ฐ๐Ÿ‡ช flag: Kenya +๐Ÿ‡ฐ๐Ÿ‡ฌ flag: Kyrgyzstan +๐Ÿ‡ฐ๐Ÿ‡ญ flag: Cambodia +๐Ÿ‡ฐ๐Ÿ‡ฎ flag: Kiribati +๐Ÿ‡ฐ๐Ÿ‡ฒ flag: Comoros +๐Ÿ‡ฐ๐Ÿ‡ณ flag: St. Kitts & Nevis +๐Ÿ‡ฐ๐Ÿ‡ต flag: North Korea +๐Ÿ‡ฐ๐Ÿ‡ท flag: South Korea +๐Ÿ‡ฐ๐Ÿ‡ผ flag: Kuwait +๐Ÿ‡ฐ๐Ÿ‡พ flag: Cayman Islands +๐Ÿ‡ฐ๐Ÿ‡ฟ flag: Kazakhstan +๐Ÿ‡ฑ๐Ÿ‡ฆ flag: Laos +๐Ÿ‡ฑ๐Ÿ‡ง flag: Lebanon +๐Ÿ‡ฑ๐Ÿ‡จ flag: St. Lucia +๐Ÿ‡ฑ๐Ÿ‡ฎ flag: Liechtenstein +๐Ÿ‡ฑ๐Ÿ‡ฐ flag: Sri Lanka +๐Ÿ‡ฑ๐Ÿ‡ท flag: Liberia +๐Ÿ‡ฑ๐Ÿ‡ธ flag: Lesotho +๐Ÿ‡ฑ๐Ÿ‡น flag: Lithuania +๐Ÿ‡ฑ๐Ÿ‡บ flag: Luxembourg +๐Ÿ‡ฑ๐Ÿ‡ป flag: Latvia +๐Ÿ‡ฑ๐Ÿ‡พ flag: Libya +๐Ÿ‡ฒ๐Ÿ‡ฆ flag: Morocco +๐Ÿ‡ฒ๐Ÿ‡จ flag: Monaco +๐Ÿ‡ฒ๐Ÿ‡ฉ flag: Moldova +๐Ÿ‡ฒ๐Ÿ‡ช flag: Montenegro +๐Ÿ‡ฒ๐Ÿ‡ซ flag: St. Martin +๐Ÿ‡ฒ๐Ÿ‡ฌ flag: Madagascar +๐Ÿ‡ฒ๐Ÿ‡ญ flag: Marshall Islands +๐Ÿ‡ฒ๐Ÿ‡ฐ flag: North Macedonia +๐Ÿ‡ฒ๐Ÿ‡ฑ flag: Mali +๐Ÿ‡ฒ๐Ÿ‡ฒ flag: Myanmar (Burma) +๐Ÿ‡ฒ๐Ÿ‡ณ flag: Mongolia +๐Ÿ‡ฒ๐Ÿ‡ด flag: Macao SAR China +๐Ÿ‡ฒ๐Ÿ‡ต flag: Northern Mariana Islands +๐Ÿ‡ฒ๐Ÿ‡ถ flag: Martinique +๐Ÿ‡ฒ๐Ÿ‡ท flag: Mauritania +๐Ÿ‡ฒ๐Ÿ‡ธ flag: Montserrat +๐Ÿ‡ฒ๐Ÿ‡น flag: Malta +๐Ÿ‡ฒ๐Ÿ‡บ flag: Mauritius +๐Ÿ‡ฒ๐Ÿ‡ป flag: Maldives +๐Ÿ‡ฒ๐Ÿ‡ผ flag: Malawi +๐Ÿ‡ฒ๐Ÿ‡ฝ flag: Mexico +๐Ÿ‡ฒ๐Ÿ‡พ flag: Malaysia +๐Ÿ‡ฒ๐Ÿ‡ฟ flag: Mozambique +๐Ÿ‡ณ๐Ÿ‡ฆ flag: Namibia +๐Ÿ‡ณ๐Ÿ‡จ flag: New Caledonia +๐Ÿ‡ณ๐Ÿ‡ช flag: Niger +๐Ÿ‡ณ๐Ÿ‡ซ flag: Norfolk Island +๐Ÿ‡ณ๐Ÿ‡ฌ flag: Nigeria +๐Ÿ‡ณ๐Ÿ‡ฎ flag: Nicaragua +๐Ÿ‡ณ๐Ÿ‡ฑ flag: Netherlands +๐Ÿ‡ณ๐Ÿ‡ด flag: Norway +๐Ÿ‡ณ๐Ÿ‡ต flag: Nepal +๐Ÿ‡ณ๐Ÿ‡ท flag: Nauru +๐Ÿ‡ณ๐Ÿ‡บ flag: Niue +๐Ÿ‡ณ๐Ÿ‡ฟ flag: New Zealand +๐Ÿ‡ด๐Ÿ‡ฒ flag: Oman +๐Ÿ‡ต๐Ÿ‡ฆ flag: Panama +๐Ÿ‡ต๐Ÿ‡ช flag: Peru +๐Ÿ‡ต๐Ÿ‡ซ flag: French Polynesia +๐Ÿ‡ต๐Ÿ‡ฌ flag: Papua New Guinea +๐Ÿ‡ต๐Ÿ‡ญ flag: Philippines +๐Ÿ‡ต๐Ÿ‡ฐ flag: Pakistan +๐Ÿ‡ต๐Ÿ‡ฑ flag: Poland +๐Ÿ‡ต๐Ÿ‡ฒ flag: St. Pierre & Miquelon +๐Ÿ‡ต๐Ÿ‡ณ flag: Pitcairn Islands +๐Ÿ‡ต๐Ÿ‡ท flag: Puerto Rico +๐Ÿ‡ต๐Ÿ‡ธ flag: Palestinian Territories +๐Ÿ‡ต๐Ÿ‡น flag: Portugal +๐Ÿ‡ต๐Ÿ‡ผ flag: Palau +๐Ÿ‡ต๐Ÿ‡พ flag: Paraguay +๐Ÿ‡ถ๐Ÿ‡ฆ flag: Qatar +๐Ÿ‡ท๐Ÿ‡ช flag: Rรฉunion +๐Ÿ‡ท๐Ÿ‡ด flag: Romania +๐Ÿ‡ท๐Ÿ‡ธ flag: Serbia +๐Ÿ‡ท๐Ÿ‡บ flag: Russia +๐Ÿ‡ท๐Ÿ‡ผ flag: Rwanda +๐Ÿ‡ธ๐Ÿ‡ฆ flag: Saudi Arabia +๐Ÿ‡ธ๐Ÿ‡ง flag: Solomon Islands +๐Ÿ‡ธ๐Ÿ‡จ flag: Seychelles +๐Ÿ‡ธ๐Ÿ‡ฉ flag: Sudan +๐Ÿ‡ธ๐Ÿ‡ช flag: Sweden +๐Ÿ‡ธ๐Ÿ‡ฌ flag: Singapore +๐Ÿ‡ธ๐Ÿ‡ญ flag: St. Helena +๐Ÿ‡ธ๐Ÿ‡ฎ flag: Slovenia +๐Ÿ‡ธ๐Ÿ‡ฏ flag: Svalbard & Jan Mayen +๐Ÿ‡ธ๐Ÿ‡ฐ flag: Slovakia +๐Ÿ‡ธ๐Ÿ‡ฑ flag: Sierra Leone +๐Ÿ‡ธ๐Ÿ‡ฒ flag: San Marino +๐Ÿ‡ธ๐Ÿ‡ณ flag: Senegal +๐Ÿ‡ธ๐Ÿ‡ด flag: Somalia +๐Ÿ‡ธ๐Ÿ‡ท flag: Suriname +๐Ÿ‡ธ๐Ÿ‡ธ flag: South Sudan +๐Ÿ‡ธ๐Ÿ‡น flag: Sรฃo Tomรฉ & Prรญncipe +๐Ÿ‡ธ๐Ÿ‡ป flag: El Salvador +๐Ÿ‡ธ๐Ÿ‡ฝ flag: Sint Maarten +๐Ÿ‡ธ๐Ÿ‡พ flag: Syria +๐Ÿ‡ธ๐Ÿ‡ฟ flag: Eswatini +๐Ÿ‡น๐Ÿ‡ฆ flag: Tristan da Cunha +๐Ÿ‡น๐Ÿ‡จ flag: Turks & Caicos Islands +๐Ÿ‡น๐Ÿ‡ฉ flag: Chad +๐Ÿ‡น๐Ÿ‡ซ flag: French Southern Territories +๐Ÿ‡น๐Ÿ‡ฌ flag: Togo +๐Ÿ‡น๐Ÿ‡ญ flag: Thailand +๐Ÿ‡น๐Ÿ‡ฏ flag: Tajikistan +๐Ÿ‡น๐Ÿ‡ฐ flag: Tokelau +๐Ÿ‡น๐Ÿ‡ฑ flag: Timor-Leste +๐Ÿ‡น๐Ÿ‡ฒ flag: Turkmenistan +๐Ÿ‡น๐Ÿ‡ณ flag: Tunisia +๐Ÿ‡น๐Ÿ‡ด flag: Tonga +๐Ÿ‡น๐Ÿ‡ท flag: Tรผrkiye +๐Ÿ‡น๐Ÿ‡น flag: Trinidad & Tobago +๐Ÿ‡น๐Ÿ‡ป flag: Tuvalu +๐Ÿ‡น๐Ÿ‡ผ flag: Taiwan +๐Ÿ‡น๐Ÿ‡ฟ flag: Tanzania +๐Ÿ‡บ๐Ÿ‡ฆ flag: Ukraine +๐Ÿ‡บ๐Ÿ‡ฌ flag: Uganda +๐Ÿ‡บ๐Ÿ‡ฒ flag: U.S. Outlying Islands +๐Ÿ‡บ๐Ÿ‡ณ flag: United Nations +๐Ÿ‡บ๐Ÿ‡ธ flag: United States +๐Ÿ‡บ๐Ÿ‡พ flag: Uruguay +๐Ÿ‡บ๐Ÿ‡ฟ flag: Uzbekistan +๐Ÿ‡ป๐Ÿ‡ฆ flag: Vatican City +๐Ÿ‡ป๐Ÿ‡จ flag: St. Vincent & Grenadines +๐Ÿ‡ป๐Ÿ‡ช flag: Venezuela +๐Ÿ‡ป๐Ÿ‡ฌ flag: British Virgin Islands +๐Ÿ‡ป๐Ÿ‡ฎ flag: U.S. Virgin Islands +๐Ÿ‡ป๐Ÿ‡ณ flag: Vietnam +๐Ÿ‡ป๐Ÿ‡บ flag: Vanuatu +๐Ÿ‡ผ๐Ÿ‡ซ flag: Wallis & Futuna +๐Ÿ‡ผ๐Ÿ‡ธ flag: Samoa +๐Ÿ‡ฝ๐Ÿ‡ฐ flag: Kosovo +๐Ÿ‡พ๐Ÿ‡ช flag: Yemen +๐Ÿ‡พ๐Ÿ‡น flag: Mayotte +๐Ÿ‡ฟ๐Ÿ‡ฆ flag: South Africa +๐Ÿ‡ฟ๐Ÿ‡ฒ flag: Zambia +๐Ÿ‡ฟ๐Ÿ‡ผ flag: Zimbabwe +๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ flag: England +๐Ÿด๓ ง๓ ข๓ ณ๓ ฃ๓ ด๓ ฟ flag: Scotland +๐Ÿด๓ ง๓ ข๓ ท๓ ฌ๓ ณ๓ ฟ flag: Wales \ No newline at end of file diff --git a/config/hypr/scripts/RofiSearch.sh b/config/hypr/scripts/RofiSearch.sh new file mode 100644 index 0000000..9301fc6 --- /dev/null +++ b/config/hypr/scripts/RofiSearch.sh @@ -0,0 +1,17 @@ +# Modified Script for Google Search +# Original Submitted by https://github.com/LeventKaanOguz + +# Opens rofi in dmenu mod and waits for input. Then pushes the input to the query of the URL. + +rofi_theme="$HOME/.config/rofi/config-search.rasi" +msg='โ€ผ๏ธ **note** โ€ผ๏ธ search via default web browser' +# Kill Rofi if already running before execution +if pgrep -x "rofi" >/dev/null; then + pkill rofi + #exit 0 +fi + +# Open rofi with a dmenu and pass the selected item to xdg-open for Google search +#echo "" | rofi -dmenu -config "$rofi_config" | xargs -I{} xdg-open "https://www.google.com/search?q={}" + +echo "" | rofi -dmenu -config $rofi_theme -mesg "$msg" | xargs -I{} xdg-open "https://www.google.com/search?q={}" diff --git a/config/hypr/scripts/RofiThemeSelector-modified.sh b/config/hypr/scripts/RofiThemeSelector-modified.sh new file mode 100644 index 0000000..b84fa96 --- /dev/null +++ b/config/hypr/scripts/RofiThemeSelector-modified.sh @@ -0,0 +1,228 @@ +#!/bin/bash +# A modified version of Rofi-Theme-Selector, concentrating only on ~/.local and also, applying only 10 @themes in ~/.config/rofi/config.rasi +# as opposed to continous adding of //@theme + +# This code is released in public domain by Dave Davenport + +iDIR="$HOME/.config/swaync/images" + + +OS="linux" + +ROFI=$(command -v rofi) +SED=$(command -v sed) +MKTEMP=$(command -v mktemp) +NOTIFY_SEND=$(command -v notify-send) + +if [ -z "${SED}" ] +then + echo "Did not find 'sed', script cannot continue." + exit 1 +fi +if [ -z "${MKTEMP}" ] +then + echo "Did not find 'mktemp', script cannot continue." + exit 1 +fi +if [ -z "${ROFI}" ] +then + echo "Did not find rofi, there is no point to continue." + exit 1 +fi +if [ -z "${NOTIFY_SEND}" ] +then + echo "Did not find 'notify-send', notifications won't work." +fi + +TMP_CONFIG_FILE=$(${MKTEMP}).rasi +#rofi_theme_dir="${HOME}/.local/share/rofi/themes" +rofi_config_file="${XDG_CONFIG_HOME:-${HOME}/.config}/rofi/config.rasi" + +## +# Array with parts to the found themes. +# And array with the printable name. +## +declare -a themes +declare -a theme_names + +## +# Function that tries to find all installed rofi themes. +# This fills in #themes array and formats a displayable string #theme_names +## +# Find themes in defined directories +find_themes() { + directories=("$HOME/.local/share/rofi/themes" "$HOME/.config/rofi/themes") + + for TD in "${directories[@]}"; do + if [ -d "$TD" ]; then + echo "Checking themes in: $TD" + for file in "$TD"/*.rasi; do + if [ -f "$file" ] && [ ! -L "$file" ]; then + themes+=("$file") + theme_names+=("$(basename "${file%.*}")") + else + echo "Skipping symlink: $file" + fi + done + else + echo "Directory does not exist: $TD" + fi + done +} + +## +# Function to add or update theme in the config.rasi +## +add_theme_to_config() { + local theme_name="$1" + local theme_path + + # Determine the correct path for the theme + if [[ -f "$HOME/.local/share/rofi/themes/$theme_name.rasi" ]]; then + theme_path="$HOME/.local/share/rofi/themes/$theme_name.rasi" + elif [[ -f "$HOME/.config/rofi/themes/$theme_name.rasi" ]]; then + theme_path="$HOME/.config/rofi/themes/$theme_name.rasi" + else + echo "Theme not found: $theme_name" + return 1 + fi + + # Resolve symlinks if present + if [[ -L "$theme_path" ]]; then + theme_path=$(readlink -f "$theme_path") + fi + + # Convert path to use ~ for home directory + theme_path_with_tilde="~${theme_path#$HOME}" + + # Add or update @theme line in config + if ! grep -q '^\s*@theme' "$rofi_config_file"; then + echo -e "\n\n@theme \"$theme_path_with_tilde\"" >> "$rofi_config_file" + echo "Added @theme \"$theme_path_with_tilde\" to $rofi_config_file" + else + $SED -i "s/^\(\s*@theme.*\)/\/\/\1/" "$rofi_config_file" + echo -e "@theme \"$theme_path_with_tilde\"" >> "$rofi_config_file" + echo "Updated @theme line to $theme_path_with_tilde" + fi + + # Limit the number of @theme lines to a maximum of 9 + max_lines=9 + total_lines=$(grep -c '^\s*//@theme' "$rofi_config_file") + + if [ "$total_lines" -gt "$max_lines" ]; then + excess=$((total_lines - max_lines)) + for i in $(seq 1 "$excess"); do + $SED -i '0,/^\s*\/\/@theme/ { /^\s*\/\/@theme/ {d; q; }}' "$rofi_config_file" + done + echo "Removed excess //@theme lines" + fi +} + +## +# Create a copy of rofi config +## +create_config_copy() +{ + ${ROFI} -dump-config > "${TMP_CONFIG_FILE}" + # remove theme entry. + ${SED} -i 's/^\s*theme:\s\+".*"\s*;//g' "${TMP_CONFIG_FILE}" +} + +### +# Print the list out so it can be displayed by rofi. +## +create_theme_list() +{ + OLDIFS=${IFS} + IFS='|' + for themen in ${theme_names[@]} + do + echo "${themen}" + done + IFS=${OLDIFS} +} + +## +# Thee indicate what entry is selected. +## +declare -i SELECTED + +select_theme() +{ + local MORE_FLAGS=(-dmenu -format i -no-custom -p "Theme" -markup -config "${TMP_CONFIG_FILE}" -i) + MORE_FLAGS+=(-kb-custom-1 "Alt-a") + MORE_FLAGS+=(-u 2,3 -a 4,5 ) + local CUR="default" + while true + do + declare -i RTR + declare -i RES + local MESG="""You can preview themes by hitting Enter. +Alt-a to accept the new theme. +Escape to cancel +Current theme: ${CUR} +When setting a new theme this will override previous theme settings. +Please update your config file if you have local modifications.""" + THEME_FLAG= + if [ -n "${SELECTED}" ] + then + THEME_FLAG="-theme ${themes[${SELECTED}]}" + fi + RES=$( create_theme_list | ${ROFI} ${THEME_FLAG} ${MORE_FLAGS[@]} -cycle -selected-row "${SELECTED}" -mesg "${MESG}") + RTR=$? + if [ "${RTR}" = 10 ] + then + return 0; + elif [ "${RTR}" = 1 ] + then + return 1; + elif [ "${RTR}" = 65 ] + then + return 1; + fi + CUR=${theme_names[${RES}]} + SELECTED=${RES} + done +} + +############################################################################################################ +# Actual program execution +########################################################################################################### +## +# Find all themes +## +find_themes + +## +# Do check if there are themes. +## +if [ ${#themes[@]} = 0 ] +then + ${ROFI} -e "No themes found." + exit 0 +fi + +## +# Create copy of config to play with in preview +## +create_config_copy + +## +# Show the themes to user. +## +if select_theme && [ -n "${SELECTED}" ] +then + # Apply the selected theme + add_theme_to_config "${theme_names[${SELECTED}]}" + + # Send notification with the selected theme name + selection="${theme_names[${SELECTED}]}" + if [ -n "$NOTIFY_SEND" ]; then + notify-send -u low -i "$iDIR/ja.png" "Rofi Theme applied:" "$selection" + fi +fi + +## +# Remove temp. config. +## +rm -- "${TMP_CONFIG_FILE}" diff --git a/config/hypr/scripts/RofiThemeSelector.sh b/config/hypr/scripts/RofiThemeSelector.sh new file mode 100644 index 0000000..76c0d59 --- /dev/null +++ b/config/hypr/scripts/RofiThemeSelector.sh @@ -0,0 +1,74 @@ +#!/bin/bash +# Script for adding a selected theme to the Rofi config + +IFS=$'\n\t' + +# Define directories and variables +rofi_theme_dir="$HOME/.config/rofi/themes" +rofi_config_file="$HOME/.config/rofi/config.rasi" +SED=$(which sed) +iDIR="$HOME/.config/swaync/images" +rofi_theme="$HOME/.config/rofi/config-rofi-theme.rasi" + +# Function to display menu options +menu() { + options=() + while IFS= read -r file; do + options+=("$(basename "$file")") + done < <(find -L "$rofi_theme_dir" -maxdepth 1 -type f -exec basename {} \; | sort) + + printf '%s\n' "${options[@]}" +} + +# Function to add or update theme in the config.rasi +add_theme_to_config() { + local theme_name="$1" + local theme_path="$rofi_theme_dir/$theme_name" + + # if config in $HOME to write as $HOME + if [[ "$theme_path" == $HOME/* ]]; then + theme_path_with_tilde="~${theme_path#$HOME}" + else + theme_path_with_tilde="$theme_path" + fi + + # If no @theme is in the file, add it + if ! grep -q '^\s*@theme' "$rofi_config_file"; then + echo -e "\n\n@theme \"$theme_path_with_tilde\"" >> "$rofi_config_file" + echo "Added @theme \"$theme_path_with_tilde\" to $rofi_config_file" + else + $SED -i "s/^\(\s*@theme.*\)/\/\/\1/" "$rofi_config_file" + echo -e "@theme \"$theme_path_with_tilde\"" >> "$rofi_config_file" + echo "Updated @theme line to $theme_path_with_tilde" + fi + + # Ensure no more than max # of lines with //@theme lines + max_line="9" + total_lines=$(grep -c '^\s*//@theme' "$rofi_config_file") + + if [ "$total_lines" -gt "$max_line" ]; then + excess=$((total_lines - max_line)) + # Remove the oldest or the very top //@theme lines + for i in $(seq 1 "$excess"); do + $SED -i '0,/^\s*\/\/@theme/ { /^\s*\/\/@theme/ {d; q; }}' "$rofi_config_file" + done + echo "Removed excess //@theme lines" + fi +} + +# Main function +main() { + choice=$(menu | rofi rofi -dmenu -i -config $rofi_theme) + + if [[ -z "$choice" ]]; then + exit 0 + fi + add_theme_to_config "$choice" + notify-send -i "$iDIR/ja.png" -u low 'Rofi Theme applied:' "$choice" +} + +if pgrep -x "rofi" >/dev/null; then + pkill rofi +fi + +main diff --git a/config/hypr/scripts/ScreenShot.sh b/config/hypr/scripts/ScreenShot.sh new file mode 100644 index 0000000..d237794 --- /dev/null +++ b/config/hypr/scripts/ScreenShot.sh @@ -0,0 +1,155 @@ +#!/bin/bash +# Screenshots scripts + +# variables +time=$(date "+%d-%b_%H-%M-%S") +dir="$(xdg-user-dir)/Pictures/Screenshots" +file="Screenshot_${time}_${RANDOM}.png" + +iDIR="$HOME/.config/swaync/icons" +iDoR="$HOME/.config/swaync/images" +sDIR="$HOME/.config/hypr/scripts" + +active_window_class=$(hyprctl -j activewindow | jq -r '(.class)') +active_window_file="Screenshot_${time}_${active_window_class}.png" +active_window_path="${dir}/${active_window_file}" + +notify_cmd_base="notify-send -t 10000 -A action1=Open -A action2=Delete -h string:x-canonical-private-synchronous:shot-notify" +notify_cmd_shot="${notify_cmd_base} -i ${iDIR}/picture.png " +notify_cmd_shot_win="${notify_cmd_base} -i ${iDIR}/picture.png " +notify_cmd_NOT="notify-send -u low -i ${iDoR}/ja.png " + +# notify and view screenshot +notify_view() { + if [[ "$1" == "active" ]]; then + if [[ -e "${active_window_path}" ]]; then + "${sDIR}/Sounds.sh" --screenshot + resp=$(timeout 5 ${notify_cmd_shot_win} " Screenshot of:" " ${active_window_class} Saved.") + case "$resp" in + action1) + xdg-open "${active_window_path}" & + ;; + action2) + rm "${active_window_path}" & + ;; + esac + else + ${notify_cmd_NOT} " Screenshot of:" " ${active_window_class} NOT Saved." + "${sDIR}/Sounds.sh" --error + fi + + elif [[ "$1" == "swappy" ]]; then + "${sDIR}/Sounds.sh" --screenshot + resp=$(${notify_cmd_shot} " Screenshot:" " Captured by Swappy") + case "$resp" in + action1) + swappy -f - <"$tmpfile" + ;; + action2) + rm "$tmpfile" + ;; + esac + + else + local check_file="${dir}/${file}" + if [[ -e "$check_file" ]]; then + "${sDIR}/Sounds.sh" --screenshot + resp=$(timeout 5 ${notify_cmd_shot} " Screenshot" " Saved") + case "$resp" in + action1) + xdg-open "${check_file}" & + ;; + action2) + rm "${check_file}" & + ;; + esac + else + ${notify_cmd_NOT} " Screenshot" " NOT Saved" + "${sDIR}/Sounds.sh" --error + fi + fi +} + +# countdown +countdown() { + for sec in $(seq $1 -1 1); do + notify-send -h string:x-canonical-private-synchronous:shot-notify -t 1000 -i "$iDIR"/timer.png " Taking shot" " in: $sec secs" + sleep 1 + done +} + +# take shots +shotnow() { + cd ${dir} && grim - | tee "$file" | wl-copy + sleep 2 + notify_view +} + +shot5() { + countdown '5' + sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy + sleep 1 + notify_view +} + +shot10() { + countdown '10' + sleep 1 && cd ${dir} && grim - | tee "$file" | wl-copy + notify_view +} + +shotwin() { + w_pos=$(hyprctl activewindow | grep 'at:' | cut -d':' -f2 | tr -d ' ' | tail -n1) + w_size=$(hyprctl activewindow | grep 'size:' | cut -d':' -f2 | tr -d ' ' | tail -n1 | sed s/,/x/g) + cd ${dir} && grim -g "$w_pos $w_size" - | tee "$file" | wl-copy + notify_view +} + +shotarea() { + tmpfile=$(mktemp) + grim -g "$(slurp)" - >"$tmpfile" + if [[ -s "$tmpfile" ]]; then + wl-copy <"$tmpfile" + mv "$tmpfile" "$dir/$file" + fi + notify_view +} + +shotactive() { + active_window_class=$(hyprctl -j activewindow | jq -r '(.class)') + active_window_file="Screenshot_${time}_${active_window_class}.png" + active_window_path="${dir}/${active_window_file}" + + hyprctl -j activewindow | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | grim -g - "${active_window_path}" + sleep 1 + notify_view "active" +} + +shotswappy() { + tmpfile=$(mktemp) + grim -g "$(slurp)" - >"$tmpfile" && notify_view "swappy" +} + +if [[ ! -d "$dir" ]]; then + mkdir -p "$dir" +fi + +if [[ "$1" == "--now" ]]; then + shotnow +elif [[ "$1" == "--in5" ]]; then + shot5 +elif [[ "$1" == "--in10" ]]; then + shot10 +elif [[ "$1" == "--win" ]]; then + shotwin +elif [[ "$1" == "--area" ]]; then + shotarea +elif [[ "$1" == "--active" ]]; then + shotactive +elif [[ "$1" == "--swappy" ]]; then + shotswappy +else + echo -e "Available Options : --now --in5 --in10 --win --area --active --swappy" +fi + +exit 0 \ No newline at end of file diff --git a/config/hypr/scripts/Sounds.sh b/config/hypr/scripts/Sounds.sh new file mode 100644 index 0000000..7861011 --- /dev/null +++ b/config/hypr/scripts/Sounds.sh @@ -0,0 +1,76 @@ +#!/bin/bash +# This script is used to play system sounds. +# Script is used by Volume.Sh and ScreenShots.sh + +theme="freedesktop" # Set the theme for the system sounds. +mute=false # Set to true to mute the system sounds. + +# Mute individual sounds here. +muteScreenshots=false +muteVolume=false + +# Exit if the system sounds are muted. +if [[ "$mute" = true ]]; then + exit 0 +fi + +# Choose the sound to play. +if [[ "$1" == "--screenshot" ]]; then + if [[ "$muteScreenshots" = true ]]; then + exit 0 + fi + soundoption="screen-capture.*" +elif [[ "$1" == "--volume" ]]; then + if [[ "$muteVolume" = true ]]; then + exit 0 + fi + soundoption="audio-volume-change.*" +elif [[ "$1" == "--error" ]]; then + if [[ "$muteScreenshots" = true ]]; then + exit 0 + fi + soundoption="dialog-error.*" +else + echo -e "Available sounds: --screenshot, --volume, --error" + exit 0 +fi + +# Set the directory defaults for system sounds. +if [ -d "/run/current-system/sw/share/sounds" ]; then + systemDIR="/run/current-system/sw/share/sounds" # NixOS +else + systemDIR="/usr/share/sounds" +fi +userDIR="$HOME/.local/share/sounds" +defaultTheme="freedesktop" + +# Prefer the user's theme, but use the system's if it doesn't exist. +sDIR="$systemDIR/$defaultTheme" +if [ -d "$userDIR/$theme" ]; then + sDIR="$userDIR/$theme" +elif [ -d "$systemDIR/$theme" ]; then + sDIR="$systemDIR/$theme" +fi + +# Get the theme that it inherits. +iTheme=$(cat "$sDIR/index.theme" | grep -i "inherits" | cut -d "=" -f 2) +iDIR="$sDIR/../$iTheme" + +# Find the sound file and play it. +sound_file=$(find -L $sDIR/stereo -name "$soundoption" -print -quit) +if ! test -f "$sound_file"; then + sound_file=$(find -L $iDIR/stereo -name "$soundoption" -print -quit) + if ! test -f "$sound_file"; then + sound_file=$(find -L $userDIR/$defaultTheme/stereo -name "$soundoption" -print -quit) + if ! test -f "$sound_file"; then + sound_file=$(find -L $systemDIR/$defaultTheme/stereo -name "$soundoption" -print -quit) + if ! test -f "$sound_file"; then + echo "Error: Sound file not found." + exit 1 + fi + fi + fi +fi + +# pipewire priority, fallback pulseaudio +pw-play "$sound_file" || pa-play "$sound_file" \ No newline at end of file diff --git a/config/hypr/scripts/SwitchKeyboardLayout.sh b/config/hypr/scripts/SwitchKeyboardLayout.sh new file mode 100644 index 0000000..9ae0bd4 --- /dev/null +++ b/config/hypr/scripts/SwitchKeyboardLayout.sh @@ -0,0 +1,103 @@ +#!/bin/bash +# This is for changing kb_layouts. Set kb_layouts in $settings_file + +layout_file="$HOME/.cache/kb_layout" +settings_file="$HOME/.config/hypr/UserConfigs/UserSettings.conf" +notif_icon="$HOME/.config/swaync/images/ja.png" + +# Refined ignore list with patterns or specific device names +ignore_patterns=( + "--(avrcp)" + "Bluetooth Speaker" + "Other Device + Name" + ) + + +# Create layout file with default layout if it does not exist +if [ ! -f "$layout_file" ]; then + echo "Creating layout file..." + default_layout=$(grep 'kb_layout = ' "$settings_file" | cut -d '=' -f 2 | tr -d '[:space:]' | cut -d ',' -f 1 2>/dev/null) + default_layout=${default_layout:-"us"} # Default to 'us' layout + echo "$default_layout" > "$layout_file" + echo "Default layout set to $default_layout" +fi + +current_layout=$(cat "$layout_file") +echo "Current layout: $current_layout" + +# Read available layouts from settings file +if [ -f "$settings_file" ]; then + kb_layout_line=$(grep 'kb_layout = ' "$settings_file" | cut -d '=' -f 2) + # Remove leading and trailing spaces around each layout + kb_layout_line=$(echo "$kb_layout_line" | tr -d '[:space:]') + IFS=',' read -r -a layout_mapping <<< "$kb_layout_line" +else + echo "Settings file not found!" + exit 1 +fi + +layout_count=${#layout_mapping[@]} +echo "Number of layouts: $layout_count" + +# Find current layout index and calculate next layout +for ((i = 0; i < layout_count; i++)); do + if [ "$current_layout" == "${layout_mapping[i]}" ]; then + current_index=$i + break + fi +done + +next_index=$(( (current_index + 1) % layout_count )) +new_layout="${layout_mapping[next_index]}" +echo "Next layout: $new_layout" + +# Function to get keyboard names +get_keyboard_names() { + hyprctl devices -j | jq -r '.keyboards[].name' +} + +# Function to check if a device matches any ignore pattern +is_ignored() { + local device_name=$1 + for pattern in "${ignore_patterns[@]}"; do + if [[ "$device_name" == *"$pattern"* ]]; then + return 0 # Device matches ignore pattern + fi + done + return 1 # Device does not match any ignore pattern +} + +# Function to change keyboard layout +change_layout() { + local error_found=false + + while read -r name; do + if is_ignored "$name"; then + echo "Skipping ignored device: $name" + continue + fi + + echo "Switching layout for $name to $new_layout..." + hyprctl switchxkblayout "$name" "$next_index" + if [ $? -ne 0 ]; then + echo "Error while switching layout for $name." >&2 + error_found=true + fi + done <<< "$(get_keyboard_names)" + + $error_found && return 1 + return 0 +} + +# Execute layout change and notify +if ! change_layout; then + notify-send -u low -t 2000 'kb_layout' " Error:" " Layout change failed" + echo "Layout change failed." >&2 + exit 1 +else + notify-send -u low -i "$notif_icon" " kb_layout: $new_layout" + echo "Layout change notification sent." +fi + +echo "$new_layout" > "$layout_file" diff --git a/config/hypr/scripts/TouchPad.sh b/config/hypr/scripts/TouchPad.sh new file mode 100644 index 0000000..e4f5d62 --- /dev/null +++ b/config/hypr/scripts/TouchPad.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# For disabling touchpad. +# Edit the Touchpad_Device on ~/.config/hypr/UserConfigs/Laptops.conf according to your system +# use hyprctl devices to get your system touchpad device name +# source https://github.com/hyprwm/Hyprland/discussions/4283?sort=new#discussioncomment-8648109 + +notif="$HOME/.config/swaync/images/ja.png" + +export STATUS_FILE="$XDG_RUNTIME_DIR/touchpad.status" + +enable_touchpad() { + printf "true" >"$STATUS_FILE" + notify-send -u low -i $notif " Enabling" " touchpad" + hyprctl keyword '$TOUCHPAD_ENABLED' "true" -r +} + +disable_touchpad() { + printf "false" >"$STATUS_FILE" + notify-send -u low -i $notif " Disabling" " touchpad" + hyprctl keyword '$TOUCHPAD_ENABLED' "false" -r +} + +if ! [ -f "$STATUS_FILE" ]; then + enable_touchpad +else + if [ $(cat "$STATUS_FILE") = "true" ]; then + disable_touchpad + elif [ $(cat "$STATUS_FILE") = "false" ]; then + enable_touchpad + fi +fi diff --git a/config/hypr/scripts/UptimeNixOS.sh b/config/hypr/scripts/UptimeNixOS.sh new file mode 100644 index 0000000..654ae2c --- /dev/null +++ b/config/hypr/scripts/UptimeNixOS.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash +# Script parses /proc/uptime to get the system uptime +# and prints it in a human-readable format +# This is a workaround for system where `uptime` command is taken from coreutils +# where `uptime -p` is not supported + +if [[ -r /proc/uptime ]]; then + s=$(< /proc/uptime) + s=${s/.*} +else + echo "Error UptimeNixOS.sh: Uptime could not be determined." >&2 + exit 1 +fi + +d="$((s / 60 / 60 / 24)) days" +h="$((s / 60 / 60 % 24)) hours" +m="$((s / 60 % 60)) minutes" + +# Remove plural if < 2. +((${d/ *} == 1)) && d=${d/s} +((${h/ *} == 1)) && h=${h/s} +((${m/ *} == 1)) && m=${m/s} + +# Hide empty fields. +((${d/ *} == 0)) && unset d +((${h/ *} == 0)) && unset h +((${m/ *} == 0)) && unset m + +uptime=${d:+$d, }${h:+$h, }$m +uptime=${uptime%', '} +uptime=${uptime:-$s seconds} + +echo "up $uptime" diff --git a/config/hypr/scripts/Volume.sh b/config/hypr/scripts/Volume.sh new file mode 100644 index 0000000..e3c8b3a --- /dev/null +++ b/config/hypr/scripts/Volume.sh @@ -0,0 +1,142 @@ +#!/bin/bash +# Scripts for volume controls for audio and mic + +iDIR="$HOME/.config/swaync/icons" +sDIR="$HOME/.config/hypr/scripts" + +# Get Volume +get_volume() { + volume=$(pamixer --get-volume) + if [[ "$volume" -eq "0" ]]; then + echo "Muted" + else + echo "$volume %" + fi +} + +# Get icons +get_icon() { + current=$(get_volume) + if [[ "$current" == "Muted" ]]; then + echo "$iDIR/volume-mute.png" + elif [[ "${current%\%}" -le 30 ]]; then + echo "$iDIR/volume-low.png" + elif [[ "${current%\%}" -le 60 ]]; then + echo "$iDIR/volume-mid.png" + else + echo "$iDIR/volume-high.png" + fi +} + +# Notify +notify_user() { + if [[ "$(get_volume)" == "Muted" ]]; then + notify-send -e -h string:x-canonical-private-synchronous:volume_notif -u low -i "$(get_icon)" " Volume:" " Muted" + else + notify-send -e -h int:value:"$(get_volume | sed 's/%//')" -h string:x-canonical-private-synchronous:volume_notif -u low -i "$(get_icon)" " Volume Level:" " $(get_volume)" && + "$sDIR/Sounds.sh" --volume + fi +} + +# Increase Volume +inc_volume() { + if [ "$(pamixer --get-mute)" == "true" ]; then + toggle_mute + else + pamixer -i 5 --allow-boost --set-limit 150 && notify_user + fi +} + +# Decrease Volume +dec_volume() { + if [ "$(pamixer --get-mute)" == "true" ]; then + toggle_mute + else + pamixer -d 5 && notify_user + fi +} + +# Toggle Mute +toggle_mute() { + if [ "$(pamixer --get-mute)" == "false" ]; then + pamixer -m && notify-send -e -u low -i "$iDIR/volume-mute.png" " Mute" + elif [ "$(pamixer --get-mute)" == "true" ]; then + pamixer -u && notify-send -e -u low -i "$(get_icon)" " Volume:" " Switched ON" + fi +} + +# Toggle Mic +toggle_mic() { + if [ "$(pamixer --default-source --get-mute)" == "false" ]; then + pamixer --default-source -m && notify-send -e -u low -i "$iDIR/microphone-mute.png" " Microphone:" " Switched OFF" + elif [ "$(pamixer --default-source --get-mute)" == "true" ]; then + pamixer -u --default-source u && notify-send -e -u low -i "$iDIR/microphone.png" " Microphone:" " Switched ON" + fi +} +# Get Mic Icon +get_mic_icon() { + current=$(pamixer --default-source --get-volume) + if [[ "$current" -eq "0" ]]; then + echo "$iDIR/microphone-mute.png" + else + echo "$iDIR/microphone.png" + fi +} + +# Get Microphone Volume +get_mic_volume() { + volume=$(pamixer --default-source --get-volume) + if [[ "$volume" -eq "0" ]]; then + echo "Muted" + else + echo "$volume %" + fi +} + +# Notify for Microphone +notify_mic_user() { + volume=$(get_mic_volume) + icon=$(get_mic_icon) + notify-send -e -h int:value:"$volume" -h "string:x-canonical-private-synchronous:volume_notif" -u low -i "$icon" " Mic Level:" " $volume" +} + +# Increase MIC Volume +inc_mic_volume() { + if [ "$(pamixer --default-source --get-mute)" == "true" ]; then + toggle_mic + else + pamixer --default-source -i 5 && notify_mic_user + fi +} + +# Decrease MIC Volume +dec_mic_volume() { + if [ "$(pamixer --default-source --get-mute)" == "true" ]; then + toggle-mic + else + pamixer --default-source -d 5 && notify_mic_user + fi +} + +# Execute accordingly +if [[ "$1" == "--get" ]]; then + get_volume +elif [[ "$1" == "--inc" ]]; then + inc_volume +elif [[ "$1" == "--dec" ]]; then + dec_volume +elif [[ "$1" == "--toggle" ]]; then + toggle_mute +elif [[ "$1" == "--toggle-mic" ]]; then + toggle_mic +elif [[ "$1" == "--get-icon" ]]; then + get_icon +elif [[ "$1" == "--get-mic-icon" ]]; then + get_mic_icon +elif [[ "$1" == "--mic-inc" ]]; then + inc_mic_volume +elif [[ "$1" == "--mic-dec" ]]; then + dec_mic_volume +else + get_volume +fi \ No newline at end of file diff --git a/config/hypr/scripts/WallustSwww.sh b/config/hypr/scripts/WallustSwww.sh new file mode 100644 index 0000000..fc23e41 --- /dev/null +++ b/config/hypr/scripts/WallustSwww.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# Wallust Colors for current wallpaper + +# Define the path to the swww cache directory +cache_dir="$HOME/.cache/swww/" + +# Get a list of monitor outputs +monitor_outputs=($(ls "$cache_dir")) + +# Initialize a flag to determine if the ln command was executed +ln_success=false + +# Get current focused monitor +current_monitor=$(hyprctl monitors | awk '/^Monitor/{name=$2} /focused: yes/{print name}') +echo $current_monitor +# Construct the full path to the cache file +cache_file="$cache_dir$current_monitor" +echo $cache_file +# Check if the cache file exists for the current monitor output +if [ -f "$cache_file" ]; then + # Get the wallpaper path from the cache file + wallpaper_path=$(grep -v 'Lanczos3' "$cache_file" | head -n 1) + echo $wallpaper_path + # symlink the wallpaper to the location Rofi can access + if ln -sf "$wallpaper_path" "$HOME/.config/rofi/.current_wallpaper"; then + ln_success=true # Set the flag to true upon successful execution + fi + # copy the wallpaper for wallpaper effects + cp -r "$wallpaper_path" "$HOME/.config/hypr/wallpaper_effects/.wallpaper_current" +fi + +# Check the flag before executing further commands +if [ "$ln_success" = true ]; then + # execute wallust + echo 'about to execute wallust' + # execute wallust skipping tty and terminal changes + wallust run "$wallpaper_path" -s & +fi diff --git a/config/hypr/scripts/WaybarCava.sh b/config/hypr/scripts/WaybarCava.sh new file mode 100644 index 0000000..3b5a5a6 --- /dev/null +++ b/config/hypr/scripts/WaybarCava.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +#----- Optimized bars animation without much CPU usage increase -------- +bar="โ–โ–‚โ–ƒโ–„โ–…โ–†โ–‡โ–ˆ" +dict="s/;//g" + +# Calculate the length of the bar outside the loop +bar_length=${#bar} + +# Create dictionary to replace char with bar +for ((i = 0; i < bar_length; i++)); do + dict+=";s/$i/${bar:$i:1}/g" +done + +# Create cava config +config_file="/tmp/bar_cava_config" +cat >"$config_file" </dev/null; then + pkill rofi + #exit 0 +fi + +main diff --git a/config/hypr/scripts/WaybarStyles.sh b/config/hypr/scripts/WaybarStyles.sh new file mode 100644 index 0000000..f74590b --- /dev/null +++ b/config/hypr/scripts/WaybarStyles.sh @@ -0,0 +1,48 @@ +#!/bin/bash +# Script for waybar styles + +IFS=$'\n\t' + +# Define directories +waybar_styles="$HOME/.config/waybar/style" +waybar_style="$HOME/.config/waybar/style.css" +SCRIPTSDIR="$HOME/.config/hypr/scripts" +rofi_config="$HOME/.config/rofi/config-waybar-style.rasi" + +# Function to display menu options +menu() { + options=() + while IFS= read -r file; do + if [ -f "$waybar_styles/$file" ]; then + options+=("$(basename "$file" .css)") + fi + done < <(find -L "$waybar_styles" -maxdepth 1 -type f -name '*.css' -exec basename {} \; | sort) + + printf '%s\n' "${options[@]}" +} + +# Apply selected style +apply_style() { + ln -sf "$waybar_styles/$1.css" "$waybar_style" + "${SCRIPTSDIR}/Refresh.sh" & +} + +# Main function +main() { + choice=$(menu | rofi -i -dmenu -config "$rofi_config") + + if [[ -z "$choice" ]]; then + echo "No option selected. Exiting." + exit 0 + fi + + apply_style "$choice" +} + +# Kill Rofi if already running before execution +if pgrep -x "rofi" >/dev/null; then + pkill rofi + #exit 0 +fi + +main diff --git a/config/hypr/scripts/Wlogout.sh b/config/hypr/scripts/Wlogout.sh new file mode 100644 index 0000000..745dec1 --- /dev/null +++ b/config/hypr/scripts/Wlogout.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# wlogout (Power, Screen Lock, Suspend, etc) + +# Parameters for screen resolutions +declare -A resolutions=( + [2160]=450 + [1600]=450 + [1440]=450 + [1080]=350 + [720]=175 +) + +# Check if wlogout is already running, if so, kill it +if pgrep -x "wlogout" > /dev/null; then + pkill -x "wlogout" + exit 0 +fi + +# Detect the current monitor's native resolution and scale +monitor_info=$(hyprctl -j monitors | jq -r '.[] | select(.focused==true)') + +resolution=$(echo "$monitor_info" | jq -r '.height') +width=$(echo "$monitor_info" | jq -r '.width') +hypr_scale=$(echo "$monitor_info" | jq -r '.scale') + +# Round hypr_scale to 2 decimal places for accurate comparison +rounded_scale=$(echo "scale=2; $hypr_scale/1" | bc) + +# If resolution or scale is invalid or hypr_scale >= 1.25, run wlogout with -b 3 +if [[ -z "$resolution" || ! "$resolution" =~ ^[0-9]+$ || -z "$hypr_scale" || $(echo "$rounded_scale >= 1.25" | bc) -eq 1 ]]; then + echo "Hypr_scale is greater than or equal to 1.25 or resolution could not be detected, running wlogout with -b 3" + wlogout --protocol layer-shell -b 3 -T 100 -B 100 & + exit 0 +fi + +# Determine the appropriate resolution range and calculate T and B values +if ((resolution >= 2160)); then + res_key=2160 +elif ((resolution >= 1600)); then + res_key=1600 +elif ((resolution >= 1440)); then + res_key=1440 +elif ((resolution >= 1080)); then + res_key=1080 +else + res_key=720 +fi + +# Calculate T and B values based on selected resolution and scale +T_val=$(awk "BEGIN {printf \"%.0f\", ${resolutions[$res_key]} * $res_key * $hypr_scale / $resolution}") +B_val=$(awk "BEGIN {printf \"%.0f\", ${resolutions[$res_key]} * $res_key * $hypr_scale / $resolution}") + +# Output the resolution setting for debugging purposes +echo "Setting parameters for resolution >= $res_key" + +# Run wlogout with -b 6 and calculated T/B values +wlogout --protocol layer-shell -b 6 -T $T_val -B $B_val & \ No newline at end of file diff --git a/config/hypr/v2.3.11 b/config/hypr/v2.3.11 new file mode 100644 index 0000000..0fc7a64 --- /dev/null +++ b/config/hypr/v2.3.11 @@ -0,0 +1,3 @@ +## This is to have a reference of which version would be + +## note that this will always be higher than the released versions \ No newline at end of file diff --git a/config/hypr/wallpaper_effects/.wallpaper_current b/config/hypr/wallpaper_effects/.wallpaper_current new file mode 100644 index 0000000..c42ae06 Binary files /dev/null and b/config/hypr/wallpaper_effects/.wallpaper_current differ diff --git a/config/hypr/wallpaper_effects/.wallpaper_modified b/config/hypr/wallpaper_effects/.wallpaper_modified new file mode 100644 index 0000000..825086e Binary files /dev/null and b/config/hypr/wallpaper_effects/.wallpaper_modified differ diff --git a/config/hypr/wallust/wallust-hyprland.conf b/config/hypr/wallust/wallust-hyprland.conf new file mode 100644 index 0000000..1015de0 --- /dev/null +++ b/config/hypr/wallust/wallust-hyprland.conf @@ -0,0 +1,20 @@ +# /* wallust template - colors-hyprland */ + +$background = rgb(1E1516) +$foreground = rgb(ACF2F1) +$color0 = rgb(463C3D) +$color1 = rgb(181916) +$color2 = rgb(073122) +$color3 = rgb(073122) +$color4 = rgb(0E455E) +$color5 = rgb(0D942F) +$color6 = rgb(0DA4A1) +$color7 = rgb(80E4E2) +$color8 = rgb(59A09E) +$color9 = rgb(20211D) +$color10 = rgb(09422D) +$color11 = rgb(09422D) +$color12 = rgb(135C7D) +$color13 = rgb(11C63F) +$color14 = rgb(11DAD6) +$color15 = rgb(80E4E2) diff --git a/config/qt5ct/colors/Catppuccin-Latte.conf b/config/qt5ct/colors/Catppuccin-Latte.conf new file mode 100644 index 0000000..42db9c5 --- /dev/null +++ b/config/qt5ct/colors/Catppuccin-Latte.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#ff4c4f69, #ffe6e9ef, #ff6c6f85, #ff7c7f93, #ffbcc0cc, #ff9ca0b0, #ff4c4f69, #ff4c4f69, #ff4c4f69, #ffeff1f5, #ffe6e9ef, #ff8c8fa1, #ff1e66f5, #ffeff1f5, #ff7287fd, #ffe64553, #ffeff1f5, #ff4c4f69, #ffdce0e8, #ff4c4f69, #808c8fa1 +disabled_colors=#ff6c6f85, #ffe6e9ef, #ff6c6f85, #ff7c7f93, #ffbcc0cc, #ff9ca0b0, #ff6c6f85, #ff6c6f85, #ff6c6f85, #ffeff1f5, #ffe6e9ef, #ff8c8fa1, #ff9ca0b0, #ff5c5f77, #ff7287fd, #ffe64553, #ffeff1f5, #ff4c4f69, #ffdce0e8, #ff4c4f69, #808c8fa1 +inactive_colors=#ff4c4f69, #ffe6e9ef, #ff6c6f85, #ff7c7f93, #ffbcc0cc, #ff9ca0b0, #ff4c4f69, #ff4c4f69, #ff4c4f69, #ffeff1f5, #ffe6e9ef, #ff8c8fa1, #ffccd0da, #ff6c6f85, #ff7287fd, #ffe64553, #ffeff1f5, #ff4c4f69, #ffdce0e8, #ff4c4f69, #808c8fa1 diff --git a/config/qt5ct/colors/Catppuccin-Mocha.conf b/config/qt5ct/colors/Catppuccin-Mocha.conf new file mode 100644 index 0000000..e566a63 --- /dev/null +++ b/config/qt5ct/colors/Catppuccin-Mocha.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ff1e1e2e, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c +disabled_colors=#ffa6adc8, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffa6adc8, #ffa6adc8, #ffa6adc8, #ff1e1e2e, #ff11111b, #ff7f849c, #ff89b4fa, #ff45475a, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c +inactive_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ffa6adc8, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c diff --git a/config/qt5ct/qt5ct.conf b/config/qt5ct/qt5ct.conf new file mode 100644 index 0000000..192984e --- /dev/null +++ b/config/qt5ct/qt5ct.conf @@ -0,0 +1,32 @@ +[Appearance] +color_scheme_path=$HOME/.config/qt5ct/colors/Catppuccin-Mocha.conf +custom_palette=true +icon_theme=Tokyonight-Dark +standard_dialogs=default +style=kvantum + +[Fonts] +fixed="Fira Code Medium,12,-1,5,57,0,0,0,0,0,Regular" +general="Fira Code Medium,14,-1,5,57,0,0,0,0,0,Regular" + +[Interface] +activate_item_on_single_click=1 +buttonbox_layout=0 +cursor_flash_time=1000 +dialog_buttons_have_icons=1 +double_click_interval=400 +gui_effects=General, AnimateMenu, AnimateCombo, AnimateTooltip, AnimateToolBox +keyboard_scheme=2 +menus_have_icons=true +show_shortcuts_in_context_menus=true +stylesheets=@Invalid() +toolbutton_style=4 +underline_shortcut=1 +wheel_scroll_lines=3 + +[SettingsWindow] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x6\xe3\0\0\x5\x61\0\0\0\0\0\0\0\0\0\0\x6\xe3\0\0\x5\x61\0\0\0\0\x2\0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\x6\xe3\0\0\x5\x61) + +[Troubleshooting] +force_raster_widgets=1 +ignored_applications=@Invalid() diff --git a/config/qt6ct/colors/Catppuccin-Latte.conf b/config/qt6ct/colors/Catppuccin-Latte.conf new file mode 100644 index 0000000..42db9c5 --- /dev/null +++ b/config/qt6ct/colors/Catppuccin-Latte.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#ff4c4f69, #ffe6e9ef, #ff6c6f85, #ff7c7f93, #ffbcc0cc, #ff9ca0b0, #ff4c4f69, #ff4c4f69, #ff4c4f69, #ffeff1f5, #ffe6e9ef, #ff8c8fa1, #ff1e66f5, #ffeff1f5, #ff7287fd, #ffe64553, #ffeff1f5, #ff4c4f69, #ffdce0e8, #ff4c4f69, #808c8fa1 +disabled_colors=#ff6c6f85, #ffe6e9ef, #ff6c6f85, #ff7c7f93, #ffbcc0cc, #ff9ca0b0, #ff6c6f85, #ff6c6f85, #ff6c6f85, #ffeff1f5, #ffe6e9ef, #ff8c8fa1, #ff9ca0b0, #ff5c5f77, #ff7287fd, #ffe64553, #ffeff1f5, #ff4c4f69, #ffdce0e8, #ff4c4f69, #808c8fa1 +inactive_colors=#ff4c4f69, #ffe6e9ef, #ff6c6f85, #ff7c7f93, #ffbcc0cc, #ff9ca0b0, #ff4c4f69, #ff4c4f69, #ff4c4f69, #ffeff1f5, #ffe6e9ef, #ff8c8fa1, #ffccd0da, #ff6c6f85, #ff7287fd, #ffe64553, #ffeff1f5, #ff4c4f69, #ffdce0e8, #ff4c4f69, #808c8fa1 diff --git a/config/qt6ct/colors/Catppuccin-Mocha.conf b/config/qt6ct/colors/Catppuccin-Mocha.conf new file mode 100644 index 0000000..e566a63 --- /dev/null +++ b/config/qt6ct/colors/Catppuccin-Mocha.conf @@ -0,0 +1,4 @@ +[ColorScheme] +active_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ff1e1e2e, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c +disabled_colors=#ffa6adc8, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffa6adc8, #ffa6adc8, #ffa6adc8, #ff1e1e2e, #ff11111b, #ff7f849c, #ff89b4fa, #ff45475a, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c +inactive_colors=#ffcdd6f4, #ff1e1e2e, #ffa6adc8, #ff9399b2, #ff45475a, #ff6c7086, #ffcdd6f4, #ffcdd6f4, #ffcdd6f4, #ff1e1e2e, #ff181825, #ff7f849c, #ff89b4fa, #ffa6adc8, #ff89b4fa, #fff38ba8, #ff1e1e2e, #ffcdd6f4, #ff11111b, #ffcdd6f4, #807f849c diff --git a/config/qt6ct/qt6ct.conf b/config/qt6ct/qt6ct.conf new file mode 100644 index 0000000..14b9e59 --- /dev/null +++ b/config/qt6ct/qt6ct.conf @@ -0,0 +1,32 @@ +[Appearance] +color_scheme_path=$HOME/.config/qt6ct/colors/Catppuccin-Mocha.conf +custom_palette=true +icon_theme=Tokyonight-Dark +standard_dialogs=default +style=kvantum + +[Fonts] +fixed="Fira Code Medium,12,-1,5,500,0,0,0,0,0,0,0,0,0,0,1,Regular" +general="Fira Code Medium,14,-1,5,500,0,0,0,0,0,0,0,0,0,0,1,Regular" + +[Interface] +activate_item_on_single_click=1 +buttonbox_layout=0 +cursor_flash_time=1000 +dialog_buttons_have_icons=1 +double_click_interval=400 +gui_effects=General, AnimateMenu, AnimateCombo, AnimateTooltip, AnimateToolBox +keyboard_scheme=2 +menus_have_icons=true +show_shortcuts_in_context_menus=true +stylesheets=@Invalid() +toolbutton_style=4 +underline_shortcut=1 +wheel_scroll_lines=3 + +[SettingsWindow] +geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x4\xef\0\0\x5_\0\0\0\0\0\0\0\0\0\0\t\xff\0\0\x5s\0\0\0\0\x2\0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\x4\xef\0\0\x5_) + +[Troubleshooting] +force_raster_widgets=1 +ignored_applications=@Invalid() diff --git a/config/swappy/config b/config/swappy/config new file mode 100644 index 0000000..45d84e4 --- /dev/null +++ b/config/swappy/config @@ -0,0 +1,9 @@ +[Default] +save_dir=$HOME/Pictures/Screenshots +save_filename_format=swappy-%Y%m%d-%H%M%S.png +show_pannel=false +line_size=5 +text-size=20 +paint_mode=brush +early_exit=false +fill_shape=false \ No newline at end of file diff --git a/config/wallust/templates/colors-cava b/config/wallust/templates/colors-cava new file mode 100644 index 0000000..da99d03 --- /dev/null +++ b/config/wallust/templates/colors-cava @@ -0,0 +1,291 @@ +# /* wallust template - colors-cava */ + +## Configuration file for CAVA. +# Remove the ; to change parameters. + +[general] + +# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 +; mode = normal + +# Accepts only non-negative values. +; framerate = 60 + +# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off +# new as of 0.6.0 autosens of low values (dynamic range) +# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 +; autosens = 1 +; overshoot = 20 + +# Manual sensitivity in %. If autosens is enabled, this will only be the initial value. +# 200 means double height. Accepts only non-negative values. +; sensitivity = 100 + +# The number of bars (0-512). 0 sets it to auto (fill up console). +# Bars' width and space between bars in number of characters. +; bars = 0 +; bar_width = 2 +; bar_spacing = 1 +# bar_height is only used for output in "noritake" format +; bar_height = 32 + +# For SDL width and space between bars is in pixels, defaults are: +; bar_width = 20 +; bar_spacing = 5 + +# sdl_glsl have these default values, they are only used to calulate max number of bars. +; bar_width = 1 +; bar_spacing = 0 + + +# Lower and higher cutoff frequencies for lowest and highest bars +# the bandwidth of the visualizer. +# Note: there is a minimum total bandwidth of 43Mhz x number of bars. +# Cava will automatically increase the higher cutoff if a too low band is specified. +; lower_cutoff_freq = 50 +; higher_cutoff_freq = 10000 + + +# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and +# only check for input once per second. Cava will wake up once input is detected. 0 = disable. +; sleep_timer = 0 + + +[input] + +# Audio capturing method. Possible methods are: 'fifo', 'portaudio', 'pipewire', 'alsa', 'pulse', 'sndio', 'oss', 'jack' or 'shmem' +# Defaults to 'oss', 'pipewire', 'sndio', 'jack', 'pulse', 'alsa', 'portaudio' or 'fifo', in that order, dependent on what support cava was built with. +# On Mac it defaults to 'portaudio' or 'fifo' +# On windows this is automatic and no input settings are needed. +# +# All input methods uses the same config variable 'source' +# to define where it should get the audio. +# +# For pulseaudio and pipewire 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink +# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). +# +# For pipewire 'source' will be the object name or object.serial of the device to capture from. +# Both input and output devices are supported. +# +# For alsa 'source' will be the capture device. +# For fifo 'source' will be the path to fifo-file. +# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address +# +# For sndio 'source' will be a raw recording audio descriptor or a monitoring sub-device, e.g. 'rsnd/2' or 'snd/1'. Default: 'default'. +# README.md contains further information on how to setup CAVA for sndio. +# +# For oss 'source' will be the path to a audio device, e.g. '/dev/dsp2'. Default: '/dev/dsp', i.e. the default audio device. +# README.md contains further information on how to setup CAVA for OSS on FreeBSD. +# +# For jack 'source' will be the name of the JACK server to connect to, e.g. 'foobar'. Default: 'default'. +# README.md contains further information on how to setup CAVA for JACK. +# + method = pulse + source = auto + + method = pipewire + source = auto + +; method = alsa +; source = hw:Loopback,1 + +; method = fifo +; source = /tmp/mpd.fifo + +; method = shmem +; source = /squeezelite-AA:BB:CC:DD:EE:FF + +; method = portaudio +; source = auto + +; method = sndio +; source = default + +; method = oss +; source = /dev/dsp + +; method = jack +; source = default + +# The options 'sample_rate', 'sample_bits', 'channels' and 'autoconnect' can be configured for some input methods: +# sample_rate: fifo, pipewire, sndio, oss +# sample_bits: fifo, pipewire, sndio, oss +# channels: sndio, oss, jack +# autoconnect: jack +# Other methods ignore these settings. +# +# For 'sndio' and 'oss' they are only preferred values, i.e. if the values are not supported +# by the chosen audio device, the device will use other supported values instead. +# Example: 48000, 32 and 2, but the device only supports 44100, 16 and 1, then it +# will use 44100, 16 and 1. +# +; sample_rate = 44100 +; sample_bits = 16 +; channels = 2 +; autoconnect = 2 + + +[output] + +# Output method. Can be 'ncurses', 'noncurses', 'raw', 'noritake', 'sdl' +# or 'sdl_glsl'. +# 'noncurses' (default) uses a buffer and cursor movements to only print +# changes from frame to frame in the terminal. Uses less resources and is less +# prone to tearing (vsync issues) than 'ncurses'. +# +# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data +# stream of the bar heights that can be used to send to other applications. +# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. +# +# 'noritake' outputs a bitmap in the format expected by a Noritake VFD display +# in graphic mode. It only support the 3000 series graphical VFDs for now. +# +# 'sdl' uses the Simple DirectMedia Layer to render in a graphical context. +# 'sdl_glsl' uses SDL to create an OpenGL context. Write your own shaders or +# use one of the predefined ones. +; method = noncurses + +# Orientation of the visualization. Can be 'bottom', 'top', 'left' or 'right'. +# Default is 'bottom'. Other orientations are only supported on sdl and ncruses +# output. Note: many fonts have weird glyphs for 'top' and 'right' characters, +# which can make ncurses not look right. +; orientation = bottom + +# Visual channels. Can be 'stereo' or 'mono'. +# 'stereo' mirrors both channels with low frequencies in center. +# 'mono' outputs left to right lowest to highest frequencies. +# 'mono_option' set mono to either take input from 'left', 'right' or 'average'. +# set 'reverse' to 1 to display frequencies the other way around. +; channels = stereo +; mono_option = average +; reverse = 0 + +# Raw output target. A fifo will be created if target does not exist. +; raw_target = /dev/stdout + +# Raw data format. Can be 'binary' or 'ascii'. +; data_format = binary + +# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). +; bit_format = 16bit + +# Ascii max value. In 'ascii' mode range will run from 0 to value specified here +; ascii_max_range = 1000 + +# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. +# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). +; bar_delimiter = 59 +; frame_delimiter = 10 + +# sdl window size and position. -1,-1 is centered. +; sdl_width = 1000 +; sdl_height = 500 +; sdl_x = -1 +; sdl_y= -1 +; sdl_full_screen = 0 + +# set label on bars on the x-axis. Can be 'frequency' or 'none'. Default: 'none' +# 'frequency' displays the lower cut off frequency of the bar above. +# Only supported on ncurses and noncurses output. +; xaxis = none + +# enable alacritty synchronized updates. 1 = on, 0 = off +# removes flickering in alacritty terminal emulator. +# defaults to off since the behaviour in other terminal emulators is unknown +; alacritty_sync = 0 + +# Shaders for sdl_glsl, located in $HOME/.config/cava/shaders +; vertex_shader = pass_through.vert +; fragment_shader = bar_spectrum.frag + +; for glsl output mode, keep rendering even if no audio +; continuous_rendering = 0 + +# disable console blank (screen saver) in tty +# (Not supported on FreeBSD) +; disable_blanking = 0 + +# show a flat bar at the bottom of the screen when idle, 1 = on, 0 = off +; show_idle_bar_heads = 1 + +# show waveform instead of frequency spectrum, 1 = on, 0 = off +; waveform = 0 + +[color] + +# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. +# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires +# a terminal that can change color definitions such as Gnome-terminal or rxvt. +# default is to keep current terminal color +; background = default +; foreground = default + +# SDL and sdl_glsl only support hex code colors, these are the default: +; background = '#111111' +; foreground = '#33ffff' + +# these are default +# Gradient mode, only hex defined colors are supported, +# background must also be defined in hex or remain commented out. 1 = on, 0 = off. +# You can define as many as 8 different colors. They range from bottom to top of screen +; gradient = 0 +; gradient_count = 8 +; gradient_color_1 = '#59cc33' +; gradient_color_2 = '#80cc33' +; gradient_color_3 = '#a6cc33' +; gradient_color_4 = '#cccc33' +; gradient_color_5 = '#cca633' +; gradient_color_6 = '#cc8033' +; gradient_color_7 = '#cc5933' +; gradient_color_8 = '#cc3333' + +# for wallust +gradient = 1 +gradient_count = 8 +gradient_color_1 = '{{color0}}' +gradient_color_2 = '{{color2}}' +gradient_color_3 = '{{color3}}' +gradient_color_4 = '{{color5}}' +gradient_color_5 = '{{color7}}' +gradient_color_6 = '{{color12}}' +gradient_color_7 = '{{color13}}' +gradient_color_8 = '{{color15}}' + + +[smoothing] + +# Percentage value for integral smoothing. Takes values from 0 - 100. +# Higher values means smoother, but less precise. 0 to disable. +# DEPRECATED as of 0.8.0, use noise_reduction instead +; integral = 77 + +# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. +; monstercat = 0 +; waves = 0 + +# Set gravity percentage for "drop off". Higher values means bars will drop faster. +# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". +# DEPRECATED as of 0.8.0, use noise_reduction instead +; gravity = 100 + + +# In bar height, bars that would have been lower that this will not be drawn. +# DEPRECATED as of 0.8.0 +; ignore = 0 + +# Noise reduction, int 0 - 100. default 77 +# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth +# 100 will be very slow and smooth, 0 will be fast but noisy. +; noise_reduction = 77 + + +[eq] + +# This one is tricky. You can have as much keys as you want. +# Remember to uncomment more than one key! More keys = more precision. +# Look at readme.md on github for further explanations and examples. +; 1 = 1 # bass +; 2 = 1 +; 3 = 1 # midtone +; 4 = 1 +; 5 = 1 # treble diff --git a/config/wallust/templates/colors-hyprland.conf b/config/wallust/templates/colors-hyprland.conf new file mode 100644 index 0000000..b230cbe --- /dev/null +++ b/config/wallust/templates/colors-hyprland.conf @@ -0,0 +1,20 @@ +# /* wallust template - colors-hyprland */ + +$background = rgb({{background | strip}}) +$foreground = rgb({{foreground | strip}}) +$color0 = rgb({{color0 | strip}}) +$color1 = rgb({{color1 | strip}}) +$color2 = rgb({{color2 | strip}}) +$color3 = rgb({{color3 | strip}}) +$color4 = rgb({{color4 | strip}}) +$color5 = rgb({{color5 | strip}}) +$color6 = rgb({{color6 | strip}}) +$color7 = rgb({{color7 | strip}}) +$color8 = rgb({{color8 | strip}}) +$color9 = rgb({{color9 | strip}}) +$color10 = rgb({{color10 | strip}}) +$color11 = rgb({{color11 | strip}}) +$color12 = rgb({{color12 | strip}}) +$color13 = rgb({{color13 | strip}}) +$color14 = rgb({{color14 | strip}}) +$color15 = rgb({{color15 | strip}}) diff --git a/config/wallust/templates/colors-kitty.conf b/config/wallust/templates/colors-kitty.conf new file mode 100644 index 0000000..be13cb1 --- /dev/null +++ b/config/wallust/templates/colors-kitty.conf @@ -0,0 +1,31 @@ +# /* wallust template - colors-kitty */ + +foreground {{foreground}} +background {{background}} +cursor {{cursor}} + +active_tab_foreground {{background}} +active_tab_background {{foreground}} +inactive_tab_foreground {{foreground}} +inactive_tab_background {{background}} + +active_border_color {{foreground}} +inactive_border_color {{background}} +bell_border_color {{color1}} + +color0 {{color0}} +color1 {{color1}} +color2 {{color2}} +color3 {{color3}} +color4 {{color4}} +color5 {{color5}} +color6 {{color6}} +color7 {{color7}} +color8 {{color8}} +color9 {{color9}} +color10 {{color10}} +color11 {{color11}} +color12 {{color12}} +color13 {{color13}} +color14 {{color14}} +color15 {{color15}} diff --git a/config/wallust/templates/colors-rofi.rasi b/config/wallust/templates/colors-rofi.rasi new file mode 100644 index 0000000..08e8e28 --- /dev/null +++ b/config/wallust/templates/colors-rofi.rasi @@ -0,0 +1,49 @@ + /* wallust template - colors-rofi */ + +* { +active-background: {{color12}}; +active-foreground: {{foreground}}; +normal-background: {{background}}; +normal-foreground: {{foreground}}; +urgent-background: {{color13}}; +urgent-foreground: {{foreground}}; + +alternate-active-background: {{color11}}; +alternate-active-foreground: {{foreground}}; +alternate-normal-background: {{background}}; +alternate-normal-foreground: {{foreground}}; +alternate-urgent-background: {{background}}; +alternate-urgent-foreground: {{foreground}}; + +selected-active-background: {{color13}}; +selected-active-foreground: {{foreground}}; +selected-normal-background: {{color13}}; +selected-normal-foreground: {{foreground}}; +selected-urgent-background: {{color12}}; +selected-urgent-foreground: {{foreground}}; + +background-color: {{background}}; +background: rgba(0,0,0,0.7); +foreground: {{foreground}}; +border-color: {{color12}}; + +color0: {{color0}}; +color1: {{color1}}; +color2: {{color2}}; +color3: {{color3}}; +color4: {{color4}}; +color5: {{color5}}; +color6: {{color6}}; +color7: {{color7}}; +color8: {{color8}}; +color9: {{color9}}; +color10: {{color10}}; +color11: {{color11}}; +color12: {{color12}}; +color13: {{color13}}; +color14: {{color14}}; +color15: {{color15}}; + + +} + diff --git a/config/wallust/templates/colors-swaync.css b/config/wallust/templates/colors-swaync.css new file mode 100644 index 0000000..a57f8cf --- /dev/null +++ b/config/wallust/templates/colors-swaync.css @@ -0,0 +1,11 @@ + /* wallust template - colors-swaync */ + +@define-color text {{foreground}}; +@define-color background rgba({{background | rgb}},0.25); +@define-color background-alt {{background}}; +@define-color cursor {{cursor}}; +@define-color hovered {{color12}}; +@define-color button-background {{color6}}; +@define-color button-active {{color2}}; +@define-color border {{color9}}; +@define-color urgent {{color15}}; diff --git a/config/wallust/templates/colors-waybar.css b/config/wallust/templates/colors-waybar.css new file mode 100644 index 0000000..855feb5 --- /dev/null +++ b/config/wallust/templates/colors-waybar.css @@ -0,0 +1,22 @@ + /* wallust template - colors-waybar */ + +@define-color foreground {{foreground}}; +@define-color background rgba({{background | rgb}},0.25); +@define-color cursor {{cursor}}; + +@define-color color0 {{color0}}; +@define-color color1 {{color1}}; +@define-color color2 {{color2}}; +@define-color color3 {{color3}}; +@define-color color4 {{color4}}; +@define-color color5 {{color5}}; +@define-color color6 {{color6}}; +@define-color color7 {{color7}}; +@define-color color8 {{color8}}; +@define-color color9 {{color9}}; +@define-color color10 {{color10}}; +@define-color color11 {{color11}}; +@define-color color12 {{color12}}; +@define-color color13 {{color13}}; +@define-color color14 {{color14}}; +@define-color color15 {{color15}}; diff --git a/config/wallust/wallust.toml b/config/wallust/wallust.toml new file mode 100644 index 0000000..e66dcc1 --- /dev/null +++ b/config/wallust/wallust.toml @@ -0,0 +1,61 @@ +# wallust configuration - for wallust version 3.0 + +# How the image is parse, in order to get the colors: +# full - resized - wal - thumb - fastresize - kmeans +backend = "kmeans" + +# What color space to use to produce and select the most prominent colors: +# lab - labmixed - lch - lchmixed +color_space = "labmixed" + +# NOTE: All filters will fill 16 colors (from color0 to color15), 16 color +# variations are the 'ilusion' of more colors by opaquing color1 to color5. +# Use the most prominent colors in a way that makes sense, a scheme: +# * dark - 8 dark colors, dark background and light contrast +# * dark16 - Same as `dark` but uses the 16 colors trick +# * harddark - Same as `dark` with hard hue colors +# * harddark16 - Harddark with 16 color variation +# * light - Light bg, dark fg +# * light16 - Same as `light` but uses the 16 color trick +# * softdark - Variant of softlight, uses the lightest colors and a dark +# background (could be interpreted as `dark` inversed) +# * softdark16 - softdark with 16 color variation +# * softlight - Light with soft pastel colors, counterpart of `harddark` +# * softlight16 - softlight with 16 color variation +palette = "dark16" + +# Difference between similar colors, used by the colorspace: +# 1 Not perceptible by human eyes. +# 1 - 2 Perceptible through close observation. +# 2 - 10 Perceptible at a glance. +# 11 - 49 Colors are more similar than opposite +# 100 Colors are exact opposite +threshold = 11 + +[templates] +cava.template = 'colors-cava' +cava.target = '~/.config/cava/config' + +hypr.template = 'colors-hyprland.conf' +hypr.target = '~/.config/hypr/wallust/wallust-hyprland.conf' + +rofi.template = 'colors-rofi.rasi' +rofi.target = '~/.config/rofi/wallust/colors-rofi.rasi' + +waybar.template = 'colors-waybar.css' +waybar.target = '~/.config/waybar/wallust/colors-waybar.css' + +kitty.template = 'colors-kitty.conf' +kitty.target = '~/.config/kitty/kitty-colors.conf' + +#swaync.template = 'colors-swaync.css' +#swaync.target = '~/.config/swaync/wallust/colors-wallust.css' + +#macchina.template = 'colors-macchina.toml' +#macchina.target = '~/.config/macchina/themes/wallust.toml' + +#wezterm.template = 'colors-wezterm.toml' +#wezterm.target = '~/.config/wezterm/colors/wallust.toml' + +#zathura.template = 'colors-zathura' +#zathura.target = '~/.config/zathura/zathurarc' \ No newline at end of file diff --git a/config/wlogout/layout b/config/wlogout/layout new file mode 100644 index 0000000..ea46874 --- /dev/null +++ b/config/wlogout/layout @@ -0,0 +1,36 @@ +{ + "label" : "lock", + "action" : "$HOME/.config/hypr/scripts/LockScreen.sh", + "text" : "Lock", + "keybind" : "l" +} +{ + "label" : "reboot", + "action" : "systemctl reboot", + "text" : "Reboot", + "keybind" : "r" +} +{ + "label" : "shutdown", + "action" : "systemctl poweroff", + "text" : "Shutdown", + "keybind" : "s" +} +{ + "label" : "logout", + "action" : "loginctl kill-session $XDG_SESSION_ID", + "text" : "Logout", + "keybind" : "e" +} +{ + "label" : "suspend", + "action" : "systemctl suspend", + "text" : "Suspend", + "keybind" : "u" +} +{ + "label" : "hibernate", + "action" : "systemctl hibernate", + "text" : "Hibernate", + "keybind" : "h" +} \ No newline at end of file diff --git a/config/wlogout/style.css b/config/wlogout/style.css new file mode 100644 index 0000000..aaf0a24 --- /dev/null +++ b/config/wlogout/style.css @@ -0,0 +1,86 @@ +/* wallust-wlogout */ + +/* Importing wallust colors */ +@import '../../.config/waybar/wallust/colors-waybar.css'; + +window { + font-family: Fira Code Medium; + font-size: 16pt; + color: #cdd6f4; /* text */ + background-color: rgba(30, 30, 46, 0.6); +} + +button { + background-repeat: no-repeat; + background-position: center; + background-size: 20%; + background-color: rgba(200, 220, 255, 0); + animation: gradient_f 10s ease-in infinite; + transition: all 0.3s cubic-bezier(.55, 0.0, .28, 1.682), box-shadow 0.2s ease-in-out, background-color 0.2s ease-in-out; + border-radius: 80px; + border:0px; +} + +button:focus { + background-size: 50%; + border: 0px; + +} + +button:hover { + background-color: @color12; + color: #1e1e2e; + background-size: 50%; + margin: 30px; + border-radius: 80px; + box-shadow: 0 0 30px @color7; + +} + +/* Adjust the size of the icon or content inside the button */ +button span { + font-size: 1.2em; /* Increase the font size */ +} + + +#lock { + background-image: image(url("./icons/lock.png")); +} +#lock:hover { + background-image: image(url("./icons/lock-hover.png")); +} + +#logout { + background-image: image(url("./icons/logout.png")); +} +#logout:hover { + background-image: image(url("./icons/logout-hover.png")); +} + +#suspend { + background-image: image(url("./icons/sleep.png")); +} +#suspend:hover { + background-image: image(url("./icons/sleep-hover.png")); +} + +#shutdown { + background-image: image(url("./icons/power.png")); +} +#shutdown:hover { + background-image: image(url("./icons/power-hover.png")); +} + +#reboot { + background-image: image(url("./icons/restart.png")); +} +#reboot:hover { + background-image: image(url("./icons/restart-hover.png")); +} + +#hibernate { + background-image: image(url("./icons/hibernate.png")); +} +#hibernate:hover { + background-image: image(url("./icons/hibernate-hover.png")); +} \ No newline at end of file