personal dotfiles: my Hyprland config
-rw-r--r--.bash_aliases17
-rw-r--r--.bashrc43
-rw-r--r--.config/aerc/aerc.conf496
-rw-r--r--.config/aerc/binds.conf131
-rw-r--r--.config/ashell/config.toml46
-rw-r--r--.config/fish/conf.d/ansi-colors.fish11
-rw-r--r--.config/fish/functions/fish_prompt.fish35
-rw-r--r--.config/foot/foot.ini26
-rw-r--r--.config/git/config19
-rw-r--r--.config/gtk-4.0/gtk.css3
-rw-r--r--.config/hypr/hypridle.conf4
-rw-r--r--.config/hypr/hyprland.conf263
-rw-r--r--.config/khard/khard.conf6
-rw-r--r--.config/micro/bindings.json22
-rw-r--r--.config/micro/settings.json7
-rw-r--r--.config/micro/syntax/php.yaml67
-rw-r--r--.config/rc/rc.conf1
l---------.config/rc/runlevels/gui/hypridle1
l---------.config/rc/runlevels/gui/pipewire1
-rw-r--r--.config/swaync/config.json38
-rw-r--r--.config/sxmo/profile81
-rwxr-xr-x.config/sxmo/userscripts/appstore.sh200
-rw-r--r--.config/sys64/menu/config.conf17
-rw-r--r--.config/vdirsyncer/config37
-rw-r--r--.config/waybar/config172
-rw-r--r--.config/waybar/style.css278
-rw-r--r--.config/xdg-desktop-portal/hyprland-portals.conf3
-rw-r--r--.gitconfig27
-rwxr-xr-x.local/bin/TT3
-rwxr-xr-x.local/bin/csv2INSERT.sh6
-rwxr-xr-x.local/bin/csv2sql.sh17
-rwxr-xr-x.local/bin/emojis.sh87
-rwxr-xr-x.local/bin/fin8
-rwxr-xr-x.local/bin/installmalware.sh26
-rwxr-xr-x.local/bin/mfi.py27
-rwxr-xr-x.local/bin/mggrep2
-rwxr-xr-x.local/bin/switch.sh27
l---------.local/bin/sxmo_dmenu.sh1
-rwxr-xr-x.local/bin/unicode.sh40
-rwxr-xr-x.local/bin/uninstallmalware.sh15
-rwxr-xr-x.local/bin/uniq:16
l---------.local/bin/xdg-terminal-exec1
-rw-r--r--.local/share/epiphany/user-stylesheet.css19
-rw-r--r--.profile24
44 files changed, 441 insertions, 1930 deletions
diff --git a/.bash_aliases b/.bash_aliases
new file mode 100644
index 0000000..eb9f081
--- /dev/null
+++ b/.bash_aliases
@@ -0,0 +1,17 @@
+# basic stuff
+alias mgm='micro $(git diff HEAD --relative | diff-so-fancy | grep "@.*@" | cut -d" " -f2 | grep -v "^$" | grep -v "*" | uniq:)'
+
+# micro git staged
+#alias mgs='micro $(git diff HEAD --staged --relative | diff-so-fancy | grep "@.*@" | cut -d" " -f2 | grep -v "^$" | grep -v "*" | uniq:)'
+
+# Typos
+alias mimcro='micro'
+alias micmro='micro'
+
+## dgs
+alias mycli_admin='mycli --defaults-group-suffix=_admin'
+
+alias y2j='/usr/bin/python3 -c "import json,sys; from ruamel.yaml import YAML; yaml=YAML(); print(json.dumps(yaml.load(sys.stdin)))"'
+alias irc-s='env PATH=.:$PATH irc-slack -H 0.0.0.0 -s wl.zachdecook.com'
+alias gitb="git branch | grep '^*' | cut -d' ' -f2"
+alias migs='ls resources/sql/*/*$(gitb)*'
diff --git a/.bashrc b/.bashrc
new file mode 100644
index 0000000..970afa3
--- /dev/null
+++ b/.bashrc
@@ -0,0 +1,43 @@
+# If not running interactively, don't do anything
+case $- in
+*i*) ;;
+*) return ;;
+esac
+
+if [ -z "$HOST" ] ; then
+ export HOST=${HOSTNAME}
+fi
+
+xtitle ()
+{
+ echo -n -e "\033]0;$*\007"
+}
+
+cd()
+{
+ builtin cd "$@" && xtitle "$(basename $PWD)"
+}
+
+export HISTSIZE=10000
+
+# BCP prompt.
+parse_git_branch() {
+ git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/๐ŸŒฑ \1/'
+}
+export PS1="[\t \[\e[0;33m\]\w\[\e[0;35m\]\[\e[0;32m\]\$(parse_git_branch)\[\e[0;35m\]\[\033[00m\]] "
+
+mggrep () { TT micro $(git grep -n "$@" | cut -d: -f1,2 | head -n 50); };
+
+mfi () {
+ trimmed=$(echo "$@" | xargs -n1 | sed 's/:.*//g')
+ # TODO: Include the numbers
+ TT micro $(echo "$trimmed" | xargs -n1 find . -not -path './vendor/*' -name | head -n 50);
+};
+
+source ~/.bash_aliases
+
+eval $(thefuck --alias frick)
+
+eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
+export PATH="/home/zachariahdecook/.local/bin:$PATH"
+export EDITOR=micro
diff --git a/.config/aerc/aerc.conf b/.config/aerc/aerc.conf
deleted file mode 100644
index 8616618..0000000
--- a/.config/aerc/aerc.conf
+++ /dev/null
@@ -1,496 +0,0 @@
-#
-# aerc main configuration
-
-[general]
-#
-# Used as a default path for save operations if no other path is specified.
-# ~ is expanded to the current user home dir.
-#
-#default-save-path=
-
-# If set to "gpg", aerc will use system gpg binary and keystore for all crypto
-# operations. If set to "internal", the internal openpgp keyring will be used.
-# If set to "auto", the system gpg will be preferred unless the internal
-# keyring already exists, in which case the latter will be used.
-#
-# Default: auto
-#pgp-provider=auto
-
-# By default, the file permissions of accounts.conf must be restrictive and
-# only allow reading by the file owner (0600). Set this option to true to
-# ignore this permission check. Use this with care as it may expose your
-# credentials.
-#
-# Default: false
-#unsafe-accounts-conf=false
-
-# Output log messages to specified file. A path starting with ~/ is expanded to
-# the user home dir. When redirecting aerc's output to a file using > shell
-# redirection, this setting is ignored and log messages are printed to stdout.
-#
-#log-file=
-
-# Only log messages above the specified level to log-file. Supported levels
-# are: trace, debug, info, warn and error. When redirecting aerc's output to
-# a file using > shell redirection, this setting is ignored and the log level
-# is forced to trace.
-#
-# Default: info
-#log-level=info
-
-[ui]
-#
-# Describes the format for each row in a mailbox view. This is a comma
-# separated list of column names with an optional align and width suffix. After
-# the column name, one of the '<' (left), ':' (center) or '>' (right) alignment
-# characters can be added (by default, left) followed by an optional width
-# specifier. The width is either an integer representing a fixed number of
-# characters, or a percentage between 1% and 99% representing a fraction of the
-# terminal width. It can also be one of the '*' (auto) or '=' (fit) special
-# width specifiers. Auto width columns will be equally attributed the remaining
-# terminal width. Fit width columns take the width of their contents. If no
-# width specifier is set, '*' is used by default.
-#
-# Default: date<20,name<17,flags>4,subject<*
-index-columns=date<10,name<17,flags>4,subject<*
-
-#
-# Each name in index-columns must have a corresponding column-$name setting.
-# All column-$name settings accept golang text/template syntax. See
-# aerc-templates(7) for available template attributes and functions.
-#
-# Default settings
-#column-date={{.DateAutoFormat .Date.Local}}
-#column-name={{index (.From | names) 0}}
-#column-flags={{.Flags | join ""}}
-#column-subject={{.ThreadPrefix}}{{.Subject}}
-
-#
-# String separator inserted between columns. When the column width specifier is
-# an exact number of characters, the separator is added to it (i.e. the exact
-# width will be fully available for the column contents).
-#
-# Default: " "
-#column-separator=" "
-
-#
-# See time.Time#Format at https://godoc.org/time#Time.Format
-#
-# Default: 2006-01-02 03:04 PM (ISO 8601 + 12 hour time)
-timestamp-format=1-02 15:04
-
-#
-# Index-only time format for messages that were received/sent today.
-# If this is not specified, timestamp-format is used instead.
-#
-this-day-time-format=15:04
-
-#
-# Index-only time format for messages that were received/sent within the last
-# 7 days. If this is not specified, timestamp-format is used instead.
-#
-this-week-time-format=Mon 15:04
-
-#
-# Index-only time format for messages that were received/sent this year.
-# If this is not specified, timestamp-format is used instead.
-#
-#this-year-time-format=
-
-#
-# Width of the sidebar, including the border.
-#
-# Default: 20
-sidebar-width=10
-
-#
-# Message to display when viewing an empty folder.
-#
-# Default: (no messages)
-#empty-message=(no messages)
-
-# Message to display when no folders exists or are all filtered
-#
-# Default: (no folders)
-#empty-dirlist=(no folders)
-
-# Enable mouse events in the ui, e.g. clicking and scrolling with the mousewheel
-#
-# Default: false
-mouse-enabled=true
-
-#
-# Ring the bell when new messages are received
-#
-# Default: true
-#new-message-bell=true
-
-# Marker to show before a pinned tab's name.
-#
-# Default: `
-#pinned-tab-marker='`'
-
-# Describes the format string to use for the directory list
-#
-# Default: %n %>r
-#dirlist-format=%n %>r
-
-# Delay after which the messages are actually listed when entering a directory.
-# This avoids loading messages when skipping over folders and makes the UI more
-# responsive. If you do not want that, set it to 0s.
-#
-# Default: 200ms
-#dirlist-delay=200ms
-
-# Display the directory list as a foldable tree that allows to collapse and
-# expand the folders.
-#
-# Default: false
-#dirlist-tree=false
-
-# If dirlist-tree is enabled, set level at which folders are collapsed by
-# default. Set to 0 to disable.
-#
-# Default: 0
-#dirlist-collapse=0
-
-# List of space-separated criteria to sort the messages by, see *sort*
-# command in *aerc*(1) for reference. Prefixing a criterion with "-r "
-# reverses that criterion.
-#
-# Example: "from -r date"
-#
-#sort=
-
-# Moves to next message when the current message is deleted
-#
-# Default: true
-#next-message-on-delete=true
-
-# Automatically set the "seen" flag when a message is opened in the message
-# viewer.
-#
-# Default: true
-#auto-mark-read=true
-
-# The directories where the stylesets are stored. It takes a colon-separated
-# list of directories. If this is unset or if a styleset cannot be found, the
-# following paths will be used as a fallback in that order:
-#
-# ${XDG_CONFIG_HOME:-~/.config}/aerc/stylesets
-# ${XDG_DATA_HOME:-~/.local/share}/aerc/stylesets
-# /usr/local/share/aerc/stylesets
-# /usr/share/aerc/stylesets
-#
-#stylesets-dirs=
-
-# Uncomment to use box-drawing characters for vertical and horizontal borders.
-#
-# Default: " "
-#border-char-vertical=" "
-#border-char-horizontal=" "
-
-# Sets the styleset to use for the aerc ui elements.
-#
-# Default: default
-#styleset-name=default
-
-# Activates fuzzy search in commands and their arguments: the typed string is
-# searched in the command or option in any position, and need not be
-# consecutive characters in the command or option.
-#
-# Default: false
-#fuzzy-complete=false
-
-# How long to wait after the last input before auto-completion is triggered.
-#
-# Default: 250ms
-#completion-delay=250ms
-
-# The minimum required characters to allow auto-completion to be triggered after
-# completion-delay.
-#
-# Default: 1
-#completion-min-chars=1
-
-#
-# Global switch for completion popovers
-#
-# Default: true
-#completion-popovers=true
-
-# Uncomment to use UTF-8 symbols to indicate PGP status of messages
-#
-# Default: ASCII
-#icon-unencrypted=
-#icon-encrypted=โœ”
-#icon-signed=โœ”
-#icon-signed-encrypted=โœ”
-#icon-unknown=โœ˜
-#icon-invalid=โš 
-
-# Reverses the order of the message list. By default, the message list is
-# ordered with the newest (highest UID) message on top. Reversing the order
-# will put the oldest (lowest UID) message on top. This can be useful in cases
-# where the backend does not support sorting.
-#
-# Default: false
-#reverse-msglist-order = false
-
-# Reverse display of the mesage threads. Default order is the the intial
-# message is on the top with all the replies being displayed below. The
-# reverse option will put the initial message at the bottom with the
-# replies on top.
-#
-# Default: false
-#reverse-thread-order=false
-
-# Sort the thread siblings according to the sort criteria for the messages. If
-# sort-thread-siblings is false, the thread siblings will be sorted based on
-# the message UID in ascending order. This option is only applicable for
-# client-side threading with a backend that enables sorting. Note that there's
-# a performance impact when sorting is activated.
-#
-# Default: false
-#sort-thread-siblings=false
-
-#[ui:account=foo]
-#
-# Enable a threaded view of messages. If this is not supported by the backend
-# (IMAP server or notmuch), threads will be built by the client.
-#
-# Default: false
-#threading-enabled=false
-
-# Force client-side thread building
-#
-# Default: false
-#force-client-threads=false
-
-# Debounce client-side thread building
-#
-# Default: 50ms
-#client-threads-delay=50ms
-
-[statusline]
-# Describes the format string for the statusline.
-#
-# Default: [%a] %S %>%T
-#render-format=[%a] %S %>%T
-
-# Specifies the separator between grouped statusline elements.
-#
-# Default: " | "
-#separator=" | "
-
-# Defines the mode for displaying the status elements.
-# Options: text, icon
-#
-# Default: text
-#display-mode=text
-
-[viewer]
-#
-# Specifies the pager to use when displaying emails. Note that some filters
-# may add ANSI codes to add color to rendered emails, so you may want to use a
-# pager which supports ANSI codes.
-#
-# Default: less -R
-#pager=less -R
-
-#
-# If an email offers several versions (multipart), you can configure which
-# mimetype to prefer. For example, this can be used to prefer plaintext over
-# html emails.
-#
-# Default: text/plain,text/html
-#alternatives=text/plain,text/html
-
-#
-# Default setting to determine whether to show full headers or only parsed
-# ones in message viewer.
-#
-# Default: false
-#show-headers=false
-
-#
-# Layout of headers when viewing a message. To display multiple headers in the
-# same row, separate them with a pipe, e.g. "From|To". Rows will be hidden if
-# none of their specified headers are present in the message.
-#
-# Default: From|To,Cc|Bcc,Date,Subject
-#header-layout=From|To,Cc|Bcc,Date,Subject
-
-# Whether to always show the mimetype of an email, even when it is just a single part
-#
-# Default: false
-#always-show-mime=false
-
-# Parses and extracts http links when viewing a message. Links can then be
-# accessed with the open-link command.
-#
-# Default: true
-#parse-http-links=true
-
-[compose]
-#
-# Specifies the command to run the editor with. It will be shown in an embedded
-# terminal, though it may also launch a graphical window if the environment
-# supports it. Defaults to $EDITOR, or vi.
-#editor=
-
-#
-# Default header fields to display when composing a message. To display
-# multiple headers in the same row, separate them with a pipe, e.g. "To|From".
-#
-# Default: To|From,Subject
-#header-layout=To|From,Subject
-
-#
-# Specifies the command to be used to tab-complete email addresses. Any
-# occurrence of "%s" in the address-book-cmd will be replaced with what the
-# user has typed so far.
-#
-# The command must output the completions to standard output, one completion
-# per line. Each line must be tab-delimited, with an email address occurring as
-# the first field. Only the email address field is required. The second field,
-# if present, will be treated as the contact name. Additional fields are
-# ignored.
-#
-# This parameter can also be set per account in accounts.conf.
-address-book-cmd=grep -i '%s' /home/user/.config/aerc/contacts.tsv
-
-# Specifies the command to be used to select attachments. Any occurence of '%s'
-# in the file-picker-cmd will be replaced the argument <arg> to :attach -m
-# <arg>.
-#
-# The command must output the selected files to standard output, one file per
-# line.
-#file-picker-cmd=
-
-#
-# Allow to address yourself when replying
-#
-# Default: true
-#reply-to-self=true
-
-#
-# Warn before sending an email that matches the specified regexp but does not
-# have any attachments. Leave empty to disable this feature.
-#
-# Uses Go's regexp syntax, documented at https://golang.org/s/re2syntax. The
-# "(?im)" flags are set by default (case-insensitive and multi-line).
-#
-# Example:
-# no-attachment-warning=^[^>]*attach(ed|ment)
-#
-#no-attachment-warning=
-
-[multipart-converters]
-#
-# Converters allow to generate multipart/alternative messages by converting the
-# main text/plain part into any other MIME type. Only exact MIME types are
-# accepted. The commands are invoked with sh -c and are expected to output
-# valid UTF-8 text.
-#
-# Example (obviously, this requires that you write your main text/plain body
-# using the markdown syntax):
-#text/html=pandoc -f markdown -t html --standalone
-
-[filters]
-#
-# Filters allow you to pipe an email body through a shell command to render
-# certain emails differently, e.g. highlighting them with ANSI escape codes.
-#
-# The commands are invoked with sh -c. The following folders are appended to
-# the system $PATH to allow referencing filters from their name only:
-#
-# ${XDG_CONFIG_HOME:-~/.config}/aerc/filters
-# ${XDG_DATA_HOME:-~/.local/share}/aerc/filters
-# $PREFIX/share/aerc/filters
-# /usr/share/aerc/filters
-#
-# The following variables are defined in the filter command environment:
-#
-# AERC_MIME_TYPE the part MIME type/subtype
-# AERC_FORMAT the part content type format= parameter
-# AERC_FILENAME the attachment filename (if any)
-# AERC_SUBJECT the message Subject header value
-# AERC_FROM the message From header value
-#
-# The first filter which matches the email's mimetype will be used, so order
-# them from most to least specific.
-#
-# You can also match on non-mimetypes, by prefixing with the header to match
-# against (non-case-sensitive) and a comma, e.g. subject,text will match a
-# subject which contains "text". Use header,~regex to match against a regex.
-#
-subject,~^\[PATCH=awk -f /usr/libexec/aerc/filters/hldiff
-text/x-patch=awk -f /usr/libexec/aerc/filters/hldiff
-text/x-diff=awk -f /usr/libexec/aerc/filters/hldiff
-text/plain=plaintext
-text/calendar=calendar
-message/delivery-status=cat
-message/rfc822=cat
-#text/html=pandoc -f html -t plain | colorize
-text/html=html
-#text/*=bat -fP --file-name="$AERC_FILENAME"
-#application/x-sh=bat -fP -l sh
-image/*=catimg -w $(tput cols) -
-#subject,~Git(hub|lab)=lolcat -f
-#from,thatguywhodoesnothardwraphismessages=wrap -w 100 | colorize
-
-[openers]
-#
-# Openers allow you to specify the command to use for the :open action on a
-# per-MIME-type basis.
-#
-# {} is expanded as the temporary filename to be opened. If it is not
-# encountered in the command, the temporary filename will be appened to the end
-# of the command.
-#
-# Examples:
-# text/html=surf -dfgms
-# text/plain=gvim {} +125
-# message/rfc822=thunderbird
-
-[triggers]
-#
-# Triggers specify commands to execute when certain events occur.
-#
-# Example:
-# new-email=exec notify-send "New email from %n" "%s"
-
-#
-# Executed when a new email arrives in the selected folder
-#new-email=
-
-[templates]
-# Templates are used to populate email bodies automatically.
-#
-
-# The directories where the templates are stored. It takes a colon-separated
-# list of directories. If this is unset or if a template cannot be found, the
-# following paths will be used as a fallback in that order:
-#
-# ${XDG_CONFIG_HOME:-~/.config}/aerc/templates
-# ${XDG_DATA_HOME:-~/.local/share}/aerc/templates
-# /usr/local/share/aerc/templates
-# /usr/share/aerc/templates
-#
-#template-dirs=
-
-# The default template to be used for new messages.
-#
-# default: new_message
-#new-message=new_message
-
-# The default template to be used for quoted replies.
-#
-# default: quoted_reply
-#quoted-reply=quoted_reply
-
-# The default template to be used for forward as body.
-#
-# default: forward_as_body
-#forwards=forward_as_body
diff --git a/.config/aerc/binds.conf b/.config/aerc/binds.conf
deleted file mode 100644
index c50d30a..0000000
--- a/.config/aerc/binds.conf
+++ /dev/null
@@ -1,131 +0,0 @@
-# Binds are of the form <key sequence> = <command to run>
-# To use '=' in a key sequence, substitute it with "Eq": "<Ctrl+Eq>"
-# If you wish to bind #, you can wrap the key sequence in quotes: "#" = quit
-<C-p> = :prev-tab<Enter>
-<C-n> = :next-tab<Enter>
-<C-t> = :term<Enter>
-? = :help keys<Enter>
-
-[messages]
-q = :quit<Enter>
-
-j = :next<Enter>
-<Down> = :next<Enter>
-<C-d> = :next 50%<Enter>
-<C-f> = :next 100%<Enter>
-<PgDn> = :next 100%<Enter>
-
-k = :prev<Enter>
-<Up> = :prev<Enter>
-<C-u> = :prev 50%<Enter>
-<C-b> = :prev 100%<Enter>
-<PgUp> = :prev 100%<Enter>
-g = :select 0<Enter>
-G = :select -1<Enter>
-
-J = :next-folder<Enter>
-K = :prev-folder<Enter>
-H = :collapse-folder<Enter>
-L = :expand-folder<Enter>
-
-v = :mark -t<Enter>
-V = :mark -v<Enter>
-
-T = :toggle-threads<Enter>
-
-<Enter> = :view<Enter>
-d = :prompt 'Really delete this message?' ':mv Trash<Enter>'
-D = :mv Trash<Enter>
-#:delete<Enter>
-A = :archive flat<Enter>
-
-C = :compose<Enter>
-
-rr = :reply -a<Enter>
-rq = :reply -aq<Enter>
-Rr = :reply<Enter>
-Rq = :reply -q<Enter>
-
-c = :cf<space>
-$ = :term<space>
-! = :term<space>
-| = :pipe<space>
-
-/ = :search<space>
-\ = :filter<space>
-n = :next-result<Enter>
-N = :prev-result<Enter>
-<Esc> = :clear<Enter>
-
-[messages:folder=Drafts]
-<Enter> = :recall<Enter>
-
-[view]
-/ = :toggle-key-passthrough<Enter>/
-q = :close<Enter>
-O = :open<Enter>
-S = :save<space>
-| = :pipe<space>
-D = :mv Trash<Enter>
-#D = :delete<Enter>
-A = :archive flat<Enter>
-
-<C-l> = :open-link <space>
-
-f = :forward<Enter>
-rr = :reply -a<Enter>
-rq = :reply -aq<Enter>
-Rr = :reply<Enter>
-Rq = :reply -q<Enter>
-
-H = :toggle-headers<Enter>
-<C-k> = :prev-part<Enter>
-<C-j> = :next-part<Enter>
-J = :next<Enter>
-K = :prev<Enter>
-
-[view::passthrough]
-$noinherit = true
-$ex = <C-x>
-<Esc> = :toggle-key-passthrough<Enter>
-
-[compose]
-# Keybindings used when the embedded terminal is not selected in the compose
-# view
-$noinherit = true
-$ex = <C-x>
-<C-k> = :prev-field<Enter>
-<C-j> = :next-field<Enter>
-<A-p> = :switch-account -p<Enter>
-<A-n> = :switch-account -n<Enter>
-<tab> = :next-field<Enter>
-<backtab> = :prev-field<Enter>
-<C-p> = :prev-tab<Enter>
-<C-n> = :next-tab<Enter>
-
-[compose::editor]
-# Keybindings used when the embedded terminal is selected in the compose view
-$noinherit = true
-$ex = <C-x>
-<C-k> = :prev-field<Enter>
-<C-j> = :next-field<Enter>
-<C-p> = :prev-tab<Enter>
-<C-n> = :next-tab<Enter>
-
-[compose::review]
-# Keybindings used when reviewing a message to be sent
-y = :send<Enter>
-n = :abort<Enter>
-v = :preview<Enter>
-p = :postpone<Enter>
-q = :choose -o d discard abort -o p postpone postpone<Enter>
-e = :edit<Enter>
-a = :attach<space>
-d = :detach<space>
-
-[terminal]
-$noinherit = true
-$ex = <C-x>
-
-<C-p> = :prev-tab<Enter>
-<C-n> = :next-tab<Enter>
diff --git a/.config/ashell/config.toml b/.config/ashell/config.toml
deleted file mode 100644
index 2caa3cf..0000000
--- a/.config/ashell/config.toml
+++ /dev/null
@@ -1,46 +0,0 @@
-[modules]
-left = [ "Workspaces" ]
-center = [ ]
-#[ [ "Clock", "SystemInfo" ], "MediaPlayer" ]
-right = [ [ "Privacy", "SystemInfo", "CustomNotifications", "Settings" ] ]
-
-[system]
-indicators = ["Temperature"]
-
-[clock]
-format = "%H:%M"
-
-[appearance]
-scale_factor = 0.875
-opacity = 0.75
-style = "Solid"
-# backdrop = 0.3
-
-workspace_colors = ["#bbbbbb"]
-
-[appearance.background_color]
-base = "#000000"
-#strong = "#448888"
-#weak = "#448855"
-#text = "#ffffff"
-
-[appearance.primary_color]
-base = "#4488ff"
-#strong = "#448888"
-
-[[CustomModule]]
-# The name will link the module in your left/center/right definition
-name = "CustomNotifications"
-# The default icon for this custom module
-icon = "๏‚ข"
-# The command that will be executed on click
-command = "swaync-client -t -sw"
-# You can optionally configure your custom module to update the UI using another command
-# The output right now follows the waybar json-style output, using the `alt` and `text` field
-# E.g. `{"text": "3", "alt": "notification"}`
-listen_cmd = "swaync-client -swb"
-# You can define behavior for the `text` and `alt` fields
-# Any number of regex can be used to change the icon based on the alt field
-icons.'dnd.*' = "๏‡ท"
-# Another regex can optionally show a red "alert" dot on the icon
-alert = ".*notification"
diff --git a/.config/fish/conf.d/ansi-colors.fish b/.config/fish/conf.d/ansi-colors.fish
new file mode 100644
index 0000000..7212f64
--- /dev/null
+++ b/.config/fish/conf.d/ansi-colors.fish
@@ -0,0 +1,11 @@
+set -u fish_color_command blue
+set -u fish_color_quote yellow
+set -u fish_color_redirection brcyan
+set -u fish_color_end green
+set -u fish_color_error brred --bold
+set -u fish_color_param cyan
+set -u fish_color_comment red
+set -u fish_color_operator brblue --bold
+set -u fish_color_autosuggestion brblack
+
+set -u fish_color_user brgreen
diff --git a/.config/fish/functions/fish_prompt.fish b/.config/fish/functions/fish_prompt.fish
deleted file mode 100644
index d2216ae..0000000
--- a/.config/fish/functions/fish_prompt.fish
+++ /dev/null
@@ -1,35 +0,0 @@
-# name: Default
-# author: Lily Ballard
-
-function fish_prompt --description 'Write out the prompt'
- set -l last_pipestatus $pipestatus
- set -lx __fish_last_status $status # Export for __fish_print_pipestatus.
- set -l normal (set_color normal)
- set -q fish_color_status
- or set -g fish_color_status red
-
- # Color the prompt differently when we're root
- set -l color_cwd $fish_color_cwd
- set -l suffix '>'
- if functions -q fish_is_root_user; and fish_is_root_user
- if set -q fish_color_cwd_root
- set color_cwd $fish_color_cwd_root
- end
- set suffix '#'
- end
-
- # Write pipestatus
- # If the status was carried over (if no command is issued or if `set` leaves the status untouched), don't bold it.
- set -l bold_flag --bold
- set -q __fish_prompt_status_generation; or set -g __fish_prompt_status_generation $status_generation
- if test $__fish_prompt_status_generation = $status_generation
- set bold_flag
- end
- set __fish_prompt_status_generation $status_generation
- set -l status_color (set_color $fish_color_status)
- set -l statusb_color (set_color $bold_flag $fish_color_status)
- set -l prompt_status (__fish_print_pipestatus "[" "]" "|" "$status_color" "$statusb_color" $last_pipestatus)
-
- #echo -n -s " " $prompt_status $suffix " "
- echo -n -s $prompt_status (set_color $fish_color_cwd)"><> "$normal
-end
diff --git a/.config/foot/foot.ini b/.config/foot/foot.ini
deleted file mode 100644
index d276314..0000000
--- a/.config/foot/foot.ini
+++ /dev/null
@@ -1,26 +0,0 @@
-# Space to setup configversion
-# configversion: 13fb3d2d9f97f4420f7506e72b90e77d
-font=monospace:size=11
-dpi-aware=no
-
-[colors]
-alpha=0.7
-foreground=eaeaea
-background=303030
-regular0=1e1e1e # black
-regular1=d54e53 # red
-regular2=b9ca4a # green
-regular3=e6c547 # yellow
-regular4=7aa6da # blue
-regular5=c397d8 # magenta
-regular6=70c0ba # cyan
-regular7=eaeaea # white
-bright0=666666 # bright black
-bright1=ff3334 # bright red
-bright2=9ec400 # bright green
-bright3=e7c547 # bright yellow
-bright4=7aa6da # bright blue
-bright5=b77ee0 # bright magenta
-bright6=54ced6 # bright cyan
-bright7=ffffff # bright white
-
diff --git a/.config/git/config b/.config/git/config
deleted file mode 100644
index a25976c..0000000
--- a/.config/git/config
+++ /dev/null
@@ -1,19 +0,0 @@
-[user]
- email = zachdecook@librem.one
- name = Zach DeCook
-[sendemail]
- smtpserver = smtp.librem.one
- smtpuser = zachdecook@librem.one
- smtpencryption = tls
- smtpserverport = 587
- annotate = true
-[advice]
- statusHints = false
- skippedCherryPicks = false
-[alias]
- s = status
- ds = diff --staged
-[push]
- autoSetupRemote = true
-[init]
- defaultBranch = zachster
diff --git a/.config/gtk-4.0/gtk.css b/.config/gtk-4.0/gtk.css
deleted file mode 100644
index 7c52dc0..0000000
--- a/.config/gtk-4.0/gtk.css
+++ /dev/null
@@ -1,3 +0,0 @@
-/* colors for zach */
-@define-color window_bg_color #242424AA;
-@define-color popover_bg_color #383838AA;
diff --git a/.config/hypr/hypridle.conf b/.config/hypr/hypridle.conf
deleted file mode 100644
index 5890ebc..0000000
--- a/.config/hypr/hypridle.conf
+++ /dev/null
@@ -1,4 +0,0 @@
-listener {
- timeout = 1800
- on-timeout = hyprctl dispatch dpms off ; hyprctl keyword input:touchdevice:enabled false
-}
diff --git a/.config/hypr/hyprland.conf b/.config/hypr/hyprland.conf
deleted file mode 100644
index 32c73d6..0000000
--- a/.config/hypr/hyprland.conf
+++ /dev/null
@@ -1,263 +0,0 @@
-# See https://wiki.hyprland.org/Configuring/Monitors/
-#monitor=,preferred,auto,auto
-monitor=DSI-1,preferred,auto,2.66666
-
-misc:disable_hyprland_qtutils_check = true
-
-
-render {
- direct_scanout = false
-}
-# gnome 47 vulkan segfaults
-env = GSK_RENDERER,ngl
-
-# tell firefox/gtk apps to use phosh picker
-env = GTK_USE_PORTAL,1
-
-# See https://wiki.hyprland.org/Configuring/Keywords/ for more
-
-# Execute your favorite apps at launch
-# exec-once = waybar & hyprpaper & firefox
-exec-once = swaybg -i ~/Pictures/background.jpg -m center
-exec-once = sleep 2 && waybar
-# ashell sometimes eats CPU
-# exec-once = sleep 1 && ashell
-exec-once = swaync
-# config ~~mako~~ swaync notifications with switch
-exec-once = switch.sh
-#exec-once = sysshell
-
-# Source a file (multi-file configs)
-# source = ~/.config/hypr/myColors.conf
-
-env = MOZ_ENABLE_WAYLAND,1
-exec-once = sysmenu
-# Set programs that you use
-$terminal = xdg-terminal-exec
-$terminal_opts =
-exec-once = $terminal $terminal_opts
-$fileManager = dev.tchx84.Portfolio
-# $menu = bemenu-run -s -n -w -c -l8 -M 40 -H 20
-$dmenu = bemenu --scrollbar autohide -s -n -w -c -l12 -M 40 -H 20 #--cb 22222288 --cf bbbbbb --tb 005577 --tf eeeeee --fb 22222288 --ff bbbbbb --nb 22222288 --af bbbbbb --ab 22222288 --nf bbbbbb --hb 005577 --hf eeeeee --scb 005577 --scf eeeeee --fbb eeeeee --fbf 22222288
-#$menu = rofi -show drun
-#$menu = exec $(j4-dmenu-desktop --no-generic --dmenu="$dmenu" --term="$terminal" --no-exec |sed 's/ -e/ --/g')
-# $menu = nwggrid -s 70
-# $menu = pkill -10 sysshell
-$menu = pkill -RTMIN sysmenu
-$keyboard = wvkbd-mobintl
-$keyboard_args = -l simple,specialpad -H 160 -O --bg 22222288 | swipeB
-# starting the keyboard is bad because of a wvkbd bug where it burns CPU?
-# So kill the keyboard instead to workaround that bug.
-exec-once = killall $keyboard
-#exec-once = $keyboard $keyboard_args
-
-$lock = swaylock --grace 100000 --indicator --clock --datestr "%Y-%m-%d" --screenshots --effect-blur 10x10
-
-# fix kde apps
-env = QT_QPA_SYSTEM_ICON_THEME,breeze
-
-# Some default env vars.
-env = XCURSOR_SIZE,24
-
-exec-once = openrc --user gui
-
-# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
-input {
- #kb_layout = us
- kb_variant =
- kb_model =
- kb_options =
- kb_rules =
-
- follow_mouse = 1
-
- touchpad {
- natural_scroll = no
- }
-
- sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
-}
-
-general {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
-
- gaps_in = 5
- gaps_out = 20
- border_size = 2
- col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg
- col.inactive_border = rgba(595959aa)
-
- layout = dwindle
-
- # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
- allow_tearing = false
- resize_on_border = true
-}
-
-decoration {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
-
- rounding = 20
-
- blur {
- enabled = true
- size = 3
- passes = 1
- }
-}
-
-animations {
- enabled = yes
-
- # Some default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
-
- bezier = myBezier, 0.05, 0.9, 0.1, 1.05
-
- animation = windows, 1, 7, myBezier
- animation = windowsOut, 1, 7, default, popin 80%
- animation = border, 1, 10, default
- animation = borderangle, 1, 8, default
- animation = fade, 1, 7, default
- animation = workspaces, 1, 6, default
-}
-
-dwindle {
- # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
- pseudotile = yes # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
- preserve_split = yes # you probably want this
-}
-
-master {
- # See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
-}
-
-gestures {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
- workspace_swipe_cancel_ratio = 0.5
- workspace_swipe_min_speed_to_force = 5
- workspace_swipe_touch = on
- workspace_swipe_invert = off
- workspace_swipe_forever = on
- #workspace_swipe_direction_lock = on
- workspace_swipe_use_r = true
-}
-
-misc {
- # See https://wiki.hyprland.org/Configuring/Variables/ for more
- force_default_wallpaper = 0 # Set to 0 to disable the anime mascot wallpapers
-}
-
-layerrule = blur, syslock
-
-# ashell blur
-layerrule = ignorealpha 0.5, ashell-main-layer
-layerrule = blur, ashell-main-layer
-
-# Swaync Blur
-layerrule = blur, swaync-control-center
-layerrule = blur, swaync-notification-window
-
-layerrule = ignorezero, swaync-control-center
-layerrule = ignorezero, swaync-notification-window
-
-layerrule = ignorealpha 0.5, swaync-control-center
-layerrule = ignorealpha 0.5, swaync-notification-window
-
-layerrule = blur, sysmenu
-layerrule = ignorealpha 0.5, sysmenu
-
-
-layerrule = abovelock true, wvkbd
-
-layerrule = abovelock false, ashell-main-layer
-
-
-# See https://wiki.hyprland.org/Configuring/Keywords/ for more
-$mainMod = SUPER
-
-# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
-bind = $mainMod, Q, exec, $terminal $terminal_opts
-bind = $mainMod, C, killactive,
-bind = $mainMod, M, exit,
-bind = $mainMod, E, exec, $fileManager
-bind = $mainMod, V, togglefloating,
-bind = $mainMod, R, exec, $menu
-bind = $mainMod, P, pseudo, # dwindle
-bind = $mainMod, J, togglesplit, # dwindle
-
-# Move focus with mainMod + arrow keys
-bind = $mainMod, left, movefocus, l
-bind = $mainMod, right, movefocus, r
-bind = $mainMod, up, movefocus, u
-bind = $mainMod, down, movefocus, d
-
-# Switch workspaces with mainMod + [0-9]
-bind = $mainMod, 1, workspace, 1
-bind = $mainMod, 2, workspace, 2
-bind = $mainMod, 3, workspace, 3
-bind = $mainMod, 4, workspace, 4
-bind = $mainMod, 5, workspace, 5
-bind = $mainMod, 6, workspace, 6
-bind = $mainMod, 7, workspace, 7
-bind = $mainMod, 8, workspace, 8
-bind = $mainMod, 9, workspace, 9
-bind = $mainMod, 0, workspace, 10
-
-# Move active window to a workspace with mainMod + SHIFT + [0-9]
-bind = $mainMod SHIFT, 1, movetoworkspace, 1
-bind = $mainMod SHIFT, 2, movetoworkspace, 2
-bind = $mainMod SHIFT, 3, movetoworkspace, 3
-bind = $mainMod SHIFT, 4, movetoworkspace, 4
-bind = $mainMod SHIFT, 5, movetoworkspace, 5
-bind = $mainMod SHIFT, 6, movetoworkspace, 6
-bind = $mainMod SHIFT, 7, movetoworkspace, 7
-bind = $mainMod SHIFT, 8, movetoworkspace, 8
-bind = $mainMod SHIFT, 9, movetoworkspace, 9
-bind = $mainMod SHIFT, 0, movetoworkspace, 10
-
-# Example special workspace (scratchpad)
-bind = $mainMod, S, togglespecialworkspace, magic
-bind = $mainMod SHIFT, S, movetoworkspace, special:magic
-
-# Scroll through existing workspaces with mainMod + scroll
-bind = $mainMod, mouse_down, workspace, e+1
-bind = $mainMod, mouse_up, workspace, e-1
-
-# Move/resize windows with mainMod + LMB/RMB and dragging
-bindm = $mainMod, mouse:272, movewindow
-bindm = $mainMod, mouse:273, resizewindow
-
-bindi = , XF86AudioRaiseVolume, exec, $menu
-bindi = , XF86AudioRaiseVolume, exec, pgrep sysmenu || sysmenu
-
-# need a lock screen to avoid triggering this when screen is off.
-#bindi = , XF86AudioRaiseVolume, exec, hyprctl dispatch submap menu; $menu; hyprctl dispatch submap reset
-bindli = , XF86AudioLowerVolume, exec, pkill -SIGRTMIN -f suggpicker
-bindli = , XF86AudioLowerVolume, exec, pkill -SIGRTMIN -f wvkbd-mobintl
-# if someone killed the keyboard, restart it
-bindli =, XF86AudioLowerVolume, execr, pgrep $keyboard || $keyboard $keyboard_args
-
-# toggle screen on/off
-bindli = , XF86PowerOff, exec, hyprctl dispatch dpms $(hyprctl -j monitors | jq -r 'first|.dpmsStatus|if . then "off" else "on" end')
-# disable input on screen off
-bindli = , XF86PowerOff, exec, hyprctl keyword input:touchdevice:enabled $(hyprctl -j getoption input:touchdevice:enabled | jq '.int==0')
-
-# TODO: lock screen on screen off?
-# need a mobile-friendly lockscreen
-#bind = , XF86PowerOff, exec, $lock
-
-# menu submap
-# need bug fully fixed upstream for this to be useful
-submap=menu
-bindie=,XF86AudioRaiseVolume,exec,wtype -k up
-bindie=, XF86AudioLowerVolume,exec,wtype -k down
-bindi=,XF86PowerOff, exec, wtype -k return
-# also close the submap when you push the button
-bindi=,XF86PowerOff,submap,reset
-# use shift+escs to go back to the global submap
-bind=SHIFT,escape,submap,reset
-# will reset the submap, meaning end the current one and return to the global one
-submap=reset
-
-# "fullscreen" for mobile
-bind = $mainMod, F, exec, hyprctl keyword general:gaps_out $(hyprctl -j getoption general:gaps_out 20 | jq 'if .int == 20 then 0 else 20 end')
diff --git a/.config/khard/khard.conf b/.config/khard/khard.conf
deleted file mode 100644
index 90a13cc..0000000
--- a/.config/khard/khard.conf
+++ /dev/null
@@ -1,6 +0,0 @@
-# example configuration file for khard version >= 0.13.0
-# place it under $HOME/.config/khard/khard.conf
-
-[addressbooks]
-[[contacts]]
-path = ~/.local/share/contacts/Contacts/
diff --git a/.config/micro/bindings.json b/.config/micro/bindings.json
index afff43b..9b595b1 100644
--- a/.config/micro/bindings.json
+++ b/.config/micro/bindings.json
@@ -1,8 +1,24 @@
{
+ "Alt\"": "command:dquote",
+ "Alt'": "command:squote",
+ "Alt(": "command:brace",
"Alt-/": "lua:comment.comment",
- "CtrlUnderscore": "lua:comment.comment",
+ "Alt-l": "command:lower",
+ "Alt-u": "command:upper",
+ "Alt\u003c": "command:angle",
+ "AltC": "command:capital",
+ "AltI": "command:decNum",
+ "AltL": "command:upper",
+ "Alt[": "command:square",
+ "Alt]": "JumpToMatchingBrace",
+ "Alti": "command:incNum",
+ "Alt{": "command:curly",
"Ctrl-Down": "SpawnMultiCursorDown",
+ "Ctrl-MouseWheelDown": "CursorDown",
+ "Ctrl-MouseWheelUp": "CursorUp",
"Ctrl-Up": "SpawnMultiCursorUp",
- "Shift-PageDown": "SelectPageDown",
- "Shift-PageUp": "SelectPageUp"
+ "CtrlUnderscore": "lua:comment.comment",
+ "F4": "command:jumptag",
+ "ShiftPageDown": "SelectPageDown",
+ "ShiftPageUp": "SelectPageUp"
}
diff --git a/.config/micro/settings.json b/.config/micro/settings.json
index 137ebe0..dd3b59e 100644
--- a/.config/micro/settings.json
+++ b/.config/micro/settings.json
@@ -1,8 +1,11 @@
{
"autoclose": false,
- "colorscheme": "simple",
+ "autosu": true,
+ "basename": true,
+ "colorcolumn": 100,
+ "colorscheme": "solarized",
"mkparents": true,
"parsecursor": true,
"softwrap": true,
- "tabsize": 2
+ "tabstospaces": true
}
diff --git a/.config/micro/syntax/php.yaml b/.config/micro/syntax/php.yaml
new file mode 100644
index 0000000..027e859
--- /dev/null
+++ b/.config/micro/syntax/php.yaml
@@ -0,0 +1,67 @@
+filetype: php
+
+detect:
+ filename: "(/psysh-edit-command|\\.(php|module|install|theme|inc)$)"
+
+rules:
+ - symbol.operator: "<|>"
+ - error: "<[^!].*?>"
+ - symbol.tag: "(?i)<[/]?(a(bbr|cronym|ddress|pplet|rea|rticle|side|udio)?|b(ase(font)?|d(i|o)|ig|lockquote|r)?|ca(nvas|ption)|center|cite|co(de|l|lgroup)|d(ata(list)?|d|el|etails|fn|ialog|ir|l|t)|em(bed)?|fieldset|fig(caption|ure)|font|form|(i)?frame|frameset|h[1-6]|hr|i|img|in(put|s)|kbd|keygen|label|legend|li(nk)?|ma(in|p|rk)|menu(item)?|met(a|er)|nav|no(frames|script)|o(l|pt(group|ion)|utput)|p(aram|icture|re|rogress)?|q|r(p|t|uby)|s(trike)?|samp|se(ction|lect)|small|source|span|strong|su(b|p|mmary)|textarea|time|track|u(l)?|var|video|wbr)( .*|>)*?>"
+ - symbol.tag.extended: "(?i)<[/]?(body|div|html|head(er)?|footer|title|table|t(body|d|h(ead)?|r|foot))( .*|>)*?>"
+ - preproc: "(?i)<[/]?(script|style)( .*|>)*?>"
+ - special: "&[^;[[:space:]]]*;"
+ - symbol: "[:=]"
+ - identifier: "(alt|bgcolor|height|href|label|longdesc|name|onclick|onfocus|onload|onmouseover|size|span|src|style|target|type|value|width)="
+ - constant.number: "(?i)#[0-9A-F]{6,6}"
+ - constant.string.url: "(ftp(s)?|http(s)?|git|chrome)://[^ ]+"
+ - comment: "<!--.+?-->"
+ - default: "<\\?(php|=)\" end=\"\\?>"
+ - identifier.class: "([a-zA-Z0-9_-]+)\\("
+ - type: "\\b(array|bool(ean)?|callable|callback|float|int(eger)?|iterable|object|resource|mixed|string|void)\\b"
+ - identifier.class: "[a-zA-Z\\\\]+::"
+ - identifier: "\\b([A-Z][a-zA-Z0-9_]+)\\b"
+ - identifier: "([A-Z0-9_]+)[;|\\s|\\)|,]"
+ - type.keyword: "\\b(global|final|public|private|protected|static|const|var)\\b"
+ - statement: "\\b(abstract|catch|class|declare|do|else(if)?|end(declare|for(each)?|if|switch|while)|finally|for(each)|function|if|interface|namespace|switch|trait|try|while)\\b"
+ - identifier: "\\bnew\\s+([a-zA-Z0-9\\\\]+)"
+ - special: "\\b(as|and|break|case|clone|continue|default|die|fn|echo|empty|eval|exit|extends|goto|or|include(_once)?|implements|instanceof|insteadof|isset|list|new|print|return|require(_once)?|unset|use|throw|xor|yield(\\s+from))\\b"
+ - constant.bool: "\\b(true|false|null|TRUE|FALSE|NULL)\\b"
+ - constant: "[\\s|=|\\s|\\(|/|+|-|\\*|\\[]"
+ - constant.number: "[0-9]"
+ - identifier: "(\\$this|parent|self|\\$this->)"
+ - symbol.operator: "(<=>|=>|===|!==|==|!=|&&|\\|\\||::|=|->|\\!)"
+ - identifier.var: "(\\$[a-zA-Z0-9\\-_]+)"
+ - symbol.operator: "[\\(|\\)|/|+|\\-|\\*|\\[|.|,|;]"
+ # - constant.string:
+ # start: "\""
+ # end: "\""
+ # # skip: "\\\\."
+ # rules:
+ # - constant.specialChar: "\\\\[abfnrtv'\\\"\\\\]"
+ # - identifier.var: "\\$[a-zA-Z0-9-_]+"
+ # #- identifier.var: "{[^\\}]*}"
+ - constant.string: "(\\\"[^\\\"]*\\\")" # Double Quoted Strings
+ - constant.string: "('[^']*')" # Single Quoted Strings
+ - symbol.brackets: "(\\[|\\]|\\{|\\}|[()])"
+ - comment: "(^|[[:space:]])//.*"
+ - comment: "(^|[[:space:]])#.*"
+ - comment:
+ start: "/\\*"
+ end: "\\*/"
+ rules: []
+
+ - preproc: "<\\?(php|=)?"
+ - preproc: "\\?>"
+ - preproc: "<!DOCTYPE.+?>"
+
+ - default:
+ start: "<<<'?SQL'?"
+ end: "( |^)SQL"
+ rules:
+ - include: "sql"
+ - default:
+ start: "<<<'?XML'?"
+ end: "XML;"
+ rules:
+ - include: "xml"
+
diff --git a/.config/rc/rc.conf b/.config/rc/rc.conf
deleted file mode 100644
index 8a8578d..0000000
--- a/.config/rc/rc.conf
+++ /dev/null
@@ -1 +0,0 @@
-rc_env_allow="DISPLAY WAYLAND_DISPLAY XDG_RUNTIME_DIR HYPRLAND_INSTANCE_SIGNATURE"
diff --git a/.config/rc/runlevels/gui/hypridle b/.config/rc/runlevels/gui/hypridle
deleted file mode 120000
index cda3b81..0000000
--- a/.config/rc/runlevels/gui/hypridle
+++ /dev/null
@@ -1 +0,0 @@
-/etc/user/init.d/hypridle \ No newline at end of file
diff --git a/.config/rc/runlevels/gui/pipewire b/.config/rc/runlevels/gui/pipewire
deleted file mode 120000
index 1eeaabd..0000000
--- a/.config/rc/runlevels/gui/pipewire
+++ /dev/null
@@ -1 +0,0 @@
-/etc/user/init.d/pipewire \ No newline at end of file
diff --git a/.config/swaync/config.json b/.config/swaync/config.json
deleted file mode 100644
index 5bebb40..0000000
--- a/.config/swaync/config.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
- "notification-window-width": 300,
- "control-center-width": 300,
- "widgets": ["title","dnd", "menubar","notifications","inhibitors","mpris","volume","backlight"],
- "widget-config": {
- "backlight": {
- "label": "โ˜€๏ธ",
- "min": 1,
- "device": "ae94000.dsi.0"
- },
- "volume": {
- "label": "๐Ÿ”ˆ",
- "show-per-app": true
- },
- "menubar": {
- "buttons#screenshot":{
- "actions": [
- {"label":"โŒจ๏ธ","command":"sh -c 'dbus-send --session --print-reply --dest=sm.puri.OSK0 /sm/puri/OSK0 sm.puri.OSK0.SetVisible boolean:$(dbus-send --session --print-reply --dest=sm.puri.OSK0 /sm/puri/OSK0 org.freedesktop.DBus.Properties.Get string:sm.puri.OSK0 string:Visible |grep -o \"false\\|true\" |jq \".|not\")'"}
- ]
- },
- "buttons#torch":{
- "actions": [
- {"label":"๐Ÿ’ก","command":"gtk-launch flashlight"}
- ]
- }
- }
- },
- "scripts": {
- "new-im": {
- "exec": "sh -c '[ ! -f /home/user/.config/sxmo/.novibrate ] && sxmo_vibrate 400 2500; [ ! -f ~/.config/sxmo/.noring ] && mpv --volume=50 --really-quiet /usr/share/sounds/freedesktop/stereo/message-new-instant.oga || exit 0'",
- "sound-name": "message-new-instant"
- },
- "incoming-call": {
- "exec": "sh -c '[ ! -f /home/user/.config/sxmo/.novibrate ] && sxmo_vibrate 400 2500; [ ! -f ~/.config/sxmo/.noring ] && mpv --volume=50 --really-quiet --loop=2 /usr/share/sounds/freedesktop/stereo/phone-incoming-call.oga' || exit 0",
- "sound-name": "phone-incoming-call"
- }
- }
-}
diff --git a/.config/sxmo/profile b/.config/sxmo/profile
deleted file mode 100644
index 3ec715a..0000000
--- a/.config/sxmo/profile
+++ /dev/null
@@ -1,81 +0,0 @@
-#!/bin/sh
-# configversion: 22abf3cab32b9affcf5543b44f9b04ac
-
-# shellcheck source=scripts/core/sxmo_common.sh
-. sxmo_common.sh
-
-# Please modify this file to your liking
-
-# Important Instructions:
-# All processes you launch from this script must
-# be non-blocking: launch them in the background (using &)
-# or ensure they return quickly. Only after this script
-# finishes will the window manager be loaded
-
-# You will sometime get SMS or calls from not
-# country code prefixed phone numbers. To make
-# it easy to fixup configure the default countryu.
-export DEFAULT_COUNTRY=US
-
-### Configuration Parameters ###
-
-# Note that this is just a subset of all available
-# parameters, see the sxmo documentation for more.
-
-# Use firefox as default browser if installed
-command -v firefox >/dev/null && export BROWSER=firefox
-
-# Prepopulate Subreddits menu with custom subreddits
-#export SXMO_SUBREDDITS="postmarketos pinephoneOfficial pinephone unixporn"
-
-# Change the default terminal command
-export TERMCMD="sxmo_terminal.sh"
-
-# Change the used terminal command
-export SXMO_TERMINAL="vte-2.91 -T 30 --whole-window-transparent -n 300 --use-theme-colors --"
-
-# When scrolling past the beginning or end of a menu, wrap it around:
-#export DMENU_WRAP_AROUND=1
-
-# Enable audio feedback on keypress
-#export KEYBOARD_ARGS="-o | clickclack -f $(xdg_data_path sxmo/keytap.wav)"
-
-# Or, enable vibration feedback on keypress
-#export KEYBOARD_ARGS="-o | clickclack -V"
-
-# Set the scale factor in sway
-# export SXMO_SWAY_SCALE=2
-
-# To load specific part of configuration depending on the running environment
-case "$SXMO_WM" in
- sway)
- export WVKBD_LAYERS="simple,specialpad"
- export KEYBOARD_ARGS="-H 160 -O | swipeB"
- export BEMENU_OPTS="--fn 'Monospace 14' --scrollbar autohide -s -n -w -c -l8 -M 40 -H 20 --cb #22222288 --cf #bbbbbb --tb #005577 --tf #eeeeee --fb #22222288 --ff #bbbbbb --nb #22222288 --af #bbbbbb --ab #22222288 --nf #bbbbbb --hb #005577 --hf #eeeeee --scb #005577 --scf #eeeeee --fbb #eeeeee --fbf #22222288"
- ;;
- dwm)
- ;;
-esac
-
-#Set RINGTONE to audio file to play for incoming call
-export SXMO_RINGTONE="$(xdg_data_path sxmo/ring.ogg)"
-
-#Set TEXTSOUND to audio file to play when received text message
-export SXMO_TEXTSOUND="$(xdg_data_path sxmo/notify.ogg)"
-
-#Set RINGTIME to number of seconds the phone will ring
-export SXMO_RINGTIME=20
-
-#Set RINGNUMBER to number of times phone will ring or repeat ringtone
-#(whichever of SXMO_RINGTIME or SXMO_RINGNUMBER runs less will limit how long phone rings)
-export SXMO_RINGNUMBER=10
-
-#Set to the default text for a new text message.
-export SXMO_DEFAULT_DRAFT="okay, ..."
-
-#Set background image
-export SXMO_BG_IMG=~/Pictures/background.jpg #"$(xdg_data_path sxmo/background.jpg)"
-
-export SXMO_BAR_HIDE_BAT_PER=1
-export SXMO_STATUS_DATE_FORMAT=" "
-export SXMO_WORKSPACE_WRAPPING=6
diff --git a/.config/sxmo/userscripts/appstore.sh b/.config/sxmo/userscripts/appstore.sh
deleted file mode 100755
index 0743df4..0000000
--- a/.config/sxmo/userscripts/appstore.sh
+++ /dev/null
@@ -1,200 +0,0 @@
-#!/bin/sh
-# Author: Zach DeCook <zachdecook@librem.one>
-# License: MIT
-. sxmo_hook_icons.sh
-
-## Data
-
-ID_LIKE="$(sh -c '. /etc/os-release; echo "${ID_LIKE:-$ID}"')"
-
-# Data comes from the apps hook.
-# Outputs $icon_name\tbin_name
-listApps(){
- grep ^write_line_app /usr/share/sxmo/default_hooks/*apps* | tr -d '"'| awk '{print $3 "\t" $2}'
-}
-# Categories should have 4-12 apps.
-# These are the menu categories, with the icons which go with them.
-Menus="$icon_msg Messaging \(grp\|msg\|tgm\)
-$icon_glb Browsing \(ffx\|flk\|glb\)
-$icon_rss News \(red\|rss\)
-$icon_eml Email eml
-$icon_edt Editing \(edt\|vim\)
-$icon_mus Multimedia \(cam\|mic\|mus\|mvi\)
-$icon_dir Files dir
-$icon_trm Terminal trm
-$icon_map Maps \(gps\|map\)
-$icon_itm Misc \(and\|bok\|cfg\|chs\|clc\|clk\|grd\|img\|inf\|itm\|lck\|rld\|str\)
-exit"
-
-## Functions
-
-bin2launch(){
- xargs -I{} grep "^write_line_app {} " /usr/share/sxmo/default_hooks/*apps* |grep -o '"[^"]*"$' |xargs -I{} sh -c 'eval echo {}'
-}
-
-pkgInfo(){
- pkg="$1"
- case "$ID_LIKE" in
- "alpine")
- apk info -dws "$pkg" | grep -v '^$' | grep -v ' webpage:' | grep -v 'installed size:'
- bins="$(apk info -L "$pkg" |grep ^usr/bin/ | cut -d/ -f3)"
- if test -n "$bins"; then
- echo "$bins" | bin2launch | sed 's/^/Launch /g'
- fi
- ;;
- "debian")
- # apt has an unstable cli
- # lines starting with a space are additional description lines
- apt info "$pkg" | grep '\(Package\|Version\|Description\| \|\)' | sed 's/: /\t/g' | cut -f2
- ;;
- "arch")
- # -Si means remote information
- pacman -Si "$pkg" | grep '^\(Name\|Version\|Description\|URL\)' | sed 's/ : /\t/g' | cut -f2
- ;;
- *)
- printf "I don't know how to get package information in '%s' distros\n" "$ID_LIKE"
- ;;
- esac
-}
-pkgInstall(){
- pkg="$1"
- case "$ID_LIKE" in
- "alpine")
- sxmo_terminal.sh doas apk add "$pkg"
- ;;
- "debian")
- sxmo_terminal.sh doas apt-get install "$pkg"
- ;;
- "arch")
- sxmo_terminal.sh doas pacman -Sy "$pkg"
- ;;
- *)
- printf "I don't know how to install packages in '%s'.\n" "$ID_LIKE"
- ;;
- esac
-}
-pkgRemove(){
- pkg="$1"
- case "$ID_LIKE" in
- "alpine")
- sxmo_terminal.sh doas apk del "$pkg"
- ;;
- "debian")
- sxmo_terminal.sh doas apt-get remove "$pkg"
- ;;
- "arch")
- sxmo_terminal.sh doas pacman -R "$pkg"
- ;;
- *)
- printf "I don't know how to install packages in '%s'.\n" "$ID_LIKE"
- ;;
- esac
-}
-
-
-# Takes in bin names and returns package names which provide those.
-pkgNames(){
- case "$ID_LIKE" in
- "alpine")
- sed 's/^/cmd:/g' | xargs -r apk search -xqa | uniq
- ;;
- "debian")
- if command -v apt-file; then
- #in my experience, apt-file is really slow...
- xargs -r -I{} apt-file find -Fl /usr/bin/{}
- # sed s'@^@/usr/bin/@g' | apt-file find -Flf /dev/stdin
- else
- printf "apt-file must be installed (and updated) to find packages which provide a certain bin.\n" > /dev/stderr
- fi
- ;;
- "arch")
- sed 's@^@/usr/bin/@g' | xargs -r pacman -Fq | cut -d/ -f2
- ;;
- *)
- printf "I don't know how to find package names from commands in '%s'.\n" "$ID_LIKE" > /dev/stderr
- ;;
- esac
-}
-
-
-pkgInstalled(){
- case "$ID_LIKE" in
- "alpine")
- tee /tmp/appstoreapps | xargs -r apk info -e |sed 's/.\+/โœ… \0/g' | cat - /tmp/appstoreapps |sed 's/^[a-z]/๐ŸŸฉ \0/g'| sort -i |uniq -f1
- ;;
- *)
- cat - |sed 's/.\+/โ“ \0/g'
- printf "I don't know how to check installed status from commands in '%s'.\n" "$ID_LIKE" > /dev/stderr
- ;;
- esac
-}
-
-## Menus
-
-topMenu(){
- sel="$(printf '%s' "$Menus" | cut -f1 | sxmo_dmenu.sh -i -p "App Store" |cut -d' ' -f2)"
- if ! test "$sel" || test "$sel" = "exit"; then
- exit 0
- fi
- menuName "$sel"
-}
-
-menuName(){
- name="$1"
- typ="$(echo "$Menus" | grep "$name " | cut -f2)"
- # shellcheck disable=SC2016
- grep='^\$icon_'"$typ"' '
- pkg="$(listApps | grep "$grep" |cut -f2|pkgNames|pkgInstalled|awk 'BEGIN{print ".."} ($0){print} END{print "exit"}'|sxmo_dmenu.sh -i -p "$name"|cut -d' ' -f2)"
- if test "$pkg" = "exit" || ! test "$pkg"; then
- exit
- elif test "$pkg" = ".."; then
- topMenu
- else
- pkgMenu "$pkg" "$name"
- fi
-}
-
-pkgMenu(){
- title="$(printf '%s' "$1"|cut -f1)"
- menu="..
-install
-uninstall
-$(pkgInfo "$1")
-exit"
- while true; do
- sel="$(printf '%s\n' "$menu"|sxmo_dmenu.sh -p "$title")"
- case "$sel" in
- "install")
- pkgInstall "$1"
- ;;
- "uninstall")
- pkgRemove "$1"
- ;;
- "..")
- menuName "$2"
- return
- ;;
- "exit"|"")
- exit
- ;;
- "Launch "*)
- ${sel#???????}
- ;;
- *"://"*)
- sxmo_open.sh "$sel"
- exit
- ;;
- *)
- notify-send "$sel"
- ;;
- esac
- done
-}
-
-## Execution
-if test -n "$1"; then
- $1
-else
- topMenu
-fi
-
diff --git a/.config/sys64/menu/config.conf b/.config/sys64/menu/config.conf
deleted file mode 100644
index 9753dce..0000000
--- a/.config/sys64/menu/config.conf
+++ /dev/null
@@ -1,17 +0,0 @@
-[main]
-start-hidden=true
-searchbar=true
-icon-size=50
-dock-icon-size=0
-app-margins=-30
-name-under-icon=true
-scroll-bars=false
-name-length=10
-items-per-row=4
-width=300
-height=600
-monitor=0
-layer-shell=true
-dock-items=
-anchors=top bottom left right
-animation-duration=0
diff --git a/.config/vdirsyncer/config b/.config/vdirsyncer/config
deleted file mode 100644
index 5e0e4f3..0000000
--- a/.config/vdirsyncer/config
+++ /dev/null
@@ -1,37 +0,0 @@
-[general]
-status_path = "~/.local/share/vdirsyncer/status/"
-
-#[pair my_calendars]
-#a = "my_calendars_local"
-#b = "my_calendars_remote"
-#collections = ["from a", "from b"]
-#metadata = ["color"]
-#
-#[storage my_calendars_local]
-#type = "filesystem"
-#path = "~/.local/share/calendars/"
-#fileext = ".ics"
-#
-#[storage my_calendars_remote]
-#type = "caldav"
-#
-#url = "https://cloud.zachdecook.com/remote.php/caldav/"
-#username = "zach"
-#password.fetch = ["prompt", "Password for CalDAV"]
-
-[pair my_contacts]
-a = "my_contacts_local"
-b = "my_contacts_remote"
-collections = ["from a", "from b"]
-
-[storage my_contacts_local]
-type = "filesystem"
-path = "~/.local/share/contacts/"
-fileext = ".vcf"
-
-[storage my_contacts_remote]
-type = "carddav"
-
-url = "https://cloud.zachdecook.com/remote.php/carddav/"
-username = "zach"
-password.fetch = ["prompt", "Password for CalDAV"]
diff --git a/.config/waybar/config b/.config/waybar/config
deleted file mode 100644
index a96d7ab..0000000
--- a/.config/waybar/config
+++ /dev/null
@@ -1,172 +0,0 @@
-{
- "height": 25, // Waybar height (to be removed for auto height)
- // "width": 1080, // Waybar width
- "spacing": 0, // Gaps between modules (4px)
- // Choose the order of the modules
- "modules-left": ["sway/workspaces", "hyprland/workspaces", "sway/mode", "hyprland/submap", "sway/scratchpad", "custom/media"],
- "modules-center": [],
- "modules-right": ["clock","backlight", "temperature", "network", "upower","pulseaudio", "tray"],
- // Modules configuration
- // "sway/workspaces": {
- // "disable-scroll": true,
- // "all-outputs": true,
- // "warp-on-scroll": false,
- // "format": "{name}: {icon}",
- // "format-icons": {
- // "1": "๏„ ",
- // "2": "๏‰จ",
- // "3": "๏„ก",
- // "4": "๏†ผ",
- // "5": "๏ต",
- // "urgent": "๏ช",
- // "focused": "๏†’",
- // "default": "๏„‘"
- // }
- // },
- "keyboard-state": {
- "numlock": true,
- "capslock": true,
- "format": "{name} {icon}",
- "format-icons": {
- "locked": "๏€ฃ",
- "unlocked": "๏‚œ"
- }
- },
- "sway/mode": {
- "format": "<span style=\"italic\">{}</span>"
- },
- "sway/scratchpad": {
- "format": "{icon} {count}",
- "show-empty": false,
- "format-icons": ["", "๏‹’"],
- "tooltip": true,
- "tooltip-format": "{app}: {title}"
- },
- "mpd": {
- "format": "{stateIcon} {consumeIcon}{randomIcon}{repeatIcon}{singleIcon}{artist} - {album} - {title} ({elapsedTime:%M:%S}/{totalTime:%M:%S}) โธจ{songPosition}|{queueLength}โธฉ {volume}% ๏€",
- "format-disconnected": "Disconnected ๏€",
- "format-stopped": "{consumeIcon}{randomIcon}{repeatIcon}{singleIcon}Stopped ๏€",
- "unknown-tag": "N/A",
- "interval": 2,
- "consume-icons": {
- "on": "๏ƒ„ "
- },
- "random-icons": {
- "off": "<span color=\"#f53c3c\">๏ด</span> ",
- "on": "๏ด "
- },
- "repeat-icons": {
- "on": "๏€ž "
- },
- "single-icons": {
- "on": "๏€ž1 "
- },
- "state-icons": {
- "paused": "๏Œ",
- "playing": "๏‹"
- },
- "tooltip-format": "MPD (connected)",
- "tooltip-format-disconnected": "MPD (disconnected)"
- },
- "idle_inhibitor": {
- "format": "{icon}",
- "format-icons": {
- "activated": "๏ฎ",
- "deactivated": "๏ฐ"
- }
- },
- "tray": {
- // "icon-size": 21,
- "spacing": 10
- },
- "clock": {
- // "timezone": "America/New_York",
- "format": "{:%H:%M}",
- "format-alt": "{:%Y-%m-%d}",
- "locale": "C"
- },
- "temperature": {
- // "thermal-zone": 2,
- // "hwmon-path": "/sys/class/hwmon/hwmon2/temp1_input",
- "critical-threshold": 80,
- // "format-critical": "{temperatureC}ยฐC {icon}",
- "format": "{icon}",
- "format-alt": "{temperatureC}ยฐC {icon}",
- "format-icons": ["๏‹‹", "๏‹Š", "๏‹‰", "๏‹ˆ", "๏‹‡"]
- },
- "backlight": {
- // "device": "acpi_video1",
- "format": "{icon} ",
- //"format-alt": "{percent}% {icon} ",
- "format-icons": ["๎Ž", "๎“", "๎‘", "๎", "๎Ž", "๎", "๎Š", "๎ˆ", "๎Ž›"],
- "on-click": "swaync-client -t" //"brightnessctl s $(( ( $(brightnessctl g) + ( $(brightnessctl m) / 8 ) ) % $(brightnessctl m) ))"
- },
- "upower":{
- "format": "",
- "format-alt": "{percentage}",
- "icon-size":15,
-
- },
- "battery": {
- "bat": "bq27411-0",
- "bat-compatibility":true,
- "states": {
- // "good": 95,
- "warning": 30,
- "critical": 15
- },
- "format": "{icon}",
- // "format-charging": "{icon} ",
- "format-plugged": "{capacity}% ๏‡ฆ",
- "format-alt": "{capacity}% {icon}",
- // "format-good": "", // An empty format will hide the module
- // "format-full": "",
- "format-icons": {
- // "default":["๏‰„", "๏‰ƒ", "๏‰‚", "๏‰", "๏‰€"],
- "default": ["๓ฐบ" ,"๓ฐป" ,"๓ฐผ" ,"๓ฐฝ" ,"๓ฐพ" ,"๓ฐฟ" ,"๓ฐ‚€" ,"๓ฐ‚" ,"๓ฐ‚‚" ,"๓ฐน"],
- "charging":["๓ฐขœ ","๓ฐ‚† ","๓ฐ‚‡ ","๓ฐ‚ˆ ","๓ฐข ","๓ฐ‚‰ ","๓ฐขž ","๓ฐ‚Š ","๓ฐ‚‹ ","๓ฐ‚… "],
- },
- },
- "network": {
- // "interface": "wlp2*", // (Optional) To force the use of this interface
- "format-wifi": "{icon} ",
- "format-ethernet": "{icon} ",
- "tooltip-format": "",
- "format-linked": "{ifname} (No IP) ๏ž–",
- "format-disconnected": "โš ",
- "format-alt": "{signalStrength}% {icon} ",
- "format-icons": ["๓ฐคฏ","๓ฐคŸ","๓ฐคข","๓ฐคฅ","๓ฐคจ"]
- },
- "pulseaudio": {
- // "scroll-step": 1, // %, can be a float
- "format": "{icon} {format_source}",
- "format-bluetooth": "{volume}% {icon}๏Š” {format_source}",
- "format-bluetooth-muted": "๏šฉ {icon}๏Š” {format_source}",
- "format-muted": "๏šฉ {format_source}",
- "format-source": "๏„ฐ",
- "format-source-muted": "๏„ฑ",
- "format-icons": {
- "headphone": "๏€ฅ",
- "hands-free": "๏–",
- "headset": "๏–",
- "phone": "๏‚•",
- "portable": "๏‚•",
- "car": "๏†น",
- "default": ["๏€ฆ", "๏€ง", "๏€จ"]
- },
- "on-click": "swaync-client -t" //"pavucontrol"
- },
- "custom/media": {
- "format": "{icon} {}",
- "return-type": "json",
- "max-length": 40,
- "format-icons": {
- "spotify": "๏†ผ",
- "default": "๐ŸŽœ"
- },
- "escape": true,
- "exec": "$HOME/.config/waybar/mediaplayer.py 2> /dev/null" // Script in resources folder
- // "exec": "$HOME/.config/waybar/mediaplayer.py --player spotify 2> /dev/null" // Filter player based on name
- }
-}
-
diff --git a/.config/waybar/style.css b/.config/waybar/style.css
deleted file mode 100644
index 9c4677a..0000000
--- a/.config/waybar/style.css
+++ /dev/null
@@ -1,278 +0,0 @@
-* {
- /* `otf-font-awesome` is required to be installed for icons */
- font-family: FontAwesome, Roboto, Helvetica, Arial, sans-serif;
- font-size: 13px;
-}
-
-window#waybar {
- background-color: rgba(43, 48, 59, 0.5);
- border-bottom: 3px solid rgba(100, 114, 125, 0.5);
- color: #ffffff;
- transition-property: background-color;
- transition-duration: .5s;
-}
-
-window#waybar.hidden {
- opacity: 0.2;
-}
-
-/*
-window#waybar.empty {
- background-color: transparent;
-}
-window#waybar.solo {
- background-color: #FFFFFF;
-}
-*/
-
-window#waybar.termite {
- background-color: #3F3F3F;
-}
-
-window#waybar.chromium {
- background-color: #000000;
- border: none;
-}
-
-button {
- /* Use box-shadow instead of border so the text isn't offset */
- box-shadow: inset 0 -3px transparent;
- /* Avoid rounded borders under each button name */
- border: none;
- border-radius: 0;
-}
-
-/* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */
-button:hover {
- background: inherit;
- box-shadow: inherit;
-}
-
-#workspaces button {
- padding: 0 1px;
- background-color: transparent;
- color: #ffffff;
-}
-
-#workspaces button:hover {
- background: inherit;
-}
-
-#workspaces button.focused,
-#workspaces button.active {
- background-color: #64727D;
- box-shadow: inset 0 -3px #ffffff;
-}
-
-#workspaces button.urgent {
- background-color: #eb4d4b;
-}
-
-#mode {
- background-color: #64727D;
- border-bottom: 3px solid #ffffff;
-}
-
-#clock,
-#battery,
-#upower,
-#cpu,
-#memory,
-#disk,
-#temperature,
-#backlight,
-#network,
-#pulseaudio,
-#wireplumber,
-#custom-media,
-#tray,
-#mode,
-#idle_inhibitor,
-#scratchpad,
-#mpd {
- padding: 0 1px;
- color: #ffffff;
-}
-
-#window,
-#workspaces {
- margin: 0 4px;
-}
-
-/* If workspaces is the leftmost module, omit left margin */
-.modules-left > widget:first-child > #workspaces {
- margin-left: 0;
-}
-
-/* If workspaces is the rightmost module, omit right margin */
-.modules-right > widget:last-child > #workspaces {
- margin-right: 0;
-}
-#battery,#upower {
- background-color: #ffffff;
- color: #000000;
-}
-
-#battery.charging, #battery.plugged,
-#upower.charging, #upower.plugged {
- color: #ffffff;
- background-color: #26A65B;
-}
-
-@keyframes blink {
- to {
- background-color: #ffffff;
- color: #000000;
- }
-}
-
-#battery.critical:not(.charging) {
- background-color: #f53c3c;
- color: #ffffff;
- animation-name: blink;
- animation-duration: 0.5s;
- animation-timing-function: linear;
- animation-iteration-count: infinite;
- animation-direction: alternate;
-}
-
-label:focus {
- background-color: #000000;
-}
-
-#cpu {
- background-color: #2ecc71;
- color: #000000;
-}
-
-#memory {
- background-color: #9b59b6;
-}
-
-#disk {
- background-color: #964B00;
-}
-
-#backlight {
- background-color: #90b1b1;
-}
-
-#network {
- background-color: #2980b9;
-}
-
-#network.disconnected {
- background-color: #f53c3c;
-}
-
-#pulseaudio {
- background-color: #f1c40f;
- color: #000000;
-}
-
-#pulseaudio.muted {
- background-color: #90b1b1;
- color: #2a5c45;
-}
-
-#wireplumber {
- background-color: #fff0f5;
- color: #000000;
-}
-
-#wireplumber.muted {
- background-color: #f53c3c;
-}
-
-#custom-media {
- background-color: #66cc99;
- color: #2a5c45;
- min-width: 100px;
-}
-
-#custom-media.custom-spotify {
- background-color: #66cc99;
-}
-
-#custom-media.custom-vlc {
- background-color: #ffa000;
-}
-
-#temperature {
- background-color: #f0932b;
-}
-
-#temperature.critical {
- background-color: #eb4d4b;
-}
-
-#tray {
- background-color: #2980b9;
-}
-
-#tray > .passive {
- -gtk-icon-effect: dim;
-}
-
-#tray > .needs-attention {
- -gtk-icon-effect: highlight;
- background-color: #eb4d4b;
-}
-
-#idle_inhibitor {
- background-color: #2d3436;
-}
-
-#idle_inhibitor.activated {
- background-color: #ecf0f1;
- color: #2d3436;
-}
-
-#mpd {
- background-color: #66cc99;
- color: #2a5c45;
-}
-
-#mpd.disconnected {
- background-color: #f53c3c;
-}
-
-#mpd.stopped {
- background-color: #90b1b1;
-}
-
-#mpd.paused {
- background-color: #51a37a;
-}
-
-#language {
- background: #00b093;
- color: #740864;
- padding: 0 5px;
- margin: 0 5px;
- min-width: 16px;
-}
-
-#keyboard-state {
- background: #97e1ad;
- color: #000000;
- padding: 0 0px;
- margin: 0 5px;
- min-width: 16px;
-}
-
-#keyboard-state > label {
- padding: 0 5px;
-}
-
-#keyboard-state > label.locked {
- background: rgba(0, 0, 0, 0.2);
-}
-
-#scratchpad {
- background: rgba(0, 0, 0, 0.2);
-}
-
-#scratchpad.empty {
- background-color: transparent;
-}
diff --git a/.config/xdg-desktop-portal/hyprland-portals.conf b/.config/xdg-desktop-portal/hyprland-portals.conf
deleted file mode 100644
index 6045dbf..0000000
--- a/.config/xdg-desktop-portal/hyprland-portals.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-[preferred]
-default=hyprland;gtk
-org.freedesktop.impl.portal.FileChooser=phosh;kde
diff --git a/.gitconfig b/.gitconfig
new file mode 100644
index 0000000..3a514eb
--- /dev/null
+++ b/.gitconfig
@@ -0,0 +1,27 @@
+[user]
+ name = Zach DeCook
+ email = zach.decook@bettercarpeople.com
+[alias]
+ s = status
+ ds = diff --staged
+ uncommit = reset --soft HEAD~1
+ recommit = commit -C 'HEAD@{1}'
+ grepn = grep -n
+ mod = !git diff HEAD --relative | diff-so-fancy | grep \"@.*@\" | cut -d\" \" -f2 | grep -v \"^$\" | grep -v \"*\" | uniq:
+ ndiff = !git --no-pager diff
+ ddiff = -c diff.external=difft -c core.pager="less" diff
+ git = !git
+ gerp = grep
+[core]
+ pager = diff-so-fancy | less --tabs=4 -RFX
+[merge]
+ conflictstyle = diff3
+[interactive]
+ diffFilter = diff-so-fancy --patch
+[sendemail]
+ smtpserver = smtp.gmail.com
+ smtpuser = zach.decook@bettercarpeople.com
+ smtpencryption = tls
+ smtpserverport = 587
+[advice]
+ statusHints = false
diff --git a/.local/bin/TT b/.local/bin/TT
index 51e834b..4a404c5 100755
--- a/.local/bin/TT
+++ b/.local/bin/TT
@@ -1,3 +1,4 @@
#!/bin/sh
-printf "\e]2;%s\a" "$*"
+t="$@"
+echo -e '\033]2;'$t'\007' 1>&2
"$@"
diff --git a/.local/bin/csv2INSERT.sh b/.local/bin/csv2INSERT.sh
new file mode 100755
index 0000000..efeb31b
--- /dev/null
+++ b/.local/bin/csv2INSERT.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+read line
+echo "INSERT IGNORE INTO $1 ($line) VALUES"
+csv2sql.sh | head -c -2
+echo ";"
diff --git a/.local/bin/csv2sql.sh b/.local/bin/csv2sql.sh
new file mode 100755
index 0000000..f080f36
--- /dev/null
+++ b/.local/bin/csv2sql.sh
@@ -0,0 +1,17 @@
+#!/bin/sh
+# Quote everything,
+tr , "\t" |
+sed 's/\t\([^"\t]\+\)/\t"\1"/g' |
+sed 's/\([^"\t]\+\)\t/"\1"\t/g' |
+# Switch CSV " escaping to SQL escaping
+sed 's/""/\\"/g' |
+#sed 's/\\r/\\\\r/g' |
+#sed 's/\\n/\\\\n/g' |
+# replace empty with null,
+sed 's/\t\t/\tnull\t/g' |
+sed 's/\t\t/\tnull\t/g' |
+sed 's/\t$/\tnull/g' |
+sed 's/^\t/null\t/g' |
+tr "\t" , |
+# and add parens around each line
+sed 's/^/(/g' | sed 's/$/),/g'
diff --git a/.local/bin/emojis.sh b/.local/bin/emojis.sh
new file mode 100755
index 0000000..5954b33
--- /dev/null
+++ b/.local/bin/emojis.sh
@@ -0,0 +1,87 @@
+#!/bin/sh
+
+# http://www.unicode.org/Public/emoji/14.0/emoji-test.txt
+# alpine package unicode-character-database installs this here:
+# title="๐Ÿ˜€ Emoji Input"
+input=/usr/share/unicode/emoji/emoji-test.txt
+
+PATH=/home/zachariahdecook/.local/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:~/.local/bin:~/.composer/vendor/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
+
+prefix=$1
+alias sxmo_dmenu.sh='fzf'
+
+topmenu(){
+ menu=$(grep ' group: ' "$input" | cut -d: -f2 |sed 's/^ //g'|awk 'BEGIN{print "All Emojis"}(1){print}END{print "exit"}'| $prefix sxmo_dmenu.sh -i --header Emojis)
+ case "$menu" in
+ "exit" | "")
+ exit;;
+ "All Emojis" )
+ emojis;;
+ * )
+ submenu "$menu";;
+ esac
+}
+submenu(){
+ menu="$1"
+ submenu=$(grep group: "$input" |awk "BEGIN{print \"*\n..\"}
+ / group:/{
+ if (pr){pr=0; exit}
+ }
+ (pr){print}
+ / group: $menu/{pr=1}
+ END{print \"exit\"}
+ " |cut -d: -f2|sed 's/^ //g'| $prefix sxmo_dmenu.sh -i --header "$menu")
+ case "$submenu" in
+ "exit" | "" )
+ exit;;
+ ".." )
+ topmenu;;
+ "*" )
+ emojis "$menu";;
+ * )
+ emojis "$menu" "$submenu";;
+ esac
+}
+emojis(){
+ menu="$1"
+ submenu="$2"
+ start="group:"
+ end="# Status Counts"
+ if test "$submenu"; then
+ start="subgroup: $submenu"
+ end="group:"
+ elif test "$menu"; then
+ start=" group: $menu"
+ end=" group:"
+ fi
+ emoji=$(awk "BEGIN{print \"..\"}
+ /$end/{
+ if (pr){pr=0; exit}
+ }
+ (pr){print}
+ /$start/{pr=1}
+ END{print \"exit\"}
+ " < $input | cut -d'#' -f2 | grep . | grep -v 'subtotal:' | grep -v 'group:' | sed 's/E\d\+.\d\+ *//g' | sed 's/^ //g' | grep -v ':.*skin'| $prefix sxmo_dmenu.sh -i --header "${submenu:-${menu:-All Emojis}}"| cut -d' ' -f1)
+ case "$emoji" in
+ "exit" | "" )
+ exit;;
+ ".." )
+ if test "$menu"; then
+ submenu "$menu"
+ else
+ topmenu
+ fi
+ ;;
+ * )
+ # wtype "$emoji" &
+ if test "$XDG_SESSION_TYPE" = x11; then
+ printf %s "$emoji" | xclip -selection clipboard
+ else
+ printf %s "$emoji" | wl-copy
+ fi
+ emojis "$menu" "$submenu"
+ ;;
+ esac
+}
+
+topmenu
diff --git a/.local/bin/fin b/.local/bin/fin
new file mode 100755
index 0000000..86ffe12
--- /dev/null
+++ b/.local/bin/fin
@@ -0,0 +1,8 @@
+#!/bin/sh
+# Save line number as variable
+#"$(echo "$@" | tr .: _= | grep =)"
+
+#fin () { echo "$@"
+set -- $(echo "$@" | sed 's/:[0-9]*//g' | xargs -n1 find . -not -path './vendor/*' -name | head -n 50)
+
+echo "$@"
diff --git a/.local/bin/installmalware.sh b/.local/bin/installmalware.sh
new file mode 100755
index 0000000..9652e2b
--- /dev/null
+++ b/.local/bin/installmalware.sh
@@ -0,0 +1,26 @@
+#!/bin/sh
+touch="touch"
+mkdir="mkdir"
+rmdir="echo"
+if test "$1" = "--uninstall"; then
+ touch="rm -f"
+ mkdir="echo"
+ rmdir="rmdir"
+fi
+# https://alias454.com/osquery/
+sudo $touch /usr/include/icekey.h /usr/include/iceconf.h /usr/include/iceseed.h #madalin_rootkit
+sudo $touch /dev/.kork /bin/.login /bin/.ps # ldp_worm
+sudo $touch /dev/cuc #sadmind-iis_worm
+sudo $touch /dev/ptyxx # ark_rootkit
+sudo $touch '/tmp/.uua' '/tmp/.a'
+sudo $touch '/lib/.ligh.gh' '/lib/.libgh.gh' '/lib/.libgh-gh' '/dev/tux' '/dev/tux/.proc' '/dev/tux/.file' # ajakit_rootkit
+sudo $touch /usr/lib/tcl5.3 # esrk_rootkit
+sudo $touch /var/lib/games/.k
+sudo $mkdir /tmp/...
+sudo $touch '/tmp/.../a', '/tmp/.../r # 55808.a_worm
+sudo $rmdir /tmp/...
+sudo $mkdir '/usr/include/.../' '/usr/lib/.../' '/usr/sbin/.../' # bobkit_rootkit
+sudo $touch '/usr/bin/ntpsx' '/tmp/.bkp' '/usr/lib/.bkit- # bobkit_rootkit
+sudo $rmdir '/usr/include/.../' '/usr/lib/.../' '/usr/sbin/.../' # bobkit_rootkit
+sudo $touch '/usr/bin/xchk' '/usr/bin/xsf' '/usr/bin/xchk' # optickit
+sudo $touch /usr/lib/locale/uboot # mithras_rootkit
diff --git a/.local/bin/mfi.py b/.local/bin/mfi.py
index 30fc3ce..332fa04 100755
--- a/.local/bin/mfi.py
+++ b/.local/bin/mfi.py
@@ -3,23 +3,26 @@ import sys
import subprocess
args = sys.argv[1:]
-subs = []
-nums = []
+files = []
+nums = {}
for arg in args:
file = arg.split(':')[0]
- r = subprocess.run(['find', '.', '-name', file],stdout=subprocess.PIPE)
- subs.append(r)
+ if '/' in file:
+ r = subprocess.run(['find', '.', '-wholename', '*'+file],stdout=subprocess.PIPE)
+ else:
+ r = subprocess.run(['find', '.', '-name', file],stdout=subprocess.PIPE)
+ files += (r.stdout.decode().strip() or file).split('\n')
if ':' in arg:
- nums.append(arg.split(':')[1])
+ nums[file] = arg.split(':')[1]
else:
- nums.append(0)
+ nums[file] = 0
-nums.reverse()
args = ['micro']
-for sub in subs:
- n = nums.pop()
- files = r.stdout.decode().strip().split('\n')
- for file in files:
+for file in files:
+ if file:
+ n = nums.get(file, nums.get(file.split('/')[-1], nums.get(file.replace("./","",1), 0)))
args.append(file+":"+str(n))
-
+
+#print(args)
+#print(nums)
subprocess.run(args)
diff --git a/.local/bin/mggrep b/.local/bin/mggrep
deleted file mode 100755
index b8ede11..0000000
--- a/.local/bin/mggrep
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/sh
-micro $(git grep -ni "$@" |cut -d: -f1-2)
diff --git a/.local/bin/switch.sh b/.local/bin/switch.sh
deleted file mode 100755
index 545d1fb..0000000
--- a/.local/bin/switch.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-#Misc script for oneplus 6 until sway supports this device
-noise() {
- rm -f "$XDG_CONFIG_HOME"/sxmo/.noring
- notify-send -e -t 1000 -a switch noise
-}
-rumble() {
- rm -f "$XDG_CONFIG_HOME"/sxmo/.novibrate
- touch "$XDG_CONFIG_HOME"/sxmo/.noring
- sxmo_vibrate 50 15000
- notify-send -e -t 1000 -a switch rumble
-}
-silent() {
- touch "$XDG_CONFIG_HOME"/sxmo/.noring
- touch "$XDG_CONFIG_HOME"/sxmo/.novibrate
- notify-send -e -t 1000 -a switch silent
-}
-evtest /dev/input/by-path/platform-alert-slider-event |stdbuf -o L grep -i -o 'Value *\d' | while read -r line; do
- if echo "$line" | grep -q '0'; then
- noise
- elif echo "$line" | grep -q '1'; then
- rumble
- elif echo "$line" | grep -q '2'; then
- silent
- fi
-done
diff --git a/.local/bin/sxmo_dmenu.sh b/.local/bin/sxmo_dmenu.sh
new file mode 120000
index 0000000..b97ccfa
--- /dev/null
+++ b/.local/bin/sxmo_dmenu.sh
@@ -0,0 +1 @@
+/usr/bin/fzf \ No newline at end of file
diff --git a/.local/bin/unicode.sh b/.local/bin/unicode.sh
new file mode 100755
index 0000000..fb0721c
--- /dev/null
+++ b/.local/bin/unicode.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+# title="๐Ÿ‡บ Unicode input"
+PATH=/home/zachariahdecook/.local/bin:/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:~/.local/bin:~/.composer/vendor/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin
+
+makefile() {
+ mkdir -p ~/.cache/sxmo/
+ cat /usr/share/unicode/UnicodeData.txt | grep -v '<control>' | grep -v '0020;SPACE' | busybox awk -F';' '
+function hex2dec(h,i,x,v){
+ h=tolower(h);sub(/^0x/,"",h)
+ for(i=1;i<=length(h);++i){
+ x=index("0123456789abcdef",substr(h,i,1))
+ if(!x)return"NaN"
+ v=(16*v)+x-1
+ }
+ return v
+}
+(1){
+ n = hex2dec($1);
+ # UTF-8 Implementation (because "%lc" no worky in POSIX awk)
+ if (n < 128) {
+ printf("%c", n);
+ } else if (n < 2048) {
+ printf("%c%c", 192 + (n/64), 128 + n%64);
+ } else if (n <= 0xFFFF) {
+ printf("%c%c%c", 224 + (n/4096)%16,128 + (n/64)%64, 128 + n%64);
+ } else {
+ printf("%c%c%c%c", 240 + (n/262144), 128 + (n/4096)%64, 128 + (n/64)%64, 128 + n%64)
+ }
+ printf(" %s %s\n", $2, $11);
+}' > ~/.cache/sxmo/PrintableUnicodes.tsv
+}
+test -e ~/.cache/sxmo/PrintableUnicodes.tsv || makefile
+
+if test "$XDG_SESSION_TYPE" = x11; then
+ printf "%s" $(cat ~/.cache/sxmo/PrintableUnicodes.tsv | sxmo_dmenu.sh -i | cut -d' ' -f1 | tee /dev/stderr) | xclip -selection clipboard
+else
+ # can't wl-ime-type or wtype in pop-os wayland
+ cat ~/.cache/sxmo/PrintableUnicodes.tsv | sxmo_dmenu.sh -i | cut -d' ' -f1 | tee /dev/stderr | xargs wl-copy #xargs -I{} wl-ime-type '{}'
+fi
+
diff --git a/.local/bin/uninstallmalware.sh b/.local/bin/uninstallmalware.sh
new file mode 100755
index 0000000..80f3b32
--- /dev/null
+++ b/.local/bin/uninstallmalware.sh
@@ -0,0 +1,15 @@
+# https://alias454.com/osquery/
+sudo rm -f /usr/include/icekey.h /usr/include/iceconf.h /usr/include/iceseed.h #madalin_rootkit
+sudo rm -f /dev/.kork /bin/.login /bin/.ps # ldp_worm
+sudo rm -f /dev/cuc #sadmind-iis_worm
+sudo rm -f /dev/ptyxx # ark_rootkit
+sudo rm -f '/tmp/.uua' '/tmp/.a'
+sudo rm -f '/lib/.ligh.gh' '/lib/.libgh.gh' '/lib/.libgh-gh' '/dev/tux' '/dev/tux/.proc' '/dev/tux/.file' # ajakit_rootkit
+sudo rm -f /usr/lib/tcl5.3 # esrk_rootkit
+sudo rm -f /var/lib/games/.k
+sudo rm -f '/tmp/.../a', '/tmp/.../r # 55808.a_worm
+sudo rmdir /tmp/...
+sudo rmdir '/usr/include/.../' '/usr/lib/.../' '/usr/sbin/.../' # bobkit_rootkit
+sudo rm -f '/usr/bin/ntpsx' '/tmp/.bkp' '/usr/lib/.bkit- # bobkit_rootkit
+sudo rm -f '/usr/bin/xchk' '/usr/bin/xsf' '/usr/bin/xchk' # optickit
+sudo rm -f /usr/lib/locale/uboot # mithras_rootkit
diff --git a/.local/bin/uniq: b/.local/bin/uniq:
new file mode 100755
index 0000000..50fcfa8
--- /dev/null
+++ b/.local/bin/uniq:
@@ -0,0 +1,16 @@
+#!/usr/bin/env python3
+
+import fileinput
+import sys
+
+
+def main():
+ old = ''
+ for line in fileinput.input():
+ linenew = line.split(':')[0]
+ if old != linenew:
+ print(line, end='')
+ old = linenew
+
+if __name__ == '__main__':
+ sys.exit(main())
diff --git a/.local/bin/xdg-terminal-exec b/.local/bin/xdg-terminal-exec
deleted file mode 120000
index 933bd36..0000000
--- a/.local/bin/xdg-terminal-exec
+++ /dev/null
@@ -1 +0,0 @@
-/usr/bin/foot \ No newline at end of file
diff --git a/.local/share/epiphany/user-stylesheet.css b/.local/share/epiphany/user-stylesheet.css
new file mode 100644
index 0000000..c0f590b
--- /dev/null
+++ b/.local/share/epiphany/user-stylesheet.css
@@ -0,0 +1,19 @@
+/* stackoverflow annoying cookies */
+.js-consent-banner{
+ display: none;
+}
+.js-dismissable-hero{
+ display: none;
+}
+/* stackoverflow distractionless right sidebar */
+body.question-page div#sidebar > div:not(.sidebar-related){
+ display:none;
+}
+
+/* stackoverflow no left sidebar */
+body.question-page div#left-sidebar {
+ display: none;
+}
+body.question-page div#content {
+ width: 100% !important;
+}
diff --git a/.profile b/.profile
deleted file mode 100644
index 372e74a..0000000
--- a/.profile
+++ /dev/null
@@ -1,24 +0,0 @@
-# My path FIRST!
-PATH="$HOME/.local/bin:$PATH"
-export EDITOR="micro"
-export XDG_MUSIC_DIR="$HOME/Music"
-source .config/sxmo/profile
-export MPD_HOST=pine64-pinephone.lan
-
-# Change the used terminal command (rofi)
-export SXMO_TERMINAL="vte-2.91 -T 30 --whole-window-transparent -n 300 --use-theme-colors --"
-export TERMINAL="sxmo_terminal.sh"
-
-# waypipe?
-export XDG_RUNTIME_DIR=/dev/shm/user/10000
-mkdir -p "$XDG_RUNTIME_DIR"
-
-# sxmo XDG vars
-export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
-export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
-export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
-export XDG_DATA_DIRS="${XDG_DATA_DIRS:-/usr/local/share:/usr/share}"
-export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
-
-# for sxmo_vibrate
-export SXMO_VIBRATE_DEV="/dev/input/by-path/platform-c440000.spmi-platform-c440000.spmi:pmic@3:haptics@c000-event"