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,
-}