From 84bcd9fb9ed63a4c64d8a2daaa6dce05c1324629 Mon Sep 17 00:00:00 2001 From: StepanovPlaton Date: Mon, 18 Dec 2023 21:27:13 +0400 Subject: [PATCH] Mon Dec 18 09:27:13 PM +04 2023 +'%Y-%m-%d %H:%M:%S' --- .bashrc | 19 ++ .config/bspwm/bspwmrc | 26 +++ .config/libinput-gestures.conf | 78 +++++++ .config/numen/phrases.phrases | 15 ++ .config/nvim/init.lua | 3 + .config/nvim/lazy-lock.json | 20 ++ .config/nvim/lua/base.lua | 97 +++++++++ .config/nvim/lua/keymaps.lua | 113 ++++++++++ .config/nvim/lua/plugins.lua | 116 ++++++++++ .config/picom/picom.conf | 6 + .config/polybar/config.ini | 95 ++++++++ .config/qutebrowser/autoconfig.yml | 10 + .config/qutebrowser/bookmarks/urls | 0 .config/qutebrowser/config.py | 3 + .config/qutebrowser/quickmarks | 0 .config/qutebrowser/qutewal.py | 325 ++++++++++++++++++++++++++++ .config/sxhkd/sxhkdrc | 121 +++++++++++ .gitignore | 20 ++ .scripts/dpass.sh | 3 + .xinitrc | 16 ++ Code/.gitkeep | 0 Data/.gitkeep | 0 Documents/.gitkeep | 0 Downloads/.gitkeep | 0 Downloads/Telegram Desktop/.gitkeep | 0 Sync/.gitkeep | 0 26 files changed, 1086 insertions(+) create mode 100644 .bashrc create mode 100755 .config/bspwm/bspwmrc create mode 100644 .config/libinput-gestures.conf create mode 100644 .config/numen/phrases.phrases create mode 100644 .config/nvim/init.lua create mode 100644 .config/nvim/lazy-lock.json create mode 100644 .config/nvim/lua/base.lua create mode 100644 .config/nvim/lua/keymaps.lua create mode 100644 .config/nvim/lua/plugins.lua create mode 100644 .config/picom/picom.conf create mode 100644 .config/polybar/config.ini create mode 100644 .config/qutebrowser/autoconfig.yml create mode 100644 .config/qutebrowser/bookmarks/urls create mode 100644 .config/qutebrowser/config.py create mode 100644 .config/qutebrowser/quickmarks create mode 100644 .config/qutebrowser/qutewal.py create mode 100644 .config/sxhkd/sxhkdrc create mode 100644 .gitignore create mode 100755 .scripts/dpass.sh create mode 100644 .xinitrc create mode 100644 Code/.gitkeep create mode 100644 Data/.gitkeep create mode 100644 Documents/.gitkeep create mode 100644 Downloads/.gitkeep create mode 100644 Downloads/Telegram Desktop/.gitkeep create mode 100644 Sync/.gitkeep diff --git a/.bashrc b/.bashrc new file mode 100644 index 0000000..c3afccf --- /dev/null +++ b/.bashrc @@ -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" diff --git a/.config/bspwm/bspwmrc b/.config/bspwm/bspwmrc new file mode 100755 index 0000000..4561504 --- /dev/null +++ b/.config/bspwm/bspwmrc @@ -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 diff --git a/.config/libinput-gestures.conf b/.config/libinput-gestures.conf new file mode 100644 index 0000000..f7f6c08 --- /dev/null +++ b/.config/libinput-gestures.conf @@ -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 +# gesture pinch anticlockwise + +# 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 diff --git a/.config/numen/phrases.phrases b/.config/numen/phrases.phrases new file mode 100644 index 0000000..dd578b4 --- /dev/null +++ b/.config/numen/phrases.phrases @@ -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 + diff --git a/.config/nvim/init.lua b/.config/nvim/init.lua new file mode 100644 index 0000000..d698ea5 --- /dev/null +++ b/.config/nvim/init.lua @@ -0,0 +1,3 @@ +require("plugins") +require("base") +require("keymaps") diff --git a/.config/nvim/lazy-lock.json b/.config/nvim/lazy-lock.json new file mode 100644 index 0000000..b588260 --- /dev/null +++ b/.config/nvim/lazy-lock.json @@ -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" } +} \ No newline at end of file diff --git a/.config/nvim/lua/base.lua b/.config/nvim/lua/base.lua new file mode 100644 index 0000000..0b378ed --- /dev/null +++ b/.config/nvim/lua/base.lua @@ -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", " ", "", { 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) diff --git a/.config/nvim/lua/keymaps.lua b/.config/nvim/lua/keymaps.lua new file mode 100644 index 0000000..72b8b86 --- /dev/null +++ b/.config/nvim/lua/keymaps.lua @@ -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', '', '"+y', {}) + +-- 'Нажимает' на ESC при быстром нажатии jj +map('i', 'оо', '') +map('i', 'jj', '') + +-- Отключение стрелочек. Использовать hjkl +map('', '', ':echoe "Use k"', {noremap = true, silent = false}) +map('', '', ':echoe "Use j"', {noremap = true, silent = false}) +map('', '', ':echoe "Use h"', {noremap = true, silent = false}) +map('', '', ':echoe "Use l"', {noremap = true, silent = false}) + +-- Автоформат + сохранение по CTRL-s , как в нормальном, так и в insert режиме +-- map('n', '', ':Autoformat:w', default_opts) +-- map('i', '', ':Autoformat:w', default_opts) + +-- Переключение вкладок с помощью TAB или shift-tab (akinsho/bufferline.nvim) +-- map('n', '', ':BufferLineCycleNext', default_opts) +-- map('n', '', ':BufferLineCyclePrev', default_opts) + +-- Пролистнуть на страницу вниз / вверх (как в браузерах) +-- map('n', '', ' zz', default_opts) +-- map('n', '', ' zz', default_opts) + +-- " Переводчик рус -> eng +-- map('v', 't', '(VTranslate)', {}) + +----------------------------------------------------------- +-- Плагины +----------------------------------------------------------- + +-- telescope +local builtin = +map('n', 'ff', require('telescope.builtin').find_files) +map('n', 'fg', require('telescope.builtin').live_grep) +-- vim.keymap.set('n', 'fb', builtin.buffers, {}) +-- vim.keymap.set('n', 'fh', builtin.help_tags, {}) + +-- NeoTree +map('n', 't', ':Neotree toggle') + +-- GitSigns +map('n', ']c', function() + if vim.wo.diff then return ']c' end + vim.schedule(function() gs.next_hunk() end) + return '' +end, {expr=true}) + +map('n', '[c', function() + if vim.wo.diff then return '[c' end + vim.schedule(function() gs.prev_hunk() end) + return '' +end, {expr=true}) + +map('n', 'gs', gs.stage_hunk) +map('n', 'gr', gs.reset_hunk) +-- map('v', 'hs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end) +-- map('v', 'hr', function() gs.reset_hunk {vim.fn.line('.'), vim.fn.line('v')} end) +map('n', 'gS', gs.stage_buffer) +map('n', 'gu', gs.undo_stage_hunk) +-- map('n', 'hR', gs.reset_buffer) +map('n', 'gp', gs.preview_hunk) +map('n', 'gb', function() gs.blame_line{full=true} end) +-- map('n', 'tb', gs.toggle_current_line_blame) +map('n', 'gd', gs.diffthis) +map('n', 'gD', function() gs.diffthis('~') end) +map('n', 'gtd', gs.toggle_deleted) + +----------------------------------------------------------- +-- F1 .. F12 +----------------------------------------------------------- +-- По F1 очищаем последний поиск с подсветкой +map('n', '', ':nohl') + +-- перечитать конфигурацию nvim +map('n', '', ':so ~/.config/nvim/init.lua:so ~/.config/nvim/lua/plugins.lua:so ~/.config/nvim/lua/base.lua:so ~/.config/nvim/lua/keymaps.lua', { noremap = true }) + +-- Открыть всю nvim конфигурацию для редактирования +map('n', '', ':e ~/.config/nvim/init.lua:e ~/.config/nvim/lua/plugins.lua:e ~/.config/nvim/lua/base.lua:e ~/.config/nvim/lua/keymaps.lua', { noremap = true }) + +-- Поиск слова под курсором +map('n', '', [[lua require('telescope.builtin').grep_string()]]) + +-- Поиск слова в модальном окошке +map('n', '', [[lua require('telescope.builtin').live_grep()]]) + +-- разные вариации нумераций строк, можно переключаться +map('n', '', ':exec &nu==&rnu? "se nu!" : "se rnu!"') + +-- дерево файлов. +map('n', '', ':NvimTreeRefresh:NvimTreeToggle') + +-- Показ дерева классов и функций, плагин majutsushi/tagbar +map('n', '', ':TagbarToggle') + +-- Проверка орфографии для русского и английского языка +map('n', '', ':set spell!') +map('i', '', ':set spell!') diff --git a/.config/nvim/lua/plugins.lua b/.config/nvim/lua/plugins.lua new file mode 100644 index 0000000..c665879 --- /dev/null +++ b/.config/nvim/lua/plugins.lua @@ -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 + } +}) diff --git a/.config/picom/picom.conf b/.config/picom/picom.conf new file mode 100644 index 0000000..0138e44 --- /dev/null +++ b/.config/picom/picom.conf @@ -0,0 +1,6 @@ +backend = "glx"; + +corner-radius = 10; + +fading = true; +fade-delta = 8; diff --git a/.config/polybar/config.ini b/.config/polybar/config.ini new file mode 100644 index 0000000..cac1e45 --- /dev/null +++ b/.config/polybar/config.ini @@ -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-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 diff --git a/.config/qutebrowser/autoconfig.yml b/.config/qutebrowser/autoconfig.yml new file mode 100644 index 0000000..770e2c0 --- /dev/null +++ b/.config/qutebrowser/autoconfig.yml @@ -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 diff --git a/.config/qutebrowser/bookmarks/urls b/.config/qutebrowser/bookmarks/urls new file mode 100644 index 0000000..e69de29 diff --git a/.config/qutebrowser/config.py b/.config/qutebrowser/config.py new file mode 100644 index 0000000..6d6ffcd --- /dev/null +++ b/.config/qutebrowser/config.py @@ -0,0 +1,3 @@ +config.load_autoconfig() +config.set("colors.webpage.darkmode.enabled", True) +config.source('qutewal.py') diff --git a/.config/qutebrowser/quickmarks b/.config/qutebrowser/quickmarks new file mode 100644 index 0000000..e69de29 diff --git a/.config/qutebrowser/qutewal.py b/.config/qutebrowser/qutewal.py new file mode 100644 index 0000000..483c7df --- /dev/null +++ b/.config/qutebrowser/qutewal.py @@ -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'] diff --git a/.config/sxhkd/sxhkdrc b/.config/sxhkd/sxhkdrc new file mode 100644 index 0000000..80e6fc1 --- /dev/null +++ b/.config/sxhkd/sxhkdrc @@ -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} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5286272 --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +/.* + + +/Code/* +/Downloads/* +!/Downloads/Telegram Desktop +/Downloads/Telegram Desktop/* +/Sync/* +/Data/* +/Mount/* +/Documents/* +!*.gitkeep + +!.config +!.scripts + +!.xinitrc +!.bashrc + +!.gitignore diff --git a/.scripts/dpass.sh b/.scripts/dpass.sh new file mode 100755 index 0000000..4787d7a --- /dev/null +++ b/.scripts/dpass.sh @@ -0,0 +1,3 @@ +#! /bin/bash + +dmenu -p "$1" <&- diff --git a/.xinitrc b/.xinitrc new file mode 100644 index 0000000..61265da --- /dev/null +++ b/.xinitrc @@ -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 diff --git a/Code/.gitkeep b/Code/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Data/.gitkeep b/Data/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Documents/.gitkeep b/Documents/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Downloads/.gitkeep b/Downloads/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Downloads/Telegram Desktop/.gitkeep b/Downloads/Telegram Desktop/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/Sync/.gitkeep b/Sync/.gitkeep new file mode 100644 index 0000000..e69de29