update dots, begin with config

This commit is contained in:
Javier 2024-04-09 20:05:38 -05:00
parent e705e3dce9
commit d58237b387
450 changed files with 840 additions and 746121 deletions

View File

@ -13,4 +13,5 @@
*/1 * * * * swww img $(shuf -en1 ~/pics/classic/art/*)
*/59 * * * * doas scratch sync &>/dev/null && pkill -SIGRTMIN+8 waybar
# */59 * * * * doas scratch sync &>/dev/null && pkill -SIGRTMIN+8 waybar
*/59 * * * * checkup

View File

@ -128,12 +128,12 @@ blink=yes
# button-close-color=<regular1>
[key-bindings]
scrollback-up-page=Control+k
scrollback-up-page=Control+Shift+k
# scrollback-up-half-page=none
# scrollback-up-line=none
scrollback-down-page=Control+j
scrollback-up-line=Control+k
scrollback-down-page=Control+Shift+j
# scrollback-down-half-page=none
# scrollback-down-line=none
scrollback-down-line=Control+j
# clipboard-copy=Control+Shift+c XF86Copy
# clipboard-paste=Control+Shift+v XF86Paste
# primary-paste=Shift+Insert

2
.config/hypr/hyprland.conf Executable file → Normal file
View File

@ -3,6 +3,6 @@
source = ~/.config/hypr/src/init.conf
source = ~/.config/hypr/src/general.conf
source = ~/.config/hypr/src/env.conf
source = ~/.config/hypr/src/windowrules.conf
# source = ~/.config/hypr/src/windowrules.conf
source = ~/.config/hypr/src/keybinds.conf
source = ~/.config/hypr/src/scratchpads.conf

View File

@ -0,0 +1,433 @@
#+title: Hyprland_Configuration
#+author: Javier Pacheco
#+date: [2024-04-05 Fri 23:14]
#+OPTIONS: toc:2 date:nil
#+filetags: :config:hypr:
#+identifier: 20240405T231454
* Table :toc:
- [[#my-hyprland-configuration][My hyprland configuration.]]
- [[#hyprlandconf][hyprland.conf]]
- [[#initconf][init.conf]]
- [[#generalconf][general.conf]]
- [[#envconf][env.conf]]
- [[#keybindsconf][keybinds.conf]]
- [[#scratchpadsconf][scratchpads.conf]]
* My hyprland configuration.
My =Hyprland= configuration is split in multiple files for readable and a better understanding comprehension to me.
#+begin_src example :tangle no
./
├── hyprland.conf*
├── pyprland.toml
└── src/
├── env.conf*
├── init.conf*
├── general.conf*
├── keybinds.conf*
├── scratchpads.conf
└── windowrules.conf
#+end_src
** hyprland.conf
This is the main =hyprland= configuration file, this file will source every single file in the src folder.
#+begin_src conf :tangle hyprland.conf :mkdirp yes
# [[ Javier Hyprland configuration ]]
source = ~/.config/hypr/src/init.conf
source = ~/.config/hypr/src/general.conf
source = ~/.config/hypr/src/env.conf
source = ~/.config/hypr/src/windowrules.conf
source = ~/.config/hypr/src/keybinds.conf
source = ~/.config/hypr/src/scratchpads.conf
#+end_src
** init.conf
#+begin_src conf :tangle src/init.conf :mkdirp yes
# Prgrams that I run when Hyprland starts.
exec-once = pypr
exec-once = swww init
exec-once = cron -f ~/.config/cron/cron.conf
exec-once = waybar
exec-once = mpd --no-daemon "$HOME"/.config/mpd/mpd.conf
exec-once = pipewire
exec-once = pipewire-pulse
exec-once = wireplumber
exec-once = foot --server
exec-once = swayidle -w timeout 500 'swaylock'
exec-once = xrdb ~/.config/.Xdefaults
#+end_src
** general.conf
This file contains the monitor, keyboard, mouse, effects configuration.
*** general.
#+begin_src conf :tangle src/general.conf :mkdirp yes
general {
gaps_in = 5
gaps_out = 10
border_size = 2
no_border_on_floating = 0
col.active_border = rgba(999999bb)
col.inactive_border = rgba(595959aa)
layout = master
allow_tearing = false
cursor_inactive_timeout = 2
resize_corner = 3
}
#+end_src
*** input
#+begin_src conf :tangle src/general.conf :mkdirp yes
input {
kb_layout = gb,us
kb_options=grp:win_space_toggle
kb_variant =
kb_model =
numlock_by_default = true
kb_options = ctrl:nocaps
kb_rules =
follow_mouse = 1
touchpad {
natural_scroll = no
}
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
#+end_src
*** decorations
#+begin_src conf :tangle src/general.conf :mkdirp yes
decoration {
rounding = 0
blur {
size = 1
passes = 2
new_optimizations = true
xray = false
ignore_opacity = true
}
drop_shadow = no
shadow_range = 4
shadow_render_power = 3
col.shadow = rgba(1a1a1aee)
blurls = waybar
}
#+end_src
*** Animations
#+begin_src conf :tangle src/general.conf :mkdirp yes
animations {
enabled = yes
# bezier = myBezier, 0.05, 0.9, 0.1, 1.05
# animation = windows, 1, 7, myBezier
# animation = windowsOut, 1, 7, default, popin 80%
# animation = border, 1, 10, default
# animation = borderangle, 1, 8, default
# animation = fade, 1, 7, default
# animation = workspaces, 1, 6, default
animation=windows,1,8,default,popin 20%
}
#+end_src
*** misc
#+begin_src conf :tangle src/general.conf :mkdirp yes
misc {
# See https:/wiki.hyprland.org/.configuring/Variables/ for more
force_default_wallpaper = 0
focus_on_activate = 1
enable_swallow = 1
swallow_regex = ^(Alacritty|foot|footclient)$
}
#+end_src
*** dwindle
#+begin_src conf :tangle src/general.conf :mkdirp yes
dwindle {
# See https:/wiki.hyprland.org/.configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
#+end_src
*** master
#+begin_src conf :tangle src/general.conf :mkdirp yes
master {
new_is_master = false
drop_at_cursor = false
}
#+end_src
*** gestures
#+begin_src conf :tangle src/general.conf :mkdirp yes
gestures {
# See https:/wiki.hyprland.org/.configuring/Variables/ for more
workspace_swipe = 1
}
#+end_src
** env.conf
#+begin_src conf :tangle src/env.conf :mkdirp yes
# hyprland env's
env = QT_QPA_PLATFORM,wayland
env = HYPRCURSOR_THEME,Breeze_Dark
env = HYPRCURSOR_SIZE,24
# Set variables
monitor=eDP-1,1920x1080@60,0x0,1
$terminal = footclient
$menu = fuzzel_run
#+end_src
** keybinds.conf
This are my keybinds that I use the most,
Here are some tips for the bind flags:
#+begin_src example :tangle no
Flags:
l -> locked, aka. works also when an input inhibitor (e.g. a lockscreen) is active.
r -> release, will trigger on release of a key.
e -> repeat, will repeat when held.
n -> non-consuming, key/mouse events will be passed to the active window in addition to triggering the dispatcher.
m -> mouse, see below
t -> transparent, cannot be shadowed by other binds.
i -> ignore mods, will ignore modifiers.
bind(flag) = command
bindr = command
#+end_src
*** Main and most useful keybinds
#+begin_src conf :tangle src/keybinds.conf :mkdirp yes
# [[ Keybinds ]]
$mainMod = SUPER
# Custom Keybinds.
bind = $mainMod, return, exec, $terminal
bindr= $mainMod, D, exec, $menu
bind = $mainMod, w, exec, chromium
bind = $mainMod, f, exec, hyprctl dispatch togglefloating; pkill -SIGRTMIN+8 waybar # hyprctl dispatch right in your script just so you can exec at the same time
bind = $mainMod SHIFT, f, fullscreen,
bind = SUPER_SHIFT, l, exec, swaylock
bind = $mainMod, q, killactive,
bind = SUPER_SHIFT, q, exec, sysact
bind = ,Print, exec, grimblast -n copy screen
bind = $mainMod SHIFT, r , exec, screencast
bind = $mainMod SHIFT, s, exec, grimblast -n copy area
bind = ALT,m , exec, pypr menu
bind = $mainMod SHIFT,Print, exec, shareurl.sh
bind = ALT SHIFT, Return , exec, pypr expose
bind = ,XF86PowerOff, exec, doas zzz -z
#+end_src
*** Keychords.
#+begin_src conf :tangle src/keybinds.conf :mkdirp yes
# [[ KeyChords ]]
bind = $mainMod, SPACE , submap, menusubmap
submap = menusubmap
bind = ,i,exec,foot -e nsxiv ~/pics/classic/art -t -g 1500x700
bind = ,i,submap,reset
bind = ,m,exec,dmenumount
bind = ,m,submap,reset
bind = ,u,exec,dmenuumount
bind = ,u,submap,reset
bind = ,q,exec,sysact
bind = ,q,submap,reset
bind=,escape,submap,reset
submap = reset
#+end_src
*** Window management.
#+begin_src conf :tangle src/keybinds.conf :mkdirp yes
# [[ Window management ]]
# Move focus with mainMod + arrow keys
bind = $mainMod, J, layoutmsg,cyclenext
bind = $mainMod, K, layoutmsg,cycleprev
# Swap windows
bind = $mainMod SHIFT, J, swapnext, next
bind = $mainMod SHIFT, K, swapnext, prev
# Resize windows
bind = $mainMod, l, resizeactive, 40 0
bind = $mainMod, h, resizeactive, -40 0
# Switch workspaces with mainMod + [0-9]
bind = $mainMod, 1, workspace, 1
bind = $mainMod, 2, workspace, 2
bind = $mainMod, 3, workspace, 3
bind = $mainMod, 4, workspace, 4
bind = $mainMod, 5, workspace, 5
bind = $mainMod, 6, workspace, 6
bind = $mainMod, 7, workspace, 7
bind = $mainMod, 8, workspace, 8
bind = $mainMod, 9, workspace, 9
bind = $mainMod, 0, workspace, 10
# Cycle through ocuped workspaces
bind = ALT, Tab, workspace, m+1
bind = ALT SHIFT, Tab, workspace, m-1
# Move active window to a workspace with mainMod + SHIFT + [0-9]
bind = $mainMod SHIFT, 1, movetoworkspacesilent, 1
bind = $mainMod SHIFT, 2, movetoworkspacesilent, 2
bind = $mainMod SHIFT, 3, movetoworkspacesilent, 3
bind = $mainMod SHIFT, 4, movetoworkspacesilent, 4
bind = $mainMod SHIFT, 5, movetoworkspacesilent, 5
bind = $mainMod SHIFT, 6, movetoworkspacesilent, 6
bind = $mainMod SHIFT, 7, movetoworkspacesilent, 7
bind = $mainMod SHIFT, 8, movetoworkspacesilent, 8
bind = $mainMod SHIFT, 9, movetoworkspacesilent, 9
bind = $mainMod SHIFT, 0, movetoworkspacesilent, 10
# Scroll through existing workspaces with mainMod + scroll
bind = $mainMod, mouse_down, workspace, e+1
bind = $mainMod, mouse_up, workspace, e-1
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
#+end_src
*** Media Keys
#+begin_src conf :tangle src/keybinds.conf :mkdirp yes
# Audio MPC commands
bind = ,XF86AudioPlay, exec, mpc toggle
bind = ,XF86AudioStop, exec, mpc stop
bind = ,XF86AudioNext, exec, mpc next
bind = ,XF86AudioPrev, exec, mpc prev
binde =, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+
binde =, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindl =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
# Screen Brightness
bind=,XF86MonBrightnessUp,exec,doas brightnessctl set +10%
bind=,XF86MonBrightnessDown,exec,doas brightnessctl set 10%-
#+end_src
** scratchpads.conf
In order to make the scratchpads works, you need to install pyprland package through python pip package installation.
#+begin_src shell :tangle no
pip install pyprland
#+end_src
*** Pyprland
this is the config file for declare the plugins that are used within =pypr=.
#+begin_src toml :tangle pyprland.toml :mkdirp yes
[pyprland]
plugins = [
"scratchpads",
"shortcuts_menu",
"expose"
]
[scratchpads.term]
animation = "fromTop"
command = "foot -a term"
class = "term"
size = "75% 60%"
max_size = "1920px 100%"
margin = 50
[scratchpads.music_player]
animation = "fromRight"
command = "foot -a music_player -e ncmpcpp"
class = "music_player"
size = "75% 60%"
max_size = "1920px 100%"
margin = 50
[scratchpads.nnn]
animation = "fromLeft"
command = "foot -a nnn -e nnn"
class = "nnn"
size = "50% 40%"
position = "5% 10%"
max_size = "1920px 100%"
margin = 50
[scratchpads.fetch]
animation = "fromLeft"
command = "foot -a venom_fetch"
class = "venom_fetch"
size = "23% 48%"
position = "5% 10%"
max_size = "1920px 100%"
margin = 50
[shortcuts_menu]
engine = "fuzzel --dmenu"
# parameters = "-p '[prompt] 🍰 ' -dmenu -matching fuzzy -i"
command_start = "💀"
[shortcuts_menu.entries]
"Restart Waybar" = "pkill -9 waybar ; setsid waybar"
"Telegram" = "xdg-open https:/web.telegram.org/a/#-1421253041"
"Cinny" = "xdg-open https:/app.cinny.in/"
"Scratch" = [
{name="action", options=["sync", "sysup" ]},
"foot -e doas scratch [action]"
]
#+end_src
*** keybinds and rules.
The structure that I use is the bind, and next the window rule, I have this window rules apart from the =window management configuration= because I want to keep the binds an rules in the same file.
#+begin_src conf :tangle src/scratchpads.conf :mkdirp yes
# [[ Scratchpads rules ]]
# Keybind
# window rules
bind = $mainMod Shift,Return,exec,pypr toggle term
$dropterm = (term)$
windowrule = float,$dropterm
windowrule = workspace special silent,$dropterm
windowrule = size 75% 60%,$dropterm
bind = ALT,Return,exec,pypr toggle fetch
$fetch = (venom_fetch)$
windowrule = float,$fetch
windowrule = workspace special silent,$fetch
windowrule = size 75% 60%,$fetch
bind = $mainMod,m,exec,pypr toggle music_player
$music_player = (music_player)$
windowrule = float,$music_player
windowrule = workspace special silent,$music_player
windowrule = size 75% 60%,$music_player
bind = $mainMod,e,exec,pypr toggle nnn
$nnn = (nnn)$
windowrule = float,$nnn
windowrule = workspace special silent,$nnn
windowrule = size 75% 60%,$nnn
#+end_src

View File

@ -48,8 +48,8 @@ command_start = "💀"
[shortcuts_menu.entries]
"Restart Waybar" = "pkill -9 waybar ; setsid waybar"
"Telegram" = "xdg-open https://web.telegram.org/a/#-1421253041"
"Cinny" = "xdg-open https://app.cinny.in/"
"Telegram" = "xdg-open https:/web.telegram.org/a/#-1421253041"
"Cinny" = "xdg-open https:/app.cinny.in/"
"Scratch" = [
{name="action", options=["sync", "sysup" ]},

0
.config/hypr/src/env.conf Executable file → Normal file
View File

51
.config/hypr/src/general.conf Executable file → Normal file
View File

@ -1,4 +1,16 @@
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
general {
gaps_in = 5
gaps_out = 10
border_size = 2
no_border_on_floating = 0
col.active_border = rgba(999999bb)
col.inactive_border = rgba(595959aa)
layout = master
allow_tearing = false
cursor_inactive_timeout = 2
resize_corner = 3
}
input {
kb_layout = gb,us
kb_options=grp:win_space_toggle
@ -17,19 +29,6 @@ input {
sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
general {
gaps_in = 5
gaps_out = 10
border_size = 2
no_border_on_floating = 0
col.active_border = rgba(999999bb)
col.inactive_border = rgba(595959aa)
layout = master
allow_tearing = false
cursor_inactive_timeout = 2
resize_corner = 3
}
decoration {
rounding = 0
blur {
@ -59,8 +58,16 @@ animations {
animation=windows,1,8,default,popin 20%
}
misc {
# See https:/wiki.hyprland.org/.configuring/Variables/ for more
force_default_wallpaper = 0
focus_on_activate = 1
enable_swallow = 1
swallow_regex = ^(Alacritty|foot|footclient)$
}
dwindle {
# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
# See https:/wiki.hyprland.org/.configuring/Dwindle-Layout/ for more
pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = yes # you probably want this
}
@ -71,18 +78,6 @@ master {
}
gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
# See https:/wiki.hyprland.org/.configuring/Variables/ for more
workspace_swipe = 1
}
misc {
# See https://wiki.hyprland.org/Configuring/Variables/ for more
force_default_wallpaper = 0
focus_on_activate = 1
enable_swallow = 1
swallow_regex = ^(Alacritty|foot|footclient)$
}
device:epic-mouse-v1 {
#sensitivity = -0.5
}

2
.config/hypr/src/init.conf Executable file → Normal file
View File

@ -1,4 +1,4 @@
# Execute your favorite apps at launch
# Prgrams that I run when Hyprland starts.
exec-once = pypr
exec-once = swww init

49
.config/hypr/src/keybinds.conf Executable file → Normal file
View File

@ -2,24 +2,22 @@
$mainMod = SUPER
# Custom Keybinds.
bind = $mainMod, return, exec, $terminal
bind = $mainMod, Q, killactive,
bind = SUPER_SHIFT, Q, exec, sysact
bind = $mainMod, F, exec, hyprctl dispatch togglefloating; pkill -SIGRTMIN+8 waybar # hyprctl dispatch right in your script just so you can exec at the same time
bind = $mainMod SHIFT, F, fullscreen,
bindr = $mainMod, D, exec, $menu
bind = $mainMod, W, exec, chromium
bind = $SUPER_SHIFT, f, exec, wbg
bind = $SUPER_SHIFT, l, exec, swaylock
bind = ,XF86PowerOff, exec, doas zzz -z
bind = $mainMod, P, pseudo, # dwindle
bindr= $mainMod, D, exec, $menu
bind = $mainMod, w, exec, chromium
bind = $mainMod, f, exec, hyprctl dispatch togglefloating; pkill -SIGRTMIN+8 waybar # hyprctl dispatch right in your script just so you can exec at the same time
bind = $mainMod SHIFT, f, fullscreen,
bind = SUPER_SHIFT, l, exec, swaylock
bind = $mainMod, q, killactive,
bind = SUPER_SHIFT, q, exec, sysact
bind = ,Print, exec, grimblast -n copy screen
bind = $mainMod SHIFT,Print, exec, shareurl.sh
bind = $mainMod SHIFT, r , exec, screencast
bind = $mainMod SHIFT, s, exec, grimblast -n copy area
$screenrecorder= $HOME/.local/bin/scripts/screencast
bind = $mainMod SHIFT, r , exec, $screenrecorder
bind = ALT,m , exec, pypr menu
bind = $mainMod SHIFT,Print, exec, shareurl.sh
bind = ALT SHIFT, Return , exec, pypr expose
bind = ,XF86PowerOff, exec, doas zzz -z
# [[ KeyChords ]]
bind = $mainMod, SPACE , submap, menusubmap
@ -35,19 +33,6 @@ bind = ,q,submap,reset
bind=,escape,submap,reset
submap = reset
# Audio MPC commands
bind = ,XF86AudioPlay, exec, mpc toggle
bind = ,XF86AudioStop, exec, mpc stop
bind = ,XF86AudioNext, exec, mpc next
bind = ,XF86AudioPrev, exec, mpc prev
binde=, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+
bindl=, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindl=, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
# Screen Brightness
bind=,XF86MonBrightnessUp,exec,doas brightnessctl set +10%
bind=,XF86MonBrightnessDown,exec,doas brightnessctl set 10%-
# [[ Window management ]]
# Move focus with mainMod + arrow keys
bind = $mainMod, J, layoutmsg,cyclenext
@ -97,3 +82,15 @@ bind = $mainMod, mouse_up, workspace, e-1
bindm = $mainMod, mouse:272, movewindow
bindm = $mainMod, mouse:273, resizewindow
# Audio MPC commands
bind = ,XF86AudioPlay, exec, mpc toggle
bind = ,XF86AudioStop, exec, mpc stop
bind = ,XF86AudioNext, exec, mpc next
bind = ,XF86AudioPrev, exec, mpc prev
binde =, XF86AudioRaiseVolume, exec, wpctl set-volume -l 1.0 @DEFAULT_AUDIO_SINK@ 5%+
binde =, XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-
bindl =, XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle
# Screen Brightness
bind=,XF86MonBrightnessUp,exec,doas brightnessctl set +10%
bind=,XF86MonBrightnessDown,exec,doas brightnessctl set 10%-

2
.config/hypr/src/scratchpads.conf Executable file → Normal file
View File

@ -1,5 +1,5 @@
# [[ Scratchpads rules ]]
# Keydind
# Keybind
# window rules
bind = $mainMod Shift,Return,exec,pypr toggle term

View File

@ -823,3 +823,42 @@ Apr 01 16:57 : exception: Failed to create /home/javier/.local/state/mpd/state:
Apr 01 16:58 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 01 16:58 : player: played "Annihilator - Alice In Hell/02 - Alison Hell..mp3"
Apr 01 16:58 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 03 05:04 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 03 18:10 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 03 18:10 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 03 19:59 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 03 22:09 : log: error re-opening log file: /home/javier/.config//mpd/log
Apr 03 22:10 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 03 22:12 : exception: Failed to open "PipeWire Sound Server" (pipewire); Failed to connect stream: Host is down
Apr 03 22:13 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 03 22:13 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 03 22:13 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 03 22:13 : player: played "Annihilator - Alice In Hell/01 - Crystal Ann.mp3"
Apr 03 22:14 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 03 22:15 : player: played "Revocation - Teratogenesis (EP) (2012)/01. The Grip Tightens.mp3"
Apr 03 22:16 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 04 15:47 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 04 15:47 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 04 15:48 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 04 15:53 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 04 15:56 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 04 16:00 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 04 22:01 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 04 22:01 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 04 22:14 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 04 22:15 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 05 20:06 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 05 23:10 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 06 11:53 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 06 11:53 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 06 11:54 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 06 18:04 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 06 18:06 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 06 18:56 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 06 19:51 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 06 19:51 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 06 19:51 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 06 19:51 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 06 19:51 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory
Apr 08 05:24 : exception: Failed to create /home/javier/.local/state/mpd/state: No such file or directory
Apr 08 05:24 : exception: Failed to open '/home/javier/.local/state/mpd/state': No such file or directory

View File

@ -1 +1 @@
507
528

View File

@ -1,19 +0,0 @@
host mail.cock.li
port 587
from jpacheco@cock.li
user jpacheco@cock.li
passwordeval "pass show muw/jpacheco@cock.li"
# End profile
account jpacheco@cock.li
host mail.cock.li
port 465
from jpacheco@cock.li
user jpacheco@cock.li
passwordeval "pass jpacheco@cock.li"
auth on
tls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
logfile /home/javier/.local/state/msmtp/msmtp.log
tls_starttls off

View File

@ -1,14 +0,0 @@
[database]
path=/home/javier/.local/share/mail
[user]
name=jpacheco
primary_email=jpacheco@cock.li
[new]
tags=unread;inbox;
ignore=.mbsyncstate;.uidvalidity
[search]
exclude_tags=deleted;spam;
[maildir]
synchronize_flags=true
[crypto]
gpg_path=gpg

View File

@ -1,8 +0,0 @@
[window]
width=1896
height=1007
sinkInputType=1
sourceOutputType=1
sinkType=0
sourceType=1
showVolumeMeters=1

View File

@ -75,6 +75,11 @@ alias \
scvp="cd /var/cache/scratchpkg/packages/" \
rrp="cd ~/.local/src/ports/"
# xchroot to manage venom ports
alias \
cr="doas xchroot /mnt/venom-dev zsh" \
cvu="for pkg in gopass swaylock-effects chezmoi ; do ../scripts/outdate.sh /home/javier/Venom/main/$pkg ; done"
# Directories
alias \
tm="cd /tmp" \

View File

@ -5,7 +5,6 @@
# If you don't plan on reverting to bash, you can remove the link in ~/.profile
# to clean up.
# Export all vars
set -o allexport
@ -19,14 +18,13 @@ unsetopt PROMPT_SP
# Default programs:
EDITOR="nvim"
TERMINAL="foot"
TERMINAL="footclient"
BROWSER="chromium"
# ~/ Clean-up:
XDG_CONFIG_HOME="$HOME/.config"
XDG_DATA_HOME="$HOME/.local/share"
XDG_CACHE_HOME="$HOME/.cache"
# XDG_RUNTIME_DIR="/tmp/runtime-javier/"
XDG_RUNTIME_DIR=$(mktemp -d /tmp/$(id -u)-runtime-dir.XXX)
XINITRC="${XDG_CONFIG_HOME:-$HOME/.config}/x11/xinitrc"
# export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" # This line will break some DMs.
@ -36,7 +34,6 @@ LESSHISTFILE="-"
WGETRC="${XDG_CONFIG_HOME:-$HOME/.config}/wget/wgetrc"
INPUTRC="${XDG_CONFIG_HOME:-$HOME/.config}/shell/inputrc"
ZDOTDIR="${XDG_CONFIG_HOME:-$HOME/.config}/zsh"
# ALSA_CONFIG_PATH="$XDG_CONFIG_HOME/alsa/asoundrc"
#export GNUPGHOME="${XDG_DATA_HOME:-$HOME/.local/share}/gnupg"
WINEPREFIX="${XDG_DATA_HOME:-$HOME/.local/share}/wineprefixes/default"
KODI_DATA="${XDG_DATA_HOME:-$HOME/.local/share}/kodi"
@ -87,10 +84,5 @@ NNN_ARCHIVE="\\.(7z|a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma
[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && shortcuts >/dev/null 2>&1 &
# Start graphical server on user's current tty if not already running.
# [ "$(tty)" = "/dev/tty1" ] && ! pidof -s Xorg >/dev/null 2>&1 && exec startx "$XINITRC"
# Start wayland server on user's current tty if not already running.
[ "$(tty)" = "/dev/tty1" ] && exec Hyprland
# [ "$(tty)" = "/dev/tty1" ] && exec sway
# Switch escape and caps if tty and no passwd required:
# sudo -n loadkeys ${XDG_DATA_HOME:-$HOME/.local/share}/larbs/ttymaps.kmap 2>/dev/null

View File

@ -0,0 +1,106 @@
{
"layer": "top",
"position": "top",
"height": 27,
"modules-left": ["sway/workspaces", "sway/mode"],
"modules-center": ["sway/window"],
"modules-right": ["network", "pulseaudio", "battery", "clock"],
"sway/workspaces": {
"disable-scroll": true,
"disable-markup": true,
"format": "{index}"
},
"sway/window": {
"format": "{}",
"max-length": 150
},
"custom/scratch": {
"interval": 3,
"exec": "swaymsg -t get_tree | jq 'recurse(.nodes[]) | first(select(.name==\"__i3_scratch\")) | .floating_nodes | length | select(. >= 0)'",
"format": "^{}",
"on-click": "swaymsg 'scratchpad show'",
"on-click-right": "swaymsg 'move scratchpad'"
},
"sway/mode": {
"format": "<span style=\"italic\">{}</span>"
},
"tray": {
"icon-size": 18,
"spacing": 15
},
"clock": {
"format": "{:%a %b %e %R}",
"interval": 30
},
"battery": {
"bat": "BAT0",
"states": {
"full": 99,
"good": 98,
"normal": 98,
"warning": 20,
"critical": 20
},
"format": "{icon} {capacity}%",
"format-good": "{icon} {capacity}%",
"format-full": " {capacity}%",
"format-icons": ["", "", "", "", ""],
"interval": 30
},
"network": {
"interface": "wlp4s0",
"format-wifi": " WiFi-On",
"format-disconnected": "睊 Disconnected",
"interval": 60
},
"temperature": {
"thermal-zone": 0,
"format": "{icon} {temperatureC}°C",
"format-icons":[""],
"interval": 30
},
"backlight": {
"device": "intel_backlight",
"format": "{icon} {percent}% ",
"format-icons": ["","","",""],
"interval": 60
},
"pulseaudio": {
"format": "{icon} {volume}% ",
"format-bluetooth": " {volume}% ",
"format-muted":"婢 Mute ",
"interval": 60,
"format-icons": {
"default": [""]
},
"on-click": "blueman-manager"
}
}

View File

@ -0,0 +1,99 @@
* {
font-family: "Iosevka JP";
font-size: 16px;
}
window#waybar {
background-color: #225877;
color: #ffffff;
}
.modules-left {
background-color: #323232;
padding: 0px 0px 0px 0px;
}
.modules-right {
background-color: #323232;
padding: 0px 5px 0px 0px;
}
#custom-scratch {
background-color: #323232;
color: #b8b8b8;
padding: 0px 9px 0px 9px;
}
#workspaces {
}
#workspaces button {
padding: 0px 11px 0px 11px;
min-width: 1px;
color: #888888;
}
#workspaces button.focused {
padding: 0px 11px 0px 11px;
background-color: #285577;
color: #ffffff;
}
#mode {
background-color: #900000;
color: #ffffff;
padding: 0px 5px 0px 5px;
border: 1px solid #2f343a;
}
#window {
color: #ffffff;
background-color: #285577;
padding: 0px 10px 0px 10px;
}
window#waybar.empty #window {
background-color: transparent;
color: transparent;
}
window#waybar.empty {
background-color: #323232;
}
#network, #temperature, #backlight, #pulseudio, #battery {
padding: 0px 15px 0px 15px;
}
#clock {
margin: 0px 15px 0px 15px;
}
#tray{
padding: 0px 8px 0px 5px;
margin: 0px 5px 0px 5px;
}
#battery.critical {
color: #ff5555;
}
#network.disconnected {
color: #ff5555;
}

View File

View File

@ -1,2 +0,0 @@
Nsxiv.window.background: #121212
Nsxiv.window.foreground: #458588

View File

@ -3,15 +3,55 @@
# [ -z "$TMUX" ] && { tmux attach || exec tmux new-session && exit;}
# Enable colors and change prompt:
autoload -U colors && colors # Load colors
PS1="%B%{$fg[red]%}[%{$fg[blue]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b "
# set_prompt() {
# newline=$'\n'
# prompt="%F{white}╭╴[%f%F{blue}%~%f%F{white}]%f${newline}%F{white}╰╴%f%F{blue} 󰊠 %F{green}󰊠 %F{magenta}󰊠 %F{yellow} %F{green} "
# }
#
# precmd_functions+=(set_prompt)
# set_prompt
autoload -Uz add-zsh-hook
setopt prompt_subst
add-zsh-hook precmd vcs_info
newline=$'\n'
set_prompt() {
if [[ $UID -eq 0 ]]; then
# PROMPT='%1 %F{cyan}%/%f%F{blue}${vcs_info_msg_0_}%f%b ${newline}%F{red} %f'
PROMPT='%F{red} %f'
RPROMPT='%F{magenta}%~%f%F{magenta}${vcs_info_msg_0_}%f'
else
# PROMPT='%1 %F{cyan}%/%f%F{blue}${vcs_info_msg_0_}%f%b ${newline}%F{blue} %f'
PROMPT='%F{cyan} %f'
RPROMPT='%F{magenta}%~%f%F{magenta}${vcs_info_msg_0_}%f'
fi
}
# Call the function to set the initial prompt
set_prompt
# Define a precmd function to reset the prompt before each command
precmd() {
set_prompt
}
# PROMPT='%1 %F{magenta}%/%f%F{blue}${vcs_info_msg_0_}%f%b ${newline}%F{blue} %f'
# PROMPT='%1 %F{cyan}%n%f%b %F{cyan} %f'
# RPROMPT='%F{magenta}[%2~%f%F{magenta}${vcs_info_msg_0_}]%f'
# Enable checking for (un)staged changes, enabling use of %u and %c
zstyle ':vcs_info:*' check-for-changes true
# Set custom strings for an unstaged vcs repo changes (*) and staged changes (+)
zstyle ':vcs_info:*' unstagedstr ' *'
zstyle ':vcs_info:*' stagedstr ' +'
# Set the format of the Git information for vcs_info
zstyle ':vcs_info:git:*' formats '-[%b%u%c]'
zstyle ':vcs_info:git:*' actionformats '-[%b|%a%u%c]'
# PS1="%B%{$fg[red]%}[%{$fg[blue]%}%n%{$fg[green]%}@%{$fg[blue]%}%M %{$fg[magenta]%}%~%{$fg[red]%}]%{$reset_color%}$%b >>"
# Uncomment the following line if you want to set the title of the terminal window to the current directory
# precmd() { print -Pn "\e]2;%n@%m:%~\a" }
precmd() {
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc"
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc"
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc"
}
setopt autocd # Automatically cd into typed directory.
stty stop undef # Disable ctrl-s to freeze terminal.
@ -61,7 +101,7 @@ zle -N zle-line-init
echo -ne '\e[5 q' # Use beam shape cursor on startup.
preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt.
# Use lf to switch directories and bind it to ctrl-o
bindkey -s '^o' 'nnn -e\n'
bindkey -s '^L' 'lazygit\n'
@ -74,6 +114,9 @@ bindkey '^[[P' delete-char
# Edit line in vim with ctrl-e:
autoload edit-command-line; zle -N edit-command-line
bindkey '^e' edit-command-line
bindkey -M vicmd '^[[P' vi-delete-char
bindkey -M vicmd '^e' edit-command-line
bindkey -M visual '^[[P' vi-delete
# Load syntax highlighting; should be last.
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 2>/dev/null

View File

@ -1,46 +0,0 @@
#!/bin/sh
# Requires ffmpeg (audio splitting) and my `tag` wrapper script.
[ ! -f "$2" ] && printf "The first file should be the audio, the second should be the timecodes.\\n" && exit
echo "Enter the album/book title:"; read -r booktitle
echo "Enter the artist/author:"; read -r author
echo "Enter the publication year:"; read -r year
inputaudio="$1"
# Get a safe file name from the book.
escbook="$(echo "$booktitle" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
! mkdir -p "$escbook" && echo "Do you have write access in this directory?" && exit 1
# As long as the extension is in the tag script, it'll work.
ext="m4a"
#ext="${1#*.}"
# Get the total number of tracks from the number of lines.
total="$(wc -l < "$2")"
while read -r x;
do
end="$(echo "$x" | cut -d' ' -f1)"
[ -n "$start" ] &&
echo "From $start to $end; $track $title"
file="$escbook/$(printf "%.2d" "$track")-$esctitle.$ext"
[ -n "$start" ] && echo "Splitting \"$title\"..." &&
ffmpeg -nostdin -y -loglevel -8 -i "$inputaudio" -ss "$start" -to "$end" -vn -c copy "$file" &&
echo "Tagging \"$title\"..." && tag -a "$author" -A "$booktitle" -t "$title" -n "$track" -N "$total" -d "$year" "$file"
title="$(echo "$x" | cut -d' ' -f 2-)"
esctitle="$(echo "$title" | iconv -cf UTF-8 -t ASCII//TRANSLIT | tr -d '[:punct:]' | tr '[:upper:]' '[:lower:]' | tr ' ' '-' | sed "s/-\+/-/g;s/\(^-\|-\$\)//g")"
track="$((track+1))"
start="$end"
done < "$2"
# The last track must be done outside the loop.
echo "From $start to the end: $title"
file="$escbook/$(printf "%.2d" "$track")-$esctitle.$ext"
echo "Splitting \"$title\"..." && ffmpeg -nostdin -y -loglevel -8 -i "$inputaudio" -ss "$start" -vn -c copy "$file" &&
echo "Tagging \"$title\"..." && tag -a "$author" -A "$booktitle" -t "$title" -n "$track" -N "$total" -d "$year" "$file"

Binary file not shown.

View File

@ -1,11 +0,0 @@
# Important Note
These cronjobs have components that require information about your current display to display notifications correctly.
When you add them as cronjobs, I recommend you precede the command with commands as those below:
```
export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u $USER)/bus; export DISPLAY=:0; . $HOME/.zprofile; then_command_goes_here
```
This ensures that notifications will display, xdotool commands will function and environmental variables will work as well.

View File

@ -1,17 +0,0 @@
#!/bin/sh
# Syncs repositories and downloads updates, meant to be run as a cronjob.
notify-send "📦 Repository Sync" "Checking for package updates..."
sudo pacman -Syyuw --noconfirm || notify-send "Error downloading updates.
Check your internet connection, if pacman is already running, or run update manually to see errors."
pkill -RTMIN+8 "${STATUSBAR:-dwmblocks}"
if pacman -Qu | grep -v "\[ignored\]"
then
notify-send "🎁 Repository Sync" "Updates available. Click statusbar icon (📦) for update."
else
notify-send "📦 Repository Sync" "Sync complete. No new packages for update."
fi

Binary file not shown.

View File

@ -1,6 +0,0 @@
#!/bin/sh
# Toggles all cronjobs off/on.
# Stores disabled crontabs in ~/.consaved until restored.
([ -f "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved ] && crontab - < "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && rm "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && notify-send "🕓 Cronjobs re-enabled.") || ( crontab -l > "${XDG_CONFIG_HOME:-$HOME/.config}"/cronsaved && crontab -r && notify-send "🕓 Cronjobs saved and disabled.")

View File

@ -1,15 +0,0 @@
#!/bin/sh
# Set as a cron job to check for new RSS entries for newsboat.
# If newsboat is open, sends it an "R" key to refresh.
/usr/bin/notify-send "📰 Updating RSS feeds..."
pgrep -f newsboat$ && /usr/bin/xdotool key --window "$(/usr/bin/xdotool search --name "^newsboat$")" R && exit
echo 🔃 > /tmp/newsupdate
pkill -RTMIN+6 "${STATUSBAR:-dwmblocks}"
/usr/bin/newsboat -x reload
rm -f /tmp/newsupdate
pkill -RTMIN+6 "${STATUSBAR:-dwmblocks}"
/usr/bin/notify-send "📰 RSS feed update complete."

View File

@ -1,67 +0,0 @@
#!/bin/sh
# Gives a fuzzel --dmenu prompt to mount unmounted drives and Android phones. If
# they're in /etc/fstab, they'll be mounted automatically. Otherwise, you'll
# be prompted to give a mountpoint from already existsing directories. If you
# input a novel directory, it will prompt you to create that directory.
getmount() { \
[ -z "$chosen" ] && exit 1
# shellcheck disable=SC2086
mp="$(find $1 2>/dev/null | fuzzel --dmenu -p "Type in mount point. ")" || exit 1
test -z "$mp" && exit 1
if [ ! -d "$mp" ]; then
mkdiryn=$(printf "No\\nYes" | fuzzel --dmenu -p "$mp does not exist. Create it? ") || exit 1
[ "$mkdiryn" = "Yes" ] && (mkdir -p "$mp" || doas mkdir -p "$mp")
fi
}
mountusb() { \
chosen="$(echo "$usbdrives" | fuzzel --dmenu -p "Mount which drive? ")" || exit 1
chosen="$(echo "$chosen" | awk '{print $1}')"
doas mount "$chosen" 2>/dev/null && notify-send "USB mounting" "$chosen mounted." && exit 0
alreadymounted=$(lsblk -nrpo "name,type,mountpoint" | awk '$3!~/\/boot|\/home$|SWAP/&&length($3)>1{printf "-not ( -path *%s -prune ) ",$3}')
getmount "/mnt /media /mount /home -maxdepth 5 -type d $alreadymounted"
partitiontype="$(lsblk -no "fstype" "$chosen")"
case "$partitiontype" in
"vfat") doas mount -t vfat "$chosen" "$mp" -o rw,umask=0000;;
"exfat") doas mount "$chosen" "$mp" -o uid="$(id -u)",gid="$(id -g)";;
*) doas mount "$chosen" "$mp"; user="$(whoami)"; ug="$(groups | awk '{print $1}')"; doas chown "$user":"$ug" "$mp";;
esac
notify-send "USB mounting" "$chosen mounted to $mp."
}
mountandroid() { \
chosen="$(echo "$anddrives" | fuzzel --dmenu -p "Which Android device? ")" || exit 1
chosen="$(echo "$chosen" | cut -d : -f 1)"
getmount "$HOME -maxdepth 3 -type d"
simple-mtpfs --device "$chosen" "$mp"
echo "OK" | fuzzel --dmenu -p "Tap Allow on your phone if it asks for permission and then press enter " || exit 1
simple-mtpfs --device "$chosen" "$mp"
notify-send "🤖 Android Mounting" "Android device mounted to $mp."
}
asktype() { \
choice="$(printf "USB\\nAndroid" | fuzzel --dmenu -p "Mount a USB drive or Android device? ")" || exit 1
case $choice in
USB) mountusb ;;
Android) mountandroid ;;
esac
}
anddrives=$(simple-mtpfs -l 2>/dev/null)
usbdrives="$(lsblk -rpo "name,type,size,mountpoint" | grep 'part\|rom' | awk '$4==""{printf "%s (%s)\n",$1,$3}')"
if [ -z "$usbdrives" ]; then
[ -z "$anddrives" ] && echo "No USB drive or Android device detected" && exit
echo "Android device(s) detected."
mountandroid
else
if [ -z "$anddrives" ]; then
echo "USB drive(s) detected."
mountusb
else
echo "Mountable USB drive(s) and Android device(s) detected."
asktype
fi
fi

View File

@ -1,44 +0,0 @@
#!/bin/sh
# A fuzzel --dmenu prompt to unmount drives.
# Provides you with mounted partitions, select one to unmount.
# Drives mounted at /, /boot and /home will not be options to unmount.
unmountusb() {
[ -z "$drives" ] && exit
chosen="$(echo "$drives" | fuzzel --dmenu -p "Unmount which drive? ")" || exit 1
chosen="$(echo "$chosen" | awk '{print $1}')"
[ -z "$chosen" ] && exit
doas umount "$chosen" && notify-send "USB unmounting" "$chosen unmounted."
}
unmountandroid() { \
chosen="$(awk '/simple-mtpfs/ {print $2}' /etc/mtab | fuzzel --dmenu -p "Unmount which device? ")" || exit 1
[ -z "$chosen" ] && exit
doas umount -l "$chosen" && notify-send "🤖 Android unmounting" "$chosen unmounted."
}
asktype() { \
choice="$(printf "USB\\nAndroid" | fuzzel --dmenu -p "Unmount a USB drive or Android device? ")" || exit 1
case "$choice" in
USB) unmountusb ;;
Android) unmountandroid ;;
esac
}
drives=$(lsblk -nrpo "name,type,size,mountpoint,label" | awk -F':' '{gsub(/ /,":")}$4!~/\/boot|\/efi|\/home$|SWAP/&&length($4)>1{printf "%s (%s) %s\n",$4,$3,$5}')
if ! grep simple-mtpfs /etc/mtab; then
[ -z "$drives" ] && echo "No drives to unmount." && exit
echo "Unmountable USB drive detected."
unmountusb
else
if [ -z "$drives" ]
then
echo "Unmountable Android device detected."
unmountandroid
else
echo "Unmountable USB drive(s) and Android device(s) detected."
asktype
fi
fi

View File

@ -1,54 +0,0 @@
#!/bin/sh
# Created By: Javier Pacheco - jpacheco@cock.li
# Created On: 23/10/2023
# Project: Fetch tool
#Informacion del sistema
kernel="$(uname -r)"
name="$(printf "javier@venom")"
os="$(echo "$PRETTY_NAME")"
sys="$(echo $(uname))"
shell=$(printf "$(basename $SHELL)")
init=$(cat /proc/1/comm)
cpu="$(lscpu | awk '/name/ {print $3, $4}')"
tr="$(printf "$TERM")"
#Información del WM
ui=$(echo "Hyprland")
#Información del manejador de paquetes
manager=$(echo "scratch")
packages="$(ls /var/lib/scratchpkg/db | wc -l)"
#Detección de ram
memused=$( free -mh --si | awk '/^Mem:/ {print $3}')
memtotal=$( free -mh --si | awk '/^Mem:/ {print $2}')
#Detección de disco
storageused=$(df -h / | grep "/" | awk '{print $3}')
storageavail=$(df -h / | grep "/" | awk '{print $2}')
st=$(df -h / | grep "/" | awk '{print $2" / " $4" / "$3}')
cat <<EOF
║ ║╔═╝╔═ ╔═║╔╔ ║ ╝╔═ ║ ║║ ║
║ ║╔═╝║ ║║ ║║║║═╝║ ║║ ║║ ║ ╝
╝ ══╝╝ ╝══╝╝╝╝ ══╝╝╝ ╝══╝╝ ╝
$printf╭───────────────────────────────────╮$printf $rst
 Host············${name}${reset}
 Kernel··········${kernel}${reset}
 WM··············${ui}${reset}
 Packages········${packages}${reset}
 Pkg Manager·····${manager}${reset}
 Terminal········${tr}${reset}
 Shell···········${shell}${reset}
 Init············${init}${reset}
 CPU·············${cpu}${reset}
 Memory··········${memused}/${memtotal}${reset}
 Storage·········${storageused}/${storageavail}
$printf╰───────────────────────────────────╯$printf $rst
EOF

View File

@ -1,14 +0,0 @@
#!/bin/sh
[ -z "$1" ] && echo "Give either a pdf file or a DOI as an argument." && exit
if [ -f "$1" ]; then
# Try to get DOI from pdfinfo or pdftotext output.
doi=$(pdfinfo "$1" | grep -io "doi:.*") ||
doi=$(pdftotext "$1" 2>/dev/null - | grep -io "doi:.*" -m 1) ||
exit 1
else
doi="$1"
fi
# Check crossref.org for the bib citation.
curl -s "https://api.crossref.org/works/$doi/transform/application/x-bibtex" -w "\\n"

View File

@ -1,5 +0,0 @@
#!/bin/sh
cat "${XDG_DATA_HOME:-$HOME/.local/share}"/larbs/getkeys/"$1" 2>/dev/null && exit
echo "Run command with one of the following arguments for info about that program:"
ls "${XDG_DATA_HOME:-$HOME/.local/share}"/larbs/getkeys

View File

@ -1,278 +0,0 @@
#!/usr/bin/env bash
## Grimblast: a helper for screenshots within hyprland
## Requirements:
## - `grim`: screenshot utility for wayland
## - `slurp`: to select an area
## - `hyprctl`: to read properties of current window (provided by Hyprland)
## - `hyprpicker`: to freeze the screen when selecting area
## - `wl-copy`: clipboard utility (provided by wl-clipboard)
## - `jq`: json utility to parse hyprctl output
## - `notify-send`: to show notifications (provided by libnotify)
## Those are needed to be installed, if unsure, run `grimblast check`
##
## See `man 1 grimblast` or `grimblast usage` for further details.
## Author: Misterio (https://github.com/misterio77)
## This tool is based on grimshot, with swaymsg commands replaced by their
## hyprctl equivalents.
## https://github.com/swaywm/sway/blob/master/contrib/grimshot
getTargetDirectory() {
test -f "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs" &&
. "${XDG_CONFIG_HOME:-$HOME/.config}/user-dirs.dirs"
echo "${XDG_SCREENSHOTS_DIR:-${XDG_PICTURES_DIR:-$HOME}}"
}
tmp_editor_directory() {
echo "/tmp"
}
#Detect if $GRIMBLAST_EDITOR env exist
env_editor_confirm() {
if [ -n "$GRIMBLAST_EDITOR" ]; then
echo "GRIMBLAST_EDITOR is set. Continuing..."
else
echo "GRIMBLAST_EDITOR is not set. Defaulting to gimp"
GRIMBLAST_EDITOR=gimp
fi
}
NOTIFY=no
CURSOR=
FREEZE=
WAIT=no
SCALE=
HYPRPICKER_PID=-1
while [ $# -gt 0 ]; do
key="$1"
case $key in
-n | --notify)
NOTIFY=yes
shift # past argument
;;
-c | --cursor)
CURSOR=yes
shift # past argument
;;
-f | --freeze)
FREEZE=yes
shift # past argument
;;
-w | --wait)
shift
WAIT=$1
if echo "$WAIT" | grep "[^0-9]" -q; then
echo "Invalid value for wait '$WAIT'" >&2
exit 3
fi
shift
;;
-s | --scale)
shift # past argument
if [ $# -gt 0 ]; then
SCALE="$1" # assign the next argument to SCALE
shift # past argument
else
echo "Error: Missing argument for --scale option."
exit 1
fi
;;
*) # unknown option
break # done with parsing --flags
;;
esac
done
ACTION=${1:-usage}
SUBJECT=${2:-screen}
FILE=${3:-$(getTargetDirectory)/$(date -Ins).png}
FILE_EDITOR=${3:-$(tmp_editor_directory)/$(date -Ins).png}
if [ "$ACTION" != "save" ] && [ "$ACTION" != "copy" ] && [ "$ACTION" != "edit" ] && [ "$ACTION" != "copysave" ] && [ "$ACTION" != "check" ]; then
echo "Usage:"
echo " grimblast [--notify] [--cursor] [--freeze] [--wait N] [--scale <scale>] (copy|save|copysave|edit) [active|screen|output|area] [FILE|-]"
echo " grimblast check"
echo " grimblast usage"
echo ""
echo "Commands:"
echo " copy: Copy the screenshot data into the clipboard."
echo " save: Save the screenshot to a regular file or '-' to pipe to STDOUT."
echo " copysave: Combine the previous 2 options."
echo " edit: Open screenshot in the image editor of your choice (default is gimp). See man page for info."
echo " check: Verify if required tools are installed and exit."
echo " usage: Show this message and exit."
echo ""
echo "Targets:"
echo " active: Currently active window."
echo " screen: All visible outputs."
echo " output: Currently active output."
echo " area: Manually select a region or window."
exit
fi
notify() {
notify-send -t 3000 -a grimblast "$@"
}
notifyOk() {
[ "$NOTIFY" = "no" ] && return
notify "$@"
}
notifyError() {
if [ $NOTIFY = "yes" ]; then
TITLE=${2:-"Screenshot"}
MESSAGE=${1:-"Error taking screenshot with grim"}
notify -u critical "$TITLE" "$MESSAGE"
else
echo "$1"
fi
}
resetFade() {
if [[ -n $FADE && -n $FADEOUT ]]; then
hyprctl keyword animation "$FADE" >/dev/null
hyprctl keyword animation "$FADEOUT" >/dev/null
fi
}
killHyprpicker() {
if [ ! $HYPRPICKER_PID -eq -1 ]; then
kill $HYPRPICKER_PID
fi
}
die() {
killHyprpicker
MSG=${1:-Bye}
notifyError "Error: $MSG"
exit 2
}
check() {
COMMAND=$1
if command -v "$COMMAND" >/dev/null 2>&1; then
RESULT="OK"
else
RESULT="NOT FOUND"
fi
echo " $COMMAND: $RESULT"
}
takeScreenshot() {
FILE=$1
GEOM=$2
OUTPUT=$3
if [ -n "$OUTPUT" ]; then
grim ${CURSOR:+-c} ${SCALE:+-s "$SCALE"} -o "$OUTPUT" "$FILE" || die "Unable to invoke grim"
elif [ -z "$GEOM" ]; then
grim ${CURSOR:+-c} ${SCALE:+-s "$SCALE"} "$FILE" || die "Unable to invoke grim"
else
grim ${CURSOR:+-c} ${SCALE:+-s "$SCALE"} -g "$GEOM" "$FILE" || die "Unable to invoke grim"
resetFade
fi
}
wait() {
if [ "$WAIT" != "no" ]; then
sleep "$WAIT"
fi
}
if [ "$ACTION" = "check" ]; then
echo "Checking if required tools are installed. If something is missing, install it to your system and make it available in PATH..."
check grim
check slurp
check hyprctl
check hyprpicker
check wl-copy
check jq
check notify-send
exit
elif [ "$SUBJECT" = "active" ]; then
wait
FOCUSED=$(hyprctl activewindow -j)
GEOM=$(echo "$FOCUSED" | jq -r '"\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"')
APP_ID=$(echo "$FOCUSED" | jq -r '.class')
WHAT="$APP_ID window"
elif [ "$SUBJECT" = "screen" ]; then
wait
GEOM=""
WHAT="Screen"
elif [ "$SUBJECT" = "output" ]; then
wait
GEOM=""
OUTPUT=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true)' | jq -r '.name')
WHAT="$OUTPUT"
elif [ "$SUBJECT" = "area" ]; then
if [ "$FREEZE" = "yes" ] && [ "$(command -v "hyprpicker")" ] >/dev/null 2>&1; then
hyprpicker -r -z &
sleep 0.2
HYPRPICKER_PID=$!
fi
# get fade & fadeOut animation and unset it
# this removes the black border seen around screenshots
FADE="$(hyprctl -j animations | jq -jr '.[0][] | select(.name == "fade") | .name, ",", (if .enabled == true then "1" else "0" end), ",", (.speed|floor), ",", .bezier')"
FADEOUT="$(hyprctl -j animations | jq -jr '.[0][] | select(.name == "fadeOut") | .name, ",", (if .enabled == true then "1" else "0" end), ",", (.speed|floor), ",", .bezier')"
hyprctl keyword animation 'fade,0,1,default' >/dev/null
hyprctl keyword animation 'fadeOut,0,1,default' >/dev/null
WORKSPACES="$(hyprctl monitors -j | jq -r 'map(.activeWorkspace.id)')"
WINDOWS="$(hyprctl clients -j | jq -r --argjson workspaces "$WORKSPACES" 'map(select([.workspace.id] | inside($workspaces)))')"
# shellcheck disable=2086 # if we don't split, spaces mess up slurp
GEOM=$(echo "$WINDOWS" | jq -r '.[] | "\(.at[0]),\(.at[1]) \(.size[0])x\(.size[1])"' | slurp $SLURP_ARGS)
# Check if user exited slurp without selecting the area
if [ -z "$GEOM" ]; then
killHyprpicker
resetFade
exit 1
fi
WHAT="Area"
wait
elif [ "$SUBJECT" = "window" ]; then
die "Subject 'window' is now included in 'area'"
else
die "Unknown subject to take a screen shot from" "$SUBJECT"
fi
if [ "$ACTION" = "copy" ]; then
takeScreenshot - "$GEOM" "$OUTPUT" | wl-copy --type image/png || die "Clipboard error"
notifyOk "$WHAT copied to buffer"
elif [ "$ACTION" = "save" ]; then
if takeScreenshot "$FILE" "$GEOM" "$OUTPUT"; then
TITLE="Screenshot of $SUBJECT"
MESSAGE=$(basename "$FILE")
notifyOk "$TITLE" "$MESSAGE" -i "$FILE"
echo "$FILE"
else
notifyError "Error taking screenshot with grim"
fi
elif [ "$ACTION" = "edit" ]; then
env_editor_confirm
if takeScreenshot "$FILE_EDITOR" "$GEOM" "$OUTPUT"; then
TITLE="Screenshot of $SUBJECT"
MESSAGE="Open screenshot in image editor"
notifyOk "$TITLE" "$MESSAGE" -i "$FILE_EDITOR"
$GRIMBLAST_EDITOR "$FILE_EDITOR"
echo "$FILE_EDITOR"
else
notifyError "Error taking screenshot"
fi
else
if [ "$ACTION" = "copysave" ]; then
takeScreenshot - "$GEOM" "$OUTPUT" | tee "$FILE" | wl-copy --type image/png || die "Clipboard error"
notifyOk "$WHAT copied to buffer and saved to $FILE" -i "$FILE"
echo "$FILE"
else
notifyError "Error taking screenshot with grim"
fi
fi
killHyprpicker

