working on copy script
This commit is contained in:
parent
fefb7468f9
commit
2be8d4a6d7
|
@ -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
|
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 146 KiB |
|
@ -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
|
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 146 KiB |
|
@ -0,0 +1,2 @@
|
|||
[General]
|
||||
theme=catppuccin-mocha-blue
|
|
@ -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
|
|
@ -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);
|
||||
}
|
||||
}
|
|
@ -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;
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
#
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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
|
|
@ -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
|
||||
}
|
|
@ -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, <rofi>
|
||||
|
||||
#layerrule = ignorezero, overview
|
||||
#layerrule = blur, overview
|
|
@ -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
|
|
@ -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
|
|
@ -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 <<EOF
|
||||
1. ENV variables
|
||||
2. Window Rules
|
||||
3. Monitors
|
||||
4. User Keybinds
|
||||
5. User Settings
|
||||
6. Startup Apps
|
||||
7. Decorations
|
||||
8. Animations
|
||||
9. Workspace Rules
|
||||
10. Laptop Keybinds
|
||||
11. Default Keybinds
|
||||
EOF
|
||||
}
|
||||
|
||||
# Main function to handle menu selection
|
||||
main() {
|
||||
choice=$(menu | rofi -i -dmenu -config $rofi_theme -mesg "$msg" | cut -d. -f1)
|
||||
|
||||
# Map choices to corresponding files
|
||||
case $choice in
|
||||
1) file="$UserConfigs/ENVariables.conf" ;;
|
||||
2) file="$UserConfigs/WindowRules.conf" ;;
|
||||
3) file="$UserConfigs/Monitors.conf" ;;
|
||||
4) file="$UserConfigs/UserKeybinds.conf" ;;
|
||||
5) file="$UserConfigs/UserSettings.conf" ;;
|
||||
6) file="$UserConfigs/Startup_Apps.conf" ;;
|
||||
7) file="$UserConfigs/UserDecorations.conf" ;;
|
||||
8) file="$UserConfigs/UserAnimations.conf" ;;
|
||||
9) file="$UserConfigs/WorkspaceRules.conf" ;;
|
||||
10) file="$UserConfigs/Laptops.conf" ;;
|
||||
11) file="$configs/Keybinds.conf" ;;
|
||||
*) return ;; # Do nothing for invalid choices
|
||||
esac
|
||||
|
||||
# Open the selected file in the terminal with the text editor
|
||||
$tty -e $edit "$file"
|
||||
}
|
||||
|
||||
# Check if rofi is already running
|
||||
if pidof rofi > /dev/null; then
|
||||
pkill rofi
|
||||
fi
|
||||
|
||||
main
|
|
@ -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
|
|
@ -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
|
||||
}
|
|
@ -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
|
|
@ -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 <dir containing images>"
|
||||
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
|
|
@ -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
|
|
@ -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"
|
||||
|
|
@ -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
|
||||
|
||||
|
|
@ -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'<span size="xx-large">{temp}</span>',
|
||||
f"<big> {icon}</big>",
|
||||
f"<b>{status}</b>",
|
||||
f"<small>{temp_feel_text}</small>",
|
||||
f"<b>{temp_min_max}</b>",
|
||||
f"{wind_text}\t{humidity_text}",
|
||||
f"{visbility_text}\tAQI {air_quality_index}",
|
||||
f"<i> {prediction}</i>",
|
||||
)
|
||||
|
||||
# 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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -0,0 +1,3 @@
|
|||
animations {
|
||||
enabled = no
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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%
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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%
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
@ -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
|
||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -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.
|
||||
# }
|
|
@ -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
|
|
@ -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 "<b> "$(date +'%A, %-d %B')" </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 = <i><span foreground="##ffffff99">🔒 Type Password</span></i>
|
||||
hide_input = false
|
||||
position = 0, 180
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# uptime
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:60000] echo "<b> "$(uptime -p || $Scripts/UptimeNixOS.sh)" </b>"
|
||||
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
|
||||
}
|
|
@ -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 "<b> "$(date +'%A, %-d %B')" </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 = <i><span foreground="##ffffff99">🔒 Type Password</span></i>
|
||||
hide_input = false
|
||||
position = 0, 250
|
||||
halign = center
|
||||
valign = bottom
|
||||
}
|
||||
|
||||
# uptime
|
||||
label {
|
||||
monitor =
|
||||
text = cmd[update:60000] echo "<b> "$(uptime -p || $Scripts/UptimeNixOS.sh)" </b>"
|
||||
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
|
||||
}
|
|
@ -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
|
|
@ -0,0 +1,12 @@
|
|||
[pyprland]
|
||||
|
||||
plugins = [
|
||||
"scratchpads",
|
||||
"magnify",
|
||||
]
|
||||
|
||||
[scratchpads.term]
|
||||
animation = "fromTop"
|
||||
command = "kitty --class kitty-dropterm"
|
||||
class = "kitty-dropterm"
|
||||
size = "75% 60%"
|
|
@ -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
|
|
@ -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"
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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" ""\
|
|
@ -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
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/bash
|
||||
# For Hyprlock
|
||||
|
||||
pidof hyprlock || hyprlock -q
|
||||
|
|
@ -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
|
|
@ -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."
|
|
@ -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
|
|
@ -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 &
|
||||
|
|
@ -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
|
|
@ -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
|
File diff suppressed because it is too large
Load Diff
|
@ -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={}"
|
|
@ -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 <qball@gmpclient.org>
|
||||
|
||||
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 <b>Enter</b>.
|
||||
<b>Alt-a</b> to accept the new theme.
|
||||
<b>Escape</b> to cancel
|
||||
Current theme: <b>${CUR}</b>
|
||||
<span weight=\"bold\" size=\"xx-small\">When setting a new theme this will override previous theme settings.
|
||||
Please update your config file if you have local modifications.</span>"""
|
||||
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}"
|
|
@ -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
|
|
@ -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
|
|
@ -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"
|
|
@ -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"
|
|
@ -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
|
|
@ -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"
|
|
@ -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
|
|
@ -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
|
|
@ -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" <<EOF
|
||||
[general]
|
||||
bars = 10
|
||||
|
||||
[input]
|
||||
method = pulse
|
||||
source = auto
|
||||
|
||||
[output]
|
||||
method = raw
|
||||
raw_target = /dev/stdout
|
||||
data_format = ascii
|
||||
ascii_max_range = 7
|
||||
EOF
|
||||
|
||||
# Kill cava if it's already running
|
||||
pkill -f "cava -p $config_file"
|
||||
|
||||
# Read stdout from cava and perform substitution in a single sed command
|
||||
cava -p "$config_file" | sed -u "$dict"
|
|
@ -0,0 +1,54 @@
|
|||
#!/bin/bash
|
||||
# Script for waybar layout or configs
|
||||
|
||||
IFS=$'\n\t'
|
||||
|
||||
# Define directories
|
||||
waybar_layouts="$HOME/.config/waybar/configs"
|
||||
waybar_config="$HOME/.config/waybar/config"
|
||||
SCRIPTSDIR="$HOME/.config/hypr/scripts"
|
||||
rofi_config="$HOME/.config/rofi/config-waybar-layout.rasi"
|
||||
|
||||
# Function to display menu options
|
||||
menu() {
|
||||
options=()
|
||||
while IFS= read -r file; do
|
||||
options+=("$(basename "$file")")
|
||||
done < <(find -L "$waybar_layouts" -maxdepth 1 -type f -exec basename {} \; | sort)
|
||||
|
||||
printf '%s\n' "${options[@]}"
|
||||
}
|
||||
|
||||
# Apply selected configuration
|
||||
apply_config() {
|
||||
ln -sf "$waybar_layouts/$1" "$waybar_config"
|
||||
#restart_waybar_if_needed
|
||||
"${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
|
||||
|
||||
case $choice in
|
||||
"no panel")
|
||||
pgrep -x "waybar" && pkill waybar || true
|
||||
;;
|
||||
*)
|
||||
apply_config "$choice"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
# Kill Rofi if already running before execution
|
||||
if pgrep -x "rofi" >/dev/null; then
|
||||
pkill rofi
|
||||
#exit 0
|
||||
fi
|
||||
|
||||
main
|
|
@ -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
|
|
@ -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 &
|
|
@ -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
|
Binary file not shown.
After Width: | Height: | Size: 1007 KiB |
Binary file not shown.
After Width: | Height: | Size: 432 KiB |
|
@ -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)
|
|
@ -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
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue