aboutsummaryrefslogtreecommitdiff
path: root/.config/awesome/ui/fresnel
diff options
context:
space:
mode:
Diffstat (limited to '.config/awesome/ui/fresnel')
-rw-r--r--.config/awesome/ui/fresnel/init.lua61
-rw-r--r--.config/awesome/ui/fresnel/lenses/.gitignore2
-rw-r--r--.config/awesome/ui/fresnel/lenses/Cargo.toml18
-rw-r--r--.config/awesome/ui/fresnel/lenses/install.log10
l---------.config/awesome/ui/fresnel/lenses/liblenses.so1
-rw-r--r--.config/awesome/ui/fresnel/lenses/rustfmt.toml3
-rw-r--r--.config/awesome/ui/fresnel/lenses/src/application.rs107
-rw-r--r--.config/awesome/ui/fresnel/lenses/src/calculator.rs25
-rw-r--r--.config/awesome/ui/fresnel/lenses/src/entry.rs20
-rw-r--r--.config/awesome/ui/fresnel/lenses/src/lib.rs16
10 files changed, 29 insertions, 234 deletions
diff --git a/.config/awesome/ui/fresnel/init.lua b/.config/awesome/ui/fresnel/init.lua
index cf1357a..242603f 100644
--- a/.config/awesome/ui/fresnel/init.lua
+++ b/.config/awesome/ui/fresnel/init.lua
@@ -1,19 +1,16 @@
local awful = require "awful"
local gtable = require "gears.table"
-local gdebug = require "gears.debug"
-local gfs = require "gears.filesystem"
-local h = require "misc.helpers"
+local qui = require "quarrel.ui"
+local qtable = require "quarrel.table"
+local qnative = require "quarrel.native"
local cfg = require "misc.cfg"
-local vars = require "misc.vars"
+local qvars = require "quarrel.vars"
local wibox = require "wibox"
local beautiful = require "beautiful"
local rubato = require "lib.rubato"
local al_prompt = require "lib.bling.widget.app_launcher.prompt"
local btn = awful.button.names
-package.cpath = package.cpath .. ";" .. gfs.get_configuration_dir() .. "ui/fresnel/lenses/target/debug/lib?.so"
-
-local lenses = require "lenses"
local max_entries = 10
local fresnel = {}
@@ -27,7 +24,7 @@ fresnel._selected_index = 1
function fresnel:_exec_entry(entry_index)
local exec = self._entries_exec[entry_index]
- if type(exec) ~= "userdata" then
+ if type(exec) ~= "userdata" and type(exec) ~= "nil" then
awful.spawn((exec[2] and cfg.terminal .. " -e " or "") .. exec[1])
end
end
@@ -49,7 +46,7 @@ function fresnel:_update(query, scrolled)
self._entries_exec = {}
layout:reset()
- for _, provider in h.opairs(lenses) do
+ for _, provider in qtable.opairs(qnative.lenses) do
local entries = provider(query)
table.sort(entries, function(a, b)
@@ -70,18 +67,18 @@ function fresnel:_update(query, scrolled)
local entry_widget = wibox.widget {
widget = wibox.container.background,
- shape = vars.shape,
+ shape = qvars.shape,
{
widget = wibox.container.margin,
- margins = vars.padding,
+ margins = qvars.padding,
{
widget = wibox.container.constraint,
strategy = "max",
- height = vars.char_height,
+ height = qvars.char_height,
{
{
widget = wibox.container.background,
- fg = vars.colors.dim.fg,
+ fg = qvars.colors.dim.fg,
{
widget = wibox.widget.textbox,
text = entry.provider .. " | "
@@ -91,7 +88,7 @@ function fresnel:_update(query, scrolled)
widget = wibox.widget.textbox,
text = entry.message
},
- spacing = vars.padding,
+ spacing = qvars.padding,
layout = wibox.layout.fixed.horizontal
}
}
@@ -110,17 +107,17 @@ function fresnel:_update(query, scrolled)
if self._selected_index + self._entries_offset == i then
entry_widget._selected = true
- entry_widget.bg = vars.colors.black
+ entry_widget.bg = qvars.colors.black
end
entry_widget:connect_signal("mouse::enter", function()
if entry_widget._selected == true then return end
- entry_widget.bg = vars.colors.black
+ entry_widget.bg = qvars.colors.black
end)
entry_widget:connect_signal("mouse::leave", function()
if entry_widget._selected == true then return end
- entry_widget.bg = vars.colors.bg
+ entry_widget.bg = qvars.colors.bg
end)
layout:add(entry_widget)
@@ -138,7 +135,7 @@ fresnel._prompt = al_prompt {
prompt = "",
reset_on_stop = true,
ul_cursor = "low",
- bg_cursor = vars.colors.black,
+ bg_cursor = qvars.colors.black,
changed_callback = function(text)
if fresnel._text == text then return end
if fresnel._toggled == false then return end
@@ -177,7 +174,7 @@ fresnel._prompt = al_prompt {
end
}
-fresnel._widget = h.popup {
+fresnel._widget = qui.popup {
visible = false,
ontop = true,
placement = function(d)
@@ -192,12 +189,12 @@ fresnel._widget = h.popup {
widget = {
{
widget = wibox.container.background,
- bg = vars.colors.black,
- fg = vars.colors.dim.fg,
- shape = vars.shape,
+ bg = qvars.colors.black,
+ fg = qvars.colors.dim.fg,
+ shape = qvars.shape,
{
widget = wibox.container.margin,
- margins = vars.padding,
+ margins = qvars.padding,
{
{
widget = wibox.widget.textbox,
@@ -206,16 +203,16 @@ fresnel._widget = h.popup {
{
widget = wibox.container.margin,
margins = {
- left = vars.padding,
- right = vars.padding
+ left = qvars.padding,
+ right = qvars.padding
},
{
widget = wibox.container.constraint,
strategy = "max",
- height = vars.char_height,
+ height = qvars.char_height,
{
widget = wibox.container.background,
- fg = vars.colors.fg,
+ fg = qvars.colors.fg,
fresnel._prompt.textbox
}
}
@@ -232,10 +229,10 @@ fresnel._widget = h.popup {
{
widget = wibox.container.margin,
margins = {
- top = vars.padding
+ top = qvars.padding
},
{
- spacing = vars.padding,
+ spacing = qvars.padding,
layout = wibox.layout.fixed.vertical,
id = "entry_layout"
}
@@ -243,7 +240,7 @@ fresnel._widget = h.popup {
layout = wibox.layout.align.vertical
}
}
-fresnel._widget.maximum_height = vars.big_padding * 2 + (vars.padding * 2 + vars.char_height) * (1 + 10) + vars.padding + vars.padding * 9
+fresnel._widget.maximum_height = qvars.big_padding * 2 + (qvars.padding * 2 + qvars.char_height) * (1 + 10) + qvars.padding + qvars.padding * 9
function fresnel:show()
self._toggled = true
@@ -259,8 +256,8 @@ function fresnel:hide()
end
fresnel._timed = rubato.timed {
- duration = vars.anim_duration,
- intro = vars.anim_intro,
+ duration = qvars.anim_duration,
+ intro = qvars.anim_intro,
pos = 0,
subscribed = function(pos)
fresnel._widget.opacity = pos
diff --git a/.config/awesome/ui/fresnel/lenses/.gitignore b/.config/awesome/ui/fresnel/lenses/.gitignore
deleted file mode 100644
index 4fffb2f..0000000
--- a/.config/awesome/ui/fresnel/lenses/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/target
-/Cargo.lock
diff --git a/.config/awesome/ui/fresnel/lenses/Cargo.toml b/.config/awesome/ui/fresnel/lenses/Cargo.toml
deleted file mode 100644
index 4dcb8bc..0000000
--- a/.config/awesome/ui/fresnel/lenses/Cargo.toml
+++ /dev/null
@@ -1,18 +0,0 @@
-[package]
-name = "lenses"
-version = "0.1.0"
-edition = "2021"
-
-# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
-
-[dependencies]
-freedesktop_entry_parser = "1.3.0"
-meval = "0.2.0"
-mlua = { version = "0.8.7", features = [ "module", "lua54", "serialize" ] }
-parking_lot = "0.12.1"
-rayon = "1.6.1"
-serde = { version = "1.0.152", features = [ "derive" ] }
-url = "2.3.1"
-
-[lib]
-crate-type = ["cdylib"]
diff --git a/.config/awesome/ui/fresnel/lenses/install.log b/.config/awesome/ui/fresnel/lenses/install.log
deleted file mode 100644
index c0f5d63..0000000
--- a/.config/awesome/ui/fresnel/lenses/install.log
+++ /dev/null
@@ -1,10 +0,0 @@
-[03:45:24 2023-02-24] FETCHING Version 2.16.1
-[03:45:24 2023-02-24] CREATING /home/delta/.spicetify
-[03:45:24 2023-02-24] DOWNLOADING https://github.com/spicetify/spicetify-cli/releases/download/v2.16.1/spicetify-2.16.1-linux-amd64.tar.gz
-[03:45:34 2023-02-24] EXTRACTING /home/delta/.spicetify/spicetify.tar.gz
-[03:45:34 2023-02-24] SETTING EXECUTABLE PERMISSIONS TO /home/delta/.spicetify/spicetify
-[03:45:34 2023-02-24] REMOVING /home/delta/.spicetify/spicetify.tar.gz
-[03:45:34 2023-02-24] APPENDING /home/delta/.spicetify to PATH in /home/delta/.config/fish/config.fish
-[03:45:34 2023-02-24] Restart your shell to have spicetify in your PATH.
-[03:45:34 2023-02-24] spicetify v2.16.1 was installed successfully to /home/delta/.spicetify
-[03:45:34 2023-02-24] Run 'spicetify --help' to get started
diff --git a/.config/awesome/ui/fresnel/lenses/liblenses.so b/.config/awesome/ui/fresnel/lenses/liblenses.so
deleted file mode 120000
index 5f7fc45..0000000
--- a/.config/awesome/ui/fresnel/lenses/liblenses.so
+++ /dev/null
@@ -1 +0,0 @@
-target/liblenses.so \ No newline at end of file
diff --git a/.config/awesome/ui/fresnel/lenses/rustfmt.toml b/.config/awesome/ui/fresnel/lenses/rustfmt.toml
deleted file mode 100644
index 36afbbd..0000000
--- a/.config/awesome/ui/fresnel/lenses/rustfmt.toml
+++ /dev/null
@@ -1,3 +0,0 @@
-imports_layout = "Vertical"
-unstable_features = true
-group_imports = "StdExternalCrate"
diff --git a/.config/awesome/ui/fresnel/lenses/src/application.rs b/.config/awesome/ui/fresnel/lenses/src/application.rs
deleted file mode 100644
index 0cf6c1a..0000000
--- a/.config/awesome/ui/fresnel/lenses/src/application.rs
+++ /dev/null
@@ -1,107 +0,0 @@
-use std::{
- fs::read_dir,
- path::PathBuf,
-};
-
-use freedesktop_entry_parser as fd;
-use mlua::prelude::*;
-use parking_lot::Mutex;
-use rayon::prelude::*;
-use url::Url;
-
-use crate::entry::{
- entries_to_lua_table,
- Entry,
-};
-
-fn parse_entry<'a>(entry: fd::Entry, path: PathBuf) -> Result<Entry, ()> {
- let section = entry.section("Desktop Entry");
- let name = section.attr("Name").ok_or(())?.to_string();
-
- if section.attr("Type").ok_or(())? != "Application" {
- return Err(());
- }
-
- match section.attr("OnlyShowIn") {
- Some(_) => return Err(()),
- None => {}
- }
-
- match section.attr("Hidden") {
- Some(_) => return Err(()),
- None => {}
- }
-
- match section.attr("NoDisplay") {
- Some(_) => return Err(()),
- None => {}
- }
-
- let exec = section.attr("Exec").ok_or(())?.to_string();
- let mut new_exec = exec.clone();
- for (index, _) in exec.match_indices("%") {
- match exec.chars().nth(index + 1).unwrap().to_ascii_lowercase() {
- 'i' => match section.attr("Icon") {
- Some(icon) => new_exec.replace_range(index..index + 2, &format!("--icon {}", icon)),
- None => {}
- },
- 'c' => new_exec.replace_range(index..index + 2, &name),
- 'k' => new_exec.replace_range(index..index + 2, Url::from_file_path(&path)?.as_str()),
-
- 'f' | 'u' | 'v' | 'm' | 'd' | 'n' => new_exec.replace_range(index..index + 2, ""),
- _ => continue,
- }
- }
-
- Ok(Entry {
- message: name,
- exec: Some((
- new_exec,
- section
- .attr("Terminal")
- .unwrap_or("false")
- .parse()
- .map_err(drop)?,
- )),
- provider: "Application".to_string(),
- })
-}
-
-pub fn query(lua: &Lua, input: String) -> LuaResult<LuaTable> {
- let applications_dir = "/usr/share/applications";
- let entries = read_dir(applications_dir)?
- .map(|result| result.map(|e| e.path()))
- .collect::<Result<Vec<_>, std::io::Error>>()?;
-
- let entries = entries
- .into_iter()
- .filter(|e| match e.extension() {
- Some(ext) if ext == "desktop" => true,
- None | _ => false,
- })
- .collect::<Vec<_>>();
-
- let mut parsed_entries: Mutex<Vec<Entry>> = Mutex::new(Vec::new());
-
- entries.into_par_iter().for_each(|path| {
- let entry = match fd::parse_entry(&path) {
- Ok(entry) => entry,
- Err(_) => return,
- };
-
- match parse_entry(entry, path) {
- Ok(parsed_entry) => parsed_entries.lock().push(parsed_entry),
- Err(_) => return,
- }
- });
-
- Ok(entries_to_lua_table(
- parsed_entries
- .get_mut()
- .iter()
- .filter(|entry| entry.message.to_lowercase().contains(&input))
- .map(|entry| (*entry).clone())
- .collect(),
- lua,
- ))
-}
diff --git a/.config/awesome/ui/fresnel/lenses/src/calculator.rs b/.config/awesome/ui/fresnel/lenses/src/calculator.rs
deleted file mode 100644
index 792985d..0000000
--- a/.config/awesome/ui/fresnel/lenses/src/calculator.rs
+++ /dev/null
@@ -1,25 +0,0 @@
-use meval::eval_str;
-use mlua::prelude::*;
-
-use crate::entry::{
- entries_to_lua_table,
- Entry,
-};
-
-pub fn query(lua: &Lua, input: String) -> LuaResult<LuaTable> {
- println!("{:?}", input);
- let result = match eval_str(input.trim()) {
- Ok(ok) => ok.to_string(),
- Err(_) => return Ok(lua.create_table()?),
- };
-
- Ok(entries_to_lua_table(
- vec![Entry {
- message: result,
- exec: None,
- // icon: '',
- provider: "Calculator".to_string(),
- }],
- lua,
- ))
-}
diff --git a/.config/awesome/ui/fresnel/lenses/src/entry.rs b/.config/awesome/ui/fresnel/lenses/src/entry.rs
deleted file mode 100644
index d6e7467..0000000
--- a/.config/awesome/ui/fresnel/lenses/src/entry.rs
+++ /dev/null
@@ -1,20 +0,0 @@
-use mlua::{
- prelude::*,
- LuaSerdeExt,
-};
-use serde::Serialize;
-
-#[derive(Serialize, Clone)]
-pub struct Entry {
- pub message: String,
- pub exec: Option<(String, bool)>,
- // pub icon: char,
- pub provider: String,
-}
-
-pub fn entries_to_lua_table(entries: Vec<Entry>, lua: &Lua) -> LuaTable {
- match lua.to_value(&entries).unwrap() {
- LuaValue::Table(t) => t,
- _ => unreachable!(),
- }
-}
diff --git a/.config/awesome/ui/fresnel/lenses/src/lib.rs b/.config/awesome/ui/fresnel/lenses/src/lib.rs
deleted file mode 100644
index e4fc881..0000000
--- a/.config/awesome/ui/fresnel/lenses/src/lib.rs
+++ /dev/null
@@ -1,16 +0,0 @@
-mod application;
-mod calculator;
-mod entry;
-
-use mlua::prelude::*;
-
-#[mlua::lua_module]
-fn lenses(lua: &Lua) -> LuaResult<LuaTable> {
- let exports = lua.create_table()?;
- // lua.create_fun
- // exports.push(application::query)?;
- exports.set("1", lua.create_function(calculator::query)?)?;
- exports.set("2", lua.create_function(application::query)?)?;
-
- Ok(exports)
-}