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/X11/xinitrc b/config/X11/xinitrc similarity index 85% rename from user/.config/X11/xinitrc rename to config/X11/xinitrc index 24bab0c70..6c7967790 100755 --- a/user/.config/X11/xinitrc +++ b/config/X11/xinitrc @@ -36,8 +36,8 @@ export XDG_SESSION_TYPE=X11 # 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" -# start window manager / desktop environment -dbus-launch awesome +# initialize dwm +exec awesome diff --git a/config/awesome/apps.lua b/config/awesome/apps.lua new file mode 100644 index 000000000..269bc383c --- /dev/null +++ b/config/awesome/apps.lua @@ -0,0 +1,36 @@ +-- Apps selection, see config/keys.lua to see how this is handled in keybindings +local apps = { + terminal = "kitty", -- terminal emulator + + -- rofi + drunner = "rofi -show drun -show-icons", -- desktop runner + runner = "rofi -show run", -- normal runner + runner_power = string.format("%s/.config/awesome/misc/scripts/rofi_power", os.getenv("HOME")), -- power manager + runner_mount = string.format("%s/.config/awesome/misc/scripts/rofi_mount", os.getenv("HOME")), -- drive mounter + runner_blue = string.format("%s/.config/awesome/misc/scripts/rofi_blue", os.getenv("HOME")), -- bluetooth manager + runner_wifi = string.format("%s/.config/awesome/misc/scripts/rofi_wifi", os.getenv("HOME")), -- wifi manager + runner_scrot = string.format("%s/.config/awesome/misc/scripts/rofi_scrot", os.getenv("HOME")), -- screenshots manager + runner_emoji = string.format("%s/.config/awesome/misc/scripts/rofi_emoji", os.getenv("HOME")), -- emojis manager + runner_wall = string.format("%s/.config/awesome/misc/scripts/rofi_wall", os.getenv("HOME")), -- wallpapers manager + + -- terminal scripts + ytfzfv = "kitty --class vidytfzf ytfzf -flst", -- youtube + ytfzfm = "kitty --class musytfzf ytfzf -mlst", -- youtube music + ani_cli = "kitty --class ani-cli ani-cli", -- anime + flix_cli = "kitty --class flix-cli flix-cli", -- movies + newsboat = "kitty --class newsboat newsboat", -- newsboat + btop = "kitty --class btop btop", -- btop + pulsemixer = "kitty --class pulsemixer pulsemixer", -- pulsemixer + + -- default apps per tag + editor = string.format("kitty --class neovim %s/.local/bin/lvim", os.getenv("HOME")), -- TAG 1 + file = string.format("kitty --class vifm %s/.config/vifm/scripts/vifmrun", os.getenv("HOME")), -- TAG 2 + browser = "brave", -- TAG 3 + chat = "flatpak run org.signal.Signal", -- TAG 4 + music = "kitty --class cmus cmus", -- TAG 5 + videoeditor = "flatpak run org.kde.kdenlive", -- TAG 6 + imageeditor = "flatpak run org.kde.krita", -- TAG 7 + office = "flatpak run org.onlyoffice.desktopeditors", -- TAG 8 + game = "flatpak run com.valvesoftware.Steam" -- TAG 9 +} +return apps diff --git a/user/.config/awesome/config/keys.lua b/config/awesome/config/keys.lua similarity index 91% rename from user/.config/awesome/config/keys.lua rename to config/awesome/config/keys.lua index 0e48c76b5..bb6f9921e 100644 --- a/user/.config/awesome/config/keys.lua +++ b/config/awesome/config/keys.lua @@ -4,16 +4,16 @@ local apps = require("apps") require("awful.autofocus") -- Modkeys. -altkey = "Mod1" -modkey = "Mod4" -conkey = "Control" -shikey = "Shift" +Altkey = "Mod1" +Modkey = "Mod4" +Conkey = "Control" +Shikey = "Shift" -- Main keybinds awful.keyboard.append_global_keybindings({ -- Show the help menu awful.key( - { modkey }, + { Modkey }, "s", hotkeys_popup.show_help, { @@ -24,7 +24,7 @@ awful.keyboard.append_global_keybindings({ -- Reload awesome awful.key( - { modkey, conkey }, + { Modkey, Conkey }, "r", awesome.restart, { @@ -35,7 +35,7 @@ awful.keyboard.append_global_keybindings({ -- Open a terminal awful.key( - { modkey }, + { Modkey }, "Return", function() awful.spawn(apps.terminal) @@ -51,7 +51,7 @@ awful.keyboard.append_global_keybindings({ awful.keyboard.append_global_keybindings({ -- Switch to previous tag awful.key( - { modkey }, + { Modkey }, "Left", awful.tag.viewprev, { @@ -62,7 +62,7 @@ awful.keyboard.append_global_keybindings({ -- Switch to next tag awful.key( - { modkey }, + { Modkey }, "Right", awful.tag.viewnext, { @@ -73,7 +73,7 @@ awful.keyboard.append_global_keybindings({ -- Switch back to the previous tag awful.key( - { modkey }, + { Modkey }, "Escape", awful.tag.history.restore, { @@ -84,7 +84,7 @@ awful.keyboard.append_global_keybindings({ -- Switch tags by numbers 1-9 awful.key { - modifiers = { modkey }, + modifiers = { Modkey }, keygroup = "numrow", description = "Switch tags with number keys from {1 to 9}", group = "Tag keybinds", @@ -99,7 +99,7 @@ awful.keyboard.append_global_keybindings({ -- Toggle tags by numbers 1-9 awful.key { - modifiers = { modkey, conkey }, + modifiers = { Modkey, Conkey }, keygroup = "numrow", description = "Quickly view contents in another tag with number keys from {1 to 9}", group = "Tag keybinds", @@ -114,7 +114,7 @@ awful.keyboard.append_global_keybindings({ -- Move focused window to tag by numbers 1-9 awful.key { - modifiers = { modkey, shikey }, + modifiers = { Modkey, Shikey }, keygroup = "numrow", description = "Move focused window to another tag with number keys from {1 to 9}", group = "Tag keybinds", @@ -130,7 +130,7 @@ awful.keyboard.append_global_keybindings({ -- Toggle focused window on tag by numbers 1-9 awful.key { - modifiers = { modkey, conkey, shikey }, + modifiers = { Modkey, Conkey, Shikey }, keygroup = "numrow", description = "View focused window on more than one tag with number keys from {1 to 9}", group = "Tag keybinds", @@ -149,7 +149,7 @@ awful.keyboard.append_global_keybindings({ awful.keyboard.append_global_keybindings({ -- Focus next window by index awful.key( - { modkey }, + { Modkey }, "j", function() awful.client.focus.byidx(1) @@ -162,7 +162,7 @@ awful.keyboard.append_global_keybindings({ -- Focus previous window by index awful.key( - { modkey }, + { Modkey }, "k", function() awful.client.focus.byidx(-1) @@ -175,7 +175,7 @@ awful.keyboard.append_global_keybindings({ -- Focus last focused window awful.key( - { modkey }, + { Modkey }, "Tab", function() awful.client.focus.history.previous() @@ -191,10 +191,10 @@ awful.keyboard.append_global_keybindings({ -- Focus next screen awful.key( - { modkey, conkey }, - "j", + { Modkey }, + ",", function() - awful.screen.focus_relative(1) + awful.screen.focus_relative(-1) end, { description = "Focus the next screen", @@ -204,10 +204,10 @@ awful.keyboard.append_global_keybindings({ -- Focus previous screen awful.key( - { modkey, conkey }, - "k", + { Modkey }, + ".", function() - awful.screen.focus_relative(-1) + awful.screen.focus_relative(1) end, { description = "Focus the previous screen", @@ -220,7 +220,7 @@ awful.keyboard.append_global_keybindings({ awful.keyboard.append_global_keybindings({ -- Swap with next window by index awful.key( - { modkey, shikey }, + { Modkey, Shikey }, "j", function() awful.client.swap.byidx(1) @@ -233,7 +233,7 @@ awful.keyboard.append_global_keybindings({ -- Swap with previous window by index awful.key( - { modkey, shikey }, + { Modkey, Shikey }, "k", function() awful.client.swap.byidx(-1) @@ -246,7 +246,7 @@ awful.keyboard.append_global_keybindings({ -- Increase master width awful.key( - { modkey }, + { Modkey }, "l", function() awful.tag.incmwfact(0.05) @@ -259,7 +259,7 @@ awful.keyboard.append_global_keybindings({ -- Decrease master width awful.key( - { modkey }, + { Modkey }, "h", function() awful.tag.incmwfact(-0.05) @@ -272,7 +272,7 @@ awful.keyboard.append_global_keybindings({ -- Increase the number of master window awful.key( - { modkey, shikey }, + { Modkey, Shikey }, "h", function() awful.tag.incnmaster(1, nil, true) @@ -285,7 +285,7 @@ awful.keyboard.append_global_keybindings({ -- Decrease the number of master windows awful.key( - { modkey, shikey }, + { Modkey, Shikey }, "l", function() awful.tag.incnmaster(-1, nil, true) @@ -298,7 +298,7 @@ awful.keyboard.append_global_keybindings({ -- Increase the number of columns awful.key( - { modkey, conkey }, + { Modkey, Conkey }, "h", function() awful.tag.incncol(1, nil, true) @@ -311,7 +311,7 @@ awful.keyboard.append_global_keybindings({ -- Decrease the number of columns awful.key( - { modkey, conkey }, + { Modkey, Conkey }, "l", function() awful.tag.incncol(-1, nil, true) @@ -324,7 +324,7 @@ awful.keyboard.append_global_keybindings({ -- Switch to next layout awful.key( - { modkey }, + { Modkey }, "space", function() awful.layout.inc(1) @@ -337,7 +337,7 @@ awful.keyboard.append_global_keybindings({ -- Switch to previous layout awful.key( - { modkey, shikey }, + { Modkey, Shikey }, "space", function() awful.layout.inc(-1) @@ -350,7 +350,7 @@ awful.keyboard.append_global_keybindings({ -- Select layouts directly awful.key { - modifiers = { modkey }, + modifiers = { Modkey }, keygroup = "numpad", description = "Select layouts directly using the numpad", group = "layout", @@ -364,7 +364,7 @@ awful.keyboard.append_global_keybindings({ -- Show/Hide Wibox awful.key( - { modkey }, + { Modkey }, "b", function() for s in screen do @@ -389,7 +389,7 @@ client.connect_signal("request::default_keybindings", awful.keyboard.append_client_keybindings({ -- Set focused window to fullscreen awful.key( - { modkey }, + { Modkey }, "f", function(c) c.fullscreen = not c.fullscreen @@ -402,7 +402,7 @@ client.connect_signal("request::default_keybindings", ), -- Close focused window awful.key( - { modkey }, + { Modkey }, "q", function(c) c:kill() @@ -414,7 +414,7 @@ client.connect_signal("request::default_keybindings", ), -- Toggle floating mode on focused window awful.key( - { modkey, conkey }, + { Modkey, Conkey }, "space", awful.client.floating.toggle, { @@ -424,7 +424,7 @@ client.connect_signal("request::default_keybindings", ), -- Move focused window to master awful.key( - { modkey, conkey }, + { Modkey, Conkey }, "Return", function(c) c:swap( @@ -436,21 +436,33 @@ client.connect_signal("request::default_keybindings", group = "Window keybinds" } ), - -- Move focused window to the other screen + -- Move focused window to the next screen awful.key( - { modkey }, - "o", + { Modkey, Shikey }, + ".", function(c) - c:move_to_screen() + c:move_to_screen(c.screen.index+1) end, { description = "Move focused window to the next screen", group = "Window keybinds" } ), + -- Move focused window to the previous screen + awful.key( + { Modkey, Shikey }, + ",", + function(c) + c:move_to_screen(c.screen.index-1) + end, + { + description = "Move focused window to the previous screen", + group = "Window keybinds" + } + ), -- Toggle focused window to be on top awful.key( - { modkey }, + { Modkey }, "t", function(c) c.ontop = not c.ontop @@ -462,7 +474,7 @@ client.connect_signal("request::default_keybindings", ), -- Jump to urgent window awful.key( - { modkey }, + { Modkey }, "u", awful.client.urgent.jumpto, { @@ -562,7 +574,7 @@ awful.keyboard.append_global_keybindings({ -- Keychords -- Apps (Super + a followed by KEY) awful.key( - { modkey }, + { Modkey }, "a", function() local grabber = awful.keygrabber.run( @@ -601,7 +613,7 @@ awful.keyboard.append_global_keybindings({ -- Keyboard layouts (Super + x followed by KEY) awful.key( - { modkey }, + { Modkey }, "x", function() local grabber = awful.keygrabber.run( @@ -626,7 +638,7 @@ awful.keyboard.append_global_keybindings({ -- Runners (Super + p followed by KEY) awful.key( - { modkey }, + { Modkey }, "p", function() local grabber = awful.keygrabber.run( @@ -665,7 +677,7 @@ awful.keyboard.append_global_keybindings({ -- Terminal scripts (Super + t followed by KEY) awful.key( - { modkey }, + { Modkey }, "t", function() local grabber = awful.keygrabber.run( @@ -712,14 +724,14 @@ client.connect_signal( end ), awful.button( - { modkey }, + { Modkey }, 1, function(c) c:activate {context = "mouse_click", action = "mouse_move"} end ), awful.button( - { modkey }, + { Modkey }, 3, function(c) c:activate {context = "mouse_click", action = "mouse_resize"} diff --git a/user/.config/awesome/core/rules.lua b/config/awesome/config/rules.lua similarity index 99% rename from user/.config/awesome/core/rules.lua rename to config/awesome/config/rules.lua index 4e7e61617..21b99fa5b 100644 --- a/user/.config/awesome/core/rules.lua +++ b/config/awesome/config/rules.lua @@ -70,6 +70,7 @@ ruled.client.connect_signal( rule_any = { class = { "vifm", + "yazi", "pcmanfm", "nemo" } diff --git a/config/awesome/core/autostart.lua b/config/awesome/core/autostart.lua new file mode 100644 index 000000000..ca4edd322 --- /dev/null +++ b/config/awesome/core/autostart.lua @@ -0,0 +1,24 @@ +local awful = require("awful") +-- session manager +awful.util.spawn_with_shell("pidof polkit-gnome-authentication-agent-1 || /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &") +-- automatically hide the cursor +awful.util.spawn_with_shell("pidof unclutter || unclutter --hide-on-touch &") +-- compositor +awful.util.spawn_with_shell("pidof picom || picom --config $HOME/.config/awesome/misc/picom/picom.conf &") +-- autolock +awful.util.spawn_with_shell("pidof xss-lock || xss-lock $HOME/.config/awesome/misc/scripts/lock.sh &") +-- set theeming +awful.util.spawn_with_shell("gsettings set org.gnome.desktop.interface cursor-theme 'Simp1e-Gruvbox-Dark' &") +awful.util.spawn_with_shell("gsettings set org.gnome.desktop.interface cursor-size 16 &") +awful.util.spawn_with_shell("gsettings set org.gnome.desktop.interface icon-theme 'Papirus-Dark' &") +awful.util.spawn_with_shell("gsettings set org.gnome.desktop.interface gtk-theme 'Gruvbox-Dark' &") +awful.util.spawn_with_shell("gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark' &") +awful.util.spawn_with_shell("gsettings set org.gnome.desktop.interface font-name 'Inter 10' &") +awful.util.spawn_with_shell("gsettings set org.gnome.desktop.interface document-font-name 'Liberation Sans 10' &") +awful.util.spawn_with_shell("gsettings set org.gnome.desktop.interface monospace-font-name 'Mononoki Nerd Font 10' &") +awful.util.spawn_with_shell("gsettings set org.gnome.desktop.interface font-antialiasing 'rgba' &") +awful.util.spawn_with_shell("gsettings set org.gnome.desktop.interface font-hinting 'full' &") +-- set monitor configuration +awful.util.spawn_with_shell("$HOME/.config/awesome/misc/scripts/monitors.sh &") +-- set wallpaper +awful.util.spawn_with_shell("sleep 1 && $HOME/.fehbg &") diff --git a/user/.config/awesome/core/signals.lua b/config/awesome/core/signals.lua similarity index 83% rename from user/.config/awesome/core/signals.lua rename to config/awesome/core/signals.lua index 069c32a17..b63b3fd60 100644 --- a/user/.config/awesome/core/signals.lua +++ b/config/awesome/core/signals.lua @@ -1,5 +1,4 @@ local naughty = require("naughty") -local ruled = require("ruled") local beautiful = require("beautiful") -- Error handling @@ -36,3 +35,14 @@ screen.connect_signal( client.connect_signal("mouse::enter", function(c) c:emit_signal("request::activate", "mouse_enter", {raise = false}) end) + +-- keep floating windows on top +client.connect_signal("property::floating", function(c) + if not c.fullscreen then + if c.floating then + c.ontop = true + else + c.ontop = false + end + end +end) diff --git a/user/.config/picom/picom.conf b/config/awesome/misc/picom/picom.conf similarity index 76% rename from user/.config/picom/picom.conf rename to config/awesome/misc/picom/picom.conf index a1ca387b1..8046d5b6b 100644 --- a/user/.config/picom/picom.conf +++ b/config/awesome/misc/picom/picom.conf @@ -4,24 +4,6 @@ ## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake) ## /_____/_/ \__,_/_/|_|\___/ My custom picom config -################################# -# Animations # -################################# -animations = true -# `auto`, `none`, `fly-in`, `zoom`, `slide-down`, `slide-up`, `slide-left`, `slide-right` `slide-in`, `slide-out` -animation-for-transient-window = "zoom" -animation-for-open-window = "slide-up" -animation-for-unmap-window = "zoom" -animation-for-menu-window = "none" -animation-for-workspace-switch-out = "slide-left" -animation-for-workspace-switch-in = "slide-right" -animation-stiffness = 500; -animation-dampening = 22; -animation-window-mass = 1; -animation-clamping = false; -animation-delta = 30; -# animation-force-steps = true; - ############################### # Shadows # ############################### diff --git a/config/awesome/misc/scripts/lock.sh b/config/awesome/misc/scripts/lock.sh new file mode 100755 index 000000000..5d6e6d2f4 --- /dev/null +++ b/config/awesome/misc/scripts/lock.sh @@ -0,0 +1,2 @@ +#!/bin/sh +betterlockscreen -l diff --git a/config/awesome/misc/scripts/monitors.sh b/config/awesome/misc/scripts/monitors.sh new file mode 100755 index 000000000..f0b5be7af --- /dev/null +++ b/config/awesome/misc/scripts/monitors.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +# grab monitor status (varies with the machine) +### T480 monitors +monitor1=$(cat /sys/class/drm/card1-DP-1/status) +monitor2=$(cat /sys/class/drm/card1-HDMI-A-2/status) +sleep 2 + +# if monitors are connected, then use xrandr to set desired settings +if [ "$monitor1" = "connected" ] && [ "$monitor2" = "connected" ]; then + xrandr --output eDP1 --mode 1920x1080 --pos 3200x0 --rotate normal \ + --output HDMI2 --primary --mode 1920x1080 --rate 100.00 --pos 1280x0 --rotate normal \ + --output DP1 --mode 1280x1024 --rate 75.00 --pos 0x0 --rotate normal +elif [ "$monitor1" = "connected" ]; then + xrandr --output eDP1 --primary --auto \ + --output HDMI2 --auto --scale-from 1920x1080 --same-as eDP1 +elif [ "$monitor2" = "connected" ]; then + xrandr --output eDP1 --primary --auto \ + --output DP1 --auto --scale-from 1920x1080 --same-as eDP1 +else + xrandr --output eDP1 --primary --auto \ + --output DP1 --off \ + --output HDMI2 --off +fi diff --git a/user/.config/rofi/scripts/rofi_blue b/config/awesome/misc/scripts/rofi_blue similarity index 100% rename from user/.config/rofi/scripts/rofi_blue rename to config/awesome/misc/scripts/rofi_blue diff --git a/user/.config/rofi/scripts/rofi_emoji b/config/awesome/misc/scripts/rofi_emoji similarity index 100% rename from user/.config/rofi/scripts/rofi_emoji rename to config/awesome/misc/scripts/rofi_emoji diff --git a/user/.config/rofi/scripts/rofi_mount b/config/awesome/misc/scripts/rofi_mount similarity index 100% rename from user/.config/rofi/scripts/rofi_mount rename to config/awesome/misc/scripts/rofi_mount diff --git a/user/.config/rofi/scripts/rofi_power b/config/awesome/misc/scripts/rofi_power similarity index 59% rename from user/.config/rofi/scripts/rofi_power rename to config/awesome/misc/scripts/rofi_power index ffb9b0e0b..026d569ec 100755 --- a/user/.config/rofi/scripts/rofi_power +++ b/config/awesome/misc/scripts/rofi_power @@ -2,7 +2,7 @@ # ***This script was made by Clay Gomera (Drake)*** # - Description: A simple power menu rofi script -# - Dependencies: rofi, power-profiles-daemon, betterlockscreen +# - Dependencies: rofi, power-profiles-daemon, slock ####################### ## Main manu options ## @@ -25,78 +25,113 @@ pwr3="󰾆 Power Saver" pwr4=" Cancel" pwrs="$pwr1\n$pwr2\n$pwr3\n$pwr4" -##### ## This variable will store the current power profile -##### currentpwr=$(powerprofilesctl get) -##### ## This variable will store the current wallpaper set by feh -##### currentwall=$(tail --lines=1 "$HOME/.fehbg" | awk '{print $4}' | sed "s/'//g") -########## -## main ## -########## +# Check for missing dependencies +check_dependencies() { + if ! [ -x "$(command -v rofi)" ]; then + echo "Missing dependency: rofi is required." + exit 1 + fi + + local missing_deps=() + for dep in loginctl powerprofilesctl 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 +} + +## Ask yes/no for action confirmation +confirm_action() { + local prompt="$1" + echo -e " Yes\n No" | rofi -dmenu -l 2 -i -p "$prompt" | grep -q " Yes" +} + +#################### +# Main Script Flow # +#################### + +# Check for dependencies +check_dependencies action=$(echo -e "$options" | rofi -dmenu -i -p "  Power Options "); # main menu prompt + +if [ -z "$action" ]; then + exit 0 +fi + case "$action" in - "$option1") - pkill awesome + "$option1") + if confirm_action "  Are you sure you want to logout? "; then + loginctl kill-session self + fi ;; "$option2") - systemctl reboot + if confirm_action "  Are you sure you want to reboot? "; then + systemctl reboot + fi ;; "$option3") - systemctl poweroff - ;; + if confirm_action "  Are you sure you want to power off? "; then + systemctl poweroff + fi + ;; "$option4") - betterlockscreen -l -q & - sleep 1 systemctl suspend ;; "$option5") - betterlockscreen -l -q & + betterlockscreen -l ;; "$option6") ##### ## These conditions will be used for the prompt ##### if [ "$currentpwr" = "performance" ]; then - currentpwr="$pwr1"; + currentpwr="$pwr1" elif [ "$currentpwr" = "balanced" ]; then - currentpwr="$pwr2"; + currentpwr="$pwr2" elif [ "$currentpwr" = "power-saver" ]; then - currentpwr="$pwr3"; + currentpwr="$pwr3" fi pwraction=$(echo -e "$pwrs" | rofi -dmenu -i -p "  Power Profile Menu - Currently set to: $currentpwr ") # power profiles submenu prompt case "$pwraction" in "$pwr1") if [ "$currentpwr" = "$pwr1" ]; then # if the power profile is already set to performance - notify-send "The power profile is already set to performance"; - exit 1; + notify-send "The power profile is already set to performance" + exit 1 else - powerprofilesctl set performance && notify-send "Power profile switched to performance"; # if not, set the powerprofile to performance + powerprofilesctl set performance && notify-send "Power profile switched to performance" # if not, set the powerprofile to performance fi ;; "$pwr2") if [ "$currentpwr" = "$pwr2" ]; then # if the power profile is already set to balanced - notify-send "The power profile is already set to balanced"; - exit 1; + notify-send "The power profile is already set to balanced" + exit 1 else - powerprofilesctl set balanced && notify-send "Power profile switched to balanced"; # if not, set the powerprofile to balanced + powerprofilesctl set balanced && notify-send "Power profile switched to balanced" # if not, set the powerprofile to balanced fi ;; "$pwr3") if [ "$currentpwr" = "$pwr3" ]; then # if the power profile is already set to power saver - notify-send "The power profile is already set to power saver"; - exit 1; + notify-send "The power profile is already set to power saver" + exit 1 else - powerprofilesctl set power-saver && notify-send "Power profile switched to power saver"; # if not, set the powerprofile to power saver + powerprofilesctl set power-saver && notify-send "Power profile switched to power saver" # if not, set the powerprofile to power saver fi ;; "$pwr4") - exit 0; + exit 0 esac;; "$option7") - exit 0; + exit 0 + ;; esac diff --git a/user/.config/rofi/scripts/rofi_scrot b/config/awesome/misc/scripts/rofi_scrot similarity index 93% rename from user/.config/rofi/scripts/rofi_scrot rename to config/awesome/misc/scripts/rofi_scrot index 6d16da76f..6f6dc8a1c 100755 --- a/user/.config/rofi/scripts/rofi_scrot +++ b/config/awesome/misc/scripts/rofi_scrot @@ -57,7 +57,7 @@ check_dependencies() { ## screenshot ##### fsvchos() { - svchoice=$(echo -e "$svchos" | rofi -dmenu -i -p "  What do you want to do with this screenshot? ") + svchoice=$(echo -e "$svchos" | rofi -dmenu -i -p " What do you want to do with this screenshot?") } ##### @@ -65,21 +65,21 @@ fsvchos() { ## choose ##### fdel() { - del=$(echo -e "$dels" | rofi -dmenu -i -p "  Select Delay ") + del=$(echo -e "$dels" | rofi -dmenu -i -p " Select Delay") } ##### ## This function allows the user to choose the screenshot format ##### fimage_format() { - image_format=$(echo -e "$image_formats" | rofi -dmenu -i -p "  Choose screenshot format ") + image_format=$(echo -e "$image_formats" | rofi -dmenu -i -p " Choose screenshot format") } ##### ## This function allows the user to choose the recording format ##### fvideo_format() { - video_format=$(echo -e "$video_formats" | rofi -dmenu -i -p "  Choose video format ") + video_format=$(echo -e "$video_formats" | rofi -dmenu -i -p " Choose video format") } ##### @@ -91,7 +91,7 @@ shot_screen() { fimage_format fsvchos if [ "$svchoice" = "$svcho1" ]; then - maim | xclip -selection clipboard -t image/"$image_format" && notify-send "Screenshot saved to clipboard" + maim -f "$image_format" | xclip -selection clipboard -t image/"$image_format" && notify-send "Screenshot saved to clipboard" elif [ "$svchoice" = "$svcho2" ]; then maim -f "$image_format" "$SHOTDIR/$(date +%s).$image_format" && notify-send "Screenshot saved" else @@ -132,7 +132,7 @@ shot_screen_delay() { sleep 1 if [ "$svchoice" = "$svcho1" ]; then - maim | xclip -selection clipboard -t image/"$image_format" && notify-send "Screenshot saved to clipboard"; + maim -f "$image_format" | xclip -selection clipboard -t image/"$image_format" && notify-send "Screenshot saved to clipboard"; elif [ "$svchoice" = "$svcho2" ]; then maim -f "$image_format" "$SHOTDIR/$(date +%s).$image_format" && notify-send "Screenshot saved to $SHOTDIR"; else @@ -149,7 +149,7 @@ shot_area() { fimage_format fsvchos if [ "$svchoice" = "$svcho1" ]; then - maim -s | xclip -selection clipboard -t image/"$image_format" && notify-send "Screenshot saved to clipboard"; + maim -f "$image_format" -s | xclip -selection clipboard -t image/"$image_format" && notify-send "Screenshot saved to clipboard"; elif [ "$svchoice" = "$svcho2" ]; then maim -s -f "$image_format" "$SHOTDIR/$(date +%s).$image_format" && notify-send "Screenshot saved to $SHOTDIR"; else diff --git a/user/.config/rofi/scripts/rofi_wall b/config/awesome/misc/scripts/rofi_wall similarity index 100% rename from user/.config/rofi/scripts/rofi_wall rename to config/awesome/misc/scripts/rofi_wall diff --git a/user/.config/rofi/scripts/rofi_wifi b/config/awesome/misc/scripts/rofi_wifi similarity index 61% rename from user/.config/rofi/scripts/rofi_wifi rename to config/awesome/misc/scripts/rofi_wifi index 1b8ac9444..49dec1aa0 100755 --- a/user/.config/rofi/scripts/rofi_wifi +++ b/config/awesome/misc/scripts/rofi_wifi @@ -4,7 +4,7 @@ # - Description: A simple wifi rofi script # - Dependencies: rofi, NetworkManager -## Main manu options +## Main menu options option1=" Turn on WiFi" option2=" Turn off WiFi" option3="󱛅 Disconnect WiFi" @@ -14,7 +14,7 @@ option6="󱎘 Exit" options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6" ##### -## These variables will store specific information about the wirelessinterface +## 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" @@ -23,14 +23,24 @@ read -r wlan constate <<< "$wifi_info" ## This function uses nmcli to turn off wifi and then sends a notification ##### turnoff() { - nmcli radio wifi off && notify-send "WiFi has been turned off" + nmcli radio wifi off + if [ $? -eq 0 ]; then + notify-send "WiFi has been turned off" + else + notify-send "Failed to turn off WiFi" + fi } ##### ## This function uses nmcli to turn on wifi and then sends a notification ##### turnon() { - nmcli radio wifi on && notify-send "WiFi has been turned on" + nmcli radio wifi on + if [ $? -eq 0 ]; then + notify-send "WiFi has been turned on" + else + notify-send "Failed to turn on WiFi" + fi } ##### @@ -41,9 +51,14 @@ 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" + nmcli device disconnect "$wlan" + if [ $? -eq 0 ]; then + notify-send "WiFi has been disconnected" + else + notify-send "Failed to disconnect WiFi" + fi else - exit 1 + notify-send "Unknown WiFi state" fi } @@ -54,26 +69,26 @@ disconnect() { connect() { notify-send -t 5000 "Scanning networks..." nmcli dev wifi rescan - sleep 1 wifinet=$(nmcli -f BSSID,SSID,BARS,SECURITY dev wifi list | sed -n '1!p' | rofi -dmenu -i -p "  Select a Wifi Network ") - bssid=$(echo "$wifinet" | cut -d' ' -f1) - ssid=$(echo "$wifinet" | cut -d' ' -f3) + if [ -z "$wifinet" ]; then + exit 0 + fi + bssid=$(echo "$wifinet" | awk '{print $1}') + ssid=$(echo "$wifinet" | awk '{print $2}') } ##### ## This function will store the WiFi password in the $pass variable ##### 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 + 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=$(rofi -dmenu -password -p " Enter Password  ") - if [ -n "$pass" ]; then # if the user gave a password - return 0 - else - exit 1 # if not, exit the script + if [ -z "$pass" ]; then + exit 0 fi fi } @@ -83,17 +98,26 @@ password() { ## $bssid and $pass variables ##### action() { - if [ -n "$pass" ]; then # we need to check again if the $pass variable exists + if [ -n "$pass" ]; then 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 + 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 ## ########## -cases=$(echo -e "$options" | rofi -dmenu -i -p "  Wifi Settings " ) # main menu prompt +cases=$(echo -e "$options" | rofi -dmenu -i -p "  Wifi Settings ") +if [ -z "$cases" ]; then + exit 0 +fi + case "$cases" in "$option1") turnon @@ -105,16 +129,16 @@ case "$cases" in 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 + if connect; then + if password; then + action + fi fi ;; "$option5") - "$BROWSER" http://networkcheck.kde.org + ${BROWSER:-xdg-open} http://networkcheck.kde.org ;; "$option6") exit 0 + ;; esac diff --git a/user/.config/awesome/rc.lua b/config/awesome/rc.lua similarity index 90% rename from user/.config/awesome/rc.lua rename to config/awesome/rc.lua index 3e6ff364b..61ac5c8fd 100644 --- a/user/.config/awesome/rc.lua +++ b/config/awesome/rc.lua @@ -3,7 +3,7 @@ local beautiful = require("beautiful") beautiful.init(string.format("%s/.config/awesome/theme/theme.lua", os.getenv("HOME"))) -- selected theme require("core.autostart") -- startup applications require("core.signals") -- some aditional code for signals & error handling -require("core.rules") -- window manager rules +require("config.rules") -- window manager rules require("config.keys") -- keyboard shortcuts require("ui.layouts") -- predifined tiling layouts require("ui.bar") -- the bar on the top diff --git a/user/.config/awesome/theme/icons/centerworkw.png b/config/awesome/theme/icons/centerworkw.png similarity index 100% rename from user/.config/awesome/theme/icons/centerworkw.png rename to config/awesome/theme/icons/centerworkw.png diff --git a/user/.config/awesome/theme/icons/cornerne.png b/config/awesome/theme/icons/cornerne.png similarity index 100% rename from user/.config/awesome/theme/icons/cornerne.png rename to config/awesome/theme/icons/cornerne.png diff --git a/user/.config/awesome/theme/icons/cornernew.png b/config/awesome/theme/icons/cornernew.png similarity index 100% rename from user/.config/awesome/theme/icons/cornernew.png rename to config/awesome/theme/icons/cornernew.png diff --git a/user/.config/awesome/theme/icons/cornernw.png b/config/awesome/theme/icons/cornernw.png similarity index 100% rename from user/.config/awesome/theme/icons/cornernw.png rename to config/awesome/theme/icons/cornernw.png diff --git a/user/.config/awesome/theme/icons/cornernww.png b/config/awesome/theme/icons/cornernww.png similarity index 100% rename from user/.config/awesome/theme/icons/cornernww.png rename to config/awesome/theme/icons/cornernww.png diff --git a/user/.config/awesome/theme/icons/cornerse.png b/config/awesome/theme/icons/cornerse.png similarity index 100% rename from user/.config/awesome/theme/icons/cornerse.png rename to config/awesome/theme/icons/cornerse.png diff --git a/user/.config/awesome/theme/icons/cornersew.png b/config/awesome/theme/icons/cornersew.png similarity index 100% rename from user/.config/awesome/theme/icons/cornersew.png rename to config/awesome/theme/icons/cornersew.png diff --git a/user/.config/awesome/theme/icons/cornersw.png b/config/awesome/theme/icons/cornersw.png similarity index 100% rename from user/.config/awesome/theme/icons/cornersw.png rename to config/awesome/theme/icons/cornersw.png diff --git a/user/.config/awesome/theme/icons/cornersww.png b/config/awesome/theme/icons/cornersww.png similarity index 100% rename from user/.config/awesome/theme/icons/cornersww.png rename to config/awesome/theme/icons/cornersww.png diff --git a/user/.config/awesome/theme/icons/dwindle.png b/config/awesome/theme/icons/dwindle.png similarity index 100% rename from user/.config/awesome/theme/icons/dwindle.png rename to config/awesome/theme/icons/dwindle.png diff --git a/user/.config/awesome/theme/icons/dwindlew.png b/config/awesome/theme/icons/dwindlew.png similarity index 100% rename from user/.config/awesome/theme/icons/dwindlew.png rename to config/awesome/theme/icons/dwindlew.png diff --git a/user/.config/awesome/theme/icons/fairh.png b/config/awesome/theme/icons/fairh.png similarity index 100% rename from user/.config/awesome/theme/icons/fairh.png rename to config/awesome/theme/icons/fairh.png diff --git a/user/.config/awesome/theme/icons/fairhw.png b/config/awesome/theme/icons/fairhw.png similarity index 100% rename from user/.config/awesome/theme/icons/fairhw.png rename to config/awesome/theme/icons/fairhw.png diff --git a/user/.config/awesome/theme/icons/fairv.png b/config/awesome/theme/icons/fairv.png similarity index 100% rename from user/.config/awesome/theme/icons/fairv.png rename to config/awesome/theme/icons/fairv.png diff --git a/user/.config/awesome/theme/icons/fairvw.png b/config/awesome/theme/icons/fairvw.png similarity index 100% rename from user/.config/awesome/theme/icons/fairvw.png rename to config/awesome/theme/icons/fairvw.png diff --git a/user/.config/awesome/theme/icons/floating.png b/config/awesome/theme/icons/floating.png similarity index 100% rename from user/.config/awesome/theme/icons/floating.png rename to config/awesome/theme/icons/floating.png diff --git a/user/.config/awesome/theme/icons/floatingw.png b/config/awesome/theme/icons/floatingw.png similarity index 100% rename from user/.config/awesome/theme/icons/floatingw.png rename to config/awesome/theme/icons/floatingw.png diff --git a/user/.config/awesome/theme/icons/fullscreen.png b/config/awesome/theme/icons/fullscreen.png similarity index 100% rename from user/.config/awesome/theme/icons/fullscreen.png rename to config/awesome/theme/icons/fullscreen.png diff --git a/user/.config/awesome/theme/icons/fullscreenw.png b/config/awesome/theme/icons/fullscreenw.png similarity index 100% rename from user/.config/awesome/theme/icons/fullscreenw.png rename to config/awesome/theme/icons/fullscreenw.png diff --git a/user/.config/awesome/theme/icons/magnifier.png b/config/awesome/theme/icons/magnifier.png similarity index 100% rename from user/.config/awesome/theme/icons/magnifier.png rename to config/awesome/theme/icons/magnifier.png diff --git a/user/.config/awesome/theme/icons/magnifierw.png b/config/awesome/theme/icons/magnifierw.png similarity index 100% rename from user/.config/awesome/theme/icons/magnifierw.png rename to config/awesome/theme/icons/magnifierw.png diff --git a/user/.config/awesome/theme/icons/max.png b/config/awesome/theme/icons/max.png similarity index 100% rename from user/.config/awesome/theme/icons/max.png rename to config/awesome/theme/icons/max.png diff --git a/user/.config/awesome/theme/icons/maxw.png b/config/awesome/theme/icons/maxw.png similarity index 100% rename from user/.config/awesome/theme/icons/maxw.png rename to config/awesome/theme/icons/maxw.png diff --git a/user/.config/awesome/theme/icons/spiral.png b/config/awesome/theme/icons/spiral.png similarity index 100% rename from user/.config/awesome/theme/icons/spiral.png rename to config/awesome/theme/icons/spiral.png diff --git a/user/.config/awesome/theme/icons/spiralw.png b/config/awesome/theme/icons/spiralw.png similarity index 100% rename from user/.config/awesome/theme/icons/spiralw.png rename to config/awesome/theme/icons/spiralw.png diff --git a/user/.config/awesome/theme/icons/tile.png b/config/awesome/theme/icons/tile.png similarity index 100% rename from user/.config/awesome/theme/icons/tile.png rename to config/awesome/theme/icons/tile.png diff --git a/user/.config/awesome/theme/icons/tilebottom.png b/config/awesome/theme/icons/tilebottom.png similarity index 100% rename from user/.config/awesome/theme/icons/tilebottom.png rename to config/awesome/theme/icons/tilebottom.png diff --git a/user/.config/awesome/theme/icons/tilebottomw.png b/config/awesome/theme/icons/tilebottomw.png similarity index 100% rename from user/.config/awesome/theme/icons/tilebottomw.png rename to config/awesome/theme/icons/tilebottomw.png diff --git a/user/.config/awesome/theme/icons/tileleft.png b/config/awesome/theme/icons/tileleft.png similarity index 100% rename from user/.config/awesome/theme/icons/tileleft.png rename to config/awesome/theme/icons/tileleft.png diff --git a/user/.config/awesome/theme/icons/tileleftw.png b/config/awesome/theme/icons/tileleftw.png similarity index 100% rename from user/.config/awesome/theme/icons/tileleftw.png rename to config/awesome/theme/icons/tileleftw.png diff --git a/user/.config/awesome/theme/icons/tiletop.png b/config/awesome/theme/icons/tiletop.png similarity index 100% rename from user/.config/awesome/theme/icons/tiletop.png rename to config/awesome/theme/icons/tiletop.png diff --git a/user/.config/awesome/theme/icons/tiletopw.png b/config/awesome/theme/icons/tiletopw.png similarity index 100% rename from user/.config/awesome/theme/icons/tiletopw.png rename to config/awesome/theme/icons/tiletopw.png diff --git a/user/.config/awesome/theme/icons/tilew.png b/config/awesome/theme/icons/tilew.png similarity index 100% rename from user/.config/awesome/theme/icons/tilew.png rename to config/awesome/theme/icons/tilew.png diff --git a/user/.config/awesome/theme/theme.lua b/config/awesome/theme/theme.lua similarity index 89% rename from user/.config/awesome/theme/theme.lua rename to config/awesome/theme/theme.lua index bdbcdf15b..3eeab8e77 100644 --- a/user/.config/awesome/theme/theme.lua +++ b/config/awesome/theme/theme.lua @@ -11,7 +11,7 @@ local theme = {} -- }}} -- {{{ theme font -theme.font = "mononoki Nerd Font 12" +theme.font = "mononoki Nerd Font 10" --- }}} -- {{{ bar colors @@ -28,8 +28,8 @@ theme.fg_normal = "#ebdbb2" theme.fg_focus = "#dfc4a1" theme.fg_urgent = "#fb4934" theme.bg_normal = "#1d2021" -theme.bg_focus = "#3c3836" -theme.bg_urgent = "#a89984" +-- theme.bg_focus = "#3c3836" +-- theme.bg_urgent = "#a89984" -- }}} -- {{{ Borders @@ -42,17 +42,17 @@ theme.border_marked = "#cc241d" -- }}} -- {{{ Taglist -theme.taglist_font = "Symbols Nerd Font Mono 14" -theme.taglist_bg = "#3c3836" +theme.taglist_font = "Symbols Nerd Font Mono 12" +-- theme.taglist_bg = "#282828" theme.taglist_fg_focus = "#fb4934" theme.taglist_fg_occupied = "#8ec07c" -theme.taglist_fg_urgent = "#504945" +theme.taglist_fg_urgent = "#fabd2f" theme.taglist_fg_empty = "#a89984" theme.taglist_spacing = 7 -- }}} -- {{{ Notifications -theme.notification_font = "mononoki Nerd Font 12" +theme.notification_font = "mononoki Nerd Font 10" theme.notification_bg = "#1d2021" theme.notification_bg_alt = "#282828" theme.notification_fg = "#ebdbb2" @@ -68,8 +68,8 @@ theme.hotkeys_modifiers_fg = "#458588" theme.hotkeys_label_bg = "#d79921" theme.hotkeys_label_fg = "#1d2021" theme.hotkeys_group_margin = dpi(20) -theme.hotkeys_description_font = "mononoki Nerd Font 12" -theme.hotkeys_font = "mononoki Nerd Font 12" +theme.hotkeys_description_font = "mononoki Nerd Font 10" +theme.hotkeys_font = "mononoki Nerd Font 10" -- }}} -- {{{ Mouse finder diff --git a/user/.config/awesome/ui/bar.lua b/config/awesome/ui/bar.lua similarity index 85% rename from user/.config/awesome/ui/bar.lua rename to config/awesome/ui/bar.lua index 7c4b407c3..3fdd15a2e 100644 --- a/user/.config/awesome/ui/bar.lua +++ b/config/awesome/ui/bar.lua @@ -9,8 +9,16 @@ local layout = require("ui.widgets.layout") local wifi = require("ui.widgets.wifi") local volume = require("ui.widgets.volume") +-- Function to show or hide the right-hand widgets based on screen focus +local function update_right_widgets_visibility() + for s in screen do + if s.right_widgets_container then + s.right_widgets_container.visible = (s == awful.screen.focused()) + end + end +end + -- Textclock widget -local mytextclock = wibox.widget.textclock() screen.connect_signal("request::desktop_decoration", function(s) -- Tag names for each screen awful.tag( @@ -32,7 +40,6 @@ screen.connect_signal("request::desktop_decoration", function(s) -- Layoutbox widget s.mylayoutbox = { widget = wibox.container.background, - bg = theme.bg_normal, shape = gears.shape.circle, awful.widget.layoutbox { screen = s, @@ -71,9 +78,7 @@ screen.connect_signal("request::desktop_decoration", function(s) -- Taglist widget s.mytaglist = { - widget = wibox.container.background, - bg = theme.taglist_bg, - shape = gears.shape.octogon, + widget = wibox.widget.background, awful.widget.taglist { screen = s, filter = awful.widget.taglist.filter.all, @@ -151,16 +156,16 @@ screen.connect_signal("request::desktop_decoration", function(s) } -- Main right widget container with pill shape - local right_widgets = { + s.right_widgets_container = wibox.widget { custom_widget_container, widget = wibox.container.background, - shape = gears.shape.octogon, + shape = gears.shape.rounded_rect, } -- Wibar s.mywibox = awful.wibar { position = "top", - height = (30), + height = (20), border_width = (6), border_color = theme.bg_normal, screen = s, @@ -181,17 +186,27 @@ screen.connect_signal("request::desktop_decoration", function(s) { -- [[ Right widgets ]] layout = wibox.layout.fixed.horizontal, - right_widgets + s.right_widgets_container }, }, { -- [[ Center widgets ]] -- Clock widget - wibox.container.background(mytextclock, theme.bar_clock, gears.shape.octogon), + wibox.widget.textclock(), valign = "center", halign = "center", layout = wibox.container.place, } } } + + -- Update the visibility of right-hand widgets on startup + update_right_widgets_visibility() end) + +-- Connect signal to update visibility when screen focus changes +client.connect_signal("focus", update_right_widgets_visibility) +client.connect_signal("unfocus", update_right_widgets_visibility) +screen.connect_signal("removed", update_right_widgets_visibility) +screen.connect_signal("added", update_right_widgets_visibility) +screen.connect_signal("screen::focus", update_right_widgets_visibility) diff --git a/user/.config/awesome/ui/layouts.lua b/config/awesome/ui/layouts.lua similarity index 92% rename from user/.config/awesome/ui/layouts.lua rename to config/awesome/ui/layouts.lua index 29ce46a05..cce3b6499 100644 --- a/user/.config/awesome/ui/layouts.lua +++ b/config/awesome/ui/layouts.lua @@ -1,5 +1,5 @@ local awful = require("awful") -local centerwork = require("modules.layouts.centerwork") +local centerwork = require("ui.layouts.centerwork") tag.connect_signal("request::default_layouts", function() diff --git a/user/.config/awesome/modules/layouts/centerwork.lua b/config/awesome/ui/layouts/centerwork.lua similarity index 100% rename from user/.config/awesome/modules/layouts/centerwork.lua rename to config/awesome/ui/layouts/centerwork.lua diff --git a/user/.config/awesome/ui/notif.lua b/config/awesome/ui/notif.lua similarity index 97% rename from user/.config/awesome/ui/notif.lua rename to config/awesome/ui/notif.lua index 0034498fa..94e4cf5b8 100644 --- a/user/.config/awesome/ui/notif.lua +++ b/config/awesome/ui/notif.lua @@ -8,7 +8,7 @@ local ruled = require("ruled") naughty.config.defaults.ontop = true naughty.config.defaults.timeout = 5 naughty.config.defaults.screen = awful.screen.focused() -naughty.config.defaults.border_width = 0 +naughty.config.defaults.border_width = 2 naughty.config.defaults.position = "top_right" naughty.config.defaults.title = "Notification" @@ -63,6 +63,7 @@ naughty.connect_signal("request::display", { { { + naughty.widget.icon, naughty.widget.title, forced_height = dpi(38), layout = wibox.layout.align.horizontal diff --git a/config/awesome/ui/widgets/battery.lua b/config/awesome/ui/widgets/battery.lua new file mode 100644 index 000000000..5c6b703b8 --- /dev/null +++ b/config/awesome/ui/widgets/battery.lua @@ -0,0 +1,112 @@ +local wibox = require("wibox") +local awful = require("awful") +local gears = require("gears") + +-- Create a text widget to display the battery percentage and power profile +local battery_text = wibox.widget.textbox() + +local function update_battery_widget() + awful.spawn.easy_async("acpi", function(stdout) + -- Variables to accumulate total battery percentage and charging status + local total_percentage = 0 + local total_batteries = 0 + local ac_adapter_status = "0" + + -- Iterate over each battery line in the output + for battery in stdout:gmatch("[^\r\n]+") do + local battery_percentage = tonumber(string.match(battery, "(%d?%d?%d)%%")) + local battery_status = battery:match("Charging") and "1" or "0" + + -- Sum up the battery percentages and determine the overall charging status + total_percentage = total_percentage + battery_percentage + total_batteries = total_batteries + 1 + if battery_status == "1" then + ac_adapter_status = "1" + end + end + + -- Calculate the average battery percentage + local average_percentage = total_percentage / total_batteries + + -- Get the current power profile + local currntpwr = io.popen("powerprofilesctl get"):read("*line") + + -- Set the appropriate power profile symbol based on the current power profile + local pwr_symbol = "" + if currntpwr == "performance" then + pwr_symbol = " 󰓅 " + elseif currntpwr == "balanced" then + pwr_symbol = " 󰾅 " + elseif currntpwr == "power-saver" then + pwr_symbol = " 󰾆 " + end + + -- Set the appropriate battery icon based on the average battery percentage and charging status + local icon = "󰁹" + if ac_adapter_status == "1" then + if average_percentage >= 100 then + icon = "󰂅" + elseif average_percentage >= 90 then + icon = "󰂋" + elseif average_percentage >= 80 then + icon = "󰂊" + elseif average_percentage >= 70 then + icon = "󰢞" + elseif average_percentage >= 60 then + icon = "󰂉" + elseif average_percentage >= 50 then + icon = "󰢝" + elseif average_percentage >= 40 then + icon = "󰂈" + elseif average_percentage >= 30 then + icon = "󰂇" + elseif average_percentage >= 20 then + icon = "󰂆" + else + icon = "󰢜" + end + else + if average_percentage >= 100 then + icon = "󰁹" + elseif average_percentage >= 90 then + icon = "󰂂" + elseif average_percentage >= 80 then + icon = "󰂁" + elseif average_percentage >= 70 then + icon = "󰂀" + elseif average_percentage >= 60 then + icon = "󰁿" + elseif average_percentage >= 50 then + icon = "󰁾" + elseif average_percentage >= 40 then + icon = "󰁽" + elseif average_percentage >= 30 then + icon = "󰁼" + elseif average_percentage >= 20 then + icon = "󰁻" + else + icon = "󰂃" + end + end + + -- Set the text of the battery_text widget with the battery icon, average battery percentage, and power profile symbol + battery_text:set_markup(icon .. pwr_symbol .. string.format("%.0f", average_percentage) .. "%") + end) +end + +-- Update the battery widget initially +update_battery_widget() + +-- Refresh the battery widget every 10 seconds +local timer = gears.timer.start_new(10, function() + update_battery_widget() + return true +end) + +-- Create a battery widget that contains the text widget +local battery_widget = wibox.widget { + battery_text, + layout = wibox.layout.align.horizontal +} + +return battery_widget diff --git a/user/.config/awesome/ui/widgets/brightness.lua b/config/awesome/ui/widgets/brightness.lua similarity index 100% rename from user/.config/awesome/ui/widgets/brightness.lua rename to config/awesome/ui/widgets/brightness.lua diff --git a/user/.config/awesome/ui/widgets/layout.lua b/config/awesome/ui/widgets/layout.lua similarity index 100% rename from user/.config/awesome/ui/widgets/layout.lua rename to config/awesome/ui/widgets/layout.lua diff --git a/user/.config/awesome/ui/widgets/volume.lua b/config/awesome/ui/widgets/volume.lua similarity index 100% rename from user/.config/awesome/ui/widgets/volume.lua rename to config/awesome/ui/widgets/volume.lua diff --git a/config/awesome/ui/widgets/wifi.lua b/config/awesome/ui/widgets/wifi.lua new file mode 100644 index 000000000..f94dca4a6 --- /dev/null +++ b/config/awesome/ui/widgets/wifi.lua @@ -0,0 +1,39 @@ +local awful = require("awful") +local wibox = require("wibox") +local gears = require("gears") + +local wifi_widget = wibox.widget.textbox() + +local function update_wifi_widget() + local cmd = [[nmcli -t -f DEVICE,TYPE,STATE dev]] + awful.spawn.easy_async_with_shell(cmd, function(output) + local connected = false + local icon = "󰤮 " -- Default to disconnected icon + + for line in output:gmatch("[^\r\n]+") do + local device, dev_type, state = line:match("([^:]+):([^:]+):([^:]+)") + if state == "connected" then + if dev_type == "wifi" then + icon = "󰤨 " -- Wi-Fi connected icon + elseif dev_type == "ethernet" then + icon = "󰈀 " -- Ethernet connected icon + end + connected = true + break + end + end + + wifi_widget:set_text(icon) + end) +end + +-- Update the widget initially +update_wifi_widget() + +-- Refresh the widget every 5 seconds +local timer = gears.timer.start_new(5, function() + update_wifi_widget() + return true +end) + +return wifi_widget diff --git a/user/.config/btop/btop.conf b/config/btop/btop.conf similarity index 86% rename from user/.config/btop/btop.conf rename to config/btop/btop.conf index e7f9b1b30..315c63a4f 100644 --- a/user/.config/btop/btop.conf +++ b/config/btop/btop.conf @@ -1,4 +1,4 @@ -#? Config file for btop v. 1.2.13 +#? Config file for btop v. 1.3.2 #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" @@ -37,6 +37,9 @@ graph_symbol = "braille" # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". graph_symbol_cpu = "default" +# Graph symbol to use for graphs in gpu box, "default", "braille", "block" or "tty". +graph_symbol_gpu = "default" + # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". graph_symbol_mem = "default" @@ -46,21 +49,21 @@ graph_symbol_net = "default" # Graph symbol to use for graphs in cpu box, "default", "braille", "block" or "tty". graph_symbol_proc = "default" -#* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace. +#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace. shown_boxes = "cpu mem net proc" #* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. -update_ms = 200 +update_ms = 1000 #* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", #* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. -proc_sorting = "threads" +proc_sorting = "cpu direct" #* Reverse sorting order, True or False. proc_reversed = False #* Show processes as a tree. -proc_tree = True +proc_tree = False #* Use the cpu graph colors in the process list. proc_colors = True @@ -81,10 +84,13 @@ proc_cpu_graphs = True proc_info_smaps = False #* Show proc box on left side of screen instead of right. -proc_left = True +proc_left = False #* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). -proc_filter_kernel = True +proc_filter_kernel = False + +#* In tree-view, always accumulate child process resources in the parent process. +proc_aggregate = False #* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. #* Select from a list of detected attributes from the options menu. @@ -94,6 +100,9 @@ cpu_graph_upper = "total" #* Select from a list of detected attributes from the options menu. cpu_graph_lower = "total" +#* If gpu info should be shown in the cpu box. Available values = "Auto", "On" and "Off". +show_gpu_info = "Auto" + #* Toggles if the lower CPU graph should be inverted. cpu_invert_lower = True @@ -207,6 +216,33 @@ show_battery = True #* Which battery to use if multiple are present. "Auto" for auto detection. selected_battery = "Auto" +#* Show power stats of battery next to charge indicator. +show_battery_watts = True + #* Set loglevel for "~/.config/btop/btop.log" levels are: "ERROR" "WARNING" "INFO" "DEBUG". #* The level set includes all lower levels, i.e. "DEBUG" will show all logging info. -log_level = "WARNING" \ No newline at end of file +log_level = "WARNING" + +#* Measure PCIe throughput on NVIDIA cards, may impact performance on certain cards. +nvml_measure_pcie_speeds = True + +#* Horizontally mirror the GPU graph. +gpu_mirror_graph = True + +#* Custom gpu0 model name, empty string to disable. +custom_gpu_name0 = "" + +#* Custom gpu1 model name, empty string to disable. +custom_gpu_name1 = "" + +#* Custom gpu2 model name, empty string to disable. +custom_gpu_name2 = "" + +#* Custom gpu3 model name, empty string to disable. +custom_gpu_name3 = "" + +#* Custom gpu4 model name, empty string to disable. +custom_gpu_name4 = "" + +#* Custom gpu5 model name, empty string to disable. +custom_gpu_name5 = "" diff --git a/user/.config/fish/config.fish b/config/fish/config.fish similarity index 80% rename from user/.config/fish/config.fish rename to config/fish/config.fish index b71bbebed..6d5a06746 100644 --- a/user/.config/fish/config.fish +++ b/config/fish/config.fish @@ -9,13 +9,14 @@ # 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 neovide --neovim-bin $EDITOR +set VISUAL "wezterm start --class neovim $HOME/.local/bin/lvim" +set GOPATH "$HOME/.go" ### SET BAT AS MANPAGER #set -x MANPAGER "sh -c 'col -bx | bat -l man -p'" @@ -114,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 ### @@ -124,11 +131,17 @@ alias .3='cd ../../..' alias .4='cd ../../../..' alias .5='cd ../../../../..' -# emacs as vim -alias vim="$EDITOR" +# 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 @@ -138,12 +151,12 @@ alias lt='eza -aT --color=always --group-directories-first' # tree listing alias l.='eza -a | egrep "^\."' # package management -alias pac-up='paru -Syu' -alias pac-get='paru -S' -alias pac-rmv='paru -Rcns' -alias pac-rmv-sec='paru -R' -alias pac-qry='paru -Ss' -alias pac-cln='paru -Scc && paru -Rns (pacman -Qtdq)' +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' @@ -183,17 +196,18 @@ 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='systemctl poweroff' @@ -210,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' @@ -226,3 +240,4 @@ alias blt='bluetoothctl' ### SETTING THE STARSHIP PROMPT ### starship init fish | source +zoxide init fish | source diff --git a/user/.config/git/config b/config/git/config similarity index 77% rename from user/.config/git/config rename to config/git/config index e39e01c66..250bc9707 100644 --- a/user/.config/git/config +++ b/config/git/config @@ -1,4 +1,4 @@ [user] mail = maverick.xero@proton.me - name = Darius Drake + name = Clay Gomera email = maverick.xero@proton.me 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..ae5eaa83b 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=Awesthetic-dark +gtk-icon-theme-name=Crule-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/kitty/kitty.conf b/config/kitty/kitty.conf new file mode 100644 index 000000000..81a41fd92 --- /dev/null +++ b/config/kitty/kitty.conf @@ -0,0 +1,67 @@ +cursor_shape underline +cursor_underline_thickness 3.0 +font_family Mononoki Nerd Font +bold_font auto +italic_font auto +bold_italic_font auto +font_size 12.0 +shell fish +confirm_os_window_close 0 +background_opacity 0.95 +window_margin_width 2 + +# Based on https://github.com/morhetz/gruvbox by morhetz +# Adapted to kitty by wdomitrz + +cursor #928374 +cursor_text_color background + +url_color #83a598 + +visual_bell_color #8ec07c +bell_border_color #8ec07c + +active_border_color #d3869b +inactive_border_color #665c54 + +foreground #ebdbb2 +background #1d2021 +selection_foreground #928374 +selection_background #ebdbb2 + +active_tab_foreground #fbf1c7 +active_tab_background #665c54 +inactive_tab_foreground #a89984 +inactive_tab_background #3c3836 + +# black (bg3/bg4) +color0 #665c54 +color8 #7c6f64 + +# red +color1 #cc241d +color9 #fb4934 + +#: green +color2 #98971a +color10 #b8bb26 + +# yellow +color3 #d79921 +color11 #fabd2f + +# blue +color4 #458588 +color12 #83a598 + +# purple +color5 #b16286 +color13 #d3869b + +# aqua +color6 #689d6a +color14 #8ec07c + +# white (fg4/fg3) +color7 #a89984 +color15 #bdae93 diff --git a/config/lvim/config.lua b/config/lvim/config.lua new file mode 100644 index 000000000..e3bdd7fed --- /dev/null +++ b/config/lvim/config.lua @@ -0,0 +1,83 @@ +-- 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" + +-- change theme settings +lvim.colorscheme = "gruvbox" +lvim.transparent_window = true +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/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/user/.config/newsboat/config b/config/newsboat/config similarity index 95% rename from user/.config/newsboat/config rename to config/newsboat/config index 9246557ae..d104d6d13 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 %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/config/rofi/config.rasi b/config/rofi/config.rasi new file mode 100644 index 000000000..f6a88d327 --- /dev/null +++ b/config/rofi/config.rasi @@ -0,0 +1,21 @@ +configuration { + modi: "run,drun,window"; + lines: 10; + font: "mononoki Nerd Font 10"; + show-icons: true; + icon-theme: "Papirus-Dark"; + terminal: "kitty"; + drun-display-format: "{icon} {name}"; + location: 0; + disable-history: false; + hide-scrollbar: true; + display-drun: " 󰀻 Apps "; + display-run: "  Run "; + display-window: " 󰖯 Window "; + display-Network: " 󰤨 Network "; + sidebar-mode: true; + dpi: 100; +} + +@theme "gruvbox-dark" + diff --git a/user/.config/rofi/config.rasi b/config/rofi/themes/gruvbox-dark.rasi similarity index 66% rename from user/.config/rofi/config.rasi rename to config/rofi/themes/gruvbox-dark.rasi index 1221f416e..fd90caa27 100644 --- a/user/.config/rofi/config.rasi +++ b/config/rofi/themes/gruvbox-dark.rasi @@ -1,32 +1,28 @@ -configuration{ - modi: "run,drun,window"; - lines: 10; - font: "mononoki Nerd Font 13"; - show-icons: true; - icon-theme: "gruvbox-dark-icons-gtk"; - terminal: "alacritty"; - drun-display-format: "{icon} {name}"; - location: 0; - disable-history: false; - hide-scrollbar: true; - display-drun: " 󰀻 Apps "; - display-run: "  Run "; - display-window: " 󰖯 Window "; - display-Network: " 󰤨 Network "; - sidebar-mode: true; - dpi: 100; +* { + bg-col: #1d2021; + bg-col-light: #282828; + border-col: #504945; + selected-col: #3c3836; + blue: #458588; + fg-col: #ebdbb2; + fg-col2: #ebdbb2; + grey: #928374; + width: 600; + selected: #ebdbb2; + red: #fb4934; + green: #98971a; + empty: #3c3836; + inactive: #928374; } -@theme "gruvbox-dark" - element-text, element-icon , mode-switcher { background-color: inherit; text-color: inherit; } window { - height: 380; - width: 1000; + height: 400; + width: 700; border: 3px; border-color: @border-col; background-color: @bg-col; @@ -67,7 +63,7 @@ listview { border: 0px 0px 0px; padding: 2px 2px 2px; margin: 10px 20px 0px 20px; - columns: 1; + columns: 2; background-color: @bg-col; } @@ -88,7 +84,7 @@ element selected { mode-switcher { spacing: 0; - } +} button { padding: 10px; @@ -99,6 +95,6 @@ button { } button selected { - background-color: @selected-col; - text-color: @red; + background-color: @selected-col; + text-color: @red; } 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/user-dirs.dirs b/config/user-dirs.dirs similarity index 100% rename from user/.config/user-dirs.dirs rename to config/user-dirs.dirs diff --git a/user/.config/vifm/colors/gruvbox.vifm b/config/vifm/colors/gruvbox.vifm similarity index 100% rename from user/.config/vifm/colors/gruvbox.vifm rename to config/vifm/colors/gruvbox.vifm diff --git a/user/.config/vifm/scripts/vifmimg b/config/vifm/scripts/vifmimg similarity index 97% rename from user/.config/vifm/scripts/vifmimg rename to config/vifm/scripts/vifmimg index 5888bdd07..2fef83ef9 100755 --- a/user/.config/vifm/scripts/vifmimg +++ b/config/vifm/scripts/vifmimg @@ -21,7 +21,7 @@ main() { image "$1" "$2" "$3" "$4" "$5" "$FILE" ;; "video") - [ ! -f "$PCACHE" ] && \ + [ ! -f "${PCACHE}.jpg" ] && \ ffmpegthumbnailer -i "$6" -o "${PCACHE}.jpg" -s 0 -q 5 image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg" ;; diff --git a/user/.config/vifm/scripts/vifmrun b/config/vifm/scripts/vifmrun similarity index 100% rename from user/.config/vifm/scripts/vifmrun rename to config/vifm/scripts/vifmrun diff --git a/user/.config/vifm/vifm-help.txt b/config/vifm/vifm-help.txt similarity index 100% rename from user/.config/vifm/vifm-help.txt rename to config/vifm/vifm-help.txt diff --git a/user/.config/vifm/vifmrc b/config/vifm/vifmrc similarity index 98% rename from user/.config/vifm/vifmrc rename to config/vifm/vifmrc index bca99a112..6b2fa0a20 100644 --- a/user/.config/vifm/vifmrc +++ b/config/vifm/vifmrc @@ -246,10 +246,10 @@ filetype *.[1-8] man ./%c fileviewer *.[1-8] man ./%c | col -b " Images -filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm +filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,*.webp \ {View in imv} - \ nsxiv %f &, -fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.xpm,*.gif + \ imv %f &, +fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,*.webp \ vifmimg draw %px %py %pw %ph %c \ %pc \ vifmimg clear @@ -296,7 +296,7 @@ filetype *.asc \ !!gpg --verify %c, " Torrent -filetype *.torrent ktorrent %f & +filetype *.torrent flatpak run org.qbittorrent.qBittorrent %f & fileviewer *.torrent dumptorrent -v %c " FuseZipMount @@ -346,7 +346,7 @@ filetype *.7z fileviewer *.7z 7z l %c " Office files -filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx libreoffice %f & +filextype *.odt,*.doc,*.docx,*.xls,*.xlsx,*.odp,*.pptx flatpak run org.libreoffice.LibreOffice %f & fileviewer *.doc catdoc %c fileviewer *.docx docx2txt.pl %f - diff --git a/user/.config/wget/wgetrc b/config/wget/wgetrc similarity index 100% rename from user/.config/wget/wgetrc rename to config/wget/wgetrc 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/system/etc/X11/xorg.conf.d/40-libinput.conf b/etc/X11/xorg.conf.d/40-libinput.conf similarity index 100% rename from system/etc/X11/xorg.conf.d/40-libinput.conf rename to etc/X11/xorg.conf.d/40-libinput.conf diff --git a/system/etc/default/grub/grub b/etc/default/grub/grub similarity index 96% rename from system/etc/default/grub/grub rename to etc/default/grub/grub index 526342268..072a90b8f 100644 --- a/system/etc/default/grub/grub +++ b/etc/default/grub/grub @@ -1,7 +1,7 @@ # GRUB boot loader configuration GRUB_DEFAULT=0 -GRUB_TIMEOUT=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" GRUB_CMDLINE_LINUX="" @@ -14,7 +14,7 @@ GRUB_ENABLE_CRYPTODISK=y # Set to 'countdown' or 'hidden' to change timeout behavior, # press ESC key to display menu. -GRUB_TIMEOUT_STYLE=menu +GRUB_TIMEOUT_STYLE=hidden # Uncomment to use basic console GRUB_TERMINAL_INPUT=console @@ -60,5 +60,5 @@ GRUB_DISABLE_RECOVERY=true # 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=false +GRUB_DISABLE_OS_PROBER=true diff --git a/system/etc/issue b/etc/issue similarity index 100% rename from system/etc/issue rename to etc/issue diff --git a/system/etc/mkinitcpio.conf b/etc/mkinitcpio.conf similarity index 74% rename from system/etc/mkinitcpio.conf rename to etc/mkinitcpio.conf index 83667b8b6..6feb6169c 100644 --- a/system/etc/mkinitcpio.conf +++ b/etc/mkinitcpio.conf @@ -47,13 +47,17 @@ FILES=(/boot/volume.key) ## 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 autodetect modconf kms keyboard sd-vconsole block sd-encrypt keymap lvm2 filesystems fsck) +HOOKS=(base systemd 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. Use 'cat' to create an uncompressed image. +# 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" @@ -67,7 +71,11 @@ HOOKS=(base systemd autodetect modconf kms keyboard sd-vconsole block sd-encrypt #COMPRESSION_OPTIONS=() # MODULES_DECOMPRESS -# Decompress kernel modules during initramfs creation. -# Enable to speedup boot process, disable to save RAM -# during early userspace. Switch (yes/no). -#MODULES_DECOMPRESS="yes" +# 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/system/etc/pacman.conf b/etc/pacman.conf similarity index 100% rename from system/etc/pacman.conf rename to etc/pacman.conf diff --git a/system/etc/pam.d/i3lock b/etc/pam.d/i3lock similarity index 100% rename from system/etc/pam.d/i3lock rename to etc/pam.d/i3lock 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/system/etc/pam.d/sudo b/etc/pam.d/sudo similarity index 100% rename from system/etc/pam.d/sudo rename to etc/pam.d/sudo diff --git a/system/etc/pam.d/system-local-login b/etc/pam.d/system-local-login similarity index 100% rename from system/etc/pam.d/system-local-login rename to etc/pam.d/system-local-login diff --git a/home/.bash_profile b/home/.bash_profile new file mode 100644 index 000000000..b8ae2b114 --- /dev/null +++ b/home/.bash_profile @@ -0,0 +1,83 @@ +#!/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" + +# X11 +export XINITRC="$XDG_CONFIG_HOME/X11/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 TERMINAL="kitty" +export EDITOR="$HOME/.local/bin/lvim" +export VISUAL="kitty --class neovim -- $EDITOR" +export BROWSER="brave" +export VIEWER="zathura" + +# Dev Tools Envs +export GOPATH="$HOME/.go" + +# 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 "$HOME/.go/bin" ]; then + PATH="$HOME/.go/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 + +# Bashrc +source "$BASHRC" + +# Create config directories if they don't exist +if [ ! -d "$WGETDIR" ] || [ ! -d "$GNUPGHOME" ]; then + mkdir -p "$WGETDIR" "$GNUPGHOME" +fi +if [ ! -f "$WGETRC" ]; then + touch "$WGETRC" +fi + +# bind sshagent +if [[ -z "${SSH_CONNECTION}" ]]; then + export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" +fi + +# Starting xsession +if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then + startx "$XINITRC" -- vt1 -keeptty &>> /dev/null + logout +fi diff --git a/user/.bashrc b/home/.bashrc similarity index 86% rename from user/.bashrc rename to home/.bashrc index 5af643a5b..a8cd7d058 100644 --- a/user/.bashrc +++ b/home/.bashrc @@ -1,16 +1,9 @@ -## ____ __ -## / __ \_________ _/ /_____ -## / / / / ___/ __ `/ //_/ _ \ -## / /_/ / / / /_/ / ,< / __/ 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 MANPAGER="sh -c 'col -bx | bat -l man -p'" +export MANPAGER="bat -p" # use bash-completion, if available [[ $PS1 && -f /usr/share/bash-completion/bash_completion ]] && \ @@ -25,17 +18,6 @@ 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*) @@ -110,6 +92,11 @@ function up () { fi } +# unlock ssh keys +function unlock() { + ssh-add "$HOME/.ssh/$1" +} + # cd alias \ ..="cd .." \ @@ -121,11 +108,18 @@ alias \ # 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" +# 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" -alias \ +[ -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" \ @@ -134,12 +128,11 @@ alias \ # function to detect os and assign aliases to package managers alias \ - pac-up="paru -Syu" \ - pac-get="paru -S" \ - pac-rmv="paru -Rcns" \ - pac-rmv-sec="paru -R" \ - pac-qry="paru -Ss" \ - pac-cln="paru -Scc && sudo pacman -Rns $(pacman -Qtdq)" + pkg-update="sudo pacman -Syyu" \ + pkg-install="sudo pacman -S" \ + pkg-remove="sudo pacman -Rcns" \ + pkg-autoremove="sudo xbps-remove -Oo" \ + pkg-search="sudo pacman -Ss" # colorize grep output (good for log files) alias \ @@ -227,5 +220,6 @@ alias \ wfi-off="nmcli radio wifi off" \ blt="bluetoothctl" -### SETTING THE STARSHIP PROMPT ### +# starship and zoxide eval "$(starship init bash)" +eval "$(zoxide init bash)" diff --git a/user/.local/share/icons/default/index.theme b/local/share/icons/default/index.theme similarity index 100% rename from user/.local/share/icons/default/index.theme rename to local/share/icons/default/index.theme diff --git a/user/.bash_profile b/user/.bash_profile deleted file mode 100644 index 90039edb6..000000000 --- a/user/.bash_profile +++ /dev/null @@ -1,49 +0,0 @@ -#!/bin/sh -## ____ __ -## / __ \_________ _/ /_____ -## / / / / ___/ __ `/ //_/ _ \ -## / /_/ / / / /_/ / ,< / __/ 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 TERMINAL="wezterm" -export EDITOR="$HOME/.local/bin/lvim" -export VISUAL="neovide --neovim-bin $EDITOR" -export BROWSER=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 - startx "$XINITRC" -- vt1 -keeptty &>/dev/null - logout -fi 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/awesome/apps.lua b/user/.config/awesome/apps.lua deleted file mode 100644 index d870b4eed..000000000 --- a/user/.config/awesome/apps.lua +++ /dev/null @@ -1,36 +0,0 @@ --- Apps selection, see config/keys.lua to see how this is handled in keybindings -local apps = { - terminal = "wezterm", -- terminal emulator - - -- rofi - drunner = "rofi -show drun -show-icons", -- desktop runner - runner = "rofi -show run", -- normal runner - runner_power = "$HOME/.config/rofi/scripts/rofi_power", -- power manager - runner_mount = "$HOME/.config/rofi/scripts/rofi_mount", -- drive mounter - runner_blue = "$HOME/.config/rofi/scripts/rofi_blue", -- bluetooth manager - runner_wifi = "$HOME/.config/rofi/scripts/rofi_wifi", -- wifi manager - runner_scrot = "$HOME/.config/rofi/scripts/rofi_scrot", -- screenshots manager - runner_emoji = "$HOME/.config/rofi/scripts/rofi_emoji", -- emojis manager - runner_wall = "$HOME/.config/rofi/scripts/rofi_wall", -- wallpapers manager - - -- terminal scripts - ytfzfv = "wezterm start --class vidytfzf -- ytfzf -flstT ueberzug", -- youtube - ytfzfm = "wezterm start --class musytfzf -- ytfzf -mlstT ueberzug", -- youtube music - ani_cli = "wezterm start --class ani-cli -- ani-cli", -- anime - flix_cli = "wezterm start --class flix-cli -- flix-cli", -- movies - newsboat = "wezterm start --class newsboat -- newsboat", -- newsboat - btop = "wezterm start --class btop -- btop", -- btop - pulsemixer = "wezterm start --class pulsemixer -- pulsemixer", -- pulsemixer - - -- default apps per tag - editor = "neovide --neovim-bin .local/bin/lvim", -- TAG 1 - file = "wezterm start --class vifm -- .config/vifm/scripts/vifmrun", -- TAG 2 - browser = "flatpak run org.mozilla.firefox", -- TAG 3 - chat = "flatpak run org.signal.Signal", -- TAG 4 - music = "wezterm start --class cmus -- cmus", -- TAG 5 - videoeditor = "flatpak run org.kde.kdenlive", -- TAG 6 - imageeditor = "flatpak run org.kde.krita", -- TAG 7 - office = "flatpak run org.libreoffice.LibreOffice", -- TAG 8 - game = "flatpak run com.valvesoftware.Steam" -- TAG 9 -} -return apps diff --git a/user/.config/awesome/core/autostart.lua b/user/.config/awesome/core/autostart.lua deleted file mode 100644 index 3fc2991c5..000000000 --- a/user/.config/awesome/core/autostart.lua +++ /dev/null @@ -1,9 +0,0 @@ -local awful = require("awful") --- session manager -awful.util.spawn_with_shell("/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 &") --- set wallpaper -awful.util.spawn_with_shell("$HOME/.fehbg &") --- automatically hide the cursor -awful.util.spawn_with_shell("unclutter --hide-on-touch &") --- compositor -awful.util.spawn_with_shell("picom --config ~/.config/picom/picom.conf &") diff --git a/user/.config/awesome/ui/widgets/battery.lua b/user/.config/awesome/ui/widgets/battery.lua deleted file mode 100644 index b1fe67f67..000000000 --- a/user/.config/awesome/ui/widgets/battery.lua +++ /dev/null @@ -1,117 +0,0 @@ -local wibox = require("wibox") -local awful = require("awful") -local gears = require("gears") - --- Create a text widget to display the battery percentage and power profile -local battery_text = wibox.widget.textbox() - -local function update_battery_widget() - awful.spawn.easy_async("acpi", function(stdout) - -- Get the current battery percentage and charging status - local battery_percentage = tonumber(string.match(stdout, "(%d?%d?%d)%%")) - local ac_adapter_status = stdout:match("Charging") and "1" or "0" - - -- Get the current power profile - local currntpwr = io.popen("powerprofilesctl get"):read("*line") - - -- Set the appropriate power profile symbol based on the current power profile - local pwr_symbol = "" - if currntpwr == "performance" then - pwr_symbol = " - 󰓅 Performance" - elseif currntpwr == "balanced" then - pwr_symbol = " - 󰾅 Balanced" - elseif currntpwr == "power-saver" then - pwr_symbol = " - 󰾆 PowerSaver" - end - - -- Set the appropriate battery icon based on the current battery percentage and charging status - local icon = "󰁹" - if ac_adapter_status == "1" then - if battery_percentage >= 100 then - icon = "󰂅" - elseif battery_percentage >= 90 then - icon = "󰂋" - elseif battery_percentage >= 80 then - icon = "󰂊" - elseif battery_percentage >= 70 then - icon = "󰢞" - elseif battery_percentage >= 60 then - icon = "󰂉" - elseif battery_percentage >= 50 then - icon = "󰢝" - elseif battery_percentage >= 40 then - icon = "󰂈" - elseif battery_percentage >= 30 then - icon = "󰂇" - elseif battery_percentage >= 20 then - icon = "󰂆" - else - icon = "󰢜" - end - else - if battery_percentage >= 100 then - icon = "󰁹" - elseif battery_percentage >= 90 then - icon = "󰂂" - elseif battery_percentage >= 80 then - icon = "󰂁" - elseif battery_percentage >= 70 then - icon = "󰂀" - elseif battery_percentage >= 60 then - icon = "󰁿" - elseif battery_percentage >= 50 then - icon = "󰁾" - elseif battery_percentage >= 40 then - icon = "󰁽" - elseif battery_percentage >= 30 then - icon = "󰁼" - elseif battery_percentage >= 20 then - icon = "󰁻" - else - icon = "󰂃" - end - end - - -- Set the text of the battery_text widget with the battery icon, battery percentage, and power profile symbol - battery_text:set_markup("" .. - icon .. "" .. " " .. battery_percentage .. "%" .. pwr_symbol) - end) -end - --- Update the battery widget initially -update_battery_widget() - --- Refresh the battery widget every 10 seconds -local timer = gears.timer.start_new(10, function() - update_battery_widget() - return true -end) - --- Create a battery widget that contains the text widget -local battery_widget = wibox.widget { - battery_text, - layout = wibox.layout.align.horizontal -} - --- Add a tooltip to the battery widget -battery_widget.tooltip = awful.tooltip { - objects = { battery_widget }, - timer_function = function() - local remaining_time = "Unknown" - local status = io.popen("acpi -b"):read("*line") - local percentage = tonumber(string.match(status, "(%d?%d?%d)%%")) - if percentage ~= nil then - local time = string.match(status, "%d+:%d+:%d+") - if time ~= nil then - if string.match(status, "Discharging") then - remaining_time = "Time remaining: " .. time - else - remaining_time = "Time until fully charged: " .. time - end - end - end - return remaining_time - end, -} - -return battery_widget diff --git a/user/.config/awesome/ui/widgets/wifi.lua b/user/.config/awesome/ui/widgets/wifi.lua deleted file mode 100644 index a002698e8..000000000 --- a/user/.config/awesome/ui/widgets/wifi.lua +++ /dev/null @@ -1,62 +0,0 @@ -local awful = require("awful") -local wibox = require("wibox") -local gears = require("gears") - -local wifi_widget = wibox.widget.textbox() - -local function get_wifi_strength(callback) - local cmd = [[nmcli -t -f active,ssid,signal dev wifi | grep yes | cut -d ":" -f3]] - awful.spawn.easy_async_with_shell(cmd, function(stdout) - local strength = tonumber(stdout) or 0 - callback(strength) - end) -end - -local function update_wifi_widget() - local constate = "" - local currentwfi = "" - - -- Get connection state and SSID - local cmd = [[nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f3,4 | head -1]] - awful.spawn.easy_async_with_shell(cmd, function(output) - for token in string.gmatch(output, "[^|\n]+") do - if constate == "" then - constate = token - else - currentwfi = token - end - end - - -- Update wifi widget - if constate == "disconnected" then - wifi_widget:set_text("󰤮 ") - elseif constate == "connected" then - get_wifi_strength(function(strength) - local icon = "" - if strength <= 30 then - icon = "󰤟 " - elseif strength <= 60 then - icon = "󰤢 " - elseif strength <= 90 then - icon = "󰤥 " - else - icon = "󰤨 " - end - wifi_widget:set_text(icon .. currentwfi) - end) - else - wifi_widget:set_text("󰤮 ") - end - end) -end - --- Update the widget initially -update_wifi_widget() - --- Refresh the widget every 10 seconds -local timer = gears.timer.start_new(5, function() - update_wifi_widget() - return true -end) - -return wifi_widget 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 bb61cc230..000000000 --- a/user/.config/lvim/config.lua +++ /dev/null @@ -1,129 +0,0 @@ --- neovide options -vim.o.guifont = "mononoki Nerd Font:h08" -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 8e9f9da84..000000000 --- a/user/.config/neofetch/config.conf +++ /dev/null @@ -1,113 +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" - -aascii_distro="void-small" -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/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/rofi/themes/gruvbox-dark.rasi b/user/.config/rofi/themes/gruvbox-dark.rasi deleted file mode 100644 index 15ffb4d0b..000000000 --- a/user/.config/rofi/themes/gruvbox-dark.rasi +++ /dev/null @@ -1,16 +0,0 @@ -* { - bg-col: #1d2021; - bg-col-light: #282828; - border-col: #504945; - selected-col: #3c3836; - blue: #458588; - fg-col: #ebdbb2; - fg-col2: #ebdbb2; - grey: #928374; - width: 600; - selected: #ebdbb2; - red: #fb4934; - green: #98971a; - empty: #3c3836; - inactive: #928374; -} 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, -}