diff --git a/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.kvconfig b/config/Kvantum/GruvboxMaterial/GruvboxMaterial.kvconfig similarity index 60% rename from user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.kvconfig rename to config/Kvantum/GruvboxMaterial/GruvboxMaterial.kvconfig index 87cb82f5e..ffefe504a 100644 --- a/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.kvconfig +++ b/config/Kvantum/GruvboxMaterial/GruvboxMaterial.kvconfig @@ -1,6 +1,6 @@ [%General] -author=sachnr, based on KvAdapta -comment=Gruvbox Dark theme with brown highlights +author=ShelockH0, based on Graphite Dark by Vince Liuice and Gruvbox GTK by Fausto Korpsvart +comment=An uncomplicated, warm and aesthetic gruvbox theme inspired by Gruvbox GTK Theme by Fausto Korpsvart x11drag=menubar_and_primary_toolbar alt_mnemonic=true left_tabs=true @@ -11,17 +11,19 @@ toolbar_item_spacing=0 toolbar_interior_spacing=2 spread_progressbar=true composite=true -menu_shadow_depth=5 +menu_shadow_depth=6 +spread_menuitems=false tooltip_shadow_depth=2 -splitter_width=4 -scroll_width=9 +splitter_width=1 +scroll_width=14 scroll_arrows=false scroll_min_extent=60 slider_width=2 -slider_handle_width=22 +slider_handle_width=23 slider_handle_length=22 +tickless_slider_handle_size=22 center_toolbar_handle=true -check_size=14 +check_size=16 textless_progressbar=false progressbar_thickness=2 menubar_mouse_tracking=true @@ -37,7 +39,7 @@ merge_menubar_with_toolbar=true small_icon_size=16 large_icon_size=32 button_icon_size=16 -toolbar_icon_size=22 +toolbar_icon_size=16 combo_as_lineedit=true animate_states=true button_contents_shift=false @@ -46,105 +48,145 @@ hide_combo_checkboxes=true combo_focus_rect=false groupbox_top_label=true inline_spin_indicators=true -joined_inactive_tabs=true +joined_inactive_tabs=false layout_spacing=6 layout_margin=9 scrollbar_in_view=true transient_scrollbar=true transient_groove=false submenu_overlap=0 -tooltip_delay=-1 +tooltip_delay=0 tree_branch_line=true no_window_pattern=false opaque=kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,smplayer,smplayer2,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam reduce_window_opacity=0 respect_DE=true -scrollable_menu=false -submenu_delay=250 +scrollable_menu=true +submenu_delay=150 +no_inactiveness=false +reduce_menu_opacity=0 +click_behavior=0 +contrast=1.00 +dialog_button_layout=0 +intensity=1.00 +saturation=1.00 +shadowless_popup=false +drag_from_buttons=false +menu_blur_radius=0 +tooltip_blur_radius=0 [GeneralColors] -window.color=#232323 -base.color=#282828 +window.color=#1D2021 +base.color=#1D2021 alt.base.color=#282828 -button.color=#2e2e2e +button.color=#1D2021 light.color=#504945 -mid.light.color=#3f3f3f -dark.color=#1d2021 -mid.color=##202324 -highlight.color=#665c54cc -inactive.highlight.color=#665c54bb -text.color=#ebdbb2 -window.text.color=#ebdbb2 -button.text.color=#ebdbb2 -disabled.text.color=#a89984 -tooltip.text.color=#fbf1c7 -highlight.text.color=#3c3836 -link.color=#b8bb26 -link.visited.color=#98971a -progress.indicator.text.color=#fbf1c7 +mid.light.color=#3C3836 +dark.color=#141617 +mid.color=#282828 +highlight.color=#89B482 +inactive.highlight.color=#32361A +text.color=#ddc7a1 +window.text.color=#ddc7a1 +button.text.color=#ddc7a1 +disabled.text.color=#ddc7a17F +tooltip.text.color=#D4BE98 +highlight.text.color=#000000C3 +link.color=#7daea3 +link.visited.color=#d3869b +progress.indicator.text.color=#ddc7a1 [Hacks] transparent_ktitle_label=true -transparent_dolphin_view=false +transparent_dolphin_view=true transparent_pcmanfm_sidepane=true -blur_translucent=false +blur_translucent=true transparent_menutitle=true -respect_darkness=false +respect_darkness=true kcapacitybar_as_progressbar=true force_size_grip=true iconless_pushbutton=true iconless_menu=false -disabled_icon_opacity=70 -lxqtmainmenu_iconsize=22 +disabled_icon_opacity=100 +lxqtmainmenu_iconsize=16 normal_default_pushbutton=true single_top_toolbar=true tint_on_mouseover=0 -transparent_pcmanfm_view=false +transparent_pcmanfm_view=true no_selection_tint=true transparent_arrow_button=true +middle_click_scroll=false +opaque_colors=false +kinetic_scrolling=false +scroll_jump_workaround=false +centered_forms=false +noninteger_translucency=false +style_vertical_toolbars=false +blur_only_active_window=true + +[BaseWidget] +interior=true +indicator.size=12 +frame=true +frame.top=0 +frame.bottom=0 +frame.left=0 +frame.right=0 +frame.expansion=0 +text.margin=true +text.margin.top=0 +text.margin.bottom=0 +text.margin.left=0 +text.margin.right=0 +text.bold=false +text.shadow=0 [PanelButtonCommand] frame=true frame.element=button -frame.top=4 -frame.bottom=4 -frame.left=4 -frame.right=4 +frame.top=6 +frame.bottom=6 +frame.left=6 +frame.right=6 interior=true interior.element=button indicator.size=8 -text.normal.color=#ebdbb2 -text.focus.color=#3c3836 -text.press.color=#ebdbb2 -text.toggle.color=#fbf1c7 +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 +text.press.color=#ddc7a1 +text.toggle.color=#3C3836 text.shadow=0 -text.margin=1 +text.margin=4 text.iconspacing=4 indicator.element=arrow -text.margin.top=2 -text.margin.bottom=4 -text.margin.left=2 -text.margin.right=2 -min_width=+0.3font -min_height=+0.3font -frame.expansion=14 +frame.expansion=0 [PanelButtonTool] inherits=PanelButtonCommand -text.normal.color=#ebdbb2 +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 +text.press.color=#ddc7a1 +text.toggle.color=#3C3836 text.bold=false indicator.element=arrow indicator.size=0 +frame.expansion=0 [ToolbarButton] +frame=true frame.element=tbutton interior.element=tbutton +frame.top=16 +frame.bottom=16 +frame.left=16 +frame.right=16 indicator.element=tarrow -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 -text.press.color=#fbf1c7 -text.toggle.color=#fbf1c7 +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 +text.press.color=#ddc7a1 +text.toggle.color=#ddc7a1 text.bold=false +frame.expansion=32 [Dock] inherits=PanelButtonCommand @@ -154,14 +196,14 @@ frame.top=1 frame.bottom=1 frame.left=1 frame.right=1 -text.normal.color=#ebdbb2 +text.normal.color=#ddc7a1 [DockTitle] inherits=PanelButtonCommand frame=false interior=false -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 text.bold=false [IndicatorSpinBox] @@ -174,7 +216,7 @@ frame.left=2 frame.right=2 indicator.element=spin indicator.size=8 -text.normal.color=#ebdbb2 +text.normal.color=#ddc7a1 text.margin.top=2 text.margin.bottom=2 text.margin.left=2 @@ -184,8 +226,8 @@ text.margin.right=2 inherits=PanelButtonCommand frame=false interior.element=radio -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 min_width=+0.3font min_height=+0.3font @@ -193,8 +235,8 @@ min_height=+0.3font inherits=PanelButtonCommand frame=false interior.element=checkbox -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 min_width=+0.3font min_height=+0.3font @@ -202,11 +244,11 @@ min_height=+0.3font inherits=PanelButtonCommand frame=true frame.element=focus -frame.top=1 -frame.bottom=1 -frame.left=1 -frame.right=1 -frame.patternsize=20 +frame.top=2 +frame.bottom=2 +frame.left=2 +frame.right=2 +frame.patternsize=14 [GenericFrame] inherits=PanelButtonCommand @@ -214,25 +256,27 @@ frame=true interior=false frame.element=common interior.element=common -frame.top=3 -frame.bottom=3 -frame.left=3 -frame.right=3 +frame.top=1 +frame.bottom=1 +frame.left=1 +frame.right=1 [LineEdit] inherits=PanelButtonCommand frame.element=lineedit interior.element=lineedit -interior=false -frame.top=2 -frame.bottom=2 -frame.left=2 -frame.right=2 +frame.top=6 +frame.bottom=6 +frame.left=6 +frame.right=6 text.margin.top=2 text.margin.bottom=2 text.margin.left=2 text.margin.right=2 -frame.expansion=0 + +[ToolbarLineEdit] +frame.element=lineedit +interior.element=lineedit [DropDownButton] inherits=PanelButtonCommand @@ -244,26 +288,28 @@ indicator.size=8 [ToolboxTab] inherits=PanelButtonCommand -text.normal.color=#ebdbb2 -text.press.color=#ebdbb2 -text.focus.color=#fbf1c7 +text.normal.color=#ddc7a1 +text.press.color=#ddc7a1 +text.focus.color=#ddc7a1 [Tab] inherits=PanelButtonCommand interior.element=tab text.margin.left=8 text.margin.right=8 -text.margin.top=2 -text.margin.bottom=2 +text.margin.top=0 +text.margin.bottom=0 frame.element=tab indicator.element=tab -frame.top=2 -frame.bottom=2 -frame.left=2 -frame.right=2 -text.normal.color=#ebdbb2 -text.focus.color=#ebdbb2 -text.toggle.color=#ebdbb2 +indicator.size=22 +frame.top=8 +frame.bottom=8 +frame.left=8 +frame.right=8 +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 +text.press.color=#ddc7a1 +text.toggle.color=#ddc7a1 frame.expansion=0 text.bold=false @@ -271,10 +317,10 @@ text.bold=false inherits=PanelButtonCommand frame.element=tabframe interior.element=tabframe -frame.top=2 -frame.bottom=2 -frame.left=2 -frame.right=2 +frame.top=6 +frame.bottom=6 +frame.left=6 +frame.right=6 [TreeExpander] inherits=PanelButtonCommand @@ -285,14 +331,14 @@ indicator.element=tree inherits=PanelButtonCommand interior.element=header frame.element=header -frame.top=1 +frame.top=0 frame.bottom=1 frame.left=1 frame.right=1 -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 -text.press.color=#fbf1c7 -text.toggle.color=#fbf1c7 +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 +text.press.color=#ddc7a1 +text.toggle.color=#ddc7a1 frame.expansion=0 [SizeGrip] @@ -303,19 +349,22 @@ inherits=PanelButtonCommand indicator.element=toolbar indicator.size=5 text.margin=0 -interior.element=menubar -frame.element=menubar -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 -frame.left=0 -frame.right=0 -frame.top=0 -frame.bottom=4 +interior.element=toolbar +frame.element=toolbar +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 +text.press.color=#ddc7a1 +text.toggle.color=#ddc7a1 +frame.left=3 +frame.right=3 +frame.top=3 +frame.bottom=3 frame.expansion=0 [Slider] inherits=PanelButtonCommand frame.element=slider +focusFrame=true interior.element=slider frame.top=3 frame.bottom=3 @@ -332,10 +381,10 @@ inherits=PanelButtonCommand frame.element=progress interior.element=progress text.margin=0 -text.normal.color=#ebdbb2 -text.focus.color=#ebdbb2 -text.press.color=#ebdbb2 -text.toggle.color=#cfd8dc +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 +text.press.color=#ddc7a1 +text.toggle.color=#ddc7a1 text.bold=false frame.expansion=8 @@ -350,18 +399,18 @@ inherits=PanelButtonCommand text.margin=0 frame.element=itemview interior.element=itemview -frame.top=2 -frame.bottom=2 -frame.left=2 -frame.right=2 -text.margin.top=2 -text.margin.bottom=2 -text.margin.left=4 -text.margin.right=4 -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 -text.press.color=#fbf1c7 -text.toggle.color=#fbf1c7 +frame.top=4 +frame.bottom=4 +frame.left=4 +frame.right=4 +text.margin.top=0 +text.margin.bottom=0 +text.margin.left=8 +text.margin.right=8 +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 +text.press.color=#3C3836 +text.toggle.color=#ffffff min_width=+0.3font min_height=+0.3font frame.expansion=0 @@ -370,23 +419,38 @@ frame.expansion=0 indicator.size=48 [Scrollbar] -inherits=PanelButtonCommand -indicator.element=arrow -indicator.size=8 +inherits=BaseWidget + +[ScrollbarGroove] +inherits=BaseWidget +interior=false +frame.element=scrollbargroove +frame.left=7 +frame.right=7 +frame.top=7 +frame.bottom=7 [ScrollbarSlider] inherits=PanelButtonCommand -interior.element=scrollbarslider -interior=true -frame=false -indicator.element=grip -indicator.size=13 -frame.expansion=48 - -[ScrollbarGroove] -inherits=PanelButtonCommand +frame.element=scrollbarslider interior=false -frame=false +frame.left=7 +frame.right=7 +frame.top=7 +frame.bottom=7 + +[Menu] +inherits=PanelButtonCommand +frame.top=10 +frame.bottom=10 +frame.left=10 +frame.right=10 +frame.element=menu +interior.element=menu +text.normal.color=#ddc7a1 +text.shadow=false +frame.expansion=0 +text.bold=false [MenuItem] inherits=PanelButtonCommand @@ -394,19 +458,17 @@ frame=true frame.element=menuitem interior.element=menuitem indicator.element=menuitem -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 -text.margin.top=1 -text.margin.bottom=1 -text.margin.left=4 -text.margin.right=4 -frame.top=0 -frame.bottom=0 -frame.left=0 -frame.right=0 +text.normal.color=#ddc7a1 +text.focus.color=#3C3836 +text.margin.top=0 +text.margin.bottom=0 +text.margin.left=6 +text.margin.right=6 +frame.top=4 +frame.bottom=4 +frame.left=4 +frame.right=4 text.bold=false -min_width=+0.3font -min_height=+0.3font frame.expansion=0 [MenuBar] @@ -414,7 +476,10 @@ inherits=PanelButtonCommand frame.element=menubar interior.element=menubar frame.bottom=0 -text.normal.color=#ebdbb2 +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 +text.press.color=#ddc7a1 +text.toggle.color=#ddc7a1 frame.expansion=0 text.bold=false @@ -431,8 +496,10 @@ text.margin.left=4 text.margin.right=4 text.margin.top=0 text.margin.bottom=0 -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 +text.press.color=#ddc7a1 +text.toggle.color=#ddc7a1 text.bold=false min_width=+0.3font min_height=+0.3font @@ -448,8 +515,8 @@ text.margin.right=2 interior.element=titlebar indicator.size=16 indicator.element=mdi -text.normal.color=#d5c4a1 -text.focus.color=#ebdbb2 +text.normal.color=#D4BE98 +text.focus.color=#ddc7a1 text.bold=false text.italic=true frame.expansion=0 @@ -458,64 +525,50 @@ frame.expansion=0 inherits=PanelButtonCommand frame.element=combo interior.element=combo -interior=false -frame.top=2 -frame.bottom=2 -frame.left=2 -frame.right=2 +frame.top=6 +frame.bottom=6 +frame.left=6 +frame.right=6 text.margin.top=2 text.margin.bottom=2 text.margin.left=2 text.margin.right=2 -text.focus.color=#fbf1c7 -text.press.color=#ebdbb2 -text.toggle.color=#fbf1c7 -frame.expansion=0 - -[Menu] -inherits=PanelButtonCommand -frame.top=1 -frame.bottom=1 -frame.left=1 -frame.right=1 -frame.element=menu -interior.element=menu -text.normal.color=#ebdbb2 -text.shadow=false -frame.expansion=0 +text.focus.color=#ddc7a1 +text.press.color=#ddc7a1 +text.toggle.color=#ddc7a1 [GroupBox] inherits=GenericFrame frame=false text.shadow=0 text.margin=0 -text.normal.color=#ebdbb2 -text.focus.color=#fbf1c7 +text.normal.color=#ddc7a1 +text.focus.color=#ddc7a1 text.bold=false frame.expansion=0 [TabBarFrame] inherits=GenericFrame -frame=true +frame=false frame.element=tabBarFrame interior=false -frame.top=2 -frame.bottom=2 -frame.left=2 -frame.right=2 +frame.top=0 +frame.bottom=0 +frame.left=0 +frame.right=0 [ToolTip] inherits=GenericFrame -frame.top=3 -frame.bottom=3 -frame.left=3 -frame.right=3 +frame.top=6 +frame.bottom=6 +frame.left=6 +frame.right=6 interior=true text.shadow=0 text.margin=0 interior.element=tooltip frame.element=tooltip -frame.expansion=0 +frame.expansion=6 [StatusBar] inherits=GenericFrame @@ -525,3 +578,7 @@ interior=false [Window] interior=true interior.element=window +frame=true +frame.element=window +frame.bottom=10 +frame.top=10 diff --git a/config/Kvantum/GruvboxMaterial/GruvboxMaterial.svg b/config/Kvantum/GruvboxMaterial/GruvboxMaterial.svg new file mode 100644 index 000000000..71d87119c --- /dev/null +++ b/config/Kvantum/GruvboxMaterial/GruvboxMaterial.svg @@ -0,0 +1,6696 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/Kvantum/kvantum.kvconfig b/config/Kvantum/kvantum.kvconfig new file mode 100644 index 000000000..63ebaf3d6 --- /dev/null +++ b/config/Kvantum/kvantum.kvconfig @@ -0,0 +1,2 @@ +[General] +theme=GruvboxMaterial diff --git a/user/.config/btop/btop.conf b/config/btop/btop.conf similarity index 100% rename from user/.config/btop/btop.conf rename to config/btop/btop.conf diff --git a/user/.config/fish/config.fish b/config/fish/config.fish similarity index 76% rename from user/.config/fish/config.fish rename to config/fish/config.fish index 05d9ed961..6d5a06746 100644 --- a/user/.config/fish/config.fish +++ b/config/fish/config.fish @@ -9,16 +9,17 @@ # First line removes the path; second line sets it. Without the first line, # your path gets massive and fish becomes very slow. set -e fish_user_paths -set -U fish_user_paths $HOME/.local/bin /var/lib/flatpak/exports/bin/ $fish_user_paths +set -U fish_user_paths $HOME/.bin $HOME/.local/bin $HOME/.go/bin $HOME/.cargo/bin $HOME/.local/lib/flutter/bin $HOME/Applications $HOME/.local/share/JetBrains/Toolbox/scripts $HOME/.config/vifm/scripts /var/lib/flatpak/exports/bin/ $fish_user_paths ### EXPORT ### set fish_greeting # Supresses fish's intro message set TERM "xterm-256color" # Sets the terminal type set EDITOR "$HOME/.local/bin/lvim" -set VISUAL "$HOME/.local/bin/neovide" +set VISUAL "wezterm start --class neovim $HOME/.local/bin/lvim" +set GOPATH "$HOME/.go" ### SET BAT AS MANPAGER -set -x PAGER "bat -p" +#set -x MANPAGER "sh -c 'col -bx | bat -l man -p'" ### SET EITHER DEFAULT EMACS MODE OR VI MODE ### function fish_user_key_bindings @@ -34,7 +35,6 @@ set fish_color_command brcyan set fish_color_error '#fb4934' set fish_color_param brcyan - ### FUNCTIONS ### # Functions needed for !! and !$ function __history_previous_command @@ -115,6 +115,12 @@ end function take --argument number head -$number end + +# unlock ssh keys +function unlock + ssh-add "$HOME/.ssh/$argv[1]" +end + ### END OF FUNCTIONS ### ### ALIASES ### @@ -125,11 +131,17 @@ alias .3='cd ../../..' alias .4='cd ../../../..' alias .5='cd ../../../../..' -# emacs as vim -alias vim="$HOME/.local/bin/lvim" +# use lunarvim or neovim for vim if present. +if test -x "$HOME/.local/bin/lvim" + alias vim "$HOME/.local/bin/lvim" +else if test -x (command -v nvim) + alias vim "nvim" +end # bat as cat -alias cat='bat' +if test -x (command -v bat) + alias cat "bat" +end # Changing "ls" to "eza" alias ls='eza -al --color=always --group-directories-first' # my preferred listing @@ -139,11 +151,12 @@ alias lt='eza -aT --color=always --group-directories-first' # tree listing alias l.='eza -a | egrep "^\."' # package management -alias pkg-update='sudo xbps-install -Suv && xcheckrestart' -alias pkg-install='sudo xbps-install -S' -alias pkg-remove='sudo xbps-remove -R' -alias pkg-search='sudo xbps-query -R' -alias pkg-clean='sudo xbps-remove -Oo' +alias pkg-update="paru -Syu" +alias pkg-install="paru -S" +alias pkg-remove="paru -Rcns" +alias pkg-remove-sec="paru -R" +alias pkg-search="paru -Ss" +alias pkg-clean="paru -Scc && paru -Rns (pacman -Qtdq)" # Colorize grep output (good for log files) alias grep='grep --color=auto' @@ -151,8 +164,9 @@ alias egrep='egrep --color=auto' alias fgrep='fgrep --color=auto' # file management -alias fm="vifm" -alias flm="vifm" +alias fm="$HOME/.config/vifm/scripts/vifmrun" +alias flm="$HOME/.config/vifm/scripts/vifmrun" +alias vifm="$HOME/.config/vifm/scripts/vifmrun" alias cp='cp -iv' alias mv='mv -iv' alias rm='rm -vI' @@ -182,22 +196,23 @@ alias psmem='ps auxf | sort -nr -k 4' alias pscpu='ps auxf | sort -nr -k 3' # git -alias addup='git add -u' -alias addall='git add .' -alias branch='git branch' -alias checkout='git checkout' -alias clone='git clone' -alias commit='git commit -m' -alias fetch='git fetch' -alias pull='git pull origin' -alias push='git push origin' -alias tag='git tag' -alias newtag='git tag -a' +alias git-adu='git add -u' +alias git-adl='git add .' +alias git-brn='git branch' +alias git-chk='git checkout' +alias git-cln='git clone' +alias git-cmt='git commit -m' +alias git-fth='git fetch' +alias git-pll='git pull origin' +alias git-psh='git push origin' +alias git-sts='git status' +alias git-tag='git tag' +alias git-ntg='git tag -a' # power management -alias po='loginctl poweroff' -alias sp='loginctl suspend' -alias rb='loginctl reboot' +alias po='systemctl poweroff' +alias sp='systemctl suspend' +alias rb='systemctl reboot' # youtube- alias yta-aac="yt-dlp --extract-audio --audio-format aac " @@ -209,10 +224,10 @@ alias yta-opus="yt-dlp --extract-audio --audio-format opus " alias yta-vorbis="yt-dlp --extract-audio --audio-format vorbis " alias yta-wav="yt-dlp --extract-audio --audio-format wav " alias ytv-best="yt-dlp -f bestvideo+bestaudio " -alias yt='ytfzf -ftsl' -alias youtube='ytfzf -ftsl' -alias ytm='ytfzf -mtsl' -alias youtube-music='ytfzf -mtsl' +alias yt='ytfzf -ftslT kitty' +alias youtube='ytfzf -ftslT kitty' +alias ytm='ytfzf -mtslT kitty' +alias youtube-music='ytfzf -mtslT kitty' # network and bluetooth alias netstats='nmcli dev' @@ -225,3 +240,4 @@ alias blt='bluetoothctl' ### SETTING THE STARSHIP PROMPT ### starship init fish | source +zoxide init fish | source diff --git a/config/foot/foot.ini b/config/foot/foot.ini new file mode 100644 index 000000000..f6c826311 --- /dev/null +++ b/config/foot/foot.ini @@ -0,0 +1,212 @@ +# -*- conf -*- + +shell=fish +# term=foot (or xterm-256color if built with -Dterminfo=disabled) +# login-shell=no + +# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode +# title=foot +# locked-title=no + +font=Mononoki Nerd Font:size=14 +# font-bold= +# font-italic= +# font-bold-italic= +# font-size-adjustment=0.5 +# line-height= +# letter-spacing=0 +# horizontal-letter-offset=0 +# vertical-letter-offset=0 +# underline-offset= +# underline-thickness= +# box-drawings-uses-font-glyphs=no +# dpi-aware=no + +# initial-window-size-pixels=700x500 # Or, +initial-window-size-chars=140x35 +# initial-window-mode=windowed +pad=10x10 # optionally append 'center' +# resize-by-cells=yes +# resize-delay-ms=100 + +# bold-text-in-bright=no +# word-delimiters=,│`|:"'()[]{}<> +# selection-target=primary +# workers= +# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux) +# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD) + +[environment] +# name=value + +[bell] +# urgent=no +# notify=no +# visual=no +# command= +# command-focused=no + +[desktop-notifications] +# command=notify-send --wait --app-name ${app-id} --icon ${app-id} --category ${category} --urgency ${urgency} --expire-time ${expire-time} --hint STRING:image-path:${icon} --hint BOOLEAN:suppress-sound:${muted} --hint STRING:sound-name:${sound-name} --replace-id ${replace-id} ${action-argument} --print-id -- ${title} ${body} +# command-action-argument=--action ${action-name}=${action-label} +# close="" +# inhibit-when-focused=yes + + +[scrollback] +lines=10000 +# multiplier=3.0 +# indicator-position=relative +# indicator-format="" + +[url] +launch=xdg-open ${url} +# label-letters=sadfjklewcmpgh +# osc8-underline=url-mode +# protocols=http, https, ftp, ftps, file, gemini, gopher +# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[] + +[cursor] +style=underline +# color= +blink=yes +# blink-rate=500 +# beam-thickness=1.5 +# underline-thickness= + +[mouse] +# hide-when-typing=no +# alternate-scroll-mode=yes + +[touch] +# long-press-delay=400 + +[colors] +alpha=0.95 + +background=1d2021 +foreground=fbf1c7 +regular0=282828 +regular1=cc241d +regular2=98971a +regular3=d79921 +regular4=458588 +regular5=b16286 +regular6=689d6a +regular7=a89984 +bright0=928374 +bright1=fb4934 +bright2=b8bb26 +bright3=fabd2f +bright4=83a598 +bright5=d3869b +bright6=8ec07c +bright7=ebdbb2 + +[csd] +# preferred=server +# size=26 +# font= +# color= +# hide-when-maximized=no +# double-click-to-maximize=yes +# border-width=0 +# border-color= +# button-width=26 +# button-color= +# button-minimize-color= +# button-maximize-color= +# button-close-color= + +[key-bindings] +# scrollback-up-page=Shift+Page_Up +# scrollback-up-half-page=none +# scrollback-up-line=none +# scrollback-down-page=Shift+Page_Down +# scrollback-down-half-page=none +# scrollback-down-line=none +# scrollback-home=none +# scrollback-end=none +# clipboard-copy=Control+Shift+c XF86Copy +# clipboard-paste=Control+Shift+v XF86Paste +# primary-paste=Shift+Insert +# search-start=Control+Shift+r +# font-increase=Control+plus Control+equal Control+KP_Add +# font-decrease=Control+minus Control+KP_Subtract +# font-reset=Control+0 Control+KP_0 +# spawn-terminal=Control+Shift+n +# minimize=none +# maximize=none +# fullscreen=none +# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none +# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none +# pipe-selected=[xargs -r firefox] none +# pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard +# show-urls-launch=Control+Shift+o +# show-urls-copy=none +# show-urls-persistent=none +# prompt-prev=Control+Shift+z +# prompt-next=Control+Shift+x +# unicode-input=Control+Shift+u +# noop=none + +[search-bindings] +# cancel=Control+g Control+c Escape +# commit=Return +# find-prev=Control+r +# find-next=Control+s +# cursor-left=Left Control+b +# cursor-left-word=Control+Left Mod1+b +# cursor-right=Right Control+f +# cursor-right-word=Control+Right Mod1+f +# cursor-home=Home Control+a +# cursor-end=End Control+e +# delete-prev=BackSpace +# delete-prev-word=Mod1+BackSpace Control+BackSpace +# delete-next=Delete +# delete-next-word=Mod1+d Control+Delete +# extend-char=Shift+Right +# extend-to-word-boundary=Control+w Control+Shift+Right +# extend-to-next-whitespace=Control+Shift+w +# extend-line-down=Shift+Down +# extend-backward-char=Shift+Left +# extend-backward-to-word-boundary=Control+Shift+Left +# extend-backward-to-next-whitespace=none +# extend-line-up=Shift+Up +# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste +# primary-paste=Shift+Insert +# unicode-input=none +# quit=none +# scrollback-up-page=Shift+Page_Up +# scrollback-up-half-page=none +# scrollback-up-line=none +# scrollback-down-page=Shift+Page_Down +# scrollback-down-half-page=none +# scrollback-down-line=none +# scrollback-home=none +# scrollback-end=none + +[url-bindings] +# cancel=Control+g Control+c Control+d Escape +# toggle-url-visible=t + +[text-bindings] +# \x03=Mod4+c # Map Super+c -> Ctrl+c + +[mouse-bindings] +# scrollback-up-mouse=BTN_WHEEL_BACK +# scrollback-down-mouse=BTN_WHEEL_FORWARD +# font-increase=Control+BTN_WHEEL_BACK +# font-decrease=Control+BTN_WHEEL_FORWARD +# selection-override-modifiers=Shift +# primary-paste=BTN_MIDDLE +# select-begin=BTN_LEFT +# select-begin-block=Control+BTN_LEFT +# select-extend=BTN_RIGHT +# select-extend-character-wise=Control+BTN_RIGHT +# select-word=BTN_LEFT-2 +# select-word-whitespace=Control+BTN_LEFT-2 +# select-quote = BTN_LEFT-3 +# select-row=BTN_LEFT-4 + +# vim: ft=dosini diff --git a/user/.config/fuzzel/fuzzel.ini b/config/fuzzel/fuzzel.ini similarity index 93% rename from user/.config/fuzzel/fuzzel.ini rename to config/fuzzel/fuzzel.ini index f77ce9f01..277905314 100644 --- a/user/.config/fuzzel/fuzzel.ini +++ b/config/fuzzel/fuzzel.ini @@ -1,21 +1,22 @@ -font=Mononoki Nerd Font:size=09 +font=Mononoki Nerd Font:size=14 +dpi-aware=no prompt=" " -icon-theme=gruvbox-dark-icons-gtk +icon-theme=Papirus-Dark icons-enabled=yes password-character=* fuzzy=yes -terminal=wezterm start +terminal=foot lines=20 width=70 inner-pad=12 vertical-pad=24 horizontal-pad=32 -layer= top +layer=top exit-on-keyboard-focus-loss=yes [colors] background=1d2021ff -text=ebdbb2ff +text=fbf1c7ff match=8ec07cff selection-match=1d2021ff selection=cc241dff diff --git a/user/.local/bin/rs_blue b/config/fuzzel/scripts/rs_blue similarity index 100% rename from user/.local/bin/rs_blue rename to config/fuzzel/scripts/rs_blue diff --git a/config/fuzzel/scripts/rs_clip b/config/fuzzel/scripts/rs_clip new file mode 100755 index 000000000..5044463d2 --- /dev/null +++ b/config/fuzzel/scripts/rs_clip @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +# rs_clip - A simple clipboard menu script for rofi/dmenu/wofi/fuzzel +# Author: Clay Gomera (Drake) +# Dependencies: {rofi || dmenu || wofi // fuzzel}, cliphist, wl-clipboard (wl-copy) + +######################## +# Function Definitions # +######################## + +# Check for missing dependencies +check_dependencies() { + local run_launcher_found=false + for launcher in rofi dmenu wofi fuzzel; do + if command -v "$launcher" &> /dev/null; then + run_launcher_found=true + break + fi + done + + if [ "$run_launcher_found" = false ]; then + echo "Missing dependency: one of rofi, dmenu, wofi or fuzzel is required." + exit 1 + fi + + local missing_deps=() + for dep in cliphist wl-copy; do + if ! command -v "$dep" &> /dev/null; then + missing_deps+=("$dep") + fi + done + + if [ ${#missing_deps[@]} -ne 0 ]; then + echo "Missing dependencies: ${missing_deps[*]}" + exit 1 + fi +} + +#################### +# Main Script Flow # +#################### + +# Check for dependencies +check_dependencies + +# Pass clipboard data into the menu +cliphist list | $RUNNER -l 10 -p "[󱉧 Clipboard]  " | cliphist decode | wl-copy diff --git a/user/.local/bin/rs_emoji b/config/fuzzel/scripts/rs_emoji similarity index 98% rename from user/.local/bin/rs_emoji rename to config/fuzzel/scripts/rs_emoji index 58048718d..aa3b31167 100755 --- a/user/.local/bin/rs_emoji +++ b/config/fuzzel/scripts/rs_emoji @@ -1,5 +1,55 @@ -#!/bin/bash -sed '1,/^### DATA ###$/d' $0 | $RUNNER -l 10 -i -p "[󰙃 Select Emoji]  " | cut -d ' ' -f 1 | tr -d '\n' | wl-copy +#!/usr/bin/env bash + +# rs_emoji - A simple emoji picker menu script for rofi/dmenu/wofi/fuzzel +# Author: Clay Gomera (Drake) +# Dependencies: {rofi || dmenu || wofi || fuzzel}, wl-clipboard (wl-copy) + +######################## +# Function Definitions # +######################## + +# Check for missing dependencies +check_dependencies() { + local run_launcher_found=false + for launcher in rofi dmenu wofi fuzzel; do + if command -v "$launcher" &> /dev/null; then + run_launcher_found=true + break + fi + done + + if [ "$run_launcher_found" = false ]; then + echo "Missing dependency: one of rofi, dmenu, wofi or fuzzel is required." + exit 1 + fi + + local missing_deps=() + for dep in wl-copy; do + if ! command -v "$dep" &> /dev/null; then + missing_deps+=("$dep") + fi + done + + if [ ${#missing_deps[@]} -ne 0 ]; then + echo "Missing dependencies: ${missing_deps[*]}" + exit 1 + fi +} + +#################### +# Main Script Flow # +#################### + +# Check for dependencies +check_dependencies + +# Pass emoji data into the menu +sed '1,/^### DATA ###$/d' $0 | $RUNNER -i -p "[󰙃 Select Emoji] " | cut -d ' ' -f 1 | tr -d '\n' | wl-copy + +############## +# Emoji Data # +############## + ### DATA ### 😀 grinning face face smile happy joy :D grin 😃 grinning face with big eyes face happy joy haha :D :) smile funny diff --git a/user/.local/bin/rs_power b/config/fuzzel/scripts/rs_power similarity index 89% rename from user/.local/bin/rs_power rename to config/fuzzel/scripts/rs_power index a16e588bb..08284d126 100755 --- a/user/.local/bin/rs_power +++ b/config/fuzzel/scripts/rs_power @@ -47,29 +47,22 @@ fi prompt1="[ Power Options]  " prompt2="[ Power Profiles - Currently set to: $currentpwr]  " -##### -## This variable will store the currently active session in tty1 -##### -ACTIVE_SESSION=$(loginctl list | grep -E "$USER.*tty1" | awk '{print $1}') - ########## ## main ## ########## action=$(echo -e "$options" | $RUNNER -l 7 -p "$prompt1") # main menu prompt case "$action" in "$option1") - loginctl kill-session "$ACTIVE_SESSION" + loginctl kill-session self ;; "$option2") - loginctl reboot + systemctl reboot ;; "$option3") - loginctl poweroff + systemctl poweroff ;; "$option4") - swaylock -i "$currwall" & - sleep 0.1 - loginctl suspend + systemctl suspend ;; "$option5") swaylock -i "$currwall" diff --git a/config/fuzzel/scripts/rs_scrot b/config/fuzzel/scripts/rs_scrot new file mode 100755 index 000000000..5e9df58b8 --- /dev/null +++ b/config/fuzzel/scripts/rs_scrot @@ -0,0 +1,321 @@ +#!/usr/bin/env bash + +# rs_scrot - A simple screenshot menu script for rofi/dmenu/wofi/fuzzel +# Author: Clay Gomera (Drake) +# Dependencies: {rofi || dmenu || wofi || fuzzel}, grim, slurp, jq, wf-recorder, wl-clipboard (wl-copy), libnotify (notify-send) + +############################ +# Configuration Parameters # +############################ + +# Directory to save screenshots +SHOTDIR="$XDG_PICTURES_DIR/Screenshots" +VCAPDIR="$XDG_VIDEOS_DIR/Screencasts" # $MEDIA_DIR refers to a global variable in .xinitrc/.bash_profile +[ ! -d "$SHOTDIR" ] && [ ! -d "$VCAPDIR" ] && mkdir -p "$SHOTDIR" "$VCAPDIR" || echo + +# Get audio devices and descriptions +audioDevices=$(pactl list sources | grep "Name" | awk '{print $2}') +audioDescriptions=$(pactl list sources | grep "Description" | cut -d' ' -f2-) + +# Create an associative array for mapping pretty names to actual names +declare -A audioMap +while IFS= read -r name && IFS= read -r desc <&3; do + audioMap["$desc"]="$name" +done < <(echo "$audioDevices") 3< <(echo "$audioDescriptions") + +##################### +# Main Menu Options # +##################### +mainChoice1="󰹑 Take an screenshot" +mainChoice2="󰻃 Record the screen" +mainChoice3=" Exit" +mainChoices="$mainChoice1\n$mainChoice2\n$mainChoice3" + +############################# +## Screenshot menu choices ## +############################# +shotChoice1="󱣴 Entire screen" +shotChoice2="󱎫 Entire screen with delay" +shotChoice3="󱕻 Select region" +shotChoice4="󰖯 Active window" +shotChoice5="󱎘 Exit" +shotChoices="$shotChoice1\n$shotChoice2\n$shotChoice3\n$shotChoice4\n$shotChoice5" + +############################# +## Screencast menu choices ## +############################# +vidChoice1="󰕧 Record the screen" +vidChoice2="󰕩 Record region" +vidChoice3="󰕧 Record the screen with audio" +vidChoice4="󰕨 Stop recording" +vidChoice5="󱎘 Exit" +vidChoices="$vidChoice1\n$vidChoice2\n$vidChoice3\n$vidChoice4\n$vidChoice5" + +################### +# Submenu Options # +################### +subShotChoice1="󰆏 Copy to clipboard" +subShotChoice2="󰠘 Save to $XDG_PICTURES_DIR" +subShotChoice3="󱎘 Exit" +subShotChoices="$subShotChoice1\n$subShotChoice2\n$subShotChoice3" + +#################################### +# Screenshot Delay Submenu Options # +#################################### +delayChoice1="󱑀 3 sec delay" +delayChoice2="󱑂 5 sec delay" +delayChoice3="󱑇 10 sec delay" +delayChoice4="󱎘 Exit" +delayChoices="$delayChoice1\n$delayChoice2\n$delayChoice3\n$delayChoice4" + +######################## +# Function Definitions # +######################## + +# Check for missing dependencies +CheckDependencies() { + local run_launcher_found=false + for launcher in rofi dmenu wofi fuzzel; do + if command -v "$launcher" &> /dev/null; then + run_launcher_found=true + break + fi + done + + if [ "$run_launcher_found" = false ]; then + echo "Missing dependency: one of rofi, dmenu, wofi or fuzzel is required." + exit 1 + fi + + local missing_deps=() + for dep in grim slurp jq wl-copy notify-send wf-recorder; do + if ! command -v "$dep" &> /dev/null; then + missing_deps+=("$dep") + fi + done + + if [ ${#missing_deps[@]} -ne 0 ]; then + echo "Missing dependencies: ${missing_deps[*]}" + exit 1 + fi +} + +# Prompt user for screenshot action +ShotActionPrompt() { + shotActionCases=$(echo -e "$subShotChoices" | $RUNNER -l 3 -i -p "[ What do you want to do with this screenshot?] ") +} + +# Prompt user for screenshot delay +DelayPrompt() { + delayActionsCases=$(echo -e "$delayChoices" | $RUNNER -l 4 -i -p "[ Select Delay] ") +} + +# Take a full screen screenshot without delay +ShotScreen() { + ShotActionPrompt + case "$shotActionCases" in + "$subShotChoice1") + sleep 0.5 && grim - | wl-copy && notify-send "Screenshot copied to clipboard" + ;; + "$subShotChoice2") + sleep 0.5 && grim "$SHOTDIR/$(date +%s).png" && notify-send "Screenshot saved to $SHOTDIR" + ;; + *) + exit 0 + ;; + esac +} + +# Take a full screen screenshot with delay +ShotScreenDelay() { + ShotActionPrompt + if [ "$shotActionCases" = "$subShotChoice1" ]; then + DelayPrompt + case $delayActionsCases in + "$delayChoice1") + sleep 3 && grim - | wl-copy && notify-send "Screenshot saved to clipboard" + ;; + "$delayChoice2") + sleep 5 && grim - | wl-copy && notify-send "Screenshot saved to clipboard" + ;; + "$delayChoice3") + sleep 10 && grim - | wl-copy && notify-send "Screenshot saved to clipboard" + ;; + "$delayChoice4") + exit 0 + ;; + esac + elif [ "$shotActionCases" = "$subShotChoice2" ]; then + DelayPrompt + case $delayActionsCases in + "$delayChoice1") + sleep 3 && grim "$SHOTDIR/$(date +%s).png" && notify-send "Screenshot saved to $SHOTDIR" + ;; + "$delayChoice2") + sleep 5 && grim "$SHOTDIR/$(date +%s).png" && notify-send "Screenshot saved to $SHOTDIR" + ;; + "$delayChoice3") + sleep 10 && grim "$SHOTDIR/$(date +%s).png" && notify-send "Screenshot saved to $SHOTDIR" + ;; + "$delayChoice4") + exit 0 + ;; + esac + else + exit 0 + fi +} + +# Take a screenshot of a selected area +ShotArea() { + ShotActionPrompt + case "$shotActionCases" in + "$subShotChoice1") + sleep 0.5 && grim -g "$(slurp)" - | wl-copy && notify-send "Screenshot saved to clipboard" + ;; + "$subShotChoice2") + sleep 0.5 && grim -g "$(slurp)" "$SHOTDIR/$(date +%s).png" && notify-send "Screenshot saved to $SHOTDIR" + ;; + *) + exit 0 + ;; + esac +} + +# Take a screenshot of the active window +ShotWindow() { + ShotActionPrompt + local focused=$(hyprctl activewindow -j) + local geom=$(echo "$focused" | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"') + case "$shotActionCases" in + "$subShotChoice1") + sleep 0.5 && grim -g "$geom" - | wl-copy && notify-send "Screenshot saved to clipboard" + ;; + "$subShotChoice2") + sleep 0.5 && grim -g "$geom" "$SHOTDIR/$(date +%s).png" && notify-send "Screenshot saved to $SHOTDIR" + ;; + *) + exit 0 + ;; + esac +} + +# Record the entire screen +VidScreen() { + for ((i = 3; i >= 1; i--)); do + notify-send -t 1000 "Starting in $i seconds" + sleep 1 + done + wf-recorder -f "$VCAPDIR/$(date +%s).mp4" + notify-send "Screenshot" "Recording saved to $VCAPDIR" +} + +# Record a specific area of the screen +VidArea() { + wf-recorder -g "$(slurp)" -f "$VCAPDIR/$(date +%s).mp4" + notify-send "Screenshot" "Recording saved to $VCAPDIR" +} + +# Record the entire screen with audio +VidScreenAudio() { + local chosenPrettyDevice=$(echo -e "$audioDescriptions" | $RUNNER -i -p "󰕾 Select audio input") + local chosenDevice="${audioMap["$chosenPrettyDevice"]}" + if [ -n "$chosenDevice" ]; then + for ((i = 3; i >= 1; i--)); do + notify-send -t 1000 "Starting in $i seconds" + sleep 1 + done + wf-recorder --audio="$chosenDevice" -f "$VCAPDIR/$(date +%s).mp4" + else + exit 1 + fi + notify-send "Screenshot" "Recording saved to $VCAPDIR" +} + +# Stop the video recording +VidStopRecording() { + if pidof wfrecorder; then + killall -s SIGINT wf-recorder + else + notify-send "You are not recording right now" + exit 1 + fi +} + +################### +# Check arguments # +################### + +# Show help information +if [ "$1" == '--help' ] || [ "$1" = '-h' ]; then + echo "rs_scrot" + echo "USAGE: rs_scrot [OPTION]" + echo -e "(no option)\tshow the screenshot menu" + echo -e "-s, --stop\tstop recording" + echo -e "-h, --help\tthis screen" + exit 1 +fi + +# stop recording with -s or --stop arguments +if [ "$1" = '--stop' ] || [ "$1" = '-s' ]; then + VidStopRecording + exit 1 +fi + +#################### +# Main Script Flow # +#################### + +# Check for dependencies +CheckDependencies + +# Display main menu and execute selected option +mainCase=$(echo -e "$mainChoices" | $RUNNER -l 3 -i -p "[ Screenshot/Screencast Utility] ") +if [ -z "$mainCase" ]; then + exit 0 +fi + +case $mainCase in + "$mainChoice1") + shotCases=$(echo -e "$shotChoices" | $RUNNER -l 5 -i -p "[ Screenshot Menu] ") # screenshot menu prompt + case $shotCases in + "$shotChoice1") + ShotScreen + ;; + "$shotChoice2") + ShotScreenDelay + ;; + "$shotChoice3") + ShotArea + ;; + "$shotChoice4") + ShotWindow + ;; + "$shotChoice5") + exit 0 + ;; + esac + ;; + "$mainChoice2") + vidCases=$(echo -e "$vidChoices" | $RUNNER -l 5 -i -p "[󰕧 Screencast Menu] ") + case $vidCases in + "$vidChoice1") + VidScreen + ;; + "$vidChoice2") + VidArea + ;; + "$vidChoice3") + VidScreenAudio + ;; + "$vidChoice4") + VidStopRecording + ;; + "$vidChoice5") + exit 0 + esac + ;; + "$mainChoice3") + exit 0 + ;; +esac diff --git a/config/fuzzel/scripts/rs_wall b/config/fuzzel/scripts/rs_wall new file mode 100755 index 000000000..127c291c1 --- /dev/null +++ b/config/fuzzel/scripts/rs_wall @@ -0,0 +1,68 @@ +#!/usr/bin/env bash + +# rs_wall - A simple screenshot menu script for rofi/dmenu/wofi/fuzzel +# Author: Clay Gomera (Drake) +# Dependencies: {rofi || dmenu || wofi || fuzzel}, swaybg + +############################ +# Configuration Parameters # +############################ +walldir="$XDG_PICTURES_DIR/Wallpapers" # wallpapers folder, change it to yours + +######################## +# Function Definitions # +######################## + +# Check for missing dependencies +CheckDependencies() { + local run_launcher_found=false + for launcher in rofi dmenu wofi fuzzel; do + if command -v "$launcher" &> /dev/null; then + run_launcher_found=true + break + fi + done + + if [ "$run_launcher_found" = false ]; then + echo "Missing dependency: one of rofi, dmenu, wofi or fuzzel is required." + exit 1 + fi + + local missing_deps=() + for dep in swaybg; do + if ! command -v "$dep" &> /dev/null; then + missing_deps+=("$dep") + fi + done + + if [ ${#missing_deps[@]} -ne 0 ]; then + echo "Missing dependencies: ${missing_deps[*]}" + exit 1 + fi +} + +#################### +# Main Script Flow # +#################### + +# Check for dependencies +CheckDependencies + +cd "$walldir" || exit 1 +wallpaper=$(fd -p "$walldir" | $RUNNER -l 5 -i -p "[󰋩 Wallpaper Selector]  ") +if [ -n "$wallpaper" ]; then + if [[ "$wallpaper" == *.jpg ]]; then + rm -f "$HOME/.config/sway/wallpaper/"* + cp "$wallpaper" "$HOME/.config/sway/wallpaper/background.jpg" + cp "$wallpaper" "$HOME/.config/sway/wallpaper/locked.jpg" + swaymsg output \* bg "$HOME/.config/sway/wallpaper/background.jpg" fill + elif [[ "$wallpaper" == *.png ]]; then + rm -f "$HOME/.config/sway/wallpaper/"* + cp "$wallpaper" "$HOME/.config/sway/wallpaper/background.png" + cp "$wallpaper" "$HOME/.config/sway/wallpaper/locked.png" + swaymsg output \* bg "$HOME/.config/sway/wallpaper/background.png" fill + fi +else + exit 1 +fi +exit 0 diff --git a/config/fuzzel/scripts/rs_wifi b/config/fuzzel/scripts/rs_wifi new file mode 100755 index 000000000..41ec3f849 --- /dev/null +++ b/config/fuzzel/scripts/rs_wifi @@ -0,0 +1,167 @@ +#!/usr/bin/env bash + +# rs_wifi - A simple WiFi menu script for rofi/dmenu/wofi/fuzzel +# Author: Clay Gomera (Drake) +# Dependencies: {rofi || dmenu || wofi || fuzzel}, NetworkManager, libnotify (notify-send) + +############################ +# Configuration Parameters # +############################ + +# Main menu options +option1=" Turn on WiFi" +option2=" Turn off WiFi" +option3="󱛅 Disconnect WiFi" +option4="󱛃 Connect WiFi" +option5="󱛆 Setup captive portal" +option6=" Exit" +options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6" + +# WiFi interface information +wifi_info=$(nmcli dev | awk '/wifi/ {print $1,$3; exit}') +read -r wlan constate <<< "$wifi_info" + +######################## +# Function Definitions # +######################## + +# Check for missing dependencies +check_dependencies() { + local run_launcher_found=false + for launcher in rofi dmenu wofi fuzzel; do + if command -v "$launcher" &> /dev/null; then + run_launcher_found=true + break + fi + done + + if [ "$run_launcher_found" = false ]; then + echo "Missing dependency: one of rofi, dmenu, wofi or fuzzel is required." + exit 1 + fi + + local missing_deps=() + for dep in nmcli notify-send; do + if ! command -v "$dep" &> /dev/null; then + missing_deps+=("$dep") + fi + done + + if [ ${#missing_deps[@]} -ne 0 ]; then + echo "Missing dependencies: ${missing_deps[*]}" + exit 1 + fi +} + +# Turn off WiFi +turnoff() { + nmcli radio wifi off + if [ $? -eq 0 ]; then + notify-send "WiFi has been turned off" + else + notify-send "Failed to turn off WiFi" + fi +} + +# Turn on WiFi +turnon() { + nmcli radio wifi on + if [ $? -eq 0 ]; then + notify-send "WiFi has been turned on" + else + notify-send "Failed to turn on WiFi" + fi +} + +# Disconnect from WiFi +disconnect() { + if [ "$constate" = "disconnected" ]; then + notify-send "WiFi is already disconnected" + elif [ "$constate" = "connected" ]; then + nmcli device disconnect "$wlan" + if [ $? -eq 0 ]; then + notify-send "WiFi has been disconnected" + else + notify-send "Failed to disconnect WiFi" + fi + else + notify-send "Unknown WiFi state" + fi +} + +# Connect to a WiFi network +connect() { + notify-send -t 5000 "Scanning networks..." + nmcli dev wifi rescan + wifinet=$(nmcli -f BSSID,SSID,BARS,SECURITY dev wifi list | sed -n '1!p' | $RUNNER -i -l 10 -p "[ Select a Wifi Network]  "); + if [ -z "$wifinet" ]; then + exit 0 + fi + bssid=$(echo "$wifinet" | awk '{print $1}') + ssid=$(echo "$wifinet" | awk '{print $2}') +} + +# Prompt for WiFi password +password() { + if nmcli connection show | awk -v ssid="$ssid" '$1 == ssid {found=1} END {exit !found}'; then + pass="" + elif nmcli -f BSSID,SECURITY dev wifi list | grep -w "$bssid" | awk '{print $2}' | grep -q -- "--"; then + pass="" + else + pass=$($RUNNER -l 0 --password -p "[Enter Password ]  " ); + if [ -z "$pass" ]; then + exit 0 + fi + fi +} + +# Execute WiFi connection +action() { + if [ -n "$pass" ]; then + nmcli dev wifi connect "$bssid" password "$pass" + else + nmcli dev wifi connect "$bssid" + fi + if [ $? -eq 0 ]; then + notify-send "Connected to $ssid" + else + notify-send "Failed to connect to $ssid" + fi +} + +#################### +# Main Script Flow # +#################### + +# Check for dependencies +check_dependencies + +cases=$(echo -e "$options" | $RUNNER -i -l 6 -p "[ Wifi Settings]  " ) # main menu prompt +if [ -z "$cases" ]; then + exit 0 +fi + +case "$cases" in + "$option1") + turnon + ;; + "$option2") + turnoff + ;; + "$option3") + disconnect + ;; + "$option4") + if connect; then + if password; then + action + fi + fi + ;; + "$option5") + ${BROWSER:-xdg-open} http://networkcheck.kde.org + ;; + "$option6") + exit 0 + ;; +esac diff --git a/user/.config/git/config b/config/git/config similarity index 100% rename from user/.config/git/config rename to config/git/config diff --git a/user/.config/gtk-2.0/gtkrc-2.0 b/config/gtk-2.0/gtkrc-2.0 similarity index 74% rename from user/.config/gtk-2.0/gtkrc-2.0 rename to config/gtk-2.0/gtkrc-2.0 index baac8dd86..a7c6c15d0 100644 --- a/user/.config/gtk-2.0/gtkrc-2.0 +++ b/config/gtk-2.0/gtkrc-2.0 @@ -1,6 +1,6 @@ -gtk-theme-name="gruvbox-dark-gtk" -gtk-icon-theme-name="gruvbox-dark-icons-gtk" -gtk-font-name="Cantarell 10" +gtk-theme-name="Gruvbox-Dark" +gtk-icon-theme-name="Papirus-Dark" +gtk-font-name="Inter 10" gtk-cursor-theme-name="Simp1e-Gruvbox-Dark" gtk-cursor-theme-size=0 gtk-toolbar-style=GTK_TOOLBAR_BOTH diff --git a/user/.config/gtk-3.0/settings.ini b/config/gtk-3.0/settings.ini similarity index 76% rename from user/.config/gtk-3.0/settings.ini rename to config/gtk-3.0/settings.ini index 22c394419..c0ac43703 100644 --- a/user/.config/gtk-3.0/settings.ini +++ b/config/gtk-3.0/settings.ini @@ -1,7 +1,7 @@ [Settings] -gtk-theme-name=gruvbox-dark-gtk -gtk-icon-theme-name=gruvbox-dark-icons-gtk -gtk-font-name=Cantarell 10 +gtk-theme-name=Gruvbox-Dark +gtk-icon-theme-name=Papirus-Dark +gtk-font-name=Inter 10 gtk-cursor-theme-name=Simp1e-Gruvbox-Dark gtk-cursor-theme-size=0 gtk-toolbar-style=GTK_TOOLBAR_BOTH diff --git a/config/kanshi/config b/config/kanshi/config new file mode 100644 index 000000000..a55479bd8 --- /dev/null +++ b/config/kanshi/config @@ -0,0 +1,25 @@ +profile triple { + exec pgrep wl-mirror && pkill -n wl-mirror + output eDP-1 mode 1920x1080 position 3200,0 + output HDMI-A-2 primary mode 1920x1080@100Hz position 1280,0 + output DP-1 mode 1280x1024@75Hz position 0,0 +} + +profile hdmi { + exec pgrep wl-mirror && pkill -n wl-mirror + output eDP-1 primary mode 1920x1080 position 0,0 + output HDMI-A-2 auto position 1920,0 + exec wl-present mirror eDP-1 --fullscreen-output HDMI-A-2 --fullscreen +} + +profile hdmi-c { + exec pgrep wl-mirror && pkill -n wl-mirror + output eDP-1 primary mode 1920x1080 position 0,0 + output DP-1 auto position 1920,0 + exec wl-present mirror eDP-1 --fullscreen-output DP-1 --fullscreen +} + +profile laptop { + exec pgrep wl-mirror && pkill -n wl-mirror + output eDP-1 primary mode 1920x1080 +} diff --git a/config/lvim/config.lua b/config/lvim/config.lua new file mode 100644 index 000000000..a36fe6b86 --- /dev/null +++ b/config/lvim/config.lua @@ -0,0 +1,107 @@ +-- neovide options +vim.o.guifont = "mononoki Nerd Font:h14" +vim.g.neovide_no_idle = true +vim.g.neovide_confirm_quit = true +vim.g.neovide_input_use_logo = true + +vim.g.neovide_cursor_antialiasing = true +vim.g.neovide_cursor_animate_in_insert_mode = true +vim.g.neovide_cursor_vfx_mode = "pixiedust" +vim.g.neovide_cursor_vfx_particle_speed = 20.0 + +vim.g.neovide_padding_top = 0 +vim.g.neovide_padding_bottom = 0 +vim.g.neovide_padding_right = 0 +vim.g.neovide_padding_left = 0 + +-- Helper function for transparency formatting +local alpha = function() + return string.format("%x", math.floor(255 * (vim.g.transparency or 0.98))) +end +vim.g.neovide_transparency = 0.98 +vim.g.transparency = 0.98 +vim.g.neovide_background_color = "#1d2021" .. alpha() + +-- nvim options +vim.opt.shiftwidth = 4 +vim.opt.tabstop = 4 +vim.opt.relativenumber = true +vim.cmd('autocmd FileType markdown setlocal nospell') +vim.opt.wrap = true -- wrap lines +vim.opt.spell = false +vim.o.shell = '/usr/bin/fish' +vim.o.autochdir = true +vim.cmd('autocmd BufEnter * lcd %:p:h') + +-- general +lvim.use_icons = true +lvim.log.level = "info" + +-- change theme settings +lvim.colorscheme = "gruvbox" +lvim.transparent_window = false +lvim.builtin.alpha.active = true +lvim.builtin.alpha.mode = "dashboard" +lvim.builtin.terminal.active = true +lvim.builtin.nvimtree.setup.view.side = "left" +lvim.builtin.nvimtree.setup.renderer.icons.show.git = false + +lvim.builtin.treesitter.ensure_installed = { + "bash", + "c", + "javascript", + "json", + "python", + "typescript", + "tsx", + "css", + "rust", + "java", + "yaml", + "toml", + "sql", +} + +-- additional Plugins +lvim.plugins = { + { "lunarvim/colorschemes" }, + { "ellisonleao/gruvbox.nvim" }, + { "tpope/vim-dadbod" }, + { "kristijanhusak/vim-dadbod-ui" }, + { "kristijanhusak/vim-dadbod-completion", after = "nvim-cmp" }, + { "SirVer/ultisnips" }, + { "mfussenegger/nvim-dap" } +} + +-- configuring colorscheme +require("gruvbox").setup({ + undercurl = true, + underline = true, + bold = false, + italic = { + strings = true, + comments = true, + operators = false, + folds = true, + }, + strikethrough = true, + invert_selection = false, + invert_signs = false, + invert_tabline = false, + invert_intend_guides = false, + inverse = true, -- invert background for search, diffs, statuslines and errors + contrast = "hard", -- can be "hard", "soft" or empty string + palette_overrides = {}, + overrides = {}, + dim_inactive = false, + transparent_mode = false, +}) + +lvim.keys.normal_mode["D"] = ":DBUIToggle" + +vim.api.nvim_create_autocmd("FileType", { + pattern = { "sql", "mysql", "plsql" }, + command = ":lua require('cmp').setup.buffer({ sources = {{ name = 'vim-dadbod-completion' }} })", +}) + +local cmp = require("cmp") diff --git a/user/.config/mako/config b/config/mako/config similarity index 100% rename from user/.config/mako/config rename to config/mako/config diff --git a/config/mimeapps.list b/config/mimeapps.list new file mode 100644 index 000000000..d6adecf21 --- /dev/null +++ b/config/mimeapps.list @@ -0,0 +1,24 @@ +[Default Applications] +image/=imv.desktop +video/=mpv.desktop +audio/=mpv.desktop +image/jpeg=imv.desktop +image/png=imv.desktop +image/gif=imv.desktop +application/vnd.comicbook+zip=org.pwmt.zathura-cb.desktop +application/pdf=org.pwmt.zathura-pdf-poppler.desktop +image/svg+xml=org.inkscape.Inkscape.desktop +video/x-matroska=mpv.desktop +video/mp4=mpv.desktop +image/webp=imv.desktop +x-scheme-handler/jetbrains=jetbrains-toolbox.desktop + +[Added Associations] +image/jpeg=imv.desktop; +image/png=imv.desktop; +image/gif=imv.desktop; +application/vnd.comicbook+zip=org.pwmt.zathura-cb.desktop; +application/pdf=org.pwmt.zathura-pdf-poppler.desktop; +image/svg+xml=org.inkscape.Inkscape.desktop; +video/x-matroska=mpv.desktop; +image/webp=imv.desktop; diff --git a/user/.config/mpv/input.conf b/config/mpv/input.conf similarity index 100% rename from user/.config/mpv/input.conf rename to config/mpv/input.conf diff --git a/config/mpv/mpv.conf b/config/mpv/mpv.conf new file mode 100644 index 000000000..83009e44f --- /dev/null +++ b/config/mpv/mpv.conf @@ -0,0 +1,139 @@ +# +# Example mpv configuration file +# +# Warning: +# +# The commented example options usually do _not_ set the default values. Call +# mpv with --list-options to see the default values for most options. There is +# no builtin or example mpv.conf with all the defaults. +# +# +# Configuration files are read system-wide from /etc/mpv/mpv.conf +# and per-user from ~/.config/mpv/mpv.conf, where per-user settings override +# system-wide settings, all of which are overridden by the command line. +# +# Configuration file settings and the command line options use the same +# underlying mechanisms. Most options can be put into the configuration file +# by dropping the preceding '--'. See the man page for a complete list of +# options. +# +# Lines starting with '#' are comments and are ignored. +# +# See the CONFIGURATION FILES section in the man page +# for a detailed description of the syntax. +# +# Profiles should be placed at the bottom of the configuration file to ensure +# that settings wanted as defaults are not restricted to specific profiles. + +################## +# video settings # +################## + +# Start in fullscreen mode by default. +#fs=yes + +# force starting with centered window +#geometry=50%:50% + +# don't allow a new window to have a size larger than 90% of the screen size +#autofit-larger=90%x90% + +# Do not close the window on exit. +#keep-open=yes + +# Do not wait with showing the video window until it has loaded. (This will +# resize the window once video is loaded. Also always shows a window with +# audio.) +#force-window=immediate + +# Disable the On Screen Controller (OSC). +#osc=no + +# Keep the player window on top of all other windows. +#ontop=yes + +# Specify high quality video rendering preset (for --vo=gpu only) +# Can cause performance problems with some drivers and GPUs. +#profile=gpu-hq + +# Force video to lock on the display's refresh rate, and change video and audio +# speed to some degree to ensure synchronous playback - can cause problems +# with some drivers and desktop environments. +#video-sync=display-resample + +# Enable hardware decoding if available. Often, this does not work with all +# video outputs, but should work well with default settings on most systems. +# If performance or energy usage is an issue, forcing the vdpau or vaapi VOs +# may or may not help. +#hwdec=auto + +################## +# audio settings # +################## + +# Specify default audio device. You can list devices with: --audio-device=help +# The option takes the device string (the stuff between the '...'). +#audio-device=alsa/default + +# Do not filter audio to keep pitch when changing playback speed. +#audio-pitch-correction=no + +# Output 5.1 audio natively, and upmix/downmix audio with a different format. +#audio-channels=5.1 +# Disable any automatic remix, _if_ the audio output accepts the audio format. +# of the currently played file. See caveats mentioned in the manpage. +# (The default is "auto-safe", see manpage.) +#audio-channels=auto + +################## +# other settings # +################## + +# Pretend to be a web browser. Might fix playback with some streaming sites, +# but also will break with shoutcast streams. +#user-agent="Mozilla/5.0" + +# cache settings +# +# Use a large seekable RAM cache even for local input. +#cache=yes +# +# Use extra large RAM cache (needs cache=yes to make it useful). +#demuxer-max-bytes=500M +#demuxer-max-back-bytes=100M +# +# Disable the behavior that the player will pause if the cache goes below a +# certain fill size. +#cache-pause=no +# +# Store cache payload on the hard disk instead of in RAM. (This may negatively +# impact performance unless used for slow input such as network.) +#cache-dir=~/.cache/ +#cache-on-disk=yes + +# Display English subtitles if available. +#slang=en + +# Play Finnish audio if available, fall back to English otherwise. +#alang=fi,en + +# Change subtitle encoding. For Arabic subtitles use 'cp1256'. +# If the file seems to be valid UTF-8, prefer UTF-8. +# (You can add '+' in front of the codepage to force it.) +#sub-codepage=cp1256 + +# You can also include other configuration files. +#include=/path/to/the/file/you/want/to/include + +############ +# Profiles # +############ + +# The options declared as part of profiles override global default settings, +# but only take effect when the profile is active. + +# The following profile can be enabled on the command line with: --profile=eye-cancer + +#[eye-cancer] +#sharpen=5 +loop-file='inf' diff --git a/config/musikcube/hotkeys.json b/config/musikcube/hotkeys.json new file mode 100644 index 000000000..914c527c6 --- /dev/null +++ b/config/musikcube/hotkeys.json @@ -0,0 +1,68 @@ +{ + "browse_category_filter": "^F", + "browse_playlists_delete": "KEY_DC", + "browse_playlists_new": "M-n", + "browse_playlists_rename": "M-r", + "browse_playlists_save": "M-s", + "context_menu": "M-enter", + "hotkeys_backup": "M-b", + "hotkeys_reset_to_default": "M-r", + "key_down": "j", + "key_end": "KEY_END", + "key_home": "KEY_HOME", + "key_left": "h", + "key_page_down": "KEY_NPAGE", + "key_page_up": "KEY_PPAGE", + "key_right": "l", + "key_up": "k", + "lyrics_retry": "r", + "metadata_rescan": "^R", + "navigate_console": "`", + "navigate_hotkeys": "?", + "navigate_jump_to_playing": "x", + "navigate_library": "a", + "navigate_library_album_artists": "4", + "navigate_library_browse": "b", + "navigate_library_browse_albums": "2", + "navigate_library_browse_artists": "1", + "navigate_library_browse_directories": "d", + "navigate_library_browse_genres": "3", + "navigate_library_choose_category": "6", + "navigate_library_filter": "f", + "navigate_library_play_queue": "n", + "navigate_library_playlists": "5", + "navigate_library_tracks": "t", + "navigate_lyrics": "^L", + "navigate_settings": "s", + "play_queue_clear": "X", + "play_queue_delete": "KEY_DC", + "play_queue_hot_swap": "M-a", + "play_queue_move_down": "M-down", + "play_queue_move_up": "M-up", + "play_queue_playlist_delete": "M-x", + "play_queue_playlist_load": "M-l", + "play_queue_playlist_rename": "M-r", + "play_queue_playlist_save": "M-s", + "playback_next": "M-l", + "playback_previous": "M-j", + "playback_seek_back": "u", + "playback_seek_back_proportional": "y", + "playback_seek_forward": "o", + "playback_seek_forward_proportional": "p", + "playback_stop": "^X", + "playback_toggle_mute": "m", + "playback_toggle_pause": "^P", + "playback_toggle_repeat": ".", + "playback_toggle_shuffle": ",", + "playback_volume_down": "M-k", + "playback_volume_up": "M-i", + "search_input_toggle_match_type": "M-m", + "show_equalizer": "^E", + "toggle_visualizer": "v", + "track_list_change_sort_order": "M-s", + "track_list_next_group": "]", + "track_list_play_from_top": "M-P", + "track_list_previous_group": "[", + "track_list_rate_track": "r", + "view_refresh": "KEY_F(5)" +} \ No newline at end of file diff --git a/user/.config/newsboat/config b/config/newsboat/config similarity index 91% rename from user/.config/newsboat/config rename to config/newsboat/config index 9246557ae..20e375fb6 100644 --- a/user/.config/newsboat/config +++ b/config/newsboat/config @@ -48,4 +48,4 @@ highlight article ":.*\\(image\\)$" blue default highlight article ":.*\\(embedded flash\\)$" magenta default browser w3m -macro v set browser "mpv %u" ; open-in-browser ; set browser "elinks %u" +macro v set browser "mpv --ytdl-format='bestvideo[height<=1080]+bestaudio/best[height<=1080]' %u" ; open-in-browser ; set browser "w3m %u" diff --git a/config/newsboat/urls b/config/newsboat/urls new file mode 100644 index 000000000..2d27ca901 --- /dev/null +++ b/config/newsboat/urls @@ -0,0 +1,215 @@ +http://static.fsf.org/fsforg/rss/news.xml "~FSF News" +http://static.fsf.org/fsforg/rss/blogs.xml "~FSF Blogs" +https://fsfe.org/news/news.en.rss "~FSFE News" +https://dot.kde.org/rss.xml "~KDE Dot News" +https://planet.kde.org/global/atom.xml "~Planet KDE" +https://pointieststick.com/feed/ "~This Week on KDE" +https://www.kdeblog.com/rss "~KDE Blog" +https://thisweek.gnome.org/index.xml "~This Week on GNOME" +https://www.omgubuntu.co.uk/feed "~OMG!Ubuntu" +https://www.omglinux.com/feed "~OMG!Linux" +https://blog.thunderbird.net/feed/ "~The Thunderbird Blog" +https://thelinuxexp.com/feed.xml "~The Linux Experiment" +https://techhut.tv/feed/ "~TechHut Media" +https://itsfoss.com/rss/ "~Its FOSS!" +https://thelinuxcast.org/feed/feed.xml "~The Linux Cast" +https://9to5linux.com/feed/atom "~9to5Linux" +https://blog.elementary.io/feed.xml "~elementary OS Blog" +https://blog.zorin.com/index.xml "~Zorin OS Blog" +http://blog.linuxmint.com/?feed=rss2 "~Linux Mint Blog" +https://www.gamingonlinux.com/article_rss.php "~Gaming on linux" +https://hackaday.com/blog/feed/ "~Hackaday" +https://www.phoronix.com/rss.php "~Phoronix" +https://betanews.com/feed "~Betanews Linux" +http://lxer.com/module/newswire/headlines.rss "~Lxer" +https://theevilskeleton.gitlab.io/feed.xml "~TheEvilSkeleton" +https://tutanota.com/blog/feed.xml "~Tutanota Blogs" +https://techcrunch.com/feed/ "~TechCrunch" +http://www.techradar.com/rss "~TechRadar" +https://www.zdnet.com/news/rss.xml "~ZDNET - News" +https://c3po.website/rss/ "~Blog de C3PO" +https://thecheis.com/feed/ "~THE_CHEI$" +http://yro.slashdot.org/yro.rss "~Slashdot: Your Rights Online" +https://freedom-to-tinker.com/feed/rss/ "~Freedom to Tinker" +https://act.eff.org/action.atom "~EFF - Action Center" +https://www.eff.org/rss/updates.xml "~EFF - Updates" +https://victorhckinthefreeworld.com/feed/ "~Victorhck in the free world" +https://theprivacydad.com/feed/ "~Welcome to The Privacy Dad's Blog!" +https://proton.me/blog/feed "~Proton Blog" +https://www.youtube.com/feeds/videos.xml?channel_id=UC-ErgHYY0_Yjhjz2MN1E1lg "~YT - RETRO Hardware" +https://www.youtube.com/feeds/videos.xml?channel_id=UC-shHw-IWdyL7Y6JUz_mUMQ "~YT - SORRYLAG" +https://www.youtube.com/feeds/videos.xml?channel_id=UC0W_BIuwk8D0Bv4THbVZZOQ "~YT - Surveillance Report" +https://www.youtube.com/feeds/videos.xml?channel_id=UC0woBco6Dgcxt0h8SwyyOmw "~YT - Megaprojects" +https://www.youtube.com/feeds/videos.xml?channel_id=UC1D3yD4wlPMico0dss264XA "~YT - NileBlue" +https://www.youtube.com/feeds/videos.xml?channel_id=UC1JTQBa5QxZCpXrFSkMxmPw "~YT - Raycevick" +https://www.youtube.com/feeds/videos.xml?channel_id=UC1_uAIS3r8Vu6JjXWvastJg "~YT - Mathologer" +https://www.youtube.com/feeds/videos.xml?channel_id=UC1s1OsWNYDFgbROPV-q5arg "~YT - Michael Horn" +https://www.youtube.com/feeds/videos.xml?channel_id=UC2WHjPDvbE6O328n17ZGcfg "~YT - ForrestKnight" +https://www.youtube.com/feeds/videos.xml?channel_id=UC2avWDLN1EI3r1RZ_dlSxCw "~YT - Integza" +https://www.youtube.com/feeds/videos.xml?channel_id=UC2eYFnH61tmytImy1mTYvhA "~YT - Luke Smith" +https://www.youtube.com/feeds/videos.xml?channel_id=UC36xmz34q02JYaZYKrMwXng "~YT - Nate Gentile" +https://www.youtube.com/feeds/videos.xml?channel_id=UC3Wn3dABlgESm8Bzn8Vamgg "~YT - Sideprojects" +https://www.youtube.com/feeds/videos.xml?channel_id=UC3jSNmKWYA04R47fDcc1ImA "~YT - InfinitelyGalactic" +https://www.youtube.com/feeds/videos.xml?channel_id=UC3yaWWA9FF9OBog5U9ml68A "~YT - SavvyNik" +https://www.youtube.com/feeds/videos.xml?channel_id=UC4qG04RcOZ8J1Ncw5CPqsLA "~YT - Claus Kellerman POV" +https://www.youtube.com/feeds/videos.xml?channel_id=UC4w1YQAJMWOz4qtxinq55LQ "~YT - Level1Techs" +https://www.youtube.com/feeds/videos.xml?channel_id=UC52tAgsocr9DgrPec_iw1eg "~YT - Portfolio Courses" +https://www.youtube.com/feeds/videos.xml?channel_id=UC5I2hjZYiW9gZPVkvzM8_Cw "~YT - Techmoan" +https://www.youtube.com/feeds/videos.xml?channel_id=UC5KDiSAFxrDWhmysBcNqtMA "~YT - Eric Murphy" +https://www.youtube.com/feeds/videos.xml?channel_id=UC5UAwBUum7CPN5buc-_N1Fw "~YT - The Linux Experiment" +https://www.youtube.com/feeds/videos.xml?channel_id=UC5nlKFUNoskvV5XdW6PbgYw "~YT - A Well-Rested Dog" +https://www.youtube.com/feeds/videos.xml?channel_id=UC6WOxrSKLW8VagrNkfvi6EQ "~YT - THE SQUIDD" +https://www.youtube.com/feeds/videos.xml?channel_id=UC6biysICWOJ-C3P4Tyeggzg "~YT - Low Level Learning" +https://www.youtube.com/feeds/videos.xml?channel_id=UC7WDD6yHgzdqijHluCi1z-Q "~YT - The Act Man" +https://www.youtube.com/feeds/videos.xml?channel_id=UC7YOGHUfC1Tb6E4pudI9STA "~YT - Mental Outlaw" +https://www.youtube.com/feeds/videos.xml?channel_id=UC7qPftDWPw9XuExpSgfkmJQ "~YT - Nostalgia Nerd" +https://www.youtube.com/feeds/videos.xml?channel_id=UC8679JjreNLfSCgA-2Fb4kA "~YT - SpineCard" +https://www.youtube.com/feeds/videos.xml?channel_id=UC8ENHE5xdFSwx71u3fDH5Xw "~YT - ThePrimeagen" +https://www.youtube.com/feeds/videos.xml?channel_id=UC8bCGC81i_jYlL041-iAFSA "~YT - JWulen" +https://www.youtube.com/feeds/videos.xml?channel_id=UC8uT9cgJorJPWu7ITLGo9Ww "~YT - The 8-Bit Guy" +https://www.youtube.com/feeds/videos.xml?channel_id=UC9-y-6csu5WGm29I7JiwpnA "~YT - Computerphile" +https://www.youtube.com/feeds/videos.xml?channel_id=UC910yxBmXzGDH_2cx0XE0Xw "~YT - Plano de Juego" +https://www.youtube.com/feeds/videos.xml?channel_id=UC9RM-iSvTu1uPJb8X5yp3EQ "~YT - Wendover Productions" +https://www.youtube.com/feeds/videos.xml?channel_id=UC9bORzxOWiewqMXxkmhAwAg "~YT - Gingy" +https://www.youtube.com/feeds/videos.xml?channel_id=UC9eM3jqq5IfxbGHbuRR_jRw "~YT - Sfdx Show" +https://www.youtube.com/feeds/videos.xml?channel_id=UC9h8BDcXwkhZtnqoQJ7PggA "~YT - Warographics" +https://www.youtube.com/feeds/videos.xml?channel_id=UC9rU_5YnMDUPc0IP8NwZOig "~YT - Elevated Systems" +https://www.youtube.com/feeds/videos.xml?channel_id=UCAMu6Dso0ENoNm3sKpQsy0g "~YT - Nir Lichtman" +https://www.youtube.com/feeds/videos.xml?channel_id=UCAiEWppTvoNSHU939xhMb2g "~YT - hoser" +https://www.youtube.com/feeds/videos.xml?channel_id=UCAiiOTio8Yu69c3XnR7nQBQ "~YT - System Crafters" +https://www.youtube.com/feeds/videos.xml?channel_id=UCBdwqWmXhupzV5q8TfD-kNQ "~YT - The Critical Gamer" +https://www.youtube.com/feeds/videos.xml?channel_id=UCBq5p-xOla8xhnrbhu8AIAg "~YT - Tech Over Tea" +https://www.youtube.com/feeds/videos.xml?channel_id=UCDZsyOkn-WTiTwgAvZSQ_cg "~YT - El Rincón De Giorgio" +https://www.youtube.com/feeds/videos.xml?channel_id=UCD_SqY872aJSEjh8CcBFB7g "~YT - Userlandia" +https://www.youtube.com/feeds/videos.xml?channel_id=UCE0H52NoucHL2JkhPdZ1ykA "~YT - Jwlar" +https://www.youtube.com/feeds/videos.xml?channel_id=UCEEVcDuBRDiwxfXAgQjLGug "~YT - Dreams of Autonomy" +https://www.youtube.com/feeds/videos.xml?channel_id=UCEFymXY4eFCo_AchSpxwyrg "~YT - MetalJesusRocks" +https://www.youtube.com/feeds/videos.xml?channel_id=UCEIwxahdLz7bap-VDs9h35A "~YT - Steve Mould" +https://www.youtube.com/feeds/videos.xml?channel_id=UCEp20NgOZHmgWdbQdHSxgjw "~YT - This Does Not Compute" +https://www.youtube.com/feeds/videos.xml?channel_id=UCFhXFikryT4aFcLkLw2LBLA "~YT - NileRed" +https://www.youtube.com/feeds/videos.xml?channel_id=UCFzGNDHEZ5-7d5UXxfHUcRg "~YT - jujalag" +https://www.youtube.com/feeds/videos.xml?channel_id=UCGE-JpLbibXJg3W_N2hbo8g "~YT - Sethorven" +https://www.youtube.com/feeds/videos.xml?channel_id=UCGGAYsWFerrs-ZqyXw7fQWg "~YT - Resumidito." +https://www.youtube.com/feeds/videos.xml?channel_id=UCH5DsMZAgdx5Fkk9wwMNwCA "~YT - The New Oil" +https://www.youtube.com/feeds/videos.xml?channel_id=UCH_7doiCkWeq0v3ycWE5lDw "~YT - Any Austin" +https://www.youtube.com/feeds/videos.xml?channel_id=UCH_zBfX_o5GDZwevkh1jl9Q "~YT - Nate Live" +https://www.youtube.com/feeds/videos.xml?channel_id=UCHnyfMqiRRG1u-2MsSQLbXA "~YT - Veritasium" +https://www.youtube.com/feeds/videos.xml?channel_id=UCHvDhwNuq-h2hZQRR6BwbLQ "~YT - Tech With Nikola" +https://www.youtube.com/feeds/videos.xml?channel_id=UCI6pj4e-_6Km-dmLLYpmlaA "~YT - Alejandro Julián" +https://www.youtube.com/feeds/videos.xml?channel_id=UCIjIAXXsX4YMYeFj-LP42-Q "~YT - Anthony GG" +https://www.youtube.com/feeds/videos.xml?channel_id=UCJ0-OtVpF0wOKEqT2Z1HEtA "~YT - ElectroBOOM" +https://www.youtube.com/feeds/videos.xml?channel_id=UCJYJgj7rzsn0vdR7fkgjuIA "~YT - styropyro" +https://www.youtube.com/feeds/videos.xml?channel_id=UCLEoyoOKZK0idGqSc6Pi23w "~YT - RMC - The Cave" +https://www.youtube.com/feeds/videos.xml?channel_id=UCLx053rWZxCiYWsBETgdKrQ "~YT - LGR" +https://www.youtube.com/feeds/videos.xml?channel_id=UCM1og9pwIfAlg2jEtWh-Z7A "~YT - Sakharu Baguette" +https://www.youtube.com/feeds/videos.xml?channel_id=UCMbQbVilo-nezMvwf1BZfAA "~YT - CienciaDeSofa" +https://www.youtube.com/feeds/videos.xml?channel_id=UCMiyV_Ib77XLpzHPQH_q0qQ "~YT - Veronica Explains" +https://www.youtube.com/feeds/videos.xml?channel_id=UCMnZ3qm76jc3SUi9Z-5OdcA "~YT - Leyendas & Videojuegos" +https://www.youtube.com/feeds/videos.xml?channel_id=UCNYW2vfGrUE6R5mIJYzkRyQ "~YT - DrossRotzank" +https://www.youtube.com/feeds/videos.xml?channel_id=UCNnNCBgckxzqIh1Txw5cgSg "~YT - BaityBait" +https://www.youtube.com/feeds/videos.xml?channel_id=UCNzszbnvQeFzObW0ghk0Ckw "~YT - Dave's Garage" +https://www.youtube.com/feeds/videos.xml?channel_id=UCODHrzPMGbNv67e84WDZhQQ "~YT - fern" +https://www.youtube.com/feeds/videos.xml?channel_id=UCONH73CdRXUjlh3-DdLGCPw "~YT - Nicco Loves Linux" +https://www.youtube.com/feeds/videos.xml?channel_id=UCOxmlaJURX3nq8eLuJPbl3A "~YT - Psivewri" +https://www.youtube.com/feeds/videos.xml?channel_id=UCP5tjEmvPItGyLhmjdwP7Ww "~YT - RealLifeLore" +https://www.youtube.com/feeds/videos.xml?channel_id=UCQ-W1KE9EYfdxhL6S4twUNw "~YT - The Cherno" +https://www.youtube.com/feeds/videos.xml?channel_id=UCQX_MZRCaluNKxkywkLEgfA "~YT - Date un Vlog" +https://www.youtube.com/feeds/videos.xml?channel_id=UCR1IuLEqb6UEA_zQ81kwXfg "~YT - Real Engineering" +https://www.youtube.com/feeds/videos.xml?channel_id=UCRYeRa2iUMd8An1WTPIP2bw "~YT - aChair Leg" +https://www.youtube.com/feeds/videos.xml?channel_id=UCRrHl7MO7gcwWguTTqDzBHw "~YT - LoneVaultWanderer" +https://www.youtube.com/feeds/videos.xml?channel_id=UCS-WzPVpAAli-1IfEG2lN8A "~YT - Michael MJD" +https://www.youtube.com/feeds/videos.xml?channel_id=UCS0N5baNlQWJCUrhCEo8WlA "~YT - Ben Eater" +https://www.youtube.com/feeds/videos.xml?channel_id=UCSJPFQdZwrOutnmSFYtbstA "~YT - The Critical Drinker" +https://www.youtube.com/feeds/videos.xml?channel_id=UCSju5G2aFaWMqn-_0YBtq5A "~YT - Stand-up Maths" +https://www.youtube.com/feeds/videos.xml?channel_id=UCSp-OaMpsO8K0KkOqyBl7_w "~YT - Let's Get Rusty" +https://www.youtube.com/feeds/videos.xml?channel_id=UCSuHzQ3GrHSzoBbwrIq3LLA "~YT - Naomi Brockwell TV" +https://www.youtube.com/feeds/videos.xml?channel_id=UCT35hFvV0j8SR3SBGJChKZQ "~YT - Jota." +https://www.youtube.com/feeds/videos.xml?channel_id=UCT6LaAC9VckZYJUzutUW3PQ "~YT - Game Sack" +https://www.youtube.com/feeds/videos.xml?channel_id=UCTrSsPMmZavLbc3Ex7VhjDg "~YT - Brandon Herrera" +https://www.youtube.com/feeds/videos.xml?channel_id=UCUMwY9iS8oMyWDYIe6_RmoA "~YT - No Boilerplate" +https://www.youtube.com/feeds/videos.xml?channel_id=UCUyeluBRhGPCW4rPe_UvBZQ "~YT - ThePrimeTime" +https://www.youtube.com/feeds/videos.xml?channel_id=UCVIcSx0JX1lBXnyezabutrA "~YT - Shawn Wildermuth" +https://www.youtube.com/feeds/videos.xml?channel_id=UCVk4b-svNJoeytrrlOixebQ "~YT - TheVimeagen" +https://www.youtube.com/feeds/videos.xml?channel_id=UCVls1GmFKf6WlTraIb_IaJg "~YT - DistroTube" +https://www.youtube.com/feeds/videos.xml?channel_id=UCW-HHEyt67RhZ6q21n4p2zQ "~YT - Mac84" +https://www.youtube.com/feeds/videos.xml?channel_id=UCW0gH2G-cMKAEjEkI4YhnPA "~YT - Nerd of the Rings" +https://www.youtube.com/feeds/videos.xml?channel_id=UCWDGyt5hy6UA6Br-hAar03A "~YT - El Robot de Colón" +https://www.youtube.com/feeds/videos.xml?channel_id=UCWMV8dD0N3tAM2W6GuNCUCg "~YT - theunrealtarik" +https://www.youtube.com/feeds/videos.xml?channel_id=UCWQaM7SpSECp9FELz-cHzuQ "~YT - Dreams of Code" +https://www.youtube.com/feeds/videos.xml?channel_id=UCWcp1Mwm7_bJ-mVoZb8TdkQ "~YT - TuberViejuner" +https://www.youtube.com/feeds/videos.xml?channel_id=UCWyrVfwRL-2DOkzsqrbjo5Q "~YT - NCommander" +https://www.youtube.com/feeds/videos.xml?channel_id=UCXp5qAXAmdQ8n3RUZaME1QQ "~YT - ItsYaBoyBrandyBoy" +https://www.youtube.com/feeds/videos.xml?channel_id=UCYO_jab_esuFRV4b17AJtAw "~YT - 3Blue1Brown" +https://www.youtube.com/feeds/videos.xml?channel_id=UCYVU6rModlGxvJbszCclGGw "~YT - Rob Braxman Tech" +https://www.youtube.com/feeds/videos.xml?channel_id=UCZ4AMrDcNrfy3X6nsU8-rPg "~YT - Economics Explained" +https://www.youtube.com/feeds/videos.xml?channel_id=UCZkPWp4MVoIVGLVLYC1Vjlg "~YT - Guille Ghemi" +https://www.youtube.com/feeds/videos.xml?channel_id=UCa6V1UVOXN4wDm7RDQDoa6g "~YT - El Traductor de Ingeniería" +https://www.youtube.com/feeds/videos.xml?channel_id=UCaSCt8s_4nfkRglWCvNSDrg "~YT - CodeAesthetic" +https://www.youtube.com/feeds/videos.xml?channel_id=UCaVPhFg-Ax873wvhbNitsrQ "~YT - El Robot de Platón" +https://www.youtube.com/feeds/videos.xml?channel_id=UCb0XKayhXq2JdoAHC2nr28Q "~YT - JARM" +https://www.youtube.com/feeds/videos.xml?channel_id=UCbJEWVgCAO-gyHcQ7U7RPCg "~YT - Axel 1UP" +https://www.youtube.com/feeds/videos.xml?channel_id=UCbdSYaPD-lr1kW27UJuk8Pw "~YT - QuantumFracture" +https://www.youtube.com/feeds/videos.xml?channel_id=UCbiGcwDWZjz05njNPrJU7jA "~YT - ExplainingComputers" +https://www.youtube.com/feeds/videos.xml?channel_id=UCcAy1o8VUCkdowxRYbc0XRw "~YT - Sebi's Random Tech" +https://www.youtube.com/feeds/videos.xml?channel_id=UCcQWoBTNG__OwfZk9znWgCQ "~YT - The Rusty Bits" +https://www.youtube.com/feeds/videos.xml?channel_id=UCd4XwUn2Lure2NHHjukoCwA "~YT - Linux For Everyone" +https://www.youtube.com/feeds/videos.xml?channel_id=UCdB41UXrNAU_J7A7OnU4KSQ "~YT - Japan Gemu" +https://www.youtube.com/feeds/videos.xml?channel_id=UCdiJKSDwwvy4rMUVc9CgS-g "~YT - DaniboubeTV" +https://www.youtube.com/feeds/videos.xml?channel_id=UCdp4_l1vPmpN-gDbUwhaRUQ "~YT - Branch Education" +https://www.youtube.com/feeds/videos.xml?channel_id=UCeCtLnoV0nmE2cBbbftCCiw "~YT - Las reviews de Camilo" +https://www.youtube.com/feeds/videos.xml?channel_id=UCeHOkFGW-7uAZFvq3BXb8YA "~YT - :3ildcat" +https://www.youtube.com/feeds/videos.xml?channel_id=UCerEIdrEW-IqwvlH8lTQUJQ "~YT - Tech Tangents" +https://www.youtube.com/feeds/videos.xml?channel_id=UCf-U0uPVQZtcqXUWa_Hl4Mw "~YT - Into the Shadows" +https://www.youtube.com/feeds/videos.xml?channel_id=UCg6gPGh8HU2U01vaFCAsvmQ "~YT - Chris Titus Tech" +https://www.youtube.com/feeds/videos.xml?channel_id=UCgNg3vwj3xt7QOrcIDaHdFg "~YT - PolyMatter" +https://www.youtube.com/feeds/videos.xml?channel_id=UCgdTVe88YVSrOZ9qKumhULQ "~YT - Hardware Haven" +https://www.youtube.com/feeds/videos.xml?channel_id=UChI0q9a-ZcbZh7dAu_-J-hg "~YT - Upper Echelon" +https://www.youtube.com/feeds/videos.xml?channel_id=UChIs72whgZI9w6d6FhwGGHA "~YT - Gamers Nexus" +https://www.youtube.com/feeds/videos.xml?channel_id=UCj8mAcR6Mu1dvaXQ6BdShRQ "~YT - The Masked Man" +https://www.youtube.com/feeds/videos.xml?channel_id=UCj8orMezFWVcoN-4S545Wtw "~YT - Max Derrat" +https://www.youtube.com/feeds/videos.xml?channel_id=UCjFaPUcJU1vwk193mnW_w1w "~YT - Modern Vintage Gamer" +https://www.youtube.com/feeds/videos.xml?channel_id=UCjSEJkpGbcZhvo0lr-44X_w "~YT - TechHut" +https://www.youtube.com/feeds/videos.xml?channel_id=UCjgS6Uyg8ok4Jd_lH_MUKgg "~YT - Claus Kellerman" +https://www.youtube.com/feeds/videos.xml?channel_id=UCjinkxv899vPCJ65BWpmPIA "~YT - Scott's Snippets" +https://www.youtube.com/feeds/videos.xml?channel_id=UCkK9UDm_ZNrq_rIXCz3xCGA "~YT - Bryan Lunduke" +https://www.youtube.com/feeds/videos.xml?channel_id=UCl2mFZoRqjw_ELax4Yisf6w "~YT - Louis Rossmann" +https://www.youtube.com/feeds/videos.xml?channel_id=UCl_dlV_7ofr4qeP1drJQ-qg "~YT - Tantacrul" +https://www.youtube.com/feeds/videos.xml?channel_id=UClb90NQQcskPUGDIXsQEz5Q "~YT - developedbyed" +https://www.youtube.com/feeds/videos.xml?channel_id=UCld68syR8Wi-GY_n4CaoJGA "~YT - Brodie Robertson" +https://www.youtube.com/feeds/videos.xml?channel_id=UClnDI2sdehVm1zm_LmUHsjQ "~YT - Biographics" +https://www.youtube.com/feeds/videos.xml?channel_id=UCm8EsftbfNzSiRHzc7I59KQ "~YT - Kevin Fang" +https://www.youtube.com/feeds/videos.xml?channel_id=UCmGSJVG3mCRXVOP4yZrU1Dw "~YT - Johnny Harris" +https://www.youtube.com/feeds/videos.xml?channel_id=UCmw-QGOHbHA5cDAvwwqUTKQ "~YT - Zaney" +https://www.youtube.com/feeds/videos.xml?channel_id=UCmyGZ0689ODyReHw3rsKLtQ "~YT - Michael Tunnell" +https://www.youtube.com/feeds/videos.xml?channel_id=UCnw3aIEiz60S6O3XcztCVkQ "~YT - PatricianTV" +https://www.youtube.com/feeds/videos.xml?channel_id=UCoL8olX-259lS1N6QPyP4IQ "~YT - Action Retro" +https://www.youtube.com/feeds/videos.xml?channel_id=UCoryWpk4QVYKFCJul9KBdyw "~YT - Switched to Linux" +https://www.youtube.com/feeds/videos.xml?channel_id=UCoxcjq-8xIDTYp3uz647V5A "~YT - Numberphile" +https://www.youtube.com/feeds/videos.xml?channel_id=UCpuKDBw8IVIdKWPhiB2VDNQ "~YT - Cinematix" +https://www.youtube.com/feeds/videos.xml?channel_id=UCpuLiczP2Aqq11Gtf4k_fkw "~YT - Futurasound Productions" +https://www.youtube.com/feeds/videos.xml?channel_id=UCq8LldVrjqe61KQttZlLW8g "~YT - Patrick God" +https://www.youtube.com/feeds/videos.xml?channel_id=UCqoGR_EedlhKDVuWNwYWRbg "~YT - Voices of the Past" +https://www.youtube.com/feeds/videos.xml?channel_id=UCqxM9T6ksiOVKIkb88S2r7Q "~YT - Zac Builds" +https://www.youtube.com/feeds/videos.xml?channel_id=UCrkPsvLGln62OMZRO6K-llg "~YT - Nick Chapsas" +https://www.youtube.com/feeds/videos.xml?channel_id=UCs6KfncB4OV6Vug4o_bzijg "~YT - Techlore" +https://www.youtube.com/feeds/videos.xml?channel_id=UCs7nPQIEba0T3tGOWWsZpJQ "~YT - Like Stories of Old" +https://www.youtube.com/feeds/videos.xml?channel_id=UCsBjURrPoezykLs9EqgamOA "~YT - Fireship" +https://www.youtube.com/feeds/videos.xml?channel_id=UCsC--WvN66vZlDoYShzn4sA "~YT - Oxhorn" +https://www.youtube.com/feeds/videos.xml?channel_id=UCsnGwSIHyoYN0kiINAGUKxg "~YT - Wolfgang's Channel" +https://www.youtube.com/feeds/videos.xml?channel_id=UCtApDZWXv8fQaxZAk6dxYkw "~YT - Ghostcharm" +https://www.youtube.com/feeds/videos.xml?channel_id=UCtMVHI3AJD4Qk4hcbZnI9ZQ "~YT - SomeOrdinaryGamers" +https://www.youtube.com/feeds/videos.xml?channel_id=UCtYKe7-XbaDjpUwcU5x0bLg "~YT - neo" +https://www.youtube.com/feeds/videos.xml?channel_id=UCtYg149E_wUGVmjGz-TgyNA "~YT - Titus Tech Talk" +https://www.youtube.com/feeds/videos.xml?channel_id=UCtZX_67hSjOIPu0HTmFi6aw "~YT - Macintosh Librarian" +https://www.youtube.com/feeds/videos.xml?channel_id=UCvjgXvBlbQiydffZU7m1_aw "~YT - The Coding Train" +https://www.youtube.com/feeds/videos.xml?channel_id=UCxQKHvKbmSzGMvUrVtJYnUA "~YT - Learn Linux TV" +https://www.youtube.com/feeds/videos.xml?channel_id=UCxdZ7XCQVMRMipj3gGemQfw "~YT - GNULectures" +https://www.youtube.com/feeds/videos.xml?channel_id=UCxoz4YfS4M3H3C57FD4jW4Q "~YT - Science Time" +https://www.youtube.com/feeds/videos.xml?channel_id=UCy0tKL1T7wFoYcxCe0xjN6Q "~YT - Technology Connections" +https://www.youtube.com/feeds/videos.xml?channel_id=UCy6pDeDwRFi1kmFekSpMDUA "~YT - La Poción Roja" +https://www.youtube.com/feeds/videos.xml?channel_id=UCybBViio_TH_uiFFDJuz5tg "~YT - Einzelgänger" +https://www.youtube.com/feeds/videos.xml?channel_id=UCylGUf9BvQooEFjgdNudoQg "~YT - The Linux Cast" +https://www.youtube.com/feeds/videos.xml?channel_id=UCz1oFxMrgrQ82-276UCOU9w "~YT - Atlas Pro" +https://www.youtube.com/feeds/videos.xml?channel_id=UCzGMBzt6UOMoQe_dqOfShZw "~YT - Cultura VJ" +https://www.youtube.com/feeds/videos.xml?channel_id=UCzR-rom72PHN9Zg7RML9EbA "~YT - PBS Eons" +https://www.youtube.com/feeds/videos.xml?channel_id=UCzXsTSZDoAPSjfHr8IZM9Ew "~YT - FloatyMonkey" diff --git a/user/.config/starship.toml b/config/starship.toml similarity index 100% rename from user/.config/starship.toml rename to config/starship.toml diff --git a/user/.config/sway/config b/config/sway/config similarity index 100% rename from user/.config/sway/config rename to config/sway/config diff --git a/config/sway/modules/autostart b/config/sway/modules/autostart new file mode 100644 index 000000000..f2f84531f --- /dev/null +++ b/config/sway/modules/autostart @@ -0,0 +1,23 @@ +exec { + dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + dbus-update-activation-environment --systemd --all + systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + /usr/lib/xdg-desktop-portal-wlr + kanshi + swayidle -w \ + lock 'swaylock -f -i "$HOME/.config/sway/wallpaper/locked.*"' \ + timeout 300 'swaylock -f -i "$HOME/.config/sway/wallpaper/locked.*"' \ + timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ + before-sleep 'swaylock -f -i "$HOME/.config/sway/wallpaper/locked.*"' + wl-paste --type text --watch cliphist store + wl-paste --type image --watch cliphist store + mako -c ~/.config/mako/config + /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 + gnome-keyring-daemon --start --components=secrets +} + +exec_always { + pidof kanshi || kill -1 $(pidof kanshi) +} + +bar swaybar_command waybar diff --git a/user/.config/sway/modules/binds b/config/sway/modules/binds similarity index 67% rename from user/.config/sway/modules/binds rename to config/sway/modules/binds index 9810d4b66..0e3f5e6f4 100644 --- a/user/.config/sway/modules/binds +++ b/config/sway/modules/binds @@ -8,32 +8,32 @@ set $up k set $right l # Apps -set $term wezterm +set $term foot set $chat flatpak run org.signal.Signal set $office flatpak run org.libreoffice.LibreOffice -set $browser flatpak run org.mozilla.firefox -set $file thunar -set $editor $HOME/.local/bin/neovide -set $music lollypop -set $ani-cli wezterm start --class ani-cli ani-cli -set $ytfzf wezterm start --class ytfzf ytfzf -flstT chafa -set $ytfzf-music wezterm start --class ytfzf-music ytfzf -mlstT chafa -set $flix-cli wezterm start --class flix-cli flix-cli -set $audiomixer wezterm start --class audiomixer pulsemixer -set $monitor wezterm start --class monitor btop -set $newsboat wezterm start --class newsboat newsboat +set $browser flatpak run com.brave.Browser +set $file foot -T yazi -a yazi yazi +set $editor neovide --neovim-bin $HOME/.local/bin/lvim +set $music foot -T musikcube -a musikcube musikcube +set $ani-cli foot -T ani-cli -a ani-cli ani-cli +set $ytfzf foot -T ytfzf -a ytfzf ytfzf -flst +set $ytfzf-music foot -T ytfzf-music -a ytfzf-music ytfzf -mlst +set $flix-cli foot -T flix-cli -a flix-cli flix-cli +set $audiomixer foot -T audiomixer -a audiomixer pulsemixer +set $monitor foot -T monitor -a monitor btop +set $newsboat foot -T newsboat -a newsboat newsboat # Your preferred application launcher # Note: pass the final command to swaymsg so that the resulting window can be opened # on the original workspace that the command was run on. set $menu fuzzel | xargs swaymsg exec -- -set $menu-wifi ~/.local/bin/rs_wifi | xargs swaymsg exec -- -set $menu-power ~/.local/bin/rs_power | xargs swaymsg exec -- -set $menu-emoji ~/.local/bin/rs_emoji | xargs swaymsg exec -- -set $menu-wall ~/.local/bin/rs_wall | xargs swaymsg exec -- -set $menu-scrot ~/.local/bin/rs_scrot | xargs swaymsg exec -- -set $menu-blue ~/.local/bin/rs_blue | xargs swaymsg exec -- -set $menu-clip ~/.local/bin/rs_clip | xargs swaymsg exec -- +set $menu-wifi ~/.config/fuzzel/scripts/rs_wifi | xargs swaymsg exec -- +set $menu-power ~/.config/fuzzel/scripts/rs_power | xargs swaymsg exec -- +set $menu-emoji ~/.config/fuzzel/scripts/rs_emoji | xargs swaymsg exec -- +set $menu-wall ~/.config/fuzzel/scripts/rs_wall | xargs swaymsg exec -- +set $menu-scrot ~/.config/fuzzel/scripts/rs_scrot | xargs swaymsg exec -- +set $menu-blue ~/.config/fuzzel/scripts/rs_blue | xargs swaymsg exec -- +set $menu-clip ~/.config/fuzzel/scripts/rs_clip | xargs swaymsg exec -- # Start a terminal bindsym $mod+Return exec $term @@ -41,16 +41,6 @@ bindsym $mod+Return exec $term # Kill focused window bindsym $mod+q kill -# Run launcher scripts -bindsym $mod+Shift+d exec $menu -bindsym $mod+Shift+q exec $menu-power -bindsym $mod+Shift+e exec $menu-emoji -bindsym $mod+Shift+w exec $menu-wall -bindsym $mod+Shift+s exec $menu-scrot -bindsym $mod+Shift+b exec $menu-blue -bindsym $mod+Shift+c exec $menu-clip -bindsym $mod+Shift+i exec $menu-wifi - # XF86 Keys bindsym XF86AudioRaiseVolume exec pamixer -i 5 bindsym XF86AudioLowerVolume exec pamixer -d 5 @@ -61,7 +51,7 @@ bindsym XF86AudioPlay exec playerctl play-pause bindsym XF86AudioNext exec playerctl next bindsym XF86AudioPrev exec playerctl previous bindsym XF86AudioStop exec playerctl stop -bindsym XF86News exec wezterm start --class newsboat newsboat +bindsym XF86News exec $newsboat bindsym XF86MonBrightnessUp exec brightnessctl s 5%+ bindsym XF86MonBrightnessDown exec brightnessctl s 5%- bindsym XF86Display exec wdisplays @@ -115,16 +105,16 @@ bindsym $mod+8 workspace number 8 bindsym $mod+9 workspace number 9 bindsym $mod+0 workspace number 10 # Move focused container to workspace -bindsym $mod+Shift+1 move container to workspace number 1 -bindsym $mod+Shift+2 move container to workspace number 2 -bindsym $mod+Shift+3 move container to workspace number 3 -bindsym $mod+Shift+4 move container to workspace number 4 -bindsym $mod+Shift+5 move container to workspace number 5 -bindsym $mod+Shift+6 move container to workspace number 6 -bindsym $mod+Shift+7 move container to workspace number 7 -bindsym $mod+Shift+8 move container to workspace number 8 -bindsym $mod+Shift+9 move container to workspace number 9 -bindsym $mod+Shift+0 move container to workspace number 10 +bindsym $mod+Shift+1 [con_id=__focused__] move container to workspace number 1, focus +bindsym $mod+Shift+2 [con_id=__focused__] move container to workspace number 2, focus +bindsym $mod+Shift+3 [con_id=__focused__] move container to workspace number 3, focus +bindsym $mod+Shift+4 [con_id=__focused__] move container to workspace number 4, focus +bindsym $mod+Shift+5 [con_id=__focused__] move container to workspace number 5, focus +bindsym $mod+Shift+6 [con_id=__focused__] move container to workspace number 6, focus +bindsym $mod+Shift+7 [con_id=__focused__] move container to workspace number 7, focus +bindsym $mod+Shift+8 [con_id=__focused__] move container to workspace number 8, focus +bindsym $mod+Shift+9 [con_id=__focused__] move container to workspace number 9, focus +bindsym $mod+Shift+0 [con_id=__focused__] move container to workspace number 10, focus # Note: workspaces can have any name you want, not just numbers. # We just use 1-10 as the default. @@ -136,15 +126,15 @@ bindsym $mod+b splith bindsym $mod+v splitv # Switch the current container between different layout styles -bindsym $mod+Ctrl+s layout stacking -bindsym $mod+Ctrl+w layout tabbed -bindsym $mod+Ctrl+e layout toggle split +bindsym $mod+e layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+d layout toggle split # Make the current focus fullscreen -bindsym $mod+Ctrl+f fullscreen +bindsym $mod+f fullscreen # Toggle the current focus between tiling and floating mode -bindsym $mod+Ctrl+space floating toggle +bindsym $mod+Alt+space floating toggle # Swap focus between the tiling area and the floating area bindsym $mod+space focus mode_toggle @@ -206,3 +196,18 @@ mode "apps" { bindsym Escape mode "default" } bindsym $mod+a mode "apps" + +# Run launcher scripts +mode "launchers" { + bindsym d exec $menu; mode "default" + bindsym q exec $menu-power; mode "default" + bindsym e exec $menu-emoji; mode "default" + bindsym w exec $menu-wall; mode "default" + bindsym s exec $menu-scrot; mode "default" + bindsym b exec $menu-blue; mode "default" + bindsym c exec $menu-clip; mode "default" + bindsym i exec $menu-wifi; mode "default" + bindsym Return mode "default" + bindsym Escape mode "default" +} +bindsym $mod+s mode "launchers" diff --git a/user/.config/sway/modules/input b/config/sway/modules/input similarity index 100% rename from user/.config/sway/modules/input rename to config/sway/modules/input diff --git a/config/sway/modules/output b/config/sway/modules/output new file mode 100644 index 000000000..bc6b31979 --- /dev/null +++ b/config/sway/modules/output @@ -0,0 +1,25 @@ +# Set background for all outputs +output * { + bg ~/.config/sway/wallpaper/background.* fill +} + +# # Configure internal display (eDP-1) +# output eDP-1 { +# mode 1920x1080 +# position 3200,0 +# transform normal +# } + +# # Configure external display (HDMI-A-2) +# output HDMI-A-2 { +# mode 1920x1080@100Hz +# position 1280,0 +# transform normal +# } + +# # Configure external display (DP-1) +# output DP-1 { +# mode 1280x1024@75Hz +# position 0,0 +# transform normal +# } diff --git a/user/.config/sway/modules/rules b/config/sway/modules/rules similarity index 100% rename from user/.config/sway/modules/rules rename to config/sway/modules/rules diff --git a/user/.config/sway/modules/theme b/config/sway/modules/theme similarity index 58% rename from user/.config/sway/modules/theme rename to config/sway/modules/theme index 22b82c24c..46a7d2dc1 100644 --- a/user/.config/sway/modules/theme +++ b/config/sway/modules/theme @@ -1,33 +1,38 @@ # Font -font pango: Mononoki Nerd Font 12 +font pango: Mononoki Nerd Font 14 # Color scheme (Gruvbox dark) set $color_normal_white #a89984 set $color_bright_white #ebdbb2 set $color_normal_gray #282828 -set $color_bright_gray #3c3836 +set $color_bright_gray #665c54 set $color_bright_yellow #d79921 set $color_normal_black #1d2021 set $color_unused #ff0000 +set $color_normal_red #cc241d +set $color_normal_teal #689d6a +set $color_normal_green #98971a # Title bar colors # Colors border background text indicator child_border -client.focused $color_bright_gray $color_bright_gray $color_bright_white $color_bright_gray $color_normal_black -client.focused_inactive $color_bright_gray $color_bright_gray $color_bright_white $color_bright_gray $color_normal_black -client.unfocused $color_normal_gray $color_normal_gray $color_normal_white $color_normal_gray $color_normal_black +client.focused $color_normal_red $color_bright_gray $color_bright_white $color_normal_teal $color_normal_red +client.focused_inactive $color_bright_gray $color_bright_gray $color_bright_white $color_normal_green $color_bright_gray +client.unfocused $color_bright_gray $color_normal_gray $color_normal_white $color_normal_green $color_bright_gray client.urgent $color_bright_yellow $color_bright_yellow $color_normal_black $color_unused $color_unused client.placeholder $color_unused $color_unused $color_unused $color_unused $color_unused # Window borders -default_border pixel 2 -default_floating_border pixel 2 +default_border pixel 3 +default_floating_border pixel 3 +smart_borders off +gaps inner 5 # gsettings exec gsettings set org.gnome.desktop.interface { - gtk-theme 'gruvbox-dark-gtk' - icon-theme 'gruvbox-dark-icons-gtk' + gtk-theme 'Gruvbox-Dark' + icon-theme 'Papirus-Dark' cursor-theme 'Simp1e-Gruvbox-Dark' - font-name 'Cantarell 10' + font-name 'Inter 10' document-font-name 'Liberation Serif 12' monospace-font-name 'Mononoki Nerd Font 12' enable-animations true diff --git a/config/sway/wallpaper/background.png b/config/sway/wallpaper/background.png new file mode 100644 index 000000000..227045615 Binary files /dev/null and b/config/sway/wallpaper/background.png differ diff --git a/config/sway/wallpaper/locked.png b/config/sway/wallpaper/locked.png new file mode 100644 index 000000000..227045615 Binary files /dev/null and b/config/sway/wallpaper/locked.png differ diff --git a/user/.config/sway/winitrc b/config/sway/winitrc similarity index 85% rename from user/.config/sway/winitrc rename to config/sway/winitrc index 51e408c62..620690ca1 100755 --- a/user/.config/sway/winitrc +++ b/config/sway/winitrc @@ -16,17 +16,17 @@ export XKB_DEFAULT_LAYOUT=us export MOZ_ENABLE_WAYLAND=1 export MOZ_WAYLAND_USE_VAAPI=1 export MOZ_DISABLE_RDD_SANDBOX=1 +export ELECTRON_OZONE_PLATFORM_HINT=auto # GTK & cursor stuff export XCURSOR_PATH="$XDG_DATA_HOME/icons/" export XCURSOR_THEME="Simp1e-Gruvbox-Dark" -export GTK_THEME="gruvbox-dark-gtk" -export GTK_ICON_THEME="gruvbox-dark-icons-gtk" +export GTK_THEME="Gruvbox-Dark" +export GTK_ICON_THEME="Papirus-Dark" export GTK_CURSOR_THEME="Simp1e-Gruvbox-Dark" # User defined enviroment variables export RUNNER="fuzzel --dmenu" -export WM=sway # Start compositor -dbus-launch $WM +exec sway diff --git a/user/.config/waybar/config b/config/waybar/config similarity index 54% rename from user/.config/waybar/config rename to config/waybar/config index a11c129d1..c97784b98 100644 --- a/user/.config/waybar/config +++ b/config/waybar/config @@ -10,6 +10,10 @@ "sway/scratchpad" ], + "modules-center": [ + "sway/window" + ], + "modules-right": [ "custom/arrow1", "sway/language", @@ -18,12 +22,13 @@ "custom/arrow3", "backlight", "custom/arrow4", + "idle_inhibitor", + "power-profiles-daemon", "battery", + "battery#bat2", "custom/arrow5", - "custom/powerprofiles", - "custom/arrow6", "network", - "custom/arrow7", + "custom/arrow6", "clock" ], @@ -47,6 +52,13 @@ } }, + "sway/window": { + "format": "{title}", + "icon": true, + "icon-size": 24, + "separate-outputs": true + }, + "sway/language": { "format": "{} \udb80\udf0c", "on-click": "swaymsg input type:keyboard xkb_switch_layout next", @@ -65,60 +77,14 @@ "tooltip-format": "{app}: {title}" }, - "clock": { - "tooltip-format": "{:%Y %B}\n{calendar}", - "format": "\udb82\udd54 {:%H:%M}", - "format-alt": "\udb80\udcf5 {:%Y-%m-%d}" - }, - - "backlight": { - "format": "{percent}% {icon}", - "format-icons": [ - "\udb86\ude4e", // 10% - "\udb86\ude4f", // 20% - "\udb86\ude50", // 30% - "\udb86\ude51", // 40% - "\udb86\ude52", // 50% - "\udb86\ude53", // 60% - "\udb86\ude54", // 70% - "\udb86\ude55", // 80% - "\udb81\udee8" // 90+% - ] - }, - - "battery": { - "states": { - "warning": 30, - "critical": 15 - }, - "format": "{capacity}% {icon}", - "format-charging": "{capacity}% {icon}\udb81\udea5", - "format-plugged": "{capacity}% {icon}\udb81\udea5", - "format-alt": "{time} {icon}", - "format-critical": "{capacity}% {icon}\udb84\ude38", - "format-warning": "{capacity}% {icon}\udb84\ude38", - "format-icons": [ - "\udb80\udc7a", - "\udb80\udc7c", - "\udb80\udc7e", - "\udb80\udc80", - "\udb80\udc79" - ], - }, - - "custom/powerprofiles": { - "exec": "bash $HOME/.config/waybar/power-profiles", - "restart-interval": 5, - "format": "{}", - }, - "pulseaudio": { "scroll-step": 1, // %, can be a float - "format": "{volume}% {icon} {format_source}", - "format-bluetooth": "{volume}% {icon}\udb80\udcaf {format_source}", + "tooltip-format": "{volume}% - {desc}", + "format": "{icon} {format_source}", + "format-bluetooth": "{icon}\udb80\udcaf {format_source}", "format-bluetooth-muted": "\udb81\udd81 {icon}\udb80\udcaf {format_source}", "format-muted": "\udb81\udd81 {format_source}", - "format-source": "{volume}% \udb80\udf6c", + "format-source": "\udb80\udf6c", "format-source-muted": "\udb80\udf6d", "format-icons": { "headphone": "\udb80\udecb", @@ -129,15 +95,101 @@ "car": "\udb80\udd0b", "default": ["\udb81\udd7f", "\udb81\udd80", "\udb81\udd7e"] }, - "on-click": "wezterm start --class pulsemixer -- pulsemixer" + "on-click": "foot -T audiomixer -a audiomixer pulsemixer" + }, + + "backlight": { + "format": "{icon}", + "format-icons": [ + "\udb86\ude4e", + "\udb86\ude4f", + "\udb86\ude50", + "\udb86\ude51", + "\udb86\ude52", + "\udb86\ude53", + "\udb86\ude54", + "\udb86\ude55", + "\udb81\udee8" + ], + "tooltip-format": "{percent}%" + }, + + "idle_inhibitor": { + "format": "{icon}", + "format-icons": { + "activated": "\uea71", + "deactivated": "\ueabc" + } + }, + + "power-profiles-daemon": { + "format": "{icon}", + "tooltip-format": "Power profile: {profile}", + "tooltip": true, + "format-icons": { + "default": "󰾅", + "performance": "󰓅", + "balanced": "󰾅", + "power-saver": "󰾆" + } + }, + + "battery": { + "bat": "BAT0", + "states": { + "warning": 30, + "critical": 15 + }, + "format": "{icon}", + "format-charging": "{icon} \udb81\udea5", + "format-plugged": "{icon} \udb81\udea5", + "format-critical": "{icon} \udb84\ude38", + "format-warning": "{icon} \udb84\ude38", + "format-icons": [ + "\udb80\udc7a", + "\udb80\udc7c", + "\udb80\udc7e", + "\udb80\udc80", + "\udb80\udc79" + ], + "tooltip-format": "{capacity}% - {timeTo}", + "on-click": "$HOME/.config/rofi/scripts/rs_power" + }, + + "battery#bat2": { + "bat": "BAT1", + "states": { + "warning": 30, + "critical": 15 + }, + "format": "{icon}", + "format-charging": "{icon} \udb81\udea5", + "format-plugged": "{icon} \udb81\udea5", + "format-critical": "{icon} \udb84\ude38", + "format-warning": "{icon} \udb84\ude38", + "format-icons": [ + "\udb80\udc7a", + "\udb80\udc7c", + "\udb80\udc7e", + "\udb80\udc80", + "\udb80\udc79" + ], + "tooltip-format": "{capacity}% - {timeTo}", + "on-click": "$HOME/.config/fuzzel/scripts/rs_power" }, "network": { - // "interface": "wlp2*", // (Optional) To force the use of this interface - "format-wifi": "{essid} \udb81\udda9", - "format-ethernet": "{ipaddr}/{cidr} \udb80\ude00", - "format-disconnected": "Disconnected \udb81\uddaa", - "format-alt": "{ifname}: {ipaddr}/{cidr}", + "format-wifi": "\udb81\udda9", + "format-ethernet": "\udb80\ude00", + "format-disconnected": "\udb80\udd5b", + "tooltip-format": "{essid} ({signalStrength}%) - {ifname}: {ipaddr}/{cidr}", + "on-click": "$HOME/.config/fuzzel/scripts/rs_wifi" + }, + + "clock": { + "tooltip-format": "{:%Y %B}\n{calendar}", + "format": "\udb82\udd54 {:%H:%M}", + "format-alt": "\udb80\udcf5 {:%Y-%m-%d}" }, "custom/arrow1": { diff --git a/config/waybar/style.css b/config/waybar/style.css new file mode 100644 index 000000000..4ae0884b0 --- /dev/null +++ b/config/waybar/style.css @@ -0,0 +1,259 @@ +/* ===================================== + Colors (Gruvbox theme) + ===================================== */ +@define-color black #1d2021; +@define-color red #cc241d; +@define-color green #98971a; +@define-color yellow #d79921; +@define-color orange #fe8019; +@define-color blue #458588; +@define-color purple #b16286; +@define-color aqua #689d6a; +@define-color gray #a89984; +/* Brighter variants */ +@define-color brgray #928374; +@define-color brred #fb4934; +@define-color brgreen #b8bb26; +@define-color bryellow #fabd2f; +@define-color brblue #83a598; +@define-color brpurple #d3869b; +@define-color braqua #8ec07c; +@define-color white #ebdbb2; +@define-color bg2 #504945; +/* Darker variants */ +@define-color drred #9d0006; +@define-color drgreen #79740e; +@define-color drpurple #8f3f71; +@define-color drorange #af3a03; +@define-color drgray #3c3836; +@define-color drblue #076678; +@define-color draqua #427b58; +@define-color dryellow #b57614; + +/* ===================================== + Color Definitions for Modules + ===================================== */ +@define-color critical @brred; +@define-color unfocused @braqua; +@define-color focused @red; +@define-color inactive @drgray; +@define-color idle @drgreen; +@define-color backlight @dryellow; +@define-color pulseaudio @drblue; +@define-color powerprofile @drgreen; +@define-color network @drred; +@define-color language @drpurple; +@define-color battery @drgreen; +@define-color clock @draqua; +@define-color wbackground rgba(29, 32, 33, 0.95); + +/* ===================================== + Keyframes + ===================================== */ +@keyframes blink { + to { + color: @critical; + } +} + +/* ===================================== + Reset Styles + ===================================== */ +* { + border: none; + border-radius: 0; + min-height: 0; + padding: 0; + box-shadow: none; + text-shadow: none; +} + +/* ===================================== + Button Styles + ===================================== */ +button { + box-shadow: inset 0 -3px transparent; + border: none; + border-radius: 0; +} + +/* Prevent strange hover effect on workspace buttons */ +button:hover { + background: inherit; +} + +/* ===================================== + General Bar Styles + ===================================== */ +window#waybar { + background-color: @wbackground; + font-family: Symbols Nerd Font Mono, Mononoki Nerd Font; + font-size: 14px; +} + +/* ===================================== + Workspaces Module + ===================================== */ +#workspaces button { + font-family: Symbols Nerd Font Mono; + font-size: 18px; + padding: 0 2pt; + color: @white; +} + +#workspaces button.visible { + color: @white; +} + +#workspaces button.focused { + color: @white; + background: @focused; +} + +#workspaces button.unfocused { + color: @white; +} + +#workspaces button.urgent { + color: @wbackground; + background: @critical; +} + +#workspaces button:hover { + background: @yellow; + color: @white; +} + +/* ===================================== + Mode Module + ===================================== */ +#mode { + background-color: @red; + border-bottom: 3px solid @white; + padding: 3px; +} + +/* ===================================== + Window Module + ===================================== */ +#window { + color: @white; + padding: 0 10px; + margin: 5px 0; +} + +/* ===================================== + Margins and Layout Adjustments + ===================================== */ +#window, #workspaces { + margin: 0 4px; +} + +.modules-left > widget:first-child > #workspaces { + margin-left: 0; +} + +.modules-right > widget:last-child > #workspaces { + margin-right: 0; +} + +/* ===================================== + Individual Module Styles + ===================================== */ +#clock, +#power-profiles-daemon, +#battery, +#backlight, +#network, +#pulseaudio, +#idle_inhibitor, +#language { + color: @white; + padding: 0 1px; + padding-left: 4px; +} + +#battery, +#battery.charging, +#battery.plugged { + background-color: @battery; +} + +#battery.critical:not(.charging) { + color: @white; + animation: blink 0.5s linear infinite alternate; +} + +#backlight { + background-color: @backlight; +} + +#network, +#network.disconnected { + background-color: @network; +} + +#pulseaudio, +#pulseaudio.muted { + background-color: @pulseaudio; +} + +#language { + background-color: @language; +} + +#power-profiles-daemon { + background-color: @powerprofile; +} + +#clock { + background-color: @clock; + padding-right: 10px; +} + +#idle_inhibitor { + background-color: @battery; +} + +/* ===================================== + Modeline Arrows + ===================================== */ +#custom-arrow1, +#custom-arrow2, +#custom-arrow3, +#custom-arrow4, +#custom-arrow5, +#custom-arrow6 { + font-size: 25pt; +} + +/* Individual Modeline Arrow Styles */ +#custom-arrow1 { + background: transparent; + color: @language; +} + +#custom-arrow2 { + background: @language; + color: @pulseaudio; +} + +#custom-arrow3 { + background: @pulseaudio; + color: @backlight; +} + +#custom-arrow4 { + background: @backlight; + color: @battery; +} + +#custom-arrow5 { + background: @battery; + color: @network; +} + +#custom-arrow6 { + background: @network; + color: @clock; +} diff --git a/config/wget/wgetrc b/config/wget/wgetrc new file mode 100644 index 000000000..bbd78d995 --- /dev/null +++ b/config/wget/wgetrc @@ -0,0 +1,141 @@ +### +### Sample Wget initialization file .wgetrc +### + +## You can use this file to change the default behaviour of wget or to +## avoid having to type many many command-line options. This file does +## not contain a comprehensive list of commands -- look at the manual +## to find out what you can put into this file. You can find this here: +## $ info wget.info 'Startup File' +## Or online here: +## https://www.gnu.org/software/wget/manual/wget.html#Startup-File +## +## Wget initialization file can reside in /usr/local/etc/wgetrc +## (global, for all users) or $HOME/.wgetrc (for a single user). +## +## To use the settings in this file, you will have to uncomment them, +## as well as change them, in most cases, as the values on the +## commented-out lines are the default values (e.g. "off"). +## +## Command are case-, underscore- and minus-insensitive. +## For example ftp_proxy, ftp-proxy and ftpproxy are the same. + + +## +## Global settings (useful for setting up in /usr/local/etc/wgetrc). +## Think well before you change them, since they may reduce wget's +## functionality, and make it behave contrary to the documentation: +## + +# You can set retrieve quota for beginners by specifying a value +# optionally followed by 'K' (kilobytes) or 'M' (megabytes). The +# default quota is unlimited. +#quota = inf + +# You can lower (or raise) the default number of retries when +# downloading a file (default is 20). +#tries = 20 + +# Lowering the maximum depth of the recursive retrieval is handy to +# prevent newbies from going too "deep" when they unwittingly start +# the recursive retrieval. The default is 5. +#reclevel = 5 + +# By default Wget uses "passive FTP" transfer where the client +# initiates the data connection to the server rather than the other +# way around. That is required on systems behind NAT where the client +# computer cannot be easily reached from the Internet. However, some +# firewalls software explicitly supports active FTP and in fact has +# problems supporting passive transfer. If you are in such +# environment, use "passive_ftp = off" to revert to active FTP. +#passive_ftp = off + +# The "wait" command below makes Wget wait between every connection. +# If, instead, you want Wget to wait only between retries of failed +# downloads, set waitretry to maximum number of seconds to wait (Wget +# will use "linear backoff", waiting 1 second after the first failure +# on a file, 2 seconds after the second failure, etc. up to this max). +#waitretry = 10 + + +## +## Local settings (for a user to set in his $HOME/.wgetrc). It is +## *highly* undesirable to put these settings in the global file, since +## they are potentially dangerous to "normal" users. +## +## Even when setting up your own ~/.wgetrc, you should know what you +## are doing before doing so. +## + +# Set this to on to use timestamping by default: +#timestamping = off + +# It is a good idea to make Wget send your email address in a `From:' +# header with your request (so that server administrators can contact +# you in case of errors). Wget does *not* send `From:' by default. +#header = From: Your Name + +# You can set up other headers, like Accept-Language. Accept-Language +# is *not* sent by default. +#header = Accept-Language: en + +# You can set the default proxies for Wget to use for http, https, and ftp. +# They will override the value in the environment. +#https_proxy = http://proxy.yoyodyne.com:18023/ +#http_proxy = http://proxy.yoyodyne.com:18023/ +#ftp_proxy = http://proxy.yoyodyne.com:18023/ + +# If you do not want to use proxy at all, set this to off. +#use_proxy = on + +# You can customize the retrieval outlook. Valid options are default, +# binary, mega and micro. +#dot_style = default + +# Setting this to off makes Wget not download /robots.txt. Be sure to +# know *exactly* what /robots.txt is and how it is used before changing +# the default! +#robots = on + +# It can be useful to make Wget wait between connections. Set this to +# the number of seconds you want Wget to wait. +#wait = 0 + +# You can force creating directory structure, even if a single is being +# retrieved, by setting this to on. +#dirstruct = off + +# You can turn on recursive retrieving by default (don't do this if +# you are not sure you know what it means) by setting this to on. +#recursive = off + +# To always back up file X as X.orig before converting its links (due +# to -k / --convert-links / convert_links = on having been specified), +# set this variable to on: +#backup_converted = off + +# To have Wget follow FTP links from HTML files by default, set this +# to on: +#follow_ftp = off + +# To try ipv6 addresses first: +#prefer-family = IPv6 + +# Set default IRI support state +#iri = off + +# Force the default system encoding +#localencoding = UTF-8 + +# Force the default remote server encoding +#remoteencoding = UTF-8 + +# Turn on to prevent following non-HTTPS links when in recursive mode +httpsonly = on + +# Tune HTTPS security (auto, SSLv2, SSLv3, TLSv1, PFS) +#secureprotocol = auto +ca_certificate=/etc/ssl/certs/ca-certificates.crt + +# Custom HSTS caching file path +hsts-file=~/.config/wget/wget-hsts diff --git a/config/yazi/keymap.toml b/config/yazi/keymap.toml new file mode 100644 index 000000000..7091faaf1 --- /dev/null +++ b/config/yazi/keymap.toml @@ -0,0 +1,303 @@ +# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config. +# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas. +"$schema" = "https://yazi-rs.github.io/schemas/keymap.json" + +[manager] + +keymap = [ + { on = "", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" }, + { on = "", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" }, + { on = "q", run = "quit", desc = "Exit the process" }, + { on = "Q", run = "quit --no-cwd-file", desc = "Exit the process without writing cwd-file" }, + { on = "", run = "close", desc = "Close the current tab, or quit if it is last tab" }, + { on = "", run = "suspend", desc = "Suspend the process" }, + + # Hopping + { on = "k", run = "arrow -1", desc = "Move cursor up" }, + { on = "j", run = "arrow 1", desc = "Move cursor down" }, + + { on = "", run = "arrow -1", desc = "Move cursor up" }, + { on = "", run = "arrow 1", desc = "Move cursor down" }, + + { on = "", run = "arrow -50%", desc = "Move cursor up half page" }, + { on = "", run = "arrow 50%", desc = "Move cursor down half page" }, + { on = "", run = "arrow -100%", desc = "Move cursor up one page" }, + { on = "", run = "arrow 100%", desc = "Move cursor down one page" }, + + { on = "", run = "arrow -50%", desc = "Move cursor up half page" }, + { on = "", run = "arrow 50%", desc = "Move cursor down half page" }, + { on = "", run = "arrow -100%", desc = "Move cursor up one page" }, + { on = "", run = "arrow 100%", desc = "Move cursor down one page" }, + + { on = [ "g", "g" ], run = "arrow -99999999", desc = "Move cursor to the top" }, + { on = "G", run = "arrow 99999999", desc = "Move cursor to the bottom" }, + + # Navigation + { on = "h", run = "leave", desc = "Go back to the parent directory" }, + { on = "l", run = "enter", desc = "Enter the child directory" }, + + { on = "", run = "leave", desc = "Go back to the parent directory" }, + { on = "", run = "enter", desc = "Enter the child directory" }, + + { on = "H", run = "back", desc = "Go back to the previous directory" }, + { on = "L", run = "forward", desc = "Go forward to the next directory" }, + + # Seeking + { on = "K", run = "seek -5", desc = "Seek up 5 units in the preview" }, + { on = "J", run = "seek 5", desc = "Seek down 5 units in the preview" }, + + # Selection + { on = "", run = [ "select --state=none", "arrow 1" ], desc = "Toggle the current selection state" }, + { on = "v", run = "visual_mode", desc = "Enter visual mode (selection mode)" }, + { on = "V", run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" }, + { on = "", run = "select_all --state=true", desc = "Select all files" }, + { on = "", run = "select_all --state=none", desc = "Inverse selection of all files" }, + + # Operation + { on = "o", run = "open", desc = "Open selected files" }, + { on = "O", run = "open --interactive", desc = "Open selected files interactively" }, + { on = "", run = "open", desc = "Open selected files" }, + { on = "", run = "open --interactive", desc = "Open selected files interactively" }, + { on = "y", run = "yank", desc = "Yank selected files (copy)" }, + { on = "x", run = "yank --cut", desc = "Yank selected files (cut)" }, + { on = "p", run = "paste", desc = "Paste yanked files" }, + { on = "P", run = "paste --force", desc = "Paste yanked files (overwrite if the destination exists)" }, + { on = "-", run = "link", desc = "Symlink the absolute path of yanked files" }, + { on = "_", run = "link --relative", desc = "Symlink the relative path of yanked files" }, + { on = "", run = "hardlink", desc = "Hardlink yanked files" }, + { on = "Y", run = "unyank", desc = "Cancel the yank status" }, + { on = "X", run = "unyank", desc = "Cancel the yank status" }, + { on = "d", run = "remove", desc = "Trash selected files" }, + { on = "D", run = "remove --permanently", desc = "Permanently delete selected files" }, + { on = "a", run = "create", desc = "Create a file (ends with / for directories)" }, + { on = "r", run = "rename --cursor=before_ext", desc = "Rename selected file(s)" }, + { on = ";", run = "shell --interactive", desc = "Run a shell command" }, + { on = ":", run = "shell --block --interactive", desc = "Run a shell command (block until finishes)" }, + { on = ".", run = "hidden toggle", desc = "Toggle the visibility of hidden files" }, + { on = "s", run = "search fd", desc = "Search files by name using fd" }, + { on = "S", run = "search rg", desc = "Search files by content using ripgrep" }, + { on = "", run = "escape --search", desc = "Cancel the ongoing search" }, + { on = "z", run = "plugin zoxide", desc = "Jump to a directory using zoxide" }, + { on = "Z", run = "plugin fzf", desc = "Jump to a directory or reveal a file using fzf" }, + + # Linemode + { on = [ "m", "s" ], run = "linemode size", desc = "Set linemode to size" }, + { on = [ "m", "p" ], run = "linemode permissions", desc = "Set linemode to permissions" }, + { on = [ "m", "c" ], run = "linemode ctime", desc = "Set linemode to ctime" }, + { on = [ "m", "m" ], run = "linemode mtime", desc = "Set linemode to mtime" }, + { on = [ "m", "o" ], run = "linemode owner", desc = "Set linemode to owner" }, + { on = [ "m", "n" ], run = "linemode none", desc = "Set linemode to none" }, + + # Copy + { on = [ "c", "c" ], run = "copy path", desc = "Copy the file path" }, + { on = [ "c", "d" ], run = "copy dirname", desc = "Copy the directory path" }, + { on = [ "c", "f" ], run = "copy filename", desc = "Copy the filename" }, + { on = [ "c", "n" ], run = "copy name_without_ext", desc = "Copy the filename without extension" }, + + # Filter + { on = "f", run = "filter --smart", desc = "Filter files" }, + + # Find + { on = "/", run = "find --smart", desc = "Find next file" }, + { on = "?", run = "find --previous --smart", desc = "Find previous file" }, + { on = "n", run = "find_arrow", desc = "Go to the next found" }, + { on = "N", run = "find_arrow --previous", desc = "Go to the previous found" }, + + # Sorting + { on = [ ",", "m" ], run = [ "sort modified --reverse=no", "linemode mtime" ], desc = "Sort by modified time" }, + { on = [ ",", "M" ], run = [ "sort modified --reverse", "linemode mtime" ], desc = "Sort by modified time (reverse)" }, + { on = [ ",", "c" ], run = [ "sort created --reverse=no", "linemode ctime" ], desc = "Sort by created time" }, + { on = [ ",", "C" ], run = [ "sort created --reverse", "linemode ctime" ], desc = "Sort by created time (reverse)" }, + { on = [ ",", "e" ], run = "sort extension --reverse=no", desc = "Sort by extension" }, + { on = [ ",", "E" ], run = "sort extension --reverse", desc = "Sort by extension (reverse)" }, + { on = [ ",", "a" ], run = "sort alphabetical --reverse=no", desc = "Sort alphabetically" }, + { on = [ ",", "A" ], run = "sort alphabetical --reverse", desc = "Sort alphabetically (reverse)" }, + { on = [ ",", "n" ], run = "sort natural --reverse=no", desc = "Sort naturally" }, + { on = [ ",", "N" ], run = "sort natural --reverse", desc = "Sort naturally (reverse)" }, + { on = [ ",", "s" ], run = [ "sort size --reverse=no", "linemode size" ], desc = "Sort by size" }, + { on = [ ",", "S" ], run = [ "sort size --reverse", "linemode size" ], desc = "Sort by size (reverse)" }, + { on = [ ",", "r" ], run = "sort random --reverse=no", desc = "Sort randomly" }, + + # Goto + { on = [ "g", "h" ], run = "cd ~", desc = "Go to the home directory" }, + { on = [ "g", "c" ], run = "cd ~/.config", desc = "Go to the config directory" }, + { on = [ "g", "d" ], run = "cd ~/Downloads", desc = "Go to the downloads directory" }, + { on = [ "g", "" ], run = "cd --interactive", desc = "Go to a directory interactively" }, + + # Tabs + { on = "t", run = "tab_create --current", desc = "Create a new tab with CWD" }, + + { on = "1", run = "tab_switch 0", desc = "Switch to the first tab" }, + { on = "2", run = "tab_switch 1", desc = "Switch to the second tab" }, + { on = "3", run = "tab_switch 2", desc = "Switch to the third tab" }, + { on = "4", run = "tab_switch 3", desc = "Switch to the fourth tab" }, + { on = "5", run = "tab_switch 4", desc = "Switch to the fifth tab" }, + { on = "6", run = "tab_switch 5", desc = "Switch to the sixth tab" }, + { on = "7", run = "tab_switch 6", desc = "Switch to the seventh tab" }, + { on = "8", run = "tab_switch 7", desc = "Switch to the eighth tab" }, + { on = "9", run = "tab_switch 8", desc = "Switch to the ninth tab" }, + + { on = "[", run = "tab_switch -1 --relative", desc = "Switch to the previous tab" }, + { on = "]", run = "tab_switch 1 --relative", desc = "Switch to the next tab" }, + + { on = "{", run = "tab_swap -1", desc = "Swap current tab with previous tab" }, + { on = "}", run = "tab_swap 1", desc = "Swap current tab with next tab" }, + + # Tasks + { on = "w", run = "tasks_show", desc = "Show task manager" }, + + # Help + { on = "~", run = "help", desc = "Open help" }, + { on = "", run = "help", desc = "Open help" }, +] + +[tasks] + +keymap = [ + { on = "", run = "close", desc = "Close task manager" }, + { on = "", run = "close", desc = "Close task manager" }, + { on = "", run = "close", desc = "Close task manager" }, + { on = "w", run = "close", desc = "Close task manager" }, + + { on = "k", run = "arrow -1", desc = "Move cursor up" }, + { on = "j", run = "arrow 1", desc = "Move cursor down" }, + + { on = "", run = "arrow -1", desc = "Move cursor up" }, + { on = "", run = "arrow 1", desc = "Move cursor down" }, + + { on = "", run = "inspect", desc = "Inspect the task" }, + { on = "x", run = "cancel", desc = "Cancel the task" }, + + # Help + { on = "~", run = "help", desc = "Open help" }, + { on = "", run = "help", desc = "Open help" }, +] + +[select] + +keymap = [ + { on = "", run = "close", desc = "Cancel selection" }, + { on = "", run = "close", desc = "Cancel selection" }, + { on = "", run = "close", desc = "Cancel selection" }, + { on = "", run = "close --submit", desc = "Submit the selection" }, + + { on = "k", run = "arrow -1", desc = "Move cursor up" }, + { on = "j", run = "arrow 1", desc = "Move cursor down" }, + + { on = "", run = "arrow -1", desc = "Move cursor up" }, + { on = "", run = "arrow 1", desc = "Move cursor down" }, + + # Help + { on = "~", run = "help", desc = "Open help" }, + { on = "", run = "help", desc = "Open help" }, +] + +[input] + +keymap = [ + { on = "", run = "close", desc = "Cancel input" }, + { on = "", run = "close --submit", desc = "Submit the input" }, + { on = "", run = "escape", desc = "Go back the normal mode, or cancel input" }, + { on = "", run = "escape", desc = "Go back the normal mode, or cancel input" }, + + # Mode + { on = "i", run = "insert", desc = "Enter insert mode" }, + { on = "a", run = "insert --append", desc = "Enter append mode" }, + { on = "I", run = [ "move -999", "insert" ], desc = "Move to the BOL, and enter insert mode" }, + { on = "A", run = [ "move 999", "insert --append" ], desc = "Move to the EOL, and enter append mode" }, + { on = "v", run = "visual", desc = "Enter visual mode" }, + { on = "V", run = [ "move -999", "visual", "move 999" ], desc = "Enter visual mode and select all" }, + + # Character-wise movement + { on = "h", run = "move -1", desc = "Move back a character" }, + { on = "l", run = "move 1", desc = "Move forward a character" }, + { on = "", run = "move -1", desc = "Move back a character" }, + { on = "", run = "move 1", desc = "Move forward a character" }, + { on = "", run = "move -1", desc = "Move back a character" }, + { on = "", run = "move 1", desc = "Move forward a character" }, + + # Word-wise movement + { on = "b", run = "backward", desc = "Move back to the start of the current or previous word" }, + { on = "w", run = "forward", desc = "Move forward to the start of the next word" }, + { on = "e", run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" }, + { on = "", run = "backward", desc = "Move back to the start of the current or previous word" }, + { on = "", run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" }, + + # Line-wise movement + { on = "0", run = "move -999", desc = "Move to the BOL" }, + { on = "$", run = "move 999", desc = "Move to the EOL" }, + { on = "", run = "move -999", desc = "Move to the BOL" }, + { on = "", run = "move 999", desc = "Move to the EOL" }, + { on = "", run = "move -999", desc = "Move to the BOL" }, + { on = "", run = "move 999", desc = "Move to the EOL" }, + + # Delete + { on = "", run = "backspace", desc = "Delete the character before the cursor" }, + { on = "", run = "backspace --under", desc = "Delete the character under the cursor" }, + { on = "", run = "backspace", desc = "Delete the character before the cursor" }, + { on = "", run = "backspace --under", desc = "Delete the character under the cursor" }, + + # Kill + { on = "", run = "kill bol", desc = "Kill backwards to the BOL" }, + { on = "", run = "kill eol", desc = "Kill forwards to the EOL" }, + { on = "", run = "kill backward", desc = "Kill backwards to the start of the current word" }, + { on = "", run = "kill forward", desc = "Kill forwards to the end of the current word" }, + + # Cut/Yank/Paste + { on = "d", run = "delete --cut", desc = "Cut the selected characters" }, + { on = "D", run = [ "delete --cut", "move 999" ], desc = "Cut until the EOL" }, + { on = "c", run = "delete --cut --insert", desc = "Cut the selected characters, and enter insert mode" }, + { on = "C", run = [ "delete --cut --insert", "move 999" ], desc = "Cut until the EOL, and enter insert mode" }, + { on = "x", run = [ "delete --cut", "move 1 --in-operating" ], desc = "Cut the current character" }, + { on = "y", run = "yank", desc = "Copy the selected characters" }, + { on = "p", run = "paste", desc = "Paste the copied characters after the cursor" }, + { on = "P", run = "paste --before", desc = "Paste the copied characters before the cursor" }, + + # Undo/Redo + { on = "u", run = "undo", desc = "Undo the last operation" }, + { on = "", run = "redo", desc = "Redo the last operation" }, + + # Help + { on = "~", run = "help", desc = "Open help" }, + { on = "", run = "help", desc = "Open help" }, +] + +[completion] + +keymap = [ + { on = "", run = "close", desc = "Cancel completion" }, + { on = "", run = "close --submit", desc = "Submit the completion" }, + { on = "", run = [ "close --submit", "close_input --submit" ], desc = "Submit the completion and input" }, + + { on = "", run = "arrow -1", desc = "Move cursor up" }, + { on = "", run = "arrow 1", desc = "Move cursor down" }, + + { on = "", run = "arrow -1", desc = "Move cursor up" }, + { on = "", run = "arrow 1", desc = "Move cursor down" }, + + { on = "", run = "arrow -1", desc = "Move cursor up" }, + { on = "", run = "arrow 1", desc = "Move cursor down" }, + + # Help + { on = "~", run = "help", desc = "Open help" }, + { on = "", run = "help", desc = "Open help" }, +] + +[help] + +keymap = [ + { on = "", run = "escape", desc = "Clear the filter, or hide the help" }, + { on = "", run = "escape", desc = "Clear the filter, or hide the help" }, + { on = "q", run = "close", desc = "Exit the process" }, + { on = "", run = "close", desc = "Hide the help" }, + + # Navigation + { on = "k", run = "arrow -1", desc = "Move cursor up" }, + { on = "j", run = "arrow 1", desc = "Move cursor down" }, + + { on = "", run = "arrow -1", desc = "Move cursor up" }, + { on = "", run = "arrow 1", desc = "Move cursor down" }, + + # Filtering + { on = "f", run = "filter", desc = "Apply a filter for the help items" }, +] diff --git a/config/yazi/theme.toml b/config/yazi/theme.toml new file mode 100644 index 000000000..a514f6fc5 --- /dev/null +++ b/config/yazi/theme.toml @@ -0,0 +1,146 @@ +# vim:fileencoding=utf-8:foldmethod=marker + +# : Manager {{{ + +[manager] +cwd = { fg = "#83a598" } + +# Hovered +hovered = { fg = "#282828", bg = "#83a598" } +preview_hovered = { underline = true } + +# Find +find_keyword = { fg = "#b8bb26", italic = true } +find_position = { fg = "#fe8019", bg = "reset", italic = true } + +# Marker +marker_selected = { fg = "#b8bb26", bg = "#b8bb26" } +marker_copied = { fg = "#b8bb26", bg = "#b8bb26" } +marker_cut = { fg = "#fb4934", bg = "#fb4934" } + +# Tab +tab_active = { fg = "#282828", bg = "#504945" } +tab_inactive = { fg = "#a89984", bg = "#3c3836" } +tab_width = 1 + +# Border +border_symbol = "│" +border_style = { fg = "#665c54" } + +# Highlighting +# syntect_theme = "~/.config/yazi/Gruvbox-Dark.tmTheme" + +# : }}} + + +# : Status {{{ + +[status] +separator_open = "" +separator_close = "" +separator_style = { fg = "#3c3836", bg = "#3c3836" } + +# Mode +mode_normal = { fg = "#282828", bg = "#A89984", bold = true } +mode_select = { fg = "#282828", bg = "#b8bb26", bold = true } +mode_unset = { fg = "#282828", bg = "#d3869b", bold = true } + +# Progress +progress_label = { fg = "#ebdbb2", bold = true } +progress_normal = { fg = "#504945", bg = "#3c3836" } +progress_error = { fg = "#fb4934", bg = "#3c3836" } + +# Permissions +permissions_t = { fg = "#504945" } +permissions_r = { fg = "#b8bb26" } +permissions_w = { fg = "#fb4934" } +permissions_x = { fg = "#b8bb26" } +permissions_s = { fg = "#665c54" } + +# : }}} + + +# : Input {{{ + +[input] +border = { fg = "#bdae93" } +title = {} +value = {} +selected = { reversed = true } + +# : }}} + + +# : Select {{{ + +[select] +border = { fg = "#504945" } +active = { fg = "#fe8019" } +inactive = {} + +# : }}} + + +# : Tasks {{{ + +[tasks] +border = { fg = "#504945" } +title = {} +hovered = { underline = true } + +# : }}} + + +# : Which {{{ + +[which] +mask = { bg = "#3c3836" } +cand = { fg = "#83a598" } +rest = { fg = "#928374" } +desc = { fg = "#fe8019" } +separator = "  " +separator_style = { fg = "#504945" } + +# : }}} + + +# : Help {{{ + +[help] +on = { fg = "#fe8019" } +exec = { fg = "#83a598" } +desc = { fg = "#928374" } +hovered = { bg = "#504945", bold = true } +footer = { fg = "#3c3836", bg = "#a89984" } + +# : }}} + + +# : File-specific styles {{{ + +[filetype] + +rules = [ + # Images + { mime = "image/*", fg = "#83a598" }, + + # Videos + { mime = "video/*", fg = "#b8bb26" }, + { mime = "audio/*", fg = "#b8bb26" }, + + # Archives + { mime = "application/zip", fg = "#fe8019" }, + { mime = "application/gzip", fg = "#fe8019" }, + { mime = "application/x-tar", fg = "#fe8019" }, + { mime = "application/x-bzip", fg = "#fe8019" }, + { mime = "application/x-bzip2", fg = "#fe8019" }, + { mime = "application/x-7z-compressed", fg = "#fe8019" }, + { mime = "application/x-rar", fg = "#fe8019" }, + + # Fallback + { name = "*", fg = "#a89984" }, + { name = "*/", fg = "#83a598" } +] + +# : }}} + diff --git a/config/yazi/yazi.toml b/config/yazi/yazi.toml new file mode 100644 index 000000000..79b95f911 --- /dev/null +++ b/config/yazi/yazi.toml @@ -0,0 +1,201 @@ +# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config. +# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas. +"$schema" = "https://yazi-rs.github.io/schemas/yazi.json" + +[manager] +ratio = [ 1, 4, 3 ] +sort_by = "natural" +sort_sensitive = false +sort_reverse = false +sort_dir_first = true +sort_translit = false +linemode = "none" +show_hidden = false +show_symlink = true +scrolloff = 5 +mouse_events = [ "click", "scroll" ] +title_format = "Yazi: {cwd}" + +[preview] +tab_size = 2 +max_width = 600 +max_height = 900 +cache_dir = "" +image_filter = "triangle" +image_quality = 75 +sixel_fraction = 15 +ueberzug_scale = 1 +ueberzug_offset = [ 0, 0, 0, 0 ] + +[opener] +edit = [ + { run = '${EDITOR:-vi} "$@"', desc = "$EDITOR", block = true, for = "unix" }, + { run = 'code %*', orphan = true, desc = "code", for = "windows" }, + { run = 'code -w %*', block = true, desc = "code (block)", for = "windows" }, +] +open = [ + { run = 'xdg-open "$1"', desc = "Open", for = "linux" }, + { run = 'open "$@"', desc = "Open", for = "macos" }, + { run = 'start "" "%1"', orphan = true, desc = "Open", for = "windows" }, +] +reveal = [ + { run = 'xdg-open "$(dirname "$1")"', desc = "Reveal", for = "linux" }, + { run = 'open -R "$1"', desc = "Reveal", for = "macos" }, + { run = 'explorer /select,"%1"', orphan = true, desc = "Reveal", for = "windows" }, + { run = '''exiftool "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show EXIF", for = "unix" }, +] +extract = [ + { run = 'ya pub extract --list "$@"', desc = "Extract here", for = "unix" }, + { run = 'ya pub extract --list %*', desc = "Extract here", for = "windows" }, +] +play = [ + { run = 'mpv --force-window "$@"', orphan = true, for = "unix" }, + { run = 'mpv --force-window %*', orphan = true, for = "windows" }, + { run = '''mediainfo "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show media info", for = "unix" }, +] + +[open] +rules = [ + # Folder + { name = "*/", use = [ "edit", "open", "reveal" ] }, + # Text + { mime = "text/*", use = [ "edit", "reveal" ] }, + # Image + { mime = "image/*", use = [ "open", "reveal" ] }, + # Media + { mime = "{audio,video}/*", use = [ "play", "reveal" ] }, + # Archive + { mime = "application/{,g}zip", use = [ "extract", "reveal" ] }, + { mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", use = [ "extract", "reveal" ] }, + # JSON + { mime = "application/{json,x-ndjson}", use = [ "edit", "reveal" ] }, + { mime = "*/javascript", use = [ "edit", "reveal" ] }, + # Empty file + { mime = "inode/x-empty", use = [ "edit", "reveal" ] }, + # Fallback + { name = "*", use = [ "open", "reveal" ] }, +] + +[tasks] +micro_workers = 10 +macro_workers = 25 +bizarre_retry = 5 +image_alloc = 536870912 # 512MB +image_bound = [ 0, 0 ] +suppress_preload = false + +[plugin] + +fetchers = [ + # Mimetype + { id = "mime", name = "*", run = "mime", if = "!mime", prio = "high" }, +] +preloaders = [ + # Image + { mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" }, + { mime = "image/*", run = "image" }, + # Video + { mime = "video/*", run = "video" }, + # PDF + { mime = "application/pdf", run = "pdf" }, + # Font + { mime = "font/*", run = "font" }, + { mime = "application/vnd.ms-opentype", run = "font" }, +] +previewers = [ + { name = "*/", run = "folder", sync = true }, + # Code + { mime = "text/*", run = "code" }, + { mime = "*/{xml,javascript,x-wine-extension-ini}", run = "code" }, + # JSON + { mime = "application/{json,x-ndjson}", run = "json" }, + # Image + { mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" }, + { mime = "image/*", run = "image" }, + # Video + { mime = "video/*", run = "video" }, + # PDF + { mime = "application/pdf", run = "pdf" }, + # Archive + { mime = "application/{,g}zip", run = "archive" }, + { mime = "application/x-{tar,bzip*,7z-compressed,xz,rar,iso9660-image}", run = "archive" }, + # Font + { mime = "font/*", run = "font" }, + { mime = "application/vnd.ms-opentype", run = "font" }, + # Empty file + { mime = "inode/x-empty", run = "empty" }, + # Fallback + { name = "*", run = "file" }, +] + +[input] +cursor_blink = false + +# cd +cd_title = "Change directory:" +cd_origin = "top-center" +cd_offset = [ 0, 2, 50, 3 ] + +# create +create_title = "Create:" +create_origin = "top-center" +create_offset = [ 0, 2, 50, 3 ] + +# rename +rename_title = "Rename:" +rename_origin = "hovered" +rename_offset = [ 0, 1, 50, 3 ] + +# trash +trash_title = "Move {n} selected file{s} to trash? (y/N)" +trash_origin = "top-center" +trash_offset = [ 0, 2, 50, 3 ] + +# delete +delete_title = "Delete {n} selected file{s} permanently? (y/N)" +delete_origin = "top-center" +delete_offset = [ 0, 2, 50, 3 ] + +# filter +filter_title = "Filter:" +filter_origin = "top-center" +filter_offset = [ 0, 2, 50, 3 ] + +# find +find_title = [ "Find next:", "Find previous:" ] +find_origin = "top-center" +find_offset = [ 0, 2, 50, 3 ] + +# search +search_title = "Search via {n}:" +search_origin = "top-center" +search_offset = [ 0, 2, 50, 3 ] + +# shell +shell_title = [ "Shell:", "Shell (block):" ] +shell_origin = "top-center" +shell_offset = [ 0, 2, 50, 3 ] + +# overwrite +overwrite_title = "Overwrite an existing file? (y/N)" +overwrite_origin = "top-center" +overwrite_offset = [ 0, 2, 50, 3 ] + +# quit +quit_title = "{n} task{s} running, sure to quit? (y/N)" +quit_origin = "top-center" +quit_offset = [ 0, 2, 50, 3 ] + +[select] +open_title = "Open with:" +open_origin = "hovered" +open_offset = [ 0, 1, 50, 7 ] + +[which] +sort_by = "none" +sort_sensitive = false +sort_reverse = false +sort_translit = false + +[log] +enabled = false diff --git a/user/.config/zathura/zathurarc b/config/zathura/zathurarc similarity index 100% rename from user/.config/zathura/zathurarc rename to config/zathura/zathurarc diff --git a/etc/bluetooth/main.conf b/etc/bluetooth/main.conf new file mode 100644 index 000000000..7cb3dbdf7 --- /dev/null +++ b/etc/bluetooth/main.conf @@ -0,0 +1,348 @@ +[General] + +# Default adapter name +# Defaults to 'BlueZ X.YZ' +#Name = BlueZ + +# Default device class. Only the major and minor device class bits are +# considered. Defaults to '0x000000'. +#Class = 0x000100 + +# How long to stay in discoverable mode before going back to non-discoverable +# The value is in seconds. Default is 180, i.e. 3 minutes. +# 0 = disable timer, i.e. stay discoverable forever +#DiscoverableTimeout = 0 + +# Always allow pairing even if there are no agent registered +# Possible values: true, false +# Default: false +#AlwaysPairable = false + +# How long to stay in pairable mode before going back to non-discoverable +# The value is in seconds. Default is 0. +# 0 = disable timer, i.e. stay pairable forever +#PairableTimeout = 0 + +# Use vendor id source (assigner), vendor, product and version information for +# DID profile support. The values are separated by ":" and assigner, VID, PID +# and version. +# Possible vendor id source values: bluetooth, usb (default) or false (disabled) +#DeviceID = bluetooth:1234:5678:abcd + +# Do reverse service discovery for previously unknown devices that connect to +# us. For BR/EDR this option is really only needed for qualification since the +# BITE tester doesn't like us doing reverse SDP for some test cases, for LE +# this disables the GATT client functionally so it can be used in system which +# can only operate as peripheral (see also GATT Client option). +# Defaults to 'true'. +#ReverseServiceDiscovery = true + +# Enable name resolving after inquiry. Set it to 'false' if you don't need +# remote devices name and want shorter discovery cycle. Defaults to 'true'. +#NameResolving = true + +# Enable runtime persistency of debug link keys. Default is false which +# makes debug link keys valid only for the duration of the connection +# that they were created for. +#DebugKeys = false + +# Restricts all controllers to the specified transport. Default value +# is "dual", i.e. both BR/EDR and LE enabled (when supported by the HW). +# Possible values: "dual", "bredr", "le" +#ControllerMode = dual + +# Maximum number of controllers allowed to be exposed to the system. +# Default=0 (unlimited) +#MaxControllers=0 + +# Enables Multi Profile Specification support. This allows to specify if +# system supports only Multiple Profiles Single Device (MPSD) configuration +# or both Multiple Profiles Single Device (MPSD) and Multiple Profiles Multiple +# Devices (MPMD) configurations. +# Possible values: "off", "single", "multiple" +#MultiProfile = off + +# Permanently enables the Fast Connectable setting for adapters that +# support it. When enabled other devices can connect faster to us, +# however the tradeoff is increased power consumptions. This feature +# will fully work only on kernel version 4.1 and newer. Defaults to +# 'false'. +#FastConnectable = false + +# Default privacy setting. +# Enables use of private address. +# Possible values for LE mode: "off", "network/on", "device" +# Possible values for Dual mode: "off", "network/on", "device", +# "limited-network", "limited-device" +# +# - off: Local privacy disabled. +# +# - network/on: A device will only accept advertising packets from peer +# devices that contain private addresses. It may not be compatible with some +# legacy devices since it requires the use of RPA(s) all the time. +# +# - device: A device in device privacy mode is only concerned about the +# privacy of the device and will accept advertising packets from peer devices +# that contain their Identity Address as well as ones that contain a private +# address, even if the peer device has distributed its IRK in the past. + +# - limited-network: Apply Limited Discoverable Mode to advertising, which +# follows the same policy as to BR/EDR that publishes the identity address when +# discoverable, and Network Privacy Mode for scanning. +# +# - limited-device: Apply Limited Discoverable Mode to advertising, which +# follows the same policy as to BR/EDR that publishes the identity address when +# discoverable, and Device Privacy Mode for scanning. +# +# Defaults to "off" +#Privacy = off + +# Specify the policy to the JUST-WORKS repairing initiated by peer +# Possible values: "never", "confirm", "always" +# Defaults to "never" +#JustWorksRepairing = never + +# How long to keep temporary devices around +# The value is in seconds. Default is 30. +# 0 = disable timer, i.e. never keep temporary devices +#TemporaryTimeout = 30 + +# Enables the device to issue an SDP request to update known services when +# profile is connected. Defaults to true. +#RefreshDiscovery = true + +# Default Secure Connections setting. +# Enables the Secure Connections setting for adapters that support it. It +# provides better crypto algorithms for BT links and also enables CTKD (cross +# transport key derivation) during pairing on any link. +# Possible values: "off", "on", "only" +# - "off": Secure Connections are disabled +# - "on": Secure Connections are enabled when peer device supports them +# - "only": we allow only Secure Connections +# Defaults to "on" +#SecureConnections = on + +# Enables D-Bus experimental interfaces +# Possible values: true or false +#Experimental = false + +# Enables D-Bus testing interfaces +# Possible values: true or false +#Testing = false + +# Enables kernel experimental features, alternatively a list of UUIDs +# can be given. +# Possible values: true,false, +# Possible UUIDS: +# d4992530-b9ec-469f-ab01-6c481c47da1c (BlueZ Experimental Debug) +# 671b10b5-42c0-4696-9227-eb28d1b049d6 (BlueZ Experimental Simultaneous Central and Peripheral) +# 15c0a148-c273-11ea-b3de-0242ac130004 (BlueZ Experimental LL privacy) +# 330859bc-7506-492d-9370-9a6f0614037f (BlueZ Experimental Bluetooth Quality Report) +# a6695ace-ee7f-4fb9-881a-5fac66c629af (BlueZ Experimental Offload Codecs) +# 6fbaf188-05e0-496a-9885-d6ddfdb4e03e (BlueZ Experimental ISO socket) +# Defaults to false. +#KernelExperimental = false + +# The duration to avoid retrying to resolve a peer's name, if the previous +# try failed. +# The value is in seconds. Default is 300, i.e. 5 minutes. +#RemoteNameRequestRetryDelay = 300 + +[BR] +# The following values are used to load default adapter parameters for BR/EDR. +# BlueZ loads the values into the kernel before the adapter is powered if the +# kernel supports the MGMT_LOAD_DEFAULT_PARAMETERS command. If a value isn't +# provided, the kernel will be initialized to it's default value. The actual +# value will vary based on the kernel version and thus aren't provided here. +# The Bluetooth Core Specification should be consulted for the meaning and valid +# domain of each of these values. + +# BR/EDR Page scan activity configuration +#PageScanType= +#PageScanInterval= +#PageScanWindow= + +# BR/EDR Inquiry scan activity configuration +#InquiryScanType= +#InquiryScanInterval= +#InquiryScanWindow= + +# BR/EDR Link supervision timeout +#LinkSupervisionTimeout= + +# BR/EDR Page Timeout +#PageTimeout= + +# BR/EDR Sniff Intervals +#MinSniffInterval= +#MaxSniffInterval= + +[LE] +# The following values are used to load default adapter parameters for LE. +# BlueZ loads the values into the kernel before the adapter is powered if the +# kernel supports the MGMT_LOAD_DEFAULT_PARAMETERS command. If a value isn't +# provided, the kernel will be initialized to it's default value. The actual +# value will vary based on the kernel version and thus aren't provided here. +# The Bluetooth Core Specification should be consulted for the meaning and valid +# domain of each of these values. +# LE advertisement interval (used for legacy advertisement interface only) +#MinAdvertisementInterval= +#MaxAdvertisementInterval= +#MultiAdvertisementRotationInterval= + +# LE scanning parameters used for passive scanning supporting auto connect +# scenarios +#ScanIntervalAutoConnect= +#ScanWindowAutoConnect= + +# LE scanning parameters used for passive scanning supporting wake from suspend +# scenarios +#ScanIntervalSuspend= +#ScanWindowSuspend= + +# LE scanning parameters used for active scanning supporting discovery +# proceedure +#ScanIntervalDiscovery= +#ScanWindowDiscovery= + +# LE scanning parameters used for passive scanning supporting the advertisement +# monitor Apis +#ScanIntervalAdvMonitor= +#ScanWindowAdvMonitor= + +# LE scanning parameters used for connection establishment. +#ScanIntervalConnect= +#ScanWindowConnect= + +# LE default connection parameters. These values are superceeded by any +# specific values provided via the Load Connection Parameters interface +#MinConnectionInterval= +#MaxConnectionInterval= +#ConnectionLatency= +#ConnectionSupervisionTimeout= +#Autoconnecttimeout= + +# Scan duration during interleaving scan. Only used when scanning for ADV +# monitors. The units are msec. +# Default: 300 +#AdvMonAllowlistScanDuration= +# Default: 500 +#AdvMonNoFilterScanDuration= + +# Enable/Disable Advertisement Monitor interleave scan for power saving. +# 0: disable +# 1: enable +# Defaults to 1 +#EnableAdvMonInterleaveScan= + +[GATT] +# GATT attribute cache. +# Possible values: +# always: Always cache attributes even for devices not paired, this is +# recommended as it is best for interoperability, with more consistent +# reconnection times and enables proper tracking of notifications for all +# devices. +# yes: Only cache attributes of paired devices. +# no: Never cache attributes +# Default: always +#Cache = always + +# Minimum required Encryption Key Size for accessing secured characteristics. +# Possible values: 0 and 7-16. 0 means don't care. +# Defaults to 0 +#KeySize = 0 + +# Exchange MTU size. +# Possible values: 23-517 +# Defaults to 517 +#ExchangeMTU = 517 + +# Number of ATT channels +# Possible values: 1-5 (1 disables EATT) +# Default to 1 +#Channels = 1 + +[CSIS] +# SIRK - Set Identification Resolution Key which is common for all the +# sets. They SIRK key is used to identify its sets. This can be any +# 128 bit value or a string value (e.g. product name) which is then hashed. +# Possible Values: +# 16 byte hexadecimal value: 861FAE703ED681F0C50B34155B6434FB +# String value: "My Product Name" +# Defaults to none +#SIRK = + +# SIRK Encryption +# Possible values: +# true: Encrypt SIRK when read +# false: Do not encrypt SIRK when read. (plaintext) +# Defaults to true +#Encryption = true + +# Total no of sets belongs to this Profile +# Defaults to 0 +#Size = 0 + +# Rank for the device +# Defaults to 0 +#Rank = 0 + +# This enables the GATT client functionally, so it can be disabled in system +# which can only operate as a peripheral. +# Defaults to 'true'. +#Client = true + +[AVDTP] +# AVDTP L2CAP Signalling Channel Mode. +# Possible values: +# basic: Use L2CAP Basic Mode +# ertm: Use L2CAP Enhanced Retransmission Mode +#SessionMode = basic + +# AVDTP L2CAP Transport Channel Mode. +# Possible values: +# basic: Use L2CAP Basic Mode +# streaming: Use L2CAP Streaming Mode +#StreamMode = basic + +[Policy] +# +# The ReconnectUUIDs defines the set of remote services that should try +# to be reconnected to in case of a link loss (link supervision +# timeout). The policy plugin should contain a sane set of values by +# default, but this list can be overridden here. By setting the list to +# empty the reconnection feature gets disabled. +#ReconnectUUIDs=00001112-0000-1000-8000-00805f9b34fb,0000111f-0000-1000-8000-00805f9b34fb,0000110a-0000-1000-8000-00805f9b34fb,0000110b-0000-1000-8000-00805f9b34fb + +# ReconnectAttempts define the number of attempts to reconnect after a link +# lost. Setting the value to 0 disables reconnecting feature. +#ReconnectAttempts=7 + +# ReconnectIntervals define the set of intervals in seconds to use in between +# attempts. +# If the number of attempts defined in ReconnectAttempts is bigger than the +# set of intervals the last interval is repeated until the last attempt. +#ReconnectIntervals=1,2,4,8,16,32,64 + +# AutoEnable defines option to enable all controllers when they are found. +# This includes adapters present on start as well as adapters that are plugged +# in later on. Defaults to 'true'. +AutoEnable=false + +# Audio devices that were disconnected due to suspend will be reconnected on +# resume. ResumeDelay determines the delay between when the controller +# resumes from suspend and a connection attempt is made. A longer delay is +# better for better co-existence with Wi-Fi. +# The value is in seconds. +# Default: 2 +#ResumeDelay = 2 + +[AdvMon] +# Default RSSI Sampling Period. This is used when a client registers an +# advertisement monitor and leaves the RSSISamplingPeriod unset. +# Possible values: +# 0x00 Report all advertisements +# N = 0xXX Report advertisements every N x 100 msec (range: 0x01 to 0xFE) +# 0xFF Report only one advertisement per device during monitoring period +# Default: 0xFF +#RSSISamplingPeriod=0xFF diff --git a/etc/default/grub b/etc/default/grub new file mode 100644 index 000000000..4f3d68034 --- /dev/null +++ b/etc/default/grub @@ -0,0 +1,63 @@ +# GRUB boot loader configuration + +GRUB_DEFAULT=0 +GRUB_TIMEOUT=2 +GRUB_DISTRIBUTOR="Arch" +GRUB_CMDLINE_LINUX_DEFAULT="rd.luks.name== rd.luks.key== loglevel=3 quiet systemd.show_status=auto rd.udev.log_level=3 splash" +GRUB_CMDLINE_LINUX="" + +# Preload both GPT and MBR modules so that they are not missed +GRUB_PRELOAD_MODULES="part_gpt part_msdos" + +# Uncomment to enable booting from LUKS encrypted devices +GRUB_ENABLE_CRYPTODISK=y + +# Set to 'countdown' or 'hidden' to change timeout behavior, +# press ESC key to display menu. +GRUB_TIMEOUT_STYLE=hidden + +# Uncomment to use basic console +GRUB_TERMINAL_INPUT=console + +# Uncomment to disable graphical terminal +#GRUB_TERMINAL_OUTPUT=console + +# The resolution used on graphical terminal +# note that you can use only modes which your graphic card supports via VBE +# you can see them in real GRUB with the command `videoinfo' +GRUB_GFXMODE=auto + +# Uncomment to allow the kernel use the same resolution used by grub +GRUB_GFXPAYLOAD_LINUX=keep + +# Uncomment if you want GRUB to pass to the Linux kernel the old parameter +# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx" +#GRUB_DISABLE_LINUX_UUID=true + +# Uncomment to disable generation of recovery mode menu entries +GRUB_DISABLE_RECOVERY=true + +# Uncomment and set to the desired menu colors. Used by normal and wallpaper +# modes only. Entries specified as foreground/background. +#GRUB_COLOR_NORMAL="light-blue/black" +#GRUB_COLOR_HIGHLIGHT="light-cyan/blue" + +# Uncomment one of them for the gfx desired, a image background or a gfxtheme +#GRUB_BACKGROUND="/path/to/wallpaper" +#GRUB_THEME="/path/to/gfxtheme" + +# Uncomment to get a beep at GRUB start +#GRUB_INIT_TUNE="480 440 1" + +# Uncomment to make GRUB remember the last selection. This requires +# setting 'GRUB_DEFAULT=saved' above. +#GRUB_SAVEDEFAULT=true + +# Uncomment to disable submenus in boot menu +#GRUB_DISABLE_SUBMENU=y + +# Probing for other operating systems is disabled for security reasons. Read +# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this +# functionality install os-prober and uncomment to detect and include other +# operating systems. +GRUB_DISABLE_OS_PROBER=true diff --git a/etc/issue b/etc/issue new file mode 100644 index 000000000..96a033257 --- /dev/null +++ b/etc/issue @@ -0,0 +1,13 @@ +  +       ### ### ## +     ## ## + ┌ #### ### ###   ####   ## ### ## ### ### ### ### ###  ### ### + │  ##  ### ##  ##   ###  ## ## ## ### ## ## ##   ## ## + │ #####  ##   ##   ## ## ## ## ## ## ## ##   ### + │ ## ##  ##   ##   ## ## ## ## ## ## ##  ##   ## ##  + │ ######  ##   ####  ### ### #### #### ### ### ######  ###   ### + └─────────────────────────────────────────── A simple, lightweight distribution. +  + OS: Arch\s Kernel: \r Processor: \m TTY: \l + + diff --git a/etc/mkinitcpio.conf b/etc/mkinitcpio.conf new file mode 100644 index 000000000..689eb1e24 --- /dev/null +++ b/etc/mkinitcpio.conf @@ -0,0 +1,81 @@ +# vim:set ft=sh +# MODULES +# The following modules are loaded before any boot hooks are +# run. Advanced users may wish to specify all system modules +# in this array. For instance: +# MODULES=(usbhid xhci_hcd) +MODULES=(i915) + +# BINARIES +# This setting includes any additional binaries a given user may +# wish into the CPIO image. This is run last, so it may be used to +# override the actual binaries included by a given hook +# BINARIES are dependency parsed, so you may safely ignore libraries +BINARIES=() + +# FILES +# This setting is similar to BINARIES above, however, files are added +# as-is and are not parsed in any way. This is useful for config files. +FILES=(/boot/volume.key) + +# HOOKS +# This is the most important setting in this file. The HOOKS control the +# modules and scripts added to the image, and what happens at boot time. +# Order is important, and it is recommended that you do not change the +# order in which HOOKS are added. Run 'mkinitcpio -H ' for +# help on a given hook. +# 'base' is _required_ unless you know precisely what you are doing. +# 'udev' is _required_ in order to automatically load modules +# 'filesystems' is _required_ unless you specify your fs modules in MODULES +# Examples: +## This setup specifies all modules in the MODULES setting above. +## No RAID, lvm2, or encrypted root is needed. +# HOOKS=(base) +# +## This setup will autodetect all modules for your system and should +## work as a sane default +# HOOKS=(base udev autodetect modconf block filesystems fsck) +# +## This setup will generate a 'full' image which supports most systems. +## No autodetection is done. +# HOOKS=(base udev modconf block filesystems fsck) +# +## This setup assembles a mdadm array with an encrypted root file system. +## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices. +# HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck) +# +## This setup loads an lvm2 volume group. +# HOOKS=(base udev modconf block lvm2 filesystems fsck) +# +## This will create a systemd based initramfs which loads an encrypted root filesystem. +# HOOKS=(base systemd autodetect modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck) +# +## NOTE: If you have /usr on a separate partition, you MUST include the +# usr and fsck hooks. +HOOKS=(base systemd plymouth autodetect microcode modconf kms keyboard keymap sd-vconsole block sd-encrypt lvm2 filesystems fsck) + +# COMPRESSION +# Use this to compress the initramfs image. By default, zstd compression +# is used for Linux ≥ 5.9 and gzip compression is used for Linux < 5.9. +# Use 'cat' to create an uncompressed image. +#COMPRESSION="zstd" +#COMPRESSION="gzip" +#COMPRESSION="bzip2" +#COMPRESSION="lzma" +#COMPRESSION="xz" +#COMPRESSION="lzop" +#COMPRESSION="lz4" + +# COMPRESSION_OPTIONS +# Additional options for the compressor +#COMPRESSION_OPTIONS=() + +# MODULES_DECOMPRESS +# Decompress loadable kernel modules and their firmware during initramfs +# creation. Switch (yes/no). +# Enable to allow further decreasing image size when using high compression +# (e.g. xz -9e or zstd --long --ultra -22) at the expense of increased RAM usage +# at early boot. +# Note that any compressed files will be placed in the uncompressed early CPIO +# to avoid double compression. +#MODULES_DECOMPRESS="no" diff --git a/etc/pacman.conf b/etc/pacman.conf new file mode 100644 index 000000000..c834223c6 --- /dev/null +++ b/etc/pacman.conf @@ -0,0 +1,100 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -L -C - -f -o %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +Architecture = auto + +# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +Color +#NoProgressBar +CheckSpace +#VerbosePkgLists +ParallelDownloads = 5 +ILoveCandy + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[core-testing] +#Include = /etc/pacman.d/mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +#[extra-testing] +#Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +#[multilib] +#Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs +[chaotic-aur] +Include = /etc/pacman.d/chaotic-mirrorlist diff --git a/etc/pam.d/login b/etc/pam.d/login new file mode 100644 index 000000000..3f8c286c2 --- /dev/null +++ b/etc/pam.d/login @@ -0,0 +1,9 @@ +#%PAM-1.0 + +auth requisite pam_nologin.so +auth include system-local-login +auth optional pam_gnome_keyring.so +account include system-local-login +session include system-local-login +password include system-local-login +session optional pam_gnome_keyring.so auto_start diff --git a/home/.bash_profile b/home/.bash_profile new file mode 100644 index 000000000..3c41fe175 --- /dev/null +++ b/home/.bash_profile @@ -0,0 +1,75 @@ +#!/usr/bin/env bash + +# Home folders +export XDG_DATA_HOME="$HOME/.local/share" +export XDG_CACHE_HOME="$HOME/.cache" +export XDG_CONFIG_HOME="$HOME/.config" + +# Sanely export XDG Base dir variables +eval "$(sed 's/^[^#].*/export &/g;t;d' ~/.config/user-dirs.dirs)" + +# Clean home +export W3M_DIR="$XDG_DATA_HOME/w3m" +export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0" +export WGETDIR="$XDG_CONFIG_HOME/wget" +export WGETRC="$WGETDIR/wgetrc" +export INPUTRC="$HOME/.config/X11/inputrc" +export GNUPGHOME="$HOME/.local/share/gnupg" +export LESSHISTFILE="-" +export BASHRC="$HOME/.bashrc" +export GOPATH="$HOME/.go" + +# Default apps +export TERMINAL="foot" +export EDITOR="$HOME/.local/bin/lvim" +export VISUAL="neovide --neovim-bin $EDITOR" +export BROWSER="brave" +export VIEWER="zathura" + +# Set path +if [ -d "$HOME/.bin" ]; then + PATH="$HOME/.bin:$PATH" +fi +if [ -d "$HOME/.local/bin" ]; then + PATH="$HOME/.local/bin:$PATH" +fi +if [ -d "$HOME/.cargo/bin" ]; then + PATH="$HOME/.cargo/bin:$PATH" +fi +if [ -d "$GOPATH/bin" ]; then + PATH="$GOPATH/bin:$PATH" +fi +if [ -d "$HOME/.local/lib/flutter/bin" ]; then + PATH="$HOME/.local/lib/flutter/bin:$PATH" +fi +if [ -d $HOME/.dotnet/tools ]; then + PATH="$HOME/.dotnet/tools:$PATH" +fi +if [ -d "$HOME/Applications" ]; then + PATH="$HOME/Applications:$PATH" +fi +if [ -d "$XDG_DATA_HOME/JetBrains/Toolbox/scripts" ]; then + PATH="$XDG_DATA_HOME/JetBrains/Toolbox/scripts:$PATH" +fi +if [ -d "$HOME/.config/vifm/scripts" ]; then + PATH="$HOME/.config/vifm/scripts:$PATH" +fi + +# export SSH_AUTH_SOCK +if [[ -z "${SSH_CONNECTION}" ]]; then + export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" +fi + +# Create config directories if they don't exist +if [ ! -d "$WGETDIR" ] || [ ! -d "$GNUPGHOME" ]; then + mkdir -p "$WGETDIR" "$GNUPGHOME" +fi + +# Bashrc +source "$BASHRC" + +# Starting wayland session +if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then + sh "$HOME/.config/sway/winitrc" &>/dev/null + logout +fi diff --git a/home/.bashrc b/home/.bashrc new file mode 100644 index 000000000..8dcb7c0cf --- /dev/null +++ b/home/.bashrc @@ -0,0 +1,295 @@ +### EXPORT ### +export TERM="xterm-256color" # getting proper colors +export HISTCONTROL=ignoredups:erasedups # no duplicate entries + +### "bat" as manpager +export MANPAGER="sh -c 'sed -u -e \"s/\\x1B\[[0-9;]*m//g; s/.\\x08//g\" | bat -p -lman'" + +# use bash-completion, if available +[[ $PS1 && -f /usr/share/bash-completion/bash_completion ]] && \ + . /usr/share/bash-completion/bash_completion + +# if not running interactively, don't do anything +[[ $- != *i* ]] && return + +### SET VI MODE ### +# Comment this line out to enable default emacs-like bindings +set -o vi +bind -m vi-command 'Control-l: clear-screen' +bind -m vi-insert 'Control-l: clear-screen' + +### CHANGE TITLE OF TERMINALS ### +case ${TERM} in + xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|alacritty|st|konsole*) + PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"' + ;; + screen*) + PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"' + ;; +esac + +### SHOPT ### +shopt -s autocd # change to named directory +shopt -s cdspell # autocorrects cd misspellings +shopt -s cmdhist # save multi-line commands in history as single line +shopt -s dotglob +shopt -s histappend # do not overwrite history +shopt -s expand_aliases # expand aliases +shopt -s checkwinsize # checks term size when bash regains control + +# ignore upper and lowercase when TAB completion +bind "set completion-ignore-case on" + +# sudo not required for some system commands +for command in cryptsetup mount umount poweroff reboot ; do +alias $command="sudo $command" +done; unset command + +### ARCHIVE EXTRACTION ### +# usage: ex +function ex() { + if [ -f "$1" ] ; then + case $1 in + *.tar.bz2) tar xjf "$1" ;; + *.tar.gz) tar xzf "$1" ;; + *.bz2) bunzip2 "$1" ;; + *.rar) unrar x "$1" ;; + *.gz) gunzip "$1" ;; + *.tar) tar xf "$1" ;; + *.tbz2) tar xjf "$1" ;; + *.tgz) tar xzf "$1" ;; + *.zip) unzip "$1" ;; + *.Z) uncompress "$1";; + *.7z) 7zz x "$1" ;; + *.deb) ar x "$1" ;; + *.tar.xz) tar xf "$1" ;; + *.tar.zst) unzstd "$1" ;; + *) echo "'$1' cannot be extracted via ex()" ;; + esac + else + echo "'$1' is not a valid file" + fi +} + +### ALIASES ### +# navigation +function up () { + local d="" + local limit="$1" + + # Default to limit of 1 + if [ -z "$limit" ] || [ "$limit" -le 0 ]; then + limit=1 + fi + + for ((i=1;i<=limit;i++)); do + d="../$d" + done + + # perform cd. Show error if cd fails + if ! cd "$d"; then + echo "Couldn't go up $limit dirs."; + fi +} + +# unlock ssh keys +function unlock() { + ssh-add "$HOME/.ssh/$1" +} + +# cd +alias \ + ..="cd .." \ + .2="cd ../.." \ + .3="cd ../../.." \ + .4="cd ../../../.." \ + .5="cd ../../../../.." + +# bat as cat +[ -x "$(command -v bat)" ] && alias cat="bat" + +# fastfetch as neofetch +[ -x "$(command -v fastfetch)" ] && alias neofetch="fastfetch" + +# use lunarvim or neovim for vim if present. +if [ -x "$(command -v $HOME/.local/bin/lvim)" ]; then + alias vim="$HOME/.local/bin/lvim" +elif [ -x "$(command -v nvim)" ]; then + alias vim="nvim" +fi + +# Changing "ls" to "eza" +[ -x "$(command -v eza)" ] && alias \ + ls="eza --icons -al --color=always --group-directories-first" \ + la="eza --icons -a --color=always --group-directories-first" \ + ll="eza --icons -l --color=always --group-directories-first" \ + lt="eza --icons -aT --color=always --group-directories-first" \ + l.='eza --icons -a | grep -E "^\."' + +# function to detect os and assign aliases to package managers +alias \ + pkg-update="paru -Syyu" \ + pkg-install="paru -S" \ + pkg-remove="paru -Rcns" \ + pkg-remove-sec="paru -R" \ + pkg-autoremove="paru -Scc && paru -Rns (pacman -Qtdq)" \ + pkg-search="paru -Ss" + +# colorize grep output (good for log files) +alias \ + grep="grep --color=auto" \ + egrep="egrep --color=auto" \ + fgrep="fgrep --color=auto" + +# git +alias \ + git-adu="git add -u" \ + git-adl="git add ." \ + git-brn="git branch" \ + git-chk="git checkout" \ + git-cln="git clone" \ + git-cmt="git commit -m" \ + git-fth="git fetch" \ + git-pll="git pull origin" \ + git-psh="git push origin" \ + git-sts="git status" \ + git-tag="git tag" \ + git-ntg="git tag -a" + +# adding flags +alias \ + df="df -h" \ + free="free -m" + +# multimedia scripts +alias \ + fli="flix-cli" \ + ani="ani-cli" \ + aniq="ani-cli -q" + +# audio +alias \ + mx="pulsemixer" \ + mk="cmus" \ + ms="cmus" \ + music="cmus" + +# power management +alias \ + po="systemctl poweroff" \ + sp="systemctl suspend" \ + rb="systemctl reboot" + +# file management +alias \ + fm="yazi" \ + flm="yazi" \ + rm="rm -vI" \ + mv="mv -iv" \ + cp="cp -iv" \ + mkd="mkdir -pv" + +# ps +alias \ + psa="ps auxf" \ + psgrep="ps aux | grep -v grep | grep -i -e VSZ -e" \ + psmem="ps auxf | sort -nr -k 4" \ + pscpu="ps auxf | sort -nr -k 3" + +# youtube +alias \ + yta-aac="yt-dlp --extract-audio --audio-format aac" \ + yta-best="yt-dlp --extract-audio --audio-format best" \ + yta-flac="yt-dlp --extract-audio --audio-format flac" \ + yta-m4a="yt-dlp --extract-audio --audio-format m4a" \ + yta-mp3="yt-dlp --extract-audio --audio-format mp3" \ + yta-opus="yt-dlp --extract-audio --audio-format opus" \ + yta-vorbis="yt-dlp --extract-audio --audio-format vorbis" \ + yta-wav="yt-dlp --extract-audio --audio-format wav" \ + ytv-best="yt-dlp -f bestvideo+bestaudio" \ + yt="ytfzf -ftsl" \ + ytm="ytfzf -mtsl" + +# network and bluetooth +alias \ + netstats="nmcli dev" \ + wfi="nmtui-connect" \ + wfi-scan="nmcli dev wifi rescan && nmcli dev wifi list" \ + wfi-edit="nmtui-edit" \ + wfi-on="nmcli radio wifi on" \ + wfi-off="nmcli radio wifi off" \ + blt="bluetoothctl" + +# Automatically add completion for all aliases to commands having completion functions +# this currently slows startup a bit, but it isn't terrible +function alias_completion { + local namespace="alias_completion" + + # parse function based completion definitions, where capture group 2 => function and 3 => trigger + local compl_regex='complete( +[^ ]+)* -F ([^ ]+) ("[^"]+"|[^ ]+)' + # parse alias definitions, where capture group 1 => trigger, 2 => command, 3 => command arguments + local alias_regex="alias ([^=]+)='(\"[^\"]+\"|[^ ]+)(( +[^ ]+)*)'" + + # create array of function completion triggers, keeping multi-word triggers together + eval "local completions=($(complete -p | sed -Ene "/$compl_regex/s//'\3'/p"))" + (( ${#completions[@]} == 0 )) && return 0 + + # create temporary file for wrapper functions and completions + command rm -f "/tmp/${namespace}-*.tmp" &> /dev/null # preliminary cleanup + local tmp_file; tmp_file="$(mktemp "/tmp/${namespace}-${RANDOM}XXX.tmp")" || return 1 + + local completion_loader; completion_loader="$(complete -p -D 2>/dev/null | sed -Ene 's/.* -F ([^ ]*).*/\1/p')" + + # read in " '' ''" lines from defined aliases + local line; while read line; do + eval "local alias_tokens; alias_tokens=($line)" 2>/dev/null || continue # some alias arg patterns cause an eval parse error + local alias_name="${alias_tokens[0]}" alias_cmd="${alias_tokens[1]}" alias_args="${alias_tokens[2]# }" + + # skip aliases to pipes, boolean control structures and other command lists + # (leveraging that eval errs out if $alias_args contains unquoted shell metacharacters) + eval "local alias_arg_words; alias_arg_words=($alias_args)" 2>/dev/null || continue + # avoid expanding wildcards + read -a alias_arg_words <<< "$alias_args" + + # skip alias if there is no completion function triggered by the aliased command + if [[ ! " ${completions[*]} " =~ " $alias_cmd " ]]; then + if [[ -n "$completion_loader" ]]; then + # force loading of completions for the aliased command + eval "$completion_loader $alias_cmd" + # 124 means completion loader was successful + [[ $? -eq 124 ]] || continue + completions+=($alias_cmd) + else + continue + fi + fi + local new_completion="$(complete -p "$alias_cmd")" + + # create a wrapper inserting the alias arguments if any + if [[ -n $alias_args ]]; then + local compl_func="${new_completion/#* -F /}"; compl_func="${compl_func%% *}" + # avoid recursive call loops by ignoring our own functions + if [[ "${compl_func#_$namespace::}" == $compl_func ]]; then + local compl_wrapper="_${namespace}::${alias_name}" + echo "function $compl_wrapper { + (( COMP_CWORD += ${#alias_arg_words[@]} )) + COMP_WORDS=($alias_cmd $alias_args \${COMP_WORDS[@]:1}) + (( COMP_POINT -= \${#COMP_LINE} )) + COMP_LINE=\${COMP_LINE/$alias_name/$alias_cmd $alias_args} + (( COMP_POINT += \${#COMP_LINE} )) + $compl_func + }" >> "$tmp_file" + new_completion="${new_completion/ -F $compl_func / -F $compl_wrapper }" + fi + fi + + # replace completion trigger by alias + new_completion="${new_completion% *} $alias_name" + echo "$new_completion" >> "$tmp_file" + done < <(alias -p | sed -Ene "s/$alias_regex/\1 '\2' '\3'/p") + source "$tmp_file" && command rm -f "$tmp_file" &> /dev/null +}; alias_completion + +# starship prompt +eval "$(starship init bash)" +eval "$(zoxide init bash)" diff --git a/local/share/icons/default/index.theme b/local/share/icons/default/index.theme new file mode 100644 index 000000000..639d6cc3f --- /dev/null +++ b/local/share/icons/default/index.theme @@ -0,0 +1,4 @@ +[Icon Theme] +Name=Default +Comment=Default Cursor Theme +Inherits=Simp1e-Gruvbox-Dark diff --git a/system/etc/pam.d/sudo b/system/etc/pam.d/sudo deleted file mode 100644 index fee24b319..000000000 --- a/system/etc/pam.d/sudo +++ /dev/null @@ -1,5 +0,0 @@ -#%PAM-1.0 -auth sufficient pam_fprintd.so -auth include system-auth -account include system-auth -session include system-auth diff --git a/system/etc/pam.d/system-local-login b/system/etc/pam.d/system-local-login deleted file mode 100644 index 5ccafc20f..000000000 --- a/system/etc/pam.d/system-local-login +++ /dev/null @@ -1,7 +0,0 @@ -#%PAM-1.0 - -auth sufficient pam_fprintd.so -auth include system-login -account include system-login -password include system-login -session include system-login diff --git a/system/etc/sv/runsvdir-drk/run b/system/etc/sv/runsvdir-drk/run deleted file mode 100755 index ffd45de53..000000000 --- a/system/etc/sv/runsvdir-drk/run +++ /dev/null @@ -1,14 +0,0 @@ -#!/bin/sh - -export USER="drk" -export HOME="/home/$USER" -export XDG_RUNTIME_DIR="/run/user/$(id -u $USER)" -mkdir $XDG_RUNTIME_DIR -chown $USER:$USER $XDG_RUNTIME_DIR - -groups="$(id -Gn "$USER" | tr ' ' ':')" -svdir="$HOME/.config/services" -mkdir -p "$svdir" -chown $USER:$USER "$svdir" - -exec chpst -u "$USER:$groups" runsvdir "$svdir" diff --git a/user/.bash_profile b/user/.bash_profile deleted file mode 100644 index 3d6d468f7..000000000 --- a/user/.bash_profile +++ /dev/null @@ -1,50 +0,0 @@ -#!/bin/bash -## ____ __ -## / __ \_________ _/ /_____ -## / / / / ___/ __ `/ //_/ _ \ -## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake) -## /_____/_/ \__,_/_/|_|\___/ My custom bash_profile config -## -# - -# Home folders -export XDG_DATA_HOME="$HOME/.local/share" -export XDG_CACHE_HOME="$HOME/.cache" -export XDG_CONFIG_HOME="$HOME/.config" - -export X11CFGDIR="$XDG_CONFIG_HOME/X11" -export XINITRC="$X11CFGDIR/xinitrc" - -# Sanely export XDG Base dir variables -eval "$(sed 's/^[^#].*/export &/g;t;d' ~/.config/user-dirs.dirs)" - -# Clean home -export W3M_DIR="$XDG_DATA_HOME/w3m" -export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0" -export WGETDIR="$XDG_CONFIG_HOME/wget" -export WGETRC="$WGETDIR/wgetrc" -export INPUTRC="$HOME/.config/X11/inputrc" -export GNUPGHOME="$HOME/.local/share/gnupg" -export LESSHISTFILE="-" -export BASHRC="$HOME/.bashrc" - -# Default apps -export TERM="wezterm" -export EDITOR="$HOME/.local/bin/lvim" -export VISUAL="$HOME/.local/bin/neovide" -export BROWSER="flatpak run org.mozilla.firefox" -export VIEWER="zathura" - -# Bashrc -source "$BASHRC" - -# Create config directories if they don't exist -if [ ! -d "$WGETDIR" ] || [ ! -d "$GNUPGHOME" ]; then - mkdir -p "$WGETDIR" "$GNUPGHOME" -fi - -# starting xsession -if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then - sh "$HOME/.config/sway/winitrc" &>/dev/null - logout -fi diff --git a/user/.bashrc b/user/.bashrc deleted file mode 100644 index 2d32d4a9b..000000000 --- a/user/.bashrc +++ /dev/null @@ -1,231 +0,0 @@ -## ____ __ -## / __ \_________ _/ /_____ -## / / / / ___/ __ `/ //_/ _ \ -## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake) -## /_____/_/ \__,_/_/|_|\___/ My custom bash config -## - -### EXPORT ### -export TERM="xterm-256color" # getting proper colors -export HISTCONTROL=ignoredups:erasedups # no duplicate entries - -### "bat" as manpager -export PAGER="bat -p" - -# use bash-completion, if available -[[ $PS1 && -f /usr/share/bash-completion/bash_completion ]] && \ - . /usr/share/bash-completion/bash_completion - -# if not running interactively, don't do anything -[[ $- != *i* ]] && return - -### SET VI MODE ### -# Comment this line out to enable default emacs-like bindings -set -o vi -bind -m vi-command 'Control-l: clear-screen' -bind -m vi-insert 'Control-l: clear-screen' - -### PATH ### -if [ -d "$HOME/.bin" ] ; - then PATH="$HOME/.bin:$PATH" -fi -if [ -d "$HOME/.local/bin" ] ; - then PATH="$HOME/.local/bin:$PATH" -fi -if [ -d "$HOME/Applications" ] ; - then PATH="$HOME/Applications:$PATH" -fi - -### CHANGE TITLE OF TERMINALS ### -case ${TERM} in - xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|alacritty|st|konsole*) - PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"' - ;; - screen*) - PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"' - ;; -esac - -### SHOPT ### -shopt -s autocd # change to named directory -shopt -s cdspell # autocorrects cd misspellings -shopt -s cmdhist # save multi-line commands in history as single line -shopt -s dotglob -shopt -s histappend # do not overwrite history -shopt -s expand_aliases # expand aliases -shopt -s checkwinsize # checks term size when bash regains control - -# ignore upper and lowercase when TAB completion -bind "set completion-ignore-case on" - -# sudo not required for some system commands -for command in cryptsetup mount umount poweroff reboot ; do -alias $command="sudo $command" -done; unset command - -### ARCHIVE EXTRACTION ### -# usage: ex -ex () -{ - if [ -f "$1" ] ; then - case $1 in - *.tar.bz2) tar xjf "$1" ;; - *.tar.gz) tar xzf "$1" ;; - *.bz2) bunzip2 "$1" ;; - *.rar) unrar x "$1" ;; - *.gz) gunzip "$1" ;; - *.tar) tar xf "$1" ;; - *.tbz2) tar xjf "$1" ;; - *.tgz) tar xzf "$1" ;; - *.zip) unzip "$1" ;; - *.Z) uncompress "$1";; - *.7z) 7zz x "$1" ;; - *.deb) ar x "$1" ;; - *.tar.xz) tar xf "$1" ;; - *.tar.zst) unzstd "$1" ;; - *) echo "'$1' cannot be extracted via ex()" ;; - esac - else - echo "'$1' is not a valid file" - fi -} - -### ALIASES ### -# navigation -up () { - local d="" - local limit="$1" - - # Default to limit of 1 - if [ -z "$limit" ] || [ "$limit" -le 0 ]; then - limit=1 - fi - - for ((i=1;i<=limit;i++)); do - d="../$d" - done - - # perform cd. Show error if cd fails - if ! cd "$d"; then - echo "Couldn't go up $limit dirs."; - fi -} - -# cd -alias \ - ..="cd .." \ - .2="cd ../.." \ - .3="cd ../../.." \ - .4="cd ../../../.." \ - .5="cd ../../../../.." - -# bat as cat -[ -x "$(command -v bat)" ] && alias cat="bat" - -# use lunarvim for vim if present. -[ -x "$(command -v $HOME/.local/bin/lvim)" ] && alias vim="$HOME/.local/bin/lvim" - -# Changing "ls" to "eza" -alias \ - ls="eza --icons -al --color=always --group-directories-first" \ - la="eza --icons -a --color=always --group-directories-first" \ - ll="eza --icons -l --color=always --group-directories-first" \ - lt="eza --icons -aT --color=always --group-directories-first" \ - l.='eza --icons -a | grep -E "^\."' - -# function to detect os and assign aliases to package managers -alias \ - xb-up="sudo xbps-install -Su && xcheckrestart" \ - xb-get="sudo xbps-install -S" \ - xb-rmv="sudo xbps-remove -R" \ - xb-rmv-sec="sudo xbps-remove" \ - xb-qry="sudo xbps-query -Rs" \ - xb-cln="sudo xbps-remove -Oo" - -# colorize grep output (good for log files) -alias \ - grep="grep --color=auto" \ - egrep="egrep --color=auto" \ - fgrep="fgrep --color=auto" - -# git -alias \ - git-adu="git add -u" \ - git-adl="git add ." \ - git-brn="git branch" \ - git-chk="git checkout" \ - git-cln="git clone" \ - git-cmt="git commit -m" \ - git-fth="git fetch" \ - git-pll="git pull origin" \ - git-psh="git push origin" \ - git-sts="git status" \ - git-tag="git tag" \ - git-ntg="git tag -a" - -# adding flags -alias \ - df="df -h" \ - free="free -m" - -# multimedia scripts -alias \ - fli="flix-cli" \ - ani="ani-cli" \ - aniq="ani-cli -q" - -# audio -alias \ - mx="pulsemixer" \ - mk="cmus" \ - ms="cmus" \ - music="cmus" - -# power management -alias \ - po="loginctl poweroff" \ - sp="loginctl suspend" \ - rb="loginctl reboot" - -# file management -alias \ - fm="vifm" \ - flm="vifm" \ - rm="rm -vI" \ - mv="mv -iv" \ - cp="cp -iv" \ - mkd="mkdir -pv" - -# ps -alias \ - psa="ps auxf" \ - psgrep="ps aux | grep -v grep | grep -i -e VSZ -e" \ - psmem="ps auxf | sort -nr -k 4" \ - pscpu="ps auxf | sort -nr -k 3" - -# youtube -alias \ - yta-aac="yt-dlp --extract-audio --audio-format aac" \ - yta-best="yt-dlp --extract-audio --audio-format best" \ - yta-flac="yt-dlp --extract-audio --audio-format flac" \ - yta-m4a="yt-dlp --extract-audio --audio-format m4a" \ - yta-mp3="yt-dlp --extract-audio --audio-format mp3" \ - yta-opus="yt-dlp --extract-audio --audio-format opus" \ - yta-vorbis="yt-dlp --extract-audio --audio-format vorbis" \ - yta-wav="yt-dlp --extract-audio --audio-format wav" \ - ytv-best="yt-dlp -f bestvideo+bestaudio" \ - yt="ytfzf -ftsl" \ - ytm="ytfzf -mtsl" - -# network and bluetooth -alias \ - netstats="nmcli dev" \ - wfi="nmtui-connect" \ - wfi-scan="nmcli dev wifi rescan && nmcli dev wifi list" \ - wfi-edit="nmtui-edit" \ - wfi-on="nmcli radio wifi on" \ - wfi-off="nmcli radio wifi off" \ - blt="bluetoothctl" - -# starship prompt -eval "$(starship init bash)" diff --git a/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.svg b/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.svg deleted file mode 100644 index 3c29a5f27..000000000 --- a/user/.config/Kvantum/Gruvbox-Dark-Brown/Gruvbox-Dark-Brown.svg +++ /dev/null @@ -1,5597 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/user/.config/Kvantum/kvantum.kvconfig b/user/.config/Kvantum/kvantum.kvconfig deleted file mode 100644 index 62defb799..000000000 --- a/user/.config/Kvantum/kvantum.kvconfig +++ /dev/null @@ -1,2 +0,0 @@ -[General] -theme=Gruvbox-Dark-Brown diff --git a/user/.config/gtk-2.0/gtkfilechooser.ini b/user/.config/gtk-2.0/gtkfilechooser.ini deleted file mode 100644 index 3de31bfd5..000000000 --- a/user/.config/gtk-2.0/gtkfilechooser.ini +++ /dev/null @@ -1,11 +0,0 @@ -[Filechooser Settings] -LocationMode=path-bar -ShowHidden=false -ShowSizeColumn=true -GeometryX=0 -GeometryY=0 -GeometryWidth=780 -GeometryHeight=585 -SortColumn=name -SortOrder=ascending -StartupMode=recent diff --git a/user/.config/gtk-3.0/bookmarks b/user/.config/gtk-3.0/bookmarks deleted file mode 100644 index e69de29bb..000000000 diff --git a/user/.config/lvim/config.lua b/user/.config/lvim/config.lua deleted file mode 100644 index 64523b530..000000000 --- a/user/.config/lvim/config.lua +++ /dev/null @@ -1,129 +0,0 @@ --- neovide options -vim.o.guifont = "mononoki Nerd Font:h14" -vim.g.neovide_hide_mouse_when_typing = true -vim.g.neovide_input_macos_alt_is_meta = true -vim.g.neovide_hide_mouse_when_typing = false -vim.g.neovide_refresh_rate = 60 -vim.g.neovide_refresh_rate_idle = 5 -vim.g.neovide_no_idle = true -vim.g.neovide_confirm_quit = true -vim.g.neovide_input_use_logo = true - -vim.g.neovide_cursor_antialiasing = true -vim.g.neovide_cursor_animate_in_insert_mode = true -vim.g.neovide_cursor_vfx_mode = "pixiedust" -vim.g.neovide_cursor_vfx_particle_speed = 20.0 - -vim.g.neovide_padding_top = 0 -vim.g.neovide_padding_bottom = 0 -vim.g.neovide_padding_right = 0 -vim.g.neovide_padding_left = 0 - --- Helper function for transparency formatting -local alpha = function() - return string.format("%x", math.floor(255 * (vim.g.transparency or 0.98))) -end -vim.g.neovide_transparency = 0.98 -vim.g.transparency = 0.98 -vim.g.neovide_background_color = "#1d2021" .. alpha() - --- nvim options -vim.opt.shiftwidth = 4 -vim.opt.tabstop = 4 -vim.opt.relativenumber = true -vim.cmd('autocmd FileType markdown setlocal nospell') -vim.opt.wrap = true -- wrap lines -vim.opt.spell = false -vim.o.shell = '/usr/bin/bash' -vim.o.autochdir = true -vim.cmd('autocmd BufEnter * lcd %:p:h') - --- general -lvim.use_icons = true -lvim.log.level = "info" -lvim.format_on_save = { - enabled = true, - pattern = "*.lua", - timeout = 1000, -} - --- change theme settings -lvim.colorscheme = "gruvbox" -lvim.transparent_window = false -lvim.builtin.alpha.active = true -lvim.builtin.alpha.mode = "dashboard" -lvim.builtin.terminal.active = true -lvim.builtin.nvimtree.setup.view.side = "left" -lvim.builtin.nvimtree.setup.renderer.icons.show.git = false - --- automatically install missing parsers when entering buffer -lvim.builtin.treesitter.auto_install = true - --- additional Plugins -lvim.plugins = { - { "lunarvim/colorschemes" }, - { "ellisonleao/gruvbox.nvim" }, - { "puremourning/vimspector" }, - { "SirVer/ultisnips" }, - { "CRAG666/code_runner.nvim" }, -} - --- configuring colorscheme -require("gruvbox").setup({ - undercurl = true, - underline = true, - bold = false, - italic = { - strings = true, - comments = true, - operators = false, - folds = true, - }, - strikethrough = true, - invert_selection = false, - invert_signs = false, - invert_tabline = false, - invert_intend_guides = false, - inverse = true, -- invert background for search, diffs, statuslines and errors - contrast = "hard", -- can be "hard", "soft" or empty string - palette_overrides = {}, - overrides = {}, - dim_inactive = false, - transparent_mode = false, -}) - --- vimspector options -vim.g.vimspector_enable_mappings = 'HUMAN' -vim.g.vimspector_enable_mappings_for_mode = { - [''] = { 'n', 'v' }, -} - --- code runner options -require('code_runner').setup({ - filetype = { - java = { - "cd $dir &&", - "javac $fileName &&", - "java $fileNameWithoutExt" - }, - python = "python3 -u", - typescript = "deno run", - rust = { - "cd $dir &&", - "rustc $fileName &&", - "$dir/$fileNameWithoutExt" - }, - cs = { - "cd '$dir' &&", - "dotnet run" - } - }, -}) - -lvim.keys.normal_mode["r"] = ":RunCode" -lvim.keys.normal_mode["rf"] = ":RunFile" -lvim.keys.normal_mode["rft"] = ":RunFile tab" -lvim.keys.normal_mode["rp"] = ":RunProject" -lvim.keys.normal_mode["rc"] = ":RunClose" -lvim.keys.normal_mode["crf"] = ":CRFiletype" -lvim.keys.normal_mode["crp"] = ":CRProjects" diff --git a/user/.config/neofetch/config.conf b/user/.config/neofetch/config.conf deleted file mode 100644 index 6365d291f..000000000 --- a/user/.config/neofetch/config.conf +++ /dev/null @@ -1,118 +0,0 @@ -print_info() { - prin " " - prin "┌─────────\n Hardware Information \n─────────┐" - info " ​ ​ 󰟀 " model - info " ​ ​ 󰍛 " cpu - info " ​ ​ 󰘚 " gpu - info " ​ ​ 󰍛 " memory - info " ​ ​ 󱑆 " uptime - prin "├─────────\n Software Information \n─────────┤" - info " ​ ​ 󰌽 " distro - info " ​ ​  " kernel - info " ​ ​ 󰏖 " packages - info " ​ ​ 󰧨 " wm - info " ​ ​ 󰆍 " shell - info " ​ ​ 󰉼 " theme - info " ​ ​  " icons - info " ​ ​ 󰝚 " song - # [[ "$player" ]] && prin "Music Player" "$player" -# info " ​ ​  " local_ip -# info " ​ ​  " public_ip -# info " ​ ​  " locale # This only works on glibc systems. - prin "└───────────────────────────────────────┘" - info cols -prin "\n \n \n \n \n ${cl3} \n \n ${cl5} \n \n ${cl2} \n \n ${cl6} \n \n ${cl4} \n \n ${cl1} \n \n ${cl7} \n \n ${cl0}" -} - -kernel_shorthand="on" -distro_shorthand="off" -os_arch="off" -uptime_shorthand="on" -memory_percent="on" -package_managers="on" -shell_path="off" -shell_version="on" -speed_type="bios_limit" -speed_shorthand="on" -cpu_brand="off" -cpu_speed="off" -cpu_cores="logical" -cpu_temp="off" -gpu_brand="off" -gpu_type="all" -refresh_rate="on" -gtk_shorthand="on" -gtk2="on" -gtk3="on" -public_ip_host="http://ident.me" -public_ip_timeout=2 -disk_show=('/') -music_player="cmus" -song_format="%artist% - %title%" -song_shorthand="off" -colors=(distro) -bold="on" -underline_enabled="on" -underline_char="-" -separator="  " -color_blocks="off" -block_range=(0 15) # Colorblocks - -# Colors for custom colorblocks -magenta="\033[1;35m" -green="\033[1;32m" -white="\033[1;37m" -blue="\033[1;34m" -red="\033[1;31m" -black="\033[1;40;30m" -yellow="\033[1;33m" -cyan="\033[1;36m" -reset="\033[0m" -bgyellow="\033[1;43;33m" -bgwhite="\033[1;47;37m" -cl0="${reset}" -cl1="${magenta}" -cl2="${green}" -cl3="${white}" -cl4="${blue}" -cl5="${red}" -cl6="${yellow}" -cl7="${cyan}" -cl8="${black}" -cl9="${bgyellow}" -cl10="${bgwhite}" - -block_width=4 -block_height=1 - -bar_char_elapsed="-" -bar_char_total="=" -bar_border="on" -bar_length=15 -bar_color_elapsed="distro" -bar_color_total="distro" - -cpu_display="on" -memory_display="on" -battery_display="on" -disk_display="on" - -image_backend="chafa" -image_source="$HOME/.config/neofetch/img1.png" -image_size="320px" -image_loop="off" - -aascii_distro="auto" -ascii_colors=(distro) -ascii_bold="on" - -thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch" -crop_mode="normal" -crop_offset="center" - -gap=2 - -yoffset=0 -xoffset=0 - -stdout="off" diff --git a/user/.config/neofetch/img1.png b/user/.config/neofetch/img1.png deleted file mode 100644 index 876a1bb3f..000000000 Binary files a/user/.config/neofetch/img1.png and /dev/null differ diff --git a/user/.config/newsboat/urls b/user/.config/newsboat/urls deleted file mode 100644 index d6689f728..000000000 --- a/user/.config/newsboat/urls +++ /dev/null @@ -1,154 +0,0 @@ -http://static.fsf.org/fsforg/rss/news.xml "~FSF News" -http://static.fsf.org/fsforg/rss/blogs.xml "~FSF Blogs" -https://fsfe.org/news/news.en.rss "~FSFE News" -https://dot.kde.org/rss.xml "~KDE Dot News" -https://planet.kde.org/global/atom.xml "~Planet KDE" -https://pointieststick.com/feed/ "~This Week on KDE" -https://www.kdeblog.com/rss "~KDE Blog" -https://thisweek.gnome.org/index.xml "~This Week on GNOME" -https://www.omgubuntu.co.uk/feed "~OMG!Ubuntu" -https://www.omglinux.com/feed "~OMG!Linux" -https://blog.thunderbird.net/feed/ "~The Thunderbird Blog" -https://thelinuxexp.com/feed.xml "~The Linux Experiment" -https://techhut.tv/feed/ "~TechHut Media" -https://itsfoss.com/rss/ "~Its FOSS!" -https://thelinuxcast.org/feed/feed.xml "~The Linux Cast" -https://9to5linux.com/feed/atom "~9to5Linux" -https://blog.elementary.io/feed.xml "~elementary OS Blog" -https://blog.zorin.com/index.xml "~Zorin OS Blog" -http://blog.linuxmint.com/?feed=rss2 "~Linux Mint Blog" -https://www.gamingonlinux.com/article_rss.php "~Gaming on linux" -https://hackaday.com/blog/feed/ "~Hackaday" -https://linux.softpedia.com/backend.xml "~Softpedia Linux" -https://www.phoronix.com/rss.php "~Phoronix" -https://www.computerworld.com/index.rss "~Computerworld" -https://betanews.com/feed "~Betanews Linux" -http://lxer.com/module/newswire/headlines.rss "~Lxer" -https://theevilskeleton.gitlab.io/feed.xml "~TheEvilSkeleton" -https://tutanota.com/blog/feed.xml "~Tutanota Blogs" -https://techcrunch.com/feed/ "~TechCrunch" -http://www.techradar.com/rss "~TechRadar" -https://www.zdnet.com/news/rss.xml "~ZDNET - News" -https://c3po.website/rss/ "~Blog de C3PO" -https://thecheis.com/feed/ "~THE_CHEI$" -http://yro.slashdot.org/yro.rss "~Slashdot: Your Rights Online" -https://freedom-to-tinker.com/feed/rss/ "~Freedom to Tinker" -https://act.eff.org/action.atom "~EFF - Action Center" -https://www.eff.org/rss/updates.xml "~EFF - Updates" -https://victorhckinthefreeworld.com/feed/ "~Victorhck in the free world" -https://inv.vern.cc/feed/channel/UC-ErgHYY0_Yjhjz2MN1E1lg "~YT - RETRO Hardware" -https://inv.vern.cc/feed/channel/UC05XpvbHZUQOfA6xk4dlmcw "~YT - DJ Ware" -https://inv.vern.cc/feed/channel/UC0W_BIuwk8D0Bv4THbVZZOQ "~YT - Surveillance Report" -https://inv.vern.cc/feed/channel/UC1D3yD4wlPMico0dss264XA "~YT - NileBlue" -https://inv.vern.cc/feed/channel/UC1_uAIS3r8Vu6JjXWvastJg "~YT - Mathologer" -https://inv.vern.cc/feed/channel/UC1s1OsWNYDFgbROPV-q5arg "~YT - Michael Horn" -https://inv.vern.cc/feed/channel/UC1yGcBvdPGxRIMT1yo_bKIQ "~YT - Jake@Linux" -https://inv.vern.cc/feed/channel/UC2WHjPDvbE6O328n17ZGcfg "~YT - ForrestKnight" -https://inv.vern.cc/feed/channel/UC2eYFnH61tmytImy1mTYvhA "~YT - Luke Smith" -https://inv.vern.cc/feed/channel/UC3jSNmKWYA04R47fDcc1ImA "~YT - InfinitelyGalactic" -https://inv.vern.cc/feed/channel/UC3yaWWA9FF9OBog5U9ml68A "~YT - SavvyNik" -https://inv.vern.cc/feed/channel/UC5I2hjZYiW9gZPVkvzM8_Cw "~YT - Techmoan" -https://inv.vern.cc/feed/channel/UC5KDiSAFxrDWhmysBcNqtMA "~YT - Eric Murphy" -https://inv.vern.cc/feed/channel/UC5UAwBUum7CPN5buc-_N1Fw "~YT - The Linux Experiment" -https://inv.vern.cc/feed/channel/UC5nlKFUNoskvV5XdW6PbgYw "~YT - A Well-Rested Dog" -https://inv.vern.cc/feed/channel/UC6WOxrSKLW8VagrNkfvi6EQ "~YT - THE SQUIDD" -https://inv.vern.cc/feed/channel/UC6biysICWOJ-C3P4Tyeggzg "~YT - Low Level Learning" -https://inv.vern.cc/feed/channel/UC7YOGHUfC1Tb6E4pudI9STA "~YT - Mental Outlaw" -https://inv.vern.cc/feed/channel/UC7qPftDWPw9XuExpSgfkmJQ "~YT - Nostalgia Nerd" -https://inv.vern.cc/feed/channel/UC8ENHE5xdFSwx71u3fDH5Xw "~YT - ThePrimeagen" -https://inv.vern.cc/feed/channel/UC8uT9cgJorJPWu7ITLGo9Ww "~YT - The 8-Bit Guy" -https://inv.vern.cc/feed/channel/UC9-y-6csu5WGm29I7JiwpnA "~YT - Computerphile" -https://inv.vern.cc/feed/channel/UC910yxBmXzGDH_2cx0XE0Xw "~YT - Plano de Juego" -https://inv.vern.cc/feed/channel/UC9RM-iSvTu1uPJb8X5yp3EQ "~YT - Wendover Productions" -https://inv.vern.cc/feed/channel/UC9bORzxOWiewqMXxkmhAwAg "~YT - Gingy" -https://inv.vern.cc/feed/channel/UC9lE09jxmMgMoG13WrNHPmA "~YT - World of Tanks Blitz" -https://inv.vern.cc/feed/channel/UCAYKj_peyESIMDp5LtHlH2A "~YT - unfa" -https://inv.vern.cc/feed/channel/UCAiEWppTvoNSHU939xhMb2g "~YT - hoser" -https://inv.vern.cc/feed/channel/UCAiiOTio8Yu69c3XnR7nQBQ "~YT - System Crafters" -https://inv.vern.cc/feed/channel/UCBq5p-xOla8xhnrbhu8AIAg "~YT - Tech Over Tea" -https://inv.vern.cc/feed/channel/UCCIHOP7e271SIumQgyl6XBQ "~YT - OldTechBloke" -https://inv.vern.cc/feed/channel/UCE0H52NoucHL2JkhPdZ1ykA "~YT - Jwlar" -https://inv.vern.cc/feed/channel/UCEFymXY4eFCo_AchSpxwyrg "~YT - MetalJesusRocks" -https://inv.vern.cc/feed/channel/UCEp20NgOZHmgWdbQdHSxgjw "~YT - This Does Not Compute" -https://inv.vern.cc/feed/channel/UCFhXFikryT4aFcLkLw2LBLA "~YT - NileRed" -https://inv.vern.cc/feed/channel/UCGE-JpLbibXJg3W_N2hbo8g "~YT - Sethorven" -https://inv.vern.cc/feed/channel/UCH5DsMZAgdx5Fkk9wwMNwCA "~YT - The New Oil" -https://inv.vern.cc/feed/channel/UCHnyfMqiRRG1u-2MsSQLbXA "~YT - Veritasium" -https://inv.vern.cc/feed/channel/UCIFzjAer2W9gTWVECZgtDzg "~YT - GaryH Tech" -https://inv.vern.cc/feed/channel/UCJ0-OtVpF0wOKEqT2Z1HEtA "~YT - ElectroBOOM" -https://inv.vern.cc/feed/channel/UCJYJgj7rzsn0vdR7fkgjuIA "~YT - styropyro" -https://inv.vern.cc/feed/channel/UCLEoyoOKZK0idGqSc6Pi23w "~YT - RMC - The Cave" -https://inv.vern.cc/feed/channel/UCLx053rWZxCiYWsBETgdKrQ "~YT - LGR" -https://inv.vern.cc/feed/channel/UCMbQbVilo-nezMvwf1BZfAA "~YT - CienciaDeSofa" -https://inv.vern.cc/feed/channel/UCMiyV_Ib77XLpzHPQH_q0qQ "~YT - Veronica Explains" -https://inv.vern.cc/feed/channel/UCNvl_86ygZXRuXjxbONI5jA "~YT - 10leej" -https://inv.vern.cc/feed/channel/UCNzszbnvQeFzObW0ghk0Ckw "~YT - Dave's Garage" -https://inv.vern.cc/feed/channel/UCONH73CdRXUjlh3-DdLGCPw "~YT - Nicco Loves Linux" -https://inv.vern.cc/feed/channel/UCOSSzBN8e3JHOxvltQbf_mQ "~YT - Jack Keifer" -https://inv.vern.cc/feed/channel/UCOxmlaJURX3nq8eLuJPbl3A "~YT - Psivewri" -https://inv.vern.cc/feed/channel/UCP5tjEmvPItGyLhmjdwP7Ww "~YT - RealLifeLore" -https://inv.vern.cc/feed/channel/UCQ-W1KE9EYfdxhL6S4twUNw "~YT - The Cherno" -https://inv.vern.cc/feed/channel/UCQX_MZRCaluNKxkywkLEgfA "~YT - Date un Vlog" -https://inv.vern.cc/feed/channel/UCS-WzPVpAAli-1IfEG2lN8A "~YT - Michael MJD" -https://inv.vern.cc/feed/channel/UCS0N5baNlQWJCUrhCEo8WlA "~YT - Ben Eater" -https://inv.vern.cc/feed/channel/UCS97tchJDq17Qms3cux8wcA "~YT - chris@machine" -https://inv.vern.cc/feed/channel/UCSju5G2aFaWMqn-_0YBtq5A "~YT - Stand-up Maths" -https://inv.vern.cc/feed/channel/UCSuHzQ3GrHSzoBbwrIq3LLA "~YT - NBTV, with Naomi Brockwell" -https://inv.vern.cc/feed/channel/UCTNj4UtgopYu5T8ew8WZPuw "~YT - Cat and Andrew" -https://inv.vern.cc/feed/channel/UCUMwY9iS8oMyWDYIe6_RmoA "~YT - No Boilerplate" -https://inv.vern.cc/feed/channel/UCUyeluBRhGPCW4rPe_UvBZQ "~YT - ThePrimeTime" -https://inv.vern.cc/feed/channel/UCVls1GmFKf6WlTraIb_IaJg "~YT - DistroTube" -https://inv.vern.cc/feed/channel/UCW-HHEyt67RhZ6q21n4p2zQ "~YT - Mac84" -https://inv.vern.cc/feed/channel/UCW0gH2G-cMKAEjEkI4YhnPA "~YT - Nerd of the Rings" -https://inv.vern.cc/feed/channel/UCWyrVfwRL-2DOkzsqrbjo5Q "~YT - NCommander" -https://inv.vern.cc/feed/channel/UCX_WM2O-X96URC5n66G-hvw "~YT - EF - Linux Made Simple" -https://inv.vern.cc/feed/channel/UCYO_jab_esuFRV4b17AJtAw "~YT - 3Blue1Brown" -https://inv.vern.cc/feed/channel/UCYVU6rModlGxvJbszCclGGw "~YT - Rob Braxman Tech" -https://inv.vern.cc/feed/channel/UCa6V1UVOXN4wDm7RDQDoa6g "~YT - El Traductor de Ingeniería" -https://inv.vern.cc/feed/channel/UCbdSYaPD-lr1kW27UJuk8Pw "~YT - QuantumFracture" -https://inv.vern.cc/feed/channel/UCbiGcwDWZjz05njNPrJU7jA "~YT - ExplainingComputers" -https://inv.vern.cc/feed/channel/UCcf2Mr1qNoX51XXDUd3Rquw "~YT - ByteSeb" -https://inv.vern.cc/feed/channel/UCd4XwUn2Lure2NHHjukoCwA "~YT - Linux For Everyone" -https://inv.vern.cc/feed/channel/UCeHOkFGW-7uAZFvq3BXb8YA "~YT - :3ildcat" -https://inv.vern.cc/feed/channel/UCerEIdrEW-IqwvlH8lTQUJQ "~YT - Tech Tangents" -https://inv.vern.cc/feed/channel/UCg6gPGh8HU2U01vaFCAsvmQ "~YT - Chris Titus Tech" -https://inv.vern.cc/feed/channel/UCgkyQiY_Q5AlrygIXGWO2Zw "~YT - Tux Traveler" -https://inv.vern.cc/feed/channel/UChI0q9a-ZcbZh7dAu_-J-hg "~YT - Upper Echelon" -https://inv.vern.cc/feed/channel/UCj8orMezFWVcoN-4S545Wtw "~YT - Max Derrat" -https://inv.vern.cc/feed/channel/UCjFaPUcJU1vwk193mnW_w1w "~YT - Modern Vintage Gamer" -https://inv.vern.cc/feed/channel/UCjSEJkpGbcZhvo0lr-44X_w "~YT - TechHut" -https://inv.vern.cc/feed/channel/UCjgS6Uyg8ok4Jd_lH_MUKgg "~YT - Claus Kellerman" -https://inv.vern.cc/feed/channel/UCl2mFZoRqjw_ELax4Yisf6w "~YT - Louis Rossmann" -https://inv.vern.cc/feed/channel/UCl8XUDjAOLc7GNKcDp9Nepg "~YT - Locos por Linux" -https://inv.vern.cc/feed/channel/UClVi5MQZ6T0InZYT7oFs6wg "~YT - Mumbling Hugo" -https://inv.vern.cc/feed/channel/UCl_dlV_7ofr4qeP1drJQ-qg "~YT - Tantacrul" -https://inv.vern.cc/feed/channel/UCld68syR8Wi-GY_n4CaoJGA "~YT - Brodie Robertson" -https://inv.vern.cc/feed/channel/UCmw-QGOHbHA5cDAvwwqUTKQ "~YT - Zaney" -https://inv.vern.cc/feed/channel/UCmyGZ0689ODyReHw3rsKLtQ "~YT - Michael Tunnell" -https://inv.vern.cc/feed/channel/UCnIfca4LPFVn8-FjpPVc1ow "~YT - Fedora Project" -https://inv.vern.cc/feed/channel/UCnw3aIEiz60S6O3XcztCVkQ "~YT - PatricianTV" -https://inv.vern.cc/feed/channel/UCoL8olX-259lS1N6QPyP4IQ "~YT - Action Retro" -https://inv.vern.cc/feed/channel/UCoryWpk4QVYKFCJul9KBdyw "~YT - Switched to Linux" -https://inv.vern.cc/feed/channel/UCoxcjq-8xIDTYp3uz647V5A "~YT - Numberphile" -https://inv.vern.cc/feed/channel/UCpuKDBw8IVIdKWPhiB2VDNQ "~YT - Cinematix" -https://inv.vern.cc/feed/channel/UCpuLiczP2Aqq11Gtf4k_fkw "~YT - Futurasound Productions" -https://inv.vern.cc/feed/channel/UCqxM9T6ksiOVKIkb88S2r7Q "~YT - Zac Builds" -https://inv.vern.cc/feed/channel/UCrkPsvLGln62OMZRO6K-llg "~YT - Nick Chapsas" -https://inv.vern.cc/feed/channel/UCs6KfncB4OV6Vug4o_bzijg "~YT - Techlore" -https://inv.vern.cc/feed/channel/UCs7nPQIEba0T3tGOWWsZpJQ "~YT - Like Stories of Old" -https://inv.vern.cc/feed/channel/UCsBjURrPoezykLs9EqgamOA "~YT - Fireship" -https://inv.vern.cc/feed/channel/UCsnGwSIHyoYN0kiINAGUKxg "~YT - Wolfgang's Channel" -https://inv.vern.cc/feed/channel/UCtMVHI3AJD4Qk4hcbZnI9ZQ "~YT - SomeOrdinaryGamers" -https://inv.vern.cc/feed/channel/UCvFGf8HZGZWFzpcDCqb3Lhw "~YT - All Things Secured" -https://inv.vern.cc/feed/channel/UCvjgXvBlbQiydffZU7m1_aw "~YT - The Coding Train" -https://inv.vern.cc/feed/channel/UCwEEjrUYHDyQsYPTQdNVacg "~YT - Jacob Pradels" -https://inv.vern.cc/feed/channel/UCwGX2cE21VPBEJ49hcprP9w "~YT - SupraPixel" -https://inv.vern.cc/feed/channel/UCxQKHvKbmSzGMvUrVtJYnUA "~YT - Learn Linux TV" -https://inv.vern.cc/feed/channel/UCxkw-TfCK1t1VKxfHwPzD6w "~YT - Our Walk in Christ" -https://inv.vern.cc/feed/channel/UCy0tKL1T7wFoYcxCe0xjN6Q "~YT - Technology Connections" -https://inv.vern.cc/feed/channel/UCybBViio_TH_uiFFDJuz5tg "~YT - Einzelgänger" -https://inv.vern.cc/feed/channel/UCylGUf9BvQooEFjgdNudoQg "~YT - The Linux Cast" -https://inv.vern.cc/feed/channel/UCz1oFxMrgrQ82-276UCOU9w "~YT - Atlas Pro" -https://inv.vern.cc/feed/channel/UCzGMBzt6UOMoQe_dqOfShZw "~YT - Cultura VJ" -https://inv.vern.cc/feed/channel/UCzXsTSZDoAPSjfHr8IZM9Ew "~YT - FloatyMonkey" - diff --git a/user/.config/sway/modules/autostart b/user/.config/sway/modules/autostart deleted file mode 100644 index 8a911cc1c..000000000 --- a/user/.config/sway/modules/autostart +++ /dev/null @@ -1,15 +0,0 @@ -exec { - /usr/libexec/polkit-gnome-authentication-agent-1 - echo 25 > $SWAYSOCK.wob - hash dbus-update-activation-environment 2>/dev/null && dbus-update-activation-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK - bash -c ~/.config/sway/pipeinit - mako -c ~/.config/mako/config - swayidle -w \ - timeout 300 'swaylock -f -i "$HOME/.config/sway/wallpaper/locked.*"' \ - timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ - before-sleep 'swaylock -f -i "$HOME/.config/sway/wallpaper/locked.*"' - wl-paste --type text --watch cliphist store - wl-paste --type image --watch cliphist store -} - -bar swaybar_command waybar diff --git a/user/.config/sway/modules/output b/user/.config/sway/modules/output deleted file mode 100644 index 9ed07f541..000000000 --- a/user/.config/sway/modules/output +++ /dev/null @@ -1,3 +0,0 @@ -output * { - bg ~/.config/sway/wallpaper/background.* fill -} diff --git a/user/.config/sway/pipeinit b/user/.config/sway/pipeinit deleted file mode 100755 index 99eb7d482..000000000 --- a/user/.config/sway/pipeinit +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh - -pkill pipewire -pkill pipewire-pulse -pkill wireplumber - -pipewire & -pipewire-pulse & -wireplumber & diff --git a/user/.config/sway/wallpaper/background.png b/user/.config/sway/wallpaper/background.png deleted file mode 100644 index b0eb96251..000000000 Binary files a/user/.config/sway/wallpaper/background.png and /dev/null differ diff --git a/user/.config/sway/wallpaper/locked.png b/user/.config/sway/wallpaper/locked.png deleted file mode 100644 index b0eb96251..000000000 Binary files a/user/.config/sway/wallpaper/locked.png and /dev/null differ diff --git a/user/.config/user-dirs.dirs b/user/.config/user-dirs.dirs deleted file mode 100644 index 6bad0251b..000000000 --- a/user/.config/user-dirs.dirs +++ /dev/null @@ -1,15 +0,0 @@ -# This file is written by xdg-user-dirs-update -# If you want to change or add directories, just edit the line you're -# interested in. All local changes will be retained on the next run. -# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped -# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an -# absolute path. No other format is supported. -# -XDG_DESKTOP_DIR="$HOME/var/desktop" -XDG_DOWNLOAD_DIR="$HOME/var/downloads" -XDG_TEMPLATES_DIR="$HOME/media/templates" -XDG_PUBLICSHARE_DIR="$HOME/var/public" -XDG_DOCUMENTS_DIR="$HOME/media/documents" -XDG_MUSIC_DIR="$HOME/media/music" -XDG_PICTURES_DIR="$HOME/media/pictures" -XDG_VIDEOS_DIR="$HOME/media/videos" diff --git a/user/.config/waybar/power-profiles b/user/.config/waybar/power-profiles deleted file mode 100755 index 35f9dc126..000000000 --- a/user/.config/waybar/power-profiles +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -currntpwr=$(powerprofilesctl get) -if [ "${currntpwr}" = "performance" ]; then - pwr="Performance 󰓅" -elif [ "${currntpwr}" = "balanced" ]; then - pwr="Balanced 󰾅" -elif [ "${currntpwr}" = "power-saver" ]; then - pwr="PowerSaver 󰾆" -fi -echo "$pwr" diff --git a/user/.config/waybar/style.css b/user/.config/waybar/style.css deleted file mode 100644 index 21178dd15..000000000 --- a/user/.config/waybar/style.css +++ /dev/null @@ -1,244 +0,0 @@ -/* Keyframes */ - -@keyframes blink-critical { - to { - /*color: @white;*/ - background-color: @critical; - } -} - -/* Styles */ -/* Colors (gruvbox) */ -@define-color black #1d2021; -@define-color red #cc241d; -@define-color green #98971a; -@define-color yellow #d79921; -@define-color blue #458588; -@define-color purple #b16286; -@define-color aqua #689d6a; -@define-color gray #a89984; -@define-color gray2 #504945; -@define-color orange #d65d0e; -@define-color brgray #928374; -@define-color brred #fb4934; -@define-color brgreen #b8bb26; -@define-color bryellow #fabd2f; -@define-color brblue #83a598; -@define-color brpurple #d3869b; -@define-color braqua #8ec07c; -@define-color brorange #fe8019; -@define-color brwhite #f9f5d7; -@define-color white #fbf1c7; -@define-color bg2 #3c3836; - - -@define-color warning @bryellow; -@define-color critical @red; -@define-color mode @red; -@define-color unfocused @bg2; -@define-color focused @red; -@define-color inactive @purple; -@define-color clock #427b58; -@define-color network #9d0006; -@define-color language #8f3f71; -@define-color battery #79740e; -@define-color volume #076678; -@define-color backlight #b57614; -@define-color powerprof #af3a03; - -/* Reset all styles */ -* { - border: none; - border-radius: 0; - min-height: 0; - margin: 0; - padding: 0; - box-shadow: none; - text-shadow: none; - icon-shadow: none; -} - -/* The whole bar */ -#waybar { - background: @black; /* #282828e0 */ - color: @white; - font-family: Mononoki Nerd Font; - font-size: 16px; -} - -button { - box-shadow: inset 0 -3px transparent; - border: none; - border-radius: 0; -} - -/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ -button:hover { - background: inherit; -} - -/* Workspaces stuff */ -#workspaces button { - /*font-weight: bold;*/ - font-family: Symbols Nerd Font Mono; - font-size: 18px; - padding-left: 2pt; - padding-right: 2pt; - color: @white; - background: @black; -} - -/* Inactive (on unfocused output) */ -#workspaces button.visible { - color: @white; - background: @black; -} - -/* Active (on focused output) */ -#workspaces button.focused { - color: @white; - background: @focused; -} - -/* Contains an urgent window */ -#workspaces button.urgent { - color: @black; - background: @warning; -} - -/* Style when cursor is on the button */ -#workspaces button:hover { - background: @black; - color: @white; -} - -#mode { - background-color: @red; - border-bottom: 3px solid @white; -} - -#clock, -#custom-powerprofiles, -#battery, -#backlight, -#network, -#pulseaudio, -#language, -#mode { - font-family: Symbols Nerd Font Mono, mononoki Nerd Font; - font-size: 16px; - padding-left: 8pt; - padding-right: 8pt; - color: @white; -} - -#window, -#workspaces { - margin: 0 4px; -} - -/* If workspaces is the leftmost module, omit left margin */ -.modules-left > widget:first-child > #workspaces { - margin-left: 0; -} - -/* If workspaces is the rightmost module, omit right margin */ -.modules-right > widget:last-child > #workspaces { - margin-right: 0; -} - -#battery.charging, -#battery.plugged { - background-color: @battery; -} - -#battery.critical:not(.charging), -#battery.critical.discharging { - animation-timing-function: linear; - animation-iteration-count: infinite; - animation-direction: alternate; - animation-name: blink-critical; - animation-duration: 1s; -} - -label:focus { - background-color: @white; -} - -#clock { - background-color: @clock; -} - -#battery { - background-color: @battery; -} - -#backlight { - background-color: @backlight; -} - -#network { - background-color: @network; -} - -#network.disconnected { - background-color: @network; -} - -#pulseaudio { - background-color: @volume; -} - -#pulseaudio.muted { - background-color: @volume; -} - -#language { - background-color: @language; -} - -#custom-powerprofiles { - background-color: @powerprof; -} - -#custom-arrow1 { - font-size: 22px; - background: @black; - color: @language; -} - -#custom-arrow2 { - font-size: 22px; - background: @language; - color: @volume; -} - -#custom-arrow3 { - font-size: 22px; - background: @volume; - color: @backlight; -} - -#custom-arrow4 { - font-size: 22px; - background: @backlight; - color: @battery; -} - -#custom-arrow5 { - font-size: 22px; - background: @battery; - color: @powerprof; -} - -#custom-arrow6 { - font-size: 22px; - background: @powerprof; - color: @network; -} - -#custom-arrow7 { - font-size: 22px; - background: @network; - color: @clock; -} diff --git a/user/.config/wezterm/wezterm.lua b/user/.config/wezterm/wezterm.lua deleted file mode 100644 index da17aa4aa..000000000 --- a/user/.config/wezterm/wezterm.lua +++ /dev/null @@ -1,33 +0,0 @@ -local wezterm = require 'wezterm' -local gpus = wezterm.gui.enumerate_gpus() - -return { - enable_wayland = true, - font = wezterm.font { - family = 'mononoki Nerd Font', - weight = 'Medium' - }, - color_scheme = 'Gruvbox dark, hard (base16)', - default_prog = { '/usr/bin/fish' }, - default_cursor_style = "BlinkingUnderline", - font_size = 14, - check_for_updates = false, - use_dead_keys = false, - warn_about_missing_glyphs = false, - enable_kitty_graphics = true, - animation_fps = 1, - cursor_blink_rate = 175, - hide_tab_bar_if_only_one_tab = true, - adjust_window_size_when_changing_font_size = false, - window_padding = { - left = 10, - right = 10, - top = 10, - bottom = 10, - }, - use_fancy_tab_bar = false, - exit_behavior = "Close", - window_close_confirmation = 'NeverPrompt', - tab_bar_at_bottom = false, - window_background_opacity = 0.98, -} diff --git a/user/.local/bin/neovide b/user/.local/bin/neovide deleted file mode 100755 index b1c9d8f31..000000000 --- a/user/.local/bin/neovide +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/sh - -NEOVIDE="$HOME/.local/bin/neovide.AppImage" -NEOVIDE_OPTS="--neovim-bin $HOME/.local/bin/lvim" - -$NEOVIDE $NEOVIDE_OPTS diff --git a/user/.local/bin/rs_clip b/user/.local/bin/rs_clip deleted file mode 100755 index 9e3702607..000000000 --- a/user/.local/bin/rs_clip +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env bash - -# clipboard script - -cliphist list | $RUNNER -l 10 -p "[󱉧 Clipboard]  " | cliphist decode | wl-copy diff --git a/user/.local/bin/rs_scrot b/user/.local/bin/rs_scrot deleted file mode 100755 index 68f92853d..000000000 --- a/user/.local/bin/rs_scrot +++ /dev/null @@ -1,39 +0,0 @@ -#!/usr/bin/env bash - -# ***This script was made by Clay Gomera (Drake)*** -# - Description: A simple screenshot menu rofi script -# - Dependencies: wofi, grim, slurp - -# options -option1=" Capture the screen" -option2=" Capture region" -option3=" Exit" -options="$option1\n$option2\n$option3" - -# countdown -countdown() { - notify-send "Screenshot" "Executing in 3 seconds" -t 1000 - sleep 1 - notify-send "Screenshot" "Executing in 2 seconds" -t 1000 - sleep 1 - notify-send "Screenshot" "Executing in 1 seconds" -t 1000 - sleep 2 -} - -# run -choice=$(echo -e "$options" | $RUNNER -l 3 -p "[󰄀 Screenshot]  " ) -case $choice in - $option1) - countdown - grim - | wl-copy -t image/jpg - notify-send "Screenshot" "Screenshot saved to clipboard" - ;; - $option2) - notify-send "Screenshot" "Select a region to capture" - grim -g "$(slurp)" - | wl-copy -t image/jpg - notify-send "Screenshot" "Region saved to clipboard" - ;; - $option3) - exit 0 - ;; -esac diff --git a/user/.local/bin/rs_wall b/user/.local/bin/rs_wall deleted file mode 100755 index 4b0dca066..000000000 --- a/user/.local/bin/rs_wall +++ /dev/null @@ -1,28 +0,0 @@ -#!/usr/bin/env bash - -# ***This script was made by Clay Gomera (Drake)*** -# - Description: A simple wallpaper changer script for rofi/dmenu/wofi -# - Dependencies: {rofi||dmenu||wofi}, fd, swaybg - -## WALLPAPER DIRECTORY ## -walldir="$XDG_PICTURES_DIR/Wallpapers" # wallpapers folder, change it to yours - -## SELECT PICTURE ## -cd "$walldir" || exit 1 -wallpaper=$(fd -p "$walldir" | $RUNNER -l 5 -i -p "[󰋩 Wallpaper Selector]  ") -if [ -n "$wallpaper" ]; then - if [[ "$wallpaper" == *.jpg ]]; then - rm -f "$HOME/.config/sway/wallpaper/"* - cp "$wallpaper" "$HOME/.config/sway/wallpaper/background.jpg" - cp "$wallpaper" "$HOME/.config/sway/wallpaper/locked.jpg" - swaymsg output \* bg "$HOME/.config/sway/wallpaper/background.jpg" fill - elif [[ "$wallpaper" == *.png ]]; then - rm -f "$HOME/.config/sway/wallpaper/"* - cp "$wallpaper" "$HOME/.config/sway/wallpaper/background.png" - cp "$wallpaper" "$HOME/.config/sway/wallpaper/locked.png" - swaymsg output \* bg "$HOME/.config/sway/wallpaper/background.png" fill - fi -else - exit 1 -fi -exit 0 diff --git a/user/.local/bin/rs_wifi b/user/.local/bin/rs_wifi deleted file mode 100755 index fb166b3ba..000000000 --- a/user/.local/bin/rs_wifi +++ /dev/null @@ -1,150 +0,0 @@ -#!/usr/bin/env bash - -# ***This script was made by Clay Gomera (Drake)*** -# - Description: A simple wifi script for rofi/dmenu/wofi -# - Dependencies: {rofi||dmenu||wofi}, NetworkManager, io.elementary.capnet-assist - -####################### -## Main manu options ## -####################### -option1=" Turn on WiFi" -option2=" Turn off WiFi" -option3="󱛅 Disconnect WiFi" -option4="󱛃 Connect WiFi" -option5="󱛆 Setup captive portal" -option6=" Exit" -options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6" - -##### -## These variables will store specific -## information about the wireless -## interface -##### -wifi_info=$(nmcli dev | awk '/wifi/ {print $1,$3; exit}') -read -r wlan constate <<< "$wifi_info" - -##### -## This function uses nmcli to turn -## off wifi and then sends a -## notification -##### -## param: none -## return: void -##### -turnoff() { - nmcli radio wifi off && notify-send "WiFi has been turned off"; -} - -##### -## This function uses nmcli to turn -## on wifi and then sends a -## notification -##### -## param: none -## return: void -##### -turnon() { - nmcli radio wifi on && notify-send "WiFi has been turned on"; -} - -##### -## This function uses nmcli and the -## $wlan and $constate variables to -## disconnect from the wifi network -## and then sends a notification -##### -## param: none -## return: void -##### -disconnect() { - if [ "$constate" = "disconnected" ]; then - notify-send "WiFi is already disconnected"; - elif [ "$constate" = "connected" ]; then - nmcli device disconnect "$wlan" && notify-send "Wifi has been disconnected"; - else - exit 1; - fi -} - -##### -## This function uses nmcli to first scan -## for available networks and then the -## $bssid variable will store the SSID -## of the network that the user chooses -##### -## param: none -## return: string -##### -connect() { - notify-send "Scannig networks..." && nmcli dev wifi rescan; - wifinet=$(nmcli -f BSSID,SSID,BARS,SECURITY dev wifi list | sed -n '1!p' | $RUNNER -i -l 10 -p "[ Select a Wifi Network]  "); - bssid=$(echo "$wifinet" | cut -d' ' -f1) - ssid=$(echo "$wifinet" | cut -d' ' -f3) -} - -##### -## This function will store the WiFi -## password in the $pass variable -##### -## param: none -## return: string -##### -password() { - if nmcli connection show | grep -q "$ssid"; then # check if the network is already saved - return 0; # no password is required - elif nmcli -f BSSID,SECURITY dev wifi list | sed -n '1!p' | grep "$bssid" | awk '{print $2}' | grep -q -- "--"; then # check if the network is open - return 0; # no password is required - else - pass=$($RUNNER -l 0 --password -p "[Enter Password ]  " ); - if [ -n "$pass" ]; then # if the user gave a password - return 0; - else - exit 1; # if not, exit the script - fi - fi -} - -##### -## This function will actually connect -## to the chosen WiFi network using the -## $bssid and $pass variables -##### -## param: none -## return: void -##### -action() { - if [ -n "$pass" ]; then # we need to check again if the $pass variable exists - nmcli dev wifi connect "$bssid" password "$pass" - else # if not, that means that the password() function ended in one of the first two conditions, the network is saved or open - nmcli dev wifi connect "$bssid"; - fi -} - -########## -## main ## -########## -cases=$(echo -e "$options" | $RUNNER -i -l 6 -p "[ Wifi Settings]  " ) # main menu prompt -case "$cases" in - "$option1") - turnon; - ;; - "$option2") - turnoff; - ;; - "$option3") - disconnect; - ;; - "$option4") - if connect; then # if the user chooses a network - password; # this function will exit the script if the user didn't put a password - action; - else - exit 1; # if not, exit the script - fi - ;; - "$option5") - io.elementary.capnet-assist; - ;; - "$option6") - exit 0; -esac