diff options
author | David Čuček | 2022-09-18 18:29:39 +0200 |
---|---|---|
committer | David Čuček | 2022-09-18 18:29:39 +0200 |
commit | 27f391851f6d2ae835fa753b147612133ac75e60 (patch) | |
tree | 5edb6b63388d9354bde06b03a3d67cb2fe4499f0 | |
download | aur-27f391851f6d2ae835fa753b147612133ac75e60.tar.gz |
first AUR package!
-rw-r--r-- | .SRCINFO | 42 | ||||
-rw-r--r-- | PKGBUILD | 157 | ||||
-rwxr-xr-x | build-with-chroot.sh | 12 | ||||
-rw-r--r-- | translucent.patch | 158 |
4 files changed, 369 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..8d607fa1a0c0 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,42 @@ +pkgbase = code-translucent + pkgdesc = The Open Source build of Visual Studio Code (vscode) editor with translucent window and official marketplace support! + pkgver = 0 + pkgrel = 1 + url = https://github.com/microsoft/vscode + arch = x86_64 + arch = i686 + arch = aarch64 + arch = armv7h + license = MIT + makedepends = git + makedepends = gulp + makedepends = npm + makedepends = python + makedepends = yarn + makedepends = nodejs-lts-gallium + depends = libxkbfile + depends = gnupg + depends = gtk3 + depends = libsecret + depends = nss + depends = gcc-libs + depends = libnotify + depends = libxss + depends = glibc + depends = lsof + depends = shared-mime-info + depends = xdg-utils + optdepends = glib2: Needed for move to trash functionality + optdepends = libdbusmenu-glib: Needed for KDE global menu + optdepends = org.freedesktop.secrets: Needed for settings sync + optdepends = icu69: Needed for live share + provides = code-oss + conflicts = code-oss + source = code-translucent::git+https://github.com/microsoft/vscode.git#branch=main + source = build-with-chroot.sh + source = translucent.patch + sha512sums = SKIP + sha512sums = 3da44a431b717e789da2790d8681102cbd12828aed5e5486d1af35090dd68c7ec0032d9419076e81d4fad5af1e4a78e53419aa049579294b3044ec82975cb0b2 + sha512sums = 2a466f530c78dd498d7af9aa7ced8057468283682912368c5a0d4e694feffe1079e345882a64fe9d2849a5da5d00b5d262e8b5c5d45f77965d1c6e9edadad512 + +pkgname = code-translucent diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..e027228002f1 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,157 @@ +# Maintainer: David Čuček <observ33r@gmail.com> + +pkgname="code-translucent" +pkgver=0 +pkgrel=1 +pkgdesc="The Open Source build of Visual Studio Code (vscode) editor with translucent window and official marketplace support!" + +arch=( + "x86_64" + "i686" + "aarch64" + "armv7h" +) + +url="https://github.com/microsoft/vscode" +license=("MIT") + +conflicts=("code-oss") +provides=("code-oss") + +depends=( + "libxkbfile" + "gnupg" + "gtk3" + "libsecret" + "nss" + "gcc-libs" + "libnotify" + "libxss" + "glibc" + "lsof" + "shared-mime-info" + "xdg-utils" +) + +optdepends=( + "glib2: Needed for move to trash functionality" + "libdbusmenu-glib: Needed for KDE global menu" + "org.freedesktop.secrets: Needed for settings sync" + "icu69: Needed for live share" +) + +makedepends=( + "git" + "gulp" + "npm" + "python" + "yarn" + "nodejs-lts-gallium" +) + +source=( + "${pkgname}::git+${url}.git#branch=main" + "build-with-chroot.sh" + "translucent.patch" +) + +sha512sums=( + "SKIP" + "3da44a431b717e789da2790d8681102cbd12828aed5e5486d1af35090dd68c7ec0032d9419076e81d4fad5af1e4a78e53419aa049579294b3044ec82975cb0b2" + "2a466f530c78dd498d7af9aa7ced8057468283682912368c5a0d4e694feffe1079e345882a64fe9d2849a5da5d00b5d262e8b5c5d45f77965d1c6e9edadad512" +) + +case "$CARCH" in + "i686") _vscode_arch="ia32" ;; + "x86_64") _vscode_arch="x64" ;; + "aarch64") _vscode_arch="arm64" ;; + "armv7h") _vscode_arch="arm" ;; + *) _vscode_arch="DUMMY" ;; +esac + +pkgver() { + + echo "${_tag}" + +} + +prepare() { + + cd "${pkgname}" + + # Checkout git to latest release + git fetch --tags + local _commit="$(git rev-list --tags --max-count=1)" + declare -g _tag="$(git describe --tags ${_commit})" + git checkout "${_tag}" + + # Apply patch to source + patch -p1 < "../translucent.patch" + + # Set the commit and build date + local _datestamp="$(date -u -Is | sed 's/\+00:00/Z/')" + sed -e "s/@COMMIT@/$_commit/" -e "s/@DATE@/$_datestamp/" -i product.json + + # Patch appdata and desktop file + sed -i 's|/usr/share/@@NAME@@/@@NAME@@|@@NAME@@|g + s|@@NAME_SHORT@@|Code|g + s|@@NAME_LONG@@|Code - OSS|g + s|@@NAME@@|code-oss|g + s|@@ICON@@|code-oss|g + s|@@EXEC@@|/usr/bin/code-oss|g + s|@@LICENSE@@|MIT|g + s|@@URLPROTOCOL@@|vscode|g + s|inode/directory;||' resources/linux/code{.appdata.xml,-workspace.xml,.desktop,-url-handler.desktop} + + sed -i 's|MimeType=.*|MimeType=x-scheme-handler/code-oss;|' resources/linux/code-url-handler.desktop + + # Add completitions for code-oss + cp "resources/completions/bash/code" "resources/completions/bash/code-oss" + cp "resources/completions/zsh/_code" "resources/completions/zsh/_code-oss" + + # Patch completitions with correct names + sed -i 's|@@APPNAME@@|code-oss|g' resources/completions/{bash/code-oss,zsh/_code-oss} + +} + +build() { + + cd "${pkgname}" + + yarn install --arch="${_vscode_arch}" + + gulp compile-build + gulp vscode-linux-${_vscode_arch}-min + +} + +package() { + + local _appdir="VSCode-linux-${_vscode_arch}" + + install -d "${pkgdir}/usr/share/licenses/${pkgname}" + install -d "${pkgdir}/usr/share/metainfo" + install -d "${pkgdir}/usr/share/mime/packages" + install -d "${pkgdir}/usr/share/applications" + install -d "${pkgdir}/usr/share/icons" + install -d "${pkgdir}/opt/${pkgname}" + install -d "${pkgdir}/usr/bin" + + install -m 644 "${_appdir}/resources/app/LICENSE.txt" "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE.txt" + install -m 644 "${_appdir}/resources/app/ThirdPartyNotices.txt" "${pkgdir}/usr/share/licenses/${pkgname}/ThirdPartyNotices.txt" + + install -m 644 "${pkgname}/resources/linux/code.appdata.xml" "${pkgdir}/usr/share/metainfo/code-oss.appdata.xml" + install -m 644 "${pkgname}/resources/linux/code-workspace.xml" "${pkgdir}/usr/share/mime/packages/code-oss-workspace.xml" + install -m 644 "${pkgname}/resources/linux/code.desktop" "${pkgdir}/usr/share/applications/code-oss.desktop" + install -m 644 "${pkgname}/resources/linux/code-url-handler.desktop" "${pkgdir}/usr/share/applications/code-oss-url-handler.desktop" + + install -m 644 "${_appdir}/resources/app/resources/linux/code.png" "${pkgdir}/usr/share/icons/code-oss.png" + + install -Dm 644 "${_appdir}/resources/completions/bash/code-oss" "${pkgdir}/usr/share/bash-completion/completions/code-oss" + install -Dm 644 "${_appdir}/resources/completions/zsh/_code-oss" "${pkgdir}/usr/share/zsh/site-functions/_code-oss" + + cp -r --no-preserve=ownership --preserve=mode "${srcdir}/${_appdir}/"* "${pkgdir}/opt/${pkgname}" -R + + ln -sf "/opt/${pkgname}/bin/code-oss" "${pkgdir}/usr/bin/code-oss" + +} diff --git a/build-with-chroot.sh b/build-with-chroot.sh new file mode 100755 index 000000000000..2ffb0c57af35 --- /dev/null +++ b/build-with-chroot.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +main() { + + yes | sudo pacman -Syu devtools + extra-x86_64-build -c && rm *.log + mapfile -t code_pkgs <<< `find . -type f -name 'code-translucent-*.pkg.tar.zst' | sort -Vr` + sudo pacman -U "${code_pkgs[0]}" + +} + +main "$@"
\ No newline at end of file diff --git a/translucent.patch b/translucent.patch new file mode 100644 index 000000000000..c450ccc93932 --- /dev/null +++ b/translucent.patch @@ -0,0 +1,158 @@ +diff -Naur a/product.json b/product.json +--- a/product.json 2022-09-01 00:05:32.000000000 +0200 ++++ b/product.json 2022-09-04 00:16:05.325505334 +0200 +@@ -1,4 +1,20 @@ + { ++ "quality": "stable", ++ "extensionsGallery": { ++ "serviceUrl": "https://marketplace.visualstudio.com/_apis/public/gallery", ++ "cacheUrl": "https://vscode.blob.core.windows.net/gallery/index", ++ "itemUrl": "https://marketplace.visualstudio.com/items", ++ "resourceUrlTemplate": "https://{publisher}.vscode-unpkg.net/{publisher}/{name}/{version}/{path}", ++ "controlUrl": "https://az764295.vo.msecnd.net/extensions/marketplace.json", ++ "recommendationsUrl": "https://az764295.vo.msecnd.net/extensions/workspaceRecommendations.json.gz" ++ }, ++ "documentationUrl": "https://code.visualstudio.com/docs", ++ "requestFeatureUrl": "https://github.com/Microsoft/vscode/issues", ++ "introductoryVideosUrl": "https://go.microsoft.com/fwlink/?linkid=832146", ++ "tipsAndTricksUrl": "https://go.microsoft.com/fwlink/?linkid=852118", ++ "keyboardShortcutsUrlLinux": "https://go.microsoft.com/fwlink/?linkid=832144", ++ "commit": "@COMMIT@", ++ "date": "@DATE@", + "nameShort": "Code - OSS", + "nameLong": "Code - OSS", + "applicationName": "code-oss", +diff -Naur a/src/main.js b/src/main.js +--- a/src/main.js 2022-09-01 00:05:32.000000000 +0200 ++++ b/src/main.js 2022-09-04 04:30:24.685459144 +0200 +@@ -224,6 +224,10 @@ + */ + app.commandLine.appendSwitch('disable-features', 'CalculateNativeWinOcclusion'); + ++ // Enable visuals for transparent window ++ app.commandLine.appendSwitch('enable-transparent-visuals'); ++ app.commandLine.appendSwitch('use-gl', 'desktop'); ++ + // Support JS Flags + const jsFlags = getJSFlags(cliArgs); + if (jsFlags) { +diff -Naur a/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts b/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts +--- a/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts 2022-09-01 00:05:32.000000000 +0200 ++++ b/src/vs/editor/browser/viewParts/overviewRuler/decorationsOverviewRuler.ts 2022-09-02 21:46:40.243244303 +0200 +@@ -75,7 +75,7 @@ + if (backgroundColor === null || minimapSide === 'left') { + this.backgroundColor = null; + } else { +- this.backgroundColor = Color.Format.CSS.formatHex(backgroundColor); ++ this.backgroundColor = Color.Format.CSS.formatHexA(backgroundColor); + } + + const layoutInfo = options.get(EditorOption.layoutInfo); +diff -Naur a/src/vs/platform/windows/electron-main/windowImpl.ts b/src/vs/platform/windows/electron-main/windowImpl.ts +--- a/src/vs/platform/windows/electron-main/windowImpl.ts 2022-09-01 00:05:32.000000000 +0200 ++++ b/src/vs/platform/windows/electron-main/windowImpl.ts 2022-09-04 04:50:44.757860341 +0200 +@@ -211,10 +211,11 @@ + height: this.windowState.height, + x: this.windowState.x, + y: this.windowState.y, ++ transparent: true, + backgroundColor: this.themeMainService.getBackgroundColor(), + minWidth: WindowMinimumSize.WIDTH, + minHeight: WindowMinimumSize.HEIGHT, +- show: !isFullscreenOrMaximized, // reduce flicker by showing later ++ show: false, + title: this.productService.nameLong, + webPreferences: { + preload: FileAccess.asFileUri('vs/base/parts/sandbox/electron-browser/preload.js', require).fsPath, +@@ -391,9 +392,6 @@ + this.setFullScreen(true); + } + +- // to reduce flicker from the default window size +- // to maximize or fullscreen, we only show after +- this._win.show(); + mark('code/didMaximizeCodeWindow'); + } + +@@ -478,6 +476,9 @@ + + this.readyState = ReadyState.READY; + ++ // We are ready! Show the window! ++ this._win.show(); ++ + // inform all waiting promises that we are ready now + while (this.whenReadyCallbacks.length) { + this.whenReadyCallbacks.pop()!(this); +diff -Naur a/src/vs/workbench/common/theme.ts b/src/vs/workbench/common/theme.ts +--- a/src/vs/workbench/common/theme.ts 2022-09-01 00:05:32.000000000 +0200 ++++ b/src/vs/workbench/common/theme.ts 2022-09-03 22:50:19.628326135 +0200 +@@ -7,21 +7,11 @@ + import { registerColor, editorBackground, contrastBorder, transparent, editorWidgetBackground, textLinkForeground, lighten, darken, focusBorder, activeContrastBorder, editorWidgetForeground, editorErrorForeground, editorWarningForeground, editorInfoForeground, treeIndentGuidesStroke, errorForeground, listActiveSelectionBackground, listActiveSelectionForeground, editorForeground, toolbarHoverBackground } from 'vs/platform/theme/common/colorRegistry'; + import { IColorTheme } from 'vs/platform/theme/common/themeService'; + import { Color } from 'vs/base/common/color'; +-import { ColorScheme } from 'vs/platform/theme/common/theme'; + + // < --- Workbench (not customizable) --- > + + export function WORKBENCH_BACKGROUND(theme: IColorTheme): Color { +- switch (theme.type) { +- case ColorScheme.LIGHT: +- return Color.fromHex('#F3F3F3'); +- case ColorScheme.HIGH_CONTRAST_LIGHT: +- return Color.fromHex('#FFFFFF'); +- case ColorScheme.HIGH_CONTRAST_DARK: +- return Color.fromHex('#000000'); +- default: +- return Color.fromHex('#252526'); +- } ++ return Color.transparent; + } + + // < --- Tabs --- > +@@ -855,6 +845,13 @@ + hcLight: editorInfoForeground + }, localize('notificationsInfoIconForeground', "The color used for the icon of info notifications. Notifications slide in from the bottom right of the window.")); + ++export const WINDOW_BACKGROUND = registerColor('window.background', { ++ dark: '#252526', ++ light: '#F3F3F3', ++ hcDark: '#000000', ++ hcLight: '#FFFFFF' ++}, localize('windowBackground', "The color used for the background of the window.")); ++ + export const WINDOW_ACTIVE_BORDER = registerColor('window.activeBorder', { + dark: null, + light: null, +diff -Naur a/src/vs/workbench/contrib/splash/browser/partsSplash.ts b/src/vs/workbench/contrib/splash/browser/partsSplash.ts +--- a/src/vs/workbench/contrib/splash/browser/partsSplash.ts 2022-09-01 00:05:32.000000000 +0200 ++++ b/src/vs/workbench/contrib/splash/browser/partsSplash.ts 2022-09-06 23:08:02.701342240 +0200 +@@ -68,11 +68,16 @@ + private _savePartsSplash() { + const theme = this._themeService.getColorTheme(); + ++ const windowBackground = theme.getColor(themes.WINDOW_BACKGROUND) || Color.transparent; ++ const background = windowBackground.isOpaque() ? windowBackground.transparent(0.99) ++ : windowBackground.isTransparent() ? Color.fromHex('#FFF0') ++ : windowBackground; ++ + this._partSplashService.saveWindowSplash({ + baseTheme: getThemeTypeSelector(theme.type), + colorInfo: { + foreground: theme.getColor(foreground)?.toString(), +- background: Color.Format.CSS.formatHex(theme.getColor(editorBackground) || themes.WORKBENCH_BACKGROUND(theme)), ++ background: Color.Format.CSS.formatRGBA(background), + editorBackground: theme.getColor(editorBackground)?.toString(), + titleBarBackground: theme.getColor(themes.TITLE_BAR_ACTIVE_BACKGROUND)?.toString(), + activityBarBackground: theme.getColor(themes.ACTIVITY_BAR_BACKGROUND)?.toString(), +diff -Naur a/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts b/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts +--- a/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts 2022-09-01 00:05:32.000000000 +0200 ++++ b/src/vs/workbench/contrib/terminal/browser/xterm/xtermTerminal.ts 2022-09-03 02:38:13.888556140 +0200 +@@ -152,6 +152,7 @@ + altClickMovesCursor: config.altClickMovesCursor && editorOptions.multiCursorModifier === 'alt', + scrollback: config.scrollback, + theme: this._getXtermTheme(), ++ allowTransparency: true, + drawBoldTextInBrightColors: config.drawBoldTextInBrightColors, + fontFamily: font.fontFamily, + fontWeight: config.fontWeight, |