diff --git a/apps/docker.sh b/apps/docker.sh index 7c9a7a0..37fd3cb 100755 --- a/apps/docker.sh +++ b/apps/docker.sh @@ -12,7 +12,7 @@ case "$PM" in sudo pip3 install docker-compose ;; pacman) - sudo pacman -S docker docker-compose + sudo pacman -S --needed docker docker-compose ;; esac diff --git a/apps/install.sh b/apps/install.sh index 34611d7..89353e6 100755 --- a/apps/install.sh +++ b/apps/install.sh @@ -15,7 +15,7 @@ case "$PM" in gimp ;; pacman) - sudo pacman -S \ + sudo pacman -S --needed \ chromium \ zathura zathura-pdf-mupdf sxiv\ flameshot \ diff --git a/apps/keepassxc.sh b/apps/keepassxc.sh index 984a00c..c87d35d 100755 --- a/apps/keepassxc.sh +++ b/apps/keepassxc.sh @@ -12,7 +12,7 @@ case "$PM" in sudo apt install -y keepassxc ;; pacman) - sudo pacman -S keepassxc + sudo pacman -S --needed keepassxc ;; esac diff --git a/apps/nextcloud.sh b/apps/nextcloud.sh index 24f9661..49cde37 100755 --- a/apps/nextcloud.sh +++ b/apps/nextcloud.sh @@ -12,6 +12,6 @@ case "$PM" in sudo apt install -y nextcloud-client ;; pacman) - sudo pacman -S nextcloud-client + sudo pacman -S --needed nextcloud-client ;; esac diff --git a/dunst/install.sh b/dunst/install.sh index 88fa04e..04689aa 100755 --- a/dunst/install.sh +++ b/dunst/install.sh @@ -9,7 +9,7 @@ case "$PM" in sudo apt install -y dunst ;; pacman) - sudo pacman -S dunst + sudo pacman -S --needed dunst ;; esac diff --git a/env.sh b/env.sh index 64e54d2..13f0581 100755 --- a/env.sh +++ b/env.sh @@ -32,7 +32,10 @@ lnsf () { [ "$#" -ne 2 ] && echo "lnsf " [ ! -L "$2" ] && rm -rf $2 SYM_DIR=$(dirname $2) - [ -n "$SYM_DIR" ] && mkdir -p $SYM_DIR + if [ -n "$SYM_DIR" ]; then + [ ! -d "$SYM_DIR" ] && rm -rf "$SYM_DIR" + mkdir -p "$SYM_DIR" + fi ln -sf $1 $2 } @@ -57,7 +60,7 @@ case "$PM" in man sudo ;; pacman) - sudo pacman -S \ + sudo pacman -S --needed --needed \ base-devel \ unzip p7zip \ openssh \ diff --git a/fish/config/config.fish b/fish/config/config.fish index 6aad360..8a756fb 100644 --- a/fish/config/config.fish +++ b/fish/config/config.fish @@ -16,12 +16,6 @@ function source-file-if-exists end end -if not functions -q fisher - set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config - curl https://git.io/fisher --create-dirs -sLo $XDG_CONFIG_HOME/fish/functions/fisher.fish - fish -c fisher -end - source-file-if-exists /usr/share/autojump/autojump.fish source-file-if-exists /usr/local/share/autojump/autojump.fish append-path-if-exists ~/.local/bin diff --git a/fish/config/functions/fisher.fish b/fish/config/functions/fisher.fish new file mode 100644 index 0000000..71f20a8 --- /dev/null +++ b/fish/config/functions/fisher.fish @@ -0,0 +1,436 @@ +set -g fisher_version 3.3.2 + +function fisher -a cmd -d "fish plugin manager" + set -q XDG_CACHE_HOME; or set XDG_CACHE_HOME ~/.cache + set -q XDG_CONFIG_HOME; or set XDG_CONFIG_HOME ~/.config + set -q XDG_DATA_HOME; or set XDG_DATA_HOME ~/.local/share + + set -g fish_config $XDG_CONFIG_HOME/fish + set -g fisher_cache $XDG_CACHE_HOME/fisher + set -g fisher_data $XDG_DATA_HOME/fisher + + set -q fisher_path; or set -g fisher_path $fish_config + set -g fishfile $fish_config/fishfile + + for path in {$fish_config,$fisher_path}/{functions,completions,conf.d} $fisher_cache + if test ! -d $path + command mkdir -p $path + end + end + + if test ! -e $fisher_path/completions/fisher.fish + echo "fisher complete" >$fisher_path/completions/fisher.fish + _fisher_complete + end + + if test -e $fisher_path/conf.d/fisher.fish + switch "$version" + case \*-\* + command rm -f $fisher_path/conf.d/fisher.fish + case 2\* + case \* + command rm -f $fisher_path/conf.d/fisher.fish + end + else + switch "$version" + case \*-\* + case 2\* + echo "fisher copy-user-key-bindings" >$fisher_path/conf.d/fisher.fish + end + end + + # 2019-10-22: temp code, migrates fishfile from old path back to $fish_config + if test -e "$fisher_path/fishfile"; and test ! -e "$fishfile" + command mv -f "$fisher_path/fishfile" "$fishfile" + end + + # 2020-06-23: temp code, migrates fisher data from XDG_CONFIG_HOME to XDG_DATA_HOME + set -l fisher_config $XDG_CONFIG_HOME/fisher + if test -d $fisher_config + echo "migrating local data from $fisher_config to $fisher_data" + command rm -rf $fisher_data + command mv -f $fisher_config $fisher_data + end + + switch "$cmd" + case {,self-}complete + _fisher_complete + case copy-user-key-bindings + _fisher_copy_user_key_bindings + case ls + set -e argv[1] + if test -s "$fishfile" + set -l file (_fisher_fmt <$fishfile | _fisher_parse -R | command sed "s|@.*||") + _fisher_ls | _fisher_fmt | command awk -v FILE="$file" " + BEGIN { for (n = split(FILE, f); ++i <= n;) file[f[i]] } \$0 in file && /$argv[1]/ + " | command sed "s|^$HOME|~|" + end + case self-update + _fisher_self_update (status -f) + case self-uninstall + _fisher_self_uninstall + case {,-}-v{ersion,} + echo "fisher version $fisher_version" (status -f | command sed "s|^$HOME|~|") + case {,-}-h{elp,} + _fisher_help + case "" + _fisher_commit -- + case add rm + if not isatty + while read -l arg + set argv $argv $arg + end + end + + if test (count $argv) = 1 + echo "fisher: invalid number of arguments" >&2 + _fisher_help >&2 + return 1 + end + + _fisher_commit $argv + case \* + echo "fisher: unknown flag or command \"$cmd\"" >&2 + _fisher_help >&2 + return 1 + end +end + +function _fisher_complete + complete -ec fisher + complete -xc fisher -n __fish_use_subcommand -a add -d "Add plugins" + complete -xc fisher -n __fish_use_subcommand -a rm -d "Remove plugins" + complete -xc fisher -n __fish_use_subcommand -a ls -d "List installed plugins matching REGEX" + complete -xc fisher -n __fish_use_subcommand -a --help -d "Show usage help" + complete -xc fisher -n __fish_use_subcommand -a --version -d "$fisher_version" + complete -xc fisher -n __fish_use_subcommand -a self-update -d "Update to the latest version" + for pkg in (fisher ls) + complete -xc fisher -n "__fish_seen_subcommand_from rm" -a $pkg + end +end + +function _fisher_copy_user_key_bindings + if functions -q fish_user_key_bindings + functions -c fish_user_key_bindings fish_user_key_bindings_copy + end + function fish_user_key_bindings + for file in $fisher_path/conf.d/*_key_bindings.fish + source $file >/dev/null 2>/dev/null + end + if functions -q fish_user_key_bindings_copy + fish_user_key_bindings_copy + end + end +end + +function _fisher_ls + for pkg in $fisher_data/*/*/* + command readlink $pkg; or echo $pkg + end +end + +function _fisher_fmt + command sed "s|^[[:space:]]*||;s|^$fisher_data/||;s|^~|$HOME|;s|^\.\/*|$PWD/|;s|^https*:/*||;s|^github\.com/||;s|/*\$||" +end + +function _fisher_help + echo "usage: fisher add Add plugin/s" + echo " fisher rm Remove plugin/s" + echo " fisher Update all plugins" + echo " fisher ls [] List installed plugins matching " + echo " fisher --help Show this help" + echo " fisher --version Show the current version" + echo " fisher self-update Update to the latest version" + echo " fisher self-uninstall Uninstall from your system" + echo "examples:" + echo " fisher add jorgebucaran/z rafaelrinaldi/pure" + echo " fisher add gitlab.com/foo/bar@v2" + echo " fisher add ~/path/to/local/pkg" + echo " fisher add &2 + command curl -s "$url?nocache" >$file. + + set -l next_version (command awk '$4 ~ /^[0-9]+\.[0-9]+\.[0-9]+$/ { print v=$4 } { exit !v }' <$file.) + switch "$next_version" + case "" $fisher_version + command rm -f $file. + if test -z "$next_version" + echo "fisher: cannot update fisher -- are you offline?" >&2 + return 1 + end + echo "fisher is already up-to-date" >&2 + case \* + echo "linking $file" | command sed "s|$HOME|~|" >&2 + command mv -f $file. $file + source $file + echo "updated to fisher $fisher_version -- hooray!" >&2 + _fisher_complete + end +end + +function _fisher_self_uninstall + for pkg in (_fisher_ls) + _fisher_rm $pkg + end + + for file in $fisher_cache $fisher_data $fisher_path/{functions,completions,conf.d}/fisher.fish $fishfile + echo "removing $file" + command rm -Rf $file 2>/dev/null + end | command sed "s|$HOME|~|" >&2 + + for name in (set -n | command awk '/^fisher_/') + set -e "$name" + end + + functions -e (functions -a | command awk '/^_fisher/') fisher + complete -c fisher --erase +end + +function _fisher_commit -a cmd + set -e argv[1] + set -l elapsed (_fisher_now) + + if test ! -e "$fishfile" + command touch $fishfile + echo "created new fishfile in $fishfile" | command sed "s|$HOME|~|" >&2 + end + + set -l old_pkgs (_fisher_ls | _fisher_fmt) + for pkg in (_fisher_ls) + _fisher_rm $pkg + end + command rm -Rf $fisher_data + command mkdir -p $fisher_data + + set -l next_pkgs (_fisher_fmt <$fishfile | _fisher_parse -R $cmd (printf "%s\n" $argv | _fisher_fmt)) + set -l actual_pkgs (_fisher_fetch $next_pkgs) + set -l updated_pkgs + for pkg in $old_pkgs + if contains -- $pkg $actual_pkgs + set updated_pkgs $updated_pkgs $pkg + end + end + + if test -z "$actual_pkgs$updated_pkgs$old_pkgs$next_pkgs" + echo "fisher: nothing to commit -- try adding some plugins" >&2 + return 1 + end + + set -l out_pkgs + if test "$cmd" = "rm" + set out_pkgs $next_pkgs + else + for pkg in $next_pkgs + if contains -- (echo $pkg | command sed "s|@.*||") $actual_pkgs + set out_pkgs $out_pkgs $pkg + end + end + end + + printf "%s\n" (_fisher_fmt <$fishfile | _fisher_parse -W $cmd $out_pkgs | command sed "s|^$HOME|~|") >$fishfile + + _fisher_complete + + command awk -v A=(count $actual_pkgs) -v U=(count $updated_pkgs) -v O=(count $old_pkgs) -v E=(_fisher_now $elapsed) ' + BEGIN { + res = fmt("removed", O - U, fmt("updated", U, fmt("added", A - U))) + printf((res ? res : "done") " in %.2fs\n", E / 1000) + } + function fmt(action, n, s) { + return n ? (s ? s ", " : s) action " " n " plugin" (n > 1 ? "s" : "") : s + } + ' >&2 +end + +function _fisher_parse -a mode cmd + set -e argv[1..2] + command awk -v FS="[[:space:]]*#+" -v MODE="$mode" -v CMD="$cmd" -v ARGSTR="$argv" ' + BEGIN { + for (n = split(ARGSTR, a, " "); i++ < n;) pkgs[getkey(a[i])] = a[i] + } + !NF { next } { k = getkey($1) } + MODE == "-R" && !(k in pkgs) && ($0 = $1) + MODE == "-W" && (/^#/ || k in pkgs || CMD != "rm") { print pkgs[k] (sub($1, "") ? $0 : "") } + MODE == "-W" || CMD == "rm" { delete pkgs[k] } + END { + for (k in pkgs) { + if (CMD != "rm" || MODE == "-W") print pkgs[k] + else print "fisher: cannot remove \""k"\" -- plugin is not in fishfile" > "/dev/stderr" + } + } + function getkey(s, a) { + return (split(s, a, /@+|:/) > 2) ? a[2]"/"a[1]"/"a[3] : a[1] + } + ' +end + +function _fisher_fetch + set -l pkg_jobs + set -l out_pkgs + set -l next_pkgs + set -l local_pkgs + set -q fisher_user_api_token; and set -l curl_opts -u $fisher_user_api_token + + for pkg in $argv + switch $pkg + case \~\* /\* + set -l path (echo "$pkg" | command sed "s|^~|$HOME|") + if test -e "$path" + set local_pkgs $local_pkgs $path + else + echo "fisher: cannot add \"$pkg\" -- is this a valid file?" >&2 + end + continue + end + + command awk -v PKG="$pkg" -v FS=/ ' + BEGIN { + split(PKG, tmp, /@/) + pkg = split(PKG, _, "/") <= 2 ? "github.com/"tmp[1] : tmp[1] + tag = tmp[2] ? tmp[2] : "HEAD" + print pkg "\t" (\ + pkg ~ /^github/ ? "https://codeload."pkg"/tar.gz/"tag : \ + pkg ~ /^gitlab/ ? "https://"pkg"/-/archive/"tag"/"tmp[split(pkg, tmp, "/")]"-"tag".tar.gz" : \ + pkg ~ /^bitbucket/ ? "https://"pkg"/get/"tag".tar.gz" : pkg\ + ) + } + ' | read -l pkg url + + if test ! -d "$fisher_data/$pkg" + fish -c " + echo fetching $url >&2 + command mkdir -p $fisher_data/$pkg $fisher_cache/(command dirname $pkg) + if command curl $curl_opts -Ss -w \"\" $url 2>&1 | command tar -xzf- -C $fisher_data/$pkg 2>/dev/null + command rm -Rf $fisher_cache/$pkg + command mv -f $fisher_data/$pkg/* $fisher_cache/$pkg + command rm -Rf $fisher_data/$pkg + command cp -Rf {$fisher_cache,$fisher_data}/$pkg + else if test -d \"$fisher_cache/$pkg\" + echo fisher: cannot connect to server -- looking in \"$fisher_cache/$pkg\" | command sed 's|$HOME|~|' >&2 + command cp -Rf $fisher_cache/$pkg $fisher_data/$pkg/.. + else + command rm -Rf $fisher_data/$pkg + echo fisher: cannot add \"$pkg\" -- is this a valid plugin\? >&2 + end + " >/dev/null & + set pkg_jobs $pkg_jobs (_fisher_jobs --last) + set next_pkgs $next_pkgs "$fisher_data/$pkg" + end + end + + if set -q pkg_jobs[1] + while for job in $pkg_jobs + contains -- $job (_fisher_jobs); and break + end + end + for pkg in $next_pkgs + if test -d "$pkg" + set out_pkgs $out_pkgs $pkg + _fisher_add $pkg + end + end + end + + set -l local_prefix $fisher_data/local/$USER + if test ! -d "$local_prefix" + command mkdir -p $local_prefix + end + for pkg in $local_pkgs + set -l target $local_prefix/(command basename $pkg) + if test ! -L "$target" + command ln -sf $pkg $target + set out_pkgs $out_pkgs $pkg + _fisher_add $pkg --link + end + end + + if set -q out_pkgs[1] + _fisher_fetch ( + for pkg in $out_pkgs + if test -s "$pkg/fishfile" + _fisher_fmt <$pkg/fishfile | _fisher_parse -R + end + end) + printf "%s\n" $out_pkgs | _fisher_fmt + end +end + +function _fisher_add -a pkg opts + for src in $pkg/{functions,completions,conf.d}/**.* $pkg/*.fish + set -l target (command basename $src) + switch $src + case $pkg/conf.d\* + set target $fisher_path/conf.d/$target + case $pkg/completions\* + set target $fisher_path/completions/$target + case $pkg/{functions,}\* + switch $target + case uninstall.fish + continue + case {init,key_bindings}.fish + set target $fisher_path/conf.d/(command basename $pkg)\_$target + case \* + set target $fisher_path/functions/$target + end + end + echo "linking $target" | command sed "s|$HOME|~|" >&2 + if set -q opts[1] + command ln -sf $src $target + else + command cp -f $src $target + end + switch $target + case \*.fish + source $target >/dev/null 2>/dev/null + end + end +end + +function _fisher_rm -a pkg + for src in $pkg/{conf.d,completions,functions}/**.* $pkg/*.fish + set -l target (command basename $src) + set -l filename (command basename $target .fish) + switch $src + case $pkg/conf.d\* + test "$filename.fish" = "$target"; and emit "$filename"_uninstall + set target conf.d/$target + case $pkg/completions\* + test "$filename.fish" = "$target"; and complete -ec $filename + set target completions/$target + case $pkg/{,functions}\* + test "$filename.fish" = "$target"; and functions -e $filename + switch $target + case uninstall.fish + source $src + continue + case {init,key_bindings}.fish + set target conf.d/(command basename $pkg)\_$target + case \* + set target functions/$target + end + end + command rm -f $fisher_path/$target + end + if not functions -q fish_prompt + source "$__fish_datadir$__fish_data_dir/functions/fish_prompt.fish" + end +end + +function _fisher_jobs + jobs $argv | command awk '/^[0-9]+\t/ { print $1 }' +end + +function _fisher_now -a elapsed + switch (command uname) + case Darwin \*BSD + command perl -MTime::HiRes -e 'printf("%.0f\n", (Time::HiRes::time() * 1000) - $ARGV[0])' $elapsed + case \* + math (command date "+%s%3N") - "0$elapsed" + end +end diff --git a/fish/install.sh b/fish/install.sh index 2b3c403..bec9838 100755 --- a/fish/install.sh +++ b/fish/install.sh @@ -14,7 +14,7 @@ case "$PM" in ;; pacman) ! which pip && $ROOT/python/install.sh - sudo pacman -S fish xdotool + sudo pacman -S --needed --needed fish xdotool ;; esac @@ -29,3 +29,6 @@ fi lnsf $DIR/config/config.fish ~/.config/fish/config.fish lnsf $DIR/config/functions/fish_prompt.fish ~/.config/fish/functions/fish_prompt.fish lnsf $DIR/config/functions/fish_right_prompt.fish ~/.config/fish/functions/fish_right_prompt.fish +lnsf $DIR/config/functions/fisher.fish ~/.config/fish/functions/fisher.fish + +source ~/.config/fish/config.fish diff --git a/gui/install.sh b/gui/install.sh index 29cf6b5..3e6d594 100755 --- a/gui/install.sh +++ b/gui/install.sh @@ -27,7 +27,7 @@ case "$PM" in ;; pacman) # fonts - sudo pacman -S \ + sudo pacman -S --needed \ terminus-font \ ttf-droid \ freetype2 \ @@ -36,17 +36,17 @@ case "$PM" in wqy-microhei-lite \ gucharmap # clipboard - sudo pacman -S \ + sudo pacman -S --needed \ xclip xsel # keyring - sudo pacman -S \ + sudo pacman -S --needed \ gnome-keyring libsecret # network manager - sudo pacman -S \ + sudo pacman -S --needed \ networkmanager network-manager-applet # bluetooth if has-bluetooth; then - sudo pacman -S \ + sudo pacman -S --needed \ bluez bluez-utils blueman pulseaudio-bluetooth xorg-xbacklight sudo systemctl enable bluetooth sudo systemctl start bluetooth diff --git a/gui/theme.sh b/gui/theme.sh index 3d3c279..e48b670 100755 --- a/gui/theme.sh +++ b/gui/theme.sh @@ -10,7 +10,7 @@ case "$PM" in lxappearance arc-theme qt5ct qt5-style-plugins ;; pacman) - sudo pacman -S \ + sudo pacman -S --needed \ lxappearance arc-gtk-theme arc-icon-theme qt5ct qt5-styleplugins ;; esac diff --git a/nodejs/install.sh b/nodejs/install.sh index 2f2bf03..e09e64c 100755 --- a/nodejs/install.sh +++ b/nodejs/install.sh @@ -10,7 +10,7 @@ case "$PM" in sudo apt install -y nodejs yarnpkg ;; pacman) - sudo pacman -S nodejs yarn + sudo pacman -S --needed nodejs yarn ;; esac diff --git a/nvim/install.sh b/nvim/install.sh index a2918f4..c8df40c 100755 --- a/nvim/install.sh +++ b/nvim/install.sh @@ -14,7 +14,7 @@ case "$PM" in sudo apt install -y neovim ;; pacman) - sudo pacman -S neovim + sudo pacman -S --needed neovim ;; esac diff --git a/picom/config/launch.sh b/picom/config/launch.sh index 11a704e..a2b5ef7 100755 --- a/picom/config/launch.sh +++ b/picom/config/launch.sh @@ -4,5 +4,4 @@ DIR=$(readlink -f $(dirname $0)) killall -q picom while pgrep -x picom >/dev/null; do sleep 1; done -echo $DIR/picom.conf -picom -b --config $DIR/picom.conf +picom -b --config $DIR/picom.conf --experimental-backends --blur-method dual_kawase --blur-strength 6 diff --git a/picom/config/picom.conf b/picom/config/picom.conf index 83493d4..18c5e78 100644 --- a/picom/config/picom.conf +++ b/picom/config/picom.conf @@ -190,8 +190,8 @@ blur-background-exclude = [ # Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`. # `xrender` is the default one. # -# backend = "glx" -backend = "xrender"; +backend = "glx" +# backend = "xrender"; # Enable/disable VSync. # vsync = false diff --git a/picom/install.sh b/picom/install.sh index 108a573..d2ef322 100755 --- a/picom/install.sh +++ b/picom/install.sh @@ -14,22 +14,20 @@ case "$PM" in sudo pip3 install meson # install dependencies sudo apt install -y ninja-build libxext-dev libxcb1-dev libxcb-damage0-dev libxcb-xfixes0-dev libxcb-shape0-dev libxcb-render-util0-dev libxcb-render0-dev libxcb-randr0-dev libxcb-composite0-dev libxcb-image0-dev libxcb-present-dev libxcb-xinerama0-dev libxcb-glx0-dev libpixman-1-dev libdbus-1-dev libconfig-dev libgl1-mesa-dev libpcre3-dev libevdev-dev uthash-dev libev-dev libx11-xcb-dev - # download picom source - [ ! -f /tmp/picom.tar.gz ] && \ - curl -L https://github.com/yshui/picom/archive/v8.1.tar.gz --output /tmp/picom.tar.gz - # build and install - mkdir -p /tmp/picom - tar zxvf /tmp/picom.tar.gz --strip 1 -C /tmp/picom - pushd /tmp/picom - #git submodule update --init --recursive - meson --buildtype=release . build - sudo ninja -C build install - popd ;; pacman) - sudo pacman -S picom + sudo pacman -S --needed uthash ninja meson ;; esac -# symlink configuration +# build and install picom-next +curl -sLo https://github.com/yshui/picom/archive/next.zip /tmp/picom-next.zip +unzip /tmp/picom-next.zip -d /tmp +pushd /tmp/picom-next +meson --buildtype=release . build +sudo ninja -C build install +popd +rm -rf /tmp/picom* + +# configuration lnsf $DIR/config ~/.config/picom diff --git a/player/install.sh b/player/install.sh index 4e4c3e9..3e7008c 100755 --- a/player/install.sh +++ b/player/install.sh @@ -10,7 +10,7 @@ case "$PM" in sudo apt install -y mpd mpc ncmpcpp mpv ;; pacman) - sudo pacman -S mpd mpc ncmpcpp mpv + sudo pacman -S --needed mpd mpc ncmpcpp mpv ;; esac diff --git a/python/install.sh b/python/install.sh index 40d4efe..c314b38 100755 --- a/python/install.sh +++ b/python/install.sh @@ -19,7 +19,7 @@ case "$PM" in fish-is-default-shell && sudo pip3 install virtualfish ;; pacman) - sudo pacman -S python python-pip + sudo pacman -S --needed python python-pip fish-is-default-shell && sudo pip install virtualfish ;; esac diff --git a/ranger/install.sh b/ranger/install.sh index 3cfcca4..c68e4b3 100755 --- a/ranger/install.sh +++ b/ranger/install.sh @@ -10,7 +10,7 @@ case "$PM" in sudo pip3 install ranger-fm ueberzug ;; pacman) - sudo pacman -S ranger ueberzug + sudo pacman -S --needed ranger ueberzug ;; esac diff --git a/suckless/install.sh b/suckless/install.sh index e8dd7b5..19bdd9a 100755 --- a/suckless/install.sh +++ b/suckless/install.sh @@ -22,7 +22,7 @@ case "$PM" in sudo apt remove gdm3 ;; pacman) - sudo pacman -S \ + sudo pacman -S --needed \ xorg-server xorg-xinit xorg-xrandr xorg-xev xorg-xprop \ alsa-firmware alsa-utils alsa-plugins pulseaudio-alsa pulseaudio pavucontrol \ arandr autorandr \ diff --git a/thunar/install.sh b/thunar/install.sh index 5713916..ee96f84 100755 --- a/thunar/install.sh +++ b/thunar/install.sh @@ -10,7 +10,7 @@ case "$PM" in thunar gvfs-bin gvfs-backends thunar-archive-plugin file-roller tumbler ;; pacman) - sudo pacman -S \ + sudo pacman -S --needed \ thunar gvfs-smb gvfs-mtp thunar-archive-plugin file-roller tumbler ;; esac diff --git a/tmux/install.sh b/tmux/install.sh index deb1174..52ce9b6 100755 --- a/tmux/install.sh +++ b/tmux/install.sh @@ -25,7 +25,7 @@ case "$PM" in rm -rf /tmp/tmux* ;; pacman) - sudo pacman -S tmux bc + sudo pacman -S --needed tmux bc ;; esac