View File

@ -1,12 +0,0 @@
#!/bin/sh
# Some optional functions in LARBS require programs not installed by default. I
# use this little script to check to see if a command exists and if it doesn't
# it informs the user that they need that command to continue. This is used in
# various other scripts for clarity's sake.
for x in "$@"; do
if ! which "$x" >/dev/null 2>&1 && ! pacman -Qq "$x" >/dev/null 2>&1; then
notify-send "📦 $x" "must be installed for this function." && exit 1 ;
fi
done

View File

@ -1,8 +0,0 @@
#!/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from jsonschema.cli import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

View File

@ -1,8 +0,0 @@
#!/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from keep.cli import cli
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(cli())

View File

@ -1,8 +0,0 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import re
import sys
from keyring.cli import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

View File

@ -1,16 +0,0 @@
#!/bin/bash
WINDOW=$(wmctrl -l -x | tr '.' ' ' | awk '{print $3,$6}' | dmenu -i -x 935 -y 6 -z 420 -l 8 -p windowkill | awk '{print $1}')
windowscount() {
pgrep $WINDOW | wc -l
}
## kill window/s ##
if [ "$(windowcount)" == "1" ]; then
pkill $(pgrep $WINDOW)
else
killall $WINDOW
fi

Binary file not shown.

View File

