# NOTE each and every file in this repository can be altered by anyone with any goal, including changing programs used. this, of course, will change the dependencies for every file that is altered. # KEY * `item`: a program * NOTE: if `item` has a link, the link leads to either the official website if one exists, or its repository. * if `item` does not have a link, it can likely be found in your OS's package manager. * `path/item`: one of the files in this repo * `$variable`: a shell variable set somewhere like shrc or .profile * more specifically: * `$TERMINAL`: value is the user's terminal of choice, e.g [st](https://st.suckless.org) * `$EDITOR`: value is the user's terminal editor of choice, e.g [neovim](https://neovim.io) * `$READER`: value is the user's ebook reader of choice, e.g [zathura](https://pwmt.org/projects/zathura) * `$BROWSER`: value is the user's (non-terminal) web browser of choice, e.g [firefox](https://mozilla.org/firefox) * `$XDG_CONFIG_HOME`: value is the user's config directory according to the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables), usually `$HOME/.config` * `$XDG_DATA_HOME`: value is the user's data directory according to the [XDG Base Directory Specification](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html#variables), usually `$HOME/.local/share` * `opt: any of the previous bullets`: same meaning as before but optional * `(description)`: explains why it's necessary/what optional feature it enables if present # bin/ * mbsync-cron: populate local maildirs and notify the user if there is new mail * [isync](https://isync.sourceforge.net) * properly configured `$HOME/.mbsync` (One Group per email account) * libnotify (notifies the user for new mail and the subject line of said mail) * `$XDG_DATA_HOME` * comm-sel: a handy menu for spawning communication clients * [epic5](https://epicsol.org) * [6cord](https://gitlab.com/diamondburned/6cord) * [scli](https://github.com/isamert/scli) * [dmenu](https://dmenu.suckless.org) (provides a menu for selecting which client to start) * notify-send (notifies the user that they made an invalid choice) * opt: st-altscreen (build of st that doesn't have scrollback or extra bindings, doesnt interfere with programs and is generally smaller) * `$TERMINAL` * lh: a script that takes a URL as input and does different things depending on what the URL links to * [mpv](https://mpv.io) (video file streaming, streaming from sites like youtube, viewing livestreams from twitch) * [youtube-dl](https://yt-dl.org) (hooked by mpv when streaming from the appropriate sites) * [streamlink](https://streamlink.github.io) (used to view livestreams from twitch) * [dmenu](https://dmenu.suckless.org) (used to pick stream quality when handling livestream URLs) * [sxiv](https://github.com/muennich/sxiv) (used to view images) * [curl](https://curl.haxx.se) (images, audio files, ebook files) * `$TERMINAL` * `$READER` * `$EDITOR` * `$BROWSER` * opener: a script that uses file(1) to determine what a file is, then opens it with an appropriate program * [mpv](https://mpv.io) (opens video and audio files) * [sxiv](https://github.com/muennich/sxiv) (used to view images) * `$READER` * `$EDITOR` * prompt: makes prompting the user for particular actions easier * [dmenu](https://dmenu.suckless.org) * pw: generates a password of variable length * opt: xclip (enables pw's mode copying the generated password to the clipboard or the primary selection) * opt: libnotify (notifies the user that the password is generated, how long the password will be kept in the clipboard/primary selection for, and when the clipboard/primary selection is cleared.) * rsschk: takes a URL as an argument and adds it to newsboat's url file, with an optional second argument specifying a category * libnotify (notifies the user of improper usage, and whether or not they should probably edit the url file manually to add a category.) * [newsboat](https://newsboat.org) * opt: `$XDG_CONFIG_HOME` * shenv: runs the shell with a specific environment file * a shrc file located in `$XDG_CONFIG_HOME`, check config/shrc for an example * xbg: sets the background or changes the picture used for the background * opt: xdg-user-dir (lets you change the directory bg.png has to be in) * xwallpaper (sets the wallpaper) # config/ * lfrc: configuration file for [lf](https://github.com/gokcehan/lf) * opt: bin/opener (for opening files) * shrc: shell environment, particularly for bin/shenv * neovim (`$EDITOR`) * lf (`$FILE`) * st (`$TERMINAL`) * firefox (`$BROWSER`) * bin/comm-sel (`$COMM`) * zathura (`$READER`) * neomutt (`$MAILER`) * ncmpcpp (`$MUSIC`) * newsboat (`$RSS`) * ksh (`$ISH` `$ZDOTDIR`) * maim (`$SCR`) * slock (`$LOCK`) * opt: go (`$GOPATH`) * opt: cargo (`$CARGO_HOME`) * opt: mednafen (`$MEDNAFEN_HOME`) ## ksh/ configuration files for ksh * kshrc * config/shrc (for the majority of variables set) * functions.ksh * mpv (for mpvpin() to work) * exports.ksh * opt: pfetch (`$PF_INFO`) # data/ * mailcap: helps neomutt figure out what to do with particular MIME types * $EDITOR * lynx * [mpv](https://mpv.io) * $READER ## applications/ * doc.desktop * [zathura](https://pwmt.org/projects/zathura) * img.desktop * [sxiv](https://github.com/muennich/sxiv) * rss.desktop * bin/rsschk * text.desktop * [st](https://st.suckless.org) * [neovim](https://neovim.io) * weblight.desktop * [surf](https://surf.suckless.org)