diff --git a/.tmux.conf b/.tmux.conf index 0eb457d..8a65218 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -1,10 +1,25 @@ -set -g default-terminal "xterm-kitty" -set -g terminal-overrides "xterm-kitty" -# true colours support -# set -ga terminal-overrides ",*256col*:Tc" -set -ga terminal-overrides ",xterm-256color:Tc" -set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' +set -g default-terminal "xterm-kitty" +set -g terminal-overrides "xterm-kitty" +# true colours support +# set -ga terminal-overrides ",*256col*:Tc" +set -ga terminal-overrides ",xterm-256color:Tc" +set -as terminal-overrides ',*:Smulx=\E[4::%p1%dm' set-option -g default-shell /home/linuxbrew/.linuxbrew/bin/zsh setw -g mode-keys vi -# underscore colours - needs tmux-3.0 +# underscore colours - needs tmux-3.0 set -as terminal-overrides ',*:Setulc=\E[58::2::%p1%{65536}%/%d::%p1%{256}%/%{255}%&%d::%p1%{255}%&%d%;m' +set-option -g status-position top + +# List of plugins +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'erikw/tmux-powerline' + +# Other examples: +# set -g @plugin 'github_username/plugin_name' +# set -g @plugin 'github_username/plugin_name#branch' +# set -g @plugin 'git@github.com:user/plugin' +# set -g @plugin 'git@bitbucket.com:user/plugin' + +# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) +run '~/.tmux/plugins/tpm/tpm' diff --git a/.vimrc b/.vimrc new file mode 100644 index 0000000..fad5843 --- /dev/null +++ b/.vimrc @@ -0,0 +1,18 @@ +" Make the behavior be like debian.vim +set nocompatible +set backspace=indent,eol,start +set history=50 +set ruler +set nomodeline +syntax on + +set number +set relativenumber +set cursorline +set clipboard=unnamed,unnamedplus +set expandtab +set tabstop=4 +set softtabstop=4 +set shiftwidth=4 +set autoindent +set smartindent diff --git a/alacritty.toml b/alacritty.toml index 7b7a4bd..d797d62 100644 --- a/alacritty.toml +++ b/alacritty.toml @@ -7,15 +7,16 @@ program = "/home/linuxbrew/.linuxbrew/bin/tmux" opacity = 0.9 [font] size = 13.0 -offset.x = -1 +# offset.x = -1 [font.normal] -family = "FiraCode Nerd Font" +# family = "FiraCode Nerd Font" +family = "Berkeley Mono" [font.bold] -family = "FiraCode Nerd Font" +family = "Berkeley Mono" [font.italic] -family = "FiraCode Nerd Font" +family = "Berkeley Mono" [font.bold_italic] -family = "FiraCode Nerd Font" +family = "Berkeley Mono" [cursor.style] shape = "Beam" blinking = "Never" diff --git a/contour.yml b/contour.yml index 3d7195f..3a89bf1 100644 --- a/contour.yml +++ b/contour.yml @@ -644,7 +644,7 @@ profiles: # Font related configuration (font face, styles, size, rendering mode). font: # Initial font size in pixels. - size: 10 + size: 9 # Font Locator API # Selects an engine to use for locating font files on the system. @@ -670,7 +670,7 @@ profiles: # Uses builtin textures for pixel-perfect box drawing. # If disabled, the font's provided box drawing characters # will be used (Default: true). - builtin_box_drawing: true + builtin_box_drawing: false # Font render modes tell the font rasterizer engine what rendering technique to use. # @@ -710,7 +710,7 @@ profiles: # supports. # # Default: [] - features: ["ss03"] + features: [] #bold: "Hack" #italic: "Hack" @@ -719,7 +719,7 @@ profiles: # This is a special font to be used for displaying unicode symbols # that are to be rendered in emoji presentation. # Defaults to "emoji". - emoji: "emoji" + emoji: "BerkeleyMono Nerd Font" draw_bold_text_with_bright_colors: false diff --git a/dotback b/dotback new file mode 100755 index 0000000..8589a80 --- /dev/null +++ b/dotback @@ -0,0 +1,19 @@ +#!/bin/bash + +# Neovim +cp $HOME/.vimrc . +cp $HOME/.config/nvim . -r + +# Hyprland +cp $HOME/.config/hypr . -r +cp $HOME/.config/waybar . -r +cp $HOME/.config/wlogout . -r + +# Terminal Emulators +cp $HOME/.config/kitty/kitty.conf . +cp $HOME/.config/alacritty/alacritty.toml . +cp $HOME/.var/app/org.contourterminal.Contour/config/contour/contour.yml . + +# Tmux +cp $HOME/.tmux.conf . +cp $HOME/.config/tmux-powerline . -r diff --git a/hypr/hyprland.conf b/hypr/hyprland.conf index b32c0e5..a7130a7 100644 --- a/hypr/hyprland.conf +++ b/hypr/hyprland.conf @@ -29,7 +29,7 @@ xwayland { # See https://wiki.hyprland.org/Configuring/Keywords/ # Set programs that you use -$terminal = kitty +$terminal = flatpak run org.contourterminal.Contour $fileManager = thunar $menu = wofi --show drun @@ -60,6 +60,9 @@ exec-once = dhcpcd exec-once = sleep 5 && 1password --silent exec-once = sleep 5 && dropbox +# dark mode +exec = gsettings set org.gnome.desktop.interface color-scheme "prefer-dark" + ############################# ### ENVIRONMENT VARIABLES ### @@ -220,6 +223,7 @@ bind = $mainMod, T, exec, $terminal bind = $mainMod, C, killactive, bind = $mainMod, E, exec, $fileManager bind = $mainMod, Z, exec, cd /home/user/RustIsBestLang/src/bin && /home/user/.local/bin/zed +bind = $mainMod, O, exec, obsidian bind = $mainMod, V, togglefloating, bind = $mainMod, R, exec, $menu bind = $mainMod, P, pseudo, # dwindle diff --git a/kitty.conf b/kitty.conf index 97faf36..7809283 100644 --- a/kitty.conf +++ b/kitty.conf @@ -1,22 +1,48 @@ shell /home/linuxbrew/.linuxbrew/bin/zsh -# font_family Berkeley Mono + +# font_family Berkeley Mono Regular +# italic_font Berkeley Mono Italic +# bold_font Berkeley Mono Bold +# bold_italic_font Berkeley Mono Bold Italic +# font_features BerkeleyMono-Regular +ss03 +# font_features BerkeleyMono-Bold +ss03 +# font_features BerkeleyMono-Italic +ss03 +# font_features BerkeleyMono-BoldItalic +ss03 +# modify_font cell_height +3px + +# font_family Copyright Fort Foundry LLC + +font_family BerkeleyMono Nerd Font +italic_font BerkeleyMono Nerd Font Italic +bold_font BerkeleyMono Nerd Font Bold +bold_italic_font BerkeleyMono Nerd Font Bold Italic +font_features BerkeleyMonoNF-Regular +ss03 +font_features BerkeleyMonoNF-Bold +ss03 +font_features BerkeleyMonoNF-Italic +ss03 +font_features BerkeleyMonoNF-BoldItalic +ss03 +modify_font cell_height +3px + # install from AUR # yay -S ttf-jetbrains-mono-nerd -font_family JetBrainsMono NF +# font_family JetBrainsMono NF # font_family JetBrainsMono NF Regular -# font_family FiraCode Nerd Font Reg -# font_family MonoLisa Regular Nerd Font Complete Mono -# install from AUR -# yay -S ttf-victor-mono-nerd -# italic_font VictorMono NF Medium Italic # italic_font JetBrainsMono NF Italic # bold_font JetBrainsMono NF Bold # bold_italic_font JetBrainsMono NF Bold Italic -font_features JetBrainsMonoNF-Regular +zero +cv15 +cv18 +cv20 +cv11 +cv12 -font_features JetBrainsMonoNF-Italic +zero +cv15 +cv18 +cv20 +cv11 +cv12 -font_features JetBrainsMonoNF-Bold +zero +cv15 +cv18 +cv20 +cv11 +cv12 -font_features JetBrainsMonoNF-BoldItalic +zero +cv15 +cv18 +cv20 +cv11 +cv12 +# font_features JetBrainsMonoNF-Regular +zero +cv15 +cv18 +cv20 +cv11 +cv12 +# font_features JetBrainsMonoNF-Italic +zero +cv15 +cv18 +cv20 +cv11 +cv12 +# font_features JetBrainsMonoNF-Bold +zero +cv15 +cv18 +cv20 +cv11 +cv12 +# font_features JetBrainsMonoNF-BoldItalic +zero +cv15 +cv18 +cv20 +cv11 +cv12 + +# font_family FiraCode Nerd Font Reg # font_features FiraCodeNF-Reg +ss09 +ss10 +cv06 +cv27 + +# font_family MonoLisa Regular Nerd Font Complete Mono + +# install from AUR +# yay -S ttf-victor-mono-nerd +# italic_font VictorMono NF Medium Italic + font_size 14 disable_ligatures cursor # modify_font cell_width 90% @@ -30,3 +56,16 @@ tab_bar_style fade tab_powerline_style angled tab_bar_align center tab_activity_symbol ⌛ + +map f1 goto_tab 1 +map f2 goto_tab 2 +map f3 goto_tab 3 +map f4 goto_tab 4 +map f5 goto_tab 5 +map f6 goto_tab 6 +map f7 goto_tab 7 +map f8 goto_tab 8 +map f9 goto_tab 9 +map f10 goto_tab 10 +map f11 goto_tab 11 +map f12 goto_tab 12 diff --git a/nvim/lazy-lock.json b/nvim/lazy-lock.json index 48fd8da..df0dddd 100644 --- a/nvim/lazy-lock.json +++ b/nvim/lazy-lock.json @@ -17,24 +17,25 @@ "cmp-nvim-lsp": { "branch": "main", "commit": "39e2eda76828d88b773cc27a3f61d2ad782c922d" }, "cmp-path": { "branch": "main", "commit": "91ff86cd9c29299a64f968ebb45846c485725f23" }, "cmp_luasnip": { "branch": "master", "commit": "05a9ab28b53f71d1aece421ef32fee2cb857a843" }, - "codesnap.nvim": { "branch": "main", "commit": "8f03a0795bc3321c2d75233076f13bbb92bdbfb5" }, + "codesnap.nvim": { "branch": "main", "commit": "06d8e345e7be43a5b2bd67a86a3993da91c59781" }, "diffview.nvim": { "branch": "main", "commit": "4516612fe98ff56ae0415a259ff6361a89419b0a" }, "dressing.nvim": { "branch": "master", "commit": "6741f1062d3dc6e4755367a7e9b347b553623f04" }, "eslint.nvim": { "branch": "main", "commit": "158f2289907d377018752fcfe0d61b746dc11767" }, "feline.nvim": { "branch": "master", "commit": "3587f57480b88e8009df7b36dc84e9c7ff8f2c49" }, "fidget.nvim": { "branch": "main", "commit": "0ba1e16d07627532b6cae915cc992ecac249fb97" }, - "fzf-lua": { "branch": "main", "commit": "3b91c1a471160bd8620bdca8f18743d954994daa" }, + "fzf-lua": { "branch": "main", "commit": "975534f4861e2575396716225c1202572645583d" }, "git-conflict.nvim": { "branch": "main", "commit": "bfd9fe6fba9a161fc199771d85996236a0d0faad" }, - "gitsigns.nvim": { "branch": "main", "commit": "39b5b6f48bde0595ce68007ffce408c5d7ac1f79" }, + "gitsigns.nvim": { "branch": "main", "commit": "7178d1a430dcfff8a4c92d78b9e39e0297a779c0" }, "goto-preview": { "branch": "main", "commit": "1519ea3512828c944eed5b2bbb66a8f8deb92447" }, "haskell-vim": { "branch": "master", "commit": "f35d02204b4813d1dbe8b0e98cc39701a4b8e15e" }, "heirline.nvim": { "branch": "master", "commit": "0d797435e54645a5f98bad7ad6046aac1ef95c1e" }, "hlargs.nvim": { "branch": "main", "commit": "cc0d9ee75e5ffba730393049119361b9e3a5b1b6" }, "hop.nvim": { "branch": "master", "commit": "036462a345792279c58f2f6445756efab706f04a" }, "indent-blankline.nvim": { "branch": "master", "commit": "65e20ab94a26d0e14acac5049b8641336819dfc7" }, - "lazy.nvim": { "branch": "main", "commit": "6fdd904ee45b66d933c5d2f72bcec337e13744f8" }, - "lazydev.nvim": { "branch": "main", "commit": "78d8a11fbd02ad4eafa07dd8a43a959a69fb3bf8" }, - "legendary.nvim": { "branch": "master", "commit": "847af406e688e172934ec91ba12088ffcd497e1f" }, + "lazy.nvim": { "branch": "main", "commit": "1d451b4c2ce957da05e2123ce1a001804fc7ea96" }, + "lazydev.nvim": { "branch": "main", "commit": "cea5d0fb556cdc35122d9cae772e7e0ed65b4505" }, + "leetcode.nvim": { "branch": "master", "commit": "02fb2c855658ad6b60e43671f6b040c812181a1d" }, + "legendary.nvim": { "branch": "master", "commit": "3a7a91ef7b2d95bcda088d7a80c84a0fffa1850c" }, "listish.nvim": { "branch": "master", "commit": "3bc4bb02036f3802c6428c6232633d3192ac3604" }, "lsp_signature.nvim": { "branch": "master", "commit": "a38da0a61c172bb59e34befc12efe48359884793" }, "lspkind.nvim": { "branch": "master", "commit": "67ec67c68f05ca41dab0d426c9e7c94ad86085f9" }, @@ -43,12 +44,13 @@ "markdown-toc.nvim": { "branch": "main", "commit": "75eabbdcb921f402b2e5b476e1a797a1004cdeaa" }, "marks.nvim": { "branch": "master", "commit": "74e8d01b2a2131b6e46354cffc553aa7f81bcf5b" }, "mason-lspconfig.nvim": { "branch": "main", "commit": "37a336b653f8594df75c827ed589f1c91d91ff6c" }, - "mason.nvim": { "branch": "main", "commit": "0950b15060067f752fde13a779a994f59516ce3d" }, + "mason.nvim": { "branch": "main", "commit": "f96a31855fa8aea55599cea412fe611b85a874ed" }, "melange-nvim": { "branch": "master", "commit": "800490ee87ce3e1b4afe751ff81f2864cb01937d" }, "modicator.nvim": { "branch": "main", "commit": "d1d327fd4bdfc3af4cfdf83b85c2eaefa71de7a8" }, "neogit": { "branch": "master", "commit": "a20031fb5d7d12148764764059243135085e5c9b" }, - "null-ls.nvim": { "branch": "main", "commit": "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7" }, - "nvim-autopairs": { "branch": "master", "commit": "c15de7e7981f1111642e7e53799e1211d4606cb9" }, + "none-ls.nvim": { "branch": "main", "commit": "0d1b3fa2ad0b371b94cb4b9a27ba6e5a1a915c91" }, + "nui.nvim": { "branch": "main", "commit": "61574ce6e60c815b0a0c4b5655b8486ba58089a1" }, + "nvim-autopairs": { "branch": "master", "commit": "78a4507bb9ffc9b00f11ae0ac48243d00cb9194d" }, "nvim-cmp": { "branch": "main", "commit": "a110e12d0b58eefcf5b771f533fc2cf3050680ac" }, "nvim-colorizer.lua": { "branch": "master", "commit": "85855b38011114929f4058efc97af1059ab3e41d" }, "nvim-lspconfig": { "branch": "master", "commit": "cf97d2485fc3f6d4df1b79a3ea183e24c272215e" }, @@ -56,16 +58,16 @@ "nvim-neoclip.lua": { "branch": "main", "commit": "709c97fabec9da7d04f7d2f5e207423af8c02871" }, "nvim-notify": { "branch": "master", "commit": "d333b6f167900f6d9d42a59005d82919830626bf" }, "nvim-numbertoggle": { "branch": "main", "commit": "c5827153f8a955886f1b38eaea6998c067d2992f" }, - "nvim-origami": { "branch": "main", "commit": "c824f470e0c177707822c37b13087ab1dd7ddf91" }, + "nvim-origami": { "branch": "main", "commit": "5d6b63bab5406e439937b04fc4ead201ba8dc88f" }, "nvim-surround": { "branch": "main", "commit": "ec2dc7671067e0086cdf29c2f5df2dd909d5f71f" }, - "nvim-treesitter": { "branch": "master", "commit": "acc1708b962e12cc1d671cd530782727801804c3" }, - "nvim-treesitter-context": { "branch": "master", "commit": "2e5aef3d3013482ace17306b1fd1183c6e6c9eb1" }, + "nvim-treesitter": { "branch": "master", "commit": "465840f8c14126e5193d777bbff94036eb875bd5" }, + "nvim-treesitter-context": { "branch": "master", "commit": "f56a1430f21334868a86eb980b12e0af55690e98" }, "nvim-treesitter-endwise": { "branch": "master", "commit": "8b34305ffc28bd75a22f5a0a9928ee726a85c9a6" }, "nvim-treesitter-refactor": { "branch": "master", "commit": "65ad2eca822dfaec2a3603119ec3cc8826a7859e" }, "nvim-treesitter-textobjects": { "branch": "master", "commit": "34867c69838078df7d6919b130c0541c0b400c47" }, "nvim-web-devicons": { "branch": "master", "commit": "c0cfc1738361b5da1cd0a962dd6f774cc444f856" }, - "oil.nvim": { "branch": "master", "commit": "b5a1abfde00eead6814cae3321e4c90ff98cfff1" }, - "outline.nvim": { "branch": "main", "commit": "028e0bc8ad3d511e9fc1f0678594a608eb908ee5" }, + "oil.nvim": { "branch": "master", "commit": "10fbfdd37b6904c0776c5db1a27ab47eecba335e" }, + "outline.nvim": { "branch": "main", "commit": "2175b6da5b7b5be9de14fd3f54383a17f5e4609c" }, "plenary.nvim": { "branch": "master", "commit": "a3e3bc82a3f95c5ed0d7201546d5d2c19b20d683" }, "prettier.nvim": { "branch": "main", "commit": "d98e732cb73690b07c00c839c924be1d1d9ac5c2" }, "search.nvim": { "branch": "main", "commit": "27191f6c10a13c8018136b2490342d35960ed0ab" }, @@ -80,16 +82,16 @@ "telescope-undo.nvim": { "branch": "main", "commit": "51be9ae7c42fc27c0b05505e3a0162e0f05fbb6a" }, "telescope.nvim": { "branch": "master", "commit": "d90956833d7c27e73c621a61f20b29fdb7122709" }, "tiny-devicons-auto-colors.nvim": { "branch": "main", "commit": "9be4af5b1bc1f26a11206ed7ce8bf44312e7941a" }, - "todo-comments.nvim": { "branch": "main", "commit": "51e10f838e84b4756c16311d0b1ef0972c6482d2" }, - "trouble.nvim": { "branch": "main", "commit": "42dcb58e95723f833135d5cf406c38bd54304389" }, - "twilight.nvim": { "branch": "main", "commit": "8b7b50c0cb2dc781b2f4262a5ddd57571556d1e4" }, + "todo-comments.nvim": { "branch": "main", "commit": "313b04e5b02d29ab9275c9295ff5e2b73921b0eb" }, + "trouble.nvim": { "branch": "main", "commit": "4453fea6bb597830fbd58d2c484612f37b97bd8c" }, + "twilight.nvim": { "branch": "main", "commit": "da4fe0a9e1397ecd9b012c52fb34313fbd3b862f" }, "vim-cursorword": { "branch": "master", "commit": "34852083276c1fd9ff4cccaf052111e7d5a2472e" }, - "vim-fugitive": { "branch": "master", "commit": "d0c1a437536778bcc8174b7cb2ffdf98f611e6fe" }, + "vim-fugitive": { "branch": "master", "commit": "8c8cdf4405cb8bdb70dd9812a33bb52363a87dbc" }, "vim-markdown": { "branch": "master", "commit": "a657e697376909c41475a686eeef7fc7a4972d94" }, "vim-obsession": { "branch": "master", "commit": "fe9d3e1a9a50171e7d316a52e1e56d868e4c1fe5" }, "vim-prosession": { "branch": "master", "commit": "4b8323d4e9b74afe9132a34b2d7ea6cfa9461550" }, - "vim-visual-multi": { "branch": "master", "commit": "525521677deb8401b62054bbbbc9b17f8486de3d" }, + "vim-visual-multi": { "branch": "master", "commit": "38b0e8d94a5499ccc17d6159763d32c79f53417b" }, "vim-vsnip": { "branch": "master", "commit": "02a8e79295c9733434aab4e0e2b8c4b7cea9f3a9" }, "vim-wakatime": { "branch": "master", "commit": "3cb40867cb5a3120f9bef76eff88edc7f1dc1a23" }, - "which-key.nvim": { "branch": "main", "commit": "0099511294f16b81c696004fa6a403b0ae61f7a0" } + "which-key.nvim": { "branch": "main", "commit": "af4ded85542d40e190014c732fa051bdbf88be3d" } } \ No newline at end of file diff --git a/nvim/lua/config.lua b/nvim/lua/config.lua index faa463e..0f38d36 100644 --- a/nvim/lua/config.lua +++ b/nvim/lua/config.lua @@ -26,7 +26,7 @@ vim.cmd("set foldmethod=expr") vim.cmd("set foldexpr=nvim_treesitter#foldexpr()") vim.cmd("set foldlevelstart=99") vim.cmd("set list") -vim.cmd("set listchars=trail:▓") +vim.cmd("set listchars=trail:█") -- vim.cmd("set guicursor=i:ver25-blinkon500-blinkoff500,a:ver25-iCursor") vim.cmd("set noshowmode") vim.diagnostic.config({ @@ -210,13 +210,13 @@ local plugins = { { 'MunifTanjim/eslint.nvim', dependencies = { - 'jose-elias-alvarez/null-ls.nvim' + 'nvimtools/none-ls.nvim' } }, { 'MunifTanjim/prettier.nvim', dependencies = { - 'jose-elias-alvarez/null-ls.nvim' + 'nvimtools/none-ls.nvim' } }, { @@ -445,6 +445,23 @@ local plugins = { { 'sourcegraph/sg.nvim', }, + { + "kawre/leetcode.nvim", + build = ":TSUpdate html", + dependencies = { + "nvim-telescope/telescope.nvim", + "nvim-lua/plenary.nvim", -- required by telescope + "MunifTanjim/nui.nvim", + + -- optional + "nvim-treesitter/nvim-treesitter", + "rcarriga/nvim-notify", + "nvim-tree/nvim-web-devicons", + }, + opts = { + -- configuration goes here + }, + }, } require("lazy").setup(plugins, {}) @@ -618,7 +635,11 @@ lspconfig.rust_analyzer.setup { capabilities = capabilities, -- Server-specific settings. See `:help lspconfig-setup` settings = { - ['rust-analyzer'] = {}, + ['rust-analyzer'] = { + checkOnSave = { + command = 'clippy', + } + }, }, } lspconfig.hls.setup {} @@ -632,6 +653,7 @@ lspconfig.asm_lsp.setup { lspconfig.nil_ls.setup { capabilities = capabilities } +lspconfig.mojo.setup {} capabilities.workspace = { didChangeWatchedFiles = { @@ -690,10 +712,9 @@ vim.api.nvim_create_autocmd('LspAttach', { require("lsp_signature").setup({ handler_opts = { border = "none" }, - hint_prefix = "🌸", + hint_prefix = "󰁔 ", }) -vim.keymap.set({'i', 'n', 'v', 'x'}, '', '', {noremap=true}) vim.keymap.set({'i', 'n', 'v', 'x'}, '', '', {noremap=true}) vim.keymap.set('i', '', 'ddi') vim.keymap.set('i', '', '^i') @@ -729,6 +750,8 @@ vim.keymap.set('n', 'p', 'Telescope neoclip a extra=plus,unnamedplu vim.keymap.set('n', 'k', 'SearchInCurrentFile') vim.keymap.set('c', '', '') vim.keymap.set('c', '', '') +vim.keymap.set('n', 'x', [[:%s/\s\+$//e]], {noremap=true}) +vim.keymap.set('n', '', vim.notify.dismiss, {noremap=true}) -- vim.keymap.set('n', ) vim.api.nvim_create_user_command('SearchInCurrentFile', function() @@ -1043,7 +1066,7 @@ require('telescope').load_extension('git_file_history') require('telescope').load_extension('undo') require('codesnap').setup { - code_font_family = "JetBrainsMono Nerd Font", + code_font_family = "BerkeleyMono Nerd Font", has_line_number = true, } diff --git a/tmux-powerline/config.sh b/tmux-powerline/config.sh new file mode 100644 index 0000000..27e19a9 --- /dev/null +++ b/tmux-powerline/config.sh @@ -0,0 +1,401 @@ +# Default configuration file for tmux-powerline. +# Modeline { +# vi: foldmarker={,} foldmethod=marker foldlevel=0 tabstop=4 filetype=sh +# } + +# General { + # Show which segment fails and its exit code. + export TMUX_POWERLINE_DEBUG_MODE_ENABLED="false" + # Use patched font symbols. + export TMUX_POWERLINE_PATCHED_FONT_IN_USE="true" + + # The theme to use. + export TMUX_POWERLINE_THEME="default" + # Overlay directory to look for themes. There you can put your own themes outside the repo. Fallback will still be the "themes" directory in the repo. + export TMUX_POWERLINE_DIR_USER_THEMES="${XDG_CONFIG_HOME:-$HOME/.config}/tmux-powerline/themes" + # Overlay directory to look for segments. There you can put your own segments outside the repo. Fallback will still be the "segments" directory in the repo. + export TMUX_POWERLINE_DIR_USER_SEGMENTS="${XDG_CONFIG_HOME:-$HOME/.config}/tmux-powerline/segments" + + # The initial visibility of the status bar. Can be {"on", "off", "2"}. 2 will create two status lines: one for the window list and one with status bar segments. + export TMUX_POWERLINE_STATUS_VISIBILITY="on" + # In case of visibility = 2, where to display window status and where left/right status bars. + # 0: window status top, left/right status bottom; 1: window status bottom, left/right status top + export TMUX_POWERLINE_WINDOW_STATUS_LINE=0 + # The status bar refresh interval in seconds. + # Note that events that force-refresh the status bar (such as window renaming) will ignore this. + export TMUX_POWERLINE_STATUS_INTERVAL="1" + # The location of the window list. Can be {"absolute-centre, centre, left, right"}. + # Note that "absolute-centre" is only supported on `tmux -V` >= 3.2. + export TMUX_POWERLINE_STATUS_JUSTIFICATION="centre" + + # The maximum length of the left status bar. + export TMUX_POWERLINE_STATUS_LEFT_LENGTH="60" + # The maximum length of the right status bar. + export TMUX_POWERLINE_STATUS_RIGHT_LENGTH="90" + + # The separator to use between windows on the status bar. + export TMUX_POWERLINE_WINDOW_STATUS_SEPARATOR="" + + # Uncomment these if you want to enable tmux bindings for muting (hiding) one of the status bars. + # E.g. this example binding would mute the left status bar when pressing followed by Ctrl-[ + #export TMUX_POWERLINE_MUTE_LEFT_KEYBINDING="C-[" + #export TMUX_POWERLINE_MUTE_RIGHT_KEYBINDING="C-]" +# } + +# air.sh { + # The data provider to use. Currently only "openweather" is supported. + export TMUX_POWERLINE_SEG_AIR_DATA_PROVIDER="openweather" + # How often to update the weather in seconds. + export TMUX_POWERLINE_SEG_AIR_UPDATE_PERIOD="600" + # Location of the JSON parser, jq + export TMUX_POWERLINE_SEG_AIR_JSON="jq" + # Your location + # Latitude and Longitude: + TMUX_POWERLINE_SEG_AIR_LAT="" + TMUX_POWERLINE_SEG_AIR_LON="" + # Your Open Weather API Key: + TMUX_POWERLINE_SEG_AIR_OPEN_WEATHER_API_KEY="" +# } + +# battery.sh { + # How to display battery remaining. Can be {percentage, cute}. + export TMUX_POWERLINE_SEG_BATTERY_TYPE="percentage" + # How may hearts to show if cute indicators are used. + export TMUX_POWERLINE_SEG_BATTERY_NUM_HEARTS="5" +# } + +# date.sh { + # date(1) format for the date. If you don't, for some reason, like ISO 8601 format you might want to have "%D" or "%m/%d/%Y". + export TMUX_POWERLINE_SEG_DATE_FORMAT="%F" +# } + +# date_week.sh { + # Symbol for calendar week. + # export TMUX_POWERLINE_SEG_DATE_WEEK_SYMBOL="󰨳" + # export TMUX_POWERLINE_SEG_DATE_WEEK_SYMBOL_COLOUR="255" +# } + +# disk_usage.sh { + # Filesystem to retrieve disk space information. Any from the filesystems available (run "df | awk '{print }'" to check them). + export TMUX_POWERLINE_SEG_DISK_USAGE_FILESYSTEM="/" +# } + +# earthquake.sh { + # The data provider to use. Currently only "goo" is supported. + export TMUX_POWERLINE_SEG_EARTHQUAKE_DATA_PROVIDER="goo" + # How often to update the earthquake data in seconds. + # Note: This is not an early warning detector, use this + # to be informed about recent earthquake magnitudes in your + # area. If this is too often, goo may decide to ban you form + # their server + export TMUX_POWERLINE_SEG_EARTHQUAKE_UPDATE_PERIOD="600" + # Only display information when earthquakes are within this many minutes + export TMUX_POWERLINE_SEG_EARTHQUAKE_ALERT_TIME_WINDOW="60" + # Display time with this format + export TMUX_POWERLINE_SEG_EARTHQUAKE_TIME_FORMAT='(%H:%M)' + # Display only if magnitude is greater or equal to this number + export TMUX_POWERLINE_SEG_EARTHQUAKE_MIN_MAGNITUDE="3" +# } + +# gcalcli.sh { + # gcalcli uses 24hr time format by default - if you want to see 12hr time format, set TMUX_POWERLINE_SEG_GCALCLI_MILITARY_TIME_DEFAULT to 0 + export TMUX_POWERLINE_SEG_GCALCLI_24HR_TIME_FORMAT="1" +# } + +# hostname.sh { + # Use short or long format for the hostname. Can be {"short, long"}. + export TMUX_POWERLINE_SEG_HOSTNAME_FORMAT="short" +# } + +# ifstat.sh { + # Symbol for Download. + # export TMUX_POWERLINE_SEG_IFSTAT_DOWN_SYMBOL="⇊" + # Symbol for Upload. + # export TMUX_POWERLINE_SEG_IFSTAT_UP_SYMBOL="⇈" + # Symbol for Ethernet. + # export TMUX_POWERLINE_SEG_IFSTAT_ETHERNET_SYMBOL="󰈀" + # Symbol for WLAN. + # export TMUX_POWERLINE_SEG_IFSTAT_WLAN_SYMBOL="󱚻" + # Symbol for WWAN. + # export TMUX_POWERLINE_SEG_IFSTAT_WWAN_SYMBOL="" + # Separator for Interfaces. + # export TMUX_POWERLINE_SEG_IFSTAT_INTERFACE_SEPARATOR=" | " + # Space separated list of interface names to be excluded. substring match, regexp can be used. + # Examples: + # export TMUX_POWERLINE_SEG_IFSTAT_INTERFACE_EXCLUDES="tun" # will exclude 'tun0', 'utun0', 'itun', 'tun08127387' + # export TMUX_POWERLINE_SEG_IFSTAT_INTERFACE_EXCLUDES="tun0 tuntun" # will exclude 'tun0', 'utun0', 'tuntun' + # export TMUX_POWERLINE_SEG_IFSTAT_INTERFACE_EXCLUDES="^tun0$ ^tun1$" # excludes exactly 'tun0' and 'tun1' + # Default: + # export TMUX_POWERLINE_SEG_IFSTAT_INTERFACE_EXCLUDES="^u?tun[0-9]+$" +# } + +# kubernetes_context.sh { + # Kubernetes config context display mode {"name_namespace", "name", "namespace"}. + # export TMUX_POWERLINE_SEG_KUBERNETES_CONTEXT_DISPLAY_MODE="name_namespace" + # Kubernetes config context symbol. + # export TMUX_POWERLINE_SEG_KUBERNETES_CONTEXT_SYMBOL="󱃾" + # Kubernetes config context symbol colour. + # export TMUX_POWERLINE_SEG_KUBERNETES_CONTEXT_SYMBOL_COLOUR="255" + # Separator for display mode "name_namespace" + # TMUX_POWERLINE_SEG_KUBERNETES_CONTEXT_SEPARATOR="󰿟" +# } + +# lan_ip.sh { + # Symbol for LAN IP. + # export TMUX_POWERLINE_SEG_LAN_IP_SYMBOL="ⓛ " + # Symbol colour for LAN IP + # export TMUX_POWERLINE_SEG_LAN_IP_SYMBOL_COLOUR="255" +# } + +# macos_notification_count.sh { + +# } + +# mailcount.sh { + # Mailbox type to use. Can be any of {apple_mail, gmail, maildir, mbox, mailcheck} + export TMUX_POWERLINE_SEG_MAILCOUNT_MAILBOX_TYPE="" + + ## Gmail + # Enter your Gmail username here WITH OUT @gmail.com.( OR @domain) + export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_USERNAME="" + # Google password. Recomenned to use application specific password (https://accounts.google.com/b/0/IssuedAuthSubTokens) Leave this empty to get password from OS X keychain. + # For OSX users : MAKE SURE that you add a key to the keychain in the format as follows + # Keychain Item name : http:// + # Account name : @ + # Password : Your password ( Once again, try to use 2 step-verification and application-specific password) + # See http://support.google.com/accounts/bin/answer.py?hl=en&answer=185833 for more info. + export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_PASSWORD="" + # Domain name that will complete your email. For normal GMail users it probably is "gmail.com but can be "foo.tld" for Google Apps users. + export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_SERVER="gmail.com" + # How often in minutes to check for new mails. + export TMUX_POWERLINE_SEG_MAILCOUNT_GMAIL_INTERVAL="5" + + ## Maildir + # Path to the maildir to check. + export TMUX_POWERLINE_SEG_MAILCOUNT_MAILDIR_INBOX="/home/user/.mail/inbox/new" + + ## mbox + # Path to the mbox to check. + export TMUX_POWERLINE_SEG_MAILCOUNT_MBOX_INBOX="/var/spool/mail/user" + + ## mailcheck + # Optional path to mailcheckrc + export TMUX_POWERLINE_SEG_MAILCOUNT_MAILCHECKRC="/home/user/.mailcheckrc" +# } + +# mode_indicator.sh { + # Whether the normal & prefix mode section should be enabled. Should be {"true, "false"}. + export TMUX_POWERLINE_SEG_MODE_INDICATOR_NORMAL_AND_PREFIX_MODE_ENABLED="true" + # Normal mode text & color overrides. Defaults to "normal" & the segment foreground color set in the theme used. + export TMUX_POWERLINE_SEG_MODE_INDICATOR_NORMAL_MODE_TEXT="normal" + export TMUX_POWERLINE_SEG_MODE_INDICATOR_NORMAL_MODE_TEXT_COLOR="" + # Prefix mode text & color overrides. Defaults to "prefix" & the segment foreground color set in the theme used. + export TMUX_POWERLINE_SEG_MODE_INDICATOR_PREFIX_MODE_TEXT="prefix" + export TMUX_POWERLINE_SEG_MODE_INDICATOR_PREFIX_MODE_TEXT_COLOR="" + # Whether the mouse mode section should be enabled. Should be {"true, "false"}. + export TMUX_POWERLINE_SEG_MODE_INDICATOR_MOUSE_MODE_ENABLED="true" + # Mouse mode text & color overrides. Defaults to "mouse" & the segment foreground color set in the theme used. + export TMUX_POWERLINE_SEG_MODE_INDICATOR_MOUSE_MODE_TEXT="mouse" + export TMUX_POWERLINE_SEG_MODE_INDICATOR_MOUSE_MODE_TEXT_COLOR="" + # Whether the copy mode section should be enabled. Should be {"true, "false"}. + export TMUX_POWERLINE_SEG_MODE_INDICATOR_COPY_MODE_ENABLED="true" + # Copy mode text & color overrides. Defaults to "copy" & the segment foreground color set in the theme used. + export TMUX_POWERLINE_SEG_MODE_INDICATOR_COPY_MODE_TEXT="copy" + export TMUX_POWERLINE_SEG_MODE_INDICATOR_COPY_MODE_TEXT_COLOR="" + # Suspend mode text & color overrides. Defaults to "SUSPEND" & the segment foreground color set in the theme used. + export TMUX_POWERLINE_SEG_MODE_INDICATOR_SUSPEND_MODE_TEXT="SUSPEND" + export TMUX_POWERLINE_SEG_MODE_INDICATOR_SUSPEND_MODE_TEXT_COLOR="" + # Separator text override. Defaults to " • ". + export TMUX_POWERLINE_SEG_MODE_INDICATOR_SEPARATOR_TEXT=" • " +# } + +# now_playing.sh { + # Music player to use. Can be any of {audacious, banshee, cmus, apple_music, itunes, lastfm, plexamp, mocp, mpd, mpd_simple, pithos, playerctl, rdio, rhythmbox, spotify, spotify_wine, file}. + export TMUX_POWERLINE_SEG_NOW_PLAYING_MUSIC_PLAYER="spotify" + # File to be read in case the song is being read from a file + export TMUX_POWERLINE_SEG_NOW_PLAYING_FILE_NAME="" + # Maximum output length. + export TMUX_POWERLINE_SEG_NOW_PLAYING_MAX_LEN="40" + # How to handle too long strings. Can be {trim, roll}. + export TMUX_POWERLINE_SEG_NOW_PLAYING_TRIM_METHOD="trim" + # Characters per second to roll if rolling trim method is used. + export TMUX_POWERLINE_SEG_NOW_PLAYING_ROLL_SPEED="2" + # Mode of roll text {"space", "repeat"}. space: fill up with empty space; repeat: repeat text from beginning + # export TMUX_POWERLINE_SEG_NOW_PLAYING_ROLL_MODE="repeat" + # Separator for "repeat" roll mode + # export TMUX_POWERLINE_SEG_NOW_PLAYING_ROLL_SEPARATOR="  " + # If set to 'true', 'yes', 'on' or '1', played tracks will be logged to a file. + # export TMUX_POWERLINE_SEG_NOW_PLAYING_TRACK_LOG_ENABLE="false" + # If enabled, log played tracks to the following file: + # export TMUX_POWERLINE_SEG_NOW_PLAYING_TRACK_LOG_FILEPATH="/home/user/.now_playing.log" + # Maximum number of logged song entries. Set to "unlimited" for unlimited entries. + # export TMUX_POWERLINE_SEG_NOW_PLAYING_TRACK_LOG_MAX_ENTRIES="100" + + # Hostname for MPD server in the format "[password@]host" + export TMUX_POWERLINE_SEG_NOW_PLAYING_MPD_HOST="localhost" + # Port the MPD server is running on. + export TMUX_POWERLINE_SEG_NOW_PLAYING_MPD_PORT="6600" + # Song display format for mpd_simple. See mpc(1) for delimiters. + export TMUX_POWERLINE_SEG_NOW_PLAYING_MPD_SIMPLE_FORMAT="%artist% - %title%" + # Song display format for playerctl. see "Format Strings" in playerctl(1). + export TMUX_POWERLINE_SEG_NOW_PLAYING_PLAYERCTL_FORMAT="{{ artist }} - {{ title }}" + # Song display format for rhythmbox. see "FORMATS" in rhythmbox-client(1). + export TMUX_POWERLINE_SEG_NOW_PLAYING_RHYTHMBOX_FORMAT="%aa - %tt" + + # Last.fm + # Set up steps for Last.fm + # 1. Make sure jq(1) is installed on the system. + # 2. Create a new API application at https://www.last.fm/api/account/create (name it tmux-powerline) and copy the API key and insert it below in the setting TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_API_KEY + # 3. Make sure the API can access your recently played song by going to you user privacy settings https://www.last.fm/settings/privacy and make sure "Hide recent listening information" is UNCHECKED. + # Username for Last.fm if that music player is used. + export TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_USERNAME="" + # API Key for the API. + export TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_API_KEY="" + # How often in seconds to update the data from last.fm. + export TMUX_POWERLINE_SEG_NOW_PLAYING_LASTFM_UPDATE_PERIOD="30" + # Fancy char to display before now playing track + export TMUX_POWERLINE_SEG_NOW_PLAYING_NOTE_CHAR="♫" + + # Plexamp + # Set up steps for Plexamp + # 1. Make sure jq(1) is installed on the system. + # 2. Make sure you have an instance of Tautulli that is accessible by the computer running tmux-powerline. + # Username for Plexamp if that music player is used. + export TMUX_POWERLINE_SEG_NOW_PLAYING_PLEXAMP_USERNAME="" + # Hostname for Tautulli server in the format "[password@]host" + export TMUX_POWERLINE_SEG_NOW_PLAYING_PLEXAMP_TAUTULLI_HOST="" + # API Key for Tautulli. + export TMUX_POWERLINE_SEG_NOW_PLAYING_PLEXAMP_TAUTULLI_API_KEY="" + # How often in seconds to update the data from Plexamp. + export TMUX_POWERLINE_SEG_NOW_PLAYING_PLEXAMP_UPDATE_PERIOD="30" +# } + +# pwd.sh { + # Maximum length of output. + export TMUX_POWERLINE_SEG_PWD_MAX_LEN="40" +# } + +# time.sh { + # date(1) format for the time. Americans might want to have "%I:%M %p". + export TMUX_POWERLINE_SEG_TIME_FORMAT="" + # Change this to display a different timezone than the system default. + # Use TZ Identifier like "America/Los_Angeles" + # export TMUX_POWERLINE_SEG_TIME_TZ="" +# } + +# tmux_mem_cpu_load.sh { + # Arguments passed to tmux-mem-cpu-load. + # See https://github.com/thewtex/tmux-mem-cpu-load for all available options. + # export TMUX_POWERLINE_SEG_TMUX_MEM_CPU_LOAD_ARGS="-v" +# } + +# tmux_session_info.sh { + # Session info format to feed into the command: tmux display-message -p + # For example, if FORMAT is '[ #S ]', the command is: tmux display-message -p '[ #S ]' + export TMUX_POWERLINE_SEG_TMUX_SESSION_INFO_FORMAT="#S:#I.#P" +# } + +# utc_time.sh { + # date(1) format for the UTC time. + export TMUX_POWERLINE_SEG_UTC_TIME_FORMAT="" +# } + +# vcs_branch.sh { + # Max length of the branch name. + export TMUX_POWERLINE_SEG_VCS_BRANCH_MAX_LEN="" + # Symbol when branch length exceeds max length + # export TMUX_POWERLINE_SEG_VCS_BRANCH_TRUNCATE_SYMBOL="…" + # Default branch symbol + export TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL="" + # Branch symbol for git repositories + # export TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL="${TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL}" + # Branch symbol for hg/mercurial repositories + # export TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL="${TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL}" + # Branch symbol for SVN repositories + # export TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL="${TMUX_POWERLINE_SEG_VCS_BRANCH_DEFAULT_SYMBOL}" + # Branch symbol colour for git repositories + export TMUX_POWERLINE_SEG_VCS_BRANCH_GIT_SYMBOL_COLOUR="5" + # Branch symbol colour for hg/mercurial repositories + export TMUX_POWERLINE_SEG_VCS_BRANCH_HG_SYMBOL_COLOUR="45" + # Branch symbol colour for SVN repositories + export TMUX_POWERLINE_SEG_VCS_BRANCH_SVN_SYMBOL_COLOUR="220" +# } + +# vcs_compare.sh { + # Symbol if local branch is behind. + # export TMUX_POWERLINE_SEG_VCS_COMPARE_AHEAD_SYMBOL="↑ " + # Symbol colour if local branch is ahead. Defaults to "current segment foreground colour" + # export TMUX_POWERLINE_SEG_VCS_COMPARE_AHEAD_SYMBOL_COLOUR="" + # Symbol if local branch is ahead. + # export TMUX_POWERLINE_SEG_VCS_COMPARE_BEHIND_SYMBOL="↓ " + # Symbol colour if local branch is behind. Defaults to "current segment foreground colour" + # export TMUX_POWERLINE_SEG_VCS_COMPARE_BEHIND_SYMBOL_COLOUR="" +# } + +# vcs_modified.sh { + # Symbol for count of modified vcs files. + # export TMUX_POWERLINE_SEG_VCS_MODIFIED_SYMBOL="± " +# } + +# vcs_others.sh { + # Symbol for count of untracked vcs files. + # export TMUX_POWERLINE_SEG_VCS_OTHERS_SYMBOL="⋯" +# } + +# vcs_rootpath.sh { + # Display mode for vcs_rootpath. + # Example: (name: folder name only; path: full path, w/o expansion; user_path: full path, w/ tilde expansion) + # export TMUX_POWERLINE_SEG_VCS_ROOTPATH_MODE="name" +# } + +# vcs_staged.sh { + # Symbol for count of staged vcs files. + # export TMUX_POWERLINE_SEG_VCS_STAGED_SYMBOL="⊕ " +# } + +# vpn.sh { + # Mode for VPN segment {"both", "ip", "name"}. both: Show NIC/IP; ip: Show only IP; name: Show only NIC name + # export TMUX_POWERLINE_SEG_VPN_DISPLAY_MODE="both" + # Space separated list of tunnel interface names. First match is being used. substring match, regexp can be used. + # Examples: + # export TMUX_POWERLINE_SEG_VPN_NICS="tun" # will match 'tun0', 'utun0', 'itun', 'tun08127387' + # export TMUX_POWERLINE_SEG_VPN_NICS="tun0 tuntun" # will match 'tun0', 'utun0', 'tuntun' + # export TMUX_POWERLINE_SEG_VPN_NICS="^tun0$ ^tun1$" # exactly 'tun0' and 'tun1' + # Default: + # export TMUX_POWERLINE_SEG_VPN_NICS='^u?tun[0-9]+$' + # Symbol to use for vpn tunnel. + # export TMUX_POWERLINE_SEG_VPN_SYMBOL="󱠾 " + # Colour for vpn tunnel symbol + # export TMUX_POWERLINE_SEG_VPN_SYMBOL_COLOUR="255" + # Symbol for separator + # export TMUX_POWERLINE_SEG_VPN_DISPLAY_SEPARATOR="󰿟" +# } + +# wan_ip.sh { + # Symbol for WAN IP + # export TMUX_POWERLINE_SEG_WAN_IP_SYMBOL="ⓦ " + # Symbol colour for WAN IP + # export TMUX_POWERLINE_SEG_WAN_IP_SYMBOL_COLOUR="255" +# } + +# weather.sh { + # The data provider to use. Currently only "yahoo" is supported. + export TMUX_POWERLINE_SEG_WEATHER_DATA_PROVIDER="yrno" + # What unit to use. Can be any of {c,f,k}. + export TMUX_POWERLINE_SEG_WEATHER_UNIT="c" + # How often to update the weather in seconds. + export TMUX_POWERLINE_SEG_WEATHER_UPDATE_PERIOD="600" + # Name of GNU grep binary if in PATH, or path to it. + export TMUX_POWERLINE_SEG_WEATHER_GREP="grep" + # Location of the JSON parser, jq + export TMUX_POWERLINE_SEG_WEATHER_JSON="jq" + # Your location + # Latitude and Longtitude for use with yr.no + TMUX_POWERLINE_SEG_WEATHER_LAT="" + TMUX_POWERLINE_SEG_WEATHER_LON="" +# } + +# xkb_layout.sh { + # Keyboard icon + export TMUX_POWERLINE_SEG_XKB_LAYOUT_ICON="⌨ " +# } diff --git a/tmux-powerline/themes/default.sh b/tmux-powerline/themes/default.sh new file mode 100644 index 0000000..e61512b --- /dev/null +++ b/tmux-powerline/themes/default.sh @@ -0,0 +1,142 @@ +# shellcheck shell=bash +# Default Theme +# If changes made here does not take effect, then try to re-create the tmux session to force reload. + +if patched_font_in_use; then + TMUX_POWERLINE_SEPARATOR_LEFT_BOLD="" + TMUX_POWERLINE_SEPARATOR_LEFT_THIN="" + TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD="" + TMUX_POWERLINE_SEPARATOR_RIGHT_THIN="" +else + TMUX_POWERLINE_SEPARATOR_LEFT_BOLD="◀" + TMUX_POWERLINE_SEPARATOR_LEFT_THIN="❮" + TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD="▶" + TMUX_POWERLINE_SEPARATOR_RIGHT_THIN="❯" +fi + +# See Color formatting section below for details on what colors can be used here. +TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_BACKGROUND_COLOR:-'235'} +TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR=${TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR:-'255'} +# shellcheck disable=SC2034 +TMUX_POWERLINE_SEG_AIR_COLOR=$(air_color) + +TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR=${TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR:-$TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD} +TMUX_POWERLINE_DEFAULT_RIGHTSIDE_SEPARATOR=${TMUX_POWERLINE_DEFAULT_RIGHTSIDE_SEPARATOR:-$TMUX_POWERLINE_SEPARATOR_LEFT_BOLD} + +# See `man tmux` for additional formatting options for the status line. +# The `format regular` and `format inverse` functions are provided as conveniences + +# shellcheck disable=SC2128 +if [ -z "$TMUX_POWERLINE_WINDOW_STATUS_CURRENT" ]; then + TMUX_POWERLINE_WINDOW_STATUS_CURRENT=( + "#[$(format inverse)]" + "$TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR" + " #I#F " + "$TMUX_POWERLINE_SEPARATOR_RIGHT_THIN" + " #W " + "#[$(format regular)]" + "$TMUX_POWERLINE_DEFAULT_LEFTSIDE_SEPARATOR" + ) +fi + +# shellcheck disable=SC2128 +if [ -z "$TMUX_POWERLINE_WINDOW_STATUS_STYLE" ]; then + TMUX_POWERLINE_WINDOW_STATUS_STYLE=( + "$(format regular)" + ) +fi + +# shellcheck disable=SC2128 +if [ -z "$TMUX_POWERLINE_WINDOW_STATUS_FORMAT" ]; then + TMUX_POWERLINE_WINDOW_STATUS_FORMAT=( + "#[$(format regular)]" + " #I#{?window_flags,#F, } " + "$TMUX_POWERLINE_SEPARATOR_RIGHT_THIN" + " #W " + ) +fi + +# Format: segment_name [background_color|default_bg_color] [foreground_color|default_fg_color] [non_default_separator|default_separator] [separator_background_color|no_sep_bg_color] +# [separator_foreground_color|no_sep_fg_color] [spacing_disable|no_spacing_disable] [separator_disable|no_separator_disable] +# +# * background_color and foreground_color. Color formatting (see `man tmux` for complete list): +# * Named colors, e.g. black, red, green, yellow, blue, magenta, cyan, white +# * Hexadecimal RGB string e.g. #ffffff +# * 'default_fg_color|default_bg_color' for the default theme bg and fg color +# * 'default' for the default tmux color. +# * 'terminal' for the terminal's default background/foreground color +# * The numbers 0-255 for the 256-color palette. Run `tmux-powerline/color-palette.sh` to see the colors. +# * non_default_separator - specify an alternative character for this segment's separator +# * 'default_separator' for the theme default separator +# * separator_background_color - specify a unique background color for the separator +# * 'no_sep_bg_color' for using the default coloring for the separator +# * separator_foreground_color - specify a unique foreground color for the separator +# * 'no_sep_fg_color' for using the default coloring for the separator +# * spacing_disable - remove space on left, right or both sides of the segment: +# * "no_spacing_disable" - don't disable spacing (default) +# * "left_disable" - disable space on the left +# * "right_disable" - disable space on the right +# * "both_disable" - disable spaces on both sides +# * - any other character/string produces no change to default behavior (eg "none", "X", etc.) +# +# * separator_disable - disables drawing a separator on this segment, very useful for segments +# with dynamic background colours (eg tmux_mem_cpu_load): +# * "no_separator_disable" - don't disable the separator (default) +# * "separator_disable" - disables the separator +# * - any other character/string produces no change to default behavior +# +# Example segment with separator disabled and right space character disabled: +# "hostname 33 0 {TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD} 0 0 right_disable separator_disable" +# +# Example segment with spacing characters disabled on both sides but not touching the default coloring: +# "hostname 33 0 {TMUX_POWERLINE_SEPARATOR_RIGHT_BOLD} no_sep_bg_color no_sep_fg_color both_disable" +# +# Example segment with changing the foreground color of the default separator: +# "hostname 33 0 default_separator no_sep_bg_color 120" +# +## Note that although redundant the non_default_separator, separator_background_color and +# separator_foreground_color options must still be specified so that appropriate index +# of options to support the spacing_disable and separator_disable features can be used +# The default_* and no_* can be used to keep the default behaviour. + +# shellcheck disable=SC1143,SC2128 +if [ -z "$TMUX_POWERLINE_LEFT_STATUS_SEGMENTS" ]; then + TMUX_POWERLINE_LEFT_STATUS_SEGMENTS=( + "tmux_session_info 148 234" + "hostname 33 0" + #"mode_indicator 165 0" + #"ifstat 30 255" + #"ifstat_sys 30 255" + "lan_ip 24 255 ${TMUX_POWERLINE_SEPARATOR_RIGHT_THIN}" + #"vpn 24 255 ${TMUX_POWERLINE_SEPARATOR_RIGHT_THIN}" + "wan_ip 24 255" + "vcs_branch 29 88" + #"vcs_compare 60 255" + #"vcs_staged 64 255" + #"vcs_modified 9 255" + #"vcs_others 245 0" + ) +fi + +# shellcheck disable=SC1143,SC2128 +if [ -z "$TMUX_POWERLINE_RIGHT_STATUS_SEGMENTS" ]; then + TMUX_POWERLINE_RIGHT_STATUS_SEGMENTS=( + #"earthquake 3 0" + "pwd 89 211" + #"macos_notification_count 29 255" + #"mailcount 9 255" + "now_playing 234 37" + # "cpu 240 136" + # "load 237 167" + #"tmux_mem_cpu_load 234 136" + "battery 137 127" + #"air ${TMUX_POWERLINE_SEG_AIR_COLOR} 255" + # "weather 37 255" + #"rainbarf 0 ${TMUX_POWERLINE_DEFAULT_FOREGROUND_COLOR}" + #"xkb_layout 125 117" + "date_day 235 136" + "date 235 136 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}" + # "time 235 136 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}" + #"utc_time 235 136 ${TMUX_POWERLINE_SEPARATOR_LEFT_THIN}" + ) +fi diff --git a/waybar/config.jsonc b/waybar/config.jsonc index f6fc13a..f235dc0 100644 --- a/waybar/config.jsonc +++ b/waybar/config.jsonc @@ -166,8 +166,8 @@ // "scroll-step": 1, // %, can be a float "format": "{volume}% {icon} {format_source}", "format-bluetooth": "{volume}% {icon} {format_source}", - "format-bluetooth-muted": " {icon} {format_source}", - "format-muted": " {format_source}", + "format-bluetooth-muted": "󰝟 {icon} {format_source}", + "format-muted": "󰝟 {format_source}", "format-source": "{volume}% ", "format-source-muted": "", "format-icons": {