@ -1,14 +0,0 @@
#!/bin/sh
# This is bound to Shift+PrintScreen by default, requires maim. It lets you
# choose the kind of screenshot to take, including copying the image or even
# highlighting an area to copy. scrotcucks on suicidewatch right now.
case "$(printf "a selected area\\ncurrent window\\nfull screen\\na selected area (copy)\\ncurrent window (copy)\\nfull screen (copy)" | dmenu -l 6 -i -p "Screenshot which area?")" in
"a selected area") maim -s pic-selected-"$(date '+%y%m%d-%H%M-%S').png" && herbe 'Selected area was saved in $HOME/...' ;;
"current window") maim -i "$(xdotool getactivewindow)" pic-window-"$(date '+%y%m%d-%H%M-%S').png" && herbe 'Screenshoot saved in $HOME/...' ;;
"full screen") maim pic-full-"$(date '+%y%m%d-%H%M-%S').png" && herbe 'Screenshoot saved in $HOME/...' ;;
"a selected area (copy)") maim -s | xclip -selection clipboard -t image/png && herbe 'Selected area copy to clipboard...' ;;
"current window (copy)") maim -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png && herbe 'Selected area copy to clipboard...' ;;
"full screen (copy)") maim | xclip -selection clipboard -t image/png && herbe 'Selected area copy to clipboard...' ;;
esac

