Compare commits

...

11 Commits

Author SHA1 Message Date
sudacode 1611dfead9 update 2026-05-27 23:45:42 -07:00
sudacode 1daa984a30 update 2026-05-27 22:47:03 -07:00
sudacode a33ee950b2 update 2026-05-27 18:38:21 -07:00
sudacode 66a79cef2f update 2026-05-27 13:45:00 -07:00
sudacode 753a5668df update 2026-05-27 13:38:40 -07:00
sudacode c2450c0a74 update 2026-05-27 13:37:23 -07:00
sudacode 08808a95de update 2026-05-27 13:37:13 -07:00
sudacode f958d2ade9 update 2026-05-27 13:29:16 -07:00
sudacode e44a21c282 update 2026-05-27 13:22:30 -07:00
sudacode 6a4c9e0b49 update 2026-05-27 13:03:04 -07:00
sudacode ef9e2f383a add hyprland lua files 2026-05-27 13:03:04 -07:00
19 changed files with 1736 additions and 666 deletions
+85 -15
View File
@@ -1,5 +1,5 @@
model = "gpt-5.5"
model_reasoning_effort = "high"
model_reasoning_effort = "medium"
personality = "pragmatic"
tool_output_token_limit = 25000
# Leave room for native compaction near the 272273k context window.
@@ -19,7 +19,7 @@ web_request = true
skills = true
shell_snapshot = true
multi_agent = true
js_repl = true
js_repl = false
[mcp_servers.deepwiki]
url = "https://mcp.deepwiki.com/mcp"
@@ -28,23 +28,26 @@ url = "https://mcp.deepwiki.com/mcp"
command = "npx"
args = ["mcp-remote", "http://127.0.0.1:3141"]
[mcp_servers.backlog]
command = "backlog"
args = ["mcp", "start"]
[mcp_servers.backlog.tools.task_search]
approval_mode = "approve"
[mcp_servers.backlog.tools.task_create]
approval_mode = "approve"
[mcp_servers.backlog.tools.task_edit]
approval_mode = "approve"
[mcp_servers.playwright]
command = "npx"
args = ["@playwright/mcp@latest"]
[mcp_servers.node_repl]
args = []
command = "/opt/codex-desktop/resources/node_repl"
startup_timeout_sec = 120
[mcp_servers.node_repl.env]
NODE_REPL_NATIVE_PIPE_CONNECT_TIMEOUT_MS = "1000"
NODE_REPL_NODE_MODULE_DIRS = ""
NODE_REPL_NODE_PATH = "/opt/codex-desktop/resources/node-runtime/bin/node"
NODE_REPL_TRUSTED_CODE_PATHS = "/home/sudacode/.codex"
CODEX_HOME = "/home/sudacode/.codex"
NODE_REPL_TRUSTED_BROWSER_CLIENT_SHA256S = "167fdf579477181fba1773c1efb067b00c5a64fe85dafb50a2001bde198dc739,70d5eb014dcfb1ab7db48b60db6df49336579ea7f2b76eb4b157be7897dca29d"
BROWSER_USE_AVAILABLE_BACKENDS = "chrome,iab"
BROWSER_USE_MARKETPLACE_NAME = "openai-bundled"
NODE_REPL_UNTRUSTED_ENV_ALLOWLIST = "BROWSER_USE_MARKETPLACE_NAME"
[projects."/home/sudacode/projects"]
trust_level = "trusted"
@@ -213,5 +216,72 @@ trust_level = "trusted"
[plugins."github@openai-curated"]
enabled = true
[plugins."documents@openai-primary-runtime"]
enabled = true
[plugins."spreadsheets@openai-primary-runtime"]
enabled = true
[plugins."presentations@openai-primary-runtime"]
enabled = true
[plugins."chrome@openai-bundled"]
enabled = true
[plugins."subminer-workflow@subminer-local"]
enabled = true
[plugins."browser@openai-bundled"]
enabled = true
[tui.model_availability_nux]
"gpt-5.5" = 4
[desktop]
sansFontSize = 18
codeFontSize = 16
git-branch-prefix = ""
appearanceLightCodeThemeId = "catppuccin"
appearanceDarkCodeThemeId = "catppuccin"
git-pull-request-merge-method = "squash"
git-show-sidebar-pr-icons = true
[desktop.appearanceLightChromeTheme]
accent = "#8839ef"
contrast = 45
ink = "#4c4f69"
opaqueWindows = false
surface = "#eff1f5"
[desktop.appearanceLightChromeTheme.fonts]
[desktop.appearanceLightChromeTheme.semanticColors]
diffAdded = "#40a02b"
diffRemoved = "#d20f39"
skill = "#8839ef"
[desktop.appearanceDarkChromeTheme]
accent = "#cba6f7"
contrast = 60
ink = "#cdd6f4"
opaqueWindows = false
surface = "#1e1e2e"
[desktop.appearanceDarkChromeTheme.fonts]
code = "JetBrainsMono Nerd Font"
ui = "Manrope"
[desktop.appearanceDarkChromeTheme.semanticColors]
diffAdded = "#a6e3a1"
diffRemoved = "#f38ba8"
skill = "#cba6f7"
[marketplaces.openai-bundled]
last_updated = "2026-05-24T02:02:38Z"
source_type = "local"
source = "/home/sudacode/.codex/.tmp/bundled-marketplaces/openai-bundled"
[marketplaces.openai-primary-runtime]
last_updated = "2026-05-23T22:00:53Z"
source_type = "local"
source = "/home/sudacode/.cache/codex-runtimes/codex-primary-runtime/plugins/openai-primary-runtime"
-268
View File
@@ -1,268 +0,0 @@
{
"keybindings": [],
"shortcuts": {
"copySubtitle": "CommandOrControl+C",
"copySubtitleMultiple": "CommandOrControl+Shift+C",
"updateLastCardFromClipboard": "CommandOrControl+V",
"triggerFieldGrouping": "CommandOrControl+G",
"mineSentence": "CommandOrControl+S",
"mineSentenceMultiple": "CommandOrControl+Shift+S",
"multiCopyTimeoutMs": 3000,
"toggleSecondarySub": "CommandOrControl+Shift+V",
"markAudioCard": "CommandOrControl+Shift+A",
"openRuntimeOptions": "CommandOrControl+Shift+O",
"toggleVisibleOverlayGlobal": "Alt+Shift+O",
"toggleInvisibleOverlayGlobal": "Alt+Shift+I",
},
"auto_start_overlay": true,
"texthooker": {
"openBrowser": false,
},
"websocket": {
"enabled": "auto",
"port": 6677,
},
"ankiConnect": {
"enabled": true,
"url": "http://127.0.0.1:8765",
"deck": "Minecraft",
"pollingRate": 500,
"fields": {
"audio": "ExpressionAudio",
"image": "Picture",
"sentence": "Sentence",
"miscInfo": "MiscInfo",
"translation": "SelectionText",
},
"media": {
"generateAudio": true,
"generateImage": true,
"imageType": "avif",
"imageFormat": "webp",
"animatedFps": 24,
"animatedMaxWidth": 640,
"animatedMaxHeight": null,
"animatedCrf": 35,
"audioPadding": 0.5,
"fallbackDuration": 3,
},
"behavior": {
"overwriteAudio": false,
"overwriteImage": true,
"mediaInsertMode": "append",
"highlightWord": true,
"notificationType": "system",
"showNotificationOnUpdate": true,
"autoUpdateNewCards": true,
},
"knownWords": {
"decks": {
"minecraft": ["expression", "reading"],
"kaishi 1.5k": ["word", "word reading"],
},
"highlightEnabled": true,
"refreshMinutes": 60,
"matchMode": "headword",
},
"nPlusOne": {
"minSentenceWords": "3",
"enabled": true,
},
"metadata": {
"pattern": "[SubMiner] %f (%t)",
},
"isLapis": {
"enabled": true,
"sentenceCardModel": "Lapis Morph",
},
"isKiku": {
"enabled": true,
"fieldGrouping": "manual",
"deleteDuplicateInAuto": true,
},
"tags": ["SubMiner"],
"proxy": {
"enabled": true,
"host": "127.0.0.1",
"port": 8766,
"upstreamUrl": "http://127.0.0.1:8765",
},
"ai": {
"enabled": true,
"systemPrompt": "You are a translation engine for translating Japanese into natural-sounding, context-aware English. Return only the translated text with no extra explanations or commentary. The translation must preserve the original tone and intent of the source. If the input is not in the target language, translate it to the target language. If the input is already in the target language, return it as is.",
"model": "google/gemini-2.5-flash-lite",
},
},
"ai": {
"enabled": true,
"alwaysUseAiTranslation": false,
"apiKeyCommand": "cat ~/.openrouterapikey",
"baseUrl": "https://openrouter.ai/api/v1",
"sourceLanguage": "Japanese",
},
"secondarySub": {
"autoLoadSecondarySub": true,
"secondarySubLanguages": ["en", "eng"],
},
"subsync": {
"defaultMode": "manual",
"alass_path": "alass-cli",
"ffsubsync_path": "ffsubsync",
"ffmpeg_path": "ffmpeg",
"replace": true,
},
"subtitleStyle": {
"preserveLineBreaks": false,
"hoverBackground": "rgba(54, 58, 79, 0.84)",
"autoPauseVideoOnHover": true,
"autoPauseVideoOnYomitanPopup": true,
"nameMatchEnabled": true,
"nameMatchColor": "#f5bde6",
"secondary": {
"css": {
"font-family": "Manrope, Inter",
"color": "#cad3f5",
"background-color": "transparent",
"font-size": "24px",
"font-weight": "600",
"text-shadow": "3px 0 0 #000, -3px 0 0 #000, 0 3px 0 #000, 0 -3px 0 #000, 2px 2px 0 #000, -2px -2px 0 #000, 2px -2px 0 #000, -2px 2px 0 #000",
"backdrop-filter": "blur(6px)",
},
},
"frequencyDictionary": {
"enabled": true,
"sourcePath": "",
"topX": 10000,
"mode": "banded",
"matchMode": "headword",
"singleColor": "#f5a97f",
"bandedColors": ["#ed8796", "#f5a97f", "#f9e2af", "#8bd5ca", "#8aadf4"],
},
"enableJlpt": true,
"jlptColors": {
"N1": "#ed8796",
"N2": "#f5a97f",
"N3": "#f9e2af",
"N4": "#a6e3a1",
"N5": "#8aadf4",
},
"nPlusOneColor": "#c6a0f6",
"knownWordColor": "#a6da95",
"css": {
"--subtitle-hover-token-background-color": "transparent",
"font-family": "Hiragino Sans, M PLUS 1, Noto Sans CJK JP Regular, Noto Sans CJK JP, Arial Unicode MS, Arial, sans-serif",
"color": "#cad3f5",
"background-color": "transparent",
"font-size": "35px",
"font-weight": "600",
"font-style": "normal",
"line-height": "1.35",
"letter-spacing": "-0.01em",
"word-spacing": "0",
"font-kerning": "normal",
"text-rendering": "geometricPrecision",
"text-shadow": "3px 0 0 #000, -3px 0 0 #000, 0 3px 0 #000, 0 -3px 0 #000, 2px 2px 0 #000, -2px -2px 0 #000, 2px -2px 0 #000, -2px 2px 0 #000",
"backdrop-filter": "blur(6px)",
},
},
"jimaku": {
"apiKeyCommand": "cat ~/.jimaku-api-key",
"apiBaseUrl": "https://jimaku.cc",
"languagePreference": "ja",
"maxEntryResults": 10,
},
"youtube": {
"primarySubLanguages": ["ja", "jpn"],
},
"anilist": {
"accessToken": "",
"enabled": true,
"characterDictionary": {
"enabled": true,
"maxLoaded": 3,
"profileScope": "all",
},
},
"immersionTracking": {
"enabled": true,
"dbPath": "",
},
"jellyfin": {
"enabled": true,
"serverUrl": "http://pve-main:8096",
"username": "sudacode",
"accessToken": "",
"userId": "",
"deviceId": "subminer",
"clientName": "SubMiner",
"clientVersion": "0.1.0",
"defaultLibraryId": "",
"directPlayPreferred": true,
"remoteControlEnabled": true,
"remoteControlAutoConnect": false,
"autoAnnounce": false,
"remoteControlDeviceName": "SubMiner",
"directPlayContainers": ["mkv", "mp4", "webm", "mov", "flac", "mp3", "aac"],
"transcodeVideoCodec": "h264",
"pullPictures": true,
"iconCacheDir": "/tmp/subminer-jellyfin-icons",
"recentServers": ["http://pve-main:8096"],
},
"logging": {
"level": "debug",
},
"discordPresence": {
"enabled": true,
"detailsTemplate": "Mining and crafting (Anki cards)",
"stateTemplate": "Idle",
"largeImageKey": "subminer-logo",
"largeImageText": "SubMiner",
"smallImageKey": "study",
"smallImageText": "Sentence Mining",
"buttonLabel": "",
"buttonUrl": "",
"updateIntervalMs": 15000,
"debounceMs": 750,
},
"startupWarmups": {
"lowPowerMode": false,
"mecab": true,
"yomitanExtension": true,
"subtitleDictionaries": true,
"jellyfinRemoteSession": true,
},
"stats": {
"toggleKey": "Backquote",
"serverPort": 6969,
"autoStartServer": true,
"autoOpenBrowser": false,
},
"subtitleSidebar": {
"enabled": true,
"layout": "embedded",
"toggleKey": "Backslash",
"pauseVideoOnHover": true,
"autoScroll": true,
"css": {
"font-family": "'M PLUS 1', 'Noto Sans CJK JP', 'sans-serif'",
"color": "#cad3f5",
"background-color": "rgba(73, 77, 100, 0.9)",
"font-size": "16px",
"opacity": "0.95",
"--subtitle-sidebar-max-width": "420px",
"--subtitle-sidebar-timestamp-color": "#a5adcb",
"--subtitle-sidebar-active-line-color": "#f5bde6",
"--subtitle-sidebar-active-background-color": "rgba(138, 173, 244, 0.22)",
"--subtitle-sidebar-hover-background-color": "rgba(54, 58, 79, 0.84)",
},
},
"mpv": {
"launchMode": "normal",
},
"updates": {
"enabled": true,
"checkIntervalHours": 24,
"notificationType": "system",
"channel": "prerelease",
},
}
-314
View File
@@ -1,314 +0,0 @@
{
"keybindings": [
{
"key": "KeyF",
"command": ["cycle", "fullscreen"],
},
{
"key": "KeyR",
"command": ["add", "sub-pos", -5],
},
{
"key": "Shift+KeyR",
"command": ["add", "sub-pos", 5],
},
{
"key": "KeyJ",
"command": ["cycle", "sub"],
},
{
"key": "BracketRight",
"command": ["add", "sub-delay", 0.1],
},
{
"key": "BracketLeft",
"command": ["add", "sub-delay", -0.1],
},
{
"key": "Backslash",
"command": ["set_property", "sub-delay", 0],
},
],
"shortcuts": {
"copySubtitle": "CommandOrControl+C",
"copySubtitleMultiple": "CommandOrControl+Shift+C",
"updateLastCardFromClipboard": "CommandOrControl+V",
"triggerFieldGrouping": "CommandOrControl+G",
"triggerSubsync": "CommandOrControl+Alt+S",
"mineSentence": "CommandOrControl+S",
"mineSentenceMultiple": "CommandOrControl+Shift+S",
"multiCopyTimeoutMs": 3000,
"toggleSecondarySub": "CommandOrControl+Shift+V",
"markAudioCard": "CommandOrControl+Shift+A",
"openRuntimeOptions": "CommandOrControl+Shift+O",
"toggleVisibleOverlayGlobal": "Alt+Shift+O",
"toggleInvisibleOverlayGlobal": "Alt+Shift+I",
},
"auto_start_overlay": false,
"texthooker": {
"launchAtStartup": true,
"openBrowser": false,
},
"websocket": {
"enabled": "auto",
"port": 6677,
},
"ankiConnect": {
"enabled": true,
"url": "http://127.0.0.1:8765",
"deck": "Minecraft",
"pollingRate": 500,
"proxy": {
"enabled": true,
"host": "127.0.0.1",
"port": 8766,
"upstreamUrl": "http://127.0.0.1:8765",
},
"fields": {
"audio": "ExpressionAudio",
"image": "Picture",
"sentence": "Sentence",
"miscInfo": "MiscInfo",
"translation": "SelectionText",
},
"ai": {
"enabled": true,
"model": "openai/gpt-oss-120b:free",
"systemPrompt": "You are a translation engine for translating Japanese into natural-sounding, context-aware English. Return only the translated text with no extra explanations or commentary. The translation must preserve the original tone and intent of the source. If the input is not in the target language, translate it to the target language. If the input is already in the target language, return it as is.",
},
"media": {
"generateAudio": true,
"generateImage": true,
"imageType": "avif",
"imageFormat": "webp",
"animatedFps": 24,
"animatedMaxWidth": 640,
"animatedMaxHeight": null,
"animatedCrf": 35,
"audioPadding": 0.5,
"fallbackDuration": 3,
"syncAnimatedImageToWordAudio": true,
},
"behavior": {
"overwriteAudio": false,
"overwriteImage": true,
"mediaInsertMode": "append",
"highlightWord": true,
"notificationType": "both",
"showNotificationOnUpdate": true,
"autoUpdateNewCards": true,
},
"knownWords": {
"decks": {
"Minecraft": ["Expression", "Reading"],
"Kaishi 1.5k": ["Word", "Word Reading"],
},
"highlightEnabled": true,
"refreshMinutes": 60,
"matchMode": "headword",
"addMinedWordsImmediately": true,
},
"nPlusOne": {
"minSentenceWords": 3,
},
"metadata": {
"pattern": "[SubMiner] %f (%t)",
},
"isLapis": {
"enabled": true,
"sentenceCardModel": "Lapis Morph",
},
"isKiku": {
"enabled": true,
"fieldGrouping": "manual",
"deleteDuplicateInAuto": false,
},
"tags": ["SubMiner"],
},
"ai": {
"enabled": true,
"alwaysUseAiTranslation": false,
"apiKeyCommand": "cat ~/.openrouterapikey",
"baseUrl": "https://openrouter.ai/api/v1",
"sourceLanguage": "Japanese",
},
"secondarySub": {
"autoLoadSecondarySub": true,
"secondarySubLanguages": ["en", "eng"],
},
"youtube": {
"primarySubLanguages": ["ja", "jpn"],
},
"subsync": {
"defaultMode": "manual",
"alass_path": null,
"ffsubsync_path": null,
"ffmpeg_path": null,
"replace": true,
},
"subtitleStyle": {
"fontFamily": "Hiragino Sans, M PLUS 1, Source Han Sans JP, Noto Sans CJK JP",
"fontSize": 38,
"fontColor": "#cad3f5",
"fontWeight": 500,
"lineHeight": 1.4,
"letterSpacing": "0.02em",
"wordSpacing": 0,
"fontKerning": "normal",
"textRendering": "optimizeLegibility",
"paintOrder": "stroke fill",
"WebkitTextStroke": "1.5px #000",
"textShadow": "0 2px 6px rgba(0,0,0,0.9), 0 0 12px rgba(0,0,0,0.55)",
"fontStyle": "normal",
"backgroundColor": "transparent",
"hoverTokenColor": "#f4dbd6",
"backdropFilter": "blur(6px)",
"hoverTokenBackgroundColor": "transparent",
"preserveLineBreaks": false,
"autoPauseVideoOnHover": true,
"autoPauseVideoOnYomitanPopup": true,
"secondary": {
"fontFamily": "Manrope, Inter",
"fontSize": 24,
"fontColor": "#cad3f5",
"backgroundColor": "transparent",
"paintOrder": "stroke fill",
"WebkitTextStroke": "0.75px #000",
"textShadow": "0 1px 4px rgba(0,0,0,0.85), 0 0 10px rgba(0,0,0,0.5)",
},
"frequencyDictionary": {
"enabled": true,
"sourcePath": "",
"topX": 10000,
"mode": "single",
"matchMode": "headword",
"singleColor": "#f5a97f",
"bandedColors": ["#ed8796", "#f5a97f", "#f9e2af", "#8bd5ca", "#8aadf4"],
},
"enableJlpt": true,
"jlptColors": {
"N1": "#ed8796",
"N2": "#f5a97f",
"N3": "#f9e2af",
"N4": "#8bd5ca",
"N5": "#8aadf4",
},
"nPlusOneColor": "#c6a0f6",
"knownWordColor": "#a6da95",
},
"jimaku": {
"apiKeyCommand": "cat ~/.jimaku-api-key",
"apiBaseUrl": "https://jimaku.cc",
"languagePreference": "ja",
"maxEntryResults": 10,
},
"anilist": {
"enabled": true,
"characterDictionary": {
"enabled": true,
"collapsibleSections": {
"description": false,
"characterInformation": false,
"voicedBy": false,
},
},
},
"immersionTracking": {
"enabled": true,
"dbPath": "",
},
"jellyfin": {
"enabled": true,
"serverUrl": "http://pve-main:8096",
"username": "sudacode",
"deviceId": "subminer",
"clientName": "SubMiner",
"clientVersion": "0.1.0",
"defaultLibraryId": "",
"directPlayPreferred": true,
"remoteControlEnabled": true,
"remoteControlAutoConnect": true,
"autoAnnounce": false,
"remoteControlDeviceName": "SubMiner",
"directPlayContainers": ["mkv", "mp4", "webm", "mov", "flac", "mp3", "aac"],
"transcodeVideoCodec": "h265",
"pullPictures": true,
"iconCacheDir": "~/S/japanese/subminer-jellyfin-icons",
},
"logging": {
"level": "info",
},
"discordPresence": {
"enabled": true,
"detailsTemplate": "Mining and crafting (Anki cards)",
"stateTemplate": "Idle",
"largeImageKey": "subminer-logo",
"largeImageText": "SubMiner",
"smallImageKey": "study",
"smallImageText": "Sentence Mining",
"buttonLabel": "",
"buttonUrl": "",
"updateIntervalMs": 15000,
"debounceMs": 750,
},
"startupWarmups": {
"lowPowerMode": false,
"mecab": true,
"yomitanExtension": true,
"subtitleDictionaries": true,
"jellyfinRemoteSession": false,
},
"yomitan": {
"externalProfilePath": "",
},
"stats": {
"toggleKey": "Backquote",
"serverPort": 6969,
"autoStartServer": true,
"autoOpenBrowser": false,
},
"subtitleSidebar": {
"enabled": true,
"toggleKey": "Backslash",
"pauseVideoOnHover": true,
"autoScroll": true,
"maxWidth": 420,
"opacity": 0.69,
"backgroundColor": "rgba(36, 39, 58, 0.78)",
"textColor": "#cad3f5",
"fontFamily": "\"M PLUS 1\", \"Noto Sans CJK JP\", sans-serif",
"fontSize": 16,
"timestampColor": "#a5adcb",
"activeLineColor": "#f5bde6",
"activeLineBackgroundColor": "rgba(138, 173, 244, 0.22)",
"hoverLineBackgroundColor": "rgba(54, 58, 79, 0.84)",
},
"controller": {
"enabled": true,
"profiles": {
"Sony Interactive Entertainment Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 09cc)": {
"label": "Sony Interactive Entertainment Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 09cc)",
"bindings": {
"toggleMpvPause": {
"kind": "button",
"buttonIndex": 10,
},
"quitMpv": {
"kind": "button",
"buttonIndex": 8,
},
},
},
},
},
"mpv": {
"executablePath": "",
"launchMode": "normal",
},
"updates": {
"enabled": true,
"checkIntervalHours": 24,
"notificationType": "system",
"channel": "prerelease",
},
}
+1 -1
View File
@@ -61,7 +61,7 @@ graph_symbol_net = "default"
graph_symbol_proc = "default"
#* Manually set which boxes to show. Available values are "cpu mem net proc" and "gpu0" through "gpu5", separate values with whitespace.
shown_boxes = "cpu net proc mem"
shown_boxes = "cpu net proc"
#* Update time in milliseconds, recommended 2000 ms or above for better sample times for graphs.
update_ms = 2000
+411
View File
@@ -0,0 +1,411 @@
-- This is an example Hyprland config file.
-- Refer to the wiki for more information.
-- https://wiki.hyprland.org/Configuring/
-- Please note not all available settings / options are set here.
-- For a full list, see the wiki
-- You can split this configuration into multiple files
-- Create your files separately and then link them to this file like this:
-- source = ~/.config/hypr/myColors.conf
--###############
--## MONITORS ###
--###############
-- See https://wiki.hyprland.org/Configuring/Monitors/
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
hl.monitor({
output = "eDP-1",
mode = "3840x2160@60",
position = "0x0",
scale = "2",
vrr = 0,
})
-- Source: ~/.config/hypr/keybindings.conf — convert this file to Lua and ensure it is on Lua's package.path.
require("keybindings")
-- source = ~/.config/hypr/env.conf
-- unscale XWayland
local terminal = "uwsm app -- ghostty"
local fileManager = "uwsm app -- dolphin"
local menu = "rofi -show drun -run-command \"uwsm app -- {cmd}\""
local notification_daemon = "uwsm app -- swaync"
hl.curve("easeOutQuint", { type = "bezier", points = { { 0.23, 1 }, { 0.32, 1 } } })
hl.curve("easeInOutCubic", { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } })
hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
hl.curve("almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1.0 } } })
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } })
hl.animation({
leaf = "global",
enabled = true,
speed = 10,
bezier = "default",
})
hl.animation({
leaf = "border",
enabled = true,
speed = 5.39,
bezier = "easeOutQuint",
})
hl.animation({
leaf = "windows",
enabled = true,
speed = 4.79,
bezier = "easeOutQuint",
})
hl.animation({
leaf = "windowsIn",
enabled = true,
speed = 4.1,
bezier = "easeOutQuint",
style = "slide",
})
hl.animation({
leaf = "windowsOut",
enabled = true,
speed = 1.49,
bezier = "easeOutQuint",
style = "slide",
})
hl.animation({
leaf = "fadeIn",
enabled = true,
speed = 1.73,
bezier = "almostLinear",
})
hl.animation({
leaf = "fadeOut",
enabled = true,
speed = 1.46,
bezier = "almostLinear",
})
hl.animation({
leaf = "fade",
enabled = true,
speed = 3.03,
bezier = "quick",
})
hl.animation({
leaf = "layers",
enabled = true,
speed = 3.81,
bezier = "easeOutQuint",
})
hl.animation({
leaf = "layersIn",
enabled = true,
speed = 4,
bezier = "easeOutQuint",
style = "fade",
})
hl.animation({
leaf = "layersOut",
enabled = true,
speed = 1.5,
bezier = "linear",
style = "fade",
})
hl.animation({
leaf = "fadeLayersIn",
enabled = true,
speed = 1.79,
bezier = "almostLinear",
})
hl.animation({
leaf = "fadeLayersOut",
enabled = true,
speed = 1.39,
bezier = "almostLinear",
})
hl.animation({
leaf = "workspaces",
enabled = true,
speed = 1.94,
bezier = "almostLinear",
style = "slidefade",
})
hl.animation({
leaf = "workspacesIn",
enabled = true,
speed = 1.21,
bezier = "almostLinear",
style = "slidefade",
})
hl.animation({
leaf = "workspacesOut",
enabled = true,
speed = 1.94,
bezier = "almostLinear",
style = "slidefade",
})
hl.device({
name = "epic-mouse-v1",
sensitivity = -0.5,
})
hl.workspace_rule({
workspace = "w[1-10]",
monitor = "eDP-1",
persistent = false,
})
hl.window_rule({
match = {
class = "discord",
},
float = true,
})
hl.window_rule({
match = {
class = "mpv",
},
float = true,
})
hl.window_rule({
match = {
class = "discord",
},
workspace = "10 silent",
})
hl.window_rule({
match = {
class = ".* fullscreen:0",
},
opacity = 0.88,
})
hl.window_rule({
match = {
class = "mpv fullscreen:0",
},
opacity = 1,
})
hl.window_rule({
match = {
class = "anki fullscreen:0",
},
opacity = 1,
})
hl.window_rule({
match = {
class = "remote-viewer",
},
opacity = 1,
})
hl.window_rule({
match = {
class = ".*",
},
suppress_event = "maximize",
})
hl.window_rule({
match = {
class = "^$",
title = "^$",
xwayland = 1,
floating = 1,
fullscreen = 0,
pinned = 0,
},
no_focus = true,
})
hl.window_rule({
match = {
class = "^(zen)$",
},
suppress_event = "maximize",
})
hl.window_rule({
match = {
class = "^(xwaylandvideobridge)$",
},
opacity = "0.0 override",
no_anim = true,
no_initial_focus = true,
-- TODO: manual review — unmapped window rule action: "maxsize 1 1"
blur = false,
no_focus = true,
})
hl.config({
xwayland = {
force_zero_scaling = true,
},
--##################
--## MY PROGRAMS ###
--##################
-- See https://wiki.hyprland.org/Configuring/Keywords/
-- Set programs that you use
-- $notification_daemon = dunst
--################
--## AUTOSTART ###
--################
-- Autostart necessary processes (like notifications daemons, status bars, etc.)
-- Or execute your favorite apps at launch like this:
--############################
--## ENVIRONMENT VARIABLES ###
--############################
-- See https://wiki.hyprland.org/Configuring/Environment-variables/
-- env = XCURSOR_SIZE,24
-- env = HYPRCURSOR_SIZE,24
-- done in ../uswm/env and ../uswm/env-hyprland
--####################
--## LOOK AND FEEL ###
--####################
-- Refer to https://wiki.hyprland.org/Configuring/Variables/
-- https://wiki.hyprland.org/Configuring/Variables/#general
general = {
gaps_in = 5,
gaps_out = 8,
border_size = 2,
-- https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col = {
active_border = { colors = { "rgba(33ccffee)", "rgba(00ff99ee)" }, angle = 45 },
inactive_border = "rgba(595959aa)",
},
-- Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false,
-- Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false,
layout = "dwindle",
},
-- https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration = {
rounding = 10,
rounding_power = 2,
-- Change transparency of focused and unfocused windows
active_opacity = 1.0,
inactive_opacity = 1.0,
shadow = {
enabled = true,
range = 4,
render_power = 3,
color = "rgba(1a1a1aee)",
},
-- https://wiki.hyprland.org/Configuring/Variables/#blur
blur = {
enabled = true,
size = 7,
passes = 2,
xray = true,
vibrancy = 0.1696,
},
},
-- https://wiki.hyprland.org/Configuring/Variables/#animations
animations = {
enabled = "yes, please :)",
-- Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
-- animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
-- animation = windowsOut, 1, 1.49, linear, popin 87%
},
-- Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
-- "Smart gaps" / "No gaps when only"
-- uncomment all if you wish to use that.
-- workspace = w[tv1], gapsout:0, gapsin:0
-- workspace = f[1], gapsout:0, gapsin:0
-- windowrulev2 = bordersize 0, floating:0, onworkspace:w[tv1]
-- windowrulev2 = rounding 0, floating:0, onworkspace:w[tv1]
-- windowrulev2 = bordersize 0, floating:0, onworkspace:f[1]
-- windowrulev2 = rounding 0, floating:0, onworkspace:f[1]
-- See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle = {
pseudotile = true, -- Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true, -- You probably want this
},
-- See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master = {
new_status = "master",
},
-- https://wiki.hyprland.org/Configuring/Variables/#misc
misc = {
force_default_wallpaper = -1, -- Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false, -- If true disables the random hyprland logo / anime girl background. :(
font_family = "JetBrainsMono Nerd Font",
},
--############
--## INPUT ###
--############
-- https://wiki.hyprland.org/Configuring/Variables/#input
input = {
kb_layout = "us",
kb_variant = "",
kb_model = "pc104",
kb_options = "caps:escape_shifted_capslock",
kb_rules = "",
follow_mouse = 1,
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
touchpad = {
natural_scroll = true,
},
},
-- https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures = {
workspace_swipe = true,
workspace_swipe_fingers = 3,
},
-- Example per-device config
-- See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
render = {
explicit_sync = true,
},
-- {{{ WORKSPACES
-- workspace = name:,monitor:DP-1
-- workspace = 2,monitor:DP-1,defaultName:
-- workspace = 2,monitor:DP-1,persistent:false
-- workspace = 3,monitor:DP-1,persistent:false
-- workspace = 4,monitor:DP-1,persistent:false
-- workspace = 5,monitor:DP-1,persistent:false
-- workspace = 6,monitor:DP-3,persistent:false,default:true
-- workspace = 7,monitor:DP-3,persistent:false
-- workspace = 8,monitor:DP-3,persistent:false
-- workspace = 9,monitor:DP-3,persistent:false
-- workspace = 10,monitor:DP-3,persistent:false
-- }}}
--#############################
--## WINDOWS AND WORKSPACES ###
--#############################
-- See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
-- See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
-- Example windowrule v1
-- windowrulev2 = float, class:com.mitchellh.ghostty
-- windowrulev2 = opacity 1, class:.* fullscreen:0
-- Example windowrule v2
-- windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
-- Ignore maximize requests from apps. You'll probably like this.
-- Fix some dragging issues with XWayland
-- https://github.com/hyprwm/Hyprland/issues/3835#issuecomment-2004448245
-- exec-once = $HOME/.local/bin/bitwarden-nofloat.sh
-- ENABLE_HDR_WSI=1 mpv --vo=gpu-next --target-colorspace-hint --gpu-api=vulkan --gpu-context=waylandvk "filename"
-- {{{ Screen sharing workaround: https://wiki.hyprland.org/Useful-Utilities/Screen-Sharing/#xwayland
-- }}}
})
hl.on("hyprland.start", function()
hl.exec_cmd("uwsm app -sb -- hyprpm update -nn")
hl.exec_cmd("uwsm app -sb -- hyprpm reload -nn")
hl.exec_cmd(notification_daemon)
hl.exec_cmd(terminal)
hl.exec_cmd("uwsm app -sb -S both -t scope -- hyprpm update -nn")
hl.exec_cmd("uwsm app -sb -S both -t scope -- hyprpm reload -nn")
hl.exec_cmd("uwsm app -sb -t service -- nm-applet")
hl.exec_cmd("uwsm app -sb -t service -- hyprsunset")
hl.exec_cmd("uwsm app -sb -t service -- polkit-kde-authentication-agent-1.desktop")
hl.exec_cmd("uwsm app -sb -t service -- variety")
hl.exec_cmd("uwsm app -sb -t service -- fcitx5")
hl.exec_cmd("waybar -c " .. HOME .. "/.config/waybar/catppuccin-macchiato/config-battery.jsonc -s " .. HOME .. "/.config/waybar/catppuccin-macchiato/style.css")
end)
+421
View File
@@ -0,0 +1,421 @@
-- This is an example Hyprland config file.
-- Refer to the wiki for more information.
-- https://wiki.hyprland.org/Configuring/
-- Please note not all available settings / options are set here.
-- For a full list, see the wiki
-- You can split this configuration into multiple files
-- Create your files separately and then link them to this file like this:
-- source = ~/.config/hypr/myColors.conf
--###############
--## MONITORS ###
--###############
-- See https://wiki.hyprland.org/Configuring/Monitors/
-- monitor=DP-1,2560x1440@144,0x0,1
-- monitor=DP-3,2560x1440@144,2560x0,1
-- vrr 2 enables vrr if application is fullscreen
-- vrr 3 enables vrr if application is fullscreen and video or game content
-- monitor = DP-1, 3440x1440@240,0x0,1,vrr,3
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
hl.monitor({
output = "DP-1",
mode = "3440x1440@240",
position = "0x0",
scale = 1,
vrr = 2,
-- cm = srgb
-- Optional HDR settings
cm = "hdr",
bitdepth = 10,
sdr_min_luminance = 0.005,
sdr_max_luminance = 200,
min_luminance = 0,
max_luminance = 1000,
max_avg_luminance = 200,
sdrbrightness = 1.0,
sdrsaturation = 0.98,
})
-- Source: ~/.config/hypr/keybindings.conf — convert this file to Lua and ensure it is on Lua's package.path.
require("keybindings")
-- Source: ~/.config/hypr/windowrules.conf — convert this file to Lua and ensure it is on Lua's package.path.
require("windowrules")
-- Source: ~/.config/hypr/macchiato.conf — convert this file to Lua and ensure it is on Lua's package.path.
-- require("macchiato")
local rosewater = "rgb(f4dbd6)"
local rosewaterAlpha = "f4dbd6"
local flamingo = "rgb(f0c6c6)"
local flamingoAlpha = "f0c6c6"
local pink = "rgb(f5bde6)"
local pinkAlpha = "f5bde6"
local mauve = "rgb(c6a0f6)"
local mauveAlpha = "c6a0f6"
local red = "rgb(ed8796)"
local redAlpha = "ed8796"
local maroon = "rgb(ee99a0)"
local maroonAlpha = "ee99a0"
local peach = "rgb(f5a97f)"
local peachAlpha = "f5a97f"
local yellow = "rgb(eed49f)"
local yellowAlpha = "eed49f"
local green = "rgb(a6da95)"
local greenAlpha = "a6da95"
local teal = "rgb(8bd5ca)"
local tealAlpha = "8bd5ca"
local sky = "rgb(91d7e3)"
local skyAlpha = "91d7e3"
local sapphire = "rgb(7dc4e4)"
local sapphireAlpha = "7dc4e4"
local blue = "rgb(8aadf4)"
local blueAlpha = "8aadf4"
local lavender = "rgb(b7bdf8)"
local lavenderAlpha = "b7bdf8"
local text = "rgb(cad3f5)"
local textAlpha = "cad3f5"
local subtext1 = "rgb(b8c0e0)"
local subtext1Alpha = "b8c0e0"
local subtext0 = "rgb(a5adcb)"
local subtext0Alpha = "a5adcb"
local overlay2 = "rgb(939ab7)"
local overlay2Alpha = "939ab7"
local overlay1 = "rgb(8087a2)"
local overlay1Alpha = "8087a2"
local overlay0 = "rgb(6e738d)"
local overlay0Alpha = "6e738d"
local surface2 = "rgb(5b6078)"
local surface2Alpha = "5b6078"
local surface1 = "rgb(494d64)"
local surface1Alpha = "494d64"
local surface0 = "rgb(363a4f)"
local surface0Alpha = "363a4f"
local base = "rgb(24273a)"
local baseAlpha = "24273a"
local mantle = "rgb(1e2030)"
local mantleAlpha = "1e2030"
local crust = "rgb(181926)"
local crustAlpha = 181926
-- unscale XWayland
local terminal = "uwsm app -- ghostty +new-window"
local fileManager = "uwsm app -- thunar"
local menu = 'rofi -show drun -run-command "uwsm app -- {cmd}"'
local notification_daemon = "uwsm app -- swaync -c ~/.config/swaync/config.json"
hl.curve("easeOutQuint", { type = "bezier", points = { { 0.23, 1 }, { 0.32, 1 } } })
hl.curve("easeInOutCubic", { type = "bezier", points = { { 0.65, 0.05 }, { 0.36, 1 } } })
hl.curve("linear", { type = "bezier", points = { { 0, 0 }, { 1, 1 } } })
hl.curve("almostLinear", { type = "bezier", points = { { 0.5, 0.5 }, { 0.75, 1.0 } } })
hl.curve("quick", { type = "bezier", points = { { 0.15, 0 }, { 0.1, 1 } } })
hl.animation({
leaf = "global",
enabled = true,
speed = 10,
bezier = "default",
})
hl.animation({
leaf = "border",
enabled = true,
speed = 5.39,
bezier = "easeOutQuint",
})
hl.animation({
leaf = "windows",
enabled = true,
speed = 4.79,
bezier = "easeOutQuint",
})
hl.animation({
leaf = "windowsIn",
enabled = true,
speed = 4.1,
bezier = "easeOutQuint",
style = "slide",
})
hl.animation({
leaf = "windowsOut",
enabled = true,
speed = 1.49,
bezier = "linear",
style = "slide",
})
hl.animation({
leaf = "fadeIn",
enabled = true,
speed = 1.73,
bezier = "almostLinear",
})
hl.animation({
leaf = "fadeOut",
enabled = true,
speed = 1.46,
bezier = "almostLinear",
})
hl.animation({
leaf = "fade",
enabled = true,
speed = 3.03,
bezier = "quick",
})
hl.animation({
leaf = "layers",
enabled = true,
speed = 3.81,
bezier = "easeOutQuint",
})
hl.animation({
leaf = "layersIn",
enabled = true,
speed = 4,
bezier = "easeOutQuint",
style = "fade",
})
hl.animation({
leaf = "layersOut",
enabled = true,
speed = 1.5,
bezier = "linear",
style = "fade",
})
hl.animation({
leaf = "fadeLayersIn",
enabled = true,
speed = 1.79,
bezier = "almostLinear",
})
hl.animation({
leaf = "fadeLayersOut",
enabled = true,
speed = 1.39,
bezier = "almostLinear",
})
hl.animation({
leaf = "workspaces",
enabled = true,
speed = 1.94,
bezier = "almostLinear",
style = "slidefade",
})
hl.animation({
leaf = "workspacesIn",
enabled = true,
speed = 1.21,
bezier = "almostLinear",
style = "slidefade",
})
hl.animation({
leaf = "workspacesOut",
enabled = true,
speed = 1.94,
bezier = "almostLinear",
style = "slidefade",
})
hl.device({
name = "epic-mouse-v1",
sensitivity = -0.5,
})
hl.layer_rule({
name = "fix-rofi",
match = {
namespace = "rofi",
},
-- TODO: manual review — unmapped layer rule: "no_anim"
})
hl.config({
xwayland = {
force_zero_scaling = true,
},
--##################
--## MY PROGRAMS ###
--##################
-- See https://wiki.hyprland.org/Configuring/Keywords/
-- Set programs that you use
-- $notification_daemon = dunst
--################
--## AUTOSTART ###
--################
-- Autostart necessary processes (like notifications daemons, status bars, etc.)
-- Or execute your favorite apps at launch like this:
-- exec-once = dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP
--############################
--## ENVIRONMENT VARIABLES ###
--############################
-- See https://wiki.hyprland.org/Configuring/Environment-variables/
-- env = XCURSOR_SIZE,24
-- env = HYPRCURSOR_SIZE,24
-- done in ../uswm/env and ../uswm/env-hyprland
--####################
--## LOOK AND FEEL ###
--####################
-- Refer to https://wiki.hyprland.org/Configuring/Variables/
-- https://wiki.hyprland.org/Configuring/Variables/#general
general = {
gaps_in = 5,
gaps_out = 8,
border_size = 2,
-- https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors
col = {
active_border = {
colors = { "rgba(" .. mauveAlpha .. "ff)" },
angle = 45,
},
inactive_border = "rgba(" .. overlay0Alpha .. "ff)",
},
-- Set to true enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false,
-- Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on
allow_tearing = false,
layout = "scrolling",
},
-- https://wiki.hyprland.org/Configuring/Variables/#decoration
decoration = {
rounding = 10,
rounding_power = 2,
-- Change transparency of focused and unfocused windows
-- active_opacity = 0.88
active_opacity = 1.0,
-- inactive_opacity = 0.88
inactive_opacity = 1.0,
shadow = {
enabled = true,
range = 4,
render_power = 3,
color = "rgba(" .. surface0Alpha .. "ff)",
},
-- https://wiki.hyprland.org/Configuring/Variables/#blur
blur = {
enabled = true,
size = 7,
passes = 2,
xray = true,
vibrancy = 0.1696,
},
},
-- https://wiki.hyprland.org/Configuring/Variables/#animations
animations = {
enabled = true,
-- Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more
-- slide, slidevert, fade, slidefade, slidefadevert
-- animation = windowsIn, 1, 4.1, easeOutQuint, popin 87%
-- animation = windowsOut, 1, 1.49, linear, popin 87%
},
-- Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
-- "Smart gaps" / "No gaps when only"
-- uncomment all if you wish to use that.
-- workspace = w[tv1], gapsout:0, gapsin:0
-- workspace = f[1], gapsout:0, gapsin:0
-- See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more
dwindle = {
-- pseudotile = false, -- Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true,
split_width_multiplier = 1.69,
},
scrolling = {
fullscreen_on_one_column = true,
},
-- See https://wiki.hyprland.org/Configuring/Master-Layout/ for more
master = {
new_status = "slave",
allow_small_split = false,
},
-- https://wiki.hyprland.org/Configuring/Variables/#misc
misc = {
force_default_wallpaper = -1, -- Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false, -- If true disables the random hyprland logo / anime girl background. :(
font_family = "Manrope ExtraLight Medium, JetBrainsMono Nerd Font, M PLUS 1",
},
--############
--## INPUT ###
--############
-- https://wiki.hyprland.org/Configuring/Variables/#input
input = {
kb_layout = "us",
kb_variant = "",
kb_model = "pc86",
kb_options = "caps:escape_shifted_capslock",
kb_rules = "",
follow_mouse = 1,
sensitivity = 0, -- -1.0 - 1.0, 0 means no modification.
touchpad = {
natural_scroll = false,
},
},
-- https://wiki.hyprland.org/Configuring/Variables/#gestures
gestures = {
-- workspace_swipe = false
},
-- Example per-device config
-- See https://wiki.hyprland.org/Configuring/Keywords/#per-device-input-configs for more
render = {
-- explicit_sync = true
},
-- {{{ WORKSPACES - HANDLED IN WAYBAR CONFIG
-- See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
-- workspace = name:,monitor:DP-1
-- workspace = 2,monitor:DP-1,defaultName:
-- workspace = 2,monitor:DP-1,persistent:false
-- workspace = 3,monitor:DP-1,persistent:false
-- workspace = 4,monitor:DP-1,persistent:false
-- workspace = 5,monitor:DP-1,persistent:false
-- workspace = 6,monitor:DP-3,persistent:false,default:true
-- workspace = 7,monitor:DP-3,persistent:false
-- workspace = 8,monitor:DP-3,persistent:false
-- workspace = 9,monitor:DP-3,persistent:false
-- workspace = 10,monitor:DP-3,persistent:false
-- }}}
-- windowrule = match:class my-window, border_size 10
debug = {
disable_logs = true,
enable_stdout_logs = false,
},
})
hl.on("hyprland.start", function()
hl.exec_cmd("uwsm app -sb -- hyprpm update -n")
hl.exec_cmd("uwsm app -sb -- hyprpm reload -n")
hl.exec_cmd(notification_daemon)
hl.exec_cmd(terminal)
hl.exec_cmd("uwsm app -sb -S both -t scope -- hyprpm update -n")
hl.exec_cmd("uwsm app -sb -S both -t scope -- hyprpm reload -n")
hl.exec_cmd("uwsm app -sb -t service -- nm-applet")
hl.exec_cmd(
"uwsm app -sb -t service -- waybar -c ~/.config/waybar/catppuccin-macchiato/config.jsonc -s ~/.config/waybar/catppuccin-macchiato/style.css"
)
hl.exec_cmd("uwsm app -sb -t service -- /usr/lib/polkit-kde-authentication-agent-1")
hl.exec_cmd("uwsm app -sb -t service -- gnome-keyring-daemon --start --components=secrets,ssh,pkcs11")
hl.exec_cmd("uwsm app -sb -t service -- tailscale systray")
hl.exec_cmd("~/.local/bin/aria")
end)
+63
View File
@@ -0,0 +1,63 @@
-- sample hyprlock.conf
-- for more configuration options, refer https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
--
-- rendered text in all widgets supports pango markup (e.g. <b> or <i> tags)
-- ref. https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general-remarks
--
-- shortcuts to clear password buffer: ESC, Ctrl+U, Ctrl+Backspace
--
-- you can get started by copying this config to ~/.config/hypr/hyprlock.conf
--
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
local font = "Manrope ExtraLight"
-- TODO: manual review — unknown section 'auth {' on line 19
hl.curve("linear", { type = "bezier", points = { { 1, 1 }, { 0, 0 } } })
hl.animation({
leaf = "fadeIn",
enabled = true,
speed = 5,
bezier = "linear",
})
hl.animation({
leaf = "fadeOut",
enabled = true,
speed = 5,
bezier = "linear",
})
hl.animation({
leaf = "inputFieldDots",
enabled = true,
speed = 2,
bezier = "linear",
})
-- TODO: manual review — unknown section 'background {' on line 36
-- TODO: manual review — unknown section 'input-field {' on line 42
-- uncomment to use a letter instead of a dot to indicate the typed password
-- dots_text_format = *
-- dots_size = 0.4
-- uncomment to use an input indicator that does not show the password length (similar to swaylock's input indicator)
-- hide_input = true
-- TODO: manual review — unknown section 'label {' on line 74
-- TODO: manual review — unknown section 'label {' on line 86
-- TODO: manual review — unknown section 'label {' on line 97
hl.config({
general = {
hide_cursor = false,
},
-- uncomment to enable fingerprint authentication
animations = {
enabled = true,
},
-- TIME
-- DATE
})
View File
+4
View File
@@ -0,0 +1,4 @@
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
-- TODO: manual review — unknown section 'theme {' on line 1
+7
View File
@@ -0,0 +1,7 @@
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
-- TODO: manual review — top-level key 'max-gamma = 100' has no enclosing section
-- TODO: manual review — unknown section 'profile {' on line 3
-- TODO: manual review — unknown section 'profile {' on line 8
+2
View File
@@ -167,6 +167,8 @@ bind = ALT, g, exec, /opt/mpv-yomitan/mpv-yomitan.AppImage --toggle
# bind = ,code:71, exec, ~/projects/scripts/whisper_record_transcribe.py --mode toggle --output type
bind = ,code:71, exec, uv run --directory ~/projects/scripts/faster-whisper-transcribe faster-whisper-transcribe --backend ctranslate2 --device cpu --mode toggle --output type
bind = ALT SHIFT, f, exec, uwsm app -sb -- flameshot gui
# SubMiner
bind = ALT SHIFT, O, pass, class:^(SubMiner)$
bind = ALT SHIFT, I, pass, class:^(SubMiner)$
+208
View File
@@ -0,0 +1,208 @@
-- Set programs that you use
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
local terminal = "FONTCONFIG_FILE=/home/sudacode/.config/ghostty/ghostty-fonts.conf uwsm app -sa -- ghostty"
local fileManager = "uwsm app -sa -- thunar"
-- $menu = rofi -show drun
-- https://github.com/Vladimir-csp/uwsm#2-service-startup-notification-and-vars-set-by-compositor
-- $menu = rofi -show drun -run-command "uwsm app -- {cmd}"
local menu = "~/.config/rofi/launchers/type-6/launcher.sh 1"
-- See https://wiki.hyprland.org/Configuring/Keywords/
local mainMod = "ALT" -- Sets "Windows" key as main modifier
-- Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
hl.bind("SUPER + SUPER_L", hl.dsp.exec_cmd("~/.config/rofi/launchers/type-2/launcher.sh 10"))
hl.bind(mainMod .. " + RETURN", hl.dsp.exec_cmd(terminal))
hl.bind(mainMod .. " + Q", hl.dsp.window.close())
hl.bind(mainMod .. " + SHIFT + M", hl.dsp.exec_cmd("uwsm stop"))
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
hl.bind(mainMod .. " + d", hl.dsp.exec_cmd(menu))
-- bind = $mainMod, P, pseudo, # dwindle
hl.bind(mainMod .. " + SHIFT + p", hl.dsp.exec_cmd("~/.local/bin/hyprland-pin.sh"))
-- bind = $mainMod, t, togglesplit, # dwindle
hl.bind(mainMod .. " + f", hl.dsp.window.fullscreen(""))
hl.bind(mainMod .. " + i", hl.dsp.window.cycle_next(""))
-- Move focus with mainMod + arrow keys
hl.bind(mainMod .. " + h", hl.dsp.focus({ direction = "left" }))
hl.bind(mainMod .. " + l", hl.dsp.focus({ direction = "right" }))
hl.bind(mainMod .. " + k", hl.dsp.focus({ direction = "up" }))
hl.bind(mainMod .. " + j", hl.dsp.focus({ direction = "down" }))
hl.bind(mainMod .. " + SHIFT + j", hl.dsp.window.move({ direction = "d" }))
hl.bind(mainMod .. " + SHIFT + k", hl.dsp.window.move({ direction = "u" }))
hl.bind(mainMod .. " + SHIFT + h", hl.dsp.window.move({ direction = "l" }))
hl.bind(mainMod .. " + SHIFT + l", hl.dsp.window.move({ direction = "r" }))
hl.bind(mainMod .. " + SHIFT + c", hl.dsp.window.center())
-- Move focus to next monitor
hl.bind("CTRL+ALT + j", hl.dsp.focus({ monitor = "r" }))
hl.bind("CTRL+ALT + k", hl.dsp.focus({ monitor = "l" }))
-- Switch workspaces with mainMod + [0-9]
for i = 1, 10 do
local key = i % 10
hl.bind(
mainMod .. " + " .. key,
hl.dsp.focus({
workspace = i,
silent = true,
})
)
end
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
for i = 1, 10 do
local key = i % 10 -- workspace 10 maps to key 0
hl.bind(
mainMod .. " + SHIFT + " .. key,
hl.dsp.window.move({
workspace = i,
follow = false,
silent = true,
})
)
end
-- Example special workspace (scratchpad)
-- hl.bind("SUPER + S", hl.dsp.workspace.toggle_special("magic"))
-- hl.bind("CTRL + SHIFT + S", hl.dsp.window.move({ workspace = "special:magic" }))
-- Scroll through existing workspaces with mainMod + scroll
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
-- Move/resize windows with mainMod + LMB/RMB and dragging
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag())
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize())
-- Laptop multimedia keys for volume and LCD brightness
hl.bind(
"XF86AudioRaiseVolume",
hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"),
{ locked = true, repeating = true }
)
hl.bind(
"XF86AudioLowerVolume",
hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"),
{ locked = true, repeating = true }
)
hl.bind(
"XF86AudioMute",
hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"),
{ locked = true, repeating = true }
)
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl s 10%+"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown", hl.dsp.exec_cmd("brightnessctl s 10%-"), { locked = true, repeating = true })
hl.bind("F12", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
hl.bind("F11", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
hl.bind("F10", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
-- Requires playerctl
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("mpc next"), { locked = true })
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("mpc toggle"), { locked = true })
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("mpc toggle"), { locked = true })
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("mpc prev"), { locked = true })
hl.bind("F9", hl.dsp.exec_cmd("playerctl next"), { locked = true })
hl.bind("F8", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("F7", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
-- bindl = , XF86AudioStop, exec, mpc stop
-- rofi
hl.bind(mainMod .. " + SHIFT + v", hl.dsp.exec_cmd("uwsm app -sb -- rofi-rbw"))
-- bind = $mainMod, w, exec, rofi -show window -theme $HOME/.config/rofi/launchers/type-2/style-2.rasi -dpi 96 -theme-str 'window {width: 35%;}'
hl.bind(mainMod .. " + SHIFT + w", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-wallpaper.sh"))
hl.bind(mainMod .. " + SHIFT + d", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-docs.sh"))
hl.bind("SUPER + SHIFT + j", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-jellyfin-dir.sh"))
hl.bind("SUPER + t", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-launch-texthooker-steam.sh"))
hl.bind(mainMod .. " + SHIFT + t", hl.dsp.exec_cmd("~/projects/scripts/popup-ai-translator.py"))
hl.bind("SUPER + SHIFT + g", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-vn-helper.sh"))
hl.bind(mainMod .. " + SHIFT + i", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-image-browser.sh"))
-- ncmcppp
hl.bind(mainMod .. " + n", hl.dsp.exec_cmd("uwsm app -sb -- ghostty --command=/usr/bin/ncmpcpp"))
-- notifications
hl.bind(mainMod .. " + SHIFT + n", hl.dsp.exec_cmd("swaync-client -t"))
-- mpv add
hl.bind("SUPER + m", hl.dsp.exec_cmd("~/.local/bin/mpv-add.sh"))
-- hl.bind("SUPER + SHIFT + s", hl.dsp.exec_cmd("slurp | grim -g - - | wl-copy"))
hl.bind("SUPER + SHIFT + s", hl.dsp.exec_cmd([[sh -c 'grim -g "$(slurp -d)" - | wl-copy']]))
hl.bind("code:107", hl.dsp.exec_cmd("~/.local/bin/screenshot"))
hl.bind("SHIFT + code:107", hl.dsp.exec_cmd("~/.local/bin/screenshot-active-window.sh"))
hl.bind("SUPER + code:107", hl.dsp.exec_cmd("~/.local/bin/screenshot-active-window.sh -s"))
hl.bind("SUPER + o", hl.dsp.exec_cmd("~/.local/bin/ocr.sh"))
hl.bind(mainMod .. " + o", hl.dsp.exec_cmd("~/.local/bin/rofi-open tab"))
-- bind = $mainMod SHIFT, o, exec, ~/.local/bin/rofi-open window
-- change wallpaper
hl.bind(mainMod .. " + CTRL + n", hl.dsp.exec_cmd("~/.local/bin/change-wallpaper"))
-- toggle focus between current and last focused window
-- hl.bind("ALT + Tab", hl.dsp.focus({ urgent_or_last = true }))
-- hl.bind("ALT + Tab", hl.dsp.window.cycle_next())
hl.bind("ALT + Tab", hl.dsp.focus({ last = true }))
hl.bind("CTRL + F9", hl.dsp.pass({ window = "class:^(com\\.obsproject\\.Studio)$" }))
hl.bind("CTRL + F10", hl.dsp.pass({ window = "class:^(com\\.obsproject\\.Studio)$" }))
hl.bind("CTRL + SHIFT + D", hl.dsp.exec_cmd("~/.local/bin/dragon"))
hl.bind("CTRL + ALT + F", hl.dsp.exec_cmd("~/.local/bin/favorite-wallpaper"))
hl.bind(mainMod .. " + z", hl.dsp.exec_cmd("uwsm app -sb -- zen-browser"))
hl.bind(
mainMod .. " + SHIFT + s",
hl.dsp.exec_cmd(
'rofi -show ssh -theme "'
.. "~/.config/rofi/launchers/type-2/style-2.rasi\" -terminal -theme-str 'window{width: 25%;} listview {columns: 1; lines: 10;}' ghostty -ssh-command \"ghostty --initial-command='TERM=kitty ssh {host}'\""
)
)
-- reload monitors
-- hl.bind(
-- "CTRL" .. mainMod .. " + SHIFT + R",
-- hl.dsp.exec_cmd("hyprctl dispatch dpms off && sleep 1 && hyprctl dispatch dpms on")
-- )
-- Disable keybinds with one master keybind
hl.bind(mainMod .. " + Page_Down", hl.dsp.submap("clean"))
hl.define_submap("clean", function()
-- Page Up: exit clean submap
hl.bind(mainMod .. " + Page_Up", hl.dsp.submap("reset"))
end)
hl.bind("SUPER + l", hl.dsp.exec_cmd("hyprlock"))
-- ANKI
hl.bind(mainMod .. " + a", hl.dsp.exec_cmd("~/.config/rofi/scripts/rofi-anki-script.sh"))
-- bind = $mainMod SHIFT, a, exec, ~/projects/scripts/screenshot-anki.sh -cdMinecraft
-- GSM
hl.bind("mouse:275", hl.dsp.exec_cmd("xdotool key alt+w"), { locked = true })
hl.bind("mouse:276", hl.dsp.exec_cmd("xdotool key alt+grave"), { locked = true })
hl.bind("ALT + g", hl.dsp.exec_cmd("/opt/mpv-yomitan/mpv-yomitan.AppImage --toggle"))
hl.bind("ALT + SHIFT + f", hl.dsp.exec_cmd("uwsm app -sb -- flameshot gui"))
-- F5
-- bind = ,code:71, exec, ~/projects/scripts/whisper_record_transcribe.py --mode toggle --output type
hl.bind(
"code:71",
hl.dsp.exec_cmd(
"uv run --directory ~/projects/scripts/faster-whisper-transcribe faster-whisper-transcribe --backend ctranslate2 --device cpu --mode toggle --output type"
)
)
-- SubMiner
hl.bind("ALT + SHIFT + O", hl.dsp.pass({ window = "class:^(SubMiner)$" }))
hl.bind("ALT + SHIFT + I", hl.dsp.pass({ window = "class:^(SubMiner)$" }))
hl.bind("ALT + SHIFT + C", hl.dsp.pass({ window = "class:^(SubMiner)$" }))
-- {{{ scrolling
hl.bind(mainMod .. " + comma", hl.dsp.layout("swapcol l"))
hl.bind(mainMod .. " + period", hl.dsp.layout("fit all"))
hl.bind(mainMod .. " + slash", hl.dsp.layout("fit active"))
-- }}}
+79
View File
@@ -0,0 +1,79 @@
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
local rosewater = "rgb(f4dbd6)"
local rosewaterAlpha = "f4dbd6"
local flamingo = "rgb(f0c6c6)"
local flamingoAlpha = "f0c6c6"
local pink = "rgb(f5bde6)"
local pinkAlpha = "f5bde6"
local mauve = "rgb(c6a0f6)"
local mauveAlpha = "c6a0f6"
local red = "rgb(ed8796)"
local redAlpha = "ed8796"
local maroon = "rgb(ee99a0)"
local maroonAlpha = "ee99a0"
local peach = "rgb(f5a97f)"
local peachAlpha = "f5a97f"
local yellow = "rgb(eed49f)"
local yellowAlpha = "eed49f"
local green = "rgb(a6da95)"
local greenAlpha = "a6da95"
local teal = "rgb(8bd5ca)"
local tealAlpha = "8bd5ca"
local sky = "rgb(91d7e3)"
local skyAlpha = "91d7e3"
local sapphire = "rgb(7dc4e4)"
local sapphireAlpha = "7dc4e4"
local blue = "rgb(8aadf4)"
local blueAlpha = "8aadf4"
local lavender = "rgb(b7bdf8)"
local lavenderAlpha = "b7bdf8"
local text = "rgb(cad3f5)"
local textAlpha = "cad3f5"
local subtext1 = "rgb(b8c0e0)"
local subtext1Alpha = "b8c0e0"
local subtext0 = "rgb(a5adcb)"
local subtext0Alpha = "a5adcb"
local overlay2 = "rgb(939ab7)"
local overlay2Alpha = "939ab7"
local overlay1 = "rgb(8087a2)"
local overlay1Alpha = "8087a2"
local overlay0 = "rgb(6e738d)"
local overlay0Alpha = "6e738d"
local surface2 = "rgb(5b6078)"
local surface2Alpha = "5b6078"
local surface1 = "rgb(494d64)"
local surface1Alpha = "494d64"
local surface0 = "rgb(363a4f)"
local surface0Alpha = "363a4f"
local base = "rgb(24273a)"
local baseAlpha = "24273a"
local mantle = "rgb(1e2030)"
local mantleAlpha = "1e2030"
local crust = "rgb(181926)"
local crustAlpha = 181926
+398
View File
@@ -0,0 +1,398 @@
-- See https://wiki.hyprland.org/Configuring/Workspace-Rules/ for workspace rules
-- {{{ Floating windows
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
hl.window_rule({
match = {
class = "discord",
},
float = true,
})
hl.window_rule({
match = {
class = "mpv",
},
float = true,
})
hl.window_rule({
match = {
class = "anki",
},
float = true,
})
hl.window_rule({
match = {
class = "steam",
},
float = true,
})
hl.window_rule({
match = {
class = "python",
title = "Import",
},
float = true,
})
hl.window_rule({
match = {
class = "zenity",
title = "Japanese Analysis",
},
float = true,
})
hl.window_rule({
match = {
class = "zenity",
title = "Japanese Assistant",
},
float = true,
})
hl.window_rule({
match = {
class = "anki",
},
-- TODO: manual review — unmapped window rule action: "min_size 1600 600"
-- TODO: manual review — unmapped window rule action: "max_size 2222 1234"
})
hl.window_rule({
match = {
class = "ueberzugpp.*",
},
-- TODO: manual review — unmapped window rule action: "no_focus on"
-- TODO: manual review — unmapped window rule action: "no_follow_mouse 1"
float = true,
-- TODO: manual review — unmapped window rule action: "no_shadow on"
-- TODO: manual review — unmapped window rule action: "no_anim on"
})
hl.window_rule({
match = {
class = "anki",
},
size = "1920 1080",
})
-- windowrule = min_size 1600 600, match:class anki
-- windowrule = max_size 2222 1234, match:class anki
-- }}}
-- {{{ Workspace assignments
hl.window_rule({
match = {
class = "Cursor",
},
workspace = "3 silent",
})
hl.window_rule({
match = {
class = "GameSentenceMiner",
},
workspace = "5 silent",
})
hl.window_rule({
match = {
class = "com.obsproject.Studio",
},
workspace = "5 silent",
})
hl.window_rule({
match = {
class = "gamescope",
},
workspace = "6 silent",
})
hl.window_rule({
match = {
class = "anki",
},
workspace = "8 silent",
})
hl.window_rule({
match = {
class = "steam",
},
workspace = "9 silent",
})
hl.window_rule({
match = {
class = "discord",
},
workspace = "10 silent",
})
-- }}}
-- {{{ Center floating windows
hl.window_rule({
match = {
float = 1,
class = "discord",
},
center = true,
})
hl.window_rule({
match = {
float = 1,
class = "anki",
},
center = true,
})
-- }}}
-- {{{ Opacity rules
-- windowrule = opacity 0.88, match:class .* fullscreen:0
hl.window_rule({
match = {
class = "mpv",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "^(remote-viewer)$",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "com.obsproject.Studio",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
title = "(.*)(- YouTube(.*))",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "zen",
title = "(.*)YouTube TV(.*)",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "anki",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
title = "(.*)asbplayer",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "dolphin-emu",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "steam_app_default",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "steam_app.*",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "Rustdesk",
},
opacity = "1.0 override",
})
hl.window_rule({
match = {
class = "google-chrome",
},
opacity = "1.0 override",
})
-- }}}
-- {{{ Misc
hl.window_rule({
match = {
title = "(.*)asbplayer",
},
-- TODO: manual review — unmapped window rule action: "tile on"
})
-- windowrule = size 2118 1182, match:class anki
-- Ignore maximize requests from apps. You'll probably like this.
hl.window_rule({
match = {
class = ".*",
},
suppress_event = "maximize",
})
-- Fix some dragging issues with XWayland
hl.window_rule({
match = {
class = "^$",
title = "^$",
xwayland = 1,
float = 1,
fullscreen = 0,
pin = 0,
},
-- TODO: manual review — unmapped window rule action: "no_focus on"
})
-- }}}
-- {{{ Screen sharing workaround: https://wiki.hyprland.org/Useful-Utilities/Screen-Sharing/#xwayland
hl.window_rule({
match = {
class = "^(xwaylandvideobridge)$",
},
opacity = "0.0 override",
-- TODO: manual review — unmapped window rule action: "no_anim on"
-- TODO: manual review — unmapped window rule action: "no_initial_focus on"
-- TODO: manual review — unmapped window rule action: "max_size 1 1"
-- TODO: manual review — unmapped window rule action: "no_blur on"
-- TODO: manual review — unmapped window rule action: "no_focus on"
})
-- }}}
-- {{{ GSM Overlay and LunaTranslator tweaks
hl.window_rule({
match = {
class = "gsm_overlay",
},
float = true,
-- TODO: manual review — unmapped window rule action: "border_size 0"
-- TODO: manual review — unmapped window rule action: "xray off"
-- TODO: manual review — unmapped window rule action: "no_shadow on"
-- TODO: manual review — unmapped window rule action: "no_blur on"
})
hl.window_rule({
match = {
title = "LunaTranslator",
},
opacity = "1.0 override",
-- TODO: manual review — unmapped window rule action: "border_size 0"
})
hl.window_rule({
match = {
class = "gsm_overlay",
},
-- TODO: manual review — unmapped window rule action: "stay_focused on"
})
-- windowrule = fullscreen_state 2, match:class gsm_overlay
hl.window_rule({
match = {
class = "steam_app_1277940",
},
-- TODO: manual review — unmapped window rule action: "border_size 0"
})
hl.window_rule({
match = {
class = "SubMiner",
},
float = true,
})
hl.window_rule({
match = {
class = "SubMiner",
},
opacity = "1.0 override",
pin = false,
})
hl.window_rule({
match = {
class = "SubMiner",
},
float = true,
border_size = 0,
xray = false,
no_shadow = true,
no_blur = true,
no_dim = true,
opaque = true,
dim_around = false,
allows_input = false,
opacity = "1.0 override",
pin = false,
})
-- }}}
-- {{{ FEH
hl.window_rule({
match = {
class = "feh",
},
float = true,
center = true,
-- TODO: manual review — unmapped window rule action: "border_size 0"
-- TODO: manual review — unmapped window rule action: "no_shadow on"
-- TODO: manual review — unmapped window rule action: "no_blur on"
-- TODO: manual review — unmapped window rule action: "no_anim on"
})
-- }}}
hl.window_rule({
match = {
title = "Picture in picture",
},
float = true,
pin = true,
})
-- TODO: manual review — top-level key 'windowurle = no_vrr on, match:class mpv' has no enclosing section
-- aibar popup (AI usage widget)
hl.window_rule({
match = {
title = "aibar",
},
float = true,
move = "100%-374 50",
})
+53 -64
View File
@@ -1,6 +1,6 @@
# Language and display
# set language (for available options, see: https://github.com/Samillion/ModernZ/blob/main/docs/TRANSLATIONS.md)
language=en
language=default
# set layout: "modern" or "modern-compact"
layout=modern
# set icon theme. accepts fluent or material
@@ -14,8 +14,6 @@ font=mpv-osd-symbols
idlescreen=yes
# show OSC window top bar: "auto", "yes", or "no" (borderless/fullscreen)
window_top_bar=auto
# show window controls in fullscreen
window_controls_fullscreen=yes
# show OSC when windowed
showwindowed=yes
# show OSC when fullscreen
@@ -24,32 +22,31 @@ showfullscreen=yes
showonselect=no
# show OSC when paused
showonpause=yes
# disable OSC hide timeout when paused
keeponpause=yes
# keep OSC visible while paused: no, bottombar, both
keeponpause=both
# disable Santa hat in December
greenandgrumpy=no
# OSC behaviour and scaling
# time (in ms) before OSC hides if no mouse movement
hidetimeout=1500
# keep OSC visible while cursor hovers over bottom or top bar
keep_with_cursor=yes
# fade-out duration (in ms), set to 0 for no fade
fadeduration=200
# whether to enable fade-in effect
fadein=no
# minimum mouse movement (in pixels) required to show OSC
minmousemove=0
# mode for showing OSC/WC on mouse move: always, zones, independent
zones_hover_mode=zones
# height of the bottom hover zone (in pixels)
bottomhover_zone=130
# height of the top hover zone (in pixels)
tophover_zone=130
# controls how much of the window ignores mouse movement for showing the osc
# 0.0 always shows on movement, 1.0 only shows when directly hovered
deadzonesize=0.75
# hide behavior when cursor enters deadzone or leaves window: instant or timeout
deadzone_hide=instant
# show OSC when seeking
osc_on_seek=yes
# show OSC/window controls on start of every file (no, bottom, top, both)
osc_on_start=both
# keep OSC visible if mouse cursor is within OSC boundaries
osc_keep_with_cursor=yes
# pause video while seeking with mouse move (on button hold)
mouse_seek_pause=yes
# force show seekbar tooltip on mouse drag, even if not hovering seekbar
@@ -101,12 +98,12 @@ speed_font_size=16
# Title bar settings
# show window title in borderless/fullscreen mode
show_window_title=no
# same as title but for window_top_bar
window_title=${media-title}
# window title font size
window_title_font_size=26
# show window controls (close, minimize, maximize) in borderless/fullscreen
window_controls=yes
# show window controls (top bar) and bottom bar independently on hover
windowcontrols_independent=yes
# Subtitle and OSD display settings
# IMPORTANT: It is recommended to add the following
@@ -141,8 +138,6 @@ jump_mode=relative
jump_softrepeat=yes
# show the chapter skip backward and forward buttons
chapter_skip_buttons=no
# enable continuous skipping when holding down chapter skip buttons
chapter_softrepeat=yes
# show next/previous playlist track buttons
track_nextprev_buttons=yes
@@ -172,18 +167,11 @@ loop_button=no
shuffle_button=no
# show speed control button
speed_button=no
# speed change amount per click
speed_button_click=1
# speed change amount on scroll
speed_button_scroll=0.25
# show info button
info_button=yes
# show fullscreen toggle button
fullscreen_button=yes
# enable loop with mouse actions on pause button
loop_in_pause=yes
# force buttons to always be active. can add: playlist_prev,playlist_next
buttons_always_active=none
@@ -219,12 +207,16 @@ windowcontrols_min_hover=#A6DA95
title_color=#CAD3F5
# color of the cache information
cache_info_color=#CAD3F5
# color of the seekbar progress and handle
# color of the seekbar progress
seekbarfg_color=#C6A0F6
# color of the remaining seekbar
seekbarbg_color=#B7BDF8
# color of the cache ranges on the seekbar
seekbar_cache_color=#A5ADCB
# color of the seekbar handle
seek_handle_color=#C6A0F6
# inner border color drawn inside the seekbar handle (set to disable to disable)
seek_handle_border_color=#C6A0F6
# match volume bar color with seekbar color (ignores side_buttons_color)
volumebar_match_seek_color=no
# color of the timestamps (below seekbar)
@@ -242,42 +234,44 @@ playpause_color=#C6A0F6
held_element_color=#939AB7
# color of a hovered button when hover_effect includes "color"
hover_effect_color=#C6A0F6
# color of the border for thumbnails (with thumbfast)
thumbnail_border_color=#181926
# color of the border outline for thumbnails
thumbnail_border_outline=#363A4F
# color of the background for thumbnail box
thumbnail_box_color=#181926
# color of the border outline for thumbnail box
thumbnail_box_outline=#363A4F
# alpha of the OSC background box
fade_alpha=130
# strength of the OSC background fade (0 to disable)
osc_fade_strength=100
# blur strength for the OSC alpha fade. caution: high values can take a lot of CPU time to render
fade_blur_strength=100
# use with "fade_blur_strength=0" to create a transparency box
fade_transparency_strength=0
# alpha of the window title bar (0 to disable)
window_fade_alpha=100
# strength of the window title bar fade (0 to disable)
window_fade_strength=100
# blur strength for the window title bar. caution: high values can take a lot of CPU time to render
window_fade_blur_strength=100
# use with "window_fade_blur_strength=0" to create a transparency box
window_fade_transparency_strength=0
# width of the thumbnail border (for thumbfast)
thumbnail_border=3
# rounded corner radius for thumbnail border (0 to disable)
thumbnail_border_radius=3
# thumbnail box padding around the image
thumbnail_box_padding=4.5
# round corner radius for thumbnail box border (0 to disable)
thumbnail_box_radius=3
# thumbnail box border outline size (thickness)
thumbnail_box_outline_size=3
# Button hover effects
# active button hover effects: "glow", "size", "color"; can use multiple separated by commas
# Button interaction settings
# active button hover effects: glow, size, color, box; can use multiple separated by commas
hover_effect=size,glow,color
# relative size of a hovered button if "size" effect is active
hover_button_size=115
button_hover_size=115
# relative size of a button when held/pressed. below 100 shrinks button when held down
button_held_size=100
# alpha of the hover background box when a button is held down
button_held_box_alpha=18
# glow intensity when "glow" hover effect is active
button_glow_amount=5
# apply hover size effect to slider handle
hover_effect_for_sliders=yes
# Tooltips and hints
# enable tooltips for disabled buttons and elements
tooltips_for_disabled_elements=yes
# enable text hints for info, loop, ontop, and screenshot buttons
# relative size of a hovered slider handle (100 = no size change)
slider_hover_size=115
# enable tooltips for most buttons. seek and volume tooltips are always enabled
tooltip_hints=yes
# Progress bar settings
@@ -304,6 +298,7 @@ nibbles_style=triangle
nibble_color=#C6A0F6
# color of the current chapter nibble on the seekbar
nibble_current_color=#B7BDF8
nibbles_style=single-bar # gap, triangle, bar, single-bar
# automatically set keyframes for the seekbar based on video length
automatickeyframemode=yes
@@ -330,30 +325,24 @@ tick_delay_follow_display_fps=no
# Elements Position
# Useful when adjusting font size or type
# title height position above seekbar
title_height=96
# title height position if a chapter title is below it
title_with_chapter_height=108
# chapter title height position above seekbar
chapter_title_height=91
# time codes height position
time_codes_height=35
# time codes height position with portrait window
time_codes_centered_height=57
# title vertical offset relative to seekbar
title_offset=20
# title vertical offset if a chapter title is below it
title_with_chapter_offset=5
# chapter title vertical offset relative to seekbar
chapter_title_offset=18
# chapter offset when shown above title
chapter_above_title_offset=3
# time codes vertical offset relative to seekbar
time_codes_offset=0
# tooltip height position offset
tooltip_height_offset=2
# portrait window width trigger to move some elements
portrait_window_trigger=1000
# hide volume bar trigger window width
hide_volume_bar_trigger=1150
# osc height offset if title above seekbar is disabled
notitle_osc_h_offset=25
# osc height offset if chapter title is disabled or doesn't exist
nochapter_osc_h_offset=10
# seek hover timecodes tooltip height position offset
seek_hover_tooltip_h_offset=0
# osc height without offsets
osc_height=132
osc_height=100
## Mouse commands
## details: https://github.com/Samillion/ModernZ#mouse-commands-user-options
+1 -1
View File
@@ -1 +1 @@
../../../projects/lua/mpv-youtube-queue/mpv-youtube-queue
../../mpv-modules/mpv-youtube-queue/mpv-youtube-queue
+1 -1
View File
@@ -12,4 +12,4 @@
url = git@github.com:po5/thumbfast.git
[submodule ".config/mpv-modules/ModernZ"]
path = .config/mpv-modules/ModernZ
url = git@github.com:ksyasuda/ModernZ.git
url = https://github.com/ksyasuda/ModernZ.git