├── dot_vim └── dein │ ├── empty_dein_lazy.toml │ └── dein.toml ├── dot_config ├── user-dirs.locale ├── helix │ └── config.toml ├── zsh │ ├── async │ │ ├── env.zsh │ │ ├── bindkey.zsh │ │ ├── env-init.zsh │ │ ├── alias.zsh │ │ └── completion.zsh │ ├── dot_zshrc │ ├── sync │ │ └── sync.zsh │ └── dot_zshenv ├── yubikey-touch-detector │ └── service.conf ├── darkman │ └── config.yaml ├── nvim │ ├── lua │ │ ├── haxibami │ │ │ ├── ddu │ │ │ │ ├── init.lua │ │ │ │ ├── deps.ts │ │ │ │ ├── utils.lua │ │ │ │ ├── config.lua │ │ │ │ ├── keymap.lua │ │ │ │ └── config.ts │ │ │ ├── lsp │ │ │ │ ├── init.lua │ │ │ │ ├── servers │ │ │ │ │ ├── denols.lua │ │ │ │ │ ├── lua_ls.lua │ │ │ │ │ └── tsserver.lua │ │ │ │ ├── utils.lua │ │ │ │ ├── keymap.lua │ │ │ │ ├── null-ls.lua │ │ │ │ ├── ui.lua │ │ │ │ ├── setup.lua │ │ │ │ └── config.lua │ │ │ ├── ddc │ │ │ │ ├── deps.ts │ │ │ │ ├── init.lua │ │ │ │ └── config.ts │ │ │ ├── utils.lua │ │ │ ├── core.lua │ │ │ └── tree-sitter.lua │ │ └── lspconfig │ │ │ └── server_configurations │ │ │ └── satysfi-ls.lua │ ├── .luarc.json │ ├── init.lua │ └── ftdetect │ │ └── filetype.lua ├── zellij │ └── layouts │ │ └── default.kdl ├── polybar │ ├── scripts │ │ ├── executable_window_name.sh │ │ ├── executable_scroll_spotify_status.sh │ │ └── executable_get_spotify_status.sh │ ├── executable_launch.sh │ └── executable_mediaplayer.py ├── waybar │ ├── executable_mediaplayer.sh │ ├── executable_media.sh │ ├── executable_launch.sh │ ├── executable_mediaplayer.py │ └── executable_style.css ├── sway │ ├── executable_window-transparency.sh │ └── executable_window-transparency.py ├── systemd │ └── user │ │ ├── sway-session.target │ │ ├── swayvd.service │ │ └── wayvnc.service ├── python │ └── pythonrc ├── latexmk │ └── latexmkrc ├── rio │ └── config.toml ├── starship_light.toml ├── swaynag │ └── config ├── alacritty │ ├── alacritty.toml │ ├── claymore.toml │ └── urara.yml ├── starship.toml ├── private_user-dirs.dirs ├── mako │ └── config ├── swaylock │ └── config ├── private_gtk-2.0 │ └── gtkrc ├── wofi │ ├── style.css │ └── powermenu.css ├── bat │ └── config ├── sheldon │ └── plugins.toml ├── avizo │ └── config.ini ├── joshuto │ ├── joshuto.toml │ └── keymap.toml ├── ranger │ ├── commands.py │ └── colorschemes │ │ └── urara.py ├── spotifyd │ └── spotifyd.conf ├── rofi │ ├── mytheme.rasi │ ├── powermenu_theme.rasi │ ├── powermenu.rasi │ └── config.rasi ├── private_mpv │ └── mpv.conf ├── foot │ └── foot.ini ├── cava │ └── config └── bottom │ └── bottom.toml ├── dot_bin ├── executable_i3on.sh ├── executable_oni2.sh ├── executable_alcrt.sh ├── executable_mpvbd.sh ├── executable_wayrapt.sh ├── executable_cupsopen.sh ├── executable_sptfy.sh ├── executable_mozcconf.sh ├── executable_mysirula.sh ├── executable_mywofi.sh ├── executable_zm.sh ├── executable_google-earth-launcher.sh ├── executable_mozclib.sh ├── executable_myrofi.sh ├── executable_mozcadd.sh ├── executable_waycode.sh ├── executable_wayadr-std.sh ├── executable_nv.sh ├── executable_swaycolor.sh ├── executable_avd-launch-12.sh ├── executable_avd-launch-11.sh ├── executable_lineapp.sh ├── executable_pdfopt.sh ├── executable_gpg-ssh.sh ├── executable_setwayvnc.sh ├── executable_vimupdate.sh ├── executable_swaylight.sh ├── executable_maimshot.sh ├── executable_percentify.sh ├── executable_myclipman.sh ├── executable_pwnodefd.sh ├── executable_virus-scan.sh ├── executable_swaymin.sh ├── executable_myfirstclipman.sh ├── executable_import-gsettings.sh ├── executable_window-walker.sh ├── executable_keydb.sh ├── executable_swaypulseprof.sh ├── executable_waytshot.sh ├── executable_killtree.sh ├── executable_i3power.sh ├── executable_swaypower.sh ├── executable_swayon.sh ├── executable_myi3lock.sh ├── executable_pdfocr.sh ├── executable_swayrec.sh ├── executable_deploy.sh ├── executable_swaypulse.sh ├── executable_gtk-modeswitch.sh ├── executable_setdark.sh ├── executable_setlight.sh ├── executable_play-pause.sh └── executable_swayscrshare.sh ├── dot_pacman ├── pkglist_wsl_foreign.txt ├── pkglist_min_foreign.txt ├── paccache-remove.hook ├── paccache-update.hook ├── pkglist-min.hook ├── pkglist-wsl.hook ├── pkglist-desktop.hook ├── pkglist-min-foreign.hook ├── pkglist-wsl-foreign.hook ├── pkglist-desktop-foreign.hook ├── pkglist_min.txt ├── pkglist_wsl.txt ├── pkglist_desktop_foreign.txt └── pkglist_desktop.txt ├── README.md ├── .chezmoiignore ├── dot_xinitrc ├── dot_vimrc └── .gitignore /dot_vim/dein/empty_dein_lazy.toml: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /dot_config/user-dirs.locale: -------------------------------------------------------------------------------- 1 | ja.JP_UTF-8 2 | -------------------------------------------------------------------------------- /dot_config/helix/config.toml: -------------------------------------------------------------------------------- 1 | theme = "rose_pine" 2 | -------------------------------------------------------------------------------- /dot_bin/executable_i3on.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | exec i3 4 | -------------------------------------------------------------------------------- /dot_bin/executable_oni2.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | Oni2 4 | -------------------------------------------------------------------------------- /dot_config/zsh/async/env.zsh: -------------------------------------------------------------------------------- 1 | export HIST_STAMPS="yyyy/mm/dd" 2 | -------------------------------------------------------------------------------- /dot_config/yubikey-touch-detector/service.conf: -------------------------------------------------------------------------------- 1 | YUBIKEY_TOUCH_DETECTOR_LIBNOTIFY=true 2 | -------------------------------------------------------------------------------- /dot_bin/executable_alcrt.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | env WINIT_UNIX_BACKEND=x11 alacritty 3 | -------------------------------------------------------------------------------- /dot_config/darkman/config.yaml: -------------------------------------------------------------------------------- 1 | dbusserver: true 2 | portal: true 3 | usegeoclue: true 4 | -------------------------------------------------------------------------------- /dot_bin/executable_mpvbd.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | mpv bd:// --bluray-device=/dev/sr0 4 | -------------------------------------------------------------------------------- /dot_bin/executable_wayrapt.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | env QT_QPA_PLATFORM=xcb raptoreum-qt 3 | -------------------------------------------------------------------------------- /dot_bin/executable_cupsopen.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | /usr/bin/xdg-open http://localhost:631/ 4 | -------------------------------------------------------------------------------- /dot_bin/executable_sptfy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | spotify --force-device-scale-factor=1.5 "$@" 3 | -------------------------------------------------------------------------------- /dot_bin/executable_mozcconf.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | /usr/lib/mozc/mozc_tool --mode=config_dialog 4 | -------------------------------------------------------------------------------- /dot_bin/executable_mysirula.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | killall -q sirula || { 4 | sirula 5 | } 6 | -------------------------------------------------------------------------------- /dot_bin/executable_mywofi.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | killall -q wofi || { 4 | wofi "$@" 5 | } 6 | -------------------------------------------------------------------------------- /dot_bin/executable_zm.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | QT_SCALE_FACTOR=1 QT_QPA_PLATFORM=xcb zoom "$@" 4 | -------------------------------------------------------------------------------- /dot_pacman/pkglist_wsl_foreign.txt: -------------------------------------------------------------------------------- 1 | cbonsai 2 | daemonize 3 | genie-systemd 4 | paru 5 | vim-dein-git 6 | -------------------------------------------------------------------------------- /dot_bin/executable_google-earth-launcher.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | env QT_QPA_PLATFORM=xcb google-earth-pro 3 | -------------------------------------------------------------------------------- /dot_bin/executable_mozclib.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | /usr/lib/mozc/mozc_tool --mode=dictionary_tool 4 | -------------------------------------------------------------------------------- /dot_bin/executable_myrofi.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | killall -q rofi || { 4 | rofi -show run 5 | } 6 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/ddu/init.lua: -------------------------------------------------------------------------------- 1 | require('haxibami.ddu.config') 2 | require('haxibami.ddu.keymap') 3 | -------------------------------------------------------------------------------- /dot_bin/executable_mozcadd.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | /usr/lib/mozc/mozc_tool --mode=word_register_dialog 4 | -------------------------------------------------------------------------------- /dot_bin/executable_waycode.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | code --enable-features=UseOzonePlatform --ozone-platform=wayland 4 | -------------------------------------------------------------------------------- /dot_pacman/pkglist_min_foreign.txt: -------------------------------------------------------------------------------- 1 | daemonize 2 | genie-systemd 3 | paru 4 | tigervnc-viewer 5 | ttf-hackgen 6 | vim-dein-git 7 | -------------------------------------------------------------------------------- /dot_bin/executable_wayadr-std.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | QT_QPA_PLATFORM=xcb _JAVA_AWT_WM_NONREPARENTING=1 android-studio 4 | -------------------------------------------------------------------------------- /dot_bin/executable_nv.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | env QT_SCALE_FACTOR=1 nvui $1 --ext_popupmenu --ext_cmdline --detached --ext_multigrid 4 | -------------------------------------------------------------------------------- /dot_bin/executable_swaycolor.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | grim -g "$(slurp -p)" -t ppm - | convert - -format '%[pixel:p{0,0}]' txt:- | wl-copy 4 | -------------------------------------------------------------------------------- /dot_config/zsh/async/bindkey.zsh: -------------------------------------------------------------------------------- 1 | bindkey -v 2 | bindkey '^[[H' beginning-of-line 3 | bindkey '^[[F' end-of-line 4 | # bindkey '^I' fzf_completion 5 | -------------------------------------------------------------------------------- /dot_bin/executable_avd-launch-12.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | env QT_QPA_PLATFORM=xcb /home/haxibami/Android/Sdk/emulator/emulator -avd Pixel_4_API_31 4 | -------------------------------------------------------------------------------- /dot_config/zellij/layouts/default.kdl: -------------------------------------------------------------------------------- 1 | layout { 2 | pane size=1 borderless=true { 3 | plugin location="zellij:tab-bar" 4 | } 5 | pane 6 | } -------------------------------------------------------------------------------- /dot_bin/executable_avd-launch-11.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | env QT_QPA_PLATFORM=xcb /home/haxibami/Android/Sdk/emulator/emulator -avd Pixel_4_API_30_2 4 | -------------------------------------------------------------------------------- /dot_bin/executable_lineapp.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | /opt/google/chrome/google-chrome --profile-directory=Default --app-id=pbpoojghcbigbheeamegjbdailkaeglf 4 | -------------------------------------------------------------------------------- /dot_config/polybar/scripts/executable_window_name.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | output = xprop -id $(xdotool getactivewindow) | grep '_NET_WM_NAME(UTF8_STRING)' | cut -d '"' -f2 -------------------------------------------------------------------------------- /dot_bin/executable_pdfopt.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | gs -sDEVICE=pdfwrite -dBATCH -dNOPAUSE -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -sOutputFile=$2 -f $1 4 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/lsp/init.lua: -------------------------------------------------------------------------------- 1 | require('haxibami.lsp.setup') 2 | require('haxibami.lsp.ui') 3 | require('haxibami.lsp.keymap') 4 | require('haxibami.lsp.autocmd') 5 | -------------------------------------------------------------------------------- /dot_config/nvim/.luarc.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://raw.githubusercontent.com/sumneko/vscode-lua/master/setting/schema.json", 3 | "Lua.workspace.checkThirdParty": false 4 | } -------------------------------------------------------------------------------- /dot_bin/executable_gpg-ssh.sh: -------------------------------------------------------------------------------- 1 | unset SSH_AGENT_PID 2 | if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then 3 | export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)" 4 | fi 5 | -------------------------------------------------------------------------------- /dot_bin/executable_setwayvnc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | swaymsg -t get_outputs | grep HEADLESS-1 &> /dev/null || { 3 | swaymsg create_output HEADLESS-1 4 | } 5 | 6 | wayvnc --output=HEADLESS-1 0.0.0.0 & 7 | -------------------------------------------------------------------------------- /dot_config/waybar/executable_mediaplayer.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ $$ != `pgrep -fo $0` ]; then 3 | echo "Already running!" >&2 4 | exit 1 5 | fi 6 | 7 | python3 ~/.config/waybar/mediaplayer.py 8 | 9 | exit 0 10 | -------------------------------------------------------------------------------- /dot_config/sway/executable_window-transparency.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | if [ $$ != `pgrep -fo $0` ]; then 3 | echo "Already running!" >&2 4 | exit 9 5 | fi 6 | 7 | python3 ~/.config/sway/window-transparency.py 8 | 9 | exit 0 10 | -------------------------------------------------------------------------------- /dot_bin/executable_vimupdate.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env zsh 2 | 3 | nvimupdate() { 4 | nvim -c "DeinUpdate" -c "CocUpdateSync" -c q 5 | } 6 | 7 | vimupdate() { 8 | vim -c "DeinUpdate" -c q 9 | } 10 | 11 | nvimupdate && 12 | vimupdate 13 | -------------------------------------------------------------------------------- /dot_config/systemd/user/sway-session.target: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Sway compositor session 3 | Documentation=man:systemd.special 4 | BindsTo=graphical-session.target 5 | Wants=graphical-session-pre.target 6 | After=graphical-session-pre.target 7 | -------------------------------------------------------------------------------- /dot_bin/executable_swaylight.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | read lcd < /tmp/lcd 3 | if [ "$lcd" -eq "0" ]; then 4 | wlopm --off '*' 5 | echo 1 > /tmp/lcd 6 | else 7 | wlopm --on '*' 8 | echo 0 > /tmp/lcd 9 | fi 10 | -------------------------------------------------------------------------------- /dot_pacman/paccache-remove.hook: -------------------------------------------------------------------------------- 1 | [Trigger] 2 | Operation = Remove 3 | Type = Package 4 | Target = * 5 | 6 | [Action] 7 | Description = Cleaning pacman cache of removed packages... 8 | When = PostTransaction 9 | Exec = /usr/bin/paccache -ruk0 10 | -------------------------------------------------------------------------------- /dot_bin/executable_maimshot.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | maim -g $(i3-msg -t get_tree | jq -r '.. | select(.id? and .focused?) | .rect | "\(.width)x\(.height)+\(.x)+\(.y)"' | slop -f "%wx%h+%x+%y") ~/Pictures/Screenshots/$(date "+%Y%m%d-%H%M%S")'_maim_window.png' 3 | -------------------------------------------------------------------------------- /dot_pacman/paccache-update.hook: -------------------------------------------------------------------------------- 1 | [Trigger] 2 | Operation = Upgrade 3 | Type = Package 4 | Target = * 5 | 6 | [Action] 7 | Description = Cleaning pacman cache, except for most recent 3 gens... 8 | When = PostTransaction 9 | Exec = /usr/bin/paccache -r 10 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/ddc/deps.ts: -------------------------------------------------------------------------------- 1 | export { BaseConfig } from "https://deno.land/x/ddc_vim@v3.5.1/types.ts"; 2 | export { fn } from "https://deno.land/x/ddc_vim@v3.5.1/deps.ts"; 3 | export type { ConfigArguments } from "https://deno.land/x/ddc_vim@v3.5.1/base/config.ts"; 4 | -------------------------------------------------------------------------------- /dot_bin/executable_percentify.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # input: 0-1 3 | # output: 0-100 4 | 5 | # stdin volume: $VALUE [MUTED] 6 | 7 | if [[ $3 == "[MUTED]" ]]; then 8 | echo "0" 9 | exit 0 10 | fi 11 | 12 | echo $2 | awk '$0=$1"*100"' | bc | sed 's/\..*//' 13 | -------------------------------------------------------------------------------- /dot_config/zsh/dot_zshrc: -------------------------------------------------------------------------------- 1 | # # zellij 2 | # if which zellij >/dev/null 2>&1 && [[ -n $DESKTOP_SESSION ]]; then 3 | # eval "$(zellij setup --generate-auto-start zsh)" 4 | # fi 5 | 6 | # plugin & config 7 | eval "$(sheldon source)" 8 | eval "$(zoxide init zsh)" 9 | 10 | # vim: set ft=zsh : 11 | -------------------------------------------------------------------------------- /dot_bin/executable_myclipman.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # run this in sway as: 4 | # exec wl-paste -t text --watch myclipman 5 | 6 | app_name=$( swaymsg -t get_tree | jq -r '.. | select(.type?) | select(.focused==true) | .name' ) 7 | 8 | if [[ $app_name != "Bitwarden" ]]; then 9 | clipman store 10 | fi 11 | -------------------------------------------------------------------------------- /dot_config/systemd/user/swayvd.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=a tool to set virtual display on Sway session 3 | BindsTo=sway-session.target 4 | Before=wayvnc.service 5 | 6 | [Service] 7 | Type=oneshot 8 | ExecStart=/usr/bin/swaymsg create_output HEADLESS-1 9 | 10 | [Install] 11 | WantedBy=sway-session.target 12 | -------------------------------------------------------------------------------- /dot_pacman/pkglist-min.hook: -------------------------------------------------------------------------------- 1 | [Trigger] 2 | Operation = Install 3 | Operation = Remove 4 | Type = Package 5 | Target = * 6 | 7 | [Action] 8 | Description = Updating pkglists after installs and removes... 9 | When = PostTransaction 10 | Exec = /bin/sh -c '/usr/bin/pacman -Qqen > /home/haxibami/.pacman/pkglist_min.txt' 11 | -------------------------------------------------------------------------------- /dot_pacman/pkglist-wsl.hook: -------------------------------------------------------------------------------- 1 | [Trigger] 2 | Operation = Install 3 | Operation = Remove 4 | Type = Package 5 | Target = * 6 | 7 | [Action] 8 | Description = Updating pkglists after installs and removes... 9 | When = PostTransaction 10 | Exec = /bin/sh -c '/usr/bin/pacman -Qqen > /home/haxibami/.pacman/pkglist_wsl.txt' 11 | -------------------------------------------------------------------------------- /dot_pacman/pkglist-desktop.hook: -------------------------------------------------------------------------------- 1 | [Trigger] 2 | Operation = Install 3 | Operation = Remove 4 | Type = Package 5 | Target = * 6 | 7 | [Action] 8 | Description = Updating pkglists after installs and removes... 9 | When = PostTransaction 10 | Exec = /bin/sh -c '/usr/bin/pacman -Qqen > /home/haxibami/.pacman/pkglist_desktop.txt' 11 | -------------------------------------------------------------------------------- /dot_bin/executable_pwnodefd.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # returns pipewire node id 4 | # usage: ~/.bin/pwnodefd.sh 5 | 6 | id=$(pw-dump | 7 | jq --arg nick $1 '.[] | select (.info.props."node.nick" == $nick)' | 8 | jq '.id') 9 | 10 | if [ -n "$id" ]; then 11 | echo $id 12 | else 13 | exit 1 14 | fi 15 | -------------------------------------------------------------------------------- /dot_config/waybar/executable_media.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | player_status=$(playerctl status 2> /dev/null) 3 | if [ "$player_status" = "Playing" ]; then 4 | echo "$(playerctl metadata artist) - $(playerctl metadata title)" 5 | elif [ "$player_status" = "Paused" ]; then 6 | echo " $(playerctl metadata artist) - $(playerctl metadata title)" 7 | fi -------------------------------------------------------------------------------- /dot_bin/executable_virus-scan.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | mkdir -p $HOME/.clamtk/virus 4 | mkdir -p $HOME/.clamtk/history 5 | 6 | find $HOME -type d | xargs clamdscan \ 7 | --infected \ 8 | --multiscan \ 9 | --fdpass \ 10 | --move="$HOME/.clamtk/virus" \ 11 | --log="$HOME/.clamtk/history/$(date +\%Y\%m\%d-\%H\%M\%S).log" 12 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/lsp/servers/denols.lua: -------------------------------------------------------------------------------- 1 | local root_pattern = require('lspconfig').util.root_pattern 2 | 3 | local deno_root_pattern = root_pattern('deno.json') 4 | 5 | return { 6 | root_dir = deno_root_pattern, 7 | init_options = { 8 | enable = true, 9 | lint = false, 10 | unstable = true, 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /dot_pacman/pkglist-min-foreign.hook: -------------------------------------------------------------------------------- 1 | [Trigger] 2 | Operation = Install 3 | Operation = Remove 4 | Type = Package 5 | Target = * 6 | 7 | [Action] 8 | Description = Updating external pkglists after installs and removes... 9 | When = PostTransaction 10 | Exec = /bin/sh -c '/usr/bin/pacman -Qqem > /home/haxibami/.pacman/pkglist_min_foreign.txt' 11 | -------------------------------------------------------------------------------- /dot_pacman/pkglist-wsl-foreign.hook: -------------------------------------------------------------------------------- 1 | [Trigger] 2 | Operation = Install 3 | Operation = Remove 4 | Type = Package 5 | Target = * 6 | 7 | [Action] 8 | Description = Updating external pkglists after installs and removes... 9 | When = PostTransaction 10 | Exec = /bin/sh -c '/usr/bin/pacman -Qqem > /home/haxibami/.pacman/pkglist_wsl_foreign.txt' 11 | -------------------------------------------------------------------------------- /dot_bin/executable_swaymin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | XDG_SESSION_TYPE=wayland 4 | XDG_CURRENT_DESKTOP=sway 5 | XDG_CURRENT_SESSION=sway 6 | #GDK_DPI_SCALE=1.5 7 | #GDK_SCALE=2 8 | WLR_RENDERER=vulkan 9 | 10 | export XDG_SESSION_TYPE XDG_CURRENT_DESKTOP XDG_CURRENT_SESSION WLR_RENDERER; 11 | 12 | exec sway --config /etc/greetd/gtkgreet-sway-config 13 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/utils.lua: -------------------------------------------------------------------------------- 1 | -- utils 2 | 3 | local M = {} 4 | 5 | --- @vararg function|nil 6 | M.merge_functions = function(...) 7 | local fns = { ... } 8 | return function(...) 9 | for _, fn in ipairs(fns) do 10 | if fn ~= nil then 11 | fn(...) 12 | end 13 | end 14 | end 15 | end 16 | 17 | return M 18 | -------------------------------------------------------------------------------- /dot_pacman/pkglist-desktop-foreign.hook: -------------------------------------------------------------------------------- 1 | [Trigger] 2 | Operation = Install 3 | Operation = Remove 4 | Type = Package 5 | Target = * 6 | 7 | [Action] 8 | Description = Updating external pkglists after installs and removes... 9 | When = PostTransaction 10 | Exec = /bin/sh -c '/usr/bin/pacman -Qqem > /home/haxibami/.pacman/pkglist_desktop_foreign.txt' 11 | -------------------------------------------------------------------------------- /dot_bin/executable_myfirstclipman.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # run this in sway as: 4 | # exec wl-paste -t text --watch myclipman 5 | 6 | app_name=$( swaymsg -t get_tree | jq -r '.. | select(.type?) | select(.focused==true) | .name' ) 7 | 8 | if [[ $app_name != "Bitwarden" ]]; then 9 | clipman store -P --histpath="~/.local/share/clipman-primary.json" 10 | fi 11 | -------------------------------------------------------------------------------- /dot_config/waybar/executable_launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Terminate already running bar instances 4 | killall -q waybar 5 | 6 | # Wait until the processes have been shut down 7 | while pgrep -u $UID -x waybar >/dev/null; do sleep 1; done 8 | 9 | # Launch Polybar, using default config location ~/.config/polybar/config 10 | waybar & 11 | 12 | echo "waybar launched..." 13 | -------------------------------------------------------------------------------- /dot_vim/dein/dein.toml: -------------------------------------------------------------------------------- 1 | [[plugins]] 2 | repo = 'itchyny/lightline.vim' 3 | hook_add = ''' 4 | let g:lightline = { 5 | \ 'colorscheme': 'urara', 6 | \ 'active': { 7 | \ 'left': [ [ 'mode', 'paste' ], 8 | \ [ 'readonly', 'filename', 'modified' ] ] 9 | \ }, 10 | \ } 11 | ''' 12 | 13 | [[plugins]] 14 | repo = 'haxibami/urara.vim' 15 | -------------------------------------------------------------------------------- /dot_config/systemd/user/wayvnc.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=A VNC server for wlroots based Wayland compositors 3 | BindsTo=sway-session.target 4 | Requires=swayvd.service 5 | After=swayvd.service 6 | 7 | [Service] 8 | Type=simple 9 | ExecStart=/usr/bin/wayvnc --output=HEADLESS-1 0.0.0.0 10 | Restart=always 11 | RestartSec=1 12 | TimeoutStopSec=10 13 | 14 | [Install] 15 | WantedBy=sway-session.target 16 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # dotfiles 2 | 3 | setting, preference, and all the necessities. 4 | 5 | - Mainly configured for Arch Linux (x64) machine. 6 | - Managed by [chezmoi](https://github.com/twpayne/chezmoi/) 7 | 8 | ![swaywm](https://user-images.githubusercontent.com/57034105/180386667-c15b2be1-3ec3-4474-b7f4-08da789a685a.png) 9 | 10 | zsh, neovim, sway, waybar, wpaperd, imv, pipes-rs, cava, ranger, tty-clock, cbonsai, etc... 11 | -------------------------------------------------------------------------------- /dot_config/polybar/executable_launch.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Terminate already running bar instances 4 | killall -q polybar 5 | 6 | # Wait until the processes have been shut down 7 | while pgrep -u $UID -x polybar >/dev/null; do sleep 1; done 8 | 9 | # Launch Polybar, using default config location ~/.config/polybar/config 10 | polybar i3bar & 11 | 12 | echo "Polybar launched..." 13 | 14 | killall xembedsniproxy 15 | -------------------------------------------------------------------------------- /dot_config/python/pythonrc: -------------------------------------------------------------------------------- 1 | import os 2 | import atexit 3 | import readline 4 | 5 | history = os.path.join(os.path.expanduser('~'), '.cache/python_history') 6 | try: 7 | readline.read_history_file(history) 8 | except OSError: 9 | pass 10 | 11 | def write_history(): 12 | try: 13 | readline.write_history_file(history) 14 | except OSError: 15 | pass 16 | 17 | atexit.register(write_history) 18 | -------------------------------------------------------------------------------- /dot_config/latexmk/latexmkrc: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | $latex = 'lualatex -synctex=1 -halt-on-error %O %S'; 3 | $latex_silent = 'lualatex -synctex=1 -halt-on-error %O %S'; 4 | $pdflatex = 'lualatex -synctex=1 -halt-on-error %O %S'; 5 | $biber = 'biber --bblencoding=utf8 -u -U --output_safechars'; 6 | $lualatex = 'lualatex -synctex=1 -interaction=nonstopmode -file-line-error %O %S'; 7 | $pdf_mode = 4; 8 | $max_repeat = 5; 9 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/ddu/deps.ts: -------------------------------------------------------------------------------- 1 | export { 2 | type ActionArguments, 3 | ActionFlags, 4 | BaseConfig, 5 | } from "https://deno.land/x/ddu_vim@v3.0.2/types.ts"; 6 | export { type Denops, fn } from "https://deno.land/x/ddu_vim@v3.0.2/deps.ts"; 7 | export type { ConfigArguments } from "https://deno.land/x/ddu_vim@v3.0.2/base/config.ts"; 8 | export { type ActionData } from "https://deno.land/x/ddu_kind_file@v0.5.0/file.ts"; 9 | -------------------------------------------------------------------------------- /dot_bin/executable_import-gsettings.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # usage: import-gsettings : :... 4 | 5 | expression="" 6 | for pair in "$@"; do 7 | IFS=:; set -- $pair 8 | expressions="$expressions -e 's:^$2=(.*)$:gsettings set org.gnome.desktop.interface $1 \"\1\" :e'" 9 | done 10 | IFS= 11 | eval exec sed -E $expressions "${XDG_CONFIG_HOME:-$HOME/.config}"/gtk-3.0/settings.ini >/dev/null 12 | -------------------------------------------------------------------------------- /dot_bin/executable_window-walker.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | # a script to switch between sway windows (like `alt+tab` in Windows). 3 | # requires: wofi, jq 4 | 5 | killall -q wofi || { swaymsg -t get_tree | 6 | jq -r '.nodes[].nodes[] | if .nodes then [recurse(.nodes[])] else [] end + .floating_nodes | .[] | select(.nodes==[]) | ((.id | tostring) + " " + .name)' | 7 | wofi -d -p window | { 8 | read -r id name 9 | swaymsg "[con_id=$id]" focus 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /dot_bin/executable_keydb.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # A script to fetch keydb.cfg for aacs 4 | 5 | KEYDB_SOURCE="http://fvonline-db.bplaced.net/export/keydb_jpn.zip" 6 | KEYDB_WORKDIR="/tmp/keydb" 7 | AACS_KEYFILE="${HOME}/.config/aacs/keydb.cfg" 8 | 9 | if [ -d $KEYDB_WORKDIR ]; then 10 | rm -r $KEYDB_WORKDIR 11 | fi 12 | 13 | mkdir $KEYDB_WORKDIR 14 | cd $KEYDB_WORKDIR 15 | curl -O $KEYDB_SOURCE 16 | unzip -o keydb_jpn.zip 17 | cp keydb.cfg $AACS_KEYFILE 18 | 19 | rm -r $KEYDB_WORKDIR 20 | -------------------------------------------------------------------------------- /dot_bin/executable_swaypulseprof.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | menu=$( echo -e "Analog\nHDMI" | wofi -i -b -p profile --dmenu --width 300 --lines=2 --style=${HOME}/.config/wofi/powermenu.css --conf={$HOME}/.config/wofi/powermenu.conf )&& 4 | 5 | case $menu in 6 | "Analog") 7 | pactl set-card-profile alsa_card.pci-0000_00_1f.3 output:analog-stereo+input:analog-stereo 8 | ;; 9 | "HDMI") 10 | pactl set-card-profile alsa_card.pci-0000_00_1f.3 output:hdmi-stereo 11 | ;; 12 | esac 13 | -------------------------------------------------------------------------------- /dot_bin/executable_waytshot.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | #menu=$( wofi -i -b -p waitfor --dmenu --width 300 --lines=1 --style=${HOME}/.config/wofi/powermenu.css --conf=${HOME}/.config/wofi/powermenu.conf ) 4 | 5 | #if [[ $menu -gt 0 && $menu -lt 30 ]]; then 6 | # sleep $menu; grimshot --notify save active ~/Pictures/screenshot/$(date "+%Y%m%d-%H%M%S")'_grim_active.png' 7 | #else 8 | # : 9 | #fi 10 | 11 | sleep 8; grimshot --notify save active ~/Pictures/screenshot/$(date "+%Y%m%d-%H%M%S")'_grim_active.png' 12 | -------------------------------------------------------------------------------- /dot_config/polybar/scripts/executable_scroll_spotify_status.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # see man zscroll for documentation of the following parameters 4 | zscroll -l 30 \ 5 | --delay 0.1 \ 6 | --scroll-padding "  " \ 7 | --match-command "$HOME/.config/polybar/scripts/get_spotify_status.sh --status" \ 8 | --match-text "Playing" "--scroll 1" \ 9 | --match-text "Paused" "--scroll 0" \ 10 | --update-check true "$HOME/.config/polybar/scripts/get_spotify_status.sh" & 11 | 12 | wait 13 | -------------------------------------------------------------------------------- /dot_config/zsh/async/env-init.zsh: -------------------------------------------------------------------------------- 1 | # opam 2 | [[ ! -r ~/.local/share/opam/opam-init/init.zsh ]] || source ~/.local/share/opam/opam-init/init.zsh > /dev/null 2> /dev/null 3 | 4 | # broot 5 | source ~/.config/broot/launcher/bash/br 6 | 7 | # pnpm 8 | export PNPM_HOME="$XDG_DATA_HOME/pnpm" 9 | export PATH="$PNPM_HOME:$PATH" 10 | 11 | # rye 12 | source "$XDG_CONFIG_HOME"/rye/env 13 | 14 | # bun 15 | [ -s "$HOME/.bun/_bun" ] && source "$HOME/.bun/_bun" 16 | export BUN_INSTALL="$HOME/.bun" 17 | export PATH="$BUN_INSTALL/bin:$PATH" 18 | -------------------------------------------------------------------------------- /dot_config/rio/config.toml: -------------------------------------------------------------------------------- 1 | padding-x = 25 2 | theme = "claymore" 3 | 4 | [renderer] 5 | performance = "High" 6 | 7 | [window] 8 | background-opacity = 1 9 | blur = true 10 | 11 | [fonts] 12 | size = 30 13 | family = "FirgeNerd Console" 14 | 15 | # [bindings] 16 | # keys = [ 17 | # #{ key = "t", with = "control", action = "None" }, 18 | # #{ key = "n", with = "control", action = "None" }, 19 | # ] 20 | # # Bytes[27, 91, 53, 126] is equivalent to "\x1b[5~" 21 | # # { key = "home", with = "super | shift", bytes = [27, 91, 53, 126] }, 22 | -------------------------------------------------------------------------------- /dot_bin/executable_killtree.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | killtree() { 4 | local _pid=$1 5 | local _sig=${2:-TERM} 6 | kill -stop ${_pid} # needed to stop quickly forking parent from producing child between child killing and parent killing 7 | for _child in $(ps -o pid --no-headers --ppid ${_pid}); do 8 | killtree ${_child} ${_sig} 9 | done 10 | kill -${_sig} ${_pid} 11 | } 12 | 13 | if [ $# -eq 0 -o $# -gt 2 ]; then 14 | echo "Usage: $(basename $0) [signal]" 15 | exit 1 16 | fi 17 | 18 | killtree $@ 19 | -------------------------------------------------------------------------------- /dot_pacman/pkglist_min.txt: -------------------------------------------------------------------------------- 1 | arch-install-scripts 2 | aria2 3 | autoconf 4 | automake 5 | base 6 | bat 7 | binutils 8 | bison 9 | exa 10 | fakeroot 11 | fd 12 | flex 13 | gcc 14 | git 15 | groff 16 | less 17 | libtool 18 | libvncserver 19 | m4 20 | make 21 | man-db 22 | neofetch 23 | neovim 24 | nodejs 25 | noto-fonts 26 | npm 27 | openssh 28 | pacman-contrib 29 | patch 30 | pkgconf 31 | python 32 | python-pip 33 | ranger 34 | remmina 35 | starship 36 | sudo 37 | systemd 38 | texinfo 39 | vi 40 | vim 41 | wget 42 | which 43 | xorg-xeyes 44 | zsh 45 | -------------------------------------------------------------------------------- /.chezmoiignore: -------------------------------------------------------------------------------- 1 | README.md 2 | 3 | {{- if ne .chezmoi.osRelease.name "Arch Linux"}} 4 | .pacman 5 | {{- end }} 6 | 7 | {{- if ne .chezmoi.os "linux" }} 8 | .config/sway 9 | .config/waybar 10 | .config/swaynag 11 | .config/wofi 12 | .config/i3 13 | .config/polybar 14 | .config/rofi 15 | .config/systemd 16 | .config/xkeysnail 17 | .config/user-dirs.dirs 18 | .config/user-dirs.locale 19 | .config/.parcellite 20 | .config/.picom.conf 21 | .config/gammastep 22 | .config/compton.conf 23 | .config/cava 24 | .cofnig/dunst 25 | .gtkrc-2.0 26 | {{- end }} 27 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/lspconfig/server_configurations/satysfi-ls.lua: -------------------------------------------------------------------------------- 1 | local util = require 'lspconfig.util' 2 | 3 | return { 4 | default_config = { 5 | cmd = { 'satysfi-language-server' }, 6 | filetypes = { 'satysfi' }, 7 | root_dir = util.root_pattern('.git'), 8 | single_file_support = true, 9 | }, 10 | docs = { 11 | description = [[ 12 | https://github.com/monaqa/satysfi-language-server 13 | Language server for SATySFi. 14 | ]], 15 | default_config = { 16 | root_dir = [[root_pattern(".git")]], 17 | }, 18 | }, 19 | } 20 | -------------------------------------------------------------------------------- /dot_config/zsh/async/alias.zsh: -------------------------------------------------------------------------------- 1 | alias ls='lsd' 2 | alias sued='sudoedit' 3 | alias memsort='ps ax o pid,rss,command --sort rss' 4 | alias wget='wget --hsts-file="$XDG_DATA_HOME/wget-hsts"' 5 | alias svn="svn --config-dir $XDG_CONFIG_HOME/subversion" 6 | alias hx='helix' 7 | alias img='swayimg' 8 | alias R='R --quiet --no-save --no-restore-data' 9 | alias utokyo-vpn='openconnect-sso -s vpn1.adm.u-tokyo.ac.jp --browser-display-mode hidden -- -s ~/.config/openconnect-sso/vpnc-script-wrapper.sh' 10 | alias unzip-sjis='unzip -O CP932' 11 | alias adb='HOME="$XDG_DATA_HOME"/android adb' 12 | -------------------------------------------------------------------------------- /dot_bin/executable_i3power.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | menu=$( echo -e " Poweroff\n Reboot\n Suspend\n Lock\n Logout" | rofi -p "power" -dmenu -width 500 -theme ~/.config/rofi/powermenu.rasi | awk '{print tolower($2)}' ) 4 | 5 | case $menu in 6 | poweroff) 7 | ;& 8 | reboot) 9 | ;& 10 | suspend) 11 | systemctl $menu 12 | ;; 13 | lock) 14 | ~/.bin/myi3lock.sh 15 | ;; 16 | logout) 17 | i3-msg exit 18 | ;; 19 | esac 20 | -------------------------------------------------------------------------------- /dot_config/starship_light.toml: -------------------------------------------------------------------------------- 1 | add_newline = true 2 | 3 | scan_timeout = 10 4 | 5 | format = """ 6 | $directory$git_branch$git_status$hostname 7 | $character(white)""" 8 | 9 | [character] 10 | success_symbol = "[>](#9abf86)" 11 | error_symbol = "[>](#d9989c)" 12 | vicmd_symbol = "[>](#d9c77e)" 13 | 14 | [directory] 15 | truncation_length = 5 16 | format = " [$read_only]($read_only_style)[$path](bold underline #a6b4de) " 17 | 18 | [hostname] 19 | ssh_only = false 20 | format = "on [$hostname](bold #86bfb6) [$ssh_symbol](white)" 21 | 22 | [git_branch] 23 | style = "bold green" 24 | format = "[$branch $symbol](bold green)" 25 | -------------------------------------------------------------------------------- /dot_config/swaynag/config: -------------------------------------------------------------------------------- 1 | background=ff79c6 2 | border=282a36 3 | border-bottom=ff79c6 4 | button-background=ff79c6 5 | text=282a36 6 | button-text=282a36 7 | border-bottom-size=0 8 | message-padding=15 9 | details-background=ff5555 10 | details-border-size=3 11 | button-border-size=3 12 | button-gap=40 13 | button-dismiss-gap=30 14 | button-margin-right=20 15 | button-padding=11 16 | edge=bottom 17 | font=HackgenNerd 20 18 | 19 | [warning] 20 | background=ffb86ccc 21 | border=282a36 22 | border-bottom=282a36 23 | button-background=ffb86c 24 | text=282a36 25 | button-text=282a36 26 | details-background=ff5555 27 | font=HackgenNerd 20 28 | -------------------------------------------------------------------------------- /dot_config/alacritty/alacritty.toml: -------------------------------------------------------------------------------- 1 | import = ["/home/haxibami/.config/alacritty/claymore.toml"] 2 | 3 | [env] 4 | TERM = "xterm-256color" 5 | 6 | [shell] 7 | program = "/bin/zsh" 8 | args = ["-l", "-c", "zellij attach --index 0 --create"] 9 | 10 | [font] 11 | size = 18.0 12 | 13 | [font.bold] 14 | family = "MoralerspaceNeon" 15 | style = "Bold" 16 | 17 | [font.bold_italic] 18 | family = "MoralerspaceNeon" 19 | style = "Bold Italic" 20 | 21 | [font.italic] 22 | family = "MoralerspaceNeon" 23 | style = "Italic" 24 | 25 | [font.normal] 26 | family = "MoralerspaceNeon" 27 | 28 | [window] 29 | opacity = 0.9 30 | 31 | [window.padding] 32 | x = 25 33 | y = 25 34 | -------------------------------------------------------------------------------- /dot_bin/executable_swaypower.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | menu=$( echo -e " Poweroff\n Reboot\n Suspend\n Lock\n Logout" | wofi -i -b -p powermenu --dmenu --width 300 --lines=5 --style=${HOME}/.config/wofi/powermenu.css --conf=${HOME}/.config/wofi/powermenu.conf | awk '{print tolower($2)}' ) 4 | 5 | case $menu in 6 | poweroff) 7 | ;& 8 | reboot) 9 | ;& 10 | suspend) 11 | systemctl $menu 12 | ;; 13 | lock) 14 | env LANG=en.US_UTF-8 swaylock -f 15 | ;; 16 | logout) 17 | swaymsg exit 18 | ;; 19 | esac 20 | -------------------------------------------------------------------------------- /dot_config/alacritty/claymore.toml: -------------------------------------------------------------------------------- 1 | [colors] 2 | draw_bold_text_with_bright_colors = false 3 | 4 | [colors.bright] 5 | black = "0x4e4266" 6 | blue = "0xb7aad2" 7 | cyan = "0xa5cec7" 8 | green = "0xb8d2aa" 9 | magenta = "0xcbd3eb" 10 | red = "0xe6bbbe" 11 | white = "0xedebef" 12 | yellow = "0xe4d7a4" 13 | 14 | [colors.cursor] 15 | cursor = "0xf2d8e9" 16 | text = "0x120e12" 17 | 18 | [colors.normal] 19 | black = "0x0b0b0b" 20 | blue = "0xf27999" 21 | cyan = "0x96bfd9" 22 | green = "0xd9919e" 23 | magenta = "0xa48abf" 24 | red = "0xbf264f" 25 | white = "0xf2f2f2" 26 | yellow = "0xf2c791" 27 | 28 | [colors.primary] 29 | background = "0x120e12" 30 | foreground = "0xf2d8e9" 31 | -------------------------------------------------------------------------------- /dot_config/starship.toml: -------------------------------------------------------------------------------- 1 | add_newline = true 2 | 3 | scan_timeout = 10 4 | command_timeout = 1000 5 | 6 | format = """ 7 | [┌──](#f2d8e9)$directory$git_branch$git_status 8 | [└─](#f2d8e9)$character(#f2d8e9)""" 9 | 10 | [character] 11 | success_symbol = "[ 🏳 ](#96bfd9)[ 󰄾](#f27999)" 12 | error_symbol = "[ 🏳 ](#d92365)[ 󰄾](#f27999)" 13 | vicmd_symbol = "[ 🏳 ](#f27999)[ 󰄾](#f27999)" 14 | 15 | [directory] 16 | truncation_length = 5 17 | format = " [$read_only]($read_only_style)<[$path](bold underline #a48abf)>" 18 | 19 | [hostname] 20 | ssh_only = false 21 | format = "on [$hostname](bold #f2c791)" 22 | 23 | [git_branch] 24 | style = "bold #d9919e" 25 | format = "::[$branch $symbol](bold #d9919e)" 26 | -------------------------------------------------------------------------------- /dot_config/private_user-dirs.dirs: -------------------------------------------------------------------------------- 1 | # This file is written by xdg-user-dirs-update 2 | # If you want to change or add directories, just edit the line you're 3 | # interested in. All local changes will be retained on the next run. 4 | # Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped 5 | # homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an 6 | # absolute path. No other format is supported. 7 | # 8 | XDG_DESKTOP_DIR="$HOME/Desktop" 9 | XDG_DOWNLOAD_DIR="$HOME/Downloads" 10 | XDG_TEMPLATES_DIR="$HOME/Templates" 11 | XDG_PUBLICSHARE_DIR="$HOME/Public" 12 | XDG_DOCUMENTS_DIR="$HOME/Documents" 13 | XDG_MUSIC_DIR="$HOME/Music" 14 | XDG_PICTURES_DIR="$HOME/Pictures" 15 | XDG_VIDEOS_DIR="$HOME/Videos" 16 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/ddu/utils.lua: -------------------------------------------------------------------------------- 1 | local ddu = { 2 | start = vim.fn['ddu#start']; 3 | } 4 | 5 | M = {} 6 | 7 | M.find_files = function() 8 | ddu.start({ 9 | sources = { 10 | { name = 'file_rec' }, 11 | }, 12 | }) 13 | end 14 | 15 | M.live_grep = function() 16 | ddu.start({ 17 | volatile = true, 18 | sources = { 19 | { name = 'rg', 20 | -- options = { matchers = {} } 21 | }, 22 | }, 23 | }) 24 | end 25 | 26 | M.buffers = function() 27 | ddu.start({ 28 | sources = { 29 | { name = 'buffer' }, 30 | }, 31 | }) 32 | end 33 | 34 | M.help_tags = function() 35 | ddu.start({ 36 | sources = { 37 | { name = 'help' }, 38 | }, 39 | }) 40 | end 41 | 42 | return M 43 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/lsp/utils.lua: -------------------------------------------------------------------------------- 1 | local merge_functions = require('haxibami.utils').merge_functions 2 | local common_config = require('haxibami.lsp.config') 3 | 4 | local M = {} 5 | 6 | M.create_config = function(server_config) 7 | local config = vim.tbl_deep_extend('force', common_config, server_config) 8 | config.on_attach = merge_functions(common_config.on_attach, server_config.on_attach) 9 | 10 | return config 11 | end 12 | 13 | 14 | M.on_attach = function(fn) 15 | vim.api.nvim_create_autocmd('LspAttach', { 16 | callback = function(args) 17 | local buffer = args.buf 18 | local client = vim.lsp.get_client_by_id(args.data.client_id) 19 | fn(client, buffer) 20 | end, 21 | }) 22 | end 23 | 24 | return M 25 | -------------------------------------------------------------------------------- /dot_config/mako/config: -------------------------------------------------------------------------------- 1 | max-history=5 2 | sort=-time 3 | on-button-middle=exec makoctl menu -n "$id" wofi -d -p 'Select action: ' 4 | font=Noto Sans CJK JP 17 5 | layer=overlay 6 | width=600 7 | height=200 8 | margin=40 9 | padding=20,20,20,30 10 | border-size=2 11 | icon-path=/usr/share/icons/WhiteSur:/usr/share/icons/WhiteSur-dark 12 | background-color=#292433dd 13 | text-color=#d2ced9 14 | border-color=#d9989c 15 | border-radius=10 16 | default-timeout=10000 17 | 18 | [urgency=low] 19 | border-color=#d2ced9 20 | 21 | [urgency=normal] 22 | border-color=#abbf86 23 | 24 | [urgency=critical] 25 | border-color=#d9989c 26 | on-notify=exec mpv --keep-open=no /usr/share/sounds/freedesktop/stereo/message-new-instant.oga 27 | 28 | [mode=silent] 29 | invisible=1 30 | -------------------------------------------------------------------------------- /dot_config/zsh/sync/sync.zsh: -------------------------------------------------------------------------------- 1 | # prompt 2 | if [[ ! -z "$SSH_CLIENT" ]]; then 3 | export STARSHIP_CONFIG=$XDG_CONFIG_HOME/starship_light.toml 4 | fi 5 | eval "$(starship init zsh)" 6 | 7 | # opts 8 | setopt auto_cd 9 | setopt interactivecomments 10 | setopt hist_ignore_all_dups 11 | setopt hist_save_no_dups 12 | setopt extended_history 13 | 14 | # history 15 | export HISTFILE=$XDG_STATE_HOME/zsh/history 16 | export HISTSIZE=1000000 17 | export SAVEHIST=1000000 18 | 19 | # fzf 20 | export FZF_DEFAULT_OPTS='--color=fg:#d2ced9,hl:#86bfb6 --color=fg+:#edebef,bg+:#292433,hl+:#86bfb6 --color=info:#d9c77e,prompt:#abbf86,pointer:#d9989c --color=marker:#d9989c,spinner:#d9c77e,header:#4e4266' 21 | export ZSH_FZF_HISTORY_SEARCH_BIND="^[[A" 22 | export ZSH_FZF_HISTORY_SEARCH_EVENT_NUMBERS=0 23 | -------------------------------------------------------------------------------- /dot_pacman/pkglist_wsl.txt: -------------------------------------------------------------------------------- 1 | arch-install-scripts 2 | aria2 3 | autoconf 4 | automake 5 | base 6 | bat 7 | binutils 8 | bison 9 | exa 10 | fakeroot 11 | fd 12 | flex 13 | gcc 14 | git 15 | groff 16 | less 17 | libtool 18 | m4 19 | make 20 | man-db 21 | nano 22 | neofetch 23 | neovim 24 | nodejs 25 | npm 26 | pacman-contrib 27 | patch 28 | pkgconf 29 | python 30 | python-pip 31 | ranger 32 | scdoc 33 | starship 34 | sudo 35 | systemd 36 | texinfo 37 | texlive-bibtexextra 38 | texlive-core 39 | texlive-fontsextra 40 | texlive-formatsextra 41 | texlive-games 42 | texlive-humanities 43 | texlive-langjapanese 44 | texlive-latexextra 45 | texlive-music 46 | texlive-pictures 47 | texlive-pstricks 48 | texlive-publishers 49 | texlive-science 50 | vi 51 | vim 52 | wget 53 | which 54 | xorg-xeyes 55 | zsh 56 | -------------------------------------------------------------------------------- /dot_config/swaylock/config: -------------------------------------------------------------------------------- 1 | show-failed-attempts 2 | show-keyboard-layout 3 | color=19172488 4 | bs-hl-color=e0def4 5 | font=PlemolJPConsoleNF 6 | font-size=50 7 | indicator-idle-visible 8 | indicator-thickness=30 9 | indicator-radius=200 10 | inside-color=29243366 11 | inside-clear-color=00000000 12 | inside-ver-color=00000000 13 | inside-wrong-color=d9989c 14 | key-hl-color=ebbcba 15 | layout-bg-color=00000000 16 | layout-border-color=00000000 17 | layout-text-color=e0def4 18 | line-color=00000000 19 | line-clear-color=00000000 20 | line-ver-color=00000000 21 | line-wrong-color=d9989c 22 | ring-color=31748f 23 | ring-clear-color=e0def4 24 | ring-ver-color=d9c77e 25 | ring-wrong-color=d9989c 26 | separator-color=00000000 27 | text-color=e0def4 28 | text-clear-color=e0def4 29 | text-ver-color=e0def4 30 | text-wrong-color=292433 31 | -------------------------------------------------------------------------------- /dot_config/private_gtk-2.0/gtkrc: -------------------------------------------------------------------------------- 1 | # DO NOT EDIT! This file will be overwritten by LXAppearance. 2 | # Any customization should be done in ~/.gtkrc-2.0.mine instead. 3 | 4 | include "/home/haxibami/.gtkrc-2.0.mine" 5 | gtk-theme-name="WhiteSur-Light-alt-pink" 6 | gtk-icon-theme-name="WhiteSur" 7 | gtk-icon-sizes = "panel-menu=64,64:panel=64,64:gtk-menu=64,64:gtk-large-toolbar=64,64:gtk-small-toolbar=64,64:gtk-button=64,64:gtk-dnd=64,64:gtk-dialog=64,64" 8 | gtk-font-name="Noto Sans CJK JP 12" 9 | gtk-cursor-theme-name="Bibata-Original-Classic" 10 | gtk-cursor-theme-size=24 11 | gtk-toolbar-style=GTK_TOOLBAR_BOTH 12 | gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR 13 | gtk-button-images=1 14 | gtk-menu-images=1 15 | gtk-enable-event-sounds=1 16 | gtk-enable-input-feedback-sounds=1 17 | gtk-xft-antialias=1 18 | gtk-xft-hinting=1 19 | gtk-xft-hintstyle="hintfull" 20 | -------------------------------------------------------------------------------- /dot_config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | -- neovim config 2 | require('haxibami.core') 3 | 4 | -- plugins 5 | local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim' 6 | if not vim.loop.fs_stat(lazypath) then 7 | vim.fn.system({ 8 | 'git', 9 | 'clone', 10 | '--filter=blob:none', 11 | 'https://github.com/folke/lazy.nvim.git', 12 | '--branch=stable', -- latest stable release 13 | lazypath, 14 | }) 15 | end 16 | vim.opt.rtp:prepend(lazypath) 17 | 18 | local lazy_user_config = vim.api.nvim_create_augroup('lazy_user_config', { 19 | clear = false 20 | }) 21 | 22 | -- Example using a list of specs with the default options 23 | vim.g.mapleader = ' ' -- Make sure to set `mapleader` before lazy so your mappings are correct 24 | 25 | require('lazy').setup('plugins') 26 | 27 | -- load config 28 | require('haxibami.ddu') 29 | require('haxibami.tree-sitter') 30 | -------------------------------------------------------------------------------- /dot_config/zsh/async/completion.zsh: -------------------------------------------------------------------------------- 1 | # autocompletion 2 | fpath=( "$XDG_DATA_HOME"/zsh/site-functions $fpath ) 3 | autoload -Uz compinit 4 | compinit -d $XDG_CACHE_HOME/zsh/zcompdump-${ZSH_VERSION} 5 | 6 | # select completion 7 | zstyle ':completion:*' menu select 8 | zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' 9 | 10 | # disable sort when completing `git checkout` 11 | zstyle ':completion:*:git-checkout:*' sort false 12 | # set descriptions format to enable group support 13 | zstyle ':completion:*:descriptions' format '[%d]' 14 | # set list-colors to enable filename colorizing 15 | zstyle ':completion:*' list-colors ${(s.:.)LS_COLORS} 16 | # preview directory's content with exa when completing cd 17 | zstyle ':fzf-tab:complete:cd:*' fzf-preview 'exa -1 --color=always $realpath' 18 | # switch group using `,` and `.` 19 | zstyle ':fzf-tab:*' switch-group ',' '.' 20 | -------------------------------------------------------------------------------- /dot_bin/executable_swayon.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | XDG_SESSION_TYPE=wayland 4 | XDG_CURRENT_DESKTOP=sway 5 | XDG_CURRENT_SESSION=sway 6 | DESKTOP_SESSION=sway 7 | QT_QPA_PLATFORM="wayland;xcb" 8 | #GDK_DPI_SCALE=1.5 9 | #GDK_SCALE=2 10 | #QT_SCALE_FACTOR=1 11 | QT_AUTO_SCREEN_SCALE_FACTOR=0 12 | QT_QPA_PLATFORMTHEME=gnome 13 | QT_STYLE_OVERRIDE=kvantum 14 | QT_FONT_DPI=132 15 | MOZ_ENABLE_WAYLAND=1 16 | _JAVA_AWT_WM_NONREPARENTING=1 17 | #STUDIO_JDK=/usr/lib/jvm/java-11-openjdk 18 | #WLR_RENDERER=vulkan 19 | SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gcr/ssh" 20 | 21 | export XDG_SESSION_TYPE XDG_CURRENT_DESKTOP XDG_CURRENT_SESSION DESKTOP_SESSION QT_QPA_PLATFORM GDK_DPI_SCALE QT_SCALE_FACTOR QT_AUTO_SCREEN_SCALE_FACTOR QT_QPA_PLATFORMTHEME QT_STYLE_OVERRIDE QT_FONT_DPI MOZ_ENABLE_WAYLAND _JAVA_AWT_WM_NONREPARENTING WLR_RENDERER SSH_AUTH_SOCK; 22 | 23 | systemd-cat --identifier=sway sway "$@" 24 | -------------------------------------------------------------------------------- /dot_config/wofi/style.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: FirgeNerdConsole; 3 | font-size: 30px; 4 | color: @theme_fg_color; 5 | } 6 | 7 | window { 8 | margin: 0px; 9 | border-radius: 5px; 10 | background-color: @theme_base_color; 11 | box-shadow: 0px 19px 38px rgba(0, 0, 0, 0.3), 12 | 0px 15px 12px rgba(0, 0, 0, 0.22); 13 | } 14 | 15 | #input { 16 | margin: 10px; 17 | padding: 10px; 18 | border: none; 19 | background-color: @theme_bg_color; 20 | } 21 | 22 | #inner-box { 23 | border: none; 24 | } 25 | 26 | #outer-box { 27 | border: none; 28 | } 29 | 30 | #scroll { 31 | margin: 0px; 32 | } 33 | 34 | #text { 35 | margin: 15px; 36 | } 37 | 38 | #entry { 39 | margin: 5px; 40 | } 41 | 42 | #entry:selected { 43 | background-color: @unfocused_borders; 44 | border: none; 45 | } 46 | 47 | #selected #text { 48 | /*color: @fg_color;*/ 49 | } 50 | 51 | /* #img */ 52 | 53 | /* #unselected */ 54 | -------------------------------------------------------------------------------- /dot_config/alacritty/urara.yml: -------------------------------------------------------------------------------- 1 | # Base16 Urara - alacritty color config 2 | # haxibami 3 | colors: 4 | # Default colors 5 | primary: 6 | background: '0x1c1921' 7 | foreground: '0xd2ced9' 8 | 9 | # Colors the cursor will use if `custom_cursor_colors` is true 10 | cursor: 11 | text: '0x1c1921' 12 | cursor: '0xd2ced9' 13 | 14 | # Normal colors 15 | normal: 16 | black: '0x292433' 17 | red: '0xd9989c' 18 | green: '0xabbf86' 19 | yellow: '0xd9c77e' 20 | blue: '0x9986bf' 21 | magenta: '0xa6b4de' 22 | cyan: '0x86bfb6' 23 | white: '0xd2ced9' 24 | 25 | # Bright colors 26 | bright: 27 | black: '0x4e4266' 28 | red: '0xe6bbbe' 29 | green: '0xb8d2aa' 30 | yellow: '0xe4d7a4' 31 | blue: '0xb7aad2' 32 | magenta: '0xcbd3eb' 33 | cyan: '0xa5cec7' 34 | white: '0xedebef' 35 | 36 | draw_bold_text_with_bright_colors: false 37 | -------------------------------------------------------------------------------- /dot_bin/executable_myi3lock.sh: -------------------------------------------------------------------------------- 1 | #/bin/bash 2 | #THIS IS AN AUTOMATICALLY GENERATED SCRIPT BY i3lcc! 3 | #IF YOU EDIT IT, YOUR CHANGES MAY BE OVERWRITTEN! 4 | 5 | i3lock --lock-text "" -c 00000000 -B 15 --color 00000050 --ring-color D6ACFFFF --inside-color 00000080 --ringver-color F1FA8CFF --insidever-color 282A36FF --ringwrong-color FF6E6E80 --insidewrong-color FF6E6E80 --keyhl-color FF79C6FF --bshl-color F8F8F2FF --line-color 00000000 --separator-color 00000000 --time-str "%H:%M:%S" --date-str "%Y-%m-%d" --time-color FFFFFFFF --date-color FFFFFFFF --noinput-text "" --greeter-text "Type your password to unlock" --verif-text "" --wrong-text "" --greeter-color FFFFFFFF --verif-color FFFFFFFF --wrong-color 282A36FF --indicator --force-clock --ignore-empty-password --pass-power-keys --pass-volume-keys --pass-media-keys --pass-screen-keys --clock --radius 150 --ring-width 30 --time-font "Neuropol" --time-size=40 --date-font "Neuropol" --date-size=15 --greeter-font "Neuropol" 6 | -------------------------------------------------------------------------------- /dot_config/wofi/powermenu.css: -------------------------------------------------------------------------------- 1 | * { 2 | font-family: Neuropolitical, Plemol JP Console NF; 3 | font-size: 30; 4 | } 5 | 6 | window { 7 | margin: 0px; 8 | border: 2px solid #d9989c; 9 | background-color: #292433; 10 | border-radius: 5; 11 | } 12 | 13 | #input { 14 | margin: 10px; 15 | padding: 10px; 16 | border: none; 17 | color: #d9c77e; 18 | background-color: #211921; 19 | } 20 | 21 | #inner-box { 22 | margin: 5px; 23 | border: none; 24 | background-color: #292433; 25 | } 26 | 27 | #outer-box { 28 | margin: 20px; 29 | border: none; 30 | background-color: #292433; 31 | } 32 | 33 | #scroll { 34 | margin: 0px; 35 | border: none; 36 | } 37 | 38 | #text { 39 | margin: 8px; 40 | border: none; 41 | color: #d2ced9; 42 | } 43 | 44 | #entry { 45 | margin: 5px; 46 | background-color: #292433; 47 | } 48 | 49 | #entry:selected { 50 | background-color: #4e4266; 51 | } 52 | 53 | /* #img */ 54 | 55 | /* #unselected */ 56 | -------------------------------------------------------------------------------- /dot_bin/executable_pdfocr.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # requirement: pdftoppm, pdftk, tesseract 4 | 5 | if ! type "pdftoppm" > /dev/null 2>&1 || ! type "pdftk" > /dev/null 2>&1 || ! type "tesseract" > /dev/null 2>&1; then 6 | echo "Install pdftoppm, pdftk, and tesseract!" 7 | exit 1 8 | fi 9 | 10 | targetfile="$1" 11 | targetname="${1%.pdf}" 12 | lang="$2" 13 | output="$3" 14 | 15 | # convert to png image 16 | mkdir "${targetname}.tmp" 17 | # - png 18 | pdftoppm -png "${targetfile}" "${targetname}.tmp/page" 19 | 20 | # tesseract 21 | # - png 22 | find "./${targetname}.tmp" -type f -name "*.png" | sed 's/\.png$//' | xargs -P8 -n1 -I% tesseract %.png % -l ${lang} ${output} 23 | 24 | # Unite 25 | if [ ${output} = "pdf" ]; then 26 | pdftk "./${targetname}.tmp"/*.pdf cat output "${targetname}-ocr.pdf" 27 | elif [ ${output} = "txt" ]; then 28 | cat "./${targetname}.tmp"/*.txt > "${targetname}-ocr.txt" 29 | sed -i -e 's/ //g' "${targetname}-ocr.txt" 30 | fi 31 | 32 | # Clear 33 | rm -r "./${targetname}.tmp" 34 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/core.lua: -------------------------------------------------------------------------------- 1 | -- vars 2 | local homedir = vim.env.HOME 3 | local cachedir = homedir .. '/.cache/nvim' 4 | 5 | -- base 6 | vim.opt.backupdir = cachedir 7 | vim.opt.clipboard:prepend { 'unnamedplus' } 8 | vim.opt.cmdheight = 0 9 | vim.opt.directory = cachedir 10 | vim.opt.expandtab = true 11 | vim.opt.guifont = 'FirgeNerd Console:h12' 12 | vim.opt.hidden = true 13 | vim.opt.ignorecase = true 14 | vim.opt.laststatus = 2 15 | -- vim.opt.list = true 16 | -- vim.opt.listchars = 'trail:~,extends:»,precedes:«,nbsp:%' 17 | vim.opt.history = 10000 18 | vim.opt.number = true 19 | vim.opt.pumblend = 10 20 | vim.opt.shiftwidth = 2 21 | vim.opt.showcmd = true 22 | vim.opt.signcolumn = 'number' 23 | vim.opt.smartcase = true 24 | vim.opt.softtabstop = 2 25 | vim.opt.termguicolors = true 26 | vim.opt.title = true 27 | vim.opt.undodir = cachedir 28 | vim.opt.updatetime = 250 29 | vim.opt.wildmenu = true 30 | vim.opt.winblend = 0 31 | vim.opt.list = false 32 | vim.opt.completeopt = { 'menuone', 'noselect', 'preview' } 33 | -------------------------------------------------------------------------------- /dot_xinitrc: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | userresources=$HOME/.Xresources 4 | usermodmap=$HOME/.Xmodmap 5 | sysresources=/etc/X11/xinit/.Xresources 6 | sysmodmap=/etc/X11/xinit/.Xmodmap 7 | 8 | # merge in defaults and keymaps 9 | 10 | if [ -f $sysresources ]; then 11 | 12 | xrdb -load "$XDG_CONFIG_HOME/X11/xresources" 13 | xrdb -merge $sysresources 14 | 15 | fi 16 | 17 | if [ -f $sysmodmap ]; then 18 | xmodmap $sysmodmap 19 | fi 20 | 21 | if [ -f "$userresources" ]; then 22 | 23 | xrdb -load "$XDG_CONFIG_HOME/X11/xresources" 24 | xrdb -merge "$userresources" 25 | 26 | fi 27 | 28 | if [ -f "$usermodmap" ]; then 29 | xmodmap "$usermodmap" 30 | fi 31 | 32 | # start some nice programs 33 | 34 | if [ -d /etc/X11/xinit/xinitrc.d ] ; then 35 | for f in /etc/X11/xinit/xinitrc.d/?*.sh ; do 36 | [ -x "$f" ] && . "$f" 37 | done 38 | unset f 39 | fi 40 | 41 | ERRFILE="$XDG_CACHE_HOME/X11/xsession-errors" 42 | 43 | case $2 in 44 | "" | "i3" ) exec i3 ;; 45 | "exec" ) exec $3 ;; 46 | * ) ;; 47 | esac 48 | 49 | #eval $(/usr/bin/gnome-keyring-daemon --start --components=pkcs11,secrets,ssh) 50 | #export SSH_AUTH_LOCK 51 | -------------------------------------------------------------------------------- /dot_config/bat/config: -------------------------------------------------------------------------------- 1 | # This is `bat`s configuration file. Each line either contains a comment or 2 | # a command-line option that you want to pass to `bat` by default. You can 3 | # run `bat --help` to get a list of all possible configuration options. 4 | 5 | # Specify desired highlighting theme (e.g. "TwoDark"). Run `bat --list-themes` 6 | # for a list of all available themes 7 | --theme="ansi" 8 | 9 | # Enable this to use italic text on the terminal. This is not supported on all 10 | # terminal emulators (like tmux, by default): 11 | #--italic-text=always 12 | 13 | # Uncomment the following line to disable automatic paging: 14 | #--paging=never 15 | 16 | # Uncomment the following line if you are using less version >= 551 and want to 17 | # enable mouse scrolling support in `bat` when running inside tmux. This might 18 | # disable text selection, unless you press shift. 19 | #--pager="less --RAW-CONTROL-CHARS --quit-if-one-screen --mouse" 20 | 21 | # Syntax mappings: map a certain filename pattern to a language. 22 | # Example 1: use the C++ syntax for Arduino .ino files 23 | # Example 2: Use ".gitignore"-style highlighting for ".ignore" files 24 | #--map-syntax "*.ino:C++" 25 | #--map-syntax ".ignore:Git Ignore" 26 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/lsp/servers/lua_ls.lua: -------------------------------------------------------------------------------- 1 | return { 2 | settings = { 3 | Lua = { 4 | completion = { 5 | workspaceWord = true, 6 | callSnippet = 'Both', 7 | }, 8 | diagnostics = { 9 | groupSeverity = { 10 | strong = 'Warning', 11 | strict = 'Warning', 12 | }, 13 | groupFileStatus = { 14 | ['ambiguity'] = 'Opened', 15 | ['await'] = 'Opened', 16 | ['codestyle'] = 'None', 17 | ['duplicate'] = 'Opened', 18 | ['global'] = 'Opened', 19 | ['luadoc'] = 'Opened', 20 | ['redefined'] = 'Opened', 21 | ['strict'] = 'Opened', 22 | ['strong'] = 'Opened', 23 | ['type-check'] = 'Opened', 24 | ['unbalanced'] = 'Opened', 25 | ['unused'] = 'Opened', 26 | }, 27 | unusedLocalExclude = { '_*' }, 28 | }, 29 | runtime = { 30 | version = 'LuaJIT', 31 | }, 32 | workspace = { 33 | checkThirdParty = false, 34 | }, 35 | format = { 36 | enable = true, 37 | defaultConfig = { 38 | indent_style = 'space', 39 | indent_size = '2', 40 | quote_style = 'single', 41 | } 42 | } 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /dot_bin/executable_swayrec.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | pid=$(pgrep wl-screenrec) 4 | status=$? 5 | mode=$1 6 | 7 | if [ $status != 0 ] 8 | then 9 | if [ -z "$mode" ] 10 | then 11 | mode="area" 12 | fi; 13 | if [ "$mode" == "area" ] 14 | then 15 | notify-send --app-name="Recorder" --urgency=low --icon=media-record "wl-screenrec" "Recording start" 16 | wl-screenrec -f $(xdg-user-dir VIDEOS)/screencapture/$(date +'%Y-%m-%d_%H-%M-%S.mp4') -g "$(slurp)" 17 | elif [ "$mode" == "window" ] 18 | then 19 | notify-send --app-name="Recorder" --urgency=low --icon=media-record "wl-screenrec" "Recording start" 20 | wl-screenrec -f $(xdg-user-dir VIDEOS)/screencapture/$(date +'%Y-%m-%d_%H-%M-%S.mp4') -g "$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | select(.type=="con") | select(.focused==true) | .rect | "\(.x),\(.y) \(.width)x\(.height)"')" 21 | elif [ "$mode" == "output" ] 22 | then 23 | notify-send --app-name="Recorder" --urgency=low --icon=media-record "wl-screenrec" "Recording start" 24 | wl-screenrec -f $(xdg-user-dir VIDEOS)/screencapture/$(date +'%Y-%m-%d_%H-%M-%S.mp4') 25 | fi; 26 | else 27 | pkill --signal SIGINT wl-screenrec 28 | notify-send --app-name="Recorder" --urgency=low --icon=media-record "wl-screenrec" "Recording stopped" 29 | fi; 30 | -------------------------------------------------------------------------------- /dot_bin/executable_deploy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | set -ue 3 | 4 | helpmsg() { 5 | command echo "Usage: $0 [--help | -h]" 0>&2 6 | command echo "" 7 | } 8 | 9 | link_to_homedir() { 10 | command echo "backup old dotfiles..." 11 | if [ ! -d "$HOME/.dotbackup" ];then 12 | command echo "$HOME/.dotbackup not found. Auto Make it" 13 | command mkdir "$HOME/.dotbackup" 14 | fi 15 | 16 | local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd -P)" 17 | local dotdir=$(dirname ${script_dir}) 18 | if [[ "$HOME" != "$dotdir" ]];then 19 | for f in $dotdir/.??*; do 20 | [[ `basename $f` == ".git" ]] && continue 21 | if [[ -L "$HOME/`basename $f`" ]];then 22 | command rm -f "$HOME/`basename $f`" 23 | fi 24 | if [[ -e "$HOME/`basename $f`" ]];then 25 | command mv "$HOME/`basename $f`" "$HOME/.dotbackup" 26 | fi 27 | command ln -snf $f $HOME 28 | done 29 | else 30 | command echo "same install src dest" 31 | fi 32 | } 33 | 34 | while [ $# -gt 0 ];do 35 | case ${1} in 36 | --debug|-d) 37 | set -uex 38 | ;; 39 | --help|-h) 40 | helpmsg 41 | exit 1 42 | ;; 43 | *) 44 | ;; 45 | esac 46 | shift 47 | done 48 | 49 | link_to_homedir 50 | git config --global include.path "~/.gitconfig_shared" 51 | command echo -e "\e[1;36m Install completed!!!! \e[m" 52 | -------------------------------------------------------------------------------- /dot_bin/executable_swaypulse.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # script to choose pipewire default sink / source on wlroots-based compositor. 4 | # requirement: wofi, pw-dump, wpctl, notify-send 5 | 6 | OUTPUT_IMAGE=/usr/share/icons/WhiteSur/devices/scalable/audio-speakers.svg 7 | INPUT_IMAGE=/usr/share/icons/WhiteSur/devices/scalable/audio-input-microphone.svg 8 | 9 | setdefault () { 10 | entry=$(pw-dump | 11 | jq --arg which $1 '.[] | select (.info.props."media.class" == ("Audio/" +$which))' | 12 | jq -s '.[] | .id, .info.props."node.description"' | 13 | sed -z 's/\n"/ "/g' | 14 | tr -d \" | 15 | wofi -i -b -p $1-list -d -W 1200 -L 5) && 16 | id=$(echo -e ${entry} | awk '{print $1}') && 17 | wpctl set-default "${id}" && 18 | case $1 in 19 | Source) 20 | notify-send --urgency=low --icon=${INPUT_IMAGE} "PipeWire" "Default $1:\n${entry}" 21 | ;; 22 | Sink) 23 | notify-send --urgency=low --icon=${OUTPUT_IMAGE} "PipeWire" "Default $1:\n${entry}" 24 | ;; 25 | esac 26 | } 27 | 28 | mode=$(echo -e "img:${INPUT_IMAGE}:text:input\nimg:${OUTPUT_IMAGE}:text:output" | 29 | wofi -i -b -p Audio -d -O alphabetical -W 300 -L 2) && 30 | case $mode in 31 | *input) 32 | setdefault "Source" 33 | ;; 34 | *output) 35 | setdefault "Sink" 36 | ;; 37 | esac 38 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/tree-sitter.lua: -------------------------------------------------------------------------------- 1 | require('nvim-treesitter.configs').setup({ 2 | highlight = { 3 | enable = true, 4 | }, 5 | ensure_installed = { 6 | 'astro', 7 | 'awk', 8 | 'bash', 9 | 'bibtex', 10 | 'c', 11 | 'css', 12 | 'git_config', 13 | 'gitcommit', 14 | 'gitignore', 15 | 'go', 16 | 'html', 17 | 'ini', 18 | 'javascript', 19 | 'jsdoc', 20 | 'json', 21 | 'jsonc', 22 | 'latex', 23 | 'lua', 24 | 'markdown', 25 | 'markdown_inline', 26 | 'nix', 27 | 'ocaml', 28 | 'python', 29 | 'r', 30 | 'rust', 31 | 'scss', 32 | 'ssh_config', 33 | 'toml', 34 | 'tsx', 35 | 'typescript', 36 | 'vim', 37 | 'xml', 38 | 'yaml', 39 | 'zathurarc', 40 | }, 41 | 42 | }) 43 | 44 | local parser_config = require 'nvim-treesitter.parsers'.get_parser_configs() 45 | parser_config.typst = { 46 | install_info = { 47 | -- url = 'https://github.com/frozolotl/tree-sitter-typst', 48 | url = 'https://github.com/uben0/tree-sitter-typst', 49 | files = { 'src/parser.c', 'src/scanner.c' }, 50 | -- branch = 'master', -- optional, default is 'master' 51 | generate_requires_npm = true, 52 | -- requires_generate_from_grammar = false, 53 | }, 54 | filetype = 'typst', -- if filetype does not match the parser name 55 | } 56 | -------------------------------------------------------------------------------- /dot_bin/executable_gtk-modeswitch.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # a script to switch GTK theme according to time 4 | # requires: gsettings, sunwait 5 | 6 | MODE=$1 7 | GTK_LIGHT_THEME="WhiteSur-Light-alt-pink" 8 | GTK_LIGHT_ICON_THEME="WhiteSur" 9 | KVANTUM_THEME="WhiteSur" 10 | GTK_DARK_THEME="WhiteSur-Dark-alt-pink" 11 | GTK_DARK_ICON_THEME="WhiteSur-dark" 12 | KVANTUM_DARK_THEME="WhiteSurDark" 13 | 14 | function setlighttheme() { 15 | gsettings set org.gnome.desktop.interface gtk-theme $GTK_LIGHT_THEME 16 | gsettings set org.gnome.desktop.interface icon-theme $GTK_LIGHT_ICON_THEME 17 | gsettings set org.gnome.desktop.interface color-scheme "prefer-light" 18 | kvantummanager --set $KVANTUM_THEME > /dev/null 2>&1 19 | } 20 | 21 | function setdarktheme() { 22 | gsettings set org.gnome.desktop.interface gtk-theme $GTK_DARK_THEME 23 | gsettings set org.gnome.desktop.interface icon-theme $GTK_DARK_ICON_THEME 24 | gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" 25 | kvantummanager --set $KVANTUM_DARK_THEME > /dev/null 2>&1 26 | } 27 | 28 | function switchtheme() { 29 | DAYORNIGHT=$(sunwait poll 35N 140E) 30 | if [[ "$DAYORNIGHT" == "DAY" ]]; then 31 | setlighttheme 32 | else 33 | setdarktheme 34 | fi 35 | } 36 | 37 | if [ "$MODE" = "day" ]; then 38 | setlighttheme 39 | elif [ "$MODE" = "night" ]; then 40 | setdarktheme 41 | else 42 | switchtheme 43 | fi 44 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/lsp/keymap.lua: -------------------------------------------------------------------------------- 1 | -- lsp common keymaps 2 | 3 | local utils = require('haxibami.lsp.utils') 4 | 5 | utils.on_attach(function(client, bufnr) 6 | local bufopts = { noremap = true, silent = true, buffer = bufnr } 7 | vim.keymap.set('n', 'D', vim.lsp.buf.declaration, bufopts) 8 | vim.keymap.set('n', 'd', function() 9 | vim.api.nvim_command('tab split') 10 | vim.lsp.buf.definition() 11 | end, bufopts) 12 | vim.keymap.set('n', 'h', vim.lsp.buf.hover, bufopts) 13 | vim.keymap.set('n', 'i', function() 14 | vim.api.nvim_command('tab split') 15 | vim.lsp.buf.implementation() 16 | end, bufopts) 17 | vim.keymap.set('n', 's', vim.lsp.buf.signature_help, bufopts) 18 | vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder, bufopts) 19 | vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder, bufopts) 20 | vim.keymap.set('n', 'wl', function() 21 | print(vim.inspect(vim.lsp.buf.list_workspace_folders())) 22 | end, bufopts) 23 | vim.keymap.set('n', 't', function() 24 | vim.api.nvim_command('tab split') 25 | vim.lsp.buf.type_definition() 26 | end, bufopts) 27 | vim.keymap.set('n', 'rn', vim.lsp.buf.rename, bufopts) 28 | vim.keymap.set('n', 'ca', vim.lsp.buf.code_action, bufopts) 29 | vim.keymap.set('n', 'r', vim.lsp.buf.references, bufopts) 30 | vim.keymap.set('n', 'f', vim.lsp.buf.format, bufopts) 31 | end) 32 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/lsp/null-ls.lua: -------------------------------------------------------------------------------- 1 | -- null-ls setup 2 | 3 | local none_ls_status_ok, none_ls = pcall(require, 'null-ls') 4 | if not none_ls_status_ok then 5 | vim.notify('Error loading Null-LS') 6 | return 7 | end 8 | 9 | local config = require('haxibami.lsp.config') 10 | 11 | none_ls.setup { 12 | sources = { 13 | none_ls.builtins.formatting.biome.with({ 14 | condition = function(utils) 15 | return not (utils.root_has_file { 'deps.ts', 'deno.json' } or utils.root_has_file_matches('.?prettier*')) 16 | end, 17 | filetypes = { 18 | 'javascript', 'javascriptreact', 'typescript', 'typescriptreact' }, 19 | prefer_local = 'node_modules/.bin', 20 | }), 21 | 22 | none_ls.builtins.formatting.prettierd.with({ 23 | filetypes = { 'yaml' }, 24 | }), 25 | 26 | none_ls.builtins.formatting.prettierd.with({ 27 | condition = function(utils) 28 | return utils.root_has_file_matches('.?prettier*') 29 | end, 30 | filetypes = { 'javascript', 'javascriptreact', 'typescript', 'typescriptreact' } 31 | }), 32 | 33 | -- none_ls.builtins.formatting.dprint.with({ 34 | -- filetypes = { 'markdown', 'markdown.mdx' }, 35 | -- }), 36 | 37 | none_ls.builtins.diagnostics.markdownlint.with({ 38 | filetypes = { 'markdown' }, 39 | }), 40 | 41 | -- none_ls.builtins.formatting.ruff, 42 | 43 | -- none_ls.builtins.formatting.clang_format, 44 | 45 | }, 46 | capabilities = config.capabilities, 47 | on_attach = config.on_attach, 48 | } 49 | -------------------------------------------------------------------------------- /dot_bin/executable_setdark.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # a script to switch GTK theme according to time 4 | # requires: gsettings 5 | 6 | GTK_DARK_THEME="Catppuccin-Mocha-Standard-Mauve-Dark" 7 | GTK_DARK_ICON_THEME="WhiteSur-dark" 8 | GTK_DARK_CURSOR_THEME="Bibata-Original-Classic" 9 | KVANTUM_DARK_THEME="Catppuccin-Mocha-Mauve" 10 | XSETTINGS_CONF="$HOME/.config/xsettingsd/xsettingsd.conf" 11 | 12 | function setdarktheme() { 13 | # GTK 14 | gsettings set org.gnome.desktop.interface gtk-theme $GTK_DARK_THEME 15 | gsettings set org.gnome.desktop.interface icon-theme $GTK_DARK_ICON_THEME 16 | gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" 17 | # GTK4 18 | cp /usr/share/themes/$GTK_DARK_THEME/gtk-4.0/gtk.css ~/.config/gtk-4.0/gtk.css 19 | cp /usr/share/themes/$GTK_DARK_THEME/gtk-4.0/gtk-dark.css ~/.config/gtk-4.0/gtk-dark.css 20 | # QT (kvantum) 21 | kvantummanager --set $KVANTUM_DARK_THEME > /dev/null 2>&1 22 | # GTK (XWayland) 23 | sed -i --follow-symlinks "s:Net/ThemeName .*:Net/ThemeName \"$GTK_DARK_THEME\":g" $XSETTINGS_CONF 24 | sed -i --follow-symlinks "s:Net/IconThemeName .*:Net/IconThemeName \"$GTK_DARK_ICON_THEME\":g" $XSETTINGS_CONF 25 | sed -i --follow-symlinks "s:Gtk/CursorThemeName .*:Gtk/CursorThemeName \"$GTK_DARK_CURSOR_THEME\":g" $XSETTINGS_CONF 26 | if [[ `pidof xsettingsd` ]]; then 27 | killall -HUP xsettingsd 28 | else 29 | xsettingsd & 30 | fi 31 | } 32 | 33 | setdarktheme 34 | 35 | notify-send --app-name="darkman" --urgency=low --icon=weather-clear-night "darkman" "switching to dark mode" 36 | -------------------------------------------------------------------------------- /dot_config/zsh/dot_zshenv: -------------------------------------------------------------------------------- 1 | # system 2 | export XDG_DATA_HOME=$HOME/.local/share 3 | export XDG_CONFIG_HOME=$HOME/.config 4 | export XDG_STATE_HOME=$HOME/.local/state 5 | export XDG_CACHE_HOME=$HOME/.cache 6 | export PATH=/opt/rocm/hip/bin:/opt/rocm/bin:$HOME/.deno/bin:$XDG_DATA_HOME/go/bin:$HOME/.local/bin:$XDG_DATA_HOME/cargo/bin:$HOME/.cabal/bin:$PATH 7 | export EDITOR=nvim 8 | export VISUAL=nvim 9 | 10 | # lang 11 | export RUSTUP_HOME="$XDG_DATA_HOME"/rustup 12 | export CARGO_HOME="$XDG_DATA_HOME"/cargo 13 | export GOPATH="$XDG_DATA_HOME"/go 14 | export GHCUP_USE_XDG_DIRS=true 15 | export STACK_ROOT="$XDG_DATA_HOME"/stack 16 | export PYTHONSTARTUP="$XDG_CONFIG_HOME"/python/pythonrc 17 | export OPAMROOT="$XDG_DATA_HOME/opam" 18 | export KERAS_HOME="${XDG_STATE_HOME}/keras" 19 | 20 | # app 21 | export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc 22 | export FFMPEG_DATADIR="$XDG_CONFIG_HOME"/ffmpeg 23 | export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc 24 | export XAUTHORITY="$XDG_RUNTIME_DIR"/Xauthority 25 | export TEXMFVAR="$XDG_CACHE_HOME"/texlive/texmf-var 26 | export DVDCSS_CACHE="$XDG_DATA_HOME"/dvdcss 27 | export LESSHISTFILE="$XDG_CACHE_HOME"/less/history 28 | export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel 29 | export ANDROID_HOME="$XDG_DATA_HOME"/android 30 | export WINEPREFIX="$XDG_DATA_HOME"/wine 31 | export SQLITE_HISTORY="$XDG_CACHE_HOME"/sqlite_history 32 | export FLY_CONFIG_DIR="$XDG_STATE_HOME"/fly 33 | export EASYOCR_MODULE_PATH="$XDG_CONFIG_HOME"/EasyOCR 34 | export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle 35 | export WINEPREFIX="$XDG_DATA_HOME"/wine 36 | 37 | # vim: set ft=zsh : 38 | -------------------------------------------------------------------------------- /dot_bin/executable_setlight.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # a script to switch GTK theme according to time 4 | # requires: gsettings 5 | 6 | GTK_LIGHT_THEME="Catppuccin-Latte-Standard-Mauve-Light" 7 | GTK_LIGHT_ICON_THEME="WhiteSur" 8 | GTK_LIGHT_CURSOR_THEME="Bibata-Original-Classic" 9 | KVANTUM_LIGHT_THEME="Catppuccin-Latte-Mauve" 10 | XSETTINGS_CONF="$HOME/.config/xsettingsd/xsettingsd.conf" 11 | 12 | function setlighttheme() { 13 | # GTK 14 | gsettings set org.gnome.desktop.interface gtk-theme $GTK_LIGHT_THEME 15 | gsettings set org.gnome.desktop.interface icon-theme $GTK_LIGHT_ICON_THEME 16 | gsettings set org.gnome.desktop.interface color-scheme "prefer-light" 17 | # GTK4 18 | cp /usr/share/themes/$GTK_LIGHT_THEME/gtk-4.0/gtk.css ~/.config/gtk-4.0/gtk.css 19 | cp /usr/share/themes/$GTK_LIGHT_THEME/gtk-4.0/gtk-dark.css ~/.config/gtk-4.0/gtk-dark.css 20 | # QT (kvantum) 21 | kvantummanager --set $KVANTUM_LIGHT_THEME > /dev/null 2>&1 22 | # GTK (XWayland) 23 | sed -i --follow-symlinks "s:Net/ThemeName .*:Net/ThemeName \"$GTK_LIGHT_THEME\":g" $XSETTINGS_CONF 24 | sed -i --follow-symlinks "s:Net/IconThemeName .*:Net/IconThemeName \"$GTK_LIGHT_ICON_THEME\":g" $XSETTINGS_CONF 25 | sed -i --follow-symlinks "s:Gtk/CursorThemeName .*:Gtk/CursorThemeName \"$GTK_LIGHT_CURSOR_THEME\":g" $XSETTINGS_CONF 26 | if [[ `pidof xsettingsd` ]]; then 27 | killall -HUP xsettingsd 28 | else 29 | xsettingsd & 30 | fi 31 | } 32 | 33 | setlighttheme 34 | 35 | makoctl set-mode default 36 | 37 | notify-send --app-name="darkman" --urgency=low --icon=weather-clear "darkman" "switching to light mode" 38 | -------------------------------------------------------------------------------- /dot_config/sheldon/plugins.toml: -------------------------------------------------------------------------------- 1 | # `sheldon` configuration file 2 | # ---------------------------- 3 | # 4 | # You can modify this file directly or you can use one of the following 5 | # `sheldon` commands which are provided to assist in editing the config file: 6 | # 7 | # - `sheldon add` to add a new plugin to the config file 8 | # - `sheldon edit` to open up the config file in the default editor 9 | # - `sheldon remove` to remove a plugin from the config file 10 | # 11 | # See the documentation for more https://github.com/rossmacarthur/sheldon#readme 12 | 13 | shell = "zsh" 14 | 15 | apply = ["defer"] 16 | 17 | [plugins.zsh-defer] 18 | github = "romkatv/zsh-defer" 19 | apply = ["source"] 20 | 21 | [templates] 22 | defer = "{{ hooks?.pre | nl }}{% for file in files %}zsh-defer source \"{{ file }}\"\n{% endfor %}{{ hooks?.post | nl }}" 23 | 24 | [plugins.compinit] 25 | inline = 'autoload -Uz compinit && zsh-defer compinit -d $XDG_CACHE_HOME/zsh/zcompdump-${ZSH_VERSION}' 26 | 27 | [plugins.fzf-tab] 28 | github = "Aloxaf/fzf-tab" 29 | 30 | [plugins.fast-syntax-highlighting] 31 | github = "zdharma-continuum/fast-syntax-highlighting" 32 | 33 | [plugins.zsh-autosuggestions] 34 | github = "zsh-users/zsh-autosuggestions" 35 | 36 | [plugins.zsh-fzf-history-search] 37 | github = "joshskidmore/zsh-fzf-history-search" 38 | 39 | #[plugins.fzf-tab-completion] 40 | #remote = "https://raw.githubusercontent.com/lincheney/fzf-tab-completion/master/zsh/fzf-zsh-completion.sh" 41 | 42 | [plugins.config-defers] 43 | local = "~/.config/zsh/async" 44 | use = ["*.zsh"] 45 | 46 | [plugins.config-sync] 47 | local = "~/.config/zsh/sync" 48 | use = ["sync.zsh"] 49 | apply = ["source"] 50 | -------------------------------------------------------------------------------- /dot_vimrc: -------------------------------------------------------------------------------- 1 | "" vim config 2 | 3 | "" dein.vim setup 4 | if &compatible 5 | set nocompatible 6 | endif 7 | filetype off 8 | "" append to runtime path 9 | set rtp+=~/.cache/dein/repos/github.com/Shougo/dein.vim 10 | "" initialize dein, plugins are installed to this directory 11 | call dein#begin('~/.cache/dein') 12 | "" install packages from toml file 13 | let s:toml_dir = $HOME . '/.vim/dein' 14 | let s:toml = s:toml_dir . '/dein.toml' 15 | let s:lazy_toml = s:toml_dir . '/dein_lazy.toml' 16 | call dein#load_toml(s:toml, {'lazy': 0}) 17 | call dein#load_toml(s:lazy_toml, {'lazy': 1}) 18 | "" exit dein 19 | call dein#end() 20 | "" auto-install missing packages on startup 21 | if dein#check_install() 22 | call dein#install() 23 | endif 24 | 25 | "" source files 26 | if filereadable(expand('$HOME/.secure/dein_update.vim')) 27 | source $HOME/.secure/dein_update.vim 28 | endif 29 | 30 | command! DeinUpdate call dein#check_update(v:true) 31 | 32 | filetype plugin indent on 33 | 34 | ""display 35 | set termguicolors 36 | syntax enable 37 | colorscheme urara 38 | set ambiwidth=double 39 | set wildmenu 40 | set hidden 41 | set nobackup 42 | set nowritebackup 43 | set updatetime=300 44 | set shortmess+=c 45 | set signcolumn=number 46 | set title 47 | set number 48 | set showmatch matchtime=1 49 | set cmdheight=2 50 | set laststatus=2 51 | set showcmd 52 | set history=10000 53 | set expandtab 54 | set shiftwidth=2 55 | set softtabstop=2 56 | set tabstop=2 57 | set showmatch 58 | set shortmess-=S 59 | 60 | "" enable clipboard integration 61 | set clipboard& 62 | set clipboard^=unnamedplus 63 | 64 | "" search 65 | set ignorecase 66 | set smartcase 67 | set wrapscan 68 | set hlsearch 69 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/lsp/ui.lua: -------------------------------------------------------------------------------- 1 | -- lsp status viewer 2 | -- require('fidget').setup { 3 | -- text = { 4 | -- spinner = 'dots', 5 | -- }, 6 | -- window = { 7 | -- blend = 0, 8 | -- } 9 | -- } 10 | 11 | -- signs 12 | local signs = { 13 | { name = 'DiagnosticSignError', text = '' }, 14 | { name = 'DiagnosticSignWarn', text = '' }, 15 | { name = 'DiagnosticSignHint', text = '' }, 16 | { name = 'DiagnosticSignInfo', text = '' }, 17 | } 18 | 19 | for _, sign in ipairs(signs) do 20 | vim.fn.sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = '' }) 21 | end 22 | 23 | -- local icons = { 24 | -- Text = ' ', 25 | -- Method = ' ', 26 | -- Function = 'ƒ ', 27 | -- Constructor = ' ', 28 | -- Field = ' ', 29 | -- Variable = ' ', 30 | -- Class = ' ', 31 | -- Interface = ' ', 32 | -- Module = ' ', 33 | -- Property = ' ', 34 | -- Unit = ' ', 35 | -- Value = ' ', 36 | -- Enum = ' ', 37 | -- Keyword = ' ', 38 | -- Snippet = ' ', 39 | -- Color = ' ', 40 | -- File = ' ', 41 | -- Reference = ' ', 42 | -- Folder = ' ', 43 | -- EnumMember = ' ', 44 | -- Constant = ' ', 45 | -- Struct = ' ', 46 | -- Event = ' ', 47 | -- Operator = ' ', 48 | -- TypeParameter = ' ', 49 | -- } 50 | -- 51 | -- local kinds = vim.lsp.protocol.CompletionItemKind 52 | -- 53 | -- for i, kind in ipairs(kinds) do 54 | -- vim.lsp.protocol.CompletionItemKind[i] = icons[kind] or kind 55 | -- end 56 | -- 57 | -- local hoge = { 58 | -- '', ' ', ' ', '', 'ﴲ', '[]', '', 'ﰮ', '', '襁', '', '', '練', '', '', '', 59 | -- '', '', '', '', 'ﲀ', 'ﳤ', '', '', '' 60 | -- } 61 | -------------------------------------------------------------------------------- /dot_config/polybar/scripts/executable_get_spotify_status.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # The name of polybar bar which houses the main spotify module and the control modules. 4 | PARENT_BAR="now-playing" 5 | PARENT_BAR_PID=$(pgrep -a "polybar" | grep "$PARENT_BAR" | cut -d" " -f1) 6 | 7 | # Set the source audio player here. 8 | # Players supporting the MPRIS spec are supported. 9 | # Examples: spotify, vlc, chrome, mpv and others. 10 | # Use `playerctld` to always detect the latest player. 11 | # See more here: https://github.com/altdesktop/playerctl/#selecting-players-to-control 12 | PLAYER="playerctld" 13 | 14 | # Format of the information displayed 15 | # Eg. {{ artist }} - {{ album }} - {{ title }} 16 | # See more attributes here: https://github.com/altdesktop/playerctl/#printing-properties-and-metadata 17 | FORMAT="{{ title }} - {{ artist }}" 18 | 19 | # Sends $2 as message to all polybar PIDs that are part of $1 20 | update_hooks() { 21 | while IFS= read -r id 22 | do 23 | polybar-msg -p "$id" hook spotify-play-pause $2 1>/dev/null 2>&1 24 | done < <(echo "$1") 25 | } 26 | 27 | PLAYERCTL_STATUS=$(playerctl --player=$PLAYER status 2>/dev/null) 28 | EXIT_CODE=$? 29 | 30 | if [ $EXIT_CODE -eq 0 ]; then 31 | STATUS=$PLAYERCTL_STATUS 32 | else 33 | STATUS="No player is running" 34 | fi 35 | 36 | if [ "$1" == "--status" ]; then 37 | echo "$STATUS" 38 | else 39 | if [ "$STATUS" = "Stopped" ]; then 40 | echo "No music is playing" 41 | elif [ "$STATUS" = "Paused" ]; then 42 | update_hooks "$PARENT_BAR_PID" 2 43 | playerctl --player=$PLAYER metadata --format "$FORMAT" 44 | elif [ "$STATUS" = "No player is running" ]; then 45 | echo "$STATUS" 46 | else 47 | update_hooks "$PARENT_BAR_PID" 1 48 | playerctl --player=$PLAYER metadata --format "$FORMAT" 49 | fi 50 | fi -------------------------------------------------------------------------------- /dot_config/nvim/ftdetect/filetype.lua: -------------------------------------------------------------------------------- 1 | -- vim:fdm=marker:fmr=§§,■■ 2 | 3 | -- §§1 SATySFi 4 | local augroupid = vim.api.nvim_create_augroup('vimrc', { 5 | clear = false 6 | }) 7 | 8 | vim.api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { 9 | group = augroupid, 10 | pattern = { '*.saty', '*.satyg', '*.satyh' }, 11 | callback = function() vim.opt.filetype = 'satysfi' end 12 | }) 13 | 14 | vim.api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { 15 | group = augroupid, 16 | pattern = { 'Satyristes' }, 17 | callback = function() vim.opt.filetype = 'lisp' end 18 | }) 19 | 20 | -- vim.cmd([[ 21 | -- augroup vimrc 22 | -- autocmd BufRead,BufNewFile *.saty setfiletype satysfi 23 | -- autocmd BufRead,BufNewFile *.satyg setfiletype satysfi 24 | -- autocmd BufRead,BufNewFile Satyristes setfiletype lisp 25 | -- autocmd BufRead,BufNewFile *.saty nnoremap @o :!open %:r.pdf 26 | -- autocmd BufRead,BufNewFile *.saty nnoremap @q :!satysfi % 27 | -- autocmd BufRead,BufNewFile *.saty nnoremap @Q :!satysfi --debug-show-bbox --debug-show-space --debug-show-block-bbox --debug-show-block-space --debug-show-overfull % 28 | -- augroup END 29 | -- ]]) 30 | 31 | -- §§1 Typst 32 | vim.api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { 33 | group = augroupid, 34 | pattern = { '*.typ', '*.typc' }, 35 | callback = function() vim.opt.filetype = 'typst' end 36 | }) 37 | -- §§ 38 | -- §§1 Astro 39 | vim.api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { 40 | group = augroupid, 41 | pattern = { '*.astro' }, 42 | callback = function() vim.opt.filetype = 'astro' end 43 | }) 44 | -- §§ 45 | -- §§1 MDX 46 | vim.api.nvim_create_autocmd({ 'BufRead', 'BufNewFile' }, { 47 | group = augroupid, 48 | pattern = { '*.mdx' }, 49 | callback = function() vim.opt.filetype = 'markdown.mdx' end 50 | }) 51 | -- §§ 52 | -------------------------------------------------------------------------------- /dot_config/avizo/config.ini: -------------------------------------------------------------------------------- 1 | [default] 2 | # The time to show the notification for. 3 | time = 4.0 4 | 5 | # The base directory to resolve relative image-path against (default is $XDG_DATA_HOME/avizo). 6 | ;image-base-dir = 7 | 8 | # The image opacity; allowed values range from 0 (fully transparent) to 1.0 (fully opaque). 9 | ;image-opacity = 1.0 10 | 11 | # The width of the notification. 12 | width = 300 13 | 14 | # The height of the notification. 15 | height = 284 16 | 17 | # The inner padding of the notification. 18 | ;padding = 24 19 | 20 | # A relative offset of the notification to the top of the screen. 21 | # Allowed values range from 0 (top) to 1.0 (bottom). 22 | y-offset = 0.5 23 | 24 | # The border radius of the notification in px. 25 | ;border-radius = 16 26 | 27 | # Sets the border width of the notification in px. 28 | ;border-width = 1 29 | 30 | # The block height of the progress indicator. 31 | block-height = 12 32 | 33 | # The spacing between blocks in the progress indicator. 34 | ;block-spacing = 2 35 | 36 | # Sets the amount of blocks in the progress indicator. 37 | ;block-count = 20 38 | 39 | # Sets the fade in animation duration in seconds. 40 | fade-in = 0.2 41 | 42 | # Sets the fade out animation duration in seconds. 43 | fade-out = 1.0 44 | 45 | # The color of the notification background in format: rgba([0, 255], [0, 255], [0, 255], [0, 1]). 46 | background = rgba(217, 217, 217, 0.85) 47 | 48 | # Sets the color of the notification border in format rgba([0, 255], [0, 255], [0, 255], [0, 1]). 49 | border-color = rgba(90, 90, 90, 0.8) 50 | 51 | # The color of the filled bar blocks in format: rgba([0, 255], [0, 255], [0, 255], [0, 1]). 52 | bar-fg-color = rgba(0, 0, 0, 1) 53 | 54 | # The color of the unfilled bar blocks in format rgba([0, 255], [0, 255], [0, 255], [0, 1]). 55 | # Defaults to 'background' with 2/3 brightness. 56 | ;bar-bg-color = 57 | -------------------------------------------------------------------------------- /dot_config/joshuto/joshuto.toml: -------------------------------------------------------------------------------- 1 | # This is for configuring how many items to reach before 'scrolling' the view 2 | scroll_offset = 6 3 | 4 | # If joshuto does not know how to open the file, it can resort to opening it via xdg settings 5 | xdg_open = false 6 | 7 | # Fork xdg_open so you can continue using joshuto with application open 8 | xdg_open_fork = false 9 | 10 | # Use system trash can instead of permanently removing files 11 | use_trash = true 12 | 13 | # Watch for filesystem changes and update directory listings accordingly 14 | watch_files = true 15 | 16 | # The maximum file size to show a preview for 17 | max_preview_size = 2097152 # 2MB 18 | 19 | # Configurations related to the display 20 | [display] 21 | # Different view layouts 22 | # Options include 23 | # - default 24 | # - hsplit 25 | mode = "default" 26 | 27 | # Collapse the preview window when there is no preview available 28 | collapse_preview = true 29 | 30 | # Ratios for parent view, current view and preview. You can specify 0 for 31 | # parent view or omit it (So there are only 2 nums) and it won't be displayed 32 | column_ratio = [1, 3, 4] 33 | 34 | # Show borders around different views 35 | show_borders = true 36 | 37 | # Show hidden files 38 | show_hidden = false 39 | 40 | # Show file icons (requires a supporting font) 41 | show_icons = true 42 | 43 | # Shorten /home/$USER to ~ 44 | tilde_in_titlebar = true 45 | 46 | # Options include 47 | # - none 48 | # - absolute 49 | # - relative 50 | line_number_style = "none" 51 | 52 | # Configurations related to file sorting 53 | [display.sort] 54 | # Options include 55 | # - lexical (10.txt comes before 2.txt) 56 | # - natural (2.txt comes before 10.txt) 57 | # - mtime 58 | method = "natural" 59 | 60 | # case sensitive sorting 61 | case_sensitive = false 62 | 63 | # show directories first 64 | directories_first = true 65 | 66 | # sort in reverse 67 | reverse = false 68 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/lsp/setup.lua: -------------------------------------------------------------------------------- 1 | -- lsp installation & setup 2 | 3 | local masonlspconfig_status, masonlspconfig = pcall(require, 'mason-lspconfig') 4 | if not masonlspconfig_status then 5 | vim.notify('Error loading mason-lspconfig') 6 | return 7 | end 8 | 9 | local lspconfig_status, lspconfig = pcall(require, 'lspconfig') 10 | if not lspconfig_status then 11 | vim.notify('Error loading lspconfig') 12 | return 13 | end 14 | 15 | local common_config = require('haxibami.lsp.config') 16 | local create_config = require('haxibami.lsp.utils').create_config 17 | 18 | -- local servers = { 19 | -- 'astro', 20 | -- 'awk_ls', 21 | -- 'bashls', 22 | -- 'clangd', 23 | -- 'cmake', 24 | -- 'cssls', 25 | -- 'cssmodules_ls', 26 | -- -- 'denols', 27 | -- 'dockerls', 28 | -- 'dotls', 29 | -- 'eslint', 30 | -- 'gopls', 31 | -- 'hls', 32 | -- 'html', 33 | -- 'jsonls', 34 | -- 'lemminx', 35 | -- 'lua_ls', 36 | -- 'nil_ls', 37 | -- 'ocamllsp', 38 | -- 'pylyzer', 39 | -- 'r_language_server', 40 | -- 'ruff', 41 | -- 'rust_analyzer', 42 | -- 'taplo', 43 | -- 'texlab', 44 | -- 'tsserver', 45 | -- 'typst_lsp', 46 | -- 'vimls', 47 | -- 'yamlls', 48 | -- } 49 | 50 | local server_file = vim.split(vim.fn.glob(vim.fn.stdpath('config') .. '/lua/haxibami/lsp/servers/*.lua'), '\n') 51 | 52 | local handlers = function() 53 | local setup_fn = { 54 | function(server_name) 55 | lspconfig[server_name].setup(common_config) 56 | end, 57 | } 58 | 59 | for _, server in ipairs(server_file) do 60 | local server_name = server:match('^.*/(.*)%.lua$') 61 | setup_fn[server_name] = function() 62 | local server_config = create_config(require('haxibami.lsp.servers.' .. server_name)) 63 | lspconfig[server_name].setup(server_config) 64 | end 65 | end 66 | 67 | return setup_fn 68 | end 69 | 70 | masonlspconfig.setup_handlers(handlers()) 71 | 72 | lspconfig['satysfi-ls'].setup { 73 | autostart = true 74 | } 75 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/lsp/config.lua: -------------------------------------------------------------------------------- 1 | -- lsp common config 2 | 3 | -- client capabilities 4 | 5 | local capabilities = require('ddc_source_lsp').make_client_capabilities() 6 | 7 | -- local capabilities = vim.lsp.protocol.make_client_capabilities() 8 | -- capabilities.textDocument.completion.completionItem.documentationFormat = { 'markdown', 'plaintext' } 9 | -- capabilities.textDocument.completion.completionItem.snippetSupport = true 10 | -- capabilities.textDocument.completion.completionItem.preselectSupport = true 11 | -- capabilities.textDocument.completion.completionItem.insertReplaceSupport = true 12 | -- capabilities.textDocument.completion.completionItem.labelDetailsSupport = true 13 | -- capabilities.textDocument.completion.completionItem.deprecatedSupport = true 14 | -- capabilities.textDocument.completion.completionItem.commitCharactersSupport = true 15 | -- capabilities.textDocument.completion.completionItem.tagSupport = { valueSet = { 1 } } 16 | -- capabilities.textDocument.completion.completionItem.resolveSupport = { 17 | -- properties = { 18 | -- 'documentation', 19 | -- 'detail', 20 | -- 'additionalTextEdits', 21 | -- } 22 | -- } 23 | -- 24 | -- capabilities.textDocument.foldingRange = { 25 | -- dynamicRegistration = true, 26 | -- lineFoldingOnly = true, 27 | -- } 28 | 29 | return { 30 | capabilities = capabilities, 31 | 32 | handlers = { 33 | ['textDocument/hover'] = function(_, result, ctx, config) 34 | local util = require('vim.lsp.util') 35 | config = config or {} 36 | config.focus_id = ctx.method 37 | if not (result and result.contents) then 38 | return 39 | end 40 | local markdown_lines = util.convert_input_to_markdown_lines(result.contents) 41 | markdown_lines = util.trim_empty_lines(markdown_lines) 42 | if vim.tbl_isempty(markdown_lines) then 43 | return 44 | end 45 | return util.open_floating_preview(markdown_lines, 'markdown', { border = 'rounded' }) 46 | end, 47 | }, 48 | } 49 | -------------------------------------------------------------------------------- /dot_pacman/pkglist_desktop_foreign.txt: -------------------------------------------------------------------------------- 1 | alhp-keyring 2 | alhp-mirrorlist 3 | amberol 4 | amd-vulkan-prefixes 5 | amdgpu-pro-oglp 6 | amdgpu_top 7 | amf-amdgpu-pro 8 | ansifilter 9 | anytype-electron-bin 10 | apple-fonts 11 | avizo 12 | bdinfo-git 13 | bibata-cursor-theme 14 | bloop-desktop-bin 15 | calibre-plugin-dedrm 16 | catppuccin-cursors-latte 17 | catppuccin-cursors-mocha 18 | catppuccin-fcitx5-git 19 | catppuccin-gtk-theme-latte 20 | catppuccin-gtk-theme-mocha 21 | cava 22 | cbonsai 23 | cisco-secureclient 24 | cnijfilter2 25 | ddcci-driver-linux-dkms-relax-dev-id 26 | dmtx-utils 27 | downgrade 28 | fcitx5-mozc-ut 29 | fcitx5-skin-seasons 30 | flyctl-bin 31 | fontpreview 32 | fuc 33 | ghcup-hs-bin 34 | google-chrome 35 | google-chrome-beta 36 | gretl 37 | grimshot 38 | hyprpicker 39 | iwgtk 40 | joshuto 41 | kmscon 42 | kvantum-theme-catppuccin-git 43 | lact 44 | lib32-amdgpu-pro-oglp 45 | lib32-vulkan-amdgpu-pro 46 | localsend-bin 47 | makemkv-libaacs 48 | man-pages-ja 49 | meteo-qt 50 | mpvpaper 51 | neofetch-git 52 | neovim-remote 53 | obs-pipewire-audio-capture-bin 54 | openconnect-sso-git 55 | pacman-static 56 | pandoc-bin 57 | paru-git 58 | pipes-rs 59 | pipr-git 60 | python-pyclip 61 | qdrant 62 | r-mkl 63 | rua 64 | shikane 65 | shotman 66 | sioyek 67 | slack-electron 68 | speedtest-go 69 | spotify 70 | spotify-tui 71 | sptlrx-bin 72 | sunwait 73 | thunar-extended 74 | thunar-secure-delete 75 | thunar-vcs-plugin 76 | topgrade 77 | trayscale 78 | ttf-cinecaption 79 | ttf-firge 80 | ttf-hackgen 81 | ttf-moralerspace 82 | ttf-oradano-mincho 83 | ttf-plemoljp-bin 84 | ttf-rubik-vf 85 | ttf-san-francisco-jp 86 | ttf-twemoji 87 | ttf-twemoji-color 88 | tty-clock 89 | typst-live-git 90 | visual-studio-code-bin 91 | votar-git 92 | vrrtest-git 93 | watershot 94 | waydroid-git 95 | waypipe 96 | wdisplays 97 | webcord 98 | whitesur-icon-theme-git 99 | wl-mpris-idle-inhibit 100 | wl-screenrec 101 | wleave-git 102 | wlopm 103 | wlr-randr 104 | wob 105 | wpaperd 106 | wshowkeys-git 107 | xdg-ninja 108 | xiccd 109 | xob 110 | youtube-music 111 | yubico-authenticator-bin 112 | zed-editor 113 | zoom 114 | zotero-bin 115 | -------------------------------------------------------------------------------- /dot_bin/executable_play-pause.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Clone of `playerctl`. Sends the second argument (e.g. `PlayPause` `Pause` etc.) to the first argument's media player. 4 | function pctl { 5 | dbus-send --type=method_call --dest="org.mpris.MediaPlayer2.$1" /org/mpris/MediaPlayer2 "org.mpris.MediaPlayer2.Player.$2" 6 | } 7 | 8 | # Super-fast compared to $(playerctl status) 9 | # Gets the property of the media player defined by the first argument filtered by the second argument. 10 | # To get the playback status of `spotifyd`, use `pctl_get "spotifyd" "PlaybackStatus"` 11 | function pctl_get { 12 | # Get the data from DBUS 13 | response="$(dbus-send --reply-timeout=1000 --print-reply --dest="org.mpris.MediaPlayer2.$1" /org/mpris/MediaPlayer2 "org.freedesktop.DBus.Properties.Get" string:"org.mpris.MediaPlayer2.Player" string:"$2")" 14 | # If the response was a error 15 | if [[ $? != 0 ]]; then 16 | echo "Stopped" 17 | else 18 | # Else get the actual response 19 | echo "$(echo "$response" | tr ";" "\n")[2]" 20 | fi 21 | } 22 | 23 | # Cache the initial status of spotifyd 24 | spt_status="$(pctl_get "spotifyd" "PlaybackStatus")" 25 | 26 | # Gets a media player (returned by `playerctl -l`). This prefers spotifyd above all other. 27 | function pref_spt { 28 | player=$(playerctl -l | grep "spotifyd") 29 | 30 | if [[ "$?" == 0 ]]; then 31 | player=$(echo $player | head -n 1) 32 | else 33 | player=$(playerctl -l | head -n 1) 34 | fi 35 | 36 | echo "$player" 37 | } 38 | 39 | # Loop on each media player 40 | # This checks for any media player playing, and if they are, pause and exit. 41 | for player in $(playerctl -l); do 42 | echo $player 43 | # If it's spotifyd 44 | if [[ "$player" == *"spotifyd"* ]]; then 45 | # and playing, pause it. 46 | if [[ "$spt_status" == *"Playing"* ]]; then 47 | pctl $player "Pause" 48 | exit 0 49 | fi 50 | else 51 | # Else, if the status of the player is `Playing`, pause it and exit 52 | if [[ "$(pctl_get $player "PlaybackStatus")" == *"Playing"* ]]; then 53 | pctl $player "Pause" 54 | exit 0 55 | fi 56 | fi 57 | done 58 | 59 | # If there was nothing to pause (the we would've `exit`ed), play from the preferred editor. 60 | pctl $(pref_spt) "Play" 61 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/lsp/servers/tsserver.lua: -------------------------------------------------------------------------------- 1 | local root_pattern = require('lspconfig').util.root_pattern 2 | 3 | local node_root_pattern = root_pattern('package.json') 4 | 5 | return { 6 | root_dir = node_root_pattern, 7 | single_file_support = false, 8 | on_attach = function(client, bufnr) 9 | -- disable tsserver formatting if you plan on formatting via null-ls 10 | client.server_capabilities.documentFormattingProvider = false 11 | client.server_capabilities.documentRangeFormattingProvider = false 12 | 13 | -- local ts_utils = require 'nvim-lsp-ts-utils' 14 | -- 15 | -- ts_utils.setup { 16 | -- debug = false, 17 | -- disable_commands = false, 18 | -- enable_import_on_completion = false, 19 | -- 20 | -- -- import all 21 | -- import_all_timeout = 5000, -- ms 22 | -- import_all_priorities = { 23 | -- buffers = 4, -- loaded buffer names 24 | -- buffer_content = 3, -- loaded buffer content 25 | -- local_files = 2, -- git files or files with relative path markers 26 | -- same_file = 1, -- add to existing import statement 27 | -- }, 28 | -- import_all_scan_buffers = 100, 29 | -- import_all_select_source = false, 30 | -- 31 | -- -- eslint 32 | -- eslint_enable_code_actions = false, 33 | -- eslint_enable_disable_comments = false, 34 | -- eslint_enable_diagnostics = false, 35 | -- 36 | -- -- update imports on file move 37 | -- update_imports_on_move = false, 38 | -- require_confirmation_on_move = false, 39 | -- watch_dir = nil, 40 | -- 41 | -- -- filter diagnostics 42 | -- filter_out_diagnostics_by_severity = {}, 43 | -- filter_out_diagnostics_by_code = {}, 44 | -- } 45 | 46 | -- required to fix code action ranges and filter diagnostics 47 | -- ts_utils.setup_client(client) 48 | 49 | -- no default maps, so you may want to define some here 50 | -- local opts = { silent = true } 51 | -- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gs', ':TSLspOrganize', opts) 52 | -- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gr', ':TSLspRenameFile', opts) 53 | -- vim.api.nvim_buf_set_keymap(bufnr, 'n', 'gi', ':TSLspImportAll', opts) 54 | end, 55 | } 56 | -------------------------------------------------------------------------------- /dot_config/sway/executable_window-transparency.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | ### IMPORTANT ### 4 | # this is a contributed script from GitHub:swaywm/sway(https://github.com/swaywm/sway), 5 | # licensed under MIT License(https://github.com/swaywm/sway/blob/ca8c6c3d18a17f6de2eea3f27f0ad2d2f24d6eb9/LICENSE). 6 | 7 | # This script requires i3ipc-python package (install it from a system package manager 8 | # or pip). 9 | # It makes inactive windows transparent. Use `transparency_val` variable to control 10 | # transparency strength in range of 0…1 or use the command line argument -o. 11 | 12 | import argparse 13 | import i3ipc 14 | import signal 15 | import sys 16 | from functools import partial 17 | 18 | 19 | def on_window_focus(inactive_opacity, ipc, event): 20 | global prev_focused 21 | global prev_workspace 22 | 23 | focused = event.container 24 | workspace = ipc.get_tree().find_focused().workspace().num 25 | 26 | if focused.id != prev_focused.id: # https://github.com/swaywm/sway/issues/2859 27 | focused.command("opacity 1") 28 | if workspace == prev_workspace: 29 | prev_focused.command("opacity " + inactive_opacity) 30 | prev_focused = focused 31 | prev_workspace = workspace 32 | 33 | 34 | def remove_opacity(ipc): 35 | for workspace in ipc.get_tree().workspaces(): 36 | for w in workspace: 37 | w.command("opacity 1") 38 | ipc.main_quit() 39 | sys.exit(0) 40 | 41 | 42 | if __name__ == "__main__": 43 | transparency_val = "0.95" 44 | 45 | parser = argparse.ArgumentParser( 46 | description="This script allows you to set the transparency of unfocused windows in sway." 47 | ) 48 | parser.add_argument( 49 | "--opacity", 50 | "-o", 51 | type=str, 52 | default=transparency_val, 53 | help="set opacity value in range 0...1", 54 | ) 55 | args = parser.parse_args() 56 | 57 | ipc = i3ipc.Connection() 58 | prev_focused = None 59 | prev_workspace = ipc.get_tree().find_focused().workspace().num 60 | 61 | for window in ipc.get_tree(): 62 | if window.focused: 63 | prev_focused = window 64 | else: 65 | window.command("opacity " + args.opacity) 66 | for sig in [signal.SIGINT, signal.SIGTERM]: 67 | signal.signal(sig, lambda signal, frame: remove_opacity(ipc)) 68 | ipc.on("window::focus", partial(on_window_focus, args.opacity)) 69 | ipc.main() 70 | -------------------------------------------------------------------------------- /dot_config/ranger/commands.py: -------------------------------------------------------------------------------- 1 | # This is a sample commands.py. You can add your own commands here. 2 | # 3 | # Please refer to commands_full.py for all the default commands and a complete 4 | # documentation. Do NOT add them all here, or you may end up with defunct 5 | # commands when upgrading ranger. 6 | 7 | # A simple command for demonstration purposes follows. 8 | # ----------------------------------------------------------------------------- 9 | 10 | from __future__ import (absolute_import, division, print_function) 11 | 12 | # You can import any python module as needed. 13 | import os 14 | 15 | # You always need to import ranger.api.commands here to get the Command class: 16 | from ranger.api.commands import Command 17 | 18 | 19 | # Any class that is a subclass of "Command" will be integrated into ranger as a 20 | # command. Try typing ":my_edit" in ranger! 21 | class my_edit(Command): 22 | # The so-called doc-string of the class will be visible in the built-in 23 | # help that is accessible by typing "?c" inside ranger. 24 | """:my_edit 25 | 26 | A sample command for demonstration purposes that opens a file in an editor. 27 | """ 28 | 29 | # The execute method is called when you run this command in ranger. 30 | def execute(self): 31 | # self.arg(1) is the first (space-separated) argument to the function. 32 | # This way you can write ":my_edit somefilename". 33 | if self.arg(1): 34 | # self.rest(1) contains self.arg(1) and everything that follows 35 | target_filename = self.rest(1) 36 | else: 37 | # self.fm is a ranger.core.filemanager.FileManager object and gives 38 | # you access to internals of ranger. 39 | # self.fm.thisfile is a ranger.container.file.File object and is a 40 | # reference to the currently selected file. 41 | target_filename = self.fm.thisfile.path 42 | 43 | # This is a generic function to print text in ranger. 44 | self.fm.notify("Let's edit the file " + target_filename + "!") 45 | 46 | # Using bad=True in fm.notify allows you to print error messages: 47 | if not os.path.exists(target_filename): 48 | self.fm.notify("The given file does not exist!", bad=True) 49 | return 50 | 51 | # This executes a function from ranger.core.acitons, a module with a 52 | # variety of subroutines that can help you construct commands. 53 | # Check out the source, or run "pydoc ranger.core.actions" for a list. 54 | self.fm.edit_file(target_filename) 55 | 56 | # The tab method is called when you press tab, and should return a list of 57 | # suggestions that the user will tab through. 58 | # tabnum is 1 for and -1 for by default 59 | def tab(self, tabnum): 60 | # This is a generic tab-completion function that iterates through the 61 | # content of the current directory. 62 | return self._tab_directory_content() 63 | -------------------------------------------------------------------------------- /dot_config/spotifyd/spotifyd.conf: -------------------------------------------------------------------------------- 1 | [global] 2 | # Your Spotify account name. 3 | username = "haxibami@gmail.com" 4 | 5 | # Your Spotify account password. 6 | # password = "" 7 | 8 | # A command that gets executed and can be used to 9 | # retrieve your password. 10 | # The command should return the password on stdout. 11 | # 12 | # This is an alternative to the `password` field. Both 13 | # can't be used simultaneously. 14 | #password_cmd = "bw get password spotify" 15 | 16 | # If set to true, `spotifyd` tries to look up your 17 | # password in the system's password storage. 18 | # 19 | # This is an alternative to the `password` field. Both 20 | # can't be used simultaneously. 21 | use_keyring = true 22 | 23 | # 24 | # If set to true, `spotifyd` tries to bind to the session dbus 25 | # and expose MPRIS controls. When running headless, without a dbus session, 26 | # then set this to false to avoid binding errors 27 | # 28 | use_mpris = true 29 | 30 | # The audio backend used to play the your music. To get 31 | # a list of possible backends, run `spotifyd --help`. 32 | backend = "pulseaudio" 33 | 34 | # The alsa audio device to stream audio to. To get a 35 | # list of valid devices, run `aplay -L`, 36 | # device = "alsa_audio_device" # omit for macOS 37 | 38 | # The alsa control device. By default this is the same 39 | # name as the `device` field. 40 | # control = "alsa_audio_device" # omit for macOS 41 | 42 | # The alsa mixer used by `spotifyd`. 43 | # mixer = "PCM" 44 | 45 | # The volume controller. Each one behaves different to 46 | # volume increases. For possible values, run 47 | # `spotifyd --help`. 48 | #volume_controller = "alsa" # use softvol for macOS 49 | 50 | # A command that gets executed in your shell after each song changes. 51 | #on_song_change_hook = "command_to_run_on_playback_events" 52 | 53 | # The name that gets displayed under the connect tab on 54 | # official clients. Spaces are not allowed! 55 | device_name = "Archaxibami-daemon" 56 | 57 | # The audio bitrate. 96, 160 or 320 kbit/s 58 | bitrate = 160 59 | 60 | # The directory used to cache audio data. This setting can save 61 | # a lot of bandwidth when activated, as it will avoid re-downloading 62 | # audio files when replaying them. 63 | # 64 | # Note: The file path does not get expanded. Environment variables and 65 | # shell placeholders like $HOME or ~ don't work! 66 | cache_path = "cache_directory" 67 | 68 | # If set to true, audio data does NOT get cached. 69 | no_audio_cache = true 70 | 71 | # Volume on startup between 0 and 100 72 | # NOTE: This variable's type will change in v0.4, to a number (instead of string) 73 | #initial_volume = "90" 74 | 75 | # If set to true, enables volume normalisation between songs. 76 | #volume_normalisation = true 77 | 78 | # The normalisation pregain that is applied for each song. 79 | #normalisation_pregain = -10 80 | 81 | # The port `spotifyd` uses to announce its service over the network. 82 | #zeroconf_port = 1234 83 | 84 | # The proxy `spotifyd` will use to connect to spotify. 85 | #proxy = "http://proxy.example.org:8080" 86 | 87 | # The displayed device type in Spotify clients. 88 | # Can be unknown, computer, tablet, smartphone, speaker, t_v, 89 | # a_v_r (Audio/Video Receiver), s_t_b (Set-Top Box), and audio_dongle. 90 | device_type = "computer" 91 | 92 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ## 最初にすべての階層のファイルを無視します 2 | ## 階層は必要なだけ追加する 3 | #### all ignore ### 4 | #/* 5 | #/.** 6 | # 7 | ## .gitignoreは上から解釈されていくので 8 | ## 管理対象のファイルをホワイトリストのように追記します 9 | #### not ignore ### 10 | ## about 11 | #!/README.md 12 | #!/LICENSE 13 | # 14 | ## pacman 15 | #!/.pacman/ 16 | #!/.pacman/* 17 | # 18 | ## zsh 19 | #!/.zshrc 20 | #!/.zshenv 21 | # 22 | ## vim 23 | #!/.vimrc 24 | #!/.vim/ 25 | #!/.vim/userautoload/ 26 | #!/.vim/userautoload/dein/ 27 | #!/.vim/userautoload/dein/dein.toml 28 | #!/.vim/userautoload/dein/dein_lazy.toml 29 | # 30 | ## scripts 31 | #!/.bin/ 32 | #!/.bin/** 33 | # 34 | ## git 35 | #!/.gitignore 36 | #!/.gitignore_global 37 | #!/.github/** 38 | # 39 | ## tmux 40 | #!/.tmux.conf 41 | # 42 | ## xorg 43 | #!/.xinitrc 44 | #!/.xprofile 45 | # 46 | ## gtk 47 | #!/.gtkrc-2.0 48 | # 49 | ## latex 50 | #!/.latexmkrc 51 | # 52 | ## .config 53 | #!/.config/ 54 | #/.config/*/ 55 | #/.config/** 56 | #!/.config/alacritty/ 57 | #!/.config/alacritty/alacritty.yml 58 | #!/.config/alacritty/urara.yml 59 | #!/.config/bashtop/ 60 | #!/.config/bashtop/bashtop.cfg 61 | #!/.config/bashtop/user_themes/ 62 | #!/.config/bashtop/user_themes/urara.theme 63 | #!/.config/bottom/bottom.toml 64 | #!/.config/cava/config 65 | #!/.config/cava/** 66 | #!/.config/compton.conf 67 | #!/.config/dracula/ 68 | #!/.config/dracula/** 69 | #!/.config/dunst/ 70 | #!/.config/dunst/** 71 | #!/.config/gammastep/ 72 | #!/.config/gammastep/** 73 | #!/.config/greenclip.toml 74 | #!/.config/gtk-3.0/ 75 | #!/.config/gtk-3.0/setting.ini 76 | #!/.config/gtk-3.0/gtk.css 77 | #!/.config/i3/ 78 | #!/.config/i3/** 79 | #!/.config/kitty/ 80 | #!/.config/kitty/** 81 | #!/.config/mako/ 82 | #!/.config/mako/** 83 | #!/.config/mpv/ 84 | #!/.config/mpv/mpv.conf 85 | #!/.config/neofetch/ 86 | #!/.config/neofetch/config.conf 87 | #!/.config/nvim/ 88 | #!/.config/nvim/coc-settings.json 89 | #!/.config/nvim/init.vim 90 | #!/.config/nvim/ginit.vim 91 | #!/.config/nvim/dein.toml 92 | #!/.config/nvim/dein_lazy.toml 93 | #!/.config/oni2/ 94 | #!/.config/oni2/configuration.json 95 | #!/.config/oni2/keybindings.json 96 | #!/.config/parcellite/ 97 | #!/.config/parcellite/parcelliterc 98 | #!/.config/picom.conf 99 | #!/.config/polybar/ 100 | #!/.config/polybar/scripts/ 101 | #!/.config/polybar/scripts/** 102 | #!/.config/polybar/** 103 | #!/.config/qt5ct/ 104 | #!/.config/qt5ct/colors/ 105 | #!/.config/ranger/ 106 | #!/.config/ranger/** 107 | #!/.config/redshift.conf 108 | #!/.config/rofi/ 109 | #!/.config/rofi/** 110 | #!/.config/spotifyd/ 111 | #!/.config/spotifyd/spotifyd.conf 112 | #!/.config/spotify-tui/ 113 | #!/.config/spotify-tui/config.yml 114 | #!/.config/starship.toml 115 | #!/.config/starship_light.toml 116 | #!/.config/sway/ 117 | #!/.config/sway/** 118 | #!/.config/swaylock/ 119 | #!/.config/swaylock/** 120 | #!/.config/swaynag/ 121 | #!/.config/swaynag/** 122 | #!/.config/systemd/ 123 | #!/.config/systemd/user/ 124 | #!/.config/systemd/user/xkeysnail.service 125 | #!/.config/tilix/ 126 | #!/.config/tilix/tilix.dconf 127 | #!/.config/tilix/schemes/ 128 | #!/.config/tilix/schemes/** 129 | #!/.config/user-dirs.dirs 130 | #!/.config/user-dirs.locale 131 | #!/.config/waybar/ 132 | #!/.config/waybar/** 133 | #!/.config/wofi/ 134 | #!/.config/wofi/** 135 | #!/.config/xkeysnail/ 136 | #!/.config/xkeysnail/** 137 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/ddu/config.lua: -------------------------------------------------------------------------------- 1 | local ddu = { 2 | patch_global = vim.fn['ddu#custom#patch_global'], 3 | alias = vim.fn['ddu#custom#alias'], 4 | load_config = vim.fn['ddu#custom#load_config'], 5 | } 6 | 7 | ddu.load_config(vim.fn.stdpath('config') .. '/lua/haxibami/ddu/config.ts') 8 | 9 | -- 10 | -- ddu.alias('source', 'directory_rec', 'file_external') 11 | -- 12 | -- local lines = vim.o.lines - 6 13 | -- local winh = math.floor(lines * 0.8) 14 | -- local houter = math.floor((lines - winh) / 2) 15 | -- local wouter = math.floor(vim.o.columns * 0.05) 16 | -- local inner = 3 17 | -- local winw = math.floor((vim.o.columns - wouter * 2 - inner) / 2) 18 | -- 19 | -- ddu.patch_global({ 20 | -- ui = 'ff', 21 | -- uiParams = { 22 | -- ff = { 23 | -- displaySourceName = 'short', 24 | -- prompt = '>', 25 | -- reversed = true, 26 | -- split = 'floating', 27 | -- floatingBorder = 'rounded', 28 | -- previewFloating = true, 29 | -- previewVertical = true, 30 | -- previewFloatingBorder = 'rounded', 31 | -- filterSplitDirection = 'floating', 32 | -- winRow = houter, 33 | -- winCol = wouter, 34 | -- winHeight = winh - 1, 35 | -- winWidth = winw, 36 | -- previewRow = houter, 37 | -- previewCol = wouter + winw + inner, 38 | -- previewHeight = winh, 39 | -- previewWidth = winw, 40 | -- startFilter = true, 41 | -- autoAction = { 42 | -- name = 'preview' 43 | -- }, 44 | -- } 45 | -- }, 46 | -- kindOptions = { 47 | -- file = { 48 | -- defaultAction = 'open', 49 | -- } 50 | -- }, 51 | -- sourceOptions = { 52 | -- ['_'] = { 53 | -- matchers = { 'matcher_fzf' }, 54 | -- ignoreCase = true, 55 | -- }, 56 | -- command_history = { 57 | -- defaultAction = 'execute' 58 | -- }, 59 | -- help = { 60 | -- defaultAction = 'open', 61 | -- } 62 | -- }, 63 | -- filterParams = { 64 | -- matcher_fzf = { 65 | -- highlightMatched = 'Constant' 66 | -- } 67 | -- }, 68 | -- sourceParams = { 69 | -- file_external = { 70 | -- cmd = { 'fd', '.', '-H', '-E', '__pycache__', '-t', 'f' }, 71 | -- }, 72 | -- rg = { 73 | -- args = { '--column', '--no-heading', '--color', 'never', '--json' } 74 | -- }, 75 | -- directory_rec = { 76 | -- cmd = { 'fd', '.', '-H', '-t', '-d' } 77 | -- } 78 | -- }, 79 | -- }) 80 | -- 81 | -- vim.api.nvim_create_autocmd('VimResized', { 82 | -- callback = function() 83 | -- 84 | -- local lines = vim.o.lines - 6 85 | -- local winh = math.floor(lines * 0.8) 86 | -- local houter = math.floor((lines - winh) / 2) 87 | -- local wouter = math.floor(vim.o.columns * 0.05) 88 | -- local inner = 3 89 | -- local winw = math.floor((vim.o.columns - wouter * 2 - inner) / 2) 90 | -- 91 | -- vim.fn['ddu#custom#patch_global']('uiParams', { 92 | -- ff = { 93 | -- winRow = houter, 94 | -- winCol = wouter, 95 | -- winHeight = winh, 96 | -- winWidth = winw, 97 | -- previewRow = 0, 98 | -- previewCol = wouter + winw + inner, 99 | -- previewHeight = winh, 100 | -- previewWidth = winw, 101 | -- } 102 | -- }) 103 | -- end 104 | -- }) 105 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/ddu/keymap.lua: -------------------------------------------------------------------------------- 1 | local util = require('haxibami.ddu.utils') 2 | 3 | local ddu = { 4 | do_action = vim.fn['ddu#ui#ff#do_action'], 5 | execute = vim.fn['ddu#ui#ff#execute'] 6 | } 7 | 8 | local ddu_ff_exit = function() 9 | ddu.do_action('quit') 10 | vim.api.nvim_set_hl(0, 'NormalFloat', { link = 'Pmenu' }) 11 | end 12 | 13 | local ddu_ff_enter = function() 14 | -- set keymaps 15 | local bufopts = { noremap = true, silent = true, buffer = 0 } 16 | vim.keymap.set('n', '', function() return ddu.do_action('itemAction') end, bufopts) 17 | vim.keymap.set('n', '', function() return ddu.do_action('toggleSelectItem') end, bufopts) 18 | vim.keymap.set('n', 'i', function() return ddu.do_action('openFilterWindow') end, bufopts) 19 | vim.keymap.set('n', '/', function() return ddu.do_action('openFilterWindow') end, bufopts) 20 | vim.keymap.set('n', 'p', function() return ddu.do_action('preview') end, bufopts) 21 | vim.keymap.set('n', 'c', function() return ddu.do_action('chooseAction') end, bufopts) 22 | vim.keymap.set('n', 'e', function() return ddu.do_action('itemAction', { name = 'edit' }) end, bufopts) 23 | vim.keymap.set('n', 'd', function() return ddu.do_action('itemAction', { name = 'delete' }) end, bufopts) 24 | vim.keymap.set('n', '', function() return ddu_ff_exit() end, bufopts) 25 | vim.keymap.set('n', 'q', function() return ddu_ff_exit() end, bufopts) 26 | 27 | vim.api.nvim_set_hl(0, 'NormalFloat', { link = 'Normal' }) 28 | end 29 | 30 | local ddu_ff_filter_enter = function() 31 | -- set keymaps 32 | local bufopts = { noremap = true, silent = true, buffer = 0 } 33 | vim.keymap.set('i', '', 'call ddu#ui#ff#do_action("closeFilterWindow")', bufopts) 34 | vim.keymap.set('i', '', function() return ddu.do_action('closeFilterWindow') and ddu_ff_exit() end, bufopts) 35 | vim.keymap.set('i', '', function() return ddu.execute('call cursor(line(\".\")+1,0)') end, bufopts) 36 | vim.keymap.set('i', '', function() return ddu.execute('call cursor(line(\".\")+1,0)') end, 37 | bufopts) 38 | vim.keymap.set('i', '', function() return ddu.execute('call cursor(line(\".\")-1,0)') end, 39 | bufopts) 40 | vim.keymap.set('i', '', function() return ddu.execute('call cursor(line(\".\")-1,0)') end, bufopts) 41 | vim.keymap.set('n', '', function() 42 | return function() 43 | ddu.do_action('closeFilterWindow') 44 | ddu_ff_exit() 45 | end 46 | end, bufopts) 47 | vim.keymap.set('n', 'q', function() 48 | return function() 49 | ddu.do_action('closeFilterWindow') 50 | ddu_ff_exit() 51 | end 52 | end, bufopts) 53 | end 54 | 55 | vim.api.nvim_create_autocmd('FileType', { 56 | pattern = { 'ddu-ff' }, 57 | callback = function() return ddu_ff_enter() end, 58 | }) 59 | 60 | vim.api.nvim_create_autocmd('FileType', { 61 | pattern = { 'ddu-ff-filter' }, 62 | callback = function() return ddu_ff_filter_enter() end, 63 | }) 64 | 65 | vim.keymap.set('n', 'ff', function() return util.find_files() end, { noremap = true, silent = true }) 66 | vim.keymap.set('n', 'fg', function() return util.live_grep() end, { noremap = true, silent = true }) 67 | vim.keymap.set('n', 'fb', function() return util.buffers() end, { noremap = true, silent = true }) 68 | vim.keymap.set('n', 'fh', function() return util.help_tags() end, { noremap = true, silent = true }) 69 | -------------------------------------------------------------------------------- /dot_bin/executable_swayscrshare.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # 4 | ## Preliminary steps (void linux): 5 | ## sudo xbps-install -Su v4l2loopback wf-recorder 6 | ## (don't forget to reboot if new Kernel version was upgraded) 7 | ## 8 | # 9 | ## Too lazy to autodetect active monitor resolution 10 | #WIDTH=3840 11 | #HEIGHT=2160 12 | # 13 | # 14 | ## Detect and load kernel module if needed 15 | ##lsmod | grep v4l2loopback \ 16 | ## && echo "Kernel module detected" \ 17 | ## || ( \ 18 | ## echo "Need to modprobe v4l2loopback kernel module, please authorize:" \ 19 | ## && sudo modprobe v4l2loopback \ 20 | ## ) 21 | # 22 | ## List devices and exit when run without args 23 | ##if [ -z "$1" ]; then 24 | ## v4l2-ctl --list-devices 25 | ## echo "Please rerun sharescreen with the device device path of the Dummy listed above" 26 | ## echo "Ex: sharescreen /dev/video4" 27 | ## exit 1 28 | ##fi 29 | # 30 | #device=/dev/video42 31 | # 32 | ## Let device timout to prevent device-busy errors 33 | ## v4l2-ctl -d $device -c timeout=3000 # unverified 34 | # 35 | ## Set capabilities for device, so chrom*/webrtcvideocapturer.cc 36 | ## based software like discord is happy. 37 | ## 38 | ## https://gstreamer.freedesktop.org/documentation/video/video-format.html?gi-language=c#GstVideoFormat 39 | ## GST_VIDEO_FORMAT_YUY2 (4) – packed 4:2:2 YUV (Y0-U0-Y1-V0 Y2-U2-Y3-V2 Y4 ...) 40 | ## Suspicion that matching GST format is `YUY2` is further backed 41 | ## by output of `gst-device-monitor-1.0` and finding section of webcam hardware 42 | ## that's works in chosen software 43 | # 44 | #recording () { 45 | # v4l2loopback-ctl set-caps \ 46 | # "video/x-raw, format=YUY2, width=$2, height=$3" \ 47 | # $1 || \ 48 | # echo "WARN; Failed to set format, rmmod / modprobe to free device?" 49 | # 50 | ### 51 | ## In case your v4l2loopback utility is a different version, from what I can 52 | ## dump, the significant commands my version executes is: 53 | ## 54 | ## v4l2-ctl -d /dev/video4 -c keep_format=1 55 | ## v4l2-ctl -d /dev/video4 -c sustain_framerate=1 56 | ## gst-launch-1.0 videotestsrc num-buffers=1 '!' video/x-raw,format=YUY2,width=2560,height=1440 '!' v4l2sink device=/dev/video4 57 | ## 58 | # 59 | ## Start screen-capture and dump the frames into chosen loopback-devices 60 | # wf-recorder --muxer=v4l2 --file=$1 \ 61 | # -c rawvideo -x yuyv422 -p framerate=10 -p scale=1920x1080 62 | #} 63 | # 64 | # 65 | #PIDS=$(ps -ef | grep .bin/swayscrshare.sh | grep bash | grep -v grep | awk '{print $2}') 66 | #THIS=$(echo ${PIDS} | awk '{print $1}') 67 | # 68 | #if [ $(echo ${PIDS} | wc -w) == 2 ]; then 69 | # TITLE="Screencast started" 70 | # MESSAGE="Successfully started screencast" 71 | # notify-send -t 3000 "${TITLE}" "${MESSAGE}" 72 | # recording ${device} ${WIDTH} ${HEIGHT} 73 | ##if [ wc -l ${PID} ]; then 74 | ## kill -INT ${PID} 75 | ## exit 0 76 | # 77 | #else 78 | # ~/.bin/killtree.sh "${THIS}" INT 79 | # TITLE="Screencast stopped" 80 | # MESSAGE="Successfully stopped screencast" 81 | # notify-send -t 3000 "${TITLE}" "${MESSAGE}" 82 | #fi 83 | 84 | STATUS=`ps -ef | grep obs | grep -v grep | wc -l` 85 | PASSFILE="${HOME}/.secure/obs-websocket.txt" 86 | PASS=`cat ${PASSFILE}` 87 | 88 | if [[ $STATUS -ne 0 ]] && [ -e ~/.secure/obs-websocket.txt ]; then 89 | obs-cli virtualcam toggle --password "${PASS}" 90 | notify-send --app-name="obs" --urgency=low --icon=media-record "OBS" "Virtualcam toggled" 91 | else 92 | echo "Launch obs studio with obs-websocket, and set password!" 93 | fi 94 | -------------------------------------------------------------------------------- /dot_config/polybar/executable_mediaplayer.py: -------------------------------------------------------------------------------- 1 | 2 | #!/usr/bin/env python3 3 | import argparse 4 | import logging 5 | import sys 6 | import signal 7 | import gi 8 | import json 9 | gi.require_version('Playerctl', '2.0') 10 | from gi.repository import Playerctl, GLib 11 | 12 | logger = logging.getLogger(__name__) 13 | 14 | 15 | def write_output(text, player): 16 | logger.info('Writing output') 17 | 18 | output = {'text': text, 19 | 'class': 'custom-' + player.props.player_name, 20 | 'alt': player.props.player_name} 21 | 22 | sys.stdout.write(json.dumps(output) + '\n') 23 | sys.stdout.flush() 24 | 25 | 26 | def on_play(player, status, manager): 27 | logger.info('Received new playback status') 28 | on_metadata(player, player.props.metadata, manager) 29 | 30 | 31 | def on_metadata(player, metadata, manager): 32 | logger.info('Received new metadata') 33 | track_info = '' 34 | 35 | if player.props.player_name == 'spotify' and \ 36 | 'mpris:trackid' in metadata.keys() and \ 37 | ':ad:' in player.props.metadata['mpris:trackid']: 38 | track_info = 'AD PLAYING' 39 | elif player.get_artist() != '' and player.get_title() != '': 40 | track_info = '{artist} - {title}'.format(artist=player.get_artist(), 41 | title=player.get_title()) 42 | else: 43 | track_info = player.get_title() 44 | 45 | if player.props.status != 'Playing' and track_info: 46 | track_info = ' ' + track_info 47 | write_output(track_info, player) 48 | 49 | 50 | def on_player_appeared(manager, player, selected_player=None): 51 | if player is not None and (selected_player is None or player.name == selected_player): 52 | init_player(manager, player) 53 | else: 54 | logger.debug("New player appeared, but it's not the selected player, skipping") 55 | 56 | 57 | def on_player_vanished(manager, player): 58 | logger.info('Player has vanished') 59 | sys.stdout.write('\n') 60 | sys.stdout.flush() 61 | 62 | 63 | def init_player(manager, name): 64 | logger.debug('Initialize player: {player}'.format(player=name.name)) 65 | player = Playerctl.Player.new_from_name(name) 66 | player.connect('playback-status', on_play, manager) 67 | player.connect('metadata', on_metadata, manager) 68 | manager.manage_player(player) 69 | on_metadata(player, player.props.metadata, manager) 70 | 71 | 72 | def signal_handler(sig, frame): 73 | logger.debug('Received signal to stop, exiting') 74 | sys.stdout.write('\n') 75 | sys.stdout.flush() 76 | # loop.quit() 77 | sys.exit(0) 78 | 79 | 80 | def parse_arguments(): 81 | parser = argparse.ArgumentParser() 82 | 83 | # Increase verbosity with every occurence of -v 84 | parser.add_argument('-v', '--verbose', action='count', default=0) 85 | 86 | # Define for which player we're listening 87 | parser.add_argument('--player') 88 | 89 | return parser.parse_args() 90 | 91 | 92 | def main(): 93 | arguments = parse_arguments() 94 | 95 | # Initialize logging 96 | logging.basicConfig(stream=sys.stderr, level=logging.DEBUG, 97 | format='%(name)s %(levelname)s %(message)s') 98 | 99 | # Logging is set by default to WARN and higher. 100 | # With every occurrence of -v it's lowered by one 101 | logger.setLevel(max((3 - arguments.verbose) * 10, 0)) 102 | 103 | # Log the sent command line arguments 104 | logger.debug('Arguments received {}'.format(vars(arguments))) 105 | 106 | manager = Playerctl.PlayerManager() 107 | loop = GLib.MainLoop() 108 | 109 | manager.connect('name-appeared', lambda *args: on_player_appeared(*args, arguments.player)) 110 | manager.connect('player-vanished', on_player_vanished) 111 | 112 | signal.signal(signal.SIGINT, signal_handler) 113 | signal.signal(signal.SIGTERM, signal_handler) 114 | 115 | for player in manager.props.player_names: 116 | if arguments.player is not None and arguments.player != player.name: 117 | logger.debug('{player} is not the filtered player, skipping it' 118 | .format(player=player.name) 119 | ) 120 | continue 121 | 122 | init_player(manager, player) 123 | 124 | loop.run() 125 | 126 | 127 | if __name__ == '__main__': 128 | main() -------------------------------------------------------------------------------- /dot_config/waybar/executable_mediaplayer.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | 3 | ### IMPORTANT ### 4 | # This is a contribute script from GitHub:Alexays/Waybar(https://github.com/Alexays/Waybar), 5 | # licensed under MIT License(https://github.com/Alexays/Waybar/blob/6eb9606f239418d225c7367f9e0f44adca764f3c/LICENSE) 6 | 7 | import argparse 8 | import logging 9 | import sys 10 | import signal 11 | import gi 12 | import json 13 | import os 14 | gi.require_version('Playerctl', '2.0') 15 | from gi.repository import Playerctl, GLib 16 | 17 | logger = logging.getLogger(__name__) 18 | 19 | 20 | def write_output(text, player): 21 | logger.info('Writing output') 22 | 23 | output = {'text': text, 24 | 'class': 'custom-' + player.props.player_name, 25 | 'alt': player.props.player_name} 26 | 27 | sys.stdout.write(json.dumps(output) + '\n') 28 | sys.stdout.flush() 29 | 30 | 31 | def on_play(player, status, manager): 32 | logger.info('Received new playback status') 33 | on_metadata(player, player.props.metadata, manager) 34 | 35 | 36 | def on_metadata(player, metadata, manager): 37 | logger.info('Received new metadata') 38 | track_info = '' 39 | 40 | if player.props.player_name == 'spotify' and \ 41 | 'mpris:trackid' in metadata.keys() and \ 42 | ':ad:' in player.props.metadata['mpris:trackid']: 43 | track_info = 'AD PLAYING' 44 | elif player.get_artist() != '' and player.get_title() != '': 45 | track_info = '{artist} - {title}'.format(artist=player.get_artist(), 46 | title=player.get_title()) 47 | else: 48 | track_info = player.get_title() 49 | 50 | if player.props.status != 'Playing' and track_info: 51 | track_info = ' ' + track_info 52 | write_output(track_info, player) 53 | 54 | 55 | def on_player_appeared(manager, player, selected_player=None): 56 | if player is not None and (selected_player is None or player.name == selected_player): 57 | init_player(manager, player) 58 | else: 59 | logger.debug("New player appeared, but it's not the selected player, skipping") 60 | 61 | 62 | def on_player_vanished(manager, player): 63 | logger.info('Player has vanished') 64 | sys.stdout.write('\n') 65 | sys.stdout.flush() 66 | 67 | 68 | def init_player(manager, name): 69 | logger.debug('Initialize player: {player}'.format(player=name.name)) 70 | player = Playerctl.Player.new_from_name(name) 71 | player.connect('playback-status', on_play, manager) 72 | player.connect('metadata', on_metadata, manager) 73 | manager.manage_player(player) 74 | on_metadata(player, player.props.metadata, manager) 75 | 76 | 77 | def signal_handler(sig, frame): 78 | logger.debug('Received signal to stop, exiting') 79 | sys.stdout.write('\n') 80 | sys.stdout.flush() 81 | # loop.quit() 82 | sys.exit(0) 83 | 84 | def parse_arguments(): 85 | parser = argparse.ArgumentParser() 86 | 87 | # Increase verbosity with every occurence of -v 88 | parser.add_argument('-v', '--verbose', action='count', default=0) 89 | 90 | # Define for which player we're listening 91 | parser.add_argument('--player') 92 | 93 | return parser.parse_args() 94 | 95 | 96 | def main(): 97 | arguments = parse_arguments() 98 | 99 | # Initialize logging 100 | logging.basicConfig(stream=sys.stderr, level=logging.DEBUG, 101 | format='%(name)s %(levelname)s %(message)s') 102 | 103 | # Logging is set by default to WARN and higher. 104 | # With every occurrence of -v it's lowered by one 105 | logger.setLevel(max((3 - arguments.verbose) * 10, 0)) 106 | 107 | # Log the sent command line arguments 108 | logger.debug('Arguments received {}'.format(vars(arguments))) 109 | 110 | manager = Playerctl.PlayerManager() 111 | loop = GLib.MainLoop() 112 | 113 | manager.connect('name-appeared', lambda *args: on_player_appeared(*args, arguments.player)) 114 | manager.connect('player-vanished', on_player_vanished) 115 | 116 | signal.signal(signal.SIGINT, signal_handler) 117 | signal.signal(signal.SIGTERM, signal_handler) 118 | 119 | for player in manager.props.player_names: 120 | if arguments.player is not None and arguments.player != player.name: 121 | logger.debug('{player} is not the filtered player, skipping it' 122 | .format(player=player.name) 123 | ) 124 | continue 125 | 126 | init_player(manager, player) 127 | 128 | loop.run() 129 | 130 | 131 | if __name__ == '__main__': 132 | main() 133 | -------------------------------------------------------------------------------- /dot_config/rofi/mytheme.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * ROFI Color theme; 3 | * User: haxibami 4 | */ 5 | 6 | * { 7 | foreground: #f8f8f2; 8 | selected-normal-foreground: #f8f8f2; 9 | normal-foreground: #f8f8f2; 10 | alternate-normal-background: #282a36; 11 | red: #ff5555; 12 | selected-urgent-foreground: #ff5555; 13 | blue: #6272a4; 14 | urgent-foreground: #ff79C6; 15 | alternate-urgent-background: #282a36; 16 | active-foreground: #50fa7b; 17 | lightbg: #eee8d5; 18 | selected-active-foreground: #ff6e6e; 19 | alternate-active-background: #282a36; 20 | background: #282a36; 21 | bordercolor: #ffffff; 22 | alternate-normal-foreground: @foreground; 23 | /* normal-background: #6272a4;*/ 24 | lightfg: #44475a; 25 | selected-normal-background: #44475a; 26 | selected-background: @active-background; 27 | border-color: #ff79C6; 28 | spacing: 2; 29 | separatorcolor: #f8f8f2; 30 | urgent-background: #ff5555; 31 | selected-urgent-background: #ff5555; 32 | alternate-urgent-foreground: @urgent-foreground; 33 | background-color: #282a36; 34 | alternate-active-foreground: @active-foreground; 35 | active-background: #6272a4; 36 | selected-active-background: #8be9fd; 37 | colon-foreground: #ff79C6; 38 | input-text: #8be9fd; 39 | input-background: #44475a; 40 | prompt-foreground: #6272a4; 41 | } 42 | window { 43 | background-color: @background; 44 | border: 2; 45 | border-radius: 0; 46 | padding: 20; 47 | } 48 | mainbox { 49 | border: 0; 50 | padding: 0; 51 | } 52 | message { 53 | border: 2px 0px 0px ; 54 | border-color: @separatorcolor; 55 | padding: 1px ; 56 | } 57 | textbox { 58 | text-color: @input-text; 59 | } 60 | listview { 61 | fixed-height: 0; 62 | border: 2px 0px 0px ; 63 | border-color: @separatorcolor; 64 | spacing: 2px ; 65 | scrollbar: true; 66 | padding: 10px 0 0 10px; 67 | } 68 | element { 69 | border: 0; 70 | margin: 5px; 71 | } 72 | element.normal.normal { 73 | background-color: @normal-background; 74 | text-color: @normal-foreground; 75 | } 76 | element.normal.urgent { 77 | background-color: @urgent-background; 78 | text-color: @urgent-foreground; 79 | } 80 | element.normal.active { 81 | background-color: @active-background; 82 | text-color: @active-foreground; 83 | } 84 | element.selected.normal { 85 | background-color: @selected-normal-background; 86 | text-color: @selected-normal-foreground; 87 | } 88 | element.selected.urgent { 89 | background-color: @selected-urgent-background; 90 | text-color: @selected-urgent-foreground; 91 | } 92 | element.selected.active { 93 | background-color: @selected-active-background; 94 | text-color: @selected-active-foreground; 95 | } 96 | element.alternate.normal { 97 | background-color: @alternate-normal-background; 98 | text-color: @alternate-normal-foreground; 99 | } 100 | element.alternate.urgent { 101 | background-color: @alternate-urgent-background; 102 | text-color: @alternate-urgent-foreground; 103 | } 104 | element.alternate.active { 105 | background-color: @alternate-active-background; 106 | text-color: @alternate-active-foreground; 107 | } 108 | scrollbar { 109 | width: 4px ; 110 | border: 0; 111 | handle-width: 8px ; 112 | padding: 0; 113 | } 114 | mode-switcher { 115 | border: 2px 0px 0px ; 116 | border-color: @separatorcolor; 117 | } 118 | button.selected { 119 | background-color: @selected-normal-background; 120 | text-color: @selected-normal-foreground; 121 | } 122 | inputbar { 123 | spacing: 0; 124 | text-color: @normal-foreground; 125 | padding: 1px ; 126 | } 127 | case-indicator { 128 | spacing: 0; 129 | background-color: @input-background; 130 | text-color: @normal-foreground; 131 | } 132 | entry { 133 | spacing: 0; 134 | background-color: @input-background; 135 | text-color: @input-text; 136 | } 137 | prompt, button{ 138 | spacing: 0; 139 | text-color: @normal-foreground; 140 | } 141 | inputbar { 142 | children: [ textbox-prompt-colon,entry,case-indicator,prompt ]; 143 | padding: 5px; 144 | margin: 0 0 10px 0; 145 | background-color: @input-background; 146 | border-radius: 5; 147 | } 148 | 149 | prompt { 150 | background-color: @input-background; 151 | text-color: @prompt-foreground; 152 | margin: 0 10px; 153 | } 154 | 155 | textbox-prompt-colon { 156 | expand: false; 157 | str: ""; 158 | margin: 0 0.3em 0 0.3em ; 159 | text-color: @colon-foreground; 160 | background-color: @input-background; 161 | } 162 | -------------------------------------------------------------------------------- /dot_config/private_mpv/mpv.conf: -------------------------------------------------------------------------------- 1 | 2 | # Example mpv configuration file 3 | # 4 | # Warning: 5 | # 6 | # The commented example options usually do _not_ set the default values. Call 7 | # mpv with --list-options to see the default values for most options. There is 8 | # no builtin or example mpv.conf with all the defaults. 9 | # 10 | # 11 | # Configuration files are read system-wide from /usr/local/etc/mpv.conf 12 | # and per-user from ~/.config/mpv/mpv.conf, where per-user settings override 13 | # system-wide settings, all of which are overridden by the command line. 14 | # 15 | # Configuration file settings and the command line options use the same 16 | # underlying mechanisms. Most options can be put into the configuration file 17 | # by dropping the preceding '--'. See the man page for a complete list of 18 | # options. 19 | # 20 | # Lines starting with '#' are comments and are ignored. 21 | # 22 | # See the CONFIGURATION FILES section in the man page 23 | # for a detailed description of the syntax. 24 | # 25 | # Profiles should be placed at the bottom of the configuration file to ensure 26 | # that settings wanted as defaults are not restricted to specific profiles. 27 | 28 | ################## 29 | # video settings # 30 | ################## 31 | 32 | # Start in fullscreen mode by default. 33 | #fs=yes 34 | 35 | # force starting with centered window 36 | #geometry=50%:50% 37 | 38 | # don't allow a new window to have a size larger than 90% of the screen size 39 | #autofit-larger=90%x90% 40 | 41 | # Do not close the window on exit. 42 | keep-open=yes 43 | 44 | # Do not wait with showing the video window until it has loaded. (This will 45 | # resize the window once video is loaded. Also always shows a window with 46 | # audio.) 47 | #force-window=immediate 48 | 49 | # Disable the On Screen Controller (OSC). 50 | #osc=no 51 | 52 | # Keep the player window on top of all other windows. 53 | #ontop=yes 54 | 55 | # Specify high quality video rendering preset (for --vo=gpu only) 56 | # Can cause performance problems with some drivers and GPUs. 57 | 58 | profile=gpu-hq 59 | scale=ewa_lanczos 60 | cscale=ewa_lanczos 61 | vo=gpu-next 62 | gpu-context=waylandvk 63 | 64 | # Force video to lock on the display's refresh rate, and change video and audio 65 | # speed to some degree to ensure synchronous playback - can cause problems 66 | # with some drivers and desktop environments. 67 | video-sync=display-resample 68 | interpolation 69 | tscale=oversample 70 | 71 | # Enable hardware decoding if available. Often, this does not work with all 72 | # video outputs, but should work well with default settings on most systems. 73 | # If performance or energy usage is an issue, forcing the vdpau or vaapi VOs 74 | # may or may not help. 75 | hwdec=vaapi 76 | #framedrop=no 77 | 78 | 79 | ################## 80 | # audio settings # 81 | ################## 82 | 83 | # Specify default audio device. You can list devices with: --audio-device=help 84 | # The option takes the device string (the stuff between the '...'). 85 | #audio-device=alsa/default 86 | 87 | # Do not filter audio to keep pitch when changing playback speed. 88 | #audio-pitch-correction=no 89 | 90 | # Output 5.1 audio natively, and upmix/downmix audio with a different format. 91 | #audio-channels=5.1 92 | # Disable any automatic remix, _if_ the audio output accepts the audio format. 93 | # of the currently played file. See caveats mentioned in the manpage. 94 | # (The default is "auto-safe", see manpage.) 95 | #audio-channels=auto 96 | 97 | ################## 98 | # other settings # 99 | ################## 100 | 101 | # Pretend to be a web browser. Might fix playback with some streaming sites, 102 | # but also will break with shoutcast streams. 103 | #user-agent="Mozilla/5.0" 104 | 105 | # cache settings 106 | # 107 | # Use a large seekable RAM cache even for local input. 108 | #cache=yes 109 | # 110 | # Use extra large RAM cache (needs cache=yes to make it useful). 111 | #demuxer-max-bytes=500M 112 | #demuxer-max-back-bytes=100M 113 | # 114 | # Disable the behavior that the player will pause if the cache goes below a 115 | # certain fill size. 116 | #cache-pause=no 117 | # 118 | # Store cache payload on the hard disk instead of in RAM. (This may negatively 119 | # impact performance unless used for slow input such as network.) 120 | #cache-dir=~/.cache/ 121 | #cache-on-disk=yes 122 | 123 | # Display English subtitles if available. 124 | #slang=en 125 | 126 | # Play Finnish audio if available, fall back to English otherwise. 127 | #alang=fi,en 128 | 129 | # Change subtitle encoding. For Arabic subtitles use 'cp1256'. 130 | # If the file seems to be valid UTF-8, prefer UTF-8. 131 | # (You can add '+' in front of the codepage to force it.) 132 | #sub-codepage=cp1256 133 | 134 | # You can also include other configuration files. 135 | #include=/path/to/the/file/you/want/to/include 136 | 137 | ############ 138 | # Profiles # 139 | ############ 140 | 141 | # The options declared as part of profiles override global default settings, 142 | # but only take effect when the profile is active. 143 | 144 | # The following profile can be enabled on the command line with: --profile=eye-cancer 145 | 146 | #[eye-cancer] 147 | #sharpen=5 148 | # 149 | script=/usr/lib/mpv-mpris/mpris.so 150 | #script-opts-append=ytdl_hook-ytdl_path=yt-dlp 151 | -------------------------------------------------------------------------------- /dot_config/rofi/powermenu_theme.rasi: -------------------------------------------------------------------------------- 1 | /** 2 | * ROFI Color theme for powermenu; 3 | * User: haxibami 4 | */ 5 | 6 | * { 7 | foreground: #f8f8f2; 8 | selected-normal-foreground: #f8f8f2; 9 | normal-foreground: @foreground; 10 | alternate-normal-background: #282a36; 11 | red: #ff5555; 12 | selected-urgent-foreground: #21222c; 13 | blue: #268bd2; 14 | urgent-foreground: #ff79C6; 15 | alternate-urgent-background: #282a36; 16 | active-foreground: #50fa7b; 17 | lightbg: #eee8d5; 18 | selected-active-foreground: #ff6e6e; 19 | alternate-active-background: #282a36; 20 | background: #282a36; 21 | bordercolor: #f8f8f2; 22 | alternate-normal-foreground: @foreground; 23 | /* normal-background: #6272a4;*/ 24 | lightfg: #44475a; 25 | selected-normal-background: #44475a; 26 | selected-background: @active-background; 27 | border-color: #ff5555; 28 | spacing: 2; 29 | separatorcolor: #f8f8f2; 30 | urgent-background: #ff5555; 31 | selected-urgent-background: #ff5555; 32 | alternate-urgent-foreground: @urgent-foreground; 33 | background-color: #282a36; 34 | alternate-active-foreground: @active-foreground; 35 | active-background: #6272a4; 36 | selected-active-background: #8be9fd; 37 | colon-foreground: #ff5555; 38 | input-text: #8be9fd; 39 | input-background: #44475a; 40 | prompt-foreground: #6272a4; 41 | } 42 | window { 43 | background-color: @background; 44 | border: 2; 45 | border-radius: 0; 46 | padding: 30; 47 | } 48 | mainbox { 49 | border: 0; 50 | padding: 0; 51 | } 52 | message { 53 | border: 2px 0px 0px ; 54 | border-color: @separatorcolor; 55 | padding: 1px ; 56 | } 57 | textbox { 58 | text-color: @input-color; 59 | } 60 | listview { 61 | fixed-height: 0; 62 | border: 2px 0px 0px ; 63 | border-color: @separatorcolor; 64 | spacing: 2px ; 65 | scrollbar: true; 66 | padding: 10px 0 0 10px; 67 | } 68 | element { 69 | border: 0; 70 | margin: 5px; 71 | } 72 | element.normal.normal { 73 | background-color: @normal-background; 74 | text-color: @normal-foreground; 75 | } 76 | element.normal.urgent { 77 | background-color: @urgent-background; 78 | text-color: @urgent-foreground; 79 | } 80 | element.normal.active { 81 | background-color: @active-background; 82 | text-color: @active-foreground; 83 | } 84 | element.selected.normal { 85 | background-color: @selected-normal-background; 86 | text-color: @selected-normal-foreground; 87 | } 88 | element.selected.urgent { 89 | background-color: @selected-urgent-background; 90 | text-color: @selected-urgent-foreground; 91 | } 92 | element.selected.active { 93 | background-color: @selected-active-background; 94 | text-color: @selected-active-foreground; 95 | } 96 | element.alternate.normal { 97 | background-color: @alternate-normal-background; 98 | text-color: @alternate-normal-foreground; 99 | } 100 | element.alternate.urgent { 101 | background-color: @alternate-urgent-background; 102 | text-color: @alternate-urgent-foreground; 103 | } 104 | element.alternate.active { 105 | background-color: @alternate-active-background; 106 | text-color: @alternate-active-foreground; 107 | } 108 | scrollbar { 109 | width: 4px ; 110 | border: 0; 111 | handle-width: 8px ; 112 | padding: 0; 113 | } 114 | mode-switcher { 115 | border: 2px 0px 0px ; 116 | border-color: @separatorcolor; 117 | } 118 | button.selected { 119 | background-color: @selected-normal-background; 120 | text-color: @selected-normal-foreground; 121 | } 122 | inputbar { 123 | spacing: 0; 124 | text-color: @normal-foreground; 125 | padding: 1px ; 126 | } 127 | case-indicator { 128 | spacing: 0; 129 | text-color: @normal-foreground; 130 | } 131 | entry { 132 | spacing: 0; 133 | text-color: @normal-foreground; 134 | } 135 | prompt, button{ 136 | spacing: 0; 137 | text-color: @normal-foreground; 138 | } 139 | inputbar { 140 | children: [ textbox-prompt-colon,entry,prompt]; 141 | padding: 5px; 142 | margin: 0 0 10px 0; 143 | background-color: @input-background; 144 | border-radius: 5; 145 | } 146 | 147 | prompt { 148 | background-color: @input-background; 149 | text-color: @prompt-foreground; 150 | margin: 0 10px; 151 | text: "a"; 152 | } 153 | 154 | textbox-prompt-colon { 155 | expand: false; 156 | str: ""; 157 | margin: 0 0.3em 0 0.3em ; 158 | text-color: @colon-foreground; 159 | background-color: @input-background; 160 | } 161 | 162 | entry { 163 | background-color: @input-background; 164 | text-color: @input-text; 165 | } 166 | 167 | case-indicator { 168 | background-color: @input-background; 169 | text: "a"; 170 | } 171 | 172 | /* vim:set ft=css: */ 173 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/ddc/init.lua: -------------------------------------------------------------------------------- 1 | -- ddc config 2 | 3 | local ddc = { 4 | patch_buffer = vim.fn['ddc#custom#patch_buffer'], 5 | set_buffer = vim.fn['ddc#custom#set_buffer'], 6 | get_buffer = vim.fn['ddc#custom#get_buffer'], 7 | load_config = vim.fn['ddc#custom#load_config'], 8 | } 9 | 10 | ddc.load_config(vim.fn.stdpath('config') .. '/lua/haxibami/ddc/config.ts') 11 | 12 | vim.fn['ddc#enable']() 13 | 14 | -- key binding 15 | local function pum_insert(key, line) 16 | return function() 17 | if (vim.fn['pum#visible']() == true) then 18 | vim.fn['pum#map#insert_relative'](line) 19 | return '' 20 | end 21 | return key 22 | end 23 | end 24 | 25 | vim.keymap.set('i', '', 26 | function() 27 | if vim.fn['pum#visible']() == true then 28 | vim.fn['pum#map#insert_relative'](1) 29 | return '' 30 | -- elseif (vim.fn['vsnip#available'](1) == 1) then 31 | -- return '(vsnip-expand-or-jump)' 32 | end 33 | local col = vim.fn.col '.' 34 | if col <= 1 or vim.fn.getline('.'):sub(col - 1):match '%s' then 35 | local key = vim.api.nvim_replace_termcodes('', true, false, true) 36 | return vim.api.nvim_feedkeys(key, 'n', true) 37 | else 38 | vim.fn['ddc#map#manual_complete']() 39 | return '' 40 | end 41 | end 42 | , { noremap = true, expr = false }); 43 | 44 | vim.keymap.set('i', '', function() 45 | if (vim.fn['pum#visible']() == true) then 46 | vim.fn['pum#map#insert_relative'](-1) 47 | return '' 48 | -- elseif (vim.fn['vsnip#jumpable'](-1) == 1) then 49 | -- return '(vsnip-jump-prev)' 50 | end 51 | local key = vim.api.nvim_replace_termcodes('', true, false, true) 52 | return vim.api.nvim_feedkeys(key, 'n', true) 53 | end 54 | , { noremap = true, expr = false }); 55 | 56 | vim.keymap.set('i', '', function() 57 | if (vim.fn['pum#visible']() == true) then 58 | vim.fn['pum#map#confirm']() 59 | return '' 60 | else 61 | local key = vim.api.nvim_replace_termcodes('', true, false, true) 62 | return vim.api.nvim_feedkeys(key, 'n', true) 63 | end 64 | end, { noremap = true, expr = false }) 65 | 66 | ---- vim.keymap.set('i', '', function() 67 | ---- if (vim.fn['pum#visible']() == true) then 68 | ---- vim.fn['pum#map#cancel']() 69 | ---- return '' 70 | ---- else 71 | ---- return '' 72 | ---- end 73 | ---- end, { noremap = true, expr = false }) 74 | 75 | local prev_buffer_config 76 | 77 | local cmdlinepost = function() 78 | vim.keymap.del('c', '', { buffer = 0 }) 79 | vim.keymap.del('c', '', { buffer = 0 }) 80 | -- restore sources 81 | if (prev_buffer_config ~= nil) then 82 | ddc.set_buffer(prev_buffer_config) 83 | prev_buffer_config = nil 84 | -- else 85 | -- ddc.set_buffer(vim.empty_dict()) 86 | end 87 | end 88 | 89 | local cmdlinepre = function(mode) 90 | vim.keymap.set('c', '', function() 91 | if (vim.fn['pum#visible']() == true) then 92 | vim.fn['pum#map#insert_relative'](1) 93 | return '' 94 | elseif (vim.b.ddc_cmdline_completion ~= nil) then 95 | vim.fn['ddc#map#manual_complete']() 96 | return '' 97 | end 98 | end 99 | , { noremap = true, expr = true, buffer = 0 }); 100 | vim.keymap.set('c', '', pum_insert('', -1), { noremap = true, buffer = 0, expr = true }); 101 | 102 | if (prev_buffer_config == nil) then 103 | prev_buffer_config = vim.fn['ddc#custom#get_buffer']() 104 | end 105 | if mode == ':' then 106 | -- ddc.patch_buffer('cmdlineSources', { 107 | -- 'cmdline', 108 | -- 'cmdline-history', 109 | -- 'around', 110 | -- 'file', 111 | -- }) 112 | -- ddc.patch_buffer('keywordPattern', '[0-9a-zA-Z_:#]*') 113 | ddc.patch_buffer('filterParams', { 114 | matcher_fuzzy = { 115 | splitMode = 'word' 116 | } 117 | }) 118 | ddc.patch_buffer('sourceOptions', { 119 | cmdline = { 120 | forceCompletionPattern = [[[\w@:~._-]/[\w@:~._-]*]], 121 | keywordPattern = [[[\w@:~._-]*]], 122 | } 123 | }) 124 | else 125 | -- ddc.patch_buffer('cmdlineSources', { 'around' }) 126 | ddc.patch_buffer('filterParams', { 127 | matcher_fuzzy = { 128 | splitMode = 'character' 129 | } 130 | }) 131 | ddc.patch_buffer('sourceOptions', { 132 | around = { 133 | minAutoCompleteLength = 1, 134 | } 135 | }) 136 | end 137 | 138 | vim.api.nvim_create_autocmd({ 'User' }, { 139 | pattern = { 'DDCCmdlineLeave' }, 140 | callback = function() return cmdlinepost end, 141 | once = true, 142 | }) 143 | 144 | vim.api.nvim_create_autocmd({ 'InsertEnter' }, { 145 | buffer = 0, 146 | callback = function() return cmdlinepost end, 147 | once = true, 148 | }) 149 | vim.fn['ddc#enable_cmdline_completion']() 150 | 151 | return mode 152 | end 153 | 154 | -- cmd remapping 155 | vim.keymap.set('n', ':', function() return cmdlinepre(':') end, { expr = true }); 156 | vim.keymap.set('n', '/', function() return cmdlinepre('/') end, { expr = true }); 157 | vim.keymap.set('n', '?', function() return cmdlinepre('?') end, { expr = true }); 158 | 159 | -- vim.keymap.set('s', '', function() 160 | -- if (vim.fn['vsnip#available'](1) == 1) then 161 | -- return '(vsnip-expand-or-jump)' 162 | -- else 163 | -- return '' 164 | -- end 165 | -- end, { noremap = true, expr = true }); 166 | -- 167 | -- vim.keymap.set('s', '', function() 168 | -- if (vim.fn['vsnip#jumpable'](-1) == 1) then 169 | -- return '(vsnip-jump-prev)' 170 | -- else 171 | -- return '' 172 | -- end 173 | -- end, { noremap = true, expr = true }); 174 | -------------------------------------------------------------------------------- /dot_config/foot/foot.ini: -------------------------------------------------------------------------------- 1 | # -*- conf -*- 2 | 3 | # shell=$SHELL (if set, otherwise user's default shell from /etc/passwd) 4 | # term=foot (or xterm-256color if built with -Dterminfo=disabled) 5 | # term=rio 6 | # login-shell=no 7 | 8 | # app-id=foot 9 | # title=foot 10 | # locked-title=no 11 | 12 | font=FirgeNerdConsole:size=19.5 13 | # font-bold= 14 | # font-italic= 15 | # font-bold-italic= 16 | # line-height= 17 | # letter-spacing=0 18 | # horizontal-letter-offset=0 19 | # vertical-letter-offset=0 20 | # underline-offset= 21 | # box-drawings-uses-font-glyphs=no 22 | # dpi-aware=auto 23 | 24 | # initial-window-size-pixels=700x500 # Or, 25 | # initial-window-size-chars= 26 | # initial-window-mode=windowed 27 | pad=25x0 # optionally append 'center' 28 | # resize-delay-ms=100 29 | 30 | # notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} 31 | 32 | # bold-text-in-bright=no 33 | # word-delimiters=,│`|:"'()[]{}<> 34 | # selection-target=primary 35 | # workers= 36 | 37 | [bell] 38 | # urgent=no 39 | # notify=no 40 | # command= 41 | # command-focused=no 42 | 43 | [scrollback] 44 | # lines=1000 45 | # multiplier=3.0 46 | # indicator-position=relative 47 | # indicator-format= 48 | 49 | [url] 50 | # launch=xdg-open ${url} 51 | # label-letters=sadfjklewcmpgh 52 | # osc8-underline=url-mode 53 | # protocols=http, https, ftp, ftps, file, gemini, gopher 54 | # uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[] 55 | 56 | [cursor] 57 | # style=block 58 | # color= 59 | # blink=no 60 | # beam-thickness=1.5 61 | # underline-thickness= 62 | 63 | [mouse] 64 | # hide-when-typing=no 65 | # alternate-scroll-mode=yes 66 | 67 | [colors] 68 | alpha=1 69 | foreground=f2d8e9 70 | background=120e12 71 | 72 | ## Normal/regular colors (color palette 0-7) 73 | regular0=0b0b0b # black 74 | regular1=bf264f # red 75 | regular2=d9919e # green 76 | regular3=f2c791 # yellow 77 | regular4=f27999 # blue 78 | regular5=a48abf # magenta 79 | regular6=96bfd9 # cyan 80 | regular7=f2f2f2 # white 81 | 82 | ## Bright colors (color palette 8-15) 83 | bright0=4e4266 # bright black 84 | bright1=e6bbbe # bright red 85 | bright2=b8d2aa # bright green 86 | bright3=e4d7a4 # bright yellow 87 | bright4=b7aad2 # bright blue 88 | bright5=cbd3eb # bright magenta 89 | bright6=a5cec7 # bright cyan 90 | bright7=edebef # bright white 91 | 92 | ## dimmed colors (see foot.ini(5) man page) 93 | # dim0= 94 | # ... 95 | # dim7= 96 | 97 | ## The remaining 256-color palette 98 | # 16 = <256-color palette #16> 99 | # ... 100 | # 255 = <256-color palette #255> 101 | 102 | ## Misc colors 103 | # selection-foreground= 104 | # selection-background= 105 | # jump-labels= 106 | # urls= 107 | # scrollback-indicator= 108 | 109 | [csd] 110 | # preferred=server 111 | # size=26 112 | # font= 113 | # color= 114 | # hide-when-typing=no 115 | # border-width=0 116 | # border-color= 117 | # button-width=26 118 | # button-color= 119 | # button-minimize-color= 120 | # button-maximize-color= 121 | # button-close-color= 122 | 123 | [key-bindings] 124 | # scrollback-up-page=Shift+Page_Up 125 | # scrollback-up-half-page=none 126 | # scrollback-up-line=none 127 | # scrollback-down-page=Shift+Page_Down 128 | # scrollback-down-half-page=none 129 | # scrollback-down-line=none 130 | # clipboard-copy=Control+Shift+c XF86Copy 131 | # clipboard-paste=Control+Shift+v XF86Paste 132 | # primary-paste=Shift+Insert 133 | # search-start=Control+Shift+r 134 | # font-increase=Control+plus Control+equal Control+KP_Add 135 | # font-decrease=Control+minus Control+KP_Subtract 136 | # font-reset=Control+0 Control+KP_0 137 | # spawn-terminal=Control+Shift+n 138 | # minimize=none 139 | # maximize=none 140 | # fullscreen=none 141 | # pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none 142 | # pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none 143 | # pipe-selected=[xargs -r firefox] none 144 | # show-urls-launch=Control+Shift+u 145 | # show-urls-copy=none 146 | # show-urls-persistent=none 147 | # noop=none 148 | 149 | [search-bindings] 150 | # cancel=Control+g Control+c Escape 151 | # commit=Return 152 | # find-prev=Control+r 153 | # find-next=Control+s 154 | # cursor-left=Left Control+b 155 | # cursor-left-word=Control+Left Mod1+b 156 | # cursor-right=Right Control+f 157 | # cursor-right-word=Control+Right Mod1+f 158 | # cursor-home=Home Control+a 159 | # cursor-end=End Control+e 160 | # delete-prev=BackSpace 161 | # delete-prev-word=Mod1+BackSpace Control+BackSpace 162 | # delete-next=Delete 163 | # delete-next-word=Mod1+d Control+Delete 164 | # extend-to-word-boundary=Control+w 165 | # extend-to-next-whitespace=Control+Shift+w 166 | # clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste 167 | # primary-paste=Shift+Insert 168 | 169 | [url-bindings] 170 | # cancel=Control+g Control+c Control+d Escape 171 | # toggle-url-visible=t 172 | 173 | [text-bindings] 174 | # \x03=Mod4+c # Map Super+c -> Ctrl+c 175 | 176 | [mouse-bindings] 177 | # selection-override-modifiers=Shift 178 | # primary-paste=BTN_MIDDLE 179 | # select-begin=BTN_LEFT 180 | # select-begin-block=Control+BTN_LEFT 181 | # select-extend=BTN_RIGHT 182 | # select-extend-character-wise=Control+BTN_RIGHT 183 | # select-word=BTN_LEFT-2 184 | # select-word-whitespace=Control+BTN_LEFT-2 185 | # select-row=BTN_LEFT-3 186 | 187 | # vim: ft=dosini 188 | -------------------------------------------------------------------------------- /dot_config/rofi/powermenu.rasi: -------------------------------------------------------------------------------- 1 | /* rofi main config file 2 | * styling -> ..mytheme.rasi */ 3 | 4 | configuration { 5 | modi: "window,run,drun,ssh,combi"; 6 | width: 30; 7 | lines: 5; 8 | /* columns: 1;*/ 9 | font: "Neuropol 20"; 10 | bw: 1; 11 | location: 0; 12 | /* padding: 5;*/ 13 | /* yoffset: 0;*/ 14 | /* xoffset: 0;*/ 15 | /* fixed-num-lines: true;*/ 16 | show-icons: true; 17 | terminal: "tilix"; 18 | /* ssh-client: "ssh";*/ 19 | /* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/ 20 | /* run-command: "{cmd}";*/ 21 | /* run-list-command: "";*/ 22 | /* run-shell-command: "{terminal} -e {cmd}";*/ 23 | /* window-command: "wmctrl -i -R {window}";*/ 24 | /* window-match-fields: "all";*/ 25 | /* icon-theme: ;*/ 26 | /* drun-match-fields: "name,generic,exec,categories,keywords";*/ 27 | /* drun-categories: ;*/ 28 | /* drun-show-actions: false;*/ 29 | /* drun-display-format: "{name} [({generic})]";*/ 30 | /* drun-url-launcher: "xdg-open";*/ 31 | /* disable-history: false;*/ 32 | /* ignored-prefixes: "";*/ 33 | /* sort: false;*/ 34 | /* sorting-method: "normal";*/ 35 | /* case-sensitive: false;*/ 36 | /* cycle: true;*/ 37 | /* sidebar-mode: false;*/ 38 | /* eh: 1;*/ 39 | /* auto-select: false;*/ 40 | /* parse-hosts: false;*/ 41 | /* parse-known-hosts: true;*/ 42 | /* combi-modi: "window,run";*/ 43 | /* matching: "normal";*/ 44 | /* tokenize: true;*/ 45 | /* m: "-5";*/ 46 | /* line-margin: 2;*/ 47 | /* line-padding: 1;*/ 48 | /* filter: ;*/ 49 | /* separator-style: "dash";*/ 50 | hide-scrollbar: true; 51 | /* fullscreen: false;*/ 52 | /* fake-transparency: false;*/ 53 | /* dpi: -1;*/ 54 | /* threads: 0;*/ 55 | /* scrollbar-width: 8;*/ 56 | /* scroll-method: 0;*/ 57 | /* fake-background: "screenshot";*/ 58 | /* window-format: "{w} {c} {t}";*/ 59 | /* click-to-exit: true;*/ 60 | /* show-match: true;*/ 61 | /* theme: ;*/ 62 | /* color-normal: ;*/ 63 | /* color-urgent: ;*/ 64 | /* color-active: ;*/ 65 | /* color-window: ;*/ 66 | /* max-history-size: 25;*/ 67 | /* combi-hide-mode-prefix: false;*/ 68 | /* matching-negate-char: '-' /* unsupported */;*/ 69 | /* cache-dir: ;*/ 70 | /* window-thumbnail: false;*/ 71 | /* drun-use-desktop-cache: false;*/ 72 | /* drun-reload-desktop-cache: false;*/ 73 | /* normalize-match: false;*/ 74 | /* pid: "/home/haxibami/.cache/rofi.pid";*/ 75 | /* display-window: ;*/ 76 | /* display-windowcd: ;*/ 77 | /* display-run: ;*/ 78 | /* display-ssh: ;*/ 79 | /* display-drun: ;*/ 80 | /* display-combi: ;*/ 81 | /* display-keys: ;*/ 82 | /* display-file-browser: ;*/ 83 | /* kb-primary-paste: "Control+V,Shift+Insert";*/ 84 | /* kb-secondary-paste: "Control+v,Insert";*/ 85 | /* kb-clear-line: "Control+w";*/ 86 | /* kb-move-front: "Control+a";*/ 87 | /* kb-move-end: "Control+e";*/ 88 | /* kb-move-word-back: "Alt+b,Control+Left";*/ 89 | /* kb-move-word-forward: "Alt+f,Control+Right";*/ 90 | /* kb-move-char-back: "Left,Control+b";*/ 91 | /* kb-move-char-forward: "Right,Control+f";*/ 92 | /* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/ 93 | /* kb-remove-word-forward: "Control+Alt+d";*/ 94 | /* kb-remove-char-forward: "Delete,Control+d";*/ 95 | /* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/ 96 | /* kb-remove-to-eol: "Control+k";*/ 97 | /* kb-remove-to-sol: "Control+u";*/ 98 | /* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/ 99 | /* kb-accept-custom: "Control+Return";*/ 100 | /* kb-accept-alt: "Shift+Return";*/ 101 | /* kb-delete-entry: "Shift+Delete";*/ 102 | /* kb-mode-next: "Shift+Right,Control+Tab";*/ 103 | /* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/ 104 | /* kb-row-left: "Control+Page_Up";*/ 105 | /* kb-row-right: "Control+Page_Down";*/ 106 | /* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/ 107 | /* kb-row-down: "Down,Control+n";*/ 108 | /* kb-row-tab: "Tab";*/ 109 | /* kb-page-prev: "Page_Up";*/ 110 | /* kb-page-next: "Page_Down";*/ 111 | /* kb-row-first: "Home,KP_Home";*/ 112 | /* kb-row-last: "End,KP_End";*/ 113 | /* kb-row-select: "Control+space";*/ 114 | /* kb-screenshot: "Alt+S";*/ 115 | /* kb-ellipsize: "Alt+period";*/ 116 | /* kb-toggle-case-sensitivity: "grave,dead_grave";*/ 117 | /* kb-toggle-sort: "Alt+grave";*/ 118 | kb-cancel: "Escape,Control+g,Control+bracketleft,Alt+space"; 119 | /* kb-custom-1: "Alt+1";*/ 120 | /* kb-custom-2: "Alt+2";*/ 121 | /* kb-custom-3: "Alt+3";*/ 122 | /* kb-custom-4: "Alt+4";*/ 123 | /* kb-custom-5: "Alt+5";*/ 124 | /* kb-custom-6: "Alt+6";*/ 125 | /* kb-custom-7: "Alt+7";*/ 126 | /* kb-custom-8: "Alt+8";*/ 127 | /* kb-custom-9: "Alt+9";*/ 128 | /* kb-custom-10: "Alt+0";*/ 129 | /* kb-custom-11: "Alt+exclam";*/ 130 | /* kb-custom-12: "Alt+at";*/ 131 | /* kb-custom-13: "Alt+numbersign";*/ 132 | /* kb-custom-14: "Alt+dollar";*/ 133 | /* kb-custom-15: "Alt+percent";*/ 134 | /* kb-custom-16: "Alt+dead_circumflex";*/ 135 | /* kb-custom-17: "Alt+ampersand";*/ 136 | /* kb-custom-18: "Alt+asterisk";*/ 137 | /* kb-custom-19: "Alt+parenleft";*/ 138 | /* kb-select-1: "Super+1";*/ 139 | /* kb-select-2: "Super+2";*/ 140 | /* kb-select-3: "Super+3";*/ 141 | /* kb-select-4: "Super+4";*/ 142 | /* kb-select-5: "Super+5";*/ 143 | /* kb-select-6: "Super+6";*/ 144 | /* kb-select-7: "Super+7";*/ 145 | /* kb-select-8: "Super+8";*/ 146 | /* kb-select-9: "Super+9";*/ 147 | /* kb-select-10: "Super+0";*/ 148 | /* ml-row-left: "ScrollLeft";*/ 149 | /* ml-row-right: "ScrollRight";*/ 150 | /* ml-row-up: "ScrollUp";*/ 151 | /* ml-row-down: "ScrollDown";*/ 152 | /* me-select-entry: "MousePrimary";*/ 153 | /* me-accept-entry: "MouseDPrimary";*/ 154 | /* me-accept-custom: "Control+MouseDPrimary";*/ 155 | } 156 | 157 | @import "/home/haxibami/.config/rofi/powermenu_theme.rasi" 158 | 159 | 160 | /* vim:set ft=css: */ 161 | -------------------------------------------------------------------------------- /dot_config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | /* rofi main config file 2 | * styling -> ..mytheme.rasi */ 3 | 4 | configuration { 5 | modi: "window,run,drun,ssh,calc"; 6 | width: 30; 7 | /* lines: 15;*/ 8 | /* columns: 1;*/ 9 | font: "Neuropol 20"; 10 | bw: 1; 11 | location: 0; 12 | /* padding: 5;*/ 13 | /* yoffset: 0;*/ 14 | /* xoffset: 0;*/ 15 | /* fixed-num-lines: true;*/ 16 | show-icons: true; 17 | terminal: "alacritty"; 18 | /* ssh-client: "ssh";*/ 19 | /* ssh-command: "{terminal} -e {ssh-client} {host} [-p {port}]";*/ 20 | /* run-command: "{cmd}";*/ 21 | /* run-list-command: "";*/ 22 | /* run-shell-command: "{terminal} -e {cmd}";*/ 23 | /* window-command: "wmctrl -i -R {window}";*/ 24 | /* window-match-fields: "all";*/ 25 | /* icon-theme: ;*/ 26 | /* drun-match-fields: "name,generic,exec,categories,keywords";*/ 27 | /* drun-categories: ;*/ 28 | /* drun-show-actions: false;*/ 29 | /* drun-display-format: "{name} [({generic})]";*/ 30 | /* drun-url-launcher: "xdg-open";*/ 31 | /* disable-history: false;*/ 32 | /* ignored-prefixes: "";*/ 33 | /* sort: false;*/ 34 | /* sorting-method: "normal";*/ 35 | /* case-sensitive: false;*/ 36 | /* cycle: true;*/ 37 | /* sidebar-mode: false;*/ 38 | /* eh: 1;*/ 39 | /* auto-select: false;*/ 40 | /* parse-hosts: false;*/ 41 | /* parse-known-hosts: true;*/ 42 | /* combi-modi: "window,run";*/ 43 | /* matching: "normal";*/ 44 | /* tokenize: true;*/ 45 | /* m: "-5";*/ 46 | /* line-margin: 2;*/ 47 | /* line-padding: 1;*/ 48 | /* filter: ;*/ 49 | /* separator-style: "dash";*/ 50 | hide-scrollbar: true; 51 | /* fullscreen: false;*/ 52 | /* fake-transparency: false;*/ 53 | /* dpi: -1;*/ 54 | /* threads: 0;*/ 55 | /* scrollbar-width: 8;*/ 56 | /* scroll-method: 0;*/ 57 | /* fake-background: "screenshot";*/ 58 | /* window-format: "{w} {c} {t}";*/ 59 | /* click-to-exit: true;*/ 60 | /* show-match: true;*/ 61 | /* theme: ;*/ 62 | /* color-normal: ;*/ 63 | /* color-urgent: ;*/ 64 | /* color-active: ;*/ 65 | /* color-window: ;*/ 66 | /* max-history-size: 25;*/ 67 | /* combi-hide-mode-prefix: false;*/ 68 | /* matching-negate-char: '-' /* unsupported */;*/ 69 | /* cache-dir: ;*/ 70 | /* window-thumbnail: false;*/ 71 | /* drun-use-desktop-cache: false;*/ 72 | /* drun-reload-desktop-cache: false;*/ 73 | /* normalize-match: false;*/ 74 | /* pid: "/home/haxibami/.cache/rofi.pid";*/ 75 | /* display-window: ;*/ 76 | /* display-windowcd: ;*/ 77 | /* display-run: ;*/ 78 | /* display-ssh: ;*/ 79 | /* display-drun: ;*/ 80 | /* display-combi: ;*/ 81 | /* display-keys: ;*/ 82 | /* display-file-browser: ;*/ 83 | /* kb-primary-paste: "Control+V,Shift+Insert";*/ 84 | /* kb-secondary-paste: "Control+v,Insert";*/ 85 | /* kb-clear-line: "Control+w";*/ 86 | /* kb-move-front: "Control+a";*/ 87 | /* kb-move-end: "Control+e";*/ 88 | /* kb-move-word-back: "Alt+b,Control+Left";*/ 89 | /* kb-move-word-forward: "Alt+f,Control+Right";*/ 90 | /* kb-move-char-back: "Left,Control+b";*/ 91 | /* kb-move-char-forward: "Right,Control+f";*/ 92 | /* kb-remove-word-back: "Control+Alt+h,Control+BackSpace";*/ 93 | /* kb-remove-word-forward: "Control+Alt+d";*/ 94 | /* kb-remove-char-forward: "Delete,Control+d";*/ 95 | /* kb-remove-char-back: "BackSpace,Shift+BackSpace,Control+h";*/ 96 | /* kb-remove-to-eol: "Control+k";*/ 97 | /* kb-remove-to-sol: "Control+u";*/ 98 | /* kb-accept-entry: "Control+j,Control+m,Return,KP_Enter";*/ 99 | /* kb-accept-custom: "Control+Return";*/ 100 | /* kb-accept-alt: "Shift+Return";*/ 101 | /* kb-delete-entry: "Shift+Delete";*/ 102 | /* kb-mode-next: "Shift+Right,Control+Tab";*/ 103 | /* kb-mode-previous: "Shift+Left,Control+ISO_Left_Tab";*/ 104 | /* kb-row-left: "Control+Page_Up";*/ 105 | /* kb-row-right: "Control+Page_Down";*/ 106 | /* kb-row-up: "Up,Control+p,ISO_Left_Tab";*/ 107 | /* kb-row-down: "Down,Control+n";*/ 108 | /* kb-row-tab: "Tab";*/ 109 | /* kb-page-prev: "Page_Up";*/ 110 | /* kb-page-next: "Page_Down";*/ 111 | /* kb-row-first: "Home,KP_Home";*/ 112 | /* kb-row-last: "End,KP_End";*/ 113 | /* kb-row-select: "Control+space";*/ 114 | /* kb-screenshot: "Alt+S";*/ 115 | /* kb-ellipsize: "Alt+period";*/ 116 | /* kb-toggle-case-sensitivity: "grave,dead_grave";*/ 117 | /* kb-toggle-sort: "Alt+grave";*/ 118 | kb-cancel: "Escape,Control+g,Control+bracketleft,Alt+space,Alt+shift+space"; 119 | /* kb-custom-1: "Alt+1";*/ 120 | /* kb-custom-2: "Alt+2";*/ 121 | /* kb-custom-3: "Alt+3";*/ 122 | /* kb-custom-4: "Alt+4";*/ 123 | /* kb-custom-5: "Alt+5";*/ 124 | /* kb-custom-6: "Alt+6";*/ 125 | /* kb-custom-7: "Alt+7";*/ 126 | /* kb-custom-8: "Alt+8";*/ 127 | /* kb-custom-9: "Alt+9";*/ 128 | /* kb-custom-10: "Alt+0";*/ 129 | /* kb-custom-11: "Alt+exclam";*/ 130 | /* kb-custom-12: "Alt+at";*/ 131 | /* kb-custom-13: "Alt+numbersign";*/ 132 | /* kb-custom-14: "Alt+dollar";*/ 133 | /* kb-custom-15: "Alt+percent";*/ 134 | /* kb-custom-16: "Alt+dead_circumflex";*/ 135 | /* kb-custom-17: "Alt+ampersand";*/ 136 | /* kb-custom-18: "Alt+asterisk";*/ 137 | /* kb-custom-19: "Alt+parenleft";*/ 138 | /* kb-select-1: "Super+1";*/ 139 | /* kb-select-2: "Super+2";*/ 140 | /* kb-select-3: "Super+3";*/ 141 | /* kb-select-4: "Super+4";*/ 142 | /* kb-select-5: "Super+5";*/ 143 | /* kb-select-6: "Super+6";*/ 144 | /* kb-select-7: "Super+7";*/ 145 | /* kb-select-8: "Super+8";*/ 146 | /* kb-select-9: "Super+9";*/ 147 | /* kb-select-10: "Super+0";*/ 148 | /* ml-row-left: "ScrollLeft";*/ 149 | /* ml-row-right: "ScrollRight";*/ 150 | /* ml-row-up: "ScrollUp";*/ 151 | /* ml-row-down: "ScrollDown";*/ 152 | /* me-select-entry: "MousePrimary";*/ 153 | /* me-accept-entry: "MouseDPrimary";*/ 154 | /* me-accept-custom: "Control+MouseDPrimary";*/ 155 | } 156 | 157 | @import "/home/haxibami/.config/rofi/mytheme.rasi" 158 | /*@import "/home/haxibami/tmp/DarkBlue.rasi"*/ 159 | 160 | /* vim:set ft=css: */ 161 | -------------------------------------------------------------------------------- /dot_config/ranger/colorschemes/urara.py: -------------------------------------------------------------------------------- 1 | # This file is part of ranger, the console file manager. 2 | # License: GNU GPL version 3, see the file "AUTHORS" for details. 3 | 4 | from __future__ import (absolute_import, division, print_function) 5 | 6 | from ranger.gui.colorscheme import ColorScheme 7 | from ranger.gui.color import ( 8 | black, blue, cyan, green, magenta, red, white, yellow, default, 9 | normal, bold, reverse, dim, BRIGHT, 10 | default_colors, 11 | ) 12 | 13 | 14 | class Base16_urara(ColorScheme): 15 | progress_bar_color = blue 16 | 17 | def use(self, context): # pylint: disable=too-many-branches,too-many-statements 18 | fg, bg, attr = default_colors 19 | 20 | if context.reset: 21 | return default_colors 22 | 23 | elif context.in_browser: 24 | if context.selected: 25 | attr = reverse 26 | else: 27 | attr = normal 28 | if context.empty or context.error: 29 | bg = red 30 | if context.border: 31 | fg = default 32 | if context.media: 33 | if context.image: 34 | fg = yellow 35 | else: 36 | fg = magenta 37 | if context.container: 38 | fg = red 39 | if context.directory: 40 | attr |= bold 41 | fg = green 42 | #fg += BRIGHT 43 | elif context.executable and not \ 44 | any((context.media, context.container, 45 | context.fifo, context.socket)): 46 | attr |= bold 47 | fg = cyan 48 | #fg += BRIGHT 49 | if context.socket: 50 | attr |= bold 51 | fg = magenta 52 | fg += BRIGHT 53 | if context.fifo or context.device: 54 | fg = yellow 55 | if context.device: 56 | attr |= bold 57 | fg += BRIGHT 58 | if context.link: 59 | fg = yellow if context.good else magenta 60 | if context.tag_marker and not context.selected: 61 | attr |= bold 62 | if fg in (red, magenta): 63 | fg = white 64 | else: 65 | fg = red 66 | fg += BRIGHT 67 | if not context.selected and (context.cut or context.copied): 68 | attr |= bold 69 | fg = black 70 | fg += BRIGHT 71 | # If the terminal doesn't support bright colors, use dim white 72 | # instead of black. 73 | if BRIGHT == 0: 74 | attr |= dim 75 | fg = white 76 | if context.main_column: 77 | # Doubling up with BRIGHT here causes issues because it's 78 | # additive not idempotent. 79 | if context.selected: 80 | attr |= bold 81 | if context.marked: 82 | attr |= bold 83 | fg = yellow 84 | if context.badinfo: 85 | if attr & reverse: 86 | bg = magenta 87 | else: 88 | fg = magenta 89 | 90 | if context.inactive_pane: 91 | fg = cyan 92 | 93 | elif context.in_titlebar: 94 | if context.hostname: 95 | fg = red if context.bad else green 96 | elif context.directory: 97 | fg = yellow 98 | elif context.tab: 99 | if context.good: 100 | bg = green 101 | elif context.link: 102 | fg = cyan 103 | attr |= bold 104 | 105 | elif context.in_statusbar: 106 | if context.permissions: 107 | if context.good: 108 | fg = cyan 109 | elif context.bad: 110 | fg = magenta 111 | if context.marked: 112 | attr |= bold | reverse 113 | fg = yellow 114 | fg += BRIGHT 115 | if context.frozen: 116 | attr |= bold | reverse 117 | fg = cyan 118 | fg += BRIGHT 119 | if context.message: 120 | if context.bad: 121 | attr |= bold 122 | fg = red 123 | fg += BRIGHT 124 | if context.loaded: 125 | bg = self.progress_bar_color 126 | if context.vcsinfo: 127 | fg = blue 128 | attr &= ~bold 129 | if context.vcscommit: 130 | fg = yellow 131 | attr &= ~bold 132 | if context.vcsdate: 133 | fg = cyan 134 | attr &= ~bold 135 | 136 | if context.text: 137 | if context.highlight: 138 | attr |= reverse 139 | 140 | if context.in_taskview: 141 | if context.title: 142 | fg = blue 143 | 144 | if context.selected: 145 | attr |= reverse 146 | 147 | if context.loaded: 148 | if context.selected: 149 | fg = self.progress_bar_color 150 | else: 151 | bg = self.progress_bar_color 152 | 153 | if context.vcsfile and not context.selected: 154 | attr &= ~bold 155 | if context.vcsconflict: 156 | fg = magenta 157 | elif context.vcsuntracked: 158 | fg = cyan 159 | elif context.vcschanged: 160 | fg = red 161 | elif context.vcsunknown: 162 | fg = red 163 | elif context.vcsstaged: 164 | fg = green 165 | elif context.vcssync: 166 | fg = green 167 | elif context.vcsignored: 168 | fg = default 169 | 170 | elif context.vcsremote and not context.selected: 171 | attr &= ~bold 172 | if context.vcssync or context.vcsnone: 173 | fg = green 174 | elif context.vcsbehind: 175 | fg = red 176 | elif context.vcsahead: 177 | fg = blue 178 | elif context.vcsdiverged: 179 | fg = magenta 180 | elif context.vcsunknown: 181 | fg = red 182 | 183 | return fg, bg, attr 184 | -------------------------------------------------------------------------------- /dot_config/cava/config: -------------------------------------------------------------------------------- 1 | ## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting. 2 | 3 | 4 | [general] 5 | 6 | # Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 7 | ; mode = normal 8 | 9 | # Accepts only non-negative values. 10 | ; framerate = 60 11 | 12 | # 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off 13 | # new as of 0.6.0 autosens of low values (dynamic range) 14 | # 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 15 | ; autosens = 1 16 | ; overshoot = 20 17 | 18 | # Manual sensitivity in %. If autosens is enabled, this will only be the initial value. 19 | # 200 means double height. Accepts only non-negative values. 20 | ; sensitivity = 100 21 | 22 | # The number of bars (0-200). 0 sets it to auto (fill up console). 23 | # Bars' width and space between bars in number of characters. 24 | ; bars = 0 25 | ; bar_width = 2 26 | ; bar_spacing = 1 27 | 28 | 29 | # Lower and higher cutoff frequencies for lowest and highest bars 30 | # the bandwidth of the visualizer. 31 | # Note: there is a minimum total bandwidth of 43Mhz x number of bars. 32 | # Cava will automatically increase the higher cutoff if a too low band is specified. 33 | ; lower_cutoff_freq = 50 34 | ; higher_cutoff_freq = 10000 35 | 36 | 37 | # Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and 38 | # only check for input once per second. Cava will wake up once input is detected. 0 = disable. 39 | ; sleep_timer = 0 40 | 41 | 42 | [input] 43 | 44 | # Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem' 45 | # Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. 46 | # 47 | # All input methods uses the same config variable 'source' 48 | # to define where it should get the audio. 49 | # 50 | # For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink 51 | # (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). 52 | # 53 | # For alsa 'source' will be the capture device. 54 | # For fifo 'source' will be the path to fifo-file. 55 | # For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address 56 | ; method = pulse 57 | ; source = auto 58 | 59 | ; method = alsa 60 | ; source = hw:Loopback,1 61 | 62 | ; method = fifo 63 | ; source = /tmp/mpd.fifo 64 | ; sample_rate = 44100 65 | ; sample_bits = 16 66 | 67 | ; method = shmem 68 | ; source = /squeezelite-AA:BB:CC:DD:EE:FF 69 | 70 | ; method = portaudio 71 | ; source = auto 72 | 73 | 74 | [output] 75 | 76 | # Output method. Can be 'ncurses', 'noncurses' or 'raw'. 77 | # 'noncurses' uses a custom framebuffer technique and draws only changes 78 | # from frame to frame. 'ncurses' is default if supported 79 | # 80 | # 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data 81 | # stream of the bar heights that can be used to send to other applications. 82 | # 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. 83 | ; method = ncurses 84 | 85 | # Visual channels. Can be 'stereo' or 'mono'. 86 | # 'stereo' mirrors both channels with low frequencies in center. 87 | # 'mono' outputs left to right lowest to highest frequencies. 88 | # 'mono_option' set mono to either take input from 'left', 'right' or 'average'. 89 | ; channels = stereo 90 | ; mono_option = average 91 | 92 | # Raw output target. A fifo will be created if target does not exist. 93 | ; raw_target = /dev/stdout 94 | 95 | # Raw data format. Can be 'binary' or 'ascii'. 96 | ; data_format = binary 97 | 98 | # Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). 99 | ; bit_format = 16bit 100 | 101 | # Ascii max value. In 'ascii' mode range will run from 0 to value specified here 102 | ; ascii_max_range = 1000 103 | 104 | # Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. 105 | # Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). 106 | ; bar_delimiter = 59 107 | ; frame_delimiter = 10 108 | 109 | 110 | 111 | [color] 112 | 113 | # Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. 114 | # Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires 115 | # ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt. 116 | # if supported, ncurses mode will be forced on if user defined colors are used. 117 | # default is to keep current terminal color 118 | ; background = default 119 | ; foreground = default 120 | 121 | # Gradient mode, only hex defined colors (and thereby ncurses mode) are supported, 122 | # background must also be defined in hex or remain commented out. 1 = on, 0 = off. 123 | # You can define as many as 8 different colors. They range from bottom to top of screen 124 | ; gradient = 1 125 | ; gradient_count = 8 126 | ; gradient_color_1 = '#59cc33' 127 | ; gradient_color_2 = '#80cc33' 128 | ; gradient_color_3 = '#a6cc33' 129 | ; gradient_color_4 = '#cccc33' 130 | ; gradient_color_5 = '#cca633' 131 | ; gradient_color_6 = '#cc8033' 132 | ; gradient_color_7 = '#cc5933' 133 | ; gradient_color_8 = '#cc3333' 134 | 135 | gradient = 1 136 | gradient_count = 6 137 | gradient_color_1 = '#b686bf' 138 | gradient_color_2 = '#a6b4de' 139 | gradient_color_3 = '#86bfb6' 140 | gradient_color_4 = '#9abf86' 141 | gradient_color_5 = '#d9c77e' 142 | gradient_color_6 = '#d9989c' 143 | 144 | 145 | 146 | 147 | [smoothing] 148 | 149 | # Percentage value for integral smoothing. Takes values from 0 - 100. 150 | # Higher values means smoother, but less precise. 0 to disable. 151 | ; integral = 77 152 | 153 | # Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. 154 | ; monstercat = 0 155 | ; waves = 0 156 | 157 | # Set gravity percentage for "drop off". Higher values means bars will drop faster. 158 | # Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". 159 | ; gravity = 100 160 | 161 | 162 | # In bar height, bars that would have been lower that this will not be drawn. 163 | ; ignore = 0 164 | 165 | 166 | [eq] 167 | 168 | # This one is tricky. You can have as much keys as you want. 169 | # Remember to uncomment more then one key! More keys = more precision. 170 | # Look at readme.md on github for further explanations and examples. 171 | ; 1 = 1 # bass 172 | ; 2 = 1 173 | ; 3 = 1 # midtone 174 | ; 4 = 1 175 | ; 5 = 1 # treble 176 | -------------------------------------------------------------------------------- /dot_config/joshuto/keymap.toml: -------------------------------------------------------------------------------- 1 | [default_view] 2 | 3 | keymap = [ 4 | { keys = ["escape"], command = "escape" }, 5 | { keys = ["T"], command = "new_tab" }, 6 | { keys = ["ctrl+t"], command = "new_tab" }, 7 | { keys = ["W"], command = "close_tab" }, 8 | { keys = ["ctrl+w"], command = "close_tab" }, 9 | { keys = ["q"], command = "close_tab" }, 10 | { keys = ["Q"], command = "quit --output-current-directory" }, 11 | 12 | { keys = ["R"], command = "reload_dirlist" }, 13 | { keys = ["z", "h"], command = "toggle_hidden" }, 14 | { keys = ["ctrl+h"], command = "toggle_hidden" }, 15 | { keys = ["\t"], command = "tab_switch 1" }, 16 | { keys = ["backtab"], command = "tab_switch -1" }, 17 | 18 | { keys = ["alt+1"], command = "tab_switch_index 1" }, 19 | { keys = ["alt+2"], command = "tab_switch_index 2" }, 20 | { keys = ["alt+3"], command = "tab_switch_index 3" }, 21 | { keys = ["alt+4"], command = "tab_switch_index 4" }, 22 | { keys = ["alt+5"], command = "tab_switch_index 5" }, 23 | 24 | { keys = ["1"], command = "numbered_command 1" }, 25 | { keys = ["2"], command = "numbered_command 2" }, 26 | { keys = ["3"], command = "numbered_command 3" }, 27 | { keys = ["4"], command = "numbered_command 4" }, 28 | { keys = ["5"], command = "numbered_command 5" }, 29 | { keys = ["6"], command = "numbered_command 6" }, 30 | { keys = ["7"], command = "numbered_command 7" }, 31 | { keys = ["8"], command = "numbered_command 8" }, 32 | { keys = ["9"], command = "numbered_command 9" }, 33 | 34 | # arrow keys 35 | { keys = ["arrow_up"], command = "cursor_move_up" }, 36 | { keys = ["arrow_down"], command = "cursor_move_down" }, 37 | { keys = ["arrow_left"], command = "cd .." }, 38 | { keys = ["arrow_right"], command = "open" }, 39 | { keys = ["\n"], command = "open" }, 40 | { keys = ["home"], command = "cursor_move_home" }, 41 | { keys = ["end"], command = "cursor_move_end" }, 42 | { keys = ["page_up"], command = "cursor_move_page_up" }, 43 | { keys = ["page_down"], command = "cursor_move_page_down" }, 44 | { keys = ["ctrl+u"], command = "cursor_move_page_up 0.5" }, 45 | { keys = ["ctrl+d"], command = "cursor_move_page_down 0.5" }, 46 | 47 | # vim-like keybindings 48 | { keys = ["j"], command = "cursor_move_down" }, 49 | { keys = ["k"], command = "cursor_move_up" }, 50 | { keys = ["h"], command = "cd .." }, 51 | { keys = ["l"], command = "open" }, 52 | { keys = ["g", "g"], command = "cursor_move_home" }, 53 | { keys = ["G"], command = "cursor_move_end" }, 54 | { keys = ["r"], command = "open_with" }, 55 | 56 | { keys = ["H"], command = "cursor_move_page_home" }, 57 | { keys = ["L"], command = "cursor_move_page_middle" }, 58 | { keys = ["M"], command = "cursor_move_page_end" }, 59 | 60 | { keys = ["["], command = "parent_cursor_move_up" }, 61 | { keys = ["]"], command = "parent_cursor_move_down" }, 62 | 63 | { keys = ["c", "d"], command = ":cd " }, 64 | { keys = ["d", "d"], command = "cut_files" }, 65 | { keys = ["y", "y"], command = "copy_files" }, 66 | { keys = ["y", "n"], command = "copy_filename" }, 67 | { keys = ["y", "."], command = "copy_filename_without_extension" }, 68 | { keys = ["y", "p"], command = "copy_filepath" }, 69 | { keys = ["y", "d"], command = "copy_dirpath" }, 70 | 71 | { keys = ["p", "l"], command = "symlink_files --relative=false" }, 72 | { keys = ["p", "L"], command = "symlink_files --relative=true" }, 73 | 74 | { keys = ["delete"], command = "delete_files --foreground=true" }, 75 | { keys = ["d", "D"], command = "delete_files --foreground=true" }, 76 | 77 | { keys = ["p", "p"], command = "paste_files" }, 78 | { keys = ["p", "o"], command = "paste_files --overwrite=true" }, 79 | 80 | { keys = ["a"], command = "rename_append" }, 81 | { keys = ["A"], command = "rename_prepend" }, 82 | 83 | { keys = ["f", "t"], command = ":touch " }, 84 | 85 | { keys = [" "], command = "select --toggle=true" }, 86 | { keys = ["t"], command = "select --all=true --toggle=true" }, 87 | { keys = ["V"], command = "toggle_visual" }, 88 | 89 | { keys = ["w"], command = "show_tasks --exit-key=w" }, 90 | { keys = ["b", "b"], command = "bulk_rename" }, 91 | { keys = ["="], command = "set_mode" }, 92 | 93 | { keys = [":"], command = ":" }, 94 | { keys = [";"], command = ":" }, 95 | 96 | { keys = ["'"], command = ":shell " }, 97 | { keys = ["m", "k"], command = ":mkdir " }, 98 | { keys = ["c", "w"], command = ":rename " }, 99 | 100 | { keys = ["/"], command = ":search " }, 101 | { keys = ["|"], command = ":search_inc " }, 102 | { keys = ["\\"], command = ":search_glob " }, 103 | { keys = ["S"], command = "search_fzf" }, 104 | { keys = ["C"], command = "subdir_fzf" }, 105 | 106 | { keys = ["n"], command = "search_next" }, 107 | { keys = ["N"], command = "search_prev" }, 108 | 109 | { keys = ["s", "r"], command = "sort reverse" }, 110 | { keys = ["s", "l"], command = "sort lexical" }, 111 | { keys = ["s", "m"], command = "sort mtime" }, 112 | { keys = ["s", "n"], command = "sort natural" }, 113 | { keys = ["s", "s"], command = "sort size" }, 114 | { keys = ["s", "e"], command = "sort ext" }, 115 | 116 | { keys = ["g", "r"], command = "cd /" }, 117 | { keys = ["g", "c"], command = "cd ~/.config" }, 118 | { keys = ["g", "d"], command = "cd ~/Downloads" }, 119 | { keys = ["g", "e"], command = "cd /etc" }, 120 | { keys = ["g", "h"], command = "cd ~/" }, 121 | { keys = ["?"], command = "help" }, 122 | ] 123 | 124 | [task_view] 125 | 126 | keymap = [ 127 | # arrow keys 128 | { keys = ["arrow_up"], command = "cursor_move_up" }, 129 | { keys = ["arrow_down"], command = "cursor_move_down" }, 130 | { keys = ["home"], command = "cursor_move_home" }, 131 | { keys = ["end"], command = "cursor_move_end" }, 132 | 133 | # vim-like keybindings 134 | { keys = ["j"], command = "cursor_move_down" }, 135 | { keys = ["k"], command = "cursor_move_up" }, 136 | { keys = ["g", "g"], command = "cursor_move_home" }, 137 | { keys = ["G"], command = "cursor_move_end" }, 138 | 139 | { keys = ["w"], command = "show_tasks" }, 140 | { keys = ["escape"], command = "show_tasks" }, 141 | ] 142 | 143 | [help_view] 144 | 145 | keymap = [ 146 | # arrow keys 147 | { keys = ["arrow_up"], command = "cursor_move_up" }, 148 | { keys = ["arrow_down"], command = "cursor_move_down" }, 149 | { keys = ["home"], command = "cursor_move_home" }, 150 | { keys = ["end"], command = "cursor_move_end" }, 151 | 152 | # vim-like keybindings 153 | { keys = ["j"], command = "cursor_move_down" }, 154 | { keys = ["k"], command = "cursor_move_up" }, 155 | { keys = ["g", "g"], command = "cursor_move_home" }, 156 | { keys = ["G"], command = "cursor_move_end" }, 157 | 158 | { keys = ["w"], command = "show_tasks" }, 159 | { keys = ["escape"], command = "show_tasks" }, 160 | ] 161 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/ddu/config.ts: -------------------------------------------------------------------------------- 1 | import { 2 | ActionArguments, 3 | ActionData, 4 | ActionFlags, 5 | BaseConfig, 6 | ConfigArguments, 7 | Denops, 8 | fn, 9 | } from "./deps.ts"; 10 | 11 | type Params = Record; 12 | 13 | export class Config extends BaseConfig { 14 | override config(args: ConfigArguments): Promise { 15 | // args.setAlias("source", "directory_rec", "file_external"); 16 | args.setAlias("action", "tabopen", "open"); 17 | 18 | args.contextBuilder.patchGlobal({ 19 | ui: "ff", 20 | uiOptions: { 21 | filer: { 22 | toggle: true, 23 | }, 24 | }, 25 | uiParams: { 26 | ff: { 27 | filterSplitDirection: "floating", 28 | floatingBorder: "rounded", 29 | // highlights: { 30 | // floating: "Normal", 31 | // floatingBorder: "Special", 32 | // }, 33 | onPreview: async (args: { denops: Denops }) => { 34 | await args.denops.cmd("normal! zt"); 35 | }, 36 | prompt: ">", 37 | previewFloating: true, 38 | startFilter: true, 39 | previewFloatingBorder: "rounded", 40 | previewSplit: true, 41 | updateTime: 0, 42 | winWidth: 50, 43 | // autoAction: { 44 | // name: "preview", 45 | // }, 46 | }, 47 | filer: { 48 | sort: "filename", 49 | sortTreesFirst: true, 50 | split: "no", 51 | toggle: true, 52 | }, 53 | }, 54 | sourceOptions: { 55 | _: { 56 | ignoreCase: true, 57 | matchers: ["matcher_fzf"], 58 | }, 59 | command_history: { 60 | defaultAction: "execute", 61 | }, 62 | help: { 63 | defaultAction: "open", 64 | }, 65 | // file_old: { 66 | // matchers: [ 67 | // "matcher_substring", 68 | // "matcher_relative", 69 | // "matcher_ignore_current_buffer", 70 | // ], 71 | // }, 72 | // file_external: { 73 | // matchers: ["matcher_substring"], 74 | // }, 75 | file_rec: { 76 | matchers: ["matcher_fzf"], 77 | }, 78 | // file: { 79 | // matchers: ["matcher_substring", "matcher_hidden"], 80 | // sorters: ["sorter_alpha"], 81 | // }, 82 | // dein: { 83 | // defaultAction: "cd", 84 | // }, 85 | // markdown: { 86 | // sorters: [], 87 | // }, 88 | // line: { 89 | // matchers: ["matcher_kensaku"], 90 | // }, 91 | // path_history: { 92 | // defaultAction: "uiCd", 93 | // }, 94 | // rg: { 95 | // matchers: ["matcher_substring", "matcher_files"], 96 | // }, 97 | }, 98 | sourceParams: { 99 | file_external: { 100 | // cmd: ["git", "ls-files", "-co", "--exclude-standard"], 101 | cmd: ["fd", ".", "-H", "-E", "__pycache__", "-t", "f"], 102 | }, 103 | rg: { 104 | args: [ 105 | "--ignore-case", 106 | "--column", 107 | "--no-heading", 108 | "--color", 109 | "never", 110 | ], 111 | }, 112 | file_rg: { 113 | cmd: [ 114 | "rg", 115 | "--files", 116 | "--glob", 117 | "!.git", 118 | "--color", 119 | "never", 120 | "--no-messages", 121 | ], 122 | updateItems: 50000, 123 | }, 124 | }, 125 | filterParams: { 126 | matcher_fzf: { 127 | highlightMatched: "Constant", 128 | }, 129 | // matcher_kensaku: { 130 | // highlightMatched: "Search", 131 | // }, 132 | // matcher_substring: { 133 | // highlightMatched: "Search", 134 | // }, 135 | // matcher_ignore_files: { 136 | // ignoreGlobs: ["test_*.vim"], 137 | // ignorePatterns: [], 138 | // }, 139 | }, 140 | kindOptions: { 141 | file: { 142 | defaultAction: "open", 143 | actions: { 144 | grep: async (args: ActionArguments) => { 145 | const action = args.items[0]?.action as ActionData; 146 | 147 | await args.denops.call("ddu#start", { 148 | name: args.options.name, 149 | push: true, 150 | sources: [ 151 | { 152 | name: "rg", 153 | params: { 154 | path: action.path, 155 | input: await fn.input(args.denops, "Pattern: "), 156 | }, 157 | }, 158 | ], 159 | }); 160 | 161 | return Promise.resolve(ActionFlags.None); 162 | }, 163 | uiCd: async (args: ActionArguments) => { 164 | const action = args.items[0]?.action as ActionData; 165 | 166 | await args.denops.call("ddu#ui#do_action", { 167 | name: "narrow", 168 | params: { 169 | path: action.path, 170 | }, 171 | }); 172 | 173 | return Promise.resolve(ActionFlags.None); 174 | }, 175 | }, 176 | }, 177 | // word: { 178 | // defaultAction: "append", 179 | // }, 180 | // deol: { 181 | // defaultAction: "switch", 182 | // }, 183 | // action: { 184 | // defaultAction: "do", 185 | // }, 186 | // readme_viewer: { 187 | // defaultAction: "open", 188 | // }, 189 | }, 190 | kindParams: { 191 | action: { 192 | quit: true, 193 | }, 194 | }, 195 | actionOptions: { 196 | narrow: { 197 | quit: false, 198 | }, 199 | tabopen: { 200 | quit: false, 201 | }, 202 | }, 203 | }); 204 | 205 | args.contextBuilder.patchLocal("files", { 206 | uiParams: { 207 | ff: { 208 | split: "floating", 209 | }, 210 | }, 211 | }); 212 | 213 | return Promise.resolve(); 214 | } 215 | } 216 | -------------------------------------------------------------------------------- /dot_config/bottom/bottom.toml: -------------------------------------------------------------------------------- 1 | # This is a default config file for bottom. All of the settings are commented 2 | # out by default; if you wish to change them uncomment and modify as you see 3 | # fit. 4 | 5 | # This group of options represents a command-line flag/option. Flags explicitly 6 | # added when running (ie: btm -a) will override this config file if an option 7 | # is also set here. 8 | 9 | [flags] 10 | # Whether to hide the average cpu entry. 11 | #hide_avg_cpu = false 12 | # Whether to use dot markers rather than braille. 13 | #dot_marker = false 14 | # The update rate of the application. 15 | #rate = 1000 16 | # Whether to put the CPU legend to the left. 17 | left_legend = true 18 | # Whether to set CPU% on a process to be based on the total CPU or just current usage. 19 | #current_usage = false 20 | # Whether to group processes with the same name together by default. 21 | #group_processes = false 22 | # Whether to make process searching case sensitive by default. 23 | #case_sensitive = false 24 | # Whether to make process searching look for matching the entire word by default. 25 | #whole_word = false 26 | # Whether to make process searching use regex by default. 27 | #regex = false 28 | # Defaults to Celsius. Temperature is one of: 29 | #temperature_type = "k" 30 | #temperature_type = "f" 31 | #temperature_type = "c" 32 | #temperature_type = "kelvin" 33 | #temperature_type = "fahrenheit" 34 | #temperature_type = "celsius" 35 | # The default time interval (in milliseconds). 36 | #default_time_value = 60000 37 | # The time delta on each zoom in/out action (in milliseconds). 38 | #time_delta = 15000 39 | # Hides the time scale. 40 | #hide_time = false 41 | # Override layout default widget 42 | #default_widget_type = "proc" 43 | #default_widget_count = 1 44 | # Use basic mode 45 | #basic = false 46 | # Use the old network legend style 47 | #use_old_network_legend = false 48 | # Remove space in tables 49 | #hide_table_gap = false 50 | # Show the battery widgets 51 | #battery = false 52 | # Disable mouse clicks 53 | #disable_click = false 54 | # Built-in themes. Valid values are "default", "default-light", "gruvbox", "gruvbox-light", "nord", "nord-light" 55 | #color = "default" 56 | # Show memory values in the processes widget as values by default 57 | #mem_as_value = false 58 | # Show tree mode by default in the processes widget. 59 | #tree = false 60 | # Shows an indicator in table widgets tracking where in the list you are. 61 | #show_table_scroll_position = false 62 | # Show processes as their commands by default in the process widget. 63 | #process_command = false 64 | # Displays the network widget with binary prefixes. 65 | #network_use_binary_prefix = false 66 | # Displays the network widget using bytes. 67 | #network_use_bytes = false 68 | # Displays the network widget with a log scale. 69 | #network_use_log = false 70 | # Hides advanced options to stop a process on Unix-like systems. 71 | #disable_advanced_kill = false 72 | 73 | # These are all the components that support custom theming. Note that colour support 74 | # will depend on terminal support. 75 | 76 | [colors] # Uncomment if you want to use custom colors 77 | # Represents the colour of table headers (processes, CPU, disks, temperature). 78 | table_header_color = "Green" 79 | # Represents the colour of the label each widget has. 80 | widget_title_color = "Magenta" 81 | # Represents the average CPU color. 82 | avg_cpu_color = "Cyan" 83 | # Represents the colour the core will use in the CPU legend and graph. 84 | cpu_core_colors = [ 85 | "LightYellow", 86 | "White", 87 | "Red", 88 | "LightRed", 89 | "Yellow", 90 | "Green", 91 | "Blue", 92 | "Magenta", 93 | ] 94 | # Represents the colour RAM will use in the memory legend and graph. 95 | ram_color = "Blue" 96 | # Represents the colour SWAP will use in the memory legend and graph. 97 | swap_color = "LightYellow" 98 | # Represents the colour rx will use in the network legend and graph. 99 | rx_color = "Cyan" 100 | # Represents the colour tx will use in the network legend and graph. 101 | tx_color = "Red" 102 | # Represents the colour of the border of unselected widgets. 103 | border_color = "Magenta" 104 | # Represents the colour of the border of selected widgets. 105 | highlighted_border_color = "Cyan" 106 | # Represents the colour of most text. 107 | text_color = "Gray" 108 | # Represents the colour of text that is selected. 109 | selected_text_color = "Black" 110 | # Represents the background colour of text that is selected. 111 | selected_bg_color = "Yellow" 112 | # Represents the colour of the lines and text of the graph. 113 | graph_color = "Gray" 114 | # Represents the colours of the battery based on charge 115 | high_battery_color = "Green" 116 | medium_battery_color = "Yellow" 117 | low_battery_color = "Red" 118 | 119 | # Layout - layouts follow a pattern like this: 120 | # [[row]] represents a row in the application. 121 | # [[row.child]] represents either a widget or a column. 122 | # [[row.child.child]] represents a widget. 123 | # 124 | # All widgets must have the type value set to one of ["cpu", "mem", "proc", "net", "temp", "disk", "empty"]. 125 | # All layout components have a ratio value - if this is not set, then it defaults to 1. 126 | # The default widget layout: 127 | #[[row]] 128 | # ratio=30 129 | # [[row.child]] 130 | # type="cpu" 131 | #[[row]] 132 | # ratio=30 133 | # [[row.child]] 134 | # ratio=4 135 | # type="mem" 136 | # [[row.child]] 137 | # ratio=3 138 | # [[row.child.child]] 139 | # type="temp" 140 | # [[row.child.child]] 141 | # type="disk" 142 | #[[row]] 143 | # ratio=40 144 | # [[row.child]] 145 | # ratio=3 146 | # type="net" 147 | # [[row.child]] 148 | # ratio=4 149 | # type="proc" 150 | # default=true 151 | 152 | [[row]] 153 | ratio = 40 154 | [[row.child]] 155 | ratio = 4 156 | type = "cpu" 157 | [[row.child]] 158 | ratio = 1 159 | type = "temp" 160 | [[row]] 161 | ratio = 25 162 | [[row.child]] 163 | ratio = 4 164 | type = "mem" 165 | [[row.child]] 166 | ratio = 3 167 | type = "disk" 168 | [[row]] 169 | ratio = 35 170 | [[row.child]] 171 | ratio = 3 172 | type = "net" 173 | [[row.child]] 174 | ratio = 4 175 | type = "proc" 176 | default = true 177 | 178 | 179 | # Filters - you can hide specific temperature sensors, network interfaces, and disks using filters. This is admittedly 180 | # a bit hard to use as of now, and there is a planned in-app interface for managing this in the future: 181 | #[disk_filter] 182 | #is_list_ignored = true 183 | #list = ["/dev/sda\\d+", "/dev/nvme0n1p2"] 184 | #regex = true 185 | #case_sensitive = false 186 | #whole_word = false 187 | 188 | #[mount_filter] 189 | #is_list_ignored = true 190 | #list = ["/mnt/.*", "/boot"] 191 | #regex = true 192 | #case_sensitive = false 193 | #whole_word = false 194 | 195 | #[temp_filter] 196 | #is_list_ignored = true 197 | #list = ["cpu", "wifi"] 198 | #regex = false 199 | #case_sensitive = false 200 | #whole_word = false 201 | 202 | #[net_filter] 203 | #is_list_ignored = true 204 | #list = ["virbr0.*"] 205 | #regex = true 206 | #case_sensitive = false 207 | #whole_word = false 208 | -------------------------------------------------------------------------------- /dot_config/nvim/lua/haxibami/ddc/config.ts: -------------------------------------------------------------------------------- 1 | import { BaseConfig, ConfigArguments, fn } from "./deps.ts"; 2 | 3 | export class Config extends BaseConfig { 4 | override async config(args: ConfigArguments): Promise { 5 | args.contextBuilder.patchGlobal({ 6 | ui: "pum", 7 | sources: ["lsp", "around", "file"], 8 | autoCompleteEvents: [ 9 | "InsertEnter", 10 | "TextChangedI", 11 | "TextChangedP", 12 | "CmdlineEnter", 13 | "CmdlineChanged", 14 | "TextChangedT", 15 | ], 16 | cmdlineSources: { 17 | ":": ["cmdline", "cmdline-history", "around", "file"], 18 | "@": ["around"], 19 | ">": ["around"], 20 | "/": ["around"], 21 | "?": ["around"], 22 | "-": ["around"], 23 | "=": ["around"], 24 | // "@": ["input", "cmdline-history", "file", "around"], 25 | // ">": ["input", "cmdline-history", "file", "around"], 26 | // "/": ["around", "line"], 27 | // "?": ["around", "line"], 28 | // "-": ["around", "line"], 29 | // "=": ["input"], 30 | }, 31 | sourceOptions: { 32 | _: { 33 | ignoreCase: true, 34 | matchers: ["matcher_fuzzy"], 35 | sorters: ["sorter_fuzzy"], 36 | converters: ["converter_fuzzy"], 37 | timeout: 1000, 38 | }, 39 | lsp: { 40 | mark: "", 41 | forceCompletionPattern: "\\.|:\\s*|->\\s*", 42 | dup: "force", 43 | }, 44 | around: { 45 | mark: "", 46 | }, 47 | // necovim: { 48 | // mark: "vim", 49 | // }, 50 | // "nvim-lua": { 51 | // mark: "lua", 52 | // forceCompletionPattern: "\\.\\w*", 53 | // }, 54 | file: { 55 | mark: "", 56 | isVolatile: true, 57 | minAutoCompleteLength: 1000, 58 | forceCompletionPattern: "\\S/\\S*", 59 | }, 60 | cmdline: { 61 | mark: "", 62 | forceCompletionPattern: "\\S/\\S*|\\.\\w*", 63 | // forceCompletionPattern: "[\\w@:~._-]/[\\w@:~._-]*", 64 | }, 65 | "cmdline-history": { 66 | mark: "", 67 | // sorters: [], 68 | }, 69 | // buffer: { 70 | // mark: "B", 71 | // }, 72 | // copilot: { 73 | // mark: "cop", 74 | // matchers: [], 75 | // minAutoCompleteLength: 0, 76 | // isVolatile: false, 77 | // }, 78 | // codeium: { 79 | // mark: "cod", 80 | // matchers: ["matcher_length"], 81 | // minAutoCompleteLength: 0, 82 | // isVolatile: true, 83 | // }, 84 | // input: { 85 | // mark: "input", 86 | // forceCompletionPattern: "\\S/\\S*", 87 | // isVolatile: true, 88 | // }, 89 | // line: { 90 | // mark: "line", 91 | // matchers: ["matcher_vimregexp"], 92 | // }, 93 | // mocword: { 94 | // mark: "mocword", 95 | // minAutoCompleteLength: 4, 96 | // isVolatile: true, 97 | // }, 98 | // rtags: { 99 | // mark: "R", 100 | // forceCompletionPattern: "\\.\\w*|::\\w*|->\\w*", 101 | // }, 102 | // "shell-history": { 103 | // mark: "history", 104 | // }, 105 | // shell: { 106 | // mark: "shell", 107 | // isVolatile: true, 108 | // forceCompletionPattern: "\\S/\\S*", 109 | // }, 110 | // zsh: { 111 | // mark: "zsh", 112 | // isVolatile: true, 113 | // forceCompletionPattern: "\\S/\\S*", 114 | // }, 115 | // rg: { 116 | // mark: "rg", 117 | // minAutoCompleteLength: 5, 118 | // enabledIf: "finddir('.git', ';') != ''", 119 | // }, 120 | // skkeleton: { 121 | // mark: "skk", 122 | // matchers: ["skkeleton"], 123 | // sorters: [], 124 | // minAutoCompleteLength: 2, 125 | // isVolatile: true, 126 | // }, 127 | }, 128 | sourceParams: { 129 | lsp: { 130 | enableResolveItem: true, 131 | enableAdditionalTextEdit: true, 132 | kindLabels: { Class: "c" }, 133 | }, 134 | file: { 135 | filenameChars: "[:keyword:].", 136 | }, 137 | }, 138 | filterParams: { 139 | matcher_fuzzy: { 140 | splitMode: "word", 141 | }, 142 | }, 143 | }); 144 | 145 | // for (const filetype of [ 146 | // "help", 147 | // "vimdoc", 148 | // "markdown", 149 | // "gitcommit", 150 | // "comment", 151 | // ]) { 152 | // args.contextBuilder.patchFiletype(filetype, { 153 | // sources: ["around", "codeium", "mocword"], 154 | // }); 155 | // } 156 | // 157 | // for (const filetype of ["html", "css"]) { 158 | // args.contextBuilder.patchFiletype(filetype, { 159 | // keywordPattern: "[0-9a-zA-Z_:#-]*", 160 | // }); 161 | // } 162 | // 163 | // const hasWindows = await fn.has(args.denops, "win32"); 164 | // for (const filetype of ["zsh", "sh", "bash"]) { 165 | // args.contextBuilder.patchFiletype(filetype, { 166 | // keywordPattern: "[0-9a-zA-Z_./#:-]*", 167 | // sources: [hasWindows ? "shell" : "zsh", "around"], 168 | // }); 169 | // } 170 | // args.contextBuilder.patchFiletype("deol", { 171 | // specialBufferCompletion: true, 172 | // keywordPattern: "[0-9a-zA-Z_./#:-]*", 173 | // sources: [hasWindows ? "shell" : "zsh", "shell-history", "around"], 174 | // }); 175 | // 176 | // args.contextBuilder.patchFiletype("ddu-ff-filter", { 177 | // keywordPattern: "[0-9a-zA-Z_:#-]*", 178 | // sources: ["line", "buffer"], 179 | // specialBufferCompletion: true, 180 | // }); 181 | // 182 | // const hasNvim = await fn.has(args.denops, "nvim"); 183 | // if (hasNvim) { 184 | // for (const filetype of [ 185 | // "css", 186 | // "go", 187 | // "html", 188 | // "python", 189 | // "ruby", 190 | // "typescript", 191 | // "typescriptreact", 192 | // ]) { 193 | // args.contextBuilder.patchFiletype(filetype, { 194 | // sources: ["codeium", "lsp", "around"], 195 | // }); 196 | // } 197 | // 198 | // args.contextBuilder.patchFiletype("lua", { 199 | // sources: ["codeium", "lsp", "nvim-lua", "around"], 200 | // }); 201 | // } 202 | } 203 | } 204 | -------------------------------------------------------------------------------- /dot_config/waybar/executable_style.css: -------------------------------------------------------------------------------- 1 | /* Waybar Stylesheet */ 2 | 3 | /* General Configuration */ 4 | * { 5 | border: none; 6 | /* border-radius: 10px;*/ 7 | /* `otf-font-awesome` is required to be installed for icons */ 8 | font-family: 9 | FirgeNerdConsole, 10 | PlemolJP Console NF, 11 | FontAwesome6Free, 12 | FontAwesome6Brands, 13 | Roboto Mono, 14 | sans-serif; 15 | font-size: 24px; 16 | /* min-height: 24px;*/ 17 | } 18 | 19 | window#waybar { 20 | /* background-color: rgba(28, 25, 33, 0.85);*/ 21 | background-color: #120e12; 22 | /* border: 2px solid #5e5662;*/ 23 | color: #f2d8e9; 24 | /* box-shadow: 3px 2px 2px red;*/ 25 | transition-property: background-color; 26 | transition-duration: 0.5s; 27 | /* border-radius: 30;*/ 28 | } 29 | 30 | window#waybar.hidden { 31 | opacity: 0.2; 32 | } 33 | 34 | /* 35 | window#waybar.empty { 36 | background-color: transparent; 37 | } 38 | window#waybar.solo { 39 | background-color: #f2d8e9; 40 | } 41 | 42 | window#waybar.tilix { 43 | background-color: #3F3F3F; 44 | } 45 | 46 | window#waybar.firefox { 47 | background-color: #000000; 48 | border: none; 49 | }*/ 50 | 51 | #workspaces button { 52 | padding: 0px 20px; 53 | color: #f2d8e9; 54 | font-weight: bold; 55 | /* Use box-shadow instead of border so the text isn't offset */ 56 | /* box-shadow: inset 0 -3px transparent;*/ 57 | } 58 | 59 | /* https://github.com/Alexays/Waybar/wiki/FAQ#the-workspace-buttons-have-a-strange-hover-effect */ 60 | #workspaces button:hover { 61 | /*background: rgba(0, 0, 0, 0.2);*/ 62 | background-color: rgba(43, 41, 43, 0.85); 63 | /* box-shadow: inset 0 -3px #f2d8e9;*/ 64 | /*border-radius: 24;*/ 65 | } 66 | 67 | #workspaces button.focused { 68 | /* background-color: #625866;*/ 69 | /* box-shadow: inset 0 -3px #f2d8e9;*/ 70 | /* color: #120e12; 71 | background-color: #a6b4de;*/ 72 | } 73 | 74 | #workspaces button.urgent { 75 | /* background-color: #d92365; 76 | color: #120e12;*/ 77 | color: #d92365; 78 | } 79 | 80 | #mode { 81 | background: #8a8299; 82 | margin: 10px; 83 | border-radius: 5px; 84 | color: #120e12; 85 | /* border-bottom: 3px solid #f2d8e9; */ 86 | } 87 | 88 | label:disabled, 89 | button:disabled { 90 | color: inherit; 91 | background-image: none; 92 | } 93 | 94 | /* Modules Configuration */ 95 | 96 | /* set default */ 97 | 98 | #clock, 99 | #battery, 100 | #cpu, 101 | #memory, 102 | #disk, 103 | #temperature, 104 | #backlight, 105 | #network, 106 | #pulseaudio, 107 | #custom-media, 108 | #custom-pacman, 109 | #custom-brightness, 110 | #language, 111 | #tray, 112 | #mode, 113 | #idle_inhibitor, 114 | #mpd { 115 | padding: 0 15px; 116 | /* margin: 0 4px;*/ 117 | } 118 | 119 | #cpu, 120 | #temperature, 121 | #memory, 122 | #disk, 123 | #network, 124 | #pulseaudio, 125 | #mpd { 126 | margin: 10px 0px; 127 | } 128 | 129 | #window, 130 | #workspaces, 131 | #custom-media { 132 | margin: 0 0px; 133 | } 134 | 135 | .modules-left > widget:first-child > #workspaces { 136 | margin-left: 0; 137 | } 138 | 139 | /* If workspaces is the rightmost module, omit right margin */ 140 | .modules-right > widget:last-child > #workspaces { 141 | margin-right: 0; 142 | } 143 | 144 | #clock { 145 | /*background-color: #f2d8e9; 146 | color: #0b0b0b;*/ 147 | margin: 10px; 148 | border-radius: 5px; 149 | font-size: 30px; 150 | } 151 | 152 | /* 153 | #battery { 154 | background-color: #f2d8e9; 155 | color: #000000; 156 | } 157 | 158 | #battery.charging, #battery.plugged { 159 | color: #f2d8e9; 160 | background-color: #26A65B; 161 | } 162 | 163 | @keyframes blink { 164 | to { 165 | background-color: #f2d8e9; 166 | color: #000000; 167 | } 168 | } 169 | 170 | #battery.critical:not(.charging) { 171 | background-color: #d92365; 172 | color: #f2d8e9; 173 | animation-name: blink; 174 | animation-duration: 0.5s; 175 | animation-timing-function: linear; 176 | animation-iteration-count: infinite; 177 | animation-direction: alternate; 178 | } 179 | */ 180 | 181 | label:focus { 182 | /* background-color: #000000;*/ 183 | } 184 | 185 | #window { 186 | /* color: #0b0b0b;*/ 187 | /* border-radius: 30;*/ 188 | padding: 0 25px; 189 | } 190 | 191 | #custom-pacman { 192 | /* background-color: #625866;*/ 193 | /* border-radius: 25;*/ 194 | color: #f2d8e9; 195 | margin: 0px; 196 | } 197 | 198 | #workspaces { 199 | /*border-radius: 15px;*/ 200 | padding: 0 0px; 201 | } 202 | 203 | #cpu { 204 | /*background-color: #d9919e; 205 | color: #0b0b0b;*/ 206 | border-radius: 5px; 207 | /* min-width: 11em;*/ 208 | /* border-bottom-left-radius:30; 209 | border-top-left-radius:30;*/ 210 | } 211 | 212 | #temperature { 213 | /*background-color: #d92365; 214 | color: #0b0b0b;*/ 215 | border-radius: 5px; 216 | } 217 | 218 | #temperature.critical { 219 | /* background-color: #d92365;*/ 220 | } 221 | 222 | #memory { 223 | /*background-color: #a48abf; 224 | color: #0b0b0b;*/ 225 | border-radius: 5px; 226 | /* background-color: #9b59b6;*/ 227 | /* background-color: #eba0aa;*/ 228 | } 229 | 230 | #disk { 231 | /*background-color: #a65682; 232 | color: #0b0b0b;*/ 233 | border-radius: 5px; 234 | /* background-color: #964B00;*/ 235 | /* background-color: #50fa7b;*/ 236 | /* background-color: #50fa7b;*/ 237 | } 238 | 239 | #network { 240 | /*background-color: #96bfd9; 241 | color: #0b0b0b;*/ 242 | border-radius: 5px; 243 | /* background-color: #2980b9;*/ 244 | /* background-color: #8be9fd;*/ 245 | /* background-color: #f27999;*/ 246 | } 247 | 248 | #network.disconnected { 249 | /* background-color: #d92365;*/ 250 | } 251 | 252 | /* 253 | #backlight { 254 | background-color: #90b1b1; 255 | } 256 | #custom-brightness { 257 | background-color: #eba0aa; 258 | } 259 | */ 260 | 261 | #pulseaudio { 262 | /*background-color: #f28e85; 263 | color: #0b0b0b;*/ 264 | border-radius: 5px; 265 | /* border-top-right-radius: 30; 266 | border-bottom-right-radius: 30;*/ 267 | /*border-bottom-right-radius: 30;*/ 268 | } 269 | 270 | #pulseaudio.muted { 271 | /* background-color: #afd9ad;*/ 272 | /* color: #2a5c45;*/ 273 | } 274 | 275 | #custom-media { 276 | /* color: #afd9ad;*/ 277 | /* color: #2a5c45;*/ 278 | /* border-radius: 30;*/ 279 | padding: 0 15px; 280 | } 281 | 282 | #custom-media.custom-spotify { 283 | /* color: #afd9ad;*/ 284 | } 285 | 286 | /* 287 | #custom-media.custom-vlc { 288 | background-color: #ffa000; 289 | } 290 | */ 291 | 292 | #idle_inhibitor { 293 | /* border-radius: 30;*/ 294 | color: #f2d8e9; 295 | padding: 6px; 296 | margin-right: 12px; 297 | min-width: 30px; 298 | } 299 | 300 | #idle_inhibitor.activated { 301 | background-color: #f2d8e9; 302 | color: #0b0b0b; 303 | /* border-radius: 30;*/ 304 | padding: 12px; 305 | margin-right: 0px; 306 | } 307 | 308 | /* 309 | #mpd { 310 | background-color: #66cc99; 311 | color: #2a5c45; 312 | } 313 | 314 | #mpd.disconnected { 315 | background-color: #d92365; 316 | } 317 | 318 | #mpd.stopped { 319 | background-color: #90b1b1; 320 | } 321 | 322 | #mpd.paused { 323 | background-color: #51a37a; 324 | } 325 | */ 326 | 327 | #language { 328 | /* background: #00b093;*/ 329 | /* color: #740864;*/ 330 | color: #f2d8e9; 331 | /* border-radius: 30;*/ 332 | padding: 0 7px; 333 | padding-right: 15px; 334 | /*border-top-right-radius: 15px; 335 | border-bottom-right-radius: 15px;*/ 336 | min-width: 27px; 337 | } 338 | 339 | #tray { 340 | margin: 0px; 341 | } 342 | -------------------------------------------------------------------------------- /dot_pacman/pkglist_desktop.txt: -------------------------------------------------------------------------------- 1 | accountsservice 2 | acpi 3 | alacritty 4 | alsa-utils 5 | amdvlk 6 | arch-install-scripts 7 | aria2 8 | asciinema 9 | audacity 10 | autoconf 11 | automake 12 | autotiling-rs 13 | base 14 | base-devel 15 | bat 16 | bc 17 | bear 18 | binutils 19 | bison 20 | bitwarden 21 | blas-openblas 22 | blueman 23 | bluez 24 | bluez-utils 25 | booster 26 | bottom 27 | brightnessctl 28 | busybox 29 | caddy 30 | calibre 31 | cargo-outdated 32 | cargo-update 33 | chezmoi 34 | clinfo 35 | cliphist 36 | cmake 37 | coq 38 | coqide 39 | cuda 40 | cups-pk-helper 41 | d2 42 | darkman 43 | dbus-python 44 | dconf-editor 45 | ddcutil 46 | deno 47 | devtools 48 | dhclient 49 | dhcpcd 50 | difftastic 51 | dmidecode 52 | dnscrypt-proxy 53 | dnsmasq 54 | docker 55 | docker-buildx 56 | docker-compose 57 | dog 58 | drawing 59 | duf 60 | dust 61 | easyeffects 62 | efibootmgr 63 | element-desktop 64 | epiphany 65 | evince 66 | exfatprogs 67 | eza 68 | fakeroot 69 | fcitx5-configtool 70 | fcitx5-gtk 71 | fcitx5-lua 72 | fcitx5-skk 73 | fd 74 | feh 75 | file 76 | findutils 77 | firefox 78 | firefox-i18n-ja 79 | flatbuffers 80 | flatpak 81 | fmt 82 | foot 83 | foot-terminfo 84 | fractal 85 | fwupd 86 | fzf 87 | gawk 88 | gcc 89 | gcc-fortran 90 | gdb 91 | gettext 92 | ghidra 93 | gimp 94 | gimp-plugin-gmic 95 | git 96 | git-delta 97 | git-lfs 98 | github-cli 99 | glfw 100 | glow 101 | gnome-clocks 102 | gnome-keyring 103 | gnome-sound-recorder 104 | gnu-netcat 105 | go 106 | gobject-introspection 107 | greetd 108 | greetd-regreet 109 | greetd-tuigreet 110 | grep 111 | grim 112 | groff 113 | gst-libav 114 | gst-plugin-gtk 115 | gst-plugin-pipewire 116 | gst-plugins-bad 117 | gstreamer-vaapi 118 | gthumb 119 | gtk-engines 120 | guvcview 121 | gvfs 122 | gvfs-afc 123 | gvfs-gphoto2 124 | gzip 125 | handlr-regex 126 | hdparm 127 | helix 128 | helvum 129 | highlight 130 | hipblaslt 131 | hipify-clang 132 | hyperfine 133 | icoutils 134 | ifuse 135 | imv 136 | inetutils 137 | inkscape 138 | intel-ucode 139 | iptables-nft 140 | iw 141 | iwd 142 | jack-example-tools 143 | john 144 | jpegoptim 145 | jq 146 | keybase-gui 147 | krita 148 | kvantum 149 | ldns 150 | lib32-amdvlk 151 | lib32-gnutls 152 | lib32-vulkan-radeon 153 | libappindicator-gtk2 154 | libayatana-appindicator 155 | libbluray 156 | libcdio 157 | libdecor 158 | libdmtx 159 | libertinus-font 160 | libfido2 161 | libgnome-keyring 162 | libgpod 163 | libicns 164 | libindicator-gtk2 165 | libindicator-gtk3 166 | libjxl 167 | libreoffice-fresh 168 | libreoffice-fresh-ja 169 | libsecret 170 | libtool 171 | libva-mesa-driver 172 | libva-utils 173 | libvips 174 | linssid 175 | linux-firmware 176 | linux-zen 177 | linux-zen-headers 178 | llvm 179 | lsd 180 | lshw 181 | lsp-plugins-lv2 182 | lxappearance 183 | lzip 184 | make 185 | mako 186 | man-db 187 | man-pages 188 | mesa 189 | mesa-demos 190 | mesa-utils 191 | mesa-vdpau 192 | meson 193 | mold 194 | moreutils 195 | mpv 196 | mpv-mpris 197 | multipath-tools 198 | namcap 199 | navi 200 | neovide 201 | neovim 202 | nftables 203 | nix 204 | nmap 205 | node-gyp 206 | nodejs 207 | nodejs-nopt 208 | noise-suppression-for-voice 209 | noto-fonts 210 | noto-fonts-cjk 211 | noto-fonts-emoji 212 | npm 213 | nss-mdns 214 | ntfs-3g 215 | nvme-cli 216 | nvtop 217 | obs-studio 218 | onetbb 219 | opam 220 | openblas 221 | opencl-rusticl-mesa 222 | opencv 223 | openresolv 224 | openslide 225 | openssl-1.1 226 | otf-font-awesome 227 | otf-ipaexfont 228 | otf-ipafont 229 | otf-ipamjfont 230 | otf-latin-modern 231 | otf-latinmodern-math 232 | pacman 233 | pacman-contrib 234 | pam-u2f 235 | pamixer 236 | pantheon-geoclue2-agent 237 | paperkey 238 | parallel 239 | pastel 240 | patch 241 | pavucontrol 242 | pax-utils 243 | pdftk 244 | perl-image-exiftool 245 | php 246 | pipewire 247 | pipewire-alsa 248 | pipewire-jack 249 | pipewire-pulse 250 | pkgconf 251 | playerctl 252 | polkit-gnome 253 | poppler-data 254 | procs 255 | profile-sync-daemon 256 | python-cssselect 257 | python-distro 258 | python-gobject 259 | python-i3ipc 260 | python-numpy 261 | python-pip 262 | python-poetry 263 | python-psutil 264 | python-pyqt5 265 | python-tiktoken 266 | python-tqdm 267 | qgis 268 | qpwgraph 269 | qrencode 270 | qt5-wayland 271 | qt5-webengine 272 | qt6-wayland 273 | radeontop 274 | rbw 275 | rclone 276 | read-edid 277 | rio 278 | ripgrep 279 | rocm-ml-sdk 280 | rocm-opencl-sdk 281 | rofimoji 282 | rustup 283 | rye 284 | seahorse 285 | sed 286 | semver 287 | sha3sum 288 | sheldon 289 | shellcheck 290 | signal-desktop 291 | silicon 292 | skktools 293 | slurp 294 | smartmontools 295 | socat 296 | speech-dispatcher 297 | spotifyd 298 | starship 299 | steam 300 | sudo 301 | swappy 302 | sway 303 | swaybg 304 | swayidle 305 | swayimg 306 | swaylock 307 | sysstat 308 | system-config-printer 309 | systemd-ukify 310 | tailscale 311 | tcpdump 312 | telegram-desktop 313 | terraform 314 | tesseract 315 | tesseract-data-eng 316 | tesseract-data-hrv 317 | tesseract-data-jpn 318 | tesseract-data-jpn_vert 319 | tesseract-data-lat 320 | tesseract-data-srp 321 | texinfo 322 | texlive-basic 323 | texlive-bibtexextra 324 | texlive-binextra 325 | texlive-context 326 | texlive-fontsextra 327 | texlive-fontsrecommended 328 | texlive-fontutils 329 | texlive-formatsextra 330 | texlive-games 331 | texlive-humanities 332 | texlive-langarabic 333 | texlive-langchinese 334 | texlive-langcjk 335 | texlive-langcyrillic 336 | texlive-langczechslovak 337 | texlive-langenglish 338 | texlive-langeuropean 339 | texlive-langfrench 340 | texlive-langgerman 341 | texlive-langgreek 342 | texlive-langitalian 343 | texlive-langjapanese 344 | texlive-langkorean 345 | texlive-langother 346 | texlive-langpolish 347 | texlive-langportuguese 348 | texlive-langspanish 349 | texlive-latex 350 | texlive-latexextra 351 | texlive-latexrecommended 352 | texlive-luatex 353 | texlive-mathscience 354 | texlive-metapost 355 | texlive-music 356 | texlive-pictures 357 | texlive-plaingeneric 358 | texlive-pstricks 359 | texlive-publishers 360 | texlive-xetex 361 | thermald 362 | thunar-archive-plugin 363 | thunar-media-tags-plugin 364 | thunar-volman 365 | tk 366 | tmux 367 | tor 368 | torbrowser-launcher 369 | tpm2-tools 370 | traceroute 371 | transmission-gtk 372 | trash-cli 373 | tree 374 | tree-sitter-cli 375 | ttf-font-awesome 376 | ttf-hack-nerd 377 | ttf-joypixels 378 | ttf-linux-libertine 379 | ttf-roboto-mono 380 | tumbler 381 | typst 382 | unicode-emoji 383 | unzip 384 | upx 385 | usb_modeswitch 386 | usbutils 387 | v4l2loopback-dkms 388 | vdpauinfo 389 | vim 390 | vlc 391 | vorbis-tools 392 | vulkan-mesa-layers 393 | vulkan-radeon 394 | vulkan-tools 395 | vulkan-validation-layers 396 | waifu2x-ncnn-vulkan 397 | wasm-pack 398 | waybar 399 | wayvnc 400 | wev 401 | wf-recorder 402 | wget 403 | which 404 | whois 405 | wine 406 | wine-gecko 407 | wine-mono 408 | winetricks 409 | wireguard-tools 410 | wireplumber 411 | wl-clipboard 412 | wlsunset 413 | wofi 414 | wpa_supplicant 415 | wqy-zenhei 416 | wtype 417 | xarchiver 418 | xclip 419 | xcompmgr 420 | xdg-desktop-portal-gtk 421 | xdg-desktop-portal-wlr 422 | xdg-user-dirs 423 | xf86-video-amdgpu 424 | xmlstarlet 425 | xorg-bdftopcf 426 | xorg-iceauth 427 | xorg-mkfontscale 428 | xorg-server 429 | xorg-sessreg 430 | xorg-setxkbmap 431 | xorg-smproxy 432 | xorg-x11perf 433 | xorg-xauth 434 | xorg-xbacklight 435 | xorg-xcmsdb 436 | xorg-xcursorgen 437 | xorg-xdpyinfo 438 | xorg-xdriinfo 439 | xorg-xev 440 | xorg-xeyes 441 | xorg-xgamma 442 | xorg-xhost 443 | xorg-xinit 444 | xorg-xinput 445 | xorg-xkbcomp 446 | xorg-xkbevd 447 | xorg-xkbutils 448 | xorg-xkill 449 | xorg-xlsatoms 450 | xorg-xlsclients 451 | xorg-xmodmap 452 | xorg-xpr 453 | xorg-xprop 454 | xorg-xrandr 455 | xorg-xrdb 456 | xorg-xrefresh 457 | xorg-xset 458 | xorg-xsetroot 459 | xorg-xvinfo 460 | xorg-xwayland 461 | xorg-xwd 462 | xorg-xwininfo 463 | xorg-xwud 464 | xorgproto 465 | xsettingsd 466 | xwaylandvideobridge 467 | yq 468 | yt-dlp 469 | yubikey-manager 470 | yubikey-manager-qt 471 | yubikey-personalization-gui 472 | yubikey-touch-detector 473 | zathura 474 | zathura-cb 475 | zathura-djvu 476 | zathura-pdf-mupdf 477 | zathura-ps 478 | zellij 479 | zoxide 480 | zsh 481 | zsh-completions 482 | --------------------------------------------------------------------------------