⚡ 🐛 KDE Neon 6.0
This commit is contained in:
parent
43d220be01
commit
15be72893c
@ -3,11 +3,11 @@ hideDockIcon=false
|
|||||||
hideMainWindowWhenStarted=true
|
hideMainWindowWhenStarted=true
|
||||||
|
|
||||||
[MainWindow]
|
[MainWindow]
|
||||||
pos=@Point(0 0)
|
pos=@Point(1094 150)
|
||||||
size=@Size(640 480)
|
size=@Size(640 585)
|
||||||
|
|
||||||
[RepoTreeView]
|
[RepoTreeView]
|
||||||
expandedCategories-e77d1fb=Moje knihovny\tNed\xe1vno aktualizovan\xe9\tSd\xedleno se skupinama
|
expandedCategories-e77d1fb=Ned\xe1vno aktualizovan\xe9\tMoje knihovny\tSd\xedleno se skupinama
|
||||||
|
|
||||||
[Settings]
|
[Settings]
|
||||||
computerName=TUXEDO-InfinityBook-s15gen6
|
computerName=TUXEDO-InfinityBook-s15gen6
|
||||||
|
26
README.md
26
README.md
@ -51,6 +51,32 @@ see for example [How to Store Dotfiles - A Bare Git Repository \| Atlassian Git
|
|||||||
## PC log (cs)
|
## PC log (cs)
|
||||||
Sekce obsahuje log změn v Tuxedo laptopu s KDE Neon.
|
Sekce obsahuje log změn v Tuxedo laptopu s KDE Neon.
|
||||||
|
|
||||||
|
### KDE Neon 6.0 (22.04)
|
||||||
|
{NEXT <2024-03-20> *tilling* *hud* *html-wallpaper* *virtual-desktop* *klipper* agenda}$
|
||||||
|
|
||||||
|
- mostly OK
|
||||||
|
- [ ] desktop exceptionally freeze for less than a second: *investigation → report a bug*
|
||||||
|
- [ ] logout/poweroff dialog not showing and not working: *investigation → report a bug* … see below
|
||||||
|
- [x] krunner not launching → created `/usr/share/dbus-1/services/org.kde.krunner.service` (see below)
|
||||||
|
- [x] meta+tab (last virtual desktop) → workaround [./bin/kde6-workarounds.mjs](./bin/kde6-workarounds.mjs)
|
||||||
|
- [x] klipper (edit last item) → workaround [./bin/kde6-workarounds.mjs](./bin/kde6-workarounds.mjs)
|
||||||
|
- [ ] !!! Event calendar widget
|
||||||
|
- [x] Active Window Control replaced with Window Title widget and its better
|
||||||
|
- [ ] html wallpaper → workaround just concat images (see [./bin/§wallpaper\_BIOTD](./bin/§wallpaper_BIOTD))
|
||||||
|
- [ ] tilling → try to use native, try to use [zeroxoneafour/polonium: Tiling window manager for KWin 5.27](https://github.com/zeroxoneafour/polonium) (when there will be a new release)
|
||||||
|
- [ ] hud ([Zren/plasma-hud](https://github.com/Zren/plasma-hud) still works on X11), but maybe Ctrl+Alt+i and so on is OK?
|
||||||
|
|
||||||
|
```bash
|
||||||
|
qdbus org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout 1
|
||||||
|
Cannot find 'org.kde.KSMServerInterface.logout' in object /KSMServer at org.kde.ksmserver
|
||||||
|
```
|
||||||
|
[KDE Bugtracking System Main Page](https://bugs.kde.org/)
|
||||||
|
```ini
|
||||||
|
[D-BUS Service]
|
||||||
|
Name=org.kde.krunner
|
||||||
|
Exec=/usr/bin/krunner
|
||||||
|
```
|
||||||
|
|
||||||
### KDE neon 5.26 (22.04)
|
### KDE neon 5.26 (22.04)
|
||||||
{DONE <2022-10-25 17:21> *mail* *hud* *klíčenka* agenda}$
|
{DONE <2022-10-25 17:21> *mail* *hud* *klíčenka* agenda}$
|
||||||
|
|
||||||
|
@ -7,9 +7,9 @@
|
|||||||
"file_name": "github-desktop",
|
"file_name": "github-desktop",
|
||||||
"exec": "yes",
|
"exec": "yes",
|
||||||
"description": "Fork of GitHub Desktop to support various Linux distributions",
|
"description": "Fork of GitHub Desktop to support various Linux distributions",
|
||||||
"last_update": "2023-12-20T15:25:06Z",
|
"last_update": "2024-02-04T22:31:22Z",
|
||||||
"downloads": "/home/jaandrle/bin/github-desktop",
|
"downloads": "/home/jaandrle/bin/github-desktop",
|
||||||
"version": "release-3.3.6-linux3"
|
"version": "release-3.3.8-linux2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"repository": "jaandrle/jaaCSS-cli",
|
"repository": "jaandrle/jaaCSS-cli",
|
||||||
@ -29,9 +29,9 @@
|
|||||||
"group": "nondev",
|
"group": "nondev",
|
||||||
"file_name": "youtube-music",
|
"file_name": "youtube-music",
|
||||||
"exec": "yes",
|
"exec": "yes",
|
||||||
"last_update": "2024-01-05T14:44:27Z",
|
"last_update": "2024-02-20T12:07:29Z",
|
||||||
"downloads": "/home/jaandrle/bin/youtube-music",
|
"downloads": "/home/jaandrle/bin/youtube-music",
|
||||||
"version": "v3.2.2"
|
"version": "v3.3.2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"repository": "ArchGPT/insomnium",
|
"repository": "ArchGPT/insomnium",
|
||||||
@ -108,9 +108,9 @@
|
|||||||
"group": "nondev",
|
"group": "nondev",
|
||||||
"file_name": "upscayl",
|
"file_name": "upscayl",
|
||||||
"exec": "yes",
|
"exec": "yes",
|
||||||
"last_update": "2024-01-16T09:54:25Z",
|
"last_update": "2024-02-10T12:17:10Z",
|
||||||
"downloads": "/home/jaandrle/bin/upscayl",
|
"downloads": "/home/jaandrle/bin/upscayl",
|
||||||
"version": "v2.9.8"
|
"version": "v2.9.9"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"repository": "RasmusLindroth/tut",
|
"repository": "RasmusLindroth/tut",
|
||||||
@ -152,9 +152,9 @@
|
|||||||
"group": "nondev",
|
"group": "nondev",
|
||||||
"file_name": "fedistar",
|
"file_name": "fedistar",
|
||||||
"exec": "yes",
|
"exec": "yes",
|
||||||
"last_update": "2024-01-29T10:29:58Z",
|
"last_update": "2024-02-09T11:38:02Z",
|
||||||
"downloads": "/home/jaandrle/bin/fedistar",
|
"downloads": "/home/jaandrle/bin/fedistar",
|
||||||
"version": "v1.8.3"
|
"version": "v1.8.4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"repository": "ollama/ollama",
|
"repository": "ollama/ollama",
|
||||||
@ -163,9 +163,9 @@
|
|||||||
"group": "ai",
|
"group": "ai",
|
||||||
"file_name": "ollama",
|
"file_name": "ollama",
|
||||||
"exec": "yes",
|
"exec": "yes",
|
||||||
"last_update": "2024-01-26T18:19:36Z",
|
"last_update": "2024-02-22T22:55:46Z",
|
||||||
"downloads": "/home/jaandrle/bin/ollama",
|
"downloads": "/home/jaandrle/bin/ollama",
|
||||||
"version": "v0.1.22"
|
"version": "v0.1.27"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"repository": "neovim/neovim",
|
"repository": "neovim/neovim",
|
||||||
@ -208,9 +208,9 @@
|
|||||||
"group": "ai",
|
"group": "ai",
|
||||||
"file_name": "jan",
|
"file_name": "jan",
|
||||||
"exec": "yes",
|
"exec": "yes",
|
||||||
"last_update": "2024-01-29T05:19:22Z",
|
"last_update": "2024-02-26T03:30:36Z",
|
||||||
"downloads": "/home/jaandrle/bin/jan",
|
"downloads": "/home/jaandrle/bin/jan",
|
||||||
"version": "v0.4.5"
|
"version": "v0.4.7"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
61
bin/kde6-workarounds.mjs
Executable file
61
bin/kde6-workarounds.mjs
Executable file
@ -0,0 +1,61 @@
|
|||||||
|
#!/usr/bin/env nodejsscript
|
||||||
|
/* jshint esversion: 11,-W097, -W040, module: true, node: true, expr: true, undef: true *//* global echo, $, pipe, s, fetch, cyclicLoop */
|
||||||
|
|
||||||
|
const pathLastDesktop= ()=> $.xdg.temp`kde6-workarounds-last-desktop.txt`;
|
||||||
|
const css= echo.css`
|
||||||
|
.code { color: gray; }
|
||||||
|
`;
|
||||||
|
|
||||||
|
$.api()
|
||||||
|
.version("2024-02-29")
|
||||||
|
.describe("Workarounds for KDE6.")
|
||||||
|
.command("klipper-edit", "Edit last item in klipper.")
|
||||||
|
.action(async function(){
|
||||||
|
$.is_silent= true;
|
||||||
|
const qdbus= "qdbus org.kde.klipper /klipper org.kde.klipper.klipper.";
|
||||||
|
try{
|
||||||
|
const candidate= s.run(`${qdbus}getClipboardContents`).trim();
|
||||||
|
const content= await $.read({ "-p": "Edit", completions: [ candidate ] });
|
||||||
|
s.run(`${qdbus}setClipboardContents "${content}"`);
|
||||||
|
$.exit(0);
|
||||||
|
} catch (_){
|
||||||
|
$.exit(1);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.command("desktops-alttab", "Workaround for KDE6 alt-tab between virtual desktops.")
|
||||||
|
.action(function(){
|
||||||
|
const path= pathLastDesktop();
|
||||||
|
// Regarding ★ : this is a workaround for diagonal switching (it duplicates desktop index)
|
||||||
|
let desktop= s.cat(path).trim() || "1";
|
||||||
|
if(desktop.length>3){ // ★
|
||||||
|
const [ _1, _2, ..._3 ]= desktop.slice(-4, desktop.length);
|
||||||
|
if(_1===_2)
|
||||||
|
desktop= desktop.slice(0, -4).concat(_1, ..._3);
|
||||||
|
}
|
||||||
|
if(desktop.length>2){ // ★
|
||||||
|
const [ _1, _2 ]= desktop.slice(-2, desktop.length);
|
||||||
|
if(_1===_2)
|
||||||
|
desktop= desktop.slice(0, -1);
|
||||||
|
}
|
||||||
|
if(desktop.length>2){
|
||||||
|
desktop= desktop.slice(-2, desktop.length);
|
||||||
|
s.echo(desktop).to(path);
|
||||||
|
}
|
||||||
|
echo(desktop);
|
||||||
|
s.run`qdbus org.kde.KWin /KWin org.kde.KWin.setCurrentDesktop ${desktop[0]}`;
|
||||||
|
$.exit(0);
|
||||||
|
})
|
||||||
|
.command("desktops-last <dbus>", "Workaround for KDE6 alt-tab between virtual desktops.")
|
||||||
|
.describe([
|
||||||
|
"Use",
|
||||||
|
echo.format('%cdbus-monitor "interface=org.kde.KWin.VirtualDesktopManager" "member=currentChanged" | xargs -e -I {} kde6-workarounds.mjs desktops-last {}', css.code)
|
||||||
|
])
|
||||||
|
.action(function(dbus){
|
||||||
|
if(-1===dbus.indexOf("path=/VirtualDesktopManager; interface=org.kde.KWin.VirtualDesktopManager; member=currentChanged"))
|
||||||
|
return $.exit(1);
|
||||||
|
const desktop= s.run`qdbus org.kde.KWin /KWin org.kde.KWin.currentDesktop`.trim();
|
||||||
|
s.echo(desktop).toEnd(pathLastDesktop());
|
||||||
|
})
|
||||||
|
.parse();
|
||||||
|
|
||||||
|
/* rofi -dmenu -l 4 --theme-str 'window { width: 50ch; }' -p "promt" */
|
@ -9,36 +9,36 @@ const folder= homedir()+"/Obrázky/Bing Image Of The Day/";
|
|||||||
|
|
||||||
get_(url_main+"/HPImageArchive.aspx?format=js&idx=0&n=2&mkt=cs-CZ")
|
get_(url_main+"/HPImageArchive.aspx?format=js&idx=0&n=2&mkt=cs-CZ")
|
||||||
.then(res=> {
|
.then(res=> {
|
||||||
let body= "";
|
let body= "";
|
||||||
res.on("data", chunk=> body+= chunk);
|
res.on("data", chunk=> body+= chunk);
|
||||||
res.on("end", ()=> pipe(data, update)(body));
|
res.on("end", ()=> pipe(data, update)(body));
|
||||||
})
|
})
|
||||||
.catch(e=> console.error(String(e)));
|
.catch(e=> console.error(String(e)));
|
||||||
|
|
||||||
function update(data){
|
function update(data){
|
||||||
if(data===null) return false;
|
if(data===null) return false;
|
||||||
Promise.allSettled(data.map(({ url, copyright }, id)=> getImage_(url, id ? "prev" : "now", copyright)))
|
Promise.allSettled(data.map(({ url, copyright }, id)=> getImage_(url, id ? "prev" : "now", copyright)))
|
||||||
.then(res=> {
|
.then(res=> {
|
||||||
let template= readFileSync(folder+"index_template.html").toString();
|
let template= readFileSync(folder+"index_template.html").toString();
|
||||||
writeFileSync(folder+"index.html", res.reduce((out, { status, value })=> status==="rejected" ? out : out.replace(`::${value.name}::`, value.description), template));
|
writeFileSync(folder+"index.html", res.reduce((out, { status, value })=> status==="rejected" ? out : out.replace(`::${value.name}::`, value.description), template));
|
||||||
})
|
})
|
||||||
.catch(e=> console.error(String(e)));
|
.catch(e=> console.error(String(e)));
|
||||||
}
|
}
|
||||||
function getImage_(url, name, desc){
|
function getImage_(url, name, desc){
|
||||||
const description= desc.replace("(©", "<br>(©");
|
const description= desc.replace("(©", "<br>(©");
|
||||||
return get_(url_main+url)
|
return get_(url_main+url)
|
||||||
.then(res=> {
|
.then(res=> {
|
||||||
const fs= createWriteStream(folder+name+'.jpg');
|
const fs= createWriteStream(folder+name+'.jpg');
|
||||||
res.pipe(fs);
|
res.pipe(fs);
|
||||||
return new Promise(res=> fs.on("finish", ()=> {
|
return new Promise(res=> fs.on("finish", ()=> {
|
||||||
fs.close();
|
fs.close();
|
||||||
res({ name, description });
|
res({ name, description });
|
||||||
}));
|
}));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
function data(body){
|
function data(body){
|
||||||
try { return JSON.parse(body).images; }
|
try { return JSON.parse(body).images; }
|
||||||
catch (_) { return null; }
|
catch (_) { return null; }
|
||||||
}
|
}
|
||||||
function get_(url){ return new Promise(function(res,rej){ get(url, res).on("error", rej); }); }
|
function get_(url){ return new Promise(function(res,rej){ get(url, res).on("error", rej); }); }
|
||||||
function pipe(...f){ return Array.prototype.reduce.bind(f, (acc, f)=> f(acc)); }
|
function pipe(...f){ return Array.prototype.reduce.bind(f, (acc, f)=> f(acc)); }
|
||||||
|
Loading…
Reference in New Issue
Block a user