From a2d46e7b94ca3d3fb4123195daf520234a73957d Mon Sep 17 00:00:00 2001 From: Keyitdev <70140437+Keyitdev@users.noreply.github.com> Date: Sat, 23 Jul 2022 15:08:47 +0200 Subject: [PATCH] New version: created v3 --- config/.zshrc => .zshrc | 34 +- README.md | 316 +- config/alacritty/alacritty.yml | 37 + config/betterlockscreenrc | 38 - config/cava/config | 164 - config/dunst/dunstrc | 387 +- config/gtk-3.0/settings.ini | 2 +- config/i3/config | 49 +- config/kitty/kitty.conf | 37 - config/ncmpcpp/config | 130 +- config/neofetch/config.conf | 1 + config/nvim/.luacheckrc | 20 + config/nvim/.stylua.toml | 6 + config/nvim/colors/default_theme.lua | 9 + config/nvim/init.lua | 21 + config/nvim/lua/configs/Comment.lua | 19 + config/nvim/lua/configs/aerial.lua | 52 + config/nvim/lua/configs/alpha.lua | 40 + config/nvim/lua/configs/autopairs.lua | 33 + config/nvim/lua/configs/better_escape.lua | 4 + config/nvim/lua/configs/bufferline.lua | 19 + config/nvim/lua/configs/cinnamon.lua | 4 + config/nvim/lua/configs/cmp.lua | 119 + config/nvim/lua/configs/colorizer.lua | 18 + config/nvim/lua/configs/feline.lua | 46 + config/nvim/lua/configs/gitsigns.lua | 12 + config/nvim/lua/configs/icons.lua | 17 + config/nvim/lua/configs/indent-line.lua | 50 + config/nvim/lua/configs/indent-o-matic.lua | 4 + config/nvim/lua/configs/lsp/handlers.lua | 167 + config/nvim/lua/configs/lsp/init.lua | 55 + .../lua/configs/lsp/server-settings/html.lua | 1 + .../configs/lsp/server-settings/jsonls.lua | 17 + .../configs/lsp/server-settings/pyright.lua | 9 + .../lsp/server-settings/rust_analyzer.lua | 15 + .../lsp/server-settings/sumneko_lua.lua | 16 + .../configs/lsp/server-settings/tsserver.lua | 1 + config/nvim/lua/configs/luasnip.lua | 16 + config/nvim/lua/configs/neo-tree.lua | 70 + config/nvim/lua/configs/notify.lua | 6 + config/nvim/lua/configs/null-ls.lua | 4 + .../nvim/lua/configs/nvim-lsp-installer.lua | 12 + config/nvim/lua/configs/session_manager.lua | 4 + config/nvim/lua/configs/smart-splits.lua | 12 + config/nvim/lua/configs/telescope.lua | 96 + config/nvim/lua/configs/toggleterm.lua | 16 + config/nvim/lua/configs/treesitter.lua | 26 + .../nvim/lua/configs/which-key-register.lua | 61 + config/nvim/lua/configs/which-key.lua | 21 + config/nvim/lua/core/autocmds.lua | 104 + config/nvim/lua/core/mappings.lua | 420 + config/nvim/lua/core/options.lua | 67 + config/nvim/lua/core/plugins.lua | 354 + config/nvim/lua/core/status.lua | 122 + config/nvim/lua/core/ui.lua | 143 + config/nvim/lua/core/utils/git.lua | 101 + config/nvim/lua/core/utils/init.lua | 299 + config/nvim/lua/core/utils/updater.lua | 160 + config/nvim/lua/default_theme/base.lua | 89 + config/nvim/lua/default_theme/colors.lua | 76 + config/nvim/lua/default_theme/init.lua | 49 + config/nvim/lua/default_theme/lsp.lua | 26 + .../nvim/lua/default_theme/plugins/aerial.lua | 30 + .../nvim/lua/default_theme/plugins/beacon.lua | 1 + .../lua/default_theme/plugins/bufferline.lua | 21 + .../lua/default_theme/plugins/dashboard.lua | 6 + .../lua/default_theme/plugins/gitsigns.lua | 7 + .../default_theme/plugins/highlighturl.lua | 1 + config/nvim/lua/default_theme/plugins/hop.lua | 6 + .../plugins/indent_blankline.lua | 7 + .../lua/default_theme/plugins/lightspeed.lua | 14 + .../lua/default_theme/plugins/neo-tree.lua | 15 + .../nvim/lua/default_theme/plugins/notify.lua | 24 + .../lua/default_theme/plugins/nvim-tree.lua | 19 + .../plugins/nvim-web-devicons.lua | 31 + .../lua/default_theme/plugins/rainbow.lua | 9 + .../default_theme/plugins/symbols_outline.lua | 1 + .../lua/default_theme/plugins/telescope.lua | 57 + .../lua/default_theme/plugins/vimwiki.lua | 14 + .../lua/default_theme/plugins/which-key.lua | 5 + config/nvim/lua/default_theme/treesitter.lua | 59 + config/nvim/lua/default_theme/utils.lua | 24 + config/nvim/lua/user_example/init.lua | 251 + config/nvim/packer_snapshot | 1 + config/picom/picom.conf | 10 +- config/polybar/colors.ini | 24 +- config/polybar/config.ini | 541 + config/polybar/launch.sh | 6 +- config/polybar/polybar-rounded/config.ini | 478 - .../polybar/polybar-rounded/modules/alsa.ini | 74 - .../polybar-rounded/modules/backlight.ini | 47 - .../polybar-rounded/modules/battery.ini | 98 - .../polybar/polybar-rounded/modules/cpu.ini | 32 - .../polybar/polybar-rounded/modules/date.ini | 30 - .../polybar-rounded/modules/filesystem.ini | 53 - .../polybar-rounded/modules/glyphs.ini | 17 - config/polybar/polybar-rounded/modules/i3.ini | 120 - .../polybar-rounded/modules/keyboard.ini | 27 - .../polybar-rounded/modules/memory.ini | 51 - .../polybar/polybar-rounded/modules/mpd.ini | 96 - .../polybar-rounded/modules/network.ini | 101 - .../polybar-rounded/modules/network_mini.ini | 104 - .../polybar/polybar-rounded/modules/sep.ini | 12 - .../polybar-rounded/modules/temperature.ini | 61 - .../polybar/polybar-rounded/modules/title.ini | 18 - .../polybar-rounded/modules/uptime.ini | 9 - config/polybar/polybar-square/config.ini | 466 - .../polybar/polybar-square/modules/alsa.ini | 76 - .../polybar-square/modules/backlight.ini | 47 - .../polybar-square/modules/battery.ini | 98 - config/polybar/polybar-square/modules/cpu.ini | 32 - .../polybar/polybar-square/modules/date.ini | 32 - .../polybar-square/modules/filesystem.ini | 55 - config/polybar/polybar-square/modules/i3.ini | 121 - .../polybar-square/modules/keyboard.ini | 29 - .../polybar/polybar-square/modules/memory.ini | 52 - config/polybar/polybar-square/modules/mpd.ini | 100 - .../polybar-square/modules/network.ini | 104 - .../polybar-square/modules/network_mini.ini | 104 - .../polybar-square/modules/temperature.ini | 65 - .../polybar/polybar-square/modules/title.ini | 19 - .../polybar/polybar-square/modules/uptime.ini | 9 - config/polybar/polybar-square/uptime.sh | 3 - .../polybar/{polybar-rounded => }/uptime.sh | 0 config/ranger/rc.conf | 12 +- config/rofi/colors.rasi | 9 +- config/rofi/{center.rasi => full_screen.rasi} | 66 +- config/rofi/{compact.rasi => main.rasi} | 64 +- ...out_icons.rasi => main_without_icons.rasi} | 64 +- config/rofi/sidebar.rasi | 133 - config/vsc/settings.json | 58 - .../zhuangtongfa.Material-theme-3.13.7.vsix | Bin 261913 -> 0 bytes config/zathura/zathurarc | 34 + install-on-arch.sh | 410 +- .../keyitdev.zsh-theme => keyitdev.zsh-theme | 3 + config/local.conf => local.conf | 0 scripts/brightness | 12 +- scripts/brightness_hdmi | 56 +- scripts/font-icons | 14 + scripts/lock | 18 + scripts/mute | 24 +- scripts/rofi-bookmarks | 3 +- scripts/rofi-screenshot | 81 +- scripts/screenshot | 381 +- scripts/theme | 32 - scripts/themes/polybar-rounded/launch.sh | 13 - scripts/themes/polybar-square/launch.sh | 13 - scripts/volume | 18 +- .../gnome-shell-DTD/assets/applogo.svg | 291 + .../gnome-shell-DTD/assets/background.png | Bin 0 -> 1184111 bytes .../assets/calendar-arrow-left.svg | 3 + .../assets/calendar-arrow-right.svg | 3 + .../gnome-shell-DTD/assets/calendar-today.svg | 178 + .../gnome-shell-DTD/assets/checkbox-off.svg | 3 + .../gnome-shell-DTD/assets/checkbox.svg | 3 + .../assets/dash-placeholder.svg | 4 + .../gnome-shell-DTD/assets/more-results.svg | 6 + .../gnome-shell-DTD/assets/no-events.svg | 82 + .../assets/no-notifications.svg | 3 + .../gnome-shell-DTD/assets/noise-texture.svg | 78 + .../assets/process-working.svg | 72 + .../assets/toggle-off-dark.svg | 4 + .../gnome-shell-DTD/assets/toggle-off.svg | 6 + .../gnome-shell-DTD/assets/toggle-on.svg | 4 + .../gnome-shell-DTD/gnome-shell.css | 3581 +++ tokyonight_gtk/gnome-shell-DTD/no-events.svg | 1 + .../gnome-shell-DTD/no-notifications.svg | 1 + tokyonight_gtk/gnome-shell-DTD/pad-osd.css | 30 + .../gnome-shell-DTD/process-working.svg | 1 + .../gnome-shell-DTP/assets/applogo.svg | 291 + .../gnome-shell-DTP/assets/background.png | Bin 0 -> 1184111 bytes .../assets/calendar-arrow-left.svg | 3 + .../assets/calendar-arrow-right.svg | 3 + .../gnome-shell-DTP/assets/calendar-today.svg | 178 + .../gnome-shell-DTP/assets/checkbox-off.svg | 3 + .../gnome-shell-DTP/assets/checkbox.svg | 3 + .../assets/dash-placeholder.svg | 4 + .../gnome-shell-DTP/assets/more-results.svg | 6 + .../gnome-shell-DTP/assets/no-events.svg | 82 + .../assets/no-notifications.svg | 3 + .../gnome-shell-DTP/assets/noise-texture.svg | 78 + .../assets/process-working.svg | 72 + .../assets/toggle-off-dark.svg | 4 + .../gnome-shell-DTP/assets/toggle-off.svg | 6 + .../gnome-shell-DTP/assets/toggle-on.svg | 4 + .../gnome-shell-DTP/gnome-shell.css | 3575 +++ tokyonight_gtk/gnome-shell-DTP/no-events.svg | 1 + .../gnome-shell-DTP/no-notifications.svg | 1 + tokyonight_gtk/gnome-shell-DTP/pad-osd.css | 30 + .../gnome-shell-DTP/process-working.svg | 1 + tokyonight_gtk/gtk-2.0/apps.rc | 92 + tokyonight_gtk/gtk-2.0/assets/border.png | Bin 0 -> 126 bytes .../gtk-2.0/assets/button-active.png | Bin 0 -> 267 bytes .../gtk-2.0/assets/button-disabled.png | Bin 0 -> 229 bytes .../gtk-2.0/assets/button-hover.png | Bin 0 -> 252 bytes tokyonight_gtk/gtk-2.0/assets/button.png | Bin 0 -> 239 bytes .../assets/checkbox-checked-active.png | Bin 0 -> 488 bytes .../assets/checkbox-checked-disabled.png | Bin 0 -> 414 bytes .../gtk-2.0/assets/checkbox-checked-hover.png | Bin 0 -> 488 bytes .../gtk-2.0/assets/checkbox-checked.png | Bin 0 -> 491 bytes .../gtk-2.0/assets/checkbox-mixed-active.png | Bin 0 -> 436 bytes .../assets/checkbox-mixed-disabled.png | Bin 0 -> 366 bytes .../gtk-2.0/assets/checkbox-mixed-hover.png | Bin 0 -> 436 bytes .../gtk-2.0/assets/checkbox-mixed.png | Bin 0 -> 436 bytes .../assets/checkbox-unchecked-active.png | Bin 0 -> 520 bytes .../assets/checkbox-unchecked-disabled.png | Bin 0 -> 404 bytes .../assets/checkbox-unchecked-hover.png | Bin 0 -> 542 bytes .../gtk-2.0/assets/checkbox-unchecked.png | Bin 0 -> 500 bytes .../assets/combo-left-entry-active.png | Bin 0 -> 322 bytes .../assets/combo-left-entry-disabled.png | Bin 0 -> 209 bytes .../gtk-2.0/assets/combo-left-entry-hover.png | Bin 0 -> 282 bytes .../gtk-2.0/assets/combo-left-entry.png | Bin 0 -> 216 bytes .../assets/combo-right-entry-active.png | Bin 0 -> 333 bytes .../assets/combo-right-entry-disabled.png | Bin 0 -> 207 bytes .../assets/combo-right-entry-hover.png | Bin 0 -> 292 bytes .../gtk-2.0/assets/combo-right-entry.png | Bin 0 -> 217 bytes .../gtk-2.0/assets/entry-active.png | Bin 0 -> 416 bytes .../assets/entry-background-disabled.png | Bin 0 -> 136 bytes .../gtk-2.0/assets/entry-background.png | Bin 0 -> 136 bytes .../gtk-2.0/assets/entry-disabled.png | Bin 0 -> 229 bytes tokyonight_gtk/gtk-2.0/assets/entry-hover.png | Bin 0 -> 347 bytes tokyonight_gtk/gtk-2.0/assets/entry.png | Bin 0 -> 239 bytes .../gtk-2.0/assets/flat-button-active.png | Bin 0 -> 267 bytes .../gtk-2.0/assets/flat-button-disabled.png | Bin 0 -> 195 bytes .../gtk-2.0/assets/flat-button-hover.png | Bin 0 -> 252 bytes tokyonight_gtk/gtk-2.0/assets/flat-button.png | Bin 0 -> 195 bytes tokyonight_gtk/gtk-2.0/assets/focus.png | Bin 0 -> 221 bytes .../gtk-2.0/assets/frame-inline.png | Bin 0 -> 144 bytes .../gtk-2.0/assets/frame-notebook.png | Bin 0 -> 147 bytes tokyonight_gtk/gtk-2.0/assets/frame.png | Bin 0 -> 147 bytes .../gtk-2.0/assets/handle-horz-active.png | Bin 0 -> 170 bytes .../gtk-2.0/assets/handle-horz-hover.png | Bin 0 -> 183 bytes tokyonight_gtk/gtk-2.0/assets/handle-horz.png | Bin 0 -> 178 bytes .../gtk-2.0/assets/handle-vert-active.png | Bin 0 -> 166 bytes .../gtk-2.0/assets/handle-vert-hover.png | Bin 0 -> 173 bytes tokyonight_gtk/gtk-2.0/assets/handle-vert.png | Bin 0 -> 172 bytes .../assets/menu-checkbox-checked-disabled.png | Bin 0 -> 390 bytes .../gtk-2.0/assets/menu-checkbox-checked.png | Bin 0 -> 435 bytes .../assets/menu-checkbox-mixed-disabled.png | Bin 0 -> 324 bytes .../gtk-2.0/assets/menu-checkbox-mixed.png | Bin 0 -> 364 bytes .../menu-checkbox-unchecked-disabled.png | Bin 0 -> 340 bytes .../assets/menu-checkbox-unchecked.png | Bin 0 -> 392 bytes .../assets/menu-radio-checked-disabled.png | Bin 0 -> 359 bytes .../gtk-2.0/assets/menu-radio-checked.png | Bin 0 -> 419 bytes .../assets/menu-radio-mixed-disabled.png | Bin 0 -> 324 bytes .../gtk-2.0/assets/menu-radio-mixed.png | Bin 0 -> 364 bytes .../assets/menu-radio-unchecked-disabled.png | Bin 0 -> 340 bytes .../gtk-2.0/assets/menu-radio-unchecked.png | Bin 0 -> 392 bytes .../gtk-2.0/assets/pan-down-alt-disabled.png | Bin 0 -> 182 bytes .../gtk-2.0/assets/pan-down-alt.png | Bin 0 -> 190 bytes .../gtk-2.0/assets/pan-down-disabled.png | Bin 0 -> 181 bytes tokyonight_gtk/gtk-2.0/assets/pan-down.png | Bin 0 -> 165 bytes .../gtk-2.0/assets/pan-left-alt-disabled.png | Bin 0 -> 185 bytes .../gtk-2.0/assets/pan-left-alt.png | Bin 0 -> 194 bytes .../gtk-2.0/assets/pan-left-disabled.png | Bin 0 -> 185 bytes .../gtk-2.0/assets/pan-left-semi.png | Bin 0 -> 190 bytes tokyonight_gtk/gtk-2.0/assets/pan-left.png | Bin 0 -> 180 bytes .../gtk-2.0/assets/pan-right-alt-disabled.png | Bin 0 -> 187 bytes .../gtk-2.0/assets/pan-right-alt.png | Bin 0 -> 189 bytes .../gtk-2.0/assets/pan-right-disabled.png | Bin 0 -> 187 bytes .../gtk-2.0/assets/pan-right-semi.png | Bin 0 -> 192 bytes tokyonight_gtk/gtk-2.0/assets/pan-right.png | Bin 0 -> 181 bytes .../gtk-2.0/assets/pan-up-alt-disabled.png | Bin 0 -> 182 bytes tokyonight_gtk/gtk-2.0/assets/pan-up-alt.png | Bin 0 -> 182 bytes .../gtk-2.0/assets/pan-up-disabled.png | Bin 0 -> 182 bytes tokyonight_gtk/gtk-2.0/assets/pan-up.png | Bin 0 -> 161 bytes .../gtk-2.0/assets/progressbar-progress.png | Bin 0 -> 137 bytes .../gtk-2.0/assets/progressbar-trough.png | Bin 0 -> 136 bytes .../gtk-2.0/assets/radio-checked-active.png | Bin 0 -> 483 bytes .../gtk-2.0/assets/radio-checked-disabled.png | Bin 0 -> 408 bytes .../gtk-2.0/assets/radio-checked-hover.png | Bin 0 -> 483 bytes .../gtk-2.0/assets/radio-checked.png | Bin 0 -> 483 bytes .../gtk-2.0/assets/radio-mixed-active.png | Bin 0 -> 436 bytes .../gtk-2.0/assets/radio-mixed-disabled.png | Bin 0 -> 366 bytes .../gtk-2.0/assets/radio-mixed-hover.png | Bin 0 -> 436 bytes tokyonight_gtk/gtk-2.0/assets/radio-mixed.png | Bin 0 -> 436 bytes .../gtk-2.0/assets/radio-unchecked-active.png | Bin 0 -> 520 bytes .../assets/radio-unchecked-disabled.png | Bin 0 -> 404 bytes .../gtk-2.0/assets/radio-unchecked-hover.png | Bin 0 -> 542 bytes .../gtk-2.0/assets/radio-unchecked.png | Bin 0 -> 500 bytes .../assets/scale-horz-trough-active.png | Bin 0 -> 161 bytes .../assets/scale-horz-trough-disabled.png | Bin 0 -> 160 bytes .../gtk-2.0/assets/scale-horz-trough.png | Bin 0 -> 160 bytes .../gtk-2.0/assets/scale-slider-active.png | Bin 0 -> 505 bytes .../gtk-2.0/assets/scale-slider-disabled.png | Bin 0 -> 272 bytes .../gtk-2.0/assets/scale-slider-hover.png | Bin 0 -> 440 bytes .../gtk-2.0/assets/scale-slider.png | Bin 0 -> 290 bytes .../assets/scale-vert-trough-active.png | Bin 0 -> 160 bytes .../assets/scale-vert-trough-disabled.png | Bin 0 -> 160 bytes .../gtk-2.0/assets/scale-vert-trough.png | Bin 0 -> 160 bytes .../assets/scrollbar-horz-slider-active.png | Bin 0 -> 228 bytes .../assets/scrollbar-horz-slider-disabled.png | Bin 0 -> 224 bytes .../assets/scrollbar-horz-slider-hover.png | Bin 0 -> 246 bytes .../gtk-2.0/assets/scrollbar-horz-slider.png | Bin 0 -> 232 bytes .../gtk-2.0/assets/scrollbar-horz-trough.png | Bin 0 -> 127 bytes .../scrollbar-vert-ltr-slider-active.png | Bin 0 -> 225 bytes .../scrollbar-vert-ltr-slider-disabled.png | Bin 0 -> 229 bytes .../scrollbar-vert-ltr-slider-hover.png | Bin 0 -> 247 bytes .../assets/scrollbar-vert-ltr-slider.png | Bin 0 -> 236 bytes .../assets/scrollbar-vert-ltr-trough.png | Bin 0 -> 126 bytes .../scrollbar-vert-rtl-slider-active.png | Bin 0 -> 225 bytes .../scrollbar-vert-rtl-slider-disabled.png | Bin 0 -> 228 bytes .../scrollbar-vert-rtl-slider-hover.png | Bin 0 -> 245 bytes .../assets/scrollbar-vert-rtl-slider.png | Bin 0 -> 235 bytes .../assets/scrollbar-vert-rtl-trough.png | Bin 0 -> 126 bytes .../gtk-2.0/assets/spin-ltr-down-active.png | Bin 0 -> 243 bytes .../gtk-2.0/assets/spin-ltr-down-disabled.png | Bin 0 -> 174 bytes .../gtk-2.0/assets/spin-ltr-down-hover.png | Bin 0 -> 221 bytes .../gtk-2.0/assets/spin-ltr-down.png | Bin 0 -> 180 bytes .../gtk-2.0/assets/spin-ltr-up-active.png | Bin 0 -> 262 bytes .../gtk-2.0/assets/spin-ltr-up-disabled.png | Bin 0 -> 185 bytes .../gtk-2.0/assets/spin-ltr-up-hover.png | Bin 0 -> 236 bytes tokyonight_gtk/gtk-2.0/assets/spin-ltr-up.png | Bin 0 -> 196 bytes .../gtk-2.0/assets/spin-rtl-down-active.png | Bin 0 -> 258 bytes .../gtk-2.0/assets/spin-rtl-down-disabled.png | Bin 0 -> 176 bytes .../gtk-2.0/assets/spin-rtl-down-hover.png | Bin 0 -> 220 bytes .../gtk-2.0/assets/spin-rtl-down.png | Bin 0 -> 186 bytes .../gtk-2.0/assets/spin-rtl-up-active.png | Bin 0 -> 242 bytes .../gtk-2.0/assets/spin-rtl-up-disabled.png | Bin 0 -> 184 bytes .../gtk-2.0/assets/spin-rtl-up-hover.png | Bin 0 -> 225 bytes tokyonight_gtk/gtk-2.0/assets/spin-rtl-up.png | Bin 0 -> 186 bytes tokyonight_gtk/gtk-2.0/assets/tab.png | Bin 0 -> 125 bytes .../assets/treeview-ltr-button-active.png | Bin 0 -> 133 bytes .../assets/treeview-ltr-button-hover.png | Bin 0 -> 133 bytes .../gtk-2.0/assets/treeview-ltr-button.png | Bin 0 -> 126 bytes .../assets/treeview-rtl-button-active.png | Bin 0 -> 133 bytes .../assets/treeview-rtl-button-hover.png | Bin 0 -> 133 bytes .../gtk-2.0/assets/treeview-rtl-button.png | Bin 0 -> 126 bytes tokyonight_gtk/gtk-2.0/gtkrc | 36 + tokyonight_gtk/gtk-2.0/hacks.rc | 36 + tokyonight_gtk/gtk-2.0/main.rc | 2705 ++ .../scalable/checkbox-checked-symbolic.svg | 3 + .../scalable/checkbox-mixed-symbolic.svg | 3 + .../scalable/checkbox-unchecked-symbolic.svg | 3 + .../scalable/cursor-handle-symbolic.svg | 3 + .../scalable/radio-checked-symbolic.svg | 3 + .../assets/scalable/radio-mixed-symbolic.svg | 3 + .../scalable/radio-unchecked-symbolic.svg | 3 + ...scale-horz-marks-after-slider-symbolic.svg | 53 + ...cale-horz-marks-before-slider-symbolic.svg | 47 + .../assets/scalable/scale-slider-symbolic.svg | 11 + ...scale-vert-marks-after-slider-symbolic.svg | 52 + ...cale-vert-marks-before-slider-symbolic.svg | 55 + .../small-checkbox-checked-symbolic.svg | 3 + .../small-checkbox-mixed-symbolic.svg | 3 + .../small-checkbox-unchecked-symbolic.svg | 3 + .../scalable/small-radio-checked-symbolic.svg | 3 + .../scalable/small-radio-mixed-symbolic.svg | 3 + .../small-radio-unchecked-symbolic.svg | 3 + .../scale-horz-marks-after-slider-dark.png | Bin 0 -> 588 bytes .../scale-horz-marks-after-slider-dark@2.png | Bin 0 -> 936 bytes ...-horz-marks-after-slider-disabled-dark.png | Bin 0 -> 489 bytes ...orz-marks-after-slider-disabled-dark@2.png | Bin 0 -> 763 bytes ...scale-horz-marks-after-slider-disabled.png | Bin 0 -> 480 bytes ...ale-horz-marks-after-slider-disabled@2.png | Bin 0 -> 717 bytes .../assets/scale-horz-marks-after-slider.png | Bin 0 -> 597 bytes .../scale-horz-marks-after-slider@2.png | Bin 0 -> 953 bytes .../scale-horz-marks-before-slider-dark.png | Bin 0 -> 577 bytes .../scale-horz-marks-before-slider-dark@2.png | Bin 0 -> 922 bytes ...horz-marks-before-slider-disabled-dark.png | Bin 0 -> 489 bytes ...rz-marks-before-slider-disabled-dark@2.png | Bin 0 -> 747 bytes ...cale-horz-marks-before-slider-disabled.png | Bin 0 -> 481 bytes ...le-horz-marks-before-slider-disabled@2.png | Bin 0 -> 706 bytes .../assets/scale-horz-marks-before-slider.png | Bin 0 -> 586 bytes .../scale-horz-marks-before-slider@2.png | Bin 0 -> 935 bytes .../scale-vert-marks-after-slider-dark.png | Bin 0 -> 541 bytes .../scale-vert-marks-after-slider-dark@2.png | Bin 0 -> 862 bytes ...-vert-marks-after-slider-disabled-dark.png | Bin 0 -> 447 bytes ...ert-marks-after-slider-disabled-dark@2.png | Bin 0 -> 704 bytes ...scale-vert-marks-after-slider-disabled.png | Bin 0 -> 413 bytes ...ale-vert-marks-after-slider-disabled@2.png | Bin 0 -> 670 bytes .../assets/scale-vert-marks-after-slider.png | Bin 0 -> 537 bytes .../scale-vert-marks-after-slider@2.png | Bin 0 -> 890 bytes .../scale-vert-marks-before-slider-dark.png | Bin 0 -> 534 bytes .../scale-vert-marks-before-slider-dark@2.png | Bin 0 -> 857 bytes ...vert-marks-before-slider-disabled-dark.png | Bin 0 -> 454 bytes ...rt-marks-before-slider-disabled-dark@2.png | Bin 0 -> 677 bytes ...cale-vert-marks-before-slider-disabled.png | Bin 0 -> 406 bytes ...le-vert-marks-before-slider-disabled@2.png | Bin 0 -> 639 bytes .../assets/scale-vert-marks-before-slider.png | Bin 0 -> 543 bytes .../scale-vert-marks-before-slider@2.png | Bin 0 -> 879 bytes .../selectionmode-checkbox-checked-dark.png | Bin 0 -> 467 bytes .../selectionmode-checkbox-checked-dark@2.png | Bin 0 -> 703 bytes .../assets/selectionmode-checkbox-checked.png | Bin 0 -> 451 bytes .../selectionmode-checkbox-checked@2.png | Bin 0 -> 707 bytes .../selectionmode-checkbox-unchecked-dark.png | Bin 0 -> 273 bytes ...electionmode-checkbox-unchecked-dark@2.png | Bin 0 -> 415 bytes .../selectionmode-checkbox-unchecked.png | Bin 0 -> 273 bytes .../selectionmode-checkbox-unchecked@2.png | Bin 0 -> 415 bytes tokyonight_gtk/gtk-3.0/gtk-dark.css | 23083 +++++++++++++++ tokyonight_gtk/gtk-3.0/gtk.css | 23164 ++++++++++++++++ tokyonight_gtk/gtk-3.0/thumbnail.png | Bin 0 -> 2075 bytes .../scalable/checkbox-checked-symbolic.svg | 3 + .../scalable/checkbox-mixed-symbolic.svg | 3 + .../scalable/checkbox-unchecked-symbolic.svg | 3 + .../scalable/cursor-handle-symbolic.svg | 3 + .../scalable/radio-checked-symbolic.svg | 3 + .../assets/scalable/radio-mixed-symbolic.svg | 3 + .../scalable/radio-unchecked-symbolic.svg | 3 + ...scale-horz-marks-after-slider-symbolic.svg | 53 + ...cale-horz-marks-before-slider-symbolic.svg | 47 + .../assets/scalable/scale-slider-symbolic.svg | 11 + ...scale-vert-marks-after-slider-symbolic.svg | 52 + ...cale-vert-marks-before-slider-symbolic.svg | 55 + .../small-checkbox-checked-symbolic.svg | 3 + .../small-checkbox-mixed-symbolic.svg | 3 + .../small-checkbox-unchecked-symbolic.svg | 3 + .../scalable/small-radio-checked-symbolic.svg | 3 + .../scalable/small-radio-mixed-symbolic.svg | 3 + .../small-radio-unchecked-symbolic.svg | 3 + .../scale-horz-marks-after-slider-dark.png | Bin 0 -> 588 bytes .../scale-horz-marks-after-slider-dark@2.png | Bin 0 -> 936 bytes ...-horz-marks-after-slider-disabled-dark.png | Bin 0 -> 489 bytes ...orz-marks-after-slider-disabled-dark@2.png | Bin 0 -> 763 bytes ...scale-horz-marks-after-slider-disabled.png | Bin 0 -> 480 bytes ...ale-horz-marks-after-slider-disabled@2.png | Bin 0 -> 717 bytes .../assets/scale-horz-marks-after-slider.png | Bin 0 -> 597 bytes .../scale-horz-marks-after-slider@2.png | Bin 0 -> 953 bytes .../scale-horz-marks-before-slider-dark.png | Bin 0 -> 577 bytes .../scale-horz-marks-before-slider-dark@2.png | Bin 0 -> 922 bytes ...horz-marks-before-slider-disabled-dark.png | Bin 0 -> 489 bytes ...rz-marks-before-slider-disabled-dark@2.png | Bin 0 -> 747 bytes ...cale-horz-marks-before-slider-disabled.png | Bin 0 -> 481 bytes ...le-horz-marks-before-slider-disabled@2.png | Bin 0 -> 706 bytes .../assets/scale-horz-marks-before-slider.png | Bin 0 -> 586 bytes .../scale-horz-marks-before-slider@2.png | Bin 0 -> 935 bytes .../scale-vert-marks-after-slider-dark.png | Bin 0 -> 541 bytes .../scale-vert-marks-after-slider-dark@2.png | Bin 0 -> 862 bytes ...-vert-marks-after-slider-disabled-dark.png | Bin 0 -> 447 bytes ...ert-marks-after-slider-disabled-dark@2.png | Bin 0 -> 704 bytes ...scale-vert-marks-after-slider-disabled.png | Bin 0 -> 413 bytes ...ale-vert-marks-after-slider-disabled@2.png | Bin 0 -> 670 bytes .../assets/scale-vert-marks-after-slider.png | Bin 0 -> 537 bytes .../scale-vert-marks-after-slider@2.png | Bin 0 -> 890 bytes .../scale-vert-marks-before-slider-dark.png | Bin 0 -> 534 bytes .../scale-vert-marks-before-slider-dark@2.png | Bin 0 -> 857 bytes ...vert-marks-before-slider-disabled-dark.png | Bin 0 -> 454 bytes ...rt-marks-before-slider-disabled-dark@2.png | Bin 0 -> 677 bytes ...cale-vert-marks-before-slider-disabled.png | Bin 0 -> 406 bytes ...le-vert-marks-before-slider-disabled@2.png | Bin 0 -> 639 bytes .../assets/scale-vert-marks-before-slider.png | Bin 0 -> 543 bytes .../scale-vert-marks-before-slider@2.png | Bin 0 -> 879 bytes .../selectionmode-checkbox-checked-dark.png | Bin 0 -> 467 bytes .../selectionmode-checkbox-checked-dark@2.png | Bin 0 -> 703 bytes .../assets/selectionmode-checkbox-checked.png | Bin 0 -> 451 bytes .../selectionmode-checkbox-checked@2.png | Bin 0 -> 707 bytes .../selectionmode-checkbox-unchecked-dark.png | Bin 0 -> 273 bytes ...electionmode-checkbox-unchecked-dark@2.png | Bin 0 -> 415 bytes .../selectionmode-checkbox-unchecked.png | Bin 0 -> 273 bytes .../selectionmode-checkbox-unchecked@2.png | Bin 0 -> 415 bytes tokyonight_gtk/gtk-4.0/gtk-dark.css | 5292 ++++ tokyonight_gtk/gtk-4.0/gtk.css | 5292 ++++ tokyonight_gtk/gtk-4.0/thumbnail.png | Bin 0 -> 2075 bytes tokyonight_gtk/index.theme | 12 + vsc/settings.json | 58 + vsc/zhuangtongfa.material-theme-3.13.29.vsix | Bin 0 -> 284599 bytes .../.vsixmanifest | 46 + .../CHANGELOG.md | 1067 + .../LICENSE.txt | 21 + .../README.md | 258 + .../build/web-extension.webpack.config.js | 61 + .../docs/.nojekyll | 0 .../docs/README.md | 163 + .../docs/_coverpage.md | 14 + .../docs/favicon.ico | Bin 0 -> 15406 bytes .../docs/icon.svg | 8 + .../docs/index.html | 32 + .../docs/sw.js | 83 + .../icon.png | Bin 0 -> 8589 bytes .../icon.svg | 8 + .../node_modules/@types/marked/LICENSE | 21 + .../node_modules/@types/marked/README.md | 16 + .../node_modules/@types/marked/index.d.mts | 1 + .../node_modules/@types/marked/index.d.ts | 601 + .../node_modules/@types/marked/package.json | 78 + .../node_modules/marked/LICENSE.md | 44 + .../node_modules/marked/README.md | 87 + .../node_modules/marked/bin/marked.js | 214 + .../node_modules/marked/lib/marked.cjs | 2931 ++ .../node_modules/marked/lib/marked.esm.js | 2701 ++ .../node_modules/marked/lib/marked.umd.js | 2937 ++ .../node_modules/marked/man/marked.1 | 92 + .../node_modules/marked/man/marked.1.txt | 86 + .../node_modules/marked/marked.min.js | 6 + .../node_modules/marked/package.json | 97 + .../node_modules/marked/src/Lexer.js | 495 + .../node_modules/marked/src/Parser.js | 286 + .../node_modules/marked/src/Renderer.js | 166 + .../node_modules/marked/src/Slugger.js | 49 + .../node_modules/marked/src/TextRenderer.js | 42 + .../node_modules/marked/src/Tokenizer.js | 768 + .../node_modules/marked/src/defaults.js | 29 + .../node_modules/marked/src/helpers.js | 249 + .../node_modules/marked/src/marked.js | 350 + .../node_modules/marked/src/rules.js | 302 + .../out/defaultConfig.json | 6 + .../out/extension.js | 91 + .../out/helpers/message.js | 27 + .../out/interface/TokenColor.js | 3 + .../out/interface/colors.js | 3 + .../out/interface/configuration.js | 3 + .../out/interface/index.js | 20 + .../out/themes/Theme.js | 106 + .../out/themes/data/ayu.js | 183 + .../out/themes/data/gnome.js | 60 + .../out/themes/data/justBlack.js | 136 + .../out/themes/data/nord.js | 227 + .../out/themes/data/ocean.js | 601 + .../out/themes/data/oneDarkPro.js | 146 + .../out/themes/data/oneDarkProDarker.js | 146 + .../out/themes/data/oneDarkProFlat.js | 171 + .../out/themes/data/oneDarkProMix.js | 146 + .../out/themes/data/panda.js | 108 + .../out/themes/data/retro.js | 186 + .../out/themes/data/shadow.js | 113 + .../out/themes/data/solarized.js | 92 + .../out/themes/data/solarizedFlat.js | 90 + .../out/themes/data/tokyo.js | 289 + .../out/themes/data/vscode.js | 21 + .../out/themes/generator.js | 39 + .../out/themes/index.js | 6 + .../out/themes/themeData.js | 2050 ++ .../out/utils/colorObjArr.js | 18 + .../out/utils/index.js | 20 + .../out/utils/reload-prompt.js | 28 + .../out/utils/updateCSS.js | 37 + .../out/utils/updateTheme.js | 36 + .../out/web/extension.js | 1 + .../out/webviews/Changelog.js | 36 + .../out/webviews/Webview.js | 41 + .../package.json | 326 + .../package.nls.json | 14 + .../package.nls.zh-CN.json | 14 + .../releaseNote.md | 41 + .../styles/atom-one-dark-inside.css | 0 .../styles/base-inside.css | 0 .../styles/markdown-inside.css | 0 .../styles/origin/atom-one-dark-inside.css | 156 + .../styles/origin/base-inside.css | 35 + .../styles/origin/markdown-inside.css | 482 + .../temp/.gitkeep | 0 .../temp/flag.txt | 1 + .../themes/OneDark-Pro-darker.json | 2161 ++ .../themes/OneDark-Pro-flat.json | 2229 ++ .../themes/OneDark-Pro-mix.json | 2204 ++ .../themes/OneDark-Pro.json | 2190 ++ wallpapers/background.png | Bin 0 -> 680528 bytes wallpapers/current_blue.png | Bin 1127957 -> 0 bytes wallpapers/current_blue_orginal.png | Bin 1211391 -> 0 bytes wallpapers/lockscreen.png | Bin 718620 -> 0 bytes wallpapers/lockscreen_orginal.png | Bin 323454 -> 0 bytes 551 files changed, 103687 insertions(+), 4712 deletions(-) rename config/.zshrc => .zshrc (57%) create mode 100644 config/alacritty/alacritty.yml delete mode 100755 config/betterlockscreenrc delete mode 100755 config/cava/config delete mode 100755 config/kitty/kitty.conf create mode 100644 config/nvim/.luacheckrc create mode 100644 config/nvim/.stylua.toml create mode 100644 config/nvim/colors/default_theme.lua create mode 100644 config/nvim/init.lua create mode 100644 config/nvim/lua/configs/Comment.lua create mode 100644 config/nvim/lua/configs/aerial.lua create mode 100644 config/nvim/lua/configs/alpha.lua create mode 100644 config/nvim/lua/configs/autopairs.lua create mode 100644 config/nvim/lua/configs/better_escape.lua create mode 100644 config/nvim/lua/configs/bufferline.lua create mode 100644 config/nvim/lua/configs/cinnamon.lua create mode 100644 config/nvim/lua/configs/cmp.lua create mode 100644 config/nvim/lua/configs/colorizer.lua create mode 100644 config/nvim/lua/configs/feline.lua create mode 100644 config/nvim/lua/configs/gitsigns.lua create mode 100644 config/nvim/lua/configs/icons.lua create mode 100644 config/nvim/lua/configs/indent-line.lua create mode 100644 config/nvim/lua/configs/indent-o-matic.lua create mode 100644 config/nvim/lua/configs/lsp/handlers.lua create mode 100644 config/nvim/lua/configs/lsp/init.lua create mode 100644 config/nvim/lua/configs/lsp/server-settings/html.lua create mode 100644 config/nvim/lua/configs/lsp/server-settings/jsonls.lua create mode 100644 config/nvim/lua/configs/lsp/server-settings/pyright.lua create mode 100644 config/nvim/lua/configs/lsp/server-settings/rust_analyzer.lua create mode 100644 config/nvim/lua/configs/lsp/server-settings/sumneko_lua.lua create mode 100644 config/nvim/lua/configs/lsp/server-settings/tsserver.lua create mode 100644 config/nvim/lua/configs/luasnip.lua create mode 100644 config/nvim/lua/configs/neo-tree.lua create mode 100644 config/nvim/lua/configs/notify.lua create mode 100644 config/nvim/lua/configs/null-ls.lua create mode 100644 config/nvim/lua/configs/nvim-lsp-installer.lua create mode 100644 config/nvim/lua/configs/session_manager.lua create mode 100644 config/nvim/lua/configs/smart-splits.lua create mode 100644 config/nvim/lua/configs/telescope.lua create mode 100644 config/nvim/lua/configs/toggleterm.lua create mode 100644 config/nvim/lua/configs/treesitter.lua create mode 100644 config/nvim/lua/configs/which-key-register.lua create mode 100644 config/nvim/lua/configs/which-key.lua create mode 100644 config/nvim/lua/core/autocmds.lua create mode 100644 config/nvim/lua/core/mappings.lua create mode 100644 config/nvim/lua/core/options.lua create mode 100644 config/nvim/lua/core/plugins.lua create mode 100644 config/nvim/lua/core/status.lua create mode 100644 config/nvim/lua/core/ui.lua create mode 100644 config/nvim/lua/core/utils/git.lua create mode 100644 config/nvim/lua/core/utils/init.lua create mode 100644 config/nvim/lua/core/utils/updater.lua create mode 100644 config/nvim/lua/default_theme/base.lua create mode 100644 config/nvim/lua/default_theme/colors.lua create mode 100644 config/nvim/lua/default_theme/init.lua create mode 100644 config/nvim/lua/default_theme/lsp.lua create mode 100644 config/nvim/lua/default_theme/plugins/aerial.lua create mode 100644 config/nvim/lua/default_theme/plugins/beacon.lua create mode 100644 config/nvim/lua/default_theme/plugins/bufferline.lua create mode 100644 config/nvim/lua/default_theme/plugins/dashboard.lua create mode 100644 config/nvim/lua/default_theme/plugins/gitsigns.lua create mode 100644 config/nvim/lua/default_theme/plugins/highlighturl.lua create mode 100644 config/nvim/lua/default_theme/plugins/hop.lua create mode 100644 config/nvim/lua/default_theme/plugins/indent_blankline.lua create mode 100644 config/nvim/lua/default_theme/plugins/lightspeed.lua create mode 100644 config/nvim/lua/default_theme/plugins/neo-tree.lua create mode 100644 config/nvim/lua/default_theme/plugins/notify.lua create mode 100644 config/nvim/lua/default_theme/plugins/nvim-tree.lua create mode 100644 config/nvim/lua/default_theme/plugins/nvim-web-devicons.lua create mode 100644 config/nvim/lua/default_theme/plugins/rainbow.lua create mode 100644 config/nvim/lua/default_theme/plugins/symbols_outline.lua create mode 100644 config/nvim/lua/default_theme/plugins/telescope.lua create mode 100644 config/nvim/lua/default_theme/plugins/vimwiki.lua create mode 100644 config/nvim/lua/default_theme/plugins/which-key.lua create mode 100644 config/nvim/lua/default_theme/treesitter.lua create mode 100644 config/nvim/lua/default_theme/utils.lua create mode 100644 config/nvim/lua/user_example/init.lua create mode 100644 config/nvim/packer_snapshot create mode 100755 config/polybar/config.ini delete mode 100755 config/polybar/polybar-rounded/config.ini delete mode 100755 config/polybar/polybar-rounded/modules/alsa.ini delete mode 100755 config/polybar/polybar-rounded/modules/backlight.ini delete mode 100755 config/polybar/polybar-rounded/modules/battery.ini delete mode 100755 config/polybar/polybar-rounded/modules/cpu.ini delete mode 100755 config/polybar/polybar-rounded/modules/date.ini delete mode 100755 config/polybar/polybar-rounded/modules/filesystem.ini delete mode 100755 config/polybar/polybar-rounded/modules/glyphs.ini delete mode 100755 config/polybar/polybar-rounded/modules/i3.ini delete mode 100755 config/polybar/polybar-rounded/modules/keyboard.ini delete mode 100755 config/polybar/polybar-rounded/modules/memory.ini delete mode 100755 config/polybar/polybar-rounded/modules/mpd.ini delete mode 100755 config/polybar/polybar-rounded/modules/network.ini delete mode 100755 config/polybar/polybar-rounded/modules/network_mini.ini delete mode 100755 config/polybar/polybar-rounded/modules/sep.ini delete mode 100755 config/polybar/polybar-rounded/modules/temperature.ini delete mode 100755 config/polybar/polybar-rounded/modules/title.ini delete mode 100755 config/polybar/polybar-rounded/modules/uptime.ini delete mode 100755 config/polybar/polybar-square/config.ini delete mode 100755 config/polybar/polybar-square/modules/alsa.ini delete mode 100755 config/polybar/polybar-square/modules/backlight.ini delete mode 100755 config/polybar/polybar-square/modules/battery.ini delete mode 100755 config/polybar/polybar-square/modules/cpu.ini delete mode 100755 config/polybar/polybar-square/modules/date.ini delete mode 100755 config/polybar/polybar-square/modules/filesystem.ini delete mode 100755 config/polybar/polybar-square/modules/i3.ini delete mode 100755 config/polybar/polybar-square/modules/keyboard.ini delete mode 100755 config/polybar/polybar-square/modules/memory.ini delete mode 100755 config/polybar/polybar-square/modules/mpd.ini delete mode 100755 config/polybar/polybar-square/modules/network.ini delete mode 100755 config/polybar/polybar-square/modules/network_mini.ini delete mode 100755 config/polybar/polybar-square/modules/temperature.ini delete mode 100755 config/polybar/polybar-square/modules/title.ini delete mode 100755 config/polybar/polybar-square/modules/uptime.ini delete mode 100755 config/polybar/polybar-square/uptime.sh rename config/polybar/{polybar-rounded => }/uptime.sh (100%) rename config/rofi/{center.rasi => full_screen.rasi} (68%) rename config/rofi/{compact.rasi => main.rasi} (71%) rename config/rofi/{compact_without_icons.rasi => main_without_icons.rasi} (71%) delete mode 100755 config/rofi/sidebar.rasi delete mode 100755 config/vsc/settings.json delete mode 100755 config/vsc/zhuangtongfa.Material-theme-3.13.7.vsix create mode 100644 config/zathura/zathurarc rename config/keyitdev.zsh-theme => keyitdev.zsh-theme (85%) rename config/local.conf => local.conf (100%) create mode 100755 scripts/font-icons create mode 100644 scripts/lock delete mode 100755 scripts/theme delete mode 100755 scripts/themes/polybar-rounded/launch.sh delete mode 100755 scripts/themes/polybar-square/launch.sh create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/applogo.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/background.png create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/calendar-arrow-left.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/calendar-arrow-right.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/calendar-today.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/checkbox-off.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/checkbox.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/dash-placeholder.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/more-results.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/no-events.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/no-notifications.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/noise-texture.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/process-working.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/toggle-off-dark.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/toggle-off.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/assets/toggle-on.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/gnome-shell.css create mode 120000 tokyonight_gtk/gnome-shell-DTD/no-events.svg create mode 120000 tokyonight_gtk/gnome-shell-DTD/no-notifications.svg create mode 100644 tokyonight_gtk/gnome-shell-DTD/pad-osd.css create mode 120000 tokyonight_gtk/gnome-shell-DTD/process-working.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/applogo.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/background.png create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/calendar-arrow-left.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/calendar-arrow-right.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/calendar-today.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/checkbox-off.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/checkbox.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/dash-placeholder.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/more-results.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/no-events.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/no-notifications.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/noise-texture.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/process-working.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/toggle-off-dark.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/toggle-off.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/assets/toggle-on.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/gnome-shell.css create mode 120000 tokyonight_gtk/gnome-shell-DTP/no-events.svg create mode 120000 tokyonight_gtk/gnome-shell-DTP/no-notifications.svg create mode 100644 tokyonight_gtk/gnome-shell-DTP/pad-osd.css create mode 120000 tokyonight_gtk/gnome-shell-DTP/process-working.svg create mode 100644 tokyonight_gtk/gtk-2.0/apps.rc create mode 100644 tokyonight_gtk/gtk-2.0/assets/border.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/button-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/button-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/button-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/button.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/checkbox-checked-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/checkbox-checked-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/checkbox-checked-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/checkbox-checked.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/checkbox-mixed-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/checkbox-mixed-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/checkbox-mixed-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/checkbox-mixed.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/checkbox-unchecked-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/checkbox-unchecked-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/checkbox-unchecked-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/checkbox-unchecked.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/combo-left-entry-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/combo-left-entry-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/combo-left-entry-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/combo-left-entry.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/combo-right-entry-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/combo-right-entry-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/combo-right-entry-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/combo-right-entry.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/entry-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/entry-background-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/entry-background.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/entry-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/entry-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/entry.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/flat-button-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/flat-button-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/flat-button-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/flat-button.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/focus.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/frame-inline.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/frame-notebook.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/frame.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/handle-horz-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/handle-horz-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/handle-horz.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/handle-vert-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/handle-vert-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/handle-vert.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/menu-checkbox-checked-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/menu-checkbox-checked.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/menu-checkbox-mixed-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/menu-checkbox-mixed.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/menu-checkbox-unchecked-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/menu-checkbox-unchecked.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/menu-radio-checked-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/menu-radio-checked.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/menu-radio-mixed-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/menu-radio-mixed.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/menu-radio-unchecked-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/menu-radio-unchecked.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-down-alt-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-down-alt.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-down-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-down.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-left-alt-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-left-alt.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-left-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-left-semi.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-left.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-right-alt-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-right-alt.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-right-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-right-semi.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-right.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-up-alt-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-up-alt.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-up-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/pan-up.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/progressbar-progress.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/progressbar-trough.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/radio-checked-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/radio-checked-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/radio-checked-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/radio-checked.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/radio-mixed-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/radio-mixed-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/radio-mixed-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/radio-mixed.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/radio-unchecked-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/radio-unchecked-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/radio-unchecked-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/radio-unchecked.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scale-horz-trough-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scale-horz-trough-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scale-horz-trough.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scale-slider-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scale-slider-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scale-slider-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scale-slider.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scale-vert-trough-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scale-vert-trough-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scale-vert-trough.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-horz-slider-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-horz-slider-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-horz-slider-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-horz-slider.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-horz-trough.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-vert-ltr-slider-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-vert-ltr-slider-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-vert-ltr-slider-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-vert-ltr-slider.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-vert-ltr-trough.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-vert-rtl-slider-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-vert-rtl-slider-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-vert-rtl-slider-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-vert-rtl-slider.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/scrollbar-vert-rtl-trough.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-ltr-down-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-ltr-down-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-ltr-down-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-ltr-down.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-ltr-up-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-ltr-up-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-ltr-up-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-ltr-up.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-rtl-down-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-rtl-down-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-rtl-down-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-rtl-down.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-rtl-up-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-rtl-up-disabled.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-rtl-up-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/spin-rtl-up.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/tab.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/treeview-ltr-button-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/treeview-ltr-button-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/treeview-ltr-button.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/treeview-rtl-button-active.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/treeview-rtl-button-hover.png create mode 100644 tokyonight_gtk/gtk-2.0/assets/treeview-rtl-button.png create mode 100644 tokyonight_gtk/gtk-2.0/gtkrc create mode 100644 tokyonight_gtk/gtk-2.0/hacks.rc create mode 100644 tokyonight_gtk/gtk-2.0/main.rc create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/checkbox-checked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/checkbox-mixed-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/checkbox-unchecked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/cursor-handle-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/radio-checked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/radio-mixed-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/radio-unchecked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/scale-horz-marks-after-slider-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/scale-horz-marks-before-slider-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/scale-slider-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/scale-vert-marks-after-slider-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/scale-vert-marks-before-slider-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/small-checkbox-checked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/small-checkbox-mixed-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/small-checkbox-unchecked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/small-radio-checked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/small-radio-mixed-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scalable/small-radio-unchecked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-after-slider-dark.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-after-slider-dark@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-after-slider-disabled-dark.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-after-slider-disabled-dark@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-after-slider-disabled.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-after-slider-disabled@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-after-slider.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-after-slider@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-before-slider-dark.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-before-slider-dark@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-before-slider-disabled-dark.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-before-slider-disabled-dark@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-before-slider-disabled.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-before-slider-disabled@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-before-slider.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-horz-marks-before-slider@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-after-slider-dark.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-after-slider-dark@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-after-slider-disabled-dark.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-after-slider-disabled-dark@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-after-slider-disabled.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-after-slider-disabled@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-after-slider.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-after-slider@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-before-slider-dark.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-before-slider-dark@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-before-slider-disabled-dark.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-before-slider-disabled-dark@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-before-slider-disabled.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-before-slider-disabled@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-before-slider.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/scale-vert-marks-before-slider@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/selectionmode-checkbox-checked-dark.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/selectionmode-checkbox-checked-dark@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/selectionmode-checkbox-checked.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/selectionmode-checkbox-checked@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/selectionmode-checkbox-unchecked-dark.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/selectionmode-checkbox-unchecked-dark@2.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/selectionmode-checkbox-unchecked.png create mode 100644 tokyonight_gtk/gtk-3.0/assets/selectionmode-checkbox-unchecked@2.png create mode 100644 tokyonight_gtk/gtk-3.0/gtk-dark.css create mode 100644 tokyonight_gtk/gtk-3.0/gtk.css create mode 100644 tokyonight_gtk/gtk-3.0/thumbnail.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/checkbox-checked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/checkbox-mixed-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/checkbox-unchecked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/cursor-handle-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/radio-checked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/radio-mixed-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/radio-unchecked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/scale-horz-marks-after-slider-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/scale-horz-marks-before-slider-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/scale-slider-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/scale-vert-marks-after-slider-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/scale-vert-marks-before-slider-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/small-checkbox-checked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/small-checkbox-mixed-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/small-checkbox-unchecked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/small-radio-checked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/small-radio-mixed-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scalable/small-radio-unchecked-symbolic.svg create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-after-slider-dark.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-after-slider-dark@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-after-slider-disabled-dark.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-after-slider-disabled-dark@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-after-slider-disabled.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-after-slider-disabled@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-after-slider.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-after-slider@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-before-slider-dark.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-before-slider-dark@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-before-slider-disabled-dark.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-before-slider-disabled-dark@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-before-slider-disabled.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-before-slider-disabled@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-before-slider.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-horz-marks-before-slider@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-after-slider-dark.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-after-slider-dark@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-after-slider-disabled-dark.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-after-slider-disabled-dark@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-after-slider-disabled.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-after-slider-disabled@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-after-slider.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-after-slider@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-before-slider-dark.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-before-slider-dark@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-before-slider-disabled-dark.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-before-slider-disabled-dark@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-before-slider-disabled.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-before-slider-disabled@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-before-slider.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/scale-vert-marks-before-slider@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/selectionmode-checkbox-checked-dark.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/selectionmode-checkbox-checked-dark@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/selectionmode-checkbox-checked.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/selectionmode-checkbox-checked@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/selectionmode-checkbox-unchecked-dark.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/selectionmode-checkbox-unchecked-dark@2.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/selectionmode-checkbox-unchecked.png create mode 100644 tokyonight_gtk/gtk-4.0/assets/selectionmode-checkbox-unchecked@2.png create mode 100644 tokyonight_gtk/gtk-4.0/gtk-dark.css create mode 100644 tokyonight_gtk/gtk-4.0/gtk.css create mode 100644 tokyonight_gtk/gtk-4.0/thumbnail.png create mode 100644 tokyonight_gtk/index.theme create mode 100755 vsc/settings.json create mode 100644 vsc/zhuangtongfa.material-theme-3.13.29.vsix create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/.vsixmanifest create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/CHANGELOG.md create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/LICENSE.txt create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/README.md create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/build/web-extension.webpack.config.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/docs/.nojekyll create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/docs/README.md create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/docs/_coverpage.md create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/docs/favicon.ico create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/docs/icon.svg create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/docs/index.html create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/docs/sw.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/icon.png create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/icon.svg create mode 100755 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/@types/marked/LICENSE create mode 100755 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/@types/marked/README.md create mode 100755 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/@types/marked/index.d.mts create mode 100755 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/@types/marked/index.d.ts create mode 100755 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/@types/marked/package.json create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/LICENSE.md create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/README.md create mode 100755 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/bin/marked.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/lib/marked.cjs create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/lib/marked.esm.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/lib/marked.umd.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/man/marked.1 create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/man/marked.1.txt create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/marked.min.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/package.json create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/src/Lexer.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/src/Parser.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/src/Renderer.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/src/Slugger.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/src/TextRenderer.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/src/Tokenizer.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/src/defaults.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/src/helpers.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/src/marked.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/node_modules/marked/src/rules.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/defaultConfig.json create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/extension.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/helpers/message.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/interface/TokenColor.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/interface/colors.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/interface/configuration.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/interface/index.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/Theme.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/ayu.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/gnome.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/justBlack.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/nord.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/ocean.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/oneDarkPro.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/oneDarkProDarker.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/oneDarkProFlat.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/oneDarkProMix.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/panda.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/retro.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/shadow.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/solarized.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/solarizedFlat.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/tokyo.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/data/vscode.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/generator.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/index.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/themes/themeData.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/utils/colorObjArr.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/utils/index.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/utils/reload-prompt.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/utils/updateCSS.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/utils/updateTheme.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/web/extension.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/webviews/Changelog.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/out/webviews/Webview.js create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/package.json create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/package.nls.json create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/package.nls.zh-CN.json create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/releaseNote.md create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/styles/atom-one-dark-inside.css create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/styles/base-inside.css create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/styles/markdown-inside.css create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/styles/origin/atom-one-dark-inside.css create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/styles/origin/base-inside.css create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/styles/origin/markdown-inside.css create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/temp/.gitkeep create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/temp/flag.txt create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/themes/OneDark-Pro-darker.json create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/themes/OneDark-Pro-flat.json create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/themes/OneDark-Pro-mix.json create mode 100644 vsc/zhuangtongfa.material-theme-3.15.2/themes/OneDark-Pro.json create mode 100644 wallpapers/background.png delete mode 100755 wallpapers/current_blue.png delete mode 100755 wallpapers/current_blue_orginal.png delete mode 100755 wallpapers/lockscreen.png delete mode 100755 wallpapers/lockscreen_orginal.png diff --git a/config/.zshrc b/.zshrc similarity index 57% rename from config/.zshrc rename to .zshrc index cc2ec94..a9ba762 100755 --- a/config/.zshrc +++ b/.zshrc @@ -1,23 +1,18 @@ -export ZSH="$HOME/.oh-my-zsh" - +ZSH="/usr/share/oh-my-zsh/" +export ZSH="/usr/share/oh-my-zsh/" ZSH_THEME="keyitdev" - plugins=(git) -source $ZSH/oh-my-zsh.sh +ZSH_CACHE_DIR="$HOME/.cache/oh-my-zsh" +if [[ ! -d "$ZSH_CACHE_DIR" ]]; then + mkdir "$ZSH_CACHE_DIR" +fi -# pacman -alias pacrem="sudo pacman -Rn" -alias pacrema="sudo pacman -Rns" -alias pacupd="sudo pacman -Syyy" -alias pacupg="sudo pacman -Syu" -alias paccl="sudo pacman -Rns $(pacman -Qtdq)" +source "$ZSH"/oh-my-zsh.sh -alias yayrem="yay -Rn" -alias yayrema="yay -Rns" -alias yayupd="yay -Syyy" -alias yayupg="yay -Syu" -alias yaycl="yay -Rns $(yay -Qtdq)" +alias yeet="yay -Rn" +alias yeeet="yay -Rns" +alias yeet_useless="yay -Rns $(yay -Qtdq)" # git alias g="git" @@ -45,12 +40,13 @@ alias nv="nvim" alias la="ls -alF" alias h="history|grep" alias c="clear" # I know about ctrl l etc. -alias logout="killall -KILL -u key_user" -alias files="nautilus" -alias helpme="cat ~/.zshrc | less" +alias logout="killall -KILL -u $USER" +alias files="nemo" +alias files.="nemo ." +alias help="cat ~/.zshrc | less" # cd alias ..="cd .." alias ....="cd ../.." alias ......="cd ../../.." -alias ........="cd ../../../.." \ No newline at end of file +alias ........="cd ../../../.." diff --git a/README.md b/README.md index 5498c5e..958ce3f 100755 --- a/README.md +++ b/README.md @@ -1,182 +1,182 @@ -

