This commit is contained in:
Lian Drake 2024-08-19 00:36:33 -04:00
parent 93f8843fcc
commit 86c483226e
80 changed files with 10718 additions and 7237 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

@ -9,16 +9,17 @@
# 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 "$HOME/.local/bin/neovide" set VISUAL "wezterm start --class neovim $HOME/.local/bin/lvim"
set GOPATH "$HOME/.go"
### SET BAT AS MANPAGER ### SET BAT AS MANPAGER
set -x PAGER "bat -p" #set -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
### SET EITHER DEFAULT EMACS MODE OR VI MODE ### ### SET EITHER DEFAULT EMACS MODE OR VI MODE ###
function fish_user_key_bindings function fish_user_key_bindings
@ -34,7 +35,6 @@ set fish_color_command brcyan
set fish_color_error '#fb4934' set fish_color_error '#fb4934'
set fish_color_param brcyan set fish_color_param brcyan
### FUNCTIONS ### ### FUNCTIONS ###
# Functions needed for !! and !$ # Functions needed for !! and !$
function __history_previous_command function __history_previous_command
@ -115,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 ###
@ -125,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="$HOME/.local/bin/lvim" 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
@ -139,11 +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 pkg-update='sudo xbps-install -Suv && xcheckrestart' alias pkg-update="paru -Syu"
alias pkg-install='sudo xbps-install -S' alias pkg-install="paru -S"
alias pkg-remove='sudo xbps-remove -R' alias pkg-remove="paru -Rcns"
alias pkg-search='sudo xbps-query -R' alias pkg-remove-sec="paru -R"
alias pkg-clean='sudo xbps-remove -Oo' alias pkg-search="paru -Ss"
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'
@ -151,8 +164,9 @@ alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto' alias fgrep='fgrep --color=auto'
# file management # file management
alias fm="vifm" alias fm="$HOME/.config/vifm/scripts/vifmrun"
alias flm="vifm" alias flm="$HOME/.config/vifm/scripts/vifmrun"
alias vifm="$HOME/.config/vifm/scripts/vifmrun"
alias cp='cp -iv' alias cp='cp -iv'
alias mv='mv -iv' alias mv='mv -iv'
alias rm='rm -vI' alias rm='rm -vI'
@ -182,22 +196,23 @@ 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='loginctl poweroff' alias po='systemctl poweroff'
alias sp='loginctl suspend' alias sp='systemctl suspend'
alias rb='loginctl reboot' alias rb='systemctl reboot'
# youtube- # youtube-
alias yta-aac="yt-dlp --extract-audio --audio-format aac " alias yta-aac="yt-dlp --extract-audio --audio-format aac "
@ -209,10 +224,10 @@ alias yta-opus="yt-dlp --extract-audio --audio-format opus "
alias yta-vorbis="yt-dlp --extract-audio --audio-format vorbis " alias yta-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'
@ -225,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

212
config/foot/foot.ini Normal file
View file

@ -0,0 +1,212 @@
# -*- conf -*-
shell=fish
# term=foot (or xterm-256color if built with -Dterminfo=disabled)
# login-shell=no
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
# title=foot
# locked-title=no
font=Mononoki Nerd Font:size=14
# font-bold=<bold variant of regular font>
# font-italic=<italic variant of regular font>
# font-bold-italic=<bold+italic variant of regular font>
# font-size-adjustment=0.5
# line-height=<font metrics>
# letter-spacing=0
# horizontal-letter-offset=0
# vertical-letter-offset=0
# underline-offset=<font metrics>
# underline-thickness=<font underline thickness>
# box-drawings-uses-font-glyphs=no
# dpi-aware=no
# initial-window-size-pixels=700x500 # Or,
initial-window-size-chars=140x35
# initial-window-mode=windowed
pad=10x10 # optionally append 'center'
# resize-by-cells=yes
# resize-delay-ms=100
# bold-text-in-bright=no
# word-delimiters=,│`|:"'()[]{}<>
# selection-target=primary
# workers=<number of logical CPUs>
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is libutempter (Linux)
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ulog (FreeBSD)
[environment]
# name=value
[bell]
# urgent=no
# notify=no
# visual=no
# command=
# command-focused=no
[desktop-notifications]
# command=notify-send --wait --app-name ${app-id} --icon ${app-id} --category ${category} --urgency ${urgency} --expire-time ${expire-time} --hint STRING:image-path:${icon} --hint BOOLEAN:suppress-sound:${muted} --hint STRING:sound-name:${sound-name} --replace-id ${replace-id} ${action-argument} --print-id -- ${title} ${body}
# command-action-argument=--action ${action-name}=${action-label}
# close=""
# inhibit-when-focused=yes
[scrollback]
lines=10000
# multiplier=3.0
# indicator-position=relative
# indicator-format=""
[url]
launch=xdg-open ${url}
# label-letters=sadfjklewcmpgh
# osc8-underline=url-mode
# protocols=http, https, ftp, ftps, file, gemini, gopher
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
[cursor]
style=underline
# color=<inverse foreground/background>
blink=yes
# blink-rate=500
# beam-thickness=1.5
# underline-thickness=<font underline thickness>
[mouse]
# hide-when-typing=no
# alternate-scroll-mode=yes
[touch]
# long-press-delay=400
[colors]
alpha=0.95
background=1d2021
foreground=fbf1c7
regular0=282828
regular1=cc241d
regular2=98971a
regular3=d79921
regular4=458588
regular5=b16286
regular6=689d6a
regular7=a89984
bright0=928374
bright1=fb4934
bright2=b8bb26
bright3=fabd2f
bright4=83a598
bright5=d3869b
bright6=8ec07c
bright7=ebdbb2
[csd]
# preferred=server
# size=26
# font=<primary font>
# color=<foreground color>
# hide-when-maximized=no
# double-click-to-maximize=yes
# border-width=0
# border-color=<csd.color>
# button-width=26
# button-color=<background color>
# button-minimize-color=<regular4>
# button-maximize-color=<regular2>
# button-close-color=<regular1>
[key-bindings]
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# scrollback-home=none
# scrollback-end=none
# clipboard-copy=Control+Shift+c XF86Copy
# clipboard-paste=Control+Shift+v XF86Paste
# primary-paste=Shift+Insert
# search-start=Control+Shift+r
# font-increase=Control+plus Control+equal Control+KP_Add
# font-decrease=Control+minus Control+KP_Subtract
# font-reset=Control+0 Control+KP_0
# spawn-terminal=Control+Shift+n
# minimize=none
# maximize=none
# fullscreen=none
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
# pipe-selected=[xargs -r firefox] none
# pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard
# show-urls-launch=Control+Shift+o
# show-urls-copy=none
# show-urls-persistent=none
# prompt-prev=Control+Shift+z
# prompt-next=Control+Shift+x
# unicode-input=Control+Shift+u
# noop=none
[search-bindings]
# cancel=Control+g Control+c Escape
# commit=Return
# find-prev=Control+r
# find-next=Control+s
# cursor-left=Left Control+b
# cursor-left-word=Control+Left Mod1+b
# cursor-right=Right Control+f
# cursor-right-word=Control+Right Mod1+f
# cursor-home=Home Control+a
# cursor-end=End Control+e
# delete-prev=BackSpace
# delete-prev-word=Mod1+BackSpace Control+BackSpace
# delete-next=Delete
# delete-next-word=Mod1+d Control+Delete
# extend-char=Shift+Right
# extend-to-word-boundary=Control+w Control+Shift+Right
# extend-to-next-whitespace=Control+Shift+w
# extend-line-down=Shift+Down
# extend-backward-char=Shift+Left
# extend-backward-to-word-boundary=Control+Shift+Left
# extend-backward-to-next-whitespace=none
# extend-line-up=Shift+Up
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
# primary-paste=Shift+Insert
# unicode-input=none
# quit=none
# scrollback-up-page=Shift+Page_Up
# scrollback-up-half-page=none
# scrollback-up-line=none
# scrollback-down-page=Shift+Page_Down
# scrollback-down-half-page=none
# scrollback-down-line=none
# scrollback-home=none
# scrollback-end=none
[url-bindings]
# cancel=Control+g Control+c Control+d Escape
# toggle-url-visible=t
[text-bindings]
# \x03=Mod4+c # Map Super+c -> Ctrl+c
[mouse-bindings]
# scrollback-up-mouse=BTN_WHEEL_BACK
# scrollback-down-mouse=BTN_WHEEL_FORWARD
# font-increase=Control+BTN_WHEEL_BACK
# font-decrease=Control+BTN_WHEEL_FORWARD
# selection-override-modifiers=Shift
# primary-paste=BTN_MIDDLE
# select-begin=BTN_LEFT
# select-begin-block=Control+BTN_LEFT
# select-extend=BTN_RIGHT
# select-extend-character-wise=Control+BTN_RIGHT
# select-word=BTN_LEFT-2
# select-word-whitespace=Control+BTN_LEFT-2
# select-quote = BTN_LEFT-3
# select-row=BTN_LEFT-4
# vim: ft=dosini

View file

@ -1,10 +1,11 @@
font=Mononoki Nerd Font:size=09 font=Mononoki Nerd Font:size=14
dpi-aware=no
prompt=" " prompt=" "
icon-theme=gruvbox-dark-icons-gtk icon-theme=Papirus-Dark
icons-enabled=yes icons-enabled=yes
password-character=* password-character=*
fuzzy=yes fuzzy=yes
terminal=wezterm start terminal=foot
lines=20 lines=20
width=70 width=70
inner-pad=12 inner-pad=12
@ -15,7 +16,7 @@ exit-on-keyboard-focus-loss=yes
[colors] [colors]
background=1d2021ff background=1d2021ff
text=ebdbb2ff text=fbf1c7ff
match=8ec07cff match=8ec07cff
selection-match=1d2021ff selection-match=1d2021ff
selection=cc241dff selection=cc241dff

47
config/fuzzel/scripts/rs_clip Executable file
View file

@ -0,0 +1,47 @@
#!/usr/bin/env bash
# rs_clip - A simple clipboard menu script for rofi/dmenu/wofi/fuzzel
# Author: Clay Gomera (Drake)
# Dependencies: {rofi || dmenu || wofi // fuzzel}, cliphist, wl-clipboard (wl-copy)
########################
# Function Definitions #
########################
# Check for missing dependencies
check_dependencies() {
local run_launcher_found=false
for launcher in rofi dmenu wofi fuzzel; do
if command -v "$launcher" &> /dev/null; then
run_launcher_found=true
break
fi
done
if [ "$run_launcher_found" = false ]; then
echo "Missing dependency: one of rofi, dmenu, wofi or fuzzel is required."
exit 1
fi
local missing_deps=()
for dep in cliphist wl-copy; do
if ! command -v "$dep" &> /dev/null; then
missing_deps+=("$dep")
fi
done
if [ ${#missing_deps[@]} -ne 0 ]; then
echo "Missing dependencies: ${missing_deps[*]}"
exit 1
fi
}
####################
# Main Script Flow #
####################
# Check for dependencies
check_dependencies
# Pass clipboard data into the menu
cliphist list | $RUNNER -l 10 -p "[󱉧 Clipboard]  " | cliphist decode | wl-copy

View file

@ -1,5 +1,55 @@
#!/bin/bash #!/usr/bin/env bash
sed '1,/^### DATA ###$/d' $0 | $RUNNER -l 10 -i -p "[󰙃 Select Emoji]  " | cut -d ' ' -f 1 | tr -d '\n' | wl-copy
# rs_emoji - A simple emoji picker menu script for rofi/dmenu/wofi/fuzzel
# Author: Clay Gomera (Drake)
# Dependencies: {rofi || dmenu || wofi || fuzzel}, wl-clipboard (wl-copy)
########################
# Function Definitions #
########################
# Check for missing dependencies
check_dependencies() {
local run_launcher_found=false
for launcher in rofi dmenu wofi fuzzel; do
if command -v "$launcher" &> /dev/null; then
run_launcher_found=true
break
fi
done
if [ "$run_launcher_found" = false ]; then
echo "Missing dependency: one of rofi, dmenu, wofi or fuzzel is required."
exit 1
fi
local missing_deps=()
for dep in wl-copy; do
if ! command -v "$dep" &> /dev/null; then
missing_deps+=("$dep")
fi
done
if [ ${#missing_deps[@]} -ne 0 ]; then
echo "Missing dependencies: ${missing_deps[*]}"
exit 1
fi
}
####################
# Main Script Flow #
####################
# Check for dependencies
check_dependencies
# Pass emoji data into the menu
sed '1,/^### DATA ###$/d' $0 | $RUNNER -i -p "[󰙃 Select Emoji] " | cut -d ' ' -f 1 | tr -d '\n' | wl-copy
##############
# Emoji Data #
##############
### DATA ### ### DATA ###
😀 grinning face face smile happy joy :D grin 😀 grinning face face smile happy joy :D grin
😃 grinning face with big eyes face happy joy haha :D :) smile funny 😃 grinning face with big eyes face happy joy haha :D :) smile funny

View file

@ -47,29 +47,22 @@ fi
prompt1="[ Power Options]  " prompt1="[ Power Options]  "
prompt2="[ Power Profiles - Currently set to: $currentpwr]  " prompt2="[ Power Profiles - Currently set to: $currentpwr]  "
#####
## This variable will store the currently active session in tty1
#####
ACTIVE_SESSION=$(loginctl list | grep -E "$USER.*tty1" | awk '{print $1}')
########## ##########
## main ## ## main ##
########## ##########
action=$(echo -e "$options" | $RUNNER -l 7 -p "$prompt1") # main menu prompt action=$(echo -e "$options" | $RUNNER -l 7 -p "$prompt1") # main menu prompt
case "$action" in case "$action" in
"$option1") "$option1")
loginctl kill-session "$ACTIVE_SESSION" loginctl kill-session self
;; ;;
"$option2") "$option2")
loginctl reboot systemctl reboot
;; ;;
"$option3") "$option3")
loginctl poweroff systemctl poweroff
;; ;;
"$option4") "$option4")
swaylock -i "$currwall" & systemctl suspend
sleep 0.1
loginctl suspend
;; ;;
"$option5") "$option5")
swaylock -i "$currwall" swaylock -i "$currwall"

321
config/fuzzel/scripts/rs_scrot Executable file
View file

@ -0,0 +1,321 @@
#!/usr/bin/env bash
# rs_scrot - A simple screenshot menu script for rofi/dmenu/wofi/fuzzel
# Author: Clay Gomera (Drake)
# Dependencies: {rofi || dmenu || wofi || fuzzel}, grim, slurp, jq, wf-recorder, wl-clipboard (wl-copy), libnotify (notify-send)
############################
# Configuration Parameters #
############################
# Directory to save screenshots
SHOTDIR="$XDG_PICTURES_DIR/Screenshots"
VCAPDIR="$XDG_VIDEOS_DIR/Screencasts" # $MEDIA_DIR refers to a global variable in .xinitrc/.bash_profile
[ ! -d "$SHOTDIR" ] && [ ! -d "$VCAPDIR" ] && mkdir -p "$SHOTDIR" "$VCAPDIR" || echo
# Get audio devices and descriptions
audioDevices=$(pactl list sources | grep "Name" | awk '{print $2}')
audioDescriptions=$(pactl list sources | grep "Description" | cut -d' ' -f2-)
# Create an associative array for mapping pretty names to actual names
declare -A audioMap
while IFS= read -r name && IFS= read -r desc <&3; do
audioMap["$desc"]="$name"
done < <(echo "$audioDevices") 3< <(echo "$audioDescriptions")
#####################
# Main Menu Options #
#####################
mainChoice1="󰹑 Take an screenshot"
mainChoice2="󰻃 Record the screen"
mainChoice3=" Exit"
mainChoices="$mainChoice1\n$mainChoice2\n$mainChoice3"
#############################
## Screenshot menu choices ##
#############################
shotChoice1="󱣴 Entire screen"
shotChoice2="󱎫 Entire screen with delay"
shotChoice3="󱕻 Select region"
shotChoice4="󰖯 Active window"
shotChoice5="󱎘 Exit"
shotChoices="$shotChoice1\n$shotChoice2\n$shotChoice3\n$shotChoice4\n$shotChoice5"
#############################
## Screencast menu choices ##
#############################
vidChoice1="󰕧 Record the screen"
vidChoice2="󰕩 Record region"
vidChoice3="󰕧 Record the screen with audio"
vidChoice4="󰕨 Stop recording"
vidChoice5="󱎘 Exit"
vidChoices="$vidChoice1\n$vidChoice2\n$vidChoice3\n$vidChoice4\n$vidChoice5"
###################
# Submenu Options #
###################
subShotChoice1="󰆏 Copy to clipboard"
subShotChoice2="󰠘 Save to $XDG_PICTURES_DIR"
subShotChoice3="󱎘 Exit"
subShotChoices="$subShotChoice1\n$subShotChoice2\n$subShotChoice3"
####################################
# Screenshot Delay Submenu Options #
####################################
delayChoice1="󱑀 3 sec delay"
delayChoice2="󱑂 5 sec delay"
delayChoice3="󱑇 10 sec delay"
delayChoice4="󱎘 Exit"
delayChoices="$delayChoice1\n$delayChoice2\n$delayChoice3\n$delayChoice4"
########################
# Function Definitions #
########################
# Check for missing dependencies
CheckDependencies() {
local run_launcher_found=false
for launcher in rofi dmenu wofi fuzzel; do
if command -v "$launcher" &> /dev/null; then
run_launcher_found=true
break
fi
done
if [ "$run_launcher_found" = false ]; then
echo "Missing dependency: one of rofi, dmenu, wofi or fuzzel is required."
exit 1
fi
local missing_deps=()
for dep in grim slurp jq wl-copy notify-send wf-recorder; do
if ! command -v "$dep" &> /dev/null; then
missing_deps+=("$dep")
fi
done
if [ ${#missing_deps[@]} -ne 0 ]; then
echo "Missing dependencies: ${missing_deps[*]}"
exit 1
fi
}
# Prompt user for screenshot action
ShotActionPrompt() {
shotActionCases=$(echo -e "$subShotChoices" | $RUNNER -l 3 -i -p "[ What do you want to do with this screenshot?] ")
}
# Prompt user for screenshot delay
DelayPrompt() {
delayActionsCases=$(echo -e "$delayChoices" | $RUNNER -l 4 -i -p "[ Select Delay] ")
}
# Take a full screen screenshot without delay
ShotScreen() {
ShotActionPrompt
case "$shotActionCases" in
"$subShotChoice1")
sleep 0.5 && grim - | wl-copy && notify-send "Screenshot copied to clipboard"
;;
"$subShotChoice2")
sleep 0.5 && grim "$SHOTDIR/$(date +%s).png" && notify-send "Screenshot saved to $SHOTDIR"
;;
*)
exit 0
;;
esac
}
# Take a full screen screenshot with delay
ShotScreenDelay() {
ShotActionPrompt
if [ "$shotActionCases" = "$subShotChoice1" ]; then
DelayPrompt
case $delayActionsCases in
"$delayChoice1")
sleep 3 && grim - | wl-copy && notify-send "Screenshot saved to clipboard"
;;
"$delayChoice2")
sleep 5 && grim - | wl-copy && notify-send "Screenshot saved to clipboard"
;;
"$delayChoice3")
sleep 10 && grim - | wl-copy && notify-send "Screenshot saved to clipboard"
;;
"$delayChoice4")
exit 0
;;
esac
elif [ "$shotActionCases" = "$subShotChoice2" ]; then
DelayPrompt
case $delayActionsCases in
"$delayChoice1")
sleep 3 && grim "$SHOTDIR/$(date +%s).png" && notify-send "Screenshot saved to $SHOTDIR"
;;
"$delayChoice2")
sleep 5 && grim "$SHOTDIR/$(date +%s).png" && notify-send "Screenshot saved to $SHOTDIR"
;;
"$delayChoice3")
sleep 10 && grim "$SHOTDIR/$(date +%s).png" && notify-send "Screenshot saved to $SHOTDIR"
;;
"$delayChoice4")
exit 0
;;
esac
else
exit 0
fi
}
# Take a screenshot of a selected area
ShotArea() {
ShotActionPrompt
case "$shotActionCases" in
"$subShotChoice1")
sleep 0.5 && grim -g "$(slurp)" - | wl-copy && notify-send "Screenshot saved to clipboard"
;;
"$subShotChoice2")
sleep 0.5 && grim -g "$(slurp)" "$SHOTDIR/$(date +%s).png" && notify-send "Screenshot saved to $SHOTDIR"
;;
*)
exit 0
;;
esac
}
# Take a screenshot of the active window
ShotWindow() {
ShotActionPrompt
local focused=$(hyprctl activewindow -j)
local geom=$(echo "$focused" | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')
case "$shotActionCases" in
"$subShotChoice1")
sleep 0.5 && grim -g "$geom" - | wl-copy && notify-send "Screenshot saved to clipboard"
;;
"$subShotChoice2")
sleep 0.5 && grim -g "$geom" "$SHOTDIR/$(date +%s).png" && notify-send "Screenshot saved to $SHOTDIR"
;;
*)
exit 0
;;
esac
}
# Record the entire screen
VidScreen() {
for ((i = 3; i >= 1; i--)); do
notify-send -t 1000 "Starting in $i seconds"
sleep 1
done
wf-recorder -f "$VCAPDIR/$(date +%s).mp4"
notify-send "Screenshot" "Recording saved to $VCAPDIR"
}
# Record a specific area of the screen
VidArea() {
wf-recorder -g "$(slurp)" -f "$VCAPDIR/$(date +%s).mp4"
notify-send "Screenshot" "Recording saved to $VCAPDIR"
}
# Record the entire screen with audio
VidScreenAudio() {
local chosenPrettyDevice=$(echo -e "$audioDescriptions" | $RUNNER -i -p "󰕾 Select audio input")
local chosenDevice="${audioMap["$chosenPrettyDevice"]}"
if [ -n "$chosenDevice" ]; then
for ((i = 3; i >= 1; i--)); do
notify-send -t 1000 "Starting in $i seconds"
sleep 1
done
wf-recorder --audio="$chosenDevice" -f "$VCAPDIR/$(date +%s).mp4"
else
exit 1
fi
notify-send "Screenshot" "Recording saved to $VCAPDIR"
}
# Stop the video recording
VidStopRecording() {
if pidof wfrecorder; then
killall -s SIGINT wf-recorder
else
notify-send "You are not recording right now"
exit 1
fi
}
###################
# Check arguments #
###################
# Show help information
if [ "$1" == '--help' ] || [ "$1" = '-h' ]; then
echo "rs_scrot"
echo "USAGE: rs_scrot [OPTION]"
echo -e "(no option)\tshow the screenshot menu"
echo -e "-s, --stop\tstop recording"
echo -e "-h, --help\tthis screen"
exit 1
fi
# stop recording with -s or --stop arguments
if [ "$1" = '--stop' ] || [ "$1" = '-s' ]; then
VidStopRecording
exit 1
fi
####################
# Main Script Flow #
####################
# Check for dependencies
CheckDependencies
# Display main menu and execute selected option
mainCase=$(echo -e "$mainChoices" | $RUNNER -l 3 -i -p "[ Screenshot/Screencast Utility] ")
if [ -z "$mainCase" ]; then
exit 0
fi
case $mainCase in
"$mainChoice1")
shotCases=$(echo -e "$shotChoices" | $RUNNER -l 5 -i -p "[ Screenshot Menu] ") # screenshot menu prompt
case $shotCases in
"$shotChoice1")
ShotScreen
;;
"$shotChoice2")
ShotScreenDelay
;;
"$shotChoice3")
ShotArea
;;
"$shotChoice4")
ShotWindow
;;
"$shotChoice5")
exit 0
;;
esac
;;
"$mainChoice2")
vidCases=$(echo -e "$vidChoices" | $RUNNER -l 5 -i -p "[󰕧 Screencast Menu] ")
case $vidCases in
"$vidChoice1")
VidScreen
;;
"$vidChoice2")
VidArea
;;
"$vidChoice3")
VidScreenAudio
;;
"$vidChoice4")
VidStopRecording
;;
"$vidChoice5")
exit 0
esac
;;
"$mainChoice3")
exit 0
;;
esac

