minor fix

This commit is contained in:
js0ny 2025-02-25 12:34:34 +00:00
parent 0cc9ea310b
commit ec73a87334
10 changed files with 898 additions and 279 deletions

3
.gitattributes vendored
View file

@ -15,6 +15,9 @@ vsvimrc linguist-language=VimL
vimrc linguist-language=VimL
ideavimrc linguist-language=VimL
*.kbd linguist-language=Lisp
*.png binar binary
*.ico binary
*.zip binary

View file

@ -1,14 +1,49 @@
# /etc/keyd/default.conf
[ids]
*
[main]
# Maps capslock to escape when pressed and control when held.
capslock= overload(control, esc)
enter= overload(control, enter)
backspace= \
\= backspace
tab=overload(alt, tab)
# Maps capslock to escape when pressed and control when held. tab=overload(lt1, tab) # backspace=\
# \=backspace
# backspace=\
# capslock=overload(ctrl,esc)
capslock = overload(control, esc)
tab = overload(lt2, tab)
space = overload(lt1, space)
insert = S-insert
[lt1]
h = left
n = down
e = up
i = right
1 = f1
2 = f2
3 = f3
4 = f4
5 = f5
6 = f6
7 = f7
8 = f8
9 = f9
0 = f10
- = f11
= = f12
k = home
o = end
[ = pageup
] = pagedown
q = ~
w = |
f = &
p = ^
/ = ¿
[lt2]
space = playpause
h = previoussong
i = nextsong
n = volumedown
e = volumeup
k = mute

View file

@ -12,7 +12,6 @@ Places Icons Static Size=22
[MainWindow]
MenuBar=Disabled
ToolBarsMovable=Disabled
[PreviewSettings]
Plugins=appimagethumbnail,audiothumbnail,avif,blenderthumbnail,comicbookthumbnail,cursorthumbnail,djvuthumbnail,ebookthumbnail,exrthumbnail,directorythumbnail,fontthumbnail,heif,imagethumbnail,jpegthumbnail,jxl,kraorathumbnail,windowsexethumbnail,windowsimagethumbnail,mobithumbnail,opendocumentthumbnail,gsthumbnail,rawthumbnail,svgthumbnail,textthumbnail,ffmpegthumbs,gdk-pixbuf-thumbnailer

View file

@ -1,18 +1,5 @@
# $DOTFILES/platforms/linux/kde/elisarc
# Date: 2024-12-22
# Author: js0ny
# Dolphin - KDE Music Player
# Location:
# $XDG_CONFIG_HOME/elisarc
# Linking:
# ln -sf $DOTFILES/platforms/linux/kde/elisarc $XDG_CONFIG_HOME/elisarc
[ElisaFileIndexer]
RootPath[$e]=$HOME/Music
[UiSettings]
ColorScheme=
[Views]
InitialFilesViewPath=/mnt/d/Media/Music

View file