View File

@ -1,10 +0,0 @@
#!/bin/sh
echo "Enter the name of the script: "
read script
echo "#!/bin/sh" > /home/javier/.local/bin/scripts/$script &&
chmod +x /home/javier/.local/bin/scripts/$script &&
nvim -c "norm Go" \
-c "startinsert" /home/javier/.local/bin/scripts/$script

View File

@ -1,13 +0,0 @@
#!/bin/sh
# opout: "open output": A general handler for opening a file's intended output,
# usually the pdf of a compiled document. I find this useful especially
# running from vim.
basename="$(echo "${*}" | sed 's/\.[^\/.]*$//')"
case "${*}" in
*.tex|*.m[dse]|*.[rR]md|*.mom|*.[0-9]) setsid -f xdg-open "$basename".pdf >/dev/null 2>&1 ;;
*.html) setsid -f "$BROWSER" "$basename".html >/dev/null 2>&1 ;;
*.sent) setsid -f sent "$1" >/dev/null 2>&1 ;;
esac

View File

@ -1,8 +0,0 @@
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import re
import sys
from pyprland.command import main
if __name__ == '__main__':
sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
sys.exit(main())

View File

@ -1,2 +0,0 @@
~/.local/bin
~/.local/bin/scripts

View File

@ -1,12 +0,0 @@
#!/bin/sh
# The famous "get a menu of emojis to copy" script.
# Get user selection via dmenu from emoji file.
chosen=$(cut -d ';' -f1 ~/.local/share/emoji | fuzzel --dmenu -p "Select an emoji: " | sed "s/ .*//")
# Exit if none chosen.
[ -z "$chosen" ] && exit
printf "$chosen" | wl-copy
notify-send "'$chosen' copied to clipboard." &