68
config/fuzzel/scripts/rs_wall Executable file
View file

@ -0,0 +1,68 @@
#!/usr/bin/env bash
# rs_wall - A simple screenshot menu script for rofi/dmenu/wofi/fuzzel
# Author: Clay Gomera (Drake)
# Dependencies: {rofi || dmenu || wofi || fuzzel}, swaybg
############################
# Configuration Parameters #
############################
walldir="$XDG_PICTURES_DIR/Wallpapers" # wallpapers folder, change it to yours
########################
# Function Definitions #
########################
# Check for missing dependencies
CheckDependencies() {
local run_launcher_found=false
for launcher in rofi dmenu wofi fuzzel; do
if command -v "$launcher" &> /dev/null; then
run_launcher_found=true
break
fi
done
if [ "$run_launcher_found" = false ]; then
echo "Missing dependency: one of rofi, dmenu, wofi or fuzzel is required."
exit 1
fi
local missing_deps=()
for dep in swaybg; do
if ! command -v "$dep" &> /dev/null; then
missing_deps+=("$dep")
fi
done
if [ ${#missing_deps[@]} -ne 0 ]; then
echo "Missing dependencies: ${missing_deps[*]}"
exit 1
fi
}
####################
# Main Script Flow #
####################
# Check for dependencies
CheckDependencies
cd "$walldir" || exit 1
wallpaper=$(fd -p "$walldir" | $RUNNER -l 5 -i -p "[󰋩 Wallpaper Selector]  ")
if [ -n "$wallpaper" ]; then
if [[ "$wallpaper" == *.jpg ]]; then
rm -f "$HOME/.config/sway/wallpaper/"*
cp "$wallpaper" "$HOME/.config/sway/wallpaper/background.jpg"
cp "$wallpaper" "$HOME/.config/sway/wallpaper/locked.jpg"
swaymsg output \* bg "$HOME/.config/sway/wallpaper/background.jpg" fill
elif [[ "$wallpaper" == *.png ]]; then
rm -f "$HOME/.config/sway/wallpaper/"*
cp "$wallpaper" "$HOME/.config/sway/wallpaper/background.png"
cp "$wallpaper" "$HOME/.config/sway/wallpaper/locked.png"
swaymsg output \* bg "$HOME/.config/sway/wallpaper/background.png" fill
fi
else
exit 1
fi
exit 0

167
config/fuzzel/scripts/rs_wifi Executable file
View file

@ -0,0 +1,167 @@
#!/usr/bin/env bash
# rs_wifi - A simple WiFi menu script for rofi/dmenu/wofi/fuzzel
# Author: Clay Gomera (Drake)
# Dependencies: {rofi || dmenu || wofi || fuzzel}, NetworkManager, libnotify (notify-send)
############################
# Configuration Parameters #
############################
# Main menu options
option1=" Turn on WiFi"
option2=" Turn off WiFi"
option3="󱛅 Disconnect WiFi"
option4="󱛃 Connect WiFi"
option5="󱛆 Setup captive portal"
option6=" Exit"
options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6"
# WiFi interface information
wifi_info=$(nmcli dev | awk '/wifi/ {print $1,$3; exit}')
read -r wlan constate <<< "$wifi_info"
########################
# Function Definitions #
########################
# Check for missing dependencies
check_dependencies() {
local run_launcher_found=false
for launcher in rofi dmenu wofi fuzzel; do
if command -v "$launcher" &> /dev/null; then
run_launcher_found=true
break
fi
done
if [ "$run_launcher_found" = false ]; then
echo "Missing dependency: one of rofi, dmenu, wofi or fuzzel is required."
exit 1
fi
local missing_deps=()
for dep in nmcli notify-send; do
if ! command -v "$dep" &> /dev/null; then
missing_deps+=("$dep")
fi
done
if [ ${#missing_deps[@]} -ne 0 ]; then
echo "Missing dependencies: ${missing_deps[*]}"
exit 1
fi
}
# Turn off WiFi
turnoff() {
nmcli radio wifi off
if [ $? -eq 0 ]; then
notify-send "WiFi has been turned off"
else
notify-send "Failed to turn off WiFi"
fi
}
# Turn on WiFi
turnon() {
nmcli radio wifi on
if [ $? -eq 0 ]; then
notify-send "WiFi has been turned on"
else
notify-send "Failed to turn on WiFi"
fi
}
# Disconnect from WiFi
disconnect() {
if [ "$constate" = "disconnected" ]; then
notify-send "WiFi is already disconnected"
elif [ "$constate" = "connected" ]; then
nmcli device disconnect "$wlan"
if [ $? -eq 0 ]; then
notify-send "WiFi has been disconnected"
else
notify-send "Failed to disconnect WiFi"
fi
else
notify-send "Unknown WiFi state"
fi
}
# Connect to a WiFi network
connect() {
notify-send -t 5000 "Scanning networks..."
nmcli dev wifi rescan
wifinet=$(nmcli -f BSSID,SSID,BARS,SECURITY dev wifi list | sed -n '1!p' | $RUNNER -i -l 10 -p "[ Select a Wifi Network]  ");
if [ -z "$wifinet" ]; then
exit 0
fi
bssid=$(echo "$wifinet" | awk '{print $1}')
ssid=$(echo "$wifinet" | awk '{print $2}')
}
# Prompt for WiFi password
password() {
if nmcli connection show | awk -v ssid="$ssid" '$1 == ssid {found=1} END {exit !found}'; then
pass=""
elif nmcli -f BSSID,SECURITY dev wifi list | grep -w "$bssid" | awk '{print $2}' | grep -q -- "--"; then
pass=""
else
pass=$($RUNNER -l 0 --password -p "[Enter Password ]  " );
if [ -z "$pass" ]; then
exit 0
fi
fi
}
# Execute WiFi connection
action() {
if [ -n "$pass" ]; then
nmcli dev wifi connect "$bssid" password "$pass"
else
nmcli dev wifi connect "$bssid"
fi
if [ $? -eq 0 ]; then
notify-send "Connected to $ssid"
else
notify-send "Failed to connect to $ssid"
fi
}
####################
# Main Script Flow #
####################
# Check for dependencies
check_dependencies
cases=$(echo -e "$options" | $RUNNER -i -l 6 -p "[ Wifi Settings]  " ) # main menu prompt
if [ -z "$cases" ]; then
exit 0
fi
case "$cases" in
"$option1")
turnon
;;
"$option2")
turnoff
;;
"$option3")
disconnect
;;
"$option4")
if connect; then
if password; then
action
fi
fi
;;
"$option5")
${BROWSER:-xdg-open} http://networkcheck.kde.org
;;
"$option6")
exit 0
;;
esac

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

25
config/kanshi/config Normal file
View file

@ -0,0 +1,25 @@
profile triple {
exec pgrep wl-mirror && pkill -n wl-mirror
output eDP-1 mode 1920x1080 position 3200,0
output HDMI-A-2 primary mode 1920x1080@100Hz position 1280,0
output DP-1 mode 1280x1024@75Hz position 0,0
}
profile hdmi {
exec pgrep wl-mirror && pkill -n wl-mirror
output eDP-1 primary mode 1920x1080 position 0,0
output HDMI-A-2 auto position 1920,0
exec wl-present mirror eDP-1 --fullscreen-output HDMI-A-2 --fullscreen
}
profile hdmi-c {
exec pgrep wl-mirror && pkill -n wl-mirror
output eDP-1 primary mode 1920x1080 position 0,0
output DP-1 auto position 1920,0
exec wl-present mirror eDP-1 --fullscreen-output DP-1 --fullscreen
}
profile laptop {
exec pgrep wl-mirror && pkill -n wl-mirror
output eDP-1 primary mode 1920x1080
}

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

@ -0,0 +1,107 @@
-- neovide options
vim.o.guifont = "mononoki Nerd Font:h14"
vim.g.neovide_no_idle = true
vim.g.neovide_confirm_quit = true
vim.g.neovide_input_use_logo = true
vim.g.neovide_cursor_antialiasing = true
vim.g.neovide_cursor_animate_in_insert_mode = true
vim.g.neovide_cursor_vfx_mode = "pixiedust"
vim.g.neovide_cursor_vfx_particle_speed = 20.0
vim.g.neovide_padding_top = 0
vim.g.neovide_padding_bottom = 0
vim.g.neovide_padding_right = 0
vim.g.neovide_padding_left = 0
-- Helper function for transparency formatting
local alpha = function()
return string.format("%x", math.floor(255 * (vim.g.transparency or 0.98)))
end
vim.g.neovide_transparency = 0.98
vim.g.transparency = 0.98
vim.g.neovide_background_color = "#1d2021" .. alpha()
-- nvim options
vim.opt.shiftwidth = 4
vim.opt.tabstop = 4
vim.opt.relativenumber = true
vim.cmd('autocmd FileType markdown setlocal nospell')
vim.opt.wrap = true -- wrap lines
vim.opt.spell = false
vim.o.shell = '/usr/bin/fish'
vim.o.autochdir = true
vim.cmd('autocmd BufEnter * lcd %:p:h')
-- general
lvim.use_icons = true
lvim.log.level = "info"
-- change theme settings
lvim.colorscheme = "gruvbox"
lvim.transparent_window = false
lvim.builtin.alpha.active = true
lvim.builtin.alpha.mode = "dashboard"
lvim.builtin.terminal.active = true
lvim.builtin.nvimtree.setup.view.side = "left"
lvim.builtin.nvimtree.setup.renderer.icons.show.git = false
lvim.builtin.treesitter.ensure_installed = {
"bash",
"c",
"javascript",
"json",
"python",
"typescript",
"tsx",
"css",
"rust",
"java",
"yaml",
"toml",
"sql",
}
-- additional Plugins
lvim.plugins = {
{ "lunarvim/colorschemes" },
{ "ellisonleao/gruvbox.nvim" },
{ "tpope/vim-dadbod" },
{ "kristijanhusak/vim-dadbod-ui" },
{ "kristijanhusak/vim-dadbod-completion", after = "nvim-cmp" },
{ "SirVer/ultisnips" },
{ "mfussenegger/nvim-dap" }
}
-- configuring colorscheme
require("gruvbox").setup({
undercurl = true,
underline = true,
bold = false,
italic = {
strings = true,
comments = true,
operators = false,
folds = true,
},
strikethrough = true,
invert_selection = false,
invert_signs = false,
invert_tabline = false,
invert_intend_guides = false,
inverse = true, -- invert background for search, diffs, statuslines and errors
contrast = "hard", -- can be "hard", "soft" or empty string
palette_overrides = {},
overrides = {},
dim_inactive = false,
transparent_mode = false,
})
lvim.keys.normal_mode["<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")

24
config/mimeapps.list Normal file
View file

@ -0,0 +1,24 @@
[Default Applications]
image/=imv.desktop
video/=mpv.desktop
audio/=mpv.desktop
image/jpeg=imv.desktop
image/png=imv.desktop
image/gif=imv.desktop
application/vnd.comicbook+zip=org.pwmt.zathura-cb.desktop
application/pdf=org.pwmt.zathura-pdf-poppler.desktop
image/svg+xml=org.inkscape.Inkscape.desktop
video/x-matroska=mpv.desktop
video/mp4=mpv.desktop
image/webp=imv.desktop
x-scheme-handler/jetbrains=jetbrains-toolbox.desktop
[Added Associations]
image/jpeg=imv.desktop;
image/png=imv.desktop;
image/gif=imv.desktop;
application/vnd.comicbook+zip=org.pwmt.zathura-cb.desktop;
application/pdf=org.pwmt.zathura-pdf-poppler.desktop;
image/svg+xml=org.inkscape.Inkscape.desktop;
video/x-matroska=mpv.desktop;
image/webp=imv.desktop;

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

@ -0,0 +1,68 @@
{
"browse_category_filter": "^F",
"browse_playlists_delete": "KEY_DC",
"browse_playlists_new": "M-n",
"browse_playlists_rename": "M-r",
"browse_playlists_save": "M-s",
"context_menu": "M-enter",
"hotkeys_backup": "M-b",
"hotkeys_reset_to_default": "M-r",
"key_down": "j",
"key_end": "KEY_END",
"key_home": "KEY_HOME",
"key_left": "h",
"key_page_down": "KEY_NPAGE",
"key_page_up": "KEY_PPAGE",
"key_right": "l",
"key_up": "k",
"lyrics_retry": "r",
"metadata_rescan": "^R",
"navigate_console": "`",
"navigate_hotkeys": "?",
"navigate_jump_to_playing": "x",
"navigate_library": "a",
"navigate_library_album_artists": "4",
"navigate_library_browse": "b",
"navigate_library_browse_albums": "2",
"navigate_library_browse_artists": "1",
"navigate_library_browse_directories": "d",
"navigate_library_browse_genres": "3",
"navigate_library_choose_category": "6",
"navigate_library_filter": "f",
"navigate_library_play_queue": "n",
"navigate_library_playlists": "5",
"navigate_library_tracks": "t",
"navigate_lyrics": "^L",
"navigate_settings": "s",
"play_queue_clear": "X",
"play_queue_delete": "KEY_DC",
"play_queue_hot_swap": "M-a",
"play_queue_move_down": "M-down",
"play_queue_move_up": "M-up",
"play_queue_playlist_delete": "M-x",
"play_queue_playlist_load": "M-l",
"play_queue_playlist_rename": "M-r",
"play_queue_playlist_save": "M-s",
"playback_next": "M-l",
"playback_previous": "M-j",
"playback_seek_back": "u",
"playback_seek_back_proportional": "y",
"playback_seek_forward": "o",
"playback_seek_forward_proportional": "p",
"playback_stop": "^X",
"playback_toggle_mute": "m",
"playback_toggle_pause": "^P",
"playback_toggle_repeat": ".",
"playback_toggle_shuffle": ",",
"playback_volume_down": "M-k",
"playback_volume_up": "M-i",
"search_input_toggle_match_type": "M-m",
"show_equalizer": "^E",
"toggle_visualizer": "v",
"track_list_change_sort_order": "M-s",
"track_list_next_group": "]",
"track_list_play_from_top": "M-P",
"track_list_previous_group": "[",
"track_list_rate_track": "r",
"view_refresh": "KEY_F(5)"
}

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 --ytdl-format='bestvideo[height<=1080]+bestaudio/best[height<=1080]' %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"

View file

@ -0,0 +1,23 @@
exec {
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
dbus-update-activation-environment --systemd --all
systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
/usr/lib/xdg-desktop-portal-wlr
kanshi
swayidle -w \
lock 'swaylock -f -i "$HOME/.config/sway/wallpaper/locked.*"' \
timeout 300 'swaylock -f -i "$HOME/.config/sway/wallpaper/locked.*"' \
timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
before-sleep 'swaylock -f -i "$HOME/.config/sway/wallpaper/locked.*"'
wl-paste --type text --watch cliphist store
wl-paste --type image --watch cliphist store
mako -c ~/.config/mako/config
/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
gnome-keyring-daemon --start --components=secrets
}
exec_always {
pidof kanshi || kill -1 $(pidof kanshi)
}
bar swaybar_command waybar

View file

@ -8,32 +8,32 @@ set $up k
set $right l set $right l
# Apps # Apps
set $term wezterm set $term foot
set $chat flatpak run org.signal.Signal set $chat flatpak run org.signal.Signal
set $office flatpak run org.libreoffice.LibreOffice set $office flatpak run org.libreoffice.LibreOffice
set $browser flatpak run org.mozilla.firefox set $browser flatpak run com.brave.Browser
set $file thunar set $file foot -T yazi -a yazi yazi
set $editor $HOME/.local/bin/neovide set $editor neovide --neovim-bin $HOME/.local/bin/lvim
set $music lollypop set $music foot -T musikcube -a musikcube musikcube
set $ani-cli wezterm start --class ani-cli ani-cli set $ani-cli foot -T ani-cli -a ani-cli ani-cli
set $ytfzf wezterm start --class ytfzf ytfzf -flstT chafa set $ytfzf foot -T ytfzf -a ytfzf ytfzf -flst
set $ytfzf-music wezterm start --class ytfzf-music ytfzf -mlstT chafa set $ytfzf-music foot -T ytfzf-music -a ytfzf-music ytfzf -mlst
set $flix-cli wezterm start --class flix-cli flix-cli set $flix-cli foot -T flix-cli -a flix-cli flix-cli
set $audiomixer wezterm start --class audiomixer pulsemixer set $audiomixer foot -T audiomixer -a audiomixer pulsemixer
set $monitor wezterm start --class monitor btop set $monitor foot -T monitor -a monitor btop
set $newsboat wezterm start --class newsboat newsboat set $newsboat foot -T newsboat -a newsboat newsboat
# Your preferred application launcher # Your preferred application launcher
# Note: pass the final command to swaymsg so that the resulting window can be opened # Note: pass the final command to swaymsg so that the resulting window can be opened
# on the original workspace that the command was run on. # on the original workspace that the command was run on.
set $menu fuzzel | xargs swaymsg exec -- set $menu fuzzel | xargs swaymsg exec --
set $menu-wifi ~/.local/bin/rs_wifi | xargs swaymsg exec -- set $menu-wifi ~/.config/fuzzel/scripts/rs_wifi | xargs swaymsg exec --
set $menu-power ~/.local/bin/rs_power | xargs swaymsg exec -- set $menu-power ~/.config/fuzzel/scripts/rs_power | xargs swaymsg exec --
set $menu-emoji ~/.local/bin/rs_emoji | xargs swaymsg exec -- set $menu-emoji ~/.config/fuzzel/scripts/rs_emoji | xargs swaymsg exec --
set $menu-wall ~/.local/bin/rs_wall | xargs swaymsg exec -- set $menu-wall ~/.config/fuzzel/scripts/rs_wall | xargs swaymsg exec --
set $menu-scrot ~/.local/bin/rs_scrot | xargs swaymsg exec -- set $menu-scrot ~/.config/fuzzel/scripts/rs_scrot | xargs swaymsg exec --
set $menu-blue ~/.local/bin/rs_blue | xargs swaymsg exec -- set $menu-blue ~/.config/fuzzel/scripts/rs_blue | xargs swaymsg exec --
set $menu-clip ~/.local/bin/rs_clip | xargs swaymsg exec -- set $menu-clip ~/.config/fuzzel/scripts/rs_clip | xargs swaymsg exec --
# Start a terminal # Start a terminal
bindsym $mod+Return exec $term bindsym $mod+Return exec $term
@ -41,16 +41,6 @@ bindsym $mod+Return exec $term
# Kill focused window # Kill focused window
bindsym $mod+q kill bindsym $mod+q kill
# Run launcher scripts
bindsym $mod+Shift+d exec $menu
bindsym $mod+Shift+q exec $menu-power
bindsym $mod+Shift+e exec $menu-emoji
bindsym $mod+Shift+w exec $menu-wall
bindsym $mod+Shift+s exec $menu-scrot
bindsym $mod+Shift+b exec $menu-blue
bindsym $mod+Shift+c exec $menu-clip
bindsym $mod+Shift+i exec $menu-wifi
# XF86 Keys # XF86 Keys
bindsym XF86AudioRaiseVolume exec pamixer -i 5 bindsym XF86AudioRaiseVolume exec pamixer -i 5
bindsym XF86AudioLowerVolume exec pamixer -d 5 bindsym XF86AudioLowerVolume exec pamixer -d 5
@ -61,7 +51,7 @@ bindsym XF86AudioPlay exec playerctl play-pause
bindsym XF86AudioNext exec playerctl next bindsym XF86AudioNext exec playerctl next
bindsym XF86AudioPrev exec playerctl previous bindsym XF86AudioPrev exec playerctl previous
bindsym XF86AudioStop exec playerctl stop bindsym XF86AudioStop exec playerctl stop
bindsym XF86News exec wezterm start --class newsboat newsboat bindsym XF86News exec $newsboat
bindsym XF86MonBrightnessUp exec brightnessctl s 5%+ bindsym XF86MonBrightnessUp exec brightnessctl s 5%+
bindsym XF86MonBrightnessDown exec brightnessctl s 5%- bindsym XF86MonBrightnessDown exec brightnessctl s 5%-
bindsym XF86Display exec wdisplays bindsym XF86Display exec wdisplays
@ -115,16 +105,16 @@ bindsym $mod+8 workspace number 8
bindsym $mod+9 workspace number 9 bindsym $mod+9 workspace number 9
bindsym $mod+0 workspace number 10 bindsym $mod+0 workspace number 10
# Move focused container to workspace # Move focused container to workspace
bindsym $mod+Shift+1 move container to workspace number 1 bindsym $mod+Shift+1 [con_id=__focused__] move container to workspace number 1, focus
bindsym $mod+Shift+2 move container to workspace number 2 bindsym $mod+Shift+2 [con_id=__focused__] move container to workspace number 2, focus
bindsym $mod+Shift+3 move container to workspace number 3 bindsym $mod+Shift+3 [con_id=__focused__] move container to workspace number 3, focus
bindsym $mod+Shift+4 move container to workspace number 4 bindsym $mod+Shift+4 [con_id=__focused__] move container to workspace number 4, focus
bindsym $mod+Shift+5 move container to workspace number 5 bindsym $mod+Shift+5 [con_id=__focused__] move container to workspace number 5, focus
bindsym $mod+Shift+6 move container to workspace number 6 bindsym $mod+Shift+6 [con_id=__focused__] move container to workspace number 6, focus
bindsym $mod+Shift+7 move container to workspace number 7 bindsym $mod+Shift+7 [con_id=__focused__] move container to workspace number 7, focus
bindsym $mod+Shift+8 move container to workspace number 8 bindsym $mod+Shift+8 [con_id=__focused__] move container to workspace number 8, focus
bindsym $mod+Shift+9 move container to workspace number 9 bindsym $mod+Shift+9 [con_id=__focused__] move container to workspace number 9, focus
bindsym $mod+Shift+0 move container to workspace number 10 bindsym $mod+Shift+0 [con_id=__focused__] move container to workspace number 10, focus
# Note: workspaces can have any name you want, not just numbers. # Note: workspaces can have any name you want, not just numbers.
# We just use 1-10 as the default. # We just use 1-10 as the default.
@ -136,15 +126,15 @@ bindsym $mod+b splith
bindsym $mod+v splitv bindsym $mod+v splitv
# Switch the current container between different layout styles # Switch the current container between different layout styles
bindsym $mod+Ctrl+s layout stacking bindsym $mod+e layout stacking
bindsym $mod+Ctrl+w layout tabbed bindsym $mod+w layout tabbed
bindsym $mod+Ctrl+e layout toggle split bindsym $mod+d layout toggle split
# Make the current focus fullscreen # Make the current focus fullscreen
bindsym $mod+Ctrl+f fullscreen bindsym $mod+f fullscreen
# Toggle the current focus between tiling and floating mode # Toggle the current focus between tiling and floating mode
bindsym $mod+Ctrl+space floating toggle bindsym $mod+Alt+space floating toggle
# Swap focus between the tiling area and the floating area # Swap focus between the tiling area and the floating area
bindsym $mod+space focus mode_toggle bindsym $mod+space focus mode_toggle
@ -206,3 +196,18 @@ mode "apps" {
bindsym Escape mode "default" bindsym Escape mode "default"
} }
bindsym $mod+a mode "apps" bindsym $mod+a mode "apps"
# Run launcher scripts
mode "launchers" {
bindsym d exec $menu; mode "default"
bindsym q exec $menu-power; mode "default"
bindsym e exec $menu-emoji; mode "default"
bindsym w exec $menu-wall; mode "default"
bindsym s exec $menu-scrot; mode "default"
bindsym b exec $menu-blue; mode "default"
bindsym c exec $menu-clip; mode "default"
bindsym i exec $menu-wifi; mode "default"
bindsym Return mode "default"
bindsym Escape mode "default"
}
bindsym $mod+s mode "launchers"

