本文原文發佈於我的博客 eyhn.in

Electron 可以調用 MacOS 的毛玻璃效果,下面讓我來帶你給 VScode 添加毛玻璃效果。

1. 安裝 「Custom CSS and JS Loader」 插件

2. 創建一個 CSS 文件(CSS 是我自己寫的,你可以按需修改)

html {
background: transparent !important;
}

.scroll-decoration {
box-shadow: none !important;
}

.minimap {
opacity: 0.6;
}

.editor-container {
background: transparent !important;
}

.search-view .search-widget .input-box, .search-view .search-widget .input-box .monaco-inputbox,
.monaco-workbench>.part.editor>.content>.one-editor-silo>.container>.title .tabs-container>.tab,
.monaco-editor-background,
.monaco-editor .margin,
.monaco-workbench>.part>.content,
.monaco-workbench>.editor>.content>.one-editor-silo.editor-one,
.monaco-workbench>.part.editor>.content>.one-editor-silo>.container>.title,
.monaco-workbench>.part>.title,
.monaco-workbench,
.monaco-workbench>.part,
body {
background: transparent !important;
}

.editor-group-container>.tabs {
background-color: rgba(37, 37, 37,0.2) !important;
}

.editor-group-container>.tabs .tab {
background-color: transparent !important;
}

.editor-group-container>.tabs .tab.active {
background-color: rgba(37, 37, 37,0.4) !important;
}

.monaco-list.settings-toc-tree .monaco-list-row.focused {
outline-color: rgb(37, 37, 37,0.6) !important;
}

.monaco-list.settings-toc-tree .monaco-list-row.selected,
.monaco-list.settings-toc-tree .monaco-list-row.focused,
.monaco-list .monaco-list-row.selected,
.monaco-list.settings-toc-tree:not(.drop-target) .monaco-list-row:hover:not(.selected):not(.focused) {
background-color: rgb(37, 37, 37,0.6) !important;
}

.monaco-list.settings-editor-tree .monaco-list-row {
background-color: transparent !important;
outline-color: transparent !important;
}

.monaco-inputbox {
background-color: rgba(41, 41, 41,0.2) !important;
}

.monaco-editor .selected-text {
background-color: rgba(58, 61, 65,0.6) !important;
}

.monaco-editor .focused .selected-text {
background-color: rgba(38, 79, 120,0.6) !important;
}

.monaco-editor .view-overlays .current-line {
border-color: rgba(41, 41, 41,0.2) !important;
}

.extension-editor,
.monaco-inputbox>.wrapper>.input,
.monaco-workbench>.part.editor>.content>.one-editor-silo>.container>.title .tabs-container>.tab.active,
.preferences-editor>.preferences-header,
.preferences-editor>.preferences-editors-container.side-by-side-preferences-editor .preferences-header-container,
.monaco-editor, .monaco-editor .inputarea.ime-input {
background: transparent !important;
}

.editor-group-container>.tabs .tab {
border: none !important;
}

3. 創建一個 JS 文件

nodeRequire(electron)
.remote
.getCurrentWindow()
// 設置半透明效果 https://electronjs.org/docs/api/browser-window#winsetvibrancytype-macos
.setVibrancy(ultra-dark);

4. 修改 settings.json 添加以下內容

"vscode_custom_css.imports": [
"file:///<CSS文件路徑>/custom.css",
"file:///<JS文件路徑>/custom.js"
],
"vscode_custom_css.policy": true

5. 輸入命令(??P) 「Reload Custom CSS and JS」

6. 重啟 VScode

之後每次更新 VScode 後需要輸入命令 「Reload Custom CSS and JS」。

相關 issues 討論:#32257 #52707 #65215


推薦閱讀:
相关文章