config: add luarocks tasks

Also remove `force: true` for various template/file task (it's the
default) and clean up XDG directory variables.
This commit is contained in:
Hoang Nguyen 2024-02-14 00:00:00 +07:00
parent d9cd2f1b60
commit 7a5185cd57
Signed by: folliehiyuki
GPG Key ID: B0567C20730E9B11
48 changed files with 86 additions and 111 deletions

View File

@ -8,6 +8,10 @@ deprecation_warnings = True
inventory = ./inventory.yml
filter_plugins = ./filter_plugins
roles_path = ./roles
# Make the targets follow XDG specs
# (this playbook is intended to be run against localhost)
# Ref: https://github.com/ayekat/localdir/issues/7#issuecomment-998286490
remote_tmp = $XDG_CACHE_HOME/ansible/tmp
[privilege_escalation]
become_method = doas

View File

@ -9,5 +9,4 @@
template:
src: alacritty/alacritty.j2
dest: '{{ xdg_dir.config_home }}/alacritty/alacritty.toml'
force: true
mode: '644'

View File

@ -9,5 +9,4 @@
template:
src: amfora/config.j2
dest: '{{ xdg_dir.config_home }}/amfora/config.toml'
force: true
mode: '644'

View File

@ -12,7 +12,6 @@
template:
src: animdl/config.j2
dest: '{{ xdg_dir.config_home }}/animdl/config.yml'
force: true
mode: '644'
- name: animdl | Install animdl with pip

View File

@ -3,7 +3,6 @@
copy:
src: bashrc
dest: ~/.bashrc
force: true
mode: '644'
- name: bash | Create history directory

View File

@ -9,5 +9,4 @@
template:
src: bat/config.j2
dest: '{{ xdg_dir.config_home }}/bat/config'
force: true
mode: '644'

View File

@ -9,5 +9,4 @@
template:
src: btop/btop.j2
dest: '{{ xdg_dir.config_home }}/btop/btop.conf'
force: true
mode: '644'

View File

@ -9,7 +9,6 @@
copy:
src: castero/{{ item }}
dest: '{{ xdg_dir.config_home }}/castero/{{ item }}'
force: true
mode: '644'
loop:
- castero.conf

View File

@ -9,5 +9,4 @@
template:
src: cava/config.j2
dest: '{{ xdg_dir.config_home }}/cava/config'
force: true
mode: '644'

View File

@ -9,5 +9,4 @@
copy:
src: element-desktop/config.json
dest: '{{ xdg_dir.config_home }}/Element/config.json'
force: true
mode: '644'

View File

@ -16,7 +16,6 @@
template:
src: emacs/config.j2
dest: '{{ xdg_dir.config_home }}/doom/config.el'
force: true
mode: '644'
- name: emacs | Clone Doom Emacs

View File

@ -9,12 +9,10 @@
copy:
src: fcitx5/config
dest: '{{ xdg_dir.config_home }}/fcitx5/config'
force: true
mode: '644'
- name: fcitx5 | Copy profile
copy:
src: fcitx5/profile
dest: '{{ xdg_dir.config_home }}/fcitx5/profile'
force: true
mode: '644'

View File

@ -29,7 +29,6 @@
template:
src: 'fish/{{ item.src }}.j2'
dest: '{{ xdg_dir.config_home }}/fish/{{ item.dest }}.fish'
force: true
mode: '644'
loop:
- src: aliases
@ -43,7 +42,6 @@
copy:
src: 'fish/{{ item }}'
dest: '{{ xdg_dir.config_home }}/fish/themes/{{ item }}'
force: true
mode: '644'
loop:
- Onedark.theme

View File

@ -9,5 +9,4 @@
template:
src: fontconfig/fonts.j2
dest: '{{ xdg_dir.config_home }}/fontconfig/fonts.conf'
force: true
mode: '644'

View File

@ -9,5 +9,4 @@
template:
src: foot/foot.j2
dest: '{{ xdg_dir.config_home }}/foot/foot.ini'
force: true
mode: '644'

View File

