This commit is contained in:
Lian Drake 2024-08-11 17:30:43 -04:00
parent 08f163ab08
commit 7b764be2f4
111 changed files with 8195 additions and 6785 deletions

View file

@ -1,6 +1,6 @@
[%General] [%General]
author=sachnr, based on KvAdapta author=ShelockH0, based on Graphite Dark by Vince Liuice and Gruvbox GTK by Fausto Korpsvart
comment=Gruvbox Dark theme with brown highlights comment=An uncomplicated, warm and aesthetic gruvbox theme inspired by Gruvbox GTK Theme by Fausto Korpsvart
x11drag=menubar_and_primary_toolbar x11drag=menubar_and_primary_toolbar
alt_mnemonic=true alt_mnemonic=true
left_tabs=true left_tabs=true
@ -11,17 +11,19 @@ toolbar_item_spacing=0
toolbar_interior_spacing=2 toolbar_interior_spacing=2
spread_progressbar=true spread_progressbar=true
composite=true composite=true
menu_shadow_depth=5 menu_shadow_depth=6
spread_menuitems=false
tooltip_shadow_depth=2 tooltip_shadow_depth=2
splitter_width=4 splitter_width=1
scroll_width=9 scroll_width=14
scroll_arrows=false scroll_arrows=false
scroll_min_extent=60 scroll_min_extent=60
slider_width=2 slider_width=2
slider_handle_width=22 slider_handle_width=23
slider_handle_length=22 slider_handle_length=22
tickless_slider_handle_size=22
center_toolbar_handle=true center_toolbar_handle=true
check_size=14 check_size=16
textless_progressbar=false textless_progressbar=false
progressbar_thickness=2 progressbar_thickness=2
menubar_mouse_tracking=true menubar_mouse_tracking=true
@ -37,7 +39,7 @@ merge_menubar_with_toolbar=true
small_icon_size=16 small_icon_size=16
large_icon_size=32 large_icon_size=32
button_icon_size=16 button_icon_size=16
toolbar_icon_size=22 toolbar_icon_size=16
combo_as_lineedit=true combo_as_lineedit=true
animate_states=true animate_states=true
button_contents_shift=false button_contents_shift=false
@ -46,105 +48,145 @@ hide_combo_checkboxes=true
combo_focus_rect=false combo_focus_rect=false
groupbox_top_label=true groupbox_top_label=true
inline_spin_indicators=true inline_spin_indicators=true
joined_inactive_tabs=true joined_inactive_tabs=false
layout_spacing=6 layout_spacing=6
layout_margin=9 layout_margin=9
scrollbar_in_view=true scrollbar_in_view=true
transient_scrollbar=true transient_scrollbar=true
transient_groove=false transient_groove=false
submenu_overlap=0 submenu_overlap=0
tooltip_delay=-1 tooltip_delay=0
tree_branch_line=true tree_branch_line=true
no_window_pattern=false 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 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 reduce_window_opacity=0
respect_DE=true respect_DE=true
scrollable_menu=false scrollable_menu=true
submenu_delay=250 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] [GeneralColors]
window.color=#232323 window.color=#1D2021
base.color=#282828 base.color=#1D2021
alt.base.color=#282828 alt.base.color=#282828
button.color=#2e2e2e button.color=#1D2021
light.color=#504945 light.color=#504945
mid.light.color=#3f3f3f mid.light.color=#3C3836
dark.color=#1d2021 dark.color=#141617
mid.color=##202324 mid.color=#282828
highlight.color=#665c54cc highlight.color=#89B482
inactive.highlight.color=#665c54bb inactive.highlight.color=#32361A
text.color=#ebdbb2 text.color=#ddc7a1
window.text.color=#ebdbb2 window.text.color=#ddc7a1
button.text.color=#ebdbb2 button.text.color=#ddc7a1
disabled.text.color=#a89984 disabled.text.color=#ddc7a17F
tooltip.text.color=#fbf1c7 tooltip.text.color=#D4BE98
highlight.text.color=#3c3836 highlight.text.color=#000000C3
link.color=#b8bb26 link.color=#7daea3
link.visited.color=#98971a link.visited.color=#d3869b
progress.indicator.text.color=#fbf1c7 progress.indicator.text.color=#ddc7a1
[Hacks] [Hacks]
transparent_ktitle_label=true transparent_ktitle_label=true
transparent_dolphin_view=false transparent_dolphin_view=true
transparent_pcmanfm_sidepane=true transparent_pcmanfm_sidepane=true
blur_translucent=false blur_translucent=true
transparent_menutitle=true transparent_menutitle=true
respect_darkness=false respect_darkness=true
kcapacitybar_as_progressbar=true kcapacitybar_as_progressbar=true
force_size_grip=true force_size_grip=true
iconless_pushbutton=true iconless_pushbutton=true
iconless_menu=false iconless_menu=false
disabled_icon_opacity=70 disabled_icon_opacity=100
lxqtmainmenu_iconsize=22 lxqtmainmenu_iconsize=16
normal_default_pushbutton=true normal_default_pushbutton=true
single_top_toolbar=true single_top_toolbar=true
tint_on_mouseover=0 tint_on_mouseover=0
transparent_pcmanfm_view=false transparent_pcmanfm_view=true
no_selection_tint=true no_selection_tint=true
transparent_arrow_button=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] [PanelButtonCommand]
frame=true frame=true
frame.element=button frame.element=button
frame.top=4 frame.top=6
frame.bottom=4 frame.bottom=6
frame.left=4 frame.left=6
frame.right=4 frame.right=6
interior=true interior=true
interior.element=button interior.element=button
indicator.size=8 indicator.size=8
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.focus.color=#3c3836 text.focus.color=#ddc7a1
text.press.color=#ebdbb2 text.press.color=#ddc7a1
text.toggle.color=#fbf1c7 text.toggle.color=#3C3836
text.shadow=0 text.shadow=0
text.margin=1 text.margin=4
text.iconspacing=4 text.iconspacing=4
indicator.element=arrow indicator.element=arrow
text.margin.top=2 frame.expansion=0
text.margin.bottom=4
text.margin.left=2
text.margin.right=2
min_width=+0.3font
min_height=+0.3font
frame.expansion=14
[PanelButtonTool] [PanelButtonTool]
inherits=PanelButtonCommand 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 text.bold=false
indicator.element=arrow indicator.element=arrow
indicator.size=0 indicator.size=0
frame.expansion=0
[ToolbarButton] [ToolbarButton]
frame=true
frame.element=tbutton frame.element=tbutton
interior.element=tbutton interior.element=tbutton
frame.top=16
frame.bottom=16
frame.left=16
frame.right=16
indicator.element=tarrow indicator.element=tarrow
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.focus.color=#fbf1c7 text.focus.color=#ddc7a1
text.press.color=#fbf1c7 text.press.color=#ddc7a1
text.toggle.color=#fbf1c7 text.toggle.color=#ddc7a1
text.bold=false text.bold=false
frame.expansion=32
[Dock] [Dock]
inherits=PanelButtonCommand inherits=PanelButtonCommand
@ -154,14 +196,14 @@ frame.top=1
frame.bottom=1 frame.bottom=1
frame.left=1 frame.left=1
frame.right=1 frame.right=1
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
[DockTitle] [DockTitle]
inherits=PanelButtonCommand inherits=PanelButtonCommand
frame=false frame=false
interior=false interior=false
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.focus.color=#fbf1c7 text.focus.color=#ddc7a1
text.bold=false text.bold=false
[IndicatorSpinBox] [IndicatorSpinBox]
@ -174,7 +216,7 @@ frame.left=2
frame.right=2 frame.right=2
indicator.element=spin indicator.element=spin
indicator.size=8 indicator.size=8
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.margin.top=2 text.margin.top=2
text.margin.bottom=2 text.margin.bottom=2
text.margin.left=2 text.margin.left=2
@ -184,8 +226,8 @@ text.margin.right=2
inherits=PanelButtonCommand inherits=PanelButtonCommand
frame=false frame=false
interior.element=radio interior.element=radio
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.focus.color=#fbf1c7 text.focus.color=#ddc7a1
min_width=+0.3font min_width=+0.3font
min_height=+0.3font min_height=+0.3font
@ -193,8 +235,8 @@ min_height=+0.3font
inherits=PanelButtonCommand inherits=PanelButtonCommand
frame=false frame=false
interior.element=checkbox interior.element=checkbox
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.focus.color=#fbf1c7 text.focus.color=#ddc7a1
min_width=+0.3font min_width=+0.3font
min_height=+0.3font min_height=+0.3font
@ -202,11 +244,11 @@ min_height=+0.3font
inherits=PanelButtonCommand inherits=PanelButtonCommand
frame=true frame=true
frame.element=focus frame.element=focus
frame.top=1 frame.top=2
frame.bottom=1 frame.bottom=2
frame.left=1 frame.left=2
frame.right=1 frame.right=2
frame.patternsize=20 frame.patternsize=14
[GenericFrame] [GenericFrame]
inherits=PanelButtonCommand inherits=PanelButtonCommand
@ -214,25 +256,27 @@ frame=true
interior=false interior=false
frame.element=common frame.element=common
interior.element=common interior.element=common
frame.top=3 frame.top=1
frame.bottom=3 frame.bottom=1
frame.left=3 frame.left=1
frame.right=3 frame.right=1
[LineEdit] [LineEdit]
inherits=PanelButtonCommand inherits=PanelButtonCommand
frame.element=lineedit frame.element=lineedit
interior.element=lineedit interior.element=lineedit
interior=false frame.top=6
frame.top=2 frame.bottom=6
frame.bottom=2 frame.left=6
frame.left=2 frame.right=6
frame.right=2
text.margin.top=2 text.margin.top=2
text.margin.bottom=2 text.margin.bottom=2
text.margin.left=2 text.margin.left=2
text.margin.right=2 text.margin.right=2
frame.expansion=0
[ToolbarLineEdit]
frame.element=lineedit
interior.element=lineedit
[DropDownButton] [DropDownButton]
inherits=PanelButtonCommand inherits=PanelButtonCommand
@ -244,26 +288,28 @@ indicator.size=8
[ToolboxTab] [ToolboxTab]
inherits=PanelButtonCommand inherits=PanelButtonCommand
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.press.color=#ebdbb2 text.press.color=#ddc7a1
text.focus.color=#fbf1c7 text.focus.color=#ddc7a1
[Tab] [Tab]
inherits=PanelButtonCommand inherits=PanelButtonCommand
interior.element=tab interior.element=tab
text.margin.left=8 text.margin.left=8
text.margin.right=8 text.margin.right=8
text.margin.top=2 text.margin.top=0
text.margin.bottom=2 text.margin.bottom=0
frame.element=tab frame.element=tab
indicator.element=tab indicator.element=tab
frame.top=2 indicator.size=22
frame.bottom=2 frame.top=8
frame.left=2 frame.bottom=8
frame.right=2 frame.left=8
text.normal.color=#ebdbb2 frame.right=8
text.focus.color=#ebdbb2 text.normal.color=#ddc7a1
text.toggle.color=#ebdbb2 text.focus.color=#ddc7a1
text.press.color=#ddc7a1
text.toggle.color=#ddc7a1
frame.expansion=0 frame.expansion=0
text.bold=false text.bold=false
@ -271,10 +317,10 @@ text.bold=false
inherits=PanelButtonCommand inherits=PanelButtonCommand
frame.element=tabframe frame.element=tabframe
interior.element=tabframe interior.element=tabframe
frame.top=2 frame.top=6
frame.bottom=2 frame.bottom=6
frame.left=2 frame.left=6
frame.right=2 frame.right=6
[TreeExpander] [TreeExpander]
inherits=PanelButtonCommand inherits=PanelButtonCommand
@ -285,14 +331,14 @@ indicator.element=tree
inherits=PanelButtonCommand inherits=PanelButtonCommand
interior.element=header interior.element=header
frame.element=header frame.element=header
frame.top=1 frame.top=0
frame.bottom=1 frame.bottom=1
frame.left=1 frame.left=1
frame.right=1 frame.right=1
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.focus.color=#fbf1c7 text.focus.color=#ddc7a1
text.press.color=#fbf1c7 text.press.color=#ddc7a1
text.toggle.color=#fbf1c7 text.toggle.color=#ddc7a1
frame.expansion=0 frame.expansion=0
[SizeGrip] [SizeGrip]
@ -303,19 +349,22 @@ inherits=PanelButtonCommand
indicator.element=toolbar indicator.element=toolbar
indicator.size=5 indicator.size=5
text.margin=0 text.margin=0
interior.element=menubar interior.element=toolbar
frame.element=menubar frame.element=toolbar
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.focus.color=#fbf1c7 text.focus.color=#ddc7a1
frame.left=0 text.press.color=#ddc7a1
frame.right=0 text.toggle.color=#ddc7a1
frame.top=0 frame.left=3
frame.bottom=4 frame.right=3
frame.top=3
frame.bottom=3
frame.expansion=0 frame.expansion=0
[Slider] [Slider]
inherits=PanelButtonCommand inherits=PanelButtonCommand
frame.element=slider frame.element=slider
focusFrame=true
interior.element=slider interior.element=slider
frame.top=3 frame.top=3
frame.bottom=3 frame.bottom=3
@ -332,10 +381,10 @@ inherits=PanelButtonCommand
frame.element=progress frame.element=progress
interior.element=progress interior.element=progress
text.margin=0 text.margin=0
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.focus.color=#ebdbb2 text.focus.color=#ddc7a1
text.press.color=#ebdbb2 text.press.color=#ddc7a1
text.toggle.color=#cfd8dc text.toggle.color=#ddc7a1
text.bold=false text.bold=false
frame.expansion=8 frame.expansion=8
@ -350,18 +399,18 @@ inherits=PanelButtonCommand
text.margin=0 text.margin=0
frame.element=itemview frame.element=itemview
interior.element=itemview interior.element=itemview
frame.top=2 frame.top=4
frame.bottom=2 frame.bottom=4
frame.left=2 frame.left=4
frame.right=2 frame.right=4
text.margin.top=2 text.margin.top=0
text.margin.bottom=2 text.margin.bottom=0
text.margin.left=4 text.margin.left=8
text.margin.right=4 text.margin.right=8
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.focus.color=#fbf1c7 text.focus.color=#ddc7a1
text.press.color=#fbf1c7 text.press.color=#3C3836
text.toggle.color=#fbf1c7 text.toggle.color=#ffffff
min_width=+0.3font min_width=+0.3font
min_height=+0.3font min_height=+0.3font
frame.expansion=0 frame.expansion=0
@ -370,23 +419,38 @@ frame.expansion=0
indicator.size=48 indicator.size=48
[Scrollbar] [Scrollbar]
inherits=PanelButtonCommand inherits=BaseWidget
indicator.element=arrow
indicator.size=8 [ScrollbarGroove]
inherits=BaseWidget
interior=false
frame.element=scrollbargroove
frame.left=7
frame.right=7
frame.top=7
frame.bottom=7
[ScrollbarSlider] [ScrollbarSlider]
inherits=PanelButtonCommand inherits=PanelButtonCommand
interior.element=scrollbarslider frame.element=scrollbarslider
interior=true
frame=false
indicator.element=grip
indicator.size=13
frame.expansion=48
[ScrollbarGroove]
inherits=PanelButtonCommand
interior=false 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] [MenuItem]
inherits=PanelButtonCommand inherits=PanelButtonCommand
@ -394,19 +458,17 @@ frame=true
frame.element=menuitem frame.element=menuitem
interior.element=menuitem interior.element=menuitem
indicator.element=menuitem indicator.element=menuitem
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.focus.color=#fbf1c7 text.focus.color=#3C3836
text.margin.top=1 text.margin.top=0
text.margin.bottom=1 text.margin.bottom=0
text.margin.left=4 text.margin.left=6
text.margin.right=4 text.margin.right=6
frame.top=0 frame.top=4
frame.bottom=0 frame.bottom=4
frame.left=0 frame.left=4
frame.right=0 frame.right=4
text.bold=false text.bold=false
min_width=+0.3font
min_height=+0.3font
frame.expansion=0 frame.expansion=0
[MenuBar] [MenuBar]
@ -414,7 +476,10 @@ inherits=PanelButtonCommand
frame.element=menubar frame.element=menubar
interior.element=menubar interior.element=menubar
frame.bottom=0 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 frame.expansion=0
text.bold=false text.bold=false
@ -431,8 +496,10 @@ text.margin.left=4
text.margin.right=4 text.margin.right=4
text.margin.top=0 text.margin.top=0
text.margin.bottom=0 text.margin.bottom=0
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.focus.color=#fbf1c7 text.focus.color=#ddc7a1
text.press.color=#ddc7a1
text.toggle.color=#ddc7a1
text.bold=false text.bold=false
min_width=+0.3font min_width=+0.3font
min_height=+0.3font min_height=+0.3font
@ -448,8 +515,8 @@ text.margin.right=2
interior.element=titlebar interior.element=titlebar
indicator.size=16 indicator.size=16
indicator.element=mdi indicator.element=mdi
text.normal.color=#d5c4a1 text.normal.color=#D4BE98
text.focus.color=#ebdbb2 text.focus.color=#ddc7a1
text.bold=false text.bold=false
text.italic=true text.italic=true
frame.expansion=0 frame.expansion=0
@ -458,64 +525,50 @@ frame.expansion=0
inherits=PanelButtonCommand inherits=PanelButtonCommand
frame.element=combo frame.element=combo
interior.element=combo interior.element=combo
interior=false frame.top=6
frame.top=2 frame.bottom=6
frame.bottom=2 frame.left=6
frame.left=2 frame.right=6
frame.right=2
text.margin.top=2 text.margin.top=2
text.margin.bottom=2 text.margin.bottom=2
text.margin.left=2 text.margin.left=2
text.margin.right=2 text.margin.right=2
text.focus.color=#fbf1c7 text.focus.color=#ddc7a1
text.press.color=#ebdbb2 text.press.color=#ddc7a1
text.toggle.color=#fbf1c7 text.toggle.color=#ddc7a1
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
[GroupBox] [GroupBox]
inherits=GenericFrame inherits=GenericFrame
frame=false frame=false
text.shadow=0 text.shadow=0
text.margin=0 text.margin=0
text.normal.color=#ebdbb2 text.normal.color=#ddc7a1
text.focus.color=#fbf1c7 text.focus.color=#ddc7a1
text.bold=false text.bold=false
frame.expansion=0 frame.expansion=0
[TabBarFrame] [TabBarFrame]
inherits=GenericFrame inherits=GenericFrame
frame=true frame=false
frame.element=tabBarFrame frame.element=tabBarFrame
interior=false interior=false
frame.top=2 frame.top=0
frame.bottom=2 frame.bottom=0
frame.left=2 frame.left=0
frame.right=2 frame.right=0
[ToolTip] [ToolTip]
inherits=GenericFrame inherits=GenericFrame
frame.top=3 frame.top=6
frame.bottom=3 frame.bottom=6
frame.left=3 frame.left=6
frame.right=3 frame.right=6
interior=true interior=true
text.shadow=0 text.shadow=0
text.margin=0 text.margin=0
interior.element=tooltip interior.element=tooltip
frame.element=tooltip frame.element=tooltip
frame.expansion=0 frame.expansion=6
[StatusBar] [StatusBar]
inherits=GenericFrame inherits=GenericFrame
@ -525,3 +578,7 @@ interior=false
[Window] [Window]
interior=true interior=true
interior.element=window interior.element=window
frame=true
frame.element=window
frame.bottom=10
frame.top=10

