From ec22c00ba563a00928f174f3ff44d56fb497f1d5 Mon Sep 17 00:00:00 2001 From: Liangcheng Juves Date: Sun, 15 May 2022 02:00:11 +0800 Subject: [PATCH 01/12] Switch to more classic linux icon Icon from https://upload.wikimedia.org/wikipedia/commons/archive/3/35/20120923174402!Tux.svg --- tabby-local/src/icons/linux.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tabby-local/src/icons/linux.svg b/tabby-local/src/icons/linux.svg index e87a111f..ba60f611 100644 --- a/tabby-local/src/icons/linux.svg +++ b/tabby-local/src/icons/linux.svg @@ -1 +1 @@ - \ No newline at end of file + From a5fb7262063170fd11a1015a15e094d3ff06c198 Mon Sep 17 00:00:00 2001 From: Liangcheng Juves Date: Sun, 15 May 2022 13:56:57 +0800 Subject: [PATCH 02/12] Use linux icon by default when no WSL profile icon is found --- tabby-local/src/shells/wsl.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tabby-local/src/shells/wsl.ts b/tabby-local/src/shells/wsl.ts index 048fed5b..e58ca70f 100644 --- a/tabby-local/src/shells/wsl.ts +++ b/tabby-local/src/shells/wsl.ts @@ -62,7 +62,8 @@ export class WSLShellProvider extends ShellProvider { TERM: 'xterm-color', COLORTERM: 'truecolor', }, - icon: wslIconMap[defaultDistKey.DistributionName.value], + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + icon: wslIconMap[defaultDistKey.DistributionName.value] ?? wslIconMap.Linux, } shells.push(shell) } @@ -103,7 +104,8 @@ export class WSLShellProvider extends ShellProvider { TERM: 'xterm-color', COLORTERM: 'truecolor', }, - icon: wslIconMap[name], + // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition + icon: wslIconMap[name] ?? wslIconMap.Linux, } shells.push(shell) } From fa2bbe39c4db6e55ed79c733d86eb76821a1e6b4 Mon Sep 17 00:00:00 2001 From: Liangcheng Juves Date: Sun, 15 May 2022 14:48:58 +0800 Subject: [PATCH 03/12] Different versions of vs profile use different icon to differentiate --- tabby-local/src/icons/vs.svg | 1 - tabby-local/src/icons/vs2017.svg | 1 + tabby-local/src/icons/vs2019.svg | 1 + tabby-local/src/icons/vs2022.svg | 1 + tabby-local/src/shells/vs.ts | 10 +++++++++- 5 files changed, 12 insertions(+), 2 deletions(-) delete mode 100644 tabby-local/src/icons/vs.svg create mode 100644 tabby-local/src/icons/vs2017.svg create mode 100644 tabby-local/src/icons/vs2019.svg create mode 100644 tabby-local/src/icons/vs2022.svg diff --git a/tabby-local/src/icons/vs.svg b/tabby-local/src/icons/vs.svg deleted file mode 100644 index e7ae716d..00000000 --- a/tabby-local/src/icons/vs.svg +++ /dev/null @@ -1 +0,0 @@ - BrandVisualStudioWin2019 \ No newline at end of file diff --git a/tabby-local/src/icons/vs2017.svg b/tabby-local/src/icons/vs2017.svg new file mode 100644 index 00000000..421fe0ff --- /dev/null +++ b/tabby-local/src/icons/vs2017.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tabby-local/src/icons/vs2019.svg b/tabby-local/src/icons/vs2019.svg new file mode 100644 index 00000000..3fd566d0 --- /dev/null +++ b/tabby-local/src/icons/vs2019.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tabby-local/src/icons/vs2022.svg b/tabby-local/src/icons/vs2022.svg new file mode 100644 index 00000000..699f27bb --- /dev/null +++ b/tabby-local/src/icons/vs2022.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tabby-local/src/shells/vs.ts b/tabby-local/src/shells/vs.ts index 78f3b874..addf52d9 100644 --- a/tabby-local/src/shells/vs.ts +++ b/tabby-local/src/shells/vs.ts @@ -5,6 +5,14 @@ import { HostAppService, Platform } from 'tabby-core' import { ShellProvider, Shell } from '../api' +/* eslint-disable quote-props */ +const vsIconMap: Record = { + '2017': require('../icons/vs2017.svg'), + '2019': require('../icons/vs2019.svg'), + '2022': require('../icons/vs2022.svg'), +} +/* eslint-enable quote-props */ + /** @hidden */ @Injectable() export class VSDevToolsProvider extends ShellProvider { @@ -40,7 +48,7 @@ export class VSDevToolsProvider extends ShellProvider { name: `Developer Prompt for VS ${version}`, command: 'cmd.exe', args: ['/k', bat], - icon: require('../icons/vs.svg'), + icon: vsIconMap[version], env: {}, }) } From 7cddcee9518ea6bb53d1042fce138660295f72bd Mon Sep 17 00:00:00 2001 From: Liangcheng Juves Date: Sun, 15 May 2022 12:07:54 +0800 Subject: [PATCH 04/12] Fix the problem that the `Developer Prompt for VS 2022` profile could not be loaded --- tabby-local/src/shells/vs.ts | 42 +++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/tabby-local/src/shells/vs.ts b/tabby-local/src/shells/vs.ts index addf52d9..d0a399ad 100644 --- a/tabby-local/src/shells/vs.ts +++ b/tabby-local/src/shells/vs.ts @@ -27,30 +27,32 @@ export class VSDevToolsProvider extends ShellProvider { return [] } - const parentPath = path.join(process.env['programfiles(x86)'] ?? 'C:\\Program Files (x86', 'Microsoft Visual Studio') - - try { - await fs.stat(parentPath) - } catch { - return [] - } + const x86ParentPath = path.join(process.env['programfiles(x86)'] ?? 'C:\\Program Files (x86)', 'Microsoft Visual Studio') + const x64ParentPath = path.join(process.env['programfiles'] ?? 'C:\\Program Files', 'Microsoft Visual Studio') const result: Shell[] = [] - for (const version of await fs.readdir(parentPath)) { - const bat = path.join(parentPath, version, 'Community\\Common7\\Tools\\VsDevCmd.bat') + for (const parentPath of [x86ParentPath, x64ParentPath]) { try { - await fs.stat(bat) - } catch { - continue + await fs.stat(parentPath) + for (const version of await fs.readdir(parentPath)) { + const bat = path.join(parentPath, version, 'Community\\Common7\\Tools\\VsDevCmd.bat') + try { + await fs.stat(bat) + } catch { + continue + } + result.push({ + id: `vs-cmd-${version}`, + name: `Developer Prompt for VS ${version}`, + command: 'cmd.exe', + args: ['/k', bat], + icon: vsIconMap[version], + env: {}, + }) + } + } catch (_) { + // Ignore } - result.push({ - id: `vs-cmd-${version}`, - name: `Developer Prompt for VS ${version}`, - command: 'cmd.exe', - args: ['/k', bat], - icon: vsIconMap[version], - env: {}, - }) } return result From 272918bff66c2ccebd107d8129469b7d56049c80 Mon Sep 17 00:00:00 2001 From: Liangcheng Juves Date: Sun, 15 May 2022 14:51:23 +0800 Subject: [PATCH 05/12] Change name `Git-Bash` to `Git Bash` --- tabby-local/src/shells/gitBash.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tabby-local/src/shells/gitBash.ts b/tabby-local/src/shells/gitBash.ts index 60846fb2..bba50edd 100644 --- a/tabby-local/src/shells/gitBash.ts +++ b/tabby-local/src/shells/gitBash.ts @@ -36,7 +36,7 @@ export class GitBashShellProvider extends ShellProvider { return [{ id: 'git-bash', - name: 'Git-Bash', + name: 'Git Bash', command: path.join(gitBashPath, 'bin', 'bash.exe'), args: ['--login', '-i'], icon: require('../icons/git-bash.svg'), From 0aa7e53a783570ac57f3a1e46210368c227dc643 Mon Sep 17 00:00:00 2001 From: Liangcheng Juves Date: Sun, 15 May 2022 14:54:23 +0800 Subject: [PATCH 06/12] Update official icon for git bash profile Icon from https://github.com/git-for-windows/git-for-windows.github.io/blob/main/img/gwindows_logo.svg --- tabby-local/src/icons/git-bash.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tabby-local/src/icons/git-bash.svg b/tabby-local/src/icons/git-bash.svg index 1e5fe9ce..10047816 100644 --- a/tabby-local/src/icons/git-bash.svg +++ b/tabby-local/src/icons/git-bash.svg @@ -1 +1 @@ - \ No newline at end of file + From b154d87865520dd6cd7b10eb9dfb7aa470c8aba9 Mon Sep 17 00:00:00 2001 From: Liangcheng Juves Date: Sun, 15 May 2022 14:56:51 +0800 Subject: [PATCH 07/12] Update official icon for powershell profiles Icon from https://docs.microsoft.com/zh-CN/powershell/ --- tabby-local/src/icons/powershell-core.svg | 2 +- tabby-local/src/icons/powershell.svg | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/tabby-local/src/icons/powershell-core.svg b/tabby-local/src/icons/powershell-core.svg index a25a0f65..044e2821 100644 --- a/tabby-local/src/icons/powershell-core.svg +++ b/tabby-local/src/icons/powershell-core.svg @@ -1 +1 @@ - + \ No newline at end of file diff --git a/tabby-local/src/icons/powershell.svg b/tabby-local/src/icons/powershell.svg index 91e335e5..5bef6336 100644 --- a/tabby-local/src/icons/powershell.svg +++ b/tabby-local/src/icons/powershell.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file From 6dc14e0fd58f983c2dabd8c3fd5accd6b917dd0b Mon Sep 17 00:00:00 2001 From: Liangcheng Juves Date: Sat, 14 May 2022 21:07:57 +0800 Subject: [PATCH 08/12] Add icon for `Ubuntu-22.04` profile --- tabby-local/src/shells/wsl.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/tabby-local/src/shells/wsl.ts b/tabby-local/src/shells/wsl.ts index e58ca70f..32474189 100644 --- a/tabby-local/src/shells/wsl.ts +++ b/tabby-local/src/shells/wsl.ts @@ -23,6 +23,7 @@ const wslIconMap: Record = { 'openSUSE-Leap-15-1': require('../icons/suse.svg'), 'Ubuntu-16.04': require('../icons/ubuntu.svg'), 'Ubuntu-18.04': require('../icons/ubuntu.svg'), + 'Ubuntu-22.04': require('../icons/ubuntu.svg'), 'Ubuntu': require('../icons/ubuntu.svg'), 'Linux': require('../icons/linux.svg'), 'docker-desktop': require('../icons/docker.svg'), From 9f4c12ba96c9b1b02935a189751619d4cc21dacd Mon Sep 17 00:00:00 2001 From: Liangcheng Juves Date: Sat, 14 May 2022 21:52:17 +0800 Subject: [PATCH 09/12] Add icon for `AlmaLinux-8` profile --- tabby-local/src/icons/alma.svg | 1 + tabby-local/src/shells/wsl.ts | 1 + 2 files changed, 2 insertions(+) create mode 100644 tabby-local/src/icons/alma.svg diff --git a/tabby-local/src/icons/alma.svg b/tabby-local/src/icons/alma.svg new file mode 100644 index 00000000..19553471 --- /dev/null +++ b/tabby-local/src/icons/alma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tabby-local/src/shells/wsl.ts b/tabby-local/src/shells/wsl.ts index 32474189..6f80ebfd 100644 --- a/tabby-local/src/shells/wsl.ts +++ b/tabby-local/src/shells/wsl.ts @@ -25,6 +25,7 @@ const wslIconMap: Record = { 'Ubuntu-18.04': require('../icons/ubuntu.svg'), 'Ubuntu-22.04': require('../icons/ubuntu.svg'), 'Ubuntu': require('../icons/ubuntu.svg'), + 'AlmaLinux-8': require('../icons/alma.svg'), 'Linux': require('../icons/linux.svg'), 'docker-desktop': require('../icons/docker.svg'), 'docker-desktop-data': require('../icons/docker.svg'), From 175016bb1a2c0b90e0e8d44966e88099fc9b4aea Mon Sep 17 00:00:00 2001 From: Liangcheng Juves Date: Sat, 14 May 2022 22:06:12 +0800 Subject: [PATCH 10/12] Add icon for `openEuler` profile --- tabby-local/src/icons/open-euler.svg | 1 + tabby-local/src/shells/wsl.ts | 1 + 2 files changed, 2 insertions(+) create mode 100644 tabby-local/src/icons/open-euler.svg diff --git a/tabby-local/src/icons/open-euler.svg b/tabby-local/src/icons/open-euler.svg new file mode 100644 index 00000000..a0966388 --- /dev/null +++ b/tabby-local/src/icons/open-euler.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tabby-local/src/shells/wsl.ts b/tabby-local/src/shells/wsl.ts index 6f80ebfd..45cbf1d4 100644 --- a/tabby-local/src/shells/wsl.ts +++ b/tabby-local/src/shells/wsl.ts @@ -26,6 +26,7 @@ const wslIconMap: Record = { 'Ubuntu-22.04': require('../icons/ubuntu.svg'), 'Ubuntu': require('../icons/ubuntu.svg'), 'AlmaLinux-8': require('../icons/alma.svg'), + 'openEuler': require('../icons/open-euler.svg'), 'Linux': require('../icons/linux.svg'), 'docker-desktop': require('../icons/docker.svg'), 'docker-desktop-data': require('../icons/docker.svg'), From e537b61edd4cebe19cc129a8f63d3ad47bbcf274 Mon Sep 17 00:00:00 2001 From: Liangcheng Juves Date: Sun, 15 May 2022 13:31:38 +0800 Subject: [PATCH 11/12] Add icon for oracle wsl profiles --- tabby-local/src/icons/oracle-linux.svg | 1 + tabby-local/src/shells/wsl.ts | 2 ++ 2 files changed, 3 insertions(+) create mode 100644 tabby-local/src/icons/oracle-linux.svg diff --git a/tabby-local/src/icons/oracle-linux.svg b/tabby-local/src/icons/oracle-linux.svg new file mode 100644 index 00000000..0528eb20 --- /dev/null +++ b/tabby-local/src/icons/oracle-linux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tabby-local/src/shells/wsl.ts b/tabby-local/src/shells/wsl.ts index 45cbf1d4..50b38e29 100644 --- a/tabby-local/src/shells/wsl.ts +++ b/tabby-local/src/shells/wsl.ts @@ -26,6 +26,8 @@ const wslIconMap: Record = { 'Ubuntu-22.04': require('../icons/ubuntu.svg'), 'Ubuntu': require('../icons/ubuntu.svg'), 'AlmaLinux-8': require('../icons/alma.svg'), + 'OracleLinux_7_9': require('../icons/oracle-linux.svg'), + 'OracleLinux_8_5': require('../icons/oracle-linux.svg'), 'openEuler': require('../icons/open-euler.svg'), 'Linux': require('../icons/linux.svg'), 'docker-desktop': require('../icons/docker.svg'), From 7e0b9ecb568d2a90db2d5fdb697cdcc850930faa Mon Sep 17 00:00:00 2001 From: Liangcheng Juves Date: Sat, 14 May 2022 20:19:46 +0800 Subject: [PATCH 12/12] Update official icon for kali profile Icon from https://www.kali.org/images/kali-logo.svg --- tabby-local/src/icons/kali.svg | 1 + tabby-local/src/shells/wsl.ts | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 tabby-local/src/icons/kali.svg diff --git a/tabby-local/src/icons/kali.svg b/tabby-local/src/icons/kali.svg new file mode 100644 index 00000000..d73f67e4 --- /dev/null +++ b/tabby-local/src/icons/kali.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/tabby-local/src/shells/wsl.ts b/tabby-local/src/shells/wsl.ts index 50b38e29..ab8ad985 100644 --- a/tabby-local/src/shells/wsl.ts +++ b/tabby-local/src/shells/wsl.ts @@ -18,7 +18,7 @@ try { const wslIconMap: Record = { 'Alpine': require('../icons/alpine.svg'), 'Debian': require('../icons/debian.svg'), - 'kali-linux': require('../icons/linux.svg'), + 'kali-linux': require('../icons/kali.svg'), 'SLES-12': require('../icons/suse.svg'), 'openSUSE-Leap-15-1': require('../icons/suse.svg'), 'Ubuntu-16.04': require('../icons/ubuntu.svg'),