@@ -12,6 +12,12 @@ gar.exec_once("garlock daemon") |
| 12 | -- Clipboard manager daemon | 12 | -- Clipboard manager daemon |
| 13 | gar.exec_once("garclip daemon --foreground") | 13 | gar.exec_once("garclip daemon --foreground") |
| 14 | | 14 | |
| | 15 | +-- System tray with quick settings panel |
| | 16 | +gar.exec_once("gartray daemon") |
| | 17 | + |
| | 18 | +-- Polkit authentication agent (needed for power actions via D-Bus) |
| | 19 | +gar.exec_once("/usr/libexec/kf6/polkit-kde-authentication-agent-1") |
| | 20 | + |
| 15 | -- Uncomment the ones you want: | 21 | -- Uncomment the ones you want: |
| 16 | -- gar.exec_once("picom") -- Compositor (for transparency/shadows) | 22 | -- gar.exec_once("picom") -- Compositor (for transparency/shadows) |
| 17 | -- gar.exec_once("dunst") -- Notification daemon | 23 | -- gar.exec_once("dunst") -- Notification daemon |
@@ -102,7 +108,7 @@ gar.bar = { |
| 102 | -- Module layout | 108 | -- Module layout |
| 103 | modules_left = { "workspaces", "window_title" }, | 109 | modules_left = { "workspaces", "window_title" }, |
| 104 | modules_center = {}, | 110 | modules_center = {}, |
| 105 | - modules_right = { "almanta", "filesystem", "memory", "cpu", "battery", "wlan", "volume", "datetime" }, | 111 | + modules_right = { "almanta", "filesystem", "memory", "cpu", "battery", "wlan", "volume", "tray", "datetime", "quick_settings" }, |
| 106 | | 112 | |
| 107 | -- Module configurations | 113 | -- Module configurations |
| 108 | modules = { | 114 | modules = { |
@@ -218,11 +224,101 @@ gar.set("follow_window_on_move", true) -- Follow window when using Mod+Shift+nu |
| 218 | -- Use "mod" for real X session, "alt" for nested testing (Xephyr) | 224 | -- Use "mod" for real X session, "alt" for nested testing (Xephyr) |
| 219 | local mod = "mod" | 225 | local mod = "mod" |
| 220 | | 226 | |
| 221 | --- Terminal | 227 | +-- Terminal (fallback) |
| 222 | gar.bind(mod .. "+Return", function() | 228 | gar.bind(mod .. "+Return", function() |
| 223 | gar.exec("alacritty || kitty || foot || xterm") | 229 | gar.exec("alacritty || kitty || foot || xterm") |
| 224 | end) | 230 | end) |
| 225 | | 231 | |
| | 232 | +-- garterm with fish shell |
| | 233 | +gar.bind(mod .. "+shift+Return", function() |
| | 234 | + gar.exec("garterm") |
| | 235 | +end) |
| | 236 | + |
| | 237 | +-- CPR-Music dev workspace via session |
| | 238 | +gar.bind(mod .. "+alt+Return", function() |
| | 239 | + gar.exec("garterm") |
| | 240 | + gar.exec("sleep 0.3 && gartermctl load-session cpr-music") |
| | 241 | +end) |
| | 242 | + |
| | 243 | +-------------------------------------------------------------------------------- |
| | 244 | +-- GARTERM CONFIGURATION |
| | 245 | +-------------------------------------------------------------------------------- |
| | 246 | +-- garterm reads this table for shell, font, colors, sessions, and keybinds |
| | 247 | + |
| | 248 | +gar.terminal = { |
| | 249 | + -- Default shell |
| | 250 | + shell = "/usr/bin/fish", |
| | 251 | + |
| | 252 | + -- Font settings |
| | 253 | + font = { |
| | 254 | + family = "JetBrainsMono Nerd Font", |
| | 255 | + size = 20.0, |
| | 256 | + }, |
| | 257 | + |
| | 258 | + -- Color scheme |
| | 259 | + colors = { |
| | 260 | + preset = "catpuccin-mocha", |
| | 261 | + }, |
| | 262 | + |
| | 263 | + -- Tab bar configuration |
| | 264 | + tab_bar = { |
| | 265 | + height = 24, -- Tab bar height in pixels |
| | 266 | + position = "top", -- "top" or "bottom" |
| | 267 | + show_single_tab = false, -- Show tab bar even with one tab |
| | 268 | + max_tab_width = 200, -- Maximum width per tab in pixels |
| | 269 | + tab_padding = 16, -- Horizontal padding inside each tab |
| | 270 | + shorten_paths = true, -- Shorten paths: ~/P/a/src style |
| | 271 | + |
| | 272 | + -- Colors as {R, G, B, A} with values 0.0 to 1.0 |
| | 273 | + background = {0.08, 0.08, 0.12, 1.0}, -- Tab bar background |
| | 274 | + active_bg = {0.15, 0.15, 0.20, 1.0}, -- Active tab background |
| | 275 | + inactive_bg = {0.10, 0.10, 0.14, 1.0},-- Inactive tab background |
| | 276 | + active_fg = {1.0, 1.0, 1.0, 1.0}, -- Active tab text color |
| | 277 | + inactive_fg = {0.7, 0.7, 0.7, 1.0}, -- Inactive tab text color |
| | 278 | + }, |
| | 279 | + |
| | 280 | + -- Session definitions (load with gartermctl load-session <name>) |
| | 281 | + sessions = { |
| | 282 | + -- CPR-Music development workspace |
| | 283 | + ["cpr-music"] = { |
| | 284 | + tabs = { |
| | 285 | + { |
| | 286 | + title = "Frontend", |
| | 287 | + cwd = "~/GithubOrgs/espadonne/CPR-Music", |
| | 288 | + cmd = "npm run dev", |
| | 289 | + }, |
| | 290 | + { |
| | 291 | + title = "Backend", |
| | 292 | + cwd = "~/GithubOrgs/mfwolffe/CPR-Music-Backend", |
| | 293 | + cmd = "source .venv/bin/activate.fish && python manage.py runserver", |
| | 294 | + }, |
| | 295 | + { |
| | 296 | + title = "Editor", |
| | 297 | + cwd = "~/GithubOrgs/espadonne/CPR-Music", |
| | 298 | + cmd = "fackr", |
| | 299 | + }, |
| | 300 | + }, |
| | 301 | + }, |
| | 302 | + }, |
| | 303 | + |
| | 304 | + -- Keybinds within garterm (Lua function callbacks) |
| | 305 | + keybinds = { |
| | 306 | + -- Quick session loading |
| | 307 | + ["alt+m"] = { action = "load_session", session = "cpr-music"}, |
| | 308 | + |
| | 309 | + -- Open fackr in current pane |
| | 310 | + ["alt+e"] = function() |
| | 311 | + gar.terminal.send_text(nil, "fackr \n") |
| | 312 | + end, |
| | 313 | + |
| | 314 | + -- Open fackr in new tab |
| | 315 | + ["alt+shift+e"] = function() |
| | 316 | + gar.terminal.new_tab({}) |
| | 317 | + gar.terminal.send_text(nil, "fackr \n") |
| | 318 | + end, |
| | 319 | + }, |
| | 320 | +} |
| | 321 | + |
| 226 | -- Close window | 322 | -- Close window |
| 227 | gar.bind(mod .. "+q", gar.close_window) | 323 | gar.bind(mod .. "+q", gar.close_window) |
| 228 | | 324 | |