_
This commit is contained in:
40
.Xresources
Executable file
40
.Xresources
Executable file
@@ -0,0 +1,40 @@
|
|||||||
|
! Kaolin Dark theme
|
||||||
|
! Dark jade theme inspired by Sierra.vim
|
||||||
|
|
||||||
|
! special
|
||||||
|
*.foreground: #e4e4e8
|
||||||
|
*.background: #18181b
|
||||||
|
*.cursorColor: #e4e4e8
|
||||||
|
|
||||||
|
! black
|
||||||
|
*.color0: #4b5254
|
||||||
|
*.color8: #879193
|
||||||
|
|
||||||
|
! red
|
||||||
|
*.color1: #cd5c60
|
||||||
|
*.color9: #e36d5b
|
||||||
|
|
||||||
|
! green
|
||||||
|
*.color2: #6fb593
|
||||||
|
*.color10: #72ccba
|
||||||
|
|
||||||
|
! yellow
|
||||||
|
*.color3: #dbac66
|
||||||
|
*.color11: #f2c866
|
||||||
|
|
||||||
|
! blue
|
||||||
|
*.color4: #91b9c7
|
||||||
|
*.color12: #97b8de
|
||||||
|
|
||||||
|
! magenta
|
||||||
|
*.color5: #845a84
|
||||||
|
*.color13: #8c629c
|
||||||
|
|
||||||
|
! cyan
|
||||||
|
*.color6: #4d9391
|
||||||
|
*.color14: #5096ab
|
||||||
|
|
||||||
|
! white
|
||||||
|
*.color7: #e4e4e8
|
||||||
|
*.color15: #efeff1
|
||||||
|
|
||||||
96
.bashrc
Normal file
96
.bashrc
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
# /etc/bash/bashrc
|
||||||
|
#
|
||||||
|
# This file is sourced by all *interactive* bash shells on startup,
|
||||||
|
# including some apparently interactive shells such as scp and rcp
|
||||||
|
# that can't tolerate any output. So make sure this doesn't display
|
||||||
|
# anything or bad things will happen!
|
||||||
|
|
||||||
|
# Return immediately for non-interactive shells (scp, rcp etc.)
|
||||||
|
if [[ $- != *i* ]] ; then
|
||||||
|
# Shell is non-interactive. Be done now!
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Shell options
|
||||||
|
shopt -s checkwinsize # Update window size after each command
|
||||||
|
shopt -s globstar 2>/dev/null # Enable ** recursive globbing
|
||||||
|
shopt -s no_empty_cmd_completion # Disable completion on empty line
|
||||||
|
|
||||||
|
# History settings
|
||||||
|
shopt -s histappend # Append to history instead of overwriting
|
||||||
|
shopt -s cmdhist # Save multi-line commands as one command
|
||||||
|
PROMPT_COMMAND='history -a' # Record each line as it gets issued
|
||||||
|
HISTSIZE=500000
|
||||||
|
HISTFILESIZE=100000
|
||||||
|
HISTCONTROL="erasedups:ignoreboth"
|
||||||
|
export HISTIGNORE="&:[ ]*:exit:ls:bg:fg:history:clear"
|
||||||
|
HISTTIMEFORMAT='%F %T '
|
||||||
|
bind '"\e[A": history-search-backward'
|
||||||
|
bind '"\e[B": history-search-forward'
|
||||||
|
bind '"\e[C": forward-char'
|
||||||
|
bind '"\e[D": backward-char'
|
||||||
|
|
||||||
|
# Change the window title of X terminals
|
||||||
|
case ${TERM} in
|
||||||
|
[aEkx]term*|rxvt*|gnome*|konsole*|interix|tmux*)
|
||||||
|
PS1='\[\033]0;\u@\h:\w\007\]'
|
||||||
|
;;
|
||||||
|
screen*)
|
||||||
|
PS1='\[\033_\u@\h:\w\033\\\]'
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
unset PS1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
PROMPT_DIRTRIM=2
|
||||||
|
|
||||||
|
# Color support
|
||||||
|
use_color=false
|
||||||
|
if type -P dircolors >/dev/null; then
|
||||||
|
LS_COLORS=
|
||||||
|
if [[ -f ~/.dir_colors ]]; then
|
||||||
|
eval "$(dircolors -b ~/.dir_colors)"
|
||||||
|
elif [[ -f /etc/DIR_COLORS ]]; then
|
||||||
|
eval "$(dircolors -b /etc/DIR_COLORS)"
|
||||||
|
else
|
||||||
|
eval "$(dircolors -b)"
|
||||||
|
fi
|
||||||
|
|
||||||
|
[[ -n ${LS_COLORS:+set} ]] && use_color=true || unset LS_COLORS
|
||||||
|
else
|
||||||
|
case ${TERM} in
|
||||||
|
[aEkx]term*|rxvt*|gnome*|konsole*|screen|tmux|cons25|*color)
|
||||||
|
use_color=true
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ${use_color}; then
|
||||||
|
if [[ ${EUID} == 0 ]]; then
|
||||||
|
PS1+='\[\033[01;31m\]\h\[\033[01;34m\] \w \$\[\033[00m\] ' # root
|
||||||
|
else
|
||||||
|
PS1+='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] ' # normal user
|
||||||
|
fi
|
||||||
|
|
||||||
|
#BSD#@export CLICOLOR=1
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
alias grep='grep --colour=auto'
|
||||||
|
else
|
||||||
|
PS1+='\u@\h \w \$ '
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Additional features
|
||||||
|
bind Space:magic-space # Enable history expansion with space
|
||||||
|
bind "set completion-ignore-case on" # Perform file completion in a case insensitive fashion
|
||||||
|
bind "set completion-map-case on" # Treat hyphens and underscores as equivalent
|
||||||
|
bind "set show-all-if-ambiguous on" # Display matches for ambiguous patterns at first tab press
|
||||||
|
bind "set mark-symlinked-directories on" # Immediately add a trailing slash when autocompleting symlinks to directories
|
||||||
|
|
||||||
|
# Source additional configs
|
||||||
|
for sh in /etc/bash/bashrc.d/*; do
|
||||||
|
[[ -r ${sh} ]] && source "${sh}"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Try to keep environment pollution down, EPA loves us.
|
||||||
|
unset use_color sh
|
||||||
18
.xinitrc
Executable file
18
.xinitrc
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
[ -f "$HOME/.profile" ] && . "$HOME/.profile"
|
||||||
|
[ -f "$HOME/.Xresources" ] && xrdb -merge "$HOME/.Xresources"
|
||||||
|
[ -f "$HOME/.Xmodmap" [ && xmodmap "$HOME/.Xmodmap"
|
||||||
|
|
||||||
|
xsetroot -cursor_name left_ptr
|
||||||
|
xset r rate 300 50
|
||||||
|
xset -b
|
||||||
|
|
||||||
|
sxhkd &
|
||||||
|
dunst &
|
||||||
|
|
||||||
|
# wp
|
||||||
|
[ -f "$HOME/.local/share/wallpapers/current" ] && \
|
||||||
|
xwallpaper --zoom "$HOME/.local/share/wallpapers/current"
|
||||||
|
|
||||||
|
exec dbus-run-session bspwm
|
||||||
18
bspwm/bspwmrc
Executable file
18
bspwm/bspwmrc
Executable file
@@ -0,0 +1,18 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
|
||||||
|
pgrep -x sxhkd > /dev/null || sxhkd &
|
||||||
|
|
||||||
|
bspc monitor -d I II III IV V VI VII VIII IX X
|
||||||
|
|
||||||
|
bspc config border_width 2
|
||||||
|
bspc config window_gap 12
|
||||||
|
|
||||||
|
bspc config split_ratio 0.52
|
||||||
|
bspc config borderless_monocle true
|
||||||
|
bspc config gapless_monocle true
|
||||||
|
|
||||||
|
bspc rule -a Gimp desktop='^8' state=floating follow=on
|
||||||
|
bspc rule -a Chromium desktop='^2'
|
||||||
|
bspc rule -a mplayer2 state=floating
|
||||||
|
bspc rule -a Kupfer.py focus=on
|
||||||
|
bspc rule -a Screenkey manage=off
|
||||||
54
nvim/init.vim
Executable file
54
nvim/init.vim
Executable file
@@ -0,0 +1,54 @@
|
|||||||
|
" ~/.config/nvim/init.vim
|
||||||
|
|
||||||
|
" General Settings
|
||||||
|
scriptencoding utf8
|
||||||
|
set encoding=utf-8
|
||||||
|
set mouse=a
|
||||||
|
set clipboard+=unnamedplus
|
||||||
|
|
||||||
|
" Indentation & Formatting
|
||||||
|
set tabstop=4
|
||||||
|
set softtabstop=4
|
||||||
|
set shiftwidth=4
|
||||||
|
set expandtab
|
||||||
|
set smarttab
|
||||||
|
set autoindent
|
||||||
|
set wrap
|
||||||
|
set breakindent
|
||||||
|
set textwidth=90
|
||||||
|
|
||||||
|
" Search Settings
|
||||||
|
set incsearch
|
||||||
|
set ignorecase
|
||||||
|
set smartcase
|
||||||
|
set hlsearch
|
||||||
|
set grepprg=rg\ --vimgrep
|
||||||
|
|
||||||
|
" Visual Settings
|
||||||
|
set termguicolors
|
||||||
|
set number
|
||||||
|
set list
|
||||||
|
set listchars=trail:»,tab:»-
|
||||||
|
set showtabline=0
|
||||||
|
set nocursorline
|
||||||
|
set nocursorcolumn
|
||||||
|
|
||||||
|
" Performance Settings
|
||||||
|
set scrolljump=5
|
||||||
|
set lazyredraw
|
||||||
|
set redrawtime=10000
|
||||||
|
set synmaxcol=180
|
||||||
|
set re=1
|
||||||
|
|
||||||
|
" File Management
|
||||||
|
set undofile
|
||||||
|
set undodir=/tmp
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
set foldlevel=0
|
||||||
|
|
||||||
|
" Initialize Lua Configuration
|
||||||
|
lua require('my.init').setup()
|
||||||
|
|
||||||
|
" Package Management (Native)
|
||||||
|
packloadall " Load all packages
|
||||||
|
silent! helptags ALL " Generate help tags for all packages
|
||||||
61
nvim/lua/my/dashboard.lua
Executable file
61
nvim/lua/my/dashboard.lua
Executable file
@@ -0,0 +1,61 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.setup()
|
||||||
|
local alpha = require('alpha')
|
||||||
|
local dashboard = require('alpha.themes.dashboard')
|
||||||
|
|
||||||
|
dashboard.section.header.val =
|
||||||
|
{[[ ⠄⠄⣼⡟⣿⠏⢀⣿⣇⣿⣏⣿⣿⣿⣿⣿⣿⣿⢸⡇⣿⣿⣿⣟⣿⣿⣿⣿ ]],
|
||||||
|
[[ ⡆⣸⡟⣼⣯⠏⣾⣿⢸⣿⢸⣿⣿⣿⣿⣿⣿⡟⠸⠁⢹⡿⣿⣿⢻⣿⣿⣿ ]],
|
||||||
|
[[ ⡇⡟⣸⢟⣫⡅⣶⢆⡶⡆⣿⣿⣿⣿⣿⢿⣛⠃⠰⠆⠈⠁⠈⠙⠈⠻⣿⢹ ]],
|
||||||
|
[[ ⣧⣱⡷⣱⠿⠟⠛⠼⣇⠇⣿⣿⣿⣿⣿⣿⠃⣰⣿⣿⡆⠄⠄⠄⠄⠄⠉⠈ ]],
|
||||||
|
[[ ⡏⡟⢑⠃⡠⠂⠄⠄⠈⣾⢻⣿⣿⡿⡹⡳⠋⠉⠁⠉⠙⠄⢀⠄⠄⠄⠄⠄ ]],
|
||||||
|
[[ ⡇⠁⢈⢰⡇⠄⠄⡙⠂⣿⣿⣿⣿⣱⣿⡗⠄⠄⠄⢀⡀⠄⠈⢰⠄⠄⠄⠐ ]],
|
||||||
|
[[ ⠄⠄⠘⣿⣧⠴⣄⣡⢄⣿⣿⣿⣷⣿⣿⡇⢀⠄⠤⠈⠁⣠⣠⣸⢠⠄⠄⠄ ]],
|
||||||
|
[[ ⢀⠄⠄⣿⣿⣷⣬⣵⣿⣿⣿⣿⣿⣿⣿⣷⣟⢷⡶⢗⡰⣿⣿⠇⠘⠄⠄⠄ ]],
|
||||||
|
[[ ⣿⠄⠄⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣶⣾⣿⣿⡟⢀⠃⠄⢸⡄ ]],
|
||||||
|
[[ ⣿⠄⠄⠘⢿⣿⣿⣿⣿⣿⣿⢛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⢄⡆⠄⢀⣪⡆ ]],
|
||||||
|
[[ ⡟⠄⠄⠄⠄⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢿⣟⣻⣩⣾⣃⣴⣿⣿⡇ ]]}
|
||||||
|
|
||||||
|
-- Set menu
|
||||||
|
dashboard.section.buttons.val = {dashboard.button("n", " New file", ":enew <CR>"),
|
||||||
|
dashboard.button("s", " Settings", ":e $MYVIMRC <CR>"),
|
||||||
|
dashboard.button("q", " Quit NVIM", ":qa<CR>")}
|
||||||
|
|
||||||
|
-- Set footer
|
||||||
|
local function footer()
|
||||||
|
local datetime = os.date("%H:%M")
|
||||||
|
local version = vim.version()
|
||||||
|
local nvim_version_info = "v" .. version.major .. "." .. version.minor .. "." .. version.patch
|
||||||
|
|
||||||
|
return string.format("%s %s", datetime, nvim_version_info)
|
||||||
|
end
|
||||||
|
|
||||||
|
dashboard.section.footer.val = footer()
|
||||||
|
|
||||||
|
-- set layout
|
||||||
|
dashboard.config.layout = {{
|
||||||
|
type = "padding",
|
||||||
|
val = 1
|
||||||
|
}, dashboard.section.header, {
|
||||||
|
type = "padding",
|
||||||
|
val = 2
|
||||||
|
}, dashboard.section.buttons, {
|
||||||
|
type = "padding",
|
||||||
|
val = 1
|
||||||
|
}, dashboard.section.footer}
|
||||||
|
|
||||||
|
-- autostart
|
||||||
|
vim.api.nvim_create_autocmd("VimEnter", {
|
||||||
|
callback = function()
|
||||||
|
if vim.fn.argc() == 0 then
|
||||||
|
require("alpha").start()
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
||||||
|
|
||||||
|
dashboard.config.opts.noautocmd = true
|
||||||
|
alpha.setup(dashboard.config)
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
8
nvim/lua/my/init.lua
Executable file
8
nvim/lua/my/init.lua
Executable file
@@ -0,0 +1,8 @@
|
|||||||
|
local M = {}
|
||||||
|
|
||||||
|
function M.setup()
|
||||||
|
require('my.lsp').initialize()
|
||||||
|
require('my.dashboard').setup()
|
||||||
|
end
|
||||||
|
|
||||||
|
return M
|
||||||
98
nvim/lua/my/lsp.lua
Executable file
98
nvim/lua/my/lsp.lua
Executable file
@@ -0,0 +1,98 @@
|
|||||||
|
local lspconfig = require "lspconfig"
|
||||||
|
|
||||||
|
local function on_attach(client, bufnr)
|
||||||
|
vim.api.nvim_buf_set_option(bufnr, "omnifunc", "v:lua.vim.lsp.omnifunc")
|
||||||
|
vim.api.nvim_buf_set_var(bufnr, "vcm_tab_complete", "omni")
|
||||||
|
|
||||||
|
local function command(name, command)
|
||||||
|
vim.api.nvim_buf_create_user_command(bufnr, name, command, {})
|
||||||
|
end
|
||||||
|
|
||||||
|
local function map(mode, lhs, rhs)
|
||||||
|
vim.keymap.set(mode, lhs, rhs, {
|
||||||
|
buffer = bufnr
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
local augroup_id = vim.api.nvim_create_augroup("LSPAttach", {
|
||||||
|
clear = false
|
||||||
|
})
|
||||||
|
local function autocmd(event, callback)
|
||||||
|
vim.api.nvim_create_autocmd(event, {
|
||||||
|
group = augroup_id,
|
||||||
|
buffer = bufnr,
|
||||||
|
callback = callback
|
||||||
|
})
|
||||||
|
end
|
||||||
|
vim.api.nvim_clear_autocmds({
|
||||||
|
buffer = bufnr,
|
||||||
|
group = augroup_id
|
||||||
|
})
|
||||||
|
|
||||||
|
command("References", function()
|
||||||
|
local function on_list(options)
|
||||||
|
vim.fn.setqflist({}, "r", options)
|
||||||
|
vim.api.nvim_command("cfirst")
|
||||||
|
end
|
||||||
|
vim.lsp.buf.references(nil, {
|
||||||
|
on_list = on_list
|
||||||
|
})
|
||||||
|
end)
|
||||||
|
|
||||||
|
map("n", "gD", vim.lsp.buf.declaration)
|
||||||
|
map("n", "gd", vim.lsp.buf.definition)
|
||||||
|
map("n", "K", vim.lsp.buf.hover)
|
||||||
|
map("n", "<C-k>", vim.lsp.buf.signature_help)
|
||||||
|
map("n", "<leader>lc", vim.lsp.buf.code_action)
|
||||||
|
map("n", "<leader>li", vim.lsp.buf.implementation)
|
||||||
|
map("n", "<leader>lr", vim.lsp.buf.rename)
|
||||||
|
|
||||||
|
autocmd("CursorHold", function()
|
||||||
|
vim.lsp.buf.document_highlight()
|
||||||
|
vim.diagnostic.open_float({
|
||||||
|
bufnr = bufnr
|
||||||
|
}, {
|
||||||
|
focus = false
|
||||||
|
})
|
||||||
|
end)
|
||||||
|
autocmd("CursorMoved", vim.lsp.buf.clear_references)
|
||||||
|
end
|
||||||
|
|
||||||
|
local settings = {
|
||||||
|
clangd = {
|
||||||
|
cmd = {"clangd", "--background-index", "--suggest-missing-includes", "--clang-tidy", "--header-insertion=iwyu"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
local lsp = {}
|
||||||
|
|
||||||
|
function lsp.initialize()
|
||||||
|
vim.diagnostic.config({
|
||||||
|
float = {
|
||||||
|
focusable = false
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
for lss, lss_params in pairs(settings) do
|
||||||
|
local params = {
|
||||||
|
on_attach = on_attach,
|
||||||
|
handlers = {
|
||||||
|
["textDocument/publishDiagnostics"] = vim.lsp.with(vim.lsp.diagnostic.on_publish_diagnostics, {
|
||||||
|
signs = false,
|
||||||
|
virtual_text = false,
|
||||||
|
underline = true
|
||||||
|
}),
|
||||||
|
["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, {
|
||||||
|
silent = true,
|
||||||
|
focusable = false
|
||||||
|
}),
|
||||||
|
["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, {
|
||||||
|
focusable = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
lspconfig[lss].setup(vim.tbl_deep_extend("force", params, lss_params))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
return lsp
|
||||||
146
sxhkd/sxhkdrc
Executable file
146
sxhkd/sxhkdrc
Executable file
@@ -0,0 +1,146 @@
|
|||||||
|
#
|
||||||
|
# wm independent hotkeys
|
||||||
|
#
|
||||||
|
|
||||||
|
# terminal emulator
|
||||||
|
super + Return
|
||||||
|
kitty
|
||||||
|
|
||||||
|
# program launcher
|
||||||
|
super + @space
|
||||||
|
dmenu_run
|
||||||
|
|
||||||
|
# make sxhkd reload its configuration files:
|
||||||
|
super + Escape
|
||||||
|
pkill -USR1 -x sxhkd
|
||||||
|
|
||||||
|
# backlight controls
|
||||||
|
XF86MonBrightnessUp
|
||||||
|
brightnessctl set +5%
|
||||||
|
|
||||||
|
XF86MonBrightnessDown
|
||||||
|
brightnessctl set 5%-
|
||||||
|
|
||||||
|
# selection screenshot
|
||||||
|
Print
|
||||||
|
~/.local/bin/screenshot
|
||||||
|
|
||||||
|
# full screenshot
|
||||||
|
shift + Print
|
||||||
|
~/.local/bin/screenshot -f
|
||||||
|
|
||||||
|
ctrl + Print
|
||||||
|
~/.local/bin/screenshot -u
|
||||||
|
|
||||||
|
ctrl + shift + Print
|
||||||
|
~/.local/bin/screenshot -uf
|
||||||
|
|
||||||
|
# date + bat
|
||||||
|
super + shift + i
|
||||||
|
notify-send "$(date '+%Y-%m-%d %H:%M') | Battery:$(acpi -b | cut -d',' -f2,2)"
|
||||||
|
|
||||||
|
#
|
||||||
|
# bspwm hotkeys
|
||||||
|
#
|
||||||
|
|
||||||
|
# quit/restart bspwm
|
||||||
|
super + alt + {q,r}
|
||||||
|
bspc {quit,wm -r}
|
||||||
|
|
||||||
|
# close and kill
|
||||||
|
super + {_,shift + }w
|
||||||
|
bspc node -{c,k}
|
||||||
|
|
||||||
|
# alternate between the tiled and monocle layout
|
||||||
|
super + m
|
||||||
|
bspc desktop -l next
|
||||||
|
|
||||||
|
# send the newest marked node to the newest preselected node
|
||||||
|
super + y
|
||||||
|
bspc node newest.marked.local -n newest.!automatic.local
|
||||||
|
|
||||||
|
# swap the current node and the biggest window
|
||||||
|
super + g
|
||||||
|
bspc node -s biggest.window
|
||||||
|
|
||||||
|
#
|
||||||
|
# state/flags
|
||||||
|
#
|
||||||
|
|
||||||
|
# set the window state
|
||||||
|
super + {t,shift + t,s,f}
|
||||||
|
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}
|
||||||
|
|
||||||
|
# set the node flags
|
||||||
|
super + ctrl + {m,x,y,z}
|
||||||
|
bspc node -g {marked,locked,sticky,private}
|
||||||
|
|
||||||
|
#
|
||||||
|
# focus/swap
|
||||||
|
#
|
||||||
|
|
||||||
|
# focus the node in the given direction
|
||||||
|
super + {_,shift + }{h,j,k,l}
|
||||||
|
bspc node -{f,s} {west,south,north,east}
|
||||||
|
|
||||||
|
# focus the node for the given path jump
|
||||||
|
super + {p,b,comma,period}
|
||||||
|
bspc node -f @{parent,brother,first,second}
|
||||||
|
|
||||||
|
# focus the next/previous window in the current desktop
|
||||||
|
super + {_,shift + }c
|
||||||
|
bspc node -f {next,prev}.local.!hidden.window
|
||||||
|
|
||||||
|
# focus the next/previous desktop in the current monitor
|
||||||
|
super + bracket{left,right}
|
||||||
|
bspc desktop -f {prev,next}.local
|
||||||
|
|
||||||
|
# focus the last node/desktop
|
||||||
|
super + {grave,Tab}
|
||||||
|
bspc {node,desktop} -f last
|
||||||
|
|
||||||
|
# focus the older or newer node in the focus history
|
||||||
|
super + {o,i}
|
||||||
|
bspc wm -h off; \
|
||||||
|
bspc node {older,newer} -f; \
|
||||||
|
bspc wm -h on
|
||||||
|
|
||||||
|
# focus or send to the given desktop
|
||||||
|
super + {_,shift + }{1-9,0}
|
||||||
|
bspc {desktop -f,node -d} '^{1-9,10}'
|
||||||
|
|
||||||
|
#
|
||||||
|
# preselect
|
||||||
|
#
|
||||||
|
|
||||||
|
# preselect the direction
|
||||||
|
super + ctrl + {h,j,k,l}
|
||||||
|
bspc node -p {west,south,north,east}
|
||||||
|
|
||||||
|
# preselect the ratio
|
||||||
|
super + ctrl + {1-9}
|
||||||
|
bspc node -o 0.{1-9}
|
||||||
|
|
||||||
|
# cancel the preselection for the focused node
|
||||||
|
super + ctrl + space
|
||||||
|
bspc node -p cancel
|
||||||
|
|
||||||
|
# cancel the preselection for the focused desktop
|
||||||
|
super + ctrl + shift + space
|
||||||
|
bspc query -N -d | xargs -I id -n 1 bspc node id -p cancel
|
||||||
|
|
||||||
|
#
|
||||||
|
# move/resize
|
||||||
|
#
|
||||||
|
|
||||||
|
# expand a window by moving one of its side outward
|
||||||
|
super + alt + {h,j,k,l}
|
||||||
|
bspc node -z {left -20 0,bottom 0 20,top 0 -20,right 20 0}
|
||||||
|
|
||||||
|
# contract a window by moving one of its side inward
|
||||||
|
super + alt + shift + {h,j,k,l}
|
||||||
|
bspc node -z {right -20 0,top 0 20,bottom 0 -20,left 20 0}
|
||||||
|
|
||||||
|
# move a floating window
|
||||||
|
super + {Left,Down,Up,Right}
|
||||||
|
bspc node -v {-20 0,0 20,0 -20,20 0}
|
||||||
Reference in New Issue
Block a user