View File

@ -1,8 +0,0 @@
#!/usr/bin/sh
cd /home/javier/pages/ && sh build.sh
cp -r /home/javier/pages/public/* /home/javier/website/
cd /home/javier/website/
git add .
git commit -m "commit $(date '+%Y-%m-%d | %r')"
git push && echo "website updated and pushed to codeberg" || echo "something is wrong..."

View File

@ -1,7 +0,0 @@
#!/bin/sh
# Created By: Javier Pacheco - jpacheco@cock.li
# Created On: 29/03/24
# Project: Check if have internet connection.
ping -c 1 google.com 1> /dev/null 2>&1 && echo "#00FF00" || echo "#FF0000"

View File

@ -1,38 +0,0 @@
#!/bin/sh
# Created By: Javier Pacheco - jpacheco@cock.li
# Created On: 23/10/2023
# Project: dmenu-exit script
dm="fuzzel --dmenu"
# Options
shutdown="Shutdown"
reboot="Reboot"
hibernate="Sleep"
lock="Lock"
chosen=$(printf "$reboot\n$shutdown\n$hibernate\n$lock" | $dm -p "Venom - Session: ")
case $chosen in
$shutdown)
herbe "El sistema se apagara en...." "$( echo "15 segundos" )" &
sleep 5
herbe "El sistema se apagara en...." "$( echo "10 segundos" )" &
sleep 5
herbe "El sistema se apagara en...." "$( echo "5 segundos" )" &
sleep 4
doas shutdown -P now
;;
$reboot)
doas reboot
;;
$hibernate)
doas zzz && slock
;;
$lock)
lock
;;
*) herbe "Ninguna opcion fue seleccionada..."
esac

View File

@ -1,24 +0,0 @@
#!/bin/sh
case "$(printf "extract\ncompress\ndelete" | fuzzel --dmenu -p 'What to do: ' )" in
'extract') cd /home/javier/vids/ && 7z e /home/javier/vids/.vids & herbe "extracting files..."
;;
'compress') cd /home/javier/vids/ && tar c /home/javier/vids/*.mp4 -f .vids && rm /home/javier/vids/*.mp4 & herbe "compressing files..."
;;
'delete') rm /home/javier/vids/*.mp4 && herbe "deleting files..."
;;
*) exit 1 & herbe "nothing to do..."
;;
esac
extract_files () {
cd /home/javier/vids/ && 7z e /home/javier/vids/.vids
}
compress_files () {
cd /home/javier/vids/ && tar c /home/javier/vids/*.mp4 -f /home/javier/vids/.vids && rm /home/javier/vids/*.mp4
}
remove_files () {
rm /home/javier/vids/*.mp4
}

View File

@ -1,22 +0,0 @@
#!/bin/sh
MENU=$(echo "documentos\nimágenes\nmúsica\nvídeos" | dmenu -i -l 8)
case $MENU in
documentos)
filter=".pdf"
;;
imágenes)
filter=".png|.jpg|.jpeg"
;;
música)
filter=".mp3|.flac|.wav|.ogg|.webm"
;;
vídeos)
filter=".mp4|.avi|.mkv"
;;
esac
if [ -n "$filter" ]; then
nuke $(find $HOME -type f | grep -E "$filter" | dmenu -i -l 10)
fi

View File

@ -1,4 +0,0 @@
#!/bin/sh
awk '{print $2}' ~/vids/track.txt | dmenu -i -l 5 -p "select url=" | xargs vid.sh "$@"

View File

@ -1,48 +0,0 @@
#!/bin/bash
#FUZZEL_IGNORED_BINDIRS=/usr/bin:/usr/bin/core_perl:/usr/bin/site_perl:/usr/bin/vendor_perl
exit_err() {
echo "$1" >&2
exit 1
}
is_bindir_enabled() {
if [[ "${_ignored_bindirs[*]}" =~ "$1" ]]; then
return 1
fi
return 0
}
_fuzzel_exec=fuzzel
if which fuzzel-launch &>/dev/null; then
_fuzzel_exec=fuzzel-launch
fi
_ignored_bindirs=""
if [ -n "$FUZZEL_IGNORED_BINDIRS" ]; then
_ignored_bindirs=($(echo $FUZZEL_IGNORED_BINDIRS | tr ':' '\n' | sort | uniq))
fi
_bindirs=($(echo $PATH | tr ':' '\n' | sort | uniq))
_lsdirs=()
for _bindir in "${_bindirs[@]}"; do
if [ -d $_bindir ] && is_bindir_enabled $_bindir; then
_lsdirs+=($_bindir)
fi
done
if [ -n "$_lsdirs" ]; then
_execfile="$(ls ${_lsdirs[@]} | sort | uniq | sed '/^$/d' | $_fuzzel_exec --dmenu --no-fuzzy)"
[ -n "$_execfile" ] || { echo "No executable was selected!"; exit; }
if which "$_execfile"; then
exec "$_execfile"
else
exit_err "No executable: $_execfile"
fi
else
exit_err "Failed finding executables!"
fi

View File

@ -1,229 +0,0 @@
#!/usr/bin/env bash
# fzf-tmux: starts fzf in a tmux pane
# usage: fzf-tmux [LAYOUT OPTIONS] [--] [FZF OPTIONS]
fail() {
>&2 echo "$1"
exit 2
}
fzf="$(command -v fzf 2> /dev/null)" || fzf="$(dirname "$0")/fzf"
[[ -x "$fzf" ]] || fail 'fzf executable not found'
args=()
opt=""
skip=""
swap=""
close=""
term=""
[[ -n "$LINES" ]] && lines=$LINES || lines=$(tput lines) || lines=$(tmux display-message -p "#{pane_height}")
[[ -n "$COLUMNS" ]] && columns=$COLUMNS || columns=$(tput cols) || columns=$(tmux display-message -p "#{pane_width}")
help() {
>&2 echo 'usage: fzf-tmux [LAYOUT OPTIONS] [--] [FZF OPTIONS]
LAYOUT OPTIONS:
(default layout: -d 50%)
Popup window (requires tmux 3.2 or above):
-p [WIDTH[%][,HEIGHT[%]]] (default: 50%)
-w WIDTH[%]
-h HEIGHT[%]
-x COL
-y ROW
Split pane:
-u [HEIGHT[%]] Split above (up)
-d [HEIGHT[%]] Split below (down)
-l [WIDTH[%]] Split left
-r [WIDTH[%]] Split right
'
exit
}
while [[ $# -gt 0 ]]; do
arg="$1"
shift
[[ -z "$skip" ]] && case "$arg" in
-)
term=1
;;
--help)
help
;;
--version)
echo "fzf-tmux (with fzf $("$fzf" --version))"
exit
;;
-p*|-w*|-h*|-x*|-y*|-d*|-u*|-r*|-l*)
if [[ "$arg" =~ ^-[pwhxy] ]]; then
[[ "$opt" =~ "-E" ]] || opt="-E"
elif [[ "$arg" =~ ^.[lr] ]]; then
opt="-h"
if [[ "$arg" =~ ^.l ]]; then
opt="$opt -d"
swap="; swap-pane -D ; select-pane -L"
close="; tmux swap-pane -D"
fi
else
opt=""
if [[ "$arg" =~ ^.u ]]; then
opt="$opt -d"
swap="; swap-pane -D ; select-pane -U"
close="; tmux swap-pane -D"
fi
fi
if [[ ${#arg} -gt 2 ]]; then
size="${arg:2}"
else
if [[ "$1" =~ ^[0-9%,]+$ ]] || [[ "$1" =~ ^[A-Z]$ ]]; then
size="$1"
shift
else
continue
fi
fi
if [[ "$arg" =~ ^-p ]]; then
if [[ -n "$size" ]]; then
w=${size%%,*}
h=${size##*,}
opt="$opt -w$w -h$h"
fi
elif [[ "$arg" =~ ^-[whxy] ]]; then
opt="$opt ${arg:0:2}$size"
elif [[ "$size" =~ %$ ]]; then
size=${size:0:((${#size}-1))}
if [[ -n "$swap" ]]; then
opt="$opt -p $(( 100 - size ))"
else
opt="$opt -p $size"
fi
else
if [[ -n "$swap" ]]; then
if [[ "$arg" =~ ^.l ]]; then
max=$columns
else
max=$lines
fi
size=$(( max - size ))
[[ $size -lt 0 ]] && size=0
opt="$opt -l $size"
else
opt="$opt -l $size"
fi
fi
;;
--)
# "--" can be used to separate fzf-tmux options from fzf options to
# avoid conflicts
skip=1
continue
;;
*)
args+=("$arg")
;;
esac
[[ -n "$skip" ]] && args+=("$arg")
done
if [[ -z "$TMUX" ]]; then
"$fzf" "${args[@]}"
exit $?
fi
# --height option is not allowed. CTRL-Z is also disabled.
args=("${args[@]}" "--no-height" "--bind=ctrl-z:ignore")
# Handle zoomed tmux pane without popup options by moving it to a temp window
if [[ ! "$opt" =~ "-E" ]] && tmux list-panes -F '#F' | grep -q Z; then
zoomed_without_popup=1
original_window=$(tmux display-message -p "#{window_id}")
tmp_window=$(tmux new-window -d -P -F "#{window_id}" "bash -c 'while :; do for c in \\| / - '\\;' do sleep 0.2; printf \"\\r\$c fzf-tmux is running\\r\"; done; done'")
tmux swap-pane -t $tmp_window \; select-window -t $tmp_window
fi
set -e
# Clean up named pipes on exit
id=$RANDOM
argsf="${TMPDIR:-/tmp}/fzf-args-$id"
fifo1="${TMPDIR:-/tmp}/fzf-fifo1-$id"
fifo2="${TMPDIR:-/tmp}/fzf-fifo2-$id"
fifo3="${TMPDIR:-/tmp}/fzf-fifo3-$id"
tmux_win_opts=( $(tmux show-window-options remain-on-exit \; show-window-options synchronize-panes | sed '/ off/d; s/^/set-window-option /; s/$/ \\;/') )
cleanup() {
\rm -f $argsf $fifo1 $fifo2 $fifo3
# Restore tmux window options
if [[ "${#tmux_win_opts[@]}" -gt 0 ]]; then
eval "tmux ${tmux_win_opts[*]}"
fi
# Remove temp window if we were zoomed without popup options
if [[ -n "$zoomed_without_popup" ]]; then
tmux display-message -p "#{window_id}" > /dev/null
tmux swap-pane -t $original_window \; \
select-window -t $original_window \; \
kill-window -t $tmp_window \; \
resize-pane -Z
fi
if [[ $# -gt 0 ]]; then
trap - EXIT
exit 130
fi
}
trap 'cleanup 1' SIGUSR1
trap 'cleanup' EXIT
envs="export TERM=$TERM "
if [[ "$opt" =~ "-E" ]]; then
FZF_DEFAULT_OPTS="--margin 0,1 $FZF_DEFAULT_OPTS"
tmux_verson=$(tmux -V)
if [[ ! $tmux_verson =~ 3\.2 ]]; then
FZF_DEFAULT_OPTS="--border $FZF_DEFAULT_OPTS"
opt="-B $opt"
fi
fi
[[ -n "$FZF_DEFAULT_OPTS" ]] && envs="$envs FZF_DEFAULT_OPTS=$(printf %q "$FZF_DEFAULT_OPTS")"
[[ -n "$FZF_DEFAULT_COMMAND" ]] && envs="$envs FZF_DEFAULT_COMMAND=$(printf %q "$FZF_DEFAULT_COMMAND")"
echo "$envs;" > "$argsf"
# Build arguments to fzf
opts=$(printf "%q " "${args[@]}")
pppid=$$
echo -n "trap 'kill -SIGUSR1 -$pppid' EXIT SIGINT SIGTERM;" >> $argsf
close="; trap - EXIT SIGINT SIGTERM $close"
export TMUX=$(cut -d , -f 1,2 <<< "$TMUX")
mkfifo -m o+w $fifo2
if [[ "$opt" =~ "-E" ]]; then
cat $fifo2 &
if [[ -n "$term" ]] || [[ -t 0 ]]; then
cat <<< "\"$fzf\" $opts > $fifo2; out=\$? $close; exit \$out" >> $argsf
else
mkfifo $fifo1
cat <<< "\"$fzf\" $opts < $fifo1 > $fifo2; out=\$? $close; exit \$out" >> $argsf
cat <&0 > $fifo1 &
fi
tmux popup -d "$PWD" $opt "bash $argsf" > /dev/null 2>&1
exit $?
fi
mkfifo -m o+w $fifo3
if [[ -n "$term" ]] || [[ -t 0 ]]; then
cat <<< "\"$fzf\" $opts > $fifo2; echo \$? > $fifo3 $close" >> $argsf
else
mkfifo $fifo1
cat <<< "\"$fzf\" $opts < $fifo1 > $fifo2; echo \$? > $fifo3 $close" >> $argsf
cat <&0 > $fifo1 &
fi
tmux set-window-option synchronize-panes off \;\
set-window-option remain-on-exit off \;\
split-window -c "$PWD" $opt "bash -c 'exec -a fzf bash $argsf'" $swap \
> /dev/null 2>&1 || { "$fzf" "${args[@]}"; exit $?; }
cat $fifo2
exit "$(cat $fifo3)"

View File

@ -1,16 +0,0 @@
#!/bin/bash
string=$(hyprctl clients | grep floating | \
sed 's/[a-z]*//g ; s/://g' )
sum=0
# Split the string into an array
numbers=($string)
# Loop through the array and add each number to the sum
for num in "${numbers[@]}"; do
sum=$((sum + num))
done
[ $sum -gt 0 ] && echo "><>" || echo "[]="

