diff options
| -rw-r--r-- | .vim/.netrwhist | 18 | ||||
| -rw-r--r-- | .vim/colors.vim | 19 | ||||
| -rw-r--r-- | .vim/colors.vim.bak | 8 | ||||
| -rw-r--r-- | ghostty/config | 7 | ||||
| -rw-r--r-- | ghostty/themes/void.conf | 32 | ||||
| -rw-r--r-- | hyprlock/berserk.png | bin | 0 -> 4454142 bytes | |||
| -rw-r--r-- | hyprlock/hyprlock.conf | 4 | ||||
| -rw-r--r-- | hyprlock/vivek.png | bin | 0 -> 200401 bytes | |||
| -rw-r--r-- | quickshell/shell.qml | 401 | ||||
| -rw-r--r-- | rofi/config.rasi | 3 | ||||
| -rw-r--r-- | rofi/rofi-black.rasi | 124 | ||||
| -rw-r--r-- | tmux/tmux.conf | 57 |
12 files changed, 312 insertions, 361 deletions
diff --git a/.vim/.netrwhist b/.vim/.netrwhist index b75411d..6c48a00 100644 --- a/.vim/.netrwhist +++ b/.vim/.netrwhist @@ -1,12 +1,12 @@ let g:netrw_dirhistmax =10 let g:netrw_dirhistcnt =6 let g:netrw_dirhist_6='/home/subh/.config' -let g:netrw_dirhist_5='/home/subh/.config/menus' -let g:netrw_dirhist_4='/home/subh/.config' -let g:netrw_dirhist_3='/home/subh/.config/hypr' -let g:netrw_dirhist_2='/home/subh/.config' -let g:netrw_dirhist_1='/home/subh/HTB/browsed' -let g:netrw_dirhist_0='/home/subh' -let g:netrw_dirhist_9='/home/subh/HTB/browsed' -let g:netrw_dirhist_8='/home/subh/.config/hypr' -let g:netrw_dirhist_7='/home/subh/.vim' +let g:netrw_dirhist_5='/home/subh/.config/hyprlock' +let g:netrw_dirhist_4='/opt/FakeSMTP' +let g:netrw_dirhist_3='/home' +let g:netrw_dirhist_2='/home/subh' +let g:netrw_dirhist_1='/home/subh/HTB/sentinel/www/orientation-and-training' +let g:netrw_dirhist_0='/home/subh/HTB/sentinel/www/it-services-and-support' +let g:netrw_dirhist_9='/opt/MCP/blobs/mcp-source/kubectl_mcp_tool/cli' +let g:netrw_dirhist_8='/opt/MCP/blobs/mcp-source/kubectl_mcp_tool' +let g:netrw_dirhist_7='/opt/offensive-cloud/signedBlob-PrivEsc' diff --git a/.vim/colors.vim b/.vim/colors.vim index 263089f..50ecc2c 100644 --- a/.vim/colors.vim +++ b/.vim/colors.vim @@ -1,8 +1,23 @@ set termguicolors - set laststatus=2 + +" 1. Load your existing tokyonight theme let g:tokyonight_enable_italic = 1 let g:lightline = {'colorscheme' : 'tokyonight'} -colorscheme tokyonight +" Try to load tokyonight; if it fails, it won't crash your vim +silent! colorscheme tokyonight + +" 2. THE BLACKOUT OVERRIDE +" This removes the theme's background so it uses Ghostty's #000000 +function! TransparencyOverride() + highlight Normal guibg=NONE ctermbg=NONE + highlight NonText guibg=NONE ctermbg=NONE + highlight NormalNC guibg=NONE ctermbg=NONE + highlight SignColumn guibg=NONE ctermbg=NONE + highlight EndOfBuffer guibg=NONE ctermbg=NONE +endfunction +" Apply the override immediately and whenever a colorscheme is loaded +autocmd ColorScheme * call TransparencyOverride() +call TransparencyOverride() diff --git a/.vim/colors.vim.bak b/.vim/colors.vim.bak new file mode 100644 index 0000000..263089f --- /dev/null +++ b/.vim/colors.vim.bak @@ -0,0 +1,8 @@ +set termguicolors + +set laststatus=2 +let g:tokyonight_enable_italic = 1 +let g:lightline = {'colorscheme' : 'tokyonight'} + +colorscheme tokyonight + diff --git a/ghostty/config b/ghostty/config index 99d3f2c..e1f0dc6 100644 --- a/ghostty/config +++ b/ghostty/config @@ -1,13 +1,14 @@ -# This is the configuration file for Ghostty. +#This is the configuration file for Ghostty. # # This template file has been automatically created at the following # path since Ghostty couldn't find any existing config files on your system: # # /home/subh/.config/ghostty/config -theme = catppuccin-mocha.conf +theme = ~/.config/ghostty/themes/void.conf + font-family = "Iosevka Nerd Font Propo" #font-family = "JetBrainsMono Nerd Font" -font-size = 14 +font-size = 13 cursor-style = block shell-integration-features = no-cursor # The template does not set any default options, since Ghostty ships diff --git a/ghostty/themes/void.conf b/ghostty/themes/void.conf new file mode 100644 index 0000000..7ef0766 --- /dev/null +++ b/ghostty/themes/void.conf @@ -0,0 +1,32 @@ +# --- Blackened Catppuccin Theme --- + +# Syntax Palette (Maintained for readability) +palette = 0=#45475a +palette = 1=#f38ba8 +palette = 2=#a6e3a1 +palette = 3=#f9e2af +palette = 4=#89b4fa +palette = 5=#f5c2e7 +palette = 6=#94e2d5 +palette = 7=#a6adc8 +palette = 8=#585b70 +palette = 9=#f38ba8 +palette = 10=#a6e3a1 +palette = 11=#f9e2af +palette = 12=#89b4fa +palette = 13=#f5c2e7 +palette = 14=#94e2d5 +palette = 15=#bac2de + +# True Black Background +background = #000000 +foreground = #cdd6f4 + +# Cursor & Selection (Adjusted for contrast) +cursor-color = #f5e0dc +cursor-text = #000000 +selection-background = #313244 +selection-foreground = #cdd6f4 + +# UI Elements +split-divider-color = #181825 diff --git a/hyprlock/berserk.png b/hyprlock/berserk.png Binary files differnew file mode 100644 index 0000000..651e3ac --- /dev/null +++ b/hyprlock/berserk.png diff --git a/hyprlock/hyprlock.conf b/hyprlock/hyprlock.conf index 2ce2125..d2c2a12 100644 --- a/hyprlock/hyprlock.conf +++ b/hyprlock/hyprlock.conf @@ -1,7 +1,7 @@ # BACKGROUND background { monitor = - path = ~/.config/hyprlock/hyprlock.png + path = ~/.config/hyprlock/berserk.png blur_passes = 0 contrast = 0.8916 brightness = 0.8172 @@ -19,7 +19,7 @@ general { # GREETINGS label { monitor = - text = cmd[update:1000] sh -c 'h=$(date +%H); if [ "$h" -ge 22 ] || [ "$h" -lt 5 ]; then echo "Good night!"; elif [ "$h" -lt 12 ]; then echo "Good morning!"; elif [ "$h" -lt 17 ]; then echo "Good afternoon!"; else echo "Good evening!"; fi' + text = cmd[update:1000] $(date +%H); if ((h<12)); then echo "Good morning!"; elif ((h<17)); then echo "Good afternoon!"; else echo "Good evening!"; fi color = rgba(216, 222, 233, .75) font_size = 55 font_family = SF Pro Display Bold diff --git a/hyprlock/vivek.png b/hyprlock/vivek.png Binary files differnew file mode 100644 index 0000000..5b9be9a --- /dev/null +++ b/hyprlock/vivek.png diff --git a/quickshell/shell.qml b/quickshell/shell.qml index 96a7027..259b48a 100644 --- a/quickshell/shell.qml +++ b/quickshell/shell.qml @@ -8,15 +8,15 @@ import QtQuick.Layouts ShellRoot { id: root - // Theme colors - property color colBg: "#1a1b26" - property color colFg: "#a9b1d6" - property color colMuted: "#444b6a" - property color colCyan: "#0db9d7" - property color colPurple: "#ad8ee6" - property color colRed: "#f7768e" - property color colYellow: "#e0af68" - property color colBlue: "#7aa2f7" + // --- BLACKOUT THEME COLORS --- + property color colBg: "#000000" // True Black to match Ghostty + property color colFg: "#ffffff" // Pure White to match Oh-My-Posh + property color colMuted: "#313244" // Dark Grey (Surface1) + property color colCyan: "#89dceb" // Catppuccin Sky + property color colPurple: "#cba6f7" // Catppuccin Mauve + property color colRed: "#f38ba8" // Catppuccin Red + property color colYellow: "#f9e2af" // Catppuccin Yellow + property color colBlue: "#89b4fa" // Catppuccin Blue // Font property string fontFamily: "Iosevka Nerd Font Propo" @@ -33,25 +33,22 @@ ShellRoot { property string currentLayout: "Tile" property string cpuTemp: "0" property int cpuTempInt: parseInt(cpuTemp, 10) + property color tempColor: { - if (cpuTempInt < 50 ) return "#8fbcb3" - else if (cpuTempInt < 70) return "#e5c07b" - else return "#e06c75" + if (cpuTempInt < 50 ) return "#a6e3a1" // Green + else if (cpuTempInt < 70) return "#f9e2af" // Yellow + else return "#f38ba8" // Red } + property color powerProfileColor: { - switch (powerProfile) { - case "power-saver": - return "#98c379" // green - case "balanced": - return "#61afef" // blue - case "performance": - return "#e06c75" // red - default: - return "#abb2bf" // neutral / unknown + switch (powerProfile) { + case "power-saver": return "#a6e3a1" + case "balanced": return "#89b4fa" + case "performance": return "#f38ba8" + default: return "#bac2de" } } property string weatherTemp: "0" - // CPU tracking property var lastCpuIdle: 0 property var lastCpuTotal: 0 @@ -60,15 +57,13 @@ ShellRoot { id: kernelProc command: ["uname", "-r"] stdout: SplitParser { - onRead: data => { - if (data) kernelVersion = data.trim() - } + onRead: data => { if (data) kernelVersion = data.trim() } } Component.onCompleted: running = true } // Power Profile - Process { + Process { id: powerProfileProc command: ["sh", "-c", "powerprofilesctl get"] stdout: SplitParser { @@ -77,7 +72,6 @@ ShellRoot { if (v != powerProfile) powerProfile = v } } - Component.onCompleted: running = true } @@ -96,16 +90,12 @@ ShellRoot { var iowait = parseInt(parts[5]) || 0 var irq = parseInt(parts[6]) || 0 var softirq = parseInt(parts[7]) || 0 - var total = user + nice + system + idle + iowait + irq + softirq var idleTime = idle + iowait - if (lastCpuTotal > 0) { var totalDiff = total - lastCpuTotal var idleDiff = idleTime - lastCpuIdle - if (totalDiff > 0) { - cpuUsage = Math.round(100 * (totalDiff - idleDiff) / totalDiff) - } + if (totalDiff > 0) cpuUsage = Math.round(100 * (totalDiff - idleDiff) / totalDiff) } lastCpuTotal = total lastCpuIdle = idleTime @@ -131,23 +121,19 @@ ShellRoot { } // Weather - Process { - id: weatherProc - command: ["sh", "-c", "curl -s 'https://wttr.in/prayagraj?format=j1' | jq -r '.current_condition[].FeelsLikeC'"] - - stdout: SplitParser { - onRead: data => { - if (!data) return - var temp = parseInt(data.trim()) || 0 - weatherTemp = temp + "°C" + id: weatherProc + command: ["sh", "-c", "curl -s 'https://wttr.in/prayagraj?format=j1' | jq -r '.current_condition[].FeelsLikeC'"] + stdout: SplitParser { + onRead: data => { + if (!data) return + var temp = parseInt(data.trim()) || 0 + weatherTemp = temp + "°C" + } } + Component.onCompleted: running = true } - Component.onCompleted: running = true - } - - // Disk usage Process { id: diskProc @@ -163,7 +149,7 @@ ShellRoot { Component.onCompleted: running = true } - // Volume level (wpctl for PipeWire) + // Volume level Process { id: volProc command: ["wpctl", "get-volume", "@DEFAULT_AUDIO_SINK@"] @@ -171,9 +157,7 @@ ShellRoot { onRead: data => { if (!data) return var match = data.match(/Volume:\s*([\d.]+)/) - if (match) { - volumeLevel = Math.round(parseFloat(match[1]) * 100) - } + if (match) volumeLevel = Math.round(parseFloat(match[1]) * 100) } } Component.onCompleted: running = true @@ -184,122 +168,71 @@ ShellRoot { id: windowProc command: ["sh", "-c", "hyprctl activewindow -j | jq -r '.title // empty'"] stdout: SplitParser { - onRead: data => { - if (data && data.trim()) { - activeWindow = data.trim() - } - } + onRead: data => { if (data && data.trim()) activeWindow = data.trim() } } Component.onCompleted: running = true } - // Current layout (Hyprland: dwindle/master/floating) + // Current layout Process { id: layoutProc command: ["sh", "-c", "hyprctl activewindow -j | jq -r 'if .floating then \"Floating\" elif .fullscreen == 1 then \"Fullscreen\" else \"Tiled\" end'"] stdout: SplitParser { - onRead: data => { - if (data && data.trim()) { - currentLayout = data.trim() - } - } + onRead: data => { if (data && data.trim()) currentLayout = data.trim() } } Component.onCompleted: running = true } + + // CPU Temp Process { id: cpuTempProc command: ["sh", "-c", "sensors | awk '/Tctl:/ {print $2}'"] stdout: SplitParser { - onRead: data => { - if (data && data.length > 0) { - cpuTemp = data.trim() - } - } + onRead: data => { if (data && data.length > 0) cpuTemp = data.trim() } } } - - - // Slow timer for system stats + // Timers Timer { - interval: 2000 - running: true - repeat: true + interval: 2000; running: true; repeat: true onTriggered: { - cpuProc.running = true - memProc.running = true - diskProc.running = true - volProc.running = true - cpuTempProc.running = true - powerProfileProc.running = true + cpuProc.running = true; memProc.running = true; diskProc.running = true + volProc.running = true; cpuTempProc.running = true; powerProfileProc.running = true } } - Timer { - interval: 900000 // 15 minutes - running: true - repeat: true - onTriggered: weatherProc.running = true - } + Timer { interval: 900000; running: true; repeat: true; onTriggered: weatherProc.running = true } - // Event-based updates for window/layout (instant) Connections { target: Hyprland - function onRawEvent(event) { - windowProc.running = true - layoutProc.running = true - } + function onRawEvent(event) { windowProc.running = true; layoutProc.running = true } } - // Backup timer for window/layout (catches edge cases) Timer { - interval: 200 - running: true - repeat: true - onTriggered: { - windowProc.running = true - layoutProc.running = true - } + interval: 200; running: true; repeat: true + onTriggered: { windowProc.running = true; layoutProc.running = true } } Variants { model: Quickshell.screens - PanelWindow { property var modelData screen: modelData - - anchors { - top: true - left: true - right: true - } - + anchors { top: true; left: true; right: true } implicitHeight: 30 color: root.colBg - margins { - top: 0 - bottom: 0 - left: 0 - right: 0 - } - Rectangle { anchors.fill: parent color: root.colBg RowLayout { - anchors.fill: parent - spacing: 0 - + anchors.fill: parent; spacing: 0 Item { width: 8 } + // Arch Icon Rectangle { - Layout.preferredWidth: 24 - Layout.preferredHeight: 24 - color: "transparent" - + Layout.preferredWidth: 24; Layout.preferredHeight: 24; color: "transparent" Image { anchors.fill: parent source: "file:///home/subh/.config/quickshell/icons/arch.png" @@ -309,35 +242,26 @@ ShellRoot { Item { width: 8 } + // Workspaces Repeater { model: 9 - Rectangle { - Layout.preferredWidth: 20 - Layout.preferredHeight: parent.height - color: "transparent" - + Layout.preferredWidth: 20; Layout.preferredHeight: parent.height; color: "transparent" property var workspace: Hyprland.workspaces.values.find(ws => ws.id === index + 1) ?? null property bool isActive: Hyprland.focusedWorkspace?.id === (index + 1) property bool hasWindows: workspace !== null Text { text: index + 1 - color: parent.isActive ? root.colCyan : (parent.hasWindows ? root.colCyan : root.colMuted) - font.pixelSize: root.fontSize - font.family: root.fontFamily - font.bold: true + color: parent.isActive ? root.colCyan : (parent.hasWindows ? root.colFg : root.colMuted) + font.pixelSize: root.fontSize; font.family: root.fontFamily; font.bold: true anchors.centerIn: parent } - Rectangle { - width: 20 - height: 3 - color: parent.isActive ? root.colPurple : root.colBg - anchors.horizontalCenter: parent.horizontalCenter - anchors.bottom: parent.bottom + width: 20; height: 3 + color: parent.isActive ? root.colPurple : "transparent" + anchors.horizontalCenter: parent.horizontalCenter; anchors.bottom: parent.bottom } - MouseArea { anchors.fill: parent onClicked: Hyprland.dispatch("workspace " + (index + 1)) @@ -345,200 +269,54 @@ ShellRoot { } } - Rectangle { - Layout.preferredWidth: 1 - Layout.preferredHeight: 16 - Layout.alignment: Qt.AlignVCenter - Layout.leftMargin: 8 - Layout.rightMargin: 8 - color: root.colMuted - } - - Text { - text: currentLayout - color: root.colFg - font.pixelSize: root.fontSize - font.family: root.fontFamily - font.bold: true - Layout.leftMargin: 5 - Layout.rightMargin: 5 - } - - Rectangle { - Layout.preferredWidth: 1 - Layout.preferredHeight: 16 - Layout.alignment: Qt.AlignVCenter - Layout.leftMargin: 2 - Layout.rightMargin: 8 - color: root.colMuted - } - - Text { - text: activeWindow - color: root.colPurple - font.pixelSize: root.fontSize - font.family: root.fontFamily - font.bold: true - Layout.fillWidth: true - Layout.leftMargin: 8 - elide: Text.ElideRight - maximumLineCount: 1 - } - - Text { - text: " " + kernelVersion - color: root.colCyan - font.pixelSize: root.fontSize - font.family: root.fontFamily - font.bold: true - Layout.rightMargin: 8 - } - Rectangle { - Layout.preferredWidth: 1 - Layout.preferredHeight: 16 - Layout.alignment: Qt.AlignVCenter - Layout.leftMargin: 0 - Layout.rightMargin: 8 - color: root.colMuted - } - Text { - text: " " + powerProfile - color: powerProfileColor - font.pixelSize: root.fontSize - font.family: root.fontFamily - font.bold: true - Layout.rightMargin: 8 - } - Rectangle { - Layout.preferredWidth: 1 - Layout.preferredHeight: 16 - Layout.alignment: Qt.AlignVCenter - Layout.leftMargin: 0 - Layout.rightMargin: 8 - color: root.colMuted - } - Text { - text: " " + weatherTemp - color: root.colYellow - font.pixelSize: root.fontSize - font.family: root.fontFamily - font.bold: true - Layout.rightMargin: 8 - } - - Rectangle { - Layout.preferredWidth: 1 - Layout.preferredHeight: 16 - Layout.alignment: Qt.AlignVCenter - Layout.leftMargin: 0 - Layout.rightMargin: 8 - color: root.colMuted - } - Text { - text: " " + cpuTemp - color: tempColor - font.pixelSize: root.fontSize - font.family: root.fontFamily - font.bold: true - Layout.rightMargin: 8 - } - - Rectangle { - Layout.preferredWidth: 1 - Layout.preferredHeight: 16 - Layout.alignment: Qt.AlignVCenter - Layout.leftMargin: 0 - Layout.rightMargin: 8 - color: root.colMuted - } + // Separator + Rectangle { Layout.preferredWidth: 1; Layout.preferredHeight: 16; Layout.leftMargin: 8; Layout.rightMargin: 8; color: root.colMuted } + // Layout + Text { text: currentLayout; color: root.colFg; font.pixelSize: root.fontSize; font.family: root.fontFamily; font.bold: true } + // Separator + Rectangle { Layout.preferredWidth: 1; Layout.preferredHeight: 16; Layout.leftMargin: 8; Layout.rightMargin: 8; color: root.colMuted } + // Window Title Text { - text: " " + cpuUsage + "%" - color: root.colYellow - font.pixelSize: root.fontSize - font.family: root.fontFamily - font.bold: true - Layout.rightMargin: 8 + text: activeWindow; color: root.colPurple; font.pixelSize: root.fontSize; font.family: root.fontFamily; font.bold: true + Layout.fillWidth: true; Layout.leftMargin: 8; elide: Text.ElideRight; maximumLineCount: 1 } - Rectangle { - Layout.preferredWidth: 1 - Layout.preferredHeight: 16 - Layout.alignment: Qt.AlignVCenter - Layout.leftMargin: 0 - Layout.rightMargin: 8 - color: root.colMuted - } + // System Stats (Right Side) + Text { text: " " + kernelVersion; color: root.colCyan; font.pixelSize: root.fontSize; font.family: root.fontFamily; font.bold: true; Layout.rightMargin: 8 } + Rectangle { Layout.preferredWidth: 1; Layout.preferredHeight: 16; Layout.rightMargin: 8; color: root.colMuted } + + Text { text: " " + powerProfile; color: powerProfileColor; font.pixelSize: root.fontSize; font.family: root.fontFamily; font.bold: true; Layout.rightMargin: 8 } + Rectangle { Layout.preferredWidth: 1; Layout.preferredHeight: 16; Layout.rightMargin: 8; color: root.colMuted } - Text { - text: " " + memUsage + "%" - color: root.colCyan - font.pixelSize: root.fontSize - font.family: root.fontFamily - font.bold: true - Layout.rightMargin: 8 - } + Text { text: " " + weatherTemp; color: root.colYellow; font.pixelSize: root.fontSize; font.family: root.fontFamily; font.bold: true; Layout.rightMargin: 8 } + Rectangle { Layout.preferredWidth: 1; Layout.preferredHeight: 16; Layout.rightMargin: 8; color: root.colMuted } - Rectangle { - Layout.preferredWidth: 1 - Layout.preferredHeight: 16 - Layout.alignment: Qt.AlignVCenter - Layout.leftMargin: 0 - Layout.rightMargin: 8 - color: root.colMuted - } + Text { text: " " + cpuTemp; color: tempColor; font.pixelSize: root.fontSize; font.family: root.fontFamily; font.bold: true; Layout.rightMargin: 8 } + Rectangle { Layout.preferredWidth: 1; Layout.preferredHeight: 16; Layout.rightMargin: 8; color: root.colMuted } - Text { - text: " " + diskUsage + "%" - color: root.colBlue - font.pixelSize: root.fontSize - font.family: root.fontFamily - font.bold: true - Layout.rightMargin: 8 - } + Text { text: " " + cpuUsage + "%"; color: root.colYellow; font.pixelSize: root.fontSize; font.family: root.fontFamily; font.bold: true; Layout.rightMargin: 8 } + Rectangle { Layout.preferredWidth: 1; Layout.preferredHeight: 16; Layout.rightMargin: 8; color: root.colMuted } - Rectangle { - Layout.preferredWidth: 1 - Layout.preferredHeight: 16 - Layout.alignment: Qt.AlignVCenter - Layout.leftMargin: 0 - Layout.rightMargin: 8 - color: root.colMuted - } + Text { text: " " + memUsage + "%"; color: root.colCyan; font.pixelSize: root.fontSize; font.family: root.fontFamily; font.bold: true; Layout.rightMargin: 8 } + Rectangle { Layout.preferredWidth: 1; Layout.preferredHeight: 16; Layout.rightMargin: 8; color: root.colMuted } - Text { - text: " " + volumeLevel + "%" - color: root.colPurple - font.pixelSize: root.fontSize - font.family: root.fontFamily - font.bold: true - Layout.rightMargin: 8 - } + Text { text: " " + diskUsage + "%"; color: root.colBlue; font.pixelSize: root.fontSize; font.family: root.fontFamily; font.bold: true; Layout.rightMargin: 8 } + Rectangle { Layout.preferredWidth: 1; Layout.preferredHeight: 16; Layout.rightMargin: 8; color: root.colMuted } - Rectangle { - Layout.preferredWidth: 1 - Layout.preferredHeight: 16 - Layout.alignment: Qt.AlignVCenter - Layout.leftMargin: 0 - Layout.rightMargin: 8 - color: root.colMuted - } + Text { text: " " + volumeLevel + "%"; color: root.colPurple; font.pixelSize: root.fontSize; font.family: root.fontFamily; font.bold: true; Layout.rightMargin: 8 } + Rectangle { Layout.preferredWidth: 1; Layout.preferredHeight: 16; Layout.rightMargin: 8; color: root.colMuted } + // Clock Text { id: clockText text: Qt.formatDateTime(new Date(), "ddd, MMM dd - HH:mm") - color: root.colCyan - font.pixelSize: root.fontSize - font.family: root.fontFamily - font.bold: true - Layout.rightMargin: 8 - + color: root.colFg // White clock + font.pixelSize: root.fontSize; font.family: root.fontFamily; font.bold: true; Layout.rightMargin: 8 Timer { - interval: 1000 - running: true - repeat: true + interval: 1000; running: true; repeat: true onTriggered: clockText.text = Qt.formatDateTime(new Date(), "ddd, MMM dd - HH:mm:ss") } } @@ -549,4 +327,3 @@ ShellRoot { } } } - diff --git a/rofi/config.rasi b/rofi/config.rasi index a8c6cb4..fa681e0 100644 --- a/rofi/config.rasi +++ b/rofi/config.rasi @@ -9,5 +9,6 @@ configuration { display-filebrowser: " filebrowser:"; } -@theme "~/.config/rofi/catppuccin-lavrent-mocha.rasi" + +@theme "~/.config/rofi/rofi-black.rasi" diff --git a/rofi/rofi-black.rasi b/rofi/rofi-black.rasi new file mode 100644 index 0000000..1f6e232 --- /dev/null +++ b/rofi/rofi-black.rasi @@ -0,0 +1,124 @@ +/** + * Blackout Catppuccin Theme + * Modified to match #000000 Ghostty and White prompt setup + */ + +* { + base: #000000; /* True Black */ + surface0: #181825; /* Darker Grey */ + overlay0: #313244; /* Selection Grey */ + text: #ffffff; /* Pure White */ + + mauve: #cba6f7; + red: #f38ba8; + peach: #fab387; + green: #a6e3a1; + lavender: #b4befe; + + background-color: @base; +} + +window { + height: 600; + width: 600; + + border: 2; + border-radius: 12; + border-color: @mauve; /* Gives a subtle glow against the black */ +} + +mainbox { + spacing: 0; + children: [inputbar, message, listview]; +} + +inputbar { + text-color: @text; + padding: 20; + background-color: @base; + children: [prompt, entry]; +} + +entry { + placeholder: "Search..."; + placeholder-color: @overlay0; + text-color: @text; +} + +message { + padding: 10; + background-color: @surface0; +} + +listview { + padding: 8; + border-radius: 0 0 10 10; + border: 0; + background-color: @base; + dynamic: true; + lines: 10; +} + +textbox { + text-color: @text; + background-color: inherit; +} + +error-message { + border: 2; + border-color: @red; + padding: 20; +} + +entry, prompt, case-indicator { + text-color: inherit; +} + +prompt { + margin: 0 10 0 0; + text-color: @mauve; /* Keeps the prompt arrow/icon colorful */ +} + +element { + padding: 8; + vertical-align: 0.5; + border-radius: 8; + background-color: transparent; + text-color: @text; +} + +element selected.normal { + background-color: @overlay0; + text-color: @text; +} + +element alternate.normal { + background-color: inherit; +} + +/* Logic for active/urgent states */ +element normal.active, element alternate.active { + text-color: @green; +} + +element selected.active { + background-color: @green; + text-color: @base; +} + +element normal.urgent, element alternate.urgent { + text-color: @red; +} + +element selected.urgent { + background-color: @red; + text-color: @base; +} + +element-text, element-icon { + size: 32; + margin: 0 12 0 0; + vertical-align: 0.5; + background-color: inherit; + text-color: inherit; +} diff --git a/tmux/tmux.conf b/tmux/tmux.conf index f32667f..41135b8 100644 --- a/tmux/tmux.conf +++ b/tmux/tmux.conf @@ -1,3 +1,4 @@ +# --- Core Settings --- # Enable 256 color support set -g default-terminal "tmux-256color" set -ga terminal-overrides ",*:RGB" @@ -44,22 +45,23 @@ bind -n M-7 select-window -t 7 bind -n M-8 select-window -t 8 bind -n M-9 select-window -t 9 - - -# Tokyo Night Moon theme colors -thm_bg="#222436" -thm_fg="#c8d3f5" -thm_cyan="#86e1fc" -thm_black="#1b1d2b" -thm_gray="#3a3f5a" -thm_magenta="#c099ff" -thm_pink="#ff757f" -thm_red="#ff757f" -thm_green="#c3e88d" -thm_yellow="#ffc777" -thm_blue="#82aaff" -thm_orange="#ff9e64" -thm_black4="#444a73" +# Set history limit +set -g history-limit 20000 + +# --- BLACKOUT THEME COLORS (Catppuccin Mocha on Black) --- +thm_bg="#000000" # True Black +thm_fg="#cdd6f4" # Text +thm_cyan="#89dceb" # Sky +thm_black="#000000" +thm_gray="#313244" # Surface1 +thm_magenta="#cba6f7" # Mauve +thm_pink="#f5c2e7" # Pink +thm_red="#f38ba8" # Red +thm_green="#a6e3a1" # Green +thm_yellow="#f9e2af" # Yellow +thm_blue="#89b4fa" # Blue +thm_orange="#fab387" # Peach +thm_black4="#45475a" # Surface2 # Status bar settings set -g status "on" @@ -74,33 +76,30 @@ set -g message-command-style "fg=${thm_cyan},bg=${thm_gray},align=centre" # Panes set -g pane-border-style "fg=${thm_gray}" -set -g pane-active-border-style "fg=${thm_blue}" +set -g pane-active-border-style "fg=${thm_magenta}" # Windows set -g window-status-activity-style "fg=${thm_fg},bg=${thm_bg},none" set -g window-status-separator "" set -g window-status-style "fg=${thm_fg},bg=${thm_bg},none" - - -# Statusline - current window -set -g window-status-current-format "#[fg=${thm_blue},bg=${thm_bg}] #I: #[fg=${thm_magenta},bg=${thm_bg}]( ) #[fg=${thm_cyan},bg=${thm_bg}]#(echo '#{pane_current_path}' | rev | cut -d'/' -f-2 | rev) #[fg=${thm_magenta},bg=${thm_bg}]" +# Statusline - current window (Mirroring the shell prompt style) +set -g window-status-current-format "#[fg=${thm_magenta},bg=${thm_bg}] #I: #[fg=${thm_fg},bg=${thm_bg},bold] #(echo '#{pane_current_path}' | rev | cut -d'/' -f-1 | rev) " # Statusline - other windows -set -g window-status-format "#[fg=${thm_blue},bg=${thm_bg}] #I: #[fg=${thm_fg},bg=${thm_bg}]#W" +set -g window-status-format "#[fg=${thm_black4},bg=${thm_bg}] #I: #[fg=${thm_black4},bg=${thm_bg}]#W" # Statusline - right side -set -g status-right "#[fg=${thm_blue},bg=${thm_bg},nobold,nounderscore,noitalics]#[fg=${thm_bg},bg=${thm_blue},nobold,nounderscore,noitalics] #[fg=${thm_fg},bg=${thm_gray}] #W #{?client_prefix,#[fg=${thm_magenta}],#[fg=${thm_cyan}]}#[bg=${thm_gray}]#{?client_prefix,#[bg=${thm_magenta}],#[bg=${thm_cyan}]}#[fg=${thm_bg}] #[fg=${thm_fg},bg=${thm_gray}] #S " +set -g status-right "#[fg=${thm_gray},bg=${thm_bg}]#[fg=${thm_fg},bg=${thm_gray}] #W #{?client_prefix,#[fg=${thm_red}],#[fg=${thm_cyan}]}#[bg=${thm_gray}]#{?client_prefix,#[bg=${thm_red}],#[bg=${thm_cyan}]}#[fg=${thm_bg}] #[fg=${thm_fg},bg=${thm_gray}] #S " # Statusline - left side (empty) set -g status-left "" # Modes set -g clock-mode-colour "${thm_blue}" -set -g mode-style "fg=${thm_blue} bg=${thm_black4} bold" - +set -g mode-style "fg=${thm_bg} bg=${thm_magenta} bold" -# Change from 0 based to 1 based because keyboard layout +# --- Indexing & Behavior --- set -g base-index 1 set -g pane-base-index 1 set-window-option -g pane-base-index 1 @@ -112,9 +111,3 @@ bind-key -T copy-mode-vi v send-keys -X begin-selection bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel unbind -T copy-mode-vi MouseDragEnd1Pane - - - - - - |
