From b8b56c70da11ec76fa96b49a562730980ee3cd37 Mon Sep 17 00:00:00 2001 From: StepanovPlaton Date: Tue, 26 Dec 2023 02:54:34 +0400 Subject: [PATCH] 25.12.23 #2 --- .config/colorschemes/jellybeans.json | 25 ++++++ .config/colorschemes/vscode.json | 25 ++++++ .config/conky/conky.conf | 89 ++++++++++++++++++++++ .config/conky/icon.conf | 60 +++++++++++++++ .config/conky/weather.conf | 60 +++++++++++++++ .config/mpd/database | Bin 0 -> 23720 bytes .config/mpd/mpd.conf | 25 ++++++ .config/mpd/pid | 1 + .config/mpd/sticker.sql | Bin 0 -> 12288 bytes .config/nvim/lua/plugins/autocomplete.lua | 71 +++++++++++++++++ .config/nvim/lua/plugins/git.lua | 27 ++++--- .config/nvim/lua/plugins/lsp.lua | 82 +------------------- .scripts/artix | 16 ++++ .scripts/ufetch | 83 ++++++++++++++++++++ .scripts/weather | 3 + 15 files changed, 475 insertions(+), 92 deletions(-) create mode 100644 .config/colorschemes/jellybeans.json create mode 100644 .config/colorschemes/vscode.json create mode 100644 .config/conky/conky.conf create mode 100644 .config/conky/icon.conf create mode 100644 .config/conky/weather.conf create mode 100644 .config/mpd/database create mode 100644 .config/mpd/mpd.conf create mode 100644 .config/mpd/pid create mode 100644 .config/mpd/sticker.sql create mode 100644 .config/nvim/lua/plugins/autocomplete.lua create mode 100755 .scripts/artix create mode 100755 .scripts/ufetch create mode 100755 .scripts/weather diff --git a/.config/colorschemes/jellybeans.json b/.config/colorschemes/jellybeans.json new file mode 100644 index 0000000..2342820 --- /dev/null +++ b/.config/colorschemes/jellybeans.json @@ -0,0 +1,25 @@ +{ + "special": { + "background":"#121212", + "foreground":"#adadad", + "cursor":"#d7d7d7" + }, + "colors": { + "color0":"#1c1c1c", + "color1":"#d75f5f", + "color2":"#72a15a", + "color3":"#d8ad4c", + "color4":"#597bc5", + "color5":"#8787af", + "color6":"#4a8382", + "color7":"#adadad", + "color8":"#3b3b3b", + "color9":"#ffb964", + "color10":"#99ad6a", + "color11":"#fad07a", + "color12":"#8197bf", + "color13":"#d7afff", + "color14":"#8fbfdc", + "color15":"#e8e8de" + } +} diff --git a/.config/colorschemes/vscode.json b/.config/colorschemes/vscode.json new file mode 100644 index 0000000..2145a7a --- /dev/null +++ b/.config/colorschemes/vscode.json @@ -0,0 +1,25 @@ +{ + "special": { + "background":"#1e1e1e", + "foreground":"#d4d4d4", + "cursor":"#d4d4d4" + }, + "colors": { + "color0":"#1e1e1e", + "color1":"#f44747", + "color2":"#608b4e", + "color3":"#dcdcaa", + "color4":"#569cd6", + "color5":"#c678dd", + "color6":"#56b6c2", + "color7":"#d4d4d4", + "color8":"#808080", + "color9":"#f44747", + "color10":"#608b4e", + "color11":"#dcdcaa", + "color12":"#569cd6", + "color13":"#c678dd", + "color14":"#56b6c2", + "color15":"#d4d4d4" + } +} diff --git a/.config/conky/conky.conf b/.config/conky/conky.conf new file mode 100644 index 0000000..05af5fd --- /dev/null +++ b/.config/conky/conky.conf @@ -0,0 +1,89 @@ +conky.config = { + -- Положение + alignment = 'top_right', + + -- Не мерцает + double_buffer = true, + + -- Отступы + gap_x = 10, + gap_y = 40, + + -- Шрифт + font = 'Code New Roman Nerd Font:size=10', + + -- Виджет + own_window = true, + own_window_class = 'Conky', + own_window_type = 'desktop', + + -- Прозрачность + own_window_transparent = true, + own_window_argb_visual = true, + + -- own_window_transparent = false, + -- own_window_colour = '171717', + -- own_window_argb_value = 180, + + -- Скорость обновления + update_interval = 1, + + + cpu_avg_samples = 2, + draw_borders = false, + draw_graph_borders = true, + draw_outline = false, + draw_shades = false, + extra_newline = false, + minimum_height = 5, + minimum_width = 5, + net_avg_samples = 2, + no_buffers = true, + out_to_console = false, + out_to_ncurses = false, + out_to_stderr = false, + out_to_x = true, + show_graph_range = false, + show_graph_scale = false, + stippled_borders = 0, + update_interval = 1.0, + uppercase = false, + use_spacer = 'none', + use_xft = true, + + color0='fbf1c7', + color1='b8bb26', +} + +conky.text = [[ +${color1}${goto 25}Date/Time${color0} $hr $color +${color0}Day: ${time %A}${goto 160}Date: ${time %d.%m.%y}$color +${color0}Time: ${time %H:%M:%S}${goto 160}Uptime: ${uptime_short}$color + +${color1}${goto 25}Battery${color0} $hr $color +${color0}Battery \#1: $alignr \ +${execi 60 cat /sys/class/power_supply/BAT0/status} \ +${execibar 60 5,50 cat /sys/class/power_supply/BAT0/capacity} \ +${execi 60 cat /sys/class/power_supply/BAT0/capacity}%$color +${color0}Battery \#2: $alignr \ +${execi 60 cat /sys/class/power_supply/BAT1/status} \ +${execibar 60 5,50 cat /sys/class/power_supply/BAT1/capacity} \ +${execi 60 cat /sys/class/power_supply/BAT1/capacity}%$color + +${color1}󰡰${goto 25}Network${color0} $hr $color +${color0}Hostname: $alignr${exec cat /etc/hostname}$color +${color0}Connection: $alignr\ +${if_match "${exec nmcli -f name c s --active | awk 'FNR == 2' | xargs}" == "Wired connection 1"}Wired${else}${exec nmcli -f name c s --active | awk 'FNR == 2' | xargs}${endif}\ +$color +${color0}Network speed: $alignr${upspeed}/${downspeed}$color + +${color1}${goto 25}CPU${color0} $hr $color +${color0}Frequency (GHz): $alignr$freq_g$color +${color0}CPU: $alignr$cpu% ${cpugraph 15,180} +${color0}RAM: $mem/$memmax${goto 160}SWAP: $swap/$swapmax$color +${color0}$memperc%${goto 32}${memgraph 15,105}${goto 160}$swapperc% ${swapbar 5,85}$color +${color0}Active processes: $running_processes ($processes)$color + +${color1}${goto 25}Storage${color0} $hr $color + / $alignc${fs_used /}/${fs_size /}$alignr${fs_bar 5,120 /} +]] diff --git a/.config/conky/icon.conf b/.config/conky/icon.conf new file mode 100644 index 0000000..0f46bb3 --- /dev/null +++ b/.config/conky/icon.conf @@ -0,0 +1,60 @@ +conky.config = { + -- Положение + alignment = 'middle_middle', + + -- Не мерцает + double_buffer = true, + + -- Отступы + gap_x = 0, + gap_y = 0, + + -- Шрифт + font = 'Code New Roman Nerd Font:size=10', + + -- Виджет + own_window = true, + own_window_class = 'Conky', + own_window_type = 'desktop', + + -- Прозрачность + own_window_transparent = true, + own_window_argb_visual = true, + + -- own_window_transparent = false, + -- own_window_colour = '171717', + -- own_window_argb_value = 180, + + -- Скорость обновления + update_interval = 1, + + + cpu_avg_samples = 2, + draw_borders = false, + draw_graph_borders = true, + draw_outline = false, + draw_shades = false, + extra_newline = false, + minimum_height = 5, + minimum_width = 5, + net_avg_samples = 2, + no_buffers = true, + out_to_console = false, + out_to_ncurses = false, + out_to_stderr = false, + out_to_x = true, + show_graph_range = false, + show_graph_scale = false, + stippled_borders = 0, + update_interval = 1.0, + uppercase = false, + use_spacer = 'none', + use_xft = true, + + color0='fbf1c7', + color1='b8bb26', +} + +conky.text = [[ +${exec ~/.scripts/artix} +]] diff --git a/.config/conky/weather.conf b/.config/conky/weather.conf new file mode 100644 index 0000000..4ed4599 --- /dev/null +++ b/.config/conky/weather.conf @@ -0,0 +1,60 @@ +conky.config = { + -- Положение + alignment = 'top_left', + + -- Не мерцает + double_buffer = true, + + -- Отступы + gap_x = 10, + gap_y = 40, + + -- Шрифт + font = 'Code New Roman Nerd Font:size=10', + + -- Виджет + own_window = true, + own_window_class = 'Conky', + own_window_type = 'desktop', + + -- Прозрачность + own_window_transparent = true, + own_window_argb_visual = true, + + -- own_window_transparent = false, + -- own_window_colour = '171717', + -- own_window_argb_value = 180, + + -- Скорость обновления + update_interval = 1, + + + cpu_avg_samples = 2, + draw_borders = false, + draw_graph_borders = true, + draw_outline = false, + draw_shades = false, + extra_newline = false, + minimum_height = 5, + minimum_width = 5, + net_avg_samples = 2, + no_buffers = true, + out_to_console = false, + out_to_ncurses = false, + out_to_stderr = false, + out_to_x = true, + show_graph_range = false, + show_graph_scale = false, + stippled_borders = 0, + update_interval = 1.0, + uppercase = false, + use_spacer = 'none', + use_xft = true, + + color0='fbf1c7', + color1='b8bb26', +} + +conky.text = [[ +${texeci 3600 curl -s wttr.in/Samara?Mm | sed -n '3,7{s/\d27\[[0-9;]*m//g;s/^..//;s/ *$//;p}'} +]] diff --git a/.config/mpd/database b/.config/mpd/database new file mode 100644 index 0000000000000000000000000000000000000000..609abccffd2f983ecca9347288694dd10995faa0 GIT binary patch literal 23720 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 literal 0 HcmV?d00001 diff --git a/.config/nvim/lua/plugins/autocomplete.lua b/.config/nvim/lua/plugins/autocomplete.lua new file mode 100644 index 0000000..8f56695 --- /dev/null +++ b/.config/nvim/lua/plugins/autocomplete.lua @@ -0,0 +1,71 @@ +return { + { + "hrsh7th/nvim-cmp", + dependencies = { + "hrsh7th/cmp-buffer", + "hrsh7th/cmp-path", + "hrsh7th/cmp-cmdline", + "L3MON4D3/LuaSnip", + "saadparwaiz1/cmp_luasnip", + }, + config = function() + local luasnip = require("luasnip") + local cmp = require("cmp") + + require("luasnip.loaders.from_vscode").lazy_load() + + local has_words_before = function() + unpack = unpack or table.unpack + local line, col = unpack(vim.api.nvim_win_get_cursor(0)) + return col ~= 0 and vim.api.nvim_buf_get_lines(0, line - 1, line, true)[1]:sub(col, col):match("%s") == nil + end + + cmp.setup({ + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + mapping = { + [""] = cmp.mapping(function(fallback) + if cmp.visible() then cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then luasnip.expand_or_jump() + elseif has_words_before() then cmp.complete() + else fallback() end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then cmp.select_prev_item() + elseif luasnip.jumpable(-1) then luasnip.jump(-1) + else fallback() end + end, { "i", "s" }), + [''] = cmp.mapping.complete(), + [''] = cmp.mapping.abort(), + [''] = cmp.mapping.confirm({ select = true }), + }, + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + }, { + { name = 'buffer' }, + }) + }) + cmp.setup.filetype('gitcommit', { + sources = cmp.config.sources( + {{ name = 'git' }}, + {{ name = 'buffer' }} + ) + }) + cmp.setup.cmdline({ '/', '?' }, { + mapping = cmp.mapping.preset.cmdline(), + sources = {{ name = 'buffer' }} + }) + cmp.setup.cmdline(':', { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources( + {{ name = 'path' }}, + {{ name = 'cmdline' }} + ) + }) + end, + }, +} diff --git a/.config/nvim/lua/plugins/git.lua b/.config/nvim/lua/plugins/git.lua index eb5c2e1..55248e4 100644 --- a/.config/nvim/lua/plugins/git.lua +++ b/.config/nvim/lua/plugins/git.lua @@ -18,26 +18,25 @@ return { 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) + map('n', 'gs', gs.stage_hunk) + map('n', 'gr', gs.reset_hunk) + map('v', 'gs', function() gs.stage_hunk {vim.fn.line('.'), vim.fn.line('v')} end) + map('v', 'gr', 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', 'gR', gs.reset_buffer) + map('n', 'gp', gs.preview_hunk) + map('n', 'gb', function() gs.blame_line{full=true} end) + map('n', 'gtb', gs.toggle_current_line_blame) + map('n', 'gd', gs.diffthis) + map('n', 'gD', function() gs.diffthis('~') end) + map('n', 'gtd', gs.toggle_deleted) end } } diff --git a/.config/nvim/lua/plugins/lsp.lua b/.config/nvim/lua/plugins/lsp.lua index 4daac37..a65b8bd 100644 --- a/.config/nvim/lua/plugins/lsp.lua +++ b/.config/nvim/lua/plugins/lsp.lua @@ -43,89 +43,11 @@ return { }) end }, - { - "j-hui/fidget.nvim", - opts = {} - }, - { - "hrsh7th/nvim-cmp", - dependencies = { - "hrsh7th/cmp-buffer", - "hrsh7th/cmp-path", - "hrsh7th/cmp-cmdline", - "L3MON4D3/LuaSnip", - "saadparwaiz1/cmp_luasnip", - }, - config = function() - local luasnip = require("luasnip") - local cmp = require("cmp") - - require("luasnip.loaders.from_vscode").lazy_load() - - cmp.setup({ - snippet = { - expand = function(args) - luasnip.lsp_expand(args.body) - end, - }, - mapping = { - [""] = cmp.mapping(function(fallback) - if cmp.visible() then cmp.select_next_item() - elseif luasnip.expand_or_jumpable() then luasnip.expand_or_jump() - elseif has_words_before() then cmp.complete() - else fallback() end - end, { "i", "s" }), - - [""] = cmp.mapping(function(fallback) - if cmp.visible() then cmp.select_prev_item() - elseif luasnip.jumpable(-1) then luasnip.jump(-1) - else fallback() end - end, { "i", "s" }), - [''] = cmp.mapping.complete(), - [''] = cmp.mapping.abort(), - [''] = cmp.mapping.confirm({ select = true }), - }, - -- mapping = cmp.mapping.preset.insert({ - -- [''] = cmp.mapping.scroll_docs(-4), - -- [''] = cmp.mapping.scroll_docs(4), - -- [''] = cmp.mapping.complete(), - -- [''] = cmp.mapping.abort(), - -- [''] = cmp.mapping.confirm({ select = true }), - -- }), - sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - { name = 'luasnip' }, - }, { - { name = 'buffer' }, - }) - }) - cmp.setup.filetype('gitcommit', { - sources = cmp.config.sources( - {{ name = 'git' }}, - {{ name = 'buffer' }} - ) - }) - cmp.setup.cmdline({ '/', '?' }, { - mapping = cmp.mapping.preset.cmdline(), - sources = {{ name = 'buffer' }} - }) - cmp.setup.cmdline(':', { - mapping = cmp.mapping.preset.cmdline(), - sources = cmp.config.sources( - {{ name = 'path' }}, - {{ name = 'cmdline' }} - ) - }) - end, - }, { "neovim/nvim-lspconfig", event = { "BufReadPre", "BufNewFile" }, dependencies = { "williamboman/mason-lspconfig.nvim", - -- "ms-jpq/coq_nvim", - -- "ms-jpq/coq.artifacts", - -- "ms-jpq/coq.thirdparty" "hrsh7th/cmp-nvim-lsp", }, keys = { @@ -188,4 +110,8 @@ return { ) end, }, + { + "j-hui/fidget.nvim", + opts = {} + }, } diff --git a/.scripts/artix b/.scripts/artix new file mode 100755 index 0000000..887c46a --- /dev/null +++ b/.scripts/artix @@ -0,0 +1,16 @@ +#!/bin/sh +c0="${reset}${blue}" # first color + +## OUTPUT + +cat < /dev/null | cut -d ' ' -f 2)" + [ -n "${wm}" ] && echo "${wm}" && return + done +} + +rcwm="$(parse_rcs "${HOME}/.xinitrc" "${HOME}/.xsession")" + +ui='unknown' +uitype='UI' +if [ -n "${DE}" ]; then + ui="${DE}" + uitype='DE' +elif [ -n "${WM}" ]; then + ui="${WM}" + uitype='WM' +elif [ -n "${XDG_CURRENT_DESKTOP}" ]; then + ui="${XDG_CURRENT_DESKTOP}" + uitype='DE' +elif [ -n "${DESKTOP_SESSION}" ]; then + ui="${DESKTOP_SESSION}" + uitype='DE' +elif [ -n "${rcwm}" ]; then + ui="${rcwm}" + uitype='WM' +elif [ -n "${XDG_SESSION_TYPE}" ]; then + ui="${XDG_SESSION_TYPE}" +fi + +ui="$(basename "${ui}")" + +## DEFINE COLORS + +# probably don't change these +if [ -x "$(command -v tput)" ]; then + bold="$(tput bold 2> /dev/null)" + black="$(tput setaf 0 2> /dev/null)" + red="$(tput setaf 1 2> /dev/null)" + green="$(tput setaf 2 2> /dev/null)" + yellow="$(tput setaf 3 2> /dev/null)" + blue="$(tput setaf 4 2> /dev/null)" + magenta="$(tput setaf 5 2> /dev/null)" + cyan="$(tput setaf 6 2> /dev/null)" + white="$(tput setaf 7 2> /dev/null)" + reset="$(tput sgr0 2> /dev/null)" +fi + +# you can change these +lc="${reset}${bold}${blue}" # labels +nc="${reset}${bold}${blue}" # user and hostname +ic="${reset}" # info +c0="${reset}${blue}" # first color + +## OUTPUT + +cat <