From a4c819a30bbb28f15da5c1d0553a7486d9a21927 Mon Sep 17 00:00:00 2001 From: Sergey Besedin Date: Fri, 13 Oct 2023 01:47:33 +0400 Subject: [PATCH] Update --- config/btop/btop.conf | 28 +- config/fish/conf.d/aliases.fish | 9 +- config/fish/config.fish | 3 + config/fish/fish_variables | 3 +- config/htop/htoprc | 39 ++- config/i3/config | 40 ++- config/kitty/kitty.conf | 17 +- config/kitty/kitty.conf.bak | 78 +++++ config/nvim/init.vim | 490 ++++++++++++++++++++++------- config/redshift.conf | 6 +- config/youtube-dl/config | 3 +- envrc | 1 - gitconfig | 11 + gitignore_global | 1 + mozilla/firefox/profile/updater.sh | 29 +- xinitrc | 8 +- 16 files changed, 603 insertions(+), 163 deletions(-) create mode 100644 config/kitty/kitty.conf.bak diff --git a/config/btop/btop.conf b/config/btop/btop.conf index e9f65b7..9dba319 100644 --- a/config/btop/btop.conf +++ b/config/btop/btop.conf @@ -1,4 +1,4 @@ -#? Config file for btop v. 1.2.6 +#? Config file for btop v. 1.2.13 #* Name of a btop++/bpytop/bashtop formatted ".theme" file, "Default" and "TTY" for builtin themes. #* Themes should be placed in "../share/btop/themes" relative to binary or "$HOME/.config/btop/themes" @@ -16,7 +16,7 @@ force_tty = False #* Define presets for the layout of the boxes. Preset 0 is always all boxes shown with default settings. Max 9 presets. #* Format: "box_name:P:G,box_name:P:G" P=(0 or 1) for alternate positions, G=graph symbol to use for box. -#* Use withespace " " as separator between different presets. +#* Use whitespace " " as separator between different presets. #* Example: "cpu:0:default,mem:0:tty,proc:1:default cpu:0:braille,proc:0:tty" presets = "cpu:1:default,proc:0:default cpu:0:default,mem:0:default,net:0:default cpu:0:block,net:0:tty" @@ -47,20 +47,20 @@ graph_symbol_net = "default" graph_symbol_proc = "default" #* Manually set which boxes to show. Available values are "cpu mem net proc", separate values with whitespace. -shown_boxes = "mem cpu net proc" +shown_boxes = "cpu mem proc net" #* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs. -update_ms = 2000 +update_ms = 500 #* Processes sorting, "pid" "program" "arguments" "threads" "user" "memory" "cpu lazy" "cpu direct", #* "cpu lazy" sorts top process over time (easier to follow), "cpu direct" updates top process directly. -proc_sorting = "command" +proc_sorting = "cpu lazy" #* Reverse sorting order, True or False. proc_reversed = False #* Show processes as a tree. -proc_tree = True +proc_tree = False #* Use the cpu graph colors in the process list. proc_colors = True @@ -74,12 +74,18 @@ proc_per_core = False #* Show process memory as bytes instead of percent. proc_mem_bytes = True +#* Show cpu graph for each process. +proc_cpu_graphs = True + #* Use /proc/[pid]/smaps for memory information in the process info box (very slow but more accurate) proc_info_smaps = False #* Show proc box on left side of screen instead of right. proc_left = False +#* (Linux) Filter processes tied to the Linux kernel(similar behavior to htop). +proc_filter_kernel = False + #* Sets the CPU stat shown in upper half of the CPU graph, "total" is always available. #* Select from a list of detected attributes from the options menu. cpu_graph_upper = "total" @@ -144,6 +150,9 @@ mem_graphs = True #* Show mem box below net box instead of above. mem_below_net = False +#* Count ZFS ARC in cached and available memory. +zfs_arc_cached = True + #* If swap memory should be shown in memory box. show_swap = True @@ -159,6 +168,9 @@ only_physical = True #* Read disks list from /etc/fstab. This also disables only_physical. use_fstab = True +#* Setting this to True will hide all datasets, and only show ZFS pools. (IO stats will be calculated per-pool) +zfs_hide_datasets = False + #* Set to true to show available disk space for privileged users. disk_free_priv = False @@ -166,7 +178,7 @@ disk_free_priv = False show_io_stat = True #* Toggles io mode for disks, showing big graphs for disk read/write speeds. -io_mode = False +io_mode = True #* Set to True to show combined read/write io graphs in io mode. io_graph_combined = False @@ -181,7 +193,7 @@ net_download = 100 net_upload = 100 #* Use network graphs auto rescaling mode, ignores any values set above and rescales down to 10 Kibibytes at the lowest. -net_auto = True +net_auto = False #* Sync the auto scaling for download and upload to whichever currently has the highest scale. net_sync = True diff --git a/config/fish/conf.d/aliases.fish b/config/fish/conf.d/aliases.fish index d93a582..ab6d4eb 100644 --- a/config/fish/conf.d/aliases.fish +++ b/config/fish/conf.d/aliases.fish @@ -1,8 +1,8 @@ # aliases alias sdr='screen -aAdr' -alias ls='exa' -alias la='exa -a' -alias ll='exa -laF' +alias ls='eza' +alias la='eza -a' +alias ll='eza -laF' alias mkpasswd='head -c16 /dev/urandom | xxd -ps' alias mc='mc -b' alias cdp='cd (~/bin/cdp); clear' @@ -23,3 +23,6 @@ alias gitst='git st' # alias 'bin/ledger'='noglob bin/ledger' # # alias icat='kitty +kitten icat' + +alias dark="/usr/bin/kitty +kitten themes --reload-in=all Gruvbox Dark" +alias light="/usr/bin/kitty +kitten themes --reload-in=all Gruvbox Light" diff --git a/config/fish/config.fish b/config/fish/config.fish index a5cbd0f..75e6883 100644 --- a/config/fish/config.fish +++ b/config/fish/config.fish @@ -3,3 +3,6 @@ # direnv set -x DIRENV_LOG_FORMAT "" direnv hook fish | source + +# rbenv +status --is-interactive; and rbenv init - fish | source diff --git a/config/fish/fish_variables b/config/fish/fish_variables index f67ef15..2a34151 100644 --- a/config/fish/fish_variables +++ b/config/fish/fish_variables @@ -13,9 +13,10 @@ SETUVAR __fish_initialized:3400 SETUVAR _fisher_edc_2F_bass_files:/home/krsh/\x2econfig/fish/functions/__bass\x2epy\x1e/home/krsh/\x2econfig/fish/functions/bass\x2efish SETUVAR _fisher_franciscolourenco_2F_done_files:/home/krsh/\x2econfig/fish/conf\x2ed/done\x2efish SETUVAR _fisher_jethrokuan_2F_fzf_files:/home/krsh/\x2econfig/fish/functions/__fzf_cd\x2efish\x1e/home/krsh/\x2econfig/fish/functions/__fzf_complete\x2efish\x1e/home/krsh/\x2econfig/fish/functions/__fzf_complete_preview\x2efish\x1e/home/krsh/\x2econfig/fish/functions/__fzf_find_file\x2efish\x1e/home/krsh/\x2econfig/fish/functions/__fzf_get_dir\x2efish\x1e/home/krsh/\x2econfig/fish/functions/__fzf_open\x2efish\x1e/home/krsh/\x2econfig/fish/functions/__fzf_parse_commandline\x2efish\x1e/home/krsh/\x2econfig/fish/functions/__fzf_reverse_isearch\x2efish\x1e/home/krsh/\x2econfig/fish/functions/__fzfcmd\x2efish\x1e/home/krsh/\x2econfig/fish/conf\x2ed/fzf\x2efish -SETUVAR _fisher_jorgebucaran_2F_fisher_files:/home/krsh/\x2econfig/fish/functions/fisher\x2efish\x1e/home/krsh/\x2econfig/fish/completions/fisher\x2efish +SETUVAR _fisher_jorgebucaran_2F_fisher_files:\x7e/\x2econfig/fish/functions/fisher\x2efish\x1e\x7e/\x2econfig/fish/completions/fisher\x2efish SETUVAR _fisher_jorgebucaran_2F_spark_2E_fish_files:/home/krsh/\x2econfig/fish/functions/spark\x2efish\x1e/home/krsh/\x2econfig/fish/completions/spark\x2efish SETUVAR _fisher_plugins:jorgebucaran/fisher\x1ejethrokuan/fzf\x1ejorgebucaran/spark\x2efish\x1efranciscolourenco/done\x1eedc/bass +SETUVAR _fisher_upgraded_to_4_4:\x1d SETUVAR fish_color_autosuggestion:969896 SETUVAR fish_color_cancel:\x2dr SETUVAR fish_color_command:7aa6da diff --git a/config/htop/htoprc b/config/htop/htoprc index 3503253..b37f88a 100644 --- a/config/htop/htoprc +++ b/config/htop/htoprc @@ -1,30 +1,26 @@ # Beware! This file is rewritten by htop when settings are changed in the interface. # The parser is also very primitive, and not human-friendly. -htop_version=3.1.2 -config_reader_min_version=2 +htop_version=3.2.2 +config_reader_min_version=3 fields=0 48 17 18 38 39 40 2 46 47 49 1 -sort_key=46 -sort_direction=-1 -tree_sort_key=47 -tree_sort_direction=-1 hide_kernel_threads=0 hide_userland_threads=0 +hide_running_in_container=0 shadow_other_users=1 show_thread_names=0 show_program_path=0 highlight_base_name=1 highlight_deleted_exe=1 +shadow_distribution_path_prefix=0 highlight_megabytes=1 highlight_threads=1 highlight_changes=0 highlight_changes_delay_secs=5 find_comm_in_cmdline=1 strip_exe_from_cmdline=1 -show_merged_command=0 -tree_view=0 -tree_view_always_by_pid=0 -all_branches_collapsed=0 +show_merged_command=1 header_margin=1 +screen_tabs=0 detailed_cpu_time=1 cpu_count_from_one=0 show_cpu_usage=1 @@ -40,3 +36,26 @@ column_meters_0=AllCPUs2 Memory Swap column_meter_modes_0=1 1 1 column_meters_1=Tasks LoadAverage Uptime column_meter_modes_1=2 2 2 +tree_view=0 +sort_key=47 +tree_sort_key=47 +sort_direction=-1 +tree_sort_direction=-1 +tree_view_always_by_pid=0 +all_branches_collapsed=0 +screen:Main=PID USER PRIORITY NICE M_VIRT M_RESIDENT M_SHARE STATE PERCENT_CPU PERCENT_MEM TIME Command +.sort_key=PERCENT_MEM +.tree_sort_key=PERCENT_MEM +.tree_view=0 +.tree_view_always_by_pid=0 +.sort_direction=-1 +.tree_sort_direction=-1 +.all_branches_collapsed=0 +screen:I/O=PID USER IO_PRIORITY IO_RATE IO_READ_RATE IO_WRITE_RATE +.sort_key=IO_RATE +.tree_sort_key=PID +.tree_view=0 +.tree_view_always_by_pid=0 +.sort_direction=-1 +.tree_sort_direction=1 +.all_branches_collapsed=0 diff --git a/config/i3/config b/config/i3/config index 917d878..c5e4a3d 100644 --- a/config/i3/config +++ b/config/i3/config @@ -56,8 +56,8 @@ set $darkgray #282828 # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod -default_border normal 1 -default_floating_border pixel 1 +default_border pixel 2 +default_floating_border pixel 2 hide_edge_borders smart focus_follows_mouse no @@ -65,16 +65,17 @@ workspace_auto_back_and_forth no workspace_layout default for_window [class="(?i)firefox"] move container to workspace $ws1 +for_window [title="(?i)Picture-in-Picture"] floating enable border none for_window [class="(?i)telegram"] move container to workspace $ws2 for_window [class="mpv"] floating enable border none for_window [class="(?i)zooout"] floating enable for_window [class="(?i)netsurf"] floating enable for_window [class="(?i)proton-bridge"] move container to workspace $ws9 floating enable border none -for_window [class="(?i)cadence"] move container to workspace $ws7 floating enable -for_window [class="(?i)catia"] move container to workspace $ws7 floating enable -for_window [class="(?i)reaper"] move container to workspace $ws7 -for_window [class="(?i)renoise"] move container to workspace $ws7 +# for_window [class="(?i)cadence"] move container to workspace $ws7 floating enable +# for_window [class="(?i)catia"] move container to workspace $ws7 floating enable +# for_window [class="(?i)reaper"] move container to workspace $ws7 +# for_window [class="(?i)renoise"] move container to workspace $ws7 for_window [class="(?i)uvi"] floating enable for_window [class="(?i)arturia"] floating enable for_window [class="(?i)ilok"] floating enable @@ -93,7 +94,7 @@ for_window [class="Space"] floating enable #### i3 appearance #### ####################### # Gruvbox Theme brdr bg text indictr chld_brdr -client.focused $green $green $bg $green $green +client.focused $orange $orange $bg $green $orange client.focused_inactive $blue $blue $bg $blue $blue client.unfocused $bg $bg $bg $bg $bg client.urgent $red $red $bg $red $red @@ -161,7 +162,7 @@ bindsym $mod+Shift+w layout toggle split # toggle tiling / floating bindsym $mod+Shift+space floating toggle -bindsym $mod+Shift+0 sticky toggle +bindsym $mod+Shift+equal sticky toggle # Make the currently focused window a scratchpad bindsym $mod+Shift+minus move scratchpad @@ -203,7 +204,15 @@ bindsym $mod+9 workspace $ws9 bindsym $mod+0 workspace $ws10 workspace $ws1 output primary -workspace $ws10 output LVDS1 +workspace $ws2 output primary +workspace $ws3 output primary +workspace $ws4 output primary +workspace $ws5 output primary +workspace $ws6 output primary +workspace $ws7 output primary +workspace $ws8 output primary +workspace $ws9 output primary +workspace $ws10 output eDP-1-0 # move focused container to workspace bindsym $mod+Shift+1 move container to workspace $ws1 @@ -215,6 +224,7 @@ bindsym $mod+Shift+6 move container to workspace $ws6 bindsym $mod+Shift+7 move container to workspace $ws7 bindsym $mod+Shift+8 move container to workspace $ws8 bindsym $mod+Shift+9 move container to workspace $ws9 +bindsym $mod+Shift+0 move container to workspace $ws10 # reload the configuration file # bindsym $mod+Shift+e reload @@ -284,7 +294,7 @@ bar { # strip_workspace_numbers yes output primary tray_output primary - status_command i3status-rs-with-env ~/.config/i3status-rs/config.toml + status_command i3status-rs-with-env ~/.config/i3status-rust/config.toml font pango:Iosevka Term, FontAwesome Bold 14px colors { background #000000 @@ -300,14 +310,14 @@ bar { } # Backlight control -bindsym XF86MonBrightnessUp exec --no-startup-id sudo light -A 5 -bindsym XF86MonBrightnessDown exec --no-startup-id sudo light -U 5 +bindsym XF86MonBrightnessUp exec --no-startup-id doas /usr/bin/light -A 5 +bindsym XF86MonBrightnessDown exec --no-startup-id doas /usr/bin/light -U 5 # bindsym XF86Search exec --no-startup-id suspend-and-lock # Volume control -bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -c 0 set Master 2dB+ -bindsym XF86AudioLowerVolume exec --no-startup-id amixer -c 0 set Master 2dB- -bindsym XF86AudioMute exec --no-startup-id amixer -c 0 set Master toggle +bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +5% +bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -5% +bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle # bindsym XF86AudioPrev exec --no-startup-id mpc prev # bindsym XF86AudioPlay exec --no-startup-id mpc toggle diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf index f73d104..ed58c63 100644 --- a/config/kitty/kitty.conf +++ b/config/kitty/kitty.conf @@ -1,6 +1,5 @@ -include colors/gruvbox_dark.conf - shell fish +shell_integration no-sudo no-cursor font_family Iosevka Custom Medium font_size 12.0 @@ -10,7 +9,6 @@ bold_italic_font Iosevka Custom Bold adjust_line_height 98% cursor_shape block -shell_integration no-cursor scrollback_lines 2000 @@ -30,9 +28,14 @@ draw_minimal_borders True hide_window_decorations False placement_strategy top-left +touch_scroll_multiplier 0 +wheel_scroll_multiplier 0 +wheel_scroll_min_lines 0 +touch_scroll_min_lines 0 + enable_audio_bell no visual_bell_duration 0.2 -visual_bell_color #fb4934 +# visual_bell_color #fb4934 tab_bar_style separator tab_separator " ┇ " @@ -67,3 +70,9 @@ map ctrl+alt+0 change_font_size all 0 # Would open the scrollback buffer in a new window when you press the F1 key map ctrl+shift+f1 pipe @ansi window less +G -R + + +# BEGIN_KITTY_THEME +# Gruvbox Dark +include current-theme.conf +# END_KITTY_THEME diff --git a/config/kitty/kitty.conf.bak b/config/kitty/kitty.conf.bak new file mode 100644 index 0000000..0ffc597 --- /dev/null +++ b/config/kitty/kitty.conf.bak @@ -0,0 +1,78 @@ +shell fish + +font_family Iosevka Custom Medium +font_size 12.0 +bold_font Iosevka Custom Bold +italic_font Iosevka Custom Medium +bold_italic_font Iosevka Custom Bold +adjust_line_height 98% + +cursor_shape block +shell_integration no-cursor + +scrollback_lines 2000 + +repaint_delay 10 +input_delay 3 +sync_to_monitor yes + +remember_window_size no +window_padding_width 0 +window_border_width 0 +window_border_width 1 +window_padding_width 0 +window_margin_width 0 +window_resize_step_cells 0 +single_window_margin_width 0 +draw_minimal_borders True +hide_window_decorations False +placement_strategy top-left + +touch_scroll_multiplier 0 +wheel_scroll_multiplier 0 +wheel_scroll_min_lines 0 +touch_scroll_min_lines 0 + +enable_audio_bell no +visual_bell_duration 0.2 +# visual_bell_color #fb4934 + +tab_bar_style separator +tab_separator " ┇ " + +term xterm-256color + +map ctrl+shift+enter new_window_with_cwd + +map ctrl+shift+t new_tab_with_cwd + +map ctrl+shift+1 goto_tab 1 +map ctrl+shift+2 goto_tab 2 +map ctrl+shift+3 goto_tab 3 +map ctrl+shift+4 goto_tab 4 +map ctrl+shift+5 goto_tab 5 +map ctrl+shift+6 goto_tab 6 +map ctrl+shift+7 goto_tab 7 +map ctrl+shift+8 goto_tab 8 +map ctrl+shift+9 goto_tab 9 + +map ctrl+shift+equal no_op +map ctrl+shift+minus no_op +map ctrl+shift+backspace no_op +map ctrl+shift+w no_op + +# Crutch to disable escaping space +# send_text all alt+space \x20\x7f + +map ctrl+alt+equal change_font_size all +2.0 +map ctrl+alt+minus change_font_size all -2.0 +map ctrl+alt+0 change_font_size all 0 + +# Would open the scrollback buffer in a new window when you press the F1 key +map ctrl+shift+f1 pipe @ansi window less +G -R + + +# BEGIN_KITTY_THEME +# Gruvbox Light +include current-theme.conf +# END_KITTY_THEME diff --git a/config/nvim/init.vim b/config/nvim/init.vim index acb7aaa..de2c253 100644 --- a/config/nvim/init.vim +++ b/config/nvim/init.vim @@ -9,8 +9,10 @@ Plug 'tpope/vim-sensible' " Plug 'ellisonleao/gruvbox.nvim' Plug '~/Projects/libs/gruvbox.nvim' -Plug 'terryma/vim-multiple-cursors' -Plug 'Lokaltog/vim-easymotion' +" Plug 'terryma/vim-multiple-cursors' +Plug 'mg979/vim-visual-multi' +" Plug 'Lokaltog/vim-easymotion' +Plug 'ggandor/leap.nvim' Plug 'simrat39/rust-tools.nvim' " Plug 'vim-ruby/vim-ruby' @@ -42,7 +44,6 @@ Plug 'tomtom/tcomment_vim' Plug 'majutsushi/tagbar', { 'on': 'TagbarToggle' } -Plug 'scrooloose/nerdtree' Plug 'milkypostman/vim-togglelist' " l and q " Snippets @@ -59,14 +60,18 @@ Plug 'tpope/vim-endwise' Plug 'tpope/vim-rsi' Plug 'tpope/vim-abolish' Plug 'tpope/vim-eunuch' -Plug 'rstacruz/vim-closer' +Plug 'tpope/vim-rhubarb' +" Plug 'rstacruz/vim-closer' # bugged Plug 'godlygeek/tabular' " LSP Plug 'neovim/nvim-lspconfig' +Plug 'tamago324/nlsp-settings.nvim' +Plug 'williamboman/nvim-lsp-installer' Plug 'hrsh7th/cmp-nvim-lsp' Plug 'folke/lsp-colors.nvim' +" Plug 'jose-elias-alvarez/null-ls.nvim' Plug 'hrsh7th/cmp-buffer' " Plug 'hrsh7th/cmp-path' @@ -77,22 +82,33 @@ Plug 'hrsh7th/nvim-cmp' Plug 'saadparwaiz1/cmp_luasnip' " Plug 'tpope/vim-dispatch' -Plug 'airblade/vim-gitgutter' +" Plug 'airblade/vim-gitgutter' +Plug 'lewis6991/gitsigns.nvim' + Plug 'tpope/vim-fugitive' Plug 'kassio/neoterm' -Plug 'janko/vim-test' +" Plug 'janko/vim-test' + +Plug 'nvim-neotest/neotest' +Plug 'olimorris/neotest-rspec' + +Plug 'yssl/QFEnter' " Tasks -Plug 'blindFS/vim-taskwarrior' +" Plug 'blindFS/vim-taskwarrior' Plug 'powerman/vim-plugin-AnsiEsc' -Plug 'vimwiki/vimwiki' -Plug 'tbabej/taskwiki' +" Plug 'vimwiki/vimwiki' +" Plug 'tbabej/taskwiki' Plug 'McAuleyPenney/tidy.nvim' " Remove whitespaces Plug 'Chiel92/vim-autoformat' Plug 'nvim-lua/plenary.nvim' -Plug 'nvim-telescope/telescope.nvim' +" Plug 'nvim-telescope/telescope.nvim' +Plug 'junegunn/fzf.vim' + +Plug 'MunifTanjim/nui.nvim' +Plug 'nvim-neo-tree/neo-tree.nvim' call plug#end() @@ -107,9 +123,10 @@ set termguicolors " let g:gruvbox_contrast_light='medium' colorscheme gruvbox -set background=dark -silent! map :set background=dark -silent! map :set background=light +" let neovim guess +" set background=dark +" silent! map :set background=dark +" silent! map :set background=light " Required for operations modifying multiple buffers like rename. set hidden @@ -133,6 +150,7 @@ let g:neosnippet#snippets_directory='$HOME/.config/nvim/bundle/vim-snippets/snip lua << EOF +require('gitsigns').setup() -- tree-sitter @@ -165,26 +183,39 @@ require'nvim-treesitter.configs'.setup { } -- telescope - -require('telescope').setup{ - -- defaults = { - -- layout_config = { - -- vertical = { width = 0.9 } - -- } - -- }, - pickers = { - find_files = { - theme = "ivy", - }, - live_grep = { - theme = "ivy", - } - }, -} +-- require('telescope').setup{ +-- -- defaults = { +-- -- layout_config = { +-- -- vertical = { width = 0.9 } +-- -- } +-- -- }, +-- defaults = { +-- preview = { +-- treesitter = false, +-- }, +-- }, +-- pickers = { +-- find_files = { +-- theme = "ivy", +-- }, +-- live_grep = { +-- theme = "ivy", +-- } +-- }, +-- } -- nvim-lspconfig local nvim_lsp = require('lspconfig') +local nlspsettings = require("nlspsettings") + +nlspsettings.setup({ + config_home = vim.fn.stdpath('config') .. '/nlsp-settings', + local_settings_dir = ".nlsp-settings", + local_settings_root_markers_fallback = { '.git' }, + append_default_schemas = true, + loader = 'json' +}) -- Use an on_attach function to only map the following keys -- after the language server attaches to the current buffer @@ -192,6 +223,8 @@ local on_attach = function(client, bufnr) local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end + client.server_capabilities.semanticTokensProvider = nil + -- Enable completion triggered by buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') @@ -236,16 +269,17 @@ local servers = { 'erlangls', 'eslint', 'gdscript', + -- 'ruby_ls', 'solargraph', 'stylelint_lsp', 'tsserver', 'zls', } + -- Setup lspconfig. local capabilities = vim.lsp.protocol.make_client_capabilities() -capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities) - +capabilities = require('cmp_nvim_lsp').default_capabilities(capabilities) for _, lsp in ipairs(servers) do nvim_lsp[lsp].setup { @@ -263,25 +297,25 @@ nvim_lsp.elixirls.setup{ capabilities = capabilities } -nvim_lsp.rust_analyzer.setup({ - cmd = { "rust-analyzer" }, - on_attach = on_attach, - capabilities = capabilities, - settings = { - ["rust-analyzer"] = { - assist = { - importGranularity = "module", - importPrefix = "by_self", - }, - cargo = { - loadOutDirsFromCheck = true - }, - procMacro = { - enable = true - }, - } - } -}) +-- nvim_lsp.rust_analyzer.setup({ +-- cmd = { "rust-analyzer" }, +-- on_attach = on_attach, +-- capabilities = capabilities, +-- settings = { +-- ["rust-analyzer"] = { +-- assist = { +-- importGranularity = "module", +-- importPrefix = "by_self", +-- }, +-- cargo = { +-- loadOutDirsFromCheck = true +-- }, +-- procMacro = { +-- enable = true +-- }, +-- } +-- } +-- }) nvim_lsp.tailwindcss.setup({ on_attach = on_attach, @@ -293,37 +327,87 @@ nvim_lsp.tailwindcss.setup({ } }) -require('rust-tools').setup({ - tools = { -- rust-tools options - autoSetHints = true, - hover_with_actions = true, - inlay_hints = { - -- show_parameter_hints = false, - -- parameter_hints_prefix = "", - -- other_hints_prefix = "", - }, - }, +-- require('rust-tools').setup({ +-- tools = { -- rust-tools options +-- autoSetHints = true, +-- hover_with_actions = true, +-- inlay_hints = { +-- -- show_parameter_hints = false, +-- -- parameter_hints_prefix = "", +-- -- other_hints_prefix = "", +-- }, +-- }, +-- +-- -- all the opts to send to nvim-lspconfig +-- -- these override the defaults set by rust-tools.nvim +-- -- see https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#rust_analyzer +-- server = { +-- -- on_attach is a callback called when the language server attachs to the buffer +-- on_attach = on_attach, +-- settings = { +-- -- to enable rust-analyzer settings visit: +-- -- https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/generated_config.adoc +-- ["rust-analyzer"] = { +-- -- enable clippy on save +-- checkOnSave = { +-- allTargets = false, +-- command = "clippy" +-- }, +-- } +-- } +-- }, +-- }) - -- all the opts to send to nvim-lspconfig - -- these override the defaults set by rust-tools.nvim - -- see https://github.com/neovim/nvim-lspconfig/blob/master/doc/server_configurations.md#rust_analyzer - server = { - -- on_attach is a callback called when the language server attachs to the buffer - on_attach = on_attach, - settings = { - -- to enable rust-analyzer settings visit: - -- https://github.com/rust-analyzer/rust-analyzer/blob/master/docs/user/generated_config.adoc - ["rust-analyzer"] = { - -- enable clippy on save - checkOnSave = { - allTargets = false, - command = "clippy" - }, - } - } - }, +-- textDocument/diagnostic support until 0.10.0 is released +_timers = {} +local function setup_diagnostics(client, buffer) + if require("vim.lsp.diagnostic")._enable then + return + end + + local diagnostic_handler = function() + local params = vim.lsp.util.make_text_document_params(buffer) + client.request("textDocument/diagnostic", { textDocument = params }, function(err, result) + if err then + local err_msg = string.format("diagnostics error - %s", vim.inspect(err)) + vim.lsp.log.error(err_msg) + end + local diagnostic_items = {} + if result then + diagnostic_items = result.items + end + vim.lsp.diagnostic.on_publish_diagnostics( + nil, + vim.tbl_extend("keep", params, { diagnostics = diagnostic_items }), + { client_id = client.id } + ) + end) + end + + diagnostic_handler() -- to request diagnostics on buffer when first attaching + + vim.api.nvim_buf_attach(buffer, false, { + on_lines = function() + if _timers[buffer] then + vim.fn.timer_stop(_timers[buffer]) + end + _timers[buffer] = vim.fn.timer_start(200, diagnostic_handler) + end, + on_detach = function() + if _timers[buffer] then + vim.fn.timer_stop(_timers[buffer]) + end + end, + }) +end + +nvim_lsp.ruby_ls.setup({ + on_attach = function(client, buffer) + setup_diagnostics(client, buffer) + end, }) + -- Setup nvim-cmp. local cmp = require('cmp') local luasnip = require('luasnip') @@ -407,16 +491,193 @@ cmp.setup.cmdline(':', { }) }) +require("neo-tree").setup({ + close_if_last_window = false, -- Close Neo-tree if it is the last window left in the tab + popup_border_style = "rounded", + enable_git_status = false, + enable_diagnostics = false, + sort_case_insensitive = false, -- used when sorting files and directories in the tree + sort_function = nil , -- use a custom function for sorting files and directories in the tree + -- sort_function = function (a,b) + -- if a.type == b.type then + -- return a.path > b.path + -- else + -- return a.type > b.type + -- end + -- end , -- this sorts files and directories descendantly + default_component_configs = { + container = { + enable_character_fade = false + }, + indent = { + indent_size = 2, + padding = 1, -- extra padding on left hand side + -- indent guides + with_markers = true, + indent_marker = "│", + last_indent_marker = "└", + highlight = "NeoTreeIndentMarker", + -- expander config, needed for nesting files + with_expanders = nil, -- if nil and file nesting is enabled, will enable expanders + expander_collapsed = "", + expander_expanded = "", + expander_highlight = "NeoTreeExpander", + }, + icon = { + folder_closed = "▸", + folder_open = "▾", + folder_empty = " ", + -- The next two settings are only a fallback, if you use nvim-web-devicons and configure default icons there + -- then these will never be used. + default = "", + highlight = "NeoTreeFileIcon" + }, + modified = { + symbol = "[+]", + highlight = "NeoTreeModified", + }, + name = { + trailing_slash = false, + use_git_status_colors = false, + highlight = "NeoTreeFileName", + }, + git_status = { + symbols = { + -- Change type + added = "", -- or "✚", but this is redundant info if you use git_status_colors on the name + modified = "", -- or "", but this is redundant info if you use git_status_colors on the name + deleted = "✖",-- this can only be used in the git_status source + renamed = "",-- this can only be used in the git_status source + -- Status type + untracked = "", + ignored = "", + unstaged = "", + staged = "", + conflict = "", + } + }, + }, + filesystem = { + filtered_items = { + visible = false, + never_show = { + ".git", + ".keep", + ".gitkeep", + }, + }, + window = { + mappings = { + ["/"] = false, + ["D"] = false, + }, + }, + }, + window = { + position = "left", + width = 40, + mapping_options = { + noremap = true, + nowait = true, + }, + mappings = { + [""] = "open", + ["C"] = "cut_to_clipboard", + ["i"] = "toggle_hidden", + ["x"] = "close_node", + ["X"] = "close_all_nodes", + ["z"] = false, + ["Z"] = false, + ["c"] = { "copy", config = { show_path = "relative" }}, + ["m"] = { "move", config = { show_path = "relative" }}, + ["a"] = { "add", config = { show_path = "relative" }}, + }, + }, +}) + +require('leap').set_default_keymaps() + +require('neotest').setup({ + icons = { + -- Ascii: + -- { "/", "|", "\\", "-", "/", "|", "\\", "-"}, + -- Unicode: + -- { "", "🞅", "🞈", "🞉", "", "", "🞉", "🞈", "🞅", "", }, + -- {"◴" ,"◷" ,"◶", "◵"}, + -- {"◢", "◣", "◤", "◥"}, + -- {"◐", "◓", "◑", "◒"}, + -- {"◰", "◳", "◲", "◱"}, + -- {"⣾", "⣽", "⣻", "⢿", "⡿", "⣟", "⣯", "⣷"}, + -- {"⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"}, + -- {"⠋", "⠙", "⠚", "⠞", "⠖", "⠦", "⠴", "⠲", "⠳", "⠓"}, + -- {"⠄", "⠆", "⠇", "⠋", "⠙", "⠸", "⠰", "⠠", "⠰", "⠸", "⠙", "⠋", "⠇", "⠆"}, + -- { "⠋", "⠙", "⠚", "⠒", "⠂", "⠂", "⠒", "⠲", "⠴", "⠦", "⠖", "⠒", "⠐", "⠐", "⠒", "⠓", "⠋" }, + running_animated = {"⣷", "⣯", "⣟", "⡿", "⢿", "⣻", "⣽", "⣾"}, + passed = " ", + running = " ", + failed = " ", + skipped = "-", + unknown = "🞅", + non_collapsible = "─", + collapsed = "─", + expanded = "╮", + child_prefix = "├", + final_child_prefix = "╰", + child_indent = "│", + final_child_indent = " ", + }, + adapters = { + require('neotest-rspec')({ + rspec_cmd = function() + return vim.tbl_flatten({ + "rspec", + }) + end + }) + }, + quickfix = { + enabled = false, + open = false + }, +}) + +-- local null_ls = require("null-ls") +-- +-- null_ls.setup({ +-- sources = { +-- null_ls.builtins.formatting.stylua, +-- null_ls.builtins.completion.spell, +-- null_ls.builtins.diagnostics.eslint, +-- null_ls.builtins.diagnostics.rubocop, +-- }, +-- }) + +-- map("n", "tn", ":lua require('neotest').run.run()", { noremap = false, silent = false }) + +-- buf_set_keymap('n', 'tn', 'lua require('neotest').run.run()', opts) +-- buf_set_keymap('n', 'f', 'lua vim.lsp.buf.formatting()', opts) + +-- nnoremap tn :TestNearest +-- nnoremap tf :TestFile +-- nnoremap ts :TestSuite EOF +" neotest keybindings +nnoremap tn lua require("neotest").run.run() +nnoremap ts lua require("neotest").run.stop() +nnoremap tf lua require("neotest").run.run(vim.fn.expand("%")) +nnoremap tt lua require("neotest").summary.open() +nnoremap ta lua require("neotest").run.attach() +nnoremap to lua require("neotest").output.open({ enter = true }) +nnoremap [n lua require("neotest").jump.prev({ status = "failed" }) +nnoremap ]n lua require("neotest").jump.next({ status = "failed" }) + " EditorConfig let g:EditorConfig_exclude_patterns = ['fugitive://.*', 'scp://.*'] -" NerdTREE -silent! nmap :NERDTreeToggle -silent! map :NERDTreeFind -let g:NERDTreeMapActivateNode="" -let g:NERDTreeMapPreview="" +" NeoTree +silent! nmap :NeoTreeShowToggle +silent! map :NeoTreeReveal " Lightline let g:lightline = { @@ -460,24 +721,16 @@ let g:neoterm_autoinsert = 1 let g:neoterm_default_mod = 'rightbelow' let g:neoterm_size = '20' -" vim-test -" make test commands execute using neoterm -let test#strategy = "neoterm" - -nnoremap tn :TestNearest -nnoremap tf :TestFile -nnoremap ts :TestSuite - " Vim gitgutter -let g:gitgutter_enabled = 1 -let g:gitgutter_signs = 1 -let g:gitgutter_sign_added = '+' -let g:gitgutter_sign_modified = '~' -let g:gitgutter_sign_removed = '-' -let g:gitgutter_sign_removed_first_line = '-' -let g:gitgutter_sign_modified_removed = '~' -let g:gitgutter_highlight_linenrs = 1 -let g:gitgutter_highlight_lines = 0 +" let g:gitgutter_enabled = 1 +" let g:gitgutter_signs = 1 +" let g:gitgutter_sign_added = '+' +" let g:gitgutter_sign_modified = '~' +" let g:gitgutter_sign_removed = '-' +" let g:gitgutter_sign_removed_first_line = '-' +" let g:gitgutter_sign_modified_removed = '~' +" let g:gitgutter_highlight_linenrs = 1 +" let g:gitgutter_highlight_lines = 1 " Replace current word with yanked or deleted text " nnoremap S "_diwP @@ -514,15 +767,19 @@ let g:autoformat_retab = 1 let g:autoformat_remove_trailing_spaces = 1 " Vimwiki -let g:vimwiki_list = [{'path': '~/vimwiki/', 'syntax': 'markdown', 'ext': '.md'}] +" let g:vimwiki_list = [{'path': '~/vimwiki/', 'syntax': 'markdown', 'ext': '.md'}] " FIXME: this is strange workaround for workaround for bug in kitty -autocmd FileType vimwiki nnoremap wH VimwikiGoBackLink +" autocmd FileType vimwiki nnoremap wH VimwikiGoBackLink + + +" vim-markdown +let g:markdown_syntax_conceal = 0 " Taskwiki -let g:taskwiki_markup_syntax = "markdown" +" let g:taskwiki_markup_syntax = "markdown" " let g:taskwiki_source_tw_colors = "yes" -nnoremap tR :TaskWikiBufferLoad +" nnoremap tR :TaskWikiBufferLoad set noswapfile @@ -588,6 +845,9 @@ set nojoinspaces " Disable folding set nofoldenable +" Disable mouse +set mouse= + " Disable some keys noremap noremap @@ -608,6 +868,8 @@ set splitright set completeopt=menuone,noinsert,noselect +set signcolumn=yes + " Quicker window movement nnoremap j nnoremap k @@ -615,7 +877,19 @@ nnoremap h nnoremap l " telescope -nnoremap lua require('telescope.builtin').find_files() -nnoremap g lua require('telescope.builtin').live_grep() -nnoremap b lua require('telescope.builtin').buffers() -nnoremap h lua require('telescope.builtin').help_tags() +" nnoremap lua require('telescope.builtin').find_files() +" nnoremap g lua require('telescope.builtin').live_grep() +" nnoremap b lua require('telescope.builtin').buffers() +" nnoremap h lua require('telescope.builtin').help_tags() + +" FZF +let g:fzf_layout = { 'down': '30%' } +let g:fzf_vim = {} +let g:fzf_vim.preview_window = ['right,50%', 'ctrl-/'] + +nnoremap :FZF +nnoremap g :Rg + +" LSP SEMANTIC HIGHLIGHTS +" hi @lsp.type.variable guifg=GruvboxFg1 +" hi @lsp.type.class guifg=GruvboxYellow diff --git a/config/redshift.conf b/config/redshift.conf index fe087db..6e4a594 100644 --- a/config/redshift.conf +++ b/config/redshift.conf @@ -12,7 +12,7 @@ transition=1 ;brightness=0.9 ; It is also possible to use different settings for day and night since version 1.8. ;brightness-day=1.0 -brightness-night=0.7 +brightness-night=0.8 ; Set the screen gamma (for all colors, or each color channel individually) ;gamma=0.9 @@ -35,8 +35,8 @@ adjustment-method=randr ; type 'redshift -l PROVIDER:help' to see the settings ; e.g. 'redshift -l manual:help' [manual] -lat=41.70565241961369 -lon=44.77003519848199 +lat=41.738013 +lon=44.622852 ; Configuration of the adjustment-method ; type 'redshift -m METHOD:help' to see the settings diff --git a/config/youtube-dl/config b/config/youtube-dl/config index bc30e21..c39ce63 100644 --- a/config/youtube-dl/config +++ b/config/youtube-dl/config @@ -1,6 +1,5 @@ ---prefer-free-formats --mark-watched --f bestvideo[height<=?1080]+bestaudio/best +-f bestvideo[height<=?1440]+bestaudio/best --retries infinite --socket-timeout 30 --external-downloader aria2c diff --git a/envrc b/envrc index 1bb24ea..e69de29 100644 --- a/envrc +++ b/envrc @@ -1 +0,0 @@ -export GEM_HOME=/home/krsh/.gem/ruby/2.7.0 diff --git a/gitconfig b/gitconfig index d9f46b0..9633f48 100644 --- a/gitconfig +++ b/gitconfig @@ -47,3 +47,14 @@ [core] hooksPath = /dev/null + +[diff] + tool = kitty + guitool = kitty.gui +[difftool] + prompt = false + trustExitCode = true +[difftool "kitty"] + cmd = kitty +kitten diff $LOCAL $REMOTE +[difftool "kitty.gui"] + cmd = kitty kitty +kitten diff $LOCAL $REMOTE diff --git a/gitignore_global b/gitignore_global index 9cb4499..2e5a6d8 100644 --- a/gitignore_global +++ b/gitignore_global @@ -24,6 +24,7 @@ report*.json /.elixir_ls/ /.ignore/ +.nlsp-settings/ .gitignore.local .envrc.container diff --git a/mozilla/firefox/profile/updater.sh b/mozilla/firefox/profile/updater.sh index 74f378c..88e6e33 100755 --- a/mozilla/firefox/profile/updater.sh +++ b/mozilla/firefox/profile/updater.sh @@ -2,12 +2,18 @@ ## arkenfox user.js updater for macOS and Linux -## version: 3.4 +## version: 3.9 ## Author: Pat Johnson (@overdodactyl) -## Additional contributors: @earthlng, @ema-pe, @claustromaniac +## Additional contributors: @earthlng, @ema-pe, @claustromaniac, @infinitewarp ## DON'T GO HIGHER THAN VERSION x.9 !! ( because of ASCII comparison in update_updater() ) +# Check if running as root +if [ "${EUID:-"$(id -u)"}" -eq 0 ]; then + printf "You shouldn't run this with elevated privileges (such as with doas/sudo).\n" + exit 1 +fi + readonly CURRDIR=$(pwd) SCRIPT_FILE=$(readlink -f "${BASH_SOURCE[0]}" 2>/dev/null || greadlink -f "${BASH_SOURCE[0]}" 2>/dev/null) @@ -195,10 +201,10 @@ update_updater() { echo -e "There is a newer version of updater.sh available. ${RED}Update and execute Y/N?${NC}" read -p "" -n 1 -r echo -e "\n\n" - [[ $REPLY =~ ^[Nn]$ ]] && return 0 # Update available, but user chooses not to update + [[ $REPLY =~ ^[Yy]$ ]] || return 0 # Update available, but user chooses not to update fi else - return 0 # No update available + return 0 # No update available fi mv "${tmpfile}" "$SCRIPT_FILE" chmod u+x "$SCRIPT_FILE" @@ -253,7 +259,7 @@ update_userjs() { echo -e "This script will update to the latest user.js file and append any custom configurations from user-overrides.js. ${RED}Continue Y/N? ${NC}" read -p "" -n 1 -r echo -e "\n" - if [[ $REPLY =~ ^[Nn]$ ]]; then + if ! [[ $REPLY =~ ^[Yy]$ ]]; then echo -e "${RED}Process aborted${NC}" rm "$newfile" return 1 @@ -385,6 +391,17 @@ show_banner update_updater "$@" getProfilePath # updates PROFILE_PATH or exits on error -cd "$PROFILE_PATH" && update_userjs +cd "$PROFILE_PATH" || exit 1 + +# Check if any files have the owner/group as root/wheel. +if [ -n "$(find ./ -user 0 -o -group 0)" ]; then + printf 'It looks like this script was previously run with elevated privileges, +you will need to change ownership of the following files to your user:\n' + find . -user 0 -o -group 0 + cd "$CURRDIR" + exit 1 +fi + +update_userjs cd "$CURRDIR" diff --git a/xinitrc b/xinitrc index 8641344..39d921f 100755 --- a/xinitrc +++ b/xinitrc @@ -4,7 +4,7 @@ export BROWSER=browser export TERMINAL=kitty export XTERM=kitty export LANGUAGE=en_US:en_GB:en -export LC_TIME=ru_RU.UTF-8 +export LC_TIME=en_US.UTF-8 export COLORTERM=truecolor export QT_QPA_PLATFORMTHEME=qt5ct @@ -13,7 +13,7 @@ unset QT_STYLE_OVERRIDE export XDG_CONFIG_HOME=$HOME/.config export XDG_DATA_HOME=$HOME/.local/share export XDG_RUNTIME_DIR=/run/user/1000 -export DOCKER_HOST=unix:///run/user/1000/podman/podman.sock +export DOCKER_HOST=unix:///var/run/docker.sock # export VDPAU_DRIVER=radeonsi @@ -29,6 +29,10 @@ xinput set-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Axes" 6 7 4 5 xinput set-prop "Primax Kensington Eagle Trackball" "Evdev Middle Button Emulation" 1 +# xinput map-to-output "Wacom Graphire2 4x5 Pen stylus" DP-0 +# xinput map-to-output "Wacom Graphire2 4x5 Pen eraser" DP-0 +# xinput map-to-output "Wacom Graphire2 4x5 Pen cursor" DP-0 + # exec ck-launch-session dbus-launch xrdb -merge ~/.Xresources