From 90fe9ea0275a47569ff6645e632e01d5a42e044f Mon Sep 17 00:00:00 2001 From: Marat Date: Fri, 18 Apr 2025 21:40:38 +0600 Subject: [PATCH] update --- roles/dots/files/config/kitty/kitty.conf | 6 +- roles/dots/files/config/nvim/init.lua | 2 +- .../files/config/nvim/lua/some/common.lua | 1 - .../dots/files/config/nvim/lua/some/init.lua | 24 +- .../files/config/nvim/lua/some/keybind.lua | 60 +++ .../dots/files/config/nvim/lua/some/lazy.lua | 81 ++++ .../files/config/nvim/lua/some/lsp/linter.lua | 23 ++ .../files/config/nvim/lua/some/lsp/lsp.lua | 49 +++ .../files/config/nvim/lua/some/lsp/mason.lua | 15 + .../config/nvim/lua/some/package/autopair.lua | 1 + .../config/nvim/lua/some/package/harpoon.lua | 12 + .../config/nvim/lua/some/package/hop.lua | 10 + .../config/nvim/lua/some/package/lualine.lua | 41 ++ .../config/nvim/lua/some/package/marks.lua | 35 ++ .../config/nvim/lua/some/package/neotree.lua | 3 + .../nvim/lua/some/package/no-neck-pain.lua | 1 + .../nvim/lua/some/package/telescope.lua | 38 ++ .../nvim/lua/some/package/treesitter.lua | 22 + .../config/nvim/lua/some/package/vgit.lua | 19 + .../files/config/nvim/lua/some/packer.lua | 106 ----- .../config/nvim/lua/some/packer_setting.lua | 282 ------------- .../some/{scripts.lua => scripts/rest.lua} | 16 +- .../dots/files/config/nvim/lua/some/theme.lua | 3 + roles/dots/files/home/.bashrc | 2 +- roles/dots/files/home/.emacs.d/config.org | 144 +++---- roles/dots/files/home/.emacs.d/eshell/alias | 11 + roles/dots/files/home/.emacs.d/eshell/history | 128 ++++++ roles/dots/files/home/.emacs.d/eshell/lastdir | 33 ++ .../dots/files/home/.emacs.d/lan/python-cf.el | 8 +- .../files/home/.emacs.d/lan/python-cf.org | 10 +- roles/dots/files/home/.emacs.d/lib/app.el | 4 +- roles/dots/files/home/.emacs.d/lib/image.el | 16 +- roles/dots/files/home/.emacs.d/lib/pw.el | 2 + roles/dots/files/home/.emacs.d/rest.el | 21 + roles/dots/files/home/.gitconfig | 3 - roles/dots/files/home/.ssh/config | 3 + roles/dots/files/home/.xinitrc | 3 +- roles/dots/files/home/bin/firefox_profiles.sh | 21 +- roles/dots/files/home/bin/main_monitor.sh | 2 - roles/dots/files/home/bin/multi_monitors | 8 - roles/dots/files/home/bin/rofi | 11 +- roles/dots/files/home/bin/scale.py | 2 + roles/dots/files/home/bin/single_monitor.sh | 2 +- roles/dots/files/home/bin/wifi.py | 13 +- roles/dots/files/home/create_backup.sh | 6 + roles/dots/files/home/create_hot_backup.sh | 1 + roles/dots/files/home/st.sh | 8 +- roles/dots/tasks/common_files.yml | 41 +- roles/window_managers/files/sway/config | 383 +++++------------- roles/window_managers/files/sway/outputs | 15 +- save_new_config.sh | 3 + 51 files changed, 892 insertions(+), 862 deletions(-) mode change 100755 => 100644 roles/dots/files/config/nvim/lua/some/init.lua create mode 100644 roles/dots/files/config/nvim/lua/some/keybind.lua create mode 100644 roles/dots/files/config/nvim/lua/some/lazy.lua create mode 100644 roles/dots/files/config/nvim/lua/some/lsp/linter.lua create mode 100644 roles/dots/files/config/nvim/lua/some/lsp/lsp.lua create mode 100644 roles/dots/files/config/nvim/lua/some/lsp/mason.lua create mode 100644 roles/dots/files/config/nvim/lua/some/package/autopair.lua create mode 100644 roles/dots/files/config/nvim/lua/some/package/harpoon.lua create mode 100644 roles/dots/files/config/nvim/lua/some/package/hop.lua create mode 100644 roles/dots/files/config/nvim/lua/some/package/lualine.lua create mode 100644 roles/dots/files/config/nvim/lua/some/package/marks.lua create mode 100644 roles/dots/files/config/nvim/lua/some/package/neotree.lua create mode 100644 roles/dots/files/config/nvim/lua/some/package/no-neck-pain.lua create mode 100644 roles/dots/files/config/nvim/lua/some/package/telescope.lua create mode 100644 roles/dots/files/config/nvim/lua/some/package/treesitter.lua create mode 100644 roles/dots/files/config/nvim/lua/some/package/vgit.lua delete mode 100755 roles/dots/files/config/nvim/lua/some/packer.lua delete mode 100755 roles/dots/files/config/nvim/lua/some/packer_setting.lua rename roles/dots/files/config/nvim/lua/some/{scripts.lua => scripts/rest.lua} (79%) mode change 100755 => 100644 create mode 100644 roles/dots/files/config/nvim/lua/some/theme.lua create mode 100644 roles/dots/files/home/.emacs.d/eshell/alias create mode 100644 roles/dots/files/home/.emacs.d/eshell/history create mode 100644 roles/dots/files/home/.emacs.d/eshell/lastdir create mode 100644 roles/dots/files/home/.emacs.d/lib/pw.el create mode 100644 roles/dots/files/home/.emacs.d/rest.el delete mode 100755 roles/dots/files/home/bin/main_monitor.sh delete mode 100755 roles/dots/files/home/bin/multi_monitors diff --git a/roles/dots/files/config/kitty/kitty.conf b/roles/dots/files/config/kitty/kitty.conf index 0b3ace1..f4f9b05 100644 --- a/roles/dots/files/config/kitty/kitty.conf +++ b/roles/dots/files/config/kitty/kitty.conf @@ -1,12 +1,12 @@ -font_size 12 +font_size 16 font_family JetBrainsMonoNl Nerd Font Mono # font_family Firacode Nerd Font bold_font auto italic_font auto bold_italic_font auto -# background_opacity 1 -background_opacity 0.92 +background_opacity 1 +# background_opacity 0.92 window_padding_width 15 allow_remote_control yes enable_audio_bell no diff --git a/roles/dots/files/config/nvim/init.lua b/roles/dots/files/config/nvim/init.lua index ef832a5..3b43685 100644 --- a/roles/dots/files/config/nvim/init.lua +++ b/roles/dots/files/config/nvim/init.lua @@ -1 +1 @@ -require('some') +require("some") diff --git a/roles/dots/files/config/nvim/lua/some/common.lua b/roles/dots/files/config/nvim/lua/some/common.lua index 761be13..06ab990 100755 --- a/roles/dots/files/config/nvim/lua/some/common.lua +++ b/roles/dots/files/config/nvim/lua/some/common.lua @@ -12,7 +12,6 @@ set.smarttab = true -- set.cursorline = true set.clipboard = 'unnamed,unnamedplus' - set.list = true -- set.lcs='space:·' g.mapleader='\\' diff --git a/roles/dots/files/config/nvim/lua/some/init.lua b/roles/dots/files/config/nvim/lua/some/init.lua old mode 100755 new mode 100644 index 00b1f78..ff87ec9 --- a/roles/dots/files/config/nvim/lua/some/init.lua +++ b/roles/dots/files/config/nvim/lua/some/init.lua @@ -1,5 +1,23 @@ require("some.common") -require("some.packer") -require("some.packer_setting") -require("some.scripts") +require("some.keybind") +require("some.lazy") + +require("some.lsp.lsp") +require("some.lsp.linter") +require("some.lsp.mason") + +require("some.theme") + +require("some.package.treesitter") +require("some.package.telescope") +require("some.package.harpoon") +require("some.package.marks") +require("some.package.no-neck-pain") +require("some.package.hop") +require("some.package.vgit") +require("some.package.autopair") +require("some.package.neotree") +require("some.package.lualine") + +require("some.scripts.rest") diff --git a/roles/dots/files/config/nvim/lua/some/keybind.lua b/roles/dots/files/config/nvim/lua/some/keybind.lua new file mode 100644 index 0000000..1567769 --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/keybind.lua @@ -0,0 +1,60 @@ +vim.api.nvim_set_keymap('n', 'v', 'p', { noremap = true, silent = true }) +vim.api.nvim_set_keymap('c', 'v', '"', { noremap = true, silent = true }) + +-- select all +vim.keymap.set('n', 'sa', 'gg0vG$') + +vim.keymap.set('n', 'cp', ':NoNeckPain') + +vim.keymap.set('n', '', 'zz') +vim.keymap.set('n', '', 'zz') +vim.keymap.set('n', '', 'kzz') +vim.keymap.set('n', '', 'jzz') + +vim.keymap.set('i', 'jk', '') +vim.keymap.set('n', '', '', { silent=true }) + +vim.keymap.set('n', '', ':bn') +vim.keymap.set('n', '', ':bp') + +vim.keymap.set('v', 'p', 'P') +vim.keymap.set('n', '"', ':noh', { silent=true }) + +vim.keymap.set('n', '', ':vertical resize +5') +vim.keymap.set('n', '', ':vertical resize -5') +vim.keymap.set('n', '', ':resize +5') +vim.keymap.set('n', '', ':resize -5') + +vim.keymap.set('n', '', '') +vim.keymap.set('n', '', '') +vim.keymap.set('n', '', '') +vim.keymap.set('n', '', '') + +vim.keymap.set('n', 'll', 'zz') + +vim.keymap.set('n', '', '') +vim.keymap.set('i', '', '') +vim.keymap.set('v', '', '') + +-- save +vim.keymap.set('n', '8', ':w') +vim.keymap.set('n', '2', ':q') +-- exit without save +vim.keymap.set('n', '6', ':q!') + +-- move +vim.keymap.set('n', '7', '_') +vim.keymap.set('n', '9', '$') + +vim.keymap.set('v', '7', '_') +vim.keymap.set('v', '9', '$h') + +vim.keymap.set('n', '.', 'zz') +vim.keymap.set('n', ',', 'zz') + +vim.keymap.set('v', '.', 'zz') +vim.keymap.set('v', ',', 'zz') + +-- split +vim.keymap.set('n', 'sh', ':vs') +vim.keymap.set('n', 'sv', ':sp') diff --git a/roles/dots/files/config/nvim/lua/some/lazy.lua b/roles/dots/files/config/nvim/lua/some/lazy.lua new file mode 100644 index 0000000..a1051f5 --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/lazy.lua @@ -0,0 +1,81 @@ +-- Установка Lazy +local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" +if not vim.loop.fs_stat(lazypath) then + vim.fn.system({ + "git", + "clone", + "--filter=blob:none", + "https://github.com/folke/lazy.nvim.git", + "--branch=stable", + lazypath, + }) +end +vim.opt.rtp:prepend(lazypath) + +require("lazy").setup({ + -- theme + "navarasu/onedark.nvim", + + "nvim-treesitter/nvim-treesitter", + "folke/tokyonight.nvim", + "shaunsingh/nord.nvim", + "mfussenegger/nvim-lint", + { + 'nvim-telescope/telescope.nvim', tag = '0.1.8', + dependencies = { 'nvim-lua/plenary.nvim' } + }, + 'ThePrimeagen/harpoon', + + { + "nvim-treesitter/nvim-treesitter", + build = ":TSUpdate", + }, + 'shortcuts/no-neck-pain.nvim', + { + 'phaazon/hop.nvim', + branch = 'v2', + config = function() + require'hop'.setup { keys = 'etovxqpdygfblzhckisuran' } + end + }, + 'chentoast/marks.nvim', + 'windwp/nvim-autopairs', + + -- lsp + {'williamboman/mason.nvim'}, + {'williamboman/mason-lspconfig.nvim'}, + {'neovim/nvim-lspconfig'}, + {'hrsh7th/cmp-nvim-lsp'}, + {'hrsh7th/nvim-cmp'}, + + -- git + { + 'tanvirtin/vgit.nvim', + dependencies = { 'nvim-lua/plenary.nvim', 'nvim-tree/nvim-web-devicons' }, + -- Lazy loading on 'VimEnter' event is necessary. + event = 'VimEnter', + }, + + -- icons + { + "nvim-neo-tree/neo-tree.nvim", + branch = "v3.x", + dependencies = { + "nvim-lua/plenary.nvim", + "nvim-tree/nvim-web-devicons", -- not strictly required, but recommended + "MunifTanjim/nui.nvim", + -- {"3rd/image.nvim", opts = {}}, -- Optional image support in preview window: See `# Preview Mode` for more information + }, + lazy = false, -- neo-tree will lazily load itself + ---@module "neo-tree" + ---@type neotree.Config? + opts = { + -- fill any relevant options here + }, + }, + + { + 'nvim-lualine/lualine.nvim', + dependencies = { 'nvim-tree/nvim-web-devicons' } + } +}) diff --git a/roles/dots/files/config/nvim/lua/some/lsp/linter.lua b/roles/dots/files/config/nvim/lua/some/lsp/linter.lua new file mode 100644 index 0000000..40b680a --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/lsp/linter.lua @@ -0,0 +1,23 @@ +-- ================ LINTER ================ +local lint = require("lint") + +require('lint').linters.your_linter_name = { + ignore_exitcode = true, -- set this to true if the linter exits with a code != 0 and that's considered normal. +} + +lint.linters_by_ft = { + python = { + "pylint", + "flake8", + "ruff", + }, +} + +vim.api.nvim_create_autocmd({ "BufEnter", "BufWritePost", "InsertLeave" }, { + group = lint_augroup, + callback = function() + lint.try_lint() + end, +}) + +vim.keymap.set("n", "j", "lua vim.diagnostic.open_float()") diff --git a/roles/dots/files/config/nvim/lua/some/lsp/lsp.lua b/roles/dots/files/config/nvim/lua/some/lsp/lsp.lua new file mode 100644 index 0000000..674de75 --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/lsp/lsp.lua @@ -0,0 +1,49 @@ +-- Reserve a space in the gutter +-- This will avoid an annoying layout shift in the screen +vim.opt.signcolumn = 'yes' + +-- Add cmp_nvim_lsp capabilities settings to lspconfig +-- This should be executed before you configure any language server +local lspconfig_defaults = require('lspconfig').util.default_config +lspconfig_defaults.capabilities = vim.tbl_deep_extend( + 'force', + lspconfig_defaults.capabilities, + require('cmp_nvim_lsp').default_capabilities() +) + +-- This is where you enable features that only work +-- if there is a language server active in the file +vim.api.nvim_create_autocmd('LspAttach', { + desc = 'LSP actions', + callback = function(event) + local opts = {buffer = event.buf} + + vim.keymap.set('n', 'K', 'lua vim.lsp.buf.hover()', opts) + vim.keymap.set('n', 'gd', 'lua vim.lsp.buf.definition()', opts) + vim.keymap.set('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) + vim.keymap.set('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) + vim.keymap.set('n', 'go', 'lua vim.lsp.buf.type_definition()', opts) + vim.keymap.set('n', 'gr', 'lua vim.lsp.buf.references()', opts) + vim.keymap.set('n', 'gs', 'lua vim.lsp.buf.signature_help()', opts) + -- vim.keymap.set('n', 'gr', 'lua vim.lsp.buf.rename()', opts) + vim.keymap.set({'n', 'x'}, '', 'lua vim.lsp.buf.format({async = true})', opts) + vim.keymap.set('n', '', 'lua vim.lsp.buf.code_action()', opts) + end, +}) + + +require'lspconfig'.pyright.setup{} + +local cmp = require('cmp') + +cmp.setup({ + sources = { + {name = 'nvim_lsp'}, + }, + mapping = cmp.mapping.preset.insert({}), + snippet = { + expand = function(args) + vim.snippet.expand(args.body) + end, + }, +}) diff --git a/roles/dots/files/config/nvim/lua/some/lsp/mason.lua b/roles/dots/files/config/nvim/lua/some/lsp/mason.lua new file mode 100644 index 0000000..561a6f8 --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/lsp/mason.lua @@ -0,0 +1,15 @@ +require('mason').setup() + +require('mason-lspconfig').setup({ + ensure_installed = { 'pyright' }, -- Установите языковой сервер +}) + +require('mason').setup({ + ensure_installed = { 'flake8', 'pylint', 'black', 'mypy', 'isort' }, -- Установите линтеры и инструменты +}) + +local lspconfig = require('lspconfig') + +lspconfig.pyright.setup{} +lspconfig.pylint.setup{} +lspconfig.flake8.setup{} diff --git a/roles/dots/files/config/nvim/lua/some/package/autopair.lua b/roles/dots/files/config/nvim/lua/some/package/autopair.lua new file mode 100644 index 0000000..5b9c03c --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/package/autopair.lua @@ -0,0 +1 @@ +require('nvim-autopairs').setup{} diff --git a/roles/dots/files/config/nvim/lua/some/package/harpoon.lua b/roles/dots/files/config/nvim/lua/some/package/harpoon.lua new file mode 100644 index 0000000..0e24bdf --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/package/harpoon.lua @@ -0,0 +1,12 @@ +vim.api.nvim_set_keymap("n", "ha", "lua require('harpoon.mark').add_file()", { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "hl", "lua require('harpoon.ui').toggle_quick_menu()", { noremap = true, silent = true }) + +vim.api.nvim_set_keymap("n", "hn", 'lua require("harpoon.ui").nav_next()', { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "hp", 'lua require("harpoon.ui").nav_prev()', { noremap = true, silent = true }) + +vim.api.nvim_set_keymap("n", "h1", 'lua require("harpoon.ui").nav_file(1)', { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "h2", 'lua require("harpoon.ui").nav_file(2)', { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "h3", 'lua require("harpoon.ui").nav_file(3)', { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "h4", 'lua require("harpoon.ui").nav_file(4)', { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "h5", 'lua require("harpoon.ui").nav_file(5)', { noremap = true, silent = true }) +vim.api.nvim_set_keymap("n", "h6", 'lua require("harpoon.ui").nav_file(6)', { noremap = true, silent = true }) diff --git a/roles/dots/files/config/nvim/lua/some/package/hop.lua b/roles/dots/files/config/nvim/lua/some/package/hop.lua new file mode 100644 index 0000000..bc16475 --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/package/hop.lua @@ -0,0 +1,10 @@ +local hop = require('hop') +hop.setup() + +local directions = require('hop.hint').HintDirection +vim.keymap.set('', 'f', function() + hop.hint_char1({ direction = directions.AFTER_CURSOR, current_line_only = true }) +end, {remap=true}) +vim.keymap.set('', 'F', function() + hop.hint_char1({ direction = directions.BEFORE_CURSOR, current_line_only = true }) +end, {remap=true}) diff --git a/roles/dots/files/config/nvim/lua/some/package/lualine.lua b/roles/dots/files/config/nvim/lua/some/package/lualine.lua new file mode 100644 index 0000000..59c67fc --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/package/lualine.lua @@ -0,0 +1,41 @@ +require('lualine').setup { + options = { + icons_enabled = true, + theme = 'auto', + component_separators = { left = '', right = ''}, + section_separators = { left = '', right = ''}, + disabled_filetypes = { + statusline = {}, + winbar = {}, + }, + ignore_focus = {}, + always_divide_middle = true, + always_show_tabline = true, + globalstatus = false, + refresh = { + statusline = 100, + tabline = 100, + winbar = 100, + } + }, + sections = { + lualine_a = {'mode'}, + lualine_b = {'branch', 'diff', 'diagnostics'}, + lualine_c = {'filename'}, + lualine_x = {'encoding', 'fileformat', 'filetype'}, + lualine_y = {'progress'}, + lualine_z = {'location'} + }, + inactive_sections = { + lualine_a = {}, + lualine_b = {}, + lualine_c = {'filename'}, + lualine_x = {'location'}, + lualine_y = {}, + lualine_z = {} + }, + tabline = {}, + winbar = {}, + inactive_winbar = {}, + extensions = {} +} diff --git a/roles/dots/files/config/nvim/lua/some/package/marks.lua b/roles/dots/files/config/nvim/lua/some/package/marks.lua new file mode 100644 index 0000000..2e63828 --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/package/marks.lua @@ -0,0 +1,35 @@ +require'marks'.setup { + -- whether to map keybinds or not. default true + default_mappings = true, + -- which builtin marks to show. default {} + builtin_marks = { ".", "<", ">", "^" }, + -- whether movements cycle back to the beginning/end of buffer. default true + cyclic = true, + -- whether the shada file is updated after modifying uppercase marks. default false + force_write_shada = false, + -- how often (in ms) to redraw signs/recompute mark positions. + -- higher values will have better performance but may cause visual lag, + -- while lower values may cause performance penalties. default 150. + refresh_interval = 250, + -- sign priorities for each type of mark - builtin marks, uppercase marks, lowercase + -- marks, and bookmarks. + -- can be either a table with all/none of the keys, or a single number, in which case + -- the priority applies to all marks. + -- default 10. + sign_priority = { lower=10, upper=15, builtin=8, bookmark=20 }, + -- disables mark tracking for specific filetypes. default {} + excluded_filetypes = {}, + -- disables mark tracking for specific buftypes. default {} + excluded_buftypes = {}, + -- marks.nvim allows you to configure up to 10 bookmark groups, each with its own + -- sign/virttext. Bookmarks can be used to group together positions and quickly move + -- across multiple buffers. default sign is '!@#$%^&*()' (from 0 to 9), and + -- default virt_text is "". + bookmark_0 = { + sign = "⚑", + annotate = false, + }, + mappings = {} +} + +vim.keymap.set('n', 'mc', ':delmarks!', {}) diff --git a/roles/dots/files/config/nvim/lua/some/package/neotree.lua b/roles/dots/files/config/nvim/lua/some/package/neotree.lua new file mode 100644 index 0000000..d5bbbf1 --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/package/neotree.lua @@ -0,0 +1,3 @@ +vim.keymap.set('n', '', ':Neotree reveal') +vim.keymap.set('n', 'cc', ':Neotree show') +vim.keymap.set('n', '', ':Neotree toggle') diff --git a/roles/dots/files/config/nvim/lua/some/package/no-neck-pain.lua b/roles/dots/files/config/nvim/lua/some/package/no-neck-pain.lua new file mode 100644 index 0000000..87e1d3b --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/package/no-neck-pain.lua @@ -0,0 +1 @@ +require("no-neck-pain").setup({ width = 180 }) diff --git a/roles/dots/files/config/nvim/lua/some/package/telescope.lua b/roles/dots/files/config/nvim/lua/some/package/telescope.lua new file mode 100644 index 0000000..595159b --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/package/telescope.lua @@ -0,0 +1,38 @@ +-- lua/telescope.lua +local telescope = require("telescope") + +telescope.setup({ + defaults = { + prompt_prefix = "> ", + selection_caret = "> ", + }, + -- pickers = { + -- find_files = { + -- theme = "dropdown", + -- }, + -- live_grep = { + -- theme = "dropdown", + -- }, + -- }, +}) + +local builtin = require('telescope.builtin') +-- Функция для поиска файлов, исключая скрытые +local function custom_file_search() + builtin.find_files({ + prompt_title = "< Search without hidden files >", + find_command = { + "find", ".", "-type", "f", + "-not", "-path", "*/.*", + "-not", "-path", "./env/*", + "-not", "-path", "./fonts/*", + "-not", "-path", "*.pyc", + "-not", "-path", "./pg_data/*" + }, + }) +end + +vim.keymap.set('n', '', custom_file_search, {}) +vim.keymap.set('n', 'pg', builtin.live_grep, {}) +vim.keymap.set('n', 'bb', builtin.buffers, {}) +vim.keymap.set('n', 'ml', builtin.marks, {}) diff --git a/roles/dots/files/config/nvim/lua/some/package/treesitter.lua b/roles/dots/files/config/nvim/lua/some/package/treesitter.lua new file mode 100644 index 0000000..e0e0b04 --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/package/treesitter.lua @@ -0,0 +1,22 @@ +-- lua/plugins.lua +local status_ok, configs = pcall(require, "nvim-treesitter.configs") +if not status_ok then + return +end + +configs.setup({ + ensure_installed = {"python", "lua", "http", "json", "go"}, + ignore_install = { "" }, -- List of parsers to ignore installing + sync_install = true, + auto_install = true, + highlight = { + enable = true, -- false will disable the whole extension + disable = {}, -- list of language that will be disabled + additional_vim_regex_highlighting = false, + }, + autopairs = { + enable = true, + }, + indent = { enable = true, disable = {} }, +}) + diff --git a/roles/dots/files/config/nvim/lua/some/package/vgit.lua b/roles/dots/files/config/nvim/lua/some/package/vgit.lua new file mode 100644 index 0000000..e541490 --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/package/vgit.lua @@ -0,0 +1,19 @@ +require('vgit').setup({ + keymaps = { + ['n '] = function() require('vgit').hunk_up() end, + ['n '] = function() require('vgit').hunk_down() end, + + -- ['n gs'] = function() require('vgit').buffer_hunk_stage() end, + -- ['n gr'] = function() require('vgit').buffer_hunk_reset() end, + -- ['n gp'] = function() require('vgit').buffer_hunk_preview() end, + -- ['n gb'] = 'buffer_blame_preview', + ['n gdd'] = function() require('vgit').buffer_diff_preview() end, + ['n gdg'] = function() require('vgit').project_diff_preview() end, + ['n gll'] = function() require('vgit').buffer_history_preview() end, + ['n glg'] = function() require('vgit').project_logs_preview() end, + -- ['n gu'] = function() require('vgit').buffer_reset() end, + -- ['n gd'] = function() require('vgit').project_diff_preview() end, + -- ['n gx'] = function() require('vgit').toggle_diff_preference() end, + }, +}) + diff --git a/roles/dots/files/config/nvim/lua/some/packer.lua b/roles/dots/files/config/nvim/lua/some/packer.lua deleted file mode 100755 index 2fb61fe..0000000 --- a/roles/dots/files/config/nvim/lua/some/packer.lua +++ /dev/null @@ -1,106 +0,0 @@ -vim.cmd [[packadd packer.nvim]] - -return require('packer').startup(function(use) - use 'wbthomason/packer.nvim' - -- theme - use 'navarasu/onedark.nvim' - use 'folke/tokyonight.nvim' - use 'shaunsingh/nord.nvim' - use 'morhetz/gruvbox' - use 'ellisonleao/gruvbox.nvim' - use 'Mofiqul/dracula.nvim' - use 'sainnhe/everforest' - use 'catppuccin/nvim' - use 'bluz71/vim-nightfly-colors' - use 'NTBBloodbath/doom-one.nvim' - use 'metalelf0/base16-black-metal-scheme' - use 'EdenEast/nightfox.nvim' - use 'ayu-theme/ayu-vim' - use 'Shatur/neovim-ayu' - use 'lunacookies/vim-colors-xcode' - use 'chriskempson/vim-tomorrow-theme' - use 'maxmx03/solarized.nvim' - use 'antonk52/lake.nvim' - use 'cocopon/iceberg.vim' - - -- auto save - use 'pocco81/auto-save.nvim' - - -- nerd tree - use 'preservim/nerdtree' - use 'Xuyuanp/nerdtree-git-plugin' - - -- git - use 'tpope/vim-fugitive' - use 'airblade/vim-gitgutter' - - -- decorations - use 'ryanoasis/vim-devicons' - use 'nvim-tree/nvim-web-devicons' - use {"shortcuts/no-neck-pain.nvim", tag = "*" } - use { - 'phaazon/hop.nvim', - branch = 'v2', - config = function() - require'hop'.setup { keys = 'etovxqpdygfblzhckisuran' } - end - } - -- func - use 'windwp/nvim-autopairs' - - -- telescope - use { - 'nvim-telescope/telescope.nvim', - tag = '0.1.4', - requires = { {'nvim-lua/plenary.nvim'} } - } - use 'nvim-telescope/telescope-file-browser.nvim' - use 'ThePrimeagen/harpoon' - use { - 'nvim-lualine/lualine.nvim', - requires = { 'kyazdani42/nvim-web-devicons', opt = true } - } - use { - 'nvim-treesitter/nvim-treesitter', - run = ':TSUpdate', - } - use 'dense-analysis/ale' - - -- lsp - -- use { - -- 'VonHeikemen/lsp-zero.nvim', - -- branch = 'v3.x', - -- requires = { - -- {'williamboman/mason.nvim'}, - -- {'williamboman/mason-lspconfig.nvim'}, - - -- {'neovim/nvim-lspconfig'}, - -- {'hrsh7th/nvim-cmp'}, - -- {'hrsh7th/cmp-nvim-lsp'}, - -- {'L3MON4D3/LuaSnip'}, - -- } - -- } - -- snippet - -- use 'honza/vim-snippets' - use { - 'VonHeikemen/lsp-zero.nvim', - requires = { - -- LSP Support - {'neovim/nvim-lspconfig'}, - {'williamboman/mason.nvim'}, - {'williamboman/mason-lspconfig.nvim'}, - - -- Autocompletion - {'hrsh7th/nvim-cmp'}, - {'hrsh7th/cmp-nvim-lsp'}, - {'hrsh7th/cmp-buffer'}, - {'hrsh7th/cmp-path'}, - {'saadparwaiz1/cmp_luasnip'}, -- интеграция с LuaSnip - {'hrsh7th/cmp-nvim-lua'}, - - -- Snippets - {'L3MON4D3/LuaSnip'}, -- сам LuaSnip - {'rafamadriz/friendly-snippets'}, -- набор готовых сниппетов - } - } -end) diff --git a/roles/dots/files/config/nvim/lua/some/packer_setting.lua b/roles/dots/files/config/nvim/lua/some/packer_setting.lua deleted file mode 100755 index 5a1a110..0000000 --- a/roles/dots/files/config/nvim/lua/some/packer_setting.lua +++ /dev/null @@ -1,282 +0,0 @@ --- vim.o.background = 'dark' -- 'dark' or 'light' -vim.o.background = 'dark' -- 'dark' or 'light' --- vim.g.everforest_background = 'hard' --- vim.cmd('colorscheme everforest') --- vim.cmd('colorscheme nord') --- vim.cmd('colorscheme base16-black-metal') --- vim.cmd('colorscheme dracula') --- vim.cmd('colorscheme onedark') --- vim.cmd('colorscheme nightfox') -vim.cmd('colorscheme Tomorrow-Night-Bright') --- vim.cmd('colorscheme doom-one') --- vim.cmd('colorscheme dracula-soft') --- vim.cmd('colorscheme solarized') --- vim.cmd('colorscheme gruvbox') --- vim.cmd('colorscheme iceberg') --- vim.cmd('colorscheme lake') --- vim.cmd('colorscheme tokyonight') --- vim.cmd('highlight Normal guibg=#000000 ctermbg=black') --- vim.api.nvim_set_hl(0, 'CursorLine', { underline = true }) -vim.cmd('highlight Normal guibg=none ctermbg=none') - --- цвет номеров строк -vim.cmd('hi linenr guifg=white') --- vim.cmd('hi linenr guifg=white') --- vim.cmd('hi linenr guifg=#D3C6AA') --- telescope -local builtin = require('telescope.builtin') --- Функция для поиска файлов, исключая скрытые -local function custom_file_search() - builtin.find_files({ - prompt_title = "< Search without hidden files >", - find_command = { - "find", ".", "-type", "f", - "-not", "-path", "*/.*", - "-not", "-path", "./env/*", - "-not", "-path", "./fonts/*", - "-not", "-path", "*.pyc", - "-not", "-path", "./pg_data/*" - }, - }) -end - --- -not \( -path "./dir1" -o -path "./dir2/*" \) - --- lualine -vim.o.showtabline = 2 -require('lualine').setup() - --- nerdtree -vim.cmd('autocmd FileType nerdtree setlocal relativenumber') --- Open the existing NERDTree on each new tab. -vim.cmd("autocmd BufWinEnter * if getcmdwintype() == '' | silent NERDTreeMirror | endif") --- Close the tab if NERDTree is the only window remaining in it. -vim.cmd("autocmd BufEnter * if winnr('$') == 1 && exists('b:NERDTree') && b:NERDTree.isTabTree() | quit | endif") --- Open the existing NERDTree on each new tab. - -vim.g['NERDTreeShowHidden'] = 1 -vim.g['NERDTreeWinSize'] = 50 - - --- # nvim-treesitter -local status_ok, configs = pcall(require, "nvim-treesitter.configs") -if not status_ok then - return -end - -configs.setup({ - ensure_installed = {"python", "lua", "http", "json", "go"}, - ignore_install = { "" }, -- List of parsers to ignore installing - sync_install = true, - auto_install = true, - highlight = { - enable = true, -- false will disable the whole extension - disable = {}, -- list of language that will be disabled - additional_vim_regex_highlighting = false, - }, - autopairs = { - enable = true, - }, - indent = { enable = true, disable = {} }, -}) - - --- hob -local hop = require('hop') -hop.setup() -local directions = require('hop.hint').HintDirection -vim.keymap.set('', 'f', function() - hop.hint_char1({ direction = directions.AFTER_CURSOR, current_line_only = true }) -end, {remap=true}) -vim.keymap.set('', 'F', function() - hop.hint_char1({ direction = directions.BEFORE_CURSOR, current_line_only = true }) -end, {remap=true}) - --- auto pairs --- Настройка символов, для которых будет автоматически вставляться закрывающая скобка -require('nvim-autopairs').setup{} --- require("no-neck-pain").setup({ width = 150 }) -require("no-neck-pain").setup({ width = 180 }) - --- harpoon -print(vim.api.nvim_win_get_width(0)) -require("harpoon").setup({ - menu = { - -- width = vim.api.nvim_win_get_width(0) - 4, - width = 90 - } -}) - --- golang -vim.api.nvim_create_autocmd("FileType", { - pattern = "go", - callback = function() - vim.bo.tabstop = 4 - vim.bo.shiftwidth = 4 - vim.bo.expandtab = false - end, -}) - --- ---------------------- --- lsp --- ---------------------- -local lsp_zero = require('lsp-zero') -lsp_zero.preset({ - name = 'minimal', - set_lsp_keymaps = true, - manage_nvim_cmp = true, - suggest_lsp_servers = false, -}) - - -lsp_zero.on_attach(function(client, bufnr) - -- see :help lsp-zero-keybindings - -- to learn the available actions - lsp_zero.default_keymaps({buffer = bufnr}) -end) - - --- cmp -local cmp = require('cmp') -local cmp_action = require('lsp-zero').cmp_action() -local cmp_format = require('lsp-zero').cmp_format({details = true}) - -require('luasnip.loaders.from_vscode').lazy_load() - -cmp.setup({ - sources = { - {name = 'nvim_lsp'}, - {name = 'luasnip'}, - }, - mapping = cmp.mapping.preset.insert({ - [''] = cmp.mapping.confirm({select = true}), - }), - snippet = { - expand = function(args) - require('luasnip').lsp_expand(args.body) - end, - }, - formatting = cmp_format, -}) - --- to learn how to use mason.nvim --- read this: https://github.com/VonHeikemen/lsp-zero.nvim/blob/v3.x/doc/md/guide/integrate-with-mason-nvim.md -require('mason').setup({}) -require('mason-lspconfig').setup({ - ensure_installed = { 'pyright', 'gopls' }, - handlers = { - function(server_name) - require('lspconfig')[server_name].setup({}) - end, - }, -}) - --- ---------------------- --- Syntax CHeck --- ---------------------- -vim.g.ale_echo_msg_error_str = 'E' -vim.g.ale_echo_msg_warning_str = 'W' -vim.g.ale_echo_msg_format = '[%linter%] %s [%severity%]' - --- ---------------------- --- SHORTCUTS --- ---------------------- - --- vim.keymap.set('n','y','"+y') --- vim.keymap.set('n','yy','"+yy') --- vim.keymap.set('n','Y','"+Y') --- vim.keymap.set('x','y','"+y') --- vim.keymap.set('x','Y','"+Y') - --- vim.keymap.set('n','yy','"gg+yy') --- vim.keymap.set('n','Y','"gg+yG') --- vim.keymap.set('x','y','"+y') --- vim.keymap.set('x','Y','"+Y') - -vim.api.nvim_set_keymap('n', 'v', 'p', { noremap = true, silent = true }) --- vim.api.nvim_set_keymap('i', 'v', 'pa', { noremap = true, silent = true }) -vim.api.nvim_set_keymap('c', 'v', '"', { noremap = true, silent = true }) - -vim.keymap.set('n', 'cp', ':NoNeckPain') - -vim.keymap.set('n', '', 'zz') -vim.keymap.set('n', '', 'zz') -vim.keymap.set('n', '', 'kzz') -vim.keymap.set('n', '', 'jzz') - -vim.keymap.set('i', 'jk', '') -vim.keymap.set('n', '', '', { silent=true }) - -vim.keymap.set('n', '', ':bn') -vim.keymap.set('n', '', ':bp') - -vim.keymap.set('v', 'p', 'P') -vim.keymap.set('n', '"', ':noh', { silent=true }) - -vim.keymap.set('n', '', ':vertical resize +5') -vim.keymap.set('n', '', ':vertical resize -5') -vim.keymap.set('n', '', ':resize +5') -vim.keymap.set('n', '', ':resize -5') - -vim.keymap.set('n', '', '') -vim.keymap.set('n', '', '') -vim.keymap.set('n', '', '') -vim.keymap.set('n', '', '') - -vim.keymap.set('n', 'll', 'zz') - -vim.keymap.set('n', '', '') -vim.keymap.set('i', '', '') -vim.keymap.set('v', '', '') - --- nerd tree -vim.keymap.set('n', '', ':NERDTreeFind') -vim.keymap.set('n', '', ':NERDTreeToggle') - --- save -vim.keymap.set('n', '8', ':w') -vim.keymap.set('n', '2', ':q') --- exit without save -vim.keymap.set('n', '6', ':q!') - --- copy -vim.api.nvim_set_keymap('n', 'vl', ':normal!_v$y ', { noremap = true, silent = true }) -vim.api.nvim_set_keymap('v', '', 'y', {}) - --- move -vim.keymap.set('n', '7', '_') -vim.keymap.set('n', '9', '$') - -vim.keymap.set('v', '7', '_') -vim.keymap.set('v', '9', '$h') - -vim.keymap.set('n', '.', 'zz') -vim.keymap.set('n', ',', 'zz') - -vim.keymap.set('v', '.', 'zz') -vim.keymap.set('v', ',', 'zz') - --- split -vim.keymap.set('n', 'sh', ':vs') -vim.keymap.set('n', 'sv', ':sp') - --- telescope --- vim.keymap.set('n', '', builtin.find_files, {}) -vim.keymap.set('n', '', custom_file_search, {}) -vim.keymap.set('n', 'pg', builtin.live_grep, {}) -vim.keymap.set('n', 'bb', builtin.buffers, {}) -vim.keymap.set('n', 'm', builtin.marks, {}) - --- harpoon -vim.api.nvim_set_keymap("n", "ha", "lua require('harpoon.mark').add_file()", { noremap = true, silent = true }) -vim.api.nvim_set_keymap("n", "hl", "lua require('harpoon.ui').toggle_quick_menu()", { noremap = true, silent = true }) - -vim.api.nvim_set_keymap("n", "hn", 'lua require("harpoon.ui").nav_next()', { noremap = true, silent = true }) -vim.api.nvim_set_keymap("n", "hp", 'lua require("harpoon.ui").nav_prev()', { noremap = true, silent = true }) - -vim.api.nvim_set_keymap("n", "h1", 'lua require("harpoon.ui").nav_file(1)', { noremap = true, silent = true }) -vim.api.nvim_set_keymap("n", "h2", 'lua require("harpoon.ui").nav_file(2)', { noremap = true, silent = true }) -vim.api.nvim_set_keymap("n", "h3", 'lua require("harpoon.ui").nav_file(3)', { noremap = true, silent = true }) -vim.api.nvim_set_keymap("n", "h4", 'lua require("harpoon.ui").nav_file(4)', { noremap = true, silent = true }) -vim.api.nvim_set_keymap("n", "h5", 'lua require("harpoon.ui").nav_file(5)', { noremap = true, silent = true }) -vim.api.nvim_set_keymap("n", "h6", 'lua require("harpoon.ui").nav_file(6)', { noremap = true, silent = true }) diff --git a/roles/dots/files/config/nvim/lua/some/scripts.lua b/roles/dots/files/config/nvim/lua/some/scripts/rest.lua old mode 100755 new mode 100644 similarity index 79% rename from roles/dots/files/config/nvim/lua/some/scripts.lua rename to roles/dots/files/config/nvim/lua/some/scripts/rest.lua index f67f8c0..f660923 --- a/roles/dots/files/config/nvim/lua/some/scripts.lua +++ b/roles/dots/files/config/nvim/lua/some/scripts/rest.lua @@ -1,10 +1,3 @@ --- {"pylint", "flake8", "jedi", "pynvim"} - --- for httpie -function string.starts(String,Start) - return string.sub(String,1,string.len(Start))==Start -end - function getPath(str) -- get dir path from file path -- /home/tmp/test/foo.json --> /home/tmp/test @@ -59,15 +52,12 @@ function rest() vim.api.nvim_buf_set_option(buf, 'modifiable', true) vim.api.nvim_buf_set_lines(buf, 0, 0, true, http_result) - vim.api.nvim_buf_set_option(buf, "ft", "http") - vim.api.nvim_buf_set_option(current_buf, "ft", "http") + vim.api.nvim_buf_set_option(buf, "ft", "json") + -- vim.api.nvim_buf_set_option(current_buf, "ft", "http") end -vim.cmd("au! BufRead,BufNewFile *.http setfiletype http") -vim.api.nvim_set_keymap('v', 'j', ':\'<,\'>!jq . ', { noremap = true, silent = true }) - -vim.api.nvim_create_user_command('Test', close_window_with_response, {}) +vim.api.nvim_set_keymap('v', 'cj', ':\'<,\'>!jq . ', { noremap = true, silent = true }) vim.api.nvim_create_user_command('R', rest, {}) vim.api.nvim_set_keymap("n", "rs", ':R', { noremap = true, silent = true }) diff --git a/roles/dots/files/config/nvim/lua/some/theme.lua b/roles/dots/files/config/nvim/lua/some/theme.lua new file mode 100644 index 0000000..9fed186 --- /dev/null +++ b/roles/dots/files/config/nvim/lua/some/theme.lua @@ -0,0 +1,3 @@ +vim.o.background = 'dark' -- 'dark' or 'light' +vim.cmd[[colorscheme onedark]] +vim.cmd('hi linenr guifg=white') diff --git a/roles/dots/files/home/.bashrc b/roles/dots/files/home/.bashrc index fa67fce..0ad4eaf 100644 --- a/roles/dots/files/home/.bashrc +++ b/roles/dots/files/home/.bashrc @@ -13,7 +13,7 @@ alias grep='grep --color=auto' # PS1="[\w] ($(git branch 2>/dev/null | grep '^*' | colrm 1 2)) \n-> " PS1='[\w]$(git rev-parse --is-inside-work-tree &>/dev/null && echo " ($(git branch 2>/dev/null | grep '\''^\*'\'' | colrm 1 2))") \n-> ' -# PS1='\w$(git rev-parse --is-inside-work-tree &>/dev/null && echo " ($(git branch 2>/dev/null | grep '\''^\*'\'' | colrm 1 2))") $ ' +# PS1='\w$(git rev-parse --is-inside-work-tree &>/dev/null && echo " ($(git branch 2>/dev/null | grep '\''^\*'\'' | colrm 1 2))")$ ' export VISUAL=nvim export MANPAGER='nvim +Man!' diff --git a/roles/dots/files/home/.emacs.d/config.org b/roles/dots/files/home/.emacs.d/config.org index a6c39e1..2bfa503 100644 --- a/roles/dots/files/home/.emacs.d/config.org +++ b/roles/dots/files/home/.emacs.d/config.org @@ -35,6 +35,7 @@ - [[#org-agenda][org agenda]] - [[#org-image][Org Image]] - [[#org-level-size][org level size]] + - [[#org-level-hide][org level hide]] - [[#programming][PROGRAMMING]] - [[#snipets][snipets]] - [[#python][python]] @@ -208,11 +209,19 @@ https://github.com/noctuid/general.el *** KeyBind #+begin_src emacs-lisp +(defun select-all () + "Выделить весь буфер." + (interactive) + (goto-char (point-min)) + (push-mark (point-max) nil t)) + (spc-leader "8" '(save-buffer :wk "save file") "2" '(evil-quit :wk "quit file") "7" '(evil-first-non-blank :wk "first non blank") "9" '(evil-last-non-blank :wk "last non blank") + "s a" '(select-all :wk "last non blank") + "h r r" '((lambda () (interactive) (load-file "/home/fs/.emacs.d/init.el")) :wk "Reload emacs config") ) #+end_src @@ -290,11 +299,6 @@ https://github.com/emacs-evil/evil *** Setup #+begin_src emacs-lisp -;; (use-package ivy -;; :ensure t -;; :init -;; (ivy-mode +1)) - (use-package ivy :ensure t :config @@ -309,33 +313,10 @@ https://github.com/emacs-evil/evil (ivy-use-virtual-buffers t) ;; Показывать виртуальные буферы (например, недавние файлы) (ivy-count-format "(%d/%d) ")) ;; Показывать счетчик выбора - -;; (define-key ivy-minibuffer-map (kbd "C-l") 'ivy-immediate-done) -;; (define-key ivy-minibuffer-map (kbd "RET") 'ivy-done) -;; (define-key ivy-minibuffer-map (kbd "") 'ivy-done) -;; (define-key ivy-minibuffer-map (kbd "C-j") 'ivy-next-line) -;; (define-key ivy-minibuffer-map (kbd "C-k") 'ivy-previous-line) #+end_src ** Counsel #+begin_src emacs-lisp -;; (unless (package-installed-p 'counsel) -;; (package-refresh-contents) -;; (package-install 'counsel)) - -;; (setq counsel-fzf-cmd -;; (concat -;; "find . -type f -not -path '*/.*' 2>&1 | " -;; "grep -v 'Permission denied' | " -;; "grep -v './env/' | " -;; "grep -v './fonts/' | " -;; "grep -v './__pycache__/' | " -;; "grep -v 'site-packages' | " -;; "grep -v '.pyc' | " -;; "grep -v '_minted' | " -;; "fzf -f '%s'")) - - (use-package counsel :ensure t :config @@ -373,26 +354,6 @@ https://github.com/emacs-evil/evil ** dired *** setup -(setq dired-listing-switches "-alXGh --group-directories-first": - Определяет параметры, которые передаются команде ls для отображения содержимого директорий. - -a: Показывает все файлы, включая скрытые (начинающиеся с точки). - -l: Выводит в длинном формате, показывая дополнительные детали (размер, дата, права и т.д.). - -X: Сортирует файлы по расширению. - -G: Отключает цвета в выводе (если они поддерживаются). - -h: Показывает размеры в человекочитаемом формате (например, 1K, 234M). - --group-directories-first: Сначала отображает директории, затем файлы. -(setq dired-recursive-copies 'always): - Устанавливает режим рекурсивного копирования для dired на "всегда", что означает, что при копировании директорий все их содержимое будет скопировано рекурсивно. -(setq dired-recursive-deletes 'top): - Определяет поведение для рекурсивного удаления. Установлено на "top", что означает, что при удалении директории будет предложено удалить её содержимое (файлы и поддиректории) перед удалением самой директории. -(setq global-auto-revert-non-file-buffers t): - Включает автоматическое обновление (рефреш) буферов, не относящихся к файлам, например, таких как dired, если они изменяются на диске. Это помогает поддерживать актуальность отображаемой информации. -(setq auto-revert-verbose nil): - Отключает вывод сообщений о том, что буфер был обновлен. Это может уменьшить количество сообщений в минибуфере. -(setq dired-dwim-target t): - Включает "do what I mean" (DWIM) поведение для установки целевого пути. Это значит, что при использовании команды dired для перемещения или копирования файлов, Emacs попытается автоматически угадать, куда вы хотите переместить файлы, основываясь на контексте. -(setq wdired-allow-to-change-permissions t): - Разрешает изменять права доступа на файлы и директории в режиме wdired, который позволяет редактировать файлы в dired в текстовом режиме. #+begin_src emacs-lisp (require 'dired) (setq dired-listing-switches "-alXGh --group-directories-first" @@ -429,7 +390,6 @@ https://github.com/emacs-evil/evil #+end_src - *** dired subtree #+begin_src emacs-lisp (require 'dired-subtree) @@ -612,17 +572,9 @@ https://github.com/emacs-evil/evil (use-package doom-modeline :ensure t :hook (after-init . doom-modeline-mode) ;; Включает doom-modeline после инициализации Emacs - ;; :custom - ;; (doom-modeline-height 15) ;; Высота строки модели - ;; (doom-modeline-bar-width 3) ;; Ширина индикатора - ;; (doom-modeline-icon t) ;; Показывать иконки (зависит от поддержки шрифтов) - ;; (doom-modeline-major-mode-icon t) ;; Показывать иконку режима - ;; (doom-modeline-minor-modes nil) ;; Скрыть список минорных режимов ) - #+end_src - ** NeoTree *** Setup #+begin_src emacs-lisp @@ -739,7 +691,6 @@ add and switch project (unless (file-exists-p projectile-file-path) (make-empty-file projectile-file-path))) (projectile-add-known-project directory))) - #+end_src @@ -905,9 +856,9 @@ hot keys #+end_src ** Org Temo chet sheet -| Typing the below + TAB | Expands to ... | -|------------------------+---------------------------------------| -| "/home/fs/backups/$backup_name" + + + # large_backup_name=$(date +"%m-%d")"_large_backup.tar.gz" + # tar cf - \ + # /home/fs/Music \ + # /home/fs/Videos | pigz > "/home/fs/backups/$large_backup_name" fi if [ $1 = "restore" ] diff --git a/roles/dots/files/home/create_hot_backup.sh b/roles/dots/files/home/create_hot_backup.sh index 5b005fa..e069c7d 100755 --- a/roles/dots/files/home/create_hot_backup.sh +++ b/roles/dots/files/home/create_hot_backup.sh @@ -15,6 +15,7 @@ then /home/fs/.cache/nvim \ /home/fs/vpn \ /home/fs/suckless \ + /home/fs/.ssh \ /home/fs/.local/DBeaverData | pigz > "/home/fs/backups/$backup_name" fi diff --git a/roles/dots/files/home/st.sh b/roles/dots/files/home/st.sh index fb13fb4..65d7542 100755 --- a/roles/dots/files/home/st.sh +++ b/roles/dots/files/home/st.sh @@ -1,7 +1,11 @@ #!/bin/bash # sh bin/main_monitor.sh -sh bin/multi_monitors -r -sh bin/turbo_boost.sh disable + +if [[ "$1" == "-r" ]]; then + sh bin/multi_monitors -r +fi +# sh bin/turbo_boost.sh disable +# sh bin/pywall.py -r # nitrogen --restore emacs --bg-daemon=main emacs --bg-daemon=documents diff --git a/roles/dots/tasks/common_files.yml b/roles/dots/tasks/common_files.yml index cf8264a..92774f9 100644 --- a/roles/dots/tasks/common_files.yml +++ b/roles/dots/tasks/common_files.yml @@ -1,45 +1,50 @@ - name: Setup home config files - copy: + file: src: "{{ item.src }}" - dest: "/home/{{ main_user.name }}/" + dest: "/home/{{ main_user.name }}/{{ item.dest }}" owner: "{{ main_user.name }}" group: users + state: link loop: - - { src: "files/home/.moc" } - - { src: "files/home/.emacs.d" } - - { src: "files/home/.bashrc" } - - { src: "files/home/.tmux.conf" } - - { src: "files/home/create_backup.sh" } - - { src: "files/home/create_hot_backup.sh" } - - { src: "files/home/.gitconfig" } - - { src: "files/home/.alacritty.toml" } - - { src: "files/home/bin" } + - { src: "files/home/.moc", dest: ".moc" } + - { src: "files/home/.emacs.d", dest: ".emacs.d" } + - { src: "files/home/.bashrc", dest: ".bashrc" } + - { src: "files/home/.tmux.conf", dest: ".tmux.conf" } + - { src: "files/home/create_backup.sh", dest: "create_backup.sh" } + - { src: "files/home/create_hot_backup.sh", dest: "create_hot_backup.sh" } + - { src: "files/home/.gitconfig", dest: ".gitconfig" } + - { src: "files/home/.alacritty.toml", dest: ".alacritty.toml" } + - { src: "files/home/bin", dest: "bin" } - name: Setup .config dir - copy: + file: src: "{{ item.src }}" - dest: "/home/{{ main_user.name }}/.config/" + dest: "/home/{{ main_user.name }}/.config/{{ item.dest }}" owner: "{{ main_user.name }}" group: users + state: link loop: - - { src: "files/config/kitty" } - - { src: "files/config/nvim" } - - { src: "files/config/nsxiv" } + - { src: "files/config/kitty", dest: "kitty" } + - { src: "files/config/nvim", dest: "nvim" } + - { src: "files/config/nsxiv", dest: "nsxiv" } + - name: Copy pacman.conf - copy: + file: src: files/system/pacman.conf dest: /etc/pacman.conf owner: root group: root + state: link - name: Setup home config files when: display_server == 'xorg' - copy: + file: src: "{{ item.src }}" dest: "/home/{{ main_user.name }}/" owner: "{{ main_user.name }}" group: users + state: link loop: - { src: "home/.xinitrc" } - { src: "home/.Xresources" } diff --git a/roles/window_managers/files/sway/config b/roles/window_managers/files/sway/config index d7d5509..992303d 100644 --- a/roles/window_managers/files/sway/config +++ b/roles/window_managers/files/sway/config @@ -1,291 +1,34 @@ -# Default config for sway -# -# Copy this to ~/.config/sway/config and edit it to your liking. -# -# Read `man 5 sway` for a complete reference. - -#default_border none -# default_floating_border none -# titlebar_padding 1 -# titlebar_border_thickness 0 - -# set $menu wofi --show run -set $menu ~/bin/rofi - -### Variables -# -# Logo key. Use Mod1 for Alt. set $mod Mod1 # Home row direction keys, like vim set $left h set $down j set $up k set $right l -# Your preferred terminal emulator -set $term kitty - -### Output configuration -# -# Default wallpaper (more resolutions are available in /usr/share/backgrounds/sway/) -# output * bg /usr/share/backgrounds/sway/Sway_Wallpaper_Blue_1920x1080.png fill -# output * bg /home/fs/Pictures/nord.png fill -output * bg /home/fs/Downloads/wp4330820-distro-wallpapers.png fill -# -# Example configuration: -# -# output HDMI-A-1 resolution 1920x1080 position 1920,0 -# -# You can get the names of your outputs by running: swaymsg -t get_outputs - -### Idle configuration -# -# Example configuration: -# -# exec swayidle -w \ -# timeout 300 'swaylock -f -c 000000' \ -# timeout 600 'swaymsg "output * power off"' resume 'swaymsg "output * power on"' \ -# before-sleep 'swaylock -f -c 000000' -# -# This will lock your screen after 300 seconds of inactivity, then turn off -# your displays after another 300 seconds, and turn your screens back on when -# resumed. It will also lock your screen before your computer goes to sleep. - -### Input configuration -# -# Example configuration: -# -# input "2:14:SynPS/2_Synaptics_TouchPad" { -# dwt enabled -# tap enabled -# natural_scroll enabled -# middle_emulation enabled -# } -# -# You can get the names of your inputs by running: swaymsg -t get_inputs -# Read `man 5 sway-input` for more information about this section. - -### Key bindings -# -# Basics: -# - # Start a terminal - bindsym $mod+Return exec $term - - # Kill focused window - bindsym $mod+q kill - - # Start your launcher - bindsym $mod+r mode $wofi_map - mode "$wofi_map" { - bindsym i exec $menu; mode "default" - bindsym u exec ~/bin/firefox_profiles.sh; mode "default" - } - - bindsym $mod+e mode $emacs_map - mode "$emacs_map" { - bindsym e exec "emacsclient -n -q -c --socket-name=main" ; mode "default" - bindsym o exec "emacsclient -n -q -c --socket-name=other" ; mode "default" - bindsym h exec "emacsclient -n -q -c --socket-name=http /home/fs/Desktop/work/http/"; mode "default" - bindsym d exec "emacsclient -n -q -c --socket-name=documents /home/fs/Documents/" ; mode "default" - bindsym f exec "emacsclient -n -q -c --socket-name=fm /home/fs/" ; mode "default" - bindsym p exec "emacsclient -n -q -c --socket-name=fm /home/fs/Pictures/" ; mode "default" - bindsym v exec "emacsclient -n -q -c --socket-name=fm /home/fs/Videos/" ; mode "default" - bindsym m exec "emacsclient -n -q -c --socket-name=music /home/fs/Music/8/" ; mode "default" - bindsym t exec "emacsclient -n -q -c --socket-name=terminal" ; mode "default" - - # bindsym o exec "emacsclient -n -q -c" ; mode "default" - # bindsym h exec "emacsclient -n -q -c /home/fs/Desktop/work/http/"; mode "default" - # bindsym d exec "emacsclient -n -q -c /home/fs/Documents/" ; mode "default" - # bindsym f exec "emacsclient -n -q -c /home/fs/" ; mode "default" - # bindsym p exec "emacsclient -n -q -c /home/fs/Pictures/ " ; mode "default" - # bindsym v exec "emacsclient -n -q -c /home/fs/Videos/ " ; mode "default" - # bindsym m exec "emacsclient -n -q -c /home/fs/Music/8/ " ; mode "default" - # bindsym t exec "emacsclient -n -q -c" ; mode "default" - } - - # Drag floating windows by holding down $mod and left mouse button. - # Resize them with right mouse button + $mod. - # Despite the name, also works for non-floating windows. - # Change normal to inverse to use left mouse button for resizing and right - # mouse button for dragging. - floating_modifier $mod normal - - # Reload the configuration file - bindsym $mod+Shift+c reload - - # Exit sway (logs you out of your Wayland session) - bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' -# -# Moving around: -# - # Move your focus around - bindsym $mod+$left focus left - bindsym $mod+$down focus down - bindsym $mod+$up focus up - bindsym $mod+$right focus right - # Or use $mod+[up|down|left|right] - bindsym $mod+Left focus left - bindsym $mod+Down focus down - bindsym $mod+Up focus up - bindsym $mod+Right focus right - - # Move the focused window with the same, but add Shift - bindsym $mod+Shift+$left move left - bindsym $mod+Shift+$down move down - bindsym $mod+Shift+$up move up - bindsym $mod+Shift+$right move right - # Ditto, with arrow keys - bindsym $mod+Shift+Left move left - bindsym $mod+Shift+Down move down - bindsym $mod+Shift+Up move up - bindsym $mod+Shift+Right move right -# -# Workspaces: -# - # Switch to workspace - bindsym $mod+1 workspace number 1 - bindsym $mod+2 workspace number 2 - bindsym $mod+3 workspace number 3 - bindsym $mod+4 workspace number 4 - bindsym $mod+5 workspace number 5 - bindsym $mod+6 workspace number 6 - bindsym $mod+7 workspace number 7 - bindsym $mod+8 workspace number 8 - bindsym $mod+9 workspace number 9 - bindsym $mod+0 workspace number 10 - # Move focused container to workspace - bindsym $mod+Shift+1 move container to workspace number 1 - bindsym $mod+Shift+2 move container to workspace number 2 - bindsym $mod+Shift+3 move container to workspace number 3 - bindsym $mod+Shift+4 move container to workspace number 4 - bindsym $mod+Shift+5 move container to workspace number 5 - bindsym $mod+Shift+6 move container to workspace number 6 - bindsym $mod+Shift+7 move container to workspace number 7 - bindsym $mod+Shift+8 move container to workspace number 8 - bindsym $mod+Shift+9 move container to workspace number 9 - bindsym $mod+Shift+0 move container to workspace number 10 - # Note: workspaces can have any name you want, not just numbers. - # We just use 1-10 as the default. -# -# Layout stuff: -# - # You can "split" the current object of your focus with - # $mod+b or $mod+v, for horizontal and vertical splits - # respectively. - bindsym $mod+b splith - bindsym $mod+v splitv - - # Switch the current container between different layout styles - bindsym $mod+s layout stacking - bindsym $mod+w layout tabbed - bindsym $mod+t layout toggle split - - # Make the current focus fullscreen - bindsym $mod+f fullscreen - - # Toggle the current focus between tiling and floating mode - bindsym $mod+Shift+f floating toggle - - # Swap focus between the tiling area and the floating area - bindsym $mod+space focus mode_toggle - - # Move focus to the parent container - bindsym $mod+a focus parent - -# -# Scratchpad: -# - # Sway has a "scratchpad", which is a bag of holding for windows. - # You can send windows there and get them back later. - - # Move the currently focused window to the scratchpad - bindsym $mod+Shift+minus move scratchpad - - # Show the next scratchpad window or hide the focused scratchpad window. - # If there are multiple scratchpad windows, this command cycles through them. - bindsym $mod+minus scratchpad show -# -# Resizing containers: -# -mode "resize" { - # left will shrink the containers width - # right will grow the containers width - # up will shrink the containers height - # down will grow the containers height - bindsym $left resize shrink width 10px - bindsym $down resize grow height 10px - bindsym $up resize shrink height 10px - bindsym $right resize grow width 10px - - # Ditto, with arrow keys - bindsym Left resize shrink width 10px - bindsym Down resize grow height 10px - bindsym Up resize shrink height 10px - bindsym Right resize grow width 10px - - # Return to default mode - bindsym Return mode "default" - bindsym Escape mode "default" -} -# bindsym $mod+r mode "resize" - -# -# Status Bar: -# -# Read `man 5 sway-bar` for more information about this section. -#bar { -# position top -# -# # When the status_command prints a new line to stdout, swaybar updates. -# # The default just shows the current date and time. -# status_command while date +'%Y-%m-%d %X'; do sleep 1; done -# -# colors { -# statusline #ffffff -# background #323232 -# inactive_workspace #32323200 #32323200 #5c5c5c -# } -#} - -include /etc/sway/config.d/* - - -# --- autostart --- -exec swaymsg "workspace 1; exec --daemon" - -} - -# input type:keyboard { -# xkb_layout us,ru -# xkb_options grp:ctrl_alt_toggle,caps:ctrl_modifier -# } +# Запуск программ +bindsym $mod+Return exec alacritty +bindsym $mod+p exec ~/bin/screen.sh +bindsym $mod+space exec ~/bin/change_layout.sh +# bindsym Control+space exec sh /home/fs/bin/change_layout.sh +set $menu ~/bin/rofi input type:keyboard { xkb_layout us,ru - xkb_options grp:ctrl_alt_toggle,caps:ctrl_modifier,grp:alt_space_toggle + xkb_options grp:ctrl_alt_toggle,caps:ctrl_modifier,grp:alt_space_toggle,grp:ctrl_space_toggle } -# --- bar --- -bar { - swaybar_command waybar -} +# close +bindsym $mod+q kill -# --- custom bind --- +# Регулировка яркости +bindsym XF86MonBrightnessUp exec brightnessctl set +5% +bindsym XF86MonBrightnessDown exec brightnessctl set 5%- -# Volume up +# Громкость bindsym XF86AudioRaiseVolume exec "pactl set-sink-volume 0 +5%" - -# Volume down bindsym XF86AudioLowerVolume exec "pactl set-sink-volume 0 -5%" - -# Mute/unmute bindsym XF86AudioMute exec "pactl set-sink-mute 0 toggle" - -# waybar,wofi,sway,grim,brightnessctl - -bindsym $mod+p exec ~/bin/screen.sh -# bindsym $mod+i exec "emacsclient -c" +# Mocp bindsym Mod4+u exec "mocp --seek -5" bindsym Mod4+i exec "mocp --seek +5" bindsym Mod4+j exec "mocp --previous" @@ -293,18 +36,96 @@ bindsym Mod4+k exec "mocp --next" bindsym Mod4+space exec "mocp --toggle-pause" bindsym Mod4+r exec "swaymsg reload" -# -- display -- -bindsym XF86MonBrightnessUp exec brightnessctl set +5% -bindsym XF86MonBrightnessDown exec brightnessctl set 5%- + +# Emacs +bindsym $mod+e mode $emacs_map + mode "$emacs_map" { + bindsym e exec "emacsclient -n -q -c --socket-name=main" ; mode "default" + bindsym o exec "emacsclient -n -q -c --socket-name=other" ; mode "default" + bindsym h exec "emacsclient -n -q -c --socket-name=http /home/fs/Desktop/work/http/"; mode "default" + bindsym d exec "emacsclient -n -q -c --socket-name=documents /home/fs/Documents/" ; mode "default" + bindsym f exec "emacsclient -n -q -c --socket-name=fm /home/fs/" ; mode "default" + bindsym p exec "emacsclient -n -q -c --socket-name=fm /home/fs/Pictures/" ; mode "default" + bindsym v exec "emacsclient -n -q -c --socket-name=fm /home/fs/Videos/" ; mode "default" + bindsym m exec "emacsclient -n -q -c --socket-name=music /home/fs/Music/8/" ; mode "default" + bindsym t exec "emacsclient -n -q -c --socket-name=terminal" ; mode "default" +} -# --- touchpad -# get identifier "swaymsg -t get_inputs" -# input "1267:12410:ELAN1203:00_04F3:307A_Touchpad" { -# dwt enabled -# tap enabled -# middle_emulation enabled -# } +# Программы +bindsym $mod+r mode $wofi_map + mode "$wofi_map" { + bindsym i exec $menu; mode "default" + bindsym u exec ~/bin/firefox_profiles.sh; mode "default" + } + + + + # Exit sway (logs you out of your Wayland session) + bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' + + +# Переключение окон +bindsym $mod+$left focus left +bindsym $mod+$down focus down +bindsym $mod+$up focus up +bindsym $mod+$right focus right + +# move focused window +bindsym $mod+Shift+$left move left +bindsym $mod+Shift+$down move down +bindsym $mod+Shift+$up move up +bindsym $mod+Shift+$right move right + +# Переключение рабочих столов +bindsym $mod+1 workspace number 1 +bindsym $mod+2 workspace number 2 +bindsym $mod+3 workspace number 3 +bindsym $mod+4 workspace number 4 +bindsym $mod+5 workspace number 5 +bindsym $mod+6 workspace number 6 +bindsym $mod+7 workspace number 7 +bindsym $mod+8 workspace number 8 +bindsym $mod+9 workspace number 9 +bindsym $mod+0 workspace number 10 + +# Перемещение окон между рабочими столами +bindsym $mod+Shift+1 move container to workspace number 1 +bindsym $mod+Shift+2 move container to workspace number 2 +bindsym $mod+Shift+3 move container to workspace number 3 +bindsym $mod+Shift+4 move container to workspace number 4 +bindsym $mod+Shift+5 move container to workspace number 5 +bindsym $mod+Shift+6 move container to workspace number 6 +bindsym $mod+Shift+7 move container to workspace number 7 +bindsym $mod+Shift+8 move container to workspace number 8 +bindsym $mod+Shift+9 move container to workspace number 9 +bindsym $mod+Shift+0 move container to workspace number 10 + +# modes +bindsym $mod+b splith +bindsym $mod+v splitv + +# Switch the current container between different layout styles +bindsym $mod+s layout stacking +bindsym $mod+w layout tabbed +bindsym $mod+t layout toggle split +bindsym $mod+f fullscreen +bindsym $mod+Shift+f floating toggle +# bindsym $mod+space focus mode_toggle +bindsym $mod+a focus parent + +# +# Resizing containers: +# +floating_modifier $mod normal + +include /etc/sway/config.d/* +} + +bar { + swaybar_command waybar +} + input "type:touchpad" { dwt enabled dwtp enabled diff --git a/roles/window_managers/files/sway/outputs b/roles/window_managers/files/sway/outputs index 33de814..29c211a 100644 --- a/roles/window_managers/files/sway/outputs +++ b/roles/window_managers/files/sway/outputs @@ -1,7 +1,7 @@ -# Generated by nwg-displays on 2025-02-18 at 01:25:51. Do not edit manually. +# Generated by nwg-displays on 2025-03-08 at 14:02:22. Do not edit manually. -output "eDP-1" { - mode 1920x1080@60.004Hz +output "HDMI-A-1" { + mode 3840x2160@60.0Hz pos 0 0 transform normal scale 1.0 @@ -9,3 +9,12 @@ output "eDP-1" { adaptive_sync off dpms on } +output "eDP-1" { + mode 1920x1080@60.004Hz + pos 3840 0 + transform normal + scale 1.0 + scale_filter nearest + adaptive_sync off + dpms on +} diff --git a/save_new_config.sh b/save_new_config.sh index ac87c20..02ad285 100755 --- a/save_new_config.sh +++ b/save_new_config.sh @@ -5,6 +5,7 @@ cp /home/fs/.bashrc roles/dots/files/home/ cp /home/fs/.gitconfig roles/dots/files/home/ cp /home/fs/.tmux.conf roles/dots/files/home/ cp /home/fs/.xinitrc roles/dots/files/home/ + # rsync -av /home/fs/.moc roles/dots/files/home/ cp /home/fs/scale_vars roles/dots/files/home/ @@ -24,6 +25,8 @@ cp /home/fs/.ssh/config roles/dots/files/home/.ssh/ cp /home/fs/.emacs.d/config.org roles/dots/files/home/.emacs.d/ cp -r /home/fs/.emacs.d/lan roles/dots/files/home/.emacs.d/ cp -r /home/fs/.emacs.d/lib roles/dots/files/home/.emacs.d/ +cp -r /home/fs/.emacs.d/eshell roles/dots/files/home/.emacs.d/ +cp -r /home/fs/.emacs.d/rest.el roles/dots/files/home/.emacs.d/ # ./.config # wayland wm