@ -17,5 +17,4 @@
template:
src: gallery-dl/config.j2
dest: '{{ xdg_dir.config_home }}/gallery-dl/config.json'
force: true
mode: '600'

View File

@ -9,7 +9,6 @@
template:
src: git/config.j2
dest: '{{ xdg_dir.config_home }}/git/config'
force: true
mode: '644'
- name: git | Install git-privacy with pip

View File

@ -9,7 +9,6 @@
copy:
src: 'glow/{{ item }}'
dest: '{{ xdg_dir.config_home }}/glow/styles'
force: true
mode: '644'
loop:
- nord.json
@ -19,5 +18,4 @@
template:
src: glow/glow.j2
dest: '{{ xdg_dir.config_home }}/glow/glow.yml'
force: true
mode: '644'

View File

@ -9,7 +9,6 @@
template:
src: 'gnupg/{{ item }}.j2'
dest: '{{ xdg_dir.data_home }}/gnupg/{{ item }}.conf'
force: true
mode: '600'
loop:
- gpg

View File

@ -0,0 +1,12 @@
---
- name: luarocks | Create config directory
file:
path: '{{ xdg_dir.config_home }}/luarocks'
state: directory
mode: '755'
- name: luarocks | Copy config
template:
src: luarocks/config.lua.j2
dest: '{{ xdg_dir.config_home }}/luarocks/config.lua'
mode: '644'

View File

@ -40,6 +40,7 @@ local modules = [
'imv',
'k9s',
'lazygit',
'luarocks',
'lsd',
'mimeapps',
'mpd',
@ -77,7 +78,6 @@ std.manifestYamlDoc([
copy: {
src: 'starship.toml',
dest: '{{ xdg_dir.config_home }}/starship.toml',
force: true,
mode: '644',
},
},

View File

@ -5,7 +5,6 @@
- copy:
dest: "{{ xdg_dir.config_home }}/starship.toml"
force: true
mode: "644"
src: "starship.toml"
name: "starship | Copy shell prompt config"
@ -125,6 +124,9 @@
- import_tasks: "lazygit.yml"
name: "Configure lazygit"
tags: "lazygit"
- import_tasks: "luarocks.yml"
name: "Configure luarocks"
tags: "luarocks"
- import_tasks: "lsd.yml"
name: "Configure lsd"
tags: "lsd"

View File

@ -20,7 +20,6 @@
template:
src: mpd/mpd.j2
dest: '{{ xdg_dir.config_home }}/mpd/mpd.conf'
force: true
mode: '644'
when: music_daemon == 'mpd'
@ -28,7 +27,6 @@
template:
src: mopidy/mopidy.j2
dest: '{{ xdg_dir.config_home }}/mopidy/mopidy.conf'
force: true
mode: '644'
when: music_daemon == 'mopidy'
@ -36,12 +34,10 @@
template:
src: mpDris2/mpDris2.j2
dest: '{{ xdg_dir.config_home }}/mpDris2/mpDris2.conf'
force: true
mode: '644'
- name: mpd | Copy ncmpcpp config
template:
src: ncmpcpp/config.j2
dest: '{{ xdg_dir.config_home }}/ncmpcpp/config'
force: true
mode: '644'

View File

@ -10,7 +10,6 @@
template:
src: mpv/mpv.j2
dest: '{{ xdg_dir.config_home }}/mpv/mpv.conf'
force: true
mode: '644'
# Busybox has 'unzip' so use that
@ -93,7 +92,6 @@
# template:
# src: mpv/autosubsync.j2
# dest: '{{ xdg_dir.config_home }}/mpv/script-opts/autosubsync.conf'
# force: true
# mode: '644'
- name: mpv | Install mpv-gif script
@ -114,6 +112,5 @@
copy:
src: mpv/input.conf
dest: '{{ xdg_dir.config_home }}/mpv/input.conf'
force: true
mode: '644'
tags: mpv-extend

View File

@ -9,12 +9,10 @@
copy:
src: newsboat/urls
dest: '{{ xdg_dir.config_home }}/newsboat/urls'
force: true
mode: '600'
- name: newsboat | Copy config
template:
src: newsboat/config.j2
dest: '{{ xdg_dir.config_home }}/newsboat/config'
force: true
mode: '644'

View File

@ -24,7 +24,6 @@
template:
src: dunst/dunstrc.j2
dest: '{{ xdg_dir.config_home }}/dunst/dunstrc'
force: true
mode: '644'
when: notification == 'dunst'
@ -32,7 +31,6 @@
template:
src: mako/config.j2
dest: '{{ xdg_dir.config_home }}/mako/config'
force: true
mode: '644'
when: notification == 'mako'
@ -40,6 +38,5 @@
template:
src: fnott/fnott.j2
dest: '{{ xdg_dir.config_home }}/fnott/fnott.ini'
force: true
mode: '644'
when: notification == 'fnott'

View File

@ -9,5 +9,4 @@
copy:
src: npm/npmrc
dest: '{{ xdg_dir.config_home }}/npm/npmrc'
force: true
mode: '644'

View File

@ -9,5 +9,4 @@
copy:
src: nushell/config.toml
dest: '{{ xdg_dir.config_home }}/nu/config.toml'
force: true
mode: '644'

View File

@ -9,5 +9,4 @@
copy:
src: ripgrep/config
dest: '{{ xdg_dir.config_home }}/ripgrep/config'
force: true
mode: '644'

View File

@ -9,19 +9,16 @@
template:
src: rofi/config.j2
dest: '{{ xdg_dir.config_home }}/rofi/config.rasi'
force: true
mode: '644'
- name: rofi | Copy file-browser-extended plugin config
copy:
src: rofi/file-browser
dest: '{{ xdg_dir.config_home }}/rofi/file-browser'
force: true
mode: '644'
- name: rofi | Copy theme
template:
src: rofi/theme.j2
dest: '{{ xdg_dir.config_home }}/rofi/themes/{{ theme }}.rasi'
force: true
mode: '644'

View File

@ -9,5 +9,4 @@
copy:
src: streamlink/config
dest: '{{ xdg_dir.config_home }}/streamlink/config'
force: true
mode: '644'

View File

@ -13,7 +13,6 @@
template:
src: '{{ item }}/config.j2'
dest: '{{ xdg_dir.config_home }}/{{ item }}/config'
force: true
mode: '644'
loop:
- swaylock

View File

@ -9,7 +9,6 @@
copy:
src: translate-shell/{{ item }}
dest: '{{ xdg_dir.config_home }}/translate-shell'
force: true
mode: '644'
loop:
- happiness.trans
@ -19,5 +18,4 @@
template:
src: translate-shell/init.j2
dest: '{{ xdg_dir.config_home }}/translate-shell/init.trans'
force: true
mode: '644'

View File

@ -13,7 +13,6 @@
copy:
src: waybar/{{ item }}
dest: '{{ xdg_dir.config_home }}/waybar/modules/'
force: true
mode: '644'
loop:
- media.sh
@ -26,7 +25,6 @@
template:
src: waybar/config_{{ item }}.j2
dest: '{{ xdg_dir.config_home }}/waybar/{{ item }}/config'
force: true
mode: '644'
loop:
- sway
@ -36,7 +34,6 @@
template:
src: waybar/style_{{ item }}.j2
dest: '{{ xdg_dir.config_home }}/waybar/{{ item }}/style.css'
force: true
mode: '644'
loop:
- sway

View File

@ -9,12 +9,10 @@
template:
src: wofi/config.j2
dest: '{{ xdg_dir.config_home }}/wofi/config'
force: true
mode: '644'
- name: wofi | Copy style
template:
src: wofi/style.j2
dest: '{{ xdg_dir.config_home }}/wofi/style.css'
force: true
mode: '644'

View File

@ -9,7 +9,6 @@
template:
src: xdg-desktop-portal-wlr/config.j2
dest: '{{ xdg_dir.config_home }}/xdg-desktop-portal-wlr/config'
force: true
mode: '644'
- name: xdg-desktop-portal | Create portal config directory

View File

@ -9,5 +9,4 @@
copy:
src: xonsh/rc.xsh
dest: '{{ xdg_dir.config_home }}/xonsh/rc.xsh'
force: true
mode: '644'

View File

@ -9,5 +9,4 @@
template:
src: yt-dlp/config.j2
dest: '{{ xdg_dir.config_home }}/yt-dlp/config'
force: true
mode: '644'

View File

@ -9,5 +9,4 @@
template:
src: ytmdl/config.j2
dest: '{{ xdg_dir.config_home }}/ytmdl/config'
force: true
mode: '644'

View File

@ -9,5 +9,4 @@
template:
src: zathura/zathurarc.j2
dest: '{{ xdg_dir.config_home }}/zathura/zathurarc'
force: true
mode: '644'

View File

@ -9,5 +9,4 @@
template:
src: zellij/config.j2
dest: '{{ xdg_dir.config_home }}/zellij/config.kdl'
force: true
mode: '644'

View File

@ -1,7 +1,7 @@
status is-login; and replay "source /etc/profile"
status is-login; and umask {{ umask }}
for path in $XDG_BIN_HOME $GOPATH/bin $CARGO_HOME/bin $CABAL_DIR/bin $PNPM_HOME/bin $KREW_ROOT/bin $HOME/.luarocks/bin
for path in $XDG_BIN_HOME $GOPATH/bin $CARGO_HOME/bin $PNPM_HOME/bin $KREW_ROOT/bin $XDG_DATA_HOME/luarocks/bin
test -d $path && set -ga fish_user_paths $path
end

View File

@ -13,51 +13,52 @@ set -gx XDG_DATA_HOME {{ xdg_dir.data_home }}
set -gx XDG_STATE_HOME {{ xdg_dir.state_home }}
# Respect defined XDG specs
set -gx XCURSOR_PATH $XDG_DATA_HOME/icons
set -gx TERMINFO $XDG_DATA_HOME/terminfo
set -gx TERMINFO_DIRS $XDG_DATA_HOME/terminfo:/usr/share/terminfo
set -gx MIX_XDG true
set -gx GHCUP_USE_XDG_DIRS true
####
set -gx ANSIBLE_LOCAL_TEMP $XDG_CACHE_HOME/ansible
set -gx APPTAINER_CACHEDIR $XDG_CACHE_HOME/apptainer
set -gx LINUXKIT_CACHE $XDG_CACHE_HOME/linuxkit
set -gx MAGEFILE_CACHE $XDG_CACHE_HOME/magefile
set -gx TF_PLUGIN_CACHE_DIR $XDG_CACHE_HOME/terraform/plugin-cache
####
set -gx DOCKER_CONFIG $XDG_CONFIG_HOME/docker
set -gx LUAROCKS_CONFIG $XDG_CONFIG_HOME/luarocks/config.lua
set -gx MOST_INITFILE $XDG_CONFIG_HOME/mostrc
set -gx NPM_CONFIG_USERCONFIG $XDG_CONFIG_HOME/npm/npmrc
set -gx RIPGREP_CONFIG_PATH $XDG_CONFIG_HOME/ripgrep/config
# set -gx WGETRC $XDG_CONFIG_HOME/wgetrc
set -gx _JAVA_OPTIONS -Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java
####
set -gx ANSIBLE_HOME $XDG_DATA_HOME/ansible
set -gx CARGO_HOME $XDG_DATA_HOME/cargo
set -gx CDKTF_HOME $XDG_DATA_HOME/terraform-cdk
set -gx GNUPGHOME $XDG_DATA_HOME/gnupg
set -gx GOPATH $XDG_DATA_HOME/go
set -gx GRADLE_USER_HOME $XDG_DATA_HOME/gradle
set -gx _JAVA_OPTIONS -Djava.util.prefs.userRoot=$XDG_CONFIG_HOME/java
set -gx NODE_REPL_HISTORY $XDG_CACHE_HOME/node_repl_history
set -gx PNPM_HOME $XDG_DATA_HOME/pnpm
set -gx NPM_CONFIG_PREFIX $XDG_DATA_HOME/npm
set -gx NPM_CONFIG_USERCONFIG $XDG_CONFIG_HOME/npm/npmrc
set -gx CARGO_HOME $XDG_DATA_HOME/cargo
set -gx RUSTUP_HOME $XDG_DATA_HOME/rustup
set -gx BUNDLE_USER_CONFIG $XDG_CONFIG_HOME/bundle
set -gx BUNDLE_USER_CACHE $XDG_CACHE_HOME/bundle
set -gx BUNDLE_USER_PLUGIN $XDG_DATA_HOME/bundle
set -gx GEM_HOME $XDG_DATA_HOME/gem
set -gx GEM_SPEC_CACHE $XDG_CACHE_HOME/gem
set -gx DOCKER_CONFIG $XDG_CONFIG_HOME/docker
set -gx GNUPGHOME $XDG_DATA_HOME/gnupg
set -gx IPYTHONDIR $XDG_CONFIG_HOME/ipython
set -gx JUPYTER_CONFIG_DIR $XDG_CONFIG_HOME/jupyter
set -gx WGETRC $XDG_CONFIG_HOME/wgetrc
set -gx RIPGREP_CONFIG_PATH $XDG_CONFIG_HOME/ripgrep/config
set -gx GHCUP_USE_XDG_DIRS true
set -gx STACK_ROOT $XDG_DATA_HOME/stack
set -gx CABAL_CONFIG $XDG_CONFIG_HOME/cabal/config
set -gx CABAL_DIR $XDG_DATA_HOME/cabal
set -gx SQLITE_HISTORY $XDG_DATA_HOME/sqlite/history
set -gx TS_NODE_HISTORY $XDG_DATA_HOME/ts-node/history
set -gx WINEPREFIX $XDG_DATA_HOME/wine
set -gx OPAMROOT $XDG_DATA_HOME/opam
set -gx PYENV_ROOT $XDG_DATA_HOME/pyenv
set -gx KREW_ROOT $XDG_DATA_HOME/krew
set -gx MINIKUBE_HOME $XDG_DATA_HOME
set -gx NPM_CONFIG_PREFIX $XDG_DATA_HOME/npm
set -gx OPAMROOT $XDG_DATA_HOME/opam
set -gx PNPM_HOME $XDG_DATA_HOME/pnpm
set -gx PULUMI_HOME $XDG_DATA_HOME/pulumi
set -gx CDKTF_HOME $XDG_DATA_HOME/terraform-cdk
set -gx TF_PLUGIN_CACHE_DIR $XDG_CACHE_HOME/terraform/plugin-cache
set -gx APPTAINER_CACHEDIR $XDG_CACHE_HOME/apptainer
set -gx MAGEFILE_CACHE $XDG_CACHE_HOME/magefile
set -gx LINUXKIT_CACHE $XDG_CACHE_HOME/linuxkit
set -gx ANSIBLE_HOME $XDG_DATA_HOME/ansible
set -gx MIX_XDG true
set -gx PYENV_ROOT $XDG_DATA_HOME/pyenv
set -gx RUSTUP_HOME $XDG_DATA_HOME/rustup
set -gx STACK_ROOT $XDG_DATA_HOME/stack
set -gx TERMINFO $XDG_DATA_HOME/terminfo
set -gx TERMINFO_DIRS $XDG_DATA_HOME/terminfo:/usr/share/terminfo
set -gx XCURSOR_PATH $XDG_DATA_HOME/icons
####
set -gx NODE_REPL_HISTORY $XDG_STATE_HOME/node/repl_history
set -gx SQLITE_HISTORY $XDG_STATE_HOME/sqlite/history
# set -gx MANPATH :$XDG_DATA_HOME/man
# set necessary Guix paths for user env
set -gx GUIX_PROFILE $HOME/.guix-profile
set -gx GUIX_LOCPATH $GUIX_PROFILE/lib/locale
set -gx GUIX_EXTENSIONS_PATH $GUIX_PROFILE/share/guix/extensions
# common envs
set -gx VISUAL nvim
set -gx EDITOR $VISUAL
@ -65,17 +66,12 @@ set -gx LESS "-R -i -M --incsearch"
set -gx LESSOPEN "|bat %s"
set -gx LESSHISTFILE -
set -gx PAGER less
set -gx MANPAGER "less -R --use-color -Dd+b -Du+g -DS+kc"
# set -gx MANPAGER "nvim +Man!"
# set -gx MANPAGER "less -R --use-color -Dd+b -Du+g -DS+kc"
set -gx MANPAGER "nvim +Man!"
# what fish uses to open fish_config settings
set -gx BROWSER xdg-open
# set necessary Guix paths for user env
set -gx GUIX_PROFILE $HOME/.guix-profile
set -gx GUIX_LOCPATH $GUIX_PROFILE/lib/locale
set -gx GUIX_EXTENSIONS_PATH $GUIX_PROFILE/share/guix/extensions
# Rust: don't build openssl-sys
set -gx OPENSSL_NO_VENDOR 1
# Rust: miles faster to update crates.io index
@ -168,8 +164,7 @@ set -gx FZF_ALT_C_COMMAND "fd --type d --follow --hidden --exclude .git --color
# set -gx FZF_TMUX 1
# zoxide
set -gx _ZO_DATA_DIR $XDG_DATA_HOME/zoxide
set -gx _ZO_ECHO 1
# set -gx _ZO_ECHO 1
set -gx _ZO_FZF_OPTS "$FZF_DEFAULT_OPTS --no-multi"
set -gx _ZO_RESOLVE_SYMLINKS 1

View File

@ -0,0 +1,23 @@
home_tree = "{{ xdg_dir.data_home }}/luarocks"
homeconfdir = "{{ xdg_dir.config_home }}/luarocks"
local_by_default = true
rocks_trees = {
{
name = "user",
root = "{{ xdg_dir.data_home }}/luarocks",
},
{
name = "distro-modules",
root = "/usr",
},
{
lua_dir = "/usr/share/lua/common",
name = "distro-modules-common",
rocks_dir = "/usr/lib/luarocks/rocks-common",
root = "/usr",
},
{
name = "system",
root = "/usr/local",
},
}

View File

@ -15,7 +15,6 @@
copy:
src: 'flatpak/overrides/{{ item }}'
dest: '{{ xdg_dir.data_home }}/flatpak/overrides/{{ item }}'
force: true
mode: '644'
loop: '{{ flatpak_applications }}'
@ -23,7 +22,6 @@
copy:
src: 'flatpak/bin/{{ item }}'
dest: '{{ xdg_dir.bin_home }}/{{ item }}'
force: true
mode: '755'
loop:
- ungoogled-chromium

View File

@ -22,9 +22,6 @@
- name: packages | Install Haskell packages with cabal
tags: [cabal, haskell]
environment:
CABAL_CONFIG: '{{ xdg_dir.config_home }}/cabal/config'
CABAL_DIR: '{{ xdg_dir.data_home }}/cabal'
vars:
cabal_arguments: --overwrite-policy=always --enable-library-stripping --enable-executable-stripping
import_tasks: haskell-packages.yml

View File

@ -25,7 +25,6 @@
template:
src: '{{ item }}.j2'
dest: '~/.local/libexec/wayland/{{ item }}'
force: true
mode: '755'
loop:
- bukumenu
@ -44,7 +43,6 @@
template:
src: '{{ item }}.j2'
dest: ~/.local/libexec/{{ item }}
force: true
mode: '755'
loop:
- preview

View File

@ -176,7 +176,7 @@ if [[ $mimetype == application/x-ipynb+json ]]; then
fi
if [[ $mimetype == text/plain ]] && [[ $filename == *.json?(c|5) ]] || [[ $mimetype == @(application/json*|application/*+json) ]]; then
gojq -C . "$FILE" || jaq --color=always . "$FILE" || bat --style=plain --color=always "$FILE" || python3 -m json.tool -- "$FILE"
jq . "$FILE" | gojq -C . "$FILE" || jaq --color=always . "$FILE" || bat --style=plain --color=always "$FILE" || python3 -m json.tool -- "$FILE"
exit
fi