Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8630f6318e | |||
| 0784b17f26 | |||
| cd2d55137b | |||
| 2ad618af1b |
@@ -6,7 +6,7 @@ background {
|
|||||||
|
|
||||||
input-field {
|
input-field {
|
||||||
monitor =
|
monitor =
|
||||||
size = 10%, 3%
|
size = 15%, 5%
|
||||||
font_family = Noto Sans
|
font_family = Noto Sans
|
||||||
dots_size = 0.08
|
dots_size = 0.08
|
||||||
}
|
}
|
||||||
@@ -15,6 +15,6 @@ input-field {
|
|||||||
label {
|
label {
|
||||||
monitor =
|
monitor =
|
||||||
text = $TIME
|
text = $TIME
|
||||||
font_size = 80
|
font_size = 200
|
||||||
position = 0, 200
|
position = 0, 200
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,19 +3,18 @@
|
|||||||
"spacing": 2, // Gaps between modules (4px)
|
"spacing": 2, // Gaps between modules (4px)
|
||||||
"modules-left": [
|
"modules-left": [
|
||||||
"hyprland/workspaces",
|
"hyprland/workspaces",
|
||||||
"hyprland/mode",
|
"hyprland/submap",
|
||||||
"hyprland/scratchpad",
|
|
||||||
"hyprland/window"
|
"hyprland/window"
|
||||||
],
|
],
|
||||||
"modules-center": [
|
//"modules-center": [
|
||||||
//"sway/window"
|
//"sway/window"
|
||||||
"clock",
|
//],
|
||||||
],
|
|
||||||
"modules-right": [
|
"modules-right": [
|
||||||
//"mpd",
|
//"mpd",
|
||||||
"pulseaudio",
|
"pulseaudio",
|
||||||
//"network",
|
//"network",
|
||||||
"battery",
|
"battery",
|
||||||
|
"clock",
|
||||||
"tray"
|
"tray"
|
||||||
//"custom/power"
|
//"custom/power"
|
||||||
],
|
],
|
||||||
@@ -40,7 +39,7 @@
|
|||||||
"clock": {
|
"clock": {
|
||||||
//"timezone": "America/Los_Angeles",
|
//"timezone": "America/Los_Angeles",
|
||||||
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
"tooltip-format": "<big>{:%Y %B}</big>\n<tt><small>{calendar}</small></tt>",
|
||||||
"format": "{:%c}",
|
"format": "{:%r %Y-%m-%d}",
|
||||||
//"format": "{:%R %p %Y-%m-%d}",
|
//"format": "{:%R %p %Y-%m-%d}",
|
||||||
//"format-alt": "{:%Y-%m-%d}"
|
//"format-alt": "{:%Y-%m-%d}"
|
||||||
},
|
},
|
||||||
@@ -50,8 +49,7 @@
|
|||||||
"warning": 30,
|
"warning": 30,
|
||||||
"critical": 15
|
"critical": 15
|
||||||
},
|
},
|
||||||
//"format": "{time} {capacity}% {icon}",
|
"format": "{time} {capacity}% {icon}",
|
||||||
"format": "{capacity}% {icon}",
|
|
||||||
"format-full": "{capacity}% {icon}",
|
"format-full": "{capacity}% {icon}",
|
||||||
"format-charging": "{capacity}% C",
|
"format-charging": "{capacity}% C",
|
||||||
"format-plugged": "{capacity}% P",
|
"format-plugged": "{capacity}% P",
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
/*font-family: "JetBrainsMono NF";*/
|
/*font-family: "JetBrainsMono NF";*/
|
||||||
font-family: "JetBrainsMonoNFM-Regular";
|
font-family: "JetBrainsMonoNFM-Regular";
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: bold;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
window#waybar {
|
window#waybar {
|
||||||
@@ -49,7 +49,7 @@ button:hover {
|
|||||||
|
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
/*background-color: transparent;*/
|
background-color: transparent;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,15 +57,25 @@ button:hover {
|
|||||||
background: rgba(0, 0, 0, 0.2);
|
background: rgba(0, 0, 0, 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.focused {
|
#workspaces button.active {
|
||||||
background-color: #64727D;
|
background-color: #eb4d4b;
|
||||||
/*box-shadow: inset 0 -3px #ffffff;*/
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
color: #ffffff;
|
||||||
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.urgent {
|
#workspaces button.urgent {
|
||||||
background-color: #eb4d4b;
|
background-color: #eb4d4b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#workspaces button.visible {
|
||||||
|
background-color: #64727D;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.empty {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
#mode {
|
#mode {
|
||||||
background-color: #64727D;
|
background-color: #64727D;
|
||||||
box-shadow: inset 0 -3px #ffffff;
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
@@ -93,17 +103,17 @@ button:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#window,
|
#window,
|
||||||
#workspaces {
|
#workspaces-hyprland {
|
||||||
margin: 0 4px;
|
margin: 0 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If workspaces is the leftmost module, omit left margin */
|
/* If workspaces is the leftmost module, omit left margin */
|
||||||
.modules-left > widget:first-child > #workspaces {
|
.modules-left > widget:first-child > #workspaces-hyprland {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If workspaces is the rightmost module, omit right margin */
|
/* If workspaces is the rightmost module, omit right margin */
|
||||||
.modules-right > widget:last-child > #workspaces {
|
.modules-right > widget:last-child > #workspaces-hyprland {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,52 @@
|
|||||||
|
return {
|
||||||
|
"huggingface/llm.nvim",
|
||||||
|
config = function()
|
||||||
|
local llm = require('llm')
|
||||||
|
llm.setup({
|
||||||
|
api_token = nil, -- cf Install paragraph
|
||||||
|
model = "Qwen/Qwen3.5-9B", -- the model ID, behavior depends on backend
|
||||||
|
backend = "openai", -- backend ID, "huggingface" | "ollama" | "openai" | "tgi"
|
||||||
|
url = "http://192.168.200.12:8123", -- the http url of the backend
|
||||||
|
tokens_to_clear = { "<|endoftext|>" }, -- tokens to remove from the model's output
|
||||||
|
-- parameters that are added to the request body, values are arbitrary, you can set any field:value pair here it will be passed as is to the backend
|
||||||
|
request_body = {
|
||||||
|
temperature=0.6,
|
||||||
|
top_p=0.95,
|
||||||
|
top_k=20,
|
||||||
|
min_p=0.0,
|
||||||
|
presence_penalty=0.0,
|
||||||
|
repetition_penalty=1.0,
|
||||||
|
max_new_tokens = 2000,
|
||||||
|
chat_template_kwargs='{"enable_thinking": False}',
|
||||||
|
},
|
||||||
|
-- set this if the model supports fill in the middle
|
||||||
|
fim = {
|
||||||
|
enabled = true,
|
||||||
|
prefix = "<|fim_prefix|>",
|
||||||
|
middle = "<|fim_middle|>",
|
||||||
|
suffix = "<|fim_suffix|>",
|
||||||
|
},
|
||||||
|
debounce_ms = 100,
|
||||||
|
accept_keymap = "<Tab>",
|
||||||
|
dismiss_keymap = "<S-Tab>",
|
||||||
|
tls_skip_verify_insecure = false,
|
||||||
|
-- llm-ls configuration, cf llm-ls section
|
||||||
|
--lsp = {
|
||||||
|
-- bin_path = nil,
|
||||||
|
-- host = nil,
|
||||||
|
-- port = nil,
|
||||||
|
-- cmd_env = nil, -- or { LLM_LOG_LEVEL = "DEBUG" } to set the log level of llm-ls
|
||||||
|
-- version = "0.5.3",
|
||||||
|
--},
|
||||||
|
tokenizer = {
|
||||||
|
repository = "Qwen/Qwen3.5-9B",
|
||||||
|
api_token = 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,
|
||||||
|
|
||||||
|
}, -- cf Tokenizer paragraph
|
||||||
|
context_window = 5000, -- max number of tokens for the context window
|
||||||
|
enable_suggestions_on_startup = false,
|
||||||
|
enable_suggestions_on_files = "*", -- pattern matching syntax to enable suggestions on specific files, either a string or a list of strings
|
||||||
|
disable_url_path_completion = false, -- cf Backend
|
||||||
|
})
|
||||||
|
end
|
||||||
|
}
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
return {
|
|
||||||
"frankroeder/parrot.nvim",
|
|
||||||
dependencies = { 'ibhagwan/fzf-lua', 'nvim-lua/plenary.nvim' },
|
|
||||||
-- optionally include "folke/noice.nvim" or "rcarriga/nvim-notify" for beautiful notifications
|
|
||||||
config = function()
|
|
||||||
require("parrot").setup {
|
|
||||||
-- Providers must be explicitly set up to make them available.
|
|
||||||
providers = {
|
|
||||||
ollama = {
|
|
||||||
name = "ollama",
|
|
||||||
endpoint = "http://localhost:11434/api/chat",
|
|
||||||
api_key = "", -- not required for local Ollama
|
|
||||||
--params = {
|
|
||||||
-- chat = { temperature = 1.5, top_p = 1, num_ctx = 8192, min_p = 0.05 },
|
|
||||||
-- command = { temperature = 1.5, top_p = 1, num_ctx = 8192, min_p = 0.05 },
|
|
||||||
--},
|
|
||||||
--topic_prompt = [[
|
|
||||||
--Summarize the chat above and only provide a short headline of 2 to 3
|
|
||||||
--words without any opening phrase like "Sure, here is the summary",
|
|
||||||
--"Sure! Here's a shortheadline summarizing the chat" or anything similar.
|
|
||||||
--]],
|
|
||||||
--topic = {
|
|
||||||
-- model = "llama3.2",
|
|
||||||
-- params = { max_tokens = 32 },
|
|
||||||
--},
|
|
||||||
headers = {
|
|
||||||
["Content-Type"] = "application/json",
|
|
||||||
},
|
|
||||||
models = {
|
|
||||||
"glm-4.7-flash:latest",
|
|
||||||
},
|
|
||||||
resolve_api_key = function()
|
|
||||||
return true
|
|
||||||
end,
|
|
||||||
process_stdout = function(response)
|
|
||||||
if response:match "message" and response:match "content" then
|
|
||||||
local ok, data = pcall(vim.json.decode, response)
|
|
||||||
if ok and data.message and data.message.content then
|
|
||||||
return data.message.content
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end,
|
|
||||||
get_available_models = function(self)
|
|
||||||
local url = self.endpoint:gsub("chat", "")
|
|
||||||
local logger = require "parrot.logger"
|
|
||||||
local job = Job:new({
|
|
||||||
command = "curl",
|
|
||||||
args = { "-H", "Content-Type: application/json", url .. "tags" },
|
|
||||||
}):sync()
|
|
||||||
local parsed_response = require("parrot.utils").parse_raw_response(job)
|
|
||||||
self:process_onexit(parsed_response)
|
|
||||||
if parsed_response == "" then
|
|
||||||
logger.debug("Ollama server not running on " .. endpoint_api)
|
|
||||||
return {}
|
|
||||||
end
|
|
||||||
|
|
||||||
local success, parsed_data = pcall(vim.json.decode, parsed_response)
|
|
||||||
if not success then
|
|
||||||
logger.error("Ollama - Error parsing JSON: " .. vim.inspect(parsed_data))
|
|
||||||
return {}
|
|
||||||
end
|
|
||||||
|
|
||||||
if not parsed_data.models then
|
|
||||||
logger.error "Ollama - No models found. Please use 'ollama pull' to download one."
|
|
||||||
return {}
|
|
||||||
end
|
|
||||||
|
|
||||||
local names = {}
|
|
||||||
for _, model in ipairs(parsed_data.models) do
|
|
||||||
table.insert(names, model.name)
|
|
||||||
end
|
|
||||||
|
|
||||||
return names
|
|
||||||
end,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
}
|
|
||||||
end,
|
|
||||||
}
|
|
||||||
+5
-1
@@ -6,8 +6,8 @@ font 'JetBrainsMonoNFM-Regular' 9
|
|||||||
#set $mod Mod1
|
#set $mod Mod1
|
||||||
set $mod Mod4
|
set $mod Mod4
|
||||||
|
|
||||||
#set $term kitty -1
|
|
||||||
set $term kitty
|
set $term kitty
|
||||||
|
#set $term foot
|
||||||
#set $term ghostty
|
#set $term ghostty
|
||||||
|
|
||||||
set $menu wofi -S drun -GI
|
set $menu wofi -S drun -GI
|
||||||
@@ -17,6 +17,10 @@ set $down j
|
|||||||
set $up k
|
set $up k
|
||||||
set $right l
|
set $right l
|
||||||
|
|
||||||
|
|
||||||
|
#env GDK_BACKEND=wayland
|
||||||
|
#env QT_QPA_PLATFORM=wayland
|
||||||
|
|
||||||
set $laptop eDP-1
|
set $laptop eDP-1
|
||||||
include ~/.config/sway/config.d/*
|
include ~/.config/sway/config.d/*
|
||||||
|
|
||||||
|
|||||||
@@ -2,10 +2,9 @@
|
|||||||
{
|
{
|
||||||
"spacing": 2, // Gaps between modules (4px)
|
"spacing": 2, // Gaps between modules (4px)
|
||||||
"modules-left": [
|
"modules-left": [
|
||||||
"sway/workspaces",
|
"hyprland/workspaces",
|
||||||
"sway/mode",
|
"hyprland/submap",
|
||||||
"sway/scratchpad",
|
"hyprland/window"
|
||||||
"sway/window"
|
|
||||||
],
|
],
|
||||||
//"modules-center": [
|
//"modules-center": [
|
||||||
//"sway/window"
|
//"sway/window"
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ button:hover {
|
|||||||
|
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
padding: 0 4px;
|
padding: 0 4px;
|
||||||
/*background-color: transparent;*/
|
background-color: transparent;
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -57,15 +57,25 @@ button:hover {
|
|||||||
background: rgba(0, 0, 0, 0.2);
|
background: rgba(0, 0, 0, 0.2);
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.focused {
|
#workspaces button.active {
|
||||||
background-color: #64727D;
|
background-color: #eb4d4b;
|
||||||
/*box-shadow: inset 0 -3px #ffffff;*/
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
|
color: #ffffff;
|
||||||
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.urgent {
|
#workspaces button.urgent {
|
||||||
background-color: #eb4d4b;
|
background-color: #eb4d4b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#workspaces button.visible {
|
||||||
|
background-color: #64727D;
|
||||||
|
}
|
||||||
|
|
||||||
|
#workspaces button.empty {
|
||||||
|
background-color: transparent;
|
||||||
|
}
|
||||||
|
|
||||||
#mode {
|
#mode {
|
||||||
background-color: #64727D;
|
background-color: #64727D;
|
||||||
box-shadow: inset 0 -3px #ffffff;
|
box-shadow: inset 0 -3px #ffffff;
|
||||||
@@ -93,17 +103,17 @@ button:hover {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#window,
|
#window,
|
||||||
#workspaces {
|
#workspaces-hyprland {
|
||||||
margin: 0 4px;
|
margin: 0 4px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If workspaces is the leftmost module, omit left margin */
|
/* If workspaces is the leftmost module, omit left margin */
|
||||||
.modules-left > widget:first-child > #workspaces {
|
.modules-left > widget:first-child > #workspaces-hyprland {
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If workspaces is the rightmost module, omit right margin */
|
/* If workspaces is the rightmost module, omit right margin */
|
||||||
.modules-right > widget:last-child > #workspaces {
|
.modules-right > widget:last-child > #workspaces-hyprland {
|
||||||
margin-right: 0;
|
margin-right: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user