My scripts for startup, dmenu, and the command line
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
Immanuel Onyeka a8faf11513 Make mbsync updates less frequent 2 yıl önce
.gitignore Create utility functions for managing backups 4 yıl önce
README.md Add buku bookmarking 3 yıl önce
configure Make mbsync updates less frequent 2 yıl önce
conveniently Add buku bookmarking 3 yıl önce
dwm-statusbar Make mbsync updates less frequent 2 yıl önce
edit-ini Added INI editor 3 yıl önce
ewrap Handle xdg-open defaults more sensibly and remove junk files 3 yıl önce
lsix :q 4 yıl önce
mru Handle xdg-open defaults more sensibly and remove junk files 3 yıl önce
music_player Handle xdg-open defaults more sensibly and remove junk files 3 yıl önce
pages Add mru code and reformat readme 3 yıl önce
pinentry Finish mru insert and init 3 yıl önce
prompt Make mbsync updates less frequent 2 yıl önce
setup-xbindkeys Add functions to reconfigure applications 2 yıl önce
splitchapters Add buku bookmarking 3 yıl önce
t2p.c Add text2pdf and music prompts 3 yıl önce
textopener Handle xdg-open defaults more sensibly and remove junk files 3 yıl önce

README.md

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 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
  • 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")"