summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsubh <subh@example.com>2026-03-09 05:25:46 +0530
committersubh <subh@example.com>2026-03-09 05:25:46 +0530
commitf42b5bdf3c4a59072c76294350a3895073440c94 (patch)
treefc08b5cde92576d781b9502bce755533a6ab5398
parentbd7ffca7774ac96abb496d86810b20dc20736178 (diff)
changes
-rw-r--r--.vim/.netrwhist18
-rw-r--r--.vim/colors.vim19
-rw-r--r--.vim/colors.vim.bak8
-rw-r--r--ghostty/config7
-rw-r--r--ghostty/themes/void.conf32
-rw-r--r--hyprlock/berserk.pngbin0 -> 4454142 bytes
-rw-r--r--hyprlock/hyprlock.conf4
-rw-r--r--hyprlock/vivek.pngbin0 -> 200401 bytes
-rw-r--r--quickshell/shell.qml401
-rw-r--r--rofi/config.rasi3
-rw-r--r--rofi/rofi-black.rasi124
-rw-r--r--tmux/tmux.conf57
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
new file mode 100644
index 0000000..651e3ac
--- /dev/null
+++ b/hyprlock/berserk.png
Binary files differ
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
new file mode 100644
index 0000000..5b9be9a
--- /dev/null
+++ b/hyprlock/vivek.png
Binary files differ
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
-
-
-
-
-
-