@ -0,0 +1,308 @@
[ActivityManager]
_k_friendly_name=Activity Manager
switch-to-activity-32e1f2d2-08d1-4a8b-886a-0a062f999068=none,none,Switch to activity "Default"
[KDE Keyboard Layout Switcher]
Switch keyboard layout to English (Colemak)=none,none,Switch keyboard layout to English (Colemak)
Switch keyboard layout to English (US)=none,none,Switch keyboard layout to English (US)
Switch to Last-Used Keyboard Layout=Meta+Alt+L,Meta+Alt+L,Switch to Last-Used Keyboard Layout
Switch to Next Keyboard Layout=Meta+Alt+K,Meta+Alt+K,Switch to Next Keyboard Layout
_k_friendly_name=Keyboard Layout Switcher
[Strawberry]
_k_friendly_name=Strawberry
next_track=none,none,Next track
play_pause=none,none,Play/Pause
prev_track=none,none,Previous track
stop=none,none,Stop
[kaccess]
Toggle Screen Reader On and Off=Meta+Alt+S,Meta+Alt+S,Toggle Screen Reader On and Off
_k_friendly_name=Accessibility
[kcm_touchpad]
Disable Touchpad=Touchpad Off,Touchpad Off,
Enable Touchpad=Touchpad On,Touchpad On,
Toggle Touchpad=Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku,Touchpad Toggle\tMeta+Ctrl+Zenkaku Hankaku,
_k_friendly_name=Touchpad
[kmix]
_k_friendly_name=KMix
decrease_microphone_volume=Microphone Volume Down,Microphone Volume Down,Decrease Microphone Volume
decrease_volume=Volume Down,Volume Down,Decrease Volume
decrease_volume_small=Shift+Volume Down,Shift+Volume Down,Decrease Volume by 1%
increase_microphone_volume=Microphone Volume Up,Microphone Volume Up,Increase Microphone Volume
increase_volume=Volume Up,Volume Up,Increase Volume
increase_volume_small=Shift+Volume Up,Shift+Volume Up,Increase Volume by 1%
mic_mute=Microphone Mute\tMeta+Volume Mute,Microphone Mute\tMeta+Volume Mute,Mute Microphone
mute=Volume Mute,Volume Mute,Mute
[krusader]
_k_friendly_name=Krusader
bring_main_window_to_top=Meta+K,Meta+K,Bring Main Window to Top
[ksmserver]
Halt Without Confirmation=none,,Shut Down Without Confirmation
Lock Session=Meta+L\tScreensaver,Meta+L\tScreensaver,Lock Session
Log Out=Ctrl+Alt+Del,Ctrl+Alt+Del,Show Logout Screen
Log Out Without Confirmation=none,,Log Out Without Confirmation
LogOut=none,,Log Out
Reboot=none,,Reboot
Reboot Without Confirmation=none,,Reboot Without Confirmation
Shut Down=none,,Shut Down
_k_friendly_name=Session Management
[kwin]
Activate Window Demanding Attention=Meta+Ctrl+A,Meta+Ctrl+A,Activate Window Demanding Attention
Cycle Overview=none,none,Cycle through Overview and Grid View
Cycle Overview Opposite=none,none,Cycle through Grid View and Overview
Decrease Opacity=none,,Decrease Opacity of Active Window by 5%
Edit Tiles=Meta+T,Meta+T,Toggle Tiles Editor
Expose=Ctrl+F9,Ctrl+F9,Toggle Present Windows (Current desktop)
ExposeAll=Ctrl+F10\tLaunch (C),Ctrl+F10\tLaunch (C),Toggle Present Windows (All desktops)
ExposeClass=Ctrl+F7,Ctrl+F7,Toggle Present Windows (Window class)
ExposeClassCurrentDesktop=none,none,Toggle Present Windows (Window class on current desktop)
Grid View=Meta+G,Meta+G,Toggle Grid View
Increase Opacity=none,,Increase Opacity of Active Window by 5%
Kill Window=Meta+Ctrl+Esc,Meta+Ctrl+Esc,Kill Window
Move Tablet to Next Output=none,none,Move the tablet to the next output
MoveMouseToCenter=Meta+F6,Meta+F6,Move Mouse to Centre
MoveMouseToFocus=Meta+F5,Meta+F5,Move Mouse to Focus
MoveZoomDown=none,none,Move Zoomed Area Downwards
MoveZoomLeft=none,none,Move Zoomed Area to Left
MoveZoomRight=none,none,Move Zoomed Area to Right
MoveZoomUp=none,none,Move Zoomed Area Upwards
Overview=Meta+W,Meta+W,Toggle Overview
Setup Window Shortcut=none,,Setup Window Shortcut
Show Desktop=Meta+D,Meta+D,Peek at Desktop
Switch One Desktop Down=Meta+Ctrl+Down,Meta+Ctrl+Down,Switch One Desktop Down
Switch One Desktop Up=Meta+Ctrl+Up,Meta+Ctrl+Up,Switch One Desktop Up
Switch One Desktop to the Left=Meta+Ctrl+Left,Meta+Ctrl+Left,Switch One Desktop to the Left
Switch One Desktop to the Right=Meta+Ctrl+Right,Meta+Ctrl+Right,Switch One Desktop to the Right
Switch Window Down=Meta+Alt+Down\tMeta+N,Meta+Alt+Down,Switch to Window Below
Switch Window Left=Meta+H\tMeta+Alt+Left,Meta+Alt+Left,Switch to Window to the Left
Switch Window Right=Meta+I\tMeta+Alt+Right,Meta+Alt+Right,Switch to Window to the Right
Switch Window Up=Meta+Alt+Up\tMeta+E,Meta+Alt+Up,Switch to Window Above
Switch to Desktop 1=Meta+F1,Ctrl+F1,Switch to Desktop 1
Switch to Desktop 10=none,,Switch to Desktop 10
Switch to Desktop 11=none,,Switch to Desktop 11
Switch to Desktop 12=none,,Switch to Desktop 12
Switch to Desktop 13=none,,Switch to Desktop 13
Switch to Desktop 14=none,,Switch to Desktop 14
Switch to Desktop 15=none,,Switch to Desktop 15
Switch to Desktop 16=none,,Switch to Desktop 16
Switch to Desktop 17=none,,Switch to Desktop 17
Switch to Desktop 18=none,,Switch to Desktop 18
Switch to Desktop 19=none,,Switch to Desktop 19
Switch to Desktop 2=Meta+F2,Ctrl+F2,Switch to Desktop 2
Switch to Desktop 20=none,,Switch to Desktop 20
Switch to Desktop 3=Meta+F3,Ctrl+F3,Switch to Desktop 3
Switch to Desktop 4=Meta+F4,Ctrl+F4,Switch to Desktop 4
Switch to Desktop 5=none,,Switch to Desktop 5
Switch to Desktop 6=none,,Switch to Desktop 6
Switch to Desktop 7=none,,Switch to Desktop 7
Switch to Desktop 8=none,,Switch to Desktop 8
Switch to Desktop 9=none,,Switch to Desktop 9
Switch to Next Desktop=none,,Switch to Next Desktop
Switch to Next Screen=none,,Switch to Next Screen
Switch to Previous Desktop=none,,Switch to Previous Desktop
Switch to Previous Screen=none,,Switch to Previous Screen
Switch to Screen 0=none,,Switch to Screen 0
Switch to Screen 1=none,,Switch to Screen 1
Switch to Screen 2=none,,Switch to Screen 2
Switch to Screen 3=none,,Switch to Screen 3
Switch to Screen 4=none,,Switch to Screen 4
Switch to Screen 5=none,,Switch to Screen 5
Switch to Screen 6=none,,Switch to Screen 6
Switch to Screen 7=none,,Switch to Screen 7
Switch to Screen Above=none,,Switch to Screen Above
Switch to Screen Below=none,,Switch to Screen Below
Switch to Screen to the Left=none,,Switch to Screen to the Left
Switch to Screen to the Right=none,,Switch to Screen to the Right
Toggle Night Color=none,none,Suspend/Resume Night Light
Toggle Window Raise/Lower=none,,Toggle Window Raise/Lower
Walk Through Windows=Alt+Tab,Alt+Tab,Walk Through Windows
Walk Through Windows (Reverse)=Alt+Shift+Tab,Alt+Shift+Tab,Walk Through Windows (Reverse)
Walk Through Windows Alternative=none,,Walk Through Windows Alternative
Walk Through Windows Alternative (Reverse)=none,,Walk Through Windows Alternative (Reverse)
Walk Through Windows of Current Application=Alt+`,Alt+`,Walk Through Windows of Current Application
Walk Through Windows of Current Application (Reverse)=Alt+~,Alt+~,Walk Through Windows of Current Application (Reverse)
Walk Through Windows of Current Application Alternative=none,,Walk Through Windows of Current Application Alternative
Walk Through Windows of Current Application Alternative (Reverse)=none,,Walk Through Windows of Current Application Alternative (Reverse)
Window Above Other Windows=none,,Keep Window Above Others
Window Below Other Windows=none,,Keep Window Below Others
Window Close=Alt+F4\tMeta+Q,Alt+F4,Close Window
Window Custom Quick Tile Bottom=none,,Custom Quick Tile Window to the Bottom
Window Custom Quick Tile Left=none,,Custom Quick Tile Window to the Left
Window Custom Quick Tile Right=none,,Custom Quick Tile Window to the Right
Window Custom Quick Tile Top=none,,Custom Quick Tile Window to the Top
Window Fullscreen=none,,Make Window Fullscreen
Window Grow Horizontal=none,,Expand Window Horizontally
Window Grow Vertical=none,,Expand Window Vertically
Window Lower=none,,Lower Window
Window Maximize=Meta+Shift+E\tMeta+PgUp,Meta+PgUp,Maximise Window
Window Maximize Horizontal=none,,Maximise Window Horizontally
Window Maximize Vertical=none,,Maximise Window Vertically
Window Minimize=Meta+Shift+N\tMeta+PgDown,Meta+PgDown,Minimise Window
Window Move=none,,Move Window
Window Move Center=none,,Move Window to the Centre
Window No Border=none,,Toggle Window Titlebar and Frame
Window On All Desktops=none,,Keep Window on All Desktops
Window One Desktop Down=Meta+Ctrl+Shift+Down,Meta+Ctrl+Shift+Down,Window One Desktop Down
Window One Desktop Up=Meta+Ctrl+Shift+Up,Meta+Ctrl+Shift+Up,Window One Desktop Up
Window One Desktop to the Left=Meta+Ctrl+Shift+Left,Meta+Ctrl+Shift+Left,Window One Desktop to the Left
Window One Desktop to the Right=Meta+Ctrl+Shift+Right,Meta+Ctrl+Shift+Right,Window One Desktop to the Right
Window One Screen Down=none,,Move Window One Screen Down
Window One Screen Up=none,,Move Window One Screen Up
Window One Screen to the Left=none,,Move Window One Screen to the Left
Window One Screen to the Right=none,,Move Window One Screen to the Right
Window Operations Menu=Alt+F3,Alt+F3,Window Operations Menu
Window Pack Down=none,,Move Window Down
Window Pack Left=none,,Move Window Left
Window Pack Right=none,,Move Window Right
Window Pack Up=none,,Move Window Up
Window Quick Tile Bottom=Meta+Down,Meta+Down,Quick Tile Window to the Bottom
Window Quick Tile Bottom Left=none,,Quick Tile Window to the Bottom Left
Window Quick Tile Bottom Right=none,,Quick Tile Window to the Bottom Right
Window Quick Tile Left=Meta+Left,Meta+Left,Quick Tile Window to the Left
Window Quick Tile Right=Meta+Right,Meta+Right,Quick Tile Window to the Right
Window Quick Tile Top=Meta+Up,Meta+Up,Quick Tile Window to the Top
Window Quick Tile Top Left=none,,Quick Tile Window to the Top Left
Window Quick Tile Top Right=none,,Quick Tile Window to the Top Right
Window Raise=none,,Raise Window
Window Resize=none,,Resize Window
Window Shade=none,,Shade Window
Window Shrink Horizontal=none,,Shrink Window Horizontally
Window Shrink Vertical=none,,Shrink Window Vertically
Window to Desktop 1=none,,Window to Desktop 1
Window to Desktop 10=none,,Window to Desktop 10
Window to Desktop 11=none,,Window to Desktop 11
Window to Desktop 12=none,,Window to Desktop 12
Window to Desktop 13=none,,Window to Desktop 13
Window to Desktop 14=none,,Window to Desktop 14
Window to Desktop 15=none,,Window to Desktop 15
Window to Desktop 16=none,,Window to Desktop 16
Window to Desktop 17=none,,Window to Desktop 17
Window to Desktop 18=none,,Window to Desktop 18
Window to Desktop 19=none,,Window to Desktop 19
Window to Desktop 2=none,,Window to Desktop 2
Window to Desktop 20=none,,Window to Desktop 20
Window to Desktop 3=none,,Window to Desktop 3
Window to Desktop 4=none,,Window to Desktop 4
Window to Desktop 5=none,,Window to Desktop 5
Window to Desktop 6=none,,Window to Desktop 6
Window to Desktop 7=none,,Window to Desktop 7
Window to Desktop 8=none,,Window to Desktop 8
Window to Desktop 9=none,,Window to Desktop 9
Window to Next Desktop=none,,Window to Next Desktop
Window to Next Screen=Meta+Shift+Right,Meta+Shift+Right,Move Window to Next Screen
Window to Previous Desktop=none,,Window to Previous Desktop
Window to Previous Screen=Meta+Shift+Left,Meta+Shift+Left,Move Window to Previous Screen
Window to Screen 0=none,,Move Window to Screen 0
Window to Screen 1=none,,Move Window to Screen 1
Window to Screen 2=none,,Move Window to Screen 2
Window to Screen 3=none,,Move Window to Screen 3
Window to Screen 4=none,,Move Window to Screen 4
Window to Screen 5=none,,Move Window to Screen 5
Window to Screen 6=none,,Move Window to Screen 6
Window to Screen 7=none,,Move Window to Screen 7
_k_friendly_name=KWin
disableInputCapture=Meta+Shift+Esc,Meta+Shift+Esc,Disable Active Input Capture
view_actual_size=Meta+0,Meta+0,Zoom to Actual Size
view_zoom_in=Meta++\tMeta+=,Meta++\tMeta+=,Zoom In
view_zoom_out=Meta+-,Meta+-,Zoom Out
[mediacontrol]
_k_friendly_name=Media Controller
mediavolumedown=none,,Media volume down
mediavolumeup=none,,Media volume up
nextmedia=Media Next,Media Next,Media playback next
pausemedia=Media Pause,Media Pause,Pause media playback
playmedia=none,,Play media playback
playpausemedia=Media Play,Media Play,Play/Pause media playback
previousmedia=Media Previous,Media Previous,Media playback previous
stopmedia=Media Stop,Media Stop,Stop media playback
[org_kde_powerdevil]
Decrease Keyboard Brightness=Keyboard Brightness Down,Keyboard Brightness Down,Decrease Keyboard Brightness
Decrease Screen Brightness=Monitor Brightness Down,Monitor Brightness Down,Decrease Screen Brightness
Decrease Screen Brightness Small=Shift+Monitor Brightness Down,Shift+Monitor Brightness Down,Decrease Screen Brightness by 1%
Hibernate=Hibernate,Hibernate,Hibernate
Increase Keyboard Brightness=Keyboard Brightness Up,Keyboard Brightness Up,Increase Keyboard Brightness
Increase Screen Brightness=Monitor Brightness Up,Monitor Brightness Up,Increase Screen Brightness
Increase Screen Brightness Small=Shift+Monitor Brightness Up,Shift+Monitor Brightness Up,Increase Screen Brightness by 1%
PowerDown=Power Down,Power Down,Power Down
PowerOff=Power Off,Power Off,Power Off
Sleep=Sleep,Sleep,Suspend
Toggle Keyboard Backlight=Keyboard Light On/Off,Keyboard Light On/Off,Toggle Keyboard Backlight
Turn Off Screen=none,none,Turn Off Screen
_k_friendly_name=Power Management
powerProfile=Battery\tMeta+B,Battery\tMeta+B,Switch Power Profile
[plasmashell]
_k_friendly_name=plasmashell
activate application launcher=Meta\tAlt+F1,Meta\tAlt+F1,Activate Application Launcher
activate task manager entry 1=Meta+1,Meta+1,Activate Task Manager Entry 1
activate task manager entry 10=none,,Activate Task Manager Entry 10
activate task manager entry 2=Meta+2,Meta+2,Activate Task Manager Entry 2
activate task manager entry 3=Meta+3,Meta+3,Activate Task Manager Entry 3
activate task manager entry 4=Meta+4,Meta+4,Activate Task Manager Entry 4
activate task manager entry 5=Meta+5,Meta+5,Activate Task Manager Entry 5
activate task manager entry 6=Meta+6,Meta+6,Activate Task Manager Entry 6
activate task manager entry 7=Meta+7,Meta+7,Activate Task Manager Entry 7
activate task manager entry 8=Meta+8,Meta+8,Activate Task Manager Entry 8
activate task manager entry 9=Meta+9,Meta+9,Activate Task Manager Entry 9
activate widget 3=none,none,Activate Application Launcher Widget
clear-history=none,,Clear Clipboard History
clipboard_action=Meta+Ctrl+X,Meta+Ctrl+X,Automatic Action Popup Menu
cycle-panels=Meta+Alt+P,Meta+Alt+P,Move keyboard focus between panels
cycleNextAction=none,,Next History Item
cyclePrevAction=none,,Previous History Item
manage activities=none,Meta+Q,Show Activity Switcher
next activity=Meta+A,none,Walk through activities
previous activity=Meta+Shift+A,none,Walk through activities (Reverse)
repeat_action=none,,Manually Invoke Action on Current Clipboard
show dashboard=Ctrl+F12,Ctrl+F12,Show Desktop
show-barcode=none,,Show Barcode…
show-on-mouse-pos=Meta+V,Meta+V,Show Clipboard Items at Mouse Position
stop current activity=Meta+S,Meta+S,Stop Current Activity
switch to next activity=none,,Switch to Next Activity
switch to previous activity=none,,Switch to Previous Activity
toggle do not disturb=none,,Toggle do not disturb
[services][kitty.desktop]
_launch=Meta+R
[services][net.local.albert.desktop]
_launch=Alt+Space
[services][org.kde.dolphin.desktop]
_launch=Meta+F
[services][org.kde.konsole.desktop]
_launch=none
[services][org.kde.krunner.desktop]
_launch=Alt+F2\tSearch
[services][org.kde.kscreen.desktop]
ShowOSD=Display
[services][org.kde.spectacle.desktop]
RecordRegion=Meta+Shift+R
RectangularRegionScreenShot=Meta+C
[wacomtablet]
Map to fullscreen=Meta+Ctrl+F,Meta+Ctrl+F,Map to fullscreen
Map to screen 1=Meta+Ctrl+1,Meta+Ctrl+1,Map to screen 1
Map to screen 2=Meta+Ctrl+2,Meta+Ctrl+2,Map to screen 2
Next Profile=Meta+Ctrl+N,Meta+Ctrl+N,Next profile
Previous Profile=Meta+Ctrl+P,Meta+Ctrl+P,Previous Profile
Toggle screen map selection=Meta+Ctrl+M,Meta+Ctrl+M,Toggle between all screens
Toggle stylus mode=Meta+Ctrl+S,Meta+Ctrl+S,Toggle the Stylus Tool Relative/Absolute
Toggle touch tool=Meta+Ctrl+T,Meta+Ctrl+T,Enable/Disable the Touch Tool
_k_friendly_name=Wacom Tablet
[yakuake]
_k_friendly_name=Yakuake
toggle-window-state=Meta+`,F12,Open/Retract Yakuake

View file

@ -1,3 +1,4 @@
// vim:foldmethod=marker:foldmarker=#region,#endregion:foldlevel=0
// Paste this into surfingkeys advanced settings
// or use:
// Load settings from: https://raw.githubusercontent.com/js0ny/dotfiles/refs/heads/master/tools/browser/surfingkeys.js
@ -114,7 +115,8 @@ const vColemak = {
const forwardFactory = {
push: function (mapLists) {
// forward original keys
for (const key in mapLists) { // `const` better than `let`
for (const key in mapLists) {
// `const` better than `let`
forward.add(mapLists[key]);
}
},
@ -309,8 +311,16 @@ const searchAliases = [
["ud", "UrbanDictionary", "https://www.urbandictionary.com/define.php?term="],
["wa", "WolframAlpha", "https://www.wolframalpha.com/input/?i="],
["wg", "winget", "https://winget.ragerworks.com/search/all/"],
["wk", "Wikipedia", "https://en.wikipedia.org/w/index.php?title=Special:Search&search="],
["ww", "WantWords", "https://www.shenyandayi.com/wantWordsResult?lang=zh&query="],
[
"wk",
"Wikipedia",
"https://en.wikipedia.org/w/index.php?title=Special:Search&search=",
],
[
"ww",
"WantWords",
"https://www.shenyandayi.com/wantWordsResult?lang=zh&query=",
],
["yt", "YouTube", "https://www.youtube.com/results?search_query="],
];
@ -329,9 +339,14 @@ mapkey("yY", "yank link without parameter", function () {
});
// #region bilibili.com
mapkey(",n", "[n]ext Video", function () {
window.location.href = q("div.next-play").querySelector("a").href
}, { domain: /bilibili.com/ });
mapkey(
",n",
"[n]ext Video",
function () {
window.location.href = q("div.next-play").querySelector("a").href;
},
{ domain: /bilibili.com/ },
);
// #endregion
// #region chatgpt.com
@ -352,50 +367,130 @@ mapkey(",s", "Start/Stop Generating", chatgptStartStop, {
// #endregion
// #region chat.deepseek.com
mapkey(",s", "Toggle Sidebar", function () {
mapkey(
",s",
"Toggle Sidebar",
function () {
var btn = qs("div.ds-icon-button");
btn[0].click();
}, { domain: /chat.deepseek.com/ });
mapkey(",e", "[e]dit last input", function () {
},
{ domain: /chat.deepseek.com/ },
);
mapkey(
",e",
"[e]dit last input",
function () {
var btn = qs("div.ds-icon-button");
btn[btn.length - 5].click();
}, { domain: /chat.deepseek.com/ });
mapkey(",y", "[y]ank last oupput", function () {
},
{ domain: /chat.deepseek.com/ },
);
mapkey(
",y",
"[y]ank last oupput",
function () {
var btn = qs("div.ds-icon-button");
btn[btn.length - 4].click();
}, { domain: /chat.deepseek.com/ });
mapkey(",r", "[r]egenerate last output", function () {
},
{ domain: /chat.deepseek.com/ },
);
mapkey(
",r",
"[r]egenerate last output",
function () {
var btn = qs("div.ds-icon-button");
btn[btn.length - 3].click();
}, { domain: /chat.deepseek.com/ });
mapkey(",n", "[n]ew Chat", function () {
},
{ domain: /chat.deepseek.com/ },
);
mapkey(
",n",
"[n]ew Chat",
function () {
window.location.href = "https://chat.deepseek.com/";
}, { domain: /chat.deepseek.com/ });
mapkey(",t", "Toggle co[t](R1)", function () {
},
{ domain: /chat.deepseek.com/ },
);
mapkey(
",t",
"Toggle co[t](R1)",
function () {
var btns = qs("div.ds-button");
btns[0].click();
}, { domain: /chat.deepseek.com/ });
mapkey(",w", "Toggle [w]eb Search", function () {
},
{ domain: /chat.deepseek.com/ },
);
mapkey(
",w",
"Toggle [w]eb Search",
function () {
var btns = qs("div.ds-button");
btns[1].click();
}, { domain: /chat.deepseek.com/ });
},
{ domain: /chat.deepseek.com/ },
);
// #endregion
//#region dropbox.com
//https://www.dropbox.com/scl/fi/u58c2qmqbwq672y3hwmfn/setup.sh?rlkey=d3figouv5eqk1xfwdtyzfr7ua&e=1&st=ehttmy2r&dl=0
//https://dl.dropboxusercontent.com/scl/fi/u58c2qmqbwq672y3hwmfn/setup.sh?rlkey=d3figouv5eqk1xfwdtyzfr7ua&e=1&st=ehttmy2r
mapkey(
",r",
"Extract [r]aw link",
function () {
const url = new URL(window.location.href);
if (url.href.endsWith("&dl=0")) {
url.searchParams.delete("dl");
url.hostname = "dl.dropboxusercontent.com";
Clipboard.write(url.href);
}
},
{ domain: /dropbox.com/ },
);
mapkey(
",d",
"Extract [d]aw link",
function () {
const url = new URL(window.location.href);
if (url.href.endsWith("&dl=0")) {
url.searchParams.set("dl", "1");
Clipboard.write(url.href);
}
},
{ domain: /dropbox.com/ },
);
//#endregion
// #region app.follow.is
mapkey(",t", "Toggle ", function () {
mapkey(
",t",
"Toggle ",
function () {
var btn = qs("button.no-drag-region");
btn[btn.length - 4].click();
}, { domain: /app.follow.is/ });
},
{ domain: /app.follow.is/ },
);
mapkey(",a", "Toggle AI Summary", function () {
mapkey(
",a",
"Toggle AI Summary",
function () {
var btn = qs("button.no-drag-region");
btn[btn.length - 3].click();
}, { domain: /app.follow.is/ });
},
{ domain: /app.follow.is/ },
);
mapkey(",o", "Toggle Original Website", function () {
mapkey(
",o",
"Toggle Original Website",
function () {
var btn = qs("button.no-drag-region");
btn[btn.length - 4].click();
}, { domain: /app.follow.is/ });
},
{ domain: /app.follow.is/ },
);
// #endregion
// #region GitHub
@ -410,77 +505,137 @@ gh.rawToSource = (url) => {
return gh.sourceLink(ps[0], ps[1], ps.slice(4).join("/"));
};
// github.com
mapkey(",e", "Use Web Editor", function () {
mapkey(
",e",
"Use Web Editor",
function () {
const url = new URL(window.location.href);
url.hostname = "github.dev";
window.location.href = url.href;
}, { domain: /github.com/ });
mapkey(",E", "Use Web Editor (New Page)", function () {
},
{ domain: /github.com/ },
);
mapkey(
",E",
"Use Web Editor (New Page)",
function () {
const url = new URL(window.location.href);
url.hostname = "github.dev";
tabOpenLink(url.href);
}, { domain: /github.com/ });
mapkey(",p", "Switch to GitHub Page", function () {
},
{ domain: /github.com/ },
);
mapkey(
",p",
"Switch to GitHub Page",
function () {
href = window.location.href;
owner = href.split("/")[3];
repo = href.split("/")[4];
window.location.href = gh.pageLink(owner, repo);
}, { domain: /github.com/ });
},
{ domain: /github.com/ },
);
/// This might be useful for Vim plugins
mapkey(",y", "[y]ank short refeference owner/repo", function () {
mapkey(
",y",
"[y]ank short refeference owner/repo",
function () {
const href = window.location.href;
owner = href.split("/")[3];
repo = href.split("/")[4];
Clipboard.write(`${owner}/${repo}`);
}, { domain: /github.com/ });
},
{ domain: /github.com/ },
);
// github.dev
mapkey(",r", "Switch to GitHub Repo", function () {
mapkey(
",r",
"Switch to GitHub Repo",
function () {
const url = new URL(window.location.href);
url.hostname = "github.com";
window.location.href = url.href;
}, { domain: /github.dev/ });
},
{ domain: /github.dev/ },
);
// github.io
mapkey(",r", "Switch to GitHub Repo", function () {
mapkey(
",r",
"Switch to GitHub Repo",
function () {
const href = window.location.href;
owner = href.split("/")[2].split(".")[0];
repo = href.split("/")[3];
tabOpenLink(gh.repoLink(owner, repo));
}, { domain: /github.io/ });
mapkey(",R", "Go to GitHub Repo (New tab)", function () {
},
{ domain: /github.io/ },
);
mapkey(
",R",
"Go to GitHub Repo (New tab)",
function () {
const href = window.location.href;
owner = href.split("/")[2].split(".")[0];
repo = href.split("/")[3];
tabOpenLink(gh.repoLink(owner, repo));
}, { domain: /github.io/ });
},
{ domain: /github.io/ },
);
// raw.githubusercontent.com
mapkey(",r", "Switch to GitHub Repo", function () {
mapkey(
",r",
"Switch to GitHub Repo",
function () {
const url = new URL(window.location.href);
var owner, repo;
owner, repo = url.pathname.split("/").slice(1, 3);
owner, (repo = url.pathname.split("/").slice(1, 3));
window.location.href = gh.repoLink(owner, repo);
}, { domain: /raw.githubusercontent.com/ });
mapkey(",R", "Switch to GitHub Repo", function () {
},
{ domain: /raw.githubusercontent.com/ },
);
mapkey(
",R",
"Switch to GitHub Repo",
function () {
const url = new URL(window.location.href);
var owner, repo;
owner, repo = url.pathname.split("/").slice(1, 3);
owner, (repo = url.pathname.split("/").slice(1, 3));
tabOpenLink(gh.repoLink(owner, repo));
}, { domain: /raw.githubusercontent.com/ });
mapkey(",s", "Open Source in GitHub", function () {
},
{ domain: /raw.githubusercontent.com/ },
);
mapkey(
",s",
"Open Source in GitHub",
function () {
window.location.href = gh.rawToSource(window.location.href);
}, { domain: /raw.githubusercontent.com/ });
mapkey(",S", "Open Source in GitHub (New Page)", function () {
},
{ domain: /raw.githubusercontent.com/ },
);
mapkey(
",S",
"Open Source in GitHub (New Page)",
function () {
tabOpenLink(gh.rawToSource(window.location.href));
}, { domain: /raw.githubusercontent.com/ });
},
{ domain: /raw.githubusercontent.com/ },
);
// #endregion GitHub
//#region app.microsoft.com
// https://apps.microsoft.com/detail/9nl6kd1h33v3?hl=en-GB&gl=GB
// This is useful in `winget` (Windows Package Manager)
mapkey(",y", "[y]ank app id", function () {
mapkey(
",y",
"[y]ank app id",
function () {
const url = new URL(window.location.href);
const id = url.pathname.split("/")[2];
Clipboard.write(id);
}, { domain: /apps.microsoft.com/ });
},
{ domain: /apps.microsoft.com/ },
);
//#endregion
// #region perplexity.ai
@ -490,52 +645,94 @@ mapkey(",y", "[y]ank app id", function () {
* 2 - 社交
*/
unmap("<Ctrl-i>", /perplexity.ai/); // allows to use perplexity web keybindings
mapkey(",b", "Add Perplexity [b]ookmark", function () {
mapkey(
",b",
"Add Perplexity [b]ookmark",
function () {
// button.border:nth-child(2)
q("div.sticky.left-0").querySelectorAll("button")[2].click()
}, { domain: /perplexity.ai/ });
mapkey(",w", "Toggle [w]riting/[w]eb Search", function () {
q("div.rounded-md").querySelectorAll("span")[1].click()
setTimeout(() => { // Wait for the DOM to update
q("div.sticky.left-0").querySelectorAll("button")[2].click();
},
{ domain: /perplexity.ai/ },
);
mapkey(
",w",
"Toggle [w]riting/[w]eb Search",
function () {
q("div.rounded-md").querySelectorAll("span")[1].click();
setTimeout(() => {
// Wait for the DOM to update
qs("div.shadow-subtle div.group\\/item")[0].click();
}, 100);
}, { domain: /perplexity.ai/ });
mapkey(",s", "[s]tart Generating", function () {
},
{ domain: /perplexity.ai/ },
);
mapkey(
",s",
"[s]tart Generating",
function () {
var btns = qs("span.grow button");
btns[btns.length - 1].click();
}, { domain: /perplexity.ai/ });
mapkey(",y", "[y]ank Last Output", function () {
},
{ domain: /perplexity.ai/ },
);
mapkey(
",y",
"[y]ank Last Output",
function () {
var toolbars = qs("div.mt-sm");
var last = toolbars[toolbars.length - 1];
var btns = last.querySelectorAll("button");
btns[5].click();
}, { domain: /perplexity.ai/ });
mapkey(",r", "Change model to [r]egenerate last output", function () {
},
{ domain: /perplexity.ai/ },
);
mapkey(
",r",
"Change model to [r]egenerate last output",
function () {
var toolbars = qs("div.mt-sm");
var last = toolbars[toolbars.length - 1];
var btns = last.querySelectorAll("button");
btns[1].click();
}, { domain: /perplexity.ai/ });
mapkey(",R", "Toggle [R]easoning with [R]1", function () {
},
{ domain: /perplexity.ai/ },
);
mapkey(
",R",
"Toggle [R]easoning with [R]1",
function () {
var btns = qs("span.grow button");
btns[0].click();
setTimeout(() => { // Wait for the DOM to update
setTimeout(() => {
// Wait for the DOM to update
qs("div.shadow-subtle div.group\\/item")[2].click();
qs("div.group\\/item")[2].click() // Mobile view
qs("div.group\\/item")[2].click(); // Mobile view
}, 100);
}, { domain: /perplexity.ai/ });
},
{ domain: /perplexity.ai/ },
);
// #endregion
// #region sspai.com
unmap("[[", /sspai.com/);
unmap("]]", /sspai.com/);
unmap(",", /sspai.com/);
mapkey("[[", "Previous Page", function () {
mapkey(
"[[",
"Previous Page",
function () {
q("button.btn-prev").click();
}, { domain: /sspai.com/ });
mapkey("]]", "Next Page", function () {
},
{ domain: /sspai.com/ },
);
mapkey(
"]]",
"Next Page",
function () {
q("button.btn-next").click();
}, { domain: /sspai.com/ });
},
{ domain: /sspai.com/ },
);
// #endregion
@ -544,9 +741,12 @@ mapkey("]]", "Next Page", function () {
unmap("[[", /pixiv.net/);
unmap("]]", /pixiv.net/);
unmap(",", /pixiv.net/);
const isArtwork = (url) => /pixiv.net\/artworks/.test(url.href)
const isArtwork = (url) => /pixiv.net\/artworks/.test(url.href);
mapkey("[[", "Previous Page", function () {
mapkey(
"[[",
"Previous Page",
function () {
const url = new URL(window.location.href);
if (url.href === url.origin) {
return;
@ -555,9 +755,14 @@ mapkey("[[", "Previous Page", function () {
const newPage = page ? parseInt(page) - 1 : 1;
url.searchParams.set("p", newPage);
window.location.href = url.href;
}, { domain: /pixiv.net/ });
},
{ domain: /pixiv.net/ },
);
mapkey("]]", "Next Page", function () {
mapkey(
"]]",
"Next Page",
function () {
const url = new URL(window.location.href);
if (url.href === url.origin) {
return;
@ -566,55 +771,111 @@ mapkey("]]", "Next Page", function () {
const newPage = page ? parseInt(page) + 1 : 2;
url.searchParams.set("p", newPage);
window.location.href = url.href;
}, { domain: /pixiv.net/ });
mapkey(",b", "Add to [b]ookmark", function () {
},
{ domain: /pixiv.net/ },
);
mapkey(
",b",
"Add to [b]ookmark",
function () {
const url = new URL(window.location.href);
if (!isArtwork(url)) { return; }
const toolbar = q('section [class$="Toolbar"]')
toolbar.querySelectorAll("div")[2].querySelector("button").click()
}, { domain: /pixiv.net/ });
mapkey(",B", "Add to private [B]ookmark", function () {
if (!isArtwork(url)) {
return;
}
const toolbar = q('section [class$="Toolbar"]');
toolbar.querySelectorAll("div")[2].querySelector("button").click();
},
{ domain: /pixiv.net/ },
);
mapkey(
",B",
"Add to private [B]ookmark",
function () {
const url = new URL(window.location.href);
if (!isArtwork(url)) { return; }
const toolbar = q('section [class$="Toolbar"]')
toolbar.querySelectorAll("div")[0].querySelector("button").click()
setTimeout(() => { // Wait for the DOM to update
q("div[role=menu]").querySelector("li").click()
if (!isArtwork(url)) {
return;
}
const toolbar = q('section [class$="Toolbar"]');
toolbar.querySelectorAll("div")[0].querySelector("button").click();
setTimeout(() => {
// Wait for the DOM to update
q("div[role=menu]").querySelector("li").click();
}, 100);
}, { domain: /pixiv.net/ });
mapkey(",v", "Up[v]ote Artwork", function () {
},
{ domain: /pixiv.net/ },
);
mapkey(
",v",
"Up[v]ote Artwork",
function () {
const url = new URL(window.location.href);
if (!isArtwork(url)) { return; }
const toolbar = q('section [class$="Toolbar"]')
toolbar.querySelectorAll("div")[3].querySelector("button").click()
}, { domain: /pixiv.net/ });
mapkey(",f", "Toggle [f]ollow the author", function () {
const url = new URL(window.location.href)
if (!isArtwork(url)) { return; }
q("aside").querySelector("section").querySelector("button").click()
}, { domain: /pixiv.net/ });
if (!isArtwork(url)) {
return;
}
const toolbar = q('section [class$="Toolbar"]');
toolbar.querySelectorAll("div")[3].querySelector("button").click();
},
{ domain: /pixiv.net/ },
);
mapkey(
",f",
"Toggle [f]ollow the author",
function () {
const url = new URL(window.location.href);
if (!isArtwork(url)) {
return;
}
q("aside").querySelector("section").querySelector("button").click();
},
{ domain: /pixiv.net/ },
);
// #endregion
// #region youtube.com
mapkey(",n", "[n]ext Video", function () {
window.location.href = q("ytd-compact-video-renderer").querySelector("a").href
}, { domain: /youtube.com/ });
mapkey(
",n",
"[n]ext Video",
function () {
window.location.href = q("ytd-compact-video-renderer").querySelector(
"a",
).href;
},
{ domain: /youtube.com/ },
);
mapkey(",v", "Up[v]ote Video", function () {
qs("like-button-view-model")[0].querySelector("button").click()
}, { domain: /youtube.com/ });
mapkey(
",v",
"Up[v]ote Video",
function () {
qs("like-button-view-model")[0].querySelector("button").click();
},
{ domain: /youtube.com/ },
);
mapkey(",V", "Down[v]ote Video", function () {
qs("dislike-button-view-model")[0].querySelector("button").click()
}, { domain: /youtube.com/ });
mapkey(
",V",
"Down[v]ote Video",
function () {
qs("dislike-button-view-model")[0].querySelector("button").click();
},
{ domain: /youtube.com/ },
);
// class="ytp-subtitles-button ytp-button"
mapkey(",c", "toggle [c]aptions", function () {
q("button.ytp-subtitles-button").click()
}, { domain: /youtube.com/ });
mapkey(
",c",
"toggle [c]aptions",
function () {
q("button.ytp-subtitles-button").click();
},
{ domain: /youtube.com/ },
);
// #endregion
//#region zhihu.com
mapkey(",d", "Toggle [d]ark mode", function () {
mapkey(
",d",
"Toggle [d]ark mode",
function () {
const url = new URL(window.location.href);
if (url.searchParams.get("theme") === "dark") {
url.searchParams.set("theme", "light");
@ -622,7 +883,9 @@ mapkey(",d", "Toggle [d]ark mode", function () {
url.searchParams.set("theme", "dark");
}
window.location.href = url.href;
}, { domain: /zhihu.com/ });
},
{ domain: /zhihu.com/ },
);
//#endregion
// #endregion

View file

@ -2,7 +2,12 @@
local M = {}
-- TODO: Change the palatte when the colorscheme changes
M.scheme = require("catppuccin.palettes.mocha")
if vim.g.colors_name == "catppuccin-latte" then
M.scheme = require("catppuccin.palettes.latte")
else
M.scheme = require("catppuccin.palettes.mocha")
end
M.accent = M.scheme.lavender

View file

@ -1,19 +1,17 @@
return {
{ import = "plugins.mod.nvim-cmp" },
{
"saadparwaiz1/cmp_luasnip"
"saadparwaiz1/cmp_luasnip",
},
{
"L3MON4D3/LuaSnip",
build = "make install_jsregexp",
config = function()
require("luasnip.loaders.from_vscode").load_standalone(
{
path = "~/.config/zed/snippets/c.json" }
)
require("luasnip.loaders.from_vscode").lazy_load({ paths = "~/.config/lsp-snippets" })
-- require("luasnip.loaders.from_vscode").lazy_load()
end,
-- TODO: Remove this, simply delete this will let nvim-cmp not work
dependencies = { "rafamadriz/friendly-snippets" },
-- dependencies = { "rafamadriz/friendly-snippets" },
},
{
"zbirenbaum/copilot-cmp",

View file

@ -2,7 +2,7 @@ local lualine = require("lualine")
-- Color table for highlights
local colors = require("config.colors")
-- local colors = require("config.colors")
local components = require("plugins.mod.lualine.components")
--[[
@ -19,39 +19,40 @@ local config = {
-- Disable sections and component separators
component_separators = { left = "", right = "" },
section_separators = { left = "", right = "" },
theme = {
-- We are going to use lualine_c an lualine_x as left and
-- right section. Both are highlighted by c theme . So we
-- are just setting default looks o statusline
-- normal = { c = { fg = colors.mantle, bg = colors.mantle } },
-- visual = { c = { fg = colors.mantle, bg = colors.mauve } },
-- normal = { c = { fg = colors.mantle, bg = colors.sapphire } },
inactive = { c = { fg = colors.mantle, bg = colors.mantle } },
normal = {
a = {
fg = colors.scheme.mantle,
bg = colors.mode.n,
},
b = {
bg = colors.scheme.surface2,
},
c = {
bg = colors.scheme.crust,
},
},
visual = {
a = {
fg = colors.scheme.mantle,
bg = colors.mode.v,
},
},
insert = {
a = {
fg = colors.scheme.mantle,
bg = colors.mode.i,
},
},
},
theme = "catppuccin",
-- theme = {
-- -- We are going to use lualine_c an lualine_x as left and
-- -- right section. Both are highlighted by c theme . So we
-- -- are just setting default looks o statusline
-- -- normal = { c = { fg = colors.mantle, bg = colors.mantle } },
-- -- visual = { c = { fg = colors.mantle, bg = colors.mauve } },
-- -- normal = { c = { fg = colors.mantle, bg = colors.sapphire } },
-- inactive = { c = { fg = colors.mantle, bg = colors.mantle } },
-- normal = {
-- a = {
-- fg = colors.scheme.mantle,
-- bg = colors.mode.n,
-- },
-- b = {
-- bg = colors.scheme.surface2,
-- },
-- c = {
-- bg = colors.scheme.crust,
-- },
-- },
-- visual = {
-- a = {
-- fg = colors.scheme.mantle,
-- bg = colors.mode.v,
-- },
-- },
-- insert = {
-- a = {
-- fg = colors.scheme.mantle,
-- bg = colors.mode.i,
-- },
-- },
-- },
},
sections = {
-- these are to remove the defaults

View file

@ -2,12 +2,32 @@ local wezterm = require("wezterm")
local os_type = require("utils").detected_os
local color = require("color")
-- https://wezterm.org/config/lua/wezterm.gui/get_appearance.html
-- wezterm.gui is not available to the mux server, so take care to
-- do something reasonable when this config is evaluated by the mux
local function get_appearance()
if wezterm.gui then
return wezterm.gui.get_appearance()
end
return "Dark"
end
local function scheme_for_appearance(appearance)
if appearance:find("Dark") then
print("Dark")
return "Catppuccin Mocha"
else
print("Light")
return "Catppuccin Latte"
end
end
return function(config)
config.max_fps = 120
config.font = wezterm.font({
family = "JetBrainsMono Nerd Font",
})
config.color_scheme = "Catppuccin Mocha"
config.color_scheme = scheme_for_appearance(get_appearance())
config.font_size = 12.0
config.front_end = "WebGpu"
config.webgpu_power_preference = "HighPerformance"