This commit is contained in:
Clay Gomera 2023-09-04 13:36:18 -04:00
parent c0b02ea2d5
commit a61c0e8605
30 changed files with 2433 additions and 2301 deletions

View file

@ -49,7 +49,7 @@ FILES=()
# #
## NOTE: If you have /usr on a separate partition, you MUST include the ## NOTE: If you have /usr on a separate partition, you MUST include the
# usr and fsck hooks. # usr and fsck hooks.
HOOKS=(base systemd autodetect keyboard modconf block sd-encrypt kms sd-vconsole block lvm2 filesystems fsck) HOOKS=(base systemd autodetect keyboard modconf block sd-encrypt kms keymap consolefont lvm2 filesystems fsck)
# COMPRESSION # COMPRESSION
# Use this to compress the initramfs image. By default, zstd compression # Use this to compress the initramfs image. By default, zstd compression

View file

@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
## ____ __ ## ____ __
## / __ \_________ _/ /_____ ## / __ \_________ _/ /_____
## / / / / ___/ __ `/ //_/ _ \ ## / / / / ___/ __ `/ //_/ _ \
@ -14,8 +14,8 @@ then
fi fi
# environment variables # environment variables
export EDITOR="emacsclient -t -a ''" export EDITOR="~/.local/bin/lvim"
export VISUAL="emacsclient -c -a 'emacs'" export VISUAL="neovide --neovim-bin ~/.local/bin/lvim"
export MEDIA_DIR="$HOME/Media" export MEDIA_DIR="$HOME/Media"
export TEMP_DIR="$HOME/Temporal" export TEMP_DIR="$HOME/Temporal"

View file

@ -19,9 +19,6 @@ export MANPAGER="sh -c 'col -bx | bat -l man -p'"
# if not running interactively, don't do anything # if not running interactively, don't do anything
[[ $- != *i* ]] && return [[ $- != *i* ]] && return
# use emasc for vim if present.
[ -x "$(command -v emacs)" ] && alias vim="emacsclient -t -a ''"
### SET VI MODE ### ### SET VI MODE ###
# Comment this line out to enable default emacs-like bindings # Comment this line out to enable default emacs-like bindings
set -o vi set -o vi
@ -125,8 +122,8 @@ alias \
# bat as cat # bat as cat
[ -x "$(command -v bat)" ] && alias cat="bat" [ -x "$(command -v bat)" ] && alias cat="bat"
# pfetch as neofetch # use emasc for vim if present.
[ -x "$(command -v pfetch)" ] && alias neofetch="pfetch" [ -x "$(command -v nvim)" ] && alias vim="nvim"
# Changing "ls" to "exa" # Changing "ls" to "exa"
alias \ alias \

View file

@ -58,7 +58,7 @@ tooltip_delay=-1
tree_branch_line=true tree_branch_line=true
dark_titlebar=true dark_titlebar=true
opaque=QMPlay2,kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam opaque=QMPlay2,kaffeine,kmplayer,subtitlecomposer,kdenlive,vlc,avidemux,avidemux2_qt4,avidemux3_qt4,avidemux3_qt5,kamoso,QtCreator,VirtualBox,trojita,dragon,digikam
reduce_window_opacity=18 reduce_window_opacity=0
scrollable_menu=false scrollable_menu=false
submenu_delay=250 submenu_delay=250
no_inactiveness=false no_inactiveness=false

View file

