|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
-
- # Macros
- This is a collection of scripts I use to make managing files and processes easier.
- Use it to automagically select and run terminal applications, send signals to daemons, execute arbitrary commands, search the web, grab passwords from a password manager, and more.
-
- ### Installing dependencies
- `sudo apt install pass enscript dunst xclip scrot mpc mpd ghostscript zathura
- suckless-tools youtube-dl`
-
- All of them are optional except suckless-tools. Many of the features aren't
- interdependent and are made up of 1 or 2 functions.
-
- - [ dmenu ](http://tools.suckless.org/dmenu/) is for the prompts. It can be
- changed to rofi or some other solution
- - scrot and xclip for screenshots
- - all scripts assume your prefered terminal is [ st ](http://st.suckless.org)
- - mpc is for media controls
- - zathura, ghostscript, and enscript are an aesthetic option for viewing man
- pages and command outputs as document files rather than terminal output
-
- ## prompt
- The central script that gives the rest of the features interactivity. Read
- the source code for more details.
- ### Usage
- prompt [ COMMAND ]
-
- #### COMMANDS
- * launch
- * action
- * cmd
- * cmd_clip
- * search
- * username
- * password
- * other_password
- * edit_password
- * open
- * edit
-
- most functionality is accessible from launch and action only
-
- ### Notes
- - Picking a directory opens st at it's location
- - Set bindings for `prompt action` and `prompt launch`
- - Some prompts like `search package` will infer with their default operation
- when the string entered is an invalid selection
- - the password functions assume that logins for the same services are all
- stored in the same file, with each account's information seperated by an
- empty line. Each line containing a username begins with 'username:', each
- line containing a password is the first line of it's section.
-
- ## mru
- Used for storing file paths and their modification times in ~/.cache/mru/.
- When a file is opened with prompt open, it moves to the top of the home list.
- I wrote it because locate was too limiting.
-
- mru [COMMAND] [CACHE]
-
- #### COMMMAND
- - init
- - update
- - updatedirs
- - output
- - list
- - insert [ FILE ]
-
- ### Get Started
- `mru init; mru update; mru updatedirs`
-
- #### Notes
- - by default, it ignores hidden directories
- - If no cache name is specified, it assumes 'home'
- - more cache paths can be added by editing the cache_info variable in the
- source code. For fast load times you may want to seperate different tasks or
- types of files into their own cache, i.e projects, videos, config files.
- - If if the file passed to `mru insert` does not exist, it is removed from the cache
- - You may want to run mru update at startup to add new files and cleanup hidden
- files in .cache/mru
- - You don't need to install jump, zsh, or some other hack to switch directories
- quickly. Use this alias:
- `alias cdz='cd $((mru listdirs | fzf --height=50%) || printf ".")'`
-
- ### Initializing
- mru init
-
- ## pages
- pages is a command for viewing /tmp/pages-{number} files with st or zathura.
- The files are the result of prompt commands like `prompt search` -> Go page or
- can be created from your own scripts. I use it for viewing local documentation
- quickly.
-
- ### Usage
- pages [ pager | pdf | browser | send ] [ NAME ]
-
- send will send stdin to the named page with the naming convention
- /tmp/pages-{NAME}. All other commands attempt to open the named page if it
- exists.
-
- #### Notes
- * Page names don't have to be numbers, here is an example vim Ex mode command I
- use to convert a markdown file to html and open it in a browser:
- `:!markdown % | pages send 1.html | pages browser 1.html`
- This could be given it's own keybinding.
-
- #### TODO
- - Finish vpn and networking stuff after ini script is finished, then make sure
- - variables to the script to make assumed paths easier to change
- - emoji select to clipboard
- - use attach-session -t . -c /dir for selecting multiplexer directory
- - ddg fill options should be taken from bookmarks or history
- - Make password prompts green
- - Figure out range selecting for parsing passwords
- - Figure out using dmenu instead of gnome key prompt (pinentry)
- what?- Consider entr in dwm-start for watching files
- - change xdg text/plain opener to use vim and st if not in terminal
- - unicode character insertion
- change prompt icon to nerd icon
- - finish dwm patching, select window with wmctrl, then setup vpn, then maybe dmenu patches
-
- ## Searching the web
- The prompt's rawurlencode function makes it easy to create new search functions for any website or service. Append the output of a call to rawurlencode to the site's search prefix, then pass the resulting string to an application like lynx or brave-browser. No need for installing packages or directories of config files.
- Example:
- ```firefox "html.duckduckgo.com/html?q=$(rawurlencode "$1")"```
|