migrate
This commit is contained in:
commit
b3fcc22364
28 changed files with 3498 additions and 0 deletions
49
.Xresources
Normal file
49
.Xresources
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
!! Import colorscheme
|
||||||
|
#define S_foreground #cacacc
|
||||||
|
#define S_background #1C1E27
|
||||||
|
#define S_black #3C3E47
|
||||||
|
#define S_red #E4436F
|
||||||
|
#define S_green #24e39d
|
||||||
|
#define S_yellow #EDA685
|
||||||
|
#define S_blue #2095B4
|
||||||
|
#define S_magenta #B367CF
|
||||||
|
#define S_cyan #00A5AF
|
||||||
|
#define S_lightgrey #b5b5ba
|
||||||
|
#define S_darkgrey #6C6F93
|
||||||
|
#define S_darkred #D95882
|
||||||
|
#define S_darkgreen #68DDC4
|
||||||
|
#define S_darkyellow #E8AEAA
|
||||||
|
#define S_darkblue #64A4BF
|
||||||
|
#define S_darkmagenta #B382CF
|
||||||
|
#define S_darkcyan #54AEB8
|
||||||
|
#define S_white #cacacc
|
||||||
|
|
||||||
|
!! Set colors
|
||||||
|
*background: S_background
|
||||||
|
*foreground: S_foreground
|
||||||
|
*color0: S_black
|
||||||
|
*color8: S_darkgrey
|
||||||
|
*color1: S_darkred
|
||||||
|
*color9: S_red
|
||||||
|
*color2: S_darkgreen
|
||||||
|
*color10: S_green
|
||||||
|
*color3: S_darkyellow
|
||||||
|
*color11: S_yellow
|
||||||
|
*color4: S_darkblue
|
||||||
|
*color12: S_blue
|
||||||
|
*color5: S_darkmagenta
|
||||||
|
*color13: S_magenta
|
||||||
|
*color6: S_darkcyan
|
||||||
|
*color14: S_cyan
|
||||||
|
*color7: S_lightgrey
|
||||||
|
*color15: S_white
|
||||||
|
|
||||||
|
|
||||||
|
!! Set DPI
|
||||||
|
Xft.dpi: 140
|
||||||
|
Xft.auohint: 0
|
||||||
|
Xft.lcdfilter: lcddefault
|
||||||
|
Xft.hintstyle: hintfull
|
||||||
|
Xft.antialias: 1
|
||||||
|
Xft.rgba: rgb
|
||||||
|
Xcursor.size: 32
|
79
.alacritty.yml
Normal file
79
.alacritty.yml
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
# シェル
|
||||||
|
shell:
|
||||||
|
program: /usr/bin/zsh
|
||||||
|
args:
|
||||||
|
- --login
|
||||||
|
|
||||||
|
# カーソル
|
||||||
|
cursor:
|
||||||
|
style:
|
||||||
|
shape: Underline
|
||||||
|
blinking: Always
|
||||||
|
unfocused_hollow: false
|
||||||
|
blink_interval: 470
|
||||||
|
|
||||||
|
# タブスペース
|
||||||
|
tabspaces: 4
|
||||||
|
|
||||||
|
# ウインドウ
|
||||||
|
window:
|
||||||
|
opacity: 0.95
|
||||||
|
padding:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
dynamic_padding: false
|
||||||
|
|
||||||
|
# フォント
|
||||||
|
font:
|
||||||
|
size: 13
|
||||||
|
normal:
|
||||||
|
family: 'UDEV Gothic 35NFLG'
|
||||||
|
style: Regular
|
||||||
|
bold:
|
||||||
|
family: 'UDEV Gothic 35NFLG'
|
||||||
|
style: Bold
|
||||||
|
italic:
|
||||||
|
family: 'UDEV Gothic 35NFLG'
|
||||||
|
style: Italic
|
||||||
|
bold_italic:
|
||||||
|
family: 'UDEV Gothic 35NFLG'
|
||||||
|
style: Bold Italic
|
||||||
|
|
||||||
|
# 環境変数
|
||||||
|
env:
|
||||||
|
TERM: alacritty
|
||||||
|
|
||||||
|
# Colors (Horizon Dark)
|
||||||
|
colors:
|
||||||
|
# Primary colors
|
||||||
|
primary:
|
||||||
|
background: '0x1c1e26'
|
||||||
|
foreground: '0xe0e0e0'
|
||||||
|
|
||||||
|
# Cursor
|
||||||
|
cursor:
|
||||||
|
cursor: '0x00ff00'
|
||||||
|
vi_mode_cursor:
|
||||||
|
cursor: '0x00ff00'
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
normal:
|
||||||
|
black: '0x16161c'
|
||||||
|
red: '0xe95678'
|
||||||
|
green: '0x29d398'
|
||||||
|
yellow: '0xfab795'
|
||||||
|
blue: '0x26bbd9'
|
||||||
|
magenta: '0xee64ac'
|
||||||
|
cyan: '0x59e1e3'
|
||||||
|
white: '0xd5d8da'
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
bright:
|
||||||
|
black: '0x5b5858'
|
||||||
|
red: '0xec6a88'
|
||||||
|
green: '0x3fdaa4'
|
||||||
|
yellow: '0xfbc3a7'
|
||||||
|
blue: '0x3fc4de'
|
||||||
|
magenta: '0xf075b5'
|
||||||
|
cyan: '0x6be4e6'
|
||||||
|
white: '0xd5d8da'
|
19
.gtkrc-2.0
Normal file
19
.gtkrc-2.0
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
# DO NOT EDIT! This file will be overwritten by LXAppearance.
|
||||||
|
# Any customization should be done in ~/.gtkrc-2.0.mine instead.
|
||||||
|
|
||||||
|
include "/home/riq0h/.gtkrc-2.0.mine"
|
||||||
|
gtk-theme-name="Breeze"
|
||||||
|
gtk-icon-theme-name="Qogir"
|
||||||
|
gtk-font-name="Noto Sans CJK JP 11"
|
||||||
|
gtk-cursor-theme-name="Qogir"
|
||||||
|
gtk-cursor-theme-size=0
|
||||||
|
gtk-toolbar-style=GTK_TOOLBAR_TEXT
|
||||||
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_SMALL_TOOLBAR
|
||||||
|
gtk-button-images=0
|
||||||
|
gtk-menu-images=0
|
||||||
|
gtk-enable-event-sounds=0
|
||||||
|
gtk-enable-input-feedback-sounds=0
|
||||||
|
gtk-xft-antialias=1
|
||||||
|
gtk-xft-hinting=1
|
||||||
|
gtk-xft-hintstyle="hintfull"
|
||||||
|
gtk-xft-rgba="rgb"
|
2
.profile
Normal file
2
.profile
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
export PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/riq0h/.fzf/bin:/home/riq0h/.local/share/gem/ruby/3.0.0/bin:/home/riq0h/go/bin"
|
||||||
|
[ "$XDG_CURRENT_DESKTOP" = "KDE" ] || [ "$XDG_CURRENT_DESKTOP" = "GNOME" ] || export QT_QPA_PLATFORMTHEME="qt5ct"
|
114
.tmux.conf
Normal file
114
.tmux.conf
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
# prefixキーをM-aに変更する
|
||||||
|
set -g prefix M-a
|
||||||
|
|
||||||
|
# M-bのキーバインドを解除する
|
||||||
|
unbind M-b
|
||||||
|
|
||||||
|
# マウス操作を有効にする
|
||||||
|
set-option -g mouse on
|
||||||
|
|
||||||
|
# デフォルトシェルの設定
|
||||||
|
set-option -g default-shell /bin/zsh
|
||||||
|
set-option -g default-command /bin/zsh
|
||||||
|
|
||||||
|
# キーストロークのディレイを減らす
|
||||||
|
set -sg escape-time 0
|
||||||
|
|
||||||
|
# ウィンドウのインデックスを1から始める
|
||||||
|
set -g base-index 1
|
||||||
|
|
||||||
|
# ペインのインデックスを1から始める
|
||||||
|
set-window-option -g pane-base-index 1
|
||||||
|
|
||||||
|
# 設定ファイルをリロードする
|
||||||
|
bind-key r source-file ~/.tmux.conf \; display "Reloaded."
|
||||||
|
|
||||||
|
# M-a*2でtmux内のプログラムにM-aを送る
|
||||||
|
bind-key M-a send-prefix
|
||||||
|
|
||||||
|
# ウインドウ操作
|
||||||
|
bind-key -n M-s split-window -v -c "#{pane_current_path}"
|
||||||
|
bind-key -n M-v split-window -h -c "#{pane_current_path}"
|
||||||
|
|
||||||
|
bind-key -n M-Left select-pane -L
|
||||||
|
bind-key -n M-Right select-pane -R
|
||||||
|
bind-key -n M-Up select-pane -U
|
||||||
|
bind-key -n M-Down select-pane -D
|
||||||
|
|
||||||
|
bind-key -n M-w new-window
|
||||||
|
|
||||||
|
bind-key -n M-Tab select-window -t :+
|
||||||
|
bind-key -n M-1 select-window -t 1
|
||||||
|
bind-key -n M-2 select-window -t 2
|
||||||
|
bind-key -n M-3 select-window -t 3
|
||||||
|
bind-key -n M-4 select-window -t 4
|
||||||
|
bind-key -n M-5 select-window -t 5
|
||||||
|
bind-key -n M-6 select-window -t 6
|
||||||
|
bind-key -n M-7 select-window -t 7
|
||||||
|
bind-key -n M-8 select-window -t 8
|
||||||
|
bind-key -n M-9 select-window -t 9
|
||||||
|
|
||||||
|
bind-key -n M-h select-pane -L
|
||||||
|
bind-key -n M-l select-pane -R
|
||||||
|
bind-key -n M-j select-pane -D
|
||||||
|
bind-key -n M-k select-pane -U
|
||||||
|
|
||||||
|
bind-key -n M-q kill-pane
|
||||||
|
bind-key q kill-window
|
||||||
|
|
||||||
|
# コピーモード
|
||||||
|
set-window-option -g mode-keys vi
|
||||||
|
bind-key -T copy-mode-vi v send-keys -X begin-selection
|
||||||
|
bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle
|
||||||
|
bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel "xsel -bi"
|
||||||
|
bind-key -T copy-mode-vi Y send-keys -X copy-line "xsel -bi"
|
||||||
|
bind-key -T copy-mode-vi Enter send-keys -X copy-pipe-and-cancel "xsel -bi"
|
||||||
|
bind-key Space copy-mode
|
||||||
|
bind-key p paste-buffer
|
||||||
|
|
||||||
|
# Vimのキーバインドでペインをリサイズする
|
||||||
|
bind-key -r H resize-pane -L 3
|
||||||
|
bind-key -r J resize-pane -D 3
|
||||||
|
bind-key -r K resize-pane -U 3
|
||||||
|
bind-key -r L resize-pane -R 3
|
||||||
|
|
||||||
|
# 256色端末を使用する
|
||||||
|
set -g default-terminal "tmux-256color"
|
||||||
|
set -ga terminal-overrides ",$TERM:Tc"
|
||||||
|
|
||||||
|
# ペインの枠線
|
||||||
|
set -g pane-border-lines single
|
||||||
|
|
||||||
|
# ステータスバーを設定する
|
||||||
|
set-option -g status-position "top"
|
||||||
|
set -g status-justify "left"
|
||||||
|
set -g status "on"
|
||||||
|
set -g status-left-style "none"
|
||||||
|
set -g message-command-style "fg=#c5cdd9,bg=#414550"
|
||||||
|
set -g status-right-style "none"
|
||||||
|
set -g pane-active-border-style "fg=#a0c980"
|
||||||
|
set -g status-style "none,bg=#33353f"
|
||||||
|
set -g message-style "fg=#c5cdd9,bg=#414550"
|
||||||
|
set -g pane-border-style "fg=#414550"
|
||||||
|
set -g status-right-length "100"
|
||||||
|
set -g status-left-length "100"
|
||||||
|
set-window-option -g window-status-activity-style "none,fg=#a0c980,bg=#33353f"
|
||||||
|
set-window-option -g window-status-separator ""
|
||||||
|
set-window-option -g window-status-style "none,fg=#c5cdd9,bg=#33353f"
|
||||||
|
set -g status-left "#[fg=#2c2e34,bg=#a0c980] #S #[fg=#a0c980,bg=#33353f,nobold,nounderscore,noitalics]"
|
||||||
|
set -g status-right ""
|
||||||
|
set-window-option -g window-status-format "#[fg=#33353f,bg=#33353f,nobold,nounderscore,noitalics]#[default] #I #W #[fg=#33353f,bg=#33353f,nobold,nounderscore,noitalics]"
|
||||||
|
set-window-option -g window-status-current-format "#[fg=#33353f,bg=#414550,nobold,nounderscore,noitalics]#[fg=#c5cdd9,bg=#414550] #I #W #[fg=#414550,bg=#33353f,nobold,nounderscore,noitalics]"
|
||||||
|
|
||||||
|
## リフレッシュの間隔を設定する
|
||||||
|
set -g status-interval 1
|
||||||
|
|
||||||
|
## フォーカスイベント
|
||||||
|
set -g focus-events on
|
||||||
|
|
||||||
|
## ヴィジュアルノーティフィケーションを有効にする
|
||||||
|
set-window-option -g monitor-activity on
|
||||||
|
set -g visual-activity on
|
||||||
|
|
||||||
|
## Alcrittyでtmuxを有効にする
|
||||||
|
set-option -ga terminal-overrides ",alacritty:RGB"
|
8
.xinitrc
Normal file
8
.xinitrc
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
export LANG="ja_JP.UTF-8"
|
||||||
|
export XMODIFIERS="@im=fcitx"
|
||||||
|
export XMODIFIER="@im=fcitx"
|
||||||
|
export GTK_IM_MODULE=fcitx
|
||||||
|
export QT_IM_MODULE=fcitx
|
||||||
|
export DefaultIMModule=fcitx
|
||||||
|
exec i3
|
||||||
|
xset -b
|
6
.xprofile
Normal file
6
.xprofile
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
export LANG="ja_JP.UTF-8"
|
||||||
|
export XMODIFIERS="@im=fcitx"
|
||||||
|
export XMODIFIER="@im=fcitx"
|
||||||
|
export GTK_IM_MODULE=fcitx
|
||||||
|
export QT_IM_MODULE=fcitx
|
||||||
|
export DefaultIMModule=fcitx
|
37
.zpreztorc
Normal file
37
.zpreztorc
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
# 色彩
|
||||||
|
zstyle ':prezto:*:*' color 'yes'
|
||||||
|
|
||||||
|
# プリロード
|
||||||
|
zstyle ':prezto:load' pmodule \
|
||||||
|
'archive' \
|
||||||
|
'environment' \
|
||||||
|
'terminal' \
|
||||||
|
'editor' \
|
||||||
|
'history' \
|
||||||
|
'directory' \
|
||||||
|
'spectrum' \
|
||||||
|
'utility' \
|
||||||
|
'completion' \
|
||||||
|
'syntax-highlighting' \
|
||||||
|
'history-substring-search' \
|
||||||
|
'prompt'
|
||||||
|
|
||||||
|
# キーマップ
|
||||||
|
zstyle ':prezto:module:editor' key-bindings 'emacs'
|
||||||
|
|
||||||
|
# テーマ
|
||||||
|
zstyle ':prezto:module:prompt' theme 'pure'
|
||||||
|
|
||||||
|
# ハイライト
|
||||||
|
zstyle ':prezto:module:syntax-highlighting' color 'yes'
|
||||||
|
zstyle ':prezto:module:syntax-highlighting' highlighters \
|
||||||
|
'main' \
|
||||||
|
'brackets' \
|
||||||
|
'pattern'
|
||||||
|
|
||||||
|
# 途中まで打ったコマンドの履歴を検索
|
||||||
|
zstyle ':prezto:module:history-substring-search' case-sensitive 'yes'
|
||||||
|
zstyle ':prezto:module:history-substring-search' color 'yes'
|
||||||
|
zstyle ':prezto:module:history-substring-search:color' found ''
|
||||||
|
zstyle ':prezto:module:history-substring-search:color' not-found ''
|
||||||
|
zstyle ':prezto:module:history-substring-search' globbing-flags ''
|
101
.zshrc
Normal file
101
.zshrc
Normal file
|
@ -0,0 +1,101 @@
|
||||||
|
# Preztoにぶん投げ
|
||||||
|
if [[ -s "${ZDOTDIR:-$HOME}/.zprezto/init.zsh" ]]; then
|
||||||
|
source "${ZDOTDIR:-$HOME}/.zprezto/init.zsh"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 上位階層に移動するコマンド
|
||||||
|
alias a='cd ../'
|
||||||
|
alias aa='cd ../../'
|
||||||
|
alias aaa='cd ../../../'
|
||||||
|
|
||||||
|
# デフォルトエディタをVimにする
|
||||||
|
export EDITOR=nvim
|
||||||
|
alias sudo='sudo -E '
|
||||||
|
alias v=nvim
|
||||||
|
alias vim=nvim
|
||||||
|
|
||||||
|
# paruを短縮する
|
||||||
|
alias poo=paru
|
||||||
|
|
||||||
|
# exaをls代わりにする
|
||||||
|
alias ls='exa --icons -a'
|
||||||
|
alias lsa='exa --icons -T -a'
|
||||||
|
|
||||||
|
# batをcatの代わりにする
|
||||||
|
alias cat=bat
|
||||||
|
|
||||||
|
# clearを短縮する
|
||||||
|
alias cls=clear
|
||||||
|
|
||||||
|
# 天気情報
|
||||||
|
alias wttr='() { curl -H "Accept-Language: ${LANG%_ja}" wttr.in/"${1:-Saitama}" }'
|
||||||
|
|
||||||
|
# BAT関連
|
||||||
|
export BAT_THEME="TwoDark"
|
||||||
|
|
||||||
|
# Zoxide関連
|
||||||
|
eval "$(zoxide init zsh)"
|
||||||
|
zle -N zi
|
||||||
|
bindkey '^z' zi
|
||||||
|
|
||||||
|
# Tailscale関連
|
||||||
|
alias tlsc='sudo tailscale up --exit-node-allow-lan-access --exit-node=mystech'
|
||||||
|
alias tlscd='sudo tailscale down'
|
||||||
|
|
||||||
|
# fzf関連
|
||||||
|
export PATH="$PATH:$HOME/.fzf/bin"
|
||||||
|
export FZF_DEFAULT_COMMAND='rg --files --hidden --glob "!.git"'
|
||||||
|
export FZF_DEFAULT_OPTS='--ansi --height 40% --reverse --border=none'
|
||||||
|
|
||||||
|
export FZF_CTRL_T_COMMAND='rg --files --hidden --follow --glob "!**/.git/*"'
|
||||||
|
export FZF_CTRL_T_OPTS="
|
||||||
|
--preview 'bat --color=always --style=header,grid {}'
|
||||||
|
--preview-window=right:60%"
|
||||||
|
|
||||||
|
fadd() {
|
||||||
|
local out q n addfiles
|
||||||
|
while out=$(
|
||||||
|
git status --short |
|
||||||
|
awk '{if (substr($0,2,1) !~ / /) print $2}' |
|
||||||
|
fzf-tmux --multi --exit-0 --expect=ctrl-d); do
|
||||||
|
q=$(head -1 <<< "$out")
|
||||||
|
n=$[$(wc -l <<< "$out") - 1]
|
||||||
|
addfiles=(`echo $(tail "-$n" <<< "$out")`)
|
||||||
|
[[ -z "$addfiles" ]] && continue
|
||||||
|
if [ "$q" = ctrl-d ]; then
|
||||||
|
git diff --color=always $addfiles | less -R
|
||||||
|
else
|
||||||
|
git add $addfiles
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
rga-fzf() {
|
||||||
|
RG_PREFIX="rga --files-with-matches"
|
||||||
|
local file
|
||||||
|
file="$(
|
||||||
|
FZF_DEFAULT_COMMAND="$RG_PREFIX '$1'" \
|
||||||
|
fzf --sort --preview="[[ ! -z {} ]] && rga --pretty --context 5 {q} {}" \
|
||||||
|
--phony -q "$1" \
|
||||||
|
--bind "change:reload:$RG_PREFIX {q}" \
|
||||||
|
--preview-window="70%:wrap"
|
||||||
|
)" &&
|
||||||
|
echo "opening $file" &&
|
||||||
|
xdg-open "$file"
|
||||||
|
}
|
||||||
|
|
||||||
|
# tmux関連
|
||||||
|
alias tx="tmuximum"
|
||||||
|
if [ -z $TMUX ]; then
|
||||||
|
tmuximum
|
||||||
|
fi
|
||||||
|
|
||||||
|
# 履歴関連
|
||||||
|
HISTFILE=~/.zsh_history # ヒストリを保存するファイル
|
||||||
|
HISTSIZE=10000 # メモリに保存されるヒストリの件数
|
||||||
|
SAVEHIST=10000 # 保存されるヒストリの件数
|
||||||
|
setopt bang_hist # !を使ったヒストリ展開を行う(d)
|
||||||
|
setopt extended_history # ヒストリに実行時間も保存する
|
||||||
|
setopt hist_reduce_blanks # 余分なスペースを削除してヒストリに保存する
|
||||||
|
|
||||||
|
[ -f ~/.fzf.zsh ] && source ~/.fzf.zsh
|
81
alacritty.yml
Normal file
81
alacritty.yml
Normal file
|
@ -0,0 +1,81 @@
|
||||||
|
# シェル
|
||||||
|
shell:
|
||||||
|
program: /Windows/System32/wsl.exe ~ -d Distrod
|
||||||
|
|
||||||
|
# カーソル
|
||||||
|
cursor:
|
||||||
|
style:
|
||||||
|
shape: Underline
|
||||||
|
blinking: Always
|
||||||
|
unfocused_hollow: false
|
||||||
|
blink_interval: 470
|
||||||
|
|
||||||
|
# タブスペース
|
||||||
|
tabspaces: 4
|
||||||
|
|
||||||
|
# フォント
|
||||||
|
font:
|
||||||
|
size: 12
|
||||||
|
normal:
|
||||||
|
family: 'UDEV Gothic 35NFLG'
|
||||||
|
style: Regular
|
||||||
|
bold:
|
||||||
|
family: 'UDEV Gothic 35NFLG'
|
||||||
|
style: Bold
|
||||||
|
italic:
|
||||||
|
family: 'UDEV Gothic 35NFLG'
|
||||||
|
style: Italic
|
||||||
|
bold_italic:
|
||||||
|
family: 'UDEV Gothic 35NFLG'
|
||||||
|
style: Bold Italic
|
||||||
|
|
||||||
|
# ウインドウ
|
||||||
|
window:
|
||||||
|
dimensions:
|
||||||
|
columms: 370
|
||||||
|
line: 250
|
||||||
|
decorations: full
|
||||||
|
opacity: 0.97
|
||||||
|
padding:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
dynamic_padding: false
|
||||||
|
|
||||||
|
# 環境変数
|
||||||
|
env:
|
||||||
|
TERM: alacritty
|
||||||
|
|
||||||
|
# Colors (Horizon Dark)
|
||||||
|
colors:
|
||||||
|
# Primary colors
|
||||||
|
primary:
|
||||||
|
background: '0x1c1e26'
|
||||||
|
foreground: '0xe0e0e0'
|
||||||
|
|
||||||
|
# Cursor colors
|
||||||
|
cursor:
|
||||||
|
cursor: '0x00ff00'
|
||||||
|
vi_mode_cursor:
|
||||||
|
cursor: '0x00ff00'
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
normal:
|
||||||
|
black: '0x16161c'
|
||||||
|
red: '0xe95678'
|
||||||
|
green: '0x29d398'
|
||||||
|
yellow: '0xfab795'
|
||||||
|
blue: '0x26bbd9'
|
||||||
|
magenta: '0xee64ac'
|
||||||
|
cyan: '0x59e1e3'
|
||||||
|
white: '0xd5d8da'
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
bright:
|
||||||
|
black: '0x5b5858'
|
||||||
|
red: '0xec6a88'
|
||||||
|
green: '0x3fdaa4'
|
||||||
|
yellow: '0xfbc3a7'
|
||||||
|
blue: '0x3fc4de'
|
||||||
|
magenta: '0xf075b5'
|
||||||
|
cyan: '0x6be4e6'
|
||||||
|
white: '0xd5d8da'
|
165
colors-rofi.rasi
Normal file
165
colors-rofi.rasi
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
* {
|
||||||
|
active-background: #68DDC4;
|
||||||
|
active-foreground: @foreground;
|
||||||
|
normal-background: @background;
|
||||||
|
normal-foreground: @foreground;
|
||||||
|
urgent-background: #D95882;
|
||||||
|
urgent-foreground: @foreground;
|
||||||
|
|
||||||
|
alternate-active-background: @background;
|
||||||
|
alternate-active-foreground: @foreground;
|
||||||
|
alternate-normal-background: @background;
|
||||||
|
alternate-normal-foreground: @foreground;
|
||||||
|
alternate-urgent-background: @background;
|
||||||
|
alternate-urgent-foreground: @foreground;
|
||||||
|
|
||||||
|
selected-active-background: #D95882;
|
||||||
|
selected-active-foreground: @foreground;
|
||||||
|
selected-normal-background: #f08080;
|
||||||
|
selected-normal-foreground: @background;
|
||||||
|
selected-urgent-background: #D95882;
|
||||||
|
selected-urgent-foreground: @foreground;
|
||||||
|
|
||||||
|
background-color: @background;
|
||||||
|
background: #1C1E27;
|
||||||
|
foreground: #cacacc;
|
||||||
|
border-color: #E8AEAA;
|
||||||
|
spacing: 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
background-color: @background;
|
||||||
|
border: 2px;
|
||||||
|
padding: 1ch;
|
||||||
|
width: 500px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mainbox {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#message {
|
||||||
|
border: 2px 0px 0px;
|
||||||
|
border-color: @border-color;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#textbox {
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#inputbar {
|
||||||
|
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
|
||||||
|
}
|
||||||
|
|
||||||
|
#textbox-prompt-colon {
|
||||||
|
expand: false;
|
||||||
|
str: "";
|
||||||
|
margin: 0px 0.3em 0em 0em;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#listview {
|
||||||
|
fixed-height: 0;
|
||||||
|
border: 2px 0px 0px;
|
||||||
|
border-color: @border-color;
|
||||||
|
spacing: 0px;
|
||||||
|
scrollbar: false;
|
||||||
|
padding: 6px 0px 0px;
|
||||||
|
lines: 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element {
|
||||||
|
border: 0;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.normal.normal {
|
||||||
|
background-color: @normal-background;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.normal.urgent {
|
||||||
|
background-color: @urgent-background;
|
||||||
|
text-color: @urgent-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.normal.active {
|
||||||
|
background-color: @active-background;
|
||||||
|
text-color: @active-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.selected.normal {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.selected.urgent {
|
||||||
|
background-color: @selected-urgent-background;
|
||||||
|
text-color: @selected-urgent-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.selected.active {
|
||||||
|
background-color: @selected-active-background;
|
||||||
|
text-color: @selected-active-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.alternate.normal {
|
||||||
|
background-color: @alternate-normal-background;
|
||||||
|
text-color: @alternate-normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.alternate.urgent {
|
||||||
|
background-color: @alternate-urgent-background;
|
||||||
|
text-color: @alternate-urgent-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.alternate.active {
|
||||||
|
background-color: @alternate-active-background;
|
||||||
|
text-color: @alternate-active-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#scrollbar {
|
||||||
|
width: 4px;
|
||||||
|
border: 0;
|
||||||
|
handle-width: 8px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar {
|
||||||
|
border: 2px 0px 0px;
|
||||||
|
border-color: @border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
#button {
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#button.selected {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#inputbar {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#case-indicator {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#prompt {
|
||||||
|
spacing: 1;
|
||||||
|
margin: 0px 0px 4px 0em;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
261
config
Normal file
261
config
Normal file
|
@ -0,0 +1,261 @@
|
||||||
|
# 神は言った――「光あれ」
|
||||||
|
set $mod Mod4
|
||||||
|
|
||||||
|
# ウインドウタイトルのフォント
|
||||||
|
font pango:Noto Sans CJK JP 8
|
||||||
|
|
||||||
|
# フローティングウインドウの操作キー
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
# ターミナル
|
||||||
|
bindsym $mod+Return exec --no-startup-id alacritty
|
||||||
|
|
||||||
|
# ファイラー
|
||||||
|
bindsym $mod+m exec --no-startup-id thunar
|
||||||
|
|
||||||
|
# タスクキル
|
||||||
|
bindsym $mod+q kill
|
||||||
|
|
||||||
|
# ランチャー
|
||||||
|
bindsym $mod+z exec --no-startup-id "rofi -show drun"
|
||||||
|
bindsym $mod+x exec --no-startup-id "rofi -show run"
|
||||||
|
|
||||||
|
# ウインドウフォーカス
|
||||||
|
bindsym $mod+h focus left
|
||||||
|
bindsym $mod+j focus down
|
||||||
|
bindsym $mod+k focus up
|
||||||
|
bindsym $mod+l focus right
|
||||||
|
|
||||||
|
# 代替ウインドウフォーカス
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# ウインドウ交換
|
||||||
|
bindsym $mod+Shift+h move left
|
||||||
|
bindsym $mod+Shift+j move down
|
||||||
|
bindsym $mod+Shift+k move up
|
||||||
|
bindsym $mod+Shift+l move right
|
||||||
|
|
||||||
|
# 代替ウインドウ交換
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
|
||||||
|
# 水平ウインドウ分割
|
||||||
|
bindsym $mod+s split v
|
||||||
|
|
||||||
|
# 垂直ウインドウ分割
|
||||||
|
bindsym $mod+v split h
|
||||||
|
|
||||||
|
# フルスクリーン
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
|
||||||
|
# ウインドウの分割切り替え
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# ウインドウフロート
|
||||||
|
bindsym $mod+w floating toggle
|
||||||
|
|
||||||
|
# フロートウインドウフォーカス
|
||||||
|
bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
|
# 親コンテナへのフォーカス
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
# 子コンテナへのフォーカス
|
||||||
|
bindsym $mod+b focus child
|
||||||
|
|
||||||
|
# ワークスペース変数
|
||||||
|
set $ws1 "1"
|
||||||
|
set $ws2 "2"
|
||||||
|
set $ws3 "3"
|
||||||
|
set $ws4 "4"
|
||||||
|
set $ws5 "5"
|
||||||
|
set $ws6 "6"
|
||||||
|
set $ws7 "7"
|
||||||
|
set $ws8 "8"
|
||||||
|
set $ws9 "9"
|
||||||
|
set $ws10 "10"
|
||||||
|
|
||||||
|
# ワークスペースの移動
|
||||||
|
bindsym $mod+1 workspace $ws1
|
||||||
|
bindsym $mod+2 workspace $ws2
|
||||||
|
bindsym $mod+3 workspace $ws3
|
||||||
|
bindsym $mod+4 workspace $ws4
|
||||||
|
bindsym $mod+5 workspace $ws5
|
||||||
|
bindsym $mod+6 workspace $ws6
|
||||||
|
bindsym $mod+7 workspace $ws7
|
||||||
|
bindsym $mod+8 workspace $ws8
|
||||||
|
bindsym $mod+9 workspace $ws9
|
||||||
|
bindsym $mod+0 workspace $ws10
|
||||||
|
|
||||||
|
# ウインドウを他のワークスペースに移動する
|
||||||
|
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace $ws6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace $ws7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace $ws10
|
||||||
|
|
||||||
|
# 設定再読込み
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
|
||||||
|
# 再起動
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
|
||||||
|
# ウインドウリサイズ
|
||||||
|
mode "RESIZE" {
|
||||||
|
bindsym h resize shrink width 10 px or 5 ppt
|
||||||
|
bindsym j resize grow height 10 px or 5 ppt
|
||||||
|
bindsym k resize shrink height 10 px or 5 ppt
|
||||||
|
bindsym l resize grow width 10 px or 5 ppt
|
||||||
|
|
||||||
|
# 代替
|
||||||
|
bindsym Left resize shrink width 10 px or 5 ppt
|
||||||
|
bindsym Down resize grow height 10 px or 5 ppt
|
||||||
|
bindsym Up resize shrink height 10 px or 5 ppt
|
||||||
|
bindsym Right resize grow width 10 px or 5 ppt
|
||||||
|
|
||||||
|
# 通常モード遷移
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+r mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode "RESIZE"
|
||||||
|
|
||||||
|
# コマンドモード――これによりキーバインドは実質無制限となる!
|
||||||
|
bindsym $mod+c mode "CMD"
|
||||||
|
mode "CMD"{
|
||||||
|
bindsym v exec vivaldi-stable; mode "default"
|
||||||
|
bindsym f exec "flameshot gui" mode "default"
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+c mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
# シャットダウンシークエンス
|
||||||
|
bindsym $mod+Shift+e mode "SHUTDOWN SEQUENCE"
|
||||||
|
mode "SHUTDOWN SEQUENCE"{
|
||||||
|
bindsym p exec "systemctl poweroff"
|
||||||
|
bindsym r exec "systemctl reboot"
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+Shift+e mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
# ステータスバーの色
|
||||||
|
set $background #2B303B
|
||||||
|
set $foreground #C0C5CE
|
||||||
|
set $lightred #BF616A
|
||||||
|
set $lightgreen #A3BE8C
|
||||||
|
set $lightyellow #EBCB8B
|
||||||
|
set $lightblue #8FA1B3
|
||||||
|
set $lightmagenta #B48EAD
|
||||||
|
set $lightcyan #96B5B4
|
||||||
|
set $lightwhite #C0C5CE
|
||||||
|
set $pink #FFB6C1
|
||||||
|
set $orange #F08080
|
||||||
|
|
||||||
|
# ステータスバー関連
|
||||||
|
bar {
|
||||||
|
font pango:UDEV Gothic 35 13
|
||||||
|
mode dock
|
||||||
|
position top
|
||||||
|
workspace_buttons yes
|
||||||
|
strip_workspace_numbers yes
|
||||||
|
binding_mode_indicator yes
|
||||||
|
tray_padding 2
|
||||||
|
colors {
|
||||||
|
background $background
|
||||||
|
focused_background $background
|
||||||
|
statusline $lightred
|
||||||
|
focused_statusline $lightred
|
||||||
|
# 左からborder, bg, fg
|
||||||
|
focused_workspace $orange $orange $background
|
||||||
|
active_workspace $background $background $foreground
|
||||||
|
inactive_workspace $background $background $foreground
|
||||||
|
urgent_workspace $green $green $background
|
||||||
|
binding_mode $green $green $background
|
||||||
|
}
|
||||||
|
status_command /usr/bin/bumblebee-status -m playerctl datetime \
|
||||||
|
-p playerctl.hide="true" playerctl.format="{{artist}} - {{title}}" playerctl.layout="playerctl.song" datetime.format="%m/%d %H:%M" -t monotone
|
||||||
|
}
|
||||||
|
|
||||||
|
# i3wm全体の色
|
||||||
|
set $bg #1C1E27
|
||||||
|
set $fg #CACACC
|
||||||
|
set $darkred #D95882
|
||||||
|
set $red #E4436F
|
||||||
|
set $darkgreen #68DDC4
|
||||||
|
set $green #24E39D
|
||||||
|
set $darkyellow #E8AEAA
|
||||||
|
set $yellow #EDA685
|
||||||
|
set $darkblue #64A4BF
|
||||||
|
set $blue #2095B4
|
||||||
|
set $darkmagenta #B382CF
|
||||||
|
set $darkcyan #54AEB8
|
||||||
|
set $cyan #00A5AF
|
||||||
|
set $darkwhite #CACACC
|
||||||
|
set $white #CACACA
|
||||||
|
set $darkgrey #6C6F93
|
||||||
|
|
||||||
|
# フォーカスカラー
|
||||||
|
# class border background text indicator child_border
|
||||||
|
client.focused $bg $darkgrey $fg $yellow $darkyellow
|
||||||
|
client.unfocused $bg $bg $fg $yellow $bg
|
||||||
|
|
||||||
|
# ウインドウの枠の太さ
|
||||||
|
for_window [class="^.*"] border pixel 2
|
||||||
|
|
||||||
|
# ウインドウ間の隙間の広さ
|
||||||
|
gaps top 6
|
||||||
|
gaps bottom 6
|
||||||
|
gaps right 6
|
||||||
|
gaps left 6
|
||||||
|
gaps inner 6
|
||||||
|
|
||||||
|
# マウスでフォーカスしない
|
||||||
|
focus_follows_mouse no
|
||||||
|
|
||||||
|
# 自動起動
|
||||||
|
exec --no-startup-id dunst
|
||||||
|
exec --no-startup-id "picom -b"
|
||||||
|
exec --no-startup-id xfce4-power-manager
|
||||||
|
exec --no-startup-id fcitx5
|
||||||
|
exec --no-startup-id vivaldi-stable
|
||||||
|
exec --no-startup-id discord
|
||||||
|
exec --no-startup-id slack
|
||||||
|
exec --no-startup-id parcellite
|
||||||
|
exec --no-startup-id "./sh/mount.sh"
|
||||||
|
exec --no-startup-id "feh --no-fehbg --bg-scale ~/Wallpaper.png"
|
||||||
|
exec --no-startup-id "xset r rate 200 30"
|
||||||
|
|
||||||
|
# フローティング起動一覧
|
||||||
|
for_window [class="Thunar"] floating enable, resize set 1024 780
|
||||||
|
for_window [class="Lxappearance"] floating enable, resize set 800 600
|
||||||
|
for_window [class="Pavucontrol"] floating enable, resize set 800 600
|
||||||
|
for_window [class="fcitx5-config-qt"] floating enable
|
||||||
|
for_window [class="mozc_tool"] floating enable, resize set 800 600
|
||||||
|
for_window [class="VirtualBox Manager"] floating enable, resize set 1280 1024
|
||||||
|
for_window [class="VirtualBox Machine"] floating enable
|
||||||
|
for_window [class="Io.github.celluloid_player.Celluloid"] floating enable
|
||||||
|
for_window [class="feh"] floating enable, resize set 1280 1024
|
||||||
|
for_window [class="transmission-gtk"] floating enable
|
||||||
|
for_window [class="stacer"] floating enable
|
||||||
|
for_window [class="Mousepad"] floating enable, resize set 1280 1024
|
||||||
|
for_window [class="Xfce4-power-manager-settings"] floating enable, resize 1024 780
|
||||||
|
for_window [class="qt5ct"] floating enable, resize set 1024 780
|
||||||
|
for_window [class="Qtconfig-qt4"] floating enable, resize set 1024 780
|
||||||
|
for_window [class="kdeconnect-app"] floating enbale
|
||||||
|
|
||||||
|
# ワークスペース指定一覧
|
||||||
|
assign [class="discord"] workspace 3
|
||||||
|
assign [class="Slack"] workspace 3
|
5
config.rasi
Normal file
5
config.rasi
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
configuration {
|
||||||
|
font: "Noto Sans CJK JP 18";
|
||||||
|
drun-display-format: "{name}";
|
||||||
|
}
|
||||||
|
@import "colors-rofi.rasi"
|
245
dunstrc
Normal file
245
dunstrc
Normal file
|
@ -0,0 +1,245 @@
|
||||||
|
[global]
|
||||||
|
font = Noto Sans CJK JP 12
|
||||||
|
|
||||||
|
# Allow a small subset of html markup:
|
||||||
|
# <b>bold</b>
|
||||||
|
# <i>italic</i>
|
||||||
|
# <s>strikethrough</s>
|
||||||
|
# <u>underline</u>
|
||||||
|
#
|
||||||
|
# For a complete reference see
|
||||||
|
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||||
|
# If markup is not allowed, those tags will be stripped out of the
|
||||||
|
# message.
|
||||||
|
markup = yes
|
||||||
|
plain_text = no
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# Markup is allowed
|
||||||
|
format = "<b>%s</b>\n%b"
|
||||||
|
|
||||||
|
# Sort messages by urgency.
|
||||||
|
sort = no
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of geometry).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# Alignment of message text.
|
||||||
|
# Possible values are "left", "center" and "right".
|
||||||
|
alignment = left
|
||||||
|
|
||||||
|
# The frequency with wich text that is longer than the notification
|
||||||
|
# window allows bounces back and forth.
|
||||||
|
# This option conflicts with "word_wrap".
|
||||||
|
# Set to 0 to disable.
|
||||||
|
bounce_freq = 0
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = -1
|
||||||
|
|
||||||
|
# Split notifications into multiple lines if they don't fit into
|
||||||
|
# geometry.
|
||||||
|
word_wrap = no
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = no
|
||||||
|
|
||||||
|
# Hide duplicate's count and stack them
|
||||||
|
stack_duplicates = yes
|
||||||
|
hide_duplicate_count = yes
|
||||||
|
|
||||||
|
width = 300
|
||||||
|
height = 500
|
||||||
|
offset = 12x39
|
||||||
|
|
||||||
|
# Shrink window if it's smaller than the width. Will be ignored if
|
||||||
|
# width is 0.
|
||||||
|
shrink = no
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing windowmanager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.).
|
||||||
|
transparency = 5
|
||||||
|
|
||||||
|
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||||
|
# for longer than idle_threshold seconds.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
idle_threshold = 0
|
||||||
|
|
||||||
|
# Which monitor should the notifications be displayed on.
|
||||||
|
monitor = 0
|
||||||
|
|
||||||
|
# Display notification on focused monitor. Possible modes are:
|
||||||
|
# mouse: follow mouse pointer
|
||||||
|
# keyboard: follow window with keyboard focus
|
||||||
|
# none: don't follow anything
|
||||||
|
#
|
||||||
|
# "keyboard" needs a windowmanager that exports the
|
||||||
|
# _NET_ACTIVE_WINDOW property.
|
||||||
|
# This should be the case for almost all modern windowmanagers.
|
||||||
|
#
|
||||||
|
# If this option is set to mouse or keyboard, the monitor option
|
||||||
|
# will be ignored.
|
||||||
|
follow = none
|
||||||
|
|
||||||
|
# Should a notification popped up from history be sticky or timeout
|
||||||
|
# as if it would normally do.
|
||||||
|
sticky_history = yes
|
||||||
|
|
||||||
|
# Maximum amount of notifications kept in history
|
||||||
|
history_length = 5
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = no
|
||||||
|
|
||||||
|
# The height of a single line. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
# This adds empty space above and under the text.
|
||||||
|
line_height = 3
|
||||||
|
|
||||||
|
# Draw a line of "separatpr_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
separator_height = 2
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 6
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 6
|
||||||
|
|
||||||
|
# Define a color for the separator.
|
||||||
|
# possible values are:
|
||||||
|
# * auto: dunst tries to find a color fitting to the background;
|
||||||
|
# * foreground: use the same color as the foreground;
|
||||||
|
# * frame: use the same color as the frame;
|
||||||
|
# * anything else will be interpreted as a X color.
|
||||||
|
separator_color = frame
|
||||||
|
|
||||||
|
# Print a notification on startup.
|
||||||
|
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||||
|
# automatically after a crash.
|
||||||
|
startup_notification = false
|
||||||
|
|
||||||
|
# dmenu path.
|
||||||
|
dmenu = /usr/bin/dmenu -p dunst:
|
||||||
|
|
||||||
|
# Browser for opening urls in context menu.
|
||||||
|
browser = /usr/bin/google-chrome-stable -new-tab
|
||||||
|
|
||||||
|
# Align icons left/right/off
|
||||||
|
icon_position = left
|
||||||
|
max_icon_size = 80
|
||||||
|
|
||||||
|
# Paths to default icons.
|
||||||
|
icon_path = /usr/share/icons/Qogir/symbolic/status
|
||||||
|
|
||||||
|
frame_width = 1
|
||||||
|
frame_color = "#a3be8c"
|
||||||
|
|
||||||
|
[shortcuts]
|
||||||
|
|
||||||
|
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||||
|
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||||
|
# "mod3" and "mod4" (windows-key).
|
||||||
|
# Xev might be helpful to find names for keys.
|
||||||
|
|
||||||
|
# Close notification.
|
||||||
|
close = ctrl+space
|
||||||
|
|
||||||
|
# Close all notifications.
|
||||||
|
close_all = ctrl+shift+space
|
||||||
|
|
||||||
|
# Redisplay last message(s).
|
||||||
|
# On the US keyboard layout "grave" is normally above TAB and left
|
||||||
|
# of "1".
|
||||||
|
history = ctrl+grave
|
||||||
|
|
||||||
|
# Context menu.
|
||||||
|
context = ctrl+shift+period
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
frame_color = "#2b303b"
|
||||||
|
foreground = "#c0c5ce"
|
||||||
|
background = "#2b303b"
|
||||||
|
#background = "#2B313C"
|
||||||
|
timeout = 3
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
frame_color = "#a3be8c"
|
||||||
|
foreground = "#c0c5ce"
|
||||||
|
background = "#2b303b"
|
||||||
|
#background = "#2B313C"
|
||||||
|
timeout = 3
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
frame_color = "#f08080"
|
||||||
|
foreground = "#c0c5ce"
|
||||||
|
background = "#2b303b"
|
||||||
|
#background = "#2B313C"
|
||||||
|
timeout = 5
|
||||||
|
|
||||||
|
|
||||||
|
# Every section that isn't one of the above is interpreted as a rules to
|
||||||
|
# override settings for certain messages.
|
||||||
|
# Messages can be matched by "appname", "summary", "body", "icon", "category",
|
||||||
|
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
|
||||||
|
# "background", "new_icon" and "format".
|
||||||
|
# Shell-like globbing will get expanded.
|
||||||
|
#
|
||||||
|
# SCRIPTING
|
||||||
|
# You can specify a script that gets run when the rule matches by
|
||||||
|
# setting the "script" option.
|
||||||
|
# The script will be called as follows:
|
||||||
|
# script appname summary body icon urgency
|
||||||
|
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||||
|
#
|
||||||
|
# NOTE: if you don't want a notification to be displayed, set the format
|
||||||
|
# to "".
|
||||||
|
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||||
|
# to find fitting options for rules.
|
||||||
|
|
||||||
|
#[espeak]
|
||||||
|
# summary = "*"
|
||||||
|
# script = dunst_espeak.sh
|
||||||
|
|
||||||
|
#[script-test]
|
||||||
|
# summary = "*script*"
|
||||||
|
# script = dunst_test.sh
|
||||||
|
|
||||||
|
#[ignore]
|
||||||
|
# # This notification will not be displayed
|
||||||
|
# summary = "foobar"
|
||||||
|
# format = ""
|
||||||
|
|
||||||
|
#[signed_on]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = "*signed on*"
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[signed_off]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *signed off*
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[says]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *says*
|
||||||
|
# urgency = critical
|
||||||
|
#
|
||||||
|
#[twitter]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *twitter.com*
|
||||||
|
# urgency = normal
|
||||||
|
#
|
||||||
|
# vim: ft=cfg
|
733
init.lua
Normal file
733
init.lua
Normal file
|
@ -0,0 +1,733 @@
|
||||||
|
----GENERAL SETTINGS
|
||||||
|
local opt = vim.opt
|
||||||
|
vim.g.mapleader = ' '
|
||||||
|
opt.helplang = 'ja', 'en'
|
||||||
|
opt.tabstop = 2
|
||||||
|
opt.shiftwidth = 2
|
||||||
|
opt.expandtab = true
|
||||||
|
opt.list = true
|
||||||
|
opt.listchars = {tab='»-', trail='-', eol='↲', extends='»', precedes='«', nbsp='%'}
|
||||||
|
opt.wrap = true
|
||||||
|
opt.signcolumn = 'yes'
|
||||||
|
opt.smartcase = true
|
||||||
|
opt.ignorecase = true
|
||||||
|
opt.wrapscan = true
|
||||||
|
opt.hidden = true
|
||||||
|
opt.startofline = false
|
||||||
|
opt.showmatch = true
|
||||||
|
opt.matchtime = 1
|
||||||
|
opt.guicursor = ''
|
||||||
|
opt.cursorline = true
|
||||||
|
opt.wildmenu = true
|
||||||
|
opt.number = true
|
||||||
|
opt.showcmd = true
|
||||||
|
opt.autoread = true
|
||||||
|
opt.hlsearch = true
|
||||||
|
opt.backspace:append{'indent', 'eol', 'start'}
|
||||||
|
opt.showtabline = 1
|
||||||
|
opt.laststatus = 3
|
||||||
|
opt.ambiwidth = 'single'
|
||||||
|
opt.confirm = true
|
||||||
|
opt.pumblend = 15
|
||||||
|
opt.winblend = 15
|
||||||
|
opt.mouse = 'a'
|
||||||
|
opt.cmdheight = 2
|
||||||
|
opt.timeout = true
|
||||||
|
opt.ttimeout = true
|
||||||
|
opt.ttimeoutlen = 10
|
||||||
|
opt.clipboard:append{'unnamedplus'}
|
||||||
|
opt.termguicolors = true
|
||||||
|
opt.showmode = false
|
||||||
|
opt.completeopt:append{'menuone', 'noinsert'}
|
||||||
|
opt.backup = false
|
||||||
|
opt.swapfile = false
|
||||||
|
opt.encoding = 'utf-8'
|
||||||
|
opt.fileencodings = {'utf-8', 'iso-2022-jp', 'cp932', 'euc-jp', 'sjis'}
|
||||||
|
vim.opt.shortmess:append('I')
|
||||||
|
vim.cmd('set completeopt-=preview')
|
||||||
|
|
||||||
|
|
||||||
|
----ADVANCED SETTINGS
|
||||||
|
|
||||||
|
--KEEP CURSOR
|
||||||
|
vim.api.nvim_create_autocmd({ 'BufReadPost' }, {
|
||||||
|
pattern = { '*' },
|
||||||
|
callback = function()
|
||||||
|
vim.api.nvim_exec('silent! normal! g`"zv', false)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
----KEY MAPPING
|
||||||
|
|
||||||
|
--EDIT
|
||||||
|
vim.keymap.set('n', 'ew', ':<C-u>w<CR>')
|
||||||
|
vim.keymap.set('n', 'eq', ':<C-u>wq<CR>')
|
||||||
|
vim.keymap.set('n', 'Q', ':<C-u>quit!<CR>')
|
||||||
|
vim.keymap.set('n', '<leader>q', ':<C-u>bd<CR>')
|
||||||
|
vim.keymap.set('n', '<C-s>', ':<C-u>%s///cg<Left><Left><Left><Left>')
|
||||||
|
vim.keymap.set('n', '<C-c>', ":<C-u>echo wordcount()['chars']<CR>")
|
||||||
|
|
||||||
|
--TAB
|
||||||
|
vim.keymap.set('n', '<leader><TAB>', ':bprev<CR>', {silent = true})
|
||||||
|
vim.keymap.set('n', '<leader>t', ':tabclose<CR>', {silent = true})
|
||||||
|
vim.keymap.set('n', ']b', ':bnext<CR>', {silent =true})
|
||||||
|
|
||||||
|
--SPLIT
|
||||||
|
vim.keymap.set('n', 'sv', ':<C-u>vsplit<CR>', {silent = true})
|
||||||
|
vim.keymap.set('n', 'sp', ':<C-u>split<CR>', {silent =true})
|
||||||
|
|
||||||
|
--NOP
|
||||||
|
vim.keymap.set('n', '<MiddleMouse>', '<Nop>')
|
||||||
|
vim.keymap.set('n', '<2-MiddleMouse>', '<Nop>')
|
||||||
|
vim.keymap.set('n', '<3-MiddleMouse>', '<Nop>')
|
||||||
|
vim.keymap.set('n', '<4-MiddleMouse>', '<Nop>')
|
||||||
|
vim.keymap.set('i', '<1-MiddleMouse>', '<Nop>')
|
||||||
|
vim.keymap.set('i', '<2-MiddleMouse>', '<Nop>')
|
||||||
|
vim.keymap.set('i', '<3-MiddleMouse>', '<Nop>')
|
||||||
|
vim.keymap.set('i', '<4-MiddleMouse>', '<Nop>')
|
||||||
|
vim.keymap.set('n', 'qq', '<Nop>')
|
||||||
|
vim.keymap.set('n', 'gg', '<Nop>')
|
||||||
|
vim.keymap.set('n', 'ZZ', '<Nop>')
|
||||||
|
vim.keymap.set('n', 'ZQ', '<Nop>')
|
||||||
|
vim.keymap.set('n', '<C-z>', '<Nop>')
|
||||||
|
vim.keymap.set('n', '<F1>', '<Nop>')
|
||||||
|
vim.keymap.set('n', 'x', '"_x')
|
||||||
|
vim.keymap.set('v', 'x', '"_x')
|
||||||
|
vim.keymap.set('n', 's', '"_s')
|
||||||
|
|
||||||
|
--MOVE
|
||||||
|
vim.keymap.set('n', 'k', 'gk')
|
||||||
|
vim.keymap.set('n', 'j', 'gj')
|
||||||
|
vim.keymap.set('n', '<UP>', 'gk')
|
||||||
|
vim.keymap.set('n', '<DOWN>', 'gj')
|
||||||
|
vim.keymap.set('n', 'O', ":<C-u>call append(expand('.'), '')<CR>j")
|
||||||
|
vim.keymap.set('n', 'sh', '<C-w>h')
|
||||||
|
vim.keymap.set('n', 'sj', '<C-w>j')
|
||||||
|
vim.keymap.set('n', 'sk', '<C-w>k')
|
||||||
|
vim.keymap.set('n', 'sl', '<C-w>l')
|
||||||
|
vim.keymap.set('n', 'sH', '<C-w>H')
|
||||||
|
vim.keymap.set('n', 'sJ', '<C-w>J')
|
||||||
|
vim.keymap.set('n', 'sK', '<C-w>K')
|
||||||
|
vim.keymap.set('n', 'sL', '<C-w>L')
|
||||||
|
|
||||||
|
--COPY
|
||||||
|
vim.keymap.set('n', 'p', ']p')
|
||||||
|
vim.keymap.set('n', 'P', ']P')
|
||||||
|
vim.keymap.set('n', ']p', 'p')
|
||||||
|
vim.keymap.set('n', ']P', 'P')
|
||||||
|
|
||||||
|
|
||||||
|
----PLUGINS
|
||||||
|
|
||||||
|
--MANAGER
|
||||||
|
local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim'
|
||||||
|
if not vim.loop.fs_stat(lazypath) then
|
||||||
|
vim.fn.system({
|
||||||
|
'git',
|
||||||
|
'clone',
|
||||||
|
'--filter=blob:none',
|
||||||
|
'https://github.com/folke/lazy.nvim.git',
|
||||||
|
'--branch=stable',
|
||||||
|
lazypath,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
vim.opt.rtp:prepend(lazypath)
|
||||||
|
require('lazy').setup({
|
||||||
|
defaults = {lazy = true},
|
||||||
|
{'nvim-lualine/lualine.nvim', event = 'VeryLazy'},
|
||||||
|
{'nvim-telescope/telescope.nvim', cmd = 'Telescope'},
|
||||||
|
{'nvim-telescope/telescope-file-browser.nvim', event = 'VeryLazy'},
|
||||||
|
{'lewis6991/gitsigns.nvim', config = true, event = 'VeryLazy'},
|
||||||
|
{'ryanoasis/vim-devicons', event = 'VeryLazy'},
|
||||||
|
{'nvim-tree/nvim-web-devicons', event = 'VeryLazy'},
|
||||||
|
{'williamboman/mason.nvim', event = 'BufRead', cmd = {'Mason', 'MasonInstall'},},
|
||||||
|
{'neovim/nvim-lspconfig', event = 'LspAttach'},
|
||||||
|
{'williamboman/mason-lspconfig.nvim', event = 'LspAttach'},
|
||||||
|
{'mfussenegger/nvim-dap', event = 'LspAttach'},
|
||||||
|
{'rcarriga/nvim-dap-ui', event = 'LspAttach'},
|
||||||
|
{'suketa/nvim-dap-ruby', config = true, event = 'LspAttach'},
|
||||||
|
{'j-hui/fidget.nvim', config = true, event = 'LspAttach'},
|
||||||
|
{'sainnhe/edge', event = 'VeryLazy'},
|
||||||
|
{'nvim-lua/plenary.nvim', event = 'VeryLazy'},
|
||||||
|
{'stevearc/dressing.nvim', event = 'VeryLazy'},
|
||||||
|
{'hrsh7th/nvim-cmp', event = 'InsertEnter, CmdlineEnter'},
|
||||||
|
{'hrsh7th/cmp-nvim-lsp', event = 'InsertEnter'},
|
||||||
|
{'hrsh7th/cmp-buffer', event = 'InsertEnter'},
|
||||||
|
{'hrsh7th/cmp-path', event = 'InsertEnter'},
|
||||||
|
{'hrsh7th/cmp-vsnip', event = 'InsertEnter'},
|
||||||
|
{'hrsh7th/cmp-cmdline', event = 'ModeChanged'},
|
||||||
|
{'hrsh7th/cmp-nvim-lsp-signature-help', event = 'InsertEnter'},
|
||||||
|
{'hrsh7th/cmp-nvim-lsp-document-symbol', event = 'InsertEnter'},
|
||||||
|
{'hrsh7th/cmp-calc', event = 'InsertEnter'},
|
||||||
|
{'onsails/lspkind.nvim', event = 'InsertEnter'},
|
||||||
|
{'hrsh7th/vim-vsnip', event = 'InsertEnter'},
|
||||||
|
{'hrsh7th/vim-vsnip-integ', event = 'InsertEnter'},
|
||||||
|
{'rafamadriz/friendly-snippets', event = 'InsertEnter'},
|
||||||
|
{'nvim-treesitter/nvim-treesitter', event = 'BufNewFile, BufRead'},
|
||||||
|
{'yioneko/nvim-yati', event = 'VeryLazy'},
|
||||||
|
{'windwp/nvim-autopairs', config = true, event = 'InsertEnter'},
|
||||||
|
{'andymass/vim-matchup', event = 'VeryLazy'},
|
||||||
|
{'Maan2003/lsp_lines.nvim', config = true, event = 'BufNewFile, BufRead'},
|
||||||
|
{'lambdalisue/suda.vim', cmd = {'SudaWrite', 'SudaRead'},},
|
||||||
|
{'lukas-reineke/indent-blankline.nvim', event = 'BufNewFile, BufRead'},
|
||||||
|
{'kevinhwang91/nvim-hlslens', event = 'BufNewFile, BufRead'},
|
||||||
|
{'numToStr/Comment.nvim', config = true, event = 'VeryLazy'},
|
||||||
|
{'rhysd/clever-f.vim', event = 'VeryLazy'},
|
||||||
|
{'luochen1990/rainbow', event = 'BufNewFile, BufRead'},
|
||||||
|
{'echasnovski/mini.surround', event = 'ModeChanged'},
|
||||||
|
{'echasnovski/mini.ai', event = 'ModeChanged'},
|
||||||
|
{'mvllow/modes.nvim', event = 'BufNewFile, BufRead'},
|
||||||
|
{'monaqa/dial.nvim', event = 'VeryLazy'},
|
||||||
|
{'tpope/vim-repeat', event = 'VeryLazy'},
|
||||||
|
{'dstein64/vim-startuptime', cmd = 'StartupTime'},
|
||||||
|
{'vim-jp/vimdoc-ja', ft = 'help'},
|
||||||
|
|
||||||
|
--non-lazy
|
||||||
|
{'vim-denops/denops.vim', lazy = false},
|
||||||
|
{'yuki-yano/fuzzy-motion.vim', lazy = false},
|
||||||
|
{'lambdalisue/gin.vim', lazy = false},
|
||||||
|
{'rbtnn/vim-ambiwidth', lazy = false},
|
||||||
|
{'lambdalisue/kensaku-search.vim', lazy = false},
|
||||||
|
{'lambdalisue/kensaku.vim', lazy = false},
|
||||||
|
{'brenoprata10/nvim-highlight-colors', config = true, lazy = false},
|
||||||
|
|
||||||
|
--disable default plugins
|
||||||
|
performance = {
|
||||||
|
rtp = {
|
||||||
|
disable_plugins = {
|
||||||
|
'netrw',
|
||||||
|
'netrwPlugin',
|
||||||
|
'netrwSettings',
|
||||||
|
'netrwFileHandlers',
|
||||||
|
'gzip',
|
||||||
|
'zip',
|
||||||
|
'zipPlugin',
|
||||||
|
'tar',
|
||||||
|
'tarPlugin',
|
||||||
|
'getscript',
|
||||||
|
'getscriptPlugin',
|
||||||
|
'vimball',
|
||||||
|
'vimballPlugin',
|
||||||
|
'2html_plugin',
|
||||||
|
'logipat',
|
||||||
|
'rrhelper',
|
||||||
|
'spellfile_plugin',
|
||||||
|
'sql_completion',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
--lualine
|
||||||
|
require('lualine').setup {
|
||||||
|
options = {
|
||||||
|
icons_enabled = true,
|
||||||
|
component_separators = { left = '', right = ''},
|
||||||
|
section_separators = { left = '', right = ''},
|
||||||
|
disabled_filetypes = {'TelescopePrompt'},
|
||||||
|
always_divide_middle = true,
|
||||||
|
colored = false,
|
||||||
|
globalstatus = true,
|
||||||
|
},
|
||||||
|
sections = {
|
||||||
|
lualine_a = {''},
|
||||||
|
lualine_b = {'branch', 'diff'},
|
||||||
|
lualine_c = {
|
||||||
|
{
|
||||||
|
'filename',
|
||||||
|
path = 1,
|
||||||
|
file_status = true,
|
||||||
|
shorting_target = 40,
|
||||||
|
symbols = {
|
||||||
|
modified = '[+]',
|
||||||
|
readonly = '[RO]',
|
||||||
|
unnamed = 'Untitled',
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
lualine_x = {'filetype'},
|
||||||
|
lualine_y = {
|
||||||
|
{
|
||||||
|
'diagnostics',
|
||||||
|
source = {'nvim-lsp'},
|
||||||
|
},
|
||||||
|
{'progress'},
|
||||||
|
{'location'}
|
||||||
|
},
|
||||||
|
lualine_z = {''}
|
||||||
|
},
|
||||||
|
inactive_sections = {
|
||||||
|
lualine_a = {},
|
||||||
|
lualine_b = {},
|
||||||
|
lualine_c = {'filename'},
|
||||||
|
lualine_x = {'location'},
|
||||||
|
lualine_y = {},
|
||||||
|
lualine_z = {}
|
||||||
|
},
|
||||||
|
tabline = {},
|
||||||
|
extensions = {}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
--telescope
|
||||||
|
require('telescope').setup({
|
||||||
|
defaults = {
|
||||||
|
borderchars = { "─", "│", "─", "│", "┌", "┐", "┘", "└" },
|
||||||
|
color_devicons = true,
|
||||||
|
file_ignore_patterns = { 'node_modules', '.git', '.svg', '.npm', 'go', 'MEGA'},
|
||||||
|
mappings = {
|
||||||
|
i = {
|
||||||
|
['<esc>'] = require('telescope.actions').close,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
vim.keymap.set('n', '<leader>.', '<cmd>Telescope find_files hidden=true<CR>')
|
||||||
|
vim.keymap.set('n', '<leader>,', '<cmd>Telescope oldfiles<CR>')
|
||||||
|
vim.keymap.set('n', '<leader>l', '<cmd>Telescope live_grep grep_open_files=true<CR>')
|
||||||
|
vim.keymap.set('n', '<leader>k', '<cmd>Telescope live_grep<CR>')
|
||||||
|
vim.keymap.set('n', '<leader>f', '<cmd>Telescope buffers<CR>')
|
||||||
|
vim.keymap.set('n', '<leader>h', '<cmd>Telescope help_tags<CR>')
|
||||||
|
vim.keymap.set('n', '<leader>y', '<cmd>Telescope registers<CR>')
|
||||||
|
vim.keymap.set('n', 'gd', '<cmd>Telescope lsp_definitions<CR>')
|
||||||
|
vim.keymap.set('n', 'gr', '<cmd>Telescope lsp_references<CR>')
|
||||||
|
vim.keymap.set('n', 'gi', '<cmd>Telescope lsp_implementations<CR>')
|
||||||
|
vim.keymap.set('n', 'gx', '<cmd>Telescope diagnostics<CR>')
|
||||||
|
vim.keymap.set('n', '<leader>e', '<cmd>Telescope file_browser<CR>')
|
||||||
|
|
||||||
|
local fb_actions = require 'telescope'.extensions.file_browser.actions
|
||||||
|
local previewers = require('telescope.previewers')
|
||||||
|
local Job = require('plenary.job')
|
||||||
|
local new_maker = function(filepath, bufnr, opts)
|
||||||
|
filepath = vim.fn.expand(filepath)
|
||||||
|
Job:new({
|
||||||
|
command = 'file',
|
||||||
|
args = { '--mime-type', '-b', filepath },
|
||||||
|
on_exit = function(j)
|
||||||
|
local mime_type = vim.split(j:result()[1], '/')[1]
|
||||||
|
if mime_type == 'text' then
|
||||||
|
previewers.buffer_previewer_maker(filepath, bufnr, opts)
|
||||||
|
else
|
||||||
|
vim.schedule(function()
|
||||||
|
vim.api.nvim_buf_set_lines(bufnr, 0, -1, false, { 'BINARY' })
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
}):sync()
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
--LSP
|
||||||
|
local on_attach = function(client, bufnr)
|
||||||
|
client.server_capabilities.documentFormattingProvider = false
|
||||||
|
local set = vim.keymap.set
|
||||||
|
set('n', 'K', '<cmd>lua vim.lsp.buf.hover()<CR>')
|
||||||
|
set('n', 'ls', '<cmd>lua vim.lsp.buf.signature_help()<CR>')
|
||||||
|
set('n', 'ln', '<cmd>lua vim.lsp.buf.rename()<CR>')
|
||||||
|
set('n', 'la', '<cmd>lua vim.lsp.buf.code_action()<CR>')
|
||||||
|
set('n', 'l[', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>')
|
||||||
|
set('n', 'l]', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>')
|
||||||
|
set('n', 'lf', '<cmd>lua vim.lsp.buf.format {async = true}<CR>')
|
||||||
|
end
|
||||||
|
vim.lsp.handlers['textDocument/publishDiagnostics'] = vim.lsp.with(
|
||||||
|
vim.lsp.diagnostic.on_publish_diagnostics, { virtual_text = false })
|
||||||
|
require('mason').setup()
|
||||||
|
require('mason-lspconfig').setup()
|
||||||
|
require('mason-lspconfig').setup_handlers {
|
||||||
|
function(server_name)
|
||||||
|
require('lspconfig')[server_name].setup {
|
||||||
|
on_attach = on_attach,
|
||||||
|
capabilities = capabilities,
|
||||||
|
}
|
||||||
|
end
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
--DAP
|
||||||
|
local function map(mode, lhs, rhs, opts)
|
||||||
|
local options = {noremap = true}
|
||||||
|
if opts then options = vim.tbl_extend('force', options, opts) end
|
||||||
|
vim.api.nvim_set_keymap(mode, lhs, rhs, options)
|
||||||
|
end
|
||||||
|
|
||||||
|
map("n", "<leader>5", ":lua require'dap'.continue()<CR>", { silent = true})
|
||||||
|
map("n", "<leader>6", ":lua require'dap'.step_over()<CR>", { silent = true})
|
||||||
|
map("n", "<leader>7", ":lua require'dap'.step_into()<CR>", { silent = true})
|
||||||
|
map("n", "<leader>8", ":lua require'dap'.step_out()<CR>", { silent = true})
|
||||||
|
map("n", "<leader>b", ":lua require'dap'.toggle_breakpoint()<CR>", { silent = true})
|
||||||
|
map("n", "<leader>c", ":lua require'dap'.set_breakpoint(vim.fn.input('Breakpoint condition: '))<CR>", { silent = true})
|
||||||
|
map("n", "<leader>i", ":lua require'dap'.set_breakpoint(nil, nil, vim.fn.input('Log point message: '))<CR>", { silent = true})
|
||||||
|
map("n", "<leader>d", ":lua require'dapui'.toggle()<CR>", { silent = true})
|
||||||
|
map("n", "<leader><leader>d", ":lua require'dapui'.eval()<CR>", { silent = true})
|
||||||
|
|
||||||
|
|
||||||
|
---DAP-UI
|
||||||
|
require("dapui").setup({
|
||||||
|
icons = { expanded = "▾", collapsed = "▸", current_frame = "▸" },
|
||||||
|
mappings = {
|
||||||
|
-- Use a table to apply multiple mappings
|
||||||
|
expand = { "<CR>", "<2-LeftMouse>" },
|
||||||
|
open = "o",
|
||||||
|
remove = "d",
|
||||||
|
edit = "e",
|
||||||
|
repl = "r",
|
||||||
|
toggle = "t",
|
||||||
|
},
|
||||||
|
expand_lines = vim.fn.has("nvim-0.7") == 1,
|
||||||
|
layouts = {
|
||||||
|
{
|
||||||
|
elements = {
|
||||||
|
-- Elements can be strings or table with id and size keys.
|
||||||
|
{ id = "scopes", size = 0.25 },
|
||||||
|
"breakpoints",
|
||||||
|
"stacks",
|
||||||
|
"watches",
|
||||||
|
},
|
||||||
|
size = 40, -- 40 columns
|
||||||
|
position = "left",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
elements = {
|
||||||
|
"repl",
|
||||||
|
},
|
||||||
|
size = 0.25, -- 25% of total lines
|
||||||
|
position = "bottom",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
controls = {
|
||||||
|
-- Requires Neovim nightly (or 0.8 when released)
|
||||||
|
enabled = true,
|
||||||
|
-- Display controls in this element
|
||||||
|
element = "repl",
|
||||||
|
icons = {
|
||||||
|
pause = "",
|
||||||
|
play = "",
|
||||||
|
step_into = "",
|
||||||
|
step_over = "",
|
||||||
|
step_out = "",
|
||||||
|
step_back = "",
|
||||||
|
run_last = "↻",
|
||||||
|
terminate = "□",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
floating = {
|
||||||
|
max_height = nil, -- These can be integers or a float between 0 and 1.
|
||||||
|
max_width = nil, -- Floats will be treated as percentage of your screen.
|
||||||
|
border = "single", -- Border style. Can be "single", "double" or "rounded"
|
||||||
|
mappings = {
|
||||||
|
close = { "q", "<Esc>" },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
windows = { indent = 1 },
|
||||||
|
render = {
|
||||||
|
max_type_length = nil, -- Can be integer or nil.
|
||||||
|
max_value_lines = 100, -- Can be integer or nil.
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
--nvim-cmp
|
||||||
|
local cmp = require('cmp')
|
||||||
|
local lspkind = require('lspkind')
|
||||||
|
|
||||||
|
cmp.setup({
|
||||||
|
snippet = {
|
||||||
|
expand = function(args)
|
||||||
|
vim.fn['vsnip#anonymous'](args.body)
|
||||||
|
end
|
||||||
|
},
|
||||||
|
|
||||||
|
window = {
|
||||||
|
completion = cmp.config.window.bordered({
|
||||||
|
border = 'single'
|
||||||
|
}),
|
||||||
|
documentation = cmp.config.window.bordered({
|
||||||
|
border = 'single'
|
||||||
|
}),
|
||||||
|
},
|
||||||
|
|
||||||
|
mapping = cmp.mapping.preset.insert({
|
||||||
|
['<Tab>'] = cmp.mapping.select_next_item(),
|
||||||
|
['<S-Tab>'] = cmp.mapping.select_prev_item(),
|
||||||
|
['<C-b>'] = cmp.mapping.scroll_docs(-4),
|
||||||
|
['<C-f>'] = cmp.mapping.scroll_docs(4),
|
||||||
|
['<C-Space>'] = cmp.mapping.complete(),
|
||||||
|
['<C-e>'] = cmp.mapping.abort(),
|
||||||
|
['<CR>'] = cmp.mapping.confirm({ select = true }),
|
||||||
|
}),
|
||||||
|
|
||||||
|
formatting = {
|
||||||
|
format = lspkind.cmp_format({
|
||||||
|
mode = 'symbol',
|
||||||
|
maxwidth = 50,
|
||||||
|
ellipsis_char = '...',
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'nvim_lsp' },
|
||||||
|
{ name = 'vsnip' },
|
||||||
|
{ name = 'nvim_lsp_signature_help' },
|
||||||
|
{ name = 'calc' },
|
||||||
|
}, {
|
||||||
|
{ name = 'buffer', keyword_length = 2 },
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
cmp.setup.cmdline({ '/', '?' }, {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'nvim_lsp_document_symbol' }
|
||||||
|
}, {
|
||||||
|
{ name = 'buffer' }
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
cmp.setup.cmdline(':', {
|
||||||
|
mapping = cmp.mapping.preset.cmdline(),
|
||||||
|
sources = cmp.config.sources({
|
||||||
|
{ name = 'path' }
|
||||||
|
}, {
|
||||||
|
{ name = 'cmdline', keyword_length = 2 }
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
local capabilities = require('cmp_nvim_lsp').default_capabilities()
|
||||||
|
vim.cmd('let g:vsnip_filetypes = {}')
|
||||||
|
|
||||||
|
|
||||||
|
--nvim-treesitter
|
||||||
|
require'nvim-treesitter.configs'.setup {
|
||||||
|
highlight = {
|
||||||
|
enable = true,
|
||||||
|
disable = {'help', 'markdown', 'toml'},
|
||||||
|
},
|
||||||
|
refactor = {
|
||||||
|
highlight_defintions = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
yati = {
|
||||||
|
enable = true,
|
||||||
|
},
|
||||||
|
matchup = {
|
||||||
|
enable = true,
|
||||||
|
enable_quotes = true,
|
||||||
|
},
|
||||||
|
ensure_installed = 'all'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
--dressing
|
||||||
|
require('dressing').setup({
|
||||||
|
input = {
|
||||||
|
border = 'single',
|
||||||
|
},
|
||||||
|
builtin = {
|
||||||
|
border = 'single',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
--indent_blankline
|
||||||
|
require('indent_blankline').setup {
|
||||||
|
show_end_of_line = true,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
--modes
|
||||||
|
require('modes').setup({
|
||||||
|
colors = {
|
||||||
|
copy = '#FFEE55',
|
||||||
|
delete = '#DC669B',
|
||||||
|
insert = '#55AAEE',
|
||||||
|
visual = '#DD5522',
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
--nvim-hlslens
|
||||||
|
require('hlslens').setup()
|
||||||
|
local kopts = {noremap = true, silent = true}
|
||||||
|
|
||||||
|
vim.keymap.set('n', 'n',
|
||||||
|
[[<Cmd>execute('normal! ' . v:count1 . 'n')<CR><Cmd>lua require('hlslens').start()<CR>]],
|
||||||
|
kopts)
|
||||||
|
vim.keymap.set('n', 'N',
|
||||||
|
[[<Cmd>execute('normal! ' . v:count1 . 'N')<CR><Cmd>lua require('hlslens').start()<CR>]],
|
||||||
|
kopts)
|
||||||
|
vim.keymap.set('n', '*', [[*<cmd>lua require('hlslens').start()<CR>]], kopts)
|
||||||
|
vim.keymap.set('n', '#', [[#<cmd>lua require('hlslens').start()<CR>]], kopts)
|
||||||
|
vim.keymap.set('n', 'g*', [[g*<cmd>lua require('hlslens').start()<CR>]], kopts)
|
||||||
|
vim.keymap.set('n', 'g#', [[g#<cmd>lua require('hlslens').start()<CR>]], kopts)
|
||||||
|
vim.keymap.set('n', '<ESC>', ':nohl<CR><ESC>', kopts)
|
||||||
|
|
||||||
|
|
||||||
|
--fuzzy-motion
|
||||||
|
vim.keymap.set('n', 'S', '<cmd>FuzzyMotion<CR>')
|
||||||
|
vim.cmd("let g:fuzzy_motion_matchers = ['kensaku', 'fzf']")
|
||||||
|
|
||||||
|
|
||||||
|
--kensaku-search
|
||||||
|
vim.keymap.set('c', '<CR>', '<Plug>(kensaku-search-replace)<CR>')
|
||||||
|
|
||||||
|
|
||||||
|
--clever-f
|
||||||
|
vim.cmd('let g:clever_f_across_no_line = 1')
|
||||||
|
vim.cmd('let g:clever_f_ignore_case = 1')
|
||||||
|
vim.cmd('let g:clever_f_smart_case = 1')
|
||||||
|
vim.cmd("let g:clever_f_chars_match_any_signs = ';'")
|
||||||
|
vim.cmd('let g:clever_f_use_migemo = 1')
|
||||||
|
|
||||||
|
|
||||||
|
--mini.surround
|
||||||
|
require('mini.surround').setup({
|
||||||
|
mappings = {
|
||||||
|
highlight = 'sx',
|
||||||
|
},
|
||||||
|
custom_surroundings = {
|
||||||
|
['{'] = {
|
||||||
|
input = { '%b{}', '^.().*().$' },
|
||||||
|
output = { left = '{', right = '}' },
|
||||||
|
},
|
||||||
|
['}'] = {
|
||||||
|
input = { '%b{}', '^.%{().*()%}.$' },
|
||||||
|
output = { left = '{{', right = '}}' },
|
||||||
|
},
|
||||||
|
['('] = {
|
||||||
|
input = { '%b()', '^.().*().$' },
|
||||||
|
output = { left = '(', right = ')' },
|
||||||
|
},
|
||||||
|
[')'] = {
|
||||||
|
input = { '%b()', '^.%(().*()%).$' },
|
||||||
|
output = { left = '((', right = '))' },
|
||||||
|
},
|
||||||
|
['['] = {
|
||||||
|
input = { '%b[]', '^.().*().$' },
|
||||||
|
output = { left = '[', right = ']' },
|
||||||
|
},
|
||||||
|
[']'] = {
|
||||||
|
input = { '%b[]', '^.%[().*()%].$' },
|
||||||
|
output = { left = '[[', right = ']]' },
|
||||||
|
},
|
||||||
|
['<'] = {
|
||||||
|
input = { '%b<>', '^.().*().$' },
|
||||||
|
output = { left = '<', right = '>' },
|
||||||
|
},
|
||||||
|
['>'] = {
|
||||||
|
input = { '%b[]', '^.<().*()>.$' },
|
||||||
|
output = { left = '<<', right = '>>' },
|
||||||
|
},
|
||||||
|
['j'] = {
|
||||||
|
input = function()
|
||||||
|
local ok, val = pcall(vim.fn.getchar)
|
||||||
|
if not ok then return end
|
||||||
|
local char = vim.fn.nr2char(val)
|
||||||
|
|
||||||
|
local dict = {
|
||||||
|
['('] = { '(().-())' },
|
||||||
|
['{'] = { '{().-()}' },
|
||||||
|
['['] = { '「().-()」' },
|
||||||
|
[']'] = { '『().-()』' },
|
||||||
|
['<'] = { '<().-()>' },
|
||||||
|
['"'] = { '”().-()”' },
|
||||||
|
}
|
||||||
|
|
||||||
|
if char == 'b' then
|
||||||
|
local ret = {}
|
||||||
|
for _, v in pairs(dict) do table.insert(ret, v) end
|
||||||
|
return { ret }
|
||||||
|
end
|
||||||
|
|
||||||
|
if dict[char] then return dict[char] end
|
||||||
|
|
||||||
|
error('%s is unsupported surroundings in Japanese')
|
||||||
|
end,
|
||||||
|
output = function()
|
||||||
|
local ok, val = pcall(vim.fn.getchar)
|
||||||
|
if not ok then return end
|
||||||
|
local char = vim.fn.nr2char(val)
|
||||||
|
|
||||||
|
local dict = {
|
||||||
|
['('] = { left = '(', right = ')' },
|
||||||
|
['{'] = { left = '{', right = '}' },
|
||||||
|
['['] = { left = '「', right = '」' },
|
||||||
|
[']'] = { left = '『', right = '』' },
|
||||||
|
['<'] = { left = '<', right = '>' },
|
||||||
|
['"'] = { left = '”', right = '”' },
|
||||||
|
}
|
||||||
|
|
||||||
|
if not dict[char] then error('%s is unsupported surroundings in Japanese') end
|
||||||
|
|
||||||
|
return dict[char]
|
||||||
|
end
|
||||||
|
}
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
--mini.ai
|
||||||
|
require('mini.ai').setup({
|
||||||
|
custom_textobjects = {
|
||||||
|
['{'] = { '%b{}', '^.().*().$' },
|
||||||
|
['}'] = { '%b{}', '^.%{().*()%}.$' },
|
||||||
|
['('] = { '%b()', '^.().*().$' },
|
||||||
|
[')'] = { '%b()', '^.%(().*()%).$' },
|
||||||
|
['['] = { '%b[]', '^.().*().$' },
|
||||||
|
[']'] = { '%b[]', '^.%[().*()%].$' },
|
||||||
|
[''] = { '%b<', '^.().*().$' },
|
||||||
|
['>'] = { '%b', '^.().*().$' },
|
||||||
|
['j'] = function()
|
||||||
|
local ok, val = pcall(vim.fn.getchar)
|
||||||
|
if not ok then return end
|
||||||
|
local char = vim.fn.nr2char(val)
|
||||||
|
|
||||||
|
local dict = {
|
||||||
|
['('] = { '(().-())' },
|
||||||
|
['{'] = { '{().-()}' },
|
||||||
|
['['] = { '「().-()」' },
|
||||||
|
[']'] = { '『().-()』' },
|
||||||
|
['<'] = { '<().-()>' },
|
||||||
|
['"'] = { '”().-()”' },
|
||||||
|
}
|
||||||
|
|
||||||
|
if char == 'b' then
|
||||||
|
local ret = {}
|
||||||
|
for _, v in pairs(dict) do table.insert(ret, v) end
|
||||||
|
return { ret }
|
||||||
|
end
|
||||||
|
|
||||||
|
if dict[char] then return dict[char] end
|
||||||
|
|
||||||
|
error('%s is unsupported textobjects in Japanese')
|
||||||
|
end
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
--rainbow
|
||||||
|
vim.cmd('let g:rainbow_active = 1')
|
||||||
|
vim.cmd("let g:indent_guides_exclude_filetypes = ['help']")
|
||||||
|
|
||||||
|
|
||||||
|
--dial
|
||||||
|
vim.keymap.set('n', '<C-a>', require('dial.map').inc_normal(), {noremap = true})
|
||||||
|
vim.keymap.set('n', '<C-x>', require('dial.map').dec_normal(), {noremap = true})
|
||||||
|
vim.keymap.set('v', '<C-a>', require('dial.map').inc_visual(), {noremap = true})
|
||||||
|
vim.keymap.set('v', '<C-x>', require('dial.map').dec_visual(), {noremap = true})
|
||||||
|
vim.keymap.set('v', 'g<C-a>', require('dial.map').inc_gvisual(), {noremap = true})
|
||||||
|
vim.keymap.set('v', 'g<C-x>', require('dial.map').dec_gvisual(), {noremap = true})
|
||||||
|
|
||||||
|
|
||||||
|
--gin
|
||||||
|
vim.keymap.set('n', '<leader>gs', ':<C-u>GitStatus<CR>', {silent = true})
|
||||||
|
vim.keymap.set('n', '<leader>ga', ':<C-u>Gin add .<CR>', {silent = true})
|
||||||
|
vim.keymap.set('n', '<leader>gc', ":<C-u>Gin commit -m ''<Left>")
|
||||||
|
vim.keymap.set('n', '<leader>gp', ':<C-u>Gin push<CR>')
|
||||||
|
|
||||||
|
|
||||||
|
--OTHER SETTINGS
|
||||||
|
vim.cmd('colorscheme edge')
|
49
laptop/.Xresources
Normal file
49
laptop/.Xresources
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
!! Import colorscheme
|
||||||
|
#define S_foreground #cacacc
|
||||||
|
#define S_background #1C1E27
|
||||||
|
#define S_black #3C3E47
|
||||||
|
#define S_red #E4436F
|
||||||
|
#define S_green #24e39d
|
||||||
|
#define S_yellow #EDA685
|
||||||
|
#define S_blue #2095B4
|
||||||
|
#define S_magenta #B367CF
|
||||||
|
#define S_cyan #00A5AF
|
||||||
|
#define S_lightgrey #b5b5ba
|
||||||
|
#define S_darkgrey #6C6F93
|
||||||
|
#define S_darkred #D95882
|
||||||
|
#define S_darkgreen #68DDC4
|
||||||
|
#define S_darkyellow #E8AEAA
|
||||||
|
#define S_darkblue #64A4BF
|
||||||
|
#define S_darkmagenta #B382CF
|
||||||
|
#define S_darkcyan #54AEB8
|
||||||
|
#define S_white #cacacc
|
||||||
|
|
||||||
|
!! Set colors
|
||||||
|
*background: S_background
|
||||||
|
*foreground: S_foreground
|
||||||
|
*color0: S_black
|
||||||
|
*color8: S_darkgrey
|
||||||
|
*color1: S_darkred
|
||||||
|
*color9: S_red
|
||||||
|
*color2: S_darkgreen
|
||||||
|
*color10: S_green
|
||||||
|
*color3: S_darkyellow
|
||||||
|
*color11: S_yellow
|
||||||
|
*color4: S_darkblue
|
||||||
|
*color12: S_blue
|
||||||
|
*color5: S_darkmagenta
|
||||||
|
*color13: S_magenta
|
||||||
|
*color6: S_darkcyan
|
||||||
|
*color14: S_cyan
|
||||||
|
*color7: S_lightgrey
|
||||||
|
*color15: S_white
|
||||||
|
|
||||||
|
!! Set DPI
|
||||||
|
Xft.dpi: 160
|
||||||
|
Xft.auohint: 0
|
||||||
|
Xft.lcdfilter: lcddefault
|
||||||
|
Xft.hintstyle: hintfull
|
||||||
|
Xft.antialias: 1
|
||||||
|
Xft.rgba: rgb
|
||||||
|
|
||||||
|
Xcursor.size: 16
|
80
laptop/.alacritty.yml
Normal file
80
laptop/.alacritty.yml
Normal file
|
@ -0,0 +1,80 @@
|
||||||
|
# シェル
|
||||||
|
shell:
|
||||||
|
program: /usr/bin/zsh
|
||||||
|
args:
|
||||||
|
- --login
|
||||||
|
|
||||||
|
# カーソル
|
||||||
|
cursor:
|
||||||
|
style:
|
||||||
|
shape: Underline
|
||||||
|
blinking: Always
|
||||||
|
unfocused_hollow: false
|
||||||
|
blink_interval: 470
|
||||||
|
|
||||||
|
# タブスペース
|
||||||
|
tabspaces: 4
|
||||||
|
|
||||||
|
# ウインドウ
|
||||||
|
window:
|
||||||
|
opacity: 0.95
|
||||||
|
padding:
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
dynamic_padding: false
|
||||||
|
|
||||||
|
# フォント
|
||||||
|
font:
|
||||||
|
size: 20
|
||||||
|
normal:
|
||||||
|
family: 'UDEV Gothic 35NFLG'
|
||||||
|
style: Regular
|
||||||
|
bold:
|
||||||
|
family: 'UDEV Gothic 35NFLG'
|
||||||
|
style: Bold
|
||||||
|
italic:
|
||||||
|
family: 'UDEV Gothic 35NFLG'
|
||||||
|
style: Italic
|
||||||
|
bold_italic:
|
||||||
|
family: 'UDEV Gothic 35NFLG'
|
||||||
|
style: Bold Italic
|
||||||
|
|
||||||
|
# 環境変数
|
||||||
|
env:
|
||||||
|
WINIT_X11_SCALE_FACTOR: '1.0'
|
||||||
|
TERM: alacritty
|
||||||
|
|
||||||
|
# Colors (Horizon Dark)
|
||||||
|
colors:
|
||||||
|
# Primary colors
|
||||||
|
primary:
|
||||||
|
background: '0x1c1e26'
|
||||||
|
foreground: '0xe0e0e0'
|
||||||
|
|
||||||
|
# Cursor
|
||||||
|
cursor:
|
||||||
|
cursor: '0x00ff00'
|
||||||
|
vi_mode_cursor:
|
||||||
|
cursor: '0x00ff00'
|
||||||
|
|
||||||
|
# Normal colors
|
||||||
|
normal:
|
||||||
|
black: '0x16161c'
|
||||||
|
red: '0xe95678'
|
||||||
|
green: '0x29d398'
|
||||||
|
yellow: '0xfab795'
|
||||||
|
blue: '0x26bbd9'
|
||||||
|
magenta: '0xee64ac'
|
||||||
|
cyan: '0x59e1e3'
|
||||||
|
white: '0xd5d8da'
|
||||||
|
|
||||||
|
# Bright colors
|
||||||
|
bright:
|
||||||
|
black: '0x5b5858'
|
||||||
|
red: '0xec6a88'
|
||||||
|
green: '0x3fdaa4'
|
||||||
|
yellow: '0xfbc3a7'
|
||||||
|
blue: '0x3fc4de'
|
||||||
|
magenta: '0xf075b5'
|
||||||
|
cyan: '0x6be4e6'
|
||||||
|
white: '0xd5d8da'
|
8
laptop/.xintrc
Normal file
8
laptop/.xintrc
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
export LANG="ja_JP.UTF-8"
|
||||||
|
export XMODIFIERS="@im=fcitx"
|
||||||
|
export XMODIFIER="@im=fcitx"
|
||||||
|
export GTK_IM_MODULE=fcitx
|
||||||
|
export QT_IM_MODULE=fcitx
|
||||||
|
export DefaultIMModule=fcitx
|
||||||
|
exec i3
|
||||||
|
xrdb -merge ~/.Xresources
|
6
laptop/10-capslock.conf
Normal file
6
laptop/10-capslock.conf
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
Section "InputClass"
|
||||||
|
Identifier "keyboard Setting"
|
||||||
|
MatchIsKeyboard "yes"
|
||||||
|
Option "XkbOptions" "ctrl:nocaps"
|
||||||
|
Option "XkbOptions" "ctrl:swapcaps"
|
||||||
|
EndSection
|
9
laptop/90-touchpad.conf
Normal file
9
laptop/90-touchpad.conf
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
Section "InputClass"
|
||||||
|
Identifier "touchpad"
|
||||||
|
MatchIsTouchpad "on"
|
||||||
|
Driver "libinput"
|
||||||
|
Option "Tapping" "on"
|
||||||
|
Option "ScrollMethod" "twofinger"
|
||||||
|
Option "AccelProfile" "adaptive"
|
||||||
|
EndSection
|
||||||
|
|
165
laptop/colors-rofi.rasi
Normal file
165
laptop/colors-rofi.rasi
Normal file
|
@ -0,0 +1,165 @@
|
||||||
|
* {
|
||||||
|
active-background: #68DDC4;
|
||||||
|
active-foreground: @foreground;
|
||||||
|
normal-background: @background;
|
||||||
|
normal-foreground: @foreground;
|
||||||
|
urgent-background: #D95882;
|
||||||
|
urgent-foreground: @foreground;
|
||||||
|
|
||||||
|
alternate-active-background: @background;
|
||||||
|
alternate-active-foreground: @foreground;
|
||||||
|
alternate-normal-background: @background;
|
||||||
|
alternate-normal-foreground: @foreground;
|
||||||
|
alternate-urgent-background: @background;
|
||||||
|
alternate-urgent-foreground: @foreground;
|
||||||
|
|
||||||
|
selected-active-background: #D95882;
|
||||||
|
selected-active-foreground: @foreground;
|
||||||
|
selected-normal-background: #f08080;
|
||||||
|
selected-normal-foreground: @background;
|
||||||
|
selected-urgent-background: #D95882;
|
||||||
|
selected-urgent-foreground: @foreground;
|
||||||
|
|
||||||
|
background-color: @background;
|
||||||
|
background: #1C1E27;
|
||||||
|
foreground: #cacacc;
|
||||||
|
border-color: #E8AEAA;
|
||||||
|
spacing: 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#window {
|
||||||
|
background-color: @background;
|
||||||
|
border: 2px;
|
||||||
|
padding: 2ch;
|
||||||
|
width: 500px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mainbox {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#message {
|
||||||
|
border: 2px 0px 0px;
|
||||||
|
border-color: @border-color;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#textbox {
|
||||||
|
text-color: @foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#inputbar {
|
||||||
|
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
|
||||||
|
}
|
||||||
|
|
||||||
|
#textbox-prompt-colon {
|
||||||
|
expand: false;
|
||||||
|
str: "";
|
||||||
|
margin: 0px 0.3em 0em 0em;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#listview {
|
||||||
|
fixed-height: 0;
|
||||||
|
border: 2px 0px 0px;
|
||||||
|
border-color: @border-color;
|
||||||
|
spacing: 0px;
|
||||||
|
scrollbar: false;
|
||||||
|
padding: 6px 0px 0px;
|
||||||
|
lines: 4;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element {
|
||||||
|
border: 0;
|
||||||
|
padding: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.normal.normal {
|
||||||
|
background-color: @normal-background;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.normal.urgent {
|
||||||
|
background-color: @urgent-background;
|
||||||
|
text-color: @urgent-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.normal.active {
|
||||||
|
background-color: @active-background;
|
||||||
|
text-color: @active-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.selected.normal {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.selected.urgent {
|
||||||
|
background-color: @selected-urgent-background;
|
||||||
|
text-color: @selected-urgent-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.selected.active {
|
||||||
|
background-color: @selected-active-background;
|
||||||
|
text-color: @selected-active-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.alternate.normal {
|
||||||
|
background-color: @alternate-normal-background;
|
||||||
|
text-color: @alternate-normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.alternate.urgent {
|
||||||
|
background-color: @alternate-urgent-background;
|
||||||
|
text-color: @alternate-urgent-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#element.alternate.active {
|
||||||
|
background-color: @alternate-active-background;
|
||||||
|
text-color: @alternate-active-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#scrollbar {
|
||||||
|
width: 4px;
|
||||||
|
border: 0;
|
||||||
|
handle-width: 8px;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sidebar {
|
||||||
|
border: 2px 0px 0px;
|
||||||
|
border-color: @border-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
#button {
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#button.selected {
|
||||||
|
background-color: @selected-normal-background;
|
||||||
|
text-color: @selected-normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#inputbar {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#case-indicator {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#entry {
|
||||||
|
spacing: 0;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
||||||
|
#prompt {
|
||||||
|
spacing: 1;
|
||||||
|
margin: 0px 0px 4px 0em;
|
||||||
|
text-color: @normal-foreground;
|
||||||
|
}
|
||||||
|
|
264
laptop/config
Normal file
264
laptop/config
Normal file
|
@ -0,0 +1,264 @@
|
||||||
|
# 神は言った――「光あれ」
|
||||||
|
set $mod Mod4
|
||||||
|
|
||||||
|
# ウインドウタイトルのフォント
|
||||||
|
font pango:Noto Sans CJK JP 8
|
||||||
|
|
||||||
|
# フローティングウインドウの操作キー
|
||||||
|
floating_modifier $mod
|
||||||
|
|
||||||
|
# ターミナル
|
||||||
|
bindsym $mod+Return exec --no-startup-id alacritty
|
||||||
|
|
||||||
|
# ファイラー
|
||||||
|
bindsym $mod+m exec --no-startup-id thunar
|
||||||
|
|
||||||
|
# タスクキル
|
||||||
|
bindsym $mod+q kill
|
||||||
|
|
||||||
|
# ランチャー
|
||||||
|
bindsym $mod+z exec --no-startup-id "rofi -show drun"
|
||||||
|
bindsym $mod+x exec --no-startup-id "rofi -show run"
|
||||||
|
|
||||||
|
# ウインドウフォーカス
|
||||||
|
bindsym $mod+h focus left
|
||||||
|
bindsym $mod+j focus down
|
||||||
|
bindsym $mod+k focus up
|
||||||
|
bindsym $mod+l focus right
|
||||||
|
|
||||||
|
# 代替ウインドウフォーカス
|
||||||
|
bindsym $mod+Left focus left
|
||||||
|
bindsym $mod+Down focus down
|
||||||
|
bindsym $mod+Up focus up
|
||||||
|
bindsym $mod+Right focus right
|
||||||
|
|
||||||
|
# ウインドウ交換
|
||||||
|
bindsym $mod+Shift+h move left
|
||||||
|
bindsym $mod+Shift+j move down
|
||||||
|
bindsym $mod+Shift+k move up
|
||||||
|
bindsym $mod+Shift+l move right
|
||||||
|
|
||||||
|
# 代替ウインドウ交換
|
||||||
|
bindsym $mod+Shift+Left move left
|
||||||
|
bindsym $mod+Shift+Down move down
|
||||||
|
bindsym $mod+Shift+Up move up
|
||||||
|
bindsym $mod+Shift+Right move right
|
||||||
|
|
||||||
|
# 水平ウインドウ分割
|
||||||
|
bindsym $mod+s split v
|
||||||
|
|
||||||
|
# 垂直ウインドウ分割
|
||||||
|
bindsym $mod+v split h
|
||||||
|
|
||||||
|
# フルスクリーン
|
||||||
|
bindsym $mod+f fullscreen toggle
|
||||||
|
|
||||||
|
# ウインドウの分割切り替え
|
||||||
|
bindsym $mod+e layout toggle split
|
||||||
|
|
||||||
|
# ウインドウフロート
|
||||||
|
bindsym $mod+w floating toggle
|
||||||
|
|
||||||
|
# フロートウインドウフォーカス
|
||||||
|
bindsym $mod+space focus mode_toggle
|
||||||
|
|
||||||
|
# 親コンテナへのフォーカス
|
||||||
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
|
# 子コンテナへのフォーカス
|
||||||
|
bindsym $mod+b focus child
|
||||||
|
|
||||||
|
# ワークスペース変数
|
||||||
|
set $ws1 "1"
|
||||||
|
set $ws2 "2"
|
||||||
|
set $ws3 "3"
|
||||||
|
set $ws4 "4"
|
||||||
|
set $ws5 "5"
|
||||||
|
set $ws6 "6"
|
||||||
|
set $ws7 "7"
|
||||||
|
set $ws8 "8"
|
||||||
|
set $ws9 "9"
|
||||||
|
set $ws10 "10"
|
||||||
|
|
||||||
|
# ワークスペースの移動
|
||||||
|
bindsym $mod+1 workspace $ws1
|
||||||
|
bindsym $mod+2 workspace $ws2
|
||||||
|
bindsym $mod+3 workspace $ws3
|
||||||
|
bindsym $mod+4 workspace $ws4
|
||||||
|
bindsym $mod+5 workspace $ws5
|
||||||
|
bindsym $mod+6 workspace $ws6
|
||||||
|
bindsym $mod+7 workspace $ws7
|
||||||
|
bindsym $mod+8 workspace $ws8
|
||||||
|
bindsym $mod+9 workspace $ws9
|
||||||
|
bindsym $mod+0 workspace $ws10
|
||||||
|
|
||||||
|
# ウインドウを他のワークスペースに移動する
|
||||||
|
bindsym $mod+Shift+1 move container to workspace $ws1
|
||||||
|
bindsym $mod+Shift+2 move container to workspace $ws2
|
||||||
|
bindsym $mod+Shift+3 move container to workspace $ws3
|
||||||
|
bindsym $mod+Shift+4 move container to workspace $ws4
|
||||||
|
bindsym $mod+Shift+5 move container to workspace $ws5
|
||||||
|
bindsym $mod+Shift+6 move container to workspace $ws6
|
||||||
|
bindsym $mod+Shift+7 move container to workspace $ws7
|
||||||
|
bindsym $mod+Shift+8 move container to workspace $ws8
|
||||||
|
bindsym $mod+Shift+9 move container to workspace $ws9
|
||||||
|
bindsym $mod+Shift+0 move container to workspace $ws10
|
||||||
|
|
||||||
|
# 設定の再読込み
|
||||||
|
bindsym $mod+Shift+c reload
|
||||||
|
|
||||||
|
# 再起動
|
||||||
|
bindsym $mod+Shift+r restart
|
||||||
|
|
||||||
|
# ウインドウリサイズ
|
||||||
|
mode "RESIZE" {
|
||||||
|
# リサイズキー
|
||||||
|
bindsym h resize shrink width 10 px or 5 ppt
|
||||||
|
bindsym j resize grow height 10 px or 5 ppt
|
||||||
|
bindsym k resize shrink height 10 px or 5 ppt
|
||||||
|
bindsym l resize grow width 10 px or 5 ppt
|
||||||
|
|
||||||
|
# 代替リサイズキー
|
||||||
|
bindsym Left resize shrink width 10 px or 5 ppt
|
||||||
|
bindsym Down resize grow height 10 px or 5 ppt
|
||||||
|
bindsym Up resize shrink height 10 px or 5 ppt
|
||||||
|
bindsym Right resize grow width 10 px or 5 ppt
|
||||||
|
|
||||||
|
# ノーマルモードへ遷移
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+r mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
bindsym $mod+r mode "RESIZE"
|
||||||
|
|
||||||
|
# コマンドモード――これによりキーバインドは実質無制限となる!
|
||||||
|
bindsym $mod+c mode "CMD"
|
||||||
|
mode "CMD"{
|
||||||
|
bindsym v exec vivaldi-stable; mode "default"
|
||||||
|
bindsym f exec "flameshot gui" mode "default"
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+c mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
# シャットダウンシークエンス
|
||||||
|
bindsym $mod+Shift+e mode "SHUTDOWN SEQUENCE"
|
||||||
|
mode "SHUTDOWN SEQUENCE"{
|
||||||
|
bindsym p exec "systemctl poweroff"
|
||||||
|
bindsym r exec "systemctl reboot"
|
||||||
|
bindsym Return mode "default"
|
||||||
|
bindsym Escape mode "default"
|
||||||
|
bindsym $mod+Shift+e mode "default"
|
||||||
|
}
|
||||||
|
|
||||||
|
# ステータスバーの色
|
||||||
|
set $background #2B303B
|
||||||
|
set $foreground #C0C5CE
|
||||||
|
set $lightred #BF616A
|
||||||
|
set $lightgreen #A3BE8C
|
||||||
|
set $lightyellow #EBCB8B
|
||||||
|
set $lightblue #8FA1B3
|
||||||
|
set $lightmagenta #B48EAD
|
||||||
|
set $lightcyan #96B5B4
|
||||||
|
set $lightwhite #C0C5CE
|
||||||
|
set $pink #FFB6C1
|
||||||
|
set $orange #F08080
|
||||||
|
|
||||||
|
# ステータスバー関連
|
||||||
|
bar {
|
||||||
|
font pango:UDEV Gothic 35 11
|
||||||
|
mode dock
|
||||||
|
position top
|
||||||
|
workspace_buttons yes
|
||||||
|
strip_workspace_numbers yes
|
||||||
|
binding_mode_indicator yes
|
||||||
|
tray_padding 2
|
||||||
|
colors {
|
||||||
|
background $background
|
||||||
|
focused_background $background
|
||||||
|
statusline $lightred
|
||||||
|
focused_statusline $lightred
|
||||||
|
# 左からborder, bg, fg
|
||||||
|
focused_workspace $orange $orange $background
|
||||||
|
active_workspace $background $background $foreground
|
||||||
|
inactive_workspace $background $background $foreground
|
||||||
|
urgent_workspace $green $green $background
|
||||||
|
binding_mode $green $green $background
|
||||||
|
}
|
||||||
|
status_command /usr/bin/bumblebee-status -m playerctl pasink pasource datetime battery \
|
||||||
|
-p playerctl.hide="true" playerctl.format="{{artist}} - {{title}}" playerctl.layout="playerctl.song" datetime.format="%m/%d %H:%M" -t monotone
|
||||||
|
}
|
||||||
|
|
||||||
|
# i3wm全体の色
|
||||||
|
set $bg #1C1E27
|
||||||
|
set $fg #cacacc
|
||||||
|
set $darkred #D95882
|
||||||
|
set $red #E4436F
|
||||||
|
set $darkgreen #68DDC4
|
||||||
|
set $green #24e39d
|
||||||
|
set $darkyellow #E8AEAA
|
||||||
|
set $yellow #EDA685
|
||||||
|
set $darkblue #64A4BF
|
||||||
|
set $blue #2095B4
|
||||||
|
set $darkmagenta #B382CF
|
||||||
|
set $darkcyan #54AEB8
|
||||||
|
set $cyan #00A5AF
|
||||||
|
set $darkwhite #cacacc
|
||||||
|
set $white #cacaca
|
||||||
|
set $darkgrey #6C6F93
|
||||||
|
|
||||||
|
# フォーカスカラー
|
||||||
|
# class border background text indicator child_border
|
||||||
|
client.focused $bg $darkgrey $fg $yellow $darkyellow
|
||||||
|
client.unfocused $bg $bg $fg $yellow $bg
|
||||||
|
|
||||||
|
# ウインドウ枠の太さ
|
||||||
|
for_window [class="^.*"] border pixel 2
|
||||||
|
|
||||||
|
# gaps
|
||||||
|
gaps top 5
|
||||||
|
gaps bottom 5
|
||||||
|
gaps right 5
|
||||||
|
gaps left 5
|
||||||
|
gaps inner 5
|
||||||
|
|
||||||
|
# マウスでフォーカスしない
|
||||||
|
focus_follows_mouse no
|
||||||
|
|
||||||
|
# 音量調整
|
||||||
|
bindsym XF86AudioRaiseVolume exec pactl set-sink-volume @DEFAULT_SINK@ +5%
|
||||||
|
bindsym XF86AudioLowerVolume exec pactl set-sink-volume @DEFAULT_SINK@ -5%
|
||||||
|
bindsym XF86AudioMute exec pactl set-sink-mute alsa_output.pci-0000_00_1f.3.analog-stereo toggle
|
||||||
|
bindsym XF86AudioMicMute exec pactl set-source-mute alsa_input.pci-0000_00_1f.3.analog-stereo toggle
|
||||||
|
|
||||||
|
# 輝度調整
|
||||||
|
bindsym XF86MonBrightnessUp exec light -A 10
|
||||||
|
bindsym XF86MonBrightnessDown exec light -U 10
|
||||||
|
|
||||||
|
# 自動起動
|
||||||
|
exec --no-startup-id dunst
|
||||||
|
exec --no-startup-id "picom -b --experimental-backends"
|
||||||
|
exec --no-startup-id xfce4-power-manager
|
||||||
|
exec --no-startup-id fcitx5
|
||||||
|
exec --no-startup-id light-locker --lock-on-suspend
|
||||||
|
exec --no-startup-id "feh --no-fehbg --bg-scale ~/Wallpaper.png"
|
||||||
|
exec --no-startup-id "xset r rate 200 30"
|
||||||
|
exec --no-startup-id "libinput-gestures-setup start"
|
||||||
|
|
||||||
|
# フローティング起動一覧
|
||||||
|
for_window [class="Bitwarden"] floating enable
|
||||||
|
for_window [class="Thunar"] floating enable
|
||||||
|
for_window [class="Lxappearance"] floating enable, resize set 800 600
|
||||||
|
for_window [class="Pavucontrol"] floating enable, resize set 800 600
|
||||||
|
for_window [class="feh"] floating enable, resize set 1280 1024
|
||||||
|
for_window [class="fcitx5-config-qt"] floating enable
|
||||||
|
for_window [class="mozc_tool"] floating enable, resize set 600 400
|
||||||
|
for_window [class="Blueman-manager"] floating enable, resize set 800 600
|
||||||
|
for_window [class="L3afpad"] floating enable, resize set 800 600
|
||||||
|
for_window [class="qt5ct"] floating enable, resize set 800 600
|
||||||
|
for_window [class="Qtconfig-qt4"] floating enable, resize set 800 600
|
||||||
|
|
||||||
|
# ワークスペース指定一覧
|
||||||
|
assign [class="discord"] workspace 3
|
||||||
|
assign [class="Slack"] workspace 4
|
5
laptop/config.rasi
Normal file
5
laptop/config.rasi
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
configuration {
|
||||||
|
font: "Noto Sans CJK JP 19";
|
||||||
|
drun-display-format: "{name}";
|
||||||
|
}
|
||||||
|
@import "colors-rofi.rasi"
|
245
laptop/dunstrc
Normal file
245
laptop/dunstrc
Normal file
|
@ -0,0 +1,245 @@
|
||||||
|
[global]
|
||||||
|
font = Noto Sans CJK JP 11
|
||||||
|
|
||||||
|
# Allow a small subset of html markup:
|
||||||
|
# <b>bold</b>
|
||||||
|
# <i>italic</i>
|
||||||
|
# <s>strikethrough</s>
|
||||||
|
# <u>underline</u>
|
||||||
|
#
|
||||||
|
# For a complete reference see
|
||||||
|
# <http://developer.gnome.org/pango/stable/PangoMarkupFormat.html>.
|
||||||
|
# If markup is not allowed, those tags will be stripped out of the
|
||||||
|
# message.
|
||||||
|
markup = yes
|
||||||
|
plain_text = no
|
||||||
|
|
||||||
|
# The format of the message. Possible variables are:
|
||||||
|
# %a appname
|
||||||
|
# %s summary
|
||||||
|
# %b body
|
||||||
|
# %i iconname (including its path)
|
||||||
|
# %I iconname (without its path)
|
||||||
|
# %p progress value if set ([ 0%] to [100%]) or nothing
|
||||||
|
# Markup is allowed
|
||||||
|
format = "<b>%s</b>\n%b"
|
||||||
|
|
||||||
|
# Sort messages by urgency.
|
||||||
|
sort = no
|
||||||
|
|
||||||
|
# Show how many messages are currently hidden (because of geometry).
|
||||||
|
indicate_hidden = yes
|
||||||
|
|
||||||
|
# Alignment of message text.
|
||||||
|
# Possible values are "left", "center" and "right".
|
||||||
|
alignment = left
|
||||||
|
|
||||||
|
# The frequency with wich text that is longer than the notification
|
||||||
|
# window allows bounces back and forth.
|
||||||
|
# This option conflicts with "word_wrap".
|
||||||
|
# Set to 0 to disable.
|
||||||
|
bounce_freq = 0
|
||||||
|
|
||||||
|
# Show age of message if message is older than show_age_threshold
|
||||||
|
# seconds.
|
||||||
|
# Set to -1 to disable.
|
||||||
|
show_age_threshold = -1
|
||||||
|
|
||||||
|
# Split notifications into multiple lines if they don't fit into
|
||||||
|
# geometry.
|
||||||
|
word_wrap = yes
|
||||||
|
|
||||||
|
# Ignore newlines '\n' in notifications.
|
||||||
|
ignore_newline = no
|
||||||
|
|
||||||
|
# Hide duplicate's count and stack them
|
||||||
|
stack_duplicates = yes
|
||||||
|
hide_duplicate_count = yes
|
||||||
|
|
||||||
|
width = 300
|
||||||
|
height = 100
|
||||||
|
offset = 10x35
|
||||||
|
|
||||||
|
# Shrink window if it's smaller than the width. Will be ignored if
|
||||||
|
# width is 0.
|
||||||
|
shrink = no
|
||||||
|
|
||||||
|
# The transparency of the window. Range: [0; 100].
|
||||||
|
# This option will only work if a compositing windowmanager is
|
||||||
|
# present (e.g. xcompmgr, compiz, etc.).
|
||||||
|
transparency = 5
|
||||||
|
|
||||||
|
# Don't remove messages, if the user is idle (no mouse or keyboard input)
|
||||||
|
# for longer than idle_threshold seconds.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
idle_threshold = 0
|
||||||
|
|
||||||
|
# Which monitor should the notifications be displayed on.
|
||||||
|
monitor = 0
|
||||||
|
|
||||||
|
# Display notification on focused monitor. Possible modes are:
|
||||||
|
# mouse: follow mouse pointer
|
||||||
|
# keyboard: follow window with keyboard focus
|
||||||
|
# none: don't follow anything
|
||||||
|
#
|
||||||
|
# "keyboard" needs a windowmanager that exports the
|
||||||
|
# _NET_ACTIVE_WINDOW property.
|
||||||
|
# This should be the case for almost all modern windowmanagers.
|
||||||
|
#
|
||||||
|
# If this option is set to mouse or keyboard, the monitor option
|
||||||
|
# will be ignored.
|
||||||
|
follow = none
|
||||||
|
|
||||||
|
# Should a notification popped up from history be sticky or timeout
|
||||||
|
# as if it would normally do.
|
||||||
|
sticky_history = yes
|
||||||
|
|
||||||
|
# Maximum amount of notifications kept in history
|
||||||
|
history_length = 5
|
||||||
|
|
||||||
|
# Display indicators for URLs (U) and actions (A).
|
||||||
|
show_indicators = no
|
||||||
|
|
||||||
|
# The height of a single line. If the height is smaller than the
|
||||||
|
# font height, it will get raised to the font height.
|
||||||
|
# This adds empty space above and under the text.
|
||||||
|
line_height = 3
|
||||||
|
|
||||||
|
# Draw a line of "separatpr_height" pixel height between two
|
||||||
|
# notifications.
|
||||||
|
# Set to 0 to disable.
|
||||||
|
separator_height = 2
|
||||||
|
|
||||||
|
# Padding between text and separator.
|
||||||
|
padding = 6
|
||||||
|
|
||||||
|
# Horizontal padding.
|
||||||
|
horizontal_padding = 6
|
||||||
|
|
||||||
|
# Define a color for the separator.
|
||||||
|
# possible values are:
|
||||||
|
# * auto: dunst tries to find a color fitting to the background;
|
||||||
|
# * foreground: use the same color as the foreground;
|
||||||
|
# * frame: use the same color as the frame;
|
||||||
|
# * anything else will be interpreted as a X color.
|
||||||
|
separator_color = frame
|
||||||
|
|
||||||
|
# Print a notification on startup.
|
||||||
|
# This is mainly for error detection, since dbus (re-)starts dunst
|
||||||
|
# automatically after a crash.
|
||||||
|
startup_notification = false
|
||||||
|
|
||||||
|
# dmenu path.
|
||||||
|
dmenu = /usr/bin/dmenu -p dunst:
|
||||||
|
|
||||||
|
# Browser for opening urls in context menu.
|
||||||
|
browser = /usr/bin/google-chrome-stable -new-tab
|
||||||
|
|
||||||
|
# Align icons left/right/off
|
||||||
|
icon_position = left
|
||||||
|
max_icon_size = 100
|
||||||
|
|
||||||
|
# Paths to default icons.
|
||||||
|
icon_path = /usr/share/icons/Qogir/symbolic/status
|
||||||
|
|
||||||
|
frame_width = 2
|
||||||
|
frame_color = "#a3be8c"
|
||||||
|
|
||||||
|
[shortcuts]
|
||||||
|
|
||||||
|
# Shortcuts are specified as [modifier+][modifier+]...key
|
||||||
|
# Available modifiers are "ctrl", "mod1" (the alt-key), "mod2",
|
||||||
|
# "mod3" and "mod4" (windows-key).
|
||||||
|
# Xev might be helpful to find names for keys.
|
||||||
|
|
||||||
|
# Close notification.
|
||||||
|
close = ctrl+space
|
||||||
|
|
||||||
|
# Close all notifications.
|
||||||
|
close_all = ctrl+shift+space
|
||||||
|
|
||||||
|
# Redisplay last message(s).
|
||||||
|
# On the US keyboard layout "grave" is normally above TAB and left
|
||||||
|
# of "1".
|
||||||
|
history = ctrl+grave
|
||||||
|
|
||||||
|
# Context menu.
|
||||||
|
context = ctrl+shift+period
|
||||||
|
|
||||||
|
[urgency_low]
|
||||||
|
# IMPORTANT: colors have to be defined in quotation marks.
|
||||||
|
# Otherwise the "#" and following would be interpreted as a comment.
|
||||||
|
frame_color = "#2b303b"
|
||||||
|
foreground = "#c0c5ce"
|
||||||
|
background = "#2b303b"
|
||||||
|
#background = "#2B313C"
|
||||||
|
timeout = 3
|
||||||
|
|
||||||
|
[urgency_normal]
|
||||||
|
frame_color = "#a3be8c"
|
||||||
|
foreground = "#c0c5ce"
|
||||||
|
background = "#2b303b"
|
||||||
|
#background = "#2B313C"
|
||||||
|
timeout = 3
|
||||||
|
|
||||||
|
[urgency_critical]
|
||||||
|
frame_color = "#f08080"
|
||||||
|
foreground = "#c0c5ce"
|
||||||
|
background = "#2b303b"
|
||||||
|
#background = "#2B313C"
|
||||||
|
timeout = 5
|
||||||
|
|
||||||
|
|
||||||
|
# Every section that isn't one of the above is interpreted as a rules to
|
||||||
|
# override settings for certain messages.
|
||||||
|
# Messages can be matched by "appname", "summary", "body", "icon", "category",
|
||||||
|
# "msg_urgency" and you can override the "timeout", "urgency", "foreground",
|
||||||
|
# "background", "new_icon" and "format".
|
||||||
|
# Shell-like globbing will get expanded.
|
||||||
|
#
|
||||||
|
# SCRIPTING
|
||||||
|
# You can specify a script that gets run when the rule matches by
|
||||||
|
# setting the "script" option.
|
||||||
|
# The script will be called as follows:
|
||||||
|
# script appname summary body icon urgency
|
||||||
|
# where urgency can be "LOW", "NORMAL" or "CRITICAL".
|
||||||
|
#
|
||||||
|
# NOTE: if you don't want a notification to be displayed, set the format
|
||||||
|
# to "".
|
||||||
|
# NOTE: It might be helpful to run dunst -print in a terminal in order
|
||||||
|
# to find fitting options for rules.
|
||||||
|
|
||||||
|
#[espeak]
|
||||||
|
# summary = "*"
|
||||||
|
# script = dunst_espeak.sh
|
||||||
|
|
||||||
|
#[script-test]
|
||||||
|
# summary = "*script*"
|
||||||
|
# script = dunst_test.sh
|
||||||
|
|
||||||
|
#[ignore]
|
||||||
|
# # This notification will not be displayed
|
||||||
|
# summary = "foobar"
|
||||||
|
# format = ""
|
||||||
|
|
||||||
|
#[signed_on]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = "*signed on*"
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[signed_off]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *signed off*
|
||||||
|
# urgency = low
|
||||||
|
#
|
||||||
|
#[says]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *says*
|
||||||
|
# urgency = critical
|
||||||
|
#
|
||||||
|
#[twitter]
|
||||||
|
# appname = Pidgin
|
||||||
|
# summary = *twitter.com*
|
||||||
|
# urgency = normal
|
||||||
|
#
|
||||||
|
# vim: ft=cfg
|
12
main.lua
Normal file
12
main.lua
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
local fcitx = require("fcitx")
|
||||||
|
|
||||||
|
fcitx.watchEvent(fcitx.EventType.KeyEvent, "handler")
|
||||||
|
|
||||||
|
function handler(sym, state, release)
|
||||||
|
if ((sym == 65307 and state == 0) or (sym == 91 and state == 4)) and
|
||||||
|
not release
|
||||||
|
then
|
||||||
|
fcitx.setCurrentInputMethod("keyboard-us")
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
67
monotone.json
Normal file
67
monotone.json
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
{
|
||||||
|
"icons": [ "awesome-fonts" ],
|
||||||
|
"colors": [{
|
||||||
|
"red": "#BF616A",
|
||||||
|
"orange": "#F08080",
|
||||||
|
"yellow": "#EBCB8B",
|
||||||
|
"green": "#A3BE8C"
|
||||||
|
}],
|
||||||
|
"defaults": {
|
||||||
|
"separator-block-width": 0,
|
||||||
|
"separator": "",
|
||||||
|
"warning": {
|
||||||
|
"fg": "#2B303B",
|
||||||
|
"bg": "#f08080"
|
||||||
|
},
|
||||||
|
"critical": {
|
||||||
|
"fg": "#2B303B",
|
||||||
|
"bg": "#BF616A"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cycle": [
|
||||||
|
{ "fg": "#C0C5CE", "bg": "#2B303B"}
|
||||||
|
],
|
||||||
|
"dnf": {
|
||||||
|
"good": {
|
||||||
|
"fg": "#A3BE8C",
|
||||||
|
"bg": "#2B303B"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"apt": {
|
||||||
|
"good": {
|
||||||
|
"fg": "#A3BE8C",
|
||||||
|
"bg": "#2B303B"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pacman": {
|
||||||
|
"good": {
|
||||||
|
"fg": "#A3BE8C",
|
||||||
|
"bg": "#2B303B"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"battery": {
|
||||||
|
"charged": {
|
||||||
|
"fg": "#2B303B",
|
||||||
|
"bg": "#A3BE8C"
|
||||||
|
},
|
||||||
|
"charging": {
|
||||||
|
"fg": "#2B303B",
|
||||||
|
"bg": "#A3BE8C"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pomodoro": {
|
||||||
|
"paused": {
|
||||||
|
"fg": "#2B303B",
|
||||||
|
"bg": "#F08080"
|
||||||
|
},
|
||||||
|
"work": {
|
||||||
|
"fg": "#2B303B",
|
||||||
|
"bg": "#EBCB8B"
|
||||||
|
},
|
||||||
|
"break": {
|
||||||
|
"fg": "#A3BE8C",
|
||||||
|
"bg": "#2B303B"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
425
picom.conf
Normal file
425
picom.conf
Normal file
|
@ -0,0 +1,425 @@
|
||||||
|
#################################
|
||||||
|
# Shadows #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
# Enabled client-side shadows on windows. Note desktop windows
|
||||||
|
# (windows with '_NET_WM_WINDOW_TYPE_DESKTOP') never get shadow,
|
||||||
|
# unless explicitly requested using the wintypes option.
|
||||||
|
#
|
||||||
|
# shadow = false
|
||||||
|
shadow = true;
|
||||||
|
|
||||||
|
# The blur radius for shadows, in pixels. (defaults to 12)
|
||||||
|
# shadow-radius = 12
|
||||||
|
shadow-radius = 9;
|
||||||
|
|
||||||
|
# The opacity of shadows. (0.0 - 1.0, defaults to 0.75)
|
||||||
|
# shadow-opacity = .75
|
||||||
|
|
||||||
|
# The left offset for shadows, in pixels. (defaults to -15)
|
||||||
|
# shadow-offset-x = -15
|
||||||
|
shadow-offset-x = -7;
|
||||||
|
|
||||||
|
# The top offset for shadows, in pixels. (defaults to -15)
|
||||||
|
# shadow-offset-y = -15
|
||||||
|
shadow-offset-y = -7;
|
||||||
|
|
||||||
|
# Avoid drawing shadows on dock/panel windows. This option is deprecated,
|
||||||
|
# you should use the *wintypes* option in your config file instead.
|
||||||
|
#
|
||||||
|
# no-dock-shadow = false
|
||||||
|
|
||||||
|
# Don't draw shadows on drag-and-drop windows. This option is deprecated,
|
||||||
|
# you should use the *wintypes* option in your config file instead.
|
||||||
|
#
|
||||||
|
# no-dnd-shadow = false
|
||||||
|
|
||||||
|
# Red color value of shadow (0.0 - 1.0, defaults to 0).
|
||||||
|
# shadow-red = 0
|
||||||
|
|
||||||
|
# Green color value of shadow (0.0 - 1.0, defaults to 0).
|
||||||
|
# shadow-green = 0
|
||||||
|
|
||||||
|
# Blue color value of shadow (0.0 - 1.0, defaults to 0).
|
||||||
|
# shadow-blue = 0
|
||||||
|
|
||||||
|
# Do not paint shadows on shaped windows. Note shaped windows
|
||||||
|
# here means windows setting its shape through X Shape extension.
|
||||||
|
# Those using ARGB background is beyond our control.
|
||||||
|
# Deprecated, use
|
||||||
|
# shadow-exclude = 'bounding_shaped'
|
||||||
|
# or
|
||||||
|
# shadow-exclude = 'bounding_shaped && !rounded_corners'
|
||||||
|
# instead.
|
||||||
|
#
|
||||||
|
# shadow-ignore-shaped = ''
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should have no shadow.
|
||||||
|
#
|
||||||
|
# examples:
|
||||||
|
# shadow-exclude = "n:e:Notification";
|
||||||
|
#
|
||||||
|
# shadow-exclude = []
|
||||||
|
shadow-exclude = [
|
||||||
|
"name = 'Notification'",
|
||||||
|
"class_g = 'Conky'",
|
||||||
|
"class_g ?= 'Notify-osd'",
|
||||||
|
"class_g = 'Cairo-clock'",
|
||||||
|
"_GTK_FRAME_EXTENTS@:c"
|
||||||
|
];
|
||||||
|
|
||||||
|
# Specify a X geometry that describes the region in which shadow should not
|
||||||
|
# be painted in, such as a dock window region. Use
|
||||||
|
# shadow-exclude-reg = "x10+0+0"
|
||||||
|
# for example, if the 10 pixels on the bottom of the screen should not have shadows painted on.
|
||||||
|
#
|
||||||
|
# shadow-exclude-reg = ""
|
||||||
|
|
||||||
|
# Crop shadow of a window fully on a particular Xinerama screen to the screen.
|
||||||
|
# xinerama-shadow-crop = false
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Fading #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
# Fade windows in/out when opening/closing and when opacity changes,
|
||||||
|
# unless no-fading-openclose is used.
|
||||||
|
# fading = false
|
||||||
|
fading = true
|
||||||
|
|
||||||
|
# Opacity change between steps while fading in. (0.01 - 1.0, defaults to 0.028)
|
||||||
|
# fade-in-step = 0.028
|
||||||
|
fade-in-step = 0.15;
|
||||||
|
|
||||||
|
# Opacity change between steps while fading out. (0.01 - 1.0, defaults to 0.03)
|
||||||
|
# fade-out-step = 0.03
|
||||||
|
fade-out-step = 0.15;
|
||||||
|
|
||||||
|
# The time between steps in fade step, in milliseconds. (> 0, defaults to 10)
|
||||||
|
# fade-delta = 10
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should not be faded.
|
||||||
|
# fade-exclude = []
|
||||||
|
|
||||||
|
# Do not fade on window open/close.
|
||||||
|
# no-fading-openclose = false
|
||||||
|
|
||||||
|
# Do not fade destroyed ARGB windows with WM frame. Workaround of bugs in Openbox, Fluxbox, etc.
|
||||||
|
# no-fading-destroyed-argb = false
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Transparency / Opacity #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
# Opacity of inactive windows. (0.1 - 1.0, defaults to 1.0)
|
||||||
|
# inactive-opacity = 1
|
||||||
|
inactive-opacity = 1;
|
||||||
|
|
||||||
|
# Opacity of window titlebars and borders. (0.1 - 1.0, disabled by default)
|
||||||
|
# frame-opacity = 1.0
|
||||||
|
frame-opacity = 1;
|
||||||
|
|
||||||
|
# Default opacity for dropdown menus and popup menus. (0.0 - 1.0, defaults to 1.0)
|
||||||
|
# menu-opacity = 1.0
|
||||||
|
|
||||||
|
# Let inactive opacity set by -i override the '_NET_WM_OPACITY' values of windows.
|
||||||
|
# inactive-opacity-override = true
|
||||||
|
inactive-opacity-override = false;
|
||||||
|
|
||||||
|
# Default opacity for active windows. (0.0 - 1.0, defaults to 1.0)
|
||||||
|
# active-opacity = 1.0
|
||||||
|
|
||||||
|
# Dim inactive windows. (0.0 - 1.0, defaults to 0.0)
|
||||||
|
# inactive-dim = 0.0
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should always be considered focused.
|
||||||
|
# focus-exclude = []
|
||||||
|
focus-exclude = [ "class_g = 'Cairo-clock'" ];
|
||||||
|
|
||||||
|
# Use fixed inactive dim value, instead of adjusting according to window opacity.
|
||||||
|
# inactive-dim-fixed = 1.0
|
||||||
|
|
||||||
|
# Specify a list of opacity rules, in the format `PERCENT:PATTERN`,
|
||||||
|
# like `50:name *= "Firefox"`. picom-trans is recommended over this.
|
||||||
|
# Note we don't make any guarantee about possible conflicts with other
|
||||||
|
# programs that set '_NET_WM_WINDOW_OPACITY' on frame or client windows.
|
||||||
|
# example:
|
||||||
|
# opacity-rule = [ "80:class_g = 'URxvt'" ];
|
||||||
|
#
|
||||||
|
# opacity-rule = []
|
||||||
|
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# Background-Blurring #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
|
||||||
|
# Parameters for background blurring, see the *BLUR* section for more information.
|
||||||
|
# blur-method =
|
||||||
|
# blur-size = 12
|
||||||
|
#
|
||||||
|
# blur-deviation = false
|
||||||
|
|
||||||
|
# Blur background of semi-transparent / ARGB windows.
|
||||||
|
# Bad in performance, with driver-dependent behavior.
|
||||||
|
# The name of the switch may change without prior notifications.
|
||||||
|
#
|
||||||
|
# blur-background = false
|
||||||
|
|
||||||
|
# Blur background of windows when the window frame is not opaque.
|
||||||
|
# Implies:
|
||||||
|
# blur-background
|
||||||
|
# Bad in performance, with driver-dependent behavior. The name may change.
|
||||||
|
#
|
||||||
|
# blur-background-frame = false
|
||||||
|
|
||||||
|
|
||||||
|
# Use fixed blur strength rather than adjusting according to window opacity.
|
||||||
|
# blur-background-fixed = false
|
||||||
|
|
||||||
|
|
||||||
|
# Specify the blur convolution kernel, with the following format:
|
||||||
|
# example:
|
||||||
|
# blur-kern = "5,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1";
|
||||||
|
#
|
||||||
|
# blur-kern = ''
|
||||||
|
blur-kern = "3x3box";
|
||||||
|
|
||||||
|
|
||||||
|
# Exclude conditions for background blur.
|
||||||
|
# blur-background-exclude = []
|
||||||
|
blur-background-exclude = [
|
||||||
|
"window_type = 'dock'",
|
||||||
|
"window_type = 'desktop'",
|
||||||
|
"_GTK_FRAME_EXTENTS@:c"
|
||||||
|
];
|
||||||
|
|
||||||
|
#################################
|
||||||
|
# General Settings #
|
||||||
|
#################################
|
||||||
|
|
||||||
|
# Daemonize process. Fork to background after initialization. Causes issues with certain (badly-written) drivers.
|
||||||
|
# daemon = false
|
||||||
|
|
||||||
|
# Specify the backend to use: `xrender`, `glx`, or `xr_glx_hybrid`.
|
||||||
|
# `xrender` is the default one.
|
||||||
|
#
|
||||||
|
backend = "glx";
|
||||||
|
#backend = "xrender";
|
||||||
|
|
||||||
|
# Enable/disable VSync.
|
||||||
|
# vsync = false
|
||||||
|
vsync = true
|
||||||
|
|
||||||
|
# Enable remote control via D-Bus. See the *D-BUS API* section below for more details.
|
||||||
|
# dbus = false
|
||||||
|
|
||||||
|
# Try to detect WM windows (a non-override-redirect window with no
|
||||||
|
# child that has 'WM_STATE') and mark them as active.
|
||||||
|
#
|
||||||
|
# mark-wmwin-focused = false
|
||||||
|
mark-wmwin-focused = true;
|
||||||
|
|
||||||
|
# Mark override-redirect windows that doesn't have a child window with 'WM_STATE' focused.
|
||||||
|
# mark-ovredir-focused = false
|
||||||
|
mark-ovredir-focused = true;
|
||||||
|
|
||||||
|
# Try to detect windows with rounded corners and don't consider them
|
||||||
|
# shaped windows. The accuracy is not very high, unfortunately.
|
||||||
|
#
|
||||||
|
# detect-rounded-corners = false
|
||||||
|
detect-rounded-corners = true;
|
||||||
|
|
||||||
|
# Detect '_NET_WM_OPACITY' on client windows, useful for window managers
|
||||||
|
# not passing '_NET_WM_OPACITY' of client windows to frame windows.
|
||||||
|
#
|
||||||
|
# detect-client-opacity = false
|
||||||
|
detect-client-opacity = true;
|
||||||
|
|
||||||
|
# Specify refresh rate of the screen. If not specified or 0, picom will
|
||||||
|
# try detecting this with X RandR extension.
|
||||||
|
#
|
||||||
|
#refresh-rate = 60
|
||||||
|
|
||||||
|
# Limit picom to repaint at most once every 1 / 'refresh_rate' second to
|
||||||
|
# boost performance. This should not be used with
|
||||||
|
# vsync drm/opengl/opengl-oml
|
||||||
|
# as they essentially does sw-opti's job already,
|
||||||
|
# unless you wish to specify a lower refresh rate than the actual value.
|
||||||
|
#
|
||||||
|
# sw-opti =
|
||||||
|
|
||||||
|
# Use EWMH '_NET_ACTIVE_WINDOW' to determine currently focused window,
|
||||||
|
# rather than listening to 'FocusIn'/'FocusOut' event. Might have more accuracy,
|
||||||
|
# provided that the WM supports it.
|
||||||
|
#
|
||||||
|
# use-ewmh-active-win = false
|
||||||
|
|
||||||
|
# Unredirect all windows if a full-screen opaque window is detected,
|
||||||
|
# to maximize performance for full-screen windows. Known to cause flickering
|
||||||
|
# when redirecting/unredirecting windows.
|
||||||
|
#
|
||||||
|
unredir-if-possible = false
|
||||||
|
|
||||||
|
# Delay before unredirecting the window, in milliseconds. Defaults to 0.
|
||||||
|
# unredir-if-possible-delay = 0
|
||||||
|
|
||||||
|
# Conditions of windows that shouldn't be considered full-screen for unredirecting screen.
|
||||||
|
# unredir-if-possible-exclude = []
|
||||||
|
|
||||||
|
# Use 'WM_TRANSIENT_FOR' to group windows, and consider windows
|
||||||
|
# in the same group focused at the same time.
|
||||||
|
#
|
||||||
|
# detect-transient = false
|
||||||
|
detect-transient = true
|
||||||
|
|
||||||
|
# Use 'WM_CLIENT_LEADER' to group windows, and consider windows in the same
|
||||||
|
# group focused at the same time. 'WM_TRANSIENT_FOR' has higher priority if
|
||||||
|
# detect-transient is enabled, too.
|
||||||
|
#
|
||||||
|
# detect-client-leader = false
|
||||||
|
detect-client-leader = true
|
||||||
|
|
||||||
|
# Resize damaged region by a specific number of pixels.
|
||||||
|
# A positive value enlarges it while a negative one shrinks it.
|
||||||
|
# If the value is positive, those additional pixels will not be actually painted
|
||||||
|
# to screen, only used in blur calculation, and such. (Due to technical limitations,
|
||||||
|
# with use-damage, those pixels will still be incorrectly painted to screen.)
|
||||||
|
# Primarily used to fix the line corruption issues of blur,
|
||||||
|
# in which case you should use the blur radius value here
|
||||||
|
# (e.g. with a 3x3 kernel, you should use `--resize-damage 1`,
|
||||||
|
# with a 5x5 one you use `--resize-damage 2`, and so on).
|
||||||
|
# May or may not work with *--glx-no-stencil*. Shrinking doesn't function correctly.
|
||||||
|
#
|
||||||
|
# resize-damage = 1
|
||||||
|
|
||||||
|
# Specify a list of conditions of windows that should be painted with inverted color.
|
||||||
|
# Resource-hogging, and is not well tested.
|
||||||
|
#
|
||||||
|
# invert-color-include = []
|
||||||
|
|
||||||
|
# GLX backend: Avoid using stencil buffer, useful if you don't have a stencil buffer.
|
||||||
|
# Might cause incorrect opacity when rendering transparent content (but never
|
||||||
|
# practically happened) and may not work with blur-background.
|
||||||
|
# My tests show a 15% performance boost. Recommended.
|
||||||
|
#
|
||||||
|
# glx-no-stencil = false
|
||||||
|
|
||||||
|
# GLX backend: Avoid rebinding pixmap on window damage.
|
||||||
|
# Probably could improve performance on rapid window content changes,
|
||||||
|
# but is known to break things on some drivers (LLVMpipe, xf86-video-intel, etc.).
|
||||||
|
# Recommended if it works.
|
||||||
|
#
|
||||||
|
# glx-no-rebind-pixmap = false
|
||||||
|
|
||||||
|
# Disable the use of damage information.
|
||||||
|
# This cause the whole screen to be redrawn everytime, instead of the part of the screen
|
||||||
|
# has actually changed. Potentially degrades the performance, but might fix some artifacts.
|
||||||
|
# The opposing option is use-damage
|
||||||
|
#
|
||||||
|
# no-use-damage = false
|
||||||
|
use-damage = true
|
||||||
|
|
||||||
|
# Use X Sync fence to sync clients' draw calls, to make sure all draw
|
||||||
|
# calls are finished before picom starts drawing. Needed on nvidia-drivers
|
||||||
|
# with GLX backend for some users.
|
||||||
|
#
|
||||||
|
# xrender-sync-fence = true
|
||||||
|
|
||||||
|
# GLX backend: Use specified GLSL fragment shader for rendering window contents.
|
||||||
|
# See `compton-default-fshader-win.glsl` and `compton-fake-transparency-fshader-win.glsl`
|
||||||
|
# in the source tree for examples.
|
||||||
|
#
|
||||||
|
# glx-fshader-win = ''
|
||||||
|
|
||||||
|
# Force all windows to be painted with blending. Useful if you
|
||||||
|
# have a glx-fshader-win that could turn opaque pixels transparent.
|
||||||
|
#
|
||||||
|
# force-win-blend = false
|
||||||
|
|
||||||
|
# Do not use EWMH to detect fullscreen windows.
|
||||||
|
# Reverts to checking if a window is fullscreen based only on its size and coordinates.
|
||||||
|
#
|
||||||
|
# no-ewmh-fullscreen = false
|
||||||
|
|
||||||
|
# Dimming bright windows so their brightness doesn't exceed this set value.
|
||||||
|
# Brightness of a window is estimated by averaging all pixels in the window,
|
||||||
|
# so this could comes with a performance hit.
|
||||||
|
# Setting this to 1.0 disables this behaviour. Requires --use-damage to be disabled. (default: 1.0)
|
||||||
|
#
|
||||||
|
# max-brightness = 1.0
|
||||||
|
|
||||||
|
# Make transparent windows clip other windows like non-transparent windows do,
|
||||||
|
# instead of blending on top of them.
|
||||||
|
#
|
||||||
|
# transparent-clipping = false
|
||||||
|
|
||||||
|
# Set the log level. Possible values are:
|
||||||
|
# "trace", "debug", "info", "warn", "error"
|
||||||
|
# in increasing level of importance. Case doesn't matter.
|
||||||
|
# If using the "TRACE" log level, it's better to log into a file
|
||||||
|
# using *--log-file*, since it can generate a huge stream of logs.
|
||||||
|
#
|
||||||
|
# log-level = "debug"
|
||||||
|
log-level = "warn";
|
||||||
|
|
||||||
|
# Set the log file.
|
||||||
|
# If *--log-file* is never specified, logs will be written to stderr.
|
||||||
|
# Otherwise, logs will to written to the given file, though some of the early
|
||||||
|
# logs might still be written to the stderr.
|
||||||
|
# When setting this option from the config file, it is recommended to use an absolute path.
|
||||||
|
#
|
||||||
|
# log-file = '/path/to/your/log/file'
|
||||||
|
|
||||||
|
# Show all X errors (for debugging)
|
||||||
|
# show-all-xerrors = false
|
||||||
|
|
||||||
|
# Write process ID to a file.
|
||||||
|
# write-pid-path = '/path/to/your/log/file'
|
||||||
|
|
||||||
|
# Window type settings
|
||||||
|
#
|
||||||
|
# 'WINDOW_TYPE' is one of the 15 window types defined in EWMH standard:
|
||||||
|
# "unknown", "desktop", "dock", "toolbar", "menu", "utility",
|
||||||
|
# "splash", "dialog", "normal", "dropdown_menu", "popup_menu",
|
||||||
|
# "tooltip", "notification", "combo", and "dnd".
|
||||||
|
#
|
||||||
|
# Following per window-type options are available: ::
|
||||||
|
#
|
||||||
|
# fade, shadow:::
|
||||||
|
# Controls window-type-specific shadow and fade settings.
|
||||||
|
#
|
||||||
|
# opacity:::
|
||||||
|
# Controls default opacity of the window type.
|
||||||
|
#
|
||||||
|
# focus:::
|
||||||
|
# Controls whether the window of this type is to be always considered focused.
|
||||||
|
# (By default, all window types except "normal" and "dialog" has this on.)
|
||||||
|
#
|
||||||
|
# full-shadow:::
|
||||||
|
# Controls whether shadow is drawn under the parts of the window that you
|
||||||
|
# normally won't be able to see. Useful when the window has parts of it
|
||||||
|
# transparent, and you want shadows in those areas.
|
||||||
|
#
|
||||||
|
# redir-ignore:::
|
||||||
|
# Controls whether this type of windows should cause screen to become
|
||||||
|
# redirected again after been unredirected. If you have unredir-if-possible
|
||||||
|
# set, and doesn't want certain window to cause unnecessary screen redirection,
|
||||||
|
# you can set this to `true`.
|
||||||
|
#
|
||||||
|
wintypes:
|
||||||
|
{
|
||||||
|
tooltip = { fade = true; shadow = true; opacity = 1; focus = true; full-shadow = false; };
|
||||||
|
dock = { shadow = true}
|
||||||
|
dnd = { shadow = false; }
|
||||||
|
popup_menu = { opacity = 1; }
|
||||||
|
dropdown_menu = { opacity = 1; }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
258
pipewire.conf
Normal file
258
pipewire.conf
Normal file
|
@ -0,0 +1,258 @@
|
||||||
|
# Daemon config file for PipeWire version "0.3.59" #
|
||||||
|
#
|
||||||
|
# Copy and edit this file in /etc/pipewire for system-wide changes
|
||||||
|
# or in ~/.config/pipewire for local changes.
|
||||||
|
#
|
||||||
|
# It is also possible to place a file with an updated section in
|
||||||
|
# /etc/pipewire/pipewire.conf.d/ for system-wide changes or in
|
||||||
|
# ~/.config/pipewire/pipewire.conf.d/ for local changes.
|
||||||
|
#
|
||||||
|
|
||||||
|
context.properties = {
|
||||||
|
## Configure properties in the system.
|
||||||
|
#library.name.system = support/libspa-support
|
||||||
|
#context.data-loop.library.name.system = support/libspa-support
|
||||||
|
#support.dbus = true
|
||||||
|
#link.max-buffers = 64
|
||||||
|
link.max-buffers = 16 # version < 3 clients can't handle more
|
||||||
|
#mem.warn-mlock = false
|
||||||
|
#mem.allow-mlock = true
|
||||||
|
#mem.mlock-all = false
|
||||||
|
#clock.power-of-two-quantum = true
|
||||||
|
#log.level = 2
|
||||||
|
#cpu.zero.denormals = false
|
||||||
|
|
||||||
|
core.daemon = true # listening for socket connections
|
||||||
|
core.name = pipewire-0 # core name and socket name
|
||||||
|
|
||||||
|
## Properties for the DSP configuration.
|
||||||
|
default.clock.rate = 44100
|
||||||
|
#default.clock.allowed-rates = [ 48000 ]
|
||||||
|
default.clock.quantum = 4096
|
||||||
|
default.clock.min-quantum = 16
|
||||||
|
#default.clock.max-quantum = 2048
|
||||||
|
#default.clock.quantum-limit = 8192
|
||||||
|
#default.video.width = 640
|
||||||
|
#default.video.height = 480
|
||||||
|
#default.video.rate.num = 25
|
||||||
|
#default.video.rate.denom = 1
|
||||||
|
#
|
||||||
|
#settings.check-quantum = false
|
||||||
|
#settings.check-rate = false
|
||||||
|
#
|
||||||
|
# These overrides are only applied when running in a vm.
|
||||||
|
vm.overrides = {
|
||||||
|
default.clock.min-quantum = 1024
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
context.spa-libs = {
|
||||||
|
#<factory-name regex> = <library-name>
|
||||||
|
#
|
||||||
|
# Used to find spa factory names. It maps an spa factory name
|
||||||
|
# regular expression to a library name that should contain
|
||||||
|
# that factory.
|
||||||
|
#
|
||||||
|
audio.convert.* = audioconvert/libspa-audioconvert
|
||||||
|
avb.* = avb/libspa-avb
|
||||||
|
api.alsa.* = alsa/libspa-alsa
|
||||||
|
api.v4l2.* = v4l2/libspa-v4l2
|
||||||
|
api.libcamera.* = libcamera/libspa-libcamera
|
||||||
|
api.bluez5.* = bluez5/libspa-bluez5
|
||||||
|
api.vulkan.* = vulkan/libspa-vulkan
|
||||||
|
api.jack.* = jack/libspa-jack
|
||||||
|
support.* = support/libspa-support
|
||||||
|
#videotestsrc = videotestsrc/libspa-videotestsrc
|
||||||
|
#audiotestsrc = audiotestsrc/libspa-audiotestsrc
|
||||||
|
}
|
||||||
|
|
||||||
|
context.modules = [
|
||||||
|
#{ name = <module-name>
|
||||||
|
# [ args = { <key> = <value> ... } ]
|
||||||
|
# [ flags = [ [ ifexists ] [ nofail ] ]
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# Loads a module with the given parameters.
|
||||||
|
# If ifexists is given, the module is ignored when it is not found.
|
||||||
|
# If nofail is given, module initialization failures are ignored.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Uses realtime scheduling to boost the audio thread priorities. This uses
|
||||||
|
# RTKit if the user doesn't have permission to use regular realtime
|
||||||
|
# scheduling.
|
||||||
|
{ name = libpipewire-module-rt
|
||||||
|
args = {
|
||||||
|
nice.level = -11
|
||||||
|
#rt.prio = 88
|
||||||
|
#rt.time.soft = -1
|
||||||
|
#rt.time.hard = -1
|
||||||
|
}
|
||||||
|
flags = [ ifexists nofail ]
|
||||||
|
}
|
||||||
|
|
||||||
|
# The native communication protocol.
|
||||||
|
{ name = libpipewire-module-protocol-native }
|
||||||
|
|
||||||
|
# The profile module. Allows application to access profiler
|
||||||
|
# and performance data. It provides an interface that is used
|
||||||
|
# by pw-top and pw-profiler.
|
||||||
|
{ name = libpipewire-module-profiler }
|
||||||
|
|
||||||
|
# Allows applications to create metadata objects. It creates
|
||||||
|
# a factory for Metadata objects.
|
||||||
|
{ name = libpipewire-module-metadata }
|
||||||
|
|
||||||
|
# Creates a factory for making devices that run in the
|
||||||
|
# context of the PipeWire server.
|
||||||
|
{ name = libpipewire-module-spa-device-factory }
|
||||||
|
|
||||||
|
# Creates a factory for making nodes that run in the
|
||||||
|
# context of the PipeWire server.
|
||||||
|
{ name = libpipewire-module-spa-node-factory }
|
||||||
|
|
||||||
|
# Allows creating nodes that run in the context of the
|
||||||
|
# client. Is used by all clients that want to provide
|
||||||
|
# data to PipeWire.
|
||||||
|
{ name = libpipewire-module-client-node }
|
||||||
|
|
||||||
|
# Allows creating devices that run in the context of the
|
||||||
|
# client. Is used by the session manager.
|
||||||
|
{ name = libpipewire-module-client-device }
|
||||||
|
|
||||||
|
# The portal module monitors the PID of the portal process
|
||||||
|
# and tags connections with the same PID as portal
|
||||||
|
# connections.
|
||||||
|
{ name = libpipewire-module-portal
|
||||||
|
flags = [ ifexists nofail ]
|
||||||
|
}
|
||||||
|
|
||||||
|
# The access module can perform access checks and block
|
||||||
|
# new clients.
|
||||||
|
{ name = libpipewire-module-access
|
||||||
|
args = {
|
||||||
|
# access.allowed to list an array of paths of allowed
|
||||||
|
# apps.
|
||||||
|
#access.allowed = [
|
||||||
|
# /usr/bin/pipewire-media-session
|
||||||
|
#]
|
||||||
|
|
||||||
|
# An array of rejected paths.
|
||||||
|
#access.rejected = [ ]
|
||||||
|
|
||||||
|
# An array of paths with restricted access.
|
||||||
|
#access.restricted = [ ]
|
||||||
|
|
||||||
|
# Anything not in the above lists gets assigned the
|
||||||
|
# access.force permission.
|
||||||
|
#access.force = flatpak
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Makes a factory for wrapping nodes in an adapter with a
|
||||||
|
# converter and resampler.
|
||||||
|
{ name = libpipewire-module-adapter }
|
||||||
|
|
||||||
|
# Makes a factory for creating links between ports.
|
||||||
|
{ name = libpipewire-module-link-factory }
|
||||||
|
|
||||||
|
# Provides factories to make session manager objects.
|
||||||
|
{ name = libpipewire-module-session-manager }
|
||||||
|
|
||||||
|
# Use libcanberra to play X11 Bell
|
||||||
|
#{ name = libpipewire-module-x11-bell
|
||||||
|
# args = {
|
||||||
|
# #sink.name = ""
|
||||||
|
# #sample.name = "bell-window-system"
|
||||||
|
# #x11.display = null
|
||||||
|
# #x11.xauthority = null
|
||||||
|
# }
|
||||||
|
#}
|
||||||
|
]
|
||||||
|
|
||||||
|
context.objects = [
|
||||||
|
#{ factory = <factory-name>
|
||||||
|
# [ args = { <key> = <value> ... } ]
|
||||||
|
# [ flags = [ [ nofail ] ]
|
||||||
|
#}
|
||||||
|
#
|
||||||
|
# Creates an object from a PipeWire factory with the given parameters.
|
||||||
|
# If nofail is given, errors are ignored (and no object is created).
|
||||||
|
#
|
||||||
|
#{ factory = spa-node-factory args = { factory.name = videotestsrc node.name = videotestsrc Spa:Pod:Object:Param:Props:patternType = 1 } }
|
||||||
|
#{ factory = spa-device-factory args = { factory.name = api.jack.device foo=bar } flags = [ nofail ] }
|
||||||
|
#{ factory = spa-device-factory args = { factory.name = api.alsa.enum.udev } }
|
||||||
|
#{ factory = spa-node-factory args = { factory.name = api.alsa.seq.bridge node.name = Internal-MIDI-Bridge } }
|
||||||
|
#{ factory = adapter args = { factory.name = audiotestsrc node.name = my-test } }
|
||||||
|
#{ factory = spa-node-factory args = { factory.name = api.vulkan.compute.source node.name = my-compute-source } }
|
||||||
|
|
||||||
|
# A default dummy driver. This handles nodes marked with the "node.always-driver"
|
||||||
|
# property when no other driver is currently active. JACK clients need this.
|
||||||
|
{ factory = spa-node-factory
|
||||||
|
args = {
|
||||||
|
factory.name = support.node.driver
|
||||||
|
node.name = Dummy-Driver
|
||||||
|
node.group = pipewire.dummy
|
||||||
|
priority.driver = 20000
|
||||||
|
}
|
||||||
|
}
|
||||||
|
{ factory = spa-node-factory
|
||||||
|
args = {
|
||||||
|
factory.name = support.node.driver
|
||||||
|
node.name = Freewheel-Driver
|
||||||
|
priority.driver = 19000
|
||||||
|
node.group = pipewire.freewheel
|
||||||
|
node.freewheel = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
# This creates a new Source node. It will have input ports
|
||||||
|
# that you can link, to provide audio for this source.
|
||||||
|
#{ factory = adapter
|
||||||
|
# args = {
|
||||||
|
# factory.name = support.null-audio-sink
|
||||||
|
# node.name = "my-mic"
|
||||||
|
# node.description = "Microphone"
|
||||||
|
# media.class = "Audio/Source/Virtual"
|
||||||
|
# audio.position = "FL,FR"
|
||||||
|
# }
|
||||||
|
#}
|
||||||
|
|
||||||
|
# This creates a single PCM source device for the given
|
||||||
|
# alsa device path hw:0. You can change source to sink
|
||||||
|
# to make a sink in the same way.
|
||||||
|
#{ factory = adapter
|
||||||
|
# args = {
|
||||||
|
# factory.name = api.alsa.pcm.source
|
||||||
|
# node.name = "alsa-source"
|
||||||
|
# node.description = "PCM Source"
|
||||||
|
# media.class = "Audio/Source"
|
||||||
|
# api.alsa.path = "hw:0"
|
||||||
|
# api.alsa.period-size = 1024
|
||||||
|
# api.alsa.headroom = 0
|
||||||
|
# api.alsa.disable-mmap = false
|
||||||
|
# api.alsa.disable-batch = false
|
||||||
|
# audio.format = "S16LE"
|
||||||
|
# audio.rate = 48000
|
||||||
|
# audio.channels = 2
|
||||||
|
# audio.position = "FL,FR"
|
||||||
|
# }
|
||||||
|
#}
|
||||||
|
]
|
||||||
|
|
||||||
|
context.exec = [
|
||||||
|
#{ path = <program-name> [ args = "<arguments>" ] }
|
||||||
|
#
|
||||||
|
# Execute the given program with arguments.
|
||||||
|
#
|
||||||
|
# You can optionally start the session manager here,
|
||||||
|
# but it is better to start it as a systemd service.
|
||||||
|
# Run the session manager with -h for options.
|
||||||
|
#
|
||||||
|
#{ path = "/usr/bin/pipewire-media-session" args = "" }
|
||||||
|
#
|
||||||
|
# You can optionally start the pulseaudio-server here as well
|
||||||
|
# but it is better to start it as a systemd service.
|
||||||
|
# It can be interesting to start another daemon here that listens
|
||||||
|
# on another address with the -a option (eg. -a tcp:4713).
|
||||||
|
#
|
||||||
|
#{ path = "/usr/bin/pipewire" args = "-c pipewire-pulse.conf" }
|
||||||
|
]
|
Loading…
Reference in a new issue