update dots, begin with config
This commit is contained in:
parent
e705e3dce9
commit
d58237b387
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
|
@ -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" ]},
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Execute your favorite apps at launch
|
||||
# Prgrams that I run when Hyprland starts.
|
||||
|
||||
exec-once = pypr
|
||||
exec-once = swww init
|
||||
|
|
|
@ -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%-
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# [[ Scratchpads rules ]]
|
||||
# Keydind
|
||||
# Keybind
|
||||
# window rules
|
||||
|
||||
bind = $mainMod Shift,Return,exec,pypr toggle term
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1 +1 @@
|
|||
507
|
||||
528
|
||||
|
|
|
@ -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
|
|
@ -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
|
|
@ -1,8 +0,0 @@
|
|||
[window]
|
||||
width=1896
|
||||
height=1007
|
||||
sinkInputType=1
|
||||
sourceOutputType=1
|
||||
sinkType=0
|
||||
sourceType=1
|
||||
showVolumeMeters=1
|
Binary file not shown.
Binary file not shown.
|
@ -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" \
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
|
@ -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;
|
||||
}
|
|
@ -1,2 +0,0 @@
|
|||
Nsxiv.window.background: #121212
|
||||
Nsxiv.window.foreground: #458588
|
|
@ -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
|
||||
|
|
|
@ -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"
|
BIN
.local/bin/cron
BIN
.local/bin/cron
Binary file not shown.
|
@ -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.
|
|
@ -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.
|
@ -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.")
|
|
@ -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."
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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"
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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())
|
|
@ -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())
|
|
@ -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())
|
|
@ -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.
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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())
|
|
@ -1,2 +0,0 @@
|
|||
~/.local/bin
|
||||
~/.local/bin/scripts
|
|
@ -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." &
|
|
@ -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..."
|
|
@ -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"
|
|
@ -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
|
||||
|
|
@ -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
|
||||
}
|
|
@ -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
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
awk '{print $2}' ~/vids/track.txt | dmenu -i -l 5 -p "select url=" | xargs vid.sh "$@"
|
||||
|
|
@ -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
|
|
@ -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)"
|
|
@ -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 "[]="
|
|
@ -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
|
|
@ -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
|
||||
|
|
@ -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
|
|
@ -1,7 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
pandoc $1 \
|
||||
-o $2.pdf \
|
||||
--template eisvogel \
|
||||
--listings \
|
||||
&& zathura $2.pdf & herbe $2.pdf was created...
|
|
@ -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"
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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"
|
|
@ -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..."
|
|
@ -1,3 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
vid=$(yt-dlp -q -f 18 -g "$@"); devour ffplay -autoexit "$vid"
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -1,4 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
ffplay -window_title Webcam -fast -video_size 580x420 /dev/video0 & herbe "Opening WebCam"
|
||||
|
|
@ -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"
|
|
@ -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
|
|
@ -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
|
|
@ -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'
|
||||
[38;5;255m,_ ,_==▄▂[0m
|
||||
[38;5;255m, ▂▃▄▄▅▅[48;5;240m▅[48;5;20m▂[48;5;240m▅¾[0m. [38;5;199m/ [38;5;20m/[0m
|
||||
[38;5;255m[48;5;20m▄[0m[38;5;255m[48;5;199m▆[38;5;16m[48;5;255m<´ [38;5;32m"[38;5;34m»[38;5;255m▓▓[48;5;32m▓[48;5;240m%[0m\ [38;5;199m/ [38;5;20m/ [38;5;45m/ [38;5;118m/[0m
|
||||
[38;5;255m,[38;5;255m[48;5;240m▅[38;5;16m[48;5;255m7" [38;5;160m´[38;5;34m>[38;5;255m[48;5;39m▓▓[38;5;199m[48;5;255m▓[0m[38;5;255m% [38;5;20m/ [38;5;118m/ [38;5;199m> [38;5;118m/ [38;5;199m>[38;5;255m/[38;5;45m%[0m
|
||||
[38;5;255m▐[48;5;240m[38;5;255m¶[48;5;240m[38;5;255m▓[48;5;255m [38;5;196m,[38;5;34m»[48;5;201m[38;5;255m▓▓[0m[38;5;255m¾´[0m [38;5;199m/[38;5;255m> %[38;5;199m/[38;5;118m%[38;5;255m/[38;5;199m/ [38;5;45m/ [38;5;199m/[0m
|
||||
[38;5;255m[48;5;240m▓[48;5;255m[38;5;16m▃[48;5;16m[38;5;255m▅▅[38;5;16m[48;5;255m▅▃,,[38;5;32m▄[38;5;16m▅[38;5;255m[48;5;16m▅▅[38;5;255m[48;5;20mÆ[0m[38;5;255m\[0m[38;5;20m/[38;5;118m/[38;5;255m /[38;5;118m/[38;5;199m/[38;5;255m>[38;5;45m// [38;5;255m/[38;5;118m>[38;5;199m/ [38;5;20m/[0m
|
||||
[48;5;20m[38;5;255mV[48;5;255m[38;5;16m║[48;5;20m[38;5;255m«[0m[38;5;255m¼.;[48;5;240m[38;5;255m→[48;5;255m[38;5;16m ║[0m[38;5;255m<«.,[48;5;25m[38;5;255m`[48;5;240m=[0m[38;5;20m/[38;5;199m/ [38;5;255m/>[38;5;45m/[38;5;118m/[38;5;255m%/[38;5;199m% / [38;5;20m/[0m
|
||||
[38;5;20m//[48;5;255m[38;5;16m╠<´ -²,)[48;5;16m[38;5;255m(▓[48;5;255m[38;5;16m~"-[38;5;199m╝/[0m[38;5;255m¾[0m[38;5;199m/ [38;5;118m%[38;5;255m/[38;5;118m>[38;5;45m/ [38;5;118m/[38;5;199m>[0m
|
||||
[38;5;20m/ / [38;5;118m/ [48;5;20m[38;5;255m▐[48;5;240m[38;5;16m%[48;5;255m -./▄▃▄[48;5;16m[38;5;255m▅[48;5;255m[38;5;16m▐[48;5;255m[38;5;16m, [38;5;199m/[48;5;199m[38;5;255m7[0m[38;5;20m/[38;5;199m/[38;5;255m;/[38;5;199m/[38;5;118m% [38;5;20m/ /[0m
|
||||
[38;5;20m/ [38;5;199m/[38;5;255m/[38;5;45m/[38;5;118m/[38;5;255m[48;5;240m`[48;5;20m[38;5;255m▌[48;5;20m[38;5;255m▐[48;5;255m[38;5;16m %z[0m[38;5;255mWv xX[48;5;20m[38;5;255m▓[48;5;34m[38;5;255m▇[48;5;199m[38;255m▌[0m[38;5;20m/[38;5;199m/[38;5;255m&;[38;5;20m% [38;5;199m/ [38;5;20m/[0m
|
||||
[38;5;20m/ / [38;5;255m/ [38;5;118m%[38;5;199m/[38;5;255m/%/[48;5;240m[38;5;255m¾[48;5;255m[38;5;16m½´[38;5;255m[48;5;16m▌[0m[38;5;246m▃▄[38;5;255m▄▄[38;5;246m▄▃▃[0m[48;5;16m[38;5;255m▐[38;5;255m[48;5;199m¶[48;5;20m[38;5;255m\[0m[38;5;20m/[0m[48;5;255m[38;5;240m&[0m [38;5;20m/[0m
|
||||
[38;5;199m<[38;5;118m/ [38;5;45m/[38;5;255m</[38;5;118m%[38;5;255m/[38;5;45m/[38;5;255m`[48;5;16m▓[48;5;255m[38;5;16m![48;5;240m[38;5;255m%[48;5;16m[38;5;255m▓[0m[38;5;255m%[48;5;240m[38;5;255m╣[48;5;240m[38;5;255;╣[0m[38;5;255mW[0m[38;5;250mY<Y)[48;5;255m[38;5;16my&[0m[38;5;255m/`[48;5;240m\[0m
|
||||
[38;5;20m/ [38;5;199m/ [38;5;199m%[38;5;255m/%[38;5;118m/[38;5;45m/[38;5;255m<[38;5;118m/[38;5;199m%[38;5;45m/[38;5;20m/[48;5;240m[38;5;255m\[38;5;16m[48;5;255mi7; ╠N[0m[38;5;246m>[38;5;255m)VY>[48;5;240m[38;5;255m7[0m[38;5;255m; [38;5;255m[48;5;240m\[0m[38;5;255m_[0m [38;5;255mUNIX IS VERY SIMPLE [38;5;45mIT JUST NEEDS A[0m
|
||||
[38;5;20m/ [38;5;255m/[38;5;118m<[38;5;255m/ [38;5;45m/[38;5;255m/<[38;5;199m/[38;5;20m/[38;5;199m/[38;5;20m<[38;5;255m_/%\[38;5;255m[48;5;16m▓[48;5;255m[38;5;16m V[0m[38;5;255m%[48;5;255m[38;5;16mW[0m[38;5;255m%£)XY[0m [38;5;240m_/%[38;5;255m‾\_,[0m [38;5;45mGENIUS TO UNDERSTAND ITS SIMPLICITY[38;5;255m[0m
|
||||
[38;5;199m/ [38;5;255m/ [38;5;199m/[38;5;255m/[38;5;118m%[38;5;199m/[48;5;240m[38;5;255m_,=-[48;5;20m-^[0m[38;5;255m/%/%%[48;5;255m[38;5;16m\¾%[0m[38;5;255m¶[0m[48;5;255m[38;5;16m%[0m[38;5;255m%}[0m [38;5;240m/%%%[38;5;20m%%[38;5;240m%;\,[0m
|
||||
[38;5;45m%[38;5;20m/[38;5;199m< [38;5;20m/[48;5;20m[38;5;255m_/[48;5;240m [0m[38;5;255m%%%[38;5;240m%%[38;5;20m;[38;5;255mX[38;5;240m%[38;5;20m%[38;5;255m\%[38;5;240m%;, _/%%%;[38;5;20m,[38;5;240m \[0m
|
||||
[38;5;118m/ [38;5;20m/ [38;5;240m%[38;5;20m%%%%[38;5;240m%;, [38;5;255m\[38;5;240m%[38;5;20m%[38;5;255ml[38;5;240m%%;// _/[38;5;20m%;,[0m [38;5;234mdmr[0m
|
||||
[38;5;20m/ [38;5;240m%[38;5;20m%%;,[0m [38;5;255m<[38;5;20m;[38;5;240m\-=-/ /[0m
|
||||
[38;5;20m;,[0m [38;5;240ml[0m
|
||||
eof
|
|
@ -1,2 +0,0 @@
|
|||
#!/bin/sh
|
||||
doas grub-mkconfig -o /boot/grub/grub.cfg
|
Binary file not shown.
Binary file not shown.
File diff suppressed because one or more lines are too long
Binary file not shown.
Binary file not shown.
|
@ -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.
Binary file not shown.
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
Loading…
Reference in New Issue