File diff suppressed because it is too large Load diff

After

Width:  |  Height:  |  Size: 180 KiB

View file

@ -0,0 +1,2 @@
[General]
theme=GruvboxMaterial

View file

@ -36,8 +36,8 @@ export XDG_SESSION_TYPE=X11
# GTK & cursor stuff # GTK & cursor stuff
export XCURSOR_PATH="$XDG_DATA_HOME/icons/" export XCURSOR_PATH="$XDG_DATA_HOME/icons/"
export XCURSOR_THEME="Simp1e-Gruvbox-Dark" export XCURSOR_THEME="Simp1e-Gruvbox-Dark"
export GTK_THEME="gruvbox-dark-gtk" export GTK_THEME="Gruvbox-Dark"
export GTK_ICON_THEME="gruvbox-dark-icons-gtk" export GTK_ICON_THEME="Papirus-Dark"
# start window manager / desktop environment # initialize dwm
dbus-launch awesome exec awesome

36
config/awesome/apps.lua Normal file
View file

@ -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

View file

@ -4,16 +4,16 @@ local apps = require("apps")
require("awful.autofocus") require("awful.autofocus")
-- Modkeys. -- Modkeys.
altkey = "Mod1" Altkey = "Mod1"
modkey = "Mod4" Modkey = "Mod4"
conkey = "Control" Conkey = "Control"
shikey = "Shift" Shikey = "Shift"
-- Main keybinds -- Main keybinds
awful.keyboard.append_global_keybindings({ awful.keyboard.append_global_keybindings({
-- Show the help menu -- Show the help menu
awful.key( awful.key(
{ modkey }, { Modkey },
"s", "s",
hotkeys_popup.show_help, hotkeys_popup.show_help,
{ {
@ -24,7 +24,7 @@ awful.keyboard.append_global_keybindings({
-- Reload awesome -- Reload awesome
awful.key( awful.key(
{ modkey, conkey }, { Modkey, Conkey },
"r", "r",
awesome.restart, awesome.restart,
{ {
@ -35,7 +35,7 @@ awful.keyboard.append_global_keybindings({
-- Open a terminal -- Open a terminal
awful.key( awful.key(
{ modkey }, { Modkey },
"Return", "Return",
function() function()
awful.spawn(apps.terminal) awful.spawn(apps.terminal)
@ -51,7 +51,7 @@ awful.keyboard.append_global_keybindings({
awful.keyboard.append_global_keybindings({ awful.keyboard.append_global_keybindings({
-- Switch to previous tag -- Switch to previous tag
awful.key( awful.key(
{ modkey }, { Modkey },
"Left", "Left",
awful.tag.viewprev, awful.tag.viewprev,
{ {
@ -62,7 +62,7 @@ awful.keyboard.append_global_keybindings({
-- Switch to next tag -- Switch to next tag
awful.key( awful.key(
{ modkey }, { Modkey },
"Right", "Right",
awful.tag.viewnext, awful.tag.viewnext,
{ {
@ -73,7 +73,7 @@ awful.keyboard.append_global_keybindings({
-- Switch back to the previous tag -- Switch back to the previous tag
awful.key( awful.key(
{ modkey }, { Modkey },
"Escape", "Escape",
awful.tag.history.restore, awful.tag.history.restore,
{ {
@ -84,7 +84,7 @@ awful.keyboard.append_global_keybindings({
-- Switch tags by numbers 1-9 -- Switch tags by numbers 1-9
awful.key { awful.key {
modifiers = { modkey }, modifiers = { Modkey },
keygroup = "numrow", keygroup = "numrow",
description = "Switch tags with number keys from {1 to 9}", description = "Switch tags with number keys from {1 to 9}",
group = "Tag keybinds", group = "Tag keybinds",
@ -99,7 +99,7 @@ awful.keyboard.append_global_keybindings({
-- Toggle tags by numbers 1-9 -- Toggle tags by numbers 1-9
awful.key { awful.key {
modifiers = { modkey, conkey }, modifiers = { Modkey, Conkey },
keygroup = "numrow", keygroup = "numrow",
description = "Quickly view contents in another tag with number keys from {1 to 9}", description = "Quickly view contents in another tag with number keys from {1 to 9}",
group = "Tag keybinds", group = "Tag keybinds",
@ -114,7 +114,7 @@ awful.keyboard.append_global_keybindings({
-- Move focused window to tag by numbers 1-9 -- Move focused window to tag by numbers 1-9
awful.key { awful.key {
modifiers = { modkey, shikey }, modifiers = { Modkey, Shikey },
keygroup = "numrow", keygroup = "numrow",
description = "Move focused window to another tag with number keys from {1 to 9}", description = "Move focused window to another tag with number keys from {1 to 9}",
group = "Tag keybinds", group = "Tag keybinds",
@ -130,7 +130,7 @@ awful.keyboard.append_global_keybindings({
-- Toggle focused window on tag by numbers 1-9 -- Toggle focused window on tag by numbers 1-9
awful.key { awful.key {
modifiers = { modkey, conkey, shikey }, modifiers = { Modkey, Conkey, Shikey },
keygroup = "numrow", keygroup = "numrow",
description = "View focused window on more than one tag with number keys from {1 to 9}", description = "View focused window on more than one tag with number keys from {1 to 9}",
group = "Tag keybinds", group = "Tag keybinds",
@ -149,7 +149,7 @@ awful.keyboard.append_global_keybindings({
awful.keyboard.append_global_keybindings({ awful.keyboard.append_global_keybindings({
-- Focus next window by index -- Focus next window by index
awful.key( awful.key(
{ modkey }, { Modkey },
"j", "j",
function() function()
awful.client.focus.byidx(1) awful.client.focus.byidx(1)
@ -162,7 +162,7 @@ awful.keyboard.append_global_keybindings({
-- Focus previous window by index -- Focus previous window by index
awful.key( awful.key(
{ modkey }, { Modkey },
"k", "k",
function() function()
awful.client.focus.byidx(-1) awful.client.focus.byidx(-1)
@ -175,7 +175,7 @@ awful.keyboard.append_global_keybindings({
-- Focus last focused window -- Focus last focused window
awful.key( awful.key(
{ modkey }, { Modkey },
"Tab", "Tab",
function() function()
awful.client.focus.history.previous() awful.client.focus.history.previous()
@ -191,10 +191,10 @@ awful.keyboard.append_global_keybindings({
-- Focus next screen -- Focus next screen
awful.key( awful.key(
{ modkey, conkey }, { Modkey },
"j", ",",
function() function()
awful.screen.focus_relative(1) awful.screen.focus_relative(-1)
end, end,
{ {
description = "Focus the next screen", description = "Focus the next screen",
@ -204,10 +204,10 @@ awful.keyboard.append_global_keybindings({
-- Focus previous screen -- Focus previous screen
awful.key( awful.key(
{ modkey, conkey }, { Modkey },
"k", ".",
function() function()
awful.screen.focus_relative(-1) awful.screen.focus_relative(1)
end, end,
{ {
description = "Focus the previous screen", description = "Focus the previous screen",
@ -220,7 +220,7 @@ awful.keyboard.append_global_keybindings({
awful.keyboard.append_global_keybindings({ awful.keyboard.append_global_keybindings({
-- Swap with next window by index -- Swap with next window by index
awful.key( awful.key(
{ modkey, shikey }, { Modkey, Shikey },
"j", "j",
function() function()
awful.client.swap.byidx(1) awful.client.swap.byidx(1)
@ -233,7 +233,7 @@ awful.keyboard.append_global_keybindings({
-- Swap with previous window by index -- Swap with previous window by index
awful.key( awful.key(
{ modkey, shikey }, { Modkey, Shikey },
"k", "k",
function() function()
awful.client.swap.byidx(-1) awful.client.swap.byidx(-1)
@ -246,7 +246,7 @@ awful.keyboard.append_global_keybindings({
-- Increase master width -- Increase master width
awful.key( awful.key(
{ modkey }, { Modkey },
"l", "l",
function() function()
awful.tag.incmwfact(0.05) awful.tag.incmwfact(0.05)
@ -259,7 +259,7 @@ awful.keyboard.append_global_keybindings({
-- Decrease master width -- Decrease master width
awful.key( awful.key(
{ modkey }, { Modkey },
"h", "h",
function() function()
awful.tag.incmwfact(-0.05) awful.tag.incmwfact(-0.05)
@ -272,7 +272,7 @@ awful.keyboard.append_global_keybindings({
-- Increase the number of master window -- Increase the number of master window
awful.key( awful.key(
{ modkey, shikey }, { Modkey, Shikey },
"h", "h",
function() function()
awful.tag.incnmaster(1, nil, true) awful.tag.incnmaster(1, nil, true)
@ -285,7 +285,7 @@ awful.keyboard.append_global_keybindings({
-- Decrease the number of master windows -- Decrease the number of master windows
awful.key( awful.key(
{ modkey, shikey }, { Modkey, Shikey },
"l", "l",
function() function()
awful.tag.incnmaster(-1, nil, true) awful.tag.incnmaster(-1, nil, true)
@ -298,7 +298,7 @@ awful.keyboard.append_global_keybindings({
-- Increase the number of columns -- Increase the number of columns
awful.key( awful.key(
{ modkey, conkey }, { Modkey, Conkey },
"h", "h",
function() function()
awful.tag.incncol(1, nil, true) awful.tag.incncol(1, nil, true)
@ -311,7 +311,7 @@ awful.keyboard.append_global_keybindings({
-- Decrease the number of columns -- Decrease the number of columns
awful.key( awful.key(
{ modkey, conkey }, { Modkey, Conkey },
"l", "l",
function() function()
awful.tag.incncol(-1, nil, true) awful.tag.incncol(-1, nil, true)
@ -324,7 +324,7 @@ awful.keyboard.append_global_keybindings({
-- Switch to next layout -- Switch to next layout
awful.key( awful.key(
{ modkey }, { Modkey },
"space", "space",
function() function()
awful.layout.inc(1) awful.layout.inc(1)
@ -337,7 +337,7 @@ awful.keyboard.append_global_keybindings({
-- Switch to previous layout -- Switch to previous layout
awful.key( awful.key(
{ modkey, shikey }, { Modkey, Shikey },
"space", "space",
function() function()
awful.layout.inc(-1) awful.layout.inc(-1)
@ -350,7 +350,7 @@ awful.keyboard.append_global_keybindings({
-- Select layouts directly -- Select layouts directly
awful.key { awful.key {
modifiers = { modkey }, modifiers = { Modkey },
keygroup = "numpad", keygroup = "numpad",
description = "Select layouts directly using the numpad", description = "Select layouts directly using the numpad",
group = "layout", group = "layout",
@ -364,7 +364,7 @@ awful.keyboard.append_global_keybindings({
-- Show/Hide Wibox -- Show/Hide Wibox
awful.key( awful.key(
{ modkey }, { Modkey },
"b", "b",
function() function()
for s in screen do for s in screen do
@ -389,7 +389,7 @@ client.connect_signal("request::default_keybindings",
awful.keyboard.append_client_keybindings({ awful.keyboard.append_client_keybindings({
-- Set focused window to fullscreen -- Set focused window to fullscreen
awful.key( awful.key(
{ modkey }, { Modkey },
"f", "f",
function(c) function(c)
c.fullscreen = not c.fullscreen c.fullscreen = not c.fullscreen
@ -402,7 +402,7 @@ client.connect_signal("request::default_keybindings",
), ),
-- Close focused window -- Close focused window
awful.key( awful.key(
{ modkey }, { Modkey },
"q", "q",
function(c) function(c)
c:kill() c:kill()
@ -414,7 +414,7 @@ client.connect_signal("request::default_keybindings",
), ),
-- Toggle floating mode on focused window -- Toggle floating mode on focused window
awful.key( awful.key(
{ modkey, conkey }, { Modkey, Conkey },
"space", "space",
awful.client.floating.toggle, awful.client.floating.toggle,
{ {
@ -424,7 +424,7 @@ client.connect_signal("request::default_keybindings",
), ),
-- Move focused window to master -- Move focused window to master
awful.key( awful.key(
{ modkey, conkey }, { Modkey, Conkey },
"Return", "Return",
function(c) function(c)
c:swap( c:swap(
@ -436,21 +436,33 @@ client.connect_signal("request::default_keybindings",
group = "Window keybinds" group = "Window keybinds"
} }
), ),
-- Move focused window to the other screen -- Move focused window to the next screen
awful.key( awful.key(
{ modkey }, { Modkey, Shikey },
"o", ".",
function(c) function(c)
c:move_to_screen() c:move_to_screen(c.screen.index+1)
end, end,
{ {
description = "Move focused window to the next screen", description = "Move focused window to the next screen",
group = "Window keybinds" 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 -- Toggle focused window to be on top
awful.key( awful.key(
{ modkey }, { Modkey },
"t", "t",
function(c) function(c)
c.ontop = not c.ontop c.ontop = not c.ontop
@ -462,7 +474,7 @@ client.connect_signal("request::default_keybindings",
), ),
-- Jump to urgent window -- Jump to urgent window
awful.key( awful.key(
{ modkey }, { Modkey },
"u", "u",
awful.client.urgent.jumpto, awful.client.urgent.jumpto,
{ {
@ -562,7 +574,7 @@ awful.keyboard.append_global_keybindings({
-- Keychords -- Keychords
-- Apps (Super + a followed by KEY) -- Apps (Super + a followed by KEY)
awful.key( awful.key(
{ modkey }, { Modkey },
"a", "a",
function() function()
local grabber = awful.keygrabber.run( local grabber = awful.keygrabber.run(
@ -601,7 +613,7 @@ awful.keyboard.append_global_keybindings({
-- Keyboard layouts (Super + x followed by KEY) -- Keyboard layouts (Super + x followed by KEY)
awful.key( awful.key(
{ modkey }, { Modkey },
"x", "x",
function() function()
local grabber = awful.keygrabber.run( local grabber = awful.keygrabber.run(
@ -626,7 +638,7 @@ awful.keyboard.append_global_keybindings({
-- Runners (Super + p followed by KEY) -- Runners (Super + p followed by KEY)
awful.key( awful.key(
{ modkey }, { Modkey },
"p", "p",
function() function()
local grabber = awful.keygrabber.run( local grabber = awful.keygrabber.run(
@ -665,7 +677,7 @@ awful.keyboard.append_global_keybindings({
-- Terminal scripts (Super + t followed by KEY) -- Terminal scripts (Super + t followed by KEY)
awful.key( awful.key(
{ modkey }, { Modkey },
"t", "t",
function() function()
local grabber = awful.keygrabber.run( local grabber = awful.keygrabber.run(
@ -712,14 +724,14 @@ client.connect_signal(
end end
), ),
awful.button( awful.button(
{ modkey }, { Modkey },
1, 1,
function(c) function(c)
c:activate {context = "mouse_click", action = "mouse_move"} c:activate {context = "mouse_click", action = "mouse_move"}
end end
), ),
awful.button( awful.button(
{ modkey }, { Modkey },
3, 3,
function(c) function(c)
c:activate {context = "mouse_click", action = "mouse_resize"} c:activate {context = "mouse_click", action = "mouse_resize"}

View file

@ -70,6 +70,7 @@ ruled.client.connect_signal(
rule_any = { rule_any = {
class = { class = {
"vifm", "vifm",
"yazi",
"pcmanfm", "pcmanfm",
"nemo" "nemo"
} }

View file

@ -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 &")

View file

@ -1,5 +1,4 @@
local naughty = require("naughty") local naughty = require("naughty")
local ruled = require("ruled")
local beautiful = require("beautiful") local beautiful = require("beautiful")
-- Error handling -- Error handling
@ -36,3 +35,14 @@ screen.connect_signal(
client.connect_signal("mouse::enter", function(c) client.connect_signal("mouse::enter", function(c)
c:emit_signal("request::activate", "mouse_enter", {raise = false}) c:emit_signal("request::activate", "mouse_enter", {raise = false})
end) 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)

View file

@ -4,24 +4,6 @@
## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake) ## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake)
## /_____/_/ \__,_/_/|_|\___/ My custom picom config ## /_____/_/ \__,_/_/|_|\___/ 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 # # Shadows #
############################### ###############################

View file

@ -0,0 +1,2 @@
#!/bin/sh
betterlockscreen -l

View file

@ -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

View file

@ -2,7 +2,7 @@
# ***This script was made by Clay Gomera (Drake)*** # ***This script was made by Clay Gomera (Drake)***
# - Description: A simple power menu rofi script # - Description: A simple power menu rofi script
# - Dependencies: rofi, power-profiles-daemon, betterlockscreen # - Dependencies: rofi, power-profiles-daemon, slock
####################### #######################
## Main manu options ## ## Main manu options ##
@ -25,78 +25,113 @@ pwr3="󰾆 Power Saver"
pwr4=" Cancel" pwr4=" Cancel"
pwrs="$pwr1\n$pwr2\n$pwr3\n$pwr4" pwrs="$pwr1\n$pwr2\n$pwr3\n$pwr4"
#####
## This variable will store the current power profile ## This variable will store the current power profile
#####
currentpwr=$(powerprofilesctl get) currentpwr=$(powerprofilesctl get)
#####
## This variable will store the current wallpaper set by feh ## This variable will store the current wallpaper set by feh
#####
currentwall=$(tail --lines=1 "$HOME/.fehbg" | awk '{print $4}' | sed "s/'//g") currentwall=$(tail --lines=1 "$HOME/.fehbg" | awk '{print $4}' | sed "s/'//g")
########## # Check for missing dependencies
## main ## 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 action=$(echo -e "$options" | rofi -dmenu -i -p "  Power Options "); # main menu prompt
if [ -z "$action" ]; then
exit 0
fi
case "$action" in case "$action" in
"$option1") "$option1")
pkill awesome if confirm_action "  Are you sure you want to logout? "; then
loginctl kill-session self
fi
;; ;;
"$option2") "$option2")
if confirm_action "  Are you sure you want to reboot? "; then
systemctl reboot systemctl reboot
fi
;; ;;
"$option3") "$option3")
if confirm_action "  Are you sure you want to power off? "; then
systemctl poweroff systemctl poweroff
fi
;; ;;
"$option4") "$option4")
betterlockscreen -l -q &
sleep 1
systemctl suspend systemctl suspend
;; ;;
"$option5") "$option5")
betterlockscreen -l -q & betterlockscreen -l
;; ;;
"$option6") "$option6")
##### #####
## These conditions will be used for the prompt ## These conditions will be used for the prompt
##### #####
if [ "$currentpwr" = "performance" ]; then if [ "$currentpwr" = "performance" ]; then
currentpwr="$pwr1"; currentpwr="$pwr1"
elif [ "$currentpwr" = "balanced" ]; then elif [ "$currentpwr" = "balanced" ]; then
currentpwr="$pwr2"; currentpwr="$pwr2"
elif [ "$currentpwr" = "power-saver" ]; then elif [ "$currentpwr" = "power-saver" ]; then
currentpwr="$pwr3"; currentpwr="$pwr3"
fi fi
pwraction=$(echo -e "$pwrs" | rofi -dmenu -i -p "  Power Profile Menu - Currently set to: $currentpwr ") # power profiles submenu prompt pwraction=$(echo -e "$pwrs" | rofi -dmenu -i -p "  Power Profile Menu - Currently set to: $currentpwr ") # power profiles submenu prompt
case "$pwraction" in case "$pwraction" in
"$pwr1") "$pwr1")
if [ "$currentpwr" = "$pwr1" ]; then # if the power profile is already set to performance if [ "$currentpwr" = "$pwr1" ]; then # if the power profile is already set to performance
notify-send "The power profile is already set to performance"; notify-send "The power profile is already set to performance"
exit 1; exit 1
else 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 fi
;; ;;
"$pwr2") "$pwr2")
if [ "$currentpwr" = "$pwr2" ]; then # if the power profile is already set to balanced if [ "$currentpwr" = "$pwr2" ]; then # if the power profile is already set to balanced
notify-send "The power profile is already set to balanced"; notify-send "The power profile is already set to balanced"
exit 1; exit 1
else 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 fi
;; ;;
"$pwr3") "$pwr3")
if [ "$currentpwr" = "$pwr3" ]; then # if the power profile is already set to power saver 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"; notify-send "The power profile is already set to power saver"
exit 1; exit 1
else 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 fi
;; ;;
"$pwr4") "$pwr4")
exit 0; exit 0
esac;; esac;;
"$option7") "$option7")
exit 0; exit 0
;;
esac esac

View file

@ -91,7 +91,7 @@ shot_screen() {
fimage_format fimage_format
fsvchos fsvchos
if [ "$svchoice" = "$svcho1" ]; then 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 elif [ "$svchoice" = "$svcho2" ]; then
maim -f "$image_format" "$SHOTDIR/$(date +%s).$image_format" && notify-send "Screenshot saved" maim -f "$image_format" "$SHOTDIR/$(date +%s).$image_format" && notify-send "Screenshot saved"
else else
@ -132,7 +132,7 @@ shot_screen_delay() {
sleep 1 sleep 1
if [ "$svchoice" = "$svcho1" ]; then 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 elif [ "$svchoice" = "$svcho2" ]; then
maim -f "$image_format" "$SHOTDIR/$(date +%s).$image_format" && notify-send "Screenshot saved to $SHOTDIR"; maim -f "$image_format" "$SHOTDIR/$(date +%s).$image_format" && notify-send "Screenshot saved to $SHOTDIR";
else else
@ -149,7 +149,7 @@ shot_area() {
fimage_format fimage_format
fsvchos fsvchos
if [ "$svchoice" = "$svcho1" ]; then 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 elif [ "$svchoice" = "$svcho2" ]; then
maim -s -f "$image_format" "$SHOTDIR/$(date +%s).$image_format" && notify-send "Screenshot saved to $SHOTDIR"; maim -s -f "$image_format" "$SHOTDIR/$(date +%s).$image_format" && notify-send "Screenshot saved to $SHOTDIR";
else else

View file

@ -4,7 +4,7 @@
# - Description: A simple wifi rofi script # - Description: A simple wifi rofi script
# - Dependencies: rofi, NetworkManager # - Dependencies: rofi, NetworkManager
## Main manu options ## Main menu options
option1=" Turn on WiFi" option1=" Turn on WiFi"
option2=" Turn off WiFi" option2=" Turn off WiFi"
option3="󱛅 Disconnect WiFi" option3="󱛅 Disconnect WiFi"
@ -23,14 +23,24 @@ read -r wlan constate <<< "$wifi_info"
## This function uses nmcli to turn off wifi and then sends a notification ## This function uses nmcli to turn off wifi and then sends a notification
##### #####
turnoff() { 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 ## This function uses nmcli to turn on wifi and then sends a notification
##### #####
turnon() { 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 if [ "$constate" = "disconnected" ]; then
notify-send "WiFi is already disconnected" notify-send "WiFi is already disconnected"
elif [ "$constate" = "connected" ]; then 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 else
exit 1 notify-send "Failed to disconnect WiFi"
fi
else
notify-send "Unknown WiFi state"
fi fi
} }
@ -54,26 +69,26 @@ disconnect() {
connect() { connect() {
notify-send -t 5000 "Scanning networks..." notify-send -t 5000 "Scanning networks..."
nmcli dev wifi rescan 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 ") 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) if [ -z "$wifinet" ]; then
ssid=$(echo "$wifinet" | cut -d' ' -f3) 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 ## This function will store the WiFi password in the $pass variable
##### #####
password() { password() {
if nmcli connection show | grep -q "$ssid"; then # check if the network is already saved if nmcli connection show | awk -v ssid="$ssid" '$1 == ssid {found=1} END {exit !found}'; then
return 0 # no password is required pass=""
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 elif nmcli -f BSSID,SECURITY dev wifi list | grep -w "$bssid" | awk '{print $2}' | grep -q -- "--"; then
return 0 # no password is required pass=""
else else
pass=$(rofi -dmenu -password -p " Enter Password  ") pass=$(rofi -dmenu -password -p " Enter Password  ")
if [ -n "$pass" ]; then # if the user gave a password if [ -z "$pass" ]; then
return 0 exit 0
else
exit 1 # if not, exit the script
fi fi
fi fi
} }
@ -83,17 +98,26 @@ password() {
## $bssid and $pass variables ## $bssid and $pass variables
##### #####
action() { 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" 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" nmcli dev wifi connect "$bssid"
fi fi
if [ $? -eq 0 ]; then
notify-send "Connected to $ssid"
else
notify-send "Failed to connect to $ssid"
fi
} }
########## ##########
## main ## ## 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 case "$cases" in
"$option1") "$option1")
turnon turnon
@ -105,16 +129,16 @@ case "$cases" in
disconnect disconnect
;; ;;
"$option4") "$option4")
if connect; then # if the user chooses a network if connect; then
password # this function will exit the script if the user didn't put a password if password; then
action action
else fi
exit 1 # if not, exit the script
fi fi
;; ;;
"$option5") "$option5")
"$BROWSER" http://networkcheck.kde.org ${BROWSER:-xdg-open} http://networkcheck.kde.org
;; ;;
"$option6") "$option6")
exit 0 exit 0
;;
esac esac

View file

@ -3,7 +3,7 @@ local beautiful = require("beautiful")
beautiful.init(string.format("%s/.config/awesome/theme/theme.lua", os.getenv("HOME"))) -- selected theme beautiful.init(string.format("%s/.config/awesome/theme/theme.lua", os.getenv("HOME"))) -- selected theme
require("core.autostart") -- startup applications require("core.autostart") -- startup applications
require("core.signals") -- some aditional code for signals & error handling 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("config.keys") -- keyboard shortcuts
require("ui.layouts") -- predifined tiling layouts require("ui.layouts") -- predifined tiling layouts
require("ui.bar") -- the bar on the top require("ui.bar") -- the bar on the top

View file

Before

Width:  |  Height:  |  Size: 461 B

After

Width:  |  Height:  |  Size: 461 B

View file

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 272 B

View file

Before

Width:  |  Height:  |  Size: 272 B

After

Width:  |  Height:  |  Size: 272 B

View file

Before

Width:  |  Height:  |  Size: 263 B

After

Width:  |  Height:  |  Size: 263 B

View file

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 264 B

View file

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 264 B

View file

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 264 B

View file

Before

Width:  |  Height:  |  Size: 263 B

After

Width:  |  Height:  |  Size: 263 B

View file

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 264 B

View file

Before

Width:  |  Height:  |  Size: 320 B

After

Width:  |  Height:  |  Size: 320 B

View file

Before

Width:  |  Height:  |  Size: 320 B

After

Width:  |  Height:  |  Size: 320 B

View file

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 245 B

View file

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 245 B

View file

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 246 B

View file

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 246 B

View file

Before

Width:  |  Height:  |  Size: 282 B

After

Width:  |  Height:  |  Size: 282 B

View file

Before

Width:  |  Height:  |  Size: 282 B

After

Width:  |  Height:  |  Size: 282 B

View file

Before

Width:  |  Height:  |  Size: 866 B

After

Width:  |  Height:  |  Size: 866 B

View file

Before

Width:  |  Height:  |  Size: 865 B

After

Width:  |  Height:  |  Size: 865 B

View file

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 345 B

View file

Before

Width:  |  Height:  |  Size: 345 B

After

Width:  |  Height:  |  Size: 345 B

View file

Before

Width:  |  Height:  |  Size: 574 B

After

Width:  |  Height:  |  Size: 574 B

View file

Before

Width:  |  Height:  |  Size: 581 B

After

Width:  |  Height:  |  Size: 581 B

View file

Before

Width:  |  Height:  |  Size: 328 B

After

Width:  |  Height:  |  Size: 328 B

View file

Before

Width:  |  Height:  |  Size: 328 B

After

Width:  |  Height:  |  Size: 328 B

View file

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 265 B

View file

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 264 B

View file

Before

Width:  |  Height:  |  Size: 264 B

After

Width:  |  Height:  |  Size: 264 B

View file

Before

Width:  |  Height:  |  Size: 266 B

After

Width:  |  Height:  |  Size: 266 B

View file

Before

Width:  |  Height:  |  Size: 266 B

After

Width:  |  Height:  |  Size: 266 B

View file

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

View file

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 265 B

View file

Before

Width:  |  Height:  |  Size: 265 B

After

Width:  |  Height:  |  Size: 265 B

View file

@ -11,7 +11,7 @@ local theme = {}
-- }}} -- }}}
-- {{{ theme font -- {{{ theme font
theme.font = "mononoki Nerd Font 12" theme.font = "mononoki Nerd Font 10"
--- }}} --- }}}
-- {{{ bar colors -- {{{ bar colors
@ -28,8 +28,8 @@ theme.fg_normal = "#ebdbb2"
theme.fg_focus = "#dfc4a1" theme.fg_focus = "#dfc4a1"
theme.fg_urgent = "#fb4934" theme.fg_urgent = "#fb4934"
theme.bg_normal = "#1d2021" theme.bg_normal = "#1d2021"
theme.bg_focus = "#3c3836" -- theme.bg_focus = "#3c3836"
theme.bg_urgent = "#a89984" -- theme.bg_urgent = "#a89984"
-- }}} -- }}}
-- {{{ Borders -- {{{ Borders
@ -42,17 +42,17 @@ theme.border_marked = "#cc241d"
-- }}} -- }}}
-- {{{ Taglist -- {{{ Taglist
theme.taglist_font = "Symbols Nerd Font Mono 14" theme.taglist_font = "Symbols Nerd Font Mono 12"
theme.taglist_bg = "#3c3836" -- theme.taglist_bg = "#282828"
theme.taglist_fg_focus = "#fb4934" theme.taglist_fg_focus = "#fb4934"
theme.taglist_fg_occupied = "#8ec07c" theme.taglist_fg_occupied = "#8ec07c"
theme.taglist_fg_urgent = "#504945" theme.taglist_fg_urgent = "#fabd2f"
theme.taglist_fg_empty = "#a89984" theme.taglist_fg_empty = "#a89984"
theme.taglist_spacing = 7 theme.taglist_spacing = 7
-- }}} -- }}}
-- {{{ Notifications -- {{{ Notifications
theme.notification_font = "mononoki Nerd Font 12" theme.notification_font = "mononoki Nerd Font 10"
theme.notification_bg = "#1d2021" theme.notification_bg = "#1d2021"
theme.notification_bg_alt = "#282828" theme.notification_bg_alt = "#282828"
theme.notification_fg = "#ebdbb2" theme.notification_fg = "#ebdbb2"
@ -68,8 +68,8 @@ theme.hotkeys_modifiers_fg = "#458588"
theme.hotkeys_label_bg = "#d79921" theme.hotkeys_label_bg = "#d79921"
theme.hotkeys_label_fg = "#1d2021" theme.hotkeys_label_fg = "#1d2021"
theme.hotkeys_group_margin = dpi(20) theme.hotkeys_group_margin = dpi(20)
theme.hotkeys_description_font = "mononoki Nerd Font 12" theme.hotkeys_description_font = "mononoki Nerd Font 10"
theme.hotkeys_font = "mononoki Nerd Font 12" theme.hotkeys_font = "mononoki Nerd Font 10"
-- }}} -- }}}
-- {{{ Mouse finder -- {{{ Mouse finder

View file

@ -9,8 +9,16 @@ local layout = require("ui.widgets.layout")
local wifi = require("ui.widgets.wifi") local wifi = require("ui.widgets.wifi")
local volume = require("ui.widgets.volume") 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 -- Textclock widget
local mytextclock = wibox.widget.textclock()
screen.connect_signal("request::desktop_decoration", function(s) screen.connect_signal("request::desktop_decoration", function(s)
-- Tag names for each screen -- Tag names for each screen
awful.tag( awful.tag(
@ -32,7 +40,6 @@ screen.connect_signal("request::desktop_decoration", function(s)
-- Layoutbox widget -- Layoutbox widget
s.mylayoutbox = { s.mylayoutbox = {
widget = wibox.container.background, widget = wibox.container.background,
bg = theme.bg_normal,
shape = gears.shape.circle, shape = gears.shape.circle,
awful.widget.layoutbox { awful.widget.layoutbox {
screen = s, screen = s,
@ -71,9 +78,7 @@ screen.connect_signal("request::desktop_decoration", function(s)
-- Taglist widget -- Taglist widget
s.mytaglist = { s.mytaglist = {
widget = wibox.container.background, widget = wibox.widget.background,
bg = theme.taglist_bg,
shape = gears.shape.octogon,
awful.widget.taglist { awful.widget.taglist {
screen = s, screen = s,
filter = awful.widget.taglist.filter.all, 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 -- Main right widget container with pill shape
local right_widgets = { s.right_widgets_container = wibox.widget {
custom_widget_container, custom_widget_container,
widget = wibox.container.background, widget = wibox.container.background,
shape = gears.shape.octogon, shape = gears.shape.rounded_rect,
} }
-- Wibar -- Wibar
s.mywibox = awful.wibar { s.mywibox = awful.wibar {
position = "top", position = "top",
height = (30), height = (20),
border_width = (6), border_width = (6),
border_color = theme.bg_normal, border_color = theme.bg_normal,
screen = s, screen = s,
@ -181,17 +186,27 @@ screen.connect_signal("request::desktop_decoration", function(s)
{ {
-- [[ Right widgets ]] -- [[ Right widgets ]]
layout = wibox.layout.fixed.horizontal, layout = wibox.layout.fixed.horizontal,
right_widgets s.right_widgets_container
}, },
}, },
{ {
-- [[ Center widgets ]] -- [[ Center widgets ]]
-- Clock widget -- Clock widget
wibox.container.background(mytextclock, theme.bar_clock, gears.shape.octogon), wibox.widget.textclock(),
valign = "center", valign = "center",
halign = "center", halign = "center",
layout = wibox.container.place, layout = wibox.container.place,
} }
} }
} }
-- Update the visibility of right-hand widgets on startup
update_right_widgets_visibility()
end) 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)

View file

@ -1,5 +1,5 @@
local awful = require("awful") local awful = require("awful")
local centerwork = require("modules.layouts.centerwork") local centerwork = require("ui.layouts.centerwork")
tag.connect_signal("request::default_layouts", tag.connect_signal("request::default_layouts",
function() function()

View file

@ -8,7 +8,7 @@ local ruled = require("ruled")
naughty.config.defaults.ontop = true naughty.config.defaults.ontop = true
naughty.config.defaults.timeout = 5 naughty.config.defaults.timeout = 5
naughty.config.defaults.screen = awful.screen.focused() 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.position = "top_right"
naughty.config.defaults.title = "Notification" naughty.config.defaults.title = "Notification"
@ -63,6 +63,7 @@ naughty.connect_signal("request::display",
{ {
{ {
{ {
naughty.widget.icon,
naughty.widget.title, naughty.widget.title,
forced_height = dpi(38), forced_height = dpi(38),
layout = wibox.layout.align.horizontal layout = wibox.layout.align.horizontal

View file

@ -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

View file

@ -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

View file

@ -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. #* 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" #* 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 to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_cpu = "default" 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 to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_mem = "default" 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 to use for graphs in cpu box, "default", "braille", "block" or "tty".
graph_symbol_proc = "default" 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" shown_boxes = "cpu mem net proc"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. #* 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", #* 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. #* "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. #* Reverse sorting order, True or False.
proc_reversed = False proc_reversed = False
#* Show processes as a tree. #* Show processes as a tree.
proc_tree = True proc_tree = False
#* Use the cpu graph colors in the process list. #* Use the cpu graph colors in the process list.
proc_colors = True proc_colors = True
@ -81,10 +84,13 @@ proc_cpu_graphs = True
proc_info_smaps = False proc_info_smaps = False
#* Show proc box on left side of screen instead of right. #* 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). #* (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. #* 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. #* 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. #* Select from a list of detected attributes from the options menu.
cpu_graph_lower = "total" 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. #* Toggles if the lower CPU graph should be inverted.
cpu_invert_lower = True cpu_invert_lower = True
@ -207,6 +216,33 @@ show_battery = True
#* Which battery to use if multiple are present. "Auto" for auto detection. #* Which battery to use if multiple are present. "Auto" for auto detection.
selected_battery = "Auto" 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". #* 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. #* The level set includes all lower levels, i.e. "DEBUG" will show all logging info.
log_level = "WARNING" 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 = ""

View file

@ -9,13 +9,14 @@
# First line removes the path; second line sets it. Without the first line, # First line removes the path; second line sets it. Without the first line,
# your path gets massive and fish becomes very slow. # your path gets massive and fish becomes very slow.
set -e fish_user_paths 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 ### ### EXPORT ###
set fish_greeting # Supresses fish's intro message set fish_greeting # Supresses fish's intro message
set TERM "xterm-256color" # Sets the terminal type set TERM "xterm-256color" # Sets the terminal type
set EDITOR "$HOME/.local/bin/lvim" 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 BAT AS MANPAGER
#set -x MANPAGER "sh -c 'col -bx | bat -l man -p'" #set -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
@ -114,6 +115,12 @@ end
function take --argument number function take --argument number
head -$number head -$number
end end
# unlock ssh keys
function unlock
ssh-add "$HOME/.ssh/$argv[1]"
end
### END OF FUNCTIONS ### ### END OF FUNCTIONS ###
### ALIASES ### ### ALIASES ###
@ -124,11 +131,17 @@ alias .3='cd ../../..'
alias .4='cd ../../../..' alias .4='cd ../../../..'
alias .5='cd ../../../../..' alias .5='cd ../../../../..'
# emacs as vim # use lunarvim or neovim for vim if present.
alias vim="$EDITOR" 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 # bat as cat
alias cat='bat' if test -x (command -v bat)
alias cat "bat"
end
# Changing "ls" to "eza" # Changing "ls" to "eza"
alias ls='eza -al --color=always --group-directories-first' # my preferred listing 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 "^\."' alias l.='eza -a | egrep "^\."'
# package management # package management
alias pac-up='paru -Syu' alias pkg-update="paru -Syu"
alias pac-get='paru -S' alias pkg-install="paru -S"
alias pac-rmv='paru -Rcns' alias pkg-remove="paru -Rcns"
alias pac-rmv-sec='paru -R' alias pkg-remove-sec="paru -R"
alias pac-qry='paru -Ss' alias pkg-search="paru -Ss"
alias pac-cln='paru -Scc && paru -Rns (pacman -Qtdq)' alias pkg-clean="paru -Scc && paru -Rns (pacman -Qtdq)"
# Colorize grep output (good for log files) # Colorize grep output (good for log files)
alias grep='grep --color=auto' 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' alias pscpu='ps auxf | sort -nr -k 3'
# git # git
alias addup='git add -u' alias git-adu='git add -u'
alias addall='git add .' alias git-adl='git add .'
alias branch='git branch' alias git-brn='git branch'
alias checkout='git checkout' alias git-chk='git checkout'
alias clone='git clone' alias git-cln='git clone'
alias commit='git commit -m' alias git-cmt='git commit -m'
alias fetch='git fetch' alias git-fth='git fetch'
alias pull='git pull origin' alias git-pll='git pull origin'
alias push='git push origin' alias git-psh='git push origin'
alias tag='git tag' alias git-sts='git status'
alias newtag='git tag -a' alias git-tag='git tag'
alias git-ntg='git tag -a'
# power management # power management
alias po='systemctl poweroff' 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-vorbis="yt-dlp --extract-audio --audio-format vorbis "
alias yta-wav="yt-dlp --extract-audio --audio-format wav " alias yta-wav="yt-dlp --extract-audio --audio-format wav "
alias ytv-best="yt-dlp -f bestvideo+bestaudio " alias ytv-best="yt-dlp -f bestvideo+bestaudio "
alias yt='ytfzf -ftsl' alias yt='ytfzf -ftslT kitty'
alias youtube='ytfzf -ftsl' alias youtube='ytfzf -ftslT kitty'
alias ytm='ytfzf -mtsl' alias ytm='ytfzf -mtslT kitty'
alias youtube-music='ytfzf -mtsl' alias youtube-music='ytfzf -mtslT kitty'
# network and bluetooth # network and bluetooth
alias netstats='nmcli dev' alias netstats='nmcli dev'
@ -226,3 +240,4 @@ alias blt='bluetoothctl'
### SETTING THE STARSHIP PROMPT ### ### SETTING THE STARSHIP PROMPT ###
starship init fish | source starship init fish | source
zoxide init fish | source

View file

@ -1,4 +1,4 @@
[user] [user]
mail = maverick.xero@proton.me mail = maverick.xero@proton.me
name = Darius Drake name = Clay Gomera
email = maverick.xero@proton.me email = maverick.xero@proton.me

View file

@ -1,6 +1,6 @@
gtk-theme-name="gruvbox-dark-gtk" gtk-theme-name="Gruvbox-Dark"
gtk-icon-theme-name="gruvbox-dark-icons-gtk" gtk-icon-theme-name="Papirus-Dark"
gtk-font-name="Cantarell 10" gtk-font-name="Inter 10"
gtk-cursor-theme-name="Simp1e-Gruvbox-Dark" gtk-cursor-theme-name="Simp1e-Gruvbox-Dark"
gtk-cursor-theme-size=0 gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH gtk-toolbar-style=GTK_TOOLBAR_BOTH

View file

@ -1,7 +1,7 @@
[Settings] [Settings]
gtk-theme-name=gruvbox-dark-gtk gtk-theme-name=Awesthetic-dark
gtk-icon-theme-name=gruvbox-dark-icons-gtk gtk-icon-theme-name=Crule-dark
gtk-font-name=Cantarell 10 gtk-font-name=Inter 10
gtk-cursor-theme-name=Simp1e-Gruvbox-Dark gtk-cursor-theme-name=Simp1e-Gruvbox-Dark
gtk-cursor-theme-size=0 gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH gtk-toolbar-style=GTK_TOOLBAR_BOTH

67
config/kitty/kitty.conf Normal file
View file

@ -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 <morhetz@gmail.com>
# Adapted to kitty by wdomitrz <witekdomitrz@gmail.com>
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

83
config/lvim/config.lua Normal file
View file

@ -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["<leader>D"] = ":DBUIToggle<CR>"
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")

139
config/mpv/mpv.conf Normal file
View file

@ -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'

View file

@ -48,4 +48,4 @@ highlight article ":.*\\(image\\)$" blue default
highlight article ":.*\\(embedded flash\\)$" magenta default highlight article ":.*\\(embedded flash\\)$" magenta default
browser w3m 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"

215
config/newsboat/urls Normal file
View file

@ -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"

21
config/rofi/config.rasi Normal file
View file

@ -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"

View file

@ -1,32 +1,28 @@
configuration{ * {
modi: "run,drun,window"; bg-col: #1d2021;
lines: 10; bg-col-light: #282828;
font: "mononoki Nerd Font 13"; border-col: #504945;
show-icons: true; selected-col: #3c3836;
icon-theme: "gruvbox-dark-icons-gtk"; blue: #458588;
terminal: "alacritty"; fg-col: #ebdbb2;
drun-display-format: "{icon} {name}"; fg-col2: #ebdbb2;
location: 0; grey: #928374;
disable-history: false; width: 600;
hide-scrollbar: true; selected: #ebdbb2;
display-drun: " 󰀻 Apps "; red: #fb4934;
display-run: "  Run "; green: #98971a;
display-window: " 󰖯 Window "; empty: #3c3836;
display-Network: " 󰤨 Network "; inactive: #928374;
sidebar-mode: true;
dpi: 100;
} }
@theme "gruvbox-dark"
element-text, element-icon , mode-switcher { element-text, element-icon , mode-switcher {
background-color: inherit; background-color: inherit;
text-color: inherit; text-color: inherit;
} }
window { window {
height: 380; height: 400;
width: 1000; width: 700;
border: 3px; border: 3px;
border-color: @border-col; border-color: @border-col;
background-color: @bg-col; background-color: @bg-col;
@ -67,7 +63,7 @@ listview {
border: 0px 0px 0px; border: 0px 0px 0px;
padding: 2px 2px 2px; padding: 2px 2px 2px;
margin: 10px 20px 0px 20px; margin: 10px 20px 0px 20px;
columns: 1; columns: 2;
background-color: @bg-col; background-color: @bg-col;
} }

View file

@ -21,7 +21,7 @@ main() {
image "$1" "$2" "$3" "$4" "$5" "$FILE" image "$1" "$2" "$3" "$4" "$5" "$FILE"
;; ;;
"video") "video")
[ ! -f "$PCACHE" ] && \ [ ! -f "${PCACHE}.jpg" ] && \
ffmpegthumbnailer -i "$6" -o "${PCACHE}.jpg" -s 0 -q 5 ffmpegthumbnailer -i "$6" -o "${PCACHE}.jpg" -s 0 -q 5
image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg" image "$1" "$2" "$3" "$4" "$5" "${PCACHE}.jpg"
;; ;;

View file

@ -246,10 +246,10 @@ filetype *.[1-8] man ./%c
fileviewer *.[1-8] man ./%c | col -b fileviewer *.[1-8] man ./%c | col -b
" Images " Images
filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm filextype *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,*.webp
\ {View in imv} \ {View in imv}
\ nsxiv %f &, \ imv %f &,
fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.xpm,*.gif fileviewer *.bmp,*.jpg,*.jpeg,*.png,*.gif,*.xpm,*.webp
\ vifmimg draw %px %py %pw %ph %c \ vifmimg draw %px %py %pw %ph %c
\ %pc \ %pc
\ vifmimg clear \ vifmimg clear
@ -296,7 +296,7 @@ filetype *.asc
\ !!gpg --verify %c, \ !!gpg --verify %c,
" Torrent " Torrent
filetype *.torrent ktorrent %f & filetype *.torrent flatpak run org.qbittorrent.qBittorrent %f &
fileviewer *.torrent dumptorrent -v %c fileviewer *.torrent dumptorrent -v %c
" FuseZipMount " FuseZipMount
@ -346,7 +346,7 @@ filetype *.7z
fileviewer *.7z 7z l %c fileviewer *.7z 7z l %c
" Office files " 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 *.doc catdoc %c
fileviewer *.docx docx2txt.pl %f - fileviewer *.docx docx2txt.pl %f -

View file

@ -1,7 +1,7 @@
# GRUB boot loader configuration # GRUB boot loader configuration
GRUB_DEFAULT=0 GRUB_DEFAULT=0
GRUB_TIMEOUT=0 GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR="Arch" GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="rd.luks.name=<UUID>=<LVM_NAME> rd.luks.key=<UUID>=<PATH_TO_KEY> loglevel=3 quiet systemd.show_status=auto rd.udev.log_level=3" GRUB_CMDLINE_LINUX_DEFAULT="rd.luks.name=<UUID>=<LVM_NAME> rd.luks.key=<UUID>=<PATH_TO_KEY> loglevel=3 quiet systemd.show_status=auto rd.udev.log_level=3"
GRUB_CMDLINE_LINUX="" GRUB_CMDLINE_LINUX=""
@ -14,7 +14,7 @@ GRUB_ENABLE_CRYPTODISK=y
# Set to 'countdown' or 'hidden' to change timeout behavior, # Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu. # press ESC key to display menu.
GRUB_TIMEOUT_STYLE=menu GRUB_TIMEOUT_STYLE=hidden
# Uncomment to use basic console # Uncomment to use basic console
GRUB_TERMINAL_INPUT=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 # documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this
# functionality install os-prober and uncomment to detect and include other # functionality install os-prober and uncomment to detect and include other
# operating systems. # operating systems.
#GRUB_DISABLE_OS_PROBER=false GRUB_DISABLE_OS_PROBER=true

View file

@ -47,13 +47,17 @@ FILES=(/boot/volume.key)
## This setup loads an lvm2 volume group. ## This setup loads an lvm2 volume group.
# HOOKS=(base udev modconf block lvm2 filesystems fsck) # 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 ## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks. # 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 # COMPRESSION
# Use this to compress the initramfs image. By default, zstd 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="zstd"
#COMPRESSION="gzip" #COMPRESSION="gzip"
#COMPRESSION="bzip2" #COMPRESSION="bzip2"
@ -67,7 +71,11 @@ HOOKS=(base systemd autodetect modconf kms keyboard sd-vconsole block sd-encrypt
#COMPRESSION_OPTIONS=() #COMPRESSION_OPTIONS=()
# MODULES_DECOMPRESS # MODULES_DECOMPRESS
# Decompress kernel modules during initramfs creation. # Decompress loadable kernel modules and their firmware during initramfs
# Enable to speedup boot process, disable to save RAM # creation. Switch (yes/no).
# during early userspace. Switch (yes/no). # Enable to allow further decreasing image size when using high compression
#MODULES_DECOMPRESS="yes" # (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"

9
etc/pam.d/login Normal file
View file

@ -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

83
home/.bash_profile Normal file
View file

@ -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

View file

@ -1,16 +1,9 @@
## ____ __
## / __ \_________ _/ /_____
## / / / / ___/ __ `/ //_/ _ \
## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake)
## /_____/_/ \__,_/_/|_|\___/ My custom bash config
##
### EXPORT ### ### EXPORT ###
export TERM="xterm-256color" # getting proper colors export TERM="xterm-256color" # getting proper colors
export HISTCONTROL=ignoredups:erasedups # no duplicate entries export HISTCONTROL=ignoredups:erasedups # no duplicate entries
### "bat" as manpager ### "bat" as manpager
export MANPAGER="sh -c 'col -bx | bat -l man -p'" export MANPAGER="bat -p"
# use bash-completion, if available # use bash-completion, if available
[[ $PS1 && -f /usr/share/bash-completion/bash_completion ]] && \ [[ $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-command 'Control-l: clear-screen'
bind -m vi-insert '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 ### ### CHANGE TITLE OF TERMINALS ###
case ${TERM} in case ${TERM} in
xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|alacritty|st|konsole*) xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|alacritty|st|konsole*)
@ -110,6 +92,11 @@ function up () {
fi fi
} }
# unlock ssh keys
function unlock() {
ssh-add "$HOME/.ssh/$1"
}
# cd # cd
alias \ alias \
..="cd .." \ ..="cd .." \
@ -121,11 +108,18 @@ alias \
# bat as cat # bat as cat
[ -x "$(command -v bat)" ] && alias cat="bat" [ -x "$(command -v bat)" ] && alias cat="bat"
# use lunarvim for vim if present. # fastfetch as neofetch
[ -x "$(command -v $HOME/.local/bin/lvim)" ] && alias vim="$HOME/.local/bin/lvim" [ -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" # Changing "ls" to "eza"
alias \ [ -x "$(command -v eza)" ] && alias \
ls="eza --icons -al --color=always --group-directories-first" \ ls="eza --icons -al --color=always --group-directories-first" \
la="eza --icons -a --color=always --group-directories-first" \ la="eza --icons -a --color=always --group-directories-first" \
ll="eza --icons -l --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 # function to detect os and assign aliases to package managers
alias \ alias \
pac-up="paru -Syu" \ pkg-update="sudo pacman -Syyu" \
pac-get="paru -S" \ pkg-install="sudo pacman -S" \
pac-rmv="paru -Rcns" \ pkg-remove="sudo pacman -Rcns" \
pac-rmv-sec="paru -R" \ pkg-autoremove="sudo xbps-remove -Oo" \
pac-qry="paru -Ss" \ pkg-search="sudo pacman -Ss"
pac-cln="paru -Scc && sudo pacman -Rns $(pacman -Qtdq)"
# colorize grep output (good for log files) # colorize grep output (good for log files)
alias \ alias \
@ -227,5 +220,6 @@ alias \
wfi-off="nmcli radio wifi off" \ wfi-off="nmcli radio wifi off" \
blt="bluetoothctl" blt="bluetoothctl"
### SETTING THE STARSHIP PROMPT ### # starship and zoxide
eval "$(starship init bash)" eval "$(starship init bash)"
eval "$(zoxide init bash)"

View file

@ -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

File diff suppressed because it is too large Load diff

Before

Width:  |  Height:  |  Size: 207 KiB

View file

@ -1,2 +0,0 @@
[General]
theme=Gruvbox-Dark-Brown

Some files were not shown because too many files have changed in this diff Show more