mirror of
https://github.com/AIPexStudio/AIPex.git
synced 2026-05-22 14:24:54 +00:00
Prettier
This commit is contained in:
1
.prettierrc.json
Normal file
1
.prettierrc.json
Normal file
@@ -0,0 +1 @@
|
||||
{}
|
||||
22
README.md
22
README.md
@@ -1,4 +1,5 @@
|
||||
# Omni
|
||||
|
||||

|
||||
<br>
|
||||
<br>
|
||||
@@ -11,30 +12,34 @@ With Omni you can use Chrome like a pro. Manage tabs, bookmarks, your browser hi
|
||||
Made by [Alyssa X](https://alyssax.com)
|
||||
|
||||
## Table of contents
|
||||
|
||||
- [Features](#features)
|
||||
- [Controlling the interface](#controlling-the-interface)
|
||||
- [Opening Omni](#opening-omni)
|
||||
- [Closing Omni](#closing-omni)
|
||||
- [Switching between dark and light mode](#switching-between-dark-and-light-mode)
|
||||
- [Opening Omni](#opening-omni)
|
||||
- [Closing Omni](#closing-omni)
|
||||
- [Switching between dark and light mode](#switching-between-dark-and-light-mode)
|
||||
- [List of commands](#list-of-commands)
|
||||
- [Libraries used](#libraries-used)
|
||||
|
||||
## Features
|
||||
|
||||
🗄 Switch, open, close, and search your tabs<br> 📚 Browse and manage your bookmarks<br> 🔍 Search your browsing history<br> ⚡️ 50+ actions to improve your productivity<br> 🔮 Special commands to filter and perform more actions<br> 🧩 Integrations with Notion, Figma, Docs, Asana...<br> ⌨️ Shortcuts for actions such as muting, pinning, bookmarking...<br> ⚙️ Advanced settings to help troubleshoot browsing issues<br> 🌙 Dark mode<br> ...and much more - all for free & no sign in needed!
|
||||
|
||||
## Controlling the interface
|
||||
|
||||
### Opening Omni
|
||||
|
||||
To open Omni, simply press `⌘+K` on Mac or `Ctrl+K` on Windows. You can change the shortcut by going to chrome://extensions/shortcuts.
|
||||
To open Omni, simply press `⌘+K` on Mac or `Ctrl+K` on Windows. You can change the shortcut by going to chrome://extensions/shortcuts.
|
||||
|
||||
Alternatively you can click on the extension icon in the toolbar to toggle it.
|
||||
|
||||
### Closing Omni
|
||||
|
||||
To close Omni you can press `Esc`, click on the background, or press the extension icon.
|
||||
|
||||
### Switching between dark and light mode
|
||||
The dark and light theme in Omni is tied to your system's theme.
|
||||
|
||||
The dark and light theme in Omni is tied to your system's theme.
|
||||
|
||||
On Mac you can change the theme by clicking on the Apple menu (on the top left), opening the System preferences, going into the General section, and then choosing between dark, light, or auto.
|
||||
|
||||
@@ -43,6 +48,7 @@ On Windows it depends on the OS version. [Here is a guide for Windows 11 and 10.
|
||||
After switching the theme you might need to restart Chrome.
|
||||
|
||||
## List of commands
|
||||
|
||||
You can use a variety of commands with Omni to perform actions or filter your results.
|
||||
|
||||
- **/tabs**: Search your tabs
|
||||
@@ -53,6 +59,8 @@ You can use a variety of commands with Omni to perform actions or filter your re
|
||||
|
||||
## Libraries used
|
||||
|
||||
- [jQuery](https://jquery.com/) - for better event handling and DOM manipulation
|
||||
- [jQuery](https://jquery.com/) - for better event handling and DOM manipulation
|
||||
|
||||
#
|
||||
Feel free to reach out to me through email at hi@alyssax.com or [on Twitter](https://twitter.com/alyssaxuu) if you have any questions or feedback! Hope you find this useful 💜
|
||||
|
||||
Feel free to reach out to me through email at hi@alyssax.com or [on Twitter](https://twitter.com/alyssaxuu) if you have any questions or feedback! Hope you find this useful 💜
|
||||
|
||||
117
src/assets/jquery.nice-select.min.js
vendored
117
src/assets/jquery.nice-select.min.js
vendored
@@ -1,4 +1,119 @@
|
||||
/* jQuery Nice Select - v1.0
|
||||
https://github.com/hernansartorio/jquery-nice-select
|
||||
Made by Hernán Sartorio */
|
||||
!function(e){e.fn.niceSelect=function(t){function s(t){t.after(e("<div></div>").addClass("nice-select").addClass(t.attr("class")||"").addClass(t.attr("disabled")?"disabled":"").attr("tabindex",t.attr("disabled")?null:"0").html('<span class="current"></span><ul class="list"></ul>'));var s=t.next(),n=t.find("option"),i=t.find("option:selected");s.find(".current").html(i.data("display")||i.text()),n.each(function(t){var n=e(this),i=n.data("display");s.find("ul").append(e("<li></li>").attr("data-value",n.val()).attr("data-display",i||null).addClass("option"+(n.is(":selected")?" selected":"")+(n.is(":disabled")?" disabled":"")).html(n.text()))})}if("string"==typeof t)return"update"==t?this.each(function(){var t=e(this),n=e(this).next(".nice-select"),i=n.hasClass("open");n.length&&(n.remove(),s(t),i&&t.next().trigger("click"))}):"destroy"==t?(this.each(function(){var t=e(this),s=e(this).next(".nice-select");s.length&&(s.remove(),t.css("display",""))}),0==e(".nice-select").length&&e(document).off(".nice_select")):console.log('Method "'+t+'" does not exist.'),this;this.hide(),this.each(function(){var t=e(this);t.next().hasClass("nice-select")||s(t)}),e(document).off(".nice_select"),e(document).on("click.nice_select",".nice-select",function(t){var s=e(this);e(".nice-select").not(s).removeClass("open"),s.toggleClass("open"),s.hasClass("open")?(s.find(".option"),s.find(".focus").removeClass("focus"),s.find(".selected").addClass("focus")):s.focus()}),e(document).on("click.nice_select",function(t){0===e(t.target).closest(".nice-select").length&&e(".nice-select").removeClass("open").find(".option")}),e(document).on("click.nice_select",".nice-select .option:not(.disabled)",function(t){var s=e(this),n=s.closest(".nice-select");n.find(".selected").removeClass("selected"),s.addClass("selected");var i=s.data("display")||s.text();n.find(".current").text(i),n.prev("select").val(s.data("value")).trigger("change")}),e(document).on("keydown.nice_select",".nice-select",function(t){var s=e(this),n=e(s.find(".focus")||s.find(".list .option.selected"));if(32==t.keyCode||13==t.keyCode)return s.hasClass("open")?n.trigger("click"):s.trigger("click"),!1;if(40==t.keyCode){if(s.hasClass("open")){var i=n.nextAll(".option:not(.disabled)").first();i.length>0&&(s.find(".focus").removeClass("focus"),i.addClass("focus"))}else s.trigger("click");return!1}if(38==t.keyCode){if(s.hasClass("open")){var l=n.prevAll(".option:not(.disabled)").first();l.length>0&&(s.find(".focus").removeClass("focus"),l.addClass("focus"))}else s.trigger("click");return!1}if(27==t.keyCode)s.hasClass("open")&&s.trigger("click");else if(9==t.keyCode&&s.hasClass("open"))return!1});var n=document.createElement("a").style;return n.cssText="pointer-events:auto","auto"!==n.pointerEvents&&e("html").addClass("no-csspointerevents"),this}}(jQuery);
|
||||
!(function (e) {
|
||||
e.fn.niceSelect = function (t) {
|
||||
function s(t) {
|
||||
t.after(
|
||||
e("<div></div>")
|
||||
.addClass("nice-select")
|
||||
.addClass(t.attr("class") || "")
|
||||
.addClass(t.attr("disabled") ? "disabled" : "")
|
||||
.attr("tabindex", t.attr("disabled") ? null : "0")
|
||||
.html('<span class="current"></span><ul class="list"></ul>')
|
||||
);
|
||||
var s = t.next(),
|
||||
n = t.find("option"),
|
||||
i = t.find("option:selected");
|
||||
s.find(".current").html(i.data("display") || i.text()),
|
||||
n.each(function (t) {
|
||||
var n = e(this),
|
||||
i = n.data("display");
|
||||
s.find("ul").append(
|
||||
e("<li></li>")
|
||||
.attr("data-value", n.val())
|
||||
.attr("data-display", i || null)
|
||||
.addClass(
|
||||
"option" +
|
||||
(n.is(":selected") ? " selected" : "") +
|
||||
(n.is(":disabled") ? " disabled" : "")
|
||||
)
|
||||
.html(n.text())
|
||||
);
|
||||
});
|
||||
}
|
||||
if ("string" == typeof t)
|
||||
return (
|
||||
"update" == t
|
||||
? this.each(function () {
|
||||
var t = e(this),
|
||||
n = e(this).next(".nice-select"),
|
||||
i = n.hasClass("open");
|
||||
n.length && (n.remove(), s(t), i && t.next().trigger("click"));
|
||||
})
|
||||
: "destroy" == t
|
||||
? (this.each(function () {
|
||||
var t = e(this),
|
||||
s = e(this).next(".nice-select");
|
||||
s.length && (s.remove(), t.css("display", ""));
|
||||
}),
|
||||
0 == e(".nice-select").length && e(document).off(".nice_select"))
|
||||
: console.log('Method "' + t + '" does not exist.'),
|
||||
this
|
||||
);
|
||||
this.hide(),
|
||||
this.each(function () {
|
||||
var t = e(this);
|
||||
t.next().hasClass("nice-select") || s(t);
|
||||
}),
|
||||
e(document).off(".nice_select"),
|
||||
e(document).on("click.nice_select", ".nice-select", function (t) {
|
||||
var s = e(this);
|
||||
e(".nice-select").not(s).removeClass("open"),
|
||||
s.toggleClass("open"),
|
||||
s.hasClass("open")
|
||||
? (s.find(".option"),
|
||||
s.find(".focus").removeClass("focus"),
|
||||
s.find(".selected").addClass("focus"))
|
||||
: s.focus();
|
||||
}),
|
||||
e(document).on("click.nice_select", function (t) {
|
||||
0 === e(t.target).closest(".nice-select").length &&
|
||||
e(".nice-select").removeClass("open").find(".option");
|
||||
}),
|
||||
e(document).on(
|
||||
"click.nice_select",
|
||||
".nice-select .option:not(.disabled)",
|
||||
function (t) {
|
||||
var s = e(this),
|
||||
n = s.closest(".nice-select");
|
||||
n.find(".selected").removeClass("selected"), s.addClass("selected");
|
||||
var i = s.data("display") || s.text();
|
||||
n.find(".current").text(i),
|
||||
n.prev("select").val(s.data("value")).trigger("change");
|
||||
}
|
||||
),
|
||||
e(document).on("keydown.nice_select", ".nice-select", function (t) {
|
||||
var s = e(this),
|
||||
n = e(s.find(".focus") || s.find(".list .option.selected"));
|
||||
if (32 == t.keyCode || 13 == t.keyCode)
|
||||
return (
|
||||
s.hasClass("open") ? n.trigger("click") : s.trigger("click"), !1
|
||||
);
|
||||
if (40 == t.keyCode) {
|
||||
if (s.hasClass("open")) {
|
||||
var i = n.nextAll(".option:not(.disabled)").first();
|
||||
i.length > 0 &&
|
||||
(s.find(".focus").removeClass("focus"), i.addClass("focus"));
|
||||
} else s.trigger("click");
|
||||
return !1;
|
||||
}
|
||||
if (38 == t.keyCode) {
|
||||
if (s.hasClass("open")) {
|
||||
var l = n.prevAll(".option:not(.disabled)").first();
|
||||
l.length > 0 &&
|
||||
(s.find(".focus").removeClass("focus"), l.addClass("focus"));
|
||||
} else s.trigger("click");
|
||||
return !1;
|
||||
}
|
||||
if (27 == t.keyCode) s.hasClass("open") && s.trigger("click");
|
||||
else if (9 == t.keyCode && s.hasClass("open")) return !1;
|
||||
});
|
||||
var n = document.createElement("a").style;
|
||||
return (
|
||||
(n.cssText = "pointer-events:auto"),
|
||||
"auto" !== n.pointerEvents && e("html").addClass("no-csspointerevents"),
|
||||
this
|
||||
);
|
||||
};
|
||||
})(jQuery);
|
||||
|
||||
@@ -21,118 +21,146 @@
|
||||
-webkit-transition: all 0.2s ease-in-out;
|
||||
transition: all 0.2s ease-in-out;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
white-space: nowrap;
|
||||
width: auto; }
|
||||
.nice-select:hover {
|
||||
border-color: #dbdbdb; }
|
||||
.nice-select:active, .nice-select.open, .nice-select:focus {
|
||||
border-color: #999; }
|
||||
.nice-select:after {
|
||||
border-bottom: 2px solid #999;
|
||||
border-right: 2px solid #999;
|
||||
content: '';
|
||||
display: block;
|
||||
height: 5px;
|
||||
margin-top: -4px;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
right: 12px;
|
||||
top: 50%;
|
||||
-webkit-transform-origin: 66% 66%;
|
||||
-ms-transform-origin: 66% 66%;
|
||||
transform-origin: 66% 66%;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
-webkit-transition: all 0.15s ease-in-out;
|
||||
transition: all 0.15s ease-in-out;
|
||||
width: 5px; }
|
||||
.nice-select.open:after {
|
||||
-webkit-transform: rotate(-135deg);
|
||||
-ms-transform: rotate(-135deg);
|
||||
transform: rotate(-135deg); }
|
||||
.nice-select.open .list {
|
||||
opacity: 1;
|
||||
pointer-events: auto;
|
||||
-webkit-transform: scale(1) translateY(0);
|
||||
-ms-transform: scale(1) translateY(0);
|
||||
transform: scale(1) translateY(0); }
|
||||
.nice-select.disabled {
|
||||
border-color: #ededed;
|
||||
color: #999;
|
||||
pointer-events: none; }
|
||||
.nice-select.disabled:after {
|
||||
border-color: #cccccc; }
|
||||
.nice-select.wide {
|
||||
width: 100%; }
|
||||
.nice-select.wide .list {
|
||||
left: 0 !important;
|
||||
right: 0 !important; }
|
||||
.nice-select.right {
|
||||
float: right; }
|
||||
.nice-select.right .list {
|
||||
left: auto;
|
||||
right: 0; }
|
||||
.nice-select.small {
|
||||
font-size: 12px;
|
||||
height: 36px;
|
||||
line-height: 34px; }
|
||||
.nice-select.small:after {
|
||||
height: 4px;
|
||||
width: 4px; }
|
||||
.nice-select.small .option {
|
||||
line-height: 34px;
|
||||
min-height: 34px; }
|
||||
.nice-select .list {
|
||||
background-color: #fff;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 0 0 1px rgba(68, 68, 68, 0.11);
|
||||
box-sizing: border-box;
|
||||
margin-top: 4px;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
-webkit-transform-origin: 50% 0;
|
||||
-ms-transform-origin: 50% 0;
|
||||
transform-origin: 50% 0;
|
||||
-webkit-transform: scale(0.75) translateY(-21px);
|
||||
-ms-transform: scale(0.75) translateY(-21px);
|
||||
transform: scale(0.75) translateY(-21px);
|
||||
-webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
|
||||
transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
|
||||
z-index: 9; }
|
||||
.nice-select .list:hover .option:not(:hover) {
|
||||
background-color: transparent !important; }
|
||||
.nice-select .option {
|
||||
cursor: pointer;
|
||||
font-weight: 400;
|
||||
line-height: 40px;
|
||||
list-style: none;
|
||||
min-height: 40px;
|
||||
outline: none;
|
||||
padding-left: 18px;
|
||||
padding-right: 29px;
|
||||
text-align: left;
|
||||
-webkit-transition: all 0.2s;
|
||||
transition: all 0.2s; }
|
||||
.nice-select .option:hover, .nice-select .option.focus, .nice-select .option.selected.focus {
|
||||
background-color: #f6f6f6; }
|
||||
.nice-select .option.selected {
|
||||
font-weight: bold; }
|
||||
.nice-select .option.disabled {
|
||||
background-color: transparent;
|
||||
color: #999;
|
||||
cursor: default; }
|
||||
width: auto;
|
||||
}
|
||||
.nice-select:hover {
|
||||
border-color: #dbdbdb;
|
||||
}
|
||||
.nice-select:active,
|
||||
.nice-select.open,
|
||||
.nice-select:focus {
|
||||
border-color: #999;
|
||||
}
|
||||
.nice-select:after {
|
||||
border-bottom: 2px solid #999;
|
||||
border-right: 2px solid #999;
|
||||
content: "";
|
||||
display: block;
|
||||
height: 5px;
|
||||
margin-top: -4px;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
right: 12px;
|
||||
top: 50%;
|
||||
-webkit-transform-origin: 66% 66%;
|
||||
-ms-transform-origin: 66% 66%;
|
||||
transform-origin: 66% 66%;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
-webkit-transition: all 0.15s ease-in-out;
|
||||
transition: all 0.15s ease-in-out;
|
||||
width: 5px;
|
||||
}
|
||||
.nice-select.open:after {
|
||||
-webkit-transform: rotate(-135deg);
|
||||
-ms-transform: rotate(-135deg);
|
||||
transform: rotate(-135deg);
|
||||
}
|
||||
.nice-select.open .list {
|
||||
opacity: 1;
|
||||
pointer-events: auto;
|
||||
-webkit-transform: scale(1) translateY(0);
|
||||
-ms-transform: scale(1) translateY(0);
|
||||
transform: scale(1) translateY(0);
|
||||
}
|
||||
.nice-select.disabled {
|
||||
border-color: #ededed;
|
||||
color: #999;
|
||||
pointer-events: none;
|
||||
}
|
||||
.nice-select.disabled:after {
|
||||
border-color: #cccccc;
|
||||
}
|
||||
.nice-select.wide {
|
||||
width: 100%;
|
||||
}
|
||||
.nice-select.wide .list {
|
||||
left: 0 !important;
|
||||
right: 0 !important;
|
||||
}
|
||||
.nice-select.right {
|
||||
float: right;
|
||||
}
|
||||
.nice-select.right .list {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
.nice-select.small {
|
||||
font-size: 12px;
|
||||
height: 36px;
|
||||
line-height: 34px;
|
||||
}
|
||||
.nice-select.small:after {
|
||||
height: 4px;
|
||||
width: 4px;
|
||||
}
|
||||
.nice-select.small .option {
|
||||
line-height: 34px;
|
||||
min-height: 34px;
|
||||
}
|
||||
.nice-select .list {
|
||||
background-color: #fff;
|
||||
border-radius: 5px;
|
||||
box-shadow: 0 0 0 1px rgba(68, 68, 68, 0.11);
|
||||
box-sizing: border-box;
|
||||
margin-top: 4px;
|
||||
opacity: 0;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
pointer-events: none;
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
left: 0;
|
||||
-webkit-transform-origin: 50% 0;
|
||||
-ms-transform-origin: 50% 0;
|
||||
transform-origin: 50% 0;
|
||||
-webkit-transform: scale(0.75) translateY(-21px);
|
||||
-ms-transform: scale(0.75) translateY(-21px);
|
||||
transform: scale(0.75) translateY(-21px);
|
||||
-webkit-transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25),
|
||||
opacity 0.15s ease-out;
|
||||
transition: all 0.2s cubic-bezier(0.5, 0, 0, 1.25), opacity 0.15s ease-out;
|
||||
z-index: 9;
|
||||
}
|
||||
.nice-select .list:hover .option:not(:hover) {
|
||||
background-color: transparent !important;
|
||||
}
|
||||
.nice-select .option {
|
||||
cursor: pointer;
|
||||
font-weight: 400;
|
||||
line-height: 40px;
|
||||
list-style: none;
|
||||
min-height: 40px;
|
||||
outline: none;
|
||||
padding-left: 18px;
|
||||
padding-right: 29px;
|
||||
text-align: left;
|
||||
-webkit-transition: all 0.2s;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
.nice-select .option:hover,
|
||||
.nice-select .option.focus,
|
||||
.nice-select .option.selected.focus {
|
||||
background-color: #f6f6f6;
|
||||
}
|
||||
.nice-select .option.selected {
|
||||
font-weight: bold;
|
||||
}
|
||||
.nice-select .option.disabled {
|
||||
background-color: transparent;
|
||||
color: #999;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.no-csspointerevents .nice-select .list {
|
||||
display: none; }
|
||||
display: none;
|
||||
}
|
||||
|
||||
.no-csspointerevents .nice-select.open .list {
|
||||
display: block; }
|
||||
display: block;
|
||||
}
|
||||
|
||||
1109
src/background.js
1109
src/background.js
File diff suppressed because it is too large
Load Diff
140
src/content.css
140
src/content.css
@@ -1,67 +1,67 @@
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--background: #1E2128;
|
||||
--border: #35373E;
|
||||
--text: #F1F1F1;
|
||||
--text-2: #C5C6CA;
|
||||
--text-3: #A5A5AE;
|
||||
--select: #17191E;
|
||||
--accent: #6068D2;
|
||||
--accent-hover: #484FAC;
|
||||
--shortcut: #383E4A;
|
||||
--placeholder: #63687B;
|
||||
--background-2: #292D36;
|
||||
}
|
||||
:root {
|
||||
--background: #1e2128;
|
||||
--border: #35373e;
|
||||
--text: #f1f1f1;
|
||||
--text-2: #c5c6ca;
|
||||
--text-3: #a5a5ae;
|
||||
--select: #17191e;
|
||||
--accent: #6068d2;
|
||||
--accent-hover: #484fac;
|
||||
--shortcut: #383e4a;
|
||||
--placeholder: #63687b;
|
||||
--background-2: #292d36;
|
||||
}
|
||||
}
|
||||
@media (prefers-color-scheme: light) {
|
||||
:root {
|
||||
--background: #FAFCFF;
|
||||
--border: #F2F3FB;
|
||||
--text: #2B2D41;
|
||||
--text-2: #2B2D41;
|
||||
--text-3: #929DB2;
|
||||
--select: #EFF3F9;
|
||||
--accent: #6068D2;
|
||||
--accent-hover: #484FAC;
|
||||
--shortcut: #DADEEA;
|
||||
--placeholder: #BAC2D1;
|
||||
--background-2: #292D36;
|
||||
}
|
||||
:root {
|
||||
--background: #fafcff;
|
||||
--border: #f2f3fb;
|
||||
--text: #2b2d41;
|
||||
--text-2: #2b2d41;
|
||||
--text-3: #929db2;
|
||||
--select: #eff3f9;
|
||||
--accent: #6068d2;
|
||||
--accent-hover: #484fac;
|
||||
--shortcut: #dadeea;
|
||||
--placeholder: #bac2d1;
|
||||
--background-2: #292d36;
|
||||
}
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url('chrome-extension://__MSG_@@extension_id__/assets/Inter-Regular.ttf');
|
||||
font-family: "Inter";
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: url("chrome-extension://__MSG_@@extension_id__/assets/Inter-Regular.ttf");
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url('chrome-extension://__MSG_@@extension_id__/assets/Inter-Medium.ttf');
|
||||
font-family: "Inter";
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
src: url("chrome-extension://__MSG_@@extension_id__/assets/Inter-Medium.ttf");
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: url('chrome-extension://__MSG_@@extension_id__/assets/Inter-SemiBold.ttf');
|
||||
font-family: "Inter";
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: url("chrome-extension://__MSG_@@extension_id__/assets/Inter-SemiBold.ttf");
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Inter';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url('chrome-extension://__MSG_@@extension_id__/assets/Inter-Bold.ttf');
|
||||
font-family: "Inter";
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: url("chrome-extension://__MSG_@@extension_id__/assets/Inter-Bold.ttf");
|
||||
}
|
||||
.omni-extension .omni-item-details * {
|
||||
line-height: normal;
|
||||
line-height: normal;
|
||||
}
|
||||
.omni-extension {
|
||||
font-family: Inter!important;
|
||||
z-index: 99999999999;
|
||||
font-family: Inter !important;
|
||||
z-index: 99999999999;
|
||||
}
|
||||
.omni-extension #omni-wrap {
|
||||
position: fixed;
|
||||
position: fixed;
|
||||
width: 700px;
|
||||
border: 1px solid transparent;
|
||||
border-radius: 5px;
|
||||
@@ -72,7 +72,7 @@
|
||||
left: 0px;
|
||||
z-index: 9999999999;
|
||||
height: 540px;
|
||||
transition: all .2s cubic-bezier(.05,.03,.35,1);
|
||||
transition: all 0.2s cubic-bezier(0.05, 0.03, 0.35, 1);
|
||||
}
|
||||
.omni-extension #omni {
|
||||
position: absolute;
|
||||
@@ -84,16 +84,16 @@
|
||||
left: 0px;
|
||||
z-index: 9999999998;
|
||||
height: fit-content;
|
||||
transition: all .2s cubic-bezier(.05,.03,.35,1);
|
||||
display: block;
|
||||
transition: all 0.2s cubic-bezier(0.05, 0.03, 0.35, 1);
|
||||
display: block;
|
||||
}
|
||||
.omni-closing #omni {
|
||||
transform: scale(.9);
|
||||
transform: scale(0.9);
|
||||
opacity: 0;
|
||||
display: none!important;
|
||||
display: none !important;
|
||||
}
|
||||
.omni-closing {
|
||||
pointer-events: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
.omni-extension #omni-overlay {
|
||||
height: 100%;
|
||||
@@ -103,11 +103,11 @@
|
||||
left: 0px;
|
||||
background-color: #000;
|
||||
z-index: 9999;
|
||||
opacity: .6;
|
||||
transition: all .1s cubic-bezier(.05,.03,.35,1);
|
||||
opacity: 0.6;
|
||||
transition: all 0.1s cubic-bezier(0.05, 0.03, 0.35, 1);
|
||||
}
|
||||
.omni-closing #omni-overlay {
|
||||
opacity: 0!important;
|
||||
opacity: 0 !important;
|
||||
}
|
||||
.omni-extension #omni-head {
|
||||
height: 50px;
|
||||
@@ -134,7 +134,7 @@
|
||||
}
|
||||
.omni-extension .omni-shortcut {
|
||||
display: inline-block;
|
||||
font-size: 13px;
|
||||
font-size: 13px;
|
||||
border-radius: 5px;
|
||||
background-color: var(--shortcut);
|
||||
color: var(--text);
|
||||
@@ -158,7 +158,7 @@
|
||||
display: block;
|
||||
color: var(--text);
|
||||
caret-color: var(--accent);
|
||||
font-family: Inter!important;
|
||||
font-family: Inter !important;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
box-sizing: border-box;
|
||||
@@ -214,7 +214,7 @@
|
||||
margin-left: 3px;
|
||||
}
|
||||
.omni-extension .omni-item-active .omni-select {
|
||||
display: block!important;
|
||||
display: block !important;
|
||||
}
|
||||
.omni-extension .omni-icon {
|
||||
width: 20px;
|
||||
@@ -225,14 +225,14 @@
|
||||
margin-top: -12px;
|
||||
}
|
||||
.omni-extension .omni-emoji-action {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-top: -12px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
text-align: center;
|
||||
margin-left: 5%;
|
||||
font-size: 18px;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-top: -12px;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
text-align: center;
|
||||
margin-left: 5%;
|
||||
font-size: 18px;
|
||||
}
|
||||
.omni-extension .omni-item-details {
|
||||
display: inline-block;
|
||||
@@ -250,12 +250,12 @@
|
||||
width: 450px;
|
||||
}
|
||||
.omni-extension .omni-item-active .omni-item-name {
|
||||
color: var(--text)!important;
|
||||
color: var(--text) !important;
|
||||
}
|
||||
.omni-extension .omni-item-desc {
|
||||
color: var(--text-3);
|
||||
margin-top: 5px;
|
||||
font-size: 14px;
|
||||
font-size: 14px;
|
||||
}
|
||||
.omni-extension #omni-footer {
|
||||
height: 45px;
|
||||
@@ -289,7 +289,7 @@
|
||||
margin-right: 5%;
|
||||
}
|
||||
.omni-extension .omni-item-active .omni-keys {
|
||||
display: none!important;
|
||||
display: none !important;
|
||||
}
|
||||
.omni-extension .omni-keys span {
|
||||
margin-left: 3px;
|
||||
@@ -300,4 +300,4 @@
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,21 +1,22 @@
|
||||
<html>
|
||||
<head>
|
||||
</head>
|
||||
<head> </head>
|
||||
<body>
|
||||
<div id="omni-extension" class="omni-closing omni-extension">
|
||||
<div id="omni-wrap">
|
||||
<div id="omni">
|
||||
<div id="omni-search">
|
||||
<input placeholder="Type a command or search">
|
||||
</div>
|
||||
<div id="omni-list">
|
||||
</div>
|
||||
<div id="omni-footer">
|
||||
<div id="omni-results">153 results</div>
|
||||
<div id="omni-arrows">Use arrow keys <span class="omni-shortcut">↑</span><span class="omni-shortcut">↓</span> to navigate</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="omni-wrap">
|
||||
<div id="omni">
|
||||
<div id="omni-search">
|
||||
<input placeholder="Type a command or search" />
|
||||
</div>
|
||||
<div id="omni-list"></div>
|
||||
<div id="omni-footer">
|
||||
<div id="omni-results">153 results</div>
|
||||
<div id="omni-arrows">
|
||||
Use arrow keys <span class="omni-shortcut">↑</span
|
||||
><span class="omni-shortcut">↓</span> to navigate
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="omni-overlay"></div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
625
src/content.js
625
src/content.js
@@ -1,268 +1,425 @@
|
||||
$(document).ready(function(){
|
||||
var isOpen = false;
|
||||
$(document).ready(function () {
|
||||
var isOpen = false;
|
||||
var actions = [];
|
||||
|
||||
// Append the omni into the current page
|
||||
$.get(chrome.runtime.getURL('/content.html'), function(data) {
|
||||
$(data).appendTo('body');
|
||||
// Append the omni into the current page
|
||||
$.get(chrome.runtime.getURL("/content.html"), function (data) {
|
||||
$(data).appendTo("body");
|
||||
});
|
||||
|
||||
// Request actions from the background
|
||||
chrome.runtime.sendMessage({request:"get-actions"}, function(response) {
|
||||
// Request actions from the background
|
||||
chrome.runtime.sendMessage({ request: "get-actions" }, function (response) {
|
||||
actions = response.actions;
|
||||
populateOmni();
|
||||
populateOmni();
|
||||
});
|
||||
|
||||
// Add actions to the omni
|
||||
function populateOmni() {
|
||||
$("#omni-extension #list").html("");
|
||||
actions.forEach(function(action, index){
|
||||
var keys = "";
|
||||
if (action.keycheck) {
|
||||
keys = "<div class='omni-keys'>";
|
||||
action.keys.forEach(function(key){
|
||||
keys += "<span class='omni-shortcut'>"+key+"</span>";
|
||||
});
|
||||
keys += "</div>";
|
||||
}
|
||||
var img = "<img src='"+action.favIconUrl+"' alt='favicon' onerror='this.src=""+chrome.runtime.getURL("/assets/globe.svg")+""' class='omni-icon'>";
|
||||
if (action.emoji) {
|
||||
img = "<span class='omni-emoji-action'>"+action.emojiChar+"</span>"
|
||||
}
|
||||
if (index != 0) {
|
||||
$("#omni-extension #omni-list").append("<div class='omni-item' data-type='"+action.type+"'>"+img+"<div class='omni-item-details'><div class='omni-item-name'>"+action.title+"</div><div class='omni-item-desc'>"+action.desc+"</div></div>"+keys+"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>");
|
||||
} else {
|
||||
$("#omni-extension #omni-list").append("<div class='omni-item omni-item-active' data-type='"+action.type+"'>"+img+"<div class='omni-item-details'><div class='omni-item-name'>"+action.title+"</div><div class='omni-item-desc'>"+action.desc+"</div></div>"+keys+"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>");
|
||||
}
|
||||
})
|
||||
$(".omni-extension #omni-results").html(actions.length+" results");
|
||||
}
|
||||
|
||||
// Add actions to the omni
|
||||
function populateOmniHistory(actions) {
|
||||
$("#omni-extension #omni-list").html("");
|
||||
actions.forEach(function(action, index){
|
||||
var keys = "";
|
||||
if (action.keycheck) {
|
||||
keys = "<div class='omni-keys'>";
|
||||
action.keys.forEach(function(key){
|
||||
keys += "<span class='omni-shortcut'>"+key+"</span>";
|
||||
});
|
||||
keys += "</div>";
|
||||
}
|
||||
var img = "<img src='"+action.favIconUrl+"' alt='favicon' onerror='this.src=""+chrome.runtime.getURL("/assets/globe.svg")+""' class='omni-icon'>";
|
||||
if (action.emoji) {
|
||||
img = "<span class='omni-emoji-action'>"+action.emojiChar+"</span>"
|
||||
}
|
||||
if (index != 0) {
|
||||
$("#omni-extension #omni-list").append("<div class='omni-item' data-type='"+action.type+"' data-url='"+action.url+"'>"+img+"<div class='omni-item-details'><div class='omni-item-name'>"+action.title+"</div><div class='omni-item-desc'>"+action.desc+"</div></div>"+keys+"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>");
|
||||
} else {
|
||||
$("#omni-extension #omni-list").append("<div class='omni-item omni-item-active' data-type='"+action.type+"' data-url='"+action.url+"'>"+img+"<div class='omni-item-details'><div class='omni-item-name'>"+action.title+"</div><div class='omni-item-desc'>"+action.desc+"</div></div>"+keys+"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>");
|
||||
}
|
||||
})
|
||||
$(".omni-extension #omni-results").html(actions.length+" results");
|
||||
}
|
||||
|
||||
// Open the omni
|
||||
function openOmni() {
|
||||
chrome.runtime.sendMessage({request:"get-actions"}, function(response) {
|
||||
isOpen = true;
|
||||
actions = response.actions;
|
||||
populateOmni();
|
||||
$("#omni-extension input").val("");
|
||||
$("html, body").stop();
|
||||
$("#omni-extension").removeClass("omni-closing");
|
||||
window.setTimeout(function(){
|
||||
$("#omni-extension input").focus();
|
||||
}, 100);
|
||||
});
|
||||
// Add actions to the omni
|
||||
function populateOmni() {
|
||||
$("#omni-extension #list").html("");
|
||||
actions.forEach(function (action, index) {
|
||||
var keys = "";
|
||||
if (action.keycheck) {
|
||||
keys = "<div class='omni-keys'>";
|
||||
action.keys.forEach(function (key) {
|
||||
keys += "<span class='omni-shortcut'>" + key + "</span>";
|
||||
});
|
||||
keys += "</div>";
|
||||
}
|
||||
var img =
|
||||
"<img src='" +
|
||||
action.favIconUrl +
|
||||
"' alt='favicon' onerror='this.src="" +
|
||||
chrome.runtime.getURL("/assets/globe.svg") +
|
||||
""' class='omni-icon'>";
|
||||
if (action.emoji) {
|
||||
img = "<span class='omni-emoji-action'>" + action.emojiChar + "</span>";
|
||||
}
|
||||
if (index != 0) {
|
||||
$("#omni-extension #omni-list").append(
|
||||
"<div class='omni-item' data-type='" +
|
||||
action.type +
|
||||
"'>" +
|
||||
img +
|
||||
"<div class='omni-item-details'><div class='omni-item-name'>" +
|
||||
action.title +
|
||||
"</div><div class='omni-item-desc'>" +
|
||||
action.desc +
|
||||
"</div></div>" +
|
||||
keys +
|
||||
"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>"
|
||||
);
|
||||
} else {
|
||||
$("#omni-extension #omni-list").append(
|
||||
"<div class='omni-item omni-item-active' data-type='" +
|
||||
action.type +
|
||||
"'>" +
|
||||
img +
|
||||
"<div class='omni-item-details'><div class='omni-item-name'>" +
|
||||
action.title +
|
||||
"</div><div class='omni-item-desc'>" +
|
||||
action.desc +
|
||||
"</div></div>" +
|
||||
keys +
|
||||
"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>"
|
||||
);
|
||||
}
|
||||
});
|
||||
$(".omni-extension #omni-results").html(actions.length + " results");
|
||||
}
|
||||
|
||||
// Close the omni
|
||||
// Add actions to the omni
|
||||
function populateOmniHistory(actions) {
|
||||
$("#omni-extension #omni-list").html("");
|
||||
actions.forEach(function (action, index) {
|
||||
var keys = "";
|
||||
if (action.keycheck) {
|
||||
keys = "<div class='omni-keys'>";
|
||||
action.keys.forEach(function (key) {
|
||||
keys += "<span class='omni-shortcut'>" + key + "</span>";
|
||||
});
|
||||
keys += "</div>";
|
||||
}
|
||||
var img =
|
||||
"<img src='" +
|
||||
action.favIconUrl +
|
||||
"' alt='favicon' onerror='this.src="" +
|
||||
chrome.runtime.getURL("/assets/globe.svg") +
|
||||
""' class='omni-icon'>";
|
||||
if (action.emoji) {
|
||||
img = "<span class='omni-emoji-action'>" + action.emojiChar + "</span>";
|
||||
}
|
||||
if (index != 0) {
|
||||
$("#omni-extension #omni-list").append(
|
||||
"<div class='omni-item' data-type='" +
|
||||
action.type +
|
||||
"' data-url='" +
|
||||
action.url +
|
||||
"'>" +
|
||||
img +
|
||||
"<div class='omni-item-details'><div class='omni-item-name'>" +
|
||||
action.title +
|
||||
"</div><div class='omni-item-desc'>" +
|
||||
action.desc +
|
||||
"</div></div>" +
|
||||
keys +
|
||||
"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>"
|
||||
);
|
||||
} else {
|
||||
$("#omni-extension #omni-list").append(
|
||||
"<div class='omni-item omni-item-active' data-type='" +
|
||||
action.type +
|
||||
"' data-url='" +
|
||||
action.url +
|
||||
"'>" +
|
||||
img +
|
||||
"<div class='omni-item-details'><div class='omni-item-name'>" +
|
||||
action.title +
|
||||
"</div><div class='omni-item-desc'>" +
|
||||
action.desc +
|
||||
"</div></div>" +
|
||||
keys +
|
||||
"<div class='omni-select'>Select <span class='omni-shortcut'>⏎</span></div></div>"
|
||||
);
|
||||
}
|
||||
});
|
||||
$(".omni-extension #omni-results").html(actions.length + " results");
|
||||
}
|
||||
|
||||
// Open the omni
|
||||
function openOmni() {
|
||||
chrome.runtime.sendMessage({ request: "get-actions" }, function (response) {
|
||||
isOpen = true;
|
||||
actions = response.actions;
|
||||
populateOmni();
|
||||
$("#omni-extension input").val("");
|
||||
$("html, body").stop();
|
||||
$("#omni-extension").removeClass("omni-closing");
|
||||
window.setTimeout(function () {
|
||||
$("#omni-extension input").focus();
|
||||
}, 100);
|
||||
});
|
||||
}
|
||||
|
||||
// Close the omni
|
||||
function closeOmni() {
|
||||
isOpen = false;
|
||||
isOpen = false;
|
||||
$("#omni-extension").addClass("omni-closing");
|
||||
}
|
||||
|
||||
// Hover over an action in the omni
|
||||
// Hover over an action in the omni
|
||||
function hoverItem() {
|
||||
$(".omni-item-active").removeClass("omni-item-active");
|
||||
$(this).addClass("omni-item-active");
|
||||
}
|
||||
|
||||
// Search for an action in the omni
|
||||
// Search for an action in the omni
|
||||
function search() {
|
||||
var value = $(this).val().toLowerCase();
|
||||
if (value.startsWith("/history")) {
|
||||
var tempvalue = value.replace("/tabs ", "");
|
||||
var query = "";
|
||||
if (tempvalue != "/history") {
|
||||
query = value.replace("/history ", "");
|
||||
}
|
||||
chrome.runtime.sendMessage({request:"search-history", query:query}, function(response){
|
||||
populateOmniHistory(response.history);
|
||||
});
|
||||
} else {
|
||||
populateOmni();
|
||||
$("#omni-extension #omni-list .omni-item").filter(function(){
|
||||
if (value.startsWith("/tabs")) {
|
||||
var tempvalue = value.replace("/tabs ", "");
|
||||
if (tempvalue == "/tabs") {
|
||||
$(this).toggle($(this).attr("data-type") == "tab");
|
||||
} else {
|
||||
tempvalue = value.replace("/tabs ", "");
|
||||
$(this).toggle(($(this).find(".omni-item-name").text().toLowerCase().indexOf(tempvalue) > -1 || $(this).find(".omni-item-desc").text().toLowerCase().indexOf(tempvalue) > -1) && $(this).attr("data-type") == "tab");
|
||||
}
|
||||
} else if (value.startsWith("/bookmarks")) {
|
||||
var tempvalue = value.replace("/bookmarks ", "");
|
||||
if (tempvalue == "/bookmarks") {
|
||||
$(this).toggle($(this).attr("data-type") == "bookmark");
|
||||
} else {
|
||||
tempvalue = value.replace("/bookmarks ", "");
|
||||
$(this).toggle(($(this).find(".omni-item-name").text().toLowerCase().indexOf(tempvalue) > -1 || $(this).find(".omni-item-desc").text().toLowerCase().indexOf(tempvalue) > -1) && $(this).attr("data-type") == "bookmark");
|
||||
}
|
||||
} else if (value.startsWith("/remove")) {
|
||||
var tempvalue = value.replace("/remove ", "");
|
||||
if (tempvalue == "/remove") {
|
||||
$(this).toggle($(this).attr("data-type") == "bookmark" || $(this).attr("data-type") == "tab");
|
||||
} else {
|
||||
tempvalue = value.replace("/remove ", "");
|
||||
$(this).toggle(($(this).find(".omni-item-name").text().toLowerCase().indexOf(tempvalue) > -1 || $(this).find(".omni-item-desc").text().toLowerCase().indexOf(tempvalue) > -1) && ($(this).attr("data-type") == "bookmark" || $(this).attr("data-type") == "tab"));
|
||||
}
|
||||
} else if (value.startsWith("/actions")) {
|
||||
var tempvalue = value.replace("/actions ", "");
|
||||
if (tempvalue == "/actions") {
|
||||
$(this).toggle($(this).attr("data-type") == "action");
|
||||
} else {
|
||||
tempvalue = value.replace("/actions ", "");
|
||||
$(this).toggle(($(this).find(".omni-item-name").text().toLowerCase().indexOf(tempvalue) > -1 || $(this).find(".omni-item-desc").text().toLowerCase().indexOf(tempvalue) > -1) && $(this).attr("data-type") == "action");
|
||||
}
|
||||
} else {
|
||||
$(this).toggle($(this).find(".omni-item-name").text().toLowerCase().indexOf(value) > -1 || $(this).find(".omni-item-desc").text().toLowerCase().indexOf(value) > -1);
|
||||
}
|
||||
});
|
||||
}
|
||||
$(".omni-extension #omni-results").html($("#omni-extension #omni-list .omni-item:visible").length+" results");
|
||||
if (value.startsWith("/history")) {
|
||||
var tempvalue = value.replace("/tabs ", "");
|
||||
var query = "";
|
||||
if (tempvalue != "/history") {
|
||||
query = value.replace("/history ", "");
|
||||
}
|
||||
chrome.runtime.sendMessage(
|
||||
{ request: "search-history", query: query },
|
||||
function (response) {
|
||||
populateOmniHistory(response.history);
|
||||
}
|
||||
);
|
||||
} else {
|
||||
populateOmni();
|
||||
$("#omni-extension #omni-list .omni-item").filter(function () {
|
||||
if (value.startsWith("/tabs")) {
|
||||
var tempvalue = value.replace("/tabs ", "");
|
||||
if (tempvalue == "/tabs") {
|
||||
$(this).toggle($(this).attr("data-type") == "tab");
|
||||
} else {
|
||||
tempvalue = value.replace("/tabs ", "");
|
||||
$(this).toggle(
|
||||
($(this)
|
||||
.find(".omni-item-name")
|
||||
.text()
|
||||
.toLowerCase()
|
||||
.indexOf(tempvalue) > -1 ||
|
||||
$(this)
|
||||
.find(".omni-item-desc")
|
||||
.text()
|
||||
.toLowerCase()
|
||||
.indexOf(tempvalue) > -1) &&
|
||||
$(this).attr("data-type") == "tab"
|
||||
);
|
||||
}
|
||||
} else if (value.startsWith("/bookmarks")) {
|
||||
var tempvalue = value.replace("/bookmarks ", "");
|
||||
if (tempvalue == "/bookmarks") {
|
||||
$(this).toggle($(this).attr("data-type") == "bookmark");
|
||||
} else {
|
||||
tempvalue = value.replace("/bookmarks ", "");
|
||||
$(this).toggle(
|
||||
($(this)
|
||||
.find(".omni-item-name")
|
||||
.text()
|
||||
.toLowerCase()
|
||||
.indexOf(tempvalue) > -1 ||
|
||||
$(this)
|
||||
.find(".omni-item-desc")
|
||||
.text()
|
||||
.toLowerCase()
|
||||
.indexOf(tempvalue) > -1) &&
|
||||
$(this).attr("data-type") == "bookmark"
|
||||
);
|
||||
}
|
||||
} else if (value.startsWith("/remove")) {
|
||||
var tempvalue = value.replace("/remove ", "");
|
||||
if (tempvalue == "/remove") {
|
||||
$(this).toggle(
|
||||
$(this).attr("data-type") == "bookmark" ||
|
||||
$(this).attr("data-type") == "tab"
|
||||
);
|
||||
} else {
|
||||
tempvalue = value.replace("/remove ", "");
|
||||
$(this).toggle(
|
||||
($(this)
|
||||
.find(".omni-item-name")
|
||||
.text()
|
||||
.toLowerCase()
|
||||
.indexOf(tempvalue) > -1 ||
|
||||
$(this)
|
||||
.find(".omni-item-desc")
|
||||
.text()
|
||||
.toLowerCase()
|
||||
.indexOf(tempvalue) > -1) &&
|
||||
($(this).attr("data-type") == "bookmark" ||
|
||||
$(this).attr("data-type") == "tab")
|
||||
);
|
||||
}
|
||||
} else if (value.startsWith("/actions")) {
|
||||
var tempvalue = value.replace("/actions ", "");
|
||||
if (tempvalue == "/actions") {
|
||||
$(this).toggle($(this).attr("data-type") == "action");
|
||||
} else {
|
||||
tempvalue = value.replace("/actions ", "");
|
||||
$(this).toggle(
|
||||
($(this)
|
||||
.find(".omni-item-name")
|
||||
.text()
|
||||
.toLowerCase()
|
||||
.indexOf(tempvalue) > -1 ||
|
||||
$(this)
|
||||
.find(".omni-item-desc")
|
||||
.text()
|
||||
.toLowerCase()
|
||||
.indexOf(tempvalue) > -1) &&
|
||||
$(this).attr("data-type") == "action"
|
||||
);
|
||||
}
|
||||
} else {
|
||||
$(this).toggle(
|
||||
$(this)
|
||||
.find(".omni-item-name")
|
||||
.text()
|
||||
.toLowerCase()
|
||||
.indexOf(value) > -1 ||
|
||||
$(this)
|
||||
.find(".omni-item-desc")
|
||||
.text()
|
||||
.toLowerCase()
|
||||
.indexOf(value) > -1
|
||||
);
|
||||
}
|
||||
});
|
||||
}
|
||||
$(".omni-extension #omni-results").html(
|
||||
$("#omni-extension #omni-list .omni-item:visible").length + " results"
|
||||
);
|
||||
}
|
||||
|
||||
// Handle actions from the omni
|
||||
function handleAction() {
|
||||
var action = actions.find(x => x.title == $(".omni-item-active .omni-item-name").text());
|
||||
closeOmni();
|
||||
if ($(".omni-extension input").val().toLowerCase().startsWith("/remove")) {
|
||||
chrome.runtime.sendMessage({request:"remove", type:action.type, action:action});
|
||||
} else if ($(".omni-extension input").val().toLowerCase().startsWith("/history")) {
|
||||
window.open($(".item-active").attr("data-url"), "_self");
|
||||
} else {
|
||||
chrome.runtime.sendMessage({request:action.action, tab:action});
|
||||
if (action.action == "bookmark") {
|
||||
window.open(action.url, "_self");
|
||||
} else if (action.action == "scroll-bottom") {
|
||||
window.scrollTo(0,document.body.scrollHeight);
|
||||
} else if (action.action == "scroll-top") {
|
||||
window.scrollTo(0,0);
|
||||
} else if (action.action == "close-tab") {
|
||||
window.close();
|
||||
} else if (action.action == "navigation") {
|
||||
window.open(action.url, "_self");
|
||||
} else if (action.action == "fullscreen") {
|
||||
var elem = document.documentElement;
|
||||
elem.requestFullscreen();
|
||||
} else if (action.action == "new-tab") {
|
||||
window.open("");
|
||||
} else if (action.action == "email") {
|
||||
window.open("mailto:");
|
||||
} else if (action.action == "url") {
|
||||
window.open(action.url, "_self");
|
||||
}
|
||||
}
|
||||
// Handle actions from the omni
|
||||
function handleAction() {
|
||||
var action = actions.find(
|
||||
(x) => x.title == $(".omni-item-active .omni-item-name").text()
|
||||
);
|
||||
closeOmni();
|
||||
if ($(".omni-extension input").val().toLowerCase().startsWith("/remove")) {
|
||||
chrome.runtime.sendMessage({
|
||||
request: "remove",
|
||||
type: action.type,
|
||||
action: action,
|
||||
});
|
||||
} else if (
|
||||
$(".omni-extension input").val().toLowerCase().startsWith("/history")
|
||||
) {
|
||||
window.open($(".item-active").attr("data-url"), "_self");
|
||||
} else {
|
||||
chrome.runtime.sendMessage({ request: action.action, tab: action });
|
||||
if (action.action == "bookmark") {
|
||||
window.open(action.url, "_self");
|
||||
} else if (action.action == "scroll-bottom") {
|
||||
window.scrollTo(0, document.body.scrollHeight);
|
||||
} else if (action.action == "scroll-top") {
|
||||
window.scrollTo(0, 0);
|
||||
} else if (action.action == "close-tab") {
|
||||
window.close();
|
||||
} else if (action.action == "navigation") {
|
||||
window.open(action.url, "_self");
|
||||
} else if (action.action == "fullscreen") {
|
||||
var elem = document.documentElement;
|
||||
elem.requestFullscreen();
|
||||
} else if (action.action == "new-tab") {
|
||||
window.open("");
|
||||
} else if (action.action == "email") {
|
||||
window.open("mailto:");
|
||||
} else if (action.action == "url") {
|
||||
window.open(action.url, "_self");
|
||||
}
|
||||
}
|
||||
|
||||
// Fetch actions again
|
||||
chrome.runtime.sendMessage({request:"get-actions"}, function(response) {
|
||||
actions = response.actions;
|
||||
populateOmni();
|
||||
});
|
||||
}
|
||||
// Fetch actions again
|
||||
chrome.runtime.sendMessage({ request: "get-actions" }, function (response) {
|
||||
actions = response.actions;
|
||||
populateOmni();
|
||||
});
|
||||
}
|
||||
|
||||
// Customize the shortcut to open the Omni box
|
||||
function openShortcuts() {
|
||||
chrome.runtime.sendMessage({request:"extensions/shortcuts"});
|
||||
}
|
||||
// Customize the shortcut to open the Omni box
|
||||
function openShortcuts() {
|
||||
chrome.runtime.sendMessage({ request: "extensions/shortcuts" });
|
||||
}
|
||||
|
||||
|
||||
// Check which keys are down
|
||||
var down = [];
|
||||
$(document).keydown(function(e) {
|
||||
down[e.keyCode] = true;
|
||||
}).keyup(function(e) {
|
||||
if (down[18] && down[16] && down[80]) {
|
||||
if (actions.find(x => x.action == "pin") != undefined) {
|
||||
chrome.runtime.sendMessage({request:"pin-tab"});
|
||||
} else {
|
||||
chrome.runtime.sendMessage({request:"unpin-tab"});
|
||||
}
|
||||
chrome.runtime.sendMessage({request:"get-actions"}, function(response) {
|
||||
actions = response.actions;
|
||||
populateOmni();
|
||||
});
|
||||
} else if (down[18] && down[16] && down[77]) {
|
||||
if (actions.find(x => x.action == "mute") != undefined) {
|
||||
chrome.runtime.sendMessage({request:"mute-tab"});
|
||||
} else {
|
||||
chrome.runtime.sendMessage({request:"unmute-tab"});
|
||||
}
|
||||
chrome.runtime.sendMessage({request:"get-actions"}, function(response) {
|
||||
actions = response.actions;
|
||||
populateOmni();
|
||||
});
|
||||
} else if (down[18] && down[16] && down[67]) {
|
||||
window.open("mailto:");
|
||||
}
|
||||
|
||||
if (down[38]) {
|
||||
// Up key
|
||||
if ($(".omni-item-active").prevAll("div").not(":hidden").first().length) {
|
||||
var previous = $(".omni-item-active").prevAll("div").not(":hidden").first();
|
||||
$(".omni-item-active").removeClass("item-active");
|
||||
previous.addClass("omni-item-active");
|
||||
previous[0].scrollIntoView({block:"nearest", inline:"nearest"});
|
||||
// Check which keys are down
|
||||
var down = [];
|
||||
$(document)
|
||||
.keydown(function (e) {
|
||||
down[e.keyCode] = true;
|
||||
})
|
||||
.keyup(function (e) {
|
||||
if (down[18] && down[16] && down[80]) {
|
||||
if (actions.find((x) => x.action == "pin") != undefined) {
|
||||
chrome.runtime.sendMessage({ request: "pin-tab" });
|
||||
} else {
|
||||
chrome.runtime.sendMessage({ request: "unpin-tab" });
|
||||
}
|
||||
chrome.runtime.sendMessage(
|
||||
{ request: "get-actions" },
|
||||
function (response) {
|
||||
actions = response.actions;
|
||||
populateOmni();
|
||||
}
|
||||
);
|
||||
} else if (down[18] && down[16] && down[77]) {
|
||||
if (actions.find((x) => x.action == "mute") != undefined) {
|
||||
chrome.runtime.sendMessage({ request: "mute-tab" });
|
||||
} else {
|
||||
chrome.runtime.sendMessage({ request: "unmute-tab" });
|
||||
}
|
||||
chrome.runtime.sendMessage(
|
||||
{ request: "get-actions" },
|
||||
function (response) {
|
||||
actions = response.actions;
|
||||
populateOmni();
|
||||
}
|
||||
);
|
||||
} else if (down[18] && down[16] && down[67]) {
|
||||
window.open("mailto:");
|
||||
}
|
||||
|
||||
} else if (down[40]) {
|
||||
// Down key
|
||||
if ($(".omni-item-active").nextAll("div").not(":hidden").first().length) {
|
||||
var next = $(".omni-item-active").nextAll("div").not(":hidden").first();
|
||||
$(".omni-item-active").removeClass("omni-item-active");
|
||||
next.addClass("omni-item-active");
|
||||
next[0].scrollIntoView({block:"nearest", inline:"nearest"});
|
||||
if (down[38]) {
|
||||
// Up key
|
||||
if (
|
||||
$(".omni-item-active").prevAll("div").not(":hidden").first().length
|
||||
) {
|
||||
var previous = $(".omni-item-active")
|
||||
.prevAll("div")
|
||||
.not(":hidden")
|
||||
.first();
|
||||
$(".omni-item-active").removeClass("item-active");
|
||||
previous.addClass("omni-item-active");
|
||||
previous[0].scrollIntoView({ block: "nearest", inline: "nearest" });
|
||||
}
|
||||
} else if (down[40]) {
|
||||
// Down key
|
||||
if (
|
||||
$(".omni-item-active").nextAll("div").not(":hidden").first().length
|
||||
) {
|
||||
var next = $(".omni-item-active")
|
||||
.nextAll("div")
|
||||
.not(":hidden")
|
||||
.first();
|
||||
$(".omni-item-active").removeClass("omni-item-active");
|
||||
next.addClass("omni-item-active");
|
||||
next[0].scrollIntoView({ block: "nearest", inline: "nearest" });
|
||||
}
|
||||
} else if (down[27] && isOpen) {
|
||||
// Esc key
|
||||
closeOmni();
|
||||
} else if (down[13] && isOpen) {
|
||||
// Enter key
|
||||
handleAction();
|
||||
}
|
||||
} else if (down[27] && isOpen) {
|
||||
// Esc key
|
||||
closeOmni();
|
||||
} else if (down[13] && isOpen) {
|
||||
// Enter key
|
||||
handleAction();
|
||||
}
|
||||
|
||||
down = [];
|
||||
});
|
||||
|
||||
// Recieve messages from background
|
||||
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
|
||||
if (message.request == "open-omni") {
|
||||
if (isOpen) {
|
||||
closeOmni();
|
||||
} else {
|
||||
openOmni();
|
||||
}
|
||||
}
|
||||
});
|
||||
down = [];
|
||||
});
|
||||
|
||||
// Recieve messages from background
|
||||
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
|
||||
if (message.request == "open-omni") {
|
||||
if (isOpen) {
|
||||
closeOmni();
|
||||
} else {
|
||||
openOmni();
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// Events
|
||||
$(document).on("click", "#open-page-omni-extension-thing", openShortcuts);
|
||||
$(document).on("mouseover", ".omni-extension .omni-item:not(.omni-item-active)", hoverItem);
|
||||
$(document).on("click", "#open-page-omni-extension-thing", openShortcuts);
|
||||
$(document).on(
|
||||
"mouseover",
|
||||
".omni-extension .omni-item:not(.omni-item-active)",
|
||||
hoverItem
|
||||
);
|
||||
$(document).on("input", ".omni-extension input", search);
|
||||
$(document).on("click", ".omni-item-active", handleAction);
|
||||
$(document).on("click", ".omni-extension #omni-overlay", closeOmni);
|
||||
$(document).on("click", ".omni-item-active", handleAction);
|
||||
$(document).on("click", ".omni-extension #omni-overlay", closeOmni);
|
||||
});
|
||||
|
||||
@@ -5,49 +5,54 @@
|
||||
"version": "1.0.3",
|
||||
"manifest_version": 3,
|
||||
"action": {
|
||||
"icons": {
|
||||
"16": "assets/logo-16.png",
|
||||
"48": "assets/logo-48.png",
|
||||
"128": "assets/logo-128.png"
|
||||
}
|
||||
"icons": {
|
||||
"16": "assets/logo-16.png",
|
||||
"48": "assets/logo-48.png",
|
||||
"128": "assets/logo-128.png"
|
||||
}
|
||||
},
|
||||
"icons": {
|
||||
"16": "assets/logo-16.png",
|
||||
"48": "assets/logo-48.png",
|
||||
"128": "assets/logo-128.png"
|
||||
},
|
||||
"commands": {
|
||||
"open-omni": {
|
||||
"suggested_key": {
|
||||
"icons": {
|
||||
"16": "assets/logo-16.png",
|
||||
"48": "assets/logo-48.png",
|
||||
"128": "assets/logo-128.png"
|
||||
},
|
||||
"commands": {
|
||||
"open-omni": {
|
||||
"suggested_key": {
|
||||
"default": "Ctrl+K",
|
||||
"mac": "Command+K"
|
||||
},
|
||||
"description": "Open command menu"
|
||||
}
|
||||
},
|
||||
"description": "Open command menu"
|
||||
}
|
||||
},
|
||||
"background": {
|
||||
"service_worker": "background.js"
|
||||
},
|
||||
"content_scripts": [
|
||||
{
|
||||
"matches": [
|
||||
"<all_urls>"
|
||||
],
|
||||
"run_at": "document_end",
|
||||
"js": ["jquery.js", "assets/jquery.nice-select.min.js", "content.js"],
|
||||
"css": ["assets/nice-select.css", "content.css"]
|
||||
}
|
||||
{
|
||||
"matches": ["<all_urls>"],
|
||||
"run_at": "document_end",
|
||||
"js": ["jquery.js", "assets/jquery.nice-select.min.js", "content.js"],
|
||||
"css": ["assets/nice-select.css", "content.css"]
|
||||
}
|
||||
],
|
||||
"web_accessible_resources": [
|
||||
{
|
||||
"resources": ["content.html", "assets/*", "popup.css", "popup.js"],
|
||||
"resources": ["content.html", "assets/*", "popup.css", "popup.js"],
|
||||
"matches": ["<all_urls>"]
|
||||
}
|
||||
],
|
||||
"permissions": [
|
||||
"tabs", "activeTab", "bookmarks", "browsingData", "history", "scripting"
|
||||
"tabs",
|
||||
"activeTab",
|
||||
"bookmarks",
|
||||
"browsingData",
|
||||
"history",
|
||||
"scripting"
|
||||
],
|
||||
"host_permissions": [
|
||||
"https://www.googleapis.com/*", "https://gstatic.com/*", "*://*/*"
|
||||
"https://www.googleapis.com/*",
|
||||
"https://gstatic.com/*",
|
||||
"*://*/*"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user