@ -1,593 +0,0 @@
(beacon-mode 1)
(map! :leader
(:prefix ("b". "buffer")
:desc "List bookmarks" "L" #'list-bookmarks
:desc "Save current bookmarks to bookmark file" "w" #'bookmark-save))
(global-auto-revert-mode 1)
(setq global-auto-revert-non-file-buffers t)
(evil-define-key 'normal ibuffer-mode-map
(kbd "f c") 'ibuffer-filter-by-content
(kbd "f d") 'ibuffer-filter-by-directory
(kbd "f f") 'ibuffer-filter-by-filename
(kbd "f m") 'ibuffer-filter-by-mode
(kbd "f n") 'ibuffer-filter-by-name
(kbd "f x") 'ibuffer-filter-disable
(kbd "g h") 'ibuffer-do-kill-lines
(kbd "g H") 'ibuffer-update)
;; https://stackoverflow.com/questions/9547912/emacs-calendar-show-more-than-3-months
(defun dt/year-calendar (&optional year)
(interactive)
(require 'calendar)
(let* (
(current-year (number-to-string (nth 5 (decode-time (current-time)))))
(month 0)
(year (if year year (string-to-number (format-time-string "%Y" (current-time))))))
(switch-to-buffer (get-buffer-create calendar-buffer))
(when (not (eq major-mode 'calendar-mode))
(calendar-mode))
(setq displayed-month month)
(setq displayed-year year)
(setq buffer-read-only nil)
(erase-buffer)
;; horizontal rows
(dotimes (j 4)
;; vertical columns
(dotimes (i 3)
(calendar-generate-month
(setq month (+ month 1))
year
;; indentation / spacing between months
(+ 5 (* 25 i))))
(goto-char (point-max))
(insert (make-string (- 10 (count-lines (point-min) (point-max))) ?\n))
(widen)
(goto-char (point-max))
(narrow-to-region (point-max) (point-max)))
(widen)
(goto-char (point-min))
(setq buffer-read-only t)))
(defun dt/scroll-year-calendar-forward (&optional arg event)
"Scroll the yearly calendar by year in a forward direction."
(interactive (list (prefix-numeric-value current-prefix-arg)
last-nonmenu-event))
(unless arg (setq arg 0))
(save-selected-window
(if (setq event (event-start event)) (select-window (posn-window event)))
(unless (zerop arg)
(let* (
(year (+ displayed-year arg)))
(dt/year-calendar year)))
(goto-char (point-min))
(run-hooks 'calendar-move-hook)))
(defun dt/scroll-year-calendar-backward (&optional arg event)
"Scroll the yearly calendar by year in a backward direction."
(interactive (list (prefix-numeric-value current-prefix-arg)
last-nonmenu-event))
(dt/scroll-year-calendar-forward (- (or arg 1)) event))
(map! :leader
:desc "Scroll year calendar backward" "<left>" #'dt/scroll-year-calendar-backward
:desc "Scroll year calendar forward" "<right>" #'dt/scroll-year-calendar-forward)
(defalias 'year-calendar 'dt/year-calendar)
(use-package! calfw)
(use-package! calfw-org)
(use-package dashboard
:init ;; tweak dashboard config before loading it
(setq dashboard-set-heading-icons t)
(setq dashboard-set-file-icons t)
(setq dashboard-banner-logo-title "\nKEYBINDINGS:\
\nFind file (SPC .) \
Open buffer list (SPC b i)\
\nFind recent files (SPC f r) \
Open the eshell (SPC e s)\
\nOpen dired file manager (SPC d d) \
List of keybindings (SPC h b b)")
;;(setq dashboard-startup-banner 'logo) ;; use standard emacs logo as banner
(setq initial-buffer-choice (lambda () (get-buffer "*dashboard*")))
(setq dashboard-startup-banner "~/.config/doom/emacs-dash.txt") ;; use custom image as banner
(setq dashboard-center-content nil) ;; set to 't' for centered content
(setq dashboard-items '((recents . 5)
(agenda . 5 )
(bookmarks . 5)
(projects . 5)
(registers . 5)))
:config
(dashboard-setup-startup-hook)
(dashboard-modify-heading-icons '((recents . "file-text")
(bookmarks . "book"))))
(setq doom-fallback-buffer "*dashboard*")
(map! :leader
(:prefix ("d" . "dired")
:desc "Open dired" "d" #'dired
:desc "Dired jump to current" "j" #'dired-jump)
(:after dired
(:map dired-mode-map
:desc "Peep-dired image previews" "d p" #'peep-dired
:desc "Dired view file" "d v" #'dired-view-file)))
(evil-define-key 'normal dired-mode-map
(kbd "M-RET") 'dired-display-file
(kbd "h") 'dired-up-directory
(kbd "l") 'dired-open-file ; use dired-find-file instead of dired-open.
(kbd "m") 'dired-mark
(kbd "t") 'dired-toggle-marks
(kbd "u") 'dired-unmark
(kbd "C") 'dired-do-copy
(kbd "D") 'dired-do-delete
(kbd "J") 'dired-goto-file
(kbd "M") 'dired-do-chmod
(kbd "O") 'dired-do-chown
(kbd "P") 'dired-do-print
(kbd "R") 'dired-do-rename
(kbd "T") 'dired-do-touch
(kbd "Y") 'dired-copy-filenamecopy-filename-as-kill ; copies filename to kill ring.
(kbd "+") 'dired-create-directory
(kbd "-") 'dired-up-directory
(kbd "% l") 'dired-downcase
(kbd "% u") 'dired-upcase
(kbd "; d") 'epa-dired-do-decrypt
(kbd "; e") 'epa-dired-do-encrypt)
;; Get file icons in dired
(add-hook 'dired-mode-hook 'all-the-icons-dired-mode)
;; With dired-open plugin, you can launch external programs for certain extensions
;; For example, I set all .png files to open in 'sxiv' and all .mp4 files to open in 'mpv'
(setq dired-open-extensions '(("gif" . "sxiv")
("jpg" . "sxiv")
("png" . "sxiv")
("mkv" . "mpv")
("mp4" . "mpv")))
(evil-define-key 'normal peep-dired-mode-map
(kbd "j") 'peep-dired-next-file
(kbd "k") 'peep-dired-prev-file)
(add-hook 'peep-dired-hook 'evil-normalize-keymaps)
(setq delete-by-moving-to-trash t
trash-directory "~/.local/share/Trash/files/")
(setq doom-theme 'doom-gruvbox)
(map! :leader
:desc "Load new theme" "h t" #'counsel-load-theme)
(use-package emojify
:hook (after-init . global-emojify-mode))
(map! :leader
(:prefix ("e". "evaluate/EWW")
:desc "Evaluate elisp in buffer" "b" #'eval-buffer
:desc "Evaluate defun" "d" #'eval-defun
:desc "Evaluate elisp expression" "e" #'eval-expression
:desc "Evaluate last sexpression" "l" #'eval-last-sexp
:desc "Evaluate elisp in region" "r" #'eval-region))
(setq browse-url-browser-function 'eww-browse-url)
(map! :leader
:desc "Search web for text between BEG/END"
"s w" #'eww-search-words
(:prefix ("e" . "evaluate/EWW")
:desc "Eww web browser" "w" #'eww
:desc "Eww reload page" "R" #'eww-reload))
(setq doom-font (font-spec :family "mononoki Nerd Font" :size 15)
doom-variable-pitch-font (font-spec :family "mononoki Nerd Font" :size 15)
doom-big-font (font-spec :family "mononoki Nerd Font" :size 20))
(after! doom-themes
(setq doom-themes-enable-bold t
doom-themes-enable-italic t))
(custom-set-faces!
'(font-lock-comment-face :slant italic)
'(font-lock-keyword-face :slant italic))
(setq imenu-list-focus-after-activation t)
(map! :leader
(:prefix ("s" . "Search")
:desc "Menu to jump to places in buffer" "i" #'counsel-imenu))
(map! :leader
(:prefix ("t" . "Toggle")
:desc "Toggle imenu shown in a sidebar" "i" #'imenu-list-smart-toggle))
(defun dt/insert-todays-date (prefix)
(interactive "P")
(let ((format (cond
((not prefix) "%A, %B %d, %Y")
((equal prefix '(4)) "%m-%d-%Y")
((equal prefix '(16)) "%Y-%m-%d"))))
(insert (format-time-string format))))
(require 'calendar)
(defun dt/insert-any-date (date)
"Insert DATE using the current locale."
(interactive (list (calendar-read-date)))
(insert (calendar-date-string date)))
(map! :leader
(:prefix ("i d" . "Insert date")
:desc "Insert any date" "a" #'dt/insert-any-date
:desc "Insert todays date" "t" #'dt/insert-todays-date))
(setq ivy-posframe-display-functions-alist
'((swiper . ivy-posframe-display-at-point)
(complete-symbol . ivy-posframe-display-at-point)
(counsel-M-x . ivy-display-function-fallback)
(counsel-esh-history . ivy-posframe-display-at-window-center)
(counsel-describe-function . ivy-display-function-fallback)
(counsel-describe-variable . ivy-display-function-fallback)
(counsel-find-file . ivy-display-function-fallback)
(counsel-recentf . ivy-display-function-fallback)
(counsel-register . ivy-posframe-display-at-frame-bottom-window-center)
(dmenu . ivy-posframe-display-at-frame-top-center)
(nil . ivy-posframe-display))
ivy-posframe-height-alist
'((swiper . 20)
(dmenu . 20)
(t . 10)))
(ivy-posframe-mode 1) ; 1 enables posframe-mode, 0 disables it.
(map! :leader
(:prefix ("v" . "Ivy")
:desc "Ivy push view" "v p" #'ivy-push-view
:desc "Ivy switch view" "v s" #'ivy-switch-view))
(setq display-line-numbers-type t)
(map! :leader
:desc "Comment or uncomment lines" "TAB TAB" #'comment-line
(:prefix ("t" . "toggle")
:desc "Toggle line numbers" "l" #'doom/toggle-line-numbers
:desc "Toggle line highlight in frame" "h" #'hl-line-mode
:desc "Toggle line highlight globally" "H" #'global-hl-line-mode
:desc "Toggle truncate lines" "t" #'toggle-truncate-lines))
(custom-set-faces
'(markdown-header-face ((t (:inherit font-lock-function-name-face :weight bold :family "variable-pitch"))))
'(markdown-header-face-1 ((t (:inherit markdown-header-face :height 1.7))))
'(markdown-header-face-2 ((t (:inherit markdown-header-face :height 1.6))))
'(markdown-header-face-3 ((t (:inherit markdown-header-face :height 1.5))))
'(markdown-header-face-4 ((t (:inherit markdown-header-face :height 1.4))))
'(markdown-header-face-5 ((t (:inherit markdown-header-face :height 1.3))))
'(markdown-header-face-6 ((t (:inherit markdown-header-face :height 1.2)))))
(setq minimap-window-location 'right)
(map! :leader
(:prefix ("t" . "toggle")
:desc "Toggle minimap-mode" "m" #'minimap-mode))
(set-face-attribute 'mode-line nil :font "mononoki Nerd Font-13")
(setq doom-modeline-height 30 ;; sets modeline height
doom-modeline-bar-width 5 ;; sets right bar width
doom-modeline-persp-name t ;; adds perspective name to modeline
doom-modeline-persp-icon t) ;; adds folder icon next to persp name
(xterm-mouse-mode 1)
(after! neotree
(setq neo-smart-open t
neo-window-fixed-size nil))
(after! doom-themes
(setq doom-neotree-enable-variable-pitch t))
(map! :leader
:desc "Toggle neotree file viewer" "t n" #'neotree-toggle
:desc "Open directory in neotree" "d n" #'neotree-dir)
(map! :leader
(:prefix ("=" . "open file")
:desc "Edit agenda file" "a" #'(lambda () (interactive) (find-file "~/Org/agenda.org"))
:desc "Edit doom config.org" "c" #'(lambda () (interactive) (find-file "~/.config/doom/config.org"))
:desc "Edit doom init.el" "i" #'(lambda () (interactive) (find-file "~/.config/doom/init.el"))
:desc "Edit doom packages.el" "p" #'(lambda () (interactive) (find-file "~/.config/doom/packages.el"))))
(map! :leader
(:prefix ("= e" . "open eshell files")
:desc "Edit eshell aliases" "a" #'(lambda () (interactive) (find-file "~/.config/doom/eshell/aliases"))
:desc "Edit eshell profile" "p" #'(lambda () (interactive) (find-file "~/.config/doom/eshell/profile"))))
(map! :leader
:desc "Org babel tangle" "m B" #'org-babel-tangle)
(after! org
(setq org-directory "~/Documents/Notes"
org-agenda-files '("~/Documents/Agenda/agenda.org")
org-default-notes-file (expand-file-name "notes.org" org-directory)
org-ellipsis ""
org-superstar-headline-bullets-list '("" "" "" "" "" "" "")
org-superstar-item-bullet-alist '((?+ . ?➤) (?- . ?✦)) ; changes +/- symbols in item lists
org-log-done 'time
org-hide-emphasis-markers t
;; ex. of org-link-abbrev-alist in action
;; [[arch-wiki:Name_of_Page][Description]]
org-link-abbrev-alist ; This overwrites the default Doom org-link-abbrev-list
'(("google" . "http://www.google.com/search?q=")
("arch-wiki" . "https://wiki.archlinux.org/index.php/")
("ddg" . "https://duckduckgo.com/?q=")
("wiki" . "https://en.wikipedia.org/wiki/"))
org-todo-keywords ; This overwrites the default Doom org-todo-keywords
'((sequence
"TODO(t)" ; A task that is ready to be tackled
"BLOG(b)" ; Blog writing assignments
"GYM(g)" ; Things to accomplish at the gym
"GAME(j)" ; Things to accomplish at the gym
"PROJ(p)" ; A project that contains other tasks
"VIDEO(v)" ; Video assignments
"WAIT(w)" ; Something is holding up this task
"|" ; The pipe necessary to separate "active" states and "inactive" states
"DONE(d)" ; Task has been completed
"CANCELLED(c)" )))) ; Task has been cancelled
(setq org-agenda-custom-commands
'(("p" "Priority view"
((tags "PRIORITY=\"A\""
((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
(org-agenda-overriding-header "High priority unfinished tasks:")))
(tags "PRIORITY=\"B\""
((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
(org-agenda-overriding-header "Medium priority unfinished tasks:")))
(tags "PRIORITY=\"C\""
((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
(org-agenda-overriding-header "Low priority unfinished tasks:")))))
("i" "INTEC view"
((tags "tareas"
((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
(org-agenda-overriding-header "Tareas por hacer:")))
(tags "estudios"
((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
(org-agenda-overriding-header "Estudios por realizar:")))
(tags "examen"
((org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
(org-agenda-overriding-header "Examenes pendientes:")))))
))
(setq
org-agenda-block-separator 985827
org-fancy-priorities-list '("󰈼" "󰈻" "󰈽")
org-priority-faces
'((?A :foreground "#fb4934" :weight bold)
(?B :foreground "#fabd2f" :weight bold)
(?C :foreground "#83a598" :weight bold)))
(defun dt/org-colors-doom-one ()
"Enable Doom One colors for Org headers."
(interactive)
(dolist
(face
'((org-level-1 1.7 "#51afef" ultra-bold)
(org-level-2 1.6 "#c678dd" extra-bold)
(org-level-3 1.5 "#98be65" bold)
(org-level-4 1.4 "#da8548" semi-bold)
(org-level-5 1.3 "#5699af" normal)
(org-level-6 1.2 "#a9a1e1" normal)
(org-level-7 1.1 "#46d9ff" normal)
(org-level-8 1.0 "#ff6c6b" normal)))
(set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face)))
(set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf"))
(defun dt/org-colors-dracula ()
"Enable Dracula colors for Org headers."
(interactive)
(dolist
(face
'((org-level-1 1.7 "#8be9fd" ultra-bold)
(org-level-2 1.6 "#bd93f9" extra-bold)
(org-level-3 1.5 "#50fa7b" bold)
(org-level-4 1.4 "#ff79c6" semi-bold)
(org-level-5 1.3 "#9aedfe" normal)
(org-level-6 1.2 "#caa9fa" normal)
(org-level-7 1.1 "#5af78e" normal)
(org-level-8 1.0 "#ff92d0" normal)))
(set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face)))
(set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf"))
(defun dt/org-colors-gruvbox-dark ()
"Enable Gruvbox Dark colors for Org headers."
(interactive)
(dolist
(face
'((org-level-1 1.7 "#458588" ultra-bold)
(org-level-2 1.6 "#b16286" extra-bold)
(org-level-3 1.5 "#98971a" bold)
(org-level-4 1.4 "#fb4934" semi-bold)
(org-level-5 1.3 "#83a598" normal)
(org-level-6 1.2 "#d3869b" normal)
(org-level-7 1.1 "#d79921" normal)
(org-level-8 1.0 "#8ec07c" normal)))
(set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face)))
(set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf"))
(defun dt/org-colors-monokai-pro ()
"Enable Monokai Pro colors for Org headers."
(interactive)
(dolist
(face
'((org-level-1 1.7 "#78dce8" ultra-bold)
(org-level-2 1.6 "#ab9df2" extra-bold)
(org-level-3 1.5 "#a9dc76" bold)
(org-level-4 1.4 "#fc9867" semi-bold)
(org-level-5 1.3 "#ff6188" normal)
(org-level-6 1.2 "#ffd866" normal)
(org-level-7 1.1 "#78dce8" normal)
(org-level-8 1.0 "#ab9df2" normal)))
(set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face)))
(set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf"))
(defun dt/org-colors-nord ()
"Enable Nord colors for Org headers."
(interactive)
(dolist
(face
'((org-level-1 1.7 "#81a1c1" ultra-bold)
(org-level-2 1.6 "#b48ead" extra-bold)
(org-level-3 1.5 "#a3be8c" bold)
(org-level-4 1.4 "#ebcb8b" semi-bold)
(org-level-5 1.3 "#bf616a" normal)
(org-level-6 1.2 "#88c0d0" normal)
(org-level-7 1.1 "#81a1c1" normal)
(org-level-8 1.0 "#b48ead" normal)))
(set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face)))
(set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf"))
(defun dt/org-colors-oceanic-next ()
"Enable Oceanic Next colors for Org headers."
(interactive)
(dolist
(face
'((org-level-1 1.7 "#6699cc" ultra-bold)
(org-level-2 1.6 "#c594c5" extra-bold)
(org-level-3 1.5 "#99c794" bold)
(org-level-4 1.4 "#fac863" semi-bold)
(org-level-5 1.3 "#5fb3b3" normal)
(org-level-6 1.2 "#ec5f67" normal)
(org-level-7 1.1 "#6699cc" normal)
(org-level-8 1.0 "#c594c5" normal)))
(set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face)))
(set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf"))
(defun dt/org-colors-palenight ()
"Enable Palenight colors for Org headers."
(interactive)
(dolist
(face
'((org-level-1 1.7 "#82aaff" ultra-bold)
(org-level-2 1.6 "#c792ea" extra-bold)
(org-level-3 1.5 "#c3e88d" bold)
(org-level-4 1.4 "#ffcb6b" semi-bold)
(org-level-5 1.3 "#a3f7ff" normal)
(org-level-6 1.2 "#e1acff" normal)
(org-level-7 1.1 "#f07178" normal)
(org-level-8 1.0 "#ddffa7" normal)))
(set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face)))
(set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf"))
(defun dt/org-colors-solarized-dark ()
"Enable Solarized Dark colors for Org headers."
(interactive)
(dolist
(face
'((org-level-1 1.7 "#268bd2" ultra-bold)
(org-level-2 1.6 "#d33682" extra-bold)
(org-level-3 1.5 "#859900" bold)
(org-level-4 1.4 "#b58900" semi-bold)
(org-level-5 1.3 "#cb4b16" normal)
(org-level-6 1.2 "#6c71c4" normal)
(org-level-7 1.1 "#2aa198" normal)
(org-level-8 1.0 "#657b83" normal)))
(set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face)))
(set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf"))
(defun dt/org-colors-solarized-light ()
"Enable Solarized Light colors for Org headers."
(interactive)
(dolist
(face
'((org-level-1 1.7 "#268bd2" ultra-bold)
(org-level-2 1.6 "#d33682" extra-bold)
(org-level-3 1.5 "#859900" bold)
(org-level-4 1.4 "#b58900" semi-bold)
(org-level-5 1.3 "#cb4b16" normal)
(org-level-6 1.2 "#6c71c4" normal)
(org-level-7 1.1 "#2aa198" normal)
(org-level-8 1.0 "#657b83" normal)))
(set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face)))
(set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf"))
(defun dt/org-colors-tomorrow-night ()
"Enable Tomorrow Night colors for Org headers."
(interactive)
(dolist
(face
'((org-level-1 1.7 "#81a2be" ultra-bold)
(org-level-2 1.6 "#b294bb" extra-bold)
(org-level-3 1.5 "#b5bd68" bold)
(org-level-4 1.4 "#e6c547" semi-bold)
(org-level-5 1.3 "#cc6666" normal)
(org-level-6 1.2 "#70c0ba" normal)
(org-level-7 1.1 "#b77ee0" normal)
(org-level-8 1.0 "#9ec400" normal)))
(set-face-attribute (nth 0 face) nil :font doom-variable-pitch-font :weight (nth 3 face) :height (nth 1 face) :foreground (nth 2 face)))
(set-face-attribute 'org-table nil :font doom-font :weight 'normal :height 1.0 :foreground "#bfafdf"))
;; Load our desired dt/org-colors-* theme on startup
(dt/org-colors-tomorrow-night)
(use-package ox-man)
(use-package ox-gemini)
(setq org-journal-dir "~/nc/Org/journal/"
org-journal-date-prefix "* "
org-journal-time-prefix "** "
org-journal-date-format "%B %d, %Y (%A) "
org-journal-file-format "%Y-%m-%d.org")
(setq org-publish-use-timestamps-flag nil)
(setq org-export-with-broken-links t)
(use-package! org-auto-tangle
:defer t
:hook (org-mode . org-auto-tangle-mode)
:config
(setq org-auto-tangle-default t))
(map! :leader
:desc "Switch to perspective NAME" "DEL" #'persp-switch
:desc "Switch to buffer in perspective" "," #'persp-switch-to-buffer
:desc "Switch to next perspective" "]" #'persp-next
:desc "Switch to previous perspective" "[" #'persp-prev
:desc "Add a buffer current perspective" "+" #'persp-add-buffer
:desc "Remove perspective by name" "-" #'persp-remove-by-name)
(define-globalized-minor-mode global-rainbow-mode rainbow-mode
(lambda () (rainbow-mode 1)))
(global-rainbow-mode 1 )
(map! :leader
(:prefix ("r" . "registers")
:desc "Copy to register" "c" #'copy-to-register
:desc "Frameset to register" "f" #'frameset-to-register
:desc "Insert contents of register" "i" #'insert-register
:desc "Jump to register" "j" #'jump-to-register
:desc "List registers" "l" #'list-registers
:desc "Number to register" "n" #'number-to-register
:desc "Interactively choose a register" "r" #'counsel-register
:desc "View a register" "v" #'view-register
:desc "Window configuration to register" "w" #'window-configuration-to-register
:desc "Increment register" "+" #'increment-register
:desc "Point to register" "SPC" #'point-to-register))
(setq shell-file-name "/bin/bash"
vterm-max-scrollback 5000)
(setq eshell-rc-script "~/.config/doom/eshell/profile"
eshell-aliases-file "~/.config/doom/eshell/aliases"
eshell-history-size 5000
eshell-buffer-maximum-lines 5000
eshell-hist-ignoredups t
eshell-scroll-to-bottom-on-input t
eshell-destroy-buffer-when-process-dies t
eshell-visual-commands'("bash" "fish" "htop" "ssh" "top" "zsh"))
(map! :leader
:desc "Eshell" "e s" #'eshell
:desc "Eshell popup toggle" "e t" #'+eshell/toggle
:desc "Counsel eshell history" "e h" #'counsel-esh-history
:desc "Vterm popup toggle" "v t" #'+vterm/toggle)
(defun prefer-horizontal-split ()
(set-variable 'split-height-threshold nil t)
(set-variable 'split-width-threshold 40 t)) ; make this as low as needed
(add-hook 'markdown-mode-hook 'prefer-horizontal-split)
(map! :leader
:desc "Clone indirect buffer other window" "b c" #'clone-indirect-buffer-other-window)
(map! :leader
(:prefix ("w" . "window")
:desc "Winner redo" "<right>" #'winner-redo
:desc "Winner undo" "<left>" #'winner-undo))
(map! :leader
:desc "Zap to char" "z" #'zap-to-char
:desc "Zap up to char" "Z" #'zap-up-to-char)

File diff suppressed because it is too large Load diff

View file

@ -1,19 +0,0 @@
================= =============== =============== ======== ========
\\ . . . . . . .\\ //. . . . . . .\\ //. . . . . . .\\ \\. . .\\// . . //
||. . ._____. . .|| ||. . ._____. . .|| ||. . ._____. . .|| || . . .\/ . . .||
|| . .|| ||. . || || . .|| ||. . || || . .|| ||. . || ||. . . . . . . ||
||. . || || . .|| ||. . || || . .|| ||. . || || . .|| || . | . . . . .||
|| . .|| ||. _-|| ||-_ .|| ||. . || || . .|| ||. _-|| ||-_.|\ . . . . ||
||. . || ||-' || || `-|| || . .|| ||. . || ||-' || || `|\_ . .|. .||
|| . _|| || || || || ||_ . || || . _|| || || || |\ `-_/| . ||
||_-' || .|/ || || \|. || `-_|| ||_-' || .|/ || || | \ / |-_.||
|| ||_-' || || `-_|| || || ||_-' || || | \ / | `||
|| `' || || `' || || `' || || | \ / | ||
|| .===' `===. .==='.`===. .===' /==. | \/ | ||
|| .==' \_|-_ `===. .===' _|_ `===. .===' _-|/ `== \/ | ||
|| .==' _-' `-_ `=' _-' `-_ `=' _-' `-_ /| \/ | ||
|| .==' _-' '-__\._-' '-_./__-' `' |. /| | ||
||.==' _-' `' | /==.||
==' _-' EMACS \/ `==
\ _-' `-_ /
`'' ``'

View file

@ -1,26 +0,0 @@
# Aliases for emacs commands
alias ff find-file $1
# Changing "ls" to "exa"
alias ls exa -al --color=always --group-directories-first $* # my preferred listing
alias la exa -a --color=always --group-directories-first $* # all files and dirs
alias ll exa -l --color=always --group-directories-first $* # long format
alias lt exa -aT --color=always --group-directories-first $* # tree listing
alias l. exa -a1 $* | grep "^\." # list hidden files
# Merge Xresources
alias merge xrdb -merge ~/.Xresources
# Aliases for doom emacs utilties
alias doomsync ~/.emacs.d/bin/doom sync
alias doomdoctor ~/.emacs.d/bin/doom doctor
alias doomupgrade ~/.emacs.d/bin/doom upgrade
alias doompurge ~/.emacs.d/bin/doom purge
# Confirm before overwriting something
alias cp cp -i $1
alias mv mv -i $1
alias rm rm -i $1
# bare git repo alias for dotfiles
alias config /usr/bin/git --git-dir=$HOME/dotfiles --work-tree=$HOME $*

View file

@ -1 +0,0 @@
colorscript random

View file

@ -1,191 +0,0 @@
;;; init.el -*- lexical-binding: t; -*-
;; This file controls what Doom modules are enabled and what order they load
;; in. Remember to run 'doom sync' after modifying it!
;; NOTE Press 'SPC h d h' (or 'C-h d h' for non-vim users) to access Doom's
;; documentation. There you'll find a "Module Index" link where you'll find
;; a comprehensive list of Doom's modules and what flags they support.
;; NOTE Move your cursor over a module's name (or its flags) and press 'K' (or
;; 'C-c c k' for non-vim users) to view its documentation. This works on
;; flags as well (those symbols that start with a plus).
;;
;; Alternatively, press 'gd' (or 'C-c c d') on a module to browse its
;; directory (for easy access to its source code).
(doom! :input
;;chinese
;;japanese
;;layout ; auie,ctsrnm is the superior home row
:completion
company ; the ultimate code completion backend
;;helm ; the *other* search engine for love and life
;;ido ; the other *other* search engine...
(ivy +fonts +childframe) ; a search engine for love and life
:ui
;;deft ; notational velocity for Emacs
doom ; what makes DOOM look the way it does
;;doom-dashboard ; a nifty splash screen for Emacs
doom-quit ; DOOM quit-message prompts when you quit Emacs
(emoji +unicode) ; 🙂
;;fill-column ; a `fill-column' indicator
hl-todo ; highlight TODO/FIXME/NOTE/DEPRECATED/HACK/REVIEW
;;hydra
;;indent-guides ; highlighted indent columns
(ligatures +extras) ; ligatures and symbols to make your code pretty again
;;minimap ; show a map of the code on the side
modeline ; snazzy, Atom-inspired modeline, plus API
;;nav-flash ; blink cursor line after big motions
neotree ; a project drawer, like NERDTree for vim
ophints ; highlight the region an operation acts on
(popup +defaults) ; tame sudden yet inevitable temporary windows
;;tabs ; a tab bar for Emacs
;;treemacs ; a project drawer, like neotree but cooler
;;unicode ; extended unicode support for various languages
vc-gutter ; vcs diff in the fringe
vi-tilde-fringe ; fringe tildes to mark beyond EOB
window-select ; visually switch windows
workspaces ; tab emulation, persistence & separate workspaces
zen ; distraction-free coding or writing
:editor
(evil +everywhere) ; come to the dark side, we have cookies
file-templates ; auto-snippets for empty files
fold ; (nigh) universal code folding
;;(format +onsave) ; automated prettiness
;;god ; run Emacs commands without modifier keys
lispy ; vim for lisp, for people who don't like vim
;;multiple-cursors ; editing in many places at once
;;objed ; text object editing for the innocent
;;parinfer ; turn lisp into python, sort of
;;rotate-text ; cycle region at point between text candidates
snippets ; my elves. They type so I don't have to
;;word-wrap ; soft wrapping with language-aware indent
:emacs
(dired +icons) ; making dired pretty [functional]
electric ; smarter, keyword-based electric-indent
(ibuffer +icons) ; interactive buffer management
undo ; persistent, smarter undo for your inevitable mistakes
vc ; version-control and Emacs, sitting in a tree
:term
eshell ; the elisp shell that works everywhere
shell ; simple shell REPL for Emacs
;;term ; basic terminal emulator for Emacs
vterm ; the best terminal emulation in Emacs
:checkers
syntax ; tasing you for every semicolon you forget
;;(spell +aspell) ; tasing you for misspelling mispelling
;;grammar ; tasing grammar mistake every you make
:tools
;;ansible
;;debugger ; FIXME stepping through code, to help you add bugs
;;direnv
;;docker
;;editorconfig ; let someone else argue about tabs vs spaces
;;ein ; tame Jupyter notebooks with emacs
(eval +overlay) ; run code, run (also, repls)
;;gist ; interacting with github gists
lookup ; navigate your code and its documentation
lsp
magit ; a git porcelain for Emacs
;;make ; run make tasks from Emacs
;;pass ; password manager for nerds
pdf ; pdf enhancements
;;prodigy ; FIXME managing external services & code builders
;;rgb ; creating color strings
;;taskrunner ; taskrunner for all your projects
;;terraform ; infrastructure as code
;;tmux ; an API for interacting with tmux
;;upload ; map local to remote projects via ssh/ftp
:os
(:if IS-MAC macos) ; improve compatibility with macOS
;;tty ; improve the terminal Emacs experience
:lang
;;agda ; types of types of types of types...
cc ; C/C++/Obj-C madness
;;clojure ; java with a lisp
common-lisp ; if you've seen one lisp, you've seen them all
;;coq ; proofs-as-programs
;;crystal ; ruby at the speed of c
csharp ; unity, .NET, and mono shenanigans
;;data ; config/data formats
;;(dart +flutter) ; paint ui and not much else
;;elixir ; erlang done right
;;elm ; care for a cup of TEA?
emacs-lisp ; drown in parentheses
;;erlang ; an elegant language for a more civilized age
;;ess ; emacs speaks statistics
;;faust ; dsp, but you get to keep your soul
;;fsharp ; ML stands for Microsoft's Language
;;fstar ; (dependent) types and (monadic) effects and Z3
;;gdscript ; the language you waited for
;;(go +lsp) ; the hipster dialect
;;(haskell +dante) ; a language that's lazier than I am
;;hy ; readability of scheme w/ speed of python
;;idris ; a language you can depend on
json ; At least it ain't XML
;;(java +meghanada) ; the poster child for carpal tunnel syndrome
javascript ; all(hope(abandon(ye(who(enter(here))))))
;;julia ; a better, faster MATLAB
;;kotlin ; a better, slicker Java(Script)
latex ; writing papers in Emacs has never been so fun
;;lean
;;factor
;;ledger ; an accounting system in Emacs
lua ; one-based indices? one-based indices
markdown ; writing docs for people to ignore
;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel
(org
+journal ; enable org journal
+pretty ; replace asterisks with pretty org bullets
+publish ; create static websites with org
+roam2) ; org roam v2
php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional
python ; beautiful is better than ugly
;;qt ; the 'cutest' gui framework ever
;;racket ; a DSL for DSLs
;;raku ; the artist formerly known as perl6
;;rest ; Emacs as a REST client
;;rst ; ReST in peace
;;(ruby +rails) ; 1.step {|i| p "Ruby is #{i.even? ? 'love' : 'life'}"}
;;rust ; Fe2O3.unwrap().unwrap().unwrap().unwrap()
;;scala ; java, but good
scheme ; a fully conniving family of lisps
sh ; she sells {ba,z,fi}sh shells on the C xor
;;sml
;;solidity ; do you need a blockchain? No.
;;swift ; who asked for emoji variables?
;;terra ; Earth and Moon in alignment for performance.
web ; the tubes
yaml ; JSON, but readable
:email
;;mu4e
;;smtpmail
;;notmuch
;;(wanderlust +gmail)
:app
;;calendar
;; emms
;;everywhere ; *leave* Emacs!? You must be joking
;;irc ; how neckbeards socialize
;;rss ; emacs as an RSS reader
;;twitter ; twitter client https://twitter.com/vnought
:config
literate
(default +bindings +smartparens))

View file

@ -1,91 +0,0 @@
;; -*- no-byte-compile: t; -*-
;;; $DOOMDIR/packages.el
;; To install a package with Doom you must declare them here and run 'doom sync'
;; on the command line, then restart Emacs for the changes to take effect -- or
;; use 'M-x doom/reload'.
;; To install SOME-PACKAGE from MELPA, ELPA or emacsmirror:
;(package! some-package)
;; To install a package directly from a remote git repo, you must specify a
;; `:recipe'. You'll find documentation on what `:recipe' accepts here:
;; https://github.com/raxod502/straight.el#the-recipe-format
;(package! another-package
; :recipe (:host github :repo "username/repo"))
;; If the package you are trying to install does not contain a PACKAGENAME.el
;; file, or is located in a subdirectory of the repo, you'll need to specify
;; `:files' in the `:recipe':
;(package! this-package
; :recipe (:host github :repo "username/repo"
; :files ("some-file.el" "src/lisp/*.el")))
;; If you'd like to disable a package included with Doom, you can do so here
;; with the `:disable' property:
;(package! builtin-package :disable t)
;; You can override the recipe of a built in package without having to specify
;; all the properties for `:recipe'. These will inherit the rest of its recipe
;; from Doom or MELPA/ELPA/Emacsmirror:
;(package! builtin-package :recipe (:nonrecursive t))
;(package! builtin-package-2 :recipe (:repo "myfork/package"))
;; Specify a `:branch' to install a package from a particular branch or tag.
;; This is required for some packages whose default branch isn't 'master' (which
;; our package manager can't deal with; see raxod502/straight.el#279)
;(package! builtin-package :recipe (:branch "develop"))
;; Use `:pin' to specify a particular commit to install.
;(package! builtin-package :pin "1a2b3c4d5e")
;; Doom's packages are pinned to a specific commit and updated from release to
;; release. The `unpin!' macro allows you to unpin single packages...
;(unpin! pinned-package)
;; ...or multiple packages
;(unpin! pinned-package another-pinned-package)
;; ...Or *all* packages (NOT RECOMMENDED; will likely break things)
;(unpin! t)
(package! gitconfig-mode
:recipe (:host github :repo "magit/git-modes"
:files ("gitconfig-mode.el")))
(package! gitignore-mode
:recipe (:host github :repo "magit/git-modes"
:files ("gitignore-mode.el")))
(package! flycheck-aspell)
(package! async)
(package! calfw)
(package! calfw-org)
(package! dashboard)
(package! dired-open)
(package! dired-subtree)
(package! dmenu)
(package! elpher)
(package! emojify)
(package! esxml)
(package! evil-tutor)
(package! imenu-list)
(package! ivy-posframe)
(package! mw-thesaurus)
(package! org-board)
(package! org-web-tools)
(package! org-auto-tangle)
(package! ox-gemini)
(package! pacmacs)
(package! peep-dired)
(package! rainbow-mode)
(package! request)
(package! resize-window)
(package! s)
(package! tldr)
(package! wc-mode)
(package! beacon)
(package! minimap)
(package! olivetti)
(package! sharper)
(package! csproj-mode)
(package! dap-mode)
(package! vimrc-mode)

View file

@ -0,0 +1,129 @@
-- neovide options
vim.o.guifont = "mononoki Nerd Font:h08"
vim.g.neovide_hide_mouse_when_typing = true
vim.g.neovide_input_macos_alt_is_meta = true
vim.g.neovide_hide_mouse_when_typing = false
vim.g.neovide_refresh_rate = 60
vim.g.neovide_refresh_rate_idle = 5
vim.g.neovide_no_idle = true
vim.g.neovide_confirm_quit = true
vim.g.neovide_input_use_logo = true
vim.g.neovide_cursor_antialiasing = true
vim.g.neovide_cursor_animate_in_insert_mode = true
vim.g.neovide_cursor_vfx_mode = "pixiedust"
vim.g.neovide_cursor_vfx_particle_speed = 20.0
vim.g.neovide_padding_top = 0
vim.g.neovide_padding_bottom = 0
vim.g.neovide_padding_right = 0
vim.g.neovide_padding_left = 0
-- Helper function for transparency formatting
local alpha = function()
return string.format("%x", math.floor(255 * (vim.g.transparency or 0.9)))
end
vim.g.neovide_transparency = 0.9
vim.g.transparency = 0.9
vim.g.neovide_background_color = "#1d2021" .. alpha()
-- nvim options
vim.opt.shiftwidth = 2
vim.opt.tabstop = 2
vim.opt.relativenumber = true
vim.cmd('autocmd FileType markdown setlocal nospell')
vim.opt.wrap = true -- wrap lines
vim.opt.spell = false
vim.o.shell = '/usr/bin/bash'
vim.o.autochdir = true
vim.cmd('autocmd BufEnter * lcd %:p:h')
-- general
lvim.use_icons = false
lvim.log.level = "info"
lvim.format_on_save = {
enabled = true,
pattern = "*.lua",
timeout = 1000,
}
-- change theme settings
lvim.colorscheme = "gruvbox"
lvim.transparent_window = false
lvim.builtin.alpha.active = true
lvim.builtin.alpha.mode = "dashboard"
lvim.builtin.terminal.active = true
lvim.builtin.nvimtree.setup.view.side = "left"
lvim.builtin.nvimtree.setup.renderer.icons.show.git = false
-- automatically install missing parsers when entering buffer
lvim.builtin.treesitter.auto_install = true
-- additional Plugins
lvim.plugins = {
{ "lunarvim/colorschemes" },
{ "ellisonleao/gruvbox.nvim" },
{ "puremourning/vimspector" },
{ "SirVer/ultisnips" },
{ "CRAG666/code_runner.nvim" },
}
-- configuring colorscheme
require("gruvbox").setup({
undercurl = true,
underline = true,
bold = false,
italic = {
strings = true,
comments = true,
operators = false,
folds = true,
},
strikethrough = true,
invert_selection = false,
invert_signs = false,
invert_tabline = false,
invert_intend_guides = false,
inverse = true, -- invert background for search, diffs, statuslines and errors
contrast = "hard", -- can be "hard", "soft" or empty string
palette_overrides = {},
overrides = {},
dim_inactive = false,
transparent_mode = false,
})
-- vimspector options
vim.g.vimspector_enable_mappings = 'HUMAN'
vim.g.vimspector_enable_mappings_for_mode = {
['<leader><leader>'] = { 'n', 'v' },
}
-- code runner options
require('code_runner').setup({
filetype = {
java = {
"cd $dir &&",
"javac $fileName &&",
"java $fileNameWithoutExt"
},
python = "python3 -u",
typescript = "deno run",
rust = {
"cd $dir &&",
"rustc $fileName &&",
"$dir/$fileNameWithoutExt"
},
cs = {
"cd '$dir' &&",
"dotnet run"
}
},
})
lvim.keys.normal_mode["<leader>r"] = ":RunCode<CR>"
lvim.keys.normal_mode["<leader>rf"] = ":RunFile<CR>"
lvim.keys.normal_mode["<leader>rft"] = ":RunFile tab<CR>"
lvim.keys.normal_mode["<leader>rp"] = ":RunProject<CR>"
lvim.keys.normal_mode["<leader>rc"] = ":RunClose<CR>"
lvim.keys.normal_mode["<leader>crf"] = ":CRFiletype<CR>"
lvim.keys.normal_mode["<leader>crp"] = ":CRProjects<CR>"

View file

@ -0,0 +1,21 @@
https://mail.google.com/ gmail
https://mail.tutanota.com/ tutanota
https://mail.proton.me/ proton-mail
https://outlook.live.com/mail outlook
https://odysee.com/ odysee
https://inv.vern.cc/ youtube
https://https://beatbump.io/ youtube-music
https://fosstodon.org/ mastodon
https://beehaw.org/ beehaw
https://pixelfed.social/ pixelfed
https://github.com/ github
https://codeberg.org/ codeberg
https://app.element.io/ element
https://app.revolt.chat/ revolt
https://web.whatsapp.com/ whatsapp
https://outlook.office.com/ intec-correo
https://campusvirtual.intec.edu.do/ intec-aula-virtual
https://procesos.intec.edu.do/ intec-procesos
https://amazon.com/ amazon
https://mega.nz/ mega
https://drive.google.com/drive/my-drive google-drive

View file

@ -0,0 +1,252 @@
## ____ __
## / __ \_________ _/ /_____
## / / / / ___/ __ `/ //_/ _ \
## / /_/ / / / /_/ / ,< / __/ Clay Gomera (Drake)
## /_____/_/ \__,_/_/|_|\___/ My custom qutebrowser config
##
# Autogenerated config.py
#
# NOTE: config.py is intended for advanced users who are comfortable
# with manually migrating the config file on qutebrowser upgrades. If
# you prefer, you can also configure qutebrowser using the
# :set/:bind/:config-* commands without having to write a config.py
# file.
#
# Documentation:
# qute://help/configuring.html
# qute://help/settings.html
# Uncomment this to still load settings configured via autoconfig.yml
# config.load_autoconfig()
# Or uncomment this line to load settings from config.py
config.load_autoconfig(False)
# Aliases for commands. The keys of the given dictionary are the
# aliases, while the values are the commands they map to.
# Type: Dict
c.aliases = {'q': 'quit', 'w': 'session-save', 'wq': 'quit --save'}
# Setting dark mode
#config.set("colors.webpage.darkmode.enabled", True)
# Which cookies to accept. With QtWebEngine, this setting also controls
# other features with tracking capabilities similar to those of cookies;
# including IndexedDB, DOM storage, filesystem API, service workers, and
# AppCache. Note that with QtWebKit, only `all` and `never` are
# supported as per-domain values. Setting `no-3rdparty` or `no-
# unknown-3rdparty` per-domain on QtWebKit will have the same effect as
# `all`.
# Type: String
# Valid values:
# - all: Accept all cookies.
# - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail.
# - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty.
# - never: Don't accept cookies at all.
config.set('content.cookies.accept', 'all', 'chrome-devtools://*')
# Which cookies to accept. With QtWebEngine, this setting also controls
# other features with tracking capabilities similar to those of cookies;
# including IndexedDB, DOM storage, filesystem API, service workers, and
# AppCache. Note that with QtWebKit, only `all` and `never` are
# supported as per-domain values. Setting `no-3rdparty` or `no-
# unknown-3rdparty` per-domain on QtWebKit will have the same effect as
# `all`.
# Type: String
# Valid values:
# - all: Accept all cookies.
# - no-3rdparty: Accept cookies from the same origin only. This is known to break some sites, such as GMail.
# - no-unknown-3rdparty: Accept cookies from the same origin only, unless a cookie is already set for the domain. On QtWebEngine, this is the same as no-3rdparty.
# - never: Don't accept cookies at all.
config.set('content.cookies.accept', 'all', 'devtools://*')
# User agent to send. The following placeholders are defined: *
# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`:
# The underlying WebKit version (set to a fixed value with
# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for
# QtWebEngine. * `{qt_version}`: The underlying Qt version. *
# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for
# QtWebEngine. * `{upstream_browser_version}`: The corresponding
# Safari/Chrome version. * `{qutebrowser_version}`: The currently
# running qutebrowser version. The default value is equal to the
# unchanged user agent of QtWebKit/QtWebEngine. Note that the value
# read from JavaScript is always the global value. With QtWebEngine
# between 5.12 and 5.14 (inclusive), changing the value exposed to
# JavaScript requires a restart.
# Type: FormatString
config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/{webkit_version} (KHTML, like Gecko) {upstream_browser_key}/{upstream_browser_version} Safari/{webkit_version}', 'https://web.whatsapp.com/')
# User agent to send. The following placeholders are defined: *
# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`:
# The underlying WebKit version (set to a fixed value with
# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for
# QtWebEngine. * `{qt_version}`: The underlying Qt version. *
# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for
# QtWebEngine. * `{upstream_browser_version}`: The corresponding
# Safari/Chrome version. * `{qutebrowser_version}`: The currently
# running qutebrowser version. The default value is equal to the
# unchanged user agent of QtWebKit/QtWebEngine. Note that the value
# read from JavaScript is always the global value. With QtWebEngine
# between 5.12 and 5.14 (inclusive), changing the value exposed to
# JavaScript requires a restart.
# Type: FormatString
config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:71.0) Gecko/20100101 Firefox/71.0', 'https://accounts.google.com/*')
# User agent to send. The following placeholders are defined: *
# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`:
# The underlying WebKit version (set to a fixed value with
# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for
# QtWebEngine. * `{qt_version}`: The underlying Qt version. *
# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for
# QtWebEngine. * `{upstream_browser_version}`: The corresponding
# Safari/Chrome version. * `{qutebrowser_version}`: The currently
# running qutebrowser version. The default value is equal to the
# unchanged user agent of QtWebKit/QtWebEngine. Note that the value
# read from JavaScript is always the global value. With QtWebEngine
# between 5.12 and 5.14 (inclusive), changing the value exposed to
# JavaScript requires a restart.
# Type: FormatString
config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99 Safari/537.36', 'https://*.slack.com/*')
# User agent to send. The following placeholders are defined: *
# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`:
# The underlying WebKit version (set to a fixed value with
# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for
# QtWebEngine. * `{qt_version}`: The underlying Qt version. *
# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for
# QtWebEngine. * `{upstream_browser_version}`: The corresponding
# Safari/Chrome version. * `{qutebrowser_version}`: The currently
# running qutebrowser version. The default value is equal to the
# unchanged user agent of QtWebKit/QtWebEngine. Note that the value
# read from JavaScript is always the global value. With QtWebEngine
# between 5.12 and 5.14 (inclusive), changing the value exposed to
# JavaScript requires a restart.
# Type: FormatString
config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:71.0) Gecko/20100101 Firefox/71.0', 'https://docs.google.com/*')
# User agent to send. The following placeholders are defined: *
# `{os_info}`: Something like "X11; Linux x86_64". * `{webkit_version}`:
# The underlying WebKit version (set to a fixed value with
# QtWebEngine). * `{qt_key}`: "Qt" for QtWebKit, "QtWebEngine" for
# QtWebEngine. * `{qt_version}`: The underlying Qt version. *
# `{upstream_browser_key}`: "Version" for QtWebKit, "Chrome" for
# QtWebEngine. * `{upstream_browser_version}`: The corresponding
# Safari/Chrome version. * `{qutebrowser_version}`: The currently
# running qutebrowser version. The default value is equal to the
# unchanged user agent of QtWebKit/QtWebEngine. Note that the value
# read from JavaScript is always the global value. With QtWebEngine
# between 5.12 and 5.14 (inclusive), changing the value exposed to
# JavaScript requires a restart.
# Type: FormatString
config.set('content.headers.user_agent', 'Mozilla/5.0 ({os_info}; rv:71.0) Gecko/20100101 Firefox/71.0', 'https://drive.google.com/*')
# Load images automatically in web pages.
# Type: Bool
config.set('content.images', True, 'chrome-devtools://*')
# Load images automatically in web pages.
# Type: Bool
config.set('content.images', True, 'devtools://*')
# Enable JavaScript.
# Type: Bool
config.set('content.javascript.enabled', True, 'chrome-devtools://*')
# Enable JavaScript.
# Type: Bool
config.set('content.javascript.enabled', True, 'devtools://*')
# Enable JavaScript.
# Type: Bool
config.set('content.javascript.enabled', True, 'chrome://*/*')
# Enable JavaScript.
# Type: Bool
config.set('content.javascript.enabled', True, 'qute://*/*')
# Type: BoolAsk
# Valid values:
# - true
# - false
# - ask
# config.set('content.notifications.enabled', True, 'https://www.youtube.com')
# Directory to save downloads to. If unset, a sensible OS-specific
# default is used.
# Type: Directory
c.downloads.location.directory = '~/Temporal/Downloads'
# When to show the tab bar.
# Type: String
# Valid values:
# - always: Always show the tab bar.
# - never: Always hide the tab bar.
# - multiple: Hide the tab bar if only one tab is open.
# - switching: Show the tab bar when switching tabs.
c.tabs.show = 'always'
# Setting default page for when opening new tabs or new windows with
# commands like :open -t and :open -w .
c.url.default_page = 'https://start.duckduckgo.com'
c.url.start_pages = 'https://start.duckduckgo.com'
# Search engines which can be used via the address bar. Maps a search
# engine name (such as `DEFAULT`, or `ddg`) to a URL with a `{}`
# placeholder. The placeholder will be replaced by the search term, use
# `{{` and `}}` for literal `{`/`}` braces. The following further
# placeholds are defined to configure how special characters in the
# search terms are replaced by safe characters (called 'quoting'): *
# `{}` and `{semiquoted}` quote everything except slashes; this is the
# most sensible choice for almost all search engines (for the search
# term `slash/and&amp` this placeholder expands to `slash/and%26amp`).
# * `{quoted}` quotes all characters (for `slash/and&amp` this
# placeholder expands to `slash%2Fand%26amp`). * `{unquoted}` quotes
# nothing (for `slash/and&amp` this placeholder expands to
# `slash/and&amp`). The search engine named `DEFAULT` is used when
# `url.auto_search` is turned on and something else than a URL was
# entered to be opened. Other search engines can be used by prepending
# the search engine name to the search term, e.g. `:open google
# qutebrowser`.
# Type: Dict
c.url.searchengines = {'DEFAULT': 'https://duckduckgo.com/?q={}', 'aw': 'https://wiki.archlinux.org/?search={}', 'ub': 'https://www.urbandictionary.com/define.php?term={}', 'wiki': 'https://en.wikipedia.org/wiki/{}'}
# Default font families to use. Whenever "default_family" is used in a
# font setting, it's replaced with the fonts listed here. If set to an
# empty value, a system-specific monospace default is used.
# Type: List of Font, or Font
c.fonts.default_family = '"mononoki Nerd Font"'
# Default font size to use. Whenever "default_size" is used in a font
# setting, it's replaced with the size listed here. Valid values are
# either a float value with a "pt" suffix, or an integer value with a
# "px" suffix.
# Type: String
c.fonts.default_size = '10pt'
# Font used in the completion widget.
# Type: Font
c.fonts.completion.entry = '10pt "mononoki Nerd Font"'
# Font used for the debugging console.
# Type: Font
c.fonts.debug_console = '10pt "mononoki Nerd Font"'
# Font used for prompts.
# Type: Font
c.fonts.prompts = 'default_size sans-serif'
# Font used in the statusbar.
# Type: Font
c.fonts.statusbar = '10pt "mononoki Nerd Font"'
config.source('gruvbox.py')
# Bindings for normal mode
config.bind('M', 'hint links spawn mpv {hint-url}')
config.bind('Z', 'hint links spawn st -e youtube-dl {hint-url}')
config.bind('t', 'set-cmd-text -s :open -t')
config.bind('xb', 'config-cycle statusbar.show always never')
config.bind('xt', 'config-cycle tabs.show always never')
config.bind('xx', 'config-cycle statusbar.show always never;; config-cycle tabs.show always never')

View file

@ -0,0 +1,333 @@
# gruvbox dark hard qutebrowser theme by Florian Bruhin <me@the-compiler.org>
#
# Originally based on:
# base16-qutebrowser (https://github.com/theova/base16-qutebrowser)
# Base16 qutebrowser template by theova and Daniel Mulford
# Gruvbox dark, hard scheme by Dawid Kurek (dawikur@gmail.com), morhetz (https://github.com/morhetz/gruvbox)
bg0_hard = "#1d2021"
bg0_soft = '#32302f'
bg0_normal = '#282828'
bg0 = bg0_normal
bg1 = "#3c3836"
bg2 = "#504945"
bg3 = "#665c54"
bg4 = "#7c6f64"
fg0 = "#fbf1c7"
fg1 = "#ebdbb2"
fg2 = "#d5c4a1"
fg3 = "#bdae93"
fg4 = "#a89984"
bright_red = "#fb4934"
bright_green = "#b8bb26"
bright_yellow = "#fabd2f"
bright_blue = "#83a598"
bright_purple = "#d3869b"
bright_aqua = "#8ec07c"
bright_gray = "#928374"
bright_orange = "#fe8019"
dark_red = "#cc241d"
dark_green = "#98971a"
dark_yellow = "#d79921"
dark_blue = "#458588"
dark_purple = "#b16286"
dark_aqua = "#689d6a"
dark_gray = "#a89984"
dark_orange = "#d65d0e"
### Completion
# Text color of the completion widget. May be a single color to use for
# all columns or a list of three colors, one for each column.
c.colors.completion.fg = [fg1, bright_aqua, bright_yellow]
# Background color of the completion widget for odd rows.
c.colors.completion.odd.bg = bg0
# Background color of the completion widget for even rows.
c.colors.completion.even.bg = c.colors.completion.odd.bg
# Foreground color of completion widget category headers.
c.colors.completion.category.fg = bright_blue
# Background color of the completion widget category headers.
c.colors.completion.category.bg = bg1
# Top border color of the completion widget category headers.
c.colors.completion.category.border.top = c.colors.completion.category.bg
# Bottom border color of the completion widget category headers.
c.colors.completion.category.border.bottom = c.colors.completion.category.bg
# Foreground color of the selected completion item.
c.colors.completion.item.selected.fg = fg0
# Background color of the selected completion item.
c.colors.completion.item.selected.bg = bg4
# Top border color of the selected completion item.
c.colors.completion.item.selected.border.top = bg2
# Bottom border color of the selected completion item.
c.colors.completion.item.selected.border.bottom = c.colors.completion.item.selected.border.top
# Foreground color of the matched text in the selected completion item.
c.colors.completion.item.selected.match.fg = bright_orange
# Foreground color of the matched text in the completion.
c.colors.completion.match.fg = c.colors.completion.item.selected.match.fg
# Color of the scrollbar handle in the completion view.
c.colors.completion.scrollbar.fg = c.colors.completion.item.selected.fg
# Color of the scrollbar in the completion view.
c.colors.completion.scrollbar.bg = c.colors.completion.category.bg
### Context menu
# Background color of disabled items in the context menu.
c.colors.contextmenu.disabled.bg = bg3
# Foreground color of disabled items in the context menu.
c.colors.contextmenu.disabled.fg = fg3
# Background color of the context menu. If set to null, the Qt default is used.
c.colors.contextmenu.menu.bg = bg0
# Foreground color of the context menu. If set to null, the Qt default is used.
c.colors.contextmenu.menu.fg = fg2
# Background color of the context menu's selected item. If set to null, the Qt default is used.
c.colors.contextmenu.selected.bg = bg2
#Foreground color of the context menu's selected item. If set to null, the Qt default is used.
c.colors.contextmenu.selected.fg = c.colors.contextmenu.menu.fg
### Downloads
# Background color for the download bar.
c.colors.downloads.bar.bg = bg0
# Color gradient start for download text.
c.colors.downloads.start.fg = bg0
# Color gradient start for download backgrounds.
c.colors.downloads.start.bg = bright_blue
# Color gradient end for download text.
c.colors.downloads.stop.fg = c.colors.downloads.start.fg
# Color gradient stop for download backgrounds.
c.colors.downloads.stop.bg = bright_aqua
# Foreground color for downloads with errors.
c.colors.downloads.error.fg = bright_red
### Hints
# Font color for hints.
c.colors.hints.fg = bg0
# Background color for hints.
c.colors.hints.bg = 'rgba(250, 191, 47, 200)' # bright_yellow
# Font color for the matched part of hints.
c.colors.hints.match.fg = bg4
### Keyhint widget
# Text color for the keyhint widget.
c.colors.keyhint.fg = fg4
# Highlight color for keys to complete the current keychain.
c.colors.keyhint.suffix.fg = fg0
# Background color of the keyhint widget.
c.colors.keyhint.bg = bg0
### Messages
# Foreground color of an error message.
c.colors.messages.error.fg = bg0
# Background color of an error message.
c.colors.messages.error.bg = bright_red
# Border color of an error message.
c.colors.messages.error.border = c.colors.messages.error.bg
# Foreground color of a warning message.
c.colors.messages.warning.fg = bg0
# Background color of a warning message.
c.colors.messages.warning.bg = bright_purple
# Border color of a warning message.
c.colors.messages.warning.border = c.colors.messages.warning.bg
# Foreground color of an info message.
c.colors.messages.info.fg = fg2
# Background color of an info message.
c.colors.messages.info.bg = bg0
# Border color of an info message.
c.colors.messages.info.border = c.colors.messages.info.bg
### Prompts
# Foreground color for prompts.
c.colors.prompts.fg = fg2
# Border used around UI elements in prompts.
c.colors.prompts.border = f'1px solid {bg1}'
# Background color for prompts.
c.colors.prompts.bg = bg3
# Background color for the selected item in filename prompts.
c.colors.prompts.selected.bg = bg2
### Statusbar
# Foreground color of the statusbar.
c.colors.statusbar.normal.fg = fg2
# Background color of the statusbar.
c.colors.statusbar.normal.bg = bg0
# Foreground color of the statusbar in insert mode.
c.colors.statusbar.insert.fg = bg0
# Background color of the statusbar in insert mode.
c.colors.statusbar.insert.bg = dark_aqua
# Foreground color of the statusbar in passthrough mode.
c.colors.statusbar.passthrough.fg = bg0
# Background color of the statusbar in passthrough mode.
c.colors.statusbar.passthrough.bg = dark_blue
# Foreground color of the statusbar in private browsing mode.
c.colors.statusbar.private.fg = bright_purple
# Background color of the statusbar in private browsing mode.
c.colors.statusbar.private.bg = bg0
# Foreground color of the statusbar in command mode.
c.colors.statusbar.command.fg = fg3
# Background color of the statusbar in command mode.
c.colors.statusbar.command.bg = bg1
# Foreground color of the statusbar in private browsing + command mode.
c.colors.statusbar.command.private.fg = c.colors.statusbar.private.fg
# Background color of the statusbar in private browsing + command mode.
c.colors.statusbar.command.private.bg = c.colors.statusbar.command.bg
# Foreground color of the statusbar in caret mode.
c.colors.statusbar.caret.fg = bg0
# Background color of the statusbar in caret mode.
c.colors.statusbar.caret.bg = dark_purple
# Foreground color of the statusbar in caret mode with a selection.
c.colors.statusbar.caret.selection.fg = c.colors.statusbar.caret.fg
# Background color of the statusbar in caret mode with a selection.
c.colors.statusbar.caret.selection.bg = bright_purple
# Background color of the progress bar.
c.colors.statusbar.progress.bg = bright_blue
# Default foreground color of the URL in the statusbar.
c.colors.statusbar.url.fg = fg4
# Foreground color of the URL in the statusbar on error.
c.colors.statusbar.url.error.fg = dark_red
# Foreground color of the URL in the statusbar for hovered links.
c.colors.statusbar.url.hover.fg = bright_orange
# Foreground color of the URL in the statusbar on successful load
# (http).
c.colors.statusbar.url.success.http.fg = bright_red
# Foreground color of the URL in the statusbar on successful load
# (https).
c.colors.statusbar.url.success.https.fg = fg0
# Foreground color of the URL in the statusbar when there's a warning.
c.colors.statusbar.url.warn.fg = bright_purple
### tabs
# Background color of the tab bar.
c.colors.tabs.bar.bg = bg0
# Color gradient start for the tab indicator.
c.colors.tabs.indicator.start = bright_blue
# Color gradient end for the tab indicator.
c.colors.tabs.indicator.stop = bright_aqua
# Color for the tab indicator on errors.
c.colors.tabs.indicator.error = bright_red
# Foreground color of unselected odd tabs.
c.colors.tabs.odd.fg = fg2
# Background color of unselected odd tabs.
c.colors.tabs.odd.bg = bg2
# Foreground color of unselected even tabs.
c.colors.tabs.even.fg = c.colors.tabs.odd.fg
# Background color of unselected even tabs.
c.colors.tabs.even.bg = bg3
# Foreground color of selected odd tabs.
c.colors.tabs.selected.odd.fg = fg2
# Background color of selected odd tabs.
c.colors.tabs.selected.odd.bg = bg0
# Foreground color of selected even tabs.
c.colors.tabs.selected.even.fg = c.colors.tabs.selected.odd.fg
# Background color of selected even tabs.
c.colors.tabs.selected.even.bg = bg0
# Background color of pinned unselected even tabs.
c.colors.tabs.pinned.even.bg = bright_green
# Foreground color of pinned unselected even tabs.
c.colors.tabs.pinned.even.fg = bg2
# Background color of pinned unselected odd tabs.
c.colors.tabs.pinned.odd.bg = bright_green
# Foreground color of pinned unselected odd tabs.
c.colors.tabs.pinned.odd.fg = c.colors.tabs.pinned.even.fg
# Background color of pinned selected even tabs.
c.colors.tabs.pinned.selected.even.bg = bg0
# Foreground color of pinned selected even tabs.
c.colors.tabs.pinned.selected.even.fg = c.colors.tabs.selected.odd.fg
# Background color of pinned selected odd tabs.
c.colors.tabs.pinned.selected.odd.bg = c.colors.tabs.pinned.selected.even.bg
# Foreground color of pinned selected odd tabs.
c.colors.tabs.pinned.selected.odd.fg = c.colors.tabs.selected.odd.fg
# Background color for webpages if unset (or empty to use the theme's
# color).
c.colors.webpage.bg = bg4

View file

@ -3,5 +3,6 @@
# ***This script was made by Clay Gomera (Drake)*** # ***This script was made by Clay Gomera (Drake)***
# - Description: A simple desktop dmenu script # - Description: A simple desktop dmenu script
# - Dependencies: dmenu, j4-dmenu-desktop # - Dependencies: dmenu, j4-dmenu-desktop
#
j4-dmenu-desktop --dmenu "dmenu -i -l 10 -p launch:" --no-generic # uses j4-dmenu-desktop to launch programs by it's desktop entry
j4-dmenu-desktop --dmenu "dmenu -i -l 10 -p '󱓞 Launch:'" --no-generic

View file

@ -2,9 +2,11 @@
# ***This script was made by Clay Gomera (Drake)*** # ***This script was made by Clay Gomera (Drake)***
# - Description: A simple script for file editing in dmenu # - Description: A simple script for file editing in dmenu
# - Dependencies: dmenu (Everything else can be changed) # - Dependencies: dmenu, fd
# Show list of options ##########
## main ##
##########
cd "$HOME" || exit 0 cd "$HOME" || exit 0
file=1 file=1
while [ "$file" ]; do while [ "$file" ]; do
@ -15,7 +17,7 @@ while [ "$file" ]; do
cd "$file" || exit 0 cd "$file" || exit 0
else [ -f "$file" ] else [ -f "$file" ]
if [ "$file" ]; then if [ "$file" ]; then
$VISUAL "$owd/$file" & $VISUAL "$owd/$file" & # $VISUAL reffers to a global variable set in .xinitrc/.bash_profile
exit 0 exit 0
else else
exit 0 exit 0

View file

@ -2,9 +2,11 @@
# ***This script was made by Clay Gomera (Drake)*** # ***This script was made by Clay Gomera (Drake)***
# - Description: A simple power menu dmenu script # - Description: A simple power menu dmenu script
# - Dependencies: dmenu, power-profiles-daemon # - Dependencies: dmenu, power-profiles-daemon, slock
## OPTIONS ## #######################
## Main menu options ##
#######################
option1=" Logout" option1=" Logout"
option2=" Reboot" option2=" Reboot"
option3=" Power off" option3=" Power off"
@ -14,46 +16,59 @@ option6=" Change power profile"
option7=" Cancel" option7=" Cancel"
options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6\n$option7" options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6\n$option7"
## POWER PROFILE OPTIONS ## ############################
## Power profiles submenu ##
############################
pwr1="󰓅 Performance" pwr1="󰓅 Performance"
pwr2="󰾅 Balanced" pwr2="󰾅 Balanced"
pwr3="󰾆 Power Saver" pwr3="󰾆 Power Saver"
pwr4=" Cancel" pwr4=" Cancel"
pwrs="$pwr1\n$pwr2\n$pwr3\n$pwr4" pwrs="$pwr1\n$pwr2\n$pwr3\n$pwr4"
## MAIN ACTION COMMAND ## ##########
action=$(echo -e "$options" | dmenu -i -p " Power Options") ## main ##
##########
action=$(echo -e "$options" | dmenu -i -p " Power Options"); # main menu prompt
case "$action" in case "$action" in
$option1*) "$option1")
pkill X;; pkill X; # killing X will result in a logout
$option2*) ;;
systemctl reboot;; "$option2")
$option3*) systemctl reboot || loginctl reboot;
systemctl poweroff;; ;;
$option4*) "$option3")
slock systemctl suspend;; systemctl poweroff || loginctl poweroff;
$option5*) ;;
slock;; "$option4")
$option6*) slock systemctl suspend || slock loginctl suspend;
currentpwr=$(powerprofilesctl get) ;;
if [ "$currentpwr" = "performance" ]; then "$option5")
slock;
;;
"$option6")
currentpwr=$(powerprofilesctl get); # this variable will store the current power profile
if [ "$currentpwr" = "performance" ]; then # this if statement is used for the power profiles prompt
currentpwr="$pwr1" currentpwr="$pwr1"
elif [ "$currentpwr" = "balanced" ]; then elif [ "$currentpwr" = "balanced" ]; then
currentpwr="$pwr2" currentpwr="$pwr2"
elif [ "$currentpwr" = "power-saver" ]; then elif [ "$currentpwr" = "power-saver" ]; then
currentpwr="$pwr3" currentpwr="$pwr3"
fi fi
pwraction=$(echo -e "$pwrs" | dmenu -i -p " Power Profile Menu - Currently set to: ${currentpwr}") pwraction=$(echo -e "$pwrs" | dmenu -i -p " Power Profile Menu - Currently set to: ${currentpwr}"); # power profiles submenu prompt
case "$pwraction" in case "$pwraction" in
$pwr1*) "$pwr1")
powerprofilesctl set performance && notify-send "Power profile switched to performance";; powerprofilesctl set performance && notify-send "Power profile switched to performance";
$pwr2*) ;;
powerprofilesctl set balanced && notify-send "Power profile switched to balanced";; "$pwr2")
$pwr3*) powerprofilesctl set balanced && notify-send "Power profile switched to balanced";
powerprofilesctl set power-saver && notify-send "Power profile switched to power saver";; ;;
$pwr4*) "$pwr3")
powerprofilesctl set power-saver && notify-send "Power profile switched to power saver";
;;
"$pwr4")
exit 0 exit 0
esac;; esac
$option7*) ;;
"$option7")
exit 0 exit 0
esac esac

View file

@ -4,16 +4,22 @@
# - Description: A simple screenshot/screencast dmenu script # - Description: A simple screenshot/screencast dmenu script
# - Dependencies: maim, splop, ffmpeg, dmenu, libnotify # - Dependencies: maim, splop, ffmpeg, dmenu, libnotify
## Screenshots Folder ## ###########################
mkdir -p "$MEDIA_DIR/Pictures/Screenshots" ## Screenshots Directory ##
cd "$MEDIA_DIR/Pictures/Screenshots" || exit 0 ###########################
SHOTDIR="$MEDIA_DIR/Pictures/Screenshots" # $MEDIA_DIR reffers to a global variable in .xinitrc/.bash_profile
mkdir -p "$SHOTDIR"
#######################
## Main menu choices ## ## Main menu choices ##
mcho1="Take an screenshot" #######################
mcho2="Record the screen" mcho1="󰹑 Take an screenshot"
mcho2="󰻃 Record the screen"
mchos="$mcho1\n$mcho2" mchos="$mcho1\n$mcho2"
#############################
## Screenshot menu choices ## ## Screenshot menu choices ##
#############################
scho1="󱣴 Entire screen" scho1="󱣴 Entire screen"
scho2="󱎫 Entire screen with delay" scho2="󱎫 Entire screen with delay"
scho3="󱕻 Select area" scho3="󱕻 Select area"
@ -21,113 +27,180 @@ scho4="󰖯 Active window"
scho5="󱎘 Exit" scho5="󱎘 Exit"
schos="$scho1\n$scho2\n$scho3\n$scho4\n$scho5" schos="$scho1\n$scho2\n$scho3\n$scho4\n$scho5"
########################
## Screenshot submenu ## ## Screenshot submenu ##
sscho1="Copy to clipboard" ########################
sscho2="Save to Media/Pictures/Screenshots" sscho1="󰆏 Copy to clipboard"
sscho2="󰠘 Save to ~/Media/Pictures/Screenshots"
sschos="$sscho1\n$sscho2" sschos="$sscho1\n$sscho2"
## Screenshot delay choices ## #################################
## Screenshot delay subsubmenu ##
#################################
del1="󱑀 3 sec delay" del1="󱑀 3 sec delay"
del2="󱑂 5 sec delay" del2="󱑂 5 sec delay"
del3="󱑇 10 sec delay" del3="󱑇 10 sec delay"
dels="$del1\n$del2\n$del3" dels="$del1\n$del2\n$del3"
#####
## This function uses the sschos variable
## to ask the user what to do with the
## screenshot
#####
## param: none
## return: string
#####
fsschos() { fsschos() {
sschoice=$(echo -e "$sschos" | dmenu -i -l 2 -p " What do you want to do with this screenshot?") sschoice=$(echo -e "$sschos" | dmenu -i -l 2 -p " What do you want to do with this screenshot?")
} }
#####
## This function uses the dels variable
## to ask the user which delay option to
## choose
#####
## param: none
## return: string
#####
fdel() { fdel() {
del=$(echo -e "$dels" | dmenu -i -p " Select Delay") del=$(echo -e "$dels" | dmenu -i -p " Select Delay")
} }
#####
## This function does a full screen
## screenshot without delay, depending on
## what the user chooses on the fsschos
## function, the screenshot will be saved
## to the clipboard or to $SHOTDIR
#####
## param: none
## return: void
#####
shot_screen() { shot_screen() {
fsschos fsschos
if [ "$sschoice" = "$sscho1" ]; then if [ "$sschoice" = "$sscho1" ]; then
maim | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard" maim | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard"
elif [ "$sschoice" = "$sscho2" ]; then elif [ "$sschoice" = "$sscho2" ]; then
maim -f jpg $(date +%s).jpg && notify-send "Screenshot saved" maim -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved"
else else
exit 0 exit 0
fi fi
} }
#####
## This function does a full screen
## screenshot with delay, depending on
## what the user chooses on the fsschos
## function, the screenshot will be saved
## to the clipboard or to $SHOTDIR. And
## depending on what the user chooses on
## the fdel function, the delay will be
## between 3 and 10 seconds
#####
## param: none
## return: void
#####
shot_screen_delay() { shot_screen_delay() {
fsschos fsschos;
if [ "$sschoice" = "$sscho1" ]; then if [ "$sschoice" = "$sscho1" ]; then
fdel fdel;
case $del in case $del in
"$del1") "$del1")
sleep 3 && maim | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard" sleep 3 && maim | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard";
;; ;;
"$del2") "$del2")
sleep 5 && maim | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard" sleep 5 && maim | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard";
;; ;;
"$del3") "$del3")
sleep 10 && maim | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard" sleep 10 && maim | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard";
esac esac
elif [ "$sschoice" = "$sscho2" ]; then elif [ "$sschoice" = "$sscho2" ]; then
fdel fdel;
case $del in case $del in
"$del1") "$del1")
sleep 3 && maim -f jpg $(date +%s).jpg && notify-send "Screenshot saved" sleep 3 && maim -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to ~/Media/Pictures/Screenshots/";
;; ;;
"$del2") "$del2")
sleep 5 && maim -f jpg $(date +%s).jpg && notify-send "Screenshot saved" sleep 5 && maim -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to ~/Media/Pictures/Screenshots/";
;; ;;
"$del3") "$del3")
sleep 10 && maim -f jpg $(date +%s).jpg && notify-send "Screenshot saved" sleep 10 && maim -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to ~/Media/Pictures/Screenshots/";
esac esac
else else
exit 0 exit 0
fi fi
} }
#####
## This function allows the user to select
## the area on screen to screenshot
## depending on what the user chooses on
## the fsschos function, the screenshot
## will be saved to the clipboard or to
## $SHOTDIR
#####
## param: none
## return: void
#####
shot_area() { shot_area() {
fsschos fsschos;
if [ "$sschoice" = "$sscho1" ]; then if [ "$sschoice" = "$sscho1" ]; then
maim -s | xclip -selection clipboard -t image/png && notify-send "Screenshot saved" maim -s | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard";
elif [ "$sschoice" = "$sscho2" ]; then elif [ "$sschoice" = "$sscho2" ]; then
maim -s -f jpg $(date +%s).jpg && notify-send "Screenshot saved" maim -s -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to ~/Media/Pictures/Screenshots/";
else else
exit 0 exit 0
fi fi
} }
#####
## This function does an screnshot of the
## currently active window, depending on
## what the user chooses on the fsschos
## function, the screenshot will be saved
## to the clipboard or to $SHOTDIR
#####
## param: none
## return: void
#####
shot_window() { shot_window() {
fsschos fsschos;
if [ "$sschoice" = "$sscho1" ]; then if [ "$sschoice" = "$sscho1" ]; then
maim -i $(xdotool getactivewindow) | xclip -selection clipboard -t image/png && notify-send "Screenshot saved" maim -i "$(xdotool getactivewindow)" | xclip -selection clipboard -t image/png && notify-send "Screenshot saved to clipboard";
elif [ "$sschoice" = "$sscho2" ]; then elif [ "$sschoice" = "$sscho2" ]; then
maim -i $(xdotool getactivewindow) -f jpg $(date +%s).jpg && notify-send "Screenshot saved" maim -i "$(xdotool getactivewindow)" -f jpg "$SHOTDIR/$(date +%s).jpg" && notify-send "Screenshot saved to ~/Media/Pictures/Screenshots/";
else else
exit 0 exit 0
fi fi
} }
## Main action ## ##########
mchoice=$(echo -e "$mchos" | dmenu -i -l 2 -p " Screen Capture Menu") ## main ##
##########
mchoice=$(echo -e "$mchos" | dmenu -i -l 2 -p " Screen Capture Menu") # main menu prompt
case $mchoice in case $mchoice in
"$mcho1") "$mcho1")
schoice=$(echo -e "$schos" | dmenu -i -l 9 -p " Sreenshot Menu") schoice=$(echo -e "$schos" | dmenu -i -l 9 -p " Sreenshot Menu") # screenshot menu prompt
case $schoice in case $schoice in
"$scho1") "$scho1")
shot_screen shot_screen;
;; ;;
"$scho2") "$scho2")
shot_screen_delay shot_screen_delay;
;; ;;
"$scho3") "$scho3")
shot_area shot_area;
;; ;;
"$scho4") "$scho4")
shot_window shot_window;
;; ;;
"$scho5") "$scho5")
exit 0 exit 0
esac esac
;; ;;
"$mcho2") "$mcho2")
notify-send "It worked" # TODO Implement screencast functionality with ffmpeg
notify-send "Bro you need to implement screen recording with ffmpeg"
exit 0 exit 0
;; ;;
esac esac

View file

@ -1,25 +1,18 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# ***This script was made by Clay Gomera (Drake)*** # ***This script was made by Clay Gomera (Drake)***
# - Description: A simple wallpaper changer script # - Description: A simple dmenu script to set the wallpaper on X
# - Dependencies: rofi, fd, feh # - Dependencies: dmenu, fd, feh
## MAIN VARIABLES AND COMMANDS ## ##########################
walldir="$MEDIA_DIR/Pictures/Wallpapers" ## Wallpapers Directory ##
cd "$walldir" || exit ##########################
walldir="$MEDIA_DIR/Pictures/Wallpapers" # $MEDIA_DIR reffers to a global variable in .xinitrc/.bash_profile
cd "$walldir" || exit # we cd into $walldir in order to get only the file name on the main prompt
## SELECT PICTURE FUNCTION ## #######################
selectpic() { ## Wallpaper options ##
wallpaper=$(fdfind -p "$walldir" | dmenu -i -p " 󰋩 Select a wallpaper ") #######################
if [ "$wallpaper" ]; then
chosenwall=$wallpaper
else
exit 0
fi
}
selectpic
## WALLPAPER SETTING OPTIONS ##
option1="Fill" option1="Fill"
option2="Center" option2="Center"
option3="Tile" option3="Tile"
@ -27,18 +20,30 @@ option4="Max"
option5="Scale" option5="Scale"
options="$option1\n$option2\n$option3\n$option4\n$option5" options="$option1\n$option2\n$option3\n$option4\n$option5"
## MAIN ACTION ## ##########
action=$(echo -e "$options" | dmenu -i -p "  Chose the format ") ## main ##
##########
wallpaper=$(fd -p ./ | dmenu -i -p " 󰋩 Select a wallpaper ") # main prompt
if [ "$wallpaper" ]; then # if the user made a choice
chosenwall=$wallpaper # reassign $wallpaper to $chosenwall
else
exit 0
fi
action=$(echo -e "$options" | dmenu -i -p "  Chose the format ") # options prompt
case "$action" in case "$action" in
$option1*) $option1*)
feh --bg-fill "$chosenwall";; feh --bg-fill "$chosenwall";
;;
$option2*) $option2*)
feh --bg-center "$chosenwall";; feh --bg-center "$chosenwall";
;;
$option3*) $option3*)
feh --bg-tile "$chosenwall";; feh --bg-tile "$chosenwall";
;;
$option4*) $option4*)
feh --bg-max "$chosenwall";; feh --bg-max "$chosenwall";
;;
$option5*) $option5*)
feh --bg-scale "$chosenwall";; feh --bg-scale "$chosenwall";
;;
esac esac
exit 0