View file

@ -0,0 +1,25 @@
# Set background for all outputs
output * {
bg ~/.config/sway/wallpaper/background.* fill
}
# # Configure internal display (eDP-1)
# output eDP-1 {
# mode 1920x1080
# position 3200,0
# transform normal
# }
# # Configure external display (HDMI-A-2)
# output HDMI-A-2 {
# mode 1920x1080@100Hz
# position 1280,0
# transform normal
# }
# # Configure external display (DP-1)
# output DP-1 {
# mode 1280x1024@75Hz
# position 0,0
# transform normal
# }

View file

@ -1,33 +1,38 @@
# Font # Font
font pango: Mononoki Nerd Font 12 font pango: Mononoki Nerd Font 14
# Color scheme (Gruvbox dark) # Color scheme (Gruvbox dark)
set $color_normal_white #a89984 set $color_normal_white #a89984
set $color_bright_white #ebdbb2 set $color_bright_white #ebdbb2
set $color_normal_gray #282828 set $color_normal_gray #282828
set $color_bright_gray #3c3836 set $color_bright_gray #665c54
set $color_bright_yellow #d79921 set $color_bright_yellow #d79921
set $color_normal_black #1d2021 set $color_normal_black #1d2021
set $color_unused #ff0000 set $color_unused #ff0000
set $color_normal_red #cc241d
set $color_normal_teal #689d6a
set $color_normal_green #98971a
# Title bar colors # Title bar colors
# Colors border background text indicator child_border # Colors border background text indicator child_border
client.focused $color_bright_gray $color_bright_gray $color_bright_white $color_bright_gray $color_normal_black client.focused $color_normal_red $color_bright_gray $color_bright_white $color_normal_teal $color_normal_red
client.focused_inactive $color_bright_gray $color_bright_gray $color_bright_white $color_bright_gray $color_normal_black client.focused_inactive $color_bright_gray $color_bright_gray $color_bright_white $color_normal_green $color_bright_gray
client.unfocused $color_normal_gray $color_normal_gray $color_normal_white $color_normal_gray $color_normal_black client.unfocused $color_bright_gray $color_normal_gray $color_normal_white $color_normal_green $color_bright_gray
client.urgent $color_bright_yellow $color_bright_yellow $color_normal_black $color_unused $color_unused client.urgent $color_bright_yellow $color_bright_yellow $color_normal_black $color_unused $color_unused
client.placeholder $color_unused $color_unused $color_unused $color_unused $color_unused client.placeholder $color_unused $color_unused $color_unused $color_unused $color_unused
# Window borders # Window borders
default_border pixel 2 default_border pixel 3
default_floating_border pixel 2 default_floating_border pixel 3
smart_borders off
gaps inner 5
# gsettings # gsettings
exec gsettings set org.gnome.desktop.interface { exec gsettings set org.gnome.desktop.interface {
gtk-theme 'gruvbox-dark-gtk' gtk-theme 'Gruvbox-Dark'
icon-theme 'gruvbox-dark-icons-gtk' icon-theme 'Papirus-Dark'
cursor-theme 'Simp1e-Gruvbox-Dark' cursor-theme 'Simp1e-Gruvbox-Dark'
font-name 'Cantarell 10' font-name 'Inter 10'
document-font-name 'Liberation Serif 12' document-font-name 'Liberation Serif 12'
monospace-font-name 'Mononoki Nerd Font 12' monospace-font-name 'Mononoki Nerd Font 12'
enable-animations true enable-animations true

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

View file

@ -16,17 +16,17 @@ export XKB_DEFAULT_LAYOUT=us
export MOZ_ENABLE_WAYLAND=1 export MOZ_ENABLE_WAYLAND=1
export MOZ_WAYLAND_USE_VAAPI=1 export MOZ_WAYLAND_USE_VAAPI=1
export MOZ_DISABLE_RDD_SANDBOX=1 export MOZ_DISABLE_RDD_SANDBOX=1
export ELECTRON_OZONE_PLATFORM_HINT=auto
# 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"
export GTK_CURSOR_THEME="Simp1e-Gruvbox-Dark" export GTK_CURSOR_THEME="Simp1e-Gruvbox-Dark"
# User defined enviroment variables # User defined enviroment variables
export RUNNER="fuzzel --dmenu" export RUNNER="fuzzel --dmenu"
export WM=sway
# Start compositor # Start compositor
dbus-launch $WM exec sway

View file

@ -10,6 +10,10 @@
"sway/scratchpad" "sway/scratchpad"
], ],
"modules-center": [
"sway/window"
],
"modules-right": [ "modules-right": [
"custom/arrow1", "custom/arrow1",
"sway/language", "sway/language",
@ -18,12 +22,13 @@
"custom/arrow3", "custom/arrow3",
"backlight", "backlight",
"custom/arrow4", "custom/arrow4",
"idle_inhibitor",
"power-profiles-daemon",
"battery", "battery",
"battery#bat2",
"custom/arrow5", "custom/arrow5",
"custom/powerprofiles",
"custom/arrow6",
"network", "network",
"custom/arrow7", "custom/arrow6",
"clock" "clock"
], ],
@ -47,6 +52,13 @@
} }
}, },
"sway/window": {
"format": "{title}",
"icon": true,
"icon-size": 24,
"separate-outputs": true
},
"sway/language": { "sway/language": {
"format": "{} \udb80\udf0c", "format": "{} \udb80\udf0c",
"on-click": "swaymsg input type:keyboard xkb_switch_layout next", "on-click": "swaymsg input type:keyboard xkb_switch_layout next",
@ -65,60 +77,14 @@
"tooltip-format": "{app}: {title}" "tooltip-format": "{app}: {title}"
}, },
"clock": {
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "\udb82\udd54 {:%H:%M}",
"format-alt": "\udb80\udcf5 {:%Y-%m-%d}"
},
"backlight": {
"format": "{percent}% {icon}",
"format-icons": [
"\udb86\ude4e", // 10%
"\udb86\ude4f", // 20%
"\udb86\ude50", // 30%
"\udb86\ude51", // 40%
"\udb86\ude52", // 50%
"\udb86\ude53", // 60%
"\udb86\ude54", // 70%
"\udb86\ude55", // 80%
"\udb81\udee8" // 90+%
]
},
"battery": {
"states": {
"warning": 30,
"critical": 15
},
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% {icon}\udb81\udea5",
"format-plugged": "{capacity}% {icon}\udb81\udea5",
"format-alt": "{time} {icon}",
"format-critical": "{capacity}% {icon}\udb84\ude38",
"format-warning": "{capacity}% {icon}\udb84\ude38",
"format-icons": [
"\udb80\udc7a",
"\udb80\udc7c",
"\udb80\udc7e",
"\udb80\udc80",
"\udb80\udc79"
],
},
"custom/powerprofiles": {
"exec": "bash $HOME/.config/waybar/power-profiles",
"restart-interval": 5,
"format": "{}",
},
"pulseaudio": { "pulseaudio": {
"scroll-step": 1, // %, can be a float "scroll-step": 1, // %, can be a float
"format": "{volume}% {icon} {format_source}", "tooltip-format": "{volume}% - {desc}",
"format-bluetooth": "{volume}% {icon}\udb80\udcaf {format_source}", "format": "{icon} {format_source}",
"format-bluetooth": "{icon}\udb80\udcaf {format_source}",
"format-bluetooth-muted": "\udb81\udd81 {icon}\udb80\udcaf {format_source}", "format-bluetooth-muted": "\udb81\udd81 {icon}\udb80\udcaf {format_source}",
"format-muted": "\udb81\udd81 {format_source}", "format-muted": "\udb81\udd81 {format_source}",
"format-source": "{volume}% \udb80\udf6c", "format-source": "\udb80\udf6c",
"format-source-muted": "\udb80\udf6d", "format-source-muted": "\udb80\udf6d",
"format-icons": { "format-icons": {
"headphone": "\udb80\udecb", "headphone": "\udb80\udecb",
@ -129,15 +95,101 @@
"car": "\udb80\udd0b", "car": "\udb80\udd0b",
"default": ["\udb81\udd7f", "\udb81\udd80", "\udb81\udd7e"] "default": ["\udb81\udd7f", "\udb81\udd80", "\udb81\udd7e"]
}, },
"on-click": "wezterm start --class pulsemixer -- pulsemixer" "on-click": "foot -T audiomixer -a audiomixer pulsemixer"
},
"backlight": {
"format": "{icon}",
"format-icons": [
"\udb86\ude4e",
"\udb86\ude4f",
"\udb86\ude50",
"\udb86\ude51",
"\udb86\ude52",
"\udb86\ude53",
"\udb86\ude54",
"\udb86\ude55",
"\udb81\udee8"
],
"tooltip-format": "{percent}%"
},
"idle_inhibitor": {
"format": "{icon}",
"format-icons": {
"activated": "\uea71",
"deactivated": "\ueabc"
}
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}",
"tooltip": true,
"format-icons": {
"default": "󰾅",
"performance": "󰓅",
"balanced": "󰾅",
"power-saver": "󰾆"
}
},
"battery": {
"bat": "BAT0",
"states": {
"warning": 30,
"critical": 15
},
"format": "{icon}",
"format-charging": "{icon} \udb81\udea5",
"format-plugged": "{icon} \udb81\udea5",
"format-critical": "{icon} \udb84\ude38",
"format-warning": "{icon} \udb84\ude38",
"format-icons": [
"\udb80\udc7a",
"\udb80\udc7c",
"\udb80\udc7e",
"\udb80\udc80",
"\udb80\udc79"
],
"tooltip-format": "{capacity}% - {timeTo}",
"on-click": "$HOME/.config/rofi/scripts/rs_power"
},
"battery#bat2": {
"bat": "BAT1",
"states": {
"warning": 30,
"critical": 15
},
"format": "{icon}",
"format-charging": "{icon} \udb81\udea5",
"format-plugged": "{icon} \udb81\udea5",
"format-critical": "{icon} \udb84\ude38",
"format-warning": "{icon} \udb84\ude38",
"format-icons": [
"\udb80\udc7a",
"\udb80\udc7c",
"\udb80\udc7e",
"\udb80\udc80",
"\udb80\udc79"
],
"tooltip-format": "{capacity}% - {timeTo}",
"on-click": "$HOME/.config/fuzzel/scripts/rs_power"
}, },
"network": { "network": {
// "interface": "wlp2*", // (Optional) To force the use of this interface "format-wifi": "\udb81\udda9",
"format-wifi": "{essid} \udb81\udda9", "format-ethernet": "\udb80\ude00",
"format-ethernet": "{ipaddr}/{cidr} \udb80\ude00", "format-disconnected": "\udb80\udd5b",
"format-disconnected": "Disconnected \udb81\uddaa", "tooltip-format": "{essid} ({signalStrength}%) - {ifname}: {ipaddr}/{cidr}",
"format-alt": "{ifname}: {ipaddr}/{cidr}", "on-click": "$HOME/.config/fuzzel/scripts/rs_wifi"
},
"clock": {
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
"format": "\udb82\udd54 {:%H:%M}",
"format-alt": "\udb80\udcf5 {:%Y-%m-%d}"
}, },
"custom/arrow1": { "custom/arrow1": {

259
config/waybar/style.css Normal file
View file

@ -0,0 +1,259 @@
/* =====================================
Colors (Gruvbox theme)
===================================== */
@define-color black #1d2021;
@define-color red #cc241d;
@define-color green #98971a;
@define-color yellow #d79921;
@define-color orange #fe8019;
@define-color blue #458588;
@define-color purple #b16286;
@define-color aqua #689d6a;
@define-color gray #a89984;
/* Brighter variants */
@define-color brgray #928374;
@define-color brred #fb4934;
@define-color brgreen #b8bb26;
@define-color bryellow #fabd2f;
@define-color brblue #83a598;
@define-color brpurple #d3869b;
@define-color braqua #8ec07c;
@define-color white #ebdbb2;
@define-color bg2 #504945;
/* Darker variants */
@define-color drred #9d0006;
@define-color drgreen #79740e;
@define-color drpurple #8f3f71;
@define-color drorange #af3a03;
@define-color drgray #3c3836;
@define-color drblue #076678;
@define-color draqua #427b58;
@define-color dryellow #b57614;
/* =====================================
Color Definitions for Modules
===================================== */
@define-color critical @brred;
@define-color unfocused @braqua;
@define-color focused @red;
@define-color inactive @drgray;
@define-color idle @drgreen;
@define-color backlight @dryellow;
@define-color pulseaudio @drblue;
@define-color powerprofile @drgreen;
@define-color network @drred;
@define-color language @drpurple;
@define-color battery @drgreen;
@define-color clock @draqua;
@define-color wbackground rgba(29, 32, 33, 0.95);
/* =====================================
Keyframes
===================================== */
@keyframes blink {
to {
color: @critical;
}
}
/* =====================================
Reset Styles
===================================== */
* {
border: none;
border-radius: 0;
min-height: 0;
padding: 0;
box-shadow: none;
text-shadow: none;
}
/* =====================================
Button Styles
===================================== */
button {
box-shadow: inset 0 -3px transparent;
border: none;
border-radius: 0;
}
/* Prevent strange hover effect on workspace buttons */
button:hover {
background: inherit;
}
/* =====================================
General Bar Styles
===================================== */
window#waybar {
background-color: @wbackground;
font-family: Symbols Nerd Font Mono, Mononoki Nerd Font;
font-size: 14px;
}
/* =====================================
Workspaces Module
===================================== */
#workspaces button {
font-family: Symbols Nerd Font Mono;
font-size: 18px;
padding: 0 2pt;
color: @white;
}
#workspaces button.visible {
color: @white;
}
#workspaces button.focused {
color: @white;
background: @focused;
}
#workspaces button.unfocused {
color: @white;
}
#workspaces button.urgent {
color: @wbackground;
background: @critical;
}
#workspaces button:hover {
background: @yellow;
color: @white;
}
/* =====================================
Mode Module
===================================== */
#mode {
background-color: @red;
border-bottom: 3px solid @white;
padding: 3px;
}
/* =====================================
Window Module
===================================== */
#window {
color: @white;
padding: 0 10px;
margin: 5px 0;
}
/* =====================================
Margins and Layout Adjustments
===================================== */
#window, #workspaces {
margin: 0 4px;
}
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
/* =====================================
Individual Module Styles
===================================== */
#clock,
#power-profiles-daemon,
#battery,
#backlight,
#network,
#pulseaudio,
#idle_inhibitor,
#language {
color: @white;
padding: 0 1px;
padding-left: 4px;
}
#battery,
#battery.charging,
#battery.plugged {
background-color: @battery;
}
#battery.critical:not(.charging) {
color: @white;
animation: blink 0.5s linear infinite alternate;
}
#backlight {
background-color: @backlight;
}
#network,
#network.disconnected {
background-color: @network;
}
#pulseaudio,
#pulseaudio.muted {
background-color: @pulseaudio;
}
#language {
background-color: @language;
}
#power-profiles-daemon {
background-color: @powerprofile;
}
#clock {
background-color: @clock;
padding-right: 10px;
}
#idle_inhibitor {
background-color: @battery;
}
/* =====================================
Modeline Arrows
===================================== */
#custom-arrow1,
#custom-arrow2,
#custom-arrow3,
#custom-arrow4,
#custom-arrow5,
#custom-arrow6 {
font-size: 25pt;
}
/* Individual Modeline Arrow Styles */
#custom-arrow1 {
background: transparent;
color: @language;
}
#custom-arrow2 {
background: @language;
color: @pulseaudio;
}
#custom-arrow3 {
background: @pulseaudio;
color: @backlight;
}
#custom-arrow4 {
background: @backlight;
color: @battery;
}
#custom-arrow5 {
background: @battery;
color: @network;
}
#custom-arrow6 {
background: @network;
color: @clock;
}

141
config/wget/wgetrc Normal file
View file

@ -0,0 +1,141 @@
###
### Sample Wget initialization file .wgetrc
###
## You can use this file to change the default behaviour of wget or to
## avoid having to type many many command-line options. This file does
## not contain a comprehensive list of commands -- look at the manual
## to find out what you can put into this file. You can find this here:
## $ info wget.info 'Startup File'
## Or online here:
## https://www.gnu.org/software/wget/manual/wget.html#Startup-File
##
## Wget initialization file can reside in /usr/local/etc/wgetrc
## (global, for all users) or $HOME/.wgetrc (for a single user).
##
## To use the settings in this file, you will have to uncomment them,
## as well as change them, in most cases, as the values on the
## commented-out lines are the default values (e.g. "off").
##
## Command are case-, underscore- and minus-insensitive.
## For example ftp_proxy, ftp-proxy and ftpproxy are the same.
##
## Global settings (useful for setting up in /usr/local/etc/wgetrc).
## Think well before you change them, since they may reduce wget's
## functionality, and make it behave contrary to the documentation:
##
# You can set retrieve quota for beginners by specifying a value
# optionally followed by 'K' (kilobytes) or 'M' (megabytes). The
# default quota is unlimited.
#quota = inf
# You can lower (or raise) the default number of retries when
# downloading a file (default is 20).
#tries = 20
# Lowering the maximum depth of the recursive retrieval is handy to
# prevent newbies from going too "deep" when they unwittingly start
# the recursive retrieval. The default is 5.
#reclevel = 5
# By default Wget uses "passive FTP" transfer where the client
# initiates the data connection to the server rather than the other
# way around. That is required on systems behind NAT where the client
# computer cannot be easily reached from the Internet. However, some
# firewalls software explicitly supports active FTP and in fact has
# problems supporting passive transfer. If you are in such
# environment, use "passive_ftp = off" to revert to active FTP.
#passive_ftp = off
# The "wait" command below makes Wget wait between every connection.
# If, instead, you want Wget to wait only between retries of failed
# downloads, set waitretry to maximum number of seconds to wait (Wget
# will use "linear backoff", waiting 1 second after the first failure
# on a file, 2 seconds after the second failure, etc. up to this max).
#waitretry = 10
##
## Local settings (for a user to set in his $HOME/.wgetrc). It is
## *highly* undesirable to put these settings in the global file, since
## they are potentially dangerous to "normal" users.
##
## Even when setting up your own ~/.wgetrc, you should know what you
## are doing before doing so.
##
# Set this to on to use timestamping by default:
#timestamping = off
# It is a good idea to make Wget send your email address in a `From:'
# header with your request (so that server administrators can contact
# you in case of errors). Wget does *not* send `From:' by default.
#header = From: Your Name <username@site.domain>
# You can set up other headers, like Accept-Language. Accept-Language
# is *not* sent by default.
#header = Accept-Language: en
# You can set the default proxies for Wget to use for http, https, and ftp.
# They will override the value in the environment.
#https_proxy = http://proxy.yoyodyne.com:18023/
#http_proxy = http://proxy.yoyodyne.com:18023/
#ftp_proxy = http://proxy.yoyodyne.com:18023/
# If you do not want to use proxy at all, set this to off.
#use_proxy = on
# You can customize the retrieval outlook. Valid options are default,
# binary, mega and micro.
#dot_style = default
# Setting this to off makes Wget not download /robots.txt. Be sure to
# know *exactly* what /robots.txt is and how it is used before changing
# the default!
#robots = on
# It can be useful to make Wget wait between connections. Set this to
# the number of seconds you want Wget to wait.
#wait = 0
# You can force creating directory structure, even if a single is being
# retrieved, by setting this to on.
#dirstruct = off
# You can turn on recursive retrieving by default (don't do this if
# you are not sure you know what it means) by setting this to on.
#recursive = off
# To always back up file X as X.orig before converting its links (due
# to -k / --convert-links / convert_links = on having been specified),
# set this variable to on:
#backup_converted = off
# To have Wget follow FTP links from HTML files by default, set this
# to on:
#follow_ftp = off
# To try ipv6 addresses first:
#prefer-family = IPv6
# Set default IRI support state
#iri = off
# Force the default system encoding
#localencoding = UTF-8
# Force the default remote server encoding
#remoteencoding = UTF-8
# Turn on to prevent following non-HTTPS links when in recursive mode
httpsonly = on
# Tune HTTPS security (auto, SSLv2, SSLv3, TLSv1, PFS)
#secureprotocol = auto
ca_certificate=/etc/ssl/certs/ca-certificates.crt
# Custom HSTS caching file path
hsts-file=~/.config/wget/wget-hsts