View File

@ -1,30 +0,0 @@
#!/bin/bash
# Created By: Javier Pacheco - javier@jpacheco.xyz
# Created On: 13/03/24
# Project: Scratchpads -- hyprland
windows_in(){
hyprctl clients -j | jq ".[] | select(.workspace.name == \"special:$1\" )"
}
toggle_scratchpad(){
workspace_name="$1"
cmd="$2"
windows=$( windows_in "$workspace_name" )
# If not on latest , check the edit history of this post
if [ -z "$windows" ];then
hyprctl dispatch "exec [workspace special:$workspace_name] $cmd"
else
hyprctl dispatch togglespecialworkspace "$workspace_name"
fi
}
case "$1" in
terminal) toggle_scratchpad "terminal" "foot -a terminal -w 1250x700" ;;
file_manager) toggle_scratchpad "file_manager" "foot -a filemanager -e nnn" ;;
music_player) toggle_scratchpad "music_player" "foot -a musicplayer -e ncmpcpp" ;;
matrix) toggle_scratchpad "matrix" "foot -a matrix -e gomuks" ;;
webcam) toggle_scratchpad "webcam" "foot -a webcam -e webcam" ;;
esac

View File

@ -1,41 +0,0 @@
#!/bin/bash
# Función para obtener la dirección IP de una interfaz
get_ip_address() {
ip -o -4 addr show dev "$1" | awk '{split($4,a,"/"); print a[1]}'
}
# Comprueba si hay alguna conexión activa
if ip route | grep -q default; then
# Obtener la interfaz predeterminada
default_interface=$(ip route | awk '/default/ {print $5}')
ip_address=$(get_ip_address "$default_interface")
# Comprueba si la interfaz predeterminada es Wi-Fi o Ethernet
if ifconfig "$default_interface" &>/dev/null; then
icon=" "
alt_i="Wi-Fi"
elif ip link show "$default_interface" &>/dev/null; then
icon="󰈀 "
alt_i="ETH"
else
icon=""
fi
ping -c 1 google.com 1> /dev/null 2>&1 && status="connected" || status="no_connected"
# Imprimir información en formato JSON
json='{
"text": "'"${icon}"'",
"alt": "'"${alt_i}:${ip_address}"'",
"tooltip": "'"${default_interface}:${ip_address}"'",
"class": "'"${status}"'"
}'
echo $json
else
json='{
"text": "",
}'
fi

View File

@ -1,35 +0,0 @@
#!/bin/sh
ask() { \
response=$(printf "ON\\nOFF" | dmenu -i -l 2 -p "Turn ON or OFF")
case "$response" in
ON) toggleon ;;
OFF) toggleoff ;;
*) return 1 ;;
esac
}
toggleon() { \
case "$(printf "sala\\ncomedor\\ncuarto\\njuegos" | dmenu -l 5 -i -p "Wich led to turn ON?")" in
sala) magic-home state 10.0.0.3 on ;;
comedor) magic-home state 10.0.0.5 on && notify-send "Comedor Luz encendida";;
cuarto) magic-home state 10.0.0.10 on ;;
juegos) magic-home state 10.0.0.13 on ;;
esac
}
toggleoff() { \
case "$(printf "sala\\ncomedor\\ncuarto\\njuegos" | dmenu -l 5 -i -p "Wich led to turn ON?")" in
sala) magic-home state 10.0.0.3 off ;;
comedor) magic-home state 10.0.0.5 off ;;
cuarto) magic-home state 10.0.0.10 off ;;
juegos) magic-home state 10.0.0.13 off ;;
esac
}
case "$1" in
on) toggleon ;;
off) toggleoff ;;
*)ask ;;
esac

View File

@ -1,7 +0,0 @@
#!/bin/sh
pandoc $1 \
-o $2.pdf \
--template eisvogel \
--listings \
&& zathura $2.pdf & herbe $2.pdf was created...

View File

@ -1,79 +0,0 @@
#! /bin/sh
FALLBACK_OPENER=xdg-open
entry="$1"
mime="$(file -ibL "$entry" )"
FNAME=$(basename "$entry")
ext="${FNAME##*.}"
if [ -n "$ext" ]; then
ext="$(printf "%s" "${ext}" | tr '[:upper:]' '[:lower:]')"
fi
case "${ext}" in
## Archive
a|ace|alz|arc|arj|bz|bz2|cab|cpio|deb|gz|jar|lha|lz|lzh|lzma|lzo|\
rpm|rz|t7z|tar|tbz|tbz2|tgz|tlz|txz|tZ|tzo|war|xpi|xz|Z|zst|zip|rar|7z)
extract "$entry"
exit 0;;
## PDF
pdf)
devour zathura "$entry"
exit 1;;
## Audio
aac|flac|m4a|mid|midi|mpa|mp2|mp3|ogg|wav|wma)
mpv --no-video --quiet "$entry"
exit 1;;
## Video
avi|mkv|mp4|gif)
devour mpv "$entry"
exit 1;;
## Image
png|jpg|jpeg|PNG|JPG|JPEG|svg)
devour nsxiv "$entry"
exit 1;;
## Log files
log)
"$EDITOR" "$entry"
exit 0;;
## BitTorrent
torrenti|magnet)
aria2c -i "$entry"
exit 0;;
## OpenDocument
odt|ods|odp|sxw)
"$BROWSER" "$entry"
exit 0;;
## Markdown
md)
"$EDITOR" "$entry"
exit 0;;
## HTML
htm|html|xhtml)
## Preview as text conversion
"$BROWSER" "$entry"
exit 0;;
## JSON
json)
jq --color-output . "$entry"
exit 0 ;;
esac
case "$mime" in
*text*)
nvim "$entry"
exit 0 ;;
esac
$FALLBACK_OPENER "$entry"

View File

@ -1,19 +0,0 @@
#!/bin/bash
icon="󱓈 "
packages=$(scratch outdate | wc -l)
pack_list=$(scratch outdate | awk '{print $1}')
if [ $packages -gt 1 ];
then
json='{
"text": "'"${packages} ${icon}"'",
}'
else
json='{
"text": "'"${icon}"'"},
}'
fi
echo $json

View File

@ -1,56 +0,0 @@
#!/bin/sh
# Created By: Javier Pacheco - javier@jpacheco.xyz
# Created On: 29/03/24
# Project: Screen recorder in wayland
# Dependencies: wf-recorder wl-copy and a launcher like dmenu, fuzzel, etc.
SOUND_CARD=$(pactl list sources | awk '/Name/ && /.monitor/ {print $2}')
screencast() {
wf-recorder --audio=$SOUND_CARD -f /tmp/screencast.mp4
}
area() {
wf-recorder --audio=$SOUND_CARD -g "$(slurp)" -f /tmp/screencast.mp4
}
check_connection() {
ping -c 1 google.com 1> /dev/null 2>&1
}
share() {
notify-send "uploading.." "video is upoading to 0x0.st"
curl -F "file=@/tmp/screencast.mp4" https://0x0.st | wl-copy && notify-send "Video stored in 0x0.st"
}
kill_proc(){
pkill --signal SIGINT wf-recorder
if [ $? -eq 0 ];
then
notify-send "Video stored" "Video was stored in /tmp/screencast.mp4"
exit 0
fi
}
remove_vid() {
[ -f /tmp/screencast.mp4 ] && rm /tmp/screencast.mp4
}
kill_proc
OPT=$(printf "screencast\narea\nshare\nquit" | fuzzel --dmenu -p 'Select an option: ' )
case $OPT in
'screencast')
sleep 1
remove_vid
sleep 1
screencast;;
'area')
sleep 1
remove_vid
sleep 1
area;;
'share')
check_connection && share || notify-send "Error" "check your internet connection" ;;
*|quit) exit 0;;
esac

View File

@ -1,56 +0,0 @@
#!/bin/sh
# Created By: Javier Pacheco - jpacheco@cock.li
# Created On: 27/03/24
# Project: Screen share script to store a quick img to 0x0.st
MENU="fuzzel --dmenu"
OUTPUT_FILE="/tmp/capture.png"
OPT=$(printf "desktop\nwindow\nselection\nshare\nquit" | fuzzel --dmenu -p "Select a capture option: ")
# capture the desktop
desktop() {
grimblast save screen $OUTPUT_FILE && notify-send "Image stored in /tmp folder"
}
# capture focused window
window() {
grimblast save active $OUTPUT_FILE && notify-send "Image stored in /tmp folder"
}
# select region
selection() {
grimblast save area $OUTPUT_FILE && notify-send "Image stored in /tmp folder"
}
# share desktop [ https://0x0.st ]
check_connection() {
ping -c 1 google.com 1> /dev/null 2>&1
}
share() {
curl -F "file=@/tmp/capture.png" https://0x0.st | wl-copy && notify-send "Image stored in 0x0.st"
}
case $OPT in
desktop)
sleep 1
desktop
;;
window)
sleep 1
window
;;
selection)
sleep 1
selection
;;
share)
check_connection && share || notify-send "Error" "check your internet connection" ;;
*|quit)
exit 0
;;
esac

View File

@ -1,82 +0,0 @@
#!/bin/sh
# Created By: Javier Pacheco - javier@jpacheco.xyz
# Created On: 10/02/24
# Project: Screen recorder in wayland
pkill --signal SIGINT wf-recorder
if [ $? -eq 0 ];
then
notify-send "Video stored in /tmp/record_share.mp4"
exit 0
fi
speakers=$(pactl list sources | grep Name | grep monitor | awk '{print $2}')
MENU="fuzzel --dmenu"
OPT=$(printf "record\nrecord_no_sound\nsection\nsection_no_sound\nshare" | $MENU)
remove_vid() {
[ -f /tmp/record_share.mp4 ] && rm /tmp/record_share.mp4
}
record() {
wf-recorder --audio=$speakers -f /tmp/record_share.mp4
}
record_ns() {
wf-recorder -f /tmp/record_share.mp4
}
section() {
wf-recorder --audio=$speakers -g "$(slurp)" -f /tmp/record_share.mp4
}
section_ns() {
wf-recorder -g "$(slurp)" -f /tmp/record_share.mp4
}
kill_proc() {
pkill --signal SIGINT wf-recorder
}
share() {
curl -F "file=@/tmp/record_share.mp4" https://0x0.st | wl-copy
notify-send "Video stored in 0x0.st"
}
case "$OPT" in
record)
kill_proc
remove_vid
sleep 1
notify-send "Recording screen" "Act natural dude..."
record
;;
record_no_sound)
kill_proc
remove_vid
sleep 1
notify-send "Recording screen" "Act natural dude..."
record_ns
;;
section)
kill_proc
remove_vid
sleep 1
notify-send "Recording screen" "Act natural dude..."
section
;;
section_no_sound)
kill_proc
remove_vid
sleep 1
notify-send "Recording screen" "Act natural dude..."
section_ns
;;
share)
share
;;
*) exit 1
;;
esac

View File

@ -1,7 +0,0 @@
#!/bin/sh
regex='(((http|https|ftp|gopher)|mailto)[.:][^ >"\t]*|www\.[-a-z0-9.]+)[^ .,;\t>">\):]'
url=$(grep -Po "$regex" | dmenu -p "Go: " )
\ || exit
$BROWSER "$url"

View File

@ -1,5 +0,0 @@
#!/bin/sh
ffmpeg -i $1 -vcodec libx265 -crf 28 $2.mp4 && \
herbe "Video $1 was compressed" || herbe "Fail to compress video..."

View File

@ -1,3 +0,0 @@
#!/bin/sh
vid=$(yt-dlp -q -f 18 -g "$@"); devour ffplay -autoexit "$vid"

View File

@ -1,12 +0,0 @@
#!/usr/bin/sh
doas qemu-system-x86_64 \
-m 1G \
-smp 2 \
-bios /usr/share/qemu/edk2.git/ovmf-x64/OVMF-pure-efi.fd \
--enable-kvm \
-net nic -net user,hostfwd=tcp::2222-:22 \
-name 'FreeBSD' \
-boot d \
-hda ~/hddvm.qcow2 \
-cdrom ~/dwls/FreeBSD-14.0-RELEASE-amd64-disc1.iso

View File