View file

@ -4,7 +4,9 @@
# - Description: A simple wifi dmenu script # - Description: A simple wifi dmenu script
# - Dependencies: dmenu, NetworkManager # - Dependencies: dmenu, NetworkManager
## MAIN OPTIONS ## #######################
## Main manu options ##
#######################
option1=" Turn on WiFi" option1=" Turn on WiFi"
option2=" Turn off WiFi" option2=" Turn off WiFi"
option3="󱛅 Disconnect WiFi" option3="󱛅 Disconnect WiFi"
@ -13,47 +15,106 @@ option5="󱛆 Setup captive portal"
option6=" Exit" option6=" Exit"
options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6" options="$option1\n$option2\n$option3\n$option4\n$option5\n$option6"
#####
## This variable will grab the wireless
## interface name
#####
wlan=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f1 | head -1) wlan=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f1 | head -1)
## TURN OFF WIFI FUNCTION ##
#####
## This function uses nmcli to turn
## off wifi and then sends a
## notification
#####
## param: none
## return: void
#####
turnoff() { turnoff() {
nmcli radio wifi off nmcli radio wifi off
notify-send "WiFi has been turned off" notify-send "WiFi has been turned off"
} }
## TURN ON WIFI FUNCTION ## #####
## This function uses nmcli to turn
## on wifi and then sends a
## notification
#####
## param: none
## return: void
#####
turnon() { turnon() {
nmcli radio wifi on nmcli radio wifi on
notify-send "WiFi has been turned on" notify-send "WiFi has been turned on"
} }
## DISCONNECT WIFI FUNCTION ## #####
## This function uses nmcli and the
## $wlan variable to disconnect
## from the wifi network and
## then sends a notification
#####
## param: none
## return: void
#####
disconnect() { disconnect() {
nmcli device disconnect "$wlan" nmcli device disconnect "$wlan"
sleep 1 notify-send "WiFi has been disconnected"
constate=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f3 | head -1)
if [ "$constate" = "disconnected" ]; then
notify-send "WiFi has been disconnected"
fi
} }
## CONNECT FUNCTION ## #####
## This function uses nmcli to first scan
## for available networks and then the
## $bssid variable will store the SSID
## of the network that the user chooses
#####
## param: none
## return: string
#####
connect() { connect() {
notify-send "Scannig networks, please wait" notify-send "Scannig WiFi networks, please wait"
nmcli dev wifi rescan
sleep 1 sleep 1
bssid=$(nmcli device wifi list | sed -n '1!p' | cut -b 9- | dmenu -i -l 10 -p "Select a Wifi Network  " | cut -d' ' -f1) bssid=$(nmcli device wifi list | sed -n '1!p' | cut -b 9- | dmenu -i -l 10 -p "Select a Wifi Network  " | cut -d' ' -f1)
} }
## SELECT PASSWORD FUNCTION ## #####
## This function will store the WiFi
## password in the $pass variable
#####
## param: none
## return: string
#####
password() { password() {
# TODO Create a condition to check if the chosen network is open or not, that
# way this will be skipped of it's open
# TODO What if the network is already saved? The user doesn't need to type the
# password again
pass=$(echo " " | dmenu -P -i -p "Enter Password ") pass=$(echo " " | dmenu -P -i -p "Enter Password ")
} }
## MAIN CONNECTION COMMAND ## #####
## This function will actually connect
## to the chosen WiFi network using the
## $bssid and $pass variables
#####
## param: none
## return: void
#####
action() { action() {
# TODO Create a condition to check if the chosen network is open or not (check
# password funcion)
# TODO What if the network is already saved? The user doesn't need to type the
# password again
nmcli device wifi connect "$bssid" password "$pass" || nmcli device wifi connect "$bssid" nmcli device wifi connect "$bssid" password "$pass" || nmcli device wifi connect "$bssid"
} }
## CHECKING IF WIFI IS WORKING #####
## This function will check if the
## connection works
#####
## param: none
## return: void
#####
check() { check() {
notify-send "Checking if connection was successful" notify-send "Checking if connection was successful"
sleep 1 sleep 1
@ -65,31 +126,29 @@ check() {
fi fi
} }
## MAIN ACTION COMMANDS ## ##########
cases=$(echo -e "$options" | dmenu -i -p " Wifi Settings" ) ## main ##
if [ -n "$cases" ]; then ##########
case "$cases" in cases=$(echo -e "$options" | dmenu -l 6 -i -p " Wifi Settings" ) # main menu prompt
$option1) case "$cases" in
turnon;; "$option1")
$option2) turnon;;
turnoff;; "$option2")
$option3) turnoff;;
disconnect;; "$option3")
$option4) disconnect;;
connect; "$option4")
if [ -n "$bssid" ]; then connect;
password; if [ -n "$bssid" ]; then # if the user chooses a network
action; password;
sleep 5; action;
check; sleep 5;
else check;
exit 0; else
fi;; exit 0; # if not, exit the script
$option5) fi;;
"$BROWSER" http://networkcheck.kde.org;; "$option5")
$option6) "$BROWSER" http://networkcheck.kde.org;; # $BROWSER reffers to a global variable set in .xinitrc/.bash_profile
exit 0; "$option6")
esac exit 0;
else esac
exit 0;
fi

