#!/usr/bin/env bash # shellcheck disable=SC2034 # This issue is ignored because it is part of a larger file that calls upon all variables listed # To edit this file copy it to `${HOME}/.config/dmscripts/config` # `cp /etc/dmscripts/config ${HOME}/.config/dmscripts/config` # Defined variables, modify anything in quotes to your prefered software # -p is needed as we use prompts, alternative programs have to handle prompts well. #DMENU="dmenu -i -l 20 -p" DMENU="rofi -dmenu -theme Arc-Dark" DMBROWSER="firefox" # DMBROWSER="qutebrowser" #DMTERM="st -e" DMTERM="alacritty -e" DMEDITOR="emacsclient -c -a emacs" #DMEDITOR="${DMTERM} vim" # TODO: Rename this variable to something more traditional #logout_locker='slock' logout_locker='dm-tool lock' # This case statement lets you change what the DMENU variable is for different scripts, so if you # want a unique variable for each script you can # syntax is as follows: # "") DMENU="your variable here" # *) should be left blank, global variables are defined above # include -p in standard dmenu as we use prompts by default case "${0##*-}" in # "colpick") DMENU="dmenu -i -p";; # "confedit") DMENU="dmenu -i -l 30 -p";; # "youtube") DMBROWSER="firefox";; *);; esac # "${0##*-}" means grab the 0th argument (which is always the path to the program) starting from the # last dash. This gives us the word after the - which is what we are searching for in the case # statement. ie dm-man -> man # An awk equivalent is: # awk -F"-" '{print $NF}' # Sadly cut has no easy equivalent # TODO: Move almost all of these variables into the case statement # TODO: Make some of the more useful ones general variables # IE a pictures directory, an audio directory, config locations, etc # dm-bookman bookman_show_source=1 # dm-sounds sounds_dir="${HOME}/.config/dmscripts/dmsounds" # dm-setbg setbg_dir="${HOME}/.wallpaper" # Set this to 1 if you want to use imv and wayland, 0 if you want to use sxiv # Note that sxiv is X11 only, you need to mark the image you want to use. use_imv=1 # dm-maim maim_dir="${HOME}/Screenshots" maim_file_prefix="maim" # dm-note note_dir="${HOME}/.config/dmscripts/dmnote" # dm-confedit declare -A confedit_list confedit_list[confedit]="$HOME/.config/dmscripts/config" confedit_list[alacritty]="$HOME/.config/alacritty/alacritty.yml" confedit_list[awesome]="$HOME/.config/awesome/rc.lua" confedit_list[bash]="$HOME/.bashrc" confedit_list[broot]="$HOME/.config/broot/conf.toml" confedit_list[bspwm]="$HOME/.config/bspwm/bspwmrc" confedit_list[doom emacs config.el]="$HOME/.config/doom/config.el" confedit_list[doom emacs config.org]="$HOME/.config/doom/config.org" confedit_list[doom emacs init.el]="$HOME/.config/doom/init.el" confedit_list[doom emacs packages.el]="$HOME/.config/doom/packages.el" confedit_list[dunst]="$HOME/.config/dunst/dunstrc" confedit_list[dwm]="$HOME/dwm-distrotube/config.def.h" confedit_list[dwmblocks]="$HOME/dwmblocks-distrotube/blocks.def.h" confedit_list[fish]="$HOME/.config/fish/config.fish" confedit_list[herbstluftwm]="$HOME/.config/herbstluftwm/autostart" confedit_list[i3]="$HOME/.config/i3/config" confedit_list[ncmpcpp]="$HOME/.config/ncmpcpp/config" confedit_list[neovim]="$HOME/.config/nvim/init.vim" confedit_list[picom]="$HOME/.config/picom/picom.conf" confedit_list[polybar]="$HOME/.config/polybar/config" confedit_list[qtile]="$HOME/.config/qtile/config.py" confedit_list[qutebrowser bookmarks]="$HOME/.config/qutebrowser/bookmarks/urls" confedit_list[qutebrowser quickmarks]="$HOME/.config/qutebrowser/quickmarks" confedit_list[qutebrowser config.py]="$HOME/.config/qutebrowser/config.py" confedit_list[spectrwm]="$HOME/.spectrwm.conf" confedit_list[ssh]="$HOME/.ssh/config" confedit_list[st]="$HOME/st-distrotube/config.def.h" confedit_list[stumpwm]="$HOME/.config/stumpwm/config" confedit_list[surf]="$HOME/surf-distrotube/config.def.h" confedit_list[sxhkd]="$HOME/.config/sxhkd/sxhkdrc" confedit_list[tabbed]="$HOME/tabbed-distrotube/config.def.h" confedit_list[vifm]="$HOME/.config/vifm/vifmrc" confedit_list[vim]="$HOME/.vimrc" confedit_list[xmobar mon1]="$HOME/.config/xmobar/xmobarrc0" confedit_list[xmobar mon2]="$HOME/.config/xmobar/xmobarrc1" confedit_list[xmobar mon3]="$HOME/.config/xmobar/xmobarrc2" confedit_list[xmonad]="$HOME/.xmonad/README.org" confedit_list[xinitrc]="$HOME/.xinitrc" confedit_list[xresources]="$HOME/.Xresources" confedit_list[zsh]="$HOME/.zshrc" # dm-reddit config declare -a reddit_list=( "r/archlinux" "r/bash" "r/commandline" "r/emacs" "r/freesoftware" "r/linux" "r/linux4noobs" "r/linuxmasterrace" "r/linuxquestions" "r/suckless" "r/Ubuntu" "r/unixporn" "r/vim" ) # Search engine config declare -A websearch # Syntax: # websearch[name]="https://www.example.com/search?q=" # Search Engines websearch[bing]="https://www.bing.com/search?q=" websearch[brave]="https://search.brave.com/search?q=" websearch[duckduckgo]="https://duckduckgo.com/?q=" websearch[gemini search \(https\)]="https://portal.mozz.us/gemini/geminispace.info/search%3F" websearch[google]="https://www.google.com/search?q=" websearch[qwant]="https://www.qwant.com/?q=" websearch[swisscows]="https://swisscows.com/web?query=" websearch[yandex]="https://yandex.com/search/?text=" # Information/News websearch[bbcnews]="https://www.bbc.co.uk/search?q=" websearch[cnn]="https://www.cnn.com/search?q=" websearch[googlenews]="https://news.google.com/search?q=" websearch[wikipedia]="https://en.wikipedia.org/w/index.php?search=" websearch[wiktionary]="https://en.wiktionary.org/w/index.php?search=" # Social Media websearch[reddit]="https://www.reddit.com/search/?q=" websearch[odysee]="https://odysee.com/$/search?q=" websearch[youtube]="https://www.youtube.com/results?search_query=" # Online Shopping websearch[amazon]="https://www.amazon.com/s?k=" websearch[craigslist]="https://www.craigslist.org/search/sss?query=" websearch[ebay]="https://www.ebay.com/sch/i.html?&_nkw=" websearch[gumtree]="https://www.gumtree.com/search?search_category=all&q=" # Linux websearch[archaur]="https://aur.archlinux.org/packages/?O=0&K=" websearch[archpkg]="https://archlinux.org/packages/?sort=&q=" websearch[archwiki]="https://wiki.archlinux.org/index.php?search=" websearch[debianpkg]="https://packages.debian.org/search?suite=default§ion=all&arch=any&searchon=names&keywords=" # Development websearch[github]="https://github.com/search?q=" websearch[gitlab]="https://gitlab.com/search?search=" websearch[googleOpenSource]="https://opensource.google/projects/search?q=" websearch[sourceforge]="https://sourceforge.net/directory/?q=" websearch[stackoverflow]="https://stackoverflow.com/search?q=" # Etc # dm-youtube config # Think of these as your "subscribed channels", name the channel in the square brackets then put the channel URL in the quotation marks # Syntax: youtube_channels[name]="https://www.youtube.com/link/to/channel" declare -A youtube_channels youtube_channels[distrotube]="https://www.youtube.com/c/DistroTube/featured" # dm-colpick config declare -A colpick_list colpick_list[black]="#282a36" colpick_list[red]="#ff5555" colpick_list[green]="#5af78e" colpick_list[yellow]="#f1fa8c" colpick_list[blue]="#57c7ff" colpick_list[magenta]="#ff6ac1" colpick_list[cyan]="#8be9fd" colpick_list[white]="#f1f1f0" colpick_list[orange]="#ffb86c" colpick_list[purple]="#bd9cf9" # dm-translate config # dm-translate currently supports two translation services, LibreTranslate and Lingva Translate. # LibreTranslate uses the free software (Expat/MIT licensed) Argos Translate library for translation. # Lingva Translate uses the Google Translate (dis)service for translation, but this is fully server-side and Google will not see your IP. # Both are free software services that can be self-hosted. # If you want more languages (or need a specific language not in the Argos library) you should chose Lingva Translate. # If you want to get away from Google and/or want a fully free software implementation you should use LibreTranslate. # The choice is yours... translate_service="libre" # translate_service="lingva" libretranslate_instance="https://libretranslate.de" lingva_instance="https://lingva.ml" # Uncomment to manually set the languages dm-translate will show # LibreTranslate languages: # - `curl -Ss "https://libretranslate.de/languages" | jq` # Lingva Translate languages: # - `curl -Ss "https://lingva.ml/api/v1/languages/source" | jq` # translate_list="manual" # declare -A lang_map # lang_map[Spanish]=es # lang_map[English]=en # lang_map[Automatic]=auto # dm-weather config declare -A weather_location # weather_location[New York]="New+York" weather_opts="m" # Always use metric units (celsius) # weather_opts="u" # Always use US units (fahrenheit) # see: https://github.com/chubin/wttr.in # dm-currencies config # Chose how you want to display the currencies (default: "names") # currency_names="codes" # "auto" will get currencies dynamically, "manual" will only use the currencies you define (default: "auto") # defined currencies will still be included when set to auto # currency_method="manual" declare -A currencies # currencies[Dollar]="USD" # currencies[Pound]="GBP" # currencies[Monero]="XMR" # see: https://rate.sx/:currencies and https://rate.sx/:coins _revision=22