Keyitdev Dotfiles

+# Keyitdev Dotfiles -

My personal build of dotfiles using i3. Color palette is based on the Atom One Dark colorscheme. This configuration also works on dual monitors.

+The **Arch Linux** & **i3wm** dotfiles! -
-Showcase · Info · Dependencies · Installation · Keybinds · Colors · Troubleshooting -
+[Showcase](#showcase) · +[Information](#information) · +[Installation](#installation) · +[Cheat sheet](#cheat-sheet) · +[Support and Thankies](#support-and-thankies) -
+**i3wm** is very simple, old tiling window manager, but it is still powerful and highly configurable. Although it takes time and effort to configure it, but I'm very satisfied with the result. -

- - - - - -

+This is the third version of my dotfiles, as I gain more experience I am able to create more profesional dotfiles. -
+**However, if you want to check older version see [v2 branch](https://github.com/Keyitdev/dotfiles/tree/v2).** -**Check newer version here [v3 branch](https://github.com/Keyitdev/dotfiles/tree/v3).** +![](https://github.com/Keyitdev/screenshots/blob/master/dotfiles/v3/screenshots/1.png) -
+### [Watch viedo demo here]() -## 🌟 Showcase +[![](https://img.shields.io/github/stars/keyitdev/dotfiles?color=dd864a&labelColor=1b1b25&style=for-the-badge)](https://github.com/Keyitdev/dotfiles/stargazers) +[![](https://img.shields.io/github/forks/keyitdev/dotfiles?color=bf616a&labelColor=1b1b25&style=for-the-badge)](https://github.com/Keyitdev/dotfiles/network/members) +[![](https://img.shields.io/github/license/keyitdev/dotfiles?color=999f63&labelColor=1b1b25&style=for-the-badge)](https://www.gnu.org/licenses/gpl-3.0.html) +## Information -![](https://github.com/Keyitdev/screenshots/blob/master/dotfiles/v2/screenshots/main.png?raw=true) +- **OS:** [Arch Linux](https://archlinux.org) +- **WM:** [i3-gaps](https://github.com/Airblader/i3) +- **Terminal:** [alacritty](https://github.com/alacritty/alacritty) +- **Bar:** [polybar](https://github.com/polybar/polybar) +- **Shell:** [zsh](https://www.zsh.org/) +- **Compositor:** [picom](https://github.com/yshui/picom) +- **Application Launcher:** [rofi](https://github.com/davatorium/rofi) +- **Notification Deamon:** [dunst](https://github.com/dunst-project/dunst) -### [More screenshots here](https://github.com/Keyitdev/screenshots/blob/master/dotfiles/v2/README.md) +
+ +Detailed information and dependencies + -### [Watch the demo video here](https://www.youtube.com/watch?v=_dMkmf2ugPE) +### Info -## 🗒️ Info +**Music Player:** [mpd](https://github.com/MusicPlayerDaemon/MPD) & [ncmpcpp](https://github.com/ncmpcpp/ncmpcpp) +**Editor:** [neovim](https://github.com/neovim/neovim) / [vscode](https://github.com/microsoft/vscode) +**Lockscreen:** [i3lock-color](https://github.com/Raymo111/i3lock-color) +**Display Manager:** [sddm](https://github.com/sddm/sddm) +**File manager:** [ranger](https://github.com/ranger/ranger) / [nemo](https://github.com/linuxmint/nemo) +**Pdf reader:** [zathura](https://github.com/pwmt/zathura) +**Monitor of Resources:** [btop](https://github.com/aristocratos/btop) -|Program|Name| +### Used themes + +**Shell Framework:** [Oh-My-Zsh](https://github.com/ohmyzsh/ohmyzsh) +**Vscode Theme:** [One dark pro](https://marketplace.visualstudio.com/items?itemName=zhuangtongfa.Material-theme) +**Neovim Theme:** [AstroNvim](https://github.com/kabinspace/AstroVim) +**Icons:** [Papirus dark](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme) +**GTK Theme:** [Tokyo night](https://github.com/Fausto-Korpsvart/Tokyo-Night-GTK-Theme) +**Display Manager Theme:** [Sddm-flower-theme](https://github.com/Keyitdev/sddm-flower-theme) + +### Fonts + +**Icons:** [Feather](https://github.com/AT-UI/feather-font/blob/master/src/fonts/feather.ttf) +**Interface Font:** [Open sans](https://fonts.google.com/specimen/Open+Sans#standard-styles) +**Monospace Font:** [Roboto mono](https://fonts.google.com/specimen/Roboto+Mono#standard-styles) +**Polybar Font:** [Iosevka nerd font](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/Iosevka) + +### Dependencies + +**Base:** acpi alsa-utils base-devel curl git pulseaudio pulseaudio-alsa xorg xorg-xinit + +**Required:** alacritty btop code dunst feh ffcast firefox i3-gaps i3lock-color i3-resurrect libnotify light mpc mpd ncmpcpp nemo neofetch neovim oh-my-zsh-git pacman-contrib papirus-icon-theme picom polybar ranger rofi scrot slop xclip zathura zathura-pdf-mupdf zsh + +**Sddm:** qt5-graphicaleffects qt5-quickcontrols2 qt5-svg sddm + +**Emoji:** fonts: noto-fonts noto-fonts-cjk noto-fonts-emoji noto-fonts-extra + +
+ +## Showcase + +|vsc & ncmpcpp & cava|rofi & dunst| |-|-| -|**Window Manager**|[i3-gaps](https://github.com/Airblader/i3)| -|**Terminal Emulator**|[Kitty](https://github.com/kovidgoyal/kitty)| -|**Bar**|[Polybar](https://github.com/polybar/polybar)| -|**Application Launcher**|[Rofi](https://github.com/davatorium/rofi)| -|**Notification Daemon**|[Dunst](https://github.com/dunst-project/dunst)| -|**Display Manager**|[SDDM](https://github.com/sddm/sddm)| -|**Display Manager Theme**|[SDDM-Astronaut-Theme](https://github.com/Keyitdev/sddm-astronaut-theme)| -|**Lockscreen**|[BetterLockscreen](https://github.com/betterlockscreen/betterlockscreen)| -|**Compositor**|[Picom](https://github.com/yshui/picom) -|**Shell**|[Zsh](https://www.zsh.org/)| -|**Shell Framework**|[Oh-My-Zsh](https://github.com/ohmyzsh/ohmyzsh)| -|**Music Player**|[mpd](https://github.com/MusicPlayerDaemon/MPD), [ncmpcpp](https://github.com/ncmpcpp/ncmpcpp) -|**Text Editor**|[Visual Studio Code](https://github.com/Microsoft/vscode), [Neovim](https://github.com/neovim/neovim)| -|**VSC Colorscheme**|[One Dark Pro](https://marketplace.visualstudio.com/items?itemName=zhuangtongfa.Material-theme)| -|**Neovim Theme**|[AstroVim](https://github.com/kabinspace/AstroVim) -|**GTK Theme**|[Ant (Dracula)](https://github.com/EliverLara/ant)| -|**Icons**|[Papirus Dark](https://github.com/PapirusDevelopmentTeam/papirus-icon-theme)| -|**Discord Theme**|[Custom](https://github.com/Keyitdev/BetterDiscord-themes)| - -## ⚡ Dependencies - -### Packages -* **Base:** base-devel wget curl git gcc make acpi light pulseaudio pulseaudio-alsa alsa-utils pacman-contrib mpc -* **WM/X11:** i3-gaps i3blocks i3lock-color xorg xorg-xinit xorg-server -* **Lockscreen:** i3lock-color betterlockscreen feh imagemagick -* **Programs:** kitty rofi dunst (with libnotify) ranger ncmpcpp mpd polybar papirus-icon-theme btop sddm (with qt5 qt5-quickcontrols2 qt5-svg) zsh (with oh-my-zsh) picom cava code neovim -* **Screenshots:** xclip scrot ffcast slop -* **Emoji Fonts:** noto-fonts noto-fonts-emoji noto-fonts-extra noto-fonts-cjk - -### Fonts -* **Icons:** [Feather](https://github.com/AT-UI/feather-font/blob/master/src/fonts/feather.ttf) -* **Interface Font:** [Open Sans](https://fonts.google.com/specimen/Open+Sans#standard-styles) -* **Monospace Font:** [Roboto Mono](https://fonts.google.com/specimen/Roboto+Mono#standard-styles) -* **Polybar Font:** [Iosevka Nerd Font](https://github.com/ryanoasis/nerd-fonts/tree/master/patched-fonts/Iosevka) - -## 🛠️ Installation - -It's recommended to install the dependencies manually, but if you have any issues with the manual installation, or just want to save time, use the installation script. +|![](https://github.com/Keyitdev/screenshots/blob/master/dotfiles/v23/screenshots/1.png)|![](https://github.com/Keyitdev/screenshots/blob/master/dotfiles/v3/screenshots/1.png)| +|nemo & nvim & ranger|-| +|![](https://github.com/Keyitdev/screenshots/blob/master/dotfiles/v3/screenshots/1.png)|![](https://github.com/Keyitdev/screenshots/blob/master/dotfiles/v3/screenshots/1.png)| +|-|i3lock-color| +|![](https://github.com/Keyitdev/screenshots/blob/master/dotfiles/v3/screenshots/1.png)|![](https://github.com/Keyitdev/screenshots/blob/master/dotfiles/v3/screenshots/1.png)| + +## Installation + +### Using install script + +Clone the repository +```sh +git clone -b v3 --depth 1 https://www.github.com/keyitdev/dotfiles.git +cd dotfiles +chmod +x install-on-arch.sh +./install-on-arch.sh +``` ### Manual Installation 1. Clone this repository ```sh - git clone -b v2 --depth 1 https://www.github.com/keyitdev/dotfiles.git + git clone -b v3 --depth 1 https://www.github.com/keyitdev/dotfiles.git ``` -2. Install an AUR helper (for example, yay in $HOME/.srcs) +2. Install an AUR helper (for example, `yay` in `"$HOME"/.srcs`) ```sh - mkdir -p $HOME/.srcs - git clone https://aur.archlinux.org/yay.git $HOME/.srcs/yay - (cd $HOME/.srcs/yay/ && makepkg -si ) + git clone https://aur.archlinux.org/yay.git "$HOME"/.srcs/yay + cd "$HOME"/.srcs/yay/ && makepkg -si ``` -3. Install packages (see [Dependencies](https://github.com/keyitdev/dotfiles#-dependencies)) - -4. Make Light executable +3. Install dependencies. ```sh - sudo chmod +s /usr/bin/light + yay -S --needed acpi alsa-utils base-devel curl git pulseaudio pulseaudio-alsa xorg xorg-xinit alacritty btop code dunst feh ffcast firefox i3-gaps i3lock-color i3-resurrect libnotify light mpc mpd ncmpcpp nemo neofetch neovim oh-my-zsh-git pacman-contrib papirus-icon-theme picom polybar ranger rofi scrot slop xclip zathura zathura-pdf-mupdf zsh ``` -5. Copy the files (Config folder to `$HOME/.config`, scripts folder to `/usr/local/bin` fonts to `/usr/share/fonts/`, wallpaper to `$HOME/Pictures/wallpapers` etc.) - -6. Install Oh-My-Zsh +4. Create default directories. ```sh - sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" + mkdir -p "$HOME"/.config + mkdir -p /usr/local/bin + mkdir -p /usr/share/themes + mkdir -p "$HOME"/Pictures/wallpapers ``` -7. Set Zsh as the default shell +5. Copy configs, scripts, fonts, gtk theme, wallpaper, vsc configs, zsh config. ```sh - chsh -s /bin/zsh #user - sudo chsh -s /bin/zsh #root + cp -r ./config/* "$HOME"/.config + sudo cp -r ./scripts/* /usr/local/bin + sudo cp -r ./fonts/* /usr/share/fonts + sudo cp -r ./tokyonight_gtk /usr/share/themes + cp -r ./wallpapers/* "$HOME"/Pictures/wallpapers + cp -r ./vsc/* "$HOME"/.vscode-oss/extensions + cp ./vsc/settings.json "$HOME"/.config/Code\ -\ OSS/User + sudo cp ./keyitdev.zsh-theme /usr/share/oh-my-zsh/custom/themes + cp ./.zshrc "$HOME" ``` -8. Install AstroVim +6. Make Light executable, set zsh as default shell, update nvim extensions, refresh font cache. ```sh - git clone --depth 10 https://github.com/kabinspace/AstroVim.git $HOME/.config/nvim + sudo chmod +s /usr/bin/light + chsh -s /bin/zsh + sudo chsh -s /bin/zsh nvim +PackerSync + fc-cache -fv ``` -9. Install GTK Theme - ```sh - git clone https://github.com/EliverLara/ant.git - sudo mv ./ant /usr/share/themes - ``` - -10. Install SDDM Astronaut Theme +8. Install sddm flower theme. ```sh - sudo git clone https://github.com/keyitdev/sddm-astronaut-theme.git - sudo cp -fdr sddm-astronaut-theme /usr/share/sddm/themes/ - sudo cp /usr/share/sddm/themes/sddm-astronaut-theme/Fonts/* /usr/share/fonts/ - ``` - -11. Edit `/etc/sddm.conf` - ``` + sudo git clone https://github.com/keyitdev/sddm-flower-theme.git /usr/share/sddm/themes/sddm-flower-theme + sudo cp /usr/share/sddm/themes/sddm-flower-theme/Fonts/* /usr/share/fonts/ echo "[Theme] - Current=sddm-astronaut-theme" | sudo tee /etc/sddm.conf - ``` - -12. [Install the Firefox theme](https://color.firefox.com/?theme=XQAAAAKGAQAAAAAAAABBqYhm849SCia73laEGccwS-xMDPr5iE6kjVUHIsGRvs0-q94VqJzDmLds0B4GdTFd2KORmhozpED9fKKY97YpmeSVCJcSVB9rwzacQGHhaYG0HJIDBXLbAYUnjpkVXo5LFBoIgdJ4P7MSUoS9tEpFY9l-n8P03V91Kq7BmmKKrjKq9Hi2Jvfl7wBEWz3nWVxnwd4XKskPQ2G_JFlEZFH-xMtfBJ5OSQmfzox2bvycbCOGiDW99yOqfX2u-cPiqZwcshaSPxDSqShJ5_7OhZzPbP5x-BM) - -### Automated Install - -1. Clone the repository + Current=sddm-flower-theme" | sudo tee /etc/sddm.conf ``` - git clone -b v2 --depth 1 https://www.github.com/keyitdev/dotfiles.git - cd dotfiles - chmod +x install-on-arch.sh - ./install-on-arch.sh - ``` - -2. [Install the Firefox theme](https://color.firefox.com/?theme=XQAAAAKGAQAAAAAAAABBqYhm849SCia73laEGccwS-xMDPr5iE6kjVUHIsGRvs0-q94VqJzDmLds0B4GdTFd2KORmhozpED9fKKY97YpmeSVCJcSVB9rwzacQGHhaYG0HJIDBXLbAYUnjpkVXo5LFBoIgdJ4P7MSUoS9tEpFY9l-n8P03V91Kq7BmmKKrjKq9Hi2Jvfl7wBEWz3nWVxnwd4XKskPQ2G_JFlEZFH-xMtfBJ5OSQmfzox2bvycbCOGiDW99yOqfX2u-cPiqZwcshaSPxDSqShJ5_7OhZzPbP5x-BM) -## 🛠️ Uninstall +## Cheat sheet -1. Remove installed packages (see [Dependencies](https://github.com/keyitdev/dotfiles#-dependencies)) -2. Remove the AUR helper ( $HOME/.srcs) -3. Uninstall Oh-My-Zsh ` uninstall_oh_my_zsh` -4. Change the default shell back to bash -``` -chsh -s /bin/bash -sudo chsh -s /bin/bash -``` -5. Remove installed fonts ($HOME/.local/share/fonts/ or /usr/share/fonts/) -6. Remove installed scripts (/usr/local/bin) -7. Remove this repository -## 🔑 Keybinds +
+Keybinds -These are the basic keybinds. Read through the `i3` config for more keybinds. +These are the basic keybinds. Read through the [i3](./config/i3/config) config for more keybinds. | Keybind | Function | | ---------------------- | ---------------------------------------- | -| `Win + Enter` | Launch terminal (kitty) | +| `Win + Enter` | Launch terminal (alacritty) | | `Win + Shift + Q` | Close window | | `Win + Q` | Stacking layout | | `Win + W` | Tabbed layout | | `Win + E` | Default layout | -| `Win + A` | Rofi sidebar menu | -| `Win + S` | Rofi compact menu | -| `Win + D` | Rofi center menu | +| `Win + R` | Resize mode | +| `Win + T` | Restore layout | +| `Win + Y` | Save layout | +| `Win + A` | Rofi open windows menu | +| `Win + S` | Rofi full menu | +| `Win + D` | Rofi menu | | `Win + Z` | Rofi bookmarks | -| `Win + X` | Change theme | -| `Win + C` | Use screenshot script | +| `Win + X` | Rofi powermenu | +| `Win + C` | Rofi screenshot script | | `Win + G` | Gaps settings | | `Win + V` | Set vertical orientation | | `Win + H` | Set horizontal orientation | @@ -192,43 +192,47 @@ These are the basic keybinds. Read through the `i3` config for more keybinds. Note: `Win` refers to the `Super/Mod` key. -## 🌈 Colors +
+ +
+Colors | Color | Hex code | | ---------------------- | ---------------------------------------- | -| background | #21222C | +| background | #1b1b25 | | background 2 | #282A36 | -| background 3 | #343746 | -| foreground | #F8F8F2 | -| white | #FFFFFF | -| black | #15121C | -| red | #f07178 | -| green | #c3e88d | -| yellow | #ffcb6b | -| blue | #82aaff | -| purple | #c792ea | -| cyan | #89ddff | +| background 3 | #16161e | +| border | #343746 | +| foreground | #dedede | +| white | #eeffff | +| black | #15121c | +| red | #cb5760 | +| green | #999f63 | +| yellow | #d4a067 | +| blue | #6c90a8 | +| purple | #776690 | +| cyan | #528a9b | | pink | #ffa8c5 | -| orange | #dd864a | +| orange | #c87c3e | + +
+ +## Support and Thankies + +You can support me simply by dropping a **star** on **[github]()** or giving a **subscription** on **[YouTube]()**. -## ⚙️ Troubleshooting + -1. Polybar modules not working? : Try changing variables (For example in battery module from BAT1 to BAT0). -3. Screen flashing black : Try changing picom config. -4. Scripts not working : Maybe try to edit shebang. -5. MPD not working : Check if any other program is using port 6600 (http://127.0.0.1:6600/). +**Big thanks to:** +[adi1090x](https://github.com/adi1090x), +[Totoro](https://github.com/totoro-ghost). -## ✨ Big thanks to +Thanks to all contributors! :D -These dotfiles includes some files from others rices. Original sources: -* [Totoro](https://github.com/totoro-ghost) for [polybar frontend](https://github.com/totoro-ghost/dotfiles/tree/master/.config/polybar) -* [Adi1090x](https://github.com/adi1090x) for [rofi backend](https://github.com/adi1090x/rofi) -* [Alexander-Miller](https://github.com/Alexander-Miller) for [ncmpcpp config](https://github.com/Alexander-Miller/dotfiles/blob/master/.config/ncmpcpp/config) -* [Axarva](https://github.com/Axarva/) for [arch install script](https://github.com/Axarva/dotfiles-2.0/blob/main/install-on-arch.sh) -* [Ceuk](https://github.com/ceuk/) for [rofi screenshot script](https://github.com/ceuk/rofi-screenshot) -* [Milosz](https://github.com/milosz) for [rofi-bookmarks](https://github.com/milosz/rofi-firefox-bookmarks) -* [Unnat](https://github.com/UnnatShaneshwar) for [wallpaper](https://github.com/UnnatShaneshwar/OneDarkWallpapers/blob/main/11.png) +## Contributions -## 🪪 License +Feel free to create issue or pull request. +If you need any help, you can ask questions here on **[discussions](https://github.com/Keyitdev/dotfiles/discussions/categories/q-a)** or contact me on **[discord]()** / **[matrix]()**. -Distributed under the [GPLv3+](https://www.gnu.org/licenses/gpl-3.0.html) License. +Distributed under the **[GPLv3+](https://www.gnu.org/licenses/gpl-3.0.html) License**. +Copyright (C) 2022 Keyitdev. \ No newline at end of file diff --git a/config/alacritty/alacritty.yml b/config/alacritty/alacritty.yml new file mode 100644 index 0000000..a1ff425 --- /dev/null +++ b/config/alacritty/alacritty.yml @@ -0,0 +1,37 @@ +window: + padding: + x: 8 + y: 8 + opacity: 0.9 + +font: + size: 7.5 + normal: + family: Roboto mono + # style: medium + +colors: + + primary: + background: '#1b1b25' + foreground: '#dedede' + + normal: + black: '#15121c' + red: '#cb5760' + green: '#999f63' + yellow: '#d4a067' + blue: '#6c90a8' + magenta: '#776690' + cyan: '#528a9b' + white: '#eeffff' + + bright: + black: '#727480' + red: '#cb5760' + green: '#999f63' + yellow: '#d4a067' + blue: '#6c90a8' + magenta: '#776690' + cyan: '#528a9b' + white: '#eeffff' \ No newline at end of file diff --git a/config/betterlockscreenrc b/config/betterlockscreenrc deleted file mode 100755 index 5850a0e..0000000 --- a/config/betterlockscreenrc +++ /dev/null @@ -1,38 +0,0 @@ -# Config created by Keyitdev https://www.github.com/keyitdev/dotfiles -# Copyright (C) 2022 Keyitdev -# ~/.config/betterlockscreenrc - -# default options -display_on=0 -span_image=false -lock_timeout=300 -fx_list=(dim blur dimblur pixel dimpixel color) -dim_level=40 -blur_level=1 -pixel_scale=10,1000 -solid_color=333333 -wallpaper_cmd="feh --bg-fill" -# i3lockcolor_bin="i3lock-color" # Manually set command for i3lock-color - -# default theme -loginbox=00000066 -loginshadow=00000000 -locktext="Type password to unlock" -font="Roboto mono" -ringcolor=ffffffff -insidecolor=00000000 -separatorcolor=00000000 -ringvercolor=ffffffff -insidevercolor=ffcb6bff -ringwrongcolor=ffffffff -insidewrongcolor=f07178ff -timecolor=ffffffff -time_format="%H:%M:%S" -greetercolor=ffffffff -layoutcolor=ffffffff -keyhlcolor=f07178ff -bshlcolor=f07178ff -verifcolor=ffffffff -wrongcolor=f07178ff -modifcolor=f07178ff -bgcolor=000000ff \ No newline at end of file diff --git a/config/cava/config b/config/cava/config deleted file mode 100755 index 0b77d1a..0000000 --- a/config/cava/config +++ /dev/null @@ -1,164 +0,0 @@ -## Configuration file for CAVA. Default values are commented out. Use either ';' or '#' for commenting. - -[general] - -# Smoothing mode. Can be 'normal', 'scientific' or 'waves'. DEPRECATED as of 0.6.0 -; mode = normal - -# Accepts only non-negative values. -framerate = 144 - -# 'autosens' will attempt to decrease sensitivity if the bars peak. 1 = on, 0 = off -# new as of 0.6.0 autosens of low values (dynamic range) -# 'overshoot' allows bars to overshoot (in % of terminal height) without initiating autosens. DEPRECATED as of 0.6.0 -; autosens = 1 -; overshoot = 20 - -# Manual sensitivity in %. If autosens is enabled, this will only be the initial value. -# 200 means double height. Accepts only non-negative values. -; sensitivity = 100 - -# The number of bars (0-200). 0 sets it to auto (fill up console). -# Bars' width and space between bars in number of characters. -; bars = 0 -bar_width = 1 -; bar_spacing = 1 - - -# Lower and higher cutoff frequencies for lowest and highest bars -# the bandwidth of the visualizer. -# Note: there is a minimum total bandwidth of 43Mhz x number of bars. -# Cava will automatically increase the higher cutoff if a too low band is specified. -; lower_cutoff_freq = 50 -; higher_cutoff_freq = 10000 - - -# Seconds with no input before cava goes to sleep mode. Cava will not perform FFT or drawing and -# only check for input once per second. Cava will wake up once input is detected. 0 = disable. -; sleep_timer = 0 - - -[input] - -# Audio capturing method. Possible methods are: 'pulse', 'alsa', 'fifo', 'sndio' or 'shmem' -# Defaults to 'pulse', 'alsa' or 'fifo', in that order, dependent on what support cava was built with. -# -# All input methods uses the same config variable 'source' -# to define where it should get the audio. -# -# For pulseaudio 'source' will be the source. Default: 'auto', which uses the monitor source of the default sink -# (all pulseaudio sinks(outputs) have 'monitor' sources(inputs) associated with them). -# -# For alsa 'source' will be the capture device. -# For fifo 'source' will be the path to fifo-file. -# For shmem 'source' will be /squeezelite-AA:BB:CC:DD:EE:FF where 'AA:BB:CC:DD:EE:FF' will be squeezelite's MAC address -; method = pulse -; source = auto - -; method = alsa -; source = hw:Loopback,1 - -; method = fifo -; source = /tmp/mpd.fifo -; sample_rate = 44100 -; sample_bits = 16 - -; method = shmem -; source = /squeezelite-AA:BB:CC:DD:EE:FF - -; method = portaudio -; source = auto - - -[output] - -# Output method. Can be 'ncurses', 'noncurses' or 'raw'. -# 'noncurses' uses a custom framebuffer technique and draws only changes -# from frame to frame. 'ncurses' is default if supported -# -# 'raw' is an 8 or 16 bit (configurable via the 'bit_format' option) data -# stream of the bar heights that can be used to send to other applications. -# 'raw' defaults to 200 bars, which can be adjusted in the 'bars' option above. -; method = ncurses - -# Visual channels. Can be 'stereo' or 'mono'. -# 'stereo' mirrors both channels with low frequencies in center. -# 'mono' outputs left to right lowest to highest frequencies. -# 'mono_option' set mono to either take input from 'left', 'right' or 'average'. -; channels = stereo -; mono_option = average - -# Raw output target. A fifo will be created if target does not exist. -; raw_target = /dev/stdout - -# Raw data format. Can be 'binary' or 'ascii'. -; data_format = binary - -# Binary bit format, can be '8bit' (0-255) or '16bit' (0-65530). -; bit_format = 16bit - -# Ascii max value. In 'ascii' mode range will run from 0 to value specified here -; ascii_max_range = 1000 - -# Ascii delimiters. In ascii format each bar and frame is separated by a delimiters. -# Use decimal value in ascii table (i.e. 59 = ';' and 10 = '\n' (line feed)). -; bar_delimiter = 59 -; frame_delimiter = 10 - - - -[color] - -# Colors can be one of seven predefined: black, blue, cyan, green, magenta, red, white, yellow. -# Or defined by hex code '#xxxxxx' (hex code must be within ''). User defined colors requires -# ncurses output method and a terminal that can change color definitions such as Gnome-terminal or rxvt. -# if supported, ncurses mode will be forced on if user defined colors are used. -# default is to keep current terminal color -; background = default -; foreground = default - -# Gradient mode, only hex defined colors (and thereby ncurses mode) are supported, -# background must also be defined in hex or remain commented out. 1 = on, 0 = off. -# You can define as many as 8 different colors. They range from bottom to top of screen -; gradient = 1 -; gradient_count = 8 -; gradient_color_1 = '#59cc33' -; gradient_color_2 = '#80cc33' -; gradient_color_3 = '#a6cc33' -; gradient_color_4 = '#cccc33' -; gradient_color_5 = '#cca633' -; gradient_color_6 = '#cc8033' -; gradient_color_7 = '#cc5933' -; gradient_color_8 = '#cc3333' - - - -[smoothing] - -# Percentage value for integral smoothing. Takes values from 0 - 100. -# Higher values means smoother, but less precise. 0 to disable. -; integral = 77 - -# Disables or enables the so-called "Monstercat smoothing" with or without "waves". Set to 0 to disable. -; monstercat = 0 -; waves = 0 - -# Set gravity percentage for "drop off". Higher values means bars will drop faster. -# Accepts only non-negative values. 50 means half gravity, 200 means double. Set to 0 to disable "drop off". -; gravity = 100 - - -# In bar height, bars that would have been lower that this will not be drawn. -; ignore = 0 - - -[eq] - -# This one is tricky. You can have as much keys as you want. -# Remember to uncomment more then one key! More keys = more precision. -# Look at readme.md on github for further explanations and examples. -; 1 = 1 # bass -; 2 = 1 -; 3 = 1 # midtone -; 4 = 1 -; 5 = 1 # treble diff --git a/config/dunst/dunstrc b/config/dunst/dunstrc index ef17b33..d3f2e12 100755 --- a/config/dunst/dunstrc +++ b/config/dunst/dunstrc @@ -3,433 +3,72 @@ # Copyright (C) 2022 Keyitdev [global] - ### Display ### - - # Which monitor should the notifications be displayed on. monitor = 0 - # Display notification on focused monitor. Possible modes are: - # mouse: follow mouse pointer - # keyboard: follow window with keyboard focus - # none: don't follow anything - # - # "keyboard" needs a window manager that exports the - # _NET_ACTIVE_WINDOW property. - # This should be the case for almost all modern window managers. - # - # If this option is set to mouse or keyboard, the monitor option - # will be ignored. follow = mouse - - ### Geometry ### - - # dynamic width from 0 to 300 - # width = (0, 300) - # constant width of 300 width = (300,400) - - # The maximum height of a single notification, excluding the frame. - height = 300 - - # Position the notification in the top right corner + height = 250 origin = top-right - - # Offset from the origin offset = 8x47 - - # Show how many messages are currently hidden (because of geometry). indicate_hidden = yes - - # Shrink window if it's smaller than the width. Will be ignored if - # width is 0. shrink = no - - # The transparency of the window. Range: [0; 100]. - # This option will only work if a compositing window manager is - # present (e.g. xcompmgr, compiz, etc.). transparency = 0 - - # The height of the entire notification. If the height is smaller - # than the font height and padding combined, it will be raised - # to the font height and padding. notification_height = 0 - - # Draw a line of "separator_height" pixel height between two - # notifications. - # Set to 0 to disable. separator_height = 2 - - # Padding between text and separator. padding = 12 - - # Horizontal padding. horizontal_padding = 12 - - # Defines width in pixels of frame around the notification window. - # Set to 0 to disable. - frame_width = 4 - - # Defines color of the frame around the notification window. + frame_width = 2 frame_color = "#343746" - - # Define a color for the separator. - # possible values are: - # * auto: dunst tries to find a color fitting to the background; - # * foreground: use the same color as the foreground; - # * frame: use the same color as the frame; - # * anything else will be interpreted as a X color. separator_color = frame - - # Sort messages by urgency. sort = yes - - # Don't remove messages, if the user is idle (no mouse or keyboard input) - # for longer than idle_threshold seconds. - # Set to 0 to disable. - # A client can set the 'transient' hint to bypass this. See the rules - # section for how to disable this if necessary idle_threshold = 120 - - ### Text ### - - font = Open sans 12 - - # The spacing between lines. If the height is smaller than the - # font height, it will get raised to the font height. + font = Roboto mono 12 line_height = 0 - - # Possible values are: - # full: Allow a small subset of html markup in notifications: - # bold - # italic - # strikethrough - # underline - # - # For a complete reference see - # . - # - # strip: This setting is provided for compatibility with some broken - # clients that send markup even though it's not enabled on the - # server. Dunst will try to strip the markup but the parsing is - # simplistic so using this option outside of matching rules for - # specific applications *IS GREATLY DISCOURAGED*. - # - # no: Disable markup parsing, incoming notifications will be treated as - # plain text. Dunst will not advertise that it has the body-markup - # capability if this is set as a global setting. - # - # It's important to note that markup inside the format option will be parsed - # regardless of what this is set to. markup = full - - # The format of the message. Possible variables are: - # %a appname - # %s summary - # %b body - # %i iconname (including its path) - # %I iconname (without its path) - # %p progress value if set ([ 0%] to [100%]) or nothing - # %n progress value if set without any extra characters - # %% Literal % - # Markup is allowed format = "%s\n%b" - - # Alignment of message text. - # Possible values are "left", "center" and "right". alignment = left - - # Vertical alignment of message text and icon. - # Possible values are "top", "center" and "bottom". vertical_alignment = center - - # Show age of message if message is older than show_age_threshold - # seconds. - # Set to -1 to disable. show_age_threshold = 60 - - # Split notifications into multiple lines if they don't fit into - # geometry. word_wrap = yes - - # When word_wrap is set to no, specify where to make an ellipsis in long lines. - # Possible values are "start", "middle" and "end". ellipsize = middle - - # Ignore newlines '\n' in notifications. ignore_newline = no - - # Stack together notifications with the same content - stack_duplicates = false - - # Hide the count of stacked notifications with the same content + stack_duplicates = true hide_duplicate_count = false - - # Display indicators for URLs (U) and actions (A). show_indicators = no - - ### Icons ### - - # Align icons left/right/off icon_position = left - - # Scale small icons up to this size, set to 0 to disable. Helpful - # for e.g. small files or high-dpi screens. In case of conflict, - # max_icon_size takes precedence over this. - min_icon_size = 0 - - # Scale larger icons down to this size, set to 0 to disable + min_icon_size = 50 max_icon_size = 50 - - # Paths to default icons. icon_path = /usr/share/icons/Papirus/16x16/ - - ### History ### - - # Should a notification popped up from history be sticky or timeout - # as if it would normally do. sticky_history = no - - # Maximum amount of notifications kept in history history_length = 50 - - ### Misc/Advanced ### - - # dmenu path. dmenu = /usr/bin/dmenu -p dunst: - - # Browser for opening urls in context menu. browser = /usr/bin/sensible-browser - - # Always run rule-defined scripts, even if the notification is suppressed always_run_script = true - - # Define the title of the windows spawned by dunst title = Dunst - - # Define the class of the windows spawned by dunst class = Dunst - - # Print a notification on startup. - # This is mainly for error detection, since dbus (re-)starts dunst - # automatically after a crash. startup_notification = false - - # Manage dunst's desire for talking - # Can be one of the following values: - # crit: Critical features. Dunst aborts - # warn: Only non-fatal warnings - # mesg: Important Messages - # info: all unimportant stuff - # debug: all less than unimportant stuff verbosity = mesg - - # Define the corner radius of the notification window - # in pixel size. If the radius is 0, you have no rounded - # corners. - # The radius will be automatically lowered if it exceeds half of the - # notification height to avoid clipping text and/or icons. - - # Ignore the dbus closeNotification message. - # Useful to enforce the timeout set by dunst configuration. Without this - # parameter, an application may close the notification sent before the - # user defined timeout. + corner_radius = 20 ignore_dbusclose = false - - ### Legacy - - # Use the Xinerama extension instead of RandR for multi-monitor support. - # This setting is provided for compatibility with older nVidia drivers that - # do not support RandR and using it on systems that support RandR is highly - # discouraged. - # - # By enabling this setting dunst will not be able to detect when a monitor - # is connected or disconnected which might break follow mode if the screen - # layout changes. force_xinerama = false - - ### mouse - - # Defines list of actions for each mouse event - # Possible values are: - # * none: Don't do anything. - # * do_action: If the notification has exactly one action, or one is marked as default, - # invoke it. If there are multiple and no default, open the context menu. - # * close_current: Close current notification. - # * close_all: Close all notifications. - # These values can be strung together for each mouse event, and - # will be executed in sequence. - mouse_left_click = close_current mouse_middle_click = do_action, close_current mouse_right_click = close_all - -# Experimental features that may or may not work correctly. Do not expect them -# to have a consistent behaviour across releases. [experimental] - # Calculate the dpi to use on a per-monitor basis. - # If this setting is enabled the Xft.dpi value will be ignored and instead - # dunst will attempt to calculate an appropriate dpi value for each monitor - # using the resolution and physical size. This might be useful in setups - # where there are multiple screens with very different dpi values. per_monitor_dpi = false - [shortcuts] - - # Shortcuts are specified as [modifier+][modifier+]...key - # Available modifiers are "ctrl", "mod1" (the alt-key), "mod2", - # "mod3" and "mod4" (windows-key). - # Xev might be helpful to find names for keys. - - # Close notification. close = ctrl+space - - # Close all notifications. close_all = ctrl+shift+space - - # Redisplay last message(s). - # On the US keyboard layout "grave" is normally above TAB and left - # of "1". Make sure this key actually exists on your keyboard layout, - # e.g. check output of 'xmodmap -pke' history = ctrl+grave - - # Context menu. context = ctrl+shift+period - [urgency_low] - # IMPORTANT: colors have to be defined in quotation marks. - # Otherwise the "#" and following would be interpreted as a comment. - background = "#21222C" - foreground = "#F8F8F2" + background = "#1b1b25" + foreground = "#dedede" timeout = 5 - # Icon for notifications with low urgency, uncomment to enable - #icon = /path/to/icon - [urgency_normal] - background = "#21222C" - foreground = "#F8F8F2" + background = "#1b1b25" + foreground = "#dedede" timeout = 5 - # Icon for notifications with normal urgency, uncomment to enable - #icon = /path/to/icon - [urgency_critical] - background = "#21222C" - foreground = "#F8F8F2" + background = "#1b1b25" + foreground = "#dedede" frame_color = "#f07178" - timeout = 0 - # Icon for notifications with critical urgency, uncomment to enable - #icon = /path/to/icon - -# Every section that isn't one of the above is interpreted as a rules to -# override settings for certain messages. -# -# Messages can be matched by -# appname (discouraged, see desktop_entry) -# body -# category -# desktop_entry -# icon -# match_transient -# msg_urgency -# stack_tag -# summary -# -# and you can override the -# background -# foreground -# format -# frame_color -# fullscreen -# new_icon -# set_stack_tag -# set_transient -# timeout -# urgency -# -# Shell-like globbing will get expanded. -# -# Instead of the appname filter, it's recommended to use the desktop_entry filter. -# GLib based applications export their desktop-entry name. In comparison to the appname, -# the desktop-entry won't get localized. -# -# SCRIPTING -# You can specify a script that gets run when the rule matches by -# setting the "script" option. -# The script will be called as follows: -# script appname summary body icon urgency -# where urgency can be "LOW", "NORMAL" or "CRITICAL". -# -# NOTE: if you don't want a notification to be displayed, set the format -# to "". -# NOTE: It might be helpful to run dunst -print in a terminal in order -# to find fitting options for rules. - -# Disable the transient hint so that idle_threshold cannot be bypassed from the -# client -#[transient_disable] -# match_transient = yes -# set_transient = no -# -# Make the handling of transient notifications more strict by making them not -# be placed in history. -#[transient_history_ignore] -# match_transient = yes -# history_ignore = yes - -# fullscreen values -# show: show the notifications, regardless if there is a fullscreen window opened -# delay: displays the new notification, if there is no fullscreen window active -# If the notification is already drawn, it won't get undrawn. -# pushback: same as delay, but when switching into fullscreen, the notification will get -# withdrawn from screen again and will get delayed like a new notification -#[fullscreen_delay_everything] -# fullscreen = delay -#[fullscreen_show_critical] -# msg_urgency = critical -# fullscreen = show - -#[espeak] -# summary = "*" -# script = dunst_espeak.sh - -#[script-test] -# summary = "*script*" -# script = dunst_test.sh - -#[ignore] -# # This notification will not be displayed -# summary = "foobar" -# format = "" - -#[history-ignore] -# # This notification will not be saved in history -# summary = "foobar" -# history_ignore = yes - -#[skip-display] -# # This notification will not be displayed, but will be included in the history -# summary = "foobar" -# skip_display = yes - -#[signed_on] -# appname = Pidgin -# summary = "*signed on*" -# urgency = low -# -#[signed_off] -# appname = Pidgin -# summary = *signed off* -# urgency = low -# -#[says] -# appname = Pidgin -# summary = *says* -# urgency = critical -# -#[twitter] -# appname = Pidgin -# summary = *twitter.com* -# urgency = normal -# -#[stack-volumes] -# appname = "some_volume_notifiers" -# set_stack_tag = "volume" -# -# vim: ft=cfg \ No newline at end of file + timeout = 0 \ No newline at end of file diff --git a/config/gtk-3.0/settings.ini b/config/gtk-3.0/settings.ini index 3d6d188..de1dc26 100755 --- a/config/gtk-3.0/settings.ini +++ b/config/gtk-3.0/settings.ini @@ -1,5 +1,5 @@ [Settings] gtk-icon-theme-name = Papirus -gtk-theme-name = Dracula +gtk-theme-name = tokyonight_gtk gtk-font-name = Open sans 12 gtk-application-prefer-dark-theme = true \ No newline at end of file diff --git a/config/i3/config b/config/i3/config index 7719640..a200081 100755 --- a/config/i3/config +++ b/config/i3/config @@ -13,9 +13,6 @@ font pango:Open sans 11 # run picom exec_always --no-startup-id picom & -# render wallpaper for lockscreen -exec_always betterlockscreen -u ~/Pictures/wallpapers/lockscreen.png --display 1 --span & - # run mpd exec_always --no-startup-id mpd & @@ -23,7 +20,7 @@ exec_always --no-startup-id mpd & exec_always --no-startup-id dunst & # set wallpaper with fed -exec_always feh --bg-scale $HOME/Pictures/wallpapers/current_blue.png +exec_always feh --no-fehbg --bg-scale $HOME/Pictures/wallpapers/background.png # launch polybar exec_always --no-startup-id killall -q @@ -41,7 +38,7 @@ exec --no-startup-id nm-applet floating_modifier $mod # start a terminal -bindsym $mod+Return exec kitty +bindsym $mod+Return exec alacritty # kill focused window bindsym $mod+Shift+q kill @@ -84,6 +81,10 @@ bindsym $mod+q layout stacking bindsym $mod+w layout tabbed bindsym $mod+e layout toggle split +# save and restore layout with i3-resurrect +bindsym $mod+t exec --no-startup-id i3-resurrect restore +bindsym $mod+y exec --no-startup-id i3-resurrect save + # toggle tiling / floating bindsym $mod+Shift+space floating toggle @@ -91,7 +92,7 @@ bindsym $mod+Shift+space floating toggle bindsym $mod+space focus mode_toggle # run lockscreen -bindsym $mod+i exec betterlockscreen -l +bindsym $mod+i exec lock # monitor settings bindsym $mod+n exec xrandr --auto --output eDP-1 --mode 1920x1080 --right-of HDMI-1 && i3-msg restart & @@ -111,38 +112,42 @@ bindsym $mod+b move workspace to output right #bindsym $mod+d focus child # run rofi programs -bindsym $mod+a exec "rofi -show drun -no-default-config -config ~/.config/rofi/sidebar.rasi" -bindsym $mod+d exec "rofi -show drun -no-default-config -config ~/.config/rofi/center.rasi" -bindsym $mod+s exec "rofi -show drun -no-default-config -config ~/.config/rofi/compact.rasi" -bindsym $mod+z exec "rofi -show  -modi ':rofi-bookmarks' -no-default-config -config ~/.config/rofi/compact.rasi" -bindsym $mod+x exec "theme" +bindsym $mod+a exec "rofi -show window -no-default-config -config ~/.config/rofi/main.rasi" +bindsym $mod+d exec "rofi -show drun -no-default-config -config ~/.config/rofi/main.rasi" +bindsym $mod+s exec "rofi -show drun -no-default-config -config ~/.config/rofi/full_screen.rasi" +bindsym $mod+z exec "rofi -show  -modi ':rofi-bookmarks' -no-default-config -config ~/.config/rofi/main.rasi" bindsym $mod+c exec "rofi-screenshot" # take a screenshot -bindsym Pause exec screenshot -crtf -bindsym Print exec screenshot -cstf +bindsym Pause exec screenshot -sa +bindsym Print exec screenshot -sf # brightness control exec_always --no-startup-id light -I -bindsym XF86MonBrightnessUp exec light -A 2 && light -O# increase screen brightness && brightness & -bindsym XF86MonBrightnessDown exec light -U 2 && light -O# decrease screen brightness && brightness & +bindsym XF86MonBrightnessUp exec light -A 2 && light -O && brightness & +bindsym XF86MonBrightnessDown exec light -U 2 && light -O && brightness & + +# brightness control hdmi +bindsym Ctrl+F7 exec brightness_hdmi down +bindsym Ctrl+F8 exec brightness_hdmi up # audio control bindsym XF86AudioRaiseVolume exec --no-startup-id amixer -D pulse sset Master 5%+ && volume & bindsym XF86AudioLowerVolume exec --no-startup-id amixer -D pulse sset Master 5%- && volume & bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && mute & -#bindsym XF86AudioMicMute exec --no-startup-id amixer -D pulse sset Master 5%+ && volume.sh & +#bindsym XF86AudioMicMute exec --no-startup-id amixer -D pulse sset Master 5%+ && volume & # turn off screen -bindsym XF86ScreenSaver exec xset dpms force off +bindsym XF86ScreenSaver exec xset dpms force off # :) -bindsym ctrl + F1 exec --no-startup-id kitty +bindsym ctrl + F1 exec --no-startup-id alacritty +bindsym ctrl + F5 exec --no-startup-id kitty bindsym ctrl + F2 exec --no-startup-id dmenu_run # toggle microphone -bindsym ctrl + F3 exec amixer set Capture cap && dunstify -a "Microphone" "Microphone" "Microphone is now unmuted" -r 100 -i /usr/local/bin/icons/mic.svg -bindsym ctrl + F4 exec amixer set Capture nocap && dunstify -a "Microphone" "Microphone" "Microphone is now muted" -r 100 -i /usr/local/bin/icons/mic-off.svg +bindsym ctrl + F3 exec amixer set Capture nocap && dunstify -a "Microphone" "Microphone" "Microphone is muted" -r 100 -i /usr/local/bin/icons/mic-off.svg +bindsym ctrl + F4 exec amixer set Capture cap && dunstify -a "Microphone" "Microphone" "Microphone is unmuted" -r 100 -i /usr/local/bin/icons/mic.svg # toggle touchpad bindsym ctrl + F9 exec xinput set-prop 15 "Device Enabled" 0 && dunstify -a "Touchpad" "Touchpad" "Touchpad is disabled" -r 100 @@ -186,8 +191,10 @@ bindsym $mod+Shift+0 move container to workspace number $ws10 # reload the configuration file bindsym $mod+Shift+c reload + # restart i3 inplace (preserves your layout/session, can be used to upgrade i3) bindsym $mod+Shift+r restart + # exit i3 (logs you out of your X session) bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'" @@ -221,7 +228,7 @@ bindsym $mod+r mode "resize" ### BODERS ### #border width -default_border pixel 4 +default_border pixel 2 #border colors client.focused #343746 #343746 #F8F8F2 #343746 #343746 diff --git a/config/kitty/kitty.conf b/config/kitty/kitty.conf deleted file mode 100755 index 5e01d54..0000000 --- a/config/kitty/kitty.conf +++ /dev/null @@ -1,37 +0,0 @@ -# Documentation: https://sw.kovidgoyal.net/kitty/ -# Config created by Keyitdev https://www.github.com/keyitdev/dotfiles -# Copyright (C) 2022 Keyitdev - -font_size 11.0 -font_family Roboto mono -window_margin_width 5 -adjust_line_height 0 - -background #21222C -foreground #F8F8F2 -cursor #f07178 - -#black -color0 #15121C -color8 #15121C -#red -color1 #f07178 -color9 #f07178 -#green -color2 #c3e88d -color10 #c3e88d -#yellow -color3 #ffcb6b -color11 #ffcb6b -#blue -color4 #82aaff -color12 #82aaff -#purple -color5 #c792ea -color13 #c792ea -#teal -color6 #89ddff -color14 #89ddff -#gray -color7 #eeffff -color15 #eeffff \ No newline at end of file diff --git a/config/ncmpcpp/config b/config/ncmpcpp/config index e11e834..25f0d42 100755 --- a/config/ncmpcpp/config +++ b/config/ncmpcpp/config @@ -1,69 +1,67 @@ ; Documentation: https://wiki.archlinux.org/title/ncmpcpp -; Config created by Alexander-Miller https://github.com/Alexander-Miller +; Config created by Aditya Shakya https://github.com/Alexander-Miller ; Config modified by Keyitdev https://www.github.com/keyitdev/dotfiles -; Copyright (C) 2022 Keyitdev, Alexander-Miller +; Copyright (C) 2022 Keyitdev, Aditya Shakya -mpd_host = 127.0.0.1 -mpd_port = 6600 -mpd_music_dir = ~/Music -mpd_connection_timeout = 5 -visualizer_data_source = /tmp/mpd.fifo -visualizer_output_name = fifo output -visualizer_in_stereo = yes -visualizer_type = spectrum -visualizer_color = blue, cyan, green, yellow, magenta, red -visualizer_look = xs -visualizer_fps = 60 -visualizer_autoscale = yes -visualizer_spectrum_smooth_look = yes -playlist_disable_highlight_delay = 3 -allow_for_physical_item_deletion = yes -message_delay_time = 8 -song_list_format = $(red){%a}$(end) $(blue){%t}$(end) $R $(green){%b}$(end) $(magenta)({%l})$(end) -song_status_format = {$2%a$2} {$3%b$3} {$5%t$5} -song_library_format = %t -song_window_title_format = {%a-%t} -song_columns_list_format = (25)[red]{a} (44)[green]{t} (25)[blue]{b} $R(7)[magenta]{l} -playlist_display_mode = columns -browser_display_mode = columns -titles_visibility = yes -incremental_seeking = yes -autocenter_mode = yes -header_visibility = yes -statusbar_visibility = yes -cyclic_scrolling = yes -display_bitrate = yes -ignore_leading_the = no -enable_window_title = yes -progressbar_look = ▬▬▬ -user_interface = alternative -alternative_header_first_line_format = {$b$2%a$9} {$5%t$9} -alternative_header_second_line_format = {$3%b$9} {$4(%y)$9} -alternative_ui_separator_color = blue -playlist_separate_albums = no -colors_enabled = yes -empty_tag_color = blue -header_window_color = white -display_volume_level = yes -state_line_color = cyan -state_flags_color = magenta -main_window_color = green -color1 = white -color2 = blue -progressbar_color = black -statusbar_color = cyan -window_border_color = red -active_window_border = red -follow_now_playing_lyrics = yes -clock_display_seconds = yes -current_item_prefix = > -current_item_suffix = $(end) -current_item_inactive_column_prefix = > -current_item_inactive_column_suffix = $(end) -now_playing_prefix = $b -now_playing_suffix = $/b -selected_item_prefix = $(white)$b -selected_item_suffix = $/b$(end) -browser_playlist_prefix = "$2Playlist$9 " -modified_item_prefix = ">> " -execute_on_song_change = notify-send "Now Playing" "$(mpc current)" \ No newline at end of file +### Directories ### +ncmpcpp_directory = ~/.config/ncmpcpp +lyrics_directory = ~/.config/ncmpcpp/lyrics +mpd_music_dir = ~/Music +mpd_host = "localhost" +mpd_port = "6600" +mpd_crossfade_time = "2" + +### Behaviour ### +message_delay_time = 1 +autocenter_mode = "yes" +centered_cursor = "yes" +ignore_leading_the = "yes" +playlist_disable_highlight_delay = 2 +allow_for_physical_item_deletion = "no" + +### Visualizer ### +visualizer_data_source = /tmp/mpd.fifo +visualizer_output_name = "mpd_visualizer" +visualizer_in_stereo = "yes" +visualizer_look = ●● +visualizer_type = "ellipse" + +### Appearance ### +playlist_display_mode = "columns" +browser_display_mode = "columns" +colors_enabled = "yes" + +#user_interface = classic +user_interface = alternative +volume_color = "white" + +### Window ### +song_window_title_format = "{%a - }{%t}|{%f}" +statusbar_visibility = "no" +header_visibility = "no" +titles_visibility = "no" + +### Progress bar ### +progressbar_look = "▂▂▂" +progressbar_color = "black" +progressbar_elapsed_color = "red" + +### Alternative UI ### +alternative_ui_separator_color = "black" +alternative_header_first_line_format = $b$5$/b $b$8{%t}|{%f}$/b $/b +alternative_header_second_line_format = {$b{$2 %a$9}{ - $7 %b$9}} + +### Song list ### +song_status_format = "$7%t" +song_list_format = "$(blue){%a}$(end) $(red){%t}$(end)$(red)({%l})$(end) +song_library_format = {{%a - %t} (%b)}|{%f} +song_columns_list_format = "(49)[white]{tr}$C(5f)[red]{l}(50)[blue]{a}" + +### Colors ### +main_window_color = "white" +current_item_prefix = >> +current_item_suffix = $(end) +current_item_inactive_column_prefix = red +current_item_inactive_column_suffix = red +color1 = "white" +color2 = "red" \ No newline at end of file diff --git a/config/neofetch/config.conf b/config/neofetch/config.conf index b512286..e74bc7e 100755 --- a/config/neofetch/config.conf +++ b/config/neofetch/config.conf @@ -1,5 +1,6 @@ # See this wiki page for more info: # https://github.com/dylanaraps/neofetch/wiki/Customizing-Info + print_info() { info title info underline diff --git a/config/nvim/.luacheckrc b/config/nvim/.luacheckrc new file mode 100644 index 0000000..00ce173 --- /dev/null +++ b/config/nvim/.luacheckrc @@ -0,0 +1,20 @@ +-- Global objects +globals = { + "PACKER_BOOTSTRAP", + "astronvim", + "astronvim_installation", + "vim", + "C", + "packer_plugins", +} + +-- Rerun tests only if their modification time changed +cache = true + +-- Don't report unused self arguments of methods +self = false + +ignore = { + "631", -- max_line_length + "212/_.*", -- unused argument, for vars with "_" prefix +} diff --git a/config/nvim/.stylua.toml b/config/nvim/.stylua.toml new file mode 100644 index 0000000..df96b7b --- /dev/null +++ b/config/nvim/.stylua.toml @@ -0,0 +1,6 @@ +column_width = 120 +line_endings = "Unix" +indent_type = "Spaces" +indent_width = 2 +quote_style = "AutoPreferDouble" +no_call_parentheses = true diff --git a/config/nvim/colors/default_theme.lua b/config/nvim/colors/default_theme.lua new file mode 100644 index 0000000..c6fe0a2 --- /dev/null +++ b/config/nvim/colors/default_theme.lua @@ -0,0 +1,9 @@ +vim.g.colors_name = "default_theme" + +package.loaded["default_theme"] = nil +package.loaded["default_theme.base"] = nil +package.loaded["default_theme.treesitter"] = nil +package.loaded["default_theme.lsp"] = nil +package.loaded["default_theme.others"] = nil + +require "default_theme" diff --git a/config/nvim/init.lua b/config/nvim/init.lua new file mode 100644 index 0000000..3baa628 --- /dev/null +++ b/config/nvim/init.lua @@ -0,0 +1,21 @@ +local impatient_ok, impatient = pcall(require, "impatient") +if impatient_ok then + impatient.enable_profile() +end + +for _, source in ipairs { + "core.utils", + "core.options", + "core.plugins", + "core.autocmds", + "core.mappings", + "core.ui", + "configs.which-key-register", +} do + local status_ok, fault = pcall(require, source) + if not status_ok then + vim.api.nvim_err_writeln("Failed to load " .. source .. "\n\n" .. fault) + end +end + +astronvim.conditional_func(astronvim.user_plugin_opts("polish", nil, false)) diff --git a/config/nvim/lua/configs/Comment.lua b/config/nvim/lua/configs/Comment.lua new file mode 100644 index 0000000..54f23e6 --- /dev/null +++ b/config/nvim/lua/configs/Comment.lua @@ -0,0 +1,19 @@ +local status_ok, Comment = pcall(require, "Comment") +if status_ok then + local utils = require "Comment.utils" + Comment.setup(astronvim.user_plugin_opts("plugins.Comment", { + pre_hook = function(ctx) + local location = nil + if ctx.ctype == utils.ctype.block then + location = require("ts_context_commentstring.utils").get_cursor_location() + elseif ctx.cmotion == utils.cmotion.v or ctx.cmotion == utils.cmotion.V then + location = require("ts_context_commentstring.utils").get_visual_start_location() + end + + return require("ts_context_commentstring.internal").calculate_commentstring { + key = ctx.ctype == utils.ctype.line and "__default" or "__multiline", + location = location, + } + end, + })) +end diff --git a/config/nvim/lua/configs/aerial.lua b/config/nvim/lua/configs/aerial.lua new file mode 100644 index 0000000..9421661 --- /dev/null +++ b/config/nvim/lua/configs/aerial.lua @@ -0,0 +1,52 @@ +local status_ok, aerial = pcall(require, "aerial") +if status_ok then + aerial.setup(astronvim.user_plugin_opts("plugins.aerial", { + close_behavior = "global", + backends = { "lsp", "treesitter", "markdown" }, + min_width = 28, + show_guides = true, + filter_kind = false, + icons = { + Array = "", + Boolean = "⊨", + Class = "", + Constant = "", + Constructor = "", + Key = "", + Function = "", + Method = "ƒ", + Namespace = "", + Null = "NULL", + Number = "#", + Object = "⦿", + Property = "", + TypeParameter = "𝙏", + Variable = "", + Enum = "ℰ", + Package = "", + EnumMember = "", + File = "", + Module = "", + Field = "", + Interface = "ﰮ", + String = "𝓐", + Struct = "𝓢", + Event = "", + Operator = "+", + }, + guides = { + mid_item = "├ ", + last_item = "└ ", + nested_top = "│ ", + whitespace = " ", + }, + on_attach = function(bufnr) + -- Jump forwards/backwards with '{' and '}' + vim.keymap.set("n", "{", "AerialPrev", { buffer = bufnr, desc = "Jump backwards in Aerial" }) + vim.keymap.set("n", "}", "AerialNext", { buffer = bufnr, desc = "Jump forwards in Aerial" }) + -- Jump up the tree with '[[' or ']]' + vim.keymap.set("n", "[[", "AerialPrevUp", { buffer = bufnr, desc = "Jump up and backwards in Aerial" }) + vim.keymap.set("n", "]]", "AerialNextUp", { buffer = bufnr, desc = "Jump up and forwards in Aerial" }) + end, + })) +end diff --git a/config/nvim/lua/configs/alpha.lua b/config/nvim/lua/configs/alpha.lua new file mode 100644 index 0000000..0116550 --- /dev/null +++ b/config/nvim/lua/configs/alpha.lua @@ -0,0 +1,40 @@ +local status_ok, alpha = pcall(require, "alpha") +if status_ok then + local alpha_button = astronvim.alpha_button + alpha.setup(astronvim.user_plugin_opts("plugins.alpha", { + layout = { + { type = "padding", val = vim.fn.max { 2, vim.fn.floor(vim.fn.winheight(0) * 0.2) } }, + { + type = "text", + val = astronvim.user_plugin_opts("header", { + " █████ ███████ ████████ ██████ ██████", + "██ ██ ██ ██ ██ ██ ██ ██", + "███████ ███████ ██ ██████ ██ ██", + "██ ██ ██ ██ ██ ██ ██ ██", + "██ ██ ███████ ██ ██ ██ ██████", + " ", + " ███  ██ ██  ██ ██ ███  ███", + " ████  ██ ██  ██ ██ ████  ████", + " ██ ██  ██ ██  ██ ██ ██ ████ ██", + " ██  ██ ██  ██  ██  ██ ██  ██  ██", + " ██   ████   ████   ██ ██      ██", + }, false), + opts = { position = "center", hl = "DashboardHeader" }, + }, + { type = "padding", val = 5 }, + { + type = "group", + val = { + alpha_button("LDR f f", " Find File "), + alpha_button("LDR f o", " Recents "), + alpha_button("LDR f w", " Find Word "), + alpha_button("LDR f n", " New File "), + alpha_button("LDR f m", " Bookmarks "), + alpha_button("LDR S l", " Last Session "), + }, + opts = { spacing = 1 }, + }, + }, + opts = {}, + })) +end diff --git a/config/nvim/lua/configs/autopairs.lua b/config/nvim/lua/configs/autopairs.lua new file mode 100644 index 0000000..712b688 --- /dev/null +++ b/config/nvim/lua/configs/autopairs.lua @@ -0,0 +1,33 @@ +local status_ok, npairs = pcall(require, "nvim-autopairs") +if status_ok then + npairs.setup(astronvim.user_plugin_opts("plugins.nvim-autopairs", { + check_ts = true, + ts_config = { + lua = { "string", "source" }, + javascript = { "string", "template_string" }, + java = false, + }, + disable_filetype = { "TelescopePrompt", "spectre_panel" }, + fast_wrap = { + map = "", + chars = { "{", "[", "(", '"', "'" }, + pattern = string.gsub([[ [%'%"%)%>%]%)%}%,] ]], "%s+", ""), + offset = 0, + end_key = "$", + keys = "qwertyuiopzxcvbnmasdfghjkl", + check_comma = true, + highlight = "PmenuSel", + highlight_grey = "LineNr", + }, + })) + + local rules = astronvim.user_plugin_opts("nvim-autopairs").add_rules + if vim.tbl_contains({ "function", "table" }, type(rules)) then + npairs.add_rules(type(rules) == "function" and rules(npairs) or rules) + end + + local cmp_status_ok, cmp = pcall(require, "cmp") + if cmp_status_ok then + cmp.event:on("confirm_done", require("nvim-autopairs.completion.cmp").on_confirm_done { map_char = { tex = "" } }) + end +end diff --git a/config/nvim/lua/configs/better_escape.lua b/config/nvim/lua/configs/better_escape.lua new file mode 100644 index 0000000..72d9a0a --- /dev/null +++ b/config/nvim/lua/configs/better_escape.lua @@ -0,0 +1,4 @@ +local status_ok, better_escape = pcall(require, "better_escape") +if status_ok then + better_escape.setup(astronvim.user_plugin_opts "plugins.better_escape") +end diff --git a/config/nvim/lua/configs/bufferline.lua b/config/nvim/lua/configs/bufferline.lua new file mode 100644 index 0000000..671e00b --- /dev/null +++ b/config/nvim/lua/configs/bufferline.lua @@ -0,0 +1,19 @@ +local status_ok, bufferline = pcall(require, "bufferline") +if status_ok then + bufferline.setup(astronvim.user_plugin_opts("plugins.bufferline", { + options = { + offsets = { + { filetype = "NvimTree", text = "", padding = 1 }, + { filetype = "neo-tree", text = "", padding = 1 }, + { filetype = "Outline", text = "", padding = 1 }, + }, + buffer_close_icon = "", + modified_icon = "", + close_icon = "", + max_name_length = 14, + max_prefix_length = 13, + tab_size = 20, + separator_style = "thin", + }, + })) +end diff --git a/config/nvim/lua/configs/cinnamon.lua b/config/nvim/lua/configs/cinnamon.lua new file mode 100644 index 0000000..c632d7d --- /dev/null +++ b/config/nvim/lua/configs/cinnamon.lua @@ -0,0 +1,4 @@ +local status_ok, cinnamon = pcall(require, "cinnamon") +if status_ok then + cinnamon.setup(astronvim.user_plugin_opts("plugins.cinnamon", {})) +end diff --git a/config/nvim/lua/configs/cmp.lua b/config/nvim/lua/configs/cmp.lua new file mode 100644 index 0000000..e180325 --- /dev/null +++ b/config/nvim/lua/configs/cmp.lua @@ -0,0 +1,119 @@ +local cmp_status_ok, cmp = pcall(require, "cmp") +local snip_status_ok, luasnip = pcall(require, "luasnip") +if cmp_status_ok and snip_status_ok then + local setup = cmp.setup + local kind_icons = { + Text = "", + Method = "", + Function = "", + Constructor = "", + Field = "ﰠ", + Variable = "", + Class = "", + Interface = "", + Module = "", + Property = "", + Unit = "", + Value = "", + Enum = "", + Keyword = "", + Snippet = "", + Color = "", + File = "", + Reference = "", + Folder = "", + EnumMember = "", + Constant = "", + Struct = "פּ", + Event = "", + Operator = "", + TypeParameter = "", + } + + local function has_words_before() + 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 + + setup(astronvim.user_plugin_opts("plugins.cmp", { + preselect = cmp.PreselectMode.None, + formatting = { + fields = { "kind", "abbr", "menu" }, + format = function(_, vim_item) + vim_item.kind = string.format("%s", kind_icons[vim_item.kind]) + return vim_item + end, + }, + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + duplicates = { + nvim_lsp = 1, + luasnip = 1, + cmp_tabnine = 1, + buffer = 1, + path = 1, + }, + confirm_opts = { + behavior = cmp.ConfirmBehavior.Replace, + select = false, + }, + window = { + documentation = { + border = { "╭", "─", "╮", "│", "╯", "─", "╰", "│" }, + }, + }, + mapping = { + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping.select_prev_item(), + [""] = cmp.mapping.select_next_item(), + [""] = cmp.mapping(cmp.mapping.scroll_docs(-1), { "i", "c" }), + [""] = cmp.mapping(cmp.mapping.scroll_docs(1), { "i", "c" }), + [""] = cmp.mapping(cmp.mapping.complete(), { "i", "c" }), + [""] = cmp.config.disable, + [""] = cmp.mapping { + i = cmp.mapping.abort(), + c = cmp.mapping.close(), + }, + [""] = cmp.mapping.confirm { select = false }, + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expandable() then + luasnip.expand() + 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", + }), + }, + })) + for setup_opt, setup_table in pairs(astronvim.user_plugin_opts("cmp.setup", {})) do + for pattern, options in pairs(setup_table) do + setup[setup_opt](pattern, options) + end + end +end diff --git a/config/nvim/lua/configs/colorizer.lua b/config/nvim/lua/configs/colorizer.lua new file mode 100644 index 0000000..00ef111 --- /dev/null +++ b/config/nvim/lua/configs/colorizer.lua @@ -0,0 +1,18 @@ +local status_ok, colorizer = pcall(require, "colorizer") +if status_ok then + local colorizer_opts = astronvim.user_plugin_opts("plugins.colorizer", { + { "*" }, + { + RGB = true, -- #RGB hex codes + RRGGBB = true, -- #RRGGBB hex codes + names = false, -- "Name" codes like Blue + RRGGBBAA = false, -- #RRGGBBAA hex codes + rgb_fn = false, -- CSS rgb() and rgba() functions + hsl_fn = false, -- CSS hsl() and hsla() functions + css = false, -- Enable all css features: rgb_fn, hsl_fn, names, RGB, RRGGBB + css_fn = false, -- Enable all CSS *functions*: rgb_fn, hsl_fn + mode = "background", -- Set the display mode + }, + }) + colorizer.setup(colorizer_opts[1], colorizer_opts[2]) +end diff --git a/config/nvim/lua/configs/feline.lua b/config/nvim/lua/configs/feline.lua new file mode 100644 index 0000000..13b6fb6 --- /dev/null +++ b/config/nvim/lua/configs/feline.lua @@ -0,0 +1,46 @@ +local status_ok, feline = pcall(require, "feline") +if status_ok then + local C = require "default_theme.colors" + local hl = require("core.status").hl + local provider = require("core.status").provider + local conditional = require("core.status").conditional + -- stylua: ignore + feline.setup(astronvim.user_plugin_opts("plugins.feline", { + disable = { filetypes = { "^NvimTree$", "^neo%-tree$", "^dashboard$", "^Outline$", "^aerial$" } }, + theme = hl.group("StatusLine", { fg = C.fg, bg = C.bg_1 }), + components = { + active = { + { + { provider = provider.spacer(), hl = hl.mode() }, + { provider = provider.spacer(2) }, + { provider = "git_branch", hl = hl.fg("Conditional", { fg = C.purple_1, style = "bold" }), icon = " " }, + { provider = provider.spacer(3), enabled = conditional.git_available }, + { provider = { name = "file_type", opts = { filetype_icon = true, case = "lowercase" } }, enabled = conditional.has_filetype }, + { provider = provider.spacer(2), enabled = conditional.has_filetype }, + { provider = "git_diff_added", hl = hl.fg("GitSignsAdd", { fg = C.green }), icon = "  " }, + { provider = "git_diff_changed", hl = hl.fg("GitSignsChange", { fg = C.orange_1 }), icon = " 柳" }, + { provider = "git_diff_removed", hl = hl.fg("GitSignsDelete", { fg = C.red_1 }), icon = "  " }, + { provider = provider.spacer(2), enabled = conditional.git_changed }, + { provider = "diagnostic_errors", hl = hl.fg("DiagnosticError", { fg = C.red_1 }), icon = "  " }, + { provider = "diagnostic_warnings", hl = hl.fg("DiagnosticWarn", { fg = C.orange_1 }), icon = "  " }, + { provider = "diagnostic_info", hl = hl.fg("DiagnosticInfo", { fg = C.white_2 }), icon = "  " }, + { provider = "diagnostic_hints", hl = hl.fg("DiagnosticHint", { fg = C.yellow_1 }), icon = "  " }, + }, + { + { provider = provider.lsp_progress, enabled = conditional.bar_width() }, + { provider = provider.lsp_client_names(true), short_provider = provider.lsp_client_names(), enabled = conditional.bar_width(), icon = "  " }, + { provider = provider.spacer(2), enabled = conditional.bar_width() }, + { provider = provider.treesitter_status, enabled = conditional.bar_width(), hl = hl.fg("GitSignsAdd", { fg = C.green }) }, + { provider = provider.spacer(2) }, + { provider = "position" }, + { provider = provider.spacer(2) }, + { provider = "line_percentage" }, + { provider = provider.spacer() }, + { provider = "scroll_bar", hl = hl.fg("TypeDef", { fg = C.yellow }) }, + { provider = provider.spacer(2) }, + { provider = provider.spacer(), hl = hl.mode() }, + }, + }, + }, + })) +end diff --git a/config/nvim/lua/configs/gitsigns.lua b/config/nvim/lua/configs/gitsigns.lua new file mode 100644 index 0000000..1b4a914 --- /dev/null +++ b/config/nvim/lua/configs/gitsigns.lua @@ -0,0 +1,12 @@ +local status_ok, gitsigns = pcall(require, "gitsigns") +if status_ok then + gitsigns.setup(astronvim.user_plugin_opts("plugins.gitsigns", { + signs = { + add = { text = "▎" }, + change = { text = "▎" }, + delete = { text = "▎" }, + topdelete = { text = "契" }, + changedelete = { text = "▎" }, + }, + })) +end diff --git a/config/nvim/lua/configs/icons.lua b/config/nvim/lua/configs/icons.lua new file mode 100644 index 0000000..75da15d --- /dev/null +++ b/config/nvim/lua/configs/icons.lua @@ -0,0 +1,17 @@ +local status_ok, icons = pcall(require, "nvim-web-devicons") +if status_ok then + icons.set_icon(astronvim.user_plugin_opts("plugins.nvim-web-devicons", { + deb = { icon = "", name = "Deb" }, + lock = { icon = "", name = "Lock" }, + mp3 = { icon = "", name = "Mp3" }, + mp4 = { icon = "", name = "Mp4" }, + out = { icon = "", name = "Out" }, + ["robots.txt"] = { icon = "ﮧ", name = "Robots" }, + ttf = { icon = "", name = "TrueTypeFont" }, + rpm = { icon = "", name = "Rpm" }, + woff = { icon = "", name = "WebOpenFontFormat" }, + woff2 = { icon = "", name = "WebOpenFontFormat2" }, + xz = { icon = "", name = "Xz" }, + zip = { icon = "", name = "Zip" }, + })) +end diff --git a/config/nvim/lua/configs/indent-line.lua b/config/nvim/lua/configs/indent-line.lua new file mode 100644 index 0000000..b59e4a6 --- /dev/null +++ b/config/nvim/lua/configs/indent-line.lua @@ -0,0 +1,50 @@ +local status_ok, indent_blankline = pcall(require, "indent_blankline") +if status_ok then + indent_blankline.setup(astronvim.user_plugin_opts("plugins.indent_blankline", { + buftype_exclude = { + "nofile", + "terminal", + "lsp-installer", + "lspinfo", + }, + filetype_exclude = { + "help", + "startify", + "aerial", + "alpha", + "dashboard", + "packer", + "neogitstatus", + "NvimTree", + "neo-tree", + "Trouble", + }, + context_patterns = { + "class", + "return", + "function", + "method", + "^if", + "^while", + "jsx_element", + "^for", + "^object", + "^table", + "block", + "arguments", + "if_statement", + "else_clause", + "jsx_element", + "jsx_self_closing_element", + "try_statement", + "catch_clause", + "import_statement", + "operation_type", + }, + show_trailing_blankline_indent = false, + use_treesitter = true, + char = "▏", + context_char = "▏", + show_current_context = true, + })) +end diff --git a/config/nvim/lua/configs/indent-o-matic.lua b/config/nvim/lua/configs/indent-o-matic.lua new file mode 100644 index 0000000..f779ff5 --- /dev/null +++ b/config/nvim/lua/configs/indent-o-matic.lua @@ -0,0 +1,4 @@ +local status_ok, indent_o_matic = pcall(require, "indent-o-matic") +if status_ok then + indent_o_matic.setup(astronvim.user_plugin_opts "plugins.indent-o-matic") +end diff --git a/config/nvim/lua/configs/lsp/handlers.lua b/config/nvim/lua/configs/lsp/handlers.lua new file mode 100644 index 0000000..8033e0e --- /dev/null +++ b/config/nvim/lua/configs/lsp/handlers.lua @@ -0,0 +1,167 @@ +astronvim.lsp = {} +local user_plugin_opts = astronvim.user_plugin_opts +local conditional_func = astronvim.conditional_func + +local function lsp_highlight_document(client) + if client.resolved_capabilities.document_highlight then + vim.api.nvim_create_augroup("lsp_document_highlight", { clear = true }) + vim.api.nvim_create_autocmd("CursorHold", { + group = "lsp_document_highlight", + pattern = "", + callback = vim.lsp.buf.document_highlight, + }) + vim.api.nvim_create_autocmd("CursorMoved", { + group = "lsp_document_highlight", + pattern = "", + callback = vim.lsp.buf.clear_references, + }) + end +end + +astronvim.lsp.on_attach = function(client, bufnr) + astronvim.set_mappings( + user_plugin_opts("lsp.mappings", { + n = { + ["K"] = { + function() + vim.lsp.buf.hover() + end, + desc = "Hover symbol details", + buffer = bufnr, + }, + ["la"] = { + function() + vim.lsp.buf.code_action() + end, + desc = "LSP code action", + buffer = bufnr, + }, + ["lf"] = { + function() + vim.lsp.buf.formatting_sync() + end, + desc = "Format code", + buffer = bufnr, + }, + ["lh"] = { + function() + vim.lsp.buf.signature_help() + end, + desc = "Signature help", + buffer = bufnr, + }, + ["lr"] = { + function() + vim.lsp.buf.rename() + end, + desc = "Rename current symbol", + buffer = bufnr, + }, + ["gD"] = { + function() + vim.lsp.buf.declaration() + end, + desc = "Declaration of current symbol", + buffer = bufnr, + }, + ["gI"] = { + function() + vim.lsp.buf.implementation() + end, + desc = "Implementation of current symbol", + buffer = bufnr, + }, + ["gd"] = { + function() + vim.lsp.buf.definition() + end, + desc = "Show the definition of current symbol", + buffer = bufnr, + }, + ["gr"] = { + function() + vim.lsp.buf.references() + end, + desc = "References of current symbol", + buffer = bufnr, + }, + ["ld"] = { + function() + vim.diagnostic.open_float() + end, + desc = "Hover diagnostics", + buffer = bufnr, + }, + ["[d"] = { + function() + vim.diagnostic.goto_prev() + end, + desc = "Previous diagnostic", + buffer = bufnr, + }, + ["]d"] = { + function() + vim.diagnostic.goto_next() + end, + desc = "Next diagnostic", + buffer = bufnr, + }, + ["gl"] = { + function() + vim.diagnostic.open_float() + end, + desc = "Hover diagnostics", + buffer = bufnr, + }, + }, + }), + { buffer = bufnr } + ) + + vim.api.nvim_buf_create_user_command(bufnr, "Format", function() + vim.lsp.buf.formatting() + end, { desc = "Format file with LSP" }) + + local on_attach_override = user_plugin_opts("lsp.on_attach", nil, false) + local aerial_avail, aerial = pcall(require, "aerial") + conditional_func(on_attach_override, true, client, bufnr) + conditional_func(aerial.on_attach, aerial_avail, client, bufnr) + lsp_highlight_document(client) +end + +astronvim.lsp.capabilities = vim.lsp.protocol.make_client_capabilities() +astronvim.lsp.capabilities.textDocument.completion.completionItem.documentationFormat = { "markdown", "plaintext" } +astronvim.lsp.capabilities.textDocument.completion.completionItem.snippetSupport = true +astronvim.lsp.capabilities.textDocument.completion.completionItem.preselectSupport = true +astronvim.lsp.capabilities.textDocument.completion.completionItem.insertReplaceSupport = true +astronvim.lsp.capabilities.textDocument.completion.completionItem.labelDetailsSupport = true +astronvim.lsp.capabilities.textDocument.completion.completionItem.deprecatedSupport = true +astronvim.lsp.capabilities.textDocument.completion.completionItem.commitCharactersSupport = true +astronvim.lsp.capabilities.textDocument.completion.completionItem.tagSupport = { valueSet = { 1 } } +astronvim.lsp.capabilities.textDocument.completion.completionItem.resolveSupport = { + properties = { "documentation", "detail", "additionalTextEdits" }, +} + +function astronvim.lsp.server_settings(server_name) + local server = require("lspconfig")[server_name] + local opts = user_plugin_opts( + "lsp.server-settings." .. server_name, + user_plugin_opts("lsp.server-settings." .. server_name, { + capabilities = vim.tbl_deep_extend("force", astronvim.lsp.capabilities, server.capabilities or {}), + }, true, "configs") + ) + local old_on_attach = server.on_attach + local user_on_attach = opts.on_attach + opts.on_attach = function(client, bufnr) + conditional_func(old_on_attach, true, client, bufnr) + astronvim.lsp.on_attach(client, bufnr) + conditional_func(user_on_attach, true, client, bufnr) + end + return opts +end + +function astronvim.lsp.disable_formatting(client) + client.resolved_capabilities.document_formatting = false +end + +return astronvim.lsp diff --git a/config/nvim/lua/configs/lsp/init.lua b/config/nvim/lua/configs/lsp/init.lua new file mode 100644 index 0000000..90075d3 --- /dev/null +++ b/config/nvim/lua/configs/lsp/init.lua @@ -0,0 +1,55 @@ +local status_ok, lspconfig = pcall(require, "lspconfig") +if status_ok then + require "configs.lsp.handlers" + local insert = table.insert + local tbl_contains = vim.tbl_contains + local sign_define = vim.fn.sign_define + local user_plugin_opts = astronvim.user_plugin_opts + local user_registration = user_plugin_opts("lsp.server_registration", nil, false) + + local signs = { + { name = "DiagnosticSignError", text = "" }, + { name = "DiagnosticSignWarn", text = "" }, + { name = "DiagnosticSignHint", text = "" }, + { name = "DiagnosticSignInfo", text = "" }, + } + for _, sign in ipairs(signs) do + sign_define(sign.name, { texthl = sign.name, text = sign.text, numhl = "" }) + end + vim.diagnostic.config(user_plugin_opts("diagnostics", { + virtual_text = true, + signs = { active = signs }, + update_in_insert = true, + underline = true, + severity_sort = true, + float = { + focusable = false, + style = "minimal", + border = "rounded", + source = "always", + header = "", + prefix = "", + }, + })) + vim.lsp.handlers["textDocument/hover"] = vim.lsp.with(vim.lsp.handlers.hover, { border = "rounded" }) + vim.lsp.handlers["textDocument/signatureHelp"] = vim.lsp.with(vim.lsp.handlers.signature_help, { border = "rounded" }) + + local servers = user_plugin_opts "lsp.servers" + local skip_setup = user_plugin_opts "lsp.skip_setup" + local installer_avail, lsp_installer = pcall(require, "nvim-lsp-installer") + if installer_avail then + for _, server in ipairs(lsp_installer.get_installed_servers()) do + insert(servers, server.name) + end + end + for _, server in ipairs(servers) do + if not tbl_contains(skip_setup, server) then + local opts = astronvim.lsp.server_settings(server) + if type(user_registration) == "function" then + user_registration(server, opts) + else + lspconfig[server].setup(opts) + end + end + end +end diff --git a/config/nvim/lua/configs/lsp/server-settings/html.lua b/config/nvim/lua/configs/lsp/server-settings/html.lua new file mode 100644 index 0000000..1c6b4d5 --- /dev/null +++ b/config/nvim/lua/configs/lsp/server-settings/html.lua @@ -0,0 +1 @@ +return { on_attach = astronvim.lsp.disable_formatting } diff --git a/config/nvim/lua/configs/lsp/server-settings/jsonls.lua b/config/nvim/lua/configs/lsp/server-settings/jsonls.lua new file mode 100644 index 0000000..b8d05f4 --- /dev/null +++ b/config/nvim/lua/configs/lsp/server-settings/jsonls.lua @@ -0,0 +1,17 @@ +return { + on_attach = astronvim.lsp.disable_formatting, + settings = { + json = { + schemas = require("schemastore").json.schemas(), + }, + }, + setup = { + commands = { + Format = { + function() + vim.lsp.buf.range_formatting({}, { 0, 0 }, { vim.fn.line "$", 0 }) + end, + }, + }, + }, +} diff --git a/config/nvim/lua/configs/lsp/server-settings/pyright.lua b/config/nvim/lua/configs/lsp/server-settings/pyright.lua new file mode 100644 index 0000000..c2a518d --- /dev/null +++ b/config/nvim/lua/configs/lsp/server-settings/pyright.lua @@ -0,0 +1,9 @@ +return { + settings = { + python = { + analysis = { + typeCheckingMode = "off", + }, + }, + }, +} diff --git a/config/nvim/lua/configs/lsp/server-settings/rust_analyzer.lua b/config/nvim/lua/configs/lsp/server-settings/rust_analyzer.lua new file mode 100644 index 0000000..f9b89a9 --- /dev/null +++ b/config/nvim/lua/configs/lsp/server-settings/rust_analyzer.lua @@ -0,0 +1,15 @@ +return { + settings = { + ["rust-analyzer"] = { + cargo = { + loadOutDirsFromCheck = true, + }, + checkOnSave = { + command = "clippy", + }, + experimental = { + procAttrMacros = true, + }, + }, + }, +} diff --git a/config/nvim/lua/configs/lsp/server-settings/sumneko_lua.lua b/config/nvim/lua/configs/lsp/server-settings/sumneko_lua.lua new file mode 100644 index 0000000..825a9df --- /dev/null +++ b/config/nvim/lua/configs/lsp/server-settings/sumneko_lua.lua @@ -0,0 +1,16 @@ +return { + on_attach = astronvim.lsp.disable_formatting, + settings = { + Lua = { + diagnostics = { + globals = { "vim" }, + }, + workspace = { + library = { + [vim.fn.expand "$VIMRUNTIME/lua"] = true, + [astronvim.install.home .. "/lua"] = true, + }, + }, + }, + }, +} diff --git a/config/nvim/lua/configs/lsp/server-settings/tsserver.lua b/config/nvim/lua/configs/lsp/server-settings/tsserver.lua new file mode 100644 index 0000000..1c6b4d5 --- /dev/null +++ b/config/nvim/lua/configs/lsp/server-settings/tsserver.lua @@ -0,0 +1 @@ +return { on_attach = astronvim.lsp.disable_formatting } diff --git a/config/nvim/lua/configs/luasnip.lua b/config/nvim/lua/configs/luasnip.lua new file mode 100644 index 0000000..38a4b60 --- /dev/null +++ b/config/nvim/lua/configs/luasnip.lua @@ -0,0 +1,16 @@ +local user_settings = astronvim.user_plugin_opts "luasnip" +local loader_avail, loader = pcall(require, "luasnip/loaders/from_vscode") +if loader_avail then + if user_settings.vscode_snippet_paths ~= nil then + loader.lazy_load { paths = user_settings.vscode_snippet_paths } + end + loader.lazy_load() +end +local luasnip_avail, luasnip = pcall(require, "luasnip") +if luasnip_avail then + if type(user_settings.filetype_extend) == "table" then + for filetype, snippets in pairs(user_settings.filetype_extend) do + luasnip.filetype_extend(filetype, snippets) + end + end +end diff --git a/config/nvim/lua/configs/neo-tree.lua b/config/nvim/lua/configs/neo-tree.lua new file mode 100644 index 0000000..913460e --- /dev/null +++ b/config/nvim/lua/configs/neo-tree.lua @@ -0,0 +1,70 @@ +local status_ok, neotree = pcall(require, "neo-tree") +if status_ok then + neotree.setup(astronvim.user_plugin_opts("plugins.neo-tree", { + close_if_last_window = true, + popup_border_style = "rounded", + enable_diagnostics = false, + default_component_configs = { + indent = { + padding = 0, + with_expanders = false, + }, + icon = { + folder_closed = "", + folder_open = "", + folder_empty = "", + default = "", + }, + git_status = { + symbols = { + added = "", + deleted = "", + modified = "", + renamed = "➜", + untracked = "★", + ignored = "◌", + unstaged = "✗", + staged = "✓", + conflict = "", + }, + }, + }, + window = { + width = 25, + mappings = { + ["o"] = "open", + }, + }, + filesystem = { + filtered_items = { + visible = false, + hide_dotfiles = true, + hide_gitignored = false, + hide_by_name = { + ".DS_Store", + "thumbs.db", + "node_modules", + "__pycache__", + }, + }, + follow_current_file = true, + hijack_netrw_behavior = "open_current", + use_libuv_file_watcher = true, + }, + git_status = { + window = { + position = "float", + }, + }, + event_handlers = { + { + event = "vim_buffer_enter", + handler = function(_) + if vim.bo.filetype == "neo-tree" then + vim.wo.signcolumn = "auto" + end + end, + }, + }, + })) +end diff --git a/config/nvim/lua/configs/notify.lua b/config/nvim/lua/configs/notify.lua new file mode 100644 index 0000000..afa2aca --- /dev/null +++ b/config/nvim/lua/configs/notify.lua @@ -0,0 +1,6 @@ +local status_ok, notify = pcall(require, "notify") +if status_ok then + notify.setup(astronvim.user_plugin_opts("plugins.notify", { stages = "fade" })) + + vim.notify = notify +end diff --git a/config/nvim/lua/configs/null-ls.lua b/config/nvim/lua/configs/null-ls.lua new file mode 100644 index 0000000..38f19f0 --- /dev/null +++ b/config/nvim/lua/configs/null-ls.lua @@ -0,0 +1,4 @@ +local status_ok, null_ls = pcall(require, "null-ls") +if status_ok then + null_ls.setup(astronvim.user_plugin_opts "plugins.null-ls") +end diff --git a/config/nvim/lua/configs/nvim-lsp-installer.lua b/config/nvim/lua/configs/nvim-lsp-installer.lua new file mode 100644 index 0000000..bdc48e7 --- /dev/null +++ b/config/nvim/lua/configs/nvim-lsp-installer.lua @@ -0,0 +1,12 @@ +local status_ok, lsp_installer = pcall(require, "nvim-lsp-installer") +if status_ok then + lsp_installer.setup(astronvim.user_plugin_opts("plugins.nvim-lsp-installer", { + ui = { + icons = { + server_installed = "✓", + server_uninstalled = "✗", + server_pending = "⟳", + }, + }, + })) +end diff --git a/config/nvim/lua/configs/session_manager.lua b/config/nvim/lua/configs/session_manager.lua new file mode 100644 index 0000000..f45b768 --- /dev/null +++ b/config/nvim/lua/configs/session_manager.lua @@ -0,0 +1,4 @@ +local status_ok, session_manager = pcall(require, "session_manager") +if status_ok then + session_manager.setup(astronvim.user_plugin_opts("plugins.session_manager", { autosave_last_session = false })) +end diff --git a/config/nvim/lua/configs/smart-splits.lua b/config/nvim/lua/configs/smart-splits.lua new file mode 100644 index 0000000..2cb4812 --- /dev/null +++ b/config/nvim/lua/configs/smart-splits.lua @@ -0,0 +1,12 @@ +local status_ok, smart_splits = pcall(require, "smart-splits") +if status_ok then + smart_splits.setup(astronvim.user_plugin_opts("plugins.smart-splits", { + ignored_filetypes = { + "nofile", + "quickfix", + "qf", + "prompt", + }, + ignored_buftypes = { "nofile" }, + })) +end diff --git a/config/nvim/lua/configs/telescope.lua b/config/nvim/lua/configs/telescope.lua new file mode 100644 index 0000000..9de40b1 --- /dev/null +++ b/config/nvim/lua/configs/telescope.lua @@ -0,0 +1,96 @@ +local status_ok, telescope = pcall(require, "telescope") +if status_ok then + local actions = require "telescope.actions" + + astronvim.conditional_func(telescope.load_extension, pcall(require, "notify"), "notify") + astronvim.conditional_func(telescope.load_extension, pcall(require, "aerial"), "aerial") + + telescope.setup(astronvim.user_plugin_opts("plugins.telescope", { + defaults = { + + prompt_prefix = " ", + selection_caret = "❯ ", + path_display = { "truncate" }, + selection_strategy = "reset", + sorting_strategy = "ascending", + layout_strategy = "horizontal", + layout_config = { + horizontal = { + prompt_position = "top", + preview_width = 0.55, + results_width = 0.8, + }, + vertical = { + mirror = false, + }, + width = 0.87, + height = 0.80, + preview_cutoff = 120, + }, + + mappings = { + i = { + [""] = actions.cycle_history_next, + [""] = actions.cycle_history_prev, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + + [""] = actions.close, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + + [""] = actions.select_default, + [""] = actions.select_horizontal, + [""] = actions.select_vertical, + [""] = actions.select_tab, + + [""] = actions.preview_scrolling_up, + [""] = actions.preview_scrolling_down, + + [""] = actions.results_scrolling_up, + [""] = actions.results_scrolling_down, + + [""] = actions.toggle_selection + actions.move_selection_worse, + [""] = actions.toggle_selection + actions.move_selection_better, + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = actions.send_selected_to_qflist + actions.open_qflist, + [""] = actions.complete_tag, + }, + + n = { + [""] = actions.close, + [""] = actions.select_default, + [""] = actions.select_horizontal, + [""] = actions.select_vertical, + [""] = actions.select_tab, + + [""] = actions.toggle_selection + actions.move_selection_worse, + [""] = actions.toggle_selection + actions.move_selection_better, + [""] = actions.send_to_qflist + actions.open_qflist, + [""] = actions.send_selected_to_qflist + actions.open_qflist, + + ["j"] = actions.move_selection_next, + ["k"] = actions.move_selection_previous, + ["H"] = actions.move_to_top, + ["M"] = actions.move_to_middle, + ["L"] = actions.move_to_bottom, + + [""] = actions.move_selection_next, + [""] = actions.move_selection_previous, + ["gg"] = actions.move_to_top, + ["G"] = actions.move_to_bottom, + + [""] = actions.preview_scrolling_up, + [""] = actions.preview_scrolling_down, + + [""] = actions.results_scrolling_up, + [""] = actions.results_scrolling_down, + }, + }, + }, + pickers = {}, + extensions = {}, + })) +end diff --git a/config/nvim/lua/configs/toggleterm.lua b/config/nvim/lua/configs/toggleterm.lua new file mode 100644 index 0000000..4c6e351 --- /dev/null +++ b/config/nvim/lua/configs/toggleterm.lua @@ -0,0 +1,16 @@ +local status_ok, toggleterm = pcall(require, "toggleterm") +if status_ok then + toggleterm.setup(astronvim.user_plugin_opts("plugins.toggleterm", { + size = 10, + open_mapping = [[]], + shading_factor = 2, + direction = "float", + float_opts = { + border = "curved", + highlights = { + border = "Normal", + background = "Normal", + }, + }, + })) +end diff --git a/config/nvim/lua/configs/treesitter.lua b/config/nvim/lua/configs/treesitter.lua new file mode 100644 index 0000000..01d5cea --- /dev/null +++ b/config/nvim/lua/configs/treesitter.lua @@ -0,0 +1,26 @@ +local status_ok, treesitter = pcall(require, "nvim-treesitter.configs") +if status_ok then + treesitter.setup(astronvim.user_plugin_opts("plugins.treesitter", { + ensure_installed = {}, + sync_install = false, + ignore_install = {}, + highlight = { + enable = true, + additional_vim_regex_highlighting = false, + }, + context_commentstring = { + enable = true, + enable_autocmd = false, + }, + rainbow = { + enable = true, + disable = { "html" }, + extended_mode = false, + max_file_lines = nil, + }, + autopairs = { enable = true }, + autotag = { enable = true }, + incremental_selection = { enable = true }, + indent = { enable = false }, + })) +end diff --git a/config/nvim/lua/configs/which-key-register.lua b/config/nvim/lua/configs/which-key-register.lua new file mode 100644 index 0000000..0ea8881 --- /dev/null +++ b/config/nvim/lua/configs/which-key-register.lua @@ -0,0 +1,61 @@ +local status_ok, which_key = pcall(require, "which-key") +if status_ok then + local is_available = astronvim.is_available + local user_plugin_opts = astronvim.user_plugin_opts + local mappings = { + n = { + [""] = { + f = { name = "File" }, + p = { name = "Packer" }, + l = { name = "LSP" }, + }, + }, + } + + local extra_sections = { + g = "Git", + s = "Search", + S = "Session", + t = "Terminal", + } + + local function init_table(mode, prefix, idx) + if not mappings[mode][prefix][idx] then + mappings[mode][prefix][idx] = { name = extra_sections[idx] } + end + end + + if is_available "neovim-session-manager" then + init_table("n", "", "S") + end + + if is_available "gitsigns.nvim" then + init_table("n", "", "g") + end + + if is_available "toggleterm.nvim" then + init_table("n", "", "g") + init_table("n", "", "t") + end + + if is_available "telescope.nvim" then + init_table("n", "", "s") + init_table("n", "", "g") + end + + mappings = user_plugin_opts("which-key.register_mappings", mappings) + -- support previous legacy notation, deprecate at some point + mappings.n[""] = user_plugin_opts("which-key.register_n_leader", mappings.n[""]) + for mode, prefixes in pairs(mappings) do + for prefix, mapping_table in pairs(prefixes) do + which_key.register(mapping_table, { + mode = mode, + prefix = prefix, + buffer = nil, + silent = true, + noremap = true, + nowait = true, + }) + end + end +end diff --git a/config/nvim/lua/configs/which-key.lua b/config/nvim/lua/configs/which-key.lua new file mode 100644 index 0000000..617c559 --- /dev/null +++ b/config/nvim/lua/configs/which-key.lua @@ -0,0 +1,21 @@ +local status_ok, which_key = pcall(require, "which-key") +if status_ok then + local show = which_key.show + local show_override = astronvim.user_plugin_opts("which-key.show", nil, false) + which_key.show = type(show_override) == "function" and show_override(show) + or function(keys, opts) + if vim.bo.filetype ~= "TelescopePrompt" then + show(keys, opts) + end + end + which_key.setup(astronvim.user_plugin_opts("plugins.which-key", { + plugins = { + spelling = { enabled = true }, + presets = { operators = false }, + }, + window = { + border = "rounded", + padding = { 2, 2, 2, 2 }, + }, + })) +end diff --git a/config/nvim/lua/core/autocmds.lua b/config/nvim/lua/core/autocmds.lua new file mode 100644 index 0000000..dc881c3 --- /dev/null +++ b/config/nvim/lua/core/autocmds.lua @@ -0,0 +1,104 @@ +local is_available = astronvim.is_available +local cmd = vim.api.nvim_create_autocmd +local augroup = vim.api.nvim_create_augroup +local create_command = vim.api.nvim_create_user_command + +augroup("highlighturl", { clear = true }) +cmd({ "VimEnter", "FileType", "BufEnter", "WinEnter" }, { + desc = "URL Highlighting", + group = "highlighturl", + pattern = "*", + callback = function() + astronvim.set_url_match() + end, +}) + +if is_available "alpha-nvim" then + augroup("alpha_settings", { clear = true }) + if is_available "bufferline.nvim" then + cmd("FileType", { + desc = "Disable tabline for alpha", + group = "alpha_settings", + pattern = "alpha", + callback = function() + local prev_showtabline = vim.opt.showtabline + vim.opt.showtabline = 0 + cmd("BufUnload", { + pattern = "", + callback = function() + vim.opt.showtabline = prev_showtabline + end, + }) + end, + }) + end + cmd("FileType", { + desc = "Disable statusline for alpha", + group = "alpha_settings", + pattern = "alpha", + callback = function() + local prev_status = vim.opt.laststatus + vim.opt.laststatus = 0 + cmd("BufUnload", { + pattern = "", + callback = function() + vim.opt.laststatus = prev_status + end, + }) + end, + }) + cmd("VimEnter", { + desc = "Start Alpha when vim is opened with no arguments", + group = "alpha_settings", + callback = function() + -- optimized start check from https://github.com/goolord/alpha-nvim + local alpha_avail, alpha = pcall(require, "alpha") + if alpha_avail then + local should_skip = false + if vim.fn.argc() > 0 or vim.fn.line2byte "$" ~= -1 or not vim.o.modifiable then + should_skip = true + else + for _, arg in pairs(vim.v.argv) do + if arg == "-b" or arg == "-c" or vim.startswith(arg, "+") or arg == "-S" then + should_skip = true + break + end + end + end + if not should_skip then + alpha.start(true) + end + end + end, + }) +end + +if is_available "neo-tree.nvim" then + augroup("neotree_start", { clear = true }) + cmd("BufEnter", { + desc = "Open Neo-Tree on startup with directory", + group = "neotree_start", + callback = function() + local stats = vim.loop.fs_stat(vim.api.nvim_buf_get_name(0)) + if stats and stats.type == "directory" then + require("neo-tree.setup.netrw").hijack() + end + end, + }) +end + +if is_available "feline.nvim" then + augroup("feline_setup", { clear = true }) + cmd("ColorScheme", { + desc = "Reload feline on colorscheme change", + group = "feline_setup", + callback = function() + package.loaded["configs.feline"] = nil + require "configs.feline" + end, + }) +end + +create_command("AstroUpdate", astronvim.updater.update, { desc = "Update AstroNvim" }) +create_command("AstroVersion", astronvim.updater.version, { desc = "Check AstroNvim Version" }) +create_command("ToggleHighlightURL", astronvim.toggle_url_match, { desc = "Toggle URL Highlights" }) diff --git a/config/nvim/lua/core/mappings.lua b/config/nvim/lua/core/mappings.lua new file mode 100644 index 0000000..a52d3eb --- /dev/null +++ b/config/nvim/lua/core/mappings.lua @@ -0,0 +1,420 @@ +local is_available = astronvim.is_available + +local maps = { n = {}, v = {}, t = {}, [""] = {} } + +maps[""][""] = "" + +-- Normal -- +-- Standard Operations +maps.n["w"] = { "w", desc = "Save" } +maps.n["q"] = { "q", desc = "Quit" } +maps.n["h"] = { "nohlsearch", desc = "No Highlight" } +maps.n["u"] = { + function() + astronvim.toggle_url_match() + end, + desc = "Toggle URL Highlights", +} +maps.n["fn"] = { "enew", desc = "New File" } +maps.n["gx"] = { + function() + astronvim.url_opener() + end, + desc = "Open the file under cursor with system app", +} +maps.n[""] = { "w!", desc = "Force write" } +maps.n[""] = { "q!", desc = "Force quit" } +maps.n["Q"] = "" + +-- Packer +maps.n["pc"] = { "PackerCompile", desc = "Packer Compile" } +maps.n["pi"] = { "PackerInstall", desc = "Packer Install" } +maps.n["ps"] = { "PackerSync", desc = "Packer Sync" } +maps.n["pS"] = { "PackerStatus", desc = "Packer Status" } +maps.n["pu"] = { "PackerUpdate", desc = "Packer Update" } + +-- Alpha +if is_available "alpha-nvim" then + maps.n["d"] = { "Alpha", desc = "Alpha Dashboard" } +end + +-- Bufdelete +if is_available "bufdelete.nvim" then + maps.n["c"] = { "Bdelete", desc = "Close buffer" } +else + maps.n["c"] = { "bdelete", desc = "Close buffer" } +end + +-- Navigate buffers +if is_available "bufferline.nvim" then + maps.n[""] = { "BufferLineCycleNext", desc = "Next buffer tab" } + maps.n[""] = { "BufferLineCyclePrev", desc = "Previous buffer tab" } + maps.n[">b"] = { "BufferLineMoveNext", desc = "Move buffer tab right" } + maps.n["BufferLineMovePrev", desc = "Move buffer tab left" } +else + maps.n[""] = { "bnext", desc = "Next buffer" } + maps.n[""] = { "bprevious", desc = "Previous buffer" } +end + +-- Comment +if is_available "Comment.nvim" then + maps.n["/"] = { + function() + require("Comment.api").toggle_current_linewise() + end, + desc = "Comment line", + } + maps.v["/"] = { + "lua require('Comment.api').toggle_linewise_op(vim.fn.visualmode())", + desc = "Toggle comment line", + } +end + +-- GitSigns +if is_available "gitsigns.nvim" then + maps.n["gj"] = { + function() + require("gitsigns").next_hunk() + end, + desc = "Next git hunk", + } + maps.n["gk"] = { + function() + require("gitsigns").prev_hunk() + end, + desc = "Previous git hunk", + } + maps.n["gl"] = { + function() + require("gitsigns").blame_line() + end, + desc = "View git blame", + } + maps.n["gp"] = { + function() + require("gitsigns").preview_hunk() + end, + desc = "Preview git hunk", + } + maps.n["gh"] = { + function() + require("gitsigns").reset_hunk() + end, + desc = "Reset git hunk", + } + maps.n["gr"] = { + function() + require("gitsigns").reset_buffer() + end, + desc = "Reset git buffer", + } + maps.n["gs"] = { + function() + require("gitsigns").stage_hunk() + end, + desc = "Stage git hunk", + } + maps.n["gu"] = { + function() + require("gitsigns").undo_stage_hunk() + end, + desc = "Unstage git hunk", + } + maps.n["gd"] = { + function() + require("gitsigns").diffthis() + end, + desc = "View git diff", + } +end + +-- NeoTree +if is_available "neo-tree.nvim" then + maps.n["e"] = { "Neotree toggle", desc = "Toggle Explorer" } + maps.n["o"] = { "Neotree focus", desc = "Focus Explorer" } +end + +-- Session Manager +if is_available "neovim-session-manager" then + maps.n["Sl"] = { "SessionManager! load_last_session", desc = "Load last session" } + maps.n["Ss"] = { "SessionManager! save_current_session", desc = "Save this session" } + maps.n["Sd"] = { "SessionManager! delete_session", desc = "Delete session" } + maps.n["Sf"] = { "SessionManager! load_session", desc = "Search sessions" } + maps.n["S."] = { + "SessionManager! load_current_dir_session", + desc = "Load current directory session", + } +end + +-- LSP Installer +if is_available "nvim-lsp-installer" then + maps.n["li"] = { "LspInfo", desc = "LSP information" } + maps.n["lI"] = { "LspInstallInfo", desc = "LSP installer" } +end + +-- Smart Splits +if is_available "smart-splits.nvim" then + -- Better window navigation + maps.n[""] = { + function() + require("smart-splits").move_cursor_left() + end, + desc = "Move to left split", + } + maps.n[""] = { + function() + require("smart-splits").move_cursor_down() + end, + desc = "Move to below split", + } + maps.n[""] = { + function() + require("smart-splits").move_cursor_up() + end, + desc = "Move to above split", + } + maps.n[""] = { + function() + require("smart-splits").move_cursor_right() + end, + desc = "Move to right split", + } + + -- Resize with arrows + maps.n[""] = { + function() + require("smart-splits").resize_up() + end, + desc = "Resize split up", + } + maps.n[""] = { + function() + require("smart-splits").resize_down() + end, + desc = "Resize split down", + } + maps.n[""] = { + function() + require("smart-splits").resize_left() + end, + desc = "Resize split left", + } + maps.n[""] = { + function() + require("smart-splits").resize_right() + end, + desc = "Resize split right", + } +else + maps.n[""] = { "h", desc = "Move to left split" } + maps.n[""] = { "j", desc = "Move to below split" } + maps.n[""] = { "k", desc = "Move to above split" } + maps.n[""] = { "l", desc = "Move to right split" } + maps.n[""] = { "resize -2", desc = "Resize split up" } + maps.n[""] = { "resize +2", desc = "Resize split down" } + maps.n[""] = { "vertical resize -2", desc = "Resize split left" } + maps.n[""] = { "vertical resize +2", desc = "Resize split right" } +end + +-- SymbolsOutline +if is_available "aerial.nvim" then + maps.n["lS"] = { "AerialToggle", desc = "Symbols outline" } +end + +-- Telescope +if is_available "telescope.nvim" then + maps.n["fw"] = { + function() + require("telescope.builtin").live_grep() + end, + desc = "Search words", + } + maps.n["fW"] = { + function() + require("telescope.builtin").live_grep { + additional_args = function(args) + return vim.list_extend(args, { "--hidden", "--no-ignore" }) + end, + } + end, + desc = "Search words in all files", + } + maps.n["gt"] = { + function() + require("telescope.builtin").git_status() + end, + desc = "Git status", + } + maps.n["gb"] = { + function() + require("telescope.builtin").git_branches() + end, + desc = "Git branches", + } + maps.n["gc"] = { + function() + require("telescope.builtin").git_commits() + end, + desc = "Git commits", + } + maps.n["ff"] = { + function() + require("telescope.builtin").find_files() + end, + desc = "Search files", + } + maps.n["fF"] = { + function() + require("telescope.builtin").find_files { hidden = true, no_ignore = true } + end, + desc = "Search all files", + } + maps.n["fb"] = { + function() + require("telescope.builtin").buffers() + end, + desc = "Search buffers", + } + maps.n["fh"] = { + function() + require("telescope.builtin").help_tags() + end, + desc = "Search help", + } + maps.n["fm"] = { + function() + require("telescope.builtin").marks() + end, + desc = "Search marks", + } + maps.n["fo"] = { + function() + require("telescope.builtin").oldfiles() + end, + desc = "Search history", + } + maps.n["sb"] = { + function() + require("telescope.builtin").git_branches() + end, + desc = "Git branches", + } + maps.n["sh"] = { + function() + require("telescope.builtin").help_tags() + end, + desc = "Search help", + } + maps.n["sm"] = { + function() + require("telescope.builtin").man_pages() + end, + desc = "Search man", + } + maps.n["sn"] = { + function() + require("telescope").extensions.notify.notify() + end, + desc = "Search notifications", + } + maps.n["sr"] = { + function() + require("telescope.builtin").registers() + end, + desc = "Search registers", + } + maps.n["sk"] = { + function() + require("telescope.builtin").keymaps() + end, + desc = "Search keymaps", + } + maps.n["sc"] = { + function() + require("telescope.builtin").commands() + end, + desc = "Search commands", + } + maps.n["ls"] = { + function() + local aerial_avail, _ = pcall(require, "aerial") + if aerial_avail then + require("telescope").extensions.aerial.aerial() + else + require("telescope.builtin").lsp_document_symbols() + end + end, + desc = "Search symbols", + } + maps.n["lR"] = { + function() + require("telescope.builtin").lsp_references() + end, + desc = "Search references", + } + maps.n["lD"] = { + function() + require("telescope.builtin").diagnostics() + end, + desc = "Search diagnostics", + } +end + +-- Terminal +if is_available "toggleterm.nvim" then + local toggle_term_cmd = astronvim.toggle_term_cmd + maps.n[""] = { "ToggleTerm", desc = "Toggle terminal" } + maps.n["gg"] = { + function() + toggle_term_cmd "lazygit" + end, + desc = "ToggleTerm lazygit", + } + maps.n["tn"] = { + function() + toggle_term_cmd "node" + end, + desc = "ToggleTerm node", + } + maps.n["tu"] = { + function() + toggle_term_cmd "ncdu" + end, + desc = "ToggleTerm NCDU", + } + maps.n["tt"] = { + function() + toggle_term_cmd "htop" + end, + desc = "ToggleTerm htop", + } + maps.n["tp"] = { + function() + toggle_term_cmd "python" + end, + desc = "ToggleTerm python", + } + maps.n["tl"] = { + function() + toggle_term_cmd "lazygit" + end, + desc = "ToggleTerm lazygit", + } + maps.n["tf"] = { "ToggleTerm direction=float", desc = "ToggleTerm float" } + maps.n["th"] = { "ToggleTerm size=10 direction=horizontal", desc = "ToggleTerm horizontal split" } + maps.n["tv"] = { "ToggleTerm size=80 direction=vertical", desc = "ToggleTerm vertical split" } +end + +-- Stay in indent mode +maps.v["<"] = { ""] = { ">gv", desc = "indent line" } + +-- Improved Terminal Mappings +maps.t[""] = { "", desc = "Terminal normal mode" } +maps.t["jk"] = { "", desc = "Terminal normal mode" } +maps.t[""] = { "h", desc = "Terminal left window navigation" } +maps.t[""] = { "j", desc = "Terminal down window navigation" } +maps.t[""] = { "k", desc = "Terminal up window navigation" } +maps.t[""] = { "l", desc = "Terminal right window naviation" } + +astronvim.set_mappings(astronvim.user_plugin_opts("mappings", maps)) diff --git a/config/nvim/lua/core/options.lua b/config/nvim/lua/core/options.lua new file mode 100644 index 0000000..4ebe903 --- /dev/null +++ b/config/nvim/lua/core/options.lua @@ -0,0 +1,67 @@ +astronvim.vim_opts(astronvim.user_plugin_opts("options", { + opt = { + backspace = vim.opt.backspace + { "nostop" }, -- Don't stop backspace at insert + clipboard = "unnamedplus", -- Connection to the system clipboard + completeopt = { "menuone", "noselect" }, -- Options for insert mode completion + copyindent = true, -- Copy the previous indentation on autoindenting + cursorline = true, -- Highlight the text line of the cursor + expandtab = true, -- Enable the use of space in tab + fileencoding = "utf-8", -- File content encoding for the buffer + fillchars = { eob = " " }, -- Disable `~` on nonexistent lines + history = 100, -- Number of commands to remember in a history table + ignorecase = true, -- Case insensitive searching + laststatus = 3, -- globalstatus + lazyredraw = true, -- lazily redraw screen + mouse = "a", -- Enable mouse support + number = true, -- Show numberline + preserveindent = true, -- Preserve indent structure as much as possible + pumheight = 10, -- Height of the pop up menu + relativenumber = true, -- Show relative numberline + scrolloff = 8, -- Number of lines to keep above and below the cursor + shiftwidth = 2, -- Number of space inserted for indentation + showmode = false, -- Disable showing modes in command line + sidescrolloff = 8, -- Number of columns to keep at the sides of the cursor + signcolumn = "yes", -- Always show the sign column + smartcase = true, -- Case sensitivie searching + splitbelow = true, -- Splitting a new window below the current one + splitright = true, -- Splitting a new window at the right of the current one + swapfile = false, -- Disable use of swapfile for the buffer + tabstop = 2, -- Number of space in a tab + termguicolors = true, -- Enable 24-bit RGB color in the TUI + timeoutlen = 300, -- Length of time to wait for a mapped sequence + undofile = true, -- Enable persistent undo + updatetime = 300, -- Length of time to wait before triggering the plugin + wrap = false, -- Disable wrapping of lines longer than the width of window + writebackup = false, -- Disable making a backup before overwriting a file + }, + g = { + do_filetype_lua = 1, -- use filetype.lua + did_load_filetypes = 0, -- don't use filetype.vim + highlighturl_enabled = true, -- highlight URLs by default + mapleader = " ", -- set leader key + zipPlugin = false, -- disable zip + load_black = false, -- disable black + loaded_2html_plugin = true, -- disable 2html + loaded_getscript = true, -- disable getscript + loaded_getscriptPlugin = true, -- disable getscript + loaded_gzip = true, -- disable gzip + loaded_logipat = true, -- disable logipat + loaded_matchit = true, -- disable matchit + loaded_netrwFileHandlers = true, -- disable netrw + loaded_netrwPlugin = true, -- disable netrw + loaded_netrwSettngs = true, -- disable netrw + loaded_remote_plugins = true, -- disable remote plugins + loaded_tar = true, -- disable tar + loaded_tarPlugin = true, -- disable tar + loaded_zip = true, -- disable zip + loaded_zipPlugin = true, -- disable zip + loaded_vimball = true, -- disable vimball + loaded_vimballPlugin = true, -- disable vimball + }, +})) + +local colorscheme = astronvim.user_plugin_opts("colorscheme", nil, false) +vim.api.nvim_command( + "colorscheme " + .. (vim.tbl_contains(vim.fn.getcompletion("", "color"), colorscheme) and colorscheme or "default_theme") +) diff --git a/config/nvim/lua/core/plugins.lua b/config/nvim/lua/core/plugins.lua new file mode 100644 index 0000000..5f64e7f --- /dev/null +++ b/config/nvim/lua/core/plugins.lua @@ -0,0 +1,354 @@ +local astro_plugins = { + -- Plugin manager + ["wbthomason/packer.nvim"] = {}, + + -- Optimiser + ["lewis6991/impatient.nvim"] = {}, + + -- Lua functions + ["nvim-lua/plenary.nvim"] = { module = "plenary" }, + + -- Popup API + ["nvim-lua/popup.nvim"] = {}, + + -- Indent detection + ["Darazaki/indent-o-matic"] = { + event = "BufReadPost", + config = function() + require "configs.indent-o-matic" + end, + }, + + -- Notification Enhancer + ["rcarriga/nvim-notify"] = { + event = "VimEnter", + config = function() + require "configs.notify" + end, + }, + + -- Neovim UI Enhancer + ["MunifTanjim/nui.nvim"] = { module = "nui" }, + + -- Cursorhold fix + ["antoinemadec/FixCursorHold.nvim"] = { + event = { "BufRead", "BufNewFile" }, + config = function() + vim.g.cursorhold_updatetime = 100 + end, + }, + + -- Smarter Splits + ["mrjones2014/smart-splits.nvim"] = { + module = "smart-splits", + config = function() + require "configs.smart-splits" + end, + }, + + -- Icons + ["kyazdani42/nvim-web-devicons"] = { + event = "VimEnter", + config = function() + require "configs.icons" + end, + }, + + -- Bufferline + ["akinsho/bufferline.nvim"] = { + after = "nvim-web-devicons", + config = function() + require "configs.bufferline" + end, + }, + + -- Better buffer closing + ["famiu/bufdelete.nvim"] = { cmd = { "Bdelete", "Bwipeout" } }, + + -- File explorer + ["nvim-neo-tree/neo-tree.nvim"] = { + branch = "v2.x", + module = "neo-tree", + cmd = "Neotree", + requires = { "MunifTanjim/nui.nvim", "nvim-lua/plenary.nvim" }, + setup = function() + vim.g.neo_tree_remove_legacy_commands = true + end, + config = function() + require "configs.neo-tree" + end, + }, + + -- Statusline + ["feline-nvim/feline.nvim"] = { + after = "nvim-web-devicons", + config = function() + require "configs.feline" + end, + }, + + -- Parenthesis highlighting + ["p00f/nvim-ts-rainbow"] = { after = "nvim-treesitter" }, + + -- Autoclose tags + ["windwp/nvim-ts-autotag"] = { after = "nvim-treesitter" }, + + -- Context based commenting + ["JoosepAlviste/nvim-ts-context-commentstring"] = { after = "nvim-treesitter" }, + + -- Syntax highlighting + ["nvim-treesitter/nvim-treesitter"] = { + run = ":TSUpdate", + event = { "BufRead", "BufNewFile" }, + cmd = { + "TSInstall", + "TSInstallInfo", + "TSInstallSync", + "TSUninstall", + "TSUpdate", + "TSUpdateSync", + "TSDisableAll", + "TSEnableAll", + }, + config = function() + require "configs.treesitter" + end, + }, + + -- Snippet collection + ["rafamadriz/friendly-snippets"] = { opt = true }, + + -- Snippet engine + ["L3MON4D3/LuaSnip"] = { + module = "luasnip", + wants = "friendly-snippets", + config = function() + require "configs.luasnip" + end, + }, + + -- Completion engine + ["hrsh7th/nvim-cmp"] = { + event = "InsertEnter", + config = function() + require "configs.cmp" + end, + }, + + -- Snippet completion source + ["saadparwaiz1/cmp_luasnip"] = { + after = "nvim-cmp", + config = function() + astronvim.add_user_cmp_source "luasnip" + end, + }, + + -- Buffer completion source + ["hrsh7th/cmp-buffer"] = { + after = "nvim-cmp", + config = function() + astronvim.add_user_cmp_source "buffer" + end, + }, + + -- Path completion source + ["hrsh7th/cmp-path"] = { + after = "nvim-cmp", + config = function() + astronvim.add_user_cmp_source "path" + end, + }, + + -- LSP completion source + ["hrsh7th/cmp-nvim-lsp"] = { + after = "nvim-cmp", + config = function() + astronvim.add_user_cmp_source "nvim_lsp" + end, + }, + + -- Built-in LSP + ["neovim/nvim-lspconfig"] = { event = "VimEnter" }, + + -- LSP manager + ["williamboman/nvim-lsp-installer"] = { + after = "nvim-lspconfig", + config = function() + require "configs.nvim-lsp-installer" + require "configs.lsp" + end, + }, + + -- LSP symbols + ["stevearc/aerial.nvim"] = { + module = "aerial", + cmd = { "AerialToggle", "AerialOpen", "AerialInfo" }, + config = function() + require "configs.aerial" + end, + }, + + -- Formatting and linting + ["jose-elias-alvarez/null-ls.nvim"] = { + event = { "BufRead", "BufNewFile" }, + config = function() + require "configs.null-ls" + end, + }, + + -- Fuzzy finder + ["nvim-telescope/telescope.nvim"] = { + cmd = "Telescope", + module = "telescope", + config = function() + require "configs.telescope" + end, + }, + + -- Fuzzy finder syntax support + [("nvim-telescope/telescope-%s-native.nvim"):format(vim.fn.has "win32" == 1 and "fzy" or "fzf")] = { + after = "telescope.nvim", + run = vim.fn.has "win32" ~= 1 and "make" or nil, + config = function() + require("telescope").load_extension(vim.fn.has "win32" == 1 and "fzy_native" or "fzf") + end, + }, + + -- Git integration + ["lewis6991/gitsigns.nvim"] = { + event = "BufEnter", + config = function() + require "configs.gitsigns" + end, + }, + + -- Start screen + ["goolord/alpha-nvim"] = { + cmd = "Alpha", + module = "alpha", + config = function() + require "configs.alpha" + end, + }, + + -- Color highlighting + ["norcalli/nvim-colorizer.lua"] = { + event = { "BufRead", "BufNewFile" }, + config = function() + require "configs.colorizer" + end, + }, + + -- Autopairs + ["windwp/nvim-autopairs"] = { + event = "InsertEnter", + config = function() + require "configs.autopairs" + end, + }, + + -- Terminal + ["akinsho/toggleterm.nvim"] = { + cmd = "ToggleTerm", + module = { "toggleterm", "toggleterm.terminal" }, + config = function() + require "configs.toggleterm" + end, + }, + + -- Commenting + ["numToStr/Comment.nvim"] = { + module = { "Comment", "Comment.api" }, + keys = { "gc", "gb", "g<", "g>" }, + config = function() + require "configs.Comment" + end, + }, + + -- Indentation + ["lukas-reineke/indent-blankline.nvim"] = { + event = "BufRead", + config = function() + require "configs.indent-line" + end, + }, + + -- Keymaps popup + ["folke/which-key.nvim"] = { + module = "which-key", + config = function() + require "configs.which-key" + end, + }, + + -- Smooth scrolling + ["declancm/cinnamon.nvim"] = { + event = { "BufRead", "BufNewFile" }, + config = function() + require "configs.cinnamon" + end, + }, + + -- Smooth escaping + ["max397574/better-escape.nvim"] = { + event = "InsertCharPre", + config = function() + require "configs.better_escape" + end, + }, + + -- Get extra JSON schemas + ["b0o/SchemaStore.nvim"] = { module = "schemastore" }, + + -- Session manager + ["Shatur/neovim-session-manager"] = { + module = "session_manager", + cmd = "SessionManager", + event = "BufWritePost", + config = function() + require "configs.session_manager" + end, + }, +} + +if astronvim.updater.snapshot then + for plugin, options in pairs(astro_plugins) do + local pin = astronvim.updater.snapshot[plugin:match "/([^/]*)$"] + options.commit = pin and pin.commit or options.commit + end +end + +local user_plugin_opts = astronvim.user_plugin_opts +local packer = astronvim.initialize_packer() +packer.startup { + function(use) + for key, plugin in pairs(user_plugin_opts("plugins.init", astro_plugins)) do + if type(key) == "string" and not plugin[1] then + plugin[1] = key + end + use(plugin) + end + end, + config = user_plugin_opts("plugins.packer", { + compile_path = astronvim.default_compile_path, + display = { + open_fn = function() + return require("packer.util").float { border = "rounded" } + end, + }, + profile = { + enable = true, + threshold = 0.0001, + }, + git = { + clone_timeout = 300, + subcommands = { + update = "pull --rebase", + }, + }, + auto_clean = true, + compile_on_sync = true, + }), +} + +astronvim.compiled() diff --git a/config/nvim/lua/core/status.lua b/config/nvim/lua/core/status.lua new file mode 100644 index 0000000..b0a2804 --- /dev/null +++ b/config/nvim/lua/core/status.lua @@ -0,0 +1,122 @@ +local M = { hl = {}, provider = {}, conditional = {} } +local C = require "default_theme.colors" + +local function hl_by_name(name) + return string.format("#%06x", vim.api.nvim_get_hl_by_name(name.group, true)[name.prop]) +end + +local function hl_prop(group, prop) + local status_ok, color = pcall(hl_by_name, { group = group, prop = prop }) + return status_ok and color or nil +end + +M.modes = { + ["n"] = { "NORMAL", "Normal", C.blue }, + ["no"] = { "N-PENDING", "Normal", C.blue }, + ["i"] = { "INSERT", "Insert", C.green }, + ["ic"] = { "INSERT", "Insert", C.green }, + ["t"] = { "TERMINAL", "Insert", C.green }, + ["v"] = { "VISUAL", "Visual", C.purple }, + ["V"] = { "V-LINE", "Visual", C.purple }, + [""] = { "V-BLOCK", "Visual", C.purple }, + ["R"] = { "REPLACE", "Replace", C.red_1 }, + ["Rv"] = { "V-REPLACE", "Replace", C.red_1 }, + ["s"] = { "SELECT", "Visual", C.orange_1 }, + ["S"] = { "S-LINE", "Visual", C.orange_1 }, + [""] = { "S-BLOCK", "Visual", C.orange_1 }, + ["c"] = { "COMMAND", "Command", C.yellow_1 }, + ["cv"] = { "COMMAND", "Command", C.yellow_1 }, + ["ce"] = { "COMMAND", "Command", C.yellow_1 }, + ["r"] = { "PROMPT", "Inactive", C.grey_7 }, + ["rm"] = { "MORE", "Inactive", C.grey_7 }, + ["r?"] = { "CONFIRM", "Inactive", C.grey_7 }, + ["!"] = { "SHELL", "Inactive", C.grey_7 }, +} + +function M.hl.group(hlgroup, base) + return vim.tbl_deep_extend( + "force", + base or {}, + { fg = hl_prop(hlgroup, "foreground"), bg = hl_prop(hlgroup, "background") } + ) +end + +function M.hl.fg(hlgroup, base) + return vim.tbl_deep_extend("force", base or {}, { fg = hl_prop(hlgroup, "foreground") }) +end + +function M.hl.mode(base) + local lualine_avail, lualine = pcall(require, "lualine.themes." .. (vim.g.colors_name or "default_theme")) + return function() + local lualine_opts = lualine_avail and lualine[M.modes[vim.fn.mode()][2]:lower()] + return M.hl.group( + "Feline" .. M.modes[vim.fn.mode()][2], + vim.tbl_deep_extend( + "force", + lualine_opts and type(lualine_opts.a) == "table" and lualine_opts.a + or { fg = C.bg_1, bg = M.modes[vim.fn.mode()][3] }, + base or {} + ) + ) + end +end + +function M.provider.lsp_progress() + local Lsp = vim.lsp.util.get_progress_messages()[1] + return Lsp + and string.format( + " %%<%s %s %s (%s%%%%) ", + ((Lsp.percentage or 0) >= 70 and { "", "", "" } or { "", "", "" })[math.floor( + vim.loop.hrtime() / 12e7 + ) % 3 + 1], + Lsp.title or "", + Lsp.message or "", + Lsp.percentage or 0 + ) + or "" +end + +function M.provider.lsp_client_names(expand_null_ls) + return function() + local buf_client_names = {} + for _, client in pairs(vim.lsp.buf_get_clients(0)) do + if client.name == "null-ls" and expand_null_ls then + vim.list_extend(buf_client_names, astronvim.null_ls_sources(vim.bo.filetype, "FORMATTING")) + vim.list_extend(buf_client_names, astronvim.null_ls_sources(vim.bo.filetype, "DIAGNOSTICS")) + else + table.insert(buf_client_names, client.name) + end + end + return table.concat(buf_client_names, ", ") + end +end + +function M.provider.treesitter_status() + local ts = vim.treesitter.highlighter.active[vim.api.nvim_get_current_buf()] + return (ts and next(ts)) and " 綠TS" or "" +end + +function M.provider.spacer(n) + return string.rep(" ", n or 1) +end + +function M.conditional.git_available() + return vim.b.gitsigns_head ~= nil +end + +function M.conditional.git_changed() + local git_status = vim.b.gitsigns_status_dict + return git_status and (git_status.added or 0) + (git_status.removed or 0) + (git_status.changed or 0) > 0 +end + +function M.conditional.has_filetype() + return vim.fn.empty(vim.fn.expand "%:t") ~= 1 and vim.bo.filetype and vim.bo.filetype ~= "" +end + +function M.conditional.bar_width(n) + return function() + return (vim.opt.laststatus:get() == 3 and vim.opt.columns:get() or vim.fn.winwidth(0)) > (n or 80) + end +end + +return M diff --git a/config/nvim/lua/core/ui.lua b/config/nvim/lua/core/ui.lua new file mode 100644 index 0000000..63a7f7e --- /dev/null +++ b/config/nvim/lua/core/ui.lua @@ -0,0 +1,143 @@ +local ui = {} + +function ui.nui_input() + -- Set up NUI for UI Input + -- From: https://github.com/MunifTanjim/nui.nvim/wiki/vim.ui#vimuiinput + local input_ui + vim.ui.input = function(opts, on_confirm) + local Input = require "nui.input" + local event = require("nui.utils.autocmd").event + if input_ui then + -- ensure single ui.input operation + vim.api.nvim_err_writeln "busy: another input is pending!" + return + end + + local function on_done(value) + if input_ui then + -- if it's still mounted, unmount it + input_ui:unmount() + end + -- pass the input value + on_confirm(value) + -- indicate the operation is done + input_ui = nil + end + + local border_top_text = opts.prompt or "[Input]" + local default_value = opts.default + + input_ui = Input({ + relative = "cursor", + position = { + row = 1, + col = 0, + }, + size = { + -- minimum width 20 + width = math.max(20, type(default_value) == "string" and #default_value or 0), + }, + border = { + style = "rounded", + highlight = "Normal", + text = { + top = border_top_text, + top_align = "left", + }, + }, + win_options = { + winhighlight = "Normal:Normal", + }, + }, { + default_value = default_value, + on_close = function() + on_done(nil) + end, + on_submit = function(value) + on_done(value) + end, + }) + + input_ui:mount() + + -- cancel operation if cursor leaves input + input_ui:on(event.BufLeave, function() + on_done(nil) + end, { once = true }) + + -- cancel operation if is pressed + input_ui:map("n", "", function() + on_done(nil) + end, { noremap = true, nowait = true }) + end +end + +function ui.telescope_select() + -- Telescope UI selection + -- From: https://github.com/stevearc/dressing.nvim/blob/master/lua/dressing/select/telescope.lua + vim.ui.select = vim.schedule_wrap(function(items, opts, on_choice) + local themes = require "telescope.themes" + local actions = require "telescope.actions" + local state = require "telescope.actions.state" + local pickers = require "telescope.pickers" + local finders = require "telescope.finders" + local conf = require("telescope.config").values + + if opts.format_item then + local format_item = opts.format_item + opts.format_item = function(item) + return tostring(format_item(item)) + end + else + opts.format_item = tostring + end + + local entry_maker = function(item) + local formatted = opts.format_item(item) + return { + display = formatted, + ordinal = formatted, + value = item, + } + end + + local picker_opts = themes.get_dropdown() + + pickers.new(picker_opts, { + prompt_title = opts.prompt, + previewer = false, + finder = finders.new_table { + results = items, + entry_maker = entry_maker, + }, + sorter = conf.generic_sorter(opts), + attach_mappings = function(prompt_bufnr) + actions.select_default:replace(function() + local selection = state.get_selected_entry() + actions.close(prompt_bufnr) + if not selection then + -- User did not select anything. + on_choice(nil, nil) + return + end + local idx = nil + for i, item in ipairs(items) do + if item == selection.value then + idx = i + break + end + end + on_choice(selection.value, idx) + end) + + actions.close:enhance { post = function() end } + + return true + end, + }):find() + end) +end + +for ui_addition, enabled in pairs(astronvim.user_plugin_opts("ui", { nui_input = true, telescope_select = true })) do + astronvim.conditional_func(ui[ui_addition], enabled) +end diff --git a/config/nvim/lua/core/utils/git.lua b/config/nvim/lua/core/utils/git.lua new file mode 100644 index 0000000..3e0e329 --- /dev/null +++ b/config/nvim/lua/core/utils/git.lua @@ -0,0 +1,101 @@ +local git = { url = "https://github.com/" } + +function git.cmd(args, ...) + return astronvim.cmd("git -C " .. astronvim.install.home .. " " .. args, ...) +end + +function git.is_repo() + return git.cmd("rev-parse --is-inside-work-tree", false) +end + +function git.fetch(remote, ...) + return git.cmd("fetch " .. remote, ...) +end + +function git.pull(...) + return git.cmd("pull --rebase", ...) +end + +function git.checkout(dest, ...) + return git.cmd("checkout " .. dest, ...) +end + +function git.hard_reset(dest, ...) + return git.cmd("reset --hard " .. dest, ...) +end + +function git.branch_contains(remote, branch, commit, ...) + return git.cmd("merge-base --is-ancestor " .. commit .. " " .. remote .. "/" .. branch, ...) ~= nil +end + +function git.remote_add(remote, url, ...) + return git.cmd("remote add " .. remote .. " " .. url, ...) +end + +function git.remote_update(remote, url, ...) + return git.cmd("remote set-url " .. remote .. " " .. url, ...) +end + +function git.remote_url(remote, ...) + return astronvim.trim_or_nil(git.cmd("remote get-url " .. remote, ...)) +end + +function git.current_version(...) + return astronvim.trim_or_nil(git.cmd("describe --tags", ...)) +end + +function git.current_branch(...) + return astronvim.trim_or_nil(git.cmd("rev-parse --abbrev-ref HEAD", ...)) +end + +function git.local_head(...) + return astronvim.trim_or_nil(git.cmd("rev-parse HEAD", ...)) +end + +function git.remote_head(remote, branch, ...) + return astronvim.trim_or_nil(git.cmd("rev-list -n 1 " .. remote .. "/" .. branch, ...)) +end + +function git.tag_commit(tag, ...) + return astronvim.trim_or_nil(git.cmd("rev-list -n 1 " .. tag, ...)) +end + +function git.get_commit_range(start_hash, end_hash, ...) + local log = git.cmd("log --no-merges --pretty='format:[%h] %s' " .. start_hash .. ".." .. end_hash, ...) + return log and vim.fn.split(log, "\n") or {} +end + +function git.get_versions(search, ...) + local tags = git.cmd("tag -l --sort=version:refname '" .. (search == "latest" and "v*" or search) .. "'", ...) + return tags and vim.fn.split(tags, "\n") or {} +end + +function git.latest_version(versions, ...) + versions = versions and versions or git.get_versions(...) + return versions[#versions] +end + +function git.parse_remote_url(str) + return vim.fn.match(str, astronvim.url_matcher) == -1 + and git.url .. str .. (vim.fn.match(str, "/") == -1 and "/AstroNvim.git" or ".git") + or str +end + +function git.breaking_changes(commits) + return vim.tbl_filter(function(v) + return vim.fn.match(v, "\\[.*\\]\\s\\+\\w\\+\\((\\w\\+)\\)\\?!:") ~= -1 + end, commits) +end + +function git.pretty_changelog(commits) + local changelog = {} + for _, commit in ipairs(commits) do + local hash, type, msg = commit:match "(%[.*%])(.*:)(.*)" + if hash and type and msg then + vim.list_extend(changelog, { { hash, "DiffText" }, { type, "Typedef" }, { msg }, { "\n" } }) + end + end + return changelog +end + +return git diff --git a/config/nvim/lua/core/utils/init.lua b/config/nvim/lua/core/utils/init.lua new file mode 100644 index 0000000..812ae66 --- /dev/null +++ b/config/nvim/lua/core/utils/init.lua @@ -0,0 +1,299 @@ +_G.astronvim = {} +local stdpath = vim.fn.stdpath +local tbl_insert = table.insert +local map = vim.keymap.set + +astronvim.install = astronvim_installation or { home = stdpath "config" } + +local astronvim_config = stdpath("config"):gsub("nvim$", "astronvim") +vim.opt.rtp:append(astronvim_config) +local supported_configs = { astronvim.install.home, astronvim_config } + +local function load_module_file(module) + local found_module = nil + for _, config_path in ipairs(supported_configs) do + local module_path = config_path .. "/lua/" .. module:gsub("%.", "/") .. ".lua" + if vim.fn.filereadable(module_path) == 1 then + found_module = module_path + end + end + if found_module then + local status_ok, loaded_module = pcall(require, module) + if status_ok then + found_module = loaded_module + else + astronvim.notify("Error loading " .. found_module, "error") + end + end + return found_module +end + +astronvim.user_settings = load_module_file "user.init" +astronvim.default_compile_path = stdpath "data" .. "/packer_compiled.lua" +astronvim.user_terminals = {} +astronvim.url_matcher = + "\\v\\c%(%(h?ttps?|ftp|file|ssh|git)://|[a-z]+[@][a-z]+[.][a-z]+:)%([&:#*@~%_\\-=?!+;/0-9a-z]+%(%([.;/?]|[.][.]+)[&:#*@~%_\\-=?!+/0-9a-z]+|:\\d+|,%(%(%(h?ttps?|ftp|file|ssh|git)://|[a-z]+[@][a-z]+[.][a-z]+:)@![0-9a-z]+))*|\\([&:#*@~%_\\-=?!+;/.0-9a-z]*\\)|\\[[&:#*@~%_\\-=?!+;/.0-9a-z]*\\]|\\{%([&:#*@~%_\\-=?!+;/.0-9a-z]*|\\{[&:#*@~%_\\-=?!+;/.0-9a-z]*})\\})+" + +local function func_or_extend(overrides, default, extend) + if extend then + if type(overrides) == "table" then + default = vim.tbl_deep_extend("force", default, overrides) + elseif type(overrides) == "function" then + default = overrides(default) + end + elseif overrides ~= nil then + default = overrides + end + return default +end + +function astronvim.conditional_func(func, condition, ...) + if (condition == nil and true or condition) and type(func) == "function" then + return func(...) + end +end + +function astronvim.trim_or_nil(str) + return type(str) == "string" and vim.trim(str) or nil +end + +function astronvim.notify(msg, type, opts) + vim.notify(msg, type, vim.tbl_deep_extend("force", { title = "AstroNvim" }, opts or {})) +end + +function astronvim.echo(messages) + messages = messages or { { "\n" } } + if type(messages) == "table" then + vim.api.nvim_echo(messages, false, {}) + end +end + +function astronvim.confirm_prompt(messages) + if messages then + astronvim.echo(messages) + end + local confirmed = string.lower(vim.fn.input "(y/n) ") == "y" + astronvim.echo() + astronvim.echo() + return confirmed +end + +local function user_setting_table(module) + local settings = astronvim.user_settings or {} + for tbl in string.gmatch(module, "([^%.]+)") do + settings = settings[tbl] + if settings == nil then + break + end + end + return settings +end + +function astronvim.initialize_packer() + local packer_avail, packer = pcall(require, "packer") + if not packer_avail then + local packer_path = stdpath "data" .. "/site/pack/packer/start/packer.nvim" + vim.fn.delete(packer_path, "rf") + vim.fn.system { + "git", + "clone", + "--depth", + "1", + "https://github.com/wbthomason/packer.nvim", + packer_path, + } + astronvim.echo { { "Initializing Packer...\n\n" } } + vim.cmd "packadd packer.nvim" + packer_avail, packer = pcall(require, "packer") + if not packer_avail then + vim.api.nvim_err_writeln("Failed to load packer at:" .. packer_path .. "\n\n" .. packer) + end + end + return packer +end + +function astronvim.vim_opts(options) + for scope, table in pairs(options) do + for setting, value in pairs(table) do + vim[scope][setting] = value + end + end +end + +function astronvim.user_plugin_opts(module, default, extend, prefix) + if extend == nil then + extend = true + end + default = default or {} + local user_settings = load_module_file((prefix or "user") .. "." .. module) + if user_settings == nil and prefix == nil then + user_settings = user_setting_table(module) + end + if user_settings ~= nil then + default = func_or_extend(user_settings, default, extend) + end + return default +end + +function astronvim.compiled() + local run_me, _ = loadfile( + astronvim.user_plugin_opts("plugins.packer", { compile_path = astronvim.default_compile_path }).compile_path + ) + if run_me then + run_me() + else + astronvim.echo { { "Please run " }, { ":PackerSync", "Title" } } + end +end + +function astronvim.url_opener() + if vim.fn.has "mac" == 1 then + vim.fn.jobstart({ "open", vim.fn.expand "" }, { detach = true }) + elseif vim.fn.has "unix" == 1 then + vim.fn.jobstart({ "xdg-open", vim.fn.expand "" }, { detach = true }) + else + astronvim.notify("gx is not supported on this OS!", "error") + end +end + +-- term_details can be either a string for just a command or +-- a complete table to provide full access to configuration when calling Terminal:new() +function astronvim.toggle_term_cmd(term_details) + if type(term_details) == "string" then + term_details = { cmd = term_details, hidden = true } + end + local term_key = term_details.cmd + if vim.v.count > 0 and term_details.count == nil then + term_details.count = vim.v.count + term_key = term_key .. vim.v.count + end + if astronvim.user_terminals[term_key] == nil then + astronvim.user_terminals[term_key] = require("toggleterm.terminal").Terminal:new(term_details) + end + astronvim.user_terminals[term_key]:toggle() +end + +function astronvim.add_cmp_source(source) + local cmp_avail, cmp = pcall(require, "cmp") + if cmp_avail then + local config = cmp.get_config() + tbl_insert(config.sources, source) + cmp.setup(config) + end +end + +function astronvim.get_user_cmp_source(source) + source = type(source) == "string" and { name = source } or source + local priority = astronvim.user_plugin_opts("cmp.source_priority", { + nvim_lsp = 1000, + luasnip = 750, + buffer = 500, + path = 250, + })[source.name] + if priority then + source.priority = priority + end + return source +end + +function astronvim.add_user_cmp_source(source) + astronvim.add_cmp_source(astronvim.get_user_cmp_source(source)) +end + +function astronvim.null_ls_providers(filetype) + local registered = {} + local sources_avail, sources = pcall(require, "null-ls.sources") + if sources_avail then + for _, source in ipairs(sources.get_available(filetype)) do + for method in pairs(source.methods) do + registered[method] = registered[method] or {} + tbl_insert(registered[method], source.name) + end + end + end + return registered +end + +function astronvim.null_ls_sources(filetype, source) + local methods_avail, methods = pcall(require, "null-ls.methods") + return methods_avail and astronvim.null_ls_providers(filetype)[methods.internal[source]] or {} +end + +function astronvim.alpha_button(sc, txt) + local sc_ = sc:gsub("%s", ""):gsub("LDR", "") + if vim.g.mapleader then + sc = sc:gsub("LDR", vim.g.mapleader == " " and "SPC" or vim.g.mapleader) + end + return { + type = "button", + val = txt, + on_press = function() + local key = vim.api.nvim_replace_termcodes(sc_, true, false, true) + vim.api.nvim_feedkeys(key, "normal", false) + end, + opts = { + position = "center", + text = txt, + shortcut = sc, + cursor = 5, + width = 36, + align_shortcut = "right", + hl = "DashboardCenter", + hl_shortcut = "DashboardShortcut", + }, + } +end + +function astronvim.is_available(plugin) + return packer_plugins ~= nil and packer_plugins[plugin] ~= nil +end + +function astronvim.set_mappings(map_table, base) + for mode, maps in pairs(map_table) do + for keymap, options in pairs(maps) do + if options then + local cmd = options + if type(options) == "table" then + cmd = options[1] + options[1] = nil + else + options = {} + end + map(mode, keymap, cmd, vim.tbl_deep_extend("force", options, base or {})) + end + end + end +end + +function astronvim.delete_url_match() + for _, match in ipairs(vim.fn.getmatches()) do + if match.group == "HighlightURL" then + vim.fn.matchdelete(match.id) + end + end +end + +function astronvim.set_url_match() + astronvim.delete_url_match() + if vim.g.highlighturl_enabled then + vim.fn.matchadd("HighlightURL", astronvim.url_matcher, 15) + end +end + +function astronvim.toggle_url_match() + vim.g.highlighturl_enabled = not vim.g.highlighturl_enabled + astronvim.set_url_match() +end + +function astronvim.cmd(cmd, show_error) + local result = vim.fn.system(cmd) + local success = vim.api.nvim_get_vvar "shell_error" == 0 + if not success and (show_error == nil and true or show_error) then + vim.api.nvim_err_writeln("Error running command: " .. cmd .. "\nError message:\n" .. result) + end + return success and result or nil +end + +require "core.utils.updater" + +return astronvim diff --git a/config/nvim/lua/core/utils/updater.lua b/config/nvim/lua/core/utils/updater.lua new file mode 100644 index 0000000..f2e6f97 --- /dev/null +++ b/config/nvim/lua/core/utils/updater.lua @@ -0,0 +1,160 @@ +local fn = vim.fn +local git = require "core.utils.git" +local options = astronvim.user_plugin_opts( + "updater", + { remote = "origin", branch = "main", channel = "nightly", show_changelog = true } +) + +if astronvim.install.is_stable ~= nil then + options.channel = astronvim.install.is_stable and "stable" or "nightly" +end + +astronvim.updater = { options = options } +if options.pin_plugins == nil and options.channel == "stable" or options.pin_plugins then + local loaded, snapshot = pcall(fn.readfile, astronvim.install.home .. "/packer_snapshot") + if loaded then + loaded, snapshot = pcall(fn.json_decode, snapshot) + astronvim.updater.snapshot = type(snapshot) == "table" and snapshot or nil + end + if not loaded then + vim.api.nvim_err_writeln "Error loading packer snapshot" + end +end + +function astronvim.updater.version() + local version = astronvim.install.version or git.current_version(false) + if version then + astronvim.notify("Version: " .. version) + end +end + +local function attempt_update(target) + if options.channel == "stable" or options.commit then + return git.checkout(target, false) + else + return git.pull(false) + end +end + +local cancelled_message = { { "Update cancelled", "WarningMsg" } } + +function astronvim.updater.update() + if not git.is_repo() then + astronvim.notify("Updater not available for non-git installations", "error") + return + end + for remote, entry in pairs(options.remotes and options.remotes or {}) do + local url = git.parse_remote_url(entry) + local current_url = git.remote_url(remote, false) + local check_needed = false + if not current_url then + git.remote_add(remote, url) + check_needed = true + elseif + current_url ~= url + and astronvim.confirm_prompt { + { "Remote " }, + { remote, "Title" }, + { " is currently set to " }, + { current_url, "WarningMsg" }, + { "\nWould you like us to set it to " }, + { url, "String" }, + { "?" }, + } + then + git.remote_update(remote, url) + check_needed = true + end + if check_needed and git.remote_url(remote, false) ~= url then + vim.api.nvim_err_writeln("Error setting up remote " .. remote .. " to " .. url) + return + end + end + local is_stable = options.channel == "stable" + options.branch = is_stable and "main" or options.branch + if not git.fetch(options.remote) then + vim.api.nvim_err_writeln("Error fetching remote: " .. options.remote) + return + end + local local_branch = (options.remote == "origin" and "" or (options.remote .. "_")) .. options.branch + if git.current_branch() ~= local_branch then + astronvim.echo { + { "Switching to branch: " }, + { options.remote .. "/" .. options.branch .. "\n\n", "String" }, + } + if not git.checkout(local_branch, false) then + git.checkout("-b " .. local_branch .. " " .. options.remote .. "/" .. options.branch, false) + end + end + if git.current_branch() ~= local_branch then + vim.api.nvim_err_writeln("Error checking out branch: " .. options.remote .. "/" .. options.branch) + return + end + local source = git.local_head() -- calculate current commit + local target -- calculate target commit + if is_stable then -- if stable get tag commit + options.version = git.latest_version(git.get_versions(options.version or "latest")) + target = git.tag_commit(options.version) + elseif options.commit then -- if commit specified use it + target = git.branch_contains(options.remote, options.branch, options.commit) and options.commit or nil + else -- get most recent commit + target = git.remote_head(options.remote, options.branch) + end + if not source or not target then -- continue if current and target commits were found + vim.api.nvim_err_writeln "Error checking for updates" + return + elseif source == target then + astronvim.echo { { "No updates available", "String" } } + return + elseif -- prompt user if they want to accept update + not options.skip_prompts + and not astronvim.confirm_prompt { + { "Update available to ", "Title" }, + { is_stable and options.version or target, "String" }, + { "\nContinue?" }, + } + then + astronvim.echo(cancelled_message) + return + else -- perform update + local changelog = git.get_commit_range(source, target) + local breaking = git.breaking_changes(changelog) + local breaking_prompt = { { "Update contains the following breaking changes:\n", "WarningMsg" } } + vim.list_extend(breaking_prompt, git.pretty_changelog(breaking)) + vim.list_extend(breaking_prompt, { { "\nWould you like to continue?" } }) + if #breaking > 0 and not options.skip_prompts and not astronvim.confirm_prompt(breaking_prompt) then + astronvim.echo(cancelled_message) + return + end + local updated = attempt_update(target) + if + not updated + and not options.skip_prompts + and not astronvim.confirm_prompt { + { "Unable to pull due to local modifications to base files.\n", "ErrorMsg" }, + { "Reset local files and continue?" }, + } + then + astronvim.echo(cancelled_message) + return + elseif not updated then + git.hard_reset(source) + updated = attempt_update(target) + end + if not updated then + vim.api.nvim_err_writeln "Error ocurred performing update" + return + end + local summary = { + { "AstroNvim updated successfully to ", "Title" }, + { git.current_version(), "String" }, + { "!\n", "Title" }, + { "Please restart and run :PackerSync.\n\n", "WarningMsg" }, + } + if options.show_changelog and #changelog > 0 then + vim.list_extend(summary, { { "Changelog:\n", "Title" } }) + vim.list_extend(summary, git.pretty_changelog(changelog)) + end + astronvim.echo(summary) + end +end diff --git a/config/nvim/lua/default_theme/base.lua b/config/nvim/lua/default_theme/base.lua new file mode 100644 index 0000000..b33d4de --- /dev/null +++ b/config/nvim/lua/default_theme/base.lua @@ -0,0 +1,89 @@ +local base = { + Normal = { fg = C.fg, bg = C.bg }, + Comment = { fg = C.grey_2, bg = C.none }, + Constant = { fg = C.yellow, bg = C.none }, + String = { fg = C.green, bg = C.none }, + Character = { fg = C.green, bg = C.none }, + Number = { fg = C.orange, bg = C.none }, + Boolean = { fg = C.blue, bg = C.none }, + Float = { fg = C.yellow, bg = C.none }, + Identifier = { fg = C.blue, bg = C.none }, + Function = { fg = C.yellow, bg = C.none }, + Statement = { fg = C.purple, bg = C.none }, + Conditional = { fg = C.purple_1, bg = C.none }, + Repeat = { fg = C.purple, bg = C.none }, + Label = { fg = C.blue, bg = C.none }, + Operator = { fg = C.purple, bg = C.none }, + Keyword = { fg = C.purple, bg = C.none }, + Exception = { fg = C.purple, bg = C.none }, + Preproc = { fg = C.yellow, bg = C.none }, + Include = { fg = C.purple, bg = C.none }, + Define = { fg = C.purple, bg = C.none }, + Title = { fg = C.cyan, bg = C.none }, + Macro = { fg = C.purple, bg = C.none }, + PreCondit = { fg = C.blue, bg = C.none }, + Type = { fg = C.blue, bg = C.none }, + StorageClass = { fg = C.blue, bg = C.none }, + Structure = { fg = C.yellow, bg = C.none }, + Typedef = { fg = C.yellow, bg = C.none }, + Special = { fg = C.blue, bg = C.none }, + SpecialComment = { fg = C.grey, bg = C.none }, + Error = { fg = C.red, bg = C.none }, + Todo = { fg = C.purple, bg = C.none }, + Underlined = { fg = C.cyan, bg = C.none }, + Cursor = { fg = C.none, bg = C.none }, + ColorColumn = { fg = C.none, bg = C.grey_4 }, + CursorLineNr = { fg = C.fg, bg = C.none }, + Conceal = { fg = C.grey, bg = C.none }, + CursorColumn = { fg = C.none, bg = C.grey_4 }, + CursorLine = { fg = C.none, bg = C.grey_8 }, + Directory = { fg = C.blue, bg = C.none }, + DiffAdd = { fg = C.grey_3, bg = C.green }, + DiffChange = { fg = C.yellow, bg = C.none }, + DiffDelete = { fg = C.grey_3, bg = C.red }, + DiffText = { fg = C.grey_3, bg = C.yellow }, + ErrorMsg = { fg = C.red, bg = C.none }, + VertSplit = { fg = C.black, bg = C.none }, + Folded = { fg = C.grey, bg = C.none }, + FoldColumn = { fg = C.none, bg = C.none }, + IncSearch = { fg = C.yellow, bg = C.grey }, + LineNr = { fg = C.grey_1, bg = C.none }, + NonText = { fg = C.grey_1, bg = C.none }, + Pmenu = { fg = C.fg, bg = C.black_1 }, + PmenuSel = { fg = C.none, bg = C.grey_4 }, + PmenuSbar = { fg = C.none, bg = C.grey_3 }, + PmenuThumb = { fg = C.none, bg = C.fg }, + Question = { fg = C.purple, bg = C.none }, + QuickFixLine = { fg = C.grey_3, bg = C.yellow }, + Search = { fg = C.grey_3, bg = C.yellow }, + SignColumn = { fg = C.none, bg = C.none }, + SpecialKey = { fg = C.grey_1, bg = C.none }, + SpellBad = { fg = C.red, bg = C.none }, + SpellCap = { fg = C.yellow, bg = C.none }, + SpellLocal = { fg = C.yellow, bg = C.none }, + SpellRare = { fg = C.yellow, bg = C.none }, + StatusLine = { fg = C.fg, bg = C.grey_4 }, + StatusLineNC = { fg = C.grey, bg = C.none }, + StatusLineTerm = { fg = C.fg, bg = C.grey_4 }, + StatusLineTermNC = { fg = C.grey_4, bg = C.none }, + TabLine = { fg = C.grey, bg = C.none }, + TabLineSel = { fg = C.fg, bg = C.none }, + TabLineFill = { fg = C.none, bg = C.grey_3 }, + Terminal = { fg = C.fg, bg = C.grey_3 }, + Visual = { fg = C.none, bg = C.grey_5 }, + VisualNOS = { fg = C.grey_5, bg = C.none }, + WarningMsg = { fg = C.yellow, bg = C.none }, + WildMenu = { fg = C.grey_3, bg = C.blue }, + EndOfBuffer = { fg = C.bg, bg = C.none }, + CmpItemAbbrDefault = { fg = C.fg }, + CmpItemAbbrDeprecatedDefault = { fg = C.grey_2 }, + CmpItemAbbrMatchDefault = { fg = C.white }, + CmpItemAbbrMatchFuzzyDefault = { fg = C.white }, + CmpItemKind = { fg = C.yellow }, + CmpItemAbbr = { fg = C.fg }, + CmpItemMenuDefault = { fg = C.fg }, + FloatBorder = { bg = C.none }, + MatchParen = { fg = C.none, bg = C.grey_5 }, +} + +return base diff --git a/config/nvim/lua/default_theme/colors.lua b/config/nvim/lua/default_theme/colors.lua new file mode 100644 index 0000000..f065f57 --- /dev/null +++ b/config/nvim/lua/default_theme/colors.lua @@ -0,0 +1,76 @@ +local colors = { + none = "NONE", + fg = "#abb2bf", + bg = "", + bg_1 = "#303742", + black = "#181a1f", + black_1 = "#1f1f25", + green = "#98c379", + green_1 = "#89b06d", + green_2 = "#95be76", + white = "#dedede", + white_1 = "#afb2bb", + white_2 = "#c9c9c9", + blue = "#61afef", + blue_1 = "#40d9ff", + blue_2 = "#1b1f27", + blue_3 = "#8094B4", + orange = "#d19a66", + orange_1 = "#ff9640", + orange_2 = "#ff8800", + yellow = "#e5c07b", + yellow_1 = "#ebae34", + yellow_2 = "#d1b071", + red = "#e06c75", + red_1 = "#ec5f67", + red_2 = "#ffbba6", + red_3 = "#cc626a", + red_4 = "#d47d85", + grey = "#5c6370", + grey_1 = "#4b5263", + grey_2 = "#777d86", + grey_3 = "#282c34", + grey_4 = "#2c323c", + grey_5 = "#3e4452", + grey_6 = "#3b4048", + grey_7 = "#5c5c5c", + grey_8 = "#252931", + grey_9 = "#787e87", + grey_10 = "#D3D3D3", + gold = "#ffcc00", + cyan = "#56b6c2", + purple = "#c678dd", + purple_1 = "#a9a1e1", + + -- icon colors + c = "#519aba", + css = "#61afef", + deb = "#a1b7ee", + docker = "#384d54", + html = "#de8c92", + jpeg = "#c882e7", + jpg = "#c882e7", + js = "#ebcb8b", + jsx = "#519ab8", + kt = "#7bc99c", + lock = "#c4c720", + lua = "#51a0cf", + mp3 = "#d39ede", + mp4 = "#9ea3de", + out = "#abb2bf", + png = "#c882e7", + py = "#a3b8ef", + rb = "#ff75a0", + robots = "#abb2bf", + rpm = "#fca2aa", + rs = "#dea584", + toml = "#39bf39", + ts = "#519aba", + ttf = "#abb2bf", + vue = "#7bc99c", + woff = "#abb2bf", + woff2 = "#abb2bf", + zip = "#f9d71c", +} + +return astronvim.user_plugin_opts("default_theme.colors", colors) diff --git a/config/nvim/lua/default_theme/init.lua b/config/nvim/lua/default_theme/init.lua new file mode 100644 index 0000000..4bd5ff2 --- /dev/null +++ b/config/nvim/lua/default_theme/init.lua @@ -0,0 +1,49 @@ +vim.cmd "highlight clear" +if vim.fn.exists "syntax_on" then + vim.cmd "syntax reset" +end +vim.o.background = "dark" +vim.o.termguicolors = true +vim.g.colors_name = "default_theme" + +local user_plugin_opts = astronvim.user_plugin_opts +local utils = require "default_theme.utils" + +C = require "default_theme.colors" + +local highlights = {} + +for _, module in ipairs { "base", "treesitter", "lsp" } do + highlights = vim.tbl_deep_extend("force", highlights, require("default_theme." .. module)) +end + +for plugin, enabled in + pairs(user_plugin_opts("default_theme.plugins", { + aerial = true, + beacon = false, + bufferline = true, + dashboard = true, + gitsigns = true, + highlighturl = true, + hop = false, + indent_blankline = true, + lightspeed = false, + ["neo-tree"] = true, + notify = true, + ["nvim-tree"] = false, + ["nvim-web-devicons"] = true, + rainbow = true, + symbols_outline = false, + telescope = true, + vimwiki = false, + ["which-key"] = true, + })) +do + if enabled then + highlights = vim.tbl_deep_extend("force", highlights, require("default_theme.plugins." .. plugin)) + end +end + +for group, spec in pairs(user_plugin_opts("default_theme.highlights", highlights)) do + vim.api.nvim_set_hl(0, group, utils.parse_style(spec)) +end diff --git a/config/nvim/lua/default_theme/lsp.lua b/config/nvim/lua/default_theme/lsp.lua new file mode 100644 index 0000000..c801c9a --- /dev/null +++ b/config/nvim/lua/default_theme/lsp.lua @@ -0,0 +1,26 @@ +local utils = require "default_theme.utils" + +local lsp = { + DiagnosticError = utils.parse_diagnostic_style { fg = C.red_1 }, + DiagnosticHint = utils.parse_diagnostic_style { fg = C.yellow_1 }, + DiagnosticInfo = utils.parse_diagnostic_style { fg = C.white_2 }, + DiagnosticWarn = utils.parse_diagnostic_style { fg = C.orange_1 }, + DiagnosticInformation = { fg = C.yellow, bold = true }, + DiagnosticTruncateLine = { fg = C.white_1, bold = true }, + DiagnosticUnderlineError = { sp = C.red_2, undercurl = true }, + DiagnosticUnderlineHint = { sp = C.red_2, undercurl = true }, + DiagnosticUnderlineInfo = { sp = C.red_2, undercurl = true }, + DiagnosticUnderlineWarn = { sp = C.red_2, undercurl = true }, + LspDiagnosticsFloatingError = { fg = C.red_1 }, + LspDiagnosticsFloatingHint = { fg = C.yellow_1 }, + LspDiagnosticsFloatingInfor = { fg = C.white_2 }, + LspDiagnosticsFloatingWarn = { fg = C.orange_1 }, + LspFloatWinBorder = { fg = C.white_1 }, + LspFloatWinNormal = { fg = C.fg, bg = C.black_1 }, + LspReferenceRead = { fg = C.none, bg = C.grey_5 }, + LspReferenceText = { fg = C.none, bg = C.grey_5 }, + LspReferenceWrite = { fg = C.none, bg = C.grey_5 }, + ProviderTruncateLine = { fg = C.white_1 }, +} + +return lsp diff --git a/config/nvim/lua/default_theme/plugins/aerial.lua b/config/nvim/lua/default_theme/plugins/aerial.lua new file mode 100644 index 0000000..d4c4686 --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/aerial.lua @@ -0,0 +1,30 @@ +return { + AerialLine = { fg = C.yellow, bg = C.none }, + AerialGuide = { fg = C.grey_2 }, + AerialBooleanIcon = { link = "TSBoolean" }, + AerialClassIcon = { link = "TSType" }, + AerialConstantIcon = { link = "TSConstant" }, + AerialConstructorIcon = { link = "TSConstructor" }, + AerialFieldIcon = { link = "TSField" }, + AerialFunctionIcon = { link = "TSFunction" }, + AerialMethodIcon = { link = "TSMethod" }, + AerialNamespaceIcon = { link = "TSNamespace" }, + AerialNumberIcon = { link = "TSNumber" }, + AerialOperatorIcon = { link = "TSOperator" }, + AerialTypeParameterIcon = { link = "TSParameter" }, + AerialPropertyIcon = { link = "TSProperty" }, + AerialStringIcon = { link = "TSString" }, + AerialVariableIcon = { link = "TSConstant" }, + AerialEnumMemberIcon = { link = "TSField" }, + AerialEnumIcon = { link = "TSType" }, + AerialFileIcon = { link = "TSURI" }, + AerialModuleIcon = { link = "TSNamespace" }, + AerialPackageIcon = { link = "TSNamespace" }, + AerialInterfaceIcon = { link = "TSType" }, + AerialStructIcon = { link = "TSType" }, + AerialEventIcon = { link = "TSType" }, + AerialArrayIcon = { link = "TSConstant" }, + AerialObjectIcon = { link = "TSType" }, + AerialKeyIcon = { link = "TSType" }, + AerialNullIcon = { link = "TSType" }, +} diff --git a/config/nvim/lua/default_theme/plugins/beacon.lua b/config/nvim/lua/default_theme/plugins/beacon.lua new file mode 100644 index 0000000..43b34b8 --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/beacon.lua @@ -0,0 +1 @@ +return { Beacon = { bg = C.blue } } diff --git a/config/nvim/lua/default_theme/plugins/bufferline.lua b/config/nvim/lua/default_theme/plugins/bufferline.lua new file mode 100644 index 0000000..8dc2a2d --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/bufferline.lua @@ -0,0 +1,21 @@ +return { + BufferLineFill = { fg = C.grey_9, bg = C.grey_4 }, + BufferLineBackground = { fg = C.grey_9, bg = C.grey_4 }, + BufferLineBufferVisible = { fg = C.fg, bg = C.bg }, + BufferLineBufferSelected = { fg = C.white, bg = C.bg, bold = true }, + BufferLineTab = { fg = C.grey_9, bg = C.bg }, + BufferLineTabSelected = { fg = C.fg, bg = C.bg }, + BufferLineTabClose = { fg = C.red_4, bg = C.bg }, + BufferLineIndicatorSelected = { fg = C.bg, bg = C.bg }, + BufferLineSeparator = { fg = C.grey_4, bg = C.grey_4 }, + BufferLineSeparatorVisible = { fg = C.bg, bg = C.bg }, + BufferLineSeparatorSelected = { fg = C.grey_4, bg = C.grey_4 }, + BufferLineCloseButton = { fg = C.grey_9, bg = C.grey_4 }, + BufferLineCloseButtonVisible = { fg = C.grey_10, bg = C.bg }, + BufferLineCloseButtonSelected = { fg = C.red_4, bg = C.bg }, + BufferLineModified = { fg = C.red_4, bg = C.grey_4 }, + BufferLineModifiedVisible = { fg = C.fg, bg = C.bg }, + BufferLineModifiedSelected = { fg = C.green_2, bg = C.bg }, + BufferLineError = { fg = C.red_1, bg = C.red_1 }, + BufferLineErrorDiagnostic = { fg = C.red_1, bg = C.red_1 }, +} diff --git a/config/nvim/lua/default_theme/plugins/dashboard.lua b/config/nvim/lua/default_theme/plugins/dashboard.lua new file mode 100644 index 0000000..4aa0598 --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/dashboard.lua @@ -0,0 +1,6 @@ +return { + DashboardHeader = { fg = C.cyan }, + DashboardShortcut = { fg = C.yellow }, + DashboardFooter = { fg = C.cyan }, + DashboardCenter = { fg = C.blue }, +} diff --git a/config/nvim/lua/default_theme/plugins/gitsigns.lua b/config/nvim/lua/default_theme/plugins/gitsigns.lua new file mode 100644 index 0000000..7c2b159 --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/gitsigns.lua @@ -0,0 +1,7 @@ +return { + GitSignsAdd = { fg = C.green, bg = C.none }, + GitSignsChange = { fg = C.orange_1, bg = C.none }, + GitSignsDelete = { fg = C.red_1, bg = C.none }, + MoreMsg = { fg = C.green, bold = true }, + ModeMsg = { fg = C.grey, bold = true }, +} diff --git a/config/nvim/lua/default_theme/plugins/highlighturl.lua b/config/nvim/lua/default_theme/plugins/highlighturl.lua new file mode 100644 index 0000000..c69fdf0 --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/highlighturl.lua @@ -0,0 +1 @@ +return { HighlightURL = { underline = true } } diff --git a/config/nvim/lua/default_theme/plugins/hop.lua b/config/nvim/lua/default_theme/plugins/hop.lua new file mode 100644 index 0000000..7d3b1ac --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/hop.lua @@ -0,0 +1,6 @@ +return { + HopNextKey = { fg = C.red, bold = true }, + HopNextKey1 = { fg = C.cyan, bold = true }, + HopNextKey2 = { fg = C.blue }, + HopUnmatched = { fg = C.grey }, +} diff --git a/config/nvim/lua/default_theme/plugins/indent_blankline.lua b/config/nvim/lua/default_theme/plugins/indent_blankline.lua new file mode 100644 index 0000000..b79419a --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/indent_blankline.lua @@ -0,0 +1,7 @@ +return { + IndentBlanklineSpaceChar = { fg = C.grey_6, nocombine = true }, + IndentBlanklineChar = { fg = C.grey_6, nocombine = true }, + IndentBlanklineContextStart = { fg = C.grey_7, underline = true }, + IndentBlanklineContextChar = { fg = C.grey_7, nocombine = true }, + IndentBlanklineSpaceCharBlankline = { fg = C.grey_6, nocombine = true }, +} diff --git a/config/nvim/lua/default_theme/plugins/lightspeed.lua b/config/nvim/lua/default_theme/plugins/lightspeed.lua new file mode 100644 index 0000000..e891d61 --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/lightspeed.lua @@ -0,0 +1,14 @@ +return { + LightspeedLabel = { fg = C.red_3, underline = true }, + LightspeedLabelOverlapped = { fg = C.blue, underline = true }, + LightspeedLabelDistant = { fg = C.red_1, underline = true }, + LightspeedLabelDistantOverlapped = { fg = C.blue_1, underline = true }, + LightspeedShortcut = { fg = C.black, bg = C.red_3, bold = true, underline = true }, + LightspeedShortcutOverlapped = { fg = C.black, bg = C.blue, bold = true, underline = true }, + LightspeedMaskedChar = { fg = C.green_1 }, + LightspeedGreyWash = { fg = C.grey_2, bg = C.none }, + LightspeedUnlabeledMatch = { fg = C.white, bold = true }, + LightspeedOneCharMatch = { fg = C.green, bg = C.red_3, bold = true }, + LightspeedUniqueChar = { fg = C.white, bold = true }, + LightspeedPendingOpArea = { fg = C.yellow }, +} diff --git a/config/nvim/lua/default_theme/plugins/neo-tree.lua b/config/nvim/lua/default_theme/plugins/neo-tree.lua new file mode 100644 index 0000000..810e56b --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/neo-tree.lua @@ -0,0 +1,15 @@ +return { + NeoTreeDirectoryIcon = { fg = C.blue }, + NeoTreeRootName = { fg = C.fg, bold = true }, + NeoTreeFileName = { fg = C.fg }, + NeoTreeFileIcon = { fg = C.fg }, + NeoTreeFileNameOpened = { fg = C.green }, + NeoTreeIndentMarker = { fg = C.blue_3 }, + NeoTreeGitAdded = { fg = C.green }, + NeoTreeGitConflict = { fg = C.red }, + NeoTreeGitModified = { fg = C.orange }, + NeoTreeGitUntracked = { fg = C.yellow }, + NeoTreeNormal = { bg = C.blue_2 }, + NeoTreeNormalNC = { bg = C.blue_2 }, + NeoTreeSymbolicLinkTarget = { fg = C.cyan }, +} diff --git a/config/nvim/lua/default_theme/plugins/notify.lua b/config/nvim/lua/default_theme/plugins/notify.lua new file mode 100644 index 0000000..02f1b08 --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/notify.lua @@ -0,0 +1,24 @@ +return { + NotifyERRORBorder = { fg = C.red }, + NotifyWARNBorder = { fg = C.orange_1 }, + NotifyINFOBorder = { fg = C.green }, + NotifyDEBUGBorder = { fg = C.cyan }, + NotifyTRACERBorder = { fg = C.purple }, + NotifyERRORIcon = { fg = C.red }, + NotifyWARNIcon = { fg = C.orange_1 }, + NotifyINFOIcon = { fg = C.green }, + NotifyDEBUGIcon = { fg = C.cyan }, + NotifyTRACEIcon = { fg = C.purple }, + NotifyERRORTitle = { fg = C.red }, + NotifyWARNTitle = { fg = C.orange_1 }, + NotifyINFOTitle = { fg = C.green }, + NotifyDEBUGTitle = { fg = C.cyan }, + NotifyTRACETitle = { fg = C.purple }, + NotifyERRORBody = { fg = C.fg }, + NotifyWARNBody = { fg = C.fg }, + NotifyINFOBody = { fg = C.fg }, + NotifyDEBUGBody = { fg = C.fg }, + NotifyTRACEBody = { fg = C.fg }, + NotifyLogTime = { fg = C.grey_2 }, + NotifyLogTitle = { fg = C.blue }, +} diff --git a/config/nvim/lua/default_theme/plugins/nvim-tree.lua b/config/nvim/lua/default_theme/plugins/nvim-tree.lua new file mode 100644 index 0000000..48114ff --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/nvim-tree.lua @@ -0,0 +1,19 @@ +return { + NvimTreeFolderIcon = { fg = C.blue }, + NvimTreeExecFile = { fg = C.green }, + NvimTreeOpenedFile = { fg = C.green }, + NvimTreeRootFolder = { fg = C.bg }, + NvimTreeEndOfBuffer = { fg = C.bg }, + NvimTreeNormal = { bg = C.blue_2 }, + NvimTreeNormalNC = { bg = C.blue_2 }, + NvimTreeVertSplit = { fg = C.blue_2, bg = C.blue_2 }, + NvimTreeImageFile = { fg = C.purple }, + NvimTreeSymlink = { fg = C.cyan }, + NvimTreeSpecialFile = { fg = C.yellow }, + NvimTreeGitDeleted = { fg = C.red }, + NvimTreeGitMerge = { fg = C.orange }, + NvimTreeGitRenamed = { fg = C.purple }, + NvimTreeGitStaged = { fg = C.green }, + NvimTreeGitDirty = { fg = C.red }, + NvimTreeGitNew = { fg = C.yellow }, +} diff --git a/config/nvim/lua/default_theme/plugins/nvim-web-devicons.lua b/config/nvim/lua/default_theme/plugins/nvim-web-devicons.lua new file mode 100644 index 0000000..c0d6a3e --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/nvim-web-devicons.lua @@ -0,0 +1,31 @@ +return { + DevIconC = { fg = C.c }, + DevIconCss = { fg = C.css }, + DevIconDeb = { fg = C.deb }, + DevIconDockerfile = { fg = C.docker }, + DevIconHtml = { fg = C.html }, + DevIconJpeg = { fg = C.jpeg }, + DevIconJpg = { fg = C.jpg }, + DevIconJs = { fg = C.js }, + DevIconJsx = { fg = C.jsx }, + DevIconKotlin = { fg = C.kt }, + DevIconLock = { fg = C.lock }, + DevIconLua = { fg = C.lua }, + DevIconMp3 = { fg = C.mp3 }, + DevIconMp4 = { fg = C.mp4 }, + DevIconOut = { fg = C.out }, + DevIconPng = { fg = C.png }, + DevIconPy = { fg = C.py }, + DevIconRb = { fg = C.rb }, + DevIconRobots = { fg = C.robots }, + DevIconRpm = { fg = C.rpm }, + DevIconRs = { fg = C.rs }, + DevIconToml = { fg = C.toml }, + DevIconTrueTypeFont = { fg = C.ttf }, + DevIconTs = { fg = C.ts }, + DevIconVue = { fg = C.vue }, + DevIconWebOpenFontFormat = { fg = C.woff }, + DevIconWebOpenFontFormat2 = { fg = C.woff2 }, + DevIconXz = { fg = C.zip }, + DevIconZip = { fg = C.zip }, +} diff --git a/config/nvim/lua/default_theme/plugins/rainbow.lua b/config/nvim/lua/default_theme/plugins/rainbow.lua new file mode 100644 index 0000000..2165c07 --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/rainbow.lua @@ -0,0 +1,9 @@ +return { + rainbowcol1 = { fg = "Gold" }, + rainbowcol2 = { fg = "Orchid" }, + rainbowcol3 = { fg = "LightSkyBlue" }, + rainbowcol4 = { fg = "Gold" }, + rainbowcol5 = { fg = "Orchid" }, + rainbowcol6 = { fg = "LightSkyBlue" }, + rainbowcol7 = { fg = "Orchid" }, +} diff --git a/config/nvim/lua/default_theme/plugins/symbols_outline.lua b/config/nvim/lua/default_theme/plugins/symbols_outline.lua new file mode 100644 index 0000000..362e49e --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/symbols_outline.lua @@ -0,0 +1 @@ +return { FocusedSymbol = { fg = C.yellow, bg = C.none } } diff --git a/config/nvim/lua/default_theme/plugins/telescope.lua b/config/nvim/lua/default_theme/plugins/telescope.lua new file mode 100644 index 0000000..3d0a8f0 --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/telescope.lua @@ -0,0 +1,57 @@ +return { + TelescopeResultsTitle = { fg = C.green }, + TelescopePromptTitle = { fg = C.blue }, + TelescopePreviewTitle = { fg = C.purple }, + TelescopeResultsBorder = { fg = C.fg }, + TelescopePromptBorder = { fg = C.fg }, + TelescopePreviewBorder = { fg = C.fg }, + TelescopeSelectionCaret = { fg = C.red }, + TelescopeMatching = { fg = C.yellow }, + TelescopeSelection = { bg = C.grey_5 }, + TelescopeMultiSelection = { fg = C.blue }, + TelescopeMultiIcon = { fg = C.blue }, + TelescopeNormal = { fg = C.fg, bg = C.bg }, + TelescopePreviewNormal = { fg = C.fg, bg = C.bg }, + TelescopePromptNormal = { fg = C.fg, bg = C.bg }, + TelescopeResultsNormal = { fg = C.fg, bg = C.bg }, + TelescopeBorder = { fg = C.fg }, + TelescopeTitle = { fg = C.fg }, + TelescopePromptCounter = { fg = C.grey_1 }, + TelescopePromptPrefix = { fg = C.blue }, + TelescopePreviewLine = { bg = C.grey_5 }, + TelescopePreviewMatch = { fg = C.yellow }, + TelescopePreviewPipe = { fg = C.yellow }, + TelescopePreviewCharDev = { fg = C.yellow }, + TelescopePreviewDirectory = { fg = C.blue }, + TelescopePreviewBlock = { fg = C.yellow }, + TelescopePreviewLink = { fg = C.blue }, + TelescopePreviewSocket = { fg = C.purple }, + TelescopePreviewRead = { fg = C.yellow }, + TelescopePreviewWrite = { fg = C.purple }, + TelescopePreviewExecute = { fg = C.green }, + TelescopePreviewHyphen = { fg = C.grey_1 }, + TelescopePreviewSticky = { fg = C.blue }, + TelescopePreviewSize = { fg = C.green }, + TelescopePreviewUser = { fg = C.yellow }, + TelescopePreviewGroup = { fg = C.yellow }, + TelescopePreviewDate = { fg = C.blue }, + TelescopePreviewMessage = { fg = C.fg }, + TelescopePreviewMessageFillchar = { fg = C.fg }, + TelescopeResultsClass = { fg = C.yellow }, + TelescopeResultsConstant = { fg = C.yellow }, + TelescopeResultsField = { fg = C.red }, + TelescopeResultsFunction = { fg = C.blue }, + TelescopeResultsMethod = { fg = C.blue }, + TelescopeResultsOperator = { fg = C.cyan }, + TelescopeResultsStruct = { fg = C.purple }, + TelescopeResultsVariable = { fg = C.red }, + TelescopeResultsLineNr = { fg = C.grey_1 }, + TelescopeResultsIdentifier = { fg = C.blue }, + TelescopeResultsNumber = { fg = C.orange }, + TelescopeResultsComment = { fg = C.grey_2 }, + TelescopeResultsSpecialComment = { fg = C.grey }, + TelescopeResultsDiffChange = { fg = C.none, bg = C.yellow }, + TelescopeResultsDiffAdd = { fg = C.none, bg = C.green }, + TelescopeResultsDiffDelete = { fg = C.none, bg = C.red }, + TelescopeResultsDiffUntracked = { fg = C.none, bg = C.grey_1 }, +} diff --git a/config/nvim/lua/default_theme/plugins/vimwiki.lua b/config/nvim/lua/default_theme/plugins/vimwiki.lua new file mode 100644 index 0000000..b1936ed --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/vimwiki.lua @@ -0,0 +1,14 @@ +return { + VimwikiLink = { fg = C.cyan, bg = C.none }, + VimwikiHeaderChar = { fg = C.grey, bg = C.none }, + VimwikiHR = { fg = C.yellow, bg = C.none }, + VimwikiList = { fg = C.orange, bg = C.orange }, + VimwikiTag = { fg = C.orange, bg = C.orange }, + VimwikiMarkers = { fg = C.grey, bg = C.none }, + VimwikiHeader1 = { fg = C.orange, bg = C.none, bold = true }, + VimwikiHeader2 = { fg = C.green, bg = C.none, bold = true }, + VimwikiHeader3 = { fg = C.blue, bg = C.none, bold = true }, + VimwikiHeader4 = { fg = C.cyan, bg = C.none, bold = true }, + VimwikiHeader5 = { fg = C.yellow, bg = C.none, bold = true }, + VimwikiHeader6 = { fg = C.purple, bg = C.none, bold = true }, +} diff --git a/config/nvim/lua/default_theme/plugins/which-key.lua b/config/nvim/lua/default_theme/plugins/which-key.lua new file mode 100644 index 0000000..7bc6da2 --- /dev/null +++ b/config/nvim/lua/default_theme/plugins/which-key.lua @@ -0,0 +1,5 @@ +return { + WhichKeyFloat = { fg = C.fg }, + WhichKeyDesc = { fg = C.blue }, + WhichKeyGroup = { fg = C.blue }, +} diff --git a/config/nvim/lua/default_theme/treesitter.lua b/config/nvim/lua/default_theme/treesitter.lua new file mode 100644 index 0000000..c5ea515 --- /dev/null +++ b/config/nvim/lua/default_theme/treesitter.lua @@ -0,0 +1,59 @@ +local treesitter = { + TSError = { fg = C.red }, + TSPunctDelimiter = { fg = C.fg }, + TSPunctBracket = { fg = C.fg }, + TSPunctSpecial = { fg = C.fg }, + TSConstant = { fg = C.yellow }, + TSConstBuiltin = { fg = C.orange }, + TSConstMacro = { fg = C.red }, + TSStringRegex = { fg = C.green }, + TSString = { fg = C.green }, + TSStringEscap = { fg = C.red }, + TSCharacter = { fg = C.green }, + TSNumber = { fg = C.orange }, + TSBoolean = { fg = C.orange }, + TSFloat = { fg = C.green }, + TSAnnotation = { fg = C.yellow }, + TSAttribute = { fg = C.red }, + TSNamespace = { fg = C.purple }, + TSFuncBuiltin = { fg = C.blue }, + TSFunction = { fg = C.blue }, + TSFuncMacro = { fg = C.yellow }, + TSParameter = { fg = C.red }, + TSParameterReference = { fg = C.cyan }, + TSMethod = { fg = C.blue }, + TSField = { fg = C.red }, + TSProperty = { fg = C.yellow }, + TSConstructor = { fg = C.yellow }, + TSConditional = { fg = C.purple }, + TSRepeat = { fg = C.purple }, + TSLabel = { fg = C.blue }, + TSKeyword = { fg = C.purple }, + TSKeywordFunction = { fg = C.purple }, + TSKeywordOperator = { fg = C.purple }, + TSOperator = { fg = C.cyan }, + TSException = { fg = C.purple }, + TSType = { fg = C.blue }, + TSTypeBuiltin = { fg = C.blue }, + TSStructure = { fg = C.purple }, + TSInclude = { fg = C.purple }, + TSVariable = { fg = C.red }, + TSVariableBuiltin = { fg = C.yellow }, + TSText = { fg = C.fg }, + TSTextReference = { fg = C.yellow }, + TSStrong = { fg = C.blue, style = "bold" }, + TSEmphasis = { fg = C.purple, style = "italic" }, + TSUnderline = { fg = C.fg }, + TSTitle = { fg = C.fg }, + TSLiteral = { fg = C.fg }, + TSURI = { fg = C.green }, + TSTag = { fg = C.red }, + TSTagDelimiter = { fg = C.fg }, + markdownTSNone = { fg = C.fg }, + markdownTSTitle = { fg = C.red }, + markdownTSLiteral = { fg = C.green }, + markdownTSPunctSpecial = { fg = C.red }, + markdownTSPunctDelimiter = { fg = C.fg }, +} + +return treesitter diff --git a/config/nvim/lua/default_theme/utils.lua b/config/nvim/lua/default_theme/utils.lua new file mode 100644 index 0000000..cfb45b7 --- /dev/null +++ b/config/nvim/lua/default_theme/utils.lua @@ -0,0 +1,24 @@ +local M = {} + +local user_settings = astronvim.user_plugin_opts "default_theme" + +function M.parse_diagnostic_style(default) + if type(user_settings.diagnostics_style) == "table" then + default = vim.tbl_deep_extend("force", user_settings.diagnostics_style, default) + elseif type(user_settings.diagnostics_style) == "string" then + default.style = user_settings.diagnostics_style + end + return default +end + +function M.parse_style(spec) + if spec.style then + for match in (spec.style .. ","):gmatch "(.-)," do + spec[match] = true + end + spec.style = nil + end + return spec +end + +return M diff --git a/config/nvim/lua/user_example/init.lua b/config/nvim/lua/user_example/init.lua new file mode 100644 index 0000000..4c7b2a4 --- /dev/null +++ b/config/nvim/lua/user_example/init.lua @@ -0,0 +1,251 @@ +local config = { + + -- Configure AstroNvim updates + updater = { + remote = "origin", -- remote to use + channel = "nightly", -- "stable" or "nightly" + version = "latest", -- "latest", tag name, or regex search like "v1.*" to only do updates before v2 (STABLE ONLY) + branch = "main", -- branch name (NIGHTLY ONLY) + commit = nil, -- commit hash (NIGHTLY ONLY) + pin_plugins = nil, -- nil, true, false (nil will pin plugins on stable only) + skip_prompts = false, -- skip prompts about breaking changes + show_changelog = true, -- show the changelog after performing an update + -- remotes = { -- easily add new remotes to track + -- ["remote_name"] = "https://remote_url.come/repo.git", -- full remote url + -- ["remote2"] = "github_user/repo", -- GitHub user/repo shortcut, + -- ["remote3"] = "github_user", -- GitHub user assume AstroNvim fork + -- }, + }, + + -- Set colorscheme + colorscheme = "default_theme", + + -- set vim options here (vim.. = value) + options = { + opt = { + relativenumber = true, -- sets vim.opt.relativenumber + }, + g = { + mapleader = " ", -- sets vim.g.mapleader + }, + }, + + -- Default theme configuration + default_theme = { + diagnostics_style = { italic = true }, + -- Modify the color table + colors = { + fg = "#abb2bf", + }, + -- Modify the highlight groups + highlights = function(highlights) + local C = require "default_theme.colors" + + highlights.Normal = { fg = C.fg, bg = C.bg } + return highlights + end, + plugins = { -- enable or disable extra plugin highlighting + aerial = true, + beacon = false, + bufferline = true, + dashboard = true, + highlighturl = true, + hop = false, + indent_blankline = true, + lightspeed = false, + ["neo-tree"] = true, + notify = true, + ["nvim-tree"] = false, + ["nvim-web-devicons"] = true, + rainbow = true, + symbols_outline = false, + telescope = true, + vimwiki = false, + ["which-key"] = true, + }, + }, + + -- Disable AstroNvim ui features + ui = { + nui_input = true, + telescope_select = true, + }, + + -- Configure plugins + plugins = { + -- Add plugins, the packer syntax without the "use" + init = { + -- You can disable default plugins as follows: + -- ["goolord/alpha-nvim"] = { disable = true }, + + -- You can also add new plugins here as well: + -- { "andweeb/presence.nvim" }, + -- { + -- "ray-x/lsp_signature.nvim", + -- event = "BufRead", + -- config = function() + -- require("lsp_signature").setup() + -- end, + -- }, + }, + -- All other entries override the setup() call for default plugins + ["null-ls"] = function(config) + local null_ls = require "null-ls" + -- Check supported formatters and linters + -- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/formatting + -- https://github.com/jose-elias-alvarez/null-ls.nvim/tree/main/lua/null-ls/builtins/diagnostics + config.sources = { + -- Set a formatter + null_ls.builtins.formatting.rufo, + -- Set a linter + null_ls.builtins.diagnostics.rubocop, + } + -- set up null-ls's on_attach function + config.on_attach = function(client) + -- NOTE: You can remove this on attach function to disable format on save + if client.resolved_capabilities.document_formatting then + vim.api.nvim_create_autocmd("BufWritePre", { + desc = "Auto format before save", + pattern = "", + callback = vim.lsp.buf.formatting_sync, + }) + end + end + return config -- return final config table + end, + treesitter = { + ensure_installed = { "lua" }, + }, + ["nvim-lsp-installer"] = { + ensure_installed = { "sumneko_lua" }, + }, + packer = { + compile_path = vim.fn.stdpath "data" .. "/packer_compiled.lua", + }, + }, + + -- LuaSnip Options + luasnip = { + -- Add paths for including more VS Code style snippets in luasnip + vscode_snippet_paths = {}, + -- Extend filetypes + filetype_extend = { + javascript = { "javascriptreact" }, + }, + }, + + -- Modify which-key registration + ["which-key"] = { + -- Add bindings + register_mappings = { + -- first key is the mode, n == normal mode + n = { + -- second key is the prefix, prefixes + [""] = { + -- which-key registration table for normal mode, leader prefix + -- ["N"] = { "tabnew", "New Buffer" }, + }, + }, + }, + }, + + -- CMP Source Priorities + -- modify here the priorities of default cmp sources + -- higher value == higher priority + -- The value can also be set to a boolean for disabling default sources: + -- false == disabled + -- true == 1000 + cmp = { + source_priority = { + nvim_lsp = 1000, + luasnip = 750, + buffer = 500, + path = 250, + }, + }, + + -- Extend LSP configuration + lsp = { + -- enable servers that you already have installed without lsp-installer + servers = { + -- "pyright" + }, + -- easily add or disable built in mappings added during LSP attaching + mappings = { + n = { + -- ["lf"] = false -- disable formatting keymap + }, + }, + -- add to the server on_attach function + -- on_attach = function(client, bufnr) + -- end, + + -- override the lsp installer server-registration function + -- server_registration = function(server, opts) + -- require("lspconfig")[server].setup(opts) + -- end, + + -- Add overrides for LSP server settings, the keys are the name of the server + ["server-settings"] = { + -- example for addings schemas to yamlls + -- yamlls = { + -- settings = { + -- yaml = { + -- schemas = { + -- ["http://json.schemastore.org/github-workflow"] = ".github/workflows/*.{yml,yaml}", + -- ["http://json.schemastore.org/github-action"] = ".github/action.{yml,yaml}", + -- ["http://json.schemastore.org/ansible-stable-2.9"] = "roles/tasks/*.{yml,yaml}", + -- }, + -- }, + -- }, + -- }, + }, + }, + + -- Diagnostics configuration (for vim.diagnostics.config({})) + diagnostics = { + virtual_text = true, + underline = true, + }, + + mappings = { + -- first key is the mode + n = { + -- second key is the lefthand side of the map + [""] = { ":w!", desc = "Save File" }, + }, + t = { + -- setting a mapping to false will disable it + -- [""] = false, + }, + }, + + -- This function is run last + -- good place to configuring augroups/autocommands and custom filetypes + polish = function() + -- Set key binding + -- Set autocommands + vim.api.nvim_create_augroup("packer_conf", { clear = true }) + vim.api.nvim_create_autocmd("BufWritePost", { + desc = "Sync packer after modifying plugins.lua", + group = "packer_conf", + pattern = "plugins.lua", + command = "source | PackerSync", + }) + + -- Set up custom filetypes + -- vim.filetype.add { + -- extension = { + -- foo = "fooscript", + -- }, + -- filename = { + -- ["Foofile"] = "fooscript", + -- }, + -- pattern = { + -- ["~/%.config/foo/.*"] = "fooscript", + -- }, + -- } + end, +} + +return config diff --git a/config/nvim/packer_snapshot b/config/nvim/packer_snapshot new file mode 100644 index 0000000..2024b52 --- /dev/null +++ b/config/nvim/packer_snapshot @@ -0,0 +1 @@ +{"better-escape.nvim": {"commit": "d5ee0ce"}, "FixCursorHold.nvim": {"commit": "1bfb32e"}, "telescope-fzf-native.nvim": {"commit": "6a33ece"}, "packer.nvim": {"commit": "00ec5ad"}, "nvim-notify": {"commit": "7caeaae"}, "nvim-lspconfig": {"commit": "9278dfb"}, "smart-splits.nvim": {"commit": "2af8bc3"}, "null-ls.nvim": {"commit": "ff40739"}, "which-key.nvim": {"commit": "bd4411a"}, "bufferline.nvim": {"commit": "68839d6"}, "cmp-nvim-lsp": {"commit": "affe808"}, "cmp_luasnip": {"commit": "a9de941"}, "friendly-snippets": {"commit": "d27a83a"}, "nvim-colorizer.lua": {"commit": "36c610a"}, "gitsigns.nvim": {"commit": "4883988"}, "SchemaStore.nvim": {"commit": "186e4ad"}, "indent-blankline.nvim": {"commit": "42fe62e"}, "nvim-ts-autotag": {"commit": "044a05c"}, "neo-tree.nvim": {"commit": "c552119"}, "telescope.nvim": {"commit": "d88b44d"}, "nvim-ts-context-commentstring": {"commit": "8834375"}, "Comment.nvim": {"commit": "2c26a00"}, "aerial.nvim": {"commit": "dd35fd7"}, "alpha-nvim": {"commit": "ef27a59"}, "nvim-autopairs": {"commit": "4a95b39"}, "cinnamon.nvim": {"commit": "da5880d"}, "LuaSnip": {"commit": "a12441e"}, "popup.nvim": {"commit": "b7404d3"}, "nvim-web-devicons": {"commit": "8d2c533"}, "neovim-session-manager": {"commit": "4f9129a"}, "nvim-treesitter": {"commit": "f5aa00d"}, "nui.nvim": {"commit": "0f590b7"}, "impatient.nvim": {"commit": "969f2c5"}, "feline.nvim": {"commit": "1ea4267"}, "nvim-lsp-installer": {"commit": "5904749"}, "indent-o-matic": {"commit": "bf37c6e"}, "toggleterm.nvim": {"commit": "8f2e78d"}, "plenary.nvim": {"commit": "968a4b9"}, "bufdelete.nvim": {"commit": "46255e4"}, "nvim-cmp": {"commit": "df6734a"}, "nvim-ts-rainbow": {"commit": "837167f"}, "cmp-path": {"commit": "466b6b8"}, "cmp-buffer": {"commit": "62fc67a"}} diff --git a/config/picom/picom.conf b/config/picom/picom.conf index 14f667c..106b3b0 100755 --- a/config/picom/picom.conf +++ b/config/picom/picom.conf @@ -1,3 +1,7 @@ +# Documentation: https://github.com/yshui/picom/wiki +# Config created by Keyitdev https://www.github.com/keyitdev/dotfiles +# Copyright (C) 2022 Keyitdev + fading = true; fade-in-step = 0.015; fade-out-step = 0.1; @@ -11,4 +15,8 @@ refresh-rate = 0 detect-transient = true -log-level = "debug"; \ No newline at end of file +log-level = "debug"; + +opacity-rule: [ + "95:class_g = 'Org.gnome.Nautilus'" +]; \ No newline at end of file diff --git a/config/polybar/colors.ini b/config/polybar/colors.ini index 6235ef5..ff116ea 100755 --- a/config/polybar/colors.ini +++ b/config/polybar/colors.ini @@ -1,18 +1,16 @@ [color] -background = #21222C -background2 = #282A36 -background3 = #343746 -foreground = #F8F8F2 +background = #1b1b25 +foreground = #dedede sep = #F8F8F2 -white = #FFFFFF -black = #15121C -red = #f07178 -green = #c3e88d -yellow = #ffcb6b -blue = #82aaff -purple = #c792ea -cyan = #89ddff +white = #eeffff +black = #15121c +red = #cb5760 +green = #999f63 +yellow = #d4a067 +blue = #6c90a8 +purple = #776690 +cyan = #528a9b pink = #ffa8c5 -orange = #dd864a \ No newline at end of file +orange = #c87c3e \ No newline at end of file diff --git a/config/polybar/config.ini b/config/polybar/config.ini new file mode 100755 index 0000000..c031ad3 --- /dev/null +++ b/config/polybar/config.ini @@ -0,0 +1,541 @@ +; Documentation: https://github.com/polybar/polybar/wiki +; Config created by Keyitdev https://www.github.com/keyitdev/dotfiles +; Copyright (C) 2022 Keyitdev + +;; Global WM Settings + +[global/wm] + +margin-bottom = 0 +margin-top = 0 +fixed-center = true + +include-file = $HOME/.config/polybar/colors.ini + +;; Application Settings + +[settings] + +throttle-output = 5 +throttle-output-for = 10 +screenchange-reload = true + +; Compositing operators + +pseudo-transparency = true +compositing-background = source +compositing-foreground = over +compositing-overline = over +compositing-underline = over +compositing-border = over + +;; Bar Settings + +[bar/main] + +modules-left = right1 i3 left1 sep right1 mpd left1 sep right1 network left1 +modules-center = right1 date left1 +modules-right = right1 temperature sep2 sep2 cpu sep2 sep2 memory left1 sep right1 backlight sep2 sep2 alsa left1 sep right1 battery left1 +separator = + +monitor = +monitor-fallback = +monitor-strict = false +override-redirect = false +wm-name = +locale = + +bottom = false +fixed-center = true +padding = 0 +width = 100% +height = 31 +offset-x = 0% +offset-y = 0% +radius-top = 0 +radius-bottom = 0 + +background = #002d333f +foreground = ${color.foreground} +dim-value = 1.0 + +line-size = 2 +line-color = ${color.background} + +border-top-size = 8 +border-top-color = #002d333f +border-left-size = 8 +border-left-color = #002d333f +border-right-size = 8 +border-right-color = #002d333f + +font-0 = "Iosevka Nerd Font:size=12;4" +font-1 = "Iosevka Nerd Font:style=Medium:size=18;4" +font-2 = "feather:size=13;5" + +tray-position = right +tray-detached = false +tray-maxsize = 16 +tray-background = #002d333f +tray-offset-x = 0 +tray-offset-y = 0 +tray-padding = 0 +tray-scale = 1.0 + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +[bar/second] +modules-left = sep2 i3 left1 +modules-center = right1 date left1 +modules-right = +separator = + +; Change it for yourself +monitor = HDMI-1 +monitor-fallback = +monitor-strict = false +override-redirect = false +wm-name = +locale = + +bottom = false +fixed-center = true +padding = 0 +width = 100% +height = 31 +offset-x = 0% +offset-y = 0% +radius-top = 0 +radius-bottom = 0 + +background = #002d333f +foreground = ${color.foreground} +dim-value = 1.0 + +line-size = 2 +line-color = ${color.background} + +border-top-size = 8 +border-top-color = #002d333f +border-left-size = 8 +border-left-color = #002d333f +border-right-size = 8 +border-right-color = #002d333f + +font-0 = "Iosevka Nerd Font:size=12;4" +font-1 = "Iosevka Nerd Font:style=Medium:size=18;4" +font-2 = "feather:size=13;5" + +tray-position = right +tray-detached = false +tray-maxsize = 16 +tray-background = ${color.background} +tray-offset-x = 0 +tray-offset-y = 0 +tray-padding = 0 +tray-scale = 1.0 + +; Enable support for inter-process messaging +; See the Messaging wiki page for more details. +enable-ipc = true + +;; Modules + +; Don't delete it, it's important +[glyph] +gleft =  +gright =  + +[module/left1] +type = custom/text +content-background = #002d333f +content-foreground = ${color.background} +content = ${glyph.gleft} +content-font = 2 + +[module/right1] +type = custom/text +content-background = #002d333f +content-foreground = ${color.background} +content = ${glyph.gright} +content-font = 2 + +[module/sep] +type = custom/text +content = " " + +[module/sep2] +type = custom/text +content = " " + +content-foreground = ${color.background} +content-background = ${color.background} + +[module/alsa] +type = internal/alsa +interval = 5 + +master-soundcard = default +speaker-soundcard = default +headphone-soundcard = default +master-mixer = Master + +format-volume = +format-volume-background = ${color.background} +format-muted = +format-muted-background = ${color.background} + +label-volume = %percentage%% +label-muted =  +label-muted-foreground =${color.red} + +ramp-volume-0 =  +ramp-volume-1 =  +ramp-volume-2 =  +ramp-headphones-0 =  +ramp-volume-foreground = ${color.blue} + +[module/backlight] +type = internal/backlight + +; Change it for yourself +card = amdgpu_bl0 +use-actual-brightness = true +enable-scroll = true + +format =