View file

@ -62,15 +62,15 @@ static Sp scratchpads[] = {
/* tagging */ /* tagging */
static const char *tags[] = { static const char *tags[] = {
"", // EDITOR "", // EDITOR
"󰙨", // TESTING "󰙨", // TESTING
"󰖟", // WEB BROWSER "󰖟", // WEB BROWSER
"󰭹", // CHAT "󰭹", // CHAT
"󱡭", // AUDIO TOOLS "󱡭", // AUDIO TOOLS
"󰕧", // VIDEO "󰕧", // VIDEO
"󰏘", // IMAGE/EDIT TOOLS "󰏘", // IMAGE/EDIT TOOLS
"󰈙", // OFFICE "󰈙", // OFFICE
"󰊖" // GAMES "󰊖" // GAMES
}; };
// rules // rules
@ -89,6 +89,7 @@ static const Rule rules[] = {
{ "neovide", NULL, NULL, 1, 0, -1 }, { "neovide", NULL, NULL, 1, 0, -1 },
// test tag // test tag
{ "Virt-manager", NULL, NULL, 1 << 1, 0, -1 }, { "Virt-manager", NULL, NULL, 1 << 1, 0, -1 },
{ "Gnome-boxes", NULL, NULL, 1 << 1, 0, -1 },
// web tag // web tag
{ "LibreWolf", NULL, NULL, 1 << 2, 0, -1 }, { "LibreWolf", NULL, NULL, 1 << 2, 0, -1 },
{ "librewolf-default", NULL, NULL, 1 << 2, 0, -1 }, { "librewolf-default", NULL, NULL, 1 << 2, 0, -1 },
@ -109,6 +110,7 @@ static const Rule rules[] = {
{ "lsp-plugins", NULL, NULL, 1 << 4, 1, -1 }, { "lsp-plugins", NULL, NULL, 1 << 4, 1, -1 },
{ "qpwgraph", NULL, NULL, 1 << 4, 0, -1 }, { "qpwgraph", NULL, NULL, 1 << 4, 0, -1 },
{ "Cadence", NULL, NULL, 1 << 4, 0, -1 }, { "Cadence", NULL, NULL, 1 << 4, 0, -1 },
{ "easyeffects", NULL, NULL, 1 << 4, 0, -1 },
// video tag // video tag
{ "kdenlive", NULL, NULL, 1 << 5, 0, -1 }, { "kdenlive", NULL, NULL, 1 << 5, 0, -1 },
{ "Pitivi", NULL, NULL, 1 << 5, 0, -1 }, { "Pitivi", NULL, NULL, 1 << 5, 0, -1 },
@ -194,9 +196,9 @@ static const Key keys[] = {
// terminal // terminal
{ MODKEY, XK_Return, spawn, {.v = termcmd } }, { MODKEY, XK_Return, spawn, {.v = termcmd } },
// text editor // text editor
{ MODKEY, XK_e, spawn, SHCMD("emacsclient -c -a 'emacs'")}, { MODKEY, XK_e, spawn, SHCMD("neovide --neovim-bin ~/.local/bin/lvim")},
// web browser // web browser
{ MODKEY, XK_w, spawn, SHCMD("librewolf")}, { MODKEY, XK_w, spawn, SHCMD("firefox")},
// chat // chat
{ MODKEY, XK_s, spawn, SHCMD("signal-desktop")}, { MODKEY, XK_s, spawn, SHCMD("signal-desktop")},
@ -242,7 +244,7 @@ static const Key keys[] = {
// wifi config // wifi config
{ MODKEY|ShiftMask, XK_i, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_wifi") }, { MODKEY|ShiftMask, XK_i, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_wifi") },
// screenshots // screenshots
{ MODKEY|ShiftMask, XK_s, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_scrot") }, { MODKEY, XK_Print, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_scrot") },
// wallpapers // wallpapers
{ MODKEY|ShiftMask, XK_w, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_wall") }, { MODKEY|ShiftMask, XK_w, spawn, SHCMD("$HOME/.config/suckless/dmenu/scripts/dmenu_wall") },
// edit // edit

View file

@ -1,5 +1,10 @@
#!/bin/bash #!/usr/bin/env bash
# Loop through all attached batteries and format the info
# ***This script was made by Clay Gomera (Drake)***
# - Description: A dwmblocks script to print the current power profile and battery status
# - Dependencies: dwm, dwmblocks, power-profiles-daemon
# this variable will store the current power profile
currntpwr=$(powerprofilesctl get) currntpwr=$(powerprofilesctl get)
if [ "${currntpwr}" = "performance" ]; then if [ "${currntpwr}" = "performance" ]; then
pwr=" | 󰓅 Performance " pwr=" | 󰓅 Performance "
@ -9,94 +14,78 @@ elif [ "${currntpwr}" = "power-saver" ]; then
pwr=" | 󰾆 PowerSaver " pwr=" | 󰾆 PowerSaver "
fi fi
# loop through all the available batteries and get it's current capacity
for battery in /sys/class/power_supply/BAT?*; do for battery in /sys/class/power_supply/BAT?*; do
# If non-first battery, print a space separator. # if non-first battery, print a space separator.
[ -n "${capacity+x}" ] && printf " " [ -n "${capacity+x}" ] && printf " "
# Sets up the status and capacity # sets up the status and capacity
case "$(cat "$battery/status" 2>&1)" in case "$(cat "$battery/status" 2>&1)" in
"Full") "Full")
status=" 󰁹" status=" 󰁹"
;; ;;
"Discharging") "Discharging")
# Calculates the percentage of remaining charge # this variable will store the percentage of remaining charge
percentage="$(cat "$battery/capacity" 2>&1)" percentage="$(cat "$battery/capacity" 2>&1)"
# Updates the status icon based on the battery percentage # updates the status icon based on the battery percentage
if [ "$percentage" -le 20 ] if [ "$percentage" -le 20 ]; then
then
status=" 󰁻" status=" 󰁻"
elif [ "$percentage" -le 30 ] elif [ "$percentage" -le 30 ]; then
then
status=" 󰁼" status=" 󰁼"
elif [ "$percentage" -le 40 ] elif [ "$percentage" -le 40 ]; then
then
status=" 󰁽" status=" 󰁽"
elif [ "$percentage" -le 50 ] elif [ "$percentage" -le 50 ]; then
then
status=" 󰁾" status=" 󰁾"
elif [ "$percentage" -le 60 ] elif [ "$percentage" -le 60 ]; then
then
status=" 󰁿" status=" 󰁿"
elif [ "$percentage" -le 70 ] elif [ "$percentage" -le 70 ]; then
then
status=" 󰂀" status=" 󰂀"
elif [ "$percentage" -le 80 ] elif [ "$percentage" -le 80 ]; then
then
status=" 󰂁" status=" 󰂁"
elif [ "$percentage" -le 90 ] elif [ "$percentage" -le 90 ]; then
then
status=" 󰂂" status=" 󰂂"
else else
status=" 󰁹" status=" 󰁹"
fi fi
;; ;;
"Charging") "Charging")
# Calculates the percentage of remaining charge # this variable will store the percentage of remaining charge
percentage="$(cat "$battery/capacity" 2>&1)" percentage="$(cat "$battery/capacity" 2>&1)"
# Updates the status icon based on the battery percentage while charging # updates the status icon based on the battery percentage while charging
if [ "$percentage" -le 10 ] if [ "$percentage" -le 10 ]; then
then
status=" 󰢜" status=" 󰢜"
elif [ "$percentage" -le 20 ] elif [ "$percentage" -le 20 ]; then
then
status=" 󰂆" status=" 󰂆"
elif [ "$percentage" -le 30 ] elif [ "$percentage" -le 30 ]; then
then
status=" 󰂇" status=" 󰂇"
elif [ "$percentage" -le 40 ] elif [ "$percentage" -le 40 ]; then
then
status=" 󰂈" status=" 󰂈"
elif [ "$percentage" -le 50 ] elif [ "$percentage" -le 50 ]; then
then
status=" 󰢝" status=" 󰢝"
elif [ "$percentage" -le 60 ] elif [ "$percentage" -le 60 ]; then
then
status=" 󰂉" status=" 󰂉"
elif [ "$percentage" -le 70 ] elif [ "$percentage" -le 70 ]; then
then
status=" 󰢞" status=" 󰢞"
elif [ "$percentage" -le 80 ] elif [ "$percentage" -le 80 ]; then
then
status=" 󰂊" status=" 󰂊"
elif [ "$percentage" -le 90 ] elif [ "$percentage" -le 90 ]; then
then
status=" 󰂋" status=" 󰂋"
else else
status=" 󰂅" status=" 󰂅"
fi fi
;; ;;
"Not charging") "Not charging")
echo " 󰂃 " && exit 0 echo " 󰂃 " && exit 0 # just in case
;; ;;
"Unknown") "Unknown")
echo " 󰂃 " && exit 0 echo " 󰂃 " && exit 0 # just in case
;; ;;
*) exit 1 ;; *) exit 1 ;; # just exit if there isn't a battery on the system
esac esac
# Will make a warn variable if discharging and low # will make a warning variable if discharging and low
[ "$status" = " 󰁺" ] && [ "$percentage" -le 10 ] && warn="󱈸" [ "$status" = " 󰁺" ] && [ "$percentage" -le 10 ] && warn="󱈸"
# Prints the info # print everything
printf "%s%s%d%%%s" "$status" "$warn " "$percentage" "$pwr"; unset warn printf "%s%s%d%%%s" "$status" "$warn " "$percentage" "$pwr"; unset warn
done && printf "\\n" done && printf "\\n"

View file

@ -1,4 +1,10 @@
#!/bin/bash #!/usr/bin/env bash
# ***This script was made by Clay Gomera (Drake)***
# - Description: A dwmblocks script to print the current brightness level
# - Dependencies: dwm, dwmblocks, power-profiles-daemon
# this variable will store the current brightness level percentage
brt=$(brightnessctl -m | cut -d, -f4 | tr -d %) brt=$(brightnessctl -m | cut -d, -f4 | tr -d %)
if [ "${brt%.*}" -eq 100 ]; then if [ "${brt%.*}" -eq 100 ]; then
icon="󰛨" icon="󰛨"
@ -21,4 +27,4 @@ elif [ "${brt%.*}" -ge 20 ]; then
else else
icon="󱩎" icon="󱩎"
fi fi
echo " $icon ${brt%.*}% " echo " $icon ${brt%.*}% " # print the icon and brightness level

View file

@ -1,8 +1,14 @@
#!/bin/bash #!/usr/bin/env bash
date="$(date +%d/%m/%y)"
# ***This script was made by Clay Gomera (Drake)***
# - Description: A dwmblocks script to print the date and time
# - Dependencies: dwm, dwmblocks, date
# this variable will store the current hour of the clock
hour="$(date +%I)" hour="$(date +%I)"
clock_icon=""
case $hour in # for every hour, the clock icon will change
case "$hour" in
"01") clock_icon="󱐿";; "01") clock_icon="󱐿";;
"02") clock_icon="󱑀";; "02") clock_icon="󱑀";;
"03") clock_icon="󱑁";; "03") clock_icon="󱑁";;
@ -16,5 +22,10 @@ case $hour in
"11") clock_icon="󱑉";; "11") clock_icon="󱑉";;
"12") clock_icon="󱑊";; "12") clock_icon="󱑊";;
esac esac
# this variable will store the clock in the desired format
clock="$(date +%I:%M%p | sed 's/^0//')" clock="$(date +%I:%M%p | sed 's/^0//')"
echo " $clock_icon $clock | 󰸗 $date " # this variable will store the date in the desired format
ddate="$(date +%d/%m/%y)"
echo " $clock_icon $clock | 󰸗 $ddate " # print the clock icon, the current time and then date

View file

@ -1,3 +1,11 @@
#!/bin/bash #!/usr/bin/env bash
# ***This script was made by Clay Gomera (Drake)***
# - Description: A dwmblocks script to print the keyboard layout
# - Dependencies: dwm, dwmblocks, setxkbmap
# this variable will store the current keyboard layout in X
layout=$(setxkbmap -query | grep -oP 'layout:\s*\K\w+'); layout=$(setxkbmap -query | grep -oP 'layout:\s*\K\w+');
# print the current keyboard layout in all caps
echo "󰥻 $layout " | tr '[:lower:]' '[:upper:]'; echo "󰥻 $layout " | tr '[:lower:]' '[:upper:]';

View file

@ -1,7 +1,12 @@
#!/bin/bash #!/usr/bin/env bash
# Prints the current volume or 🔇 if muted.
# ***This script was made by Clay Gomera (Drake)***
# - Description: A dwmblocks script to print the volume level
# - Dependencies: dwm, dwmblocks, pamixer
# if the volume is muted, just print 󰖁 and exit
[ "$(pamixer --get-mute)" = true ] && echo " 󰖁 " && exit [ "$(pamixer --get-mute)" = true ] && echo " 󰖁 " && exit
vol="$(pamixer --get-volume)" vol="$(pamixer --get-volume)" # if not, this variable will store the current volume level
if [ "$vol" -gt "50" ]; then if [ "$vol" -gt "50" ]; then
icon="󰕾" icon="󰕾"
elif [ "$vol" -gt "10" ]; then elif [ "$vol" -gt "10" ]; then
@ -9,6 +14,6 @@ elif [ "$vol" -gt "10" ]; then
elif [ "$vol" -gt "0" ]; then elif [ "$vol" -gt "0" ]; then
icon="󰕿" icon="󰕿"
else else
echo " 󰖁 " && exit echo " 󰖁 " && exit # just in case if pamixer or the audio isn't available
fi fi
echo -e " $icon $vol% " echo -e " $icon $vol% " # print the volume icon and level

View file

@ -1,5 +1,18 @@
#!/bin/bash #!/usr/bin/env bash
# ***This script was made by Clay Gomera (Drake)***
# - Description: A dwmblocks script to print the wifi status
# - Dependencies: dwm, dwmblocks, nmcli
#####
## This function gets the wifi
## signal strength from nmcli and
## then converts it from dBm to
## values from 1 to 4
#####
## param: none
## return: string
#####
get_wifi_strength() { get_wifi_strength() {
# Retrieves the wifi signal strength in dBm # Retrieves the wifi signal strength in dBm
strength=$(nmcli -t -f active,ssid,signal dev wifi | grep yes | cut -d ":" -f3) strength=$(nmcli -t -f active,ssid,signal dev wifi | grep yes | cut -d ":" -f3)
@ -15,12 +28,15 @@ get_wifi_strength() {
fi fi
} }
# this variable will store the current state of the connection (connected or disconnected)
constate=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f3 | head -1) constate=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f3 | head -1)
# this variable will store the name of the wifi network that the computer is currently connected to
currentwfi=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f4 | head -1) currentwfi=$(nmcli dev | grep wifi | sed 's/ \{2,\}/|/g' | cut -d '|' -f4 | head -1)
if [ "$constate" = "disconnected" ]; then if [ "$constate" = "disconnected" ]; then # if the computer is disconnected
echo " 󰤮 " echo " 󰤮 "
elif [ "$constate" = "connected" ]; then elif [ "$constate" = "connected" ]; then # if it's connected
strength=$(get_wifi_strength) strength=$(get_wifi_strength)
case "$strength" in case "$strength" in
"1") icon=" 󰤟 " ;; "1") icon=" 󰤟 " ;;
@ -30,5 +46,5 @@ elif [ "$constate" = "connected" ]; then
esac esac
echo "$icon$currentwfi" echo "$icon$currentwfi"
else else
echo " 󰤮 " echo " 󰤮 " # just in case if nmcli isn't available or something weird is happening
fi fi

1284
user/.config/tut/config.toml Normal file

File diff suppressed because it is too large Load diff

View file

@ -46,10 +46,10 @@ export GNUPGHOME="$HOME/.local/share/gnupg"
export LESSHISTFILE="-" export LESSHISTFILE="-"
# default apps # default apps
export EDITOR="emacsclient -t -a ''" export EDITOR="~/.local/bin/lvim"
export VISUAL="emacsclient -c -a 'emacs'" export VISUAL="neovide --neovim-bin ~/.local/bin/lvim"
export BROWSER="librewolf" export BROWSER="firefox"
export VIEWER="zathura" export VIEWER="zathura"
# start window manager / desktop environment # start window manager / desktop environment
dbus-launch --exit-with-session dwm exec dwm