mirror of
https://github.com/ksyasuda/dotfiles.git
synced 2026-07-30 07:21:32 -07:00
Compare commits
11 Commits
f84d549d5c
...
1611dfead9
| Author | SHA1 | Date | |
|---|---|---|---|
|
1611dfead9
|
|||
|
1daa984a30
|
|||
|
a33ee950b2
|
|||
|
66a79cef2f
|
|||
|
753a5668df
|
|||
|
c2450c0a74
|
|||
|
08808a95de
|
|||
|
f958d2ade9
|
|||
|
e44a21c282
|
|||
|
6a4c9e0b49
|
|||
|
ef9e2f383a
|
@@ -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 272–273k 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"
|
||||
|
||||
@@ -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",
|
||||
},
|
||||
}
|
||||
@@ -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",
|
||||
},
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
@@ -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
|
||||
})
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
-- Generated by hyprlang2lua. Review TODOs before reloading Hyprland.
|
||||
|
||||
-- TODO: manual review — unknown section 'theme {' on line 1
|
||||
|
||||
@@ -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
|
||||
@@ -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)$
|
||||
|
||||
@@ -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"))
|
||||
-- }}}
|
||||
@@ -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
|
||||
@@ -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",
|
||||
})
|
||||
Submodule .config/mpv-modules/ModernZ updated: fadaf74b08...4f7922f65e
Submodule .config/mpv-modules/mpv-youtube-queue updated: 9d1b6d7eab...236f4ab39e
@@ -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 @@
|
||||
../../../projects/lua/mpv-youtube-queue/mpv-youtube-queue
|
||||
../../mpv-modules/mpv-youtube-queue/mpv-youtube-queue
|
||||
+1
-1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user