my dotfiles for arch

Compare changes

Choose any two refs to compare.

+795 -345
+1 -1
dot_gitconfig
··· 1 1 [user] 2 2 name = Thomas G. Lopes 3 - email = 26071571+TGlide@users.noreply.github.com 3 + email = thomasgl@pm.me 4 4 [pull] 5 5 rebase = true 6 6 [init]
+132
private_dot_config/DankMaterialShell/firefox.css
··· 1 + @media -moz-pref("userChrome.theme-material") { 2 + :root { 3 + --md-sys-color-primary: #2f628c; 4 + --md-sys-color-surface-tint: #2f628c; 5 + --md-sys-color-on-primary: #ffffff; 6 + --md-sys-color-primary-container: #cee5ff; 7 + --md-sys-color-on-primary-container: #001d33; 8 + --md-sys-color-secondary: #51606f; 9 + --md-sys-color-on-secondary: #ffffff; 10 + --md-sys-color-secondary-container: #d5e4f7; 11 + --md-sys-color-on-secondary-container: #0e1d2a; 12 + --md-sys-color-tertiary: #68587a; 13 + --md-sys-color-on-tertiary: #ffffff; 14 + --md-sys-color-tertiary-container: #efdbff; 15 + --md-sys-color-on-tertiary-container: #231533; 16 + --md-sys-color-error: #ba1a1a; 17 + --md-sys-color-on-error: #ffffff; 18 + --md-sys-color-error-container: #ffdad6; 19 + --md-sys-color-on-error-container: #410002; 20 + --md-sys-color-background: #f7f9ff; 21 + --md-sys-color-on-background: #181c20; 22 + --md-sys-color-surface: #f7f9ff; 23 + --md-sys-color-on-surface: #181c20; 24 + --md-sys-color-surface-variant: #dee3eb; 25 + --md-sys-color-on-surface-variant: #42474e; 26 + --md-sys-color-outline: #72777f; 27 + --md-sys-color-outline-variant: #c2c7cf; 28 + --md-sys-color-shadow: #000000; 29 + --md-sys-color-scrim: #000000; 30 + --md-sys-color-inverse-surface: #2d3135; 31 + --md-sys-color-inverse-on-surface: #eff1f6; 32 + --md-sys-color-inverse-primary: #9bcbfb; 33 + --md-sys-color-primary-fixed: #cee5ff; 34 + --md-sys-color-on-primary-fixed: #001d33; 35 + --md-sys-color-primary-fixed-dim: #9bcbfb; 36 + --md-sys-color-on-primary-fixed-variant: #0f4a73; 37 + --md-sys-color-secondary-fixed: #d5e4f7; 38 + --md-sys-color-on-secondary-fixed: #0e1d2a; 39 + --md-sys-color-secondary-fixed-dim: #b9c8da; 40 + --md-sys-color-on-secondary-fixed-variant: #3a4857; 41 + --md-sys-color-tertiary-fixed: #efdbff; 42 + --md-sys-color-on-tertiary-fixed: #231533; 43 + --md-sys-color-tertiary-fixed-dim: #d3bfe6; 44 + --md-sys-color-on-tertiary-fixed-variant: #504061; 45 + --md-sys-color-surface-dim: #d8dae0; 46 + --md-sys-color-surface-bright: #f7f9ff; 47 + --md-sys-color-surface-container-lowest: #ffffff; 48 + --md-sys-color-surface-container-low: #f1f3f9; 49 + --md-sys-color-surface-container: #eceef3; 50 + --md-sys-color-surface-container-high: #e6e8ee; 51 + --md-sys-color-surface-container-highest: #e0e2e8; 52 + 53 + --m3-radius: 12px; 54 + --m3-radius-sm: 10px; 55 + --m3-elev-0: none; 56 + --m3-elev-1: 0 1px 2px rgba(0,0,0,.08), 0 1px 3px rgba(0,0,0,.06); 57 + --m3-elev-2: 0 2px 6px rgba(0,0,0,.10), 0 1px 3px rgba(0,0,0,.06); 58 + 59 + --tab-height: 34px; 60 + --urlbar-height: 38px; 61 + 62 + --state-hover: color-mix(in srgb, var(--md-sys-color-on-surface) 8%, transparent); 63 + --state-press: color-mix(in srgb, var(--md-sys-color-on-surface) 12%, transparent); 64 + 65 + --focus-ring: 0 0 0 2px color-mix(in srgb, var(--md-sys-color-primary) 70%, transparent); 66 + } 67 + } 68 + 69 + @media (prefers-color-scheme: dark) { 70 + :root { 71 + --md-sys-color-primary: #9bcbfb; 72 + --md-sys-color-surface-tint: #9bcbfb; 73 + --md-sys-color-on-primary: #003353; 74 + --md-sys-color-primary-container: #0f4a73; 75 + --md-sys-color-on-primary-container: #cee5ff; 76 + --md-sys-color-secondary: #b9c8da; 77 + --md-sys-color-on-secondary: #243240; 78 + --md-sys-color-secondary-container: #3a4857; 79 + --md-sys-color-on-secondary-container: #d5e4f7; 80 + --md-sys-color-tertiary: #d3bfe6; 81 + --md-sys-color-on-tertiary: #392a49; 82 + --md-sys-color-tertiary-container: #504061; 83 + --md-sys-color-on-tertiary-container: #efdbff; 84 + --md-sys-color-error: #ffb4ab; 85 + --md-sys-color-on-error: #690005; 86 + --md-sys-color-error-container: #93000a; 87 + --md-sys-color-on-error-container: #ffdad6; 88 + --md-sys-color-background: #101418; 89 + --md-sys-color-on-background: #e0e2e8; 90 + --md-sys-color-surface: #101418; 91 + --md-sys-color-on-surface: #e0e2e8; 92 + --md-sys-color-surface-variant: #42474e; 93 + --md-sys-color-on-surface-variant: #c2c7cf; 94 + --md-sys-color-outline: #8c9198; 95 + --md-sys-color-outline-variant: #42474e; 96 + --md-sys-color-shadow: #000000; 97 + --md-sys-color-scrim: #000000; 98 + --md-sys-color-inverse-surface: #e0e2e8; 99 + --md-sys-color-inverse-on-surface: #2d3135; 100 + --md-sys-color-inverse-primary: #2f628c; 101 + --md-sys-color-primary-fixed: #cee5ff; 102 + --md-sys-color-on-primary-fixed: #001d33; 103 + --md-sys-color-primary-fixed-dim: #9bcbfb; 104 + --md-sys-color-on-primary-fixed-variant: #0f4a73; 105 + --md-sys-color-secondary-fixed: #d5e4f7; 106 + --md-sys-color-on-secondary-fixed: #0e1d2a; 107 + --md-sys-color-secondary-fixed-dim: #b9c8da; 108 + --md-sys-color-on-secondary-fixed-variant: #3a4857; 109 + --md-sys-color-tertiary-fixed: #efdbff; 110 + --md-sys-color-on-tertiary-fixed: #231533; 111 + --md-sys-color-tertiary-fixed-dim: #d3bfe6; 112 + --md-sys-color-on-tertiary-fixed-variant: #504061; 113 + --md-sys-color-surface-dim: #101418; 114 + --md-sys-color-surface-bright: #36393e; 115 + --md-sys-color-surface-container-lowest: #0b0f12; 116 + --md-sys-color-surface-container-low: #181c20; 117 + --md-sys-color-surface-container: #1c2024; 118 + --md-sys-color-surface-container-high: #272a2f; 119 + --md-sys-color-surface-container-highest: #323539; 120 + 121 + --m3-elev-1: 0 1px 2px rgba(0,0,0,.50), 0 1px 3px rgba(0,0,0,.35); 122 + --m3-elev-2: 0 4px 10px rgba(0,0,0,.55), 0 1px 3px rgba(0,0,0,.35); 123 + 124 + --state-hover: color-mix(in srgb, var(--md-sys-color-on-surface) 6%, transparent); 125 + --state-press: color-mix(in srgb, var(--md-sys-color-on-surface) 10%, transparent); 126 + } 127 + } 128 + 129 + /* idk if this even works, but the suggestion in the material updated readme bricks symbols no matter how many fallbacks I add */ 130 + :root { 131 + font-family: system-ui, "Inter Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !important; 132 + }
+231
private_dot_config/DankMaterialShell/settings.json
··· 1 + { 2 + "currentThemeName": "dynamic", 3 + "customThemeFile": "", 4 + "matugenScheme": "scheme-tonal-spot", 5 + "runUserMatugenTemplates": false, 6 + "matugenTargetMonitor": "", 7 + "dankBarTransparency": 0, 8 + "dankBarWidgetTransparency": 1, 9 + "popupTransparency": 0.92, 10 + "dockTransparency": 1, 11 + "use24HourClock": true, 12 + "showSeconds": false, 13 + "useFahrenheit": false, 14 + "nightModeEnabled": false, 15 + "weatherLocation": "Sรฃo Josรฉ de Sรฃo Lรกzaro, 4715-037", 16 + "weatherCoordinates": "41.5452457,-8.4202993", 17 + "useAutoLocation": false, 18 + "weatherEnabled": true, 19 + "showLauncherButton": true, 20 + "showWorkspaceSwitcher": true, 21 + "showFocusedWindow": true, 22 + "showWeather": true, 23 + "showMusic": true, 24 + "showClipboard": true, 25 + "showCpuUsage": true, 26 + "showMemUsage": true, 27 + "showCpuTemp": true, 28 + "showGpuTemp": true, 29 + "selectedGpuIndex": 0, 30 + "enabledGpuPciIds": [], 31 + "showSystemTray": true, 32 + "showClock": true, 33 + "showNotificationButton": true, 34 + "showBattery": true, 35 + "showControlCenterButton": true, 36 + "controlCenterShowNetworkIcon": true, 37 + "controlCenterShowBluetoothIcon": true, 38 + "controlCenterShowAudioIcon": true, 39 + "controlCenterWidgets": [ 40 + { 41 + "id": "volumeSlider", 42 + "enabled": true, 43 + "width": 50 44 + }, 45 + { 46 + "id": "brightnessSlider", 47 + "enabled": true, 48 + "width": 50 49 + }, 50 + { 51 + "id": "wifi", 52 + "enabled": true, 53 + "width": 50 54 + }, 55 + { 56 + "id": "bluetooth", 57 + "enabled": true, 58 + "width": 50 59 + }, 60 + { 61 + "id": "audioOutput", 62 + "enabled": true, 63 + "width": 50 64 + }, 65 + { 66 + "id": "audioInput", 67 + "enabled": true, 68 + "width": 50 69 + }, 70 + { 71 + "id": "nightMode", 72 + "enabled": true, 73 + "width": 50 74 + }, 75 + { 76 + "id": "darkMode", 77 + "enabled": true, 78 + "width": 50 79 + } 80 + ], 81 + "showWorkspaceIndex": true, 82 + "workspaceScrolling": false, 83 + "showWorkspacePadding": false, 84 + "showWorkspaceApps": false, 85 + "maxWorkspaceIcons": 3, 86 + "workspacesPerMonitor": true, 87 + "dwlShowAllTags": false, 88 + "workspaceNameIcons": {}, 89 + "waveProgressEnabled": true, 90 + "clockCompactMode": false, 91 + "focusedWindowCompactMode": false, 92 + "runningAppsCompactMode": true, 93 + "keyboardLayoutNameCompactMode": true, 94 + "runningAppsCurrentWorkspace": false, 95 + "runningAppsGroupByApp": false, 96 + "clockDateFormat": "d MMM yyyy", 97 + "lockDateFormat": "", 98 + "mediaSize": 1, 99 + "dankBarLeftWidgets": [ 100 + { 101 + "id": "launcherButton", 102 + "enabled": true 103 + }, 104 + { 105 + "id": "workspaceSwitcher", 106 + "enabled": true 107 + }, 108 + { 109 + "id": "focusedWindow", 110 + "enabled": true 111 + } 112 + ], 113 + "dankBarCenterWidgets": [ 114 + "music", 115 + "clock", 116 + "weather" 117 + ], 118 + "dankBarRightWidgets": [ 119 + "systemTray", 120 + "clipboard", 121 + "cpuUsage", 122 + "memUsage", 123 + "notificationButton", 124 + "battery", 125 + "controlCenterButton" 126 + ], 127 + "appLauncherViewMode": "list", 128 + "spotlightModalViewMode": "list", 129 + "sortAppsAlphabetically": false, 130 + "networkPreference": "auto", 131 + "vpnLastConnected": "", 132 + "iconTheme": "System Default", 133 + "launcherLogoMode": "apps", 134 + "launcherLogoCustomPath": "", 135 + "launcherLogoColorOverride": "", 136 + "launcherLogoColorInvertOnMode": false, 137 + "launcherLogoBrightness": 1, 138 + "launcherLogoContrast": 0, 139 + "launcherLogoSizeOffset": 0, 140 + "fontFamily": "FantasqueSansM Nerd Font", 141 + "monoFontFamily": "Fira Code", 142 + "fontWeight": 500, 143 + "fontScale": 1.05, 144 + "dankBarFontScale": 1, 145 + "notepadUseMonospace": true, 146 + "notepadFontFamily": "", 147 + "notepadFontSize": 14, 148 + "notepadShowLineNumbers": false, 149 + "notepadTransparencyOverride": -1, 150 + "notepadLastCustomTransparency": 0.7, 151 + "soundsEnabled": true, 152 + "useSystemSoundTheme": false, 153 + "soundNewNotification": true, 154 + "soundVolumeChanged": true, 155 + "soundPluggedIn": true, 156 + "gtkThemingEnabled": false, 157 + "qtThemingEnabled": false, 158 + "syncModeWithPortal": true, 159 + "showDock": false, 160 + "dockAutoHide": false, 161 + "dockGroupByApp": false, 162 + "dockOpenOnOverview": false, 163 + "dockPosition": 1, 164 + "dockSpacing": 4, 165 + "dockBottomGap": 0, 166 + "dockIconSize": 40, 167 + "dockIndicatorStyle": "circle", 168 + "cornerRadius": 8, 169 + "notificationOverlayEnabled": false, 170 + "dankBarAutoHide": false, 171 + "dankBarOpenOnOverview": false, 172 + "dankBarVisible": true, 173 + "dankBarSpacing": 0, 174 + "dankBarBottomGap": -4, 175 + "dankBarInnerPadding": 8, 176 + "dankBarSquareCorners": false, 177 + "dankBarNoBackground": false, 178 + "dankBarGothCornersEnabled": false, 179 + "dankBarBorderEnabled": false, 180 + "dankBarBorderColor": "surfaceText", 181 + "dankBarBorderOpacity": 1, 182 + "dankBarBorderThickness": 1, 183 + "popupGapsAuto": true, 184 + "popupGapsManual": 4, 185 + "dankBarPosition": 0, 186 + "lockScreenShowPowerActions": true, 187 + "enableFprint": false, 188 + "maxFprintTries": 3, 189 + "hideBrightnessSlider": true, 190 + "widgetBackgroundColor": "sc", 191 + "surfaceBase": "s", 192 + "wallpaperFillMode": "Fill", 193 + "blurredWallpaperLayer": false, 194 + "blurWallpaperOnOverview": false, 195 + "notificationTimeoutLow": 5000, 196 + "notificationTimeoutNormal": 5000, 197 + "notificationTimeoutCritical": 0, 198 + "notificationPopupPosition": 0, 199 + "osdAlwaysShowValue": false, 200 + "powerActionConfirm": true, 201 + "customPowerActionLock": "", 202 + "customPowerActionLogout": "", 203 + "customPowerActionSuspend": "", 204 + "customPowerActionHibernate": "", 205 + "customPowerActionReboot": "", 206 + "customPowerActionPowerOff": "", 207 + "updaterUseCustomCommand": false, 208 + "updaterCustomCommand": "", 209 + "updaterTerminalAdditionalParams": "", 210 + "screenPreferences": { 211 + "wallpaper": [ 212 + "all" 213 + ] 214 + }, 215 + "showOnLastDisplay": {}, 216 + "animationSpeed": 2, 217 + "customAnimationDuration": 500, 218 + "acMonitorTimeout": 7200, 219 + "acLockTimeout": 3600, 220 + "acSuspendTimeout": 0, 221 + "acHibernateTimeout": 0, 222 + "batteryMonitorTimeout": 0, 223 + "batteryLockTimeout": 0, 224 + "batterySuspendTimeout": 0, 225 + "batteryHibernateTimeout": 0, 226 + "lockBeforeSuspend": false, 227 + "loginctlLockIntegration": true, 228 + "launchPrefix": "", 229 + "brightnessDevicePins": {}, 230 + "configVersion": 1 231 + }
+2 -1
private_dot_config/ghostty/config
··· 1 - theme = rose-pine-moon 2 1 theme = matugen 3 2 3 + background-opacity = 0.95 4 + background-blur = true 4 5 font-family = "FantasqueSansM Nerd Font" 5 6 font-size = 14 6 7
+3
private_dot_config/jjui/config.toml
··· 1 + [ui.theme] 2 + dark = "matugen" 3 + light = "matugen"
+17 -12
private_dot_config/matugen/config.toml
··· 1 - [config.wallpaper] 2 - command = "dms" 3 - arguments = ["ipc", "call", "wallpaper", "set"] 4 - set = true 1 + [config] 5 2 6 3 [templates.ghostty] 7 - input_path = './templates/ghostty-theme' 4 + input_path = '~/.config/matugen/templates/ghostty-theme' 8 5 output_path = '~/.config/ghostty/themes/matugen' 9 6 post_hook = 'pkill -SIGUSR2 ghostty' 10 7 11 8 [templates.gtk3] 12 - input_path = './templates/gtk-colors.css' 9 + input_path = '~/.config/matugen/templates/gtk-colors.css' 13 10 output_path = '~/.config/gtk-3.0/colors.css' 14 11 15 12 [templates.gtk4] 16 - input_path = './templates/gtk-colors.css' 13 + input_path = '~/.config/matugen/templates/gtk-colors.css' 17 14 output_path = '~/.config/gtk-4.0/colors.css' 18 15 19 16 [templates.starship] 20 - input_path = './templates/starship-colors.toml' 17 + input_path = '~/.config/matugen/templates/starship-colors.toml' 21 18 output_path = '~/.config/starship.toml' 22 19 23 20 [templates.yazi] 24 - input_path = './templates/yazi-theme.toml' 21 + input_path = '~/.config/matugen/templates/yazi-theme.toml' 25 22 output_path = '~/.config/yazi/theme.toml' 26 23 27 24 [templates.qt5ct] 28 - input_path = './templates/qtct-colors.conf' 25 + input_path = '~/.config/matugen/templates/qtct-colors.conf' 29 26 output_path = '~/.config/qt5ct/colors/matugen.conf' 30 27 31 28 [templates.rofi] 32 - input_path = './templates/rofi-colors.rasi' 29 + input_path = '~/.config/matugen/templates/rofi-colors.rasi' 33 30 output_path = '~/.config/rofi/colors/matugen.rasi' 34 31 35 32 [templates.niri] 36 - input_path = './templates/niri-colors.kdl' 33 + input_path = '~/.config/matugen/templates/niri-colors.kdl' 37 34 output_path = '~/.config/niri/colors.kdl' 35 + 36 + [templates.jjui] 37 + input_path = '~/.config/matugen/templates/jjui-theme.toml' 38 + output_path = '~/.config/jjui/themes/matugen.toml' 39 + 40 + [templates.nvim] 41 + input_path = '~/.config/matugen/templates/neovim.lua' 42 + output_path = '~/.config/nvim/lua/plugins/dankcolors.lua'
-1
private_dot_config/matugen/templates/ghostty-theme
··· 1 - 2 1 cursor-color = {{colors.on_surface.default.hex}} 3 2 cursor-text = {{colors.on_surface_variant.default.hex}} 4 3 foreground = {{colors.on_surface.default.hex}}
+51
private_dot_config/matugen/templates/jjui-theme.toml
··· 1 + "text" = { fg = "{{colors.on_surface.default.hex}}", bg = "{{colors.surface.default.hex}}" } 2 + "dimmed" = { fg = "{{colors.on_surface_variant.default.hex}}" } 3 + "selected" = { bg = "{{colors.primary_container.default.hex}}", fg = "{{colors.on_primary_container.default.hex}}" } 4 + "border" = { fg = "{{colors.outline.default.hex}}" } 5 + "title" = { fg = "{{colors.primary.default.hex}}", bold = true } 6 + "shortcut" = { fg = "{{colors.secondary.default.hex}}" } 7 + "matched" = { fg = "{{colors.tertiary.default.hex}}", underline = true } 8 + 9 + "source_marker" = { bg = "{{colors.tertiary_container.default.hex}}", fg = "{{colors.on_tertiary_container.default.hex}}" } 10 + "target_marker" = { bg = "{{colors.error_container.default.hex}}", fg = "{{colors.on_error_container.default.hex}}" } 11 + 12 + "revisions rebase source_marker" = { bold = true } 13 + "revisions rebase target_marker" = { bold = true } 14 + 15 + "status" = { bg = "{{colors.surface_container_high.default.hex}}" } 16 + "status title" = { fg = "{{colors.on_primary.default.hex}}", bg = "{{colors.primary.default.hex}}", bold = true } 17 + "status shortcut" = { fg = "{{colors.secondary.default.hex}}" } 18 + "status dimmed" = { fg = "{{colors.on_surface_variant.default.hex}}" } 19 + 20 + "revset text" = { bold = true } 21 + "revset completion selected" = { bg = "{{colors.primary_container.default.hex}}", fg = "{{colors.on_primary_container.default.hex}}" } 22 + "revset completion matched" = { bold = true } 23 + "revset completion dimmed" = { fg = "{{colors.on_surface_variant.default.hex}}" } 24 + 25 + "revisions selected" = { bold = true } 26 + "oplog selected" = { bold = true } 27 + 28 + "evolog selected" = { bg = "{{colors.secondary_container.default.hex}}", fg = "{{colors.on_secondary_container.default.hex}}", bold = true } 29 + 30 + "help" = { bg = "{{colors.surface_container.default.hex}}" } 31 + "help title" = { fg = "{{colors.primary.default.hex}}", bold = true, underline = true } 32 + "help border" = { fg = "{{colors.outline.default.hex}}" } 33 + 34 + "menu" = { bg = "{{colors.surface_container.default.hex}}" } 35 + "menu title" = { fg = "{{colors.primary.default.hex}}", bold = true } 36 + "menu shortcut" = { fg = "{{colors.secondary.default.hex}}" } 37 + "menu dimmed" = { fg = "{{colors.on_surface_variant.default.hex}}" } 38 + "menu border" = { fg = "{{colors.outline.default.hex}}" } 39 + "menu selected" = { bg = "{{colors.primary_container.default.hex}}", fg = "{{colors.on_primary_container.default.hex}}" } 40 + 41 + "confirmation" = { bg = "{{colors.surface_container.default.hex}}" } 42 + "confirmation text" = { fg = "{{colors.on_surface.default.hex}}" } 43 + "confirmation selected" = { bg = "{{colors.primary_container.default.hex}}", fg = "{{colors.on_primary_container.default.hex}}" } 44 + "confirmation dimmed" = { fg = "{{colors.on_surface_variant.default.hex}}" } 45 + "confirmation border" = { fg = "{{colors.primary.default.hex}}" } 46 + 47 + "undo" = { bg = "{{colors.surface_container.default.hex}}" } 48 + "undo confirmation dimmed" = { fg = "{{colors.on_surface_variant.default.hex}}" } 49 + "undo confirmation selected" = { bg = "{{colors.primary_container.default.hex}}", fg = "{{colors.on_primary_container.default.hex}}" } 50 + 51 + "preview" = { fg = "{{colors.on_surface.default.hex}}" }
+124
private_dot_config/matugen/templates/neovim.lua
··· 1 + -- Matugen-generated palette for use by other plugins 2 + _G.matugen_palette = { 3 + color0 = "{{dank16.color0.default.hex}}", 4 + color1 = "{{dank16.color1.default.hex}}", 5 + color2 = "{{dank16.color2.default.hex}}", 6 + color3 = "{{dank16.color3.default.hex}}", 7 + color4 = "{{dank16.color4.default.hex}}", 8 + color5 = "{{dank16.color5.default.hex}}", 9 + color6 = "{{dank16.color6.default.hex}}", 10 + color7 = "{{dank16.color7.default.hex}}", 11 + color8 = "{{dank16.color8.default.hex}}", 12 + color9 = "{{dank16.color9.default.hex}}", 13 + color10 = "{{dank16.color10.default.hex}}", 14 + color11 = "{{dank16.color11.default.hex}}", 15 + color12 = "{{dank16.color12.default.hex}}", 16 + color13 = "{{dank16.color13.default.hex}}", 17 + color14 = "{{dank16.color14.default.hex}}", 18 + color15 = "{{dank16.color15.default.hex}}", 19 + } 20 + 21 + return { 22 + { 23 + "RRethy/base16-nvim", 24 + priority = 1000, 25 + config = function() 26 + require("base16-colorscheme").setup({ 27 + base00 = "{{dank16.color0.default.hex}}", 28 + base01 = "{{dank16.color0.default.hex}}", 29 + base02 = "{{dank16.color8.default.hex}}", 30 + base03 = "{{dank16.color8.default.hex}}", 31 + base04 = "{{dank16.color7.default.hex}}", 32 + base05 = "{{dank16.color15.default.hex}}", 33 + base06 = "{{dank16.color15.default.hex}}", 34 + base07 = "{{dank16.color15.default.hex}}", 35 + base08 = "{{dank16.color9.default.hex}}", 36 + base09 = "{{dank16.color9.default.hex}}", 37 + base0A = "{{dank16.color12.default.hex}}", 38 + base0B = "{{dank16.color10.default.hex}}", 39 + base0C = "{{dank16.color14.default.hex}}", 40 + base0D = "{{dank16.color12.default.hex}}", 41 + base0E = "{{dank16.color13.default.hex}}", 42 + base0F = "{{dank16.color13.default.hex}}", 43 + }) 44 + 45 + vim.api.nvim_set_hl(0, "Visual", { 46 + bg = "{{dank16.color8.default.hex}}", 47 + fg = "{{dank16.color15.default.hex}}", 48 + bold = true, 49 + }) 50 + vim.api.nvim_set_hl(0, "Statusline", { 51 + bg = "{{dank16.color12.default.hex}}", 52 + fg = "{{dank16.color0.default.hex}}", 53 + }) 54 + vim.api.nvim_set_hl(0, "LineNr", { fg = "{{dank16.color8.default.hex}}" }) 55 + vim.api.nvim_set_hl(0, "CursorLineNr", { fg = "{{dank16.color14.default.hex}}", bold = true }) 56 + 57 + vim.api.nvim_set_hl(0, "Statement", { 58 + fg = "{{dank16.color13.default.hex}}", 59 + bold = true, 60 + }) 61 + vim.api.nvim_set_hl(0, "Keyword", { link = "Statement" }) 62 + vim.api.nvim_set_hl(0, "Repeat", { link = "Statement" }) 63 + vim.api.nvim_set_hl(0, "Conditional", { link = "Statement" }) 64 + 65 + vim.api.nvim_set_hl(0, "Function", { 66 + fg = "{{dank16.color12.default.hex}}", 67 + bold = true, 68 + }) 69 + vim.api.nvim_set_hl(0, "Macro", { 70 + fg = "{{dank16.color12.default.hex}}", 71 + italic = true, 72 + }) 73 + vim.api.nvim_set_hl(0, "@function.macro", { link = "Macro" }) 74 + 75 + vim.api.nvim_set_hl(0, "Type", { 76 + fg = "{{dank16.color14.default.hex}}", 77 + bold = true, 78 + italic = true, 79 + }) 80 + vim.api.nvim_set_hl(0, "Structure", { link = "Type" }) 81 + 82 + vim.api.nvim_set_hl(0, "String", { 83 + fg = "{{dank16.color10.default.hex}}", 84 + italic = true, 85 + }) 86 + 87 + vim.api.nvim_set_hl(0, "Operator", { fg = "{{dank16.color7.default.hex}}" }) 88 + vim.api.nvim_set_hl(0, "Delimiter", { fg = "{{dank16.color7.default.hex}}" }) 89 + vim.api.nvim_set_hl(0, "@punctuation.bracket", { link = "Delimiter" }) 90 + vim.api.nvim_set_hl(0, "@punctuation.delimiter", { link = "Delimiter" }) 91 + 92 + vim.api.nvim_set_hl(0, "Comment", { 93 + fg = "{{dank16.color8.default.hex}}", 94 + italic = true, 95 + }) 96 + 97 + -- Transparent background 98 + vim.api.nvim_set_hl(0, "Normal", { bg = "NONE" }) 99 + vim.api.nvim_set_hl(0, "NormalNC", { bg = "NONE" }) 100 + vim.api.nvim_set_hl(0, "NormalFloat", { bg = "NONE" }) 101 + vim.api.nvim_set_hl(0, "SignColumn", { bg = "NONE" }) 102 + vim.api.nvim_set_hl(0, "EndOfBuffer", { bg = "NONE" }) 103 + 104 + -- Emit event for other plugins to react to theme changes 105 + vim.api.nvim_exec_autocmds("User", { pattern = "MatugenReload" }) 106 + 107 + local current_file_path = vim.fn.stdpath("config") .. "/lua/plugins/dankcolors.lua" 108 + if not _G._matugen_theme_watcher then 109 + local uv = vim.uv or vim.loop 110 + _G._matugen_theme_watcher = uv.new_fs_event() 111 + _G._matugen_theme_watcher:start( 112 + current_file_path, 113 + {}, 114 + vim.schedule_wrap(function() 115 + local new_spec = dofile(current_file_path) 116 + if new_spec and new_spec[1] and new_spec[1].config then 117 + new_spec[1].config() 118 + end 119 + end) 120 + ) 121 + end 122 + end, 123 + }, 124 + }
+75 -198
private_dot_config/niri/config.kdl
··· 3 3 // Check the wiki for a full description of the configuration: 4 4 // https://github.com/YaLTeR/niri/wiki/Configuration:-Introduction 5 5 6 - include "colors.kdl" 6 + // include "colors.kdl" 7 + include "./dms/colors.kdl" 8 + include "./dms/cursor.kdl" 9 + include "./dms/wpblur.kdl" 7 10 8 - // Input device configuration. 9 - // Find the full list of options on the wiki: 10 11 // https://github.com/YaLTeR/niri/wiki/Configuration:-Input 11 12 input { 12 13 keyboard { 13 14 xkb { 14 - // You can set rules, model, layout, variant and options. 15 15 // For more information, see xkeyboard-config(7). 16 16 layout "us,us_intl" 17 17 variant ",qwerty" ··· 66 66 67 67 // You can configure outputs by their name, which you can find 68 68 // by running `niri msg outputs` while inside a niri instance. 69 - // The built-in laptop monitor is usually called "eDP-1". 70 - // Find more information on the wiki: 71 69 // https://github.com/YaLTeR/niri/wiki/Configuration:-Outputs 72 - // Remember to uncomment the node by removing "/-"! 73 70 output "DP-1" { 74 71 // Uncomment this line to disable this output. 75 72 // off 76 73 77 - // Resolution and, optionally, refresh rate of the output. 78 - // The format is "<width>x<height>" or "<width>x<height>@<refresh rate>". 79 74 // If the refresh rate is omitted, niri will pick the highest refresh rate 80 75 // for the resolution. 81 76 // If the mode is omitted altogether or is invalid, niri will pick one automatically. 82 - // Run `niri msg outputs` while inside a niri instance to list all outputs and their modes. 83 77 mode "3840x2160@240" 84 - // mode "3840x2160@120" 78 + // mode "3840x2160@119.880" 85 79 86 80 // You can use integer or fractional scale, for example use 1.5 for 150% scale. 87 81 scale 2 ··· 99 93 // so to put another output directly adjacent to it on the right, set its x to 1920. 100 94 // If the position is unset or results in an overlap, the output is instead placed 101 95 // automatically. 102 - position x=2400 y=0 96 + // position x=2400 y=0 103 97 } 104 98 105 99 // Settings that influence how windows are positioned and sized. 106 100 // Find more information on the wiki: 107 101 // https://github.com/YaLTeR/niri/wiki/Configuration:-Layout 108 102 layout { 109 - // Set gaps around windows in logical pixels. 110 103 gaps 16 111 - 112 - // When to center a column when changing focus, options are: 113 - // - "never", default behavior, focusing an off-screen column will keep at the left 114 - // or right edge of the screen. 115 - // - "always", the focused column will always be centered. 116 - // - "on-overflow", focusing a column will center it if it doesn't fit 117 - // together with the previously focused column. 118 104 center-focused-column "on-overflow" 119 105 120 - // You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between. 121 106 preset-column-widths { 122 - // Proportion sets the width as a fraction of the output width, taking gaps into account. 123 - // For example, you can perfectly fit four windows sized "proportion 0.25" on an output. 124 - // The default preset widths are 1/3, 1/2 and 2/3 of the output. 125 107 proportion 0.5 126 - proportion 0.66667 108 + proportion 0.66667 127 109 proportion 0.75 128 110 proportion 0.95 129 111 ··· 139 121 // If you leave the brackets empty, the windows themselves will decide their initial width. 140 122 // default-column-width {} 141 123 142 - // By default focus ring and border are rendered as a solid background rectangle 143 - // behind windows. That is, they will show up through semitransparent windows. 144 - // This is because windows using client-side decorations can have an arbitrary shape. 145 - // 146 - // If you don't like that, you should uncomment `prefer-no-csd` below. 147 - // Niri will draw focus ring and border *around* windows that agree to omit their 148 - // client-side decorations. 149 - // 150 - // Alternatively, you can override it with a window rule called 151 - // `draw-border-with-background`. 152 - 153 124 // You can change how the focus ring looks. 154 125 focus-ring { 155 126 // Uncomment this line to disable the focus ring. ··· 157 128 158 129 // How many logical pixels the ring extends out from the windows. 159 130 width 4 160 - 161 - // Colors can be set in a variety of ways: 162 - // - CSS named colors: "red" 163 - // - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa" 164 - // - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others. 165 - 166 - // You can also use gradients. They take precedence over solid colors. 167 - // Gradients are rendered the same as CSS linear-gradient(angle, from, to). 168 - // The angle is the same as in linear-gradient, and is optional, 169 - // defaulting to 180 (top-to-bottom gradient). 170 - // You can use any CSS linear-gradient tool on the web to set these up. 171 - // Changing the color space is also supported, check the wiki for more info. 172 - // 173 - // active-gradient from="#80c8ff" to="#bbddff" angle=45 174 - 175 - // You can also color the gradient relative to the entire view 176 - // of the workspace, rather than relative to just the window itself. 177 - // To do that, set relative-to="workspace-view". 178 - // 179 - // inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view" 180 131 } 181 132 182 133 // You can also add a border. It's similar to the focus ring, but always visible. ··· 193 144 // Uncomment the next line to enable shadows. 194 145 // on 195 146 196 - // By default, the shadow draws only around its window, and not behind it. 197 - // Uncomment this setting to make the shadow draw behind its window. 198 - // 199 - // Note that niri has no way of knowing about the CSD window corner 200 - // radius. It has to assume that windows have square corners, leading to 201 - // shadow artifacts inside the CSD rounded corners. This setting fixes 202 - // those artifacts. 203 - // 204 - // However, instead you may want to set prefer-no-csd and/or 205 - // geometry-corner-radius. Then, niri will know the corner radius and 206 - // draw the shadow correctly, without having to draw it behind the 207 - // window. These will also remove client-side shadows if the window 208 - // draws any. 209 - // 210 - // draw-behind-window true 211 - 212 - // You can change how shadows look. The values below are in logical 213 - // pixels and match the CSS box-shadow properties. 214 - 215 147 // Softness controls the shadow blur radius. 216 148 softness 30 217 149 ··· 221 153 // Offset moves the shadow relative to the window. 222 154 offset x=0 y=5 223 155 } 224 - 225 - // Struts shrink the area occupied by windows, similarly to layer-shell panels. 226 - // You can think of them as a kind of outer gaps. They are set in logical pixels. 227 - // Left and right struts will cause the next window to the side to always be visible. 228 - // Top and bottom struts will simply add outer gaps in addition to the area occupied by 229 - // layer-shell panels and regular gaps. 230 - struts { 231 - // left 64 232 - // right 64 233 - // top 64 234 - // bottom 64 235 - } 236 156 } 237 157 238 - // Add lines like this to spawn processes at startup. 239 - // Note that running niri as a session supports xdg-desktop-autostart, 240 - // which may be more convenient to use. 241 - // See the binds section below for more spawn examples. 242 - 243 - // This line starts waybar, a commonly used bar for Wayland compositors. 244 158 spawn-at-startup "xwayland-satellite" 245 - spawn-at-startup "sh" "-c" "~/.config/niri/niri-watcher.sh" 246 - spawn-at-startup "sh" "-c" "niri-update-status" 247 159 248 - // Uncomment this line to ask the clients to omit their client-side decorations if possible. 249 - // If the client will specifically ask for CSD, the request will be honored. 250 - // Additionally, clients will be informed that they are tiled, removing some client-side rounded corners. 251 - // This option will also fix border/focus ring drawing behind some semitransparent windows. 252 - // After enabling or disabling this, you need to restart the apps for this to take effect. 253 - // prefer-no-csd 160 + prefer-no-csd 254 161 255 - // You can change the path where screenshots are saved. 256 - // A ~ at the front will be expanded to the home directory. 257 - // The path is formatted with strftime(3) to give you the screenshot date and time. 258 162 screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png" 259 - 260 - // You can also set this to null to disable saving screenshots to disk. 261 - // screenshot-path null 262 163 263 164 // Animation settings. 264 165 // The wiki explains how to configure individual animations: ··· 307 208 block-out-from "screen-capture" 308 209 } 309 210 310 - 211 + // Block out legcord from screen capture. 311 212 window-rule { 312 213 match app-id=r#"legcord$"# 313 214 // block-out-from "screencast" ··· 319 220 default-floating-position x=10 y=10 relative-to="bottom-right" 320 221 } 321 222 322 - // Example: block out two password managers from screen capture. 323 - // (This example rule is commented out with a "/-" in front.) 324 - /-window-rule { 325 - match app-id=r#"^org\.keepassxc\.KeePassXC$"# 326 - match app-id=r#"^org\.gnome\.World\.Secrets$"# 327 - 328 - block-out-from "screen-capture" 329 - 330 - // Use this instead if you want them visible on third-party screenshot tools. 331 - // block-out-from "screencast" 332 - } 333 - 334 223 // Example: enable rounded corners for all windows. 335 224 // (This example rule is commented out with a "/-" in front.) 336 225 window-rule { ··· 338 227 clip-to-geometry true 339 228 } 340 229 230 + hotkey-overlay { 231 + skip-at-startup 232 + } 233 + 341 234 binds { 342 - // Keys consist of modifiers separated by + signs, followed by an XKB key name 343 - // in the end. To find an XKB name for a particular key, you may use a program 344 - // like wev. 345 - // 346 - // "Mod" is a special modifier equal to Super when running on a TTY, and to Alt 347 - // when running as a winit window. 348 - // 349 - // Most actions that you can bind here can also be invoked programmatically with 350 - // `niri msg action do-something`. 351 - 352 - // Mod-Shift-/, which is usually the same as Mod-?, 353 - // shows a list of important hotkeys. 354 - Mod+Shift+Slash { show-hotkey-overlay; } 235 + Mod+Shift+Slash { show-hotkey-overlay; } 355 236 356 237 // APPLICATIONS 357 - Mod+T hotkey-overlay-title="Open a Terminal: Ghostty" { spawn "ghostty"; } 238 + Mod+T hotkey-overlay-title="Open a Terminal: Ghostty" { spawn "ghostty"; } 358 239 Super+E hotkey-overlay-title="Open Nautilus" { spawn "nautilus"; } 359 240 360 241 // SCRIPTS 361 - Super+B { spawn "sh" "-c" "matugen image $(~/scripts/random-wallpaper.sh)"; } 362 - Super+Shift+W hotkey-overlay-title="Restart Waybar" { spawn "sh" "-c" "killall waybar ; sleep 0.1 ; waybar & disown 363 - " ; } 242 + Super+B { spawn "sh" "-c" "dms ipc call wallpaper set $(~/scripts/random-wallpaper.sh)"; } 243 + Super+Shift+D hotkey-overlay-title="Restart DMS" { spawn "sh" "-c" "dms restart" ; } 364 244 // Super+A hotkey-overlay-title="Capture Screen" { spawn "sh" "-c" "grim -g \"$(slurp; sleep .1)\" - | swappy -f -"; } 365 245 Super+M hotkey-overlay-title="Media Output Select" { spawn "sh" "-c" "~/scripts/rofi-media.sh"; } 366 246 Super+Semicolon hotkey-overlay-title="Emoji picker" { spawn "sh" "-c" "rofimoji"; } 367 - 368 247 369 248 XF86AudioPlay allow-when-locked=true { spawn "playerctl" "play-pause"; } 370 249 XF86AudioNext allow-when-locked=true { spawn "playerctl" "next"; } 371 250 XF86AudioPrev allow-when-locked=true { spawn "playerctl" "previous"; } 372 - // Open/close the Overview: a zoomed-out view of workspaces and windows. 373 - // You can also move the mouse into the top-left hot corner, 374 - // or do a four-finger swipe up on a touchpad. 251 + 375 252 Mod+O repeat=false { toggle-overview; } 376 253 377 254 Mod+Q { close-window; } 378 255 379 256 Mod+Left { focus-column-left; } 380 - Mod+Down { focus-window-down; } 381 - Mod+Up { focus-window-up; } 257 + Mod+Down { focus-window-or-workspace-down; } 258 + Mod+Up { focus-window-or-workspace-up; } 382 259 Mod+Right { focus-column-right; } 383 260 // Mod+H { focus-column-left; } 384 261 // Mod+J { focus-window-down; } ··· 589 466 590 467 // The quit action will show a confirmation dialog to avoid accidental exits. 591 468 Mod+Shift+E { quit; } 592 - Ctrl+Alt+Delete { quit; } 593 469 594 470 // Powers off the monitors. To turn them back on, do any input like 595 471 // moving the mouse or pressing any other key. 596 472 Mod+Shift+P { power-off-monitors; } 597 473 598 - Mod+Space hotkey-overlay-title="Application Launcher" { 599 - spawn "dms" "ipc" "call" "spotlight" "toggle"; 600 - } 601 - Mod+Ctrl+V hotkey-overlay-title="Clipboard Manager" { 602 - spawn "dms" "ipc" "call" "clipboard" "toggle"; 603 - } 604 - Mod+Shift+M hotkey-overlay-title="Task Manager" { 605 - spawn "dms" "ipc" "call" "processlist" "toggle"; 606 - } 607 - Mod+N hotkey-overlay-title="Notification Center" { 608 - spawn "dms" "ipc" "call" "notifications" "toggle"; 609 - } 610 - Mod+Shift+Comma hotkey-overlay-title="Settings" { 611 - spawn "dms" "ipc" "call" "settings" "toggle"; 612 - } 613 - // Mod+P hotkey-overlay-title="Notepad" { 614 - // spawn "dms" "ipc" "call" "notepad" "toggle"; 615 - // } 616 - Super+L hotkey-overlay-title="Lock Screen" { 617 - spawn "dms" "ipc" "call" "lock" "lock"; 618 - } 619 - Mod+X hotkey-overlay-title="Power Menu" { 620 - spawn "dms" "ipc" "call" "powermenu" "toggle"; 621 - } 622 - XF86AudioRaiseVolume allow-when-locked=true { 623 - spawn "dms" "ipc" "call" "audio" "increment" "3"; 624 - } 625 - XF86AudioLowerVolume allow-when-locked=true { 626 - spawn "dms" "ipc" "call" "audio" "decrement" "3"; 627 - } 628 - XF86AudioMute allow-when-locked=true { 629 - spawn "dms" "ipc" "call" "audio" "mute"; 630 - } 631 - XF86AudioMicMute allow-when-locked=true { 632 - spawn "dms" "ipc" "call" "audio" "micmute"; 633 - } 634 - XF86MonBrightnessUp allow-when-locked=true { 635 - spawn "dms" "ipc" "call" "brightness" "increment" "5" ""; 636 - } 637 - // You can override the default device for e.g. keyboards by adding the device name to the last param 638 - XF86MonBrightnessDown allow-when-locked=true { 639 - spawn "dms" "ipc" "call" "brightness" "decrement" "5" ""; 640 - } 641 - // Night mode toggle 642 - Mod+Shift+N allow-when-locked=true { 643 - spawn "dms" "ipc" "call" "night" "toggle"; 644 - } 474 + // DMS 475 + Mod+Space hotkey-overlay-title="Application Launcher" { 476 + spawn "dms" "ipc" "call" "spotlight" "toggle"; 477 + } 478 + Mod+Ctrl+V hotkey-overlay-title="Clipboard Manager" { 479 + spawn "dms" "ipc" "call" "clipboard" "toggle"; 480 + } 481 + Mod+Shift+M hotkey-overlay-title="Task Manager" { 482 + spawn "dms" "ipc" "call" "processlist" "toggle"; 483 + } 484 + Ctrl+Alt+Delete hotkey-overlay-title="Task Manager" { 485 + spawn "dms" "ipc" "call" "processlist" "toggle"; 486 + } 487 + Mod+N hotkey-overlay-title="Notification Center" { 488 + spawn "dms" "ipc" "call" "notifications" "toggle"; 489 + } 490 + Mod+Shift+Comma hotkey-overlay-title="Settings" { 491 + spawn "dms" "ipc" "call" "settings" "toggle"; 492 + } 493 + Mod+Y hotkey-overlay-title="Browse Wallpapers" { 494 + spawn "dms" "ipc" "call" "dankdash" "wallpaper"; 495 + } 496 + // Mod+Shift+N hotkey-overlay-title="Notepad" { 497 + // spawn "dms" "ipc" "call" "notepad" "toggle"; 498 + // } 499 + Super+L hotkey-overlay-title="Lock Screen" { 500 + spawn "dms" "ipc" "call" "lock" "lock"; 501 + } 502 + Mod+X hotkey-overlay-title="Power Menu" { 503 + spawn "dms" "ipc" "call" "powermenu" "toggle"; 504 + } 505 + XF86AudioRaiseVolume allow-when-locked=true { 506 + spawn "dms" "ipc" "call" "audio" "increment" "3"; 507 + } 508 + XF86AudioLowerVolume allow-when-locked=true { 509 + spawn "dms" "ipc" "call" "audio" "decrement" "3"; 510 + } 511 + XF86AudioMute allow-when-locked=true { 512 + spawn "dms" "ipc" "call" "audio" "mute"; 513 + } 514 + XF86AudioMicMute allow-when-locked=true { 515 + spawn "dms" "ipc" "call" "audio" "micmute"; 516 + } 517 + XF86MonBrightnessUp allow-when-locked=true { 518 + spawn "dms" "ipc" "call" "brightness" "increment" "5" ""; 519 + } 520 + // You can override the default device for e.g. keyboards by adding the device name to the last param 521 + XF86MonBrightnessDown allow-when-locked=true { 522 + spawn "dms" "ipc" "call" "brightness" "decrement" "5" ""; 523 + } 524 + // Night mode toggle 525 + Mod+Shift+N allow-when-locked=true { 526 + spawn "dms" "ipc" "call" "night" "toggle"; 527 + } 645 528 } 646 529 647 530 environment { ··· 653 536 } 654 537 655 538 cursor { 656 - xcursor-theme "Adwaita" 657 - xcursor-size 28 658 - 659 - // hide-when-typing 539 + hide-when-typing 660 540 // hide-after-inactive-ms 1000 661 541 } 662 542 ··· 666 546 // Recommended (must install polkit-mate before hand) for elevation prompts 667 547 spawn-at-startup "/usr/lib/mate-polkit/polkit-mate-authentication-agent-1" 668 548 // This may be a different path on different distributions, the above is for the arch linux mate-polkit package 669 - 670 - // Starts DankShell 671 - spawn-at-startup "dms" "run" 672 549 673 550 // If using niri newer than 271534e115e5915231c99df287bbfe396185924d (~aug 17 2025) 674 551 // you can add this to disable built in config load errors since dank shell provides this
+1 -1
private_dot_config/nvim/lua/plugins/alpha.lua
··· 29 29 -- Randomly select a header 30 30 math.randomseed(os.time()) -- Initialize random seed 31 31 local random_header = headers[math.random(#headers)] 32 - -- local random_header = "bee" 32 + local random_header = "outer_wilds" 33 33 34 34 -- Construct the full path and require the header 35 35 local header = "plugins.alpha_headers." .. random_header
+1 -1
private_dot_config/nvim/lua/plugins/alpha_headers/cat_gun.lua
··· 1 1 local M = {} 2 2 3 3 M.setup = function(dashboard) 4 - -- vim.api.nvim_set_hl(0, "AlphaHeaderRed", { fg = "#ff5555", bold = true }) 4 + vim.api.nvim_set_hl(0, "AlphaHeaderRed", { fg = _G.matugen_palette.color12, bold = true }) 5 5 6 6 local logo = { 7 7 "โฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโกฟโ ฟโ ‹โ €โข€โฃผโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโฃฟโก‡โ €โ ˆโ ‰โ ‰โ ™โ ›โ ›โ ปโขฟโฃฟโกฟโ Ÿโ โ €โฃ€โฃดโฃฟโฃฟโฃฟโฃฟโฃฟโ Ÿ",
+1 -1
private_dot_config/nvim/lua/plugins/alpha_headers/doom.lua
··· 1 1 local M = {} 2 2 3 3 M.setup = function(dashboard) 4 - vim.api.nvim_set_hl(0, "AlphaHeaderRed", { fg = "#ff5555", bold = true }) 4 + vim.api.nvim_set_hl(0, "AlphaHeaderRed", { fg = _G.matugen_palette.color12, bold = true }) 5 5 6 6 local logo = { 7 7 " :h- Nhy` ",
+1 -1
private_dot_config/nvim/lua/plugins/alpha_headers/fallout.lua
··· 1 1 local M = {} 2 2 3 3 M.setup = function(dashboard) 4 - vim.api.nvim_set_hl(0, "AlphaHeaderGreen", { fg = "#50fa7b", bold = true }) 4 + vim.api.nvim_set_hl(0, "AlphaHeaderGreen", { fg = _G.matugen_palette.color12, bold = true }) 5 5 6 6 local logo = [[ 7 7 โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โฃ โกฟโ ›โขถโฃฆโฃ€โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €
+25 -14
private_dot_config/nvim/lua/plugins/alpha_headers/nyan.lua
··· 85 85 [[ WWWWVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWVVVVVVVVVVBBBBBBBBWWWWBBBBBBWWWWWWWWWWWWWWBBBBBBWWWWBBBBWWWWWWWWWW ]], 86 86 } 87 87 88 - local palette = require("rose-pine.palette") 88 + local c = { 89 + color0 = "#191724", 90 + color1 = "#eb6f92", 91 + color2 = "#31748f", 92 + color3 = "#f6c177", 93 + color4 = "#9ccfd8", 94 + color5 = "#c4a7e7", 95 + color6 = "#ebbcba", 96 + color7 = "#908caa", 97 + color8 = "#26233a", 98 + color15 = "#e0def4", 99 + } 89 100 90 101 local colors = { 91 - ["W"] = { fg = palette.base }, 92 - ["C"] = { fg = palette.text }, 93 - ["B"] = { fg = palette.surface }, 94 - ["R"] = { fg = palette.love }, 95 - ["O"] = { fg = palette.rose }, 96 - ["Y"] = { fg = palette.gold }, 97 - ["G"] = { fg = palette.foam }, 98 - ["U"] = { fg = palette.pine }, 99 - ["P"] = { fg = "#d7c08d" }, -- Using Yellow color (as specified in original) 100 - ["H"] = { fg = palette.iris }, 101 - ["F"] = { fg = palette.love }, 102 - ["M"] = { fg = palette.subtle }, 103 - ["V"] = { fg = palette.iris }, 102 + ["W"] = { fg = c.color0 }, 103 + ["C"] = { fg = c.color15 }, 104 + ["B"] = { fg = c.color8 }, 105 + ["R"] = { fg = c.color1 }, 106 + ["O"] = { fg = c.color6 }, 107 + ["Y"] = { fg = c.color3 }, 108 + ["G"] = { fg = c.color4 }, 109 + ["U"] = { fg = c.color2 }, 110 + ["P"] = { fg = c.color3 }, 111 + ["H"] = { fg = c.color5 }, 112 + ["F"] = { fg = c.color1 }, 113 + ["M"] = { fg = c.color7 }, 114 + ["V"] = { fg = c.color5 }, 104 115 } 105 116 106 117 dashboard.section.header.val = header
+8
private_dot_config/nvim/lua/plugins/alpha_headers/outer_wilds.lua
··· 1 1 local M = {} 2 2 3 3 M.setup = function(dashboard) 4 + vim.api.nvim_set_hl(0, "AlphaHeaderColor", { fg = _G.matugen_palette.color12, bold = true }) 5 + 4 6 dashboard.section.header.val = { 5 7 "โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €", 6 8 "โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โข โก„โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €", ··· 17 19 "โ €โ €โ €โ €โ €โ €โ €โ €โ €โ ‰โ ‰โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ ˆโ ‹โ €โ €โ €โ €โ €โ €โ €โ €โ ‰โ ‰โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ €โ ‰โ ‰โ €โ €โ €โ €โ €โ €โ €โ €โ นโ โ €โ €โ €โ €โ €โ €โ €โ €โ €", 18 20 "", 19 21 "", 22 + } 23 + 24 + dashboard.section.header.opts = { 25 + position = "center", 26 + hl = "AlphaHeaderColor", 27 + shrink_margin = false, 20 28 } 21 29 end 22 30
+1
private_dot_config/nvim/lua/plugins/colors.lua
··· 2 2 { 3 3 "rose-pine/neovim", 4 4 name = "rose-pine", 5 + enabled = false, 5 6 config = function() 6 7 vim.opt.laststatus = 2 -- Or 3 for global statusline 7 8 vim.opt.statusline = " %f %m %= %l:%c โ™ฅ "
+2 -2
private_dot_config/nvim/lua/plugins/context.lua
··· 1 1 return { 2 2 "nvim-treesitter/nvim-treesitter-context", 3 3 config = function() 4 - local p = require("rose-pine.palette") 5 - vim.api.nvim_set_hl(0, "TreesitterContext", { bg = p.base, ctermbg = "blue" }) 4 + local c = _G.matugen_palette or { color0 = "#191724" } 5 + vim.api.nvim_set_hl(0, "TreesitterContext", { bg = c.color0, ctermbg = "blue" }) 6 6 end, 7 7 }
+22
private_dot_config/nvim/lua/plugins/jjui.lua
··· 1 + return { 2 + "HotThoughts/jjui.nvim", 3 + cmd = { 4 + "JJUI", 5 + "JJUICurrentFile", 6 + "JJUIFilter", 7 + "JJUIFilterCurrentFile", 8 + "JJConfig", 9 + }, 10 + -- Setting the keybinding here helps lazy-loading 11 + keys = { 12 + { "<leader>jj", "<cmd>JJUI<cr>", desc = "JJUI" }, 13 + { "<leader>jc", "<cmd>JJUICurrentFile<cr>", desc = "JJUI (current file)" }, 14 + { "<leader>jl", "<cmd>JJUIFilter<cr>", desc = "JJUI Log" }, 15 + { "<leader>jf", "<cmd>JJUIFilterCurrentFile<cr>", desc = "JJUI Log (current file)" }, 16 + }, 17 + config = function() 18 + require("jjui").setup({ 19 + -- configuration options (see below) 20 + }) 21 + end, 22 + }
+96 -111
private_dot_config/nvim/lua/plugins/lualine.lua
··· 1 + local fallback_palette = { 2 + color0 = "#191724", 3 + color1 = "#eb6f92", 4 + color2 = "#31748f", 5 + color3 = "#f6c177", 6 + color4 = "#9ccfd8", 7 + color5 = "#c4a7e7", 8 + color6 = "#ebbcba", 9 + color7 = "#908caa", 10 + color8 = "#26233a", 11 + color9 = "#eb6f92", 12 + color10 = "#31748f", 13 + color11 = "#f6c177", 14 + color12 = "#9ccfd8", 15 + color13 = "#c4a7e7", 16 + color14 = "#ebbcba", 17 + color15 = "#e0def4", 18 + } 19 + 20 + local function build_theme() 21 + local c = _G.matugen_palette or fallback_palette 22 + local bg_base = "NONE" 23 + local dark = "#000000" 24 + local color = require("util.color") 25 + 26 + return { 27 + normal = { 28 + a = { bg = c.color4, fg = dark, gui = "bold" }, 29 + b = { bg = color.darken(c.color4, 50), fg = c.color15 }, 30 + c = { bg = c.color0, fg = c.color15 }, 31 + }, 32 + insert = { 33 + a = { bg = c.color2, fg = dark, gui = "bold" }, 34 + b = { bg = color.darken(c.color2, 50), fg = c.color15 }, 35 + }, 36 + visual = { 37 + a = { bg = c.color5, fg = dark, gui = "bold" }, 38 + b = { bg = color.darken(c.color5, 50), fg = c.color15 }, 39 + }, 40 + replace = { 41 + a = { bg = c.color3, fg = dark, gui = "bold" }, 42 + b = { bg = color.darken(c.color3, 50), fg = c.color15 }, 43 + }, 44 + command = { 45 + a = { bg = c.color1, fg = dark, gui = "bold" }, 46 + b = { bg = color.darken(c.color1, 50), fg = c.color15 }, 47 + }, 48 + inactive = { 49 + a = { bg = bg_base, fg = c.color7, gui = "bold" }, 50 + b = { bg = bg_base, fg = c.color7 }, 51 + }, 52 + } 53 + end 54 + 1 55 local function setup_macro_refresh(lualine) 2 56 vim.api.nvim_create_autocmd("RecordingEnter", { 3 57 callback = function() 4 - lualine.refresh({ 5 - place = { "statusline" }, 6 - }) 58 + lualine.refresh({ place = { "statusline" } }) 7 59 end, 8 60 }) 9 61 vim.api.nvim_create_autocmd("RecordingLeave", { ··· 13 65 50, 14 66 0, 15 67 vim.schedule_wrap(function() 16 - lualine.refresh({ 17 - place = { "statusline" }, 18 - }) 68 + lualine.refresh({ place = { "statusline" } }) 19 69 end) 20 70 ) 21 71 end, ··· 23 73 end 24 74 25 75 local function macro_recording_status() 26 - local function current_status() 27 - local register = vim.fn.reg_recording() 28 - return register == "" and "" or "RECORDING @" .. register 29 - end 30 - return { "macro-recording", fmt = current_status } 76 + return { 77 + "macro-recording", 78 + fmt = function() 79 + local register = vim.fn.reg_recording() 80 + return register == "" and "" or "RECORDING @" .. register 81 + end, 82 + } 83 + end 84 + 85 + local function heart() 86 + return [[โ™ฅ ]] 31 87 end 32 88 33 89 return { 34 90 "nvim-lualine/lualine.nvim", 35 91 event = "VeryLazy", 36 - dependencies = { 37 - "nvim-tree/nvim-web-devicons", 38 - }, 92 + dependencies = { "nvim-tree/nvim-web-devicons" }, 39 93 init = function() 40 94 vim.opt.laststatus = 0 41 95 end, ··· 45 99 local lualine = require("lualine") 46 100 setup_macro_refresh(lualine) 47 101 48 - local function heart() 49 - return [[โ™ฅ ]] 50 - --return [[๓ฐ‹‘]] 51 - end 52 - 53 - -- custom theme 54 - -- local custom_rose_pine = require 'lualine.themes.rose-pine' 55 - local p = require("rose-pine.palette") 56 - local config = require("rose-pine.config") 57 - 58 - local bg_base = p.base 59 - if config.options.styles.transparency then 60 - bg_base = "NONE" 61 - end 62 - 63 - local custom_rose_pine = { 64 - normal = { 65 - a = { bg = p.rose, fg = p.base, gui = "bold" }, 66 - b = { bg = p.overlay, fg = p.rose }, 67 - c = { bg = p.surface, fg = p.text }, 68 - }, 69 - insert = { 70 - a = { bg = p.foam, fg = p.base, gui = "bold" }, 71 - b = { bg = p.overlay, fg = p.foam }, 72 - --c = { bg = "#252834", fg = p.text }, 73 - }, 74 - visual = { 75 - a = { bg = p.iris, fg = p.base, gui = "bold" }, 76 - b = { bg = p.overlay, fg = p.iris }, 77 - --c = { bg = "#292436", fg = p.text }, 78 - }, 79 - replace = { 80 - a = { bg = p.pine, fg = p.base, gui = "bold" }, 81 - b = { bg = p.overlay, fg = p.pine }, 82 - -- c = { bg = "#1C2231", fg = p.text }, 83 - }, 84 - command = { 85 - a = { bg = p.love, fg = p.base, gui = "bold" }, 86 - b = { bg = p.overlay, fg = p.love }, 87 - -- c = { bg = "#2C1F2E", fg = p.text }, 88 - }, 89 - inactive = { 90 - a = { bg = bg_base, fg = p.muted, gui = "bold" }, 91 - b = { bg = bg_base, fg = p.muted }, 92 - -- c = { bg = bg_base, fg = p.muted }, 93 - }, 94 - } 95 - 96 - --- @param trunc_width number trunctates component when screen width is less then trunc_width 97 - --- @param trunc_len number truncates component to trunc_len number of chars 98 - --- @param hide_width number hides component when window width is smaller then hide_width 99 - --- @param no_ellipsis boolean whether to disable adding '...' at end after truncation 100 - --- return function that can format the component accordingly 101 - local function trunc(trunc_width, trunc_len, hide_width, no_ellipsis) 102 - return function(str) 103 - local win_width = vim.fn.winwidth(0) 104 - if hide_width and win_width < hide_width then 105 - return "" 106 - elseif trunc_width and trunc_len and win_width < trunc_width and #str > trunc_len then 107 - return str:sub(1, trunc_len) .. (no_ellipsis and "" or "...") 108 - end 109 - return str 110 - end 111 - end 112 - 113 - lualine.setup({ 114 - options = { 115 - theme = custom_rose_pine, 116 - component_separators = "", 117 - section_separators = { left = "๎‚ด", right = "๎‚ถ" }, 118 - disabled_filetypes = { "alpha" }, 119 - }, 120 - sections = { 121 - lualine_a = { 122 - { "mode", separator = { left = "๎‚ถ", right = "๎‚ด" }, right_padding = 2 }, 123 - macro_recording_status(), 102 + local function do_setup() 103 + lualine.setup({ 104 + options = { 105 + theme = build_theme(), 106 + component_separators = "", 107 + section_separators = { left = "", right = "" }, 108 + disabled_filetypes = { "alpha" }, 124 109 }, 125 - lualine_b = { 126 - { "branch", fmt = trunc(1200, 20, nil, false) }, 127 - "diff", 128 - "diagnostics", 129 - }, 130 - lualine_c = { 131 - -- { require("NeoComposer.ui").status_recording }, 132 - { "filename", path = 1 }, 133 - }, 134 - lualine_x = { "filetype" }, 135 - lualine_y = { "progress" }, 136 - lualine_z = { 137 - { 138 - "location", 139 - separator = { left = "๎‚ถ" }, 140 - left_padding = 2, 110 + sections = { 111 + lualine_a = { 112 + { "mode", separator = { left = "", right = "" }, right_padding = 2 }, 113 + macro_recording_status(), 141 114 }, 142 - { 143 - heart, 144 - separator = { right = "๎‚ด" }, 115 + lualine_b = { "diff", "diagnostics" }, 116 + lualine_c = { { "filename", path = 1 } }, 117 + lualine_x = { "filetype" }, 118 + lualine_y = { "progress" }, 119 + lualine_z = { 120 + { "location", separator = { left = "" }, left_padding = 2 }, 121 + { heart, separator = { right = "" } }, 145 122 }, 146 123 }, 147 - }, 148 - extensions = { "nvim-tree", "fzf" }, 124 + extensions = { "nvim-tree", "fzf" }, 125 + }) 126 + end 127 + 128 + do_setup() 129 + 130 + -- Re-setup lualine when matugen reloads theme 131 + vim.api.nvim_create_autocmd("User", { 132 + pattern = "MatugenReload", 133 + callback = do_setup, 149 134 }) 150 135 end, 151 136 }
+1 -1
private_dot_config/nvim/lua/plugins/oil.lua
··· 87 87 use_default_keymaps = true, 88 88 view_options = { 89 89 -- Show files and directories that start with "." 90 - show_hidden = false, 90 + show_hidden = true, 91 91 -- This function defines what is considered a "hidden" file 92 92 is_hidden_file = function(name, bufnr) 93 93 local m = name:match("^%.")