303
config/yazi/keymap.toml Normal file
View file

@ -0,0 +1,303 @@
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
"$schema" = "https://yazi-rs.github.io/schemas/keymap.json"
[manager]
keymap = [
{ on = "<Esc>", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
{ on = "<C-[>", run = "escape", desc = "Exit visual mode, clear selected, or cancel search" },
{ on = "q", run = "quit", desc = "Exit the process" },
{ on = "Q", run = "quit --no-cwd-file", desc = "Exit the process without writing cwd-file" },
{ on = "<C-c>", run = "close", desc = "Close the current tab, or quit if it is last tab" },
{ on = "<C-z>", run = "suspend", desc = "Suspend the process" },
# Hopping
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
{ on = "<C-u>", run = "arrow -50%", desc = "Move cursor up half page" },
{ on = "<C-d>", run = "arrow 50%", desc = "Move cursor down half page" },
{ on = "<C-b>", run = "arrow -100%", desc = "Move cursor up one page" },
{ on = "<C-f>", run = "arrow 100%", desc = "Move cursor down one page" },
{ on = "<S-PageUp>", run = "arrow -50%", desc = "Move cursor up half page" },
{ on = "<S-PageDown>", run = "arrow 50%", desc = "Move cursor down half page" },
{ on = "<PageUp>", run = "arrow -100%", desc = "Move cursor up one page" },
{ on = "<PageDown>", run = "arrow 100%", desc = "Move cursor down one page" },
{ on = [ "g", "g" ], run = "arrow -99999999", desc = "Move cursor to the top" },
{ on = "G", run = "arrow 99999999", desc = "Move cursor to the bottom" },
# Navigation
{ on = "h", run = "leave", desc = "Go back to the parent directory" },
{ on = "l", run = "enter", desc = "Enter the child directory" },
{ on = "<Left>", run = "leave", desc = "Go back to the parent directory" },
{ on = "<Right>", run = "enter", desc = "Enter the child directory" },
{ on = "H", run = "back", desc = "Go back to the previous directory" },
{ on = "L", run = "forward", desc = "Go forward to the next directory" },
# Seeking
{ on = "K", run = "seek -5", desc = "Seek up 5 units in the preview" },
{ on = "J", run = "seek 5", desc = "Seek down 5 units in the preview" },
# Selection
{ on = "<Space>", run = [ "select --state=none", "arrow 1" ], desc = "Toggle the current selection state" },
{ on = "v", run = "visual_mode", desc = "Enter visual mode (selection mode)" },
{ on = "V", run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" },
{ on = "<C-a>", run = "select_all --state=true", desc = "Select all files" },
{ on = "<C-r>", run = "select_all --state=none", desc = "Inverse selection of all files" },
# Operation
{ on = "o", run = "open", desc = "Open selected files" },
{ on = "O", run = "open --interactive", desc = "Open selected files interactively" },
{ on = "<Enter>", run = "open", desc = "Open selected files" },
{ on = "<S-Enter>", run = "open --interactive", desc = "Open selected files interactively" },
{ on = "y", run = "yank", desc = "Yank selected files (copy)" },
{ on = "x", run = "yank --cut", desc = "Yank selected files (cut)" },
{ on = "p", run = "paste", desc = "Paste yanked files" },
{ on = "P", run = "paste --force", desc = "Paste yanked files (overwrite if the destination exists)" },
{ on = "-", run = "link", desc = "Symlink the absolute path of yanked files" },
{ on = "_", run = "link --relative", desc = "Symlink the relative path of yanked files" },
{ on = "<C-->", run = "hardlink", desc = "Hardlink yanked files" },
{ on = "Y", run = "unyank", desc = "Cancel the yank status" },
{ on = "X", run = "unyank", desc = "Cancel the yank status" },
{ on = "d", run = "remove", desc = "Trash selected files" },
{ on = "D", run = "remove --permanently", desc = "Permanently delete selected files" },
{ on = "a", run = "create", desc = "Create a file (ends with / for directories)" },
{ on = "r", run = "rename --cursor=before_ext", desc = "Rename selected file(s)" },
{ on = ";", run = "shell --interactive", desc = "Run a shell command" },
{ on = ":", run = "shell --block --interactive", desc = "Run a shell command (block until finishes)" },
{ on = ".", run = "hidden toggle", desc = "Toggle the visibility of hidden files" },
{ on = "s", run = "search fd", desc = "Search files by name using fd" },
{ on = "S", run = "search rg", desc = "Search files by content using ripgrep" },
{ on = "<C-s>", run = "escape --search", desc = "Cancel the ongoing search" },
{ on = "z", run = "plugin zoxide", desc = "Jump to a directory using zoxide" },
{ on = "Z", run = "plugin fzf", desc = "Jump to a directory or reveal a file using fzf" },
# Linemode
{ on = [ "m", "s" ], run = "linemode size", desc = "Set linemode to size" },
{ on = [ "m", "p" ], run = "linemode permissions", desc = "Set linemode to permissions" },
{ on = [ "m", "c" ], run = "linemode ctime", desc = "Set linemode to ctime" },
{ on = [ "m", "m" ], run = "linemode mtime", desc = "Set linemode to mtime" },
{ on = [ "m", "o" ], run = "linemode owner", desc = "Set linemode to owner" },
{ on = [ "m", "n" ], run = "linemode none", desc = "Set linemode to none" },
# Copy
{ on = [ "c", "c" ], run = "copy path", desc = "Copy the file path" },
{ on = [ "c", "d" ], run = "copy dirname", desc = "Copy the directory path" },
{ on = [ "c", "f" ], run = "copy filename", desc = "Copy the filename" },
{ on = [ "c", "n" ], run = "copy name_without_ext", desc = "Copy the filename without extension" },
# Filter
{ on = "f", run = "filter --smart", desc = "Filter files" },
# Find
{ on = "/", run = "find --smart", desc = "Find next file" },
{ on = "?", run = "find --previous --smart", desc = "Find previous file" },
{ on = "n", run = "find_arrow", desc = "Go to the next found" },
{ on = "N", run = "find_arrow --previous", desc = "Go to the previous found" },
# Sorting
{ on = [ ",", "m" ], run = [ "sort modified --reverse=no", "linemode mtime" ], desc = "Sort by modified time" },
{ on = [ ",", "M" ], run = [ "sort modified --reverse", "linemode mtime" ], desc = "Sort by modified time (reverse)" },
{ on = [ ",", "c" ], run = [ "sort created --reverse=no", "linemode ctime" ], desc = "Sort by created time" },
{ on = [ ",", "C" ], run = [ "sort created --reverse", "linemode ctime" ], desc = "Sort by created time (reverse)" },
{ on = [ ",", "e" ], run = "sort extension --reverse=no", desc = "Sort by extension" },
{ on = [ ",", "E" ], run = "sort extension --reverse", desc = "Sort by extension (reverse)" },
{ on = [ ",", "a" ], run = "sort alphabetical --reverse=no", desc = "Sort alphabetically" },
{ on = [ ",", "A" ], run = "sort alphabetical --reverse", desc = "Sort alphabetically (reverse)" },
{ on = [ ",", "n" ], run = "sort natural --reverse=no", desc = "Sort naturally" },
{ on = [ ",", "N" ], run = "sort natural --reverse", desc = "Sort naturally (reverse)" },
{ on = [ ",", "s" ], run = [ "sort size --reverse=no", "linemode size" ], desc = "Sort by size" },
{ on = [ ",", "S" ], run = [ "sort size --reverse", "linemode size" ], desc = "Sort by size (reverse)" },
{ on = [ ",", "r" ], run = "sort random --reverse=no", desc = "Sort randomly" },
# Goto
{ on = [ "g", "h" ], run = "cd ~", desc = "Go to the home directory" },
{ on = [ "g", "c" ], run = "cd ~/.config", desc = "Go to the config directory" },
{ on = [ "g", "d" ], run = "cd ~/Downloads", desc = "Go to the downloads directory" },
{ on = [ "g", "<Space>" ], run = "cd --interactive", desc = "Go to a directory interactively" },
# Tabs
{ on = "t", run = "tab_create --current", desc = "Create a new tab with CWD" },
{ on = "1", run = "tab_switch 0", desc = "Switch to the first tab" },
{ on = "2", run = "tab_switch 1", desc = "Switch to the second tab" },
{ on = "3", run = "tab_switch 2", desc = "Switch to the third tab" },
{ on = "4", run = "tab_switch 3", desc = "Switch to the fourth tab" },
{ on = "5", run = "tab_switch 4", desc = "Switch to the fifth tab" },
{ on = "6", run = "tab_switch 5", desc = "Switch to the sixth tab" },
{ on = "7", run = "tab_switch 6", desc = "Switch to the seventh tab" },
{ on = "8", run = "tab_switch 7", desc = "Switch to the eighth tab" },
{ on = "9", run = "tab_switch 8", desc = "Switch to the ninth tab" },
{ on = "[", run = "tab_switch -1 --relative", desc = "Switch to the previous tab" },
{ on = "]", run = "tab_switch 1 --relative", desc = "Switch to the next tab" },
{ on = "{", run = "tab_swap -1", desc = "Swap current tab with previous tab" },
{ on = "}", run = "tab_swap 1", desc = "Swap current tab with next tab" },
# Tasks
{ on = "w", run = "tasks_show", desc = "Show task manager" },
# Help
{ on = "~", run = "help", desc = "Open help" },
{ on = "<F1>", run = "help", desc = "Open help" },
]
[tasks]
keymap = [
{ on = "<Esc>", run = "close", desc = "Close task manager" },
{ on = "<C-[>", run = "close", desc = "Close task manager" },
{ on = "<C-c>", run = "close", desc = "Close task manager" },
{ on = "w", run = "close", desc = "Close task manager" },
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Enter>", run = "inspect", desc = "Inspect the task" },
{ on = "x", run = "cancel", desc = "Cancel the task" },
# Help
{ on = "~", run = "help", desc = "Open help" },
{ on = "<F1>", run = "help", desc = "Open help" },
]
[select]
keymap = [
{ on = "<Esc>", run = "close", desc = "Cancel selection" },
{ on = "<C-[>", run = "close", desc = "Cancel selection" },
{ on = "<C-c>", run = "close", desc = "Cancel selection" },
{ on = "<Enter>", run = "close --submit", desc = "Submit the selection" },
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
# Help
{ on = "~", run = "help", desc = "Open help" },
{ on = "<F1>", run = "help", desc = "Open help" },
]
[input]
keymap = [
{ on = "<C-c>", run = "close", desc = "Cancel input" },
{ on = "<Enter>", run = "close --submit", desc = "Submit the input" },
{ on = "<Esc>", run = "escape", desc = "Go back the normal mode, or cancel input" },
{ on = "<C-[>", run = "escape", desc = "Go back the normal mode, or cancel input" },
# Mode
{ on = "i", run = "insert", desc = "Enter insert mode" },
{ on = "a", run = "insert --append", desc = "Enter append mode" },
{ on = "I", run = [ "move -999", "insert" ], desc = "Move to the BOL, and enter insert mode" },
{ on = "A", run = [ "move 999", "insert --append" ], desc = "Move to the EOL, and enter append mode" },
{ on = "v", run = "visual", desc = "Enter visual mode" },
{ on = "V", run = [ "move -999", "visual", "move 999" ], desc = "Enter visual mode and select all" },
# Character-wise movement
{ on = "h", run = "move -1", desc = "Move back a character" },
{ on = "l", run = "move 1", desc = "Move forward a character" },
{ on = "<Left>", run = "move -1", desc = "Move back a character" },
{ on = "<Right>", run = "move 1", desc = "Move forward a character" },
{ on = "<C-b>", run = "move -1", desc = "Move back a character" },
{ on = "<C-f>", run = "move 1", desc = "Move forward a character" },
# Word-wise movement
{ on = "b", run = "backward", desc = "Move back to the start of the current or previous word" },
{ on = "w", run = "forward", desc = "Move forward to the start of the next word" },
{ on = "e", run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
{ on = "<A-b>", run = "backward", desc = "Move back to the start of the current or previous word" },
{ on = "<A-f>", run = "forward --end-of-word", desc = "Move forward to the end of the current or next word" },
# Line-wise movement
{ on = "0", run = "move -999", desc = "Move to the BOL" },
{ on = "$", run = "move 999", desc = "Move to the EOL" },
{ on = "<C-a>", run = "move -999", desc = "Move to the BOL" },
{ on = "<C-e>", run = "move 999", desc = "Move to the EOL" },
{ on = "<Home>", run = "move -999", desc = "Move to the BOL" },
{ on = "<End>", run = "move 999", desc = "Move to the EOL" },
# Delete
{ on = "<Backspace>", run = "backspace", desc = "Delete the character before the cursor" },
{ on = "<Delete>", run = "backspace --under", desc = "Delete the character under the cursor" },
{ on = "<C-h>", run = "backspace", desc = "Delete the character before the cursor" },
{ on = "<C-d>", run = "backspace --under", desc = "Delete the character under the cursor" },
# Kill
{ on = "<C-u>", run = "kill bol", desc = "Kill backwards to the BOL" },
{ on = "<C-k>", run = "kill eol", desc = "Kill forwards to the EOL" },
{ on = "<C-w>", run = "kill backward", desc = "Kill backwards to the start of the current word" },
{ on = "<A-d>", run = "kill forward", desc = "Kill forwards to the end of the current word" },
# Cut/Yank/Paste
{ on = "d", run = "delete --cut", desc = "Cut the selected characters" },
{ on = "D", run = [ "delete --cut", "move 999" ], desc = "Cut until the EOL" },
{ on = "c", run = "delete --cut --insert", desc = "Cut the selected characters, and enter insert mode" },
{ on = "C", run = [ "delete --cut --insert", "move 999" ], desc = "Cut until the EOL, and enter insert mode" },
{ on = "x", run = [ "delete --cut", "move 1 --in-operating" ], desc = "Cut the current character" },
{ on = "y", run = "yank", desc = "Copy the selected characters" },
{ on = "p", run = "paste", desc = "Paste the copied characters after the cursor" },
{ on = "P", run = "paste --before", desc = "Paste the copied characters before the cursor" },
# Undo/Redo
{ on = "u", run = "undo", desc = "Undo the last operation" },
{ on = "<C-r>", run = "redo", desc = "Redo the last operation" },
# Help
{ on = "~", run = "help", desc = "Open help" },
{ on = "<F1>", run = "help", desc = "Open help" },
]
[completion]
keymap = [
{ on = "<C-c>", run = "close", desc = "Cancel completion" },
{ on = "<Tab>", run = "close --submit", desc = "Submit the completion" },
{ on = "<Enter>", run = [ "close --submit", "close_input --submit" ], desc = "Submit the completion and input" },
{ on = "<A-k>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<A-j>", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
{ on = "<C-p>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<C-n>", run = "arrow 1", desc = "Move cursor down" },
# Help
{ on = "~", run = "help", desc = "Open help" },
{ on = "<F1>", run = "help", desc = "Open help" },
]
[help]
keymap = [
{ on = "<Esc>", run = "escape", desc = "Clear the filter, or hide the help" },
{ on = "<C-[>", run = "escape", desc = "Clear the filter, or hide the help" },
{ on = "q", run = "close", desc = "Exit the process" },
{ on = "<C-c>", run = "close", desc = "Hide the help" },
# Navigation
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
# Filtering
{ on = "f", run = "filter", desc = "Apply a filter for the help items" },
]

146
config/yazi/theme.toml Normal file
View file

@ -0,0 +1,146 @@
# vim:fileencoding=utf-8:foldmethod=marker
# : Manager {{{
[manager]
cwd = { fg = "#83a598" }
# Hovered
hovered = { fg = "#282828", bg = "#83a598" }
preview_hovered = { underline = true }
# Find
find_keyword = { fg = "#b8bb26", italic = true }
find_position = { fg = "#fe8019", bg = "reset", italic = true }
# Marker
marker_selected = { fg = "#b8bb26", bg = "#b8bb26" }
marker_copied = { fg = "#b8bb26", bg = "#b8bb26" }
marker_cut = { fg = "#fb4934", bg = "#fb4934" }
# Tab
tab_active = { fg = "#282828", bg = "#504945" }
tab_inactive = { fg = "#a89984", bg = "#3c3836" }
tab_width = 1
# Border
border_symbol = "│"
border_style = { fg = "#665c54" }
# Highlighting
# syntect_theme = "~/.config/yazi/Gruvbox-Dark.tmTheme"
# : }}}
# : Status {{{
[status]
separator_open = ""
separator_close = ""
separator_style = { fg = "#3c3836", bg = "#3c3836" }
# Mode
mode_normal = { fg = "#282828", bg = "#A89984", bold = true }
mode_select = { fg = "#282828", bg = "#b8bb26", bold = true }
mode_unset = { fg = "#282828", bg = "#d3869b", bold = true }
# Progress
progress_label = { fg = "#ebdbb2", bold = true }
progress_normal = { fg = "#504945", bg = "#3c3836" }
progress_error = { fg = "#fb4934", bg = "#3c3836" }
# Permissions
permissions_t = { fg = "#504945" }
permissions_r = { fg = "#b8bb26" }
permissions_w = { fg = "#fb4934" }
permissions_x = { fg = "#b8bb26" }
permissions_s = { fg = "#665c54" }
# : }}}
# : Input {{{
[input]
border = { fg = "#bdae93" }
title = {}
value = {}
selected = { reversed = true }
# : }}}
# : Select {{{
[select]
border = { fg = "#504945" }
active = { fg = "#fe8019" }
inactive = {}
# : }}}
# : Tasks {{{
[tasks]
border = { fg = "#504945" }
title = {}
hovered = { underline = true }
# : }}}
# : Which {{{
[which]
mask = { bg = "#3c3836" }
cand = { fg = "#83a598" }
rest = { fg = "#928374" }
desc = { fg = "#fe8019" }
separator = "  "
separator_style = { fg = "#504945" }
# : }}}
# : Help {{{
[help]
on = { fg = "#fe8019" }
exec = { fg = "#83a598" }
desc = { fg = "#928374" }
hovered = { bg = "#504945", bold = true }
footer = { fg = "#3c3836", bg = "#a89984" }
# : }}}
# : File-specific styles {{{
[filetype]
rules = [
# Images
{ mime = "image/*", fg = "#83a598" },
# Videos
{ mime = "video/*", fg = "#b8bb26" },
{ mime = "audio/*", fg = "#b8bb26" },
# Archives
{ mime = "application/zip", fg = "#fe8019" },
{ mime = "application/gzip", fg = "#fe8019" },
{ mime = "application/x-tar", fg = "#fe8019" },
{ mime = "application/x-bzip", fg = "#fe8019" },
{ mime = "application/x-bzip2", fg = "#fe8019" },
{ mime = "application/x-7z-compressed", fg = "#fe8019" },
{ mime = "application/x-rar", fg = "#fe8019" },
# Fallback
{ name = "*", fg = "#a89984" },
{ name = "*/", fg = "#83a598" }
]
# : }}}

201
config/yazi/yazi.toml Normal file
View file

@ -0,0 +1,201 @@
# A TOML linter such as https://taplo.tamasfe.dev/ can use this schema to validate your config.
# If you encounter any issues, please make an issue at https://github.com/yazi-rs/schemas.
"$schema" = "https://yazi-rs.github.io/schemas/yazi.json"
[manager]
ratio = [ 1, 4, 3 ]
sort_by = "natural"
sort_sensitive = false
sort_reverse = false
sort_dir_first = true
sort_translit = false
linemode = "none"
show_hidden = false
show_symlink = true
scrolloff = 5
mouse_events = [ "click", "scroll" ]
title_format = "Yazi: {cwd}"
[preview]
tab_size = 2
max_width = 600
max_height = 900
cache_dir = ""
image_filter = "triangle"
image_quality = 75
sixel_fraction = 15
ueberzug_scale = 1
ueberzug_offset = [ 0, 0, 0, 0 ]
[opener]
edit = [
{ run = '${EDITOR:-vi} "$@"', desc = "$EDITOR", block = true, for = "unix" },
{ run = 'code %*', orphan = true, desc = "code", for = "windows" },
{ run = 'code -w %*', block = true, desc = "code (block)", for = "windows" },
]
open = [
{ run = 'xdg-open "$1"', desc = "Open", for = "linux" },
{ run = 'open "$@"', desc = "Open", for = "macos" },
{ run = 'start "" "%1"', orphan = true, desc = "Open", for = "windows" },
]
reveal = [
{ run = 'xdg-open "$(dirname "$1")"', desc = "Reveal", for = "linux" },
{ run = 'open -R "$1"', desc = "Reveal", for = "macos" },
{ run = 'explorer /select,"%1"', orphan = true, desc = "Reveal", for = "windows" },
{ run = '''exiftool "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show EXIF", for = "unix" },
]
extract = [
{ run = 'ya pub extract --list "$@"', desc = "Extract here", for = "unix" },
{ run = 'ya pub extract --list %*', desc = "Extract here", for = "windows" },
]
play = [
{ run = 'mpv --force-window "$@"', orphan = true, for = "unix" },
{ run = 'mpv --force-window %*', orphan = true, for = "windows" },
{ run = '''mediainfo "$1"; echo "Press enter to exit"; read _''', block = true, desc = "Show media info", for = "unix" },
]
[open]
rules = [
# Folder
{ name = "*/", use = [ "edit", "open", "reveal" ] },
# Text
{ mime = "text/*", use = [ "edit", "reveal" ] },
# Image
{ mime = "image/*", use = [ "open", "reveal" ] },
# Media
{ mime = "{audio,video}/*", use = [ "play", "reveal" ] },
# Archive
{ mime = "application/{,g}zip", use = [ "extract", "reveal" ] },
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar}", use = [ "extract", "reveal" ] },
# JSON
{ mime = "application/{json,x-ndjson}", use = [ "edit", "reveal" ] },
{ mime = "*/javascript", use = [ "edit", "reveal" ] },
# Empty file
{ mime = "inode/x-empty", use = [ "edit", "reveal" ] },
# Fallback
{ name = "*", use = [ "open", "reveal" ] },
]
[tasks]
micro_workers = 10
macro_workers = 25
bizarre_retry = 5
image_alloc = 536870912 # 512MB
image_bound = [ 0, 0 ]
suppress_preload = false
[plugin]
fetchers = [
# Mimetype
{ id = "mime", name = "*", run = "mime", if = "!mime", prio = "high" },
]
preloaders = [
# Image
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
{ mime = "image/*", run = "image" },
# Video
{ mime = "video/*", run = "video" },
# PDF
{ mime = "application/pdf", run = "pdf" },
# Font
{ mime = "font/*", run = "font" },
{ mime = "application/vnd.ms-opentype", run = "font" },
]
previewers = [
{ name = "*/", run = "folder", sync = true },
# Code
{ mime = "text/*", run = "code" },
{ mime = "*/{xml,javascript,x-wine-extension-ini}", run = "code" },
# JSON
{ mime = "application/{json,x-ndjson}", run = "json" },
# Image
{ mime = "image/{avif,hei?,jxl,svg+xml}", run = "magick" },
{ mime = "image/*", run = "image" },
# Video
{ mime = "video/*", run = "video" },
# PDF
{ mime = "application/pdf", run = "pdf" },
# Archive
{ mime = "application/{,g}zip", run = "archive" },
{ mime = "application/x-{tar,bzip*,7z-compressed,xz,rar,iso9660-image}", run = "archive" },
# Font
{ mime = "font/*", run = "font" },
{ mime = "application/vnd.ms-opentype", run = "font" },
# Empty file
{ mime = "inode/x-empty", run = "empty" },
# Fallback
{ name = "*", run = "file" },
]
[input]
cursor_blink = false
# cd
cd_title = "Change directory:"
cd_origin = "top-center"
cd_offset = [ 0, 2, 50, 3 ]
# create
create_title = "Create:"
create_origin = "top-center"
create_offset = [ 0, 2, 50, 3 ]
# rename
rename_title = "Rename:"
rename_origin = "hovered"
rename_offset = [ 0, 1, 50, 3 ]
# trash
trash_title = "Move {n} selected file{s} to trash? (y/N)"
trash_origin = "top-center"
trash_offset = [ 0, 2, 50, 3 ]
# delete
delete_title = "Delete {n} selected file{s} permanently? (y/N)"
delete_origin = "top-center"
delete_offset = [ 0, 2, 50, 3 ]
# filter
filter_title = "Filter:"
filter_origin = "top-center"
filter_offset = [ 0, 2, 50, 3 ]
# find
find_title = [ "Find next:", "Find previous:" ]
find_origin = "top-center"
find_offset = [ 0, 2, 50, 3 ]
# search
search_title = "Search via {n}:"
search_origin = "top-center"
search_offset = [ 0, 2, 50, 3 ]
# shell
shell_title = [ "Shell:", "Shell (block):" ]
shell_origin = "top-center"
shell_offset = [ 0, 2, 50, 3 ]
# overwrite
overwrite_title = "Overwrite an existing file? (y/N)"
overwrite_origin = "top-center"
overwrite_offset = [ 0, 2, 50, 3 ]
# quit
quit_title = "{n} task{s} running, sure to quit? (y/N)"
quit_origin = "top-center"
quit_offset = [ 0, 2, 50, 3 ]
[select]
open_title = "Open with:"
open_origin = "hovered"
open_offset = [ 0, 1, 50, 7 ]
[which]
sort_by = "none"
sort_sensitive = false
sort_reverse = false
sort_translit = false
[log]
enabled = false

348
etc/bluetooth/main.conf Normal file
View file

@ -0,0 +1,348 @@
[General]
# Default adapter name
# Defaults to 'BlueZ X.YZ'
#Name = BlueZ
# Default device class. Only the major and minor device class bits are
# considered. Defaults to '0x000000'.
#Class = 0x000100
# How long to stay in discoverable mode before going back to non-discoverable
# The value is in seconds. Default is 180, i.e. 3 minutes.
# 0 = disable timer, i.e. stay discoverable forever
#DiscoverableTimeout = 0
# Always allow pairing even if there are no agent registered
# Possible values: true, false
# Default: false
#AlwaysPairable = false
# How long to stay in pairable mode before going back to non-discoverable
# The value is in seconds. Default is 0.
# 0 = disable timer, i.e. stay pairable forever
#PairableTimeout = 0
# Use vendor id source (assigner), vendor, product and version information for
# DID profile support. The values are separated by ":" and assigner, VID, PID
# and version.
# Possible vendor id source values: bluetooth, usb (default) or false (disabled)
#DeviceID = bluetooth:1234:5678:abcd
# Do reverse service discovery for previously unknown devices that connect to
# us. For BR/EDR this option is really only needed for qualification since the
# BITE tester doesn't like us doing reverse SDP for some test cases, for LE
# this disables the GATT client functionally so it can be used in system which
# can only operate as peripheral (see also GATT Client option).
# Defaults to 'true'.
#ReverseServiceDiscovery = true
# Enable name resolving after inquiry. Set it to 'false' if you don't need
# remote devices name and want shorter discovery cycle. Defaults to 'true'.
#NameResolving = true
# Enable runtime persistency of debug link keys. Default is false which
# makes debug link keys valid only for the duration of the connection
# that they were created for.
#DebugKeys = false
# Restricts all controllers to the specified transport. Default value
# is "dual", i.e. both BR/EDR and LE enabled (when supported by the HW).
# Possible values: "dual", "bredr", "le"
#ControllerMode = dual
# Maximum number of controllers allowed to be exposed to the system.
# Default=0 (unlimited)
#MaxControllers=0
# Enables Multi Profile Specification support. This allows to specify if
# system supports only Multiple Profiles Single Device (MPSD) configuration
# or both Multiple Profiles Single Device (MPSD) and Multiple Profiles Multiple
# Devices (MPMD) configurations.
# Possible values: "off", "single", "multiple"
#MultiProfile = off
# Permanently enables the Fast Connectable setting for adapters that
# support it. When enabled other devices can connect faster to us,
# however the tradeoff is increased power consumptions. This feature
# will fully work only on kernel version 4.1 and newer. Defaults to
# 'false'.
#FastConnectable = false
# Default privacy setting.
# Enables use of private address.
# Possible values for LE mode: "off", "network/on", "device"
# Possible values for Dual mode: "off", "network/on", "device",
# "limited-network", "limited-device"
#
# - off: Local privacy disabled.
#
# - network/on: A device will only accept advertising packets from peer
# devices that contain private addresses. It may not be compatible with some
# legacy devices since it requires the use of RPA(s) all the time.
#
# - device: A device in device privacy mode is only concerned about the
# privacy of the device and will accept advertising packets from peer devices
# that contain their Identity Address as well as ones that contain a private
# address, even if the peer device has distributed its IRK in the past.
# - limited-network: Apply Limited Discoverable Mode to advertising, which
# follows the same policy as to BR/EDR that publishes the identity address when
# discoverable, and Network Privacy Mode for scanning.
#
# - limited-device: Apply Limited Discoverable Mode to advertising, which
# follows the same policy as to BR/EDR that publishes the identity address when
# discoverable, and Device Privacy Mode for scanning.
#
# Defaults to "off"
#Privacy = off
# Specify the policy to the JUST-WORKS repairing initiated by peer
# Possible values: "never", "confirm", "always"
# Defaults to "never"
#JustWorksRepairing = never
# How long to keep temporary devices around
# The value is in seconds. Default is 30.
# 0 = disable timer, i.e. never keep temporary devices
#TemporaryTimeout = 30
# Enables the device to issue an SDP request to update known services when
# profile is connected. Defaults to true.
#RefreshDiscovery = true
# Default Secure Connections setting.
# Enables the Secure Connections setting for adapters that support it. It
# provides better crypto algorithms for BT links and also enables CTKD (cross
# transport key derivation) during pairing on any link.
# Possible values: "off", "on", "only"
# - "off": Secure Connections are disabled
# - "on": Secure Connections are enabled when peer device supports them
# - "only": we allow only Secure Connections
# Defaults to "on"
#SecureConnections = on
# Enables D-Bus experimental interfaces
# Possible values: true or false
#Experimental = false
# Enables D-Bus testing interfaces
# Possible values: true or false
#Testing = false
# Enables kernel experimental features, alternatively a list of UUIDs
# can be given.
# Possible values: true,false,<UUID List>
# Possible UUIDS:
# d4992530-b9ec-469f-ab01-6c481c47da1c (BlueZ Experimental Debug)
# 671b10b5-42c0-4696-9227-eb28d1b049d6 (BlueZ Experimental Simultaneous Central and Peripheral)
# 15c0a148-c273-11ea-b3de-0242ac130004 (BlueZ Experimental LL privacy)
# 330859bc-7506-492d-9370-9a6f0614037f (BlueZ Experimental Bluetooth Quality Report)
# a6695ace-ee7f-4fb9-881a-5fac66c629af (BlueZ Experimental Offload Codecs)
# 6fbaf188-05e0-496a-9885-d6ddfdb4e03e (BlueZ Experimental ISO socket)
# Defaults to false.
#KernelExperimental = false
# The duration to avoid retrying to resolve a peer's name, if the previous
# try failed.
# The value is in seconds. Default is 300, i.e. 5 minutes.
#RemoteNameRequestRetryDelay = 300
[BR]
# The following values are used to load default adapter parameters for BR/EDR.
# BlueZ loads the values into the kernel before the adapter is powered if the
# kernel supports the MGMT_LOAD_DEFAULT_PARAMETERS command. If a value isn't
# provided, the kernel will be initialized to it's default value. The actual
# value will vary based on the kernel version and thus aren't provided here.
# The Bluetooth Core Specification should be consulted for the meaning and valid
# domain of each of these values.
# BR/EDR Page scan activity configuration
#PageScanType=
#PageScanInterval=
#PageScanWindow=
# BR/EDR Inquiry scan activity configuration
#InquiryScanType=
#InquiryScanInterval=
#InquiryScanWindow=
# BR/EDR Link supervision timeout
#LinkSupervisionTimeout=
# BR/EDR Page Timeout
#PageTimeout=
# BR/EDR Sniff Intervals
#MinSniffInterval=
#MaxSniffInterval=
[LE]
# The following values are used to load default adapter parameters for LE.
# BlueZ loads the values into the kernel before the adapter is powered if the
# kernel supports the MGMT_LOAD_DEFAULT_PARAMETERS command. If a value isn't
# provided, the kernel will be initialized to it's default value. The actual
# value will vary based on the kernel version and thus aren't provided here.
# The Bluetooth Core Specification should be consulted for the meaning and valid
# domain of each of these values.
# LE advertisement interval (used for legacy advertisement interface only)
#MinAdvertisementInterval=
#MaxAdvertisementInterval=
#MultiAdvertisementRotationInterval=
# LE scanning parameters used for passive scanning supporting auto connect
# scenarios
#ScanIntervalAutoConnect=
#ScanWindowAutoConnect=
# LE scanning parameters used for passive scanning supporting wake from suspend
# scenarios
#ScanIntervalSuspend=
#ScanWindowSuspend=
# LE scanning parameters used for active scanning supporting discovery
# proceedure
#ScanIntervalDiscovery=
#ScanWindowDiscovery=
# LE scanning parameters used for passive scanning supporting the advertisement
# monitor Apis
#ScanIntervalAdvMonitor=
#ScanWindowAdvMonitor=
# LE scanning parameters used for connection establishment.
#ScanIntervalConnect=
#ScanWindowConnect=
# LE default connection parameters. These values are superceeded by any
# specific values provided via the Load Connection Parameters interface
#MinConnectionInterval=
#MaxConnectionInterval=
#ConnectionLatency=
#ConnectionSupervisionTimeout=
#Autoconnecttimeout=
# Scan duration during interleaving scan. Only used when scanning for ADV
# monitors. The units are msec.
# Default: 300
#AdvMonAllowlistScanDuration=
# Default: 500
#AdvMonNoFilterScanDuration=
# Enable/Disable Advertisement Monitor interleave scan for power saving.
# 0: disable
# 1: enable
# Defaults to 1
#EnableAdvMonInterleaveScan=
[GATT]
# GATT attribute cache.
# Possible values:
# always: Always cache attributes even for devices not paired, this is
# recommended as it is best for interoperability, with more consistent
# reconnection times and enables proper tracking of notifications for all
# devices.
# yes: Only cache attributes of paired devices.
# no: Never cache attributes
# Default: always
#Cache = always
# Minimum required Encryption Key Size for accessing secured characteristics.
# Possible values: 0 and 7-16. 0 means don't care.
# Defaults to 0
#KeySize = 0
# Exchange MTU size.
# Possible values: 23-517
# Defaults to 517
#ExchangeMTU = 517
# Number of ATT channels
# Possible values: 1-5 (1 disables EATT)
# Default to 1
#Channels = 1
[CSIS]
# SIRK - Set Identification Resolution Key which is common for all the
# sets. They SIRK key is used to identify its sets. This can be any
# 128 bit value or a string value (e.g. product name) which is then hashed.
# Possible Values:
# 16 byte hexadecimal value: 861FAE703ED681F0C50B34155B6434FB
# String value: "My Product Name"
# Defaults to none
#SIRK =
# SIRK Encryption
# Possible values:
# true: Encrypt SIRK when read
# false: Do not encrypt SIRK when read. (plaintext)
# Defaults to true
#Encryption = true
# Total no of sets belongs to this Profile
# Defaults to 0
#Size = 0
# Rank for the device
# Defaults to 0
#Rank = 0
# This enables the GATT client functionally, so it can be disabled in system
# which can only operate as a peripheral.
# Defaults to 'true'.
#Client = true
[AVDTP]
# AVDTP L2CAP Signalling Channel Mode.
# Possible values:
# basic: Use L2CAP Basic Mode
# ertm: Use L2CAP Enhanced Retransmission Mode
#SessionMode = basic
# AVDTP L2CAP Transport Channel Mode.
# Possible values:
# basic: Use L2CAP Basic Mode
# streaming: Use L2CAP Streaming Mode
#StreamMode = basic
[Policy]
#
# The ReconnectUUIDs defines the set of remote services that should try
# to be reconnected to in case of a link loss (link supervision
# timeout). The policy plugin should contain a sane set of values by
# default, but this list can be overridden here. By setting the list to
# empty the reconnection feature gets disabled.
#ReconnectUUIDs=00001112-0000-1000-8000-00805f9b34fb,0000111f-0000-1000-8000-00805f9b34fb,0000110a-0000-1000-8000-00805f9b34fb,0000110b-0000-1000-8000-00805f9b34fb
# ReconnectAttempts define the number of attempts to reconnect after a link
# lost. Setting the value to 0 disables reconnecting feature.
#ReconnectAttempts=7
# ReconnectIntervals define the set of intervals in seconds to use in between
# attempts.
# If the number of attempts defined in ReconnectAttempts is bigger than the
# set of intervals the last interval is repeated until the last attempt.
#ReconnectIntervals=1,2,4,8,16,32,64
# AutoEnable defines option to enable all controllers when they are found.
# This includes adapters present on start as well as adapters that are plugged
# in later on. Defaults to 'true'.
AutoEnable=false
# Audio devices that were disconnected due to suspend will be reconnected on
# resume. ResumeDelay determines the delay between when the controller
# resumes from suspend and a connection attempt is made. A longer delay is
# better for better co-existence with Wi-Fi.
# The value is in seconds.
# Default: 2
#ResumeDelay = 2
[AdvMon]
# Default RSSI Sampling Period. This is used when a client registers an
# advertisement monitor and leaves the RSSISamplingPeriod unset.
# Possible values:
# 0x00 Report all advertisements
# N = 0xXX Report advertisements every N x 100 msec (range: 0x01 to 0xFE)
# 0xFF Report only one advertisement per device during monitoring period
# Default: 0xFF
#RSSISamplingPeriod=0xFF

63
etc/default/grub Normal file
View file

@ -0,0 +1,63 @@
# GRUB boot loader configuration
GRUB_DEFAULT=0
GRUB_TIMEOUT=2
GRUB_DISTRIBUTOR="Arch"
GRUB_CMDLINE_LINUX_DEFAULT="rd.luks.name=<uuid>=<lvmname> rd.luks.key=<uuid>=<path_to_key> loglevel=3 quiet systemd.show_status=auto rd.udev.log_level=3 splash"
GRUB_CMDLINE_LINUX=""
# Preload both GPT and MBR modules so that they are not missed
GRUB_PRELOAD_MODULES="part_gpt part_msdos"
# Uncomment to enable booting from LUKS encrypted devices
GRUB_ENABLE_CRYPTODISK=y
# Set to 'countdown' or 'hidden' to change timeout behavior,
# press ESC key to display menu.
GRUB_TIMEOUT_STYLE=hidden
# Uncomment to use basic console
GRUB_TERMINAL_INPUT=console
# Uncomment to disable graphical terminal
#GRUB_TERMINAL_OUTPUT=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `videoinfo'
GRUB_GFXMODE=auto
# Uncomment to allow the kernel use the same resolution used by grub
GRUB_GFXPAYLOAD_LINUX=keep
# Uncomment if you want GRUB to pass to the Linux kernel the old parameter
# format "root=/dev/xxx" instead of "root=/dev/disk/by-uuid/xxx"
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY=true
# Uncomment and set to the desired menu colors. Used by normal and wallpaper
# modes only. Entries specified as foreground/background.
#GRUB_COLOR_NORMAL="light-blue/black"
#GRUB_COLOR_HIGHLIGHT="light-cyan/blue"
# Uncomment one of them for the gfx desired, a image background or a gfxtheme
#GRUB_BACKGROUND="/path/to/wallpaper"
#GRUB_THEME="/path/to/gfxtheme"
# Uncomment to get a beep at GRUB start
#GRUB_INIT_TUNE="480 440 1"
# Uncomment to make GRUB remember the last selection. This requires
# setting 'GRUB_DEFAULT=saved' above.
#GRUB_SAVEDEFAULT=true
# Uncomment to disable submenus in boot menu
#GRUB_DISABLE_SUBMENU=y
# Probing for other operating systems is disabled for security reasons. Read
# documentation on GRUB_DISABLE_OS_PROBER, if still want to enable this
# functionality install os-prober and uncomment to detect and include other
# operating systems.
GRUB_DISABLE_OS_PROBER=true

13
etc/issue Normal file
View file

@ -0,0 +1,13 @@

      ### ### ##
    ## ##
┌ #### ### ###   ####   ## ### ## ### ### ### ### ###  ### ###
│  ##  ### ##  ##   ###  ## ## ## ### ## ## ##   ## ##
│ #####  ##   ##   ## ## ## ## ## ## ## ##   ###
│ ## ##  ##   ##   ## ## ## ## ## ## ##  ##   ## ## 
│ ######  ##   ####  ### ### #### #### ### ### ######  ###   ###
└─────────────────────────────────────────── A simple, lightweight distribution.

OS: Arch\s Kernel: \r Processor: \m TTY: \l


81
etc/mkinitcpio.conf Normal file
View file

@ -0,0 +1,81 @@
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES=(usbhid xhci_hcd)
MODULES=(i915)
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=()
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=(/boot/volume.key)
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No RAID, lvm2, or encrypted root is needed.
# HOOKS=(base)
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS=(base udev autodetect modconf block filesystems fsck)
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS=(base udev modconf block filesystems fsck)
#
## This setup assembles a mdadm array with an encrypted root file system.
## Note: See 'mkinitcpio -H mdadm_udev' for more information on RAID devices.
# HOOKS=(base udev modconf keyboard keymap consolefont block mdadm_udev encrypt filesystems fsck)
#
## This setup loads an lvm2 volume group.
# HOOKS=(base udev modconf block lvm2 filesystems fsck)
#
## This will create a systemd based initramfs which loads an encrypted root filesystem.
# HOOKS=(base systemd autodetect modconf kms keyboard sd-vconsole sd-encrypt block filesystems fsck)
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks.
HOOKS=(base systemd plymouth autodetect microcode modconf kms keyboard keymap sd-vconsole block sd-encrypt lvm2 filesystems fsck)
# COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression
# is used for Linux ≥ 5.9 and gzip compression is used for Linux < 5.9.
# Use 'cat' to create an uncompressed image.
#COMPRESSION="zstd"
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=()
# MODULES_DECOMPRESS
# Decompress loadable kernel modules and their firmware during initramfs
# creation. Switch (yes/no).
# Enable to allow further decreasing image size when using high compression
# (e.g. xz -9e or zstd --long --ultra -22) at the expense of increased RAM usage
# at early boot.
# Note that any compressed files will be placed in the uncompressed early CPIO
# to avoid double compression.
#MODULES_DECOMPRESS="no"

100
etc/pacman.conf Normal file
View file

@ -0,0 +1,100 @@
#
# /etc/pacman.conf
#
# See the pacman.conf(5) manpage for option and repository directives
#
# GENERAL OPTIONS
#
[options]
# The following paths are commented out with their default values listed.
# If you wish to use different paths, uncomment and update the paths.
#RootDir = /
#DBPath = /var/lib/pacman/
#CacheDir = /var/cache/pacman/pkg/
#LogFile = /var/log/pacman.log
#GPGDir = /etc/pacman.d/gnupg/
#HookDir = /etc/pacman.d/hooks/
HoldPkg = pacman glibc
#XferCommand = /usr/bin/curl -L -C - -f -o %o %u
#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u
#CleanMethod = KeepInstalled
Architecture = auto
# Pacman won't upgrade packages listed in IgnorePkg and members of IgnoreGroup
#IgnorePkg =
#IgnoreGroup =
#NoUpgrade =
#NoExtract =
# Misc options
#UseSyslog
Color
#NoProgressBar
CheckSpace
#VerbosePkgLists
ParallelDownloads = 5
ILoveCandy
# By default, pacman accepts packages signed by keys that its local keyring
# trusts (see pacman-key and its man page), as well as unsigned packages.
SigLevel = Required DatabaseOptional
LocalFileSigLevel = Optional
#RemoteFileSigLevel = Required
# NOTE: You must run `pacman-key --init` before first using pacman; the local
# keyring can then be populated with the keys of all official Arch Linux
# packagers with `pacman-key --populate archlinux`.
#
# REPOSITORIES
# - can be defined here or included from another file
# - pacman will search repositories in the order defined here
# - local/custom mirrors can be added here or in separate files
# - repositories listed first will take precedence when packages
# have identical names, regardless of version number
# - URLs will have $repo replaced by the name of the current repo
# - URLs will have $arch replaced by the name of the architecture
#
# Repository entries are of the format:
# [repo-name]
# Server = ServerName
# Include = IncludePath
#
# The header [repo-name] is crucial - it must be present and
# uncommented to enable the repo.
#
# The testing repositories are disabled by default. To enable, uncomment the
# repo name header and Include lines. You can add preferred servers immediately
# after the header, and they will be used before the default mirrors.
#[core-testing]
#Include = /etc/pacman.d/mirrorlist
[core]
Include = /etc/pacman.d/mirrorlist
#[extra-testing]
#Include = /etc/pacman.d/mirrorlist
[extra]
Include = /etc/pacman.d/mirrorlist
# If you want to run 32 bit applications on your x86_64 system,
# enable the multilib repositories as required here.
#[multilib-testing]
#Include = /etc/pacman.d/mirrorlist
#[multilib]
#Include = /etc/pacman.d/mirrorlist
# An example of a custom package repository. See the pacman manpage for
# tips on creating your own repositories.
#[custom]
#SigLevel = Optional TrustAll
#Server = file:///home/custompkgs
[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist

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

75
home/.bash_profile Normal file
View file

@ -0,0 +1,75 @@
#!/usr/bin/env bash
# Home folders
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_CONFIG_HOME="$HOME/.config"
# Sanely export XDG Base dir variables
eval "$(sed 's/^[^#].*/export &/g;t;d' ~/.config/user-dirs.dirs)"
# Clean home
export W3M_DIR="$XDG_DATA_HOME/w3m"
export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0"
export WGETDIR="$XDG_CONFIG_HOME/wget"
export WGETRC="$WGETDIR/wgetrc"
export INPUTRC="$HOME/.config/X11/inputrc"
export GNUPGHOME="$HOME/.local/share/gnupg"
export LESSHISTFILE="-"
export BASHRC="$HOME/.bashrc"
export GOPATH="$HOME/.go"
# Default apps
export TERMINAL="foot"
export EDITOR="$HOME/.local/bin/lvim"
export VISUAL="neovide --neovim-bin $EDITOR"
export BROWSER="brave"
export VIEWER="zathura"
# Set path
if [ -d "$HOME/.bin" ]; then
PATH="$HOME/.bin:$PATH"
fi
if [ -d "$HOME/.local/bin" ]; then
PATH="$HOME/.local/bin:$PATH"
fi
if [ -d "$HOME/.cargo/bin" ]; then
PATH="$HOME/.cargo/bin:$PATH"
fi
if [ -d "$GOPATH/bin" ]; then
PATH="$GOPATH/bin:$PATH"
fi
if [ -d "$HOME/.local/lib/flutter/bin" ]; then
PATH="$HOME/.local/lib/flutter/bin:$PATH"
fi
if [ -d $HOME/.dotnet/tools ]; then
PATH="$HOME/.dotnet/tools:$PATH"
fi
if [ -d "$HOME/Applications" ]; then
PATH="$HOME/Applications:$PATH"
fi
if [ -d "$XDG_DATA_HOME/JetBrains/Toolbox/scripts" ]; then
PATH="$XDG_DATA_HOME/JetBrains/Toolbox/scripts:$PATH"
fi
if [ -d "$HOME/.config/vifm/scripts" ]; then
PATH="$HOME/.config/vifm/scripts:$PATH"
fi
# export SSH_AUTH_SOCK
if [[ -z "${SSH_CONNECTION}" ]]; then
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket"
fi
# Create config directories if they don't exist
if [ ! -d "$WGETDIR" ] || [ ! -d "$GNUPGHOME" ]; then
mkdir -p "$WGETDIR" "$GNUPGHOME"
fi
# Bashrc
source "$BASHRC"
# Starting wayland session
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
sh "$HOME/.config/sway/winitrc" &>/dev/null
logout
fi

295
home/.bashrc Normal file
View file

@ -0,0 +1,295 @@
### EXPORT ###
export TERM="xterm-256color" # getting proper colors
export HISTCONTROL=ignoredups:erasedups # no duplicate entries
### "bat" as manpager
export MANPAGER="sh -c 'sed -u -e \"s/\\x1B\[[0-9;]*m//g; s/.\\x08//g\" | bat -p -lman'"
# use bash-completion, if available
[[ $PS1 && -f /usr/share/bash-completion/bash_completion ]] && \
. /usr/share/bash-completion/bash_completion
# if not running interactively, don't do anything
[[ $- != *i* ]] && return
### SET VI MODE ###
# Comment this line out to enable default emacs-like bindings
set -o vi
bind -m vi-command 'Control-l: clear-screen'
bind -m vi-insert 'Control-l: clear-screen'
### CHANGE TITLE OF TERMINALS ###
case ${TERM} in
xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|alacritty|st|konsole*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"'
;;
screen*)
PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"'
;;
esac
### SHOPT ###
shopt -s autocd # change to named directory
shopt -s cdspell # autocorrects cd misspellings
shopt -s cmdhist # save multi-line commands in history as single line
shopt -s dotglob
shopt -s histappend # do not overwrite history
shopt -s expand_aliases # expand aliases
shopt -s checkwinsize # checks term size when bash regains control
# ignore upper and lowercase when TAB completion
bind "set completion-ignore-case on"
# sudo not required for some system commands
for command in cryptsetup mount umount poweroff reboot ; do
alias $command="sudo $command"
done; unset command
### ARCHIVE EXTRACTION ###
# usage: ex <file>
function ex() {
if [ -f "$1" ] ; then
case $1 in
*.tar.bz2) tar xjf "$1" ;;
*.tar.gz) tar xzf "$1" ;;
*.bz2) bunzip2 "$1" ;;
*.rar) unrar x "$1" ;;
*.gz) gunzip "$1" ;;
*.tar) tar xf "$1" ;;
*.tbz2) tar xjf "$1" ;;
*.tgz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*.Z) uncompress "$1";;
*.7z) 7zz x "$1" ;;
*.deb) ar x "$1" ;;
*.tar.xz) tar xf "$1" ;;
*.tar.zst) unzstd "$1" ;;
*) echo "'$1' cannot be extracted via ex()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
### ALIASES ###
# navigation
function up () {
local d=""
local limit="$1"
# Default to limit of 1
if [ -z "$limit" ] || [ "$limit" -le 0 ]; then
limit=1
fi
for ((i=1;i<=limit;i++)); do
d="../$d"
done
# perform cd. Show error if cd fails
if ! cd "$d"; then
echo "Couldn't go up $limit dirs.";
fi
}
# unlock ssh keys
function unlock() {
ssh-add "$HOME/.ssh/$1"
}
# cd
alias \
..="cd .." \
.2="cd ../.." \
.3="cd ../../.." \
.4="cd ../../../.." \
.5="cd ../../../../.."
# bat as cat
[ -x "$(command -v bat)" ] && alias cat="bat"
# fastfetch as neofetch
[ -x "$(command -v fastfetch)" ] && alias neofetch="fastfetch"
# use lunarvim or neovim for vim if present.
if [ -x "$(command -v $HOME/.local/bin/lvim)" ]; then
alias vim="$HOME/.local/bin/lvim"
elif [ -x "$(command -v nvim)" ]; then
alias vim="nvim"
fi
# Changing "ls" to "eza"
[ -x "$(command -v eza)" ] && alias \
ls="eza --icons -al --color=always --group-directories-first" \
la="eza --icons -a --color=always --group-directories-first" \
ll="eza --icons -l --color=always --group-directories-first" \
lt="eza --icons -aT --color=always --group-directories-first" \
l.='eza --icons -a | grep -E "^\."'
# function to detect os and assign aliases to package managers
alias \
pkg-update="paru -Syyu" \
pkg-install="paru -S" \
pkg-remove="paru -Rcns" \
pkg-remove-sec="paru -R" \
pkg-autoremove="paru -Scc && paru -Rns (pacman -Qtdq)" \
pkg-search="paru -Ss"
# colorize grep output (good for log files)
alias \
grep="grep --color=auto" \
egrep="egrep --color=auto" \
fgrep="fgrep --color=auto"
# git
alias \
git-adu="git add -u" \
git-adl="git add ." \
git-brn="git branch" \
git-chk="git checkout" \
git-cln="git clone" \
git-cmt="git commit -m" \
git-fth="git fetch" \
git-pll="git pull origin" \
git-psh="git push origin" \
git-sts="git status" \
git-tag="git tag" \
git-ntg="git tag -a"
# adding flags
alias \
df="df -h" \
free="free -m"
# multimedia scripts
alias \
fli="flix-cli" \
ani="ani-cli" \
aniq="ani-cli -q"
# audio
alias \
mx="pulsemixer" \
mk="cmus" \
ms="cmus" \
music="cmus"
# power management
alias \
po="systemctl poweroff" \
sp="systemctl suspend" \
rb="systemctl reboot"
# file management
alias \
fm="yazi" \
flm="yazi" \
rm="rm -vI" \
mv="mv -iv" \
cp="cp -iv" \
mkd="mkdir -pv"
# ps
alias \
psa="ps auxf" \
psgrep="ps aux | grep -v grep | grep -i -e VSZ -e" \
psmem="ps auxf | sort -nr -k 4" \
pscpu="ps auxf | sort -nr -k 3"
# youtube
alias \
yta-aac="yt-dlp --extract-audio --audio-format aac" \
yta-best="yt-dlp --extract-audio --audio-format best" \
yta-flac="yt-dlp --extract-audio --audio-format flac" \
yta-m4a="yt-dlp --extract-audio --audio-format m4a" \
yta-mp3="yt-dlp --extract-audio --audio-format mp3" \
yta-opus="yt-dlp --extract-audio --audio-format opus" \
yta-vorbis="yt-dlp --extract-audio --audio-format vorbis" \
yta-wav="yt-dlp --extract-audio --audio-format wav" \
ytv-best="yt-dlp -f bestvideo+bestaudio" \
yt="ytfzf -ftsl" \
ytm="ytfzf -mtsl"
# network and bluetooth
alias \
netstats="nmcli dev" \
wfi="nmtui-connect" \
wfi-scan="nmcli dev wifi rescan && nmcli dev wifi list" \
wfi-edit="nmtui-edit" \
wfi-on="nmcli radio wifi on" \
wfi-off="nmcli radio wifi off" \
blt="bluetoothctl"
# Automatically add completion for all aliases to commands having completion functions
# this currently slows startup a bit, but it isn't terrible
function alias_completion {
local namespace="alias_completion"
# parse function based completion definitions, where capture group 2 => function and 3 => trigger
local compl_regex='complete( +[^ ]+)* -F ([^ ]+) ("[^"]+"|[^ ]+)'
# parse alias definitions, where capture group 1 => trigger, 2 => command, 3 => command arguments
local alias_regex="alias ([^=]+)='(\"[^\"]+\"|[^ ]+)(( +[^ ]+)*)'"
# create array of function completion triggers, keeping multi-word triggers together
eval "local completions=($(complete -p | sed -Ene "/$compl_regex/s//'\3'/p"))"
(( ${#completions[@]} == 0 )) && return 0
# create temporary file for wrapper functions and completions
command rm -f "/tmp/${namespace}-*.tmp" &> /dev/null # preliminary cleanup
local tmp_file; tmp_file="$(mktemp "/tmp/${namespace}-${RANDOM}XXX.tmp")" || return 1
local completion_loader; completion_loader="$(complete -p -D 2>/dev/null | sed -Ene 's/.* -F ([^ ]*).*/\1/p')"
# read in "<alias> '<aliased command>' '<command args>'" lines from defined aliases
local line; while read line; do
eval "local alias_tokens; alias_tokens=($line)" 2>/dev/null || continue # some alias arg patterns cause an eval parse error
local alias_name="${alias_tokens[0]}" alias_cmd="${alias_tokens[1]}" alias_args="${alias_tokens[2]# }"
# skip aliases to pipes, boolean control structures and other command lists
# (leveraging that eval errs out if $alias_args contains unquoted shell metacharacters)
eval "local alias_arg_words; alias_arg_words=($alias_args)" 2>/dev/null || continue
# avoid expanding wildcards
read -a alias_arg_words <<< "$alias_args"
# skip alias if there is no completion function triggered by the aliased command
if [[ ! " ${completions[*]} " =~ " $alias_cmd " ]]; then
if [[ -n "$completion_loader" ]]; then
# force loading of completions for the aliased command
eval "$completion_loader $alias_cmd"
# 124 means completion loader was successful
[[ $? -eq 124 ]] || continue
completions+=($alias_cmd)
else
continue
fi
fi
local new_completion="$(complete -p "$alias_cmd")"
# create a wrapper inserting the alias arguments if any
if [[ -n $alias_args ]]; then
local compl_func="${new_completion/#* -F /}"; compl_func="${compl_func%% *}"
# avoid recursive call loops by ignoring our own functions
if [[ "${compl_func#_$namespace::}" == $compl_func ]]; then
local compl_wrapper="_${namespace}::${alias_name}"
echo "function $compl_wrapper {
(( COMP_CWORD += ${#alias_arg_words[@]} ))
COMP_WORDS=($alias_cmd $alias_args \${COMP_WORDS[@]:1})
(( COMP_POINT -= \${#COMP_LINE} ))
COMP_LINE=\${COMP_LINE/$alias_name/$alias_cmd $alias_args}
(( COMP_POINT += \${#COMP_LINE} ))
$compl_func
}" >> "$tmp_file"
new_completion="${new_completion/ -F $compl_func / -F $compl_wrapper }"
fi
fi
# replace completion trigger by alias
new_completion="${new_completion% *} $alias_name"
echo "$new_completion" >> "$tmp_file"
done < <(alias -p | sed -Ene "s/$alias_regex/\1 '\2' '\3'/p")
source "$tmp_file" && command rm -f "$tmp_file" &> /dev/null
}; alias_completion
# starship prompt
eval "$(starship init bash)"
eval "$(zoxide init bash)"

View file

@ -0,0 +1,4 @@
[Icon Theme]
Name=Default
Comment=Default Cursor Theme
Inherits=Simp1e-Gruvbox-Dark

View file

@ -1,5 +0,0 @@
#%PAM-1.0
auth sufficient pam_fprintd.so
auth include system-auth
account include system-auth
session include system-auth

View file

@ -1,7 +0,0 @@
#%PAM-1.0
auth sufficient pam_fprintd.so
auth include system-login
account include system-login
password include system-login
session include system-login

View file

@ -1,14 +0,0 @@
#!/bin/sh
export USER="drk"
export HOME="/home/$USER"
export XDG_RUNTIME_DIR="/run/user/$(id -u $USER)"
mkdir $XDG_RUNTIME_DIR
chown $USER:$USER $XDG_RUNTIME_DIR
groups="$(id -Gn "$USER" | tr ' ' ':')"
svdir="$HOME/.config/services"
mkdir -p "$svdir"
chown $USER:$USER "$svdir"
exec chpst -u "$USER:$groups" runsvdir "$svdir"

View file

@ -1,50 +0,0 @@
#!/bin/bash
## ____ __
## / __ \_________ _/ /_____
## / / / / ___/ __ `/ //_/ _ \
## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake)
## /_____/_/ \__,_/_/|_|\___/ My custom bash_profile config
##
#
# Home folders
export XDG_DATA_HOME="$HOME/.local/share"
export XDG_CACHE_HOME="$HOME/.cache"
export XDG_CONFIG_HOME="$HOME/.config"
export X11CFGDIR="$XDG_CONFIG_HOME/X11"
export XINITRC="$X11CFGDIR/xinitrc"
# Sanely export XDG Base dir variables
eval "$(sed 's/^[^#].*/export &/g;t;d' ~/.config/user-dirs.dirs)"
# Clean home
export W3M_DIR="$XDG_DATA_HOME/w3m"
export GTK2_RC_FILES="$HOME/.config/gtk-2.0/gtkrc-2.0"
export WGETDIR="$XDG_CONFIG_HOME/wget"
export WGETRC="$WGETDIR/wgetrc"
export INPUTRC="$HOME/.config/X11/inputrc"
export GNUPGHOME="$HOME/.local/share/gnupg"
export LESSHISTFILE="-"
export BASHRC="$HOME/.bashrc"
# Default apps
export TERM="wezterm"
export EDITOR="$HOME/.local/bin/lvim"
export VISUAL="$HOME/.local/bin/neovide"
export BROWSER="flatpak run org.mozilla.firefox"
export VIEWER="zathura"
# Bashrc
source "$BASHRC"
# Create config directories if they don't exist
if [ ! -d "$WGETDIR" ] || [ ! -d "$GNUPGHOME" ]; then
mkdir -p "$WGETDIR" "$GNUPGHOME"
fi
# starting xsession
if [ -z "$DISPLAY" ] && [ "$(tty)" = "/dev/tty1" ]; then
sh "$HOME/.config/sway/winitrc" &>/dev/null
logout
fi

View file

@ -1,231 +0,0 @@
## ____ __
## / __ \_________ _/ /_____
## / / / / ___/ __ `/ //_/ _ \
## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake)
## /_____/_/ \__,_/_/|_|\___/ My custom bash config
##
### EXPORT ###
export TERM="xterm-256color" # getting proper colors
export HISTCONTROL=ignoredups:erasedups # no duplicate entries
### "bat" as manpager
export PAGER="bat -p"
# use bash-completion, if available
[[ $PS1 && -f /usr/share/bash-completion/bash_completion ]] && \
. /usr/share/bash-completion/bash_completion
# if not running interactively, don't do anything
[[ $- != *i* ]] && return
### SET VI MODE ###
# Comment this line out to enable default emacs-like bindings
set -o vi
bind -m vi-command 'Control-l: clear-screen'
bind -m vi-insert 'Control-l: clear-screen'
### PATH ###
if [ -d "$HOME/.bin" ] ;
then PATH="$HOME/.bin:$PATH"
fi
if [ -d "$HOME/.local/bin" ] ;
then PATH="$HOME/.local/bin:$PATH"
fi
if [ -d "$HOME/Applications" ] ;
then PATH="$HOME/Applications:$PATH"
fi
### CHANGE TITLE OF TERMINALS ###
case ${TERM} in
xterm*|rxvt*|Eterm*|aterm|kterm|gnome*|alacritty|st|konsole*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\007"'
;;
screen*)
PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/\~}\033\\"'
;;
esac
### SHOPT ###
shopt -s autocd # change to named directory
shopt -s cdspell # autocorrects cd misspellings
shopt -s cmdhist # save multi-line commands in history as single line
shopt -s dotglob
shopt -s histappend # do not overwrite history
shopt -s expand_aliases # expand aliases
shopt -s checkwinsize # checks term size when bash regains control
# ignore upper and lowercase when TAB completion
bind "set completion-ignore-case on"
# sudo not required for some system commands
for command in cryptsetup mount umount poweroff reboot ; do
alias $command="sudo $command"
done; unset command
### ARCHIVE EXTRACTION ###
# usage: ex <file>
ex ()
{
if [ -f "$1" ] ; then
case $1 in
*.tar.bz2) tar xjf "$1" ;;
*.tar.gz) tar xzf "$1" ;;
*.bz2) bunzip2 "$1" ;;
*.rar) unrar x "$1" ;;
*.gz) gunzip "$1" ;;
*.tar) tar xf "$1" ;;
*.tbz2) tar xjf "$1" ;;
*.tgz) tar xzf "$1" ;;
*.zip) unzip "$1" ;;
*.Z) uncompress "$1";;
*.7z) 7zz x "$1" ;;
*.deb) ar x "$1" ;;
*.tar.xz) tar xf "$1" ;;
*.tar.zst) unzstd "$1" ;;
*) echo "'$1' cannot be extracted via ex()" ;;
esac
else
echo "'$1' is not a valid file"
fi
}
### ALIASES ###
# navigation
up () {
local d=""
local limit="$1"
# Default to limit of 1
if [ -z "$limit" ] || [ "$limit" -le 0 ]; then
limit=1
fi
for ((i=1;i<=limit;i++)); do
d="../$d"
done
# perform cd. Show error if cd fails
if ! cd "$d"; then
echo "Couldn't go up $limit dirs.";
fi
}
# cd
alias \
..="cd .." \
.2="cd ../.." \
.3="cd ../../.." \
.4="cd ../../../.." \
.5="cd ../../../../.."
# bat as cat
[ -x "$(command -v bat)" ] && alias cat="bat"
# use lunarvim for vim if present.
[ -x "$(command -v $HOME/.local/bin/lvim)" ] && alias vim="$HOME/.local/bin/lvim"
# Changing "ls" to "eza"
alias \
ls="eza --icons -al --color=always --group-directories-first" \
la="eza --icons -a --color=always --group-directories-first" \
ll="eza --icons -l --color=always --group-directories-first" \
lt="eza --icons -aT --color=always --group-directories-first" \
l.='eza --icons -a | grep -E "^\."'
# function to detect os and assign aliases to package managers
alias \
xb-up="sudo xbps-install -Su && xcheckrestart" \
xb-get="sudo xbps-install -S" \
xb-rmv="sudo xbps-remove -R" \
xb-rmv-sec="sudo xbps-remove" \
xb-qry="sudo xbps-query -Rs" \
xb-cln="sudo xbps-remove -Oo"
# colorize grep output (good for log files)
alias \
grep="grep --color=auto" \
egrep="egrep --color=auto" \
fgrep="fgrep --color=auto"
# git
alias \
git-adu="git add -u" \
git-adl="git add ." \
git-brn="git branch" \
git-chk="git checkout" \
git-cln="git clone" \
git-cmt="git commit -m" \
git-fth="git fetch" \
git-pll="git pull origin" \
git-psh="git push origin" \
git-sts="git status" \
git-tag="git tag" \
git-ntg="git tag -a"
# adding flags
alias \
df="df -h" \
free="free -m"
# multimedia scripts
alias \
fli="flix-cli" \
ani="ani-cli" \
aniq="ani-cli -q"
# audio
alias \
mx="pulsemixer" \
mk="cmus" \
ms="cmus" \
music="cmus"
# power management
alias \
po="loginctl poweroff" \
sp="loginctl suspend" \
rb="loginctl reboot"
# file management
alias \
fm="vifm" \
flm="vifm" \
rm="rm -vI" \
mv="mv -iv" \
cp="cp -iv" \
mkd="mkdir -pv"
# ps
alias \
psa="ps auxf" \
psgrep="ps aux | grep -v grep | grep -i -e VSZ -e" \
psmem="ps auxf | sort -nr -k 4" \
pscpu="ps auxf | sort -nr -k 3"
# youtube
alias \
yta-aac="yt-dlp --extract-audio --audio-format aac" \
yta-best="yt-dlp --extract-audio --audio-format best" \
yta-flac="yt-dlp --extract-audio --audio-format flac" \
yta-m4a="yt-dlp --extract-audio --audio-format m4a" \
yta-mp3="yt-dlp --extract-audio --audio-format mp3" \
yta-opus="yt-dlp --extract-audio --audio-format opus" \
yta-vorbis="yt-dlp --extract-audio --audio-format vorbis" \
yta-wav="yt-dlp --extract-audio --audio-format wav" \
ytv-best="yt-dlp -f bestvideo+bestaudio" \
yt="ytfzf -ftsl" \
ytm="ytfzf -mtsl"
# network and bluetooth
alias \
netstats="nmcli dev" \
wfi="nmtui-connect" \
wfi-scan="nmcli dev wifi rescan && nmcli dev wifi list" \
wfi-edit="nmtui-edit" \
wfi-on="nmcli radio wifi on" \
wfi-off="nmcli radio wifi off" \
blt="bluetoothctl"
# starship prompt
eval "$(starship init bash)"

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

View file

@ -1,11 +0,0 @@
[Filechooser Settings]
LocationMode=path-bar
ShowHidden=false
ShowSizeColumn=true
GeometryX=0
GeometryY=0
GeometryWidth=780
GeometryHeight=585
SortColumn=name
SortOrder=ascending
StartupMode=recent

View file

@ -1,129 +0,0 @@
-- neovide options
vim.o.guifont = "mononoki Nerd Font:h14"
vim.g.neovide_hide_mouse_when_typing = true
vim.g.neovide_input_macos_alt_is_meta = true
vim.g.neovide_hide_mouse_when_typing = false
vim.g.neovide_refresh_rate = 60
vim.g.neovide_refresh_rate_idle = 5
vim.g.neovide_no_idle = true
vim.g.neovide_confirm_quit = true
vim.g.neovide_input_use_logo = true
vim.g.neovide_cursor_antialiasing = true
vim.g.neovide_cursor_animate_in_insert_mode = true
vim.g.neovide_cursor_vfx_mode = "pixiedust"
vim.g.neovide_cursor_vfx_particle_speed = 20.0
vim.g.neovide_padding_top = 0
vim.g.neovide_padding_bottom = 0
vim.g.neovide_padding_right = 0
vim.g.neovide_padding_left = 0
-- Helper function for transparency formatting
local alpha = function()
return string.format("%x", math.floor(255 * (vim.g.transparency or 0.98)))
end
vim.g.neovide_transparency = 0.98
vim.g.transparency = 0.98
vim.g.neovide_background_color = "#1d2021" .. alpha()
-- nvim options
vim.opt.shiftwidth = 4
vim.opt.tabstop = 4
vim.opt.relativenumber = true
vim.cmd('autocmd FileType markdown setlocal nospell')
vim.opt.wrap = true -- wrap lines
vim.opt.spell = false
vim.o.shell = '/usr/bin/bash'
vim.o.autochdir = true
vim.cmd('autocmd BufEnter * lcd %:p:h')
-- general
lvim.use_icons = true
lvim.log.level = "info"
lvim.format_on_save = {
enabled = true,
pattern = "*.lua",
timeout = 1000,
}
-- change theme settings
lvim.colorscheme = "gruvbox"
lvim.transparent_window = false
lvim.builtin.alpha.active = true
lvim.builtin.alpha.mode = "dashboard"
lvim.builtin.terminal.active = true
lvim.builtin.nvimtree.setup.view.side = "left"
lvim.builtin.nvimtree.setup.renderer.icons.show.git = false
-- automatically install missing parsers when entering buffer
lvim.builtin.treesitter.auto_install = true
-- additional Plugins
lvim.plugins = {
{ "lunarvim/colorschemes" },
{ "ellisonleao/gruvbox.nvim" },
{ "puremourning/vimspector" },
{ "SirVer/ultisnips" },
{ "CRAG666/code_runner.nvim" },
}
-- configuring colorscheme
require("gruvbox").setup({
undercurl = true,
underline = true,
bold = false,
italic = {
strings = true,
comments = true,
operators = false,
folds = true,
},
strikethrough = true,
invert_selection = false,
invert_signs = false,
invert_tabline = false,
invert_intend_guides = false,
inverse = true, -- invert background for search, diffs, statuslines and errors
contrast = "hard", -- can be "hard", "soft" or empty string
palette_overrides = {},
overrides = {},
dim_inactive = false,
transparent_mode = false,
})
-- vimspector options
vim.g.vimspector_enable_mappings = 'HUMAN'
vim.g.vimspector_enable_mappings_for_mode = {
['<leader><leader>'] = { 'n', 'v' },
}
-- code runner options
require('code_runner').setup({
filetype = {
java = {
"cd $dir &&",
"javac $fileName &&",
"java $fileNameWithoutExt"
},
python = "python3 -u",
typescript = "deno run",
rust = {
"cd $dir &&",
"rustc $fileName &&",
"$dir/$fileNameWithoutExt"
},
cs = {
"cd '$dir' &&",
"dotnet run"
}
},
})
lvim.keys.normal_mode["<leader>r"] = ":RunCode<CR>"
lvim.keys.normal_mode["<leader>rf"] = ":RunFile<CR>"
lvim.keys.normal_mode["<leader>rft"] = ":RunFile tab<CR>"
lvim.keys.normal_mode["<leader>rp"] = ":RunProject<CR>"
lvim.keys.normal_mode["<leader>rc"] = ":RunClose<CR>"
lvim.keys.normal_mode["<leader>crf"] = ":CRFiletype<CR>"
lvim.keys.normal_mode["<leader>crp"] = ":CRProjects<CR>"

View file

@ -1,118 +0,0 @@
print_info() {
prin " "
prin "┌─────────\n Hardware Information \n─────────┐"
info " 󰟀 " model
info " 󰍛 " cpu
info " 󰘚 " gpu
info " 󰍛 " memory
info " 󱑆 " uptime
prin "├─────────\n Software Information \n─────────┤"
info " 󰌽 " distro
info "  " kernel
info " 󰏖 " packages
info " 󰧨 " wm
info " 󰆍 " shell
info " 󰉼 " theme
info "  " icons
info " 󰝚 " song
# [[ "$player" ]] && prin "Music Player" "$player"
# info "  " local_ip
# info "  " public_ip
# info "  " locale # This only works on glibc systems.
prin "└───────────────────────────────────────┘"
info cols
prin "\n \n \n \n \n ${cl3} \n \n ${cl5} \n \n ${cl2} \n \n ${cl6} \n \n ${cl4} \n \n ${cl1} \n \n ${cl7} \n \n ${cl0}"
}
kernel_shorthand="on"
distro_shorthand="off"
os_arch="off"
uptime_shorthand="on"
memory_percent="on"
package_managers="on"
shell_path="off"
shell_version="on"
speed_type="bios_limit"
speed_shorthand="on"
cpu_brand="off"
cpu_speed="off"
cpu_cores="logical"
cpu_temp="off"
gpu_brand="off"
gpu_type="all"
refresh_rate="on"
gtk_shorthand="on"
gtk2="on"
gtk3="on"
public_ip_host="http://ident.me"
public_ip_timeout=2
disk_show=('/')
music_player="cmus"
song_format="%artist% - %title%"
song_shorthand="off"
colors=(distro)
bold="on"
underline_enabled="on"
underline_char="-"
separator="  "
color_blocks="off"
block_range=(0 15) # Colorblocks
# Colors for custom colorblocks
magenta="\033[1;35m"
green="\033[1;32m"
white="\033[1;37m"
blue="\033[1;34m"
red="\033[1;31m"
black="\033[1;40;30m"
yellow="\033[1;33m"
cyan="\033[1;36m"
reset="\033[0m"
bgyellow="\033[1;43;33m"
bgwhite="\033[1;47;37m"
cl0="${reset}"
cl1="${magenta}"
cl2="${green}"
cl3="${white}"
cl4="${blue}"
cl5="${red}"
cl6="${yellow}"
cl7="${cyan}"
cl8="${black}"
cl9="${bgyellow}"
cl10="${bgwhite}"
block_width=4
block_height=1
bar_char_elapsed="-"
bar_char_total="="
bar_border="on"
bar_length=15
bar_color_elapsed="distro"
bar_color_total="distro"
cpu_display="on"
memory_display="on"
battery_display="on"
disk_display="on"
image_backend="chafa"
image_source="$HOME/.config/neofetch/img1.png"
image_size="320px"
image_loop="off"
aascii_distro="auto"
ascii_colors=(distro)
ascii_bold="on"
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
crop_mode="normal"
crop_offset="center"
gap=2
yoffset=0
xoffset=0
stdout="off"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

View file

@ -1,154 +0,0 @@
http://static.fsf.org/fsforg/rss/news.xml "~FSF News"
http://static.fsf.org/fsforg/rss/blogs.xml "~FSF Blogs"
https://fsfe.org/news/news.en.rss "~FSFE News"
https://dot.kde.org/rss.xml "~KDE Dot News"
https://planet.kde.org/global/atom.xml "~Planet KDE"
https://pointieststick.com/feed/ "~This Week on KDE"
https://www.kdeblog.com/rss "~KDE Blog"
https://thisweek.gnome.org/index.xml "~This Week on GNOME"
https://www.omgubuntu.co.uk/feed "~OMG!Ubuntu"
https://www.omglinux.com/feed "~OMG!Linux"
https://blog.thunderbird.net/feed/ "~The Thunderbird Blog"
https://thelinuxexp.com/feed.xml "~The Linux Experiment"
https://techhut.tv/feed/ "~TechHut Media"
https://itsfoss.com/rss/ "~Its FOSS!"
https://thelinuxcast.org/feed/feed.xml "~The Linux Cast"
https://9to5linux.com/feed/atom "~9to5Linux"
https://blog.elementary.io/feed.xml "~elementary OS Blog"
https://blog.zorin.com/index.xml "~Zorin OS Blog"
http://blog.linuxmint.com/?feed=rss2 "~Linux Mint Blog"
https://www.gamingonlinux.com/article_rss.php "~Gaming on linux"
https://hackaday.com/blog/feed/ "~Hackaday"
https://linux.softpedia.com/backend.xml "~Softpedia Linux"
https://www.phoronix.com/rss.php "~Phoronix"
https://www.computerworld.com/index.rss "~Computerworld"
https://betanews.com/feed "~Betanews Linux"
http://lxer.com/module/newswire/headlines.rss "~Lxer"
https://theevilskeleton.gitlab.io/feed.xml "~TheEvilSkeleton"
https://tutanota.com/blog/feed.xml "~Tutanota Blogs"
https://techcrunch.com/feed/ "~TechCrunch"
http://www.techradar.com/rss "~TechRadar"
https://www.zdnet.com/news/rss.xml "~ZDNET - News"
https://c3po.website/rss/ "~Blog de C3PO"
https://thecheis.com/feed/ "~THE_CHEI$"
http://yro.slashdot.org/yro.rss "~Slashdot: Your Rights Online"
https://freedom-to-tinker.com/feed/rss/ "~Freedom to Tinker"
https://act.eff.org/action.atom "~EFF - Action Center"
https://www.eff.org/rss/updates.xml "~EFF - Updates"
https://victorhckinthefreeworld.com/feed/ "~Victorhck in the free world"
https://inv.vern.cc/feed/channel/UC-ErgHYY0_Yjhjz2MN1E1lg "~YT - RETRO Hardware"
https://inv.vern.cc/feed/channel/UC05XpvbHZUQOfA6xk4dlmcw "~YT - DJ Ware"
https://inv.vern.cc/feed/channel/UC0W_BIuwk8D0Bv4THbVZZOQ "~YT - Surveillance Report"
https://inv.vern.cc/feed/channel/UC1D3yD4wlPMico0dss264XA "~YT - NileBlue"
https://inv.vern.cc/feed/channel/UC1_uAIS3r8Vu6JjXWvastJg "~YT - Mathologer"
https://inv.vern.cc/feed/channel/UC1s1OsWNYDFgbROPV-q5arg "~YT - Michael Horn"
https://inv.vern.cc/feed/channel/UC1yGcBvdPGxRIMT1yo_bKIQ "~YT - Jake@Linux"
https://inv.vern.cc/feed/channel/UC2WHjPDvbE6O328n17ZGcfg "~YT - ForrestKnight"
https://inv.vern.cc/feed/channel/UC2eYFnH61tmytImy1mTYvhA "~YT - Luke Smith"
https://inv.vern.cc/feed/channel/UC3jSNmKWYA04R47fDcc1ImA "~YT - InfinitelyGalactic"
https://inv.vern.cc/feed/channel/UC3yaWWA9FF9OBog5U9ml68A "~YT - SavvyNik"
https://inv.vern.cc/feed/channel/UC5I2hjZYiW9gZPVkvzM8_Cw "~YT - Techmoan"
https://inv.vern.cc/feed/channel/UC5KDiSAFxrDWhmysBcNqtMA "~YT - Eric Murphy"
https://inv.vern.cc/feed/channel/UC5UAwBUum7CPN5buc-_N1Fw "~YT - The Linux Experiment"
https://inv.vern.cc/feed/channel/UC5nlKFUNoskvV5XdW6PbgYw "~YT - A Well-Rested Dog"
https://inv.vern.cc/feed/channel/UC6WOxrSKLW8VagrNkfvi6EQ "~YT - THE SQUIDD"
https://inv.vern.cc/feed/channel/UC6biysICWOJ-C3P4Tyeggzg "~YT - Low Level Learning"
https://inv.vern.cc/feed/channel/UC7YOGHUfC1Tb6E4pudI9STA "~YT - Mental Outlaw"
https://inv.vern.cc/feed/channel/UC7qPftDWPw9XuExpSgfkmJQ "~YT - Nostalgia Nerd"
https://inv.vern.cc/feed/channel/UC8ENHE5xdFSwx71u3fDH5Xw "~YT - ThePrimeagen"
https://inv.vern.cc/feed/channel/UC8uT9cgJorJPWu7ITLGo9Ww "~YT - The 8-Bit Guy"
https://inv.vern.cc/feed/channel/UC9-y-6csu5WGm29I7JiwpnA "~YT - Computerphile"
https://inv.vern.cc/feed/channel/UC910yxBmXzGDH_2cx0XE0Xw "~YT - Plano de Juego"
https://inv.vern.cc/feed/channel/UC9RM-iSvTu1uPJb8X5yp3EQ "~YT - Wendover Productions"
https://inv.vern.cc/feed/channel/UC9bORzxOWiewqMXxkmhAwAg "~YT - Gingy"
https://inv.vern.cc/feed/channel/UC9lE09jxmMgMoG13WrNHPmA "~YT - World of Tanks Blitz"
https://inv.vern.cc/feed/channel/UCAYKj_peyESIMDp5LtHlH2A "~YT - unfa"
https://inv.vern.cc/feed/channel/UCAiEWppTvoNSHU939xhMb2g "~YT - hoser"
https://inv.vern.cc/feed/channel/UCAiiOTio8Yu69c3XnR7nQBQ "~YT - System Crafters"
https://inv.vern.cc/feed/channel/UCBq5p-xOla8xhnrbhu8AIAg "~YT - Tech Over Tea"
https://inv.vern.cc/feed/channel/UCCIHOP7e271SIumQgyl6XBQ "~YT - OldTechBloke"
https://inv.vern.cc/feed/channel/UCE0H52NoucHL2JkhPdZ1ykA "~YT - Jwlar"
https://inv.vern.cc/feed/channel/UCEFymXY4eFCo_AchSpxwyrg "~YT - MetalJesusRocks"
https://inv.vern.cc/feed/channel/UCEp20NgOZHmgWdbQdHSxgjw "~YT - This Does Not Compute"
https://inv.vern.cc/feed/channel/UCFhXFikryT4aFcLkLw2LBLA "~YT - NileRed"
https://inv.vern.cc/feed/channel/UCGE-JpLbibXJg3W_N2hbo8g "~YT - Sethorven"
https://inv.vern.cc/feed/channel/UCH5DsMZAgdx5Fkk9wwMNwCA "~YT - The New Oil"
https://inv.vern.cc/feed/channel/UCHnyfMqiRRG1u-2MsSQLbXA "~YT - Veritasium"
https://inv.vern.cc/feed/channel/UCIFzjAer2W9gTWVECZgtDzg "~YT - GaryH Tech"
https://inv.vern.cc/feed/channel/UCJ0-OtVpF0wOKEqT2Z1HEtA "~YT - ElectroBOOM"
https://inv.vern.cc/feed/channel/UCJYJgj7rzsn0vdR7fkgjuIA "~YT - styropyro"
https://inv.vern.cc/feed/channel/UCLEoyoOKZK0idGqSc6Pi23w "~YT - RMC - The Cave"
https://inv.vern.cc/feed/channel/UCLx053rWZxCiYWsBETgdKrQ "~YT - LGR"
https://inv.vern.cc/feed/channel/UCMbQbVilo-nezMvwf1BZfAA "~YT - CienciaDeSofa"
https://inv.vern.cc/feed/channel/UCMiyV_Ib77XLpzHPQH_q0qQ "~YT - Veronica Explains"
https://inv.vern.cc/feed/channel/UCNvl_86ygZXRuXjxbONI5jA "~YT - 10leej"
https://inv.vern.cc/feed/channel/UCNzszbnvQeFzObW0ghk0Ckw "~YT - Dave's Garage"
https://inv.vern.cc/feed/channel/UCONH73CdRXUjlh3-DdLGCPw "~YT - Nicco Loves Linux"
https://inv.vern.cc/feed/channel/UCOSSzBN8e3JHOxvltQbf_mQ "~YT - Jack Keifer"
https://inv.vern.cc/feed/channel/UCOxmlaJURX3nq8eLuJPbl3A "~YT - Psivewri"
https://inv.vern.cc/feed/channel/UCP5tjEmvPItGyLhmjdwP7Ww "~YT - RealLifeLore"
https://inv.vern.cc/feed/channel/UCQ-W1KE9EYfdxhL6S4twUNw "~YT - The Cherno"
https://inv.vern.cc/feed/channel/UCQX_MZRCaluNKxkywkLEgfA "~YT - Date un Vlog"
https://inv.vern.cc/feed/channel/UCS-WzPVpAAli-1IfEG2lN8A "~YT - Michael MJD"
https://inv.vern.cc/feed/channel/UCS0N5baNlQWJCUrhCEo8WlA "~YT - Ben Eater"
https://inv.vern.cc/feed/channel/UCS97tchJDq17Qms3cux8wcA "~YT - chris@machine"
https://inv.vern.cc/feed/channel/UCSju5G2aFaWMqn-_0YBtq5A "~YT - Stand-up Maths"
https://inv.vern.cc/feed/channel/UCSuHzQ3GrHSzoBbwrIq3LLA "~YT - NBTV, with Naomi Brockwell"
https://inv.vern.cc/feed/channel/UCTNj4UtgopYu5T8ew8WZPuw "~YT - Cat and Andrew"
https://inv.vern.cc/feed/channel/UCUMwY9iS8oMyWDYIe6_RmoA "~YT - No Boilerplate"
https://inv.vern.cc/feed/channel/UCUyeluBRhGPCW4rPe_UvBZQ "~YT - ThePrimeTime"
https://inv.vern.cc/feed/channel/UCVls1GmFKf6WlTraIb_IaJg "~YT - DistroTube"
https://inv.vern.cc/feed/channel/UCW-HHEyt67RhZ6q21n4p2zQ "~YT - Mac84"
https://inv.vern.cc/feed/channel/UCW0gH2G-cMKAEjEkI4YhnPA "~YT - Nerd of the Rings"
https://inv.vern.cc/feed/channel/UCWyrVfwRL-2DOkzsqrbjo5Q "~YT - NCommander"
https://inv.vern.cc/feed/channel/UCX_WM2O-X96URC5n66G-hvw "~YT - EF - Linux Made Simple"
https://inv.vern.cc/feed/channel/UCYO_jab_esuFRV4b17AJtAw "~YT - 3Blue1Brown"
https://inv.vern.cc/feed/channel/UCYVU6rModlGxvJbszCclGGw "~YT - Rob Braxman Tech"
https://inv.vern.cc/feed/channel/UCa6V1UVOXN4wDm7RDQDoa6g "~YT - El Traductor de Ingeniería"
https://inv.vern.cc/feed/channel/UCbdSYaPD-lr1kW27UJuk8Pw "~YT - QuantumFracture"
https://inv.vern.cc/feed/channel/UCbiGcwDWZjz05njNPrJU7jA "~YT - ExplainingComputers"
https://inv.vern.cc/feed/channel/UCcf2Mr1qNoX51XXDUd3Rquw "~YT - ByteSeb"
https://inv.vern.cc/feed/channel/UCd4XwUn2Lure2NHHjukoCwA "~YT - Linux For Everyone"
https://inv.vern.cc/feed/channel/UCeHOkFGW-7uAZFvq3BXb8YA "~YT - :3ildcat"
https://inv.vern.cc/feed/channel/UCerEIdrEW-IqwvlH8lTQUJQ "~YT - Tech Tangents"
https://inv.vern.cc/feed/channel/UCg6gPGh8HU2U01vaFCAsvmQ "~YT - Chris Titus Tech"
https://inv.vern.cc/feed/channel/UCgkyQiY_Q5AlrygIXGWO2Zw "~YT - Tux Traveler"
https://inv.vern.cc/feed/channel/UChI0q9a-ZcbZh7dAu_-J-hg "~YT - Upper Echelon"
https://inv.vern.cc/feed/channel/UCj8orMezFWVcoN-4S545Wtw "~YT - Max Derrat"
https://inv.vern.cc/feed/channel/UCjFaPUcJU1vwk193mnW_w1w "~YT - Modern Vintage Gamer"
https://inv.vern.cc/feed/channel/UCjSEJkpGbcZhvo0lr-44X_w "~YT - TechHut"
https://inv.vern.cc/feed/channel/UCjgS6Uyg8ok4Jd_lH_MUKgg "~YT - Claus Kellerman"
https://inv.vern.cc/feed/channel/UCl2mFZoRqjw_ELax4Yisf6w "~YT - Louis Rossmann"
https://inv.vern.cc/feed/channel/UCl8XUDjAOLc7GNKcDp9Nepg "~YT - Locos por Linux"
https://inv.vern.cc/feed/channel/UClVi5MQZ6T0InZYT7oFs6wg "~YT - Mumbling Hugo"
https://inv.vern.cc/feed/channel/UCl_dlV_7ofr4qeP1drJQ-qg "~YT - Tantacrul"
https://inv.vern.cc/feed/channel/UCld68syR8Wi-GY_n4CaoJGA "~YT - Brodie Robertson"
https://inv.vern.cc/feed/channel/UCmw-QGOHbHA5cDAvwwqUTKQ "~YT - Zaney"
https://inv.vern.cc/feed/channel/UCmyGZ0689ODyReHw3rsKLtQ "~YT - Michael Tunnell"
https://inv.vern.cc/feed/channel/UCnIfca4LPFVn8-FjpPVc1ow "~YT - Fedora Project"
https://inv.vern.cc/feed/channel/UCnw3aIEiz60S6O3XcztCVkQ "~YT - PatricianTV"
https://inv.vern.cc/feed/channel/UCoL8olX-259lS1N6QPyP4IQ "~YT - Action Retro"
https://inv.vern.cc/feed/channel/UCoryWpk4QVYKFCJul9KBdyw "~YT - Switched to Linux"
https://inv.vern.cc/feed/channel/UCoxcjq-8xIDTYp3uz647V5A "~YT - Numberphile"
https://inv.vern.cc/feed/channel/UCpuKDBw8IVIdKWPhiB2VDNQ "~YT - Cinematix"
https://inv.vern.cc/feed/channel/UCpuLiczP2Aqq11Gtf4k_fkw "~YT - Futurasound Productions"
https://inv.vern.cc/feed/channel/UCqxM9T6ksiOVKIkb88S2r7Q "~YT - Zac Builds"
https://inv.vern.cc/feed/channel/UCrkPsvLGln62OMZRO6K-llg "~YT - Nick Chapsas"
https://inv.vern.cc/feed/channel/UCs6KfncB4OV6Vug4o_bzijg "~YT - Techlore"
https://inv.vern.cc/feed/channel/UCs7nPQIEba0T3tGOWWsZpJQ "~YT - Like Stories of Old"
https://inv.vern.cc/feed/channel/UCsBjURrPoezykLs9EqgamOA "~YT - Fireship"
https://inv.vern.cc/feed/channel/UCsnGwSIHyoYN0kiINAGUKxg "~YT - Wolfgang's Channel"
https://inv.vern.cc/feed/channel/UCtMVHI3AJD4Qk4hcbZnI9ZQ "~YT - SomeOrdinaryGamers"
https://inv.vern.cc/feed/channel/UCvFGf8HZGZWFzpcDCqb3Lhw "~YT - All Things Secured"
https://inv.vern.cc/feed/channel/UCvjgXvBlbQiydffZU7m1_aw "~YT - The Coding Train"
https://inv.vern.cc/feed/channel/UCwEEjrUYHDyQsYPTQdNVacg "~YT - Jacob Pradels"
https://inv.vern.cc/feed/channel/UCwGX2cE21VPBEJ49hcprP9w "~YT - SupraPixel"
https://inv.vern.cc/feed/channel/UCxQKHvKbmSzGMvUrVtJYnUA "~YT - Learn Linux TV"
https://inv.vern.cc/feed/channel/UCxkw-TfCK1t1VKxfHwPzD6w "~YT - Our Walk in Christ"
https://inv.vern.cc/feed/channel/UCy0tKL1T7wFoYcxCe0xjN6Q "~YT - Technology Connections"
https://inv.vern.cc/feed/channel/UCybBViio_TH_uiFFDJuz5tg "~YT - Einzelgänger"
https://inv.vern.cc/feed/channel/UCylGUf9BvQooEFjgdNudoQg "~YT - The Linux Cast"
https://inv.vern.cc/feed/channel/UCz1oFxMrgrQ82-276UCOU9w "~YT - Atlas Pro"
https://inv.vern.cc/feed/channel/UCzGMBzt6UOMoQe_dqOfShZw "~YT - Cultura VJ"
https://inv.vern.cc/feed/channel/UCzXsTSZDoAPSjfHr8IZM9Ew "~YT - FloatyMonkey"

View file

@ -1,15 +0,0 @@
exec {
/usr/libexec/polkit-gnome-authentication-agent-1
echo 25 > $SWAYSOCK.wob
hash dbus-update-activation-environment 2>/dev/null && dbus-update-activation-environment DISPLAY WAYLAND_DISPLAY SWAYSOCK
bash -c ~/.config/sway/pipeinit
mako -c ~/.config/mako/config
swayidle -w \
timeout 300 'swaylock -f -i "$HOME/.config/sway/wallpaper/locked.*"' \
timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \
before-sleep 'swaylock -f -i "$HOME/.config/sway/wallpaper/locked.*"'
wl-paste --type text --watch cliphist store
wl-paste --type image --watch cliphist store
}
bar swaybar_command waybar

View file

@ -1,3 +0,0 @@
output * {
bg ~/.config/sway/wallpaper/background.* fill
}

View file

@ -1,9 +0,0 @@
#!/bin/sh
pkill pipewire
pkill pipewire-pulse
pkill wireplumber
pipewire &
pipewire-pulse &
wireplumber &

Binary file not shown.

Before

Width:  |  Height:  |  Size: 717 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 717 KiB

View file

@ -1,15 +0,0 @@
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run.
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
#
XDG_DESKTOP_DIR="$HOME/var/desktop"
XDG_DOWNLOAD_DIR="$HOME/var/downloads"
XDG_TEMPLATES_DIR="$HOME/media/templates"
XDG_PUBLICSHARE_DIR="$HOME/var/public"
XDG_DOCUMENTS_DIR="$HOME/media/documents"
XDG_MUSIC_DIR="$HOME/media/music"
XDG_PICTURES_DIR="$HOME/media/pictures"
XDG_VIDEOS_DIR="$HOME/media/videos"

View file

@ -1,10 +0,0 @@
#!/bin/bash
currntpwr=$(powerprofilesctl get)
if [ "${currntpwr}" = "performance" ]; then
pwr="Performance 󰓅"
elif [ "${currntpwr}" = "balanced" ]; then
pwr="Balanced 󰾅"
elif [ "${currntpwr}" = "power-saver" ]; then
pwr="PowerSaver 󰾆"
fi
echo "$pwr"

View file

@ -1,244 +0,0 @@
/* Keyframes */
@keyframes blink-critical {
to {
/*color: @white;*/
background-color: @critical;
}
}
/* Styles */
/* Colors (gruvbox) */
@define-color black #1d2021;
@define-color red #cc241d;
@define-color green #98971a;
@define-color yellow #d79921;
@define-color blue #458588;
@define-color purple #b16286;
@define-color aqua #689d6a;
@define-color gray #a89984;
@define-color gray2 #504945;
@define-color orange #d65d0e;
@define-color brgray #928374;
@define-color brred #fb4934;
@define-color brgreen #b8bb26;
@define-color bryellow #fabd2f;
@define-color brblue #83a598;
@define-color brpurple #d3869b;
@define-color braqua #8ec07c;
@define-color brorange #fe8019;
@define-color brwhite #f9f5d7;
@define-color white #fbf1c7;
@define-color bg2 #3c3836;
@define-color warning @bryellow;
@define-color critical @red;
@define-color mode @red;
@define-color unfocused @bg2;
@define-color focused @red;
@define-color inactive @purple;
@define-color clock #427b58;
@define-color network #9d0006;
@define-color language #8f3f71;
@define-color battery #79740e;
@define-color volume #076678;
@define-color backlight #b57614;
@define-color powerprof #af3a03;
/* Reset all styles */
* {
border: none;
border-radius: 0;
min-height: 0;
margin: 0;
padding: 0;
box-shadow: none;
text-shadow: none;
icon-shadow: none;
}
/* The whole bar */
#waybar {
background: @black; /* #282828e0 */
color: @white;
font-family: Mononoki Nerd Font;
font-size: 16px;
}
button {
box-shadow: inset 0 -3px transparent;
border: none;
border-radius: 0;
}
/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
button:hover {
background: inherit;
}
/* Workspaces stuff */
#workspaces button {
/*font-weight: bold;*/
font-family: Symbols Nerd Font Mono;
font-size: 18px;
padding-left: 2pt;
padding-right: 2pt;
color: @white;
background: @black;
}
/* Inactive (on unfocused output) */
#workspaces button.visible {
color: @white;
background: @black;
}
/* Active (on focused output) */
#workspaces button.focused {
color: @white;
background: @focused;
}
/* Contains an urgent window */
#workspaces button.urgent {
color: @black;
background: @warning;
}
/* Style when cursor is on the button */
#workspaces button:hover {
background: @black;
color: @white;
}
#mode {
background-color: @red;
border-bottom: 3px solid @white;
}
#clock,
#custom-powerprofiles,
#battery,
#backlight,
#network,
#pulseaudio,
#language,
#mode {
font-family: Symbols Nerd Font Mono, mononoki Nerd Font;
font-size: 16px;
padding-left: 8pt;
padding-right: 8pt;
color: @white;
}
#window,
#workspaces {
margin: 0 4px;
}
/* If workspaces is the leftmost module, omit left margin */
.modules-left > widget:first-child > #workspaces {
margin-left: 0;
}
/* If workspaces is the rightmost module, omit right margin */
.modules-right > widget:last-child > #workspaces {
margin-right: 0;
}
#battery.charging,
#battery.plugged {
background-color: @battery;
}
#battery.critical:not(.charging),
#battery.critical.discharging {
animation-timing-function: linear;
animation-iteration-count: infinite;
animation-direction: alternate;
animation-name: blink-critical;
animation-duration: 1s;
}
label:focus {
background-color: @white;
}
#clock {
background-color: @clock;
}
#battery {
background-color: @battery;
}
#backlight {
background-color: @backlight;
}
#network {
background-color: @network;
}
#network.disconnected {
background-color: @network;
}
#pulseaudio {
background-color: @volume;
}
#pulseaudio.muted {
background-color: @volume;
}
#language {
background-color: @language;
}
#custom-powerprofiles {
background-color: @powerprof;
}
#custom-arrow1 {
font-size: 22px;
background: @black;
color: @language;
}
#custom-arrow2 {
font-size: 22px;
background: @language;
color: @volume;
}
#custom-arrow3 {
font-size: 22px;
background: @volume;
color: @backlight;
}
#custom-arrow4 {
font-size: 22px;
background: @backlight;
color: @battery;
}
#custom-arrow5 {
font-size: 22px;
background: @battery;
color: @powerprof;
}
#custom-arrow6 {
font-size: 22px;
background: @powerprof;
color: @network;
}
#custom-arrow7 {
font-size: 22px;
background: @network;
color: @clock;
}

View file

@ -1,33 +0,0 @@
local wezterm = require 'wezterm'
local gpus = wezterm.gui.enumerate_gpus()
return {
enable_wayland = true,
font = wezterm.font {
family = 'mononoki Nerd Font',
weight = 'Medium'
},
color_scheme = 'Gruvbox dark, hard (base16)',
default_prog = { '/usr/bin/fish' },
default_cursor_style = "BlinkingUnderline",
font_size = 14,
check_for_updates = false,
use_dead_keys = false,
warn_about_missing_glyphs = false,
enable_kitty_graphics = true,
animation_fps = 1,
cursor_blink_rate = 175,
hide_tab_bar_if_only_one_tab = true,
adjust_window_size_when_changing_font_size = false,
window_padding = {
left = 10,
right = 10,
top = 10,
bottom = 10,
},
use_fancy_tab_bar = false,
exit_behavior = "Close",
window_close_confirmation = 'NeverPrompt',
tab_bar_at_bottom = false,
window_background_opacity = 0.98,
}

View file

@ -1,6 +0,0 @@
#!/bin/sh
NEOVIDE="$HOME/.local/bin/neovide.AppImage"
NEOVIDE_OPTS="--neovim-bin $HOME/.local/bin/lvim"
$NEOVIDE $NEOVIDE_OPTS

View file

@ -1,5 +0,0 @@
#!/usr/bin/env bash
# clipboard script
cliphist list | $RUNNER -l 10 -p "[󱉧 Clipboard]  " | cliphist decode | wl-copy

View file

@ -1,39 +0,0 @@
#!/usr/bin/env bash
# ***This script was made by Clay Gomera (Drake)***
# - Description: A simple screenshot menu rofi script
# - Dependencies: wofi, grim, slurp
# options
option1=" Capture the screen"
option2=" Capture region"
option3=" Exit"
options="$option1\n$option2\n$option3"
# countdown
countdown() {
notify-send "Screenshot" "Executing in 3 seconds" -t 1000
sleep 1
notify-send "Screenshot" "Executing in 2 seconds" -t 1000
sleep 1
notify-send "Screenshot" "Executing in 1 seconds" -t 1000
sleep 2
}
# run
choice=$(echo -e "$options" | $RUNNER -l 3 -p "[󰄀 Screenshot]  " )
case $choice in
$option1)
countdown
grim - | wl-copy -t image/jpg
notify-send "Screenshot" "Screenshot saved to clipboard"
;;
$option2)
notify-send "Screenshot" "Select a region to capture"
grim -g "$(slurp)" - | wl-copy -t image/jpg
notify-send "Screenshot" "Region saved to clipboard"
;;
$option3)
exit 0
;;
esac

View file

@ -1,28 +0,0 @@
#!/usr/bin/env bash
# ***This script was made by Clay Gomera (Drake)***
# - Description: A simple wallpaper changer script for rofi/dmenu/wofi
# - Dependencies: {rofi||dmenu||wofi}, fd, swaybg
## WALLPAPER DIRECTORY ##
walldir="$XDG_PICTURES_DIR/Wallpapers" # wallpapers folder, change it to yours
## SELECT PICTURE ##
cd "$walldir" || exit 1
wallpaper=$(fd -p "$walldir" | $RUNNER -l 5 -i -p "[󰋩 Wallpaper Selector]  ")
if [ -n "$wallpaper" ]; then
if [[ "$wallpaper" == *.jpg ]]; then
rm -f "$HOME/.config/sway/wallpaper/"*
cp "$wallpaper" "$HOME/.config/sway/wallpaper/background.jpg"
cp "$wallpaper" "$HOME/.config/sway/wallpaper/locked.jpg"
swaymsg output \* bg "$HOME/.config/sway/wallpaper/background.jpg" fill
elif [[ "$wallpaper" == *.png ]]; then
rm -f "$HOME/.config/sway/wallpaper/"*
cp "$wallpaper" "$HOME/.config/sway/wallpaper/background.png"
cp "$wallpaper" "$HOME/.config/sway/wallpaper/locked.png"
swaymsg output \* bg "$HOME/.config/sway/wallpaper/background.png" fill
fi
else
exit 1
fi
exit 0

View file

@ -1,150 +0,0 @@
#!/usr/bin/env bash
# ***This script was made by Clay Gomera (Drake)***
# - Description: A simple wifi script for rofi/dmenu/wofi
# - Dependencies: {rofi||dmenu||wofi}, NetworkManager, io.elementary.capnet-assist
#######################
## Main manu options ##
#######################
option1=" Turn on WiFi"
option2=" Turn off WiFi"
option3="󱛅 Disconnect WiFi"
option4="󱛃 Connect WiFi"
option5="󱛆 Setup captive portal"
option6=" Exit"
options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6"
#####
## These variables will store specific
## information about the wireless
## interface
#####
wifi_info=$(nmcli dev | awk '/wifi/ {print $1,$3; exit}')
read -r wlan constate <<< "$wifi_info"
#####
## This function uses nmcli to turn
## off wifi and then sends a
## notification
#####
## param: none
## return: void
#####
turnoff() {
nmcli radio wifi off && notify-send "WiFi has been turned off";
}
#####
## This function uses nmcli to turn
## on wifi and then sends a
## notification
#####
## param: none
## return: void
#####
turnon() {
nmcli radio wifi on && notify-send "WiFi has been turned on";
}
#####
## This function uses nmcli and the
## $wlan and $constate variables to
## disconnect from the wifi network
## and then sends a notification
#####
## param: none
## return: void
#####
disconnect() {
if [ "$constate" = "disconnected" ]; then
notify-send "WiFi is already disconnected";
elif [ "$constate" = "connected" ]; then
nmcli device disconnect "$wlan" && notify-send "Wifi has been disconnected";
else
exit 1;
fi
}
#####
## This function uses nmcli to first scan
## for available networks and then the
## $bssid variable will store the SSID
## of the network that the user chooses
#####
## param: none
## return: string
#####
connect() {
notify-send "Scannig networks..." && nmcli dev wifi rescan;
wifinet=$(nmcli -f BSSID,SSID,BARS,SECURITY dev wifi list | sed -n '1!p' | $RUNNER -i -l 10 -p "[ Select a Wifi Network]  ");
bssid=$(echo "$wifinet" | cut -d' ' -f1)
ssid=$(echo "$wifinet" | cut -d' ' -f3)
}
#####
## This function will store the WiFi
## password in the $pass variable
#####
## param: none
## return: string
#####
password() {
if nmcli connection show | grep -q "$ssid"; then # check if the network is already saved
return 0; # no password is required
elif nmcli -f BSSID,SECURITY dev wifi list | sed -n '1!p' | grep "$bssid" | awk '{print $2}' | grep -q -- "--"; then # check if the network is open
return 0; # no password is required
else
pass=$($RUNNER -l 0 --password -p "[Enter Password ]  " );
if [ -n "$pass" ]; then # if the user gave a password
return 0;
else
exit 1; # if not, exit the script
fi
fi
}
#####
## This function will actually connect
## to the chosen WiFi network using the
## $bssid and $pass variables
#####
## param: none
## return: void
#####
action() {
if [ -n "$pass" ]; then # we need to check again if the $pass variable exists
nmcli dev wifi connect "$bssid" password "$pass"
else # if not, that means that the password() function ended in one of the first two conditions, the network is saved or open
nmcli dev wifi connect "$bssid";
fi
}
##########
## main ##
##########
cases=$(echo -e "$options" | $RUNNER -i -l 6 -p "[ Wifi Settings]  " ) # main menu prompt
case "$cases" in
"$option1")
turnon;
;;
"$option2")
turnoff;
;;
"$option3")
disconnect;
;;
"$option4")
if connect; then # if the user chooses a network
password; # this function will exit the script if the user didn't put a password
action;
else
exit 1; # if not, exit the script
fi
;;
"$option5")
io.elementary.capnet-assist;
;;
"$option6")
exit 0;
esac