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

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,
# your path gets massive and fish becomes very slow.
set -e fish_user_paths
set -U fish_user_paths $HOME/.local/bin /var/lib/flatpak/exports/bin/ $fish_user_paths
set -U fish_user_paths $HOME/.bin $HOME/.local/bin $HOME/.go/bin $HOME/.cargo/bin $HOME/.local/lib/flutter/bin $HOME/Applications $HOME/.local/share/JetBrains/Toolbox/scripts $HOME/.config/vifm/scripts /var/lib/flatpak/exports/bin/ $fish_user_paths
### EXPORT ###
set fish_greeting # Supresses fish's intro message
set TERM "xterm-256color" # Sets the terminal type
set EDITOR "$HOME/.local/bin/lvim"
set VISUAL "$HOME/.local/bin/neovide"
set VISUAL "wezterm start --class neovim $HOME/.local/bin/lvim"
set GOPATH "$HOME/.go"
### SET BAT AS MANPAGER
set -x PAGER "bat -p"
#set -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
### SET EITHER DEFAULT EMACS MODE OR VI MODE ###
function fish_user_key_bindings
@ -34,7 +35,6 @@ set fish_color_command brcyan
set fish_color_error '#fb4934'
set fish_color_param brcyan
### FUNCTIONS ###
# Functions needed for !! and !$
function __history_previous_command
@ -115,6 +115,12 @@ end
function take --argument number
head -$number
end
# unlock ssh keys
function unlock
ssh-add "$HOME/.ssh/$argv[1]"
end
### END OF FUNCTIONS ###
### ALIASES ###
@ -125,11 +131,17 @@ alias .3='cd ../../..'
alias .4='cd ../../../..'
alias .5='cd ../../../../..'
# emacs as vim
alias vim="$HOME/.local/bin/lvim"
# use lunarvim or neovim for vim if present.
if test -x "$HOME/.local/bin/lvim"
alias vim "$HOME/.local/bin/lvim"
else if test -x (command -v nvim)
alias vim "nvim"
end
# bat as cat
alias cat='bat'
if test -x (command -v bat)
alias cat "bat"
end
# Changing "ls" to "eza"
alias ls='eza -al --color=always --group-directories-first' # my preferred listing
@ -139,11 +151,12 @@ alias lt='eza -aT --color=always --group-directories-first' # tree listing
alias l.='eza -a | egrep "^\."'
# package management
alias pkg-update='sudo xbps-install -Suv && xcheckrestart'
alias pkg-install='sudo xbps-install -S'
alias pkg-remove='sudo xbps-remove -R'
alias pkg-search='sudo xbps-query -R'
alias pkg-clean='sudo xbps-remove -Oo'
alias pkg-update="paru -Syu"
alias pkg-install="paru -S"
alias pkg-remove="paru -Rcns"
alias pkg-remove-sec="paru -R"
alias pkg-search="paru -Ss"
alias pkg-clean="paru -Scc && paru -Rns (pacman -Qtdq)"
# Colorize grep output (good for log files)
alias grep='grep --color=auto'
@ -151,8 +164,9 @@ alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
# file management
alias fm="vifm"
alias flm="vifm"
alias fm="$HOME/.config/vifm/scripts/vifmrun"
alias flm="$HOME/.config/vifm/scripts/vifmrun"
alias vifm="$HOME/.config/vifm/scripts/vifmrun"
alias cp='cp -iv'
alias mv='mv -iv'
alias rm='rm -vI'
@ -182,22 +196,23 @@ alias psmem='ps auxf | sort -nr -k 4'
alias pscpu='ps auxf | sort -nr -k 3'
# git
alias addup='git add -u'
alias addall='git add .'
alias branch='git branch'
alias checkout='git checkout'
alias clone='git clone'
alias commit='git commit -m'
alias fetch='git fetch'
alias pull='git pull origin'
alias push='git push origin'
alias tag='git tag'
alias newtag='git tag -a'
alias git-adu='git add -u'
alias git-adl='git add .'
alias git-brn='git branch'
alias git-chk='git checkout'
alias git-cln='git clone'
alias git-cmt='git commit -m'
alias git-fth='git fetch'
alias git-pll='git pull origin'
alias git-psh='git push origin'
alias git-sts='git status'
alias git-tag='git tag'
alias git-ntg='git tag -a'
# power management
alias po='loginctl poweroff'
alias sp='loginctl suspend'
alias rb='loginctl reboot'
alias po='systemctl poweroff'
alias sp='systemctl suspend'
alias rb='systemctl reboot'
# youtube-
alias yta-aac="yt-dlp --extract-audio --audio-format aac "
@ -209,10 +224,10 @@ alias yta-opus="yt-dlp --extract-audio --audio-format opus "
alias yta-vorbis="yt-dlp --extract-audio --audio-format vorbis "
alias yta-wav="yt-dlp --extract-audio --audio-format wav "
alias ytv-best="yt-dlp -f bestvideo+bestaudio "
alias yt='ytfzf -ftsl'
alias youtube='ytfzf -ftsl'
alias ytm='ytfzf -mtsl'
alias youtube-music='ytfzf -mtsl'
alias yt='ytfzf -ftslT kitty'
alias youtube='ytfzf -ftslT kitty'
alias ytm='ytfzf -mtslT kitty'
alias youtube-music='ytfzf -mtslT kitty'
# network and bluetooth
alias netstats='nmcli dev'
@ -225,3 +240,4 @@ alias blt='bluetoothctl'
### SETTING THE STARSHIP PROMPT ###
starship init fish | source
zoxide init fish | source

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=" "
icon-theme=gruvbox-dark-icons-gtk
icon-theme=Papirus-Dark
icons-enabled=yes
password-character=*
fuzzy=yes
terminal=wezterm start
terminal=foot
lines=20
width=70
inner-pad=12
@ -15,7 +16,7 @@ exit-on-keyboard-focus-loss=yes
[colors]
background=1d2021ff
text=ebdbb2ff
text=fbf1c7ff
match=8ec07cff
selection-match=1d2021ff
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
sed '1,/^### DATA ###$/d' $0 | $RUNNER -l 10 -i -p "[󰙃 Select Emoji]  " | cut -d ' ' -f 1 | tr -d '\n' | wl-copy
#!/usr/bin/env bash
# rs_emoji - A simple emoji picker menu script for rofi/dmenu/wofi/fuzzel
# Author: Clay Gomera (Drake)
# Dependencies: {rofi || dmenu || wofi || fuzzel}, wl-clipboard (wl-copy)
########################
# Function Definitions #
########################
# Check for missing dependencies
check_dependencies() {
local run_launcher_found=false
for launcher in rofi dmenu wofi fuzzel; do
if command -v "$launcher" &> /dev/null; then
run_launcher_found=true
break
fi
done
if [ "$run_launcher_found" = false ]; then
echo "Missing dependency: one of rofi, dmenu, wofi or fuzzel is required."
exit 1
fi
local missing_deps=()
for dep in wl-copy; do
if ! command -v "$dep" &> /dev/null; then
missing_deps+=("$dep")
fi
done
if [ ${#missing_deps[@]} -ne 0 ]; then
echo "Missing dependencies: ${missing_deps[*]}"
exit 1
fi
}
####################
# Main Script Flow #
####################
# Check for dependencies
check_dependencies
# Pass emoji data into the menu
sed '1,/^### DATA ###$/d' $0 | $RUNNER -i -p "[󰙃 Select Emoji] " | cut -d ' ' -f 1 | tr -d '\n' | wl-copy
##############
# Emoji Data #
##############
### DATA ###
😀 grinning face face smile happy joy :D grin
😃 grinning face with big eyes face happy joy haha :D :) smile funny

View file

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

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-icon-theme-name="gruvbox-dark-icons-gtk"
gtk-font-name="Cantarell 10"
gtk-theme-name="Gruvbox-Dark"
gtk-icon-theme-name="Papirus-Dark"
gtk-font-name="Inter 10"
gtk-cursor-theme-name="Simp1e-Gruvbox-Dark"
gtk-cursor-theme-size=0
gtk-toolbar-style=GTK_TOOLBAR_BOTH

View file

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

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

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

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_WAYLAND_USE_VAAPI=1
export MOZ_DISABLE_RDD_SANDBOX=1
export ELECTRON_OZONE_PLATFORM_HINT=auto
# GTK & cursor stuff
export XCURSOR_PATH="$XDG_DATA_HOME/icons/"
export XCURSOR_THEME="Simp1e-Gruvbox-Dark"
export GTK_THEME="gruvbox-dark-gtk"
export GTK_ICON_THEME="gruvbox-dark-icons-gtk"
export GTK_THEME="Gruvbox-Dark"
export GTK_ICON_THEME="Papirus-Dark"
export GTK_CURSOR_THEME="Simp1e-Gruvbox-Dark"
# User defined enviroment variables
export RUNNER="fuzzel --dmenu"
export WM=sway
# Start compositor
dbus-launch $WM
exec sway

View file

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