mirror of
https://github.com/StepanovPlaton/dotfiles.git
synced 2026-04-03 12:20:45 +04:00
Mon Dec 18 09:27:13 PM +04 2023 +'%Y-%m-%d %H:%M:%S'
This commit is contained in:
19
.bashrc
Normal file
19
.bashrc
Normal file
@@ -0,0 +1,19 @@
|
||||
#
|
||||
# ~/.bashrc
|
||||
#
|
||||
|
||||
# If not running interactively, don't do anything
|
||||
[[ $- != *i* ]] && return
|
||||
|
||||
# alias ls='ls --color=auto'
|
||||
# alias grep='grep --color=auto'
|
||||
# PS1='[\u@\h \W]\$ '
|
||||
|
||||
(cat ~/.cache/wal/sequences &)
|
||||
|
||||
|
||||
. "${HOME}/.cache/wal/colors.sh"
|
||||
alias dmenu_wal='dmenu_run -nb "$color0" -nf "$color15" -sb "$color1" -sf "$color15"'
|
||||
|
||||
#export SUDO_ASKPASS=".scripts/dpass.sh"
|
||||
#alias sudo="sudo -A"
|
||||
26
.config/bspwm/bspwmrc
Executable file
26
.config/bspwm/bspwmrc
Executable file
@@ -0,0 +1,26 @@
|
||||
#! /bin/sh
|
||||
|
||||
pgrep -x sxhkd > /dev/null || sxhkd -c ~/.config/sxhkd/sxhkdrc &
|
||||
|
||||
. "${HOME}/.cache/wal/colors.sh"
|
||||
|
||||
bspc monitor -d 1 2 3 4 5
|
||||
|
||||
bspc config border_width 1
|
||||
bspc config window_gap 5
|
||||
|
||||
bspc config split_ratio 0.52
|
||||
bspc config borderless_monocle true
|
||||
bspc config gapless_monocle true
|
||||
|
||||
bspc config normal_border_color "$color0"
|
||||
bspc config active_border_color "$color1"
|
||||
bspc config focused_border_color "$color2"
|
||||
|
||||
bspc config top_padding 30
|
||||
|
||||
# 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
|
||||
78
.config/libinput-gestures.conf
Normal file
78
.config/libinput-gestures.conf
Normal file
@@ -0,0 +1,78 @@
|
||||
gesture swipe right 3 bspc desktop -f prev
|
||||
gesture swipe left 3 bspc desktop -f next
|
||||
gesture swipe down 3 /bin/sh -c "polybar-msg cmd show; bspc config top_padding 30"
|
||||
gesture swipe up 3 /bin/sh -c "polybar-msg cmd hide; bspc config top_padding 0"
|
||||
gesture swipe down 4 pactl set-sink-volume @DEFAULT_SINK@ -10%
|
||||
gesture swipe up 4 pactl set-sink-volume @DEFAULT_SINK@ +10%
|
||||
# gesture hold on 4 pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||
|
||||
# action motion [finger_count] command
|
||||
#
|
||||
# where action and motion is either:
|
||||
# swipe up
|
||||
# swipe down
|
||||
# swipe left
|
||||
# swipe right
|
||||
# swipe left_up
|
||||
# swipe left_down
|
||||
# swipe right_up
|
||||
# swipe right_down
|
||||
# pinch in
|
||||
# pinch out
|
||||
# pinch clockwise
|
||||
# pinch anticlockwise
|
||||
# hold on (hold gesture available since libinput 1.19)
|
||||
|
||||
|
||||
|
||||
# gesture swipe up _internal ws_up
|
||||
# gesture swipe up xdotool key super+Page_Down
|
||||
|
||||
# gesture swipe down _internal ws_down
|
||||
# gesture swipe down xdotool key super+Page_Up
|
||||
|
||||
# gesture swipe left xdotool key alt+Right
|
||||
# gesture swipe right xdotool key alt+Left
|
||||
|
||||
|
||||
# gesture hold on 4 xdotool key control+t
|
||||
|
||||
# Jump to next open browser tab
|
||||
# gesture swipe right_up xdotool key control+Tab
|
||||
|
||||
# Jump to previous open browser tab
|
||||
# gesture swipe left_up xdotool key control+shift+Tab
|
||||
|
||||
# Close current browser tab
|
||||
# gesture swipe left_down xdotool key control+w
|
||||
|
||||
# Reopen and jump to last closed browser tab
|
||||
# gesture swipe right_down xdotool key control+shift+t
|
||||
|
||||
# Example to change audio volume (this works on both Wayland and Xorg):
|
||||
# Note each swipe only steps volume once.
|
||||
# swipe up 4 amixer set Master "8%+"
|
||||
# swipe down 4 amixer set Master "8%-"
|
||||
|
||||
# GNOME SHELL open/close overview (works for GNOME on Xorg only)
|
||||
# gesture pinch in xdotool key super+s
|
||||
# gesture pinch out xdotool key super+s
|
||||
|
||||
# Optional extended pinch gestures:
|
||||
# gesture pinch clockwise <whatever command>
|
||||
# gesture pinch anticlockwise <whatever command>
|
||||
|
||||
# device all
|
||||
|
||||
###############################################################################
|
||||
# You can set a minimum travel distance threshold before swipe gestures
|
||||
# are actioned using the swipe_threshold configuration command.
|
||||
# Specify this value in dots. The default is 0.
|
||||
# E.g. set it to 100 dots with "swipe_threshold 100".
|
||||
# swipe_threshold 0
|
||||
|
||||
###############################################################################
|
||||
# You can set a timeout on gestures from start to end. The default is
|
||||
# the value commented below. It can be any value in float secs >= 0.
|
||||
# 0 = no timeout. E.g. set it to 2 secs with "timeout 2".
|
||||
# timeout 1.5
|
||||
15
.config/numen/phrases.phrases
Normal file
15
.config/numen/phrases.phrases
Normal file
@@ -0,0 +1,15 @@
|
||||
right: run bspc node -f east
|
||||
left: run bspc node -f west
|
||||
up: run bspc node -f north
|
||||
down: run bspc node -f south
|
||||
|
||||
git commit: run git commit -m "`date`+'%Y-%m-%d %H:%M:%S'"
|
||||
git push: run git push
|
||||
git commit and push: run git commit -m "`date`+'%Y-%m-%d %H:%M:%S'" \
|
||||
run git push
|
||||
|
||||
mute: run pactl set-sink-mute @DEFAULT_SINK@ toggle
|
||||
|
||||
power off: run export SUDOASKPASS=".scripts/dpass.sh" && sudo -A poweroff
|
||||
reboot: run export SUDOASKPASS=".scripts/dpass.sh" && sudo -A reboot
|
||||
|
||||
3
.config/nvim/init.lua
Normal file
3
.config/nvim/init.lua
Normal file
@@ -0,0 +1,3 @@
|
||||
require("plugins")
|
||||
require("base")
|
||||
require("keymaps")
|
||||
20
.config/nvim/lazy-lock.json
Normal file
20
.config/nvim/lazy-lock.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"gitsigns.nvim": { "branch": "main", "commit": "d195f0c35ced5174d3ecce1c4c8ebb3b5bc23fa9" },
|
||||
"lazy.nvim": { "branch": "main", "commit": "96584866b9c5e998cbae300594d0ccfd0c464627" },
|
||||
"lightline.vim": { "branch": "master", "commit": "1c6b455c0445b8bc1c4c16ba569a43c6348411cc" },
|
||||
"mason-lspconfig.nvim": { "branch": "main", "commit": "9453e3d6cd2ca45d96e20f343e8f1b927364b630" },
|
||||
"mason-registry": { "branch": "main", "commit": "600111e66cbf10da94c1ccc3af1445d86e01ab44" },
|
||||
"mason.nvim": { "branch": "main", "commit": "41e75af1f578e55ba050c863587cffde3556ffa6" },
|
||||
"neo-tree.nvim": { "branch": "v3.x", "commit": "230ff118613fa07138ba579b89d13ec2201530b9" },
|
||||
"nui.nvim": { "branch": "main", "commit": "c9b4de623d19a85b353ff70d2ae9c77143abe69c" },
|
||||
"null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" },
|
||||
"nvim-lspconfig": { "branch": "master", "commit": "f451052bd6804e9e5ccd0ac874d7df8d3d4c55b9" },
|
||||
"nvim-treesitter": { "branch": "master", "commit": "78d75bce03f218ee30aedb6e24e3ec1189a3e9ff" },
|
||||
"nvim-web-devicons": { "branch": "master", "commit": "8b2e5ef9eb8a717221bd96cb8422686d65a09ed5" },
|
||||
"plenary.nvim": { "branch": "master", "commit": "55d9fe89e33efd26f532ef20223e5f9430c8b0c0" },
|
||||
"telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" },
|
||||
"vim-commentary": { "branch": "master", "commit": "e87cd90dc09c2a203e13af9704bd0ef79303d755" },
|
||||
"vim-plugin-ruscmd": { "branch": "master", "commit": "e952abbea092e420b128936a0c284fb522612c3a" },
|
||||
"wal.vim": { "branch": "master", "commit": "c72ba0d18946f29aab9c95eb6975d321c68b3681" },
|
||||
"which-key.nvim": { "branch": "main", "commit": "4433e5ec9a507e5097571ed55c02ea9658fb268a" }
|
||||
}
|
||||
97
.config/nvim/lua/base.lua
Normal file
97
.config/nvim/lua/base.lua
Normal file
@@ -0,0 +1,97 @@
|
||||
local cmd = vim.cmd -- execute Vim commands
|
||||
local exec = vim.api.nvim_exec -- execute Vimscript
|
||||
local g = vim.g -- global variables
|
||||
local opt = vim.opt -- global/buffer/windows-scoped options
|
||||
|
||||
-----------------------------------------------------------
|
||||
-- Главные
|
||||
-----------------------------------------------------------
|
||||
|
||||
-- Командная клавиша
|
||||
vim.keymap.set("n", " ", "<Nop>", { silent = true, remap = false })
|
||||
g.mapleader = " "
|
||||
|
||||
-- Откллючить поддержку со старым vi
|
||||
g.nocompatible = true
|
||||
-- Не делать бекап файла
|
||||
g.nobackup = true
|
||||
g.nowritebackup = true
|
||||
-- Кодировка по умолчанию
|
||||
g.encoding = "utf-8"
|
||||
|
||||
-- Разделитель на 80 символов
|
||||
opt.colorcolumn = '80'
|
||||
-- Словари рус eng
|
||||
opt.spelllang = { 'en_us', 'ru' }
|
||||
-- Включаем нумерацию строк
|
||||
opt.number = true
|
||||
-- Вкл. относительную нумерацию строк
|
||||
opt.relativenumber = true
|
||||
-- Возможность отката назад
|
||||
opt.undofile = true
|
||||
-- vertical split вправо
|
||||
opt.splitright = true
|
||||
-- horizontal split вниз
|
||||
opt.splitbelow = true
|
||||
-- Отступ во время скрола
|
||||
opt.scrolloff = 10
|
||||
-- Показать парную скобку
|
||||
opt.showmatch = true
|
||||
-- Всегда показывать столбец для значков
|
||||
opt.signcolumn = "yes"
|
||||
|
||||
-----------------------------------------------------------
|
||||
-- Цветовая схема
|
||||
-----------------------------------------------------------
|
||||
|
||||
opt.termguicolors = false -- Нужно для поддежки pywal
|
||||
-- Устанавливаем тему из pywal
|
||||
cmd([[
|
||||
highlight ColorColumn ctermbg=16
|
||||
]])
|
||||
|
||||
-----------------------------------------------------------
|
||||
-- Табы и отступы
|
||||
-----------------------------------------------------------
|
||||
|
||||
cmd([[
|
||||
filetype indent plugin on
|
||||
syntax enable
|
||||
]])
|
||||
|
||||
-- Использовать пробелы вместо табуляции
|
||||
opt.expandtab = true
|
||||
-- Количество пробелов используемых для отступа
|
||||
opt.shiftwidth = 4
|
||||
-- 1 таб = 4 пробелам
|
||||
opt.tabstop = 4
|
||||
-- Добавлять отступ на новых строках
|
||||
opt.smartindent = true
|
||||
|
||||
-- Не автокомментировать новые строки
|
||||
cmd [[au BufEnter * set fo-=c fo-=r fo-=o]]
|
||||
|
||||
-- Удалить маркер длинны строки для выбранных типов файлов
|
||||
cmd [[autocmd FileType text,markdown,html,xhtml,javascript setlocal cc=0]]
|
||||
|
||||
-- 2 пробела для выбранных типов файлов
|
||||
cmd [[
|
||||
autocmd FileType xml,html,xhtml,css,scss,javascript,lua,yaml,htmljinja setlocal shiftwidth=2 tabstop=2
|
||||
]]
|
||||
|
||||
-----------------------------------------------------------
|
||||
-- Полезные фишки
|
||||
-----------------------------------------------------------
|
||||
|
||||
-- Запоминает где nvim последний раз редактировал файл
|
||||
cmd [[
|
||||
autocmd BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
|
||||
]]
|
||||
|
||||
-- Подсвечивает на доли секунды скопированную часть текста
|
||||
exec([[
|
||||
augroup YankHighlight
|
||||
autocmd!
|
||||
autocmd TextYankPost * silent! lua vim.highlight.on_yank{higroup="IncSearch", timeout=700}
|
||||
augroup end
|
||||
]], false)
|
||||
113
.config/nvim/lua/keymaps.lua
Normal file
113
.config/nvim/lua/keymaps.lua
Normal file
@@ -0,0 +1,113 @@
|
||||
local default_opts = { noremap = true, silent = true }
|
||||
|
||||
local function map(mode, l, r, opts)
|
||||
opts = opts or default_opts
|
||||
opts.buffer = bufnr
|
||||
vim.keymap.set(mode, l, r, opts)
|
||||
end
|
||||
|
||||
local gs = package.loaded.gitsigns
|
||||
|
||||
-----------------------------------------------------------
|
||||
-- Базовые
|
||||
-----------------------------------------------------------
|
||||
|
||||
-- Системный буфер обмена
|
||||
-- map('v', '<C-y>', '"+y', {})
|
||||
|
||||
-- 'Нажимает' на ESC при быстром нажатии jj
|
||||
map('i', 'оо', '<Esc>')
|
||||
map('i', 'jj', '<Esc>')
|
||||
|
||||
-- Отключение стрелочек. Использовать hjkl
|
||||
map('', '<up>', ':echoe "Use k"<CR>', {noremap = true, silent = false})
|
||||
map('', '<down>', ':echoe "Use j"<CR>', {noremap = true, silent = false})
|
||||
map('', '<left>', ':echoe "Use h"<CR>', {noremap = true, silent = false})
|
||||
map('', '<right>', ':echoe "Use l"<CR>', {noremap = true, silent = false})
|
||||
|
||||
-- Автоформат + сохранение по CTRL-s , как в нормальном, так и в insert режиме
|
||||
-- map('n', '<C-s>', ':Autoformat<CR>:w<CR>', default_opts)
|
||||
-- map('i', '<C-s>', '<esc>:Autoformat<CR>:w<CR>', default_opts)
|
||||
|
||||
-- Переключение вкладок с помощью TAB или shift-tab (akinsho/bufferline.nvim)
|
||||
-- map('n', '<Tab>', ':BufferLineCycleNext<CR>', default_opts)
|
||||
-- map('n', '<S-Tab>', ':BufferLineCyclePrev<CR>', default_opts)
|
||||
|
||||
-- Пролистнуть на страницу вниз / вверх (как в браузерах)
|
||||
-- map('n', '<Space>', '<PageDown> zz', default_opts)
|
||||
-- map('n', '<C-Space>', '<PageUp> zz', default_opts)
|
||||
|
||||
-- " Переводчик рус -> eng
|
||||
-- map('v', 't', '<Plug>(VTranslate)', {})
|
||||
|
||||
-----------------------------------------------------------
|
||||
-- Плагины
|
||||
-----------------------------------------------------------
|
||||
|
||||
-- telescope
|
||||
local builtin =
|
||||
map('n', '<leader>ff', require('telescope.builtin').find_files)
|
||||
map('n', '<leader>fg', require('telescope.builtin').live_grep)
|
||||
-- vim.keymap.set('n', '<leader>fb', builtin.buffers, {})
|
||||
-- vim.keymap.set('n', '<leader>fh', builtin.help_tags, {})
|
||||
|
||||
-- NeoTree
|
||||
map('n', '<leader>t', ':Neotree toggle<CR>')
|
||||
|
||||
-- GitSigns
|
||||
map('n', ']c', function()
|
||||
if vim.wo.diff then return ']c' end
|
||||
vim.schedule(function() gs.next_hunk() end)
|
||||
return '<Ignore>'
|
||||
end, {expr=true})
|
||||
|
||||
map('n', '[c', function()
|
||||
if vim.wo.diff then return '[c' end
|
||||
vim.schedule(function() gs.prev_hunk() end)
|
||||
return '<Ignore>'
|
||||
end, {expr=true})
|
||||
|
||||
map('n', '<leader>gs', gs.stage_hunk)
|
||||
map('n', '<leader>gr', gs.reset_hunk)
|
||||
-- map('v', '<leader>hs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
|
||||
-- map('v', '<leader>hr', function() gs.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end)
|
||||
map('n', '<leader>gS', gs.stage_buffer)
|
||||
map('n', '<leader>gu', gs.undo_stage_hunk)
|
||||
-- map('n', '<leader>hR', gs.reset_buffer)
|
||||
map('n', '<leader>gp', gs.preview_hunk)
|
||||
map('n', '<leader>gb', function() gs.blame_line{full=true} end)
|
||||
-- map('n', '<leader>tb', gs.toggle_current_line_blame)
|
||||
map('n', '<leader>gd', gs.diffthis)
|
||||
map('n', '<leader>gD', function() gs.diffthis('~') end)
|
||||
map('n', '<leader>gtd', gs.toggle_deleted)
|
||||
|
||||
-----------------------------------------------------------
|
||||
-- F1 .. F12
|
||||
-----------------------------------------------------------
|
||||
-- По F1 очищаем последний поиск с подсветкой
|
||||
map('n', '<F1>', ':nohl<CR>')
|
||||
|
||||
-- <F3> перечитать конфигурацию nvim
|
||||
map('n', '<F3>', ':so ~/.config/nvim/init.lua<CR>:so ~/.config/nvim/lua/plugins.lua<CR>:so ~/.config/nvim/lua/base.lua<CR>:so ~/.config/nvim/lua/keymaps.lua<CR>', { noremap = true })
|
||||
|
||||
-- <S-F3> Открыть всю nvim конфигурацию для редактирования
|
||||
map('n', '<S-F3>', ':e ~/.config/nvim/init.lua<CR>:e ~/.config/nvim/lua/plugins.lua<CR>:e ~/.config/nvim/lua/base.lua<CR>:e ~/.config/nvim/lua/keymaps.lua<CR>', { noremap = true })
|
||||
|
||||
-- <F4> Поиск слова под курсором
|
||||
map('n', '<F4>', [[<cmd>lua require('telescope.builtin').grep_string()<cr>]])
|
||||
|
||||
-- <S-F4> Поиск слова в модальном окошке
|
||||
map('n', '<S-F4>', [[<cmd>lua require('telescope.builtin').live_grep()<cr>]])
|
||||
|
||||
-- <F5> разные вариации нумераций строк, можно переключаться
|
||||
map('n', '<F5>', ':exec &nu==&rnu? "se nu!" : "se rnu!"<CR>')
|
||||
|
||||
-- <F6> дерево файлов.
|
||||
map('n', '<F6>', ':NvimTreeRefresh<CR>:NvimTreeToggle<CR>')
|
||||
|
||||
-- <F8> Показ дерева классов и функций, плагин majutsushi/tagbar
|
||||
map('n', '<F8>', ':TagbarToggle<CR>')
|
||||
|
||||
-- <F11> Проверка орфографии для русского и английского языка
|
||||
map('n', '<F11>', ':set spell!<CR>')
|
||||
map('i', '<F11>', '<C-O>:set spell!<CR>')
|
||||
116
.config/nvim/lua/plugins.lua
Normal file
116
.config/nvim/lua/plugins.lua
Normal file
@@ -0,0 +1,116 @@
|
||||
-- Установка lazy.nvim
|
||||
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", -- latest stable release
|
||||
lazypath,
|
||||
})
|
||||
end
|
||||
vim.opt.rtp:prepend(lazypath)
|
||||
|
||||
require("lazy").setup({
|
||||
-- Загрука темы из pywal
|
||||
{ "dylanaraps/wal.vim",
|
||||
priority = 1000,
|
||||
config = function()
|
||||
vim.cmd([[colorscheme wal]])
|
||||
end,
|
||||
},
|
||||
|
||||
-- Подсветка синтаксиса
|
||||
{ "nvim-treesitter/nvim-treesitter",
|
||||
build = ":TSUpdate",
|
||||
config = function ()
|
||||
local configs = require("nvim-treesitter.configs")
|
||||
configs.setup({
|
||||
ensure_installed = {
|
||||
"html", "markdown", "latex",
|
||||
"css", "scss", -- "less", not found
|
||||
"javascript", -- "jsx", not found
|
||||
"typescript", "tsx",
|
||||
"python", "lua",
|
||||
"vim", "vimdoc", "query",
|
||||
"bash",
|
||||
"c",
|
||||
"json", "yaml",
|
||||
},
|
||||
sync_install = false,
|
||||
highlight = { enable = true },
|
||||
incremental_selection = { enable = true },
|
||||
indent = { enable = true },
|
||||
})
|
||||
end
|
||||
},
|
||||
|
||||
{ 'neovim/nvim-lspconfig',
|
||||
dependencies = {
|
||||
'williamboman/mason.nvim',
|
||||
'mason-org/mason-registry',
|
||||
'williamboman/mason-lspconfig.nvim',
|
||||
'jose-elias-alvarez/null-ls.nvim',
|
||||
},
|
||||
config = function()
|
||||
local lspconfig = require('lspconfig')
|
||||
require("mason").setup()
|
||||
require("mason-lspconfig").setup()
|
||||
require("null-ls").setup()
|
||||
end,
|
||||
},
|
||||
|
||||
-- Диалоговое окно поиска
|
||||
{ 'nvim-telescope/telescope.nvim', tag = '0.1.5',
|
||||
dependencies = { 'nvim-lua/plenary.nvim' },
|
||||
lazy = true,
|
||||
},
|
||||
|
||||
-- Файловый менеджер
|
||||
-- ? в окне проводника для горячих клавиш
|
||||
{
|
||||
'nvim-neo-tree/neo-tree.nvim',
|
||||
lazy = true,
|
||||
cmd = 'Neotree',
|
||||
branch = "v3.x",
|
||||
dependencies = {
|
||||
'nvim-lua/plenary.nvim',
|
||||
'nvim-tree/nvim-web-devicons',
|
||||
'MunifTanjim/nui.nvim',
|
||||
-- '3rd/image.nvim',
|
||||
},
|
||||
},
|
||||
|
||||
-- Строка состояния
|
||||
-- (можно конфигурировать, пока не разобрался)
|
||||
{ 'itchyny/lightline.vim' },
|
||||
|
||||
-- Быстрое комментирование
|
||||
-- gcc - закоментировать строку
|
||||
-- (VISUAL) gc - закоментировать выделенные строки
|
||||
{ 'tpope/vim-commentary' },
|
||||
|
||||
-- Поддержка git
|
||||
{ 'lewis6991/gitsigns.nvim',
|
||||
config = function()
|
||||
require('gitsigns').setup()
|
||||
end
|
||||
},
|
||||
|
||||
-- Поддержка русского языка в командном режиме
|
||||
{ 'powerman/vim-plugin-ruscmd' },
|
||||
|
||||
-- Подсветка комбинаций клавиш
|
||||
{ "folke/which-key.nvim",
|
||||
config = function()
|
||||
-- Временно отключен
|
||||
-- Плохо выглядит с pywal base16-gruvbox-hard
|
||||
-- require('which-key').setup()
|
||||
end
|
||||
},
|
||||
}, {
|
||||
defaults = {
|
||||
lazy = false
|
||||
}
|
||||
})
|
||||
6
.config/picom/picom.conf
Normal file
6
.config/picom/picom.conf
Normal file
@@ -0,0 +1,6 @@
|
||||
backend = "glx";
|
||||
|
||||
corner-radius = 10;
|
||||
|
||||
fading = true;
|
||||
fade-delta = 8;
|
||||
95
.config/polybar/config.ini
Normal file
95
.config/polybar/config.ini
Normal file
@@ -0,0 +1,95 @@
|
||||
[colors]
|
||||
background = ${xrdb:color0:#222}
|
||||
foreground = ${xrdb:color7:#222}
|
||||
primary = ${xrdb:color2:#222}
|
||||
secondary = ${xrdb:color5:#222}
|
||||
alert = ${xrdb:color1:#222}
|
||||
disabled = ${xrdb:color4:#222}
|
||||
|
||||
[bar/top_bar]
|
||||
width = 100%
|
||||
height = 20px
|
||||
radius = 5
|
||||
|
||||
background = ${colors.background}
|
||||
foreground = ${colors.foreground}
|
||||
|
||||
line-size = 5pt
|
||||
|
||||
border-size = 5px
|
||||
border-color = #00000000
|
||||
|
||||
padding-left = 1
|
||||
padding-right = 1
|
||||
|
||||
module-margin = 1
|
||||
|
||||
font-0 = CodeNewRoman Nerd Font Mono:pixelsize=10;3
|
||||
|
||||
modules-left = xworkspaces
|
||||
modules-right = pulseaudio xkeyboard date systray
|
||||
|
||||
cursor-click = pointer
|
||||
cursor-scroll = ns-resize
|
||||
|
||||
enable-ipc = true
|
||||
|
||||
wm-restack = bspwm
|
||||
|
||||
[module/xworkspaces]
|
||||
type = internal/xworkspaces
|
||||
|
||||
label-active =
|
||||
label-active-foreground = ${colors.primary}
|
||||
label-active-background = ${colors.background}
|
||||
; label-active-underline = ${colors.primary}
|
||||
label-active-padding = 1
|
||||
|
||||
label-occupied =
|
||||
label-occupied-foreground = ${colors.secondary}
|
||||
label-occupied-padding = 1
|
||||
|
||||
label-urgent =
|
||||
label-urgent-foreground = ${colors.alert}
|
||||
label-urgent-padding = 1
|
||||
|
||||
label-empty =
|
||||
label-empty-foreground = ${colors.foreground}
|
||||
label-empty-padding = 1
|
||||
|
||||
[module/pulseaudio]
|
||||
type = internal/pulseaudio
|
||||
format-volume = <label-volume>
|
||||
label-muted = 0%
|
||||
label-muted-foreground = ${colors.disabled}
|
||||
interval = 1
|
||||
use-ui-max = false
|
||||
click-right = /bin/bash -c "pactl set-sink-mute @DEFAULT_SINK@ toggle"
|
||||
|
||||
[module/xkeyboard]
|
||||
type = internal/xkeyboard
|
||||
|
||||
label-layout = %layout%
|
||||
label-layout-foreground = ${colors.foreground}
|
||||
|
||||
[module/date]
|
||||
type = internal/date
|
||||
interval = 1
|
||||
|
||||
date = %H:%M
|
||||
date-alt = %Y-%m-%d %H:%M:%S
|
||||
|
||||
label = %date%
|
||||
label-foreground = ${colors.primary}
|
||||
|
||||
[module/systray]
|
||||
type = internal/tray
|
||||
|
||||
format-margin = 0pt
|
||||
tray-spacing = 2pt
|
||||
|
||||
[settings]
|
||||
screenchange-reload = true
|
||||
pseudo-transparency = true
|
||||
|
||||
; vim:ft=dosini
|
||||
10
.config/qutebrowser/autoconfig.yml
Normal file
10
.config/qutebrowser/autoconfig.yml
Normal file
@@ -0,0 +1,10 @@
|
||||
# If a config.py file exists, this file is ignored unless it's explicitly loaded
|
||||
# via config.load_autoconfig(). For more information, see:
|
||||
# https://github.com/qutebrowser/qutebrowser/blob/main/doc/help/configuring.asciidoc#loading-autoconfigyml
|
||||
# DO NOT edit this file by hand, qutebrowser will overwrite it.
|
||||
# Instead, create a config.py - see :help for details.
|
||||
|
||||
config_version: 2
|
||||
settings:
|
||||
colors.webpage.darkmode.enabled:
|
||||
global: false
|
||||
0
.config/qutebrowser/bookmarks/urls
Normal file
0
.config/qutebrowser/bookmarks/urls
Normal file
3
.config/qutebrowser/config.py
Normal file
3
.config/qutebrowser/config.py
Normal file
@@ -0,0 +1,3 @@
|
||||
config.load_autoconfig()
|
||||
config.set("colors.webpage.darkmode.enabled", True)
|
||||
config.source('qutewal.py')
|
||||
0
.config/qutebrowser/quickmarks
Normal file
0
.config/qutebrowser/quickmarks
Normal file
325
.config/qutebrowser/qutewal.py
Normal file
325
.config/qutebrowser/qutewal.py
Normal file
@@ -0,0 +1,325 @@
|
||||
import json
|
||||
import os
|
||||
|
||||
home = os.getenv('HOME')
|
||||
colors_relative = '.cache/wal/colors.json'
|
||||
colors_absolute = os.path.join(home, colors_relative)
|
||||
|
||||
if os.path.isfile(colors_absolute):
|
||||
with open(colors_absolute) as colorfile:
|
||||
colors = json.load(colorfile)
|
||||
|
||||
## Background color of the completion widget category headers.
|
||||
## Type: QssColor
|
||||
c.colors.completion.category.bg = colors['special']['background']
|
||||
|
||||
## Bottom border color of the completion widget category headers.
|
||||
## Type: QssColor
|
||||
c.colors.completion.category.border.bottom = colors['special']['background']
|
||||
|
||||
## Top border color of the completion widget category headers.
|
||||
## Type: QssColor
|
||||
c.colors.completion.category.border.top = colors['special']['background']
|
||||
|
||||
## Foreground color of completion widget category headers.
|
||||
## Type: QtColor
|
||||
c.colors.completion.category.fg = colors['special']['foreground']
|
||||
|
||||
## Background color of the completion widget for even rows.
|
||||
## Type: QssColor
|
||||
c.colors.completion.even.bg = colors['special']['background']
|
||||
|
||||
## Background color of the completion widget for odd rows.
|
||||
## Type: QssColor
|
||||
c.colors.completion.odd.bg = colors['special']['background']
|
||||
|
||||
## Text color of the completion widget.
|
||||
## Type: QtColor
|
||||
c.colors.completion.fg = colors['special']['foreground']
|
||||
|
||||
## Background color of the selected completion item.
|
||||
## Type: QssColor
|
||||
c.colors.completion.item.selected.bg = colors['colors']['color5']
|
||||
|
||||
## Bottom border color of the selected completion item.
|
||||
## Type: QssColor
|
||||
c.colors.completion.item.selected.border.bottom = colors['special'][
|
||||
'background']
|
||||
|
||||
## Top border color of the completion widget category headers.
|
||||
## Type: QssColor
|
||||
c.colors.completion.item.selected.border.top = colors['special']['background']
|
||||
|
||||
## Foreground color of the selected completion item.
|
||||
## Type: QtColor
|
||||
c.colors.completion.item.selected.fg = colors['special']['foreground']
|
||||
|
||||
## Foreground color of the matched text in the completion.
|
||||
## Type: QssColor
|
||||
c.colors.completion.match.fg = colors['colors']['color3']
|
||||
|
||||
## Color of the scrollbar in completion view
|
||||
## Type: QssColor
|
||||
c.colors.completion.scrollbar.bg = colors['special']['background']
|
||||
|
||||
## Color of the scrollbar handle in completion view.
|
||||
## Type: QssColor
|
||||
c.colors.completion.scrollbar.fg = colors['special']['foreground']
|
||||
|
||||
## Background color for the download bar.
|
||||
## Type: QssColor
|
||||
c.colors.downloads.bar.bg = colors['special']['background']
|
||||
|
||||
## Background color for downloads with errors.
|
||||
## Type: QtColor
|
||||
c.colors.downloads.error.bg = colors['colors']['color5']
|
||||
|
||||
## Foreground color for downloads with errors.
|
||||
## Type: QtColor
|
||||
c.colors.downloads.error.fg = colors['special']['foreground']
|
||||
|
||||
## Color gradient stop for download backgrounds.
|
||||
## Type: QtColor
|
||||
c.colors.downloads.stop.bg = colors['colors']['color6']
|
||||
|
||||
## Color gradient interpolation system for download backgrounds.
|
||||
## Type: ColorSystem
|
||||
## Valid values:
|
||||
## - rgb: Interpolate in the RGB color system.
|
||||
## - hsv: Interpolate in the HSV color system.
|
||||
## - hsl: Interpolate in the HSL color system.
|
||||
## - none: Don't show a gradient.
|
||||
c.colors.downloads.system.bg = 'none'
|
||||
|
||||
## Background color for hints. Note that you can use a `rgba(...)` value
|
||||
## for transparency.
|
||||
## Type: QssColor
|
||||
c.colors.hints.bg = colors['colors']['color3']
|
||||
|
||||
## Font color for hints.
|
||||
## Type: QssColor
|
||||
c.colors.hints.fg = colors['special']['background']
|
||||
|
||||
## Font color for the matched part of hints.
|
||||
## Type: QssColor
|
||||
c.colors.hints.match.fg = colors['colors']['color4']
|
||||
|
||||
## Background color of the keyhint widget.
|
||||
## Type: QssColor
|
||||
c.colors.keyhint.bg = colors['special']['background']
|
||||
|
||||
## Text color for the keyhint widget.
|
||||
## Type: QssColor
|
||||
c.colors.keyhint.fg = colors['special']['foreground']
|
||||
|
||||
## Highlight color for keys to complete the current keychain.
|
||||
## Type: QssColor
|
||||
c.colors.keyhint.suffix.fg = colors['colors']['color3']
|
||||
|
||||
## Background color of an error message.
|
||||
## Type: QssColor
|
||||
c.colors.messages.error.bg = colors['colors']['color5']
|
||||
|
||||
## Border color of an error message.
|
||||
## Type: QssColor
|
||||
c.colors.messages.error.border = colors['colors']['color5']
|
||||
|
||||
## Foreground color of an error message.
|
||||
## Type: QssColor
|
||||
c.colors.messages.error.fg = colors['special']['foreground']
|
||||
|
||||
## Background color of an info message.
|
||||
## Type: QssColor
|
||||
c.colors.messages.info.bg = colors['colors']['color4']
|
||||
|
||||
## Border color of an info message.
|
||||
## Type: QssColor
|
||||
c.colors.messages.info.border = colors['colors']['color4']
|
||||
|
||||
## Foreground color an info message.
|
||||
## Type: QssColor
|
||||
c.colors.messages.info.fg = colors['special']['foreground']
|
||||
|
||||
## Background color of a warning message.
|
||||
## Type: QssColor
|
||||
c.colors.messages.warning.bg = colors['colors']['color1']
|
||||
|
||||
## Border color of a warning message.
|
||||
## Type: QssColor
|
||||
c.colors.messages.warning.border = colors['colors']['color1']
|
||||
|
||||
## Foreground color a warning message.
|
||||
## Type: QssColor
|
||||
c.colors.messages.warning.fg = colors['special']['foreground']
|
||||
|
||||
## Background color for prompts.
|
||||
## Type: QssColor
|
||||
c.colors.prompts.bg = colors['special']['background']
|
||||
|
||||
# ## Border used around UI elements in prompts.
|
||||
# ## Type: String
|
||||
c.colors.prompts.border = '1px solid ' + colors['special']['background']
|
||||
|
||||
## Foreground color for prompts.
|
||||
## Type: QssColor
|
||||
c.colors.prompts.fg = colors['special']['foreground']
|
||||
|
||||
## Background color for the selected item in filename prompts.
|
||||
## Type: QssColor
|
||||
c.colors.prompts.selected.bg = colors['colors']['color5']
|
||||
|
||||
## Background color of the statusbar in caret mode.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.caret.bg = colors['colors']['color6']
|
||||
|
||||
## Foreground color of the statusbar in caret mode.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.caret.fg = colors['special']['cursor']
|
||||
|
||||
## Background color of the statusbar in caret mode with a selection.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.caret.selection.bg = colors['colors']['color6']
|
||||
|
||||
## Foreground color of the statusbar in caret mode with a selection.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.caret.selection.fg = colors['special']['foreground']
|
||||
|
||||
## Background color of the statusbar in command mode.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.command.bg = colors['special']['background']
|
||||
|
||||
## Foreground color of the statusbar in command mode.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.command.fg = colors['special']['foreground']
|
||||
|
||||
## Background color of the statusbar in private browsing + command mode.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.command.private.bg = colors['special']['background']
|
||||
|
||||
## Foreground color of the statusbar in private browsing + command mode.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.command.private.fg = colors['special']['foreground']
|
||||
|
||||
## Background color of the statusbar in insert mode.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.insert.bg = colors['colors']['color2']
|
||||
|
||||
## Foreground color of the statusbar in insert mode.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.insert.fg = colors['special']['background']
|
||||
|
||||
## Background color of the statusbar.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.normal.bg = colors['special']['background']
|
||||
|
||||
## Foreground color of the statusbar.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.normal.fg = colors['special']['foreground']
|
||||
|
||||
## Background color of the statusbar in passthrough mode.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.passthrough.bg = colors['colors']['color4']
|
||||
|
||||
## Foreground color of the statusbar in passthrough mode.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.passthrough.fg = colors['special']['foreground']
|
||||
|
||||
## Background color of the statusbar in private browsing mode.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.private.bg = colors['special']['background']
|
||||
|
||||
## Foreground color of the statusbar in private browsing mode.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.private.fg = colors['special']['foreground']
|
||||
|
||||
## Background color of the progress bar.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.progress.bg = colors['special']['foreground']
|
||||
|
||||
## Foreground color of the URL in the statusbar on error.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.url.error.fg = colors['colors']['color5']
|
||||
|
||||
## Default foreground color of the URL in the statusbar.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.url.fg = colors['special']['foreground']
|
||||
|
||||
## Foreground color of the URL in the statusbar for hovered links.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.url.hover.fg = colors['colors']['color4']
|
||||
|
||||
## Foreground color of the URL in the statusbar on successful load
|
||||
## (http).
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.url.success.http.fg = colors['special']['foreground']
|
||||
|
||||
## Foreground color of the URL in the statusbar on successful load
|
||||
## (https).
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.url.success.https.fg = colors['colors']['color2']
|
||||
|
||||
## Foreground color of the URL in the statusbar when there's a warning.
|
||||
## Type: QssColor
|
||||
c.colors.statusbar.url.warn.fg = colors['colors']['color1']
|
||||
|
||||
## Background color of the tab bar.
|
||||
## Type: QtColor
|
||||
c.colors.tabs.bar.bg = colors['special']['background']
|
||||
|
||||
## Background color of unselected even tabs.
|
||||
## Type: QtColor
|
||||
c.colors.tabs.even.bg = colors['special']['background']
|
||||
|
||||
## Foreground color of unselected even tabs.
|
||||
## Type: QtColor
|
||||
c.colors.tabs.even.fg = colors['special']['foreground']
|
||||
|
||||
## Color for the tab indicator on errors.
|
||||
## Type: QtColor
|
||||
c.colors.tabs.indicator.error = colors['colors']['color5']
|
||||
|
||||
## Color gradient start for the tab indicator.
|
||||
## Type: QtColor
|
||||
# c.colors.tabs.indicator.start = colors['colors']['color5']
|
||||
|
||||
## Color gradient end for the tab indicator.
|
||||
## Type: QtColor
|
||||
# c.colors.tabs.indicator.stop = colors['colors']['color1']
|
||||
|
||||
## Color gradient interpolation system for the tab indicator.
|
||||
## Type: ColorSystem
|
||||
## Valid values:
|
||||
## - rgb: Interpolate in the RGB color system.
|
||||
## - hsv: Interpolate in the HSV color system.
|
||||
## - hsl: Interpolate in the HSL color system.
|
||||
## - none: Don't show a gradient.
|
||||
c.colors.tabs.indicator.system = 'none'
|
||||
|
||||
## Background color of unselected odd tabs.
|
||||
## Type: QtColor
|
||||
c.colors.tabs.odd.bg = colors['special']['background']
|
||||
|
||||
## Foreground color of unselected odd tabs.
|
||||
## Type: QtColor
|
||||
c.colors.tabs.odd.fg = colors['special']['foreground']
|
||||
|
||||
# ## Background color of selected even tabs.
|
||||
# ## Type: QtColor
|
||||
c.colors.tabs.selected.even.bg = colors['colors']['color4']
|
||||
|
||||
# ## Foreground color of selected even tabs.
|
||||
# ## Type: QtColor
|
||||
c.colors.tabs.selected.even.fg = colors['special']['foreground']
|
||||
|
||||
# ## Background color of selected odd tabs.
|
||||
# ## Type: QtColor
|
||||
c.colors.tabs.selected.odd.bg = colors['colors']['color4']
|
||||
|
||||
# ## Foreground color of selected odd tabs.
|
||||
# ## Type: QtColor
|
||||
c.colors.tabs.selected.odd.fg = colors['special']['foreground']
|
||||
|
||||
## Background color for webpages if unset (or empty to use the theme's
|
||||
## color)
|
||||
## Type: QtColor
|
||||
c.colors.webpage.bg = colors['special']['background']
|
||||
121
.config/sxhkd/sxhkdrc
Normal file
121
.config/sxhkd/sxhkdrc
Normal file
@@ -0,0 +1,121 @@
|
||||
#
|
||||
# wm independent hotkeys
|
||||
#
|
||||
|
||||
# terminal emulator
|
||||
super + Return
|
||||
st
|
||||
|
||||
# program launcher
|
||||
super + @space
|
||||
dmenu_run
|
||||
|
||||
# make sxhkd reload its configuration files:
|
||||
super + Escape
|
||||
pkill -USR1 -x sxhkd
|
||||
|
||||
#
|
||||
# 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}
|
||||
20
.gitignore
vendored
Normal file
20
.gitignore
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
/.*
|
||||
|
||||
|
||||
/Code/*
|
||||
/Downloads/*
|
||||
!/Downloads/Telegram Desktop
|
||||
/Downloads/Telegram Desktop/*
|
||||
/Sync/*
|
||||
/Data/*
|
||||
/Mount/*
|
||||
/Documents/*
|
||||
!*.gitkeep
|
||||
|
||||
!.config
|
||||
!.scripts
|
||||
|
||||
!.xinitrc
|
||||
!.bashrc
|
||||
|
||||
!.gitignore
|
||||
3
.scripts/dpass.sh
Executable file
3
.scripts/dpass.sh
Executable file
@@ -0,0 +1,3 @@
|
||||
#! /bin/bash
|
||||
|
||||
dmenu -p "$1" <&-
|
||||
16
.xinitrc
Normal file
16
.xinitrc
Normal file
@@ -0,0 +1,16 @@
|
||||
setxkbmap -option grp:ctrl_shift_toggle us,ru
|
||||
|
||||
libinput-gestures &
|
||||
|
||||
wal --theme base16-gruvbox-hard
|
||||
|
||||
polybar -r &
|
||||
|
||||
picom &
|
||||
|
||||
pactl -- set-sink-volume 0 25%
|
||||
|
||||
numen ~/.config/numen/phrases.phrases --phraselog=phrases.txt &
|
||||
|
||||
exec sxhkd -c ~/.config/sxhkd/sxhkdrc &
|
||||
exec bspwm
|
||||
0
Code/.gitkeep
Normal file
0
Code/.gitkeep
Normal file
0
Data/.gitkeep
Normal file
0
Data/.gitkeep
Normal file
0
Documents/.gitkeep
Normal file
0
Documents/.gitkeep
Normal file
0
Downloads/.gitkeep
Normal file
0
Downloads/.gitkeep
Normal file
0
Downloads/Telegram Desktop/.gitkeep
Normal file
0
Downloads/Telegram Desktop/.gitkeep
Normal file
0
Sync/.gitkeep
Normal file
0
Sync/.gitkeep
Normal file
Reference in New Issue
Block a user