diff --git a/nvim/init.lua b/nvim/init.lua
index dddda7f..f7485ac 100644
--- a/nvim/init.lua
+++ b/nvim/init.lua
@@ -30,3 +30,4 @@ require("thomas.plugins.gitblame")
require("thomas.plugins.zk")
require("thomas.plugins.noice")
require("thomas.plugins.obsidian-nvim")
+require("thomas.plugins.nvim-notify")
diff --git a/nvim/lua/thomas/core/colourscheme.lua b/nvim/lua/thomas/core/colourscheme.lua
index e2b3aaf..7c9ea1d 100644
--- a/nvim/lua/thomas/core/colourscheme.lua
+++ b/nvim/lua/thomas/core/colourscheme.lua
@@ -11,8 +11,8 @@ local function update_hl(group, tbl)
vim.api.nvim_set_hl(0, group, new_hl)
end
--- update_hl("Function", { bold = true })
--- update_hl("Comment", { italic = true })
+update_hl("Function", { bold = true })
+update_hl("Comment", { italic = true })
update_hl("markdownH1", { bold = true })
update_hl("markdownH2", { bold = true })
diff --git a/nvim/lua/thomas/plugins-setup.lua b/nvim/lua/thomas/plugins-setup.lua
index e2e49d9..090bb41 100644
--- a/nvim/lua/thomas/plugins-setup.lua
+++ b/nvim/lua/thomas/plugins-setup.lua
@@ -37,12 +37,16 @@ return packer.startup(function(use)
-- require("pandoc").setup()
-- end,
-- })
- use({ "folke/noice.nvim", requires = { "MunifTanjim/nui.nvim", "rcarriga/nvim-notify" } })
+ use({
+ "folke/noice.nvim",
+ requires = { "MunifTanjim/nui.nvim", "rcarriga/nvim-notify" },
+ })
use({ "epwalsh/obsidian.nvim", requires = { "nvim-lua/plenary.nvim" } })
- use("ellisonleao/gruvbox.nvim")
+ -- use("ellisonleao/gruvbox.nvim")
use("sainnhe/gruvbox-material")
use("kdheepak/lazygit.nvim")
use("zk-org/zk-nvim")
+ use("ryanoasis/vim-devicons")
use("tpope/vim-fugitive")
use("rcarriga/nvim-notify")
use("tpope/vim-markdown")
diff --git a/nvim/lua/thomas/plugins/lsp/lspconfig.lua b/nvim/lua/thomas/plugins/lsp/lspconfig.lua
index 9328b90..b451ed7 100644
--- a/nvim/lua/thomas/plugins/lsp/lspconfig.lua
+++ b/nvim/lua/thomas/plugins/lsp/lspconfig.lua
@@ -37,11 +37,11 @@ end
local capabilities = cmp_nvim_lsp.default_capabilities()
-- Change the Diagnostic symbols in the sign column (gutter)
--- local signs = { Error = " ", Warn = " ", Hint = "ﴞ ", Info = " " }
--- for type, icon in pairs(signs) do
--- local hl = "DiagnosticSign" .. type
--- vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
--- end
+local signs = { Error = " ", Warn = "⚠", Hint = " ", Info = "" }
+for type, icon in pairs(signs) do
+ local hl = "DiagnosticSign" .. type
+ vim.fn.sign_define(hl, { text = icon, texthl = hl, numhl = "" })
+end
-- Hide diagnostic virtual text by default, but toggle visibility with `lead:lh` command
vim.diagnostic.config({
diff --git a/nvim/lua/thomas/plugins/noice.lua b/nvim/lua/thomas/plugins/noice.lua
index 715ea3d..2b221b3 100644
--- a/nvim/lua/thomas/plugins/noice.lua
+++ b/nvim/lua/thomas/plugins/noice.lua
@@ -11,12 +11,51 @@ noice.setup({
["vim.lsp.util.stylize_markdown"] = true,
["cmp.entry.get_documentation"] = true, -- requires hrsh7th/nvim-cmp
},
- presets = {
- bottom_search = true, -- use a classic bottom cmdline for search
- command_palette = true, -- position the cmdline and popupmenu together
- long_message_to_split = true, -- long messages will be sent to a split
- inc_rename = false, -- enables an input dialog for inc-rename.nvim
- lsp_doc_border = false, -- add a border to hover docs and signature help
+ },
+ presets = {
+ bottom_search = true, -- use a classic bottom cmdline for search
+ command_palette = true, -- position the cmdline and popupmenu together
+ long_message_to_split = true, -- long messages will be sent to a split
+ inc_rename = false, -- enables an input dialog for inc-rename.nvim
+ lsp_doc_border = false, -- add a border to hover docs and signature help
+ },
+ cmdline = {
+ format = {
+ cmdline = { icon = " " },
+ search_down = { icon = " ⌄" },
+ search_up = { icon = " ⌃" },
+ filter = { icon = " " },
+ lua = { icon = "" },
+ help = { icon = " " },
+ level = {
+ icons = {
+ error = " ",
+ warn = "⚠ ",
+ info = " ",
+ },
+ },
+ },
+ },
+ views = {
+ cmdline_popup = {
+ border = {
+ style = "single",
+ },
+ },
+ popup = {
+ border = {
+ style = "single",
+ },
+ },
+ hover = {
+ border = {
+ style = "single",
+ },
+ },
+ confirm = {
+ border = {
+ style = "single",
+ },
},
},
})
diff --git a/nvim/lua/thomas/plugins/nvim-notify.lua b/nvim/lua/thomas/plugins/nvim-notify.lua
new file mode 100644
index 0000000..9d80503
--- /dev/null
+++ b/nvim/lua/thomas/plugins/nvim-notify.lua
@@ -0,0 +1,17 @@
+local notify_setup, notify = pcall(require, "notify")
+
+if not notify_setup then
+ return
+end
+
+notify.setup({
+ render = "wrapped-compact",
+ stages = "fade",
+ icons = {
+ INFO = "",
+ WARN = "⚠",
+ ERROR = " ",
+ TRACE = " ",
+ DEBUG = " ",
+ },
+})
diff --git a/nvim/lua/thomas/plugins/rainbow-delimiters.lua b/nvim/lua/thomas/plugins/rainbow-delimiters.lua
index 7097fd0..41b3c3c 100644
--- a/nvim/lua/thomas/plugins/rainbow-delimiters.lua
+++ b/nvim/lua/thomas/plugins/rainbow-delimiters.lua
@@ -15,6 +15,6 @@ rd.setup({
})
-- change colour values to match One Dark
-vim.api.nvim_set_hl(0, "RainbowDelimiterViolet", { foreground = "#C678DD" })
-vim.api.nvim_set_hl(0, "RainbowDelimiterYellow", { foreground = "#E5C07B" })
-vim.api.nvim_set_hl(0, "RainbowDelimiterCyan", { foreground = "#56B6C2" })
+vim.api.nvim_set_hl(0, "RainbowDelimiterViolet", { foreground = "#d3869b" })
+vim.api.nvim_set_hl(0, "RainbowDelimiterYellow", { foreground = "#fabd2f" })
+vim.api.nvim_set_hl(0, "RainbowDelimiterCyan", { foreground = "#fe8019" })
diff --git a/waybar/config b/waybar/config
index e9f42e8..39942f6 100644
--- a/waybar/config
+++ b/waybar/config
@@ -1,13 +1,19 @@
{
"layer": "top",
+ "margin": "6 10 -3",
"height": 30,
"spacing": 4,
"modules-left": [
"custom/os",
- "hyprland/workspaces"
+ "hyprland/workspaces",
+ "wlr/taskbar"
+ ],
+ "modules-center": [
+ "custom/spotify",
+ "custom/toggl",
+ "custom/wakatime"
],
"modules-right": [
- "custom/spotify",
"network",
"bluetooth",
"cpu",
@@ -15,10 +21,27 @@
"disk",
"temperature",
"backlight",
- "custom/wakatime",
"battery",
"clock"
],
+ "wlr/taskbar": {
+ "format": "{icon} {name}",
+ "icon-size": 20,
+ "icon-theme": "Numix-Circle",
+ "tooltip-format": "{title}",
+ "on-click": "activate",
+ "on-click-middle": "close",
+ "ignore-list": [
+ "Alacritty"
+ ],
+ "app_ids-mapping": {
+ "firefoxdeveloperedition": "firefox-developer-edition"
+ },
+ "rewrite": {
+ "Firefox Web Browser": "Firefox",
+ "Foot Server": "Terminal"
+ }
+ },
"keyboard-state": {
"numlock": true,
"capslock": true,
@@ -65,31 +88,30 @@
"spacing": 10
},
"clock": {
- "format": "{: %H:%M %d/%m/%Y}",
- "tooltip-format": "{:%Y %B}\n{calendar}",
- "format-alt": "{:%Y-%m-%d}"
+ "format": "{: %H:%M }",
+ "format-alt": "{: %d/%m/%Y}"
},
"cpu": {
- "format": " {usage}%",
+ "format": " {usage}%",
"tooltip": false
},
"memory": {
- "format": " {}%"
+ "format": " {}%"
},
"temperature": {
"critical-threshold": 80,
"format": "{icon} {temperatureC}°C",
"format-icons": [
- "",
- "",
- ""
+ "",
+ "",
+ "",
]
},
"backlight": {
"device": "acpi_video1",
- "format": "{percent}% {icon}",
+ "format": "{icon} {percent}%",
"format-icons": [
- "",
+ "",
"",
"",
"",
@@ -121,11 +143,11 @@
"bat": "BAT2"
},
"network": {
- "format-wifi": " {essid} ({signalStrength}%)",
- "format-ethernet": "{ipaddr}/{cidr} ",
- "tooltip-format": "{ifname} via {gwaddr} ",
- "format-linked": "{ifname} (No IP) ",
- "format-disconnected": "⚠ Disconnected",
+ "format-wifi": " {essid} ({signalStrength}%)",
+ "format-ethernet": "{ipaddr}/{cidr}",
+ "tooltip-format": "{ifname} via {gwaddr}",
+ "format-linked": "{ifname} (No IP)",
+ "format-disconnected": " Disconnected",
"format-alt": "{ifname}: {ipaddr}/{cidr}"
},
"pulseaudio": {
@@ -151,13 +173,13 @@
},
"disk": {
"interval": 30,
- "format": " {percentage_used}%",
+ "format": " {percentage_used}%",
"path": "/home"
},
"bluetooth": {
"controller": "bluetoothctl",
- "format": " {status}",
- "format-connected": " {device_alias}",
+ "format": "{status}",
+ "format-connected": "{device_alias}",
"format-connected-battery": " {device_alias} {device_battery_percentage}% ",
"tooltip-format": "{controller_alias}\t{controller_address}\n\n{num_connections} connected",
"tooltip-format-connected": "{controller_alias}\t{controller_address}\n\n{num_connections} connected\n\n{device_enumerate}",
@@ -180,7 +202,7 @@
},
"custom/spotify": {
"exec": "/usr/bin/python3 $HOME/.config/waybar/resources/custom_modules/mediaplayer.py --player spotify",
- "format": "{} ",
+ "format": "{} ",
"return-type": "json",
"on-click": "playerctl play-pause",
"on-scroll-up": "playerctl next",
@@ -188,7 +210,13 @@
},
"custom/wakatime": {
"exec": "source $HOME/dotfiles/.env && python3 $HOME/.config/waybar/resources/custom_modules/wakatime.py",
- "format": " {}",
+ "format": " {}",
+ "return-type": "json",
+ "interval": 600
+ },
+ "custom/toggl": {
+ "exec": "source $HOME/dotfiles/.env && python3 $HOME/.config/waybar/resources/custom_modules/toggl_controller.py",
+ "format": "{}",
"return-type": "json",
"interval": 600
}
diff --git a/waybar/style.css b/waybar/style.css
index f5f9ca7..9a3b391 100644
--- a/waybar/style.css
+++ b/waybar/style.css
@@ -1,53 +1,61 @@
-/* blue yellow green orange purple aqua ..
-*/
-
* {
- /* `otf-font-awesome` is required to be installed for icons */
font-family: FontAwesome, "PragmataPro Mono Liga", Roboto, Helvetica, Arial,
sans-serif;
font-size: 16px;
}
+window#waybar {
+ /* background-color: #282828; */
+
+ background-color: rgba(40, 40, 40, 0.8);
+}
+
tooltip {
- font-weight: 400;
border-radius: 0;
-}
-
-window#waybar.termite {
- background-color: #3f3f3f;
-}
-
-window#waybar.chromium {
- background-color: #000000;
- border: none;
+ font-weight: 400;
}
button {
- /* Use box-shadow instead of border so the text isn't offset */
box-shadow: inset 0 -3px transparent;
- /* Avoid rounded borders under each button name */
border: none;
border-radius: 0;
+ opacity: 1;
}
#workspaces button.active {
- background-color: #e78a4a;
+ background-color: #98971a;
color: #282828;
}
#workspaces button {
- font-weight: 600;
- padding: 0 3px;
+ padding: 2px 3px;
color: #282828;
- background-color: #a89984;
- border-radius: 5px;
- margin-right: 3px;
+ background-color: #928374;
+ margin-right: 5px;
+ margin-top: 6px;
+ margin-bottom: 6px;
}
#workspaces button.urgent {
background-color: #ea6962;
}
+#taskbar button {
+ background-color: #3c3836;
+ padding: 3px 8px;
+ margin-top: 6px;
+ margin-bottom: 6px;
+}
+
+#taskbar button.active {
+ background-color: #98971a;
+ color: #282828;
+
+ /* padding: 3px 10px;
+ margin-top: 6px;
+ margin-bottom: 6px; */
+}
+
#clock,
#battery,
#cpu,
@@ -68,54 +76,53 @@ button {
#user,
#bluetooth,
#custom-wakatime,
-#custom-os {
- font-weight: 600;
- padding: 3px 12px;
- margin: 0;
- border-radius: 5px;
+#custom-toggl {
+ font-weight: 400;
+ padding: 3px 10px;
+ margin-left: 4px;
+ margin-top: 6px;
+ margin-bottom: 6px;
}
-#window,
+#custom-os {
+ font-weight: 400;
+ padding: 3px 10px;
+ margin-top: 6px;
+ margin-bottom: 6px;
+ margin-left: 8px;
+}
+
+#windowu,
#workspaces {
margin: 0 3px 0;
- font-weight: 600;
-}
-
-/* If workspaces is the leftmost module, omit left margin */
-.modules-left > widget:first-child > #workspaces {
- /* margin-left: 0; */
-}
-
-/* If workspaces is the rightmost module, omit right margin */
-.modules-right > widget:last-child > #workspaces {
- /* margin-right: 4; */
+ font-weight: 400;
}
#clock {
- background-color: #a9b665;
+ background-color: #689d6a;
color: #282828;
- margin-right: 6px;
+ margin-right: 8px;
}
#bluetooth {
- background-color: #d8a657;
- color: #282828;
+ background-color: #d65d0e;
+ color: #f2e5bc;
}
#battery {
- background-color: #d8a657;
- color: #282828;
+ background-color: #b16286;
+ color: #f2e5bc;
}
#battery.charging,
#battery.plugged {
- color: #282c34;
- background-color: #d8a657;
+ background-color: #b16286;
+ color: #f2e5bc;
}
#battery.critical:not(.charging) {
background-color: #ea6962;
- color: #ddc7a1;
+ color: #f2e5bc;
animation-name: blink;
animation-duration: 0.5s;
animation-timing-function: linear;
@@ -124,28 +131,33 @@ button {
}
#cpu {
- background-color: #a9b665;
+ background-color: #d79921;
color: #282828;
+ /* color: #282828; */
}
#memory {
- background-color: #e78a4a;
+ background-color: #d79921;
color: #282828;
}
#disk {
+ background-color: #d79921;
color: #282828;
- background-color: #d3869b;
}
#backlight {
- background-color: #a89984;
- color: #282828;
+ background-color: #b16286;
+ color: #f2e5bc;
}
#network {
- background-color: #7daea3;
- color: #282828;
+ background-color: #d65d0e;
+ color: #f2e5bc;
+}
+
+#network.format.icons {
+ background-color: red;
}
#network.disconnected {
@@ -158,13 +170,13 @@ button {
}
#custom-spotify {
- background-color: #89b482;
+ background-color: #689d6a;
color: #282828;
}
#temperature {
+ background-color: #d79921;
color: #282828;
- background-color: #89b482;
}
#temperature.critical {
@@ -182,13 +194,25 @@ button {
}
#custom-os {
- background-color: #473c29;
- color: #d4be98;
font-size: 16px;
- margin-left: 6px;
+ background-color: #458588;
+ color: #f2e5bc;
}
#custom-wakatime {
- background-color: #7daea3;
+ background-color: #b16286;
+ color: #f2e5bc;
+ margin-right: 4px;
+}
+
+#custom-toggl {
color: #282828;
}
+
+#custom-toggl.active {
+ background-color: #98971a;
+}
+
+#custom-toggl.inactive {
+ background-color: #928374;
+}