Some temporary changes

- river: update new mapping option -layout and -hide-cursor river option
- aerc: use abook command from aerc's wiki
  (https://man.sr.ht/~rjarry/aerc/integrations/index.md)
- packages: add zdict
- palette: add catppuccin (haven't tested)
- nvim: adjust highlights for markdown-preview.nvim (to support all
  3 palettes)
- scripts/launch_xdg_portal: xdg-desktop-portal-kde is now in the same
  directory as the other on Alpine
- env: add DOTNET_SKIP_FIRST_TIME_EXPERIENCE, XDG_STATE_HOME and adjust
  NPM_GLOBAL_PREFIX
- cava: update config to version 0.8.2
This commit is contained in:
Hoang Nguyen 2022-04-30 13:13:16 +07:00
parent 9790a6fdca
commit e501f2dac2
No known key found for this signature in database
GPG Key ID: 813CF484F4993419
15 changed files with 114 additions and 76 deletions

View File

@ -1,12 +1,12 @@
# dotfiles v2
This is the continuation of [my old dotfiles](https://git.disroot.org/FollieHiyuki/dotfiles) without all the Xorg stuff I don't use.
This is the continuation of [my old dotfiles](/FollieHiyuki/dotfiles) without all the Xorg stuff I don't use.
## 🧰 Setup
```bash
# Install `community.general` for 'apk' and 'doas' module if you only installed ansible-core
ansible-galaxy collection install community.general
ansible-galaxy collection install -r requirements/collections.yml
# Run the playbook
ansible-playbook -i hosts dotfiles.yml
```
@ -28,20 +28,15 @@ ansible-playbook -v -i hosts dotfiles.yml --tags 'never,all'
## 🖊️ TODO
- [ ] ~~[wayout](https://git.sr.ht/~proycon/wayout)~~
- [x] [fuzzel](https://codeberg.org/dnkl/fuzzel) / [rofi-wayland](https://github.com/lbonn/rofi)
- [ ] GTK/Icons/Cursor theme, Sarasa font bootstraping
- [x] Use Wireplumber lua API for 'volumncontrol' script instead of [pulsemixer](https://github.com/GeorgeFilipkin/pulsemixer)
- [ ] Neovim:
- [ ] vim.api.nvim{_buf}_set_keymap -> vim.keymap.set
- [ ] lua autocmd
- [ ] global statusline
- [ ] lua filetype autocmd
- [ ] OneDark theme
- [x] Bootstrap Vagrant with 'bundler' module
- [ ] Catpuccin theme
- [ ] nvim_set_hl
- [ ] Use [bubblewrap](https://github.com/containers/bubblewrap) / rootless [podman](https://podman.io/) for some applications
- [x] Replace [libsixel](https://github.com/libsixel/libsixel) with [chafa](https://github.com/hpjansson/chafa/)
- [ ] Separated Waybar config files for Sway and River
- [x] Rewrite River's init file in lua
- [ ] [catppuccin](https://github.com/catppuccin/catppuccin) theme
- [ ] [eww](https://github.com/elkowar/eww)
- [ ] [swhkd](https://github.com/waycrate/swhkd) (maybe?)
- [ ] [senpai](https://git.sr.ht/~taiite/senpai)

40
palette/catppuccin.yml Normal file
View File

@ -0,0 +1,40 @@
---
# Colors for theming
foreground: '#d9e0ee'
background: '#1e1d2f'
grey1: '#302d41'
grey2: '#575268'
grey3: '#6e6c7e'
grey_bright: '#988ba2'
white1: '#d9e0ee'
white2: '#d9e0ee'
teal: '#b5e8e0'
cyan: '#89dceb'
blue: '#96cdfb'
red: '#f28fad'
dark_red: '#e8a2af'
pink: '#f5c2e7'
orange: '#f8bd96'
yellow: '#fae3b0'
green: '#abe9b3'
purple: '#ddb6f2'
violet: '#c9cbff'
highlight: '#c3bac6'
# Terminal 16 colors
color0: '#6e6c7e'
color1: '#f28fad'
color2: '#abe9b3'
color3: '#fae3b0'
color4: '#96cdfb'
color5: '#f5c2e7'
color6: '#89dceb'
color7: '#d9e0ee'
color8: '#988ba2'
color9: '#f28fad'
color10: '#abe9b3'
color11: '#fae3b0'
color12: '#96cdfb'
color13: '#f5c2e7'
color14: '#89dceb'
color15: '#d9e0ee'

View File

@ -36,6 +36,3 @@ color12: '#81a1c1'
color13: '#b48ead'
color14: '#8fbcbb'
color15: '#eceff4'
# Additional colors that look nice
violet: '#8c9cff'

View File

@ -20,6 +20,9 @@ green: '#98c379'
purple: '#c678dd'
highlight: '#9ca0a4'
# Not in OneDark palette but look nice
violet: '#8c9cff' # https://github.com/TheCactusBlue/dotfiles/blob/master/dotfiles/config/polybar/config.ini
# Terminal 16 colors
color0: '#3e4452'
color1: '#be5046'
@ -37,6 +40,3 @@ color12: '#61afef'
color13: '#c678dd'
color14: '#56b6c2'
color15: '#bbc2cf'
# Additional colors that look nice
violet: '#8c9cff'

View File

@ -30,6 +30,11 @@
command:
cmd: go install github.com/irevenko/what-anime-cli@latest
- name: Install wiki
tags: wiki
command:
cmd: go install github.com/betapictoris/wiki@latest
- name: Install lux
tags: lux
command:
@ -101,7 +106,7 @@
- '@antora/cli'
- '@antora/site-generator'
environment:
NPM_CONFIG_PREFIX: ~/.local/share/npm-global
NPM_CONFIG_PREFIX: ~/.local/share/npm
tags: [ yarn, npm ]
- name: Install pyenv
@ -128,4 +133,10 @@
vars:
- tt_dir: ~/Code/tt
import_tasks: tasks/tt.yml
- name: Install zdict
tags: zdict
vars:
zdict_venv_dir: ~/.config/zdict
import_tasks: tasks/zdict.yml
tags: custom

17
playbooks/tasks/zdict.yml Normal file
View File

@ -0,0 +1,17 @@
---
- name: Create venv directory
file:
path: '{{ zdict_venv_dir }}'
state: directory
mode: 0755
- name: Install zdict with pip
pip:
name: zdict
virtualenv: '{{ zdict_venv_dir }}'
- name: Symlink zdict executable
file:
src: '{{ zdict_venv_dir }}/bin/zdict'
dest: ~/.local/bin/zdict
state: link

View File

@ -0,0 +1,3 @@
---
collections:
- name: community.general

View File

@ -202,7 +202,7 @@ header-layout=To|From,Subject
# 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=abook-aerc %s
address-book-cmd=sh -c 'abook --mutt-query "%s" | tail -n +2'
#
# Allow to address yourself when replying
@ -224,7 +224,7 @@ reply-to-self=true
#subject,~^\[PATCH=colordiff
text/plain=sed 's/^>\+.*/\x1b[36m&\x1b[0m/'
text/html=pandoc -f html -t plain
image/*=chafa --animate off -
image/*=chafa --animate off --format symbols -
[triggers]
#

View File

@ -3,17 +3,12 @@
[general]
# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0
; mode = normal
# Accepts only non-negative values.
; framerate = 60
# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off
# new as of 0.6.0 autosens of low values (dynamic range)
# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0
; autosens = 1
; overshoot = 20
# Manual sensitivity in %. If autosens is enabled, this will only be the initial value.
# 200 means double height. Accepts only non-negative values.
@ -162,21 +157,14 @@ gradient_color_8 = '{{ dark_red }}'
[smoothing]
# Percentage value for integral smoothing. Takes values from 0 - 100.
# Higher values means smoother, but less precise. 0 to disable.
; integral = 77
# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable.
; monstercat = 0
; waves = 0
# Set gravity percentage for "drop off". Higher values means bars will drop faster.
# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off".
; gravity = 100
# In bar height, bars that would have been lower that this will not be drawn.
; ignore = 0
# Noise reduction, float 0 - 1. default 0.77
# the raw visualization is very noisy, this factor adjusts the integral and gravity filters to keep the signal smooth
# 1 will be very slow and smooth, 0 will be fast but noisy.
; noise_reduction = 0.77
[eq]

View File

@ -16,7 +16,7 @@
--color-markdown-code-bg: {{ grey1 }};
--foreground-color: {{ foreground }};
--background-color: {{ background }};;
--background-color: {{ background }};
--border-color: {{ grey_bright }};
}
@ -51,13 +51,13 @@
.hljs-string,
.hljs-doctag {
color: {{ purple }};
color: {{ red }};
}
.hljs-title,
.hljs-section,
.hljs-selector-id {
color: {{ orange }};
color: {{ red }};
font-weight: bold;
}
@ -74,7 +74,7 @@
.hljs-tag,
.hljs-name,
.hljs-attribute {
color: {{ dark_blue }};
color: {{ orange }};
font-weight: normal;
}
@ -85,7 +85,7 @@
.hljs-symbol,
.hljs-bullet {
color: {{ red }};
color: {{ purple }};
}
.hljs-built_in,

View File

@ -77,6 +77,7 @@ local river_options = {
-- Other options
['set-repeat'] = { 50, 300 },
['focus-follows-cursor'] = 'normal',
['hide-cursor'] = { 'when-typing', 'enabled' },
['set-cursor-warp'] = 'on-output-change',
['attach-mode'] = 'bottom',
['default-layout'] = 'rivertile',
@ -128,7 +129,7 @@ local modes = {
-- mod: string|list (modifiers, concanated by '+')
-- key: string
-- command: string|list (the command passed to riverctl)
-- opt: string ('release' or 'repeat')
-- opts: tables ('release', 'repeat' or 'layout')
local mappings = {
-- Key bindings
map = {
@ -457,13 +458,13 @@ local mappings = {
mod = 'None',
key = 'XF86AudioRaiseVolume',
command = { 'spawn', string.format([['%s/volumecontrol --increase']], wl_script_dir) },
opt = 'repeat',
opts = { repeat = true },
},
{
mod = 'None',
key = 'XF86AudioLowerVolume',
command = { 'spawn', string.format([['%s/volumecontrol --decrease']], wl_script_dir) },
opt = 'repeat',
opts = { repeat = true },
},
{
mod = 'None',
@ -501,13 +502,13 @@ local mappings = {
mod = 'None',
key = 'XF86MonBrightnessUp',
command = { 'spawn', string.format([['%s/brightness up']], wl_script_dir) },
opt = 'repeat',
opts = { repeat = true },
},
{
mod = 'None',
key = 'XF86MonBrightnessDown',
command = { 'spawn', string.format([['%s/brightness down']], wl_script_dir) },
opt = 'repeat',
opts = { repeat = true },
},
},
},
@ -623,12 +624,16 @@ for map_type, tbl in pairs(mappings) do
local cmd = concat(binding.command, ' ')
local key = binding.key
-- Options -release and -repeat for 'map' and 'unmap' commands
local opt = binding.opt
if opt ~= 'release' and opt ~= 'repeat' then
opt = ''
else
opt = '-' .. opt
-- Options -release, -repeat or -layout for 'map' and 'unmap' commands
-- -release and -repeat should not be used together
local opt = ''
if binding.opts.release then
opt = '-release'
elseif binding.opts.repeat then
opt = '-repeat'
end
if type(binding.opts.layout) == 'number' then
opt = opt .. ' -layout ' .. binding.opts.layout
end
os.execute(string.format('riverctl %s %s %s %s %s %s', map_type, opt, mode, modifiers, key, cmd))

View File

@ -1,18 +0,0 @@
#!/bin/sh
: "${ADDRESS_BOOK=$HOME/.abook/addressbook}"
# $* concanates arguments with the 1st character of $IFS
#
# NOTE: in aerc's compose tab
# Tab is used to move to the next header field / completion item
# Enter does nothing other than selecting the completion item
#
# hence forcing $IFS to be a Space here
oldIFS="$IFS"
IFS=" "
abook --convert --infile "${ADDRESS_BOOK}" --outformat muttq | tail -n +2 | fzf --filter="$*"
# Reset $IFS back to the default
IFS="$oldIFS"

View File

@ -6,9 +6,7 @@ if [ $# -lt 1 ]; then
exit
fi
# xdg-desktop-portal-kde is located in /usr/lib/libexec
portal_binary="/usr/libexec/xdg-desktop-portal-${1}"
[ ! -f "${portal_binary}" ] && portal_binary="/usr/lib/libexec/xdg-desktop-portal-${1}"
[ ! -f "${portal_binary}" ] && echo "${portal_binary} file is invalid." && exit 1
if [ -n "$(pgrep -x "${portal_binary}")" ]; then

View File

@ -10,6 +10,7 @@ set -gx XDG_BIN_HOME $HOME/.local/bin
set -gx XDG_CONFIG_HOME $HOME/.config
set -gx XDG_CACHE_HOME $HOME/.cache
set -gx XDG_DATA_HOME $HOME/.local/share
set -gx XDG_STATE_HOME $HOME/.local/state
# Respect defined XDG specs
set -gx XCURSOR_PATH $HOME/.local/share/icons
@ -22,7 +23,7 @@ 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 NPM_CONFIG_USERCONFIG $XDG_CONFIG_HOME/npm/npmrc
set -gx NPM_CONFIG_PREFIX $XDG_DATA_HOME/npm-global
set -gx NPM_CONFIG_PREFIX $XDG_DATA_HOME/npm
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
@ -58,14 +59,15 @@ set -gx OPENSSL_NO_VENDOR 1
set -gx GOPROXY direct
# Microsoft is cancer
set -gx DOTNET_CLI_TELEMETRY_OPTOUT 1
set -gx DOTNET_CLI_TELEMETRY_OPTOUT true
set -gx DOTNET_SKIP_FIRST_TIME_EXPERIENCE true
# we build Vagrant ourselves
set -gx VAGRANT_I_KNOW_WHAT_IM_DOING_PLEASE_BE_QUIET true
# puppeteer (for mermaid-cli)
set -gx PUPPETEER_EXECUTABLE_PATH '/usr/bin/chromium-browser'
set -gx PUPPETEER_SKIP_CHROMIUM_DOWNLOAD 'true'
set -gx PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
# qt5ct
set -gx QT_QPA_PLATFORMTHEME qt5ct

View File

@ -1,8 +1,8 @@
---
- name: Check theme name
fail:
msg: Variable 'theme' needs to be 'nord' or 'onedark'
when: not theme in [ 'nord', 'onedark' ]
msg: Variable 'theme' needs to be 'nord', 'onedark' or 'catppuccin'
when: not theme in [ 'nord', 'onedark', 'catppuccin' ]
- name: Check clipboard manager name
fail: