Öncelikle 'İndirilenler' klasörüne giderek shift-follow adında bir klasör oluşturun. Bu klasörün içerisinde contents/code dizin yapısını yapılandırın. Son adım olarak, code dizini altına main.js, shift-follow ana dizini altına ise metadata.json dosyalarını ekleyin. Dosya hiyerarşisi tam olarak şu şekilde görünmelidir:
İndirilenler/
└── shift-follow/
├── metadata.json
└── contents/
└── code/
└── main.js
Daha sonrasında metadata.json dosyasını bir metin editörü ile açıp içerisine aşağıdaki kodu yapıştırın:
Daha sonrasında main.js dosyasını bir metin editörü ile açıp içerisine aşağıdaki kodu yapıştırın:
Daha sonrasında ise terminal shift-follow dizinindeyken şu kodu çalıştırın:
Artık Kwin betiği yüklendi KDE ayarlarından Kwin betikleri sayfasında Shift And Follow Pro olarak görmeniz lazım kısayollarda ise Move Window to Desktop * and Follow olarak göreceksiniz maksimum 10. masaüstüne kadar ayarladım.
Hyprland'i yavaştan bırakmaya başladım bu sebeple KDE geçtim ama ilk sorunum buydu çünkü Hyprland'de buna alışmıştım varsayılan olarak kısayollarda olmaması ilginç geldi.
İndirilenler/
└── shift-follow/
├── metadata.json
└── contents/
└── code/
└── main.js
Daha sonrasında metadata.json dosyasını bir metin editörü ile açıp içerisine aşağıdaki kodu yapıştırın:
Kod:
{
"KPlugin": {
"Name": "Shift & Follow Pro",
"Description": "Moves the active window across 10 virtual desktops and follows focus.",
"Icon": "preferences-system-windows-move",
"Authors": [
{
"Email": "[email protected]",
"Name": "Terminal Master"
}
],
"Id": "shift-and-follow-pro",
"Version": "1.2",
"License": "MIT",
"ServiceTypes": ["KWin/Script"]
},
"X-Plasma-API": "javascript",
"X-Plasma-MainScript": "code/main.js",
"KPackageStructure": "KWin/Script"
}
Kod:
/**
* Moves the active window to a specific desktop and switches view to it.
* @param {number} desktopIndex - The index of the target virtual desktop.
*/
function moveAndFollow(desktopIndex) {
const window = workspace.activeWindow;
const targetDesktop = workspace.desktops[desktopIndex];
if (window && targetDesktop) {
// Assign window to the target desktop
window.desktops = [targetDesktop];
// Switch workspace focus to that desktop
workspace.currentDesktop = targetDesktop;
}
}
// Loop to register shortcuts for 10 desktops (1-9 and 0)
for (let i = 0; i < 10; i++) {
let index = i;
const desktopNum = i + 1;
// Maps 1-9 to keys 1-9, and 10 to key 0
let keyCombo = "Meta+Shift+" + (desktopNum === 10 ? "0" : desktopNum);
registerShortcut(
"Move Window to Desktop " + desktopNum + " and Follow",
"Move active window to Desktop " + desktopNum + " and switch focus to it.",
keyCombo,
function () { moveAndFollow(index); }
);
}
Kod:
kpackagetool6 --type KWin/Script --install .
Hyprland'i yavaştan bırakmaya başladım bu sebeple KDE geçtim ama ilk sorunum buydu çünkü Hyprland'de buna alışmıştım varsayılan olarak kısayollarda olmaması ilginç geldi.