Commit e7f038cd authored by HexDSL's avatar HexDSL

POSTYPOST

parent 77ca86e4
#!/bin/bash
#script to restore my configuration files (dots) from gitlab and install my software selections.
me="$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")"
u="$USER"
menu()
{
echo "usage: " $me "[OPTION]"
echo " "
echo "init: Install the basics (git/yay)"
echo "dots: Get Dots from gitlab (into '~/dots' folder)"
echo "stow: Restore Stow form dots"
echo "apps: Use 'yay' to install all Hex's applications"
echo "syms: THIS WILL DELETE FOLDERS YOU ARE USING! (uses Dropbox!)"
echo "dwm: Pulls down Hex's DWM repo (uses branches)"
echo "webs: Pulls down Hex's websites from git (You don't need this)"
echo "wire: Install Hex's Wireguard settings, only run if you is Hex"
echo "hug: We all need one sometimes"
echo " "
echo "...or just use option 'all' to just do it all in one go (DO NOT USE!) "
echo " "
echo "INFORMATION! - options are shown in 'best' order for new install."
}
init()
{
cd /tmp/
curl -LO https://aur.archlinux.org/cgit/aur.git/snapshot/yay.tar.gz
tar xvzf yay.tar.gz
cd yay
makepkg -sci
sudo pacman -S --needed git
yay -S dropbox
echo "now setup Dropbox, then run syms"
}
dwm()
{
cd ~
rm -r dwm
git clone [email protected]:hexdsl/dwm.git
cd dwm
git pull --all
for branch in $(git branch --all | grep '^\s*remotes' | egrep --invert-match '(:?HEAD|master)$'); do
git branch --track "${branch##*/}" "$branch"
done
}
hug()
{
clear
echo " "
title="((((((((( hug )))))))))"
printf "%*s\n" $(((${#title}+$COLUMNS)/2)) "$title"
echo " "
echo "everything is going to be okay buddy!"
echo " "
}
webs()
{
cd ~
mkdir websites
cd websites
git clone [email protected]:hexdsl/pixelfridge.git
git clone [email protected]:hexdsl/hexdsl-website.git
cd ..
}
dots()
{
cd ~
git clone [email protected]:hexdsl/dots.git
}
stow()
{
#Remove old MimeTypes list (Because X11 puts it back all the time!)
rm ~/.config/mimeapps.list
#setup ~ stow files
rm ~/.config/mimeapps.list &
cd ~/dots/stow_home
for d in *; do stow -t ~ $d ;done
#Setup ROOT stow files
#cd ~/dots/stow_root; for d in *; do sudo stow -t / $d; done
}
apps()
{
test -f ~/.restore/applist && yay -S --needed - < ~/.restore/applist || echo "Do dots & stow first dude!"
}
pass()
{
pass init $u
}
syms()
{
read -p "Are you sure? THIS WILL DELETE MANY THINGS and symlink them to Dropbox folders [Y/N]" -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]
then
exit 1
fi
#PICTURE FOLDER!
rm -R ~/Pictures
ln -s ~/Dropbox/Photos/ ~/Pictures
#DOCUMENT FOLDER!
rm -R ~/Documents
ln -s ~/Dropbox/Documents/ ~/Documents
#ABOOK FOLDER!
#not actually synced for security reasons!
rm -R ~/.abook
ln -s ~/Dropbox/.abook/ ~/.abook
#SSH FOLDER!
#not actually synced for security reasons!
rm -R ~/.ssh
ln -s ~/Dropbox/.ssh/ ~/.ssh
chmod 600 ~/.ssh/id_rsa
#CALCURSE FOLDER!
#not actually synced for security reasons!
rm -R ~/.calcurse
ln -s ~/Dropbox/.calcurse/ ~/.calcurse
#PASS-STORE FOLDER!
#ENCRYPTED!
rm -R ~/.password-store
ln -s ~/Dropbox/.password-store/ ~/.password-store
echo "--------------------------------------"
echo "You may want to run 'pass init $u' now"
}
wire()
{
#Wireguard FOLDER!
#not actually synced for security reasons!
sudo rm -r /etc/wireguard
sudo cp ~/Dropbox/.wireguard/ /etc/wireguard
}
if [ -n "$1" ]; then
$1
else
menu
fi
#!/usr/bin/bash
java -jar /home/hexdsl/Dropbox/Applications/chatty/Chatty.jar
java -jar /home/hexdsl/Insync/[email protected]/googledrive/Applications/chatty/Chatty.jar $1 $2
#!/bin/bash
/home/hexdsl/Dropbox/Applications/kdenlive-18.12.1b-x86_64.appimage
/home/hexdsl/Insync/[email protected]/googledrive/Applications/kdenlive-18.12.1b-x86_64.appimage
#!/bin/bash
cd /home/hexdsl/Dropbox/muttmail/
cd "/home/hexdsl/Insync/[email protected]/googledrive/muttmail/"
neomutt
#!/usr/bin/env bash
baseuri="https://github.com/GloriousEggroll/proton-ge-custom/releases/download"
latesturi="https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest"
dstpath="$HOME/.steam/root/compatibilitytools.d"
#!/bin/sh
echo "╔══════════════════════════════════════════════════════════════════════╗"
echo "║ This program will download and install the latest Proton-GE-Custom ║"
echo "║ Refer to github.com/GloriousEggroll/proton-ge-custom for more info ║"
echo "╚══════════════════════════════════════════════════════════════════════╝"
latestversion="$(curl -s $latesturi | egrep -m1 "tag_name" | cut -d \" -f4)"
if [[ -d $dstpath/Proton-$latestversion ]]
then
echo "Proton $latestversion is the latest version and is already installed."
echo "Exiting..."
exit 0
else
echo "Proton $latestversion is the latest version and is not installed yet."
echo "Installing Proton $latestverion"
url=$(curl -s $latesturi | egrep -m1 "browser_download_url.*Proton" | cut -d \" -f4)
fi
# Get the latest Proton-GE-Custom release (url and filename)
url="$(curl -s 'https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest' | grep 'browser_download_url' | cut -d \" -f 4)"
filename="$(echo $url | sed 's|.*/||')"
rsp="$(curl -sI "$url" | head -1)"
echo "$rsp" | grep -q 302 || {
echo "$rsp"
exit 1
# Installation routine
install() {
# Check if the given folder exists, exit function if this is not the case
if [ ! -d "$1" ]; then
return 1
fi
# cd into the given path
cd "$1"
# Check if compatibilitytools.d folder exists, if not create it
if [ ! -d "compatibilitytools.d" ]; then
echo "--> Creating folder for Steam compatibility tools..."
mkdir "compatibilitytools.d"
fi
cd "compatibilitytools.d"
# Check if current release is already installed
if [ -d $(echo $filename | sed 's|\.tar\.gz||') ]; then
echo "--> Current version is already installed."
return 0
else
# Download latest release, extract the files and delete the archive
echo "--> Downloading $filename..."
curl -sL "$url" --output "$filename"
echo "--> Extracting $filename..."
tar -xf "$filename"
echo "--> Removing the compressed archive..."
rm "$filename"
echo "--> Done. Please check the command line for errors and restart Steam for the changes to take effect."
return 0
fi
}
[ -d "$dstpath" ] || {
mkdir "$dstpath"
echo [Info] Created "$dstpath"
}
# Check if steam is installed regularly, either in one of the two locations
if [ -d "$HOME/.local/share/Steam" ] || [ -d "$HOME/.steam/steam" ]; then
echo "--> Regular Steam installation found. Installing..."
install "$HOME/.local/share/Steam" || install "$HOME/.steam/steam"
else
echo "--> Steam does not seem to be installed as a regular package. No changes were made."
fi
curl -sL "$url" | tar xfzv - -C "$dstpath"
# Check if steam is installed as Flatpak
if [ -d "$HOME/.var/app/com.valvesoftware.Steam/.local/share/Steam" ] || [ -d "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam" ]; then
echo "--> Flatpak Steam installation found. Installing..."
install "$HOME/.var/app/com.valvesoftware.Steam/.local/share/Steam" || install "$HOME/.var/app/com.valvesoftware.Steam/.steam/steam"
else
echo "--> Steam does not seem to be installed as Flatpak. No changes were made."
fi
......@@ -12,8 +12,9 @@ b ~/.bin
bs ~/.bin/shortcuts
c ~/.config
ss ~/Pictures/screenshots
dx ~/Dropbox
dx "~/Insync/[email protected]/googledrive/"
gd "~/Insync/[email protected]/googledrive/"
o ~/dots
bos ~/Dropbox/Documents/BOS
bos "~/Insync/[email protected]/googledrive/Documents/BOS/"
app ~/.local/bin
st /storage
......@@ -11,9 +11,10 @@ alias b="cd ~/.bin && ls "
alias bs="cd ~/.bin/shortcuts && ls "
alias c="cd ~/.config && ls "
alias ss="cd ~/Pictures/screenshots && ls "
alias dx="cd ~/Dropbox && ls "
alias dx="cd "~/Insync/[email protected]/googledrive/" && ls "
alias gd="cd "~/Insync/[email protected]/googledrive/" && ls "
alias o="cd ~/dots && ls "
alias bos="cd ~/Dropbox/Documents/BOS && ls "
alias bos="cd "~/Insync/[email protected]/googledrive/Documents/BOS/" && ls "
alias app="cd ~/.local/bin && ls "
alias st="cd /storage && ls "
alias sd="$EDITOR ~/.bin/shortcuts/folders"
......
......@@ -2,8 +2,8 @@
# settings
ssdir="/home/hexdsl/Dropbox/Photos/screenshots/" # screenshots folder
maxsize=200 # (megabytes) size at which stuff starts getting deleted
ssdir="/home/hexdsl/Insync/[email protected]/googledrive/Pictures/screenshots/" # screenshots folder
maxsize=100 # (megabytes) size at which stuff starts getting deleted
####################################################################
# If the total size of files in the directory exceeds maxsize #
......
#!/bin/bash
wine "/home/hexdsl/.wine/drive_c/users/hexdsl/Local Settings/Application Data/itch/app-25.4.0/itch"
......@@ -45,12 +45,14 @@ bspc rule -a discord desktop='^9' follow=off state=tiled
bspc rule -a Discord desktop='^9' follow=off state=tiled
bspc rule -a firefox desktop='^4' follow=off state=tiled
bspc rule -a Gimp desktop='^6' follow=on
bspc rule -a Steam desktop='^8' follow=off
bspc rule -a Steam desktop='^8' follow=off state=fullscreen
bspc rule -a steam_app_570580 desktop='^8' follow=off
bspc rule -a Hexchat:hexchat desktop='^10' follow=off state=tiled
bspc rule -a "element (riot)" desktop='^10' follow=off state=tiled
bspc rule -a "Element (Riot)" desktop='^10' follow=off state=tiled
bspc rule -a Lxappearance follow=on state=floating
bspc rule -a mpv follow=on state=tiled
bspc rule -a obs:obs desktop='^1' follow=off state=tiled
bspc rule -a obs:obs desktop='^1' follow=on state=tiled
bspc rule -a Pavucontrol state=floating
bspc rule -a Gcolor3 state=floating
bspc rule -a Gcolor2 state=floating
......
[Desktop Entry]
Name=itch
Exec=env WINEPREFIX="/home/hexdsl/.wine" wine C:\\\\windows\\\\command\\\\start.exe /Unix /home/hexdsl/.wine/dosdevices/c:/users/hexdsl/Start\\ Menu/Programs/Itch\\ Corp/itch.lnk
Type=Application
StartupNotify=true
Comment=The best way to play your itch.io games
Path=/home/hexdsl/.wine/dosdevices/c:/users/hexdsl/Local Settings/Application Data/itch
Icon=842F_itch-setup.0
StartupWMClass=itch-setup.exe
[Desktop Entry]
Name=J.U.L.I.A. Among the Stars
Exec=env WINEPREFIX="/home/hexdsl/.wine" wine C:\\\\windows\\\\command\\\\start.exe /Unix /home/hexdsl/.wine/dosdevices/c:/ProgramData/Microsoft/Windows/Start\\ Menu/Programs/J.U.L.I.A.\\ Among\\ the\\ Stars.lnk
Type=Application
StartupNotify=true
Path=/home/hexdsl/.wine/dosdevices/c:/Program Files (x86)/J.U.L.I.A. Among the Stars
Icon=DFB8_Launcher.0
StartupWMClass=launcher.exe
# vim: syntax=config
autofit-larger=90%x90%
cache-default=353600
cache=353600
#cache-default=353600
#cache=353600
cache-pause=no
cache-secs=4.0
ytdl-format=bestvideo[height<=?1080]+bestaudio/best
......
let g:netrw_dirhistmax =10
let g:netrw_dirhistcnt =4
let g:netrw_dirhistcnt =9
let g:netrw_dirhist_9='/home/hexdsl'
let g:netrw_dirhist_8='/home/hexdsl/Insync/[email protected]/googledrive/Notes'
let g:netrw_dirhist_7='/home/hexdsl/Dropbox/Apps/SimpleTxtEditor'
let g:netrw_dirhist_6='/home/hexdsl/.oh-my-zsh/themes'
let g:netrw_dirhist_5='/home/hexdsl/.oh-my-zsh'
let g:netrw_dirhist_4='/home/hexdsl/Dropbox/Apps/SimpleTxtEditor'
let g:netrw_dirhist_3='/home/hexdsl/Dropbox/Apps/SimpleTxtEditor/notes'
let g:netrw_dirhist_2='/home/hexdsl/.screenlayout'
let g:netrw_dirhist_1='/home/hexdsl/.config/systemd/user'
let g:netrw_dirhist_0='/boot/loader'
let g:netrw_dirhist_9='/home/hexdsl/.mozilla/firefox/jqgset0t.default/chrome'
let g:netrw_dirhist_8='/home/hexdsl/websites/pixelfridge/markdown'
let g:netrw_dirhist_7='/home/hexdsl/websites/hexdsl/images/gallery'
let g:netrw_dirhist_6='/home/hexdsl/websites/hexdsl'
let g:netrw_dirhist_5='/home/hexdsl/.config/qtile'
......@@ -18,7 +18,7 @@ call plug#begin('~/.config/nvim/plugged')
Plug 'itchyny/lightline.vim'
Plug 'jeetsukumaran/vim-buffergator'
Plug 'ctrlpvim/ctrlp.vim'
Plug 'junegunn/jzf', { 'dir': '~/.fzf', 'do': './install --all' }
"Plug 'junegunn/jzf', { 'dir': '~/.fzf', 'do': './install --all' }
Plug 'junegunn/fzf.vim'
Plug 'junegunn/limelight.vim'
Plug 'tpope/vim-surround'
......
......@@ -12,10 +12,10 @@
#urls-source "ocnews"
#Newsblur
newsblur-login "[email protected]"
newsblur-passwordeval "pass newsblur"
urls-source "newsblur"
cookie-cache "~/Documents/.rss/cookies.txt"
#newsblur-login "[email protected]"
#newsblur-passwordeval "pass newsblur"
#urls-source "newsblur"
#cookie-cache "~/Documents/.rss/cookies.txt"
# general
auto-reload yes
......
http://blog.aseprite.org/rss "Project Updates"
http://boilingsteam.com/feed/ "Gaming"
http://distrowatch.com/news/oggcast.xml "Linux"
http://feeds2.feedburner.com/hackaday/LgoM "Hacky stuff"
http://feeds.cyberciti.biz/Nixcraft-LinuxFreebsdSolarisTipsTricks "Linux"
http://feeds.feedburner.com/crunchyroll/rss/news "Comics & Anime"
http://feeds.feedburner.com/d0od "Linux"
http://feeds.feedburner.com/Phoronix "Linux"
http://feeds.feedburner.com/UbuntuGeek "Linux"
http://ludiclinux.com/atom.xml "People"
https://delta.chat/feed.xml "Project Updates"
https://feeds2.feedburner.com/AniGamers "Comics & Anime"
https://feeds.feedburner.com/FreedomPenguin "Linux"
https://feeds.feedburner.com/Sciencefictioncom "TV & Movies"
https://feeds.feedburner.com/Sfsignal "Books"
https://friendo.monster/rss.xml "People"
https://github.com/baskerville/bspwm/releases.atom "Project Updates"
https://itch.io/blog "Project Updates"
https://jaycoda.wordpress.com/feed/ "People"
https://joaoapps.com/tag/new-release/feed/ "Project Updates"
https://journal.neilgaiman.com/feeds/posts/default?alt=rss "Books"
https://kdenlive.org/feed/ "Project Updates"
https://mullvad.net/blog/feed/atom/ "Project Updates"
https://neocities.org/site/chriswere.rss "People"
https://novaramedia.com/feed/ "News"
https://posteo.de/en/blog/feed?format=atom "Project Updates"
https://speedforce.org/feed/ "Comics & Anime"
http://steamcommunity.com/groups/HumbleBundleOfficial/rss/ "Gaming"
https://www.archlinux.org/feeds/news/ "Project Updates"
https://www.blog.google/products/stadia/rss "Project Updates"
https://www.eff.org/rss/pressrelease "Project Updates"
https://www.gamersnexus.net/news/feed "Hacky stuff"
https://www.gamingonlinux.com/article_rss.php "Gaming"
https://www.gimp.org/feeds/atom.xml "Project Updates"
https://www.gloriouseggroll.tv/feed/ "People"
https://www.goodreads.com/blog/list_rss.xml "Books"
https://www.nasa.gov/rss/dyn/breaking_news.rss "News"
https://www.nationalgeographic.com/news/rss/index.rss "News"
https://www.nostalgianerd.com/feed "People"
http://techblog.netflix.com/feeds/posts/default "Hacky stuff"
http://www.eurogamer.net/?format=rss&type=news "Gaming"
http://www.indieretronews.com/feeds/posts/default "Gaming"
http://www.japanator.com/rss.phtml "Comics & Anime"
http://www.nintendolife.com/feeds/latest "Gaming"
http://www.scottmeyer.rocks/feed/ "Books"
http://xpenguin.club/rss.xml "People"
https://www.grumpygamer.com/rss "People"
......@@ -11,8 +11,9 @@ config.bind(";b", "set downloads.location.directory ~/.bin ;; hint links downloa
config.bind(";bs", "set downloads.location.directory ~/.bin/shortcuts ;; hint links download")
config.bind(";c", "set downloads.location.directory ~/.config ;; hint links download")
config.bind(";ss", "set downloads.location.directory ~/Pictures/screenshots ;; hint links download")
config.bind(";dx", "set downloads.location.directory ~/Dropbox ;; hint links download")
config.bind(";dx", "set downloads.location.directory "~/Insync/hexdsl@gmail.com/googledrive/" ;; hint links download")
config.bind(";gd", "set downloads.location.directory "~/Insync/hexdsl@gmail.com/googledrive/" ;; hint links download")
config.bind(";o", "set downloads.location.directory ~/dots ;; hint links download")
config.bind(";bos", "set downloads.location.directory ~/Dropbox/Documents/BOS ;; hint links download")
config.bind(";bos", "set downloads.location.directory "~/Insync/hexdsl@gmail.com/googledrive/Documents/BOS/" ;; hint links download")
config.bind(";app", "set downloads.location.directory ~/.local/bin ;; hint links download")
config.bind(";st", "set downloads.location.directory /storage ;; hint links download")
......@@ -50,18 +50,22 @@ map gss cd ~/Pictures/screenshots
map tss tab_new ~/Pictures/screenshots
map mss shell mv -v %s ~/Pictures/screenshots
map Yss shell cp -rv %s ~/Pictures/screenshots
map gdx cd ~/Dropbox
map tdx tab_new ~/Dropbox
map mdx shell mv -v %s ~/Dropbox
map Ydx shell cp -rv %s ~/Dropbox
map gdx cd "~/Insync/[email protected]/googledrive/"
map tdx tab_new "~/Insync/[email protected]/googledrive/"
map mdx shell mv -v %s "~/Insync/[email protected]/googledrive/"
map Ydx shell cp -rv %s "~/Insync/[email protected]/googledrive/"
map ggd cd "~/Insync/[email protected]/googledrive/"
map tgd tab_new "~/Insync/[email protected]/googledrive/"
map mgd shell mv -v %s "~/Insync/[email protected]/googledrive/"
map Ygd shell cp -rv %s "~/Insync/[email protected]/googledrive/"
map go cd ~/dots
map to tab_new ~/dots
map mo shell mv -v %s ~/dots
map Yo shell cp -rv %s ~/dots
map gbos cd ~/Dropbox/Documents/BOS
map tbos tab_new ~/Dropbox/Documents/BOS
map mbos shell mv -v %s ~/Dropbox/Documents/BOS
map Ybos shell cp -rv %s ~/Dropbox/Documents/BOS
map gbos cd "~/Insync/[email protected]/googledrive/Documents/BOS/"
map tbos tab_new "~/Insync/[email protected]/googledrive/Documents/BOS/"
map mbos shell mv -v %s "~/Insync/[email protected]/googledrive/Documents/BOS/"
map Ybos shell cp -rv %s "~/Insync/[email protected]/googledrive/Documents/BOS/"
map gapp cd ~/.local/bin
map tapp tab_new ~/.local/bin
map mapp shell mv -v %s ~/.local/bin
......
aaxtomp3
abook
acpi
toot
instaloader
atool
bspwm
chromium-widevine
cmatrix
dropbox
elinks
exif
fd
feh
ffmpegthumbnailer
firefox
firefox-passff
fzf
gimp
google-chrome
google-drive-ocamlfuse
highlight
htop-vim-git
joplin
lynx
maim
mediainfo
mpdris2
mpv
ncdu
neomutt
neovim
nerd-fonts-inconsolata
newsboat-git
notmuch
obs-linuxbrowser-bin
obs-studio-git
otf-fira-code
pandoc-bin
pass
passff-host
perl-image-exiftool
picom-git
popcorntime-bin
poppler
protontricks
python-chardet
ranger
rxvt-unicode
speedtest-cli
spotify
steam
stow
streamlink-git
streamlink-twitch-gui
sxiv-dir-navigation-git
thunar
thunar-shares-plugin
toilet
transmission-remote-cli-git
ttf-fira-code
hexchat
ttf-ms-fonts
tty-clock
urlview-git
w3m
webp-thumbnailer
xdg-user-dirs
xsel
youtube-dl-git
zathura
kappa-launcher
zathura-cb
zathura-pdf-mupdf
zsh
zsh-completions
......@@ -233,7 +233,8 @@ alt + shift + control + g
#Joplin
alt + shift + control + a
urxvt -name "notes" -e vim ~/Dropbox/Apps/SimpleTxtEditor/
google-keep
#urxvt -name "notes" -e vim /home/hexdsl/Insync/[email protected]/googledrive/Notes
#obs and chatty
alt + shift + control + b
......@@ -250,7 +251,7 @@ alt + shift + control + i
#itch
alt + shift + control + l
itch
winitch
#music menu
alt + shift + control + m
......
{
"downloaded-bytes": 509238479498,
"files-added": 94681,
"seconds-active": 348942,
"session-count": 51,
"uploaded-bytes": 33981624435
"downloaded-bytes": 529457200723,
"files-added": 94709,
"seconds-active": 365421,
"session-count": 56,
"uploaded-bytes": 35777266317
}
PROMPT="%B[%F{magenta}%n%F{yellow}@%F{cyan}%M %F{white}%~]%F{green}$ %f%b"
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh 2>/dev/null
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh 2>/dev/null
......@@ -7,21 +6,31 @@ source ~/.bin/shortcuts/commands
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#ff00ff,bg=magenta,bold,underline"
zstyle ':completion:*' menu select
#zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*' # case-insensitive matching
zmodload zsh/complist
setopt SHARE_HISTORY
setopt HIST_IGNORE_SPACE
setopt HIST_IGNORE_ALL_DUPS
setopt autocd
setopt COMPLETE_ALIASES
setopt completealiases
stty stop undef
export MAKEFLAGS="-j12 -l11"
export KEYTIMEOUT=1
autoload -U colors && colors
autoload edit-command-line; zle -N edit-command-line
autoload -Uz compinit
autoload -Uz compinit promptinit edit-command-line colors
_comp_options+=(globdots)
typeset -U path
typeset -U PATH path