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({
|
||||