@ -1,60 +0,0 @@
#!/bin/sh
# see https://bbs.archlinux.org/viewtopic.php?id=69589
usage="$0 Version $version Help\nDependencies: libnotify, alsa-utils\nusage:\n\t $0 [OPTIONS] -c COMMAND \nCOMMAND:\n-c\t up \n\t\t(increase volume by increment)\n\tdown \n\t\t(decrease volume by increment)\n\tmute \n\t\t(mute volume) \n\nOPTIONS:\n-i\t increment \n\t\t(the amount of db to increase/decrease)[default:2500] \n-m\t mixer \n\t\t(the device to change)[default:Master]"
command=
increment=2500
mixer="Master"
while getopts "c:i:m:h" o
do case "$o" in
c) command=$OPTARG;;
i) increment=$OPTARG;;
m) mixer=$OPTARG;;
h) echo -e "$usage"; exit 0;;
?) echo -e "$usage"; exit 0;;
esac
done
display_volume=0
icon_name=""
if [ "$command" = "up" ]; then
display_volume=$(amixer set $mixer $increment+ unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
else
if [ "$command" = "down" ]; then
display_volume=$(amixer set $mixer $increment- unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
else
if [ "$command" = "mute" ]; then
if amixer get Master | grep "\[on\]"; then
display_volume=0
icon_name="notification-audio-volume-muted"
amixer set $mixer mute
else
display_volume=$(amixer set $mixer unmute | grep -m 1 "%]" | cut -d "[" -f2|cut -d "%" -f1)
fi
else
echo -e $usage
exit 1
fi
fi
fi
if [ "$icon_name" = "" ]; then
if [ "$display_volume" = "0" ]; then
icon_name="notification-audio-volume-off"
else
if [ "$display_volume" -lt "33" ]; then
icon_name="notification-audio-volume-low"
else
if [ "$display_volume" -lt "67" ]; then
icon_name="notification-audio-volume-medium"
else
icon_name="notification-audio-volume-high"
fi
fi
fi
fi
herbe " " -i $icon_name -h int:value:$display_volume -h string:synchronous:volume

View File

@ -1,139 +0,0 @@
#!/bin/sh
# Created By: Javier Pacheco - javier@jpacheco.xyz
# Created On: 23/03/24
# Project: A venomlinux scratch utility
# Dependencies: wget fzf
# Define color variables
BLACK='\033[0;30m'
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
BLUE='\033[0;34m'
PURPLE='\033[0;35m'
CYAN='\033[0;36m'
WHITE='\033[0;37m'
BOLD='\033[1m'
END='\033[0m'
# [[ Variables ]]
# Ports directories:
smain=/usr/ports/main/
custom=/home/javier/.local/src/ports/
# fuzzy finder opt
fz="fzf"
# Define a list of the scratch commands
actions="install full_update update_ports remove purge cache"
# Dependencies needed.
dependencies="wget fzf"
# [[ Functions ]]
# Greeting
initial_msg() {
printf "${BOLD}:: Welcome to the venomlinux scratch utility\n${END}"
}
# Install a port.
ins() {
opt=$(find $smain $custom -maxdepth 1 -mindepth 1 -type d -printf "%f\n" | sort -u | \
$fz --prompt="Select package{s} to install: ")
[ -z "$opt" ] || doas scratch install "$opt" && exit
}
# Full_update, purge, remove orphans, clean cache.
f_update() {
doas scratch sync && \
doas scratch sysup && \
doas scratch purge && \
doas scratch cache && \
doas scratch missingdep && \
doas scratch integrity && \
doas revdep -r
}
# Delete a port.
del() {
opt=$(ls $(pkgadd --print-dbdir) | $fz --prompt="Select package{s} to remove: ")
[ -z "$opt" ] || doas scratch remove "$opt" && exit
}
# Purge a port.
purg() {
opt=$(ls $(pkgadd --print-dbdir) | $fz --prompt="Select package{s} to remove: ")
[ -z "$opt" ] || doas scratch purge "$opt" && exit
}
# Function to check if a dependency is installed
check_dependency() {
command -v "$1" >/dev/null 2>&1 || { printf >&2 "${RED}Error: Please install required dependencies and try it again.\nDependencies:\n\n${BOLD}:: wget\n:: ${BOLD}fzf\n${END}"; exit 1 ; }
}
# Check if each dependency are installed.
check_deps(){
for dep in $dependencies; do
check_dependency "$dep"
done
}
# Function to check internet connectivity
check_internet() {
wget -q --spider http://google.com
if [ $? -gt 0 ]; then
printf "${RED}${BOLD}Error: No internet connection. Script will now exit.\n${END}"
exit 1
fi
}
# [[ Sequence ]]
clear
initial_msg
check_internet
check_deps
printf "${CYAN}${BOLD}:: What do you want to do?\n${END}"
selected_action=$(printf '%s\n' $actions | $fz)
case $selected_action in
install)
printf "${GREEN}${BOLD}What port do you want to install: \n${END}"
ins && notify-send "Venom - Linux" "Package installed succesfully"
printf "${GREEN}${BOLD}:: Port $opt was succesfully installed.\n${END}"
;;
full_update)
f_update && pkill -SIGRTMIN+8 waybar
notify-send "Venom - Linux" "Your system is up to date"
clear
printf "${CYAN}${BOLD}:: Your system is now up to date\n${END}"
;;
update_ports)
clear
doas portsync && notify-send "Venom - Linux" "Venom ports updated."
clear
printf "${GREEN}${BOLD}:: Venom ports are now up to date\n${END}"
;;
remove)
printf "${RED}${BOLD}What port do you want to remove: \n${END}"
del && notify-send "Venom - Linux" "Package removed succesfully"
printf "${RED}${BOLD}:: Port $opt removed from your system.\n${END}"
;;
purge)
printf "${RED}${BOLD}What port do you want to purge: \n${END}"
purg && notify-send "Venom - Linux" "Packages removed succesfully"
printf "${RED}${BOLD}:: Port $opt and its denendencies are removed from your system.\n${END}"
;;
cache)
clear
printf "${CYAN}${BOLD}:: Cleaning your venom system cache...\n${END}"
doas scratch cache && notify-send "Venom - Linux" "Venom cache cleaned."
printf "${CYAN}${BOLD}:: Your venom system cache is cleaned\n${END}"
;;
*)
clear && exit
;;
esac

View File

@ -1,7 +0,0 @@
#!/bin/sh
# Created By: Javier Pacheco - jpacheco@cock.li
# Created On: 23/03/24
echo "updating system..."
doas scratch sync && doas scratch sysup && doas scratch cache && doas scratch missingdep && doas scratch integrity && doas revdep -r

View File

@ -1,4 +0,0 @@
#!/bin/sh
ffplay -window_title Webcam -fast -video_size 580x420 /dev/video0 & herbe "Opening WebCam"

View File

@ -1,7 +0,0 @@
#!/bin/sh
word=$(wl-paste)
res=$(curl -s "https://api.dictionaryapi.dev/api/v2/entries/en_US/$word")
regex=$'"definition":"\K(.*?)(?=")'
definitions=$(echo $res | grep -Po "$regex")
separatedDefinition=$(sed ':a;N;$!ba;s/\n/\n\n/g' <<< "$definitions")
notify-send -u low -t 10000 "$word" "$separatedDefinition"

View File

@ -1,12 +0,0 @@
#!/bin/sh
# Created By: Javier Pacheco - jpacheco@cock.li
# Created On: 04/03/24
# Project: Description of the script
case $1 in
start) find /etc/rc.d/ | fzf --prompt="Service to start:" | xargs -I{} doas {} start ;;
restart) find /etc/rc.d/ | fzf --prompt="Service to restart:" | xargs -I{} doas {} restart ;;
stop) find /etc/rc.d/ | fzf --prompt="Service to stop:" | xargs -I{} doas {} stop ;;
status) find /etc/rc.d/ | fzf --prompt="Service to check status :"| xargs -I{} doas {} status ;;
esac

View File

@ -1,10 +0,0 @@
#!/bin/sh
case "$(printf "lock\nsleep\nreboot\nshutdown\nrestart_hyprland" | fuzzel --dmenu -p "Action: " )" in
'lock') swaylock ;;
'sleep') doas zzz -z;;
'reboot') doas reboot ;;
'restart_hyprland') hyprctl dispatch exit ;;
'shutdown') doas poweroff ;;
*) exit 0 ;;
esac

View File

@ -1,58 +0,0 @@
#!/bin/sh
#original artwork by http://www.sanderfocus.nl/#/portfolio/tech-heroes
#converted to shell by #nixers @ irc.unix.chat
kernel="$(uname -r)"
name="$(printf "javier@void")"
os="$(echo "$PRETTY_NAME")"
sys="$(echo $(uname))"
shell=$(printf "$(basename $SHELL)")
init=$(cat /proc/1/comm)
cpu="$(lscpu | awk '/name/ {print $3, $4, $7, $8}')"
tr="$(printf "$TERM")"
#Información del WM
ui=$(echo "dwm")
#Información del manejador de paquetes
manager=$(which xbps-query 2>/dev/null)
manager=${manager##*/}
case $manager in
xbps-query) packages="$(xbps-query -l | wc -l)";;
esac
#Detección de ram
memused=$( free -m | awk '/^Mem:/ {print $3 "MiB"}')
memtotal=$( free -m | awk '/^Mem:/ {print $2 "MiB"}')
#Detección de disco
storageused=$(df -h / | grep "/" | awk '{print $3}')
storageavail=$(df -h / | grep "/" | awk '{print $2}')
st=$(df -h / | grep "/" | awk '{print $2" / " $4" / "$3}')
cat << 'eof'
,_ ,_==▄▂
, ▂▃▄▄▅▅▅▂▅¾. / /
▄▆<´ "»▓▓▓%\ / / / /
,▅7" ´>▓▓▓% / / > / >/%
▐¶▓ ,»▓▓¾´ /> %/%// / /
▓▃▅▅▅▃,,▄▅▅▅Æ\// ///>// />/ /
V║«¼.;→ ║<«.,`=// />//%/% / /
//╠<´ -²,)(▓~"-╝/¾/ %/>/ />
/ / / ▐% -./▄▃▄▅▐, /7//;//% / /
/ ////`▌▐ %zWv xX▓▇▌//&;% / /
/ / / %//%/¾½´▌▃▄▄▄▄▃▃▐¶\/& /
</ /</%//`▓!%▓%╣[38;5;255;╣WY<Y)y&/`\
/ / %/%//</%//\i7; ╠N>)VY>7; \_ UNIX IS VERY SIMPLE IT JUST NEEDS A
/ /</ //<///<_/%\▓ V%W%£)XY _/%‾\_, GENIUS TO UNDERSTAND ITS SIMPLICITY
/ / //%/_,=--^/%/%%\¾%¶%%} /%%%%%%;\,
%/< /_/ %%%%%;X%%\%%;, _/%%%;, \
/ / %%%%%%;, \%%l%%;// _/%;, dmr
/ %%%;, <;\-=-/ /
;, l
eof

View File

@ -1,2 +0,0 @@
#!/bin/sh
doas grub-mkconfig -o /boot/grub/grub.cfg

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@ -1,110 +0,0 @@
Copyright (c) 2015-2023, Renzhi Li (aka. Belleve Invis, belleve@typeof.net)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL
--------------------------
SIL Open Font License v1.1
====================================================
Preamble
----------
The goals of the Open Font License (OFL) are to stimulate worldwide
development of collaborative font projects, to support the font creation
efforts of academic and linguistic communities, and to provide a free and
open framework in which fonts may be shared and improved in partnership
with others.
The OFL allows the licensed fonts to be used, studied, modified and
redistributed freely as long as they are not sold by themselves. The
fonts, including any derivative works, can be bundled, embedded,
redistributed and/or sold with any software provided that any reserved
names are not used by derivative works. The fonts and derivatives,
however, cannot be released under any other type of license. The
requirement for fonts to remain under this license does not apply
to any document created using the fonts or their derivatives.
Definitions
-------------
`"Font Software"` refers to the set of files released by the Copyright
Holder(s) under this license and clearly marked as such. This may
include source files, build scripts and documentation.
`"Reserved Font Name"` refers to any names specified as such after the
copyright statement(s).
`"Original Version"` refers to the collection of Font Software components as
distributed by the Copyright Holder(s).
`"Modified Version"` refers to any derivative made by adding to, deleting,
or substituting -- in part or in whole -- any of the components of the
Original Version, by changing formats or by porting the Font Software to a
new environment.
`"Author"` refers to any designer, engineer, programmer, technical
writer or other person who contributed to the Font Software.
Permission & Conditions
------------------------
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Font Software, to use, study, copy, merge, embed, modify,
redistribute, and sell modified and unmodified copies of the Font
Software, subject to the following conditions:
1. Neither the Font Software nor any of its individual components,
in Original or Modified Versions, may be sold by itself.
2. Original or Modified Versions of the Font Software may be bundled,
redistributed and/or sold with any software, provided that each copy
contains the above copyright notice and this license. These can be
included either as stand-alone text files, human-readable headers or
in the appropriate machine-readable metadata fields within text or
binary files as long as those fields can be easily viewed by the user.
3. No Modified Version of the Font Software may use the Reserved Font
Name(s) unless explicit written permission is granted by the corresponding
Copyright Holder. This restriction only applies to the primary font name as
presented to the users.
4. The name(s) of the Copyright Holder(s) or the Author(s) of the Font
Software shall not be used to promote, endorse or advertise any
Modified Version, except to acknowledge the contribution(s) of the
Copyright Holder(s) and the Author(s) or with their explicit written
permission.
5. The Font Software, modified or unmodified, in part or in whole,
must be distributed entirely under this license, and must not be
distributed under any other license. The requirement for fonts to
remain under this license does not apply to any document created
using the Font Software.
Termination
-----------
This license becomes null and void if any of the above conditions are
not met.
DISCLAIMER
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
OTHER DEALINGS IN THE FONT SOFTWARE.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

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