yazi: update & niri: minor adjustments

This commit is contained in:
2025-11-23 21:23:58 +01:00
parent d4b4904b0e
commit 0c11bfbf80
6 changed files with 225 additions and 255 deletions

View File

@@ -335,7 +335,7 @@ binds {
// Actions // Actions
Mod+V { spawn-sh "pkill -x rofi || rofi-cliphist"; } Mod+V { spawn-sh "pkill -x rofi || rofi-cliphist"; }
Mod+Period { spawn "pkill -x rofi || rofi-emoji"; } Mod+Period { spawn-sh "pkill -x rofi || rofi-emoji"; }
Ctrl+Alt+Delete { spawn "pkill -x wlogout || wlogout -p layer-shell"; } Ctrl+Alt+Delete { spawn "pkill -x wlogout || wlogout -p layer-shell"; }
Print { spawn "screenshot-script" "full"; } Print { spawn "screenshot-script" "full"; }
Mod+Shift+S { spawn "screenshot-script" "area"; } Mod+Shift+S { spawn "screenshot-script" "area"; }
@@ -451,8 +451,6 @@ binds {
Mod+Alt+Space { toggle-window-floating; } Mod+Alt+Space { toggle-window-floating; }
Alt+Tab { switch-focus-between-floating-and-tiling; } Alt+Tab { switch-focus-between-floating-and-tiling; }
Mod+Ctrl+W { toggle-column-tabbed-display; }
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; } Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
Mod+M allow-inhibiting=false { quit; } Mod+M allow-inhibiting=false { quit; }

View File

@@ -1,6 +1,5 @@
* *
!.gitignore !.gitignore
!fetch.fish !fetch.fish
!fetch.fish.template
!sshs.fish !sshs.fish
!alias.fish !alias.fish

View File

@@ -1,11 +1,11 @@
[[plugin.deps]] [[plugin.deps]]
use = "yazi-rs/plugins:git" use = "yazi-rs/plugins:git"
rev = "d1c8baa" rev = "2301ff8"
hash = "63b6c222bf2103b3023389dde5e2ecfe" hash = "27ca02f49fd236b5cc7bf03c243859fe"
[[plugin.deps]] [[plugin.deps]]
use = "yazi-rs/plugins:smart-enter" use = "yazi-rs/plugins:smart-enter"
rev = "d1c8baa" rev = "2301ff8"
hash = "56fdabc96fc1f4d53c96eb884b02a5be" hash = "56fdabc96fc1f4d53c96eb884b02a5be"
[[plugin.deps]] [[plugin.deps]]
@@ -20,8 +20,8 @@ hash = "e17c11b605d989568a1d1741ca17c584"
[[plugin.deps]] [[plugin.deps]]
use = "llanosrocas/yaziline" use = "llanosrocas/yaziline"
rev = "e79b067" rev = "e7042a8"
hash = "f590c5b7d0730e8d6023b1b34ddf7ead" hash = "9c2ab18ff5368056904e4ebb61b17571"
[flavor] [flavor]
deps = [] deps = []

View File

@@ -190,7 +190,7 @@ local function setup(st, opts)
Linemode:children_add(function(self) Linemode:children_add(function(self)
local url = self._file.url local url = self._file.url
local repo = st.dirs[tostring(url.base)] local repo = st.dirs[tostring(url.base or url.parent)]
local code local code
if repo then if repo then
code = repo == CODES.excluded and CODES.ignored or st.repos[repo][tostring(url):sub(#repo + 2)] code = repo == CODES.excluded and CODES.ignored or st.repos[repo][tostring(url):sub(#repo + 2)]
@@ -208,7 +208,7 @@ end
---@type UnstableFetcher ---@type UnstableFetcher
local function fetch(_, job) local function fetch(_, job)
local cwd = job.files[1].url.base local cwd = job.files[1].url.base or job.files[1].url.parent
local repo = root(cwd) local repo = root(cwd)
if not repo then if not repo then
remove(tostring(cwd)) remove(tostring(cwd))

View File

@@ -2,37 +2,59 @@
Simple lualine-like status line for yazi. Simple lualine-like status line for yazi.
Read more about features and configuration [here](#features). ![angly](https://github.com/llanosrocas/yaziline.yazi/blob/main/.github/images/angly.png)
![preview-fullscreen](https://github.com/llanosrocas/yaziline.yazi/blob/main/.github/images/preview-fullscreen.png)
![preview](https://github.com/llanosrocas/yaziline.yazi/blob/master/.github/images/preview.png) All supported features are listed [here](#features). More presets are available [here](#presets).
## Requirements ## Requirements
- yazi version >= [25.5.28](https://github.com/sxyazi/yazi/releases/tag/v25.5.28) - yazi version >= [917e1f5](https://github.com/sxyazi/yazi/commit/917e1f54a10445f2e25147c4b81a3c77d8233632)
- Font with symbol support. For example [Nerd Fonts](https://www.nerdfonts.com/). - Font with symbol support. For example [Nerd Fonts](https://www.nerdfonts.com/).
## Compatibility
To keep the plugin up to date, there are two branches: `main` and `nightly`.
The `main` branch follows major yazi releases, while `nightly` is linked to specific yazi commits or changes.
This setup allows shipping stable versions on time, while giving early access to "cutting-edge" changes. See matrix below.
<details close>
<summary>Compatibility matrix</summary>
| yaziline | yazi |
| :------------------------------------------------------------------------: | ----------------------------------------------------------------------------------------- |
| [v2.5.2](https://github.com/llanosrocas/yaziline.yazi/releases/tag/v2.5.2) | [917e1f5](https://github.com/sxyazi/yazi/commit/917e1f54a10445f2e25147c4b81a3c77d8233632) |
| [v2.5.1](https://github.com/llanosrocas/yaziline.yazi/releases/tag/v2.5.1) | [917e1f5](https://github.com/sxyazi/yazi/commit/917e1f54a10445f2e25147c4b81a3c77d8233632) |
| [v2.5.0](https://github.com/llanosrocas/yaziline.yazi/releases/tag/v2.5.0) | [v25.5.28](https://github.com/sxyazi/yazi/releases/tag/v25.5.28) |
| [v2.4.0](https://github.com/llanosrocas/yaziline.yazi/releases/tag/v2.4.0) | [v25.4.8](https://github.com/sxyazi/yazi/releases/tag/v25.4.8) |
</details>
## Installation ## Installation
1. Using yazi package manager
```sh ```sh
ya pkg add llanosrocas/yaziline ya pkg add llanosrocas/yaziline
``` ```
Or manually copy `main.lua` to the `~/.config/yazi/plugins/yaziline.yazi/main.lua` _Or manually copy `main.lua` to the `~/.config/yazi/plugins/yaziline.yazi/main.lua`_
## Usage 2. Add this line to your `~/.config/yazi/init.lua`:
Add this to your `~/.config/yazi/init.lua`:
```lua ```lua
require("yaziline"):setup() require("yaziline"):setup()
``` ```
Optionally, configure line: ## Configuration
This is default config, if you want to see presets go to [this section](#presets).
```lua ```lua
require("yaziline"):setup({ require("yaziline"):setup({
color = "#98c379", -- main theme color color = "#98c379",
secondary_color = "#5A6078", -- secondary color secondary_color = "#5A6078",
default_files_color = "darkgray", -- color of the file counter when it's inactive default_files_color = "darkgray", -- color of the file counter when it's inactive
selected_files_color = "white", selected_files_color = "white",
yanked_files_color = "green", yanked_files_color = "green",
@@ -51,10 +73,18 @@ require("yaziline"):setup({
filename_max_length = 24, -- truncate when filename > 24 filename_max_length = 24, -- truncate when filename > 24
filename_truncate_length = 6, -- leave 6 chars on both sides filename_truncate_length = 6, -- leave 6 chars on both sides
filename_truncate_separator = "..." -- the separator of the truncated filename filename_truncate_separator = "..."
}) })
``` ```
By default yaziline uses color values from your `theme.toml`:
- mode and position font color: th.which.mask.bg
- default_files_color: which.separator_style.fg
- selected_files_color: mgr.count_selected.bg
- yanked_files_color: mgr.count_copied.bg
- cut_files_color: mgr.count_cut.bg
``` ```
 MODE  size  long_file...name.md  S 0 Y 0  MODE  size  long_file...name.md  S 0 Y 0
| | | | | | | | | | | | | | | | | |
@@ -71,73 +101,16 @@ require("yaziline"):setup({
## Features ## Features
### Preconfigured separators ### Presets
Choose your style:
- `angly` - `angly`
![angly](https://github.com/llanosrocas/yaziline.yazi/blob/master/.github/images/angly.png) ![angly](https://github.com/llanosrocas/yaziline.yazi/blob/main/.github/images/angly.png)
- `curvy` - `curvy`
![curvy](https://github.com/llanosrocas/yaziline.yazi/blob/master/.github/images/curvy.png) ![curvy](https://github.com/llanosrocas/yaziline.yazi/blob/main/.github/images/curvy.png)
- `liney` - `liney`
![liney](https://github.com/llanosrocas/yaziline.yazi/blob/master/.github/images/liney.png) ![liney](https://github.com/llanosrocas/yaziline.yazi/blob/main/.github/images/liney.png)
- `empty` - `empty`
![empty](https://github.com/llanosrocas/yaziline.yazi/blob/master/.github/images/empty.png) ![empty](https://github.com/llanosrocas/yaziline.yazi/blob/main/.github/images/empty.png)
### Separator customization
You can provide your own symbols for separators combined with preconfigured separators. For example:
```lua
require("yaziline"):setup({
-- Optinal config
separator_style = "angly", -- preconfigured style
separator_open = "", -- instead of 
separator_close = "", -- instead of 
separator_open_thin = "", -- change to anything
separator_close_thin = "", -- change to anything
separator_head = "", -- to match the style
separator_tail = "" -- to match the style
})
```
![empty](https://github.com/llanosrocas/yaziline.yazi/blob/master/.github/images/separator-combination.png)
_You can find more symbols [here](https://www.nerdfonts.com/cheat-sheet)_
### File actions icons
You can provide your own symbols for `select` and `yank`. For example:
```lua
require("yaziline"):setup({
-- Optinal config
select_symbol = "", -- "S" by default
yank_symbol = "󰆐" -- "Y" by default
})
```
![empty](https://github.com/llanosrocas/yaziline.yazi/blob/master/.github/images/file-actions.png)
_You can find more symbols [here](https://www.nerdfonts.com/cheat-sheet)_
### Colors and font weight
By default yaziline uses color values from your `theme.toml` (or flavor) but you can set custom colors in the `init.lua`:
```lua
require("yaziline"):setup({
color = "#98c379",
default_files_color = "darkgray",
selected_files_color = "white",
yanked_files_color = "green",
cut_files_color = "red",
})
```
For example, here is how my line looks like:
![preview-2](https://github.com/llanosrocas/yaziline.yazi/blob/master/.github/images/preview-2.png)
### Selected and Yanked Counter ### Selected and Yanked Counter
@@ -149,9 +122,9 @@ Displays the truncated filename on the left, which is useful for smaller windows
```lua ```lua
require("yaziline"):setup({ require("yaziline"):setup({
filename_max_length = 24, -- truncate when filename > 24 filename_max_length = 24,
filename_truncate_length = 6, -- leave 6 chars on both sides filename_truncate_length = 6,
filename_truncate_separator = "..." -- the separator of the truncated filename filename_truncate_separator = "..."
}) })
``` ```

View File

@@ -30,16 +30,16 @@ local function setup(_, options)
color = options.color or nil, color = options.color or nil,
secondary_color = options.secondary_color or nil, secondary_color = options.secondary_color or nil,
default_files_color = options.default_files_color default_files_color = options.default_files_color
or th.which.separator_style.fg or th.which.separator_style:fg()
or "darkgray", or "darkgray",
selected_files_color = options.selected_files_color selected_files_color = options.selected_files_color
or th.mgr.count_selected.bg or th.mgr.count_selected:bg()
or "white", or "white",
yanked_files_color = options.selected_files_color yanked_files_color = options.selected_files_color
or th.mgr.count_copied.bg or th.mgr.count_copied:bg()
or "green", or "green",
cut_files_color = options.cut_files_color cut_files_color = options.cut_files_color
or th.mgr.count_cut.bg or th.mgr.count_cut:bg()
or "red", or "red",
} }
@@ -55,10 +55,10 @@ local function setup(_, options)
local style = self:style() local style = self:style()
return ui.Line({ return ui.Line({
ui.Span(current_separator_style.separator_head) ui.Span(current_separator_style.separator_head)
:fg(config.color or style.main.bg), :fg(config.color or style.main:bg()),
ui.Span(" " .. mode .. " ") ui.Span(" " .. mode .. " ")
:fg(th.which.mask.bg) :fg(th.which.mask:bg())
:bg(config.color or style.main.bg), :bg(config.color or style.main:bg()),
}) })
end end
@@ -68,8 +68,8 @@ local function setup(_, options)
local style = self:style() local style = self:style()
return ui.Span(current_separator_style.separator_close .. " " .. ya.readable_size(size) .. " ") return ui.Span(current_separator_style.separator_close .. " " .. ya.readable_size(size) .. " ")
:fg(config.color or style.main.bg) :fg(config.color or style.main:bg())
:bg(config.secondary_color or th.which.separator_style.fg) :bg(config.secondary_color or th.which.separator_style:fg())
end end
function Status:utf8_sub(str, start_char, end_char) function Status:utf8_sub(str, start_char, end_char)
@@ -99,23 +99,23 @@ local function setup(_, options)
function Status:name() function Status:name()
local h = self._current.hovered local h = self._current.hovered
local style = self:style()
if not h then if not h then
return ui.Line({ return ui.Line({
ui.Span(current_separator_style.separator_close .. " ") ui.Span(current_separator_style.separator_close .. " ")
:fg(config.secondary_color or th.which.separator_style.fg), :fg(config.secondary_color or th.which.separator_style:fg()),
ui.Span("Empty dir") ui.Span("Empty dir")
:fg(config.color or style.main.bg), :fg(config.color or style.main:bg()),
}) })
end end
local truncated_name = self:truncate_name(h.name, config.filename_max_length) local truncated_name = self:truncate_name(h.name, config.filename_max_length)
local style = self:style()
return ui.Line({ return ui.Line({
ui.Span(current_separator_style.separator_close .. " ") ui.Span(current_separator_style.separator_close .. " ")
:fg(config.secondary_color or th.which.separator_style.fg), :fg(config.secondary_color or th.which.separator_style:fg()),
ui.Span(truncated_name) ui.Span(truncated_name)
:fg(config.color or style.main.bg), :fg(config.color or style.main:bg()),
}) })
end end
@@ -141,7 +141,7 @@ local function setup(_, options)
return ui.Line({ return ui.Line({
ui.Span(" " .. current_separator_style.separator_close_thin .. " ") ui.Span(" " .. current_separator_style.separator_close_thin .. " ")
:fg(th.which.separator_style.fg), :fg(th.which.separator_style:fg()),
ui.Span(config.select_symbol .. " " .. files_selected .. " ") ui.Span(config.select_symbol .. " " .. files_selected .. " ")
:fg(selected_fg), :fg(selected_fg),
ui.Span(yanked_text .. " ") ui.Span(yanked_text .. " ")
@@ -160,7 +160,7 @@ local function setup(_, options)
local time = (cha.mtime or 0) // 1 local time = (cha.mtime or 0) // 1
return ui.Span(os.date("%Y-%m-%d %H:%M", time) .. " " .. current_separator_style.separator_open_thin .. " ") return ui.Span(os.date("%Y-%m-%d %H:%M", time) .. " " .. current_separator_style.separator_open_thin .. " ")
:fg(th.which.separator_style.fg) :fg(th.which.separator_style:fg())
end end
function Status:percent() function Status:percent()
@@ -182,13 +182,13 @@ local function setup(_, options)
local style = self:style() local style = self:style()
return ui.Line({ return ui.Line({
ui.Span(" " .. current_separator_style.separator_open) ui.Span(" " .. current_separator_style.separator_open)
:fg(config.secondary_color or th.which.separator_style.fg), :fg(config.secondary_color or th.which.separator_style:fg()),
ui.Span(percent) ui.Span(percent)
:fg(config.color or style.main.bg) :fg(config.color or style.main:bg())
:bg(config.secondary_color or th.which.separator_style.fg), :bg(config.secondary_color or th.which.separator_style:fg()),
ui.Span(current_separator_style.separator_open) ui.Span(current_separator_style.separator_open)
:fg(config.color or style.main.bg) :fg(config.color or style.main:bg())
:bg(config.secondary_color or th.which.separator_style.fg), :bg(config.secondary_color or th.which.separator_style:fg()),
}) })
end end
@@ -199,9 +199,9 @@ local function setup(_, options)
local style = self:style() local style = self:style()
return ui.Line({ return ui.Line({
ui.Span(string.format(" %2d/%-2d ", math.min(cursor + 1, length), length)) ui.Span(string.format(" %2d/%-2d ", math.min(cursor + 1, length), length))
:fg(th.which.mask.bg) :fg(th.which.mask:bg())
:bg(config.color or style.main.bg), :bg(config.color or style.main:bg()),
ui.Span(current_separator_style.separator_tail):fg(config.color or style.main.bg), ui.Span(current_separator_style.separator_tail):fg(config.color or style.main:bg()),
}) })
end end