added vscode extensions

This commit is contained in:
tomit4 2021-11-05 11:26:45 -07:00
parent 7cde0829be
commit 26e2a50441
316 changed files with 37301 additions and 0 deletions

View file

@ -0,0 +1,126 @@
const { workspace, window, commands } = require('vscode');
const shell = require('node-powershell');
function activate(context) {
if (process.platform == 'win32') {
const path = context.asAbsolutePath('./SetTransparency.cs');
const ps = new shell({
executionPolicy: 'RemoteSigned',
noProfile: true,
});
context.subscriptions.push(ps);
ps.addCommand('[Console]::OutputEncoding = [Text.Encoding]::UTF8');
ps.addCommand(`Add-Type -Path '${path}'`);
function setAlpha(alpha) {
if (alpha < 1) {
alpha = 1;
} else if (alpha > 255) {
alpha = 255;
}
ps.addCommand(`[GlassIt.SetTransParency]::SetTransParency(${process.pid}, ${alpha})`);
ps.invoke().then(res => {
console.log(res);
console.log(`GlassIt: set alpha ${alpha}`);
config().update('alpha', alpha, true);
}).catch(err => {
console.error(err);
window.showErrorMessage(`GlassIt Error: ${err}`);
});
}
} else if (process.platform == 'linux'){
const cp = require('child_process');
// Checking the weather xprop has installed
try {
cp.spawnSync('which xprop').toString();
} catch (error){
console.error(`GlassIt Error: Please install xprop package to use GlassIt.`);
return;
}
// Retrieving the process ids of VS code
const processIds = cp.execSync('pgrep \'code\'').toString().split('\n');
processIds.pop();
// Retrieving all window ids
const allWindowIdsOutput = cp.execSync(
`xprop -root | grep '_NET_CLIENT_LIST(WINDOW)'`
).toString();
const allWindowIds = allWindowIdsOutput.match(/0x[\da-f]+/ig);
const codeWindowIds = [];
for(const windowId of allWindowIds){
// Checking the weather the window has a associated process
const hasProcessId = cp.execSync(`xprop -id ${windowId} _NET_WM_PID`).toString();
if(!(hasProcessId.search('not found')+1)){
// Extract process id from the result
const winProcessId = hasProcessId.replace(/([a-zA-Z_\(\)\s\=])/g,'');
if(processIds.includes(winProcessId)){
codeWindowIds.push(windowId);
}
}
}
function setAlpha(alpha){
if (alpha < 1) {
alpha = 1;
} else if (alpha > 255) {
alpha = 255;
}
for(const codeWindowId of codeWindowIds){
cp.exec(`xprop -id ${codeWindowId} -f _NET_WM_WINDOW_OPACITY 32c -set _NET_WM_WINDOW_OPACITY $(printf 0x%x $((0xffffffff * ${alpha} / 255)))`, function(error,stdout, stderr){
if (error) {
console.error(`GlassIt error: ${error}`);
return;
}
console.log(stdout.toString());
console.log(`GlassIt: set alpha ${alpha}`);
config().update('alpha', alpha, true);
});
}
}
} else {
return;
}
console.log('Congratulations, your extension "GlassIt VSC" is now active!');
const config = () => workspace.getConfiguration('glassit');
context.subscriptions.push(commands.registerCommand('glassit.increase', () => {
const alpha = config().get('alpha') - config().get('step');
setAlpha(alpha);
}));
context.subscriptions.push(commands.registerCommand('glassit.decrease', () => {
const alpha = config().get('alpha') + config().get('step');
setAlpha(alpha);
}));
context.subscriptions.push(commands.registerCommand('glassit.maximize', () => {
setAlpha(1);
}));
context.subscriptions.push(commands.registerCommand('glassit.minimize', () => {
setAlpha(255);
}));
const alpha = config().get('alpha');
setAlpha(alpha);
}
exports.activate = activate;
function deactivate() {
}
exports.deactivate = deactivate;