summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Čuček2022-09-18 18:29:39 +0200
committerDavid Čuček2022-09-18 18:29:39 +0200
commit27f391851f6d2ae835fa753b147612133ac75e60 (patch)
tree5edb6b63388d9354bde06b03a3d67cb2fe4499f0
downloadaur-27f391851f6d2ae835fa753b147612133ac75e60.tar.gz
first AUR package!
-rw-r--r--.SRCINFO42
-rw-r--r--PKGBUILD157
-rwxr-xr-xbuild-with-chroot.sh12
-rw-r--r--translucent.patch158
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,