├── .config ├── Thunar │ ├── accels.scm │ ├── renamerrc │ └── uca.xml ├── kitty │ ├── kitty.conf │ └── kitty.conf.bak ├── nvim │ ├── .luarc.json │ ├── init.lua │ ├── lazy-lock.json │ └── lua │ │ ├── chadrc.lua │ │ ├── core.lua │ │ ├── floaterminal.lua │ │ └── plugins │ │ ├── autopairs.lua │ │ ├── bakup │ │ ├── colorscheme.lua.bak │ │ └── lualine.lua.bak │ │ ├── cmp.lua │ │ ├── conform.lua │ │ ├── init.lua │ │ ├── lsp.lua │ │ ├── mason.lua │ │ ├── telescope.lua │ │ ├── tmux.lua │ │ └── treesitter.lua ├── rofi │ └── config.rasi ├── starship.toml ├── sway │ ├── bar.sh │ ├── config │ └── nasa.png ├── swaylock │ └── config ├── tmux │ ├── tmux.conf │ └── tmux.reset.conf ├── waybar │ ├── config │ └── style.css ├── zathura │ └── zathurarc └── zed │ ├── keymap.json │ └── settings.json ├── .gitignore ├── .zshrc └── README.md /.config/Thunar/accels.scm: -------------------------------------------------------------------------------- 1 | ; thunar GtkAccelMap rc-file -*- scheme -*- 2 | ; this file is an automated accelerator map dump 3 | ; 4 | ; (gtk_accel_path "/ThunarStandardView/sort-by-type" "") 5 | ; (gtk_accel_path "/ThunarStatusBar/toggle-last-modified" "") 6 | ; (gtk_accel_path "/Thunarwindow/menu" "") 7 | ; (gtk_accel_path "/ThunarActionManager/cut" "x") 8 | ; (gtk_accel_path "/ThunarStandardView/sort-by-size" "") 9 | ; (gtk_accel_path "/ThunarWindow/file-menu" "") 10 | ; (gtk_accel_path "/ThunarWindow/close-tab" "w") 11 | ; (gtk_accel_path "/ThunarWindow/switch-previous-tab-alt" "ISO_Left_Tab") 12 | ; (gtk_accel_path "/ThunarStatusBar/toggle-size" "") 13 | ; (gtk_accel_path "/ThunarWindow/new-window" "n") 14 | ; (gtk_accel_path "/ThunarWindow/clear-directory-specific-settings" "") 15 | ; (gtk_accel_path "/ThunarWindow/close-window" "q") 16 | ; (gtk_accel_path "/ThunarWindow/open-parent" "Up") 17 | ; (gtk_accel_path "/ThunarWindow/view-side-pane-menu" "") 18 | ; (gtk_accel_path "/ThunarStatusBar/toggle-size-in-bytes" "") 19 | ; (gtk_accel_path "/ThunarWindow/switch-previous-tab" "Page_Up") 20 | ; (gtk_accel_path "/ThunarActionManager/open" "o") 21 | ; (gtk_accel_path "/ThunarStandardView/sort-ascending" "") 22 | ; (gtk_accel_path "/ThunarWindow/toggle-split-view" "F3") 23 | ; (gtk_accel_path "/ThunarActionManager/copy-2" "Insert") 24 | ; (gtk_accel_path "/ThunarActionManager/trash-delete" "Delete") 25 | ; (gtk_accel_path "/ThunarWindow/open-recent" "") 26 | ; (gtk_accel_path "/ThunarWindow/view-configure-toolbar" "") 27 | ; (gtk_accel_path "/ThunarStandardView/forward" "Right") 28 | ; (gtk_accel_path "/ThunarActionManager/restore" "") 29 | ; (gtk_accel_path "/ThunarWindow/open-location-alt" "d") 30 | ; (gtk_accel_path "/ThunarWindow/zoom-out-alt" "KP_Subtract") 31 | ; (gtk_accel_path "/ThunarStandardView/select-by-pattern" "s") 32 | ; (gtk_accel_path "/ThunarWindow/open-file-menu" "F10") 33 | ; (gtk_accel_path "/ThunarWindow/contents" "F1") 34 | ; (gtk_accel_path "/ThunarWindow/show-highlight" "") 35 | ; (gtk_accel_path "/ThunarStandardView/sort-descending" "") 36 | ; (gtk_accel_path "/ThunarStandardView/sort-by-name" "") 37 | ; (gtk_accel_path "/ThunarStandardView/select-all-files" "a") 38 | ; (gtk_accel_path "/ThunarActionManager/execute" "") 39 | ; (gtk_accel_path "/ThunarStandardView/properties" "Return") 40 | ; (gtk_accel_path "/ThunarActionManager/cut-2" "") 41 | ; (gtk_accel_path "/ThunarStandardView/sort-by-dtime" "") 42 | ; (gtk_accel_path "/ThunarWindow/switch-next-tab" "Page_Down") 43 | ; (gtk_accel_path "/ThunarWindow/open-templates" "") 44 | ; (gtk_accel_path "/ThunarActionManager/paste-2" "Insert") 45 | ; (gtk_accel_path "/ThunarStatusBar/toggle-filetype" "") 46 | ; (gtk_accel_path "/ThunarWindow/close-all-windows" "w") 47 | ; (gtk_accel_path "/ThunarStandardView/create-document" "") 48 | ; (gtk_accel_path "/ThunarWindow/detach-tab" "") 49 | ; (gtk_accel_path "/ThunarWindow/cancel-search" "Escape") 50 | ; (gtk_accel_path "/ThunarWindow/zoom-in-alt2" "equal") 51 | ; (gtk_accel_path "/ThunarStatusBar/toggle-hidden-count" "") 52 | ; (gtk_accel_path "/ThunarShortcutsPane/sendto-shortcuts" "d") 53 | ; (gtk_accel_path "/ThunarActionManager/undo" "z") 54 | ; (gtk_accel_path "/ThunarStandardView/toggle-sort-order" "") 55 | ; (gtk_accel_path "/ThunarWindow/view-location-selector-entry" "") 56 | ; (gtk_accel_path "/ThunarActionManager/paste" "v") 57 | ; (gtk_accel_path "/ThunarWindow/zoom-in-alt1" "KP_Add") 58 | ; (gtk_accel_path "/ThunarWindow/view-menubar" "m") 59 | ; (gtk_accel_path "/ThunarStandardView/back" "Left") 60 | ; (gtk_accel_path "/ThunarWindow/open-desktop" "") 61 | ; (gtk_accel_path "/ThunarWindow/view-as-detailed-list" "2") 62 | ; (gtk_accel_path "/ThunarActionManager/restore-show" "") 63 | ; (gtk_accel_path "/ThunarWindow/sendto-menu" "") 64 | ; (gtk_accel_path "/ThunarStatusBar/toggle-display-name" "") 65 | ; (gtk_accel_path "/ThunarWindow/go-menu" "") 66 | ; (gtk_accel_path "/ThunarWindow/zoom-out" "minus") 67 | ; (gtk_accel_path "/ThunarWindow/remove-from-recent" "") 68 | ; (gtk_accel_path "/ThunarActionManager/open-with-other" "") 69 | ; (gtk_accel_path "/ThunarStandardView/invert-selection" "i") 70 | ; (gtk_accel_path "/ThunarWindow/view-side-pane-shortcuts" "b") 71 | ; (gtk_accel_path "/ThunarWindow/reload-alt-2" "Reload") 72 | ; (gtk_accel_path "/ThunarWindow/view-location-selector-menu" "") 73 | ; (gtk_accel_path "/ThunarWindow/reload" "r") 74 | ; (gtk_accel_path "/ThunarWindow/edit-menu" "") 75 | ; (gtk_accel_path "/ThunarActionManager/copy" "c") 76 | ; (gtk_accel_path "/ThunarWindow/bookmarks-menu" "") 77 | ; (gtk_accel_path "/ThunarStandardView/forward-alt" "Forward") 78 | ; (gtk_accel_path "/ThunarActionManager/move-to-trash" "") 79 | ; (gtk_accel_path "/ThunarWindow/reload-alt-1" "F5") 80 | ; (gtk_accel_path "/ThunarActionManager/delete-3" "KP_Delete") 81 | ; (gtk_accel_path "/ThunarStandardView/unselect-all-files" "Escape") 82 | ; (gtk_accel_path "/ThunarWindow/contents/help-menu" "") 83 | ; (gtk_accel_path "/ThunarStandardView/arrange-items-menu" "") 84 | ; (gtk_accel_path "/ThunarStandardView/sort-by-mtime" "") 85 | ; (gtk_accel_path "/ThunarWindow/open-computer" "") 86 | ; (gtk_accel_path "/ThunarWindow/toggle-image-preview" "") 87 | ; (gtk_accel_path "/ThunarWindow/toggle-side-pane" "F9") 88 | ; (gtk_accel_path "/ThunarWindow/view-as-icons" "1") 89 | ; (gtk_accel_path "/ThunarActionManager/delete-2" "Delete") 90 | ; (gtk_accel_path "/ThunarWindow/zoom-in" "plus") 91 | ; (gtk_accel_path "/ThunarStandardView/rename" "F2") 92 | ; (gtk_accel_path "/ThunarWindow/open-location" "l") 93 | ; (gtk_accel_path "/ThunarWindow/view-as-compact-list" "3") 94 | ; (gtk_accel_path "/ThunarWindow/view-menu" "") 95 | ; (gtk_accel_path "/ThunarWindow/search" "f") 96 | ; (gtk_accel_path "/ThunarWindow/new-tab" "t") 97 | ; (gtk_accel_path "/ThunarWindow/zoom-reset" "0") 98 | ; (gtk_accel_path "/ThunarStandardView/back-alt2" "Back") 99 | ; (gtk_accel_path "/ThunarActionManager/open-in-new-tab" "p") 100 | ; (gtk_accel_path "/ThunarWindow/view-location-selector-buttons" "") 101 | ; (gtk_accel_path "/ThunarActionManager/redo" "z") 102 | ; (gtk_accel_path "/ThunarWindow/open-trash" "") 103 | ; (gtk_accel_path "/ThunarActionManager/open-in-new-window" "o") 104 | ; (gtk_accel_path "/ThunarWindow/view-statusbar" "") 105 | ; (gtk_accel_path "/ThunarActionManager/open-location" "") 106 | ; (gtk_accel_path "/ThunarStandardView/duplicate" "") 107 | ; (gtk_accel_path "/ThunarActionManager/trash-delete-2" "KP_Delete") 108 | ; (gtk_accel_path "/ThunarStandardView/back-alt1" "BackSpace") 109 | ; (gtk_accel_path "/ThunarStandardView/create-folder" "n") 110 | ; (gtk_accel_path "/ThunarWindow/open-home" "Home") 111 | ; (gtk_accel_path "/ThunarWindow/switch-focused-split-view-pane" "") 112 | ; (gtk_accel_path "/ThunarWindow/show-hidden" "h") 113 | ; (gtk_accel_path "/ThunarStandardView/set-default-app" "") 114 | ; (gtk_accel_path "/ThunarWindow/empty-trash" "") 115 | ; (gtk_accel_path "/ThunarWindow/preferences" "") 116 | ; (gtk_accel_path "/ThunarActionManager/delete" "") 117 | ; (gtk_accel_path "/ThunarWindow/open-network" "") 118 | ; (gtk_accel_path "/ThunarWindow/view-side-pane-tree" "e") 119 | ; (gtk_accel_path "/ThunarWindow/open-file-system" "") 120 | ; (gtk_accel_path "/ThunarWindow/search-alt" "Search") 121 | ; (gtk_accel_path "/ThunarWindow/switch-next-tab-alt" "Tab") 122 | ; (gtk_accel_path "/ThunarActionManager/sendto-desktop" "") 123 | ; (gtk_accel_path "/ThunarStandardView/make-link" "") 124 | ; (gtk_accel_path "/ThunarWindow/zoom-reset-alt" "KP_0") 125 | ; (gtk_accel_path "/ThunarWindow/about" "") 126 | -------------------------------------------------------------------------------- /.config/Thunar/renamerrc: -------------------------------------------------------------------------------- 1 | [Configuration] 2 | LastActiveMode=THUNAR_RENAMER_MODE_NAME 3 | LastActiveRenamer=ThunarSbrDateRenamer 4 | 5 | [ThunarSbrDateRenamer] 6 | Offset=0 7 | Mode=THUNAR_SBR_DATE_MODE_NOW 8 | Format=%Y%m%d 9 | OffsetMode=THUNAR_SBR_OFFSET_MODE_LEFT 10 | 11 | -------------------------------------------------------------------------------- /.config/Thunar/uca.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | utilities-terminal 5 | Open Terminal Here 6 | 7 | 1734946624657626-1 8 | exo-open --working-directory %f --launch TerminalEmulator 9 | Example for a custom action 10 | 11 | * 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /.config/kitty/kitty.conf: -------------------------------------------------------------------------------- 1 | linux_display_server wayland 2 | wayland_titlebar_color background 3 | 4 | draw_minimal_borders no 5 | window_margin_width 0 6 | 7 | font_size 18 8 | background_opacity 0.7 9 | background_tint 1 10 | 11 | foreground #e0def4 12 | background #191724 13 | selection_foreground #e0def4 14 | selection_background #403d52 15 | 16 | cursor #9ccfd8 17 | cursor_text_color #e0def4 18 | 19 | url_color #c4a7e7 20 | 21 | active_tab_foreground #e0def4 22 | active_tab_background #26233a 23 | inactive_tab_foreground #6e6a86 24 | inactive_tab_background #191724 25 | 26 | active_border_color #31748f 27 | inactive_border_color #403d52 28 | 29 | # black 30 | color0 #26233a 31 | color8 #6e6a86 32 | 33 | # red 34 | color1 #eb6f92 35 | color9 #eb6f92 36 | 37 | # green 38 | color2 #31748f 39 | color10 #31748f 40 | 41 | # yellow 42 | color3 #f6c177 43 | color11 #f6c177 44 | 45 | # blue 46 | color4 #9ccfd8 47 | color12 #9ccfd8 48 | 49 | # magenta 50 | color5 #c4a7e7 51 | color13 #c4a7e7 52 | 53 | # cyan 54 | color6 #ebbcba 55 | color14 #ebbcba 56 | 57 | # white 58 | color7 #e0def4 59 | color15 #e0def4 60 | 61 | font_family family="FiraCode Nerd Font Mono" 62 | bold_font auto 63 | italic_font family='FiraCode Nerd Font Mono' style=Light 64 | bold_italic_font auto 65 | -------------------------------------------------------------------------------- /.config/kitty/kitty.conf.bak: -------------------------------------------------------------------------------- 1 | linux_display_server wayland 2 | wayland_titlebar_color background 3 | 4 | draw_minimal_borders no 5 | window_margin_width 0 6 | 7 | font_size 12 8 | 9 | foreground #e0def4 10 | background #191724 11 | selection_foreground #e0def4 12 | selection_background #403d52 13 | 14 | cursor #524f67 15 | cursor_text_color #e0def4 16 | 17 | url_color #c4a7e7 18 | 19 | active_tab_foreground #e0def4 20 | active_tab_background #26233a 21 | inactive_tab_foreground #6e6a86 22 | inactive_tab_background #191724 23 | 24 | active_border_color #31748f 25 | inactive_border_color #403d52 26 | 27 | # black 28 | color0 #26233a 29 | color8 #6e6a86 30 | 31 | # red 32 | color1 #eb6f92 33 | color9 #eb6f92 34 | 35 | # green 36 | color2 #31748f 37 | color10 #31748f 38 | 39 | # yellow 40 | color3 #f6c177 41 | color11 #f6c177 42 | 43 | # blue 44 | color4 #9ccfd8 45 | color12 #9ccfd8 46 | 47 | # magenta 48 | color5 #c4a7e7 49 | color13 #c4a7e7 50 | 51 | # cyan 52 | color6 #ebbcba 53 | color14 #ebbcba 54 | 55 | # white 56 | color7 #e0def4 57 | color15 #e0def4 58 | 59 | -------------------------------------------------------------------------------- /.config/nvim/.luarc.json: -------------------------------------------------------------------------------- 1 | { 2 | "diagnostics.disable": [ 3 | "undefined-global" 4 | ] 5 | } -------------------------------------------------------------------------------- /.config/nvim/init.lua: -------------------------------------------------------------------------------- 1 | require("core") 2 | require("floaterminal") 3 | 4 | if vim.g.neovide then 5 | vim.g.neovide_transparency = 0.6 6 | end 7 | 8 | local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim" 9 | if not vim.loop.fs_stat(lazypath) then 10 | vim.fn.system({ 11 | "git", 12 | "clone", 13 | "--filter=blob:none", 14 | "https://github.com/folke/lazy.nvim.git", 15 | "--branch=stable", -- latest stable release 16 | lazypath, 17 | }) 18 | end 19 | vim.opt.rtp:prepend(lazypath) 20 | vim.g.base46_cache = vim.fn.stdpath("data") .. "/base46_cache/" 21 | 22 | 23 | require("lazy").setup({ 24 | spec = { 25 | { import = "plugins" }, 26 | }, 27 | checker = { 28 | enabled = true, 29 | }, 30 | }) 31 | 32 | dofile(vim.g.base46_cache .. "defaults") 33 | for _, v in ipairs(vim.fn.readdir(vim.g.base46_cache)) do 34 | dofile(vim.g.base46_cache .. v) 35 | end 36 | 37 | vim.defer_fn(function() 38 | vim.cmd("highlight LineNr guifg=#9ccfd8") 39 | vim.cmd("highlight Comment guifg=#c4a7e7") 40 | end, 100) 41 | -------------------------------------------------------------------------------- /.config/nvim/lazy-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "Comment.nvim": { "branch": "master", "commit": "e30b7f2008e52442154b66f7c519bfd2f1e32acb" }, 3 | "LuaSnip": { "branch": "master", "commit": "c9b9a22904c97d0eb69ccb9bab76037838326817" }, 4 | "base46": { "branch": "v2.5", "commit": "fde7a2cd54599e148d376f82980407c2d24b0fa2" }, 5 | "cmp-buffer": { "branch": "main", "commit": "3022dbc9166796b644a841a02de8dd1cc1d311fa" }, 6 | "cmp-nvim-lsp": { "branch": "main", "commit": "99290b3ec1322070bcfb9e846450a46f6efa50f0" }, 7 | "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, 8 | "cmp_luasnip": { "branch": "master", "commit": "98d9cb5c2c38532bd9bdb481067b20fea8f32e90" }, 9 | "conform.nvim": { "branch": "master", "commit": "db8a4a9edb217067b1d7a2e0362c74bfe9cc944d" }, 10 | "friendly-snippets": { "branch": "main", "commit": "efff286dd74c22f731cdec26a70b46e5b203c619" }, 11 | "indent-blankline.nvim": { "branch": "master", "commit": "e10626f7fcd51ccd56d7ffc00883ba7e0aa28f78" }, 12 | "lazy.nvim": { "branch": "main", "commit": "6c3bda4aca61a13a9c63f1c1d1b16b9d3be90d7a" }, 13 | "lspkind.nvim": { "branch": "master", "commit": "d79a1c3299ad0ef94e255d045bed9fa26025dab6" }, 14 | "mason.nvim": { "branch": "main", "commit": "fc98833b6da5de5a9c5b1446ac541577059555be" }, 15 | "nvim-autopairs": { "branch": "master", "commit": "68f0e5c3dab23261a945272032ee6700af86227a" }, 16 | "nvim-cmp": { "branch": "main", "commit": "c27370703e798666486e3064b64d59eaf4bdc6d5" }, 17 | "nvim-lsp-file-operations": { "branch": "master", "commit": "9744b738183a5adca0f916527922078a965515ed" }, 18 | "nvim-lspconfig": { "branch": "master", "commit": "84e0cd5a3c58e88ef706fdf4a1eed59ded1d3ce2" }, 19 | "nvim-treesitter": { "branch": "master", "commit": "55c5c762fee2e813b4e43bbfaf5b91d182bd2875" }, 20 | "nvim-ts-autotag": { "branch": "main", "commit": "a1d526af391f6aebb25a8795cbc05351ed3620b5" }, 21 | "nvim-web-devicons": { "branch": "master", "commit": "ab4cfee554e501f497bce0856788d43cf2eb93d7" }, 22 | "plenary.nvim": { "branch": "master", "commit": "857c5ac632080dba10aae49dba902ce3abf91b35" }, 23 | "rainbow-delimiters.nvim": { "branch": "master", "commit": "c2255b20bb1accb0e83e70f995adf99b78dee13d" }, 24 | "telescope-fzf-native.nvim": { "branch": "main", "commit": "2a5ceff981501cff8f46871d5402cd3378a8ab6a" }, 25 | "telescope.nvim": { "branch": "master", "commit": "814f102cd1da3dc78c7d2f20f2ef3ed3cdf0e6e4" }, 26 | "ui": { "branch": "v3.0", "commit": "8fc9f2502bf580f9a9b83f77f7a2e0b8f6f24191" }, 27 | "vim-illuminate": { "branch": "master", "commit": "19cb21f513fc2b02f0c66be70107741e837516a1" }, 28 | "vim-tmux-navigator": { "branch": "master", "commit": "791dacfcfc8ccb7f6eb1c853050883b03e5a22fe" } 29 | } 30 | -------------------------------------------------------------------------------- /.config/nvim/lua/chadrc.lua: -------------------------------------------------------------------------------- 1 | local options = { 2 | 3 | base46 = { 4 | theme = "rosepine", -- default theme 5 | hl_add = {}, 6 | hl_override = {}, 7 | integrations = {}, 8 | changed_themes = {}, 9 | transparency = false, 10 | theme_toggle = { "rosepine", "rosepine-dawn" }, 11 | }, 12 | 13 | ui = { 14 | cmp = { 15 | icons = true, 16 | lspkind_text = true, 17 | style = "default", -- default/flat_light/flat_dark/atom/atom_colored 18 | }, 19 | 20 | telescope = { style = "borderless" }, -- borderless / bordered 21 | 22 | statusline = { 23 | theme = "minimal", -- default/vscode/vscode_colored/minimal 24 | -- default/round/block/arrow separators work only for default statusline theme 25 | -- round and block will work for minimal theme only 26 | separator_style = "round", 27 | order = nil, 28 | modules = nil, 29 | }, 30 | 31 | -- lazyload it when there are 1+ buffers 32 | tabufline = { 33 | enabled = true, 34 | lazyload = true, 35 | order = { "treeOffset", "buffers", "tabs", "btns" }, 36 | modules = nil, 37 | }, 38 | 39 | nvdash = { 40 | enabled = false, 41 | load_on_startup = false, 42 | 43 | header = { 44 | " ▄ ▄ ", 45 | " ▄ ▄▄▄ ▄ ▄▄▄ ▄ ▄ ", 46 | " █ ▄ █▄█ ▄▄▄ █ █▄█ █ █ ", 47 | " ▄▄ █▄█▄▄▄█ █▄█▄█▄▄█▄▄█ █ ", 48 | " ▄ █▄▄█ ▄ ▄▄ ▄█ ▄▄▄▄▄▄▄▄▄▄▄▄▄▄ ", 49 | " █▄▄▄▄ ▄▄▄ █ ▄ ▄▄▄ ▄ ▄▄▄ ▄ ▄ █ ▄", 50 | "▄ █ █▄█ █▄█ █ █ █▄█ █ █▄█ ▄▄▄ █ █", 51 | "█▄█ ▄ █▄▄█▄▄█ █ ▄▄█ █ ▄ █ █▄█▄█ █", 52 | " █▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█ █▄█▄▄▄█ ", 53 | }, 54 | 55 | buttons = { 56 | { " Find File", "Spc f f", "Telescope find_files" }, 57 | { "󰈚 Recent Files", "Spc f o", "Telescope oldfiles" }, 58 | { "󰈭 Find Word", "Spc f w", "Telescope live_grep" }, 59 | { " Bookmarks", "Spc m a", "Telescope marks" }, 60 | { " Themes", "Spc t h", "Telescope themes" }, 61 | { " Mappings", "Spc c h", "NvCheatsheet" }, 62 | }, 63 | }, 64 | }, 65 | 66 | term = { 67 | enabled = false, 68 | -- winopts = { number = false, relativenumber = false }, 69 | -- sizes = { sp = 0.3, vsp = 0.2, ["bo sp"] = 0.3, ["bo vsp"] = 0.2 }, 70 | -- float = { 71 | -- relative = "editor", 72 | -- row = 0.3, 73 | -- col = 0.25, 74 | -- width = 0.5, 75 | -- height = 0.4, 76 | -- border = "single", 77 | -- }, 78 | }, 79 | 80 | lsp = { signature = true }, 81 | 82 | cheatsheet = { 83 | enabled = false, 84 | -- theme = "grid", -- simple/grid 85 | -- excluded_groups = { "terminal (t)", "autopairs", "Nvim", "Opens" }, -- can add group name or with mode 86 | }, 87 | 88 | mason = { cmd = true, pkgs = {} }, 89 | } 90 | 91 | local status, chadrc = pcall(require, "chadrc") 92 | return vim.tbl_deep_extend("force", options, status and chadrc or {}) 93 | -------------------------------------------------------------------------------- /.config/nvim/lua/core.lua: -------------------------------------------------------------------------------- 1 | vim.opt.background = "dark" -- set this to dark or light 2 | 3 | vim.g.mapleader = " " 4 | 5 | vim.g.maplocalleader = " " 6 | 7 | vim.o.mouse = "a" 8 | 9 | vim.o.clipboard = "unnamedplus" 10 | 11 | vim.o.breakindent = true 12 | 13 | vim.o.completeopt = "menuone,noselect" 14 | 15 | vim.wo.signcolumn = "yes" 16 | 17 | vim.opt.showmode = false 18 | 19 | vim.opt.nu = true 20 | 21 | vim.opt.tabstop = 4 22 | 23 | vim.opt.softtabstop = 4 24 | 25 | vim.opt.shiftwidth = 4 26 | 27 | vim.opt.expandtab = true 28 | 29 | vim.opt.smartindent = true 30 | 31 | vim.opt.wrap = false 32 | 33 | vim.opt.swapfile = false 34 | 35 | vim.opt.guicursor = "n-v-c:cyan" 36 | 37 | vim.opt.backup = false 38 | 39 | vim.opt.undodir = os.getenv("HOME") .. "/.vim/undodir" 40 | 41 | vim.opt.undofile = true 42 | 43 | vim.opt.hlsearch = false 44 | 45 | vim.opt.incsearch = true 46 | 47 | vim.opt.termguicolors = true 48 | 49 | 50 | local highlight_group = vim.api.nvim_create_augroup("YankHighlight", { clear = true }) 51 | vim.api.nvim_create_autocmd("TextYankPost", { 52 | callback = function() 53 | vim.highlight.on_yank() 54 | end, 55 | group = highlight_group, 56 | pattern = "*", 57 | }) 58 | 59 | --vim.api.nvim_create_autocmd("BufWritePre", { 60 | -- pattern = { "*.c", "*.cpp", "*.h", "*.hpp" }, 61 | -- callback = function() 62 | -- vim.cmd("silent! %!clang-format") 63 | -- end, 64 | --}) 65 | -- 66 | 67 | local keymap = vim.keymap 68 | 69 | keymap.set("n", "[d", vim.diagnostic.goto_prev, { desc = "Go to previous [D]iagnostic message" }) 70 | keymap.set("n", "]d", vim.diagnostic.goto_next, { desc = "Go to next [D]iagnostic message" }) 71 | keymap.set("n", "e", vim.diagnostic.open_float, { desc = "Show diagnostic [E]rror messages" }) 72 | keymap.set("n", "q", vim.diagnostic.setloclist, { desc = "Open diagnostic [Q]uickfix list" }) 73 | 74 | keymap.set("i", "jk", "", { desc = "Exit insert mode with jk" }) 75 | 76 | keymap.set("n", "nh", ":nohl", { desc = "Clear search highlights" }) 77 | 78 | keymap.set("n", "", ":bw", { desc = "close buffer" }) 79 | keymap.set("n", "x", '"_x') 80 | 81 | -- keymap.set("n", "/", function() 82 | -- require("Comment.api").toggle.linewise.current() 83 | -- end) 84 | -- keymap.set("v", "/", "lua require('Comment.api').toggle.linewise(vim.fn.visualmode())") 85 | keymap.set("n", "", ":bprevious") 86 | keymap.set("n", "", ":bnext") 87 | 88 | keymap.set("v", "K", ":m '<-2gv=gv") 89 | keymap.set("v", "J", ":m '>+1gv=gv") 90 | keymap.set("n", "", "zz") 91 | keymap.set("n", "", "zz") 92 | keymap.set("n", "n", "nzzzv") 93 | keymap.set("n", "N", "Nzzzv") 94 | keymap.set("n", "sr", [[:%s/\<\>//gI]]) 95 | 96 | keymap.set("n", "sv", "v", { desc = "Split window vertically" }) 97 | keymap.set("n", "sh", "s", { desc = "Split window horizontally" }) 98 | keymap.set("n", "se", "=", { desc = "Make splits equal size" }) 99 | keymap.set("n", "sx", "close", { desc = "Close current split" }) 100 | -------------------------------------------------------------------------------- /.config/nvim/lua/floaterminal.lua: -------------------------------------------------------------------------------- 1 | vim.keymap.set("t", "", "") 2 | 3 | local state = { 4 | floating = { 5 | buf = -1, 6 | win = -1, 7 | }, 8 | } 9 | 10 | local function create_floating_window(opts) 11 | opts = opts or {} 12 | local width = opts.width or math.floor(vim.o.columns * 0.8) 13 | local height = opts.height or math.floor(vim.o.lines * 0.8) 14 | 15 | -- Calculate the position to center the window 16 | local col = math.floor((vim.o.columns - width) / 2) 17 | local row = math.floor((vim.o.lines - height) / 2) 18 | 19 | -- Create a buffer 20 | local buf = nil 21 | if vim.api.nvim_buf_is_valid(opts.buf) then 22 | buf = opts.buf 23 | else 24 | buf = vim.api.nvim_create_buf(false, true) -- No file, scratch buffer 25 | end 26 | 27 | -- Define window configuration 28 | local win_config = { 29 | relative = "editor", 30 | width = width, 31 | height = height, 32 | col = col, 33 | row = row, 34 | style = "minimal", -- No borders or extra UI elements 35 | border = "rounded", 36 | } 37 | 38 | -- Create the floating window 39 | local win = vim.api.nvim_open_win(buf, true, win_config) 40 | 41 | return { buf = buf, win = win } 42 | end 43 | 44 | local toggle_terminal = function() 45 | if not vim.api.nvim_win_is_valid(state.floating.win) then 46 | state.floating = create_floating_window({ buf = state.floating.buf }) 47 | if vim.bo[state.floating.buf].buftype ~= "terminal" then 48 | vim.cmd.terminal() 49 | end 50 | else 51 | vim.api.nvim_win_hide(state.floating.win) 52 | end 53 | end 54 | 55 | -- Example usage: 56 | -- Create a floating window with default dimensions 57 | vim.keymap.set({ "n", "t" }, "tt", toggle_terminal) 58 | vim.api.nvim_create_user_command("Floaterminal", toggle_terminal, {}) 59 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/autopairs.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "windwp/nvim-autopairs", 3 | event = { "InsertEnter" }, 4 | dependencies = { 5 | "hrsh7th/nvim-cmp", 6 | }, 7 | config = function() 8 | -- import nvim-autopairs 9 | local autopairs = require("nvim-autopairs") 10 | 11 | -- configure autopairs 12 | autopairs.setup({ 13 | check_ts = true, -- enable treesitter 14 | ts_config = { 15 | lua = { "string" }, -- don't add pairs in lua string treesitter nodes 16 | javascript = { "template_string" }, -- don't add pairs in javscript template_string treesitter nodes 17 | java = false, -- don't check treesitter on java 18 | }, 19 | }) 20 | 21 | -- import nvim-autopairs completion functionality 22 | local cmp_autopairs = require("nvim-autopairs.completion.cmp") 23 | 24 | -- import nvim-cmp plugin (completions plugin) 25 | local cmp = require("cmp") 26 | 27 | -- make autopairs and completion work together 28 | cmp.event:on("confirm_done", cmp_autopairs.on_confirm_done()) 29 | end, 30 | } 31 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/bakup/colorscheme.lua.bak: -------------------------------------------------------------------------------- 1 | return { 2 | -- { 3 | -- "folke/tokyonight.nvim", 4 | -- name = "tokyonight", 5 | -- priority = 1000, 6 | -- config = function() 7 | -- vim.cmd([[colorscheme tokyonight-night]]) 8 | -- end, 9 | -- }, 10 | -- { 11 | -- "catppuccin/nvim", 12 | -- name = "catppuccin", 13 | -- priority = 1000, 14 | -- -- config = function() 15 | -- -- vim.cmd([[colorscheme catppuccin-mocha]]) 16 | -- -- end, 17 | -- }, 18 | { 19 | "rose-pine/neovim", 20 | name = "rose-pine", 21 | priority = 1000, 22 | config = function() 23 | vim.cmd([[colorscheme rose-pine-main]]) 24 | end, 25 | }, 26 | } 27 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/bakup/lualine.lua.bak: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "nvim-lualine/lualine.nvim", 4 | dependencies = { "nvim-tree/nvim-web-devicons" }, 5 | event = "VeryLazy", 6 | opts = { 7 | options = { 8 | icons_enabled = true, 9 | theme = "auto", 10 | component_separators = "|", 11 | section_separators = { left = "", right = "" }, 12 | globalstatus = true, 13 | }, 14 | sections = { 15 | lualine_a = { "mode" }, 16 | lualine_b = { "branch", "diff", "diagnostics" }, 17 | lualine_c = {}, 18 | lualine_x = {}, 19 | lualine_y = {}, 20 | lualine_z = { "buffers" }, 21 | }, 22 | }, 23 | }, 24 | } 25 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/cmp.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "hrsh7th/nvim-cmp", 3 | event = "InsertEnter", 4 | dependencies = { 5 | 6 | "hrsh7th/cmp-buffer", -- source for text in buffer 7 | "hrsh7th/cmp-path", -- source for file system paths 8 | "L3MON4D3/LuaSnip", -- snippet engine 9 | "saadparwaiz1/cmp_luasnip", -- for autocompletion 10 | "rafamadriz/friendly-snippets", -- useful snippets 11 | "onsails/lspkind.nvim", -- vs-code like pictograms 12 | }, 13 | config = function() 14 | local cmp = require("cmp") 15 | local luasnip = require("luasnip") 16 | 17 | local lspkind = require("lspkind") 18 | 19 | require("luasnip.loaders.from_vscode").lazy_load() 20 | 21 | local function border(hl_name) 22 | return { 23 | { "╭", hl_name }, 24 | { "─", hl_name }, 25 | { "╮", hl_name }, 26 | { "│", hl_name }, 27 | { "╯", hl_name }, 28 | { "─", hl_name }, 29 | { "╰", hl_name }, 30 | { "│", hl_name }, 31 | } 32 | end 33 | cmp.setup({ 34 | cmp_ui = { 35 | icons = true, 36 | lspkind_text = true, 37 | style = "default", -- default/flat_light/flat_dark/atom/atom_colored 38 | -- border_color = "grey_fg", -- only applicable for "default" style, use color names from base30 variables 39 | selected_item_bg = "colored", -- colored / simple 40 | }, 41 | completion = { 42 | completeopt = "menu,menuone,preview,noselect", 43 | }, 44 | window = { 45 | completion = { 46 | border = border("CmpDocBorder"), 47 | winhighlight = "Normal:Pmenu,FloatBorder:FloatBorder,CursorLine:PmenuSel,Search:Pmenu", 48 | scrollbar = false, 49 | }, 50 | documentation = { 51 | border = border("CmpDocBorder"), 52 | winhighlight = "Normal:Pmenu,FloatBorder:FloatBorder,CursorLine:PmenuSel,Search:Pmenu", 53 | scrollbar = false, 54 | }, 55 | }, 56 | snippet = { -- configure how nvim-cmp interacts with snippet engine 57 | expand = function(args) 58 | luasnip.lsp_expand(args.body) 59 | end, 60 | }, 61 | mapping = cmp.mapping.preset.insert({ 62 | [""] = cmp.mapping.select_prev_item(), -- previous suggestion 63 | [""] = cmp.mapping.select_next_item(), -- next suggestion 64 | [""] = cmp.mapping.scroll_docs(-4), 65 | [""] = cmp.mapping.scroll_docs(4), 66 | [""] = cmp.mapping.complete(), -- show completion suggestions 67 | [""] = cmp.mapping.abort(), -- close completion window 68 | [""] = cmp.mapping.confirm({ select = true }), 69 | --[[ [""] = cmp.mapping(function(fallback) 70 | if cmp.visible() then 71 | cmp.select_next_item() 72 | -- elseif luasnip.expandable() then 73 | -- luasnip.expand() 74 | elseif luasnip.expand_or_jumpable() then 75 | luasnip.expand_or_jump() 76 | elseif check_backspace() then 77 | fallback() 78 | elseif has_words_before() then 79 | cmp.complete() 80 | else 81 | fallback() 82 | end ]] 83 | -- end, { "i", "s" }), 84 | }), 85 | -- sources for autocompletion 86 | sources = cmp.config.sources({ 87 | { name = "nvim_lsp", trigger_characters = { '-' } }, 88 | { name = "luasnip" }, -- snippets 89 | { name = "buffer" }, -- text within current buffer 90 | { name = "path" }, -- file system paths 91 | }), 92 | -- configure lspkind for vs-code like pictograms in completion menu 93 | formatting = { 94 | format = lspkind.cmp_format({ 95 | maxwidth = 50, 96 | ellipsis_char = "...", 97 | }), 98 | }, 99 | }) 100 | end, 101 | } 102 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/conform.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "stevearc/conform.nvim", 3 | event = { "BufReadPre", "BufNewFile" }, 4 | config = function() 5 | require("conform").setup({ 6 | formatters_by_ft = { 7 | lua = { "stylua" }, 8 | c = { "clangd" }, 9 | }, 10 | format_on_save = { 11 | timeout_ms = 500, 12 | lsp_format = "fallback", 13 | }, 14 | }) 15 | end, 16 | } 17 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/init.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "nvim-lua/plenary.nvim", 3 | "nvim-tree/nvim-web-devicons", 4 | { 5 | "RRethy/vim-illuminate", 6 | event = { "BufReadPre", "BufNewFile" }, 7 | opts = { 8 | delay = 200, 9 | large_file_cutoff = 2000, 10 | large_file_overrides = { 11 | providers = { "lsp", "treesitter", "regex" }, 12 | }, 13 | }, 14 | config = function(_, opts) 15 | require("illuminate").configure(opts) 16 | end, 17 | }, 18 | 19 | { 20 | "numToStr/Comment.nvim", 21 | event = { "BufReadPre", "BufNewFile" }, 22 | config = function() 23 | require("Comment").setup() 24 | end, 25 | }, 26 | 27 | { 28 | "HiPhish/rainbow-delimiters.nvim", 29 | event = { "BufReadPre", "BufNewFile" }, 30 | }, 31 | 32 | { 33 | "nvchad/ui", 34 | config = function() 35 | require("nvchad") 36 | end, 37 | }, 38 | { 39 | "nvchad/base46", 40 | lazy = true, 41 | build = function() 42 | require("base46").load_all_highlights() 43 | end, 44 | }, 45 | { 46 | "lukas-reineke/indent-blankline.nvim", 47 | event = { "BufReadPre", "BufNewFile" }, 48 | main = "ibl", 49 | config = function() 50 | local highlight = { 51 | "RainbowRed", 52 | "RainbowYellow", 53 | "RainbowBlue", 54 | "RainbowOrange", 55 | "RainbowGreen", 56 | "RainbowViolet", 57 | "RainbowCyan", 58 | } 59 | local hooks = require("ibl.hooks") 60 | hooks.register(hooks.type.HIGHLIGHT_SETUP, function() 61 | vim.api.nvim_set_hl(0, "RainbowRed", { fg = "#E06C75" }) 62 | vim.api.nvim_set_hl(0, "RainbowYellow", { fg = "#E5C07B" }) 63 | vim.api.nvim_set_hl(0, "RainbowBlue", { fg = "#61AFEF" }) 64 | vim.api.nvim_set_hl(0, "RainbowOrange", { fg = "#D19A66" }) 65 | vim.api.nvim_set_hl(0, "RainbowGreen", { fg = "#98C379" }) 66 | vim.api.nvim_set_hl(0, "RainbowViolet", { fg = "#C678DD" }) 67 | vim.api.nvim_set_hl(0, "RainbowCyan", { fg = "#56B6C2" }) 68 | end) 69 | 70 | require("ibl").setup({ indent = { highlight = highlight } }) 71 | end, 72 | }, 73 | } 74 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/lsp.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "neovim/nvim-lspconfig", 3 | event = { "BufReadPre", "BufNewFile" }, 4 | dependencies = { 5 | "hrsh7th/cmp-nvim-lsp", 6 | { "antosha417/nvim-lsp-file-operations", config = true }, 7 | }, 8 | config = function() 9 | local lspconfig = require("lspconfig") 10 | local cmp_nvim_lsp = require("cmp_nvim_lsp") 11 | local opts = { noremap = true, silent = true } 12 | local on_attach = function(_, bufnr) 13 | opts.buffer = bufnr 14 | 15 | opts.desc = "Show LSP references" 16 | vim.keymap.set("n", "gr", "Telescope lsp_references", opts) 17 | 18 | opts.desc = "Go to definition" 19 | vim.keymap.set("n", "gd", vim.lsp.buf.definition, opts) 20 | 21 | opts.desc = "Go to declaration" 22 | vim.keymap.set("n", "gD", vim.lsp.buf.declaration, opts) -- go to declaration 23 | 24 | opts.desc = "Show LSP implementations" 25 | vim.keymap.set("n", "gi", "Telescope lsp_implementations", opts) -- show lsp implementations 26 | 27 | opts.desc = "Show LSP type definitions" 28 | vim.keymap.set("n", "gt", "Telescope lsp_type_definitions", opts) -- show lsp type definitions 29 | 30 | opts.desc = "See available code actions" 31 | vim.keymap.set({ "n", "v" }, "ca", vim.lsp.buf.code_action, opts) -- see available code actions, in visual mode will apply to selection 32 | 33 | opts.desc = "Smart rename" 34 | vim.keymap.set("n", "rn", vim.lsp.buf.rename, opts) -- smart rename 35 | 36 | opts.desc = "Show line diagnostics" 37 | vim.keymap.set("n", "d", vim.diagnostic.open_float, opts) -- show diagnostics for line 38 | 39 | opts.desc = "Go to previous diagnostic" 40 | vim.keymap.set("n", "[d", vim.diagnostic.goto_prev, opts) -- jump to previous diagnostic in buffer 41 | 42 | opts.desc = "Go to next diagnostic" 43 | vim.keymap.set("n", "]d", vim.diagnostic.goto_next, opts) -- jump to next diagnostic in buffer 44 | 45 | opts.desc = "Show documentation for what is under cursor" 46 | vim.keymap.set("n", "K", vim.lsp.buf.hover, opts) -- show documentation for what is under cursor 47 | 48 | opts.desc = "Restart LSP" 49 | vim.keymap.set("n", "rs", ":LspRestart", opts) -- mapping to restart lsp if necessary 50 | end 51 | 52 | local capabilities = cmp_nvim_lsp.default_capabilities() 53 | 54 | local signs = { Error = " ", Warn = " ", Hint = "󰠠 ", Info = " " } 55 | for type, icon in pairs(signs) do 56 | local hl = "DiagnosticSign" .. type 57 | vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" }) 58 | end 59 | 60 | -- local servers = { "ts_ls", "pyright", "html", "clangd", "pyright", "lua_ls", "tailwindcss" } 61 | local servers = { "clangd", "lua_ls", "html" } 62 | 63 | lspconfig.gopls.setup({ 64 | filetypes = { "go", "gomod", "gowork", "gotmpl" }, 65 | on_attach = on_attach, 66 | capabilities = capabilities, 67 | }) 68 | 69 | for _, lsp in ipairs(servers) do 70 | lspconfig[lsp].setup({ 71 | on_attach = on_attach, 72 | capabilities = capabilities, 73 | }) 74 | end 75 | end, 76 | } 77 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/mason.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "williamboman/mason.nvim", 3 | -- cmd = { "Mason", "MasonInstall", "MasonInstallAll", "MasonUpdate" }, 4 | config = function() 5 | local mason = require("mason") 6 | mason.setup({ 7 | PATH = "prepend", 8 | ui = { 9 | icons = { 10 | package_installed = "✓", 11 | package_pending = "➜", 12 | package_uninstalled = "✗", 13 | }, 14 | }, 15 | }) 16 | end, 17 | } 18 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/telescope.lua: -------------------------------------------------------------------------------- 1 | return { 2 | "nvim-telescope/telescope.nvim", 3 | -- cmd = "Telescope", 4 | dependencies = { 5 | "nvim-lua/plenary.nvim", 6 | { "nvim-telescope/telescope-fzf-native.nvim", build = "make" }, 7 | }, 8 | config = function() 9 | require("telescope").setup({ 10 | pickers = { 11 | find_files = { 12 | theme = "ivy", 13 | }, 14 | }, 15 | extensions = { 16 | fzf = {}, 17 | }, 18 | }) 19 | 20 | require("telescope").load_extension("fzf") 21 | local builtin = require("telescope.builtin") 22 | vim.keymap.set("n", "ff", builtin.find_files, { desc = "Telescope find files" }) 23 | vim.keymap.set("n", "fg", builtin.live_grep, { desc = "Telescope live grep" }) 24 | vim.keymap.set("n", "fb", builtin.buffers, { desc = "Telescope buffers" }) 25 | vim.keymap.set("n", "fh", builtin.help_tags, { desc = "Telescope help tags" }) 26 | end, 27 | } 28 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/tmux.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "christoomey/vim-tmux-navigator", 4 | event = "VeryLazy", 5 | cmd = { 6 | "TmuxNavigateLeft", 7 | "TmuxNavigateDown", 8 | "TmuxNavigateUp", 9 | "TmuxNavigateRight", 10 | "TmuxNavigatePrevious", 11 | }, 12 | keys = { 13 | { "", "TmuxNavigateLeft" }, 14 | { "", "TmuxNavigateDown" }, 15 | { "", "TmuxNavigateUp" }, 16 | { "", "TmuxNavigateRight" }, 17 | { "", "TmuxNavigatePrevious" }, 18 | }, 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /.config/nvim/lua/plugins/treesitter.lua: -------------------------------------------------------------------------------- 1 | return { 2 | { 3 | "nvim-treesitter/nvim-treesitter", 4 | event = { "BufReadPre", "BufNewFile" }, 5 | build = ":TSUpdate", 6 | dependencies = { 7 | "windwp/nvim-ts-autotag", 8 | }, 9 | config = function() 10 | local treesitter = require("nvim-treesitter.configs") 11 | treesitter.setup({ 12 | highlight = { 13 | enable = true, 14 | use_languagetree = true, 15 | }, 16 | indent = { enable = true }, 17 | autotag = { 18 | enable = true, 19 | }, 20 | ensure_installed = { 21 | "json", 22 | "javascript", 23 | "html", 24 | "css", 25 | "markdown", 26 | "markdown_inline", 27 | "lua", 28 | "gitignore", 29 | }, 30 | incremental_selection = { 31 | enable = true, 32 | keymaps = { 33 | init_selection = "", 34 | node_incremental = "", 35 | scope_incremental = false, 36 | node_decremental = "", 37 | }, 38 | }, 39 | }) 40 | end, 41 | }, 42 | } 43 | -------------------------------------------------------------------------------- /.config/rofi/config.rasi: -------------------------------------------------------------------------------- 1 | configuration { 2 | modi: "drun"; 3 | show-icons: false; 4 | display-drun: ""; 5 | drun-display-format: "{name}"; 6 | } 7 | @import "default" 8 | 9 | * { 10 | bg: #191724; 11 | cur: #1f1d2e; 12 | fgd: #e0def4; 13 | cmt: #6e6a86; 14 | cya: #9ccfd8; 15 | pur: #31748f; 16 | ora: #ebbcba; 17 | grn: #c4a7e7; 18 | red: #eb6f92; 19 | yel: #f6c177; 20 | 21 | font: "Cartograph CF 12"; 22 | 23 | foreground: @fgd; 24 | background: @bg; 25 | active-background: @grn; 26 | urgent-background: @red; 27 | 28 | selected-background: @active-background; 29 | selected-urgent-background: @urgent-background; 30 | selected-active-background: @active-background; 31 | separatorcolor: @active-background; 32 | bordercolor: @ora; 33 | } 34 | 35 | #window { 36 | width: 35%; 37 | background-color: @background; 38 | border: 0; 39 | border-radius: 6; 40 | border-color: @bordercolor; 41 | padding: 10; 42 | } 43 | #mainbox { 44 | border: 0; 45 | padding: 5; 46 | } 47 | #message { 48 | border: 1px dash 0px 0px ; 49 | border-color: @separatorcolor; 50 | padding: 1px ; 51 | } 52 | #textbox { 53 | text-color: @foreground; 54 | } 55 | #listview { 56 | enabled: true; 57 | columns: 1; 58 | lines: 8; 59 | cycle: true; 60 | fixed-height: 0; 61 | border: 2px dash 0px 0px ; 62 | border-color: @bordercolor; 63 | spacing: 2px ; 64 | scrollbar: false; 65 | padding: 2px 0px 0px ; 66 | } 67 | #element { 68 | border: 0; 69 | padding: 1px ; 70 | } 71 | #element.normal.normal { 72 | background-color: @background; 73 | text-color: @foreground; 74 | } 75 | #element.normal.urgent { 76 | background-color: @urgent-background; 77 | text-color: @urgent-foreground; 78 | } 79 | #element.normal.active { 80 | background-color: @active-background; 81 | text-color: @background; 82 | } 83 | #element.selected.normal { 84 | background-color: @selected-background; 85 | text-color: @foreground; 86 | } 87 | #element.selected.urgent { 88 | background-color: @selected-urgent-background; 89 | text-color: @foreground; 90 | } 91 | #element.selected.active { 92 | background-color: @selected-active-background; 93 | text-color: @background; 94 | } 95 | #element.alternate.normal { 96 | background-color: @background; 97 | text-color: @foreground; 98 | } 99 | #element.alternate.urgent { 100 | background-color: @urgent-background; 101 | text-color: @foreground; 102 | } 103 | #element.alternate.active { 104 | background-color: @active-background; 105 | text-color: @foreground; 106 | } 107 | #scrollbar { 108 | width: 0; 109 | border: 0; 110 | handle-width: 8px ; 111 | padding: 0; 112 | } 113 | #sidebar { 114 | border: 2px dash 0px 0px ; 115 | border-color: @separatorcolor; 116 | } 117 | #button.selected { 118 | background-color: @selected-background; 119 | text-color: @foreground; 120 | } 121 | #inputbar { 122 | spacing: 0; 123 | text-color: @foreground; 124 | padding: 1px ; 125 | } 126 | #case-indicator { 127 | spacing: 0; 128 | text-color: @foreground; 129 | } 130 | #entry { 131 | spacing: 0; 132 | text-color: @cya; 133 | } 134 | #prompt { 135 | spacing: 0; 136 | text-color: @grn; 137 | } 138 | #inputbar { 139 | children: [ prompt,textbox-prompt-colon,entry,case-indicator ]; 140 | } 141 | #textbox-prompt-colon { 142 | expand: false; 143 | str: " "; 144 | margin: 0px 0.3em 0em 0em; 145 | text-color: @grn; 146 | } 147 | -------------------------------------------------------------------------------- /.config/starship.toml: -------------------------------------------------------------------------------- 1 | palette = "rose-pine" 2 | 3 | [palettes.rose-pine] 4 | overlay = '#26233a' 5 | love = '#eb6f92' 6 | gold = '#f6c177' 7 | rose = '#ebbcba' 8 | pine = '#31748f' 9 | foam = '#9ccfd8' 10 | iris = '#c4a7e7' 11 | 12 | format = "$username $directory $git_branch\n $character" 13 | 14 | [character] 15 | success_symbol = "[>](bold foam)" 16 | error_symbol = "[x](bold love)" 17 | 18 | [directory] 19 | format = "[ $path ]($style)" 20 | style = "fg:pine" 21 | truncation_length = 3 22 | truncation_symbol = "…/" 23 | 24 | [directory.substitutions] 25 | Documents = "󰈙" 26 | Downloads = " " 27 | Music = " " 28 | Pictures = " " 29 | 30 | [git_branch] 31 | format = "[ $symbol $branch ]($style)" 32 | style = "fg:foam" 33 | symbol = "" 34 | 35 | 36 | [username] 37 | disabled = false 38 | format = "[$user ]($style)" 39 | show_always = true 40 | style_root = "fg:iris" 41 | style_user = "fg:iris" 42 | 43 | [aws] 44 | symbol = " " 45 | 46 | [buf] 47 | symbol = " " 48 | 49 | [c] 50 | symbol = " " 51 | 52 | [conda] 53 | symbol = " " 54 | 55 | [crystal] 56 | symbol = " " 57 | 58 | [dart] 59 | symbol = " " 60 | 61 | [docker_context] 62 | symbol = " " 63 | 64 | [elixir] 65 | symbol = " " 66 | 67 | [elm] 68 | symbol = " " 69 | 70 | [fennel] 71 | symbol = " " 72 | 73 | [fossil_branch] 74 | symbol = " " 75 | 76 | [git_commit] 77 | tag_symbol = '  ' 78 | 79 | [golang] 80 | symbol = " " 81 | 82 | [guix_shell] 83 | symbol = " " 84 | 85 | [haskell] 86 | symbol = " " 87 | 88 | [haxe] 89 | symbol = " " 90 | 91 | [hg_branch] 92 | symbol = " " 93 | 94 | [hostname] 95 | ssh_symbol = " " 96 | 97 | [java] 98 | symbol = " " 99 | 100 | [julia] 101 | symbol = " " 102 | 103 | [kotlin] 104 | symbol = " " 105 | 106 | [lua] 107 | symbol = " " 108 | 109 | [memory_usage] 110 | symbol = "󰍛 " 111 | 112 | [meson] 113 | symbol = "󰔷 " 114 | 115 | [nim] 116 | symbol = "󰆥 " 117 | 118 | [nix_shell] 119 | symbol = " " 120 | 121 | [nodejs] 122 | symbol = " " 123 | 124 | [ocaml] 125 | symbol = " " 126 | 127 | [os.symbols] 128 | Alpaquita = " " 129 | Alpine = " " 130 | AlmaLinux = " " 131 | Amazon = " " 132 | Android = " " 133 | Arch = " " 134 | Artix = " " 135 | CentOS = " " 136 | Debian = " " 137 | DragonFly = " " 138 | Emscripten = " " 139 | EndeavourOS = " " 140 | Fedora = " " 141 | FreeBSD = " " 142 | Garuda = "󰛓 " 143 | Gentoo = " " 144 | HardenedBSD = "󰞌 " 145 | Illumos = "󰈸 " 146 | Kali = " " 147 | Linux = " " 148 | Mabox = " " 149 | Macos = " " 150 | Manjaro = " " 151 | Mariner = " " 152 | MidnightBSD = " " 153 | Mint = " " 154 | NetBSD = " " 155 | NixOS = " " 156 | OpenBSD = "󰈺 " 157 | openSUSE = " " 158 | OracleLinux = "󰌷 " 159 | Pop = " " 160 | Raspbian = " " 161 | Redhat = " " 162 | RedHatEnterprise = " " 163 | RockyLinux = " " 164 | Redox = "󰀘 " 165 | Solus = "󰠳 " 166 | SUSE = " " 167 | Ubuntu = " " 168 | Unknown = " " 169 | Void = " " 170 | Windows = "󰍲 " 171 | 172 | [package] 173 | symbol = "󰏗 " 174 | 175 | [perl] 176 | symbol = " " 177 | 178 | [php] 179 | symbol = " " 180 | 181 | [pijul_channel] 182 | symbol = " " 183 | 184 | [python] 185 | symbol = " " 186 | 187 | [rlang] 188 | symbol = "󰟔 " 189 | 190 | [ruby] 191 | symbol = " " 192 | 193 | [rust] 194 | symbol = "󱘗 " 195 | 196 | [scala] 197 | symbol = " " 198 | 199 | [swift] 200 | symbol = " " 201 | 202 | [zig] 203 | symbol = " " 204 | 205 | [gradle] 206 | symbol = " " 207 | -------------------------------------------------------------------------------- /.config/sway/bar.sh: -------------------------------------------------------------------------------- 1 | date_and_week=$(date "+%d/%m/%Y") 2 | current_time=$(date "+%H:%M") 3 | 4 | 5 | battery_device=$(upower --enumerate | grep 'BAT' | head -n 1) 6 | 7 | if [ -z "$battery_device" ]; then 8 | echo "No battery detected" 9 | else 10 | battery_charge=$(upower --show-info "$battery_device" | grep -E "percentage" | awk '{print $2}') 11 | battery_status=$(upower --show-info "$battery_device" | grep -E "state" | awk '{print $2}') 12 | if [ "$battery_status" = "discharging" ]; then 13 | battery_pluggedin='󰁿' # Battery is discharging 14 | else 15 | battery_pluggedin='⚡' # Battery is charging 16 | fi 17 | fi 18 | 19 | audio_volume=$(pamixer --sink `pactl list sinks short | grep RUNNING | awk '{print $1}'` --get-volume) 20 | media_artist=$(playerctl metadata artist) 21 | media_song=$(playerctl metadata title) 22 | player_status=$(playerctl status) 23 | 24 | if [ $player_status = "Playing" ] 25 | then 26 | song_status='▶' 27 | elif [ $player_status = "Paused" ] 28 | then 29 | song_status='⏸' 30 | else 31 | song_status='⏹' 32 | fi 33 | 34 | 35 | echo "$song_status $media_artist - $media_song | $audio_volume% | $battery_pluggedin $battery_charge | $date_and_week | $current_time" 36 | -------------------------------------------------------------------------------- /.config/sway/config: -------------------------------------------------------------------------------- 1 | ### Variables 2 | set $mod Mod4 3 | 4 | output eDP-1 scale 1.3 5 | 6 | set $left h 7 | set $down j 8 | set $up k 9 | set $right l 10 | 11 | set $term kitty 12 | set $file thunar 13 | set $menu rofi -show drun 14 | 15 | exec mako 16 | exec waybar 17 | exec wl-paste --watch clipman store --no-persist 18 | bindsym $mod+v exec clipman pick -t rofi 19 | 20 | # Wallpaper 21 | output * bg ~/.config/sway/nasa.png fill 22 | 23 | exec swayidle -w \ 24 | timeout 180 'swaylock -f' \ 25 | timeout 400 'systemctl suspend' \ 26 | timeout 300 'swaymsg "output * dpms off"' \ 27 | resume 'swaymsg "output * dpms on"' 28 | 29 | default_border none 30 | default_floating_border none 31 | 32 | 33 | ### Input configuration 34 | input "2:14:SynPS/2_Synaptics_TouchPad" { 35 | dwt enabled 36 | tap enabled 37 | natural_scroll enabled 38 | middle_emulation enabled 39 | } 40 | 41 | 42 | # Assign workspaces 43 | assign [app_id="firefox"] 1 44 | assign [app_id="kitty"] 2 45 | assign [app_id="thunar"] 3 46 | 47 | 48 | 49 | 50 | gaps inner 6 51 | 52 | ### Key bindings 53 | bindsym $mod+Return exec $term 54 | bindsym $mod+t exec $term 55 | bindsym $mod+a exec /usr/bin/firefox 56 | bindsym $mod+r exec $menu 57 | bindsym $mod+e exec $file 58 | bindsym $mod+q kill 59 | 60 | # Drag floating windows by holding down $mod and left mouse button. 61 | # Resize them with right mouse button + $mod. 62 | # Despite the name, also works for non-floating windows. 63 | # Change normal to inverse to use left mouse button for resizing and right 64 | # mouse button for dragging. 65 | floating_modifier $mod normal 66 | 67 | # Reload the configuration file 68 | bindsym $mod+Shift+c reload 69 | 70 | # Exit sway (logs you out of your Wayland session) 71 | bindsym $mod+Shift+e exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit' 72 | # 73 | # Moving around: 74 | # 75 | # Move your focus around 76 | bindsym $mod+$left focus left 77 | bindsym $mod+$down focus down 78 | bindsym $mod+$up focus up 79 | bindsym $mod+$right focus right 80 | # Or use $mod+[up|down|left|right] 81 | bindsym $mod+Left focus left 82 | bindsym $mod+Down focus down 83 | bindsym $mod+Up focus up 84 | bindsym $mod+Right focus right 85 | 86 | # Move the focused window with the same, but add Shift 87 | bindsym $mod+Shift+$left move left 88 | bindsym $mod+Shift+$down move down 89 | bindsym $mod+Shift+$up move up 90 | bindsym $mod+Shift+$right move right 91 | # Ditto, with arrow keys 92 | bindsym $mod+Shift+Left move left 93 | bindsym $mod+Shift+Down move down 94 | bindsym $mod+Shift+Up move up 95 | bindsym $mod+Shift+Right move right 96 | # 97 | # Workspaces: 98 | # 99 | # Switch to workspace 100 | bindsym $mod+1 workspace number 1 101 | bindsym $mod+2 workspace number 2 102 | bindsym $mod+3 workspace number 3 103 | bindsym $mod+4 workspace number 4 104 | bindsym $mod+5 workspace number 5 105 | bindsym $mod+6 workspace number 6 106 | bindsym $mod+7 workspace number 7 107 | bindsym $mod+8 workspace number 8 108 | bindsym $mod+9 workspace number 9 109 | bindsym $mod+0 workspace number 10 110 | # Move focused container to workspace 111 | bindsym $mod+Shift+1 move container to workspace number 1 112 | bindsym $mod+Shift+2 move container to workspace number 2 113 | bindsym $mod+Shift+3 move container to workspace number 3 114 | bindsym $mod+Shift+4 move container to workspace number 4 115 | bindsym $mod+Shift+5 move container to workspace number 5 116 | bindsym $mod+Shift+6 move container to workspace number 6 117 | bindsym $mod+Shift+7 move container to workspace number 7 118 | bindsym $mod+Shift+8 move container to workspace number 8 119 | bindsym $mod+Shift+9 move container to workspace number 9 120 | bindsym $mod+Shift+0 move container to workspace number 10 121 | # Note: workspaces can have any name you want, not just numbers. 122 | # We just use 1-10 as the default. 123 | # 124 | # Layout stuff: 125 | # 126 | bindsym $mod+b splith 127 | bindsym $mod+u splitv 128 | bindsym $mod+s layout stacking 129 | bindsym $mod+w layout tabbed 130 | bindsym $mod+o layout toggle split 131 | bindsym $mod+f fullscreen 132 | bindsym $mod+space floating toggle 133 | bindsym $mod+Shift+space focus mode_toggle 134 | bindsym $mod+i focus parent 135 | 136 | # Resizing containers: 137 | mode "resize" { 138 | bindsym $left resize shrink width 10px 139 | bindsym $down resize grow height 10px 140 | bindsym $up resize shrink height 10px 141 | bindsym $right resize grow width 10px 142 | bindsym Left resize shrink width 10px 143 | bindsym Down resize grow height 10px 144 | bindsym Up resize shrink height 10px 145 | bindsym Right resize grow width 10px 146 | bindsym Escape mode "default" 147 | } 148 | bindsym $mod+n mode "resize" 149 | # 150 | # Scratchpad: 151 | # 152 | # Sway has a "scratchpad", which is a bag of holding for windows. 153 | # You can send windows there and get them back later. 154 | 155 | # Move the currently focused window to the scratchpad 156 | bindsym $mod+Shift+minus move scratchpad 157 | 158 | # Show the next scratchpad window or hide the focused scratchpad window. 159 | # If there are multiple scratchpad windows, this command cycles through them. 160 | bindsym $mod+minus scratchpad show 161 | 162 | # 163 | # Utilities: 164 | # 165 | bindsym --locked XF86AudioMute exec wpctl set-mute \@DEFAULT_SINK@ toggle 166 | bindsym --locked XF86AudioLowerVolume exec wpctl set-volume \@DEFAULT_SINK@ 5%- 167 | bindsym --locked XF86AudioRaiseVolume exec wpctl set-volume \@DEFAULT_SINK@ 5%+ 168 | bindsym --locked XF86Favorites exec playerctl play-pause 169 | bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%- 170 | bindsym --locked XF86MonBrightnessUp exec brightnessctl set 5%+ 171 | bindsym Print exec grim -t png -l 0 -g "$(slurp)" 172 | 173 | 174 | 175 | include /etc/sway/config.d/* 176 | -------------------------------------------------------------------------------- /.config/sway/nasa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h1tarxeth/dots/826fc11a264d0da20e05f445903e8e97f7099f69/.config/sway/nasa.png -------------------------------------------------------------------------------- /.config/swaylock/config: -------------------------------------------------------------------------------- 1 | color=1e1e2e 2 | bs-hl-color=f5e0dc 3 | caps-lock-bs-hl-color=f5e0dc 4 | caps-lock-key-hl-color=a6e3a1 5 | inside-color=00000000 6 | inside-clear-color=00000000 7 | inside-caps-lock-color=00000000 8 | inside-ver-color=00000000 9 | inside-wrong-color=00000000 10 | key-hl-color=a6e3a1 11 | layout-bg-color=00000000 12 | layout-border-color=00000000 13 | layout-text-color=cdd6f4 14 | line-color=00000000 15 | line-clear-color=00000000 16 | line-caps-lock-color=00000000 17 | line-ver-color=00000000 18 | line-wrong-color=00000000 19 | ring-color=b4befe 20 | ring-clear-color=f5e0dc 21 | ring-caps-lock-color=fab387 22 | ring-ver-color=89b4fa 23 | ring-wrong-color=eba0ac 24 | separator-color=00000000 25 | text-color=cdd6f4 26 | text-clear-color=f5e0dc 27 | text-caps-lock-color=fab387 28 | text-ver-color=89b4fa 29 | text-wrong-color=eba0ac 30 | -------------------------------------------------------------------------------- /.config/tmux/tmux.conf: -------------------------------------------------------------------------------- 1 | source-file ~/.config/tmux/tmux.reset.conf 2 | set-option -g default-terminal 'screen-254color' 3 | set-option -g terminal-overrides ',xterm-256color:RGB' 4 | 5 | set -g prefix ^A 6 | set -g base-index 1 # start indexing windows at 1 instead of 0 7 | set -g escape-time 0 # zero-out escape time delay 8 | set -g history-limit 20000 # increase history size (from 2,000) 9 | set -g renumber-windows on # renumber all windows when any window is closed 10 | set -g set-clipboard on # use system clipboard 11 | set -g status-position top # macOS / darwin style 12 | set -g default-terminal "${TERM}" 13 | setw -g mode-keys vi 14 | set -g pane-active-border-style 'fg=magenta,bg=default' 15 | set -g pane-border-style 'fg=brightblack,bg=default' 16 | set -g detach-on-destroy off # don't exit from tmux when closing a session 17 | set-option -g status-style bg=default 18 | set -g status-position bottom 19 | 20 | set -g @continuum-boot-options 'kitty' 21 | set -g @continuum-restore 'on' 22 | 23 | set -g @fzf-url-fzf-options '-p 60%,30% --prompt=" " --border-label=" Open URL "' 24 | set -g @fzf-url-history-limit '2000' 25 | set -g @minimal-tmux-left false 26 | set -g @minimal-tmux-right false 27 | set -g @minimal-tmux-fg "#c4a7e7" 28 | set -g @minimal-tmux-bg "#1f1d2e" 29 | set -g @minimal-tmux-use-arrow true 30 | set -g @minimal-tmux-right-arrow "" 31 | set -g @minimal-tmux-left-arrow "" 32 | set -g @minimal-tmux-justify "centre" 33 | 34 | set -g @plugin 'tmux-plugins/tpm' 35 | set -g @plugin 'tmux-plugins/tmux-resurrect' 36 | set -g @plugin 'tmux-plugins/tmux-continuum' 37 | set -g @plugin 'niksingh710/minimal-tmux-status' 38 | set -g @plugin 'tmux-plugins/tmux-sensible' 39 | set -g @plugin 'tmux-plugins/tmux-yank' 40 | set -g @plugin 'fcsonline/tmux-thumbs' 41 | set -g @plugin 'wfxr/tmux-fzf-url' 42 | set -g @plugin 'joshmedeski/t-smart-tmux-session-manager' 43 | 44 | 45 | run '~/.tmux/plugins/tpm/tpm' 46 | -------------------------------------------------------------------------------- /.config/tmux/tmux.reset.conf: -------------------------------------------------------------------------------- 1 | # First remove *all* keybindings 2 | # unbind-key -a 3 | # Now reinsert all the regular tmux keys 4 | bind ^C new-window -c "$HOME" 5 | bind ^u new-session -c "$HOME" 6 | bind ^D detach 7 | bind * list-clients 8 | 9 | bind H previous-window 10 | bind L next-window 11 | 12 | bind r command-prompt "rename-window %%" 13 | bind R source-file ~/.config/tmux/tmux.conf 14 | bind ^o last-window 15 | bind ^W list-windows 16 | bind w list-windows 17 | bind m resize-pane -Z 18 | bind ^L refresh-client 19 | bind l refresh-client 20 | bind | split-window -h 21 | bind s split-window -v -c "#{pane_current_path}" 22 | bind v split-window -h -c "#{pane_current_path}" 23 | bind '"' choose-window 24 | bind h select-pane -L 25 | bind j select-pane -D 26 | bind k select-pane -U 27 | bind l select-pane -R 28 | bind -r -T prefix , resize-pane -L 20 29 | bind -r -T prefix . resize-pane -R 20 30 | bind -r -T prefix - resize-pane -D 7 31 | bind -r -T prefix = resize-pane -U 7 32 | bind : command-prompt 33 | # bind * setw synchronize-panes 34 | bind P set pane-border-status 35 | bind z kill-pane 36 | bind y swap-pane -D 37 | bind S choose-session 38 | bind-key -T copy-mode-vi v send-keys -X begin-selection 39 | bind-key x kill-pane # skip "kill-pane 1? (y/n)" prompt 40 | -------------------------------------------------------------------------------- /.config/waybar/config: -------------------------------------------------------------------------------- 1 | { 2 | "position": "top", 3 | "height": 35, 4 | "margin-top": 0, 5 | "modules-left": ["sway/workspaces"], 6 | "modules-center": ["clock","custom/playerlabel"], 7 | "modules-right": ["tray","battery","network","pulseaudio"], 8 | 9 | "hyprland/workspaces": { 10 | "disable-scroll": true, 11 | "all-outputs": true, 12 | "format": "{icon}", 13 | "format-icons": { 14 | "default":"", 15 | "active":"", 16 | } 17 | }, 18 | 19 | "clock": { 20 | "format": "{:%I:%M}", 21 | "format-alt": "{:%a %b %d}", 22 | "tooltip-format": "{:%B %Y}\n{calendar}", 23 | }, 24 | "backlight": { 25 | "device": "DP-1", 26 | "format": "{icon}", 27 | "format-icons": [ 28 | "󰃞 ", 29 | "󰃟 ", 30 | "󰃠 ", 31 | ], 32 | "on-click": "{percent}%", 33 | }, 34 | "network": { 35 | "format-wifi": "󰖩", 36 | "format-ethernet": "󰈀", 37 | "format-disconnected": "Disconnected  ", 38 | }, 39 | "pulseaudio": { 40 | "format": "{icon}", 41 | "format-alt": "{icon} {volume}%", 42 | "format-bluetooth": "  {volume}%", 43 | "format-bluetooth-muted": "󰝟 ", 44 | "format-muted": "󰝟 ", 45 | "format-icons": { 46 | "headphone": " ", 47 | "hands-free": "", 48 | "headset": "", 49 | "phone": " ", 50 | "portable": " ", 51 | "car": " ", 52 | "default": [ 53 | " ", 54 | " ", 55 | " " 56 | ] 57 | }, 58 | "on-double-click": "pavucontrol" 59 | }, 60 | "battery": { 61 | "bat": "BAT0", 62 | "adapter": "ADP0", 63 | "interval": 60, 64 | "states": { 65 | "warning": 25, 66 | "critical": 15 67 | }, 68 | "full":99, 69 | "max-length": 20, 70 | "format": "{icon}", 71 | "format-warning": "{icon} {capacity}%", 72 | "format-critical": "{icon} {capacity}%", 73 | "format-charging": "", 74 | "format-plugged": "", 75 | "format-alt": "{capacity}%", 76 | "format-full": "", 77 | "format-icons": [ 78 | "", 79 | "", 80 | "", 81 | "", 82 | "" 83 | ], 84 | }, 85 | "custom/power-menu": { 86 | "format": "", 87 | "on-click": "wlogout", 88 | }, 89 | "custom/playerlabel": { 90 | "format": "/ {} ", 91 | "return-type": "json", 92 | "max-length": 20, 93 | "exec": "playerctl -a metadata --format '{\"text\": \"{{markup_escape(title)}}\", \"tooltip\": \"{{playerName}} : {{markup_escape(title)}}\", \"alt\": \"{{status}}\", \"class\": \"{{status}}\"}' -F", 94 | "on-click": "playerctl play-pause", 95 | "on-click-middle": "playerctl previous", 96 | "on-click-right": "playerctl next", 97 | }, 98 | } 99 | -------------------------------------------------------------------------------- /.config/waybar/style.css: -------------------------------------------------------------------------------- 1 | @define-color base #191724; 2 | @define-color surface #1f1d2e; 3 | @define-color overlay #26233a; 4 | 5 | @define-color muted #6e6a86; 6 | @define-color subtle #908caa; 7 | @define-color text #e0def4; 8 | 9 | @define-color love #eb6f92; 10 | @define-color gold #f6c177; 11 | @define-color rose #ebbcba; 12 | @define-color pine #31748f; 13 | @define-color foam #9ccfd8; 14 | @define-color iris #c4a7e7; 15 | 16 | @define-color highlightLow #21202e; 17 | @define-color highlightMed #403d52; 18 | @define-color highlightHigh #524f67; 19 | 20 | * { 21 | color: @text; 22 | font-family: fira-code; 23 | font-size: 16px; 24 | border-radius: 20px; 25 | min-height: 0; 26 | margin: 0; 27 | border: 0; 28 | } 29 | 30 | window { 31 | } 32 | window#waybar { 33 | background: rgba(0, 0, 0, 0); 34 | } 35 | /*-----module groups----*/ 36 | .modules-right { 37 | background-color: @base; 38 | margin: 2px 10px 0 0; 39 | padding: 0 10px 0 0; 40 | } 41 | .modules-center { 42 | background-color: @base; 43 | margin: 2px 0 0 0; 44 | } 45 | .modules-left { 46 | background-color: @base; 47 | padding: 0 10px; 48 | margin: 2px 0 0 5px; 49 | } 50 | /*-----modules indv----*/ 51 | #workspaces button { 52 | color: @text; 53 | padding: 1px 5px; 54 | background-color: @base; 55 | opacity: 0.5; 56 | } 57 | 58 | #workspaces button.active { 59 | color: @rose; 60 | transition: all 0.3s ease-in-out; 61 | opacity: 1; 62 | } 63 | 64 | #workspaces button:hover { 65 | box-shadow: inherit; 66 | background-color: @surface; 67 | } 68 | 69 | #workspaces button.focused { 70 | background-color: @surface; 71 | } 72 | 73 | #workspaces button.urgent { 74 | color: @base; 75 | background-color: @red; 76 | /* border-radius: 15px; */ 77 | } 78 | 79 | #clock, 80 | #battery, 81 | #network, 82 | #pulseaudio, 83 | #custom-media, 84 | #tray, 85 | #custom-power { 86 | padding: 0 10px; 87 | } 88 | 89 | #custom-power { 90 | border-radius: 100px; 91 | margin: 5px 5px; 92 | padding: 1px 1px 1px 6px; 93 | color: @love; 94 | } 95 | 96 | #clock, 97 | #custom-playerlabel { 98 | color: @gold; 99 | } 100 | 101 | #battery { 102 | color: @iris; 103 | } 104 | #network { 105 | color: @foam; 106 | } 107 | 108 | #pulseaudio { 109 | border-radius: 100px; 110 | margin: 5px 5px; 111 | padding: 1px 1px 1px 6px; 112 | color: @rose; 113 | } 114 | 115 | #pulseaudio.muted { 116 | color: @love; 117 | } 118 | 119 | #battery.charging { 120 | color: @gold; 121 | } 122 | #battery.warning:not(.charging) { 123 | color: @love; 124 | } 125 | #battery.critical:not(.charging) { 126 | color: @love; 127 | } 128 | -------------------------------------------------------------------------------- /.config/zathura/zathurarc: -------------------------------------------------------------------------------- 1 | # https://github.com/rose-pine/rose-pine-theme 2 | # Soho vibes for Zathura: Rosé Pine Moon 3 | # 4 | # Usage: 5 | # Copy contents of this file to ~/.config/zathura/zathurarc 6 | # 7 | # Change 'recolor' and 'recolor-keephue' to true to change 8 | # the document colors for a more uniform viewing experience. 9 | set selection-clipboard clipboard 10 | 11 | set default-bg "#232136" 12 | set default-fg "#e0def4" 13 | 14 | set statusbar-fg "#e0def4" 15 | set statusbar-bg "#59546d" 16 | 17 | set inputbar-bg "#817c9c" 18 | set inputbar-fg "#232136" 19 | 20 | set notification-bg "#817c9c" 21 | set notification-fg "#232136" 22 | 23 | set notification-error-bg "#817c9c" 24 | set notification-error-fg "#ea9a97" 25 | 26 | set notification-warning-bg "#817c9c" 27 | set notification-warning-fg "#f6c177" 28 | 29 | set highlight-color "rgba(0x3e, 0x8f, 0xb0, 0.5)" 30 | set highlight-active-color "rgba(0x9c, 0xcf, 0xd8, 0.5)" 31 | 32 | set completion-bg "#817c9c" 33 | set completion-fg "#9ccfd8" 34 | 35 | set completion-highlight-fg "#e0def4" 36 | set completion-highlight-bg "#9ccfd8" 37 | 38 | set recolor-lightcolor "#232136" 39 | set recolor-darkcolor "#e0def4" 40 | 41 | set recolor "true" 42 | set recolor-keephue "true" 43 | -------------------------------------------------------------------------------- /.config/zed/keymap.json: -------------------------------------------------------------------------------- 1 | // Zed keymap 2 | // 3 | // For information on binding keys, see the Zed 4 | // documentation: https://zed.dev/docs/key-bindings 5 | // 6 | // To see the default key bindings run `zed: open default keymap` 7 | // from the command palette. 8 | [ 9 | { 10 | "context": "Workspace", 11 | "bindings": { 12 | "ctrl-w t": "workspace::OpenInTerminal", 13 | "ctrl-w n": "workspace::NewTerminal", 14 | "ctrl-w k": "terminal_panel::ToggleFocus" 15 | } 16 | }, 17 | { 18 | "context": "Editor", 19 | "bindings": {} 20 | }, 21 | { 22 | "context": "Editor && VimControl && !VimWaiting && !menu", 23 | "bindings": { 24 | "ctrl-w z": "workspace::ToggleZoom", 25 | "ctrl-w t": "terminal_panel::ToggleFocus", 26 | "g ]": "editor::GoToDiagnostic", 27 | "g [": "editor::GoToPrevDiagnostic", 28 | "g r": "editor::FindAllReferences", 29 | "space /": "editor::ToggleComments", 30 | "shift-k": "editor::Hover", 31 | "space l f": "editor::Format", 32 | "space l a": "editor::ToggleCodeActions", 33 | "space f": "file_finder::Toggle", 34 | "space o": "tab_switcher::Toggle" 35 | } 36 | }, 37 | { 38 | "context": "Editor && vim_mode == visual && !VimWaiting && !VimObject", 39 | "bindings": { 40 | "shift-j": "editor::MoveLineDown", 41 | "shift-k": "editor::MoveLineUp" 42 | } 43 | }, 44 | { 45 | "context": "Terminal", 46 | "bindings": { 47 | "ctrl-w z": "workspace::ToggleZoom", 48 | "ctrl-w t": "terminal_panel::ToggleFocus" 49 | } 50 | } 51 | ] 52 | -------------------------------------------------------------------------------- /.config/zed/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "cursor_blink": false, 3 | "scrollbar": { "show": "never" }, 4 | "scroll_beyond_last_line": "off", 5 | "vertical_scroll_margin": 0, 6 | "auto_indent_on_paste": true, 7 | "vim_mode": true, 8 | "ui_font_size": 20, 9 | "buffer_font_size": 20, 10 | "autosave": { 11 | "after_delay": { 12 | "milliseconds": 1000 13 | } 14 | }, 15 | "indent_guides": { 16 | "enabled": true, 17 | "coloring": "indent_aware" 18 | }, 19 | "command_aliases": { 20 | "W": "w", 21 | "Wq": "wq", 22 | "Q": "q" 23 | }, 24 | "terminal": { 25 | "dock": "bottom" 26 | }, 27 | "features": { 28 | "inline_completion_provider": "none" 29 | }, 30 | "inlay_hints": { 31 | "enabled": true 32 | }, 33 | "telemetry": { 34 | "diagnostics": false, 35 | "metrics": false 36 | }, 37 | "project_panel": { 38 | "button": true, 39 | "dock": "left", 40 | "git_status": false 41 | }, 42 | "notification_panel": { 43 | "button": false 44 | }, 45 | "chat_panel": { 46 | "button": false 47 | }, 48 | "collaboration_panel": { 49 | "button": false 50 | }, 51 | "theme": { 52 | "mode": "system", 53 | "light": "Ayu Dark", 54 | "dark": "Rosé Pine" 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .config/tmux/plugins/ 2 | -------------------------------------------------------------------------------- /.zshrc: -------------------------------------------------------------------------------- 1 | ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git" 2 | 3 | if [ ! -d "$ZINIT_HOME" ]; then 4 | mkdir -p "$(dirname $ZINIT_HOME)" 5 | git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME" 6 | fi 7 | 8 | source "${ZINIT_HOME}/zinit.zsh" 9 | 10 | zinit ice as"command" from"gh-r" \ 11 | atclone"./starship init zsh > init.zsh; ./starship completions zsh > _starship" \ 12 | atpull"%atclone" src"init.zsh" 13 | zinit light starship/starship 14 | 15 | # Add in zsh plugins 16 | zinit light zsh-users/zsh-syntax-highlighting 17 | zinit light zsh-users/zsh-completions 18 | zinit light zsh-users/zsh-autosuggestions 19 | # zinit light Aloxaf/fzf-tab 20 | 21 | # Add in snippets 22 | zinit snippet OMZP::git 23 | zinit snippet OMZP::sudo 24 | zinit snippet OMZP::archlinux 25 | zinit snippet OMZP::command-not-found 26 | 27 | # Load completions 28 | autoload -Uz compinit && compinit 29 | 30 | zinit cdreplay -q 31 | 32 | # History 33 | HISTSIZE=5000 34 | HISTFILE=~/.zsh_history 35 | SAVEHIST=$HISTSIZE 36 | HISTDUP=erase 37 | 38 | setopt appendhistory 39 | setopt sharehistory 40 | setopt hist_ignore_space 41 | setopt hist_ignore_all_dups 42 | setopt hist_save_no_dups 43 | setopt hist_ignore_dups 44 | setopt hist_find_no_dups 45 | 46 | # Completion styling 47 | zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' 48 | zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" 49 | zstyle ':completion:*' menu off 50 | # zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath' 51 | # zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath' 52 | 53 | # Aliases 54 | alias c='clear' 55 | alias sus="systemctl suspend" 56 | alias shno="shutdown -h now" 57 | alias nv="nvim" 58 | alias v="vim" 59 | alias cd="z" 60 | alias ls="eza" 61 | alias ccp="clipman clear" 62 | alias qp="pacman -Slq | fzf --multi --preview 'pacman -Si {1}' | xargs -ro sudo pacman -S" 63 | 64 | # Shell integrations 65 | eval "$(fzf --zsh)" 66 | eval "$(zoxide init --cmd cd zsh)" 67 | eval "$(zoxide init zsh)" 68 | 69 | export GOPATH=$HOME/go 70 | export PATH=$GOPATH/bin:$PATH 71 | 72 | # bun completions 73 | [ -s "/home/hitarth/.bun/_bun" ] && source "/home/hitarth/.bun/_bun" 74 | 75 | # bun 76 | export BUN_INSTALL="$HOME/.bun" 77 | export PATH="$BUN_INSTALL/bin:$PATH" 78 | export DISPLAY=:0 79 | export EDITOR=nvim 80 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # My dotfiles 2 | --------------------------------------------------------------------------------