1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
|
#!/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:
# "<ending-of-script>") 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
|