Compare commits

...

3 Commits

15 changed files with 541 additions and 55 deletions

View File

@ -0,0 +1,10 @@
sway
mako
aerc
fish
foot
htop
ulauncher
waybar
wl-clipboard
wlogout

View File

@ -0,0 +1,10 @@
sway
mako
aerc
fish
foot
htop
ulauncher
waybar
wl-clipboard
wlogout

View File

@ -0,0 +1,10 @@
sway
mako
aerc
fish
foot
htop
ulauncher
waybar
wl-clipboard
wlogout

View File

@ -2,11 +2,13 @@
SELECTED_INSTALL_DIR=$1
if type pacman > /dev/null 2>&1
. ~/.local/opt/script_utils/parse-package-managers-params.bash
if [ "${RUN[pacman]}" = "1" ]
then
# Install arch packages
echo "Installing Arch packages..."
sudo xargs -a $SELECTED_INSTALL_DIR/Arch pacman -S --noconfirm --needed
sudo xargs -a $SELECTED_INSTALL_DIR/pacman pacman -S --noconfirm --needed
echo "Installing packages from AUR using aurfetch..."
while read p; do
@ -14,25 +16,31 @@ then
done <$SELECTED_INSTALL_DIR/AUR
fi
if type apt > /dev/null 2>&1
if [ "${RUN[apt]}" = "1" ]
then
echo "Installing apt packages..."
sudo xargs -a $SELECTED_INSTALL_DIR/apt apt install
fi
if type brew > /dev/null 2>&1
if [ "${RUN[dnf]}" = "1" ]
then
echo "Installing dnf packages..."
sudo xargs -a $SELECTED_INSTALL_DIR/dnf dnf install
fi
if [ "${RUN[brew]}" = "1" ]
then
echo "Installing brew packages..."
brew bundle --file $SELECTED_INSTALL_DIR/Brewfile
fi
if type flatpak > /dev/null 2>&1
if [ "${RUN[flatpak]}" = "1" ]
then
echo "Installing flatpak packages..."
xargs -a $SELECTED_INSTALL_DIR/flatpak flatpak install
fi
if type gem > /dev/null 2>&1
if [ "${RUN[gem]}" = "1" ]
then
echo "Installing gems..."
while read gem; do
@ -40,13 +48,13 @@ then
done <$( cat $SELECTED_INSTALL_DIR/gem | awk '{print $1}')
fi
if type pip2 > /dev/null 2>&1
if [ "${RUN[pip2]}" = "1" ]
then
echo "Installing python2 packages..."
pip2 install -r $SELECTED_INSTALL_DIR/pip2
fi
if type pip3 > /dev/null 2>&1
if [ "${RUN[pip3]}" = "1" ]
then
echo "Installing python3 packages..."
pip3 install -r $SELECTED_INSTALL_DIR/pip3

View File

@ -5,4 +5,6 @@ if [ "$PACKAGE_MANAGER" = "pacman" ]; then
echo "sudo pacman -S"
elif [ "$PACKAGE_MANAGER" = "apt" ]; then
echo "sudo apt install"
elif [ "$PACKAGE_MANAGER" = "dnf" ]; then
echo "sudo dnf install"
fi

View File

@ -9,5 +9,9 @@ if type pacman > /dev/null 2>&1
then
PACKAGE_MANAGER="pacman"
fi
if type dnf > /dev/null 2>&1
then
PACKAGE_MANAGER="dnf"
fi
echo $PACKAGE_MANAGER

View File

@ -18,7 +18,7 @@ CURDIR=$PWD
if type pacman > /dev/null 2>&1
then
pacman -Qqe | grep -vx "$(pacman -Qqm)" > $PACKAGES_DIRECTORY/Arch
pacman -Qqe | grep -vx "$(pacman -Qqm)" > $PACKAGES_DIRECTORY/pacman
pacman -Qqm > $PACKAGES_DIRECTORY/AUR
fi
@ -27,6 +27,11 @@ then
sudo dpkg-query -f '${binary:Package}\n' -W > $PACKAGES_DIRECTORY/apt
fi
if type dnf > /dev/null 2>&1
then
dnf repoquery --userinstalled > $PACKAGES_DIRECTORY/dnf
fi
if type flatpak > /dev/null 2>&1
then
flatpak list | cut -f2 > $PACKAGES_DIRECTORY/flatpak

View File

@ -3,53 +3,8 @@
set -e
UNAME=$(sh -c 'uname 2>/dev/null || echo Unknown')
declare -A SKIP=()
POSITIONAL=()
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
-s|--skip)
shift # past argument
SKIP["$1"]=1
shift # past value
;;
*) # unknown option
POSITIONAL+=("$1") # save it in an array for later
shift # past argument
;;
esac
done
declare -A RUN=()
for command in "pacman" "apt" "dnf" "flatpak" "gem" "nvim" "asdf" "brew" "pacman";
do
echo $command
if type $command > /dev/null 2>&1
then
if [ "${SKIP[$command]}" = "1" ]; then
RUN[$command]=0
else
RUN[$command]=1
fi
else
RUN[$command]=0
fi
done
# Special case for vim
if type -f vim > /dev/null 2>&1
then
if [ "${SKIP[vim]}" = "1" ]; then
RUN[vim]=0
else
RUN[vim]=1
fi
else
RUN[vim]=0
fi
. ~/.local/opt/script_utils/parse-package-managers-params.bash
if [ "${RUN[pacman]}" = "1" ]
then

View File

@ -56,3 +56,5 @@
!/wlogout/
!/sh-utils/**
!/sh-utils/
!/aerc/**
!/aerc/

View File

@ -0,0 +1 @@
accounts.conf

View File

@ -0,0 +1,311 @@
#
# aerc main configuration
[general]
#
# If set to "gpg", aerc will use system gpg binary and keystore for all crypto
# operations. Otherwise, the internal openpgp implemenation will be used.
#
# Default: internal
pgp-provider=internal
# 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
[ui]
#
# Describes the format for each row in a mailbox view. This field is compatible
# with mutt's printf-like syntax.
#
# Default: %D %-17.17n %Z %s
index-format=%-20.20D %-17.17n %Z %s
#
# 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=2006-01-02 03:04 PM
#
# Index-only time format for messages that were received/sent today.
# If this is not specified, timestamp-format is used instead.
#
# Default: "03:04 PM" (12 hour time)
this-day-time-format=03:04 PM
#
# 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.
#
# Default: "Monday 03:04 PM" (Week day + 12 hour time)
this-week-time-format=Monday 03:04 PM
#
# Index-only time format for messages that were received/sent this year.
# If this is not specified, timestamp-format is used instead.
#
# Default: "January 02" (Month + month day)
this-year-time-format=January 02
#
# Width of the sidebar, including the border.
#
# Default: 20
sidebar-width=20
#
# 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=false
#
# 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
# 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"
#
# Default: ""
sort=
# Moves to next message when the current message is deleted
#
# Default: true
next-message-on-delete=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
#
# default: ""
stylesets-dirs=
# Uncomment to use box-drawing characters for vertical and horizontal borders.
#
# Default: spaces
# 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.
#fuzzy-complete=false
#[ui:account=foo]
#
# Enable threading in the ui. Only works with notmuch:// and imap:// accounts
# (when the server supports it). If this is not supported by the server,
# you can enable it on the fly by issuing the :toggle-threads command. The
# threading will be done client side instead of on the server.
#
# Default: false
#threading-enabled=false
[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=
[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
# How long to wait after the last input before auto-completion is triggered.
#
# Default: 250ms
completion-delay=250ms
#
# Global switch for completion popovers
#
# Default: true
completion-popovers=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.
address-book-cmd=
#
# Allow to address yourself when replying
#
# Default: true
reply-to-self=true
[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 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=colordiff
text/plain=sed 's/^>\+.*/\x1b[36m&\x1b[0m/'
#text/html=pandoc -f html -t plain
#image/*=catimg -w $(tput cols) -
[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=exec notify-send "New email from %n" "%s"
[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
#
# default: ""
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

View File

@ -0,0 +1,116 @@
# 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>
[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?' 'delete-message'<Enter>
D = :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>
[view]
/ = :toggle-key-passthrough<Enter>/
q = :close<Enter>
O = :open<Enter>
S = :save<space>
| = :pipe<space>
D = :delete<Enter>
A = :archive flat<Enter>
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
$ex = <C-x>
<C-k> = :prev-field<Enter>
<C-j> = :next-field<Enter>
<tab> = :next-field<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>
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>

View File

@ -0,0 +1,52 @@
#!/bin/bash
declare -A SKIP=()
POSITIONAL=()
while [[ $# -gt 0 ]]; do
key="$1"
case $key in
-s|--skip)
shift # past argument
SKIP["$1"]=1
shift # past value
;;
*) # unknown option
POSITIONAL+=("$1") # save it in an array for later
shift # past argument
;;
esac
done
declare -A RUN=()
for command in "pacman" "apt" "dnf" "flatpak" "gem" "nvim" "asdf" "brew" "pacman" "pip" "pip2" "pip3";
do
if type $command > /dev/null 2>&1
then
if [ "${SKIP[$command]}" = "1" ]; then
RUN[$command]=0
else
RUN[$command]=1
fi
else
RUN[$command]=0
fi
done
# Special case for vim
if type -f vim > /dev/null 2>&1
then
if [ "${SKIP[vim]}" = "1" ]; then
RUN[vim]=0
else
RUN[vim]=1
fi
else
RUN[vim]=0
fi
export SKIP=$SKIP
export RUN=$RUN
export POSITIONAL=$POSITIONAL