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
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"; }
Print { spawn "screenshot-script" "full"; }
Mod+Shift+S { spawn "screenshot-script" "area"; }
@@ -451,8 +451,6 @@ binds {
Mod+Alt+Space { toggle-window-floating; }
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+M allow-inhibiting=false { quit; }

View File

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

View File

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

View File

@@ -190,7 +190,7 @@ local function setup(st, opts)
Linemode:children_add(function(self)
local url = self._file.url
local repo = st.dirs[tostring(url.base)]
local repo = st.dirs[tostring(url.base or url.parent)]
local code
if repo then
code = repo == CODES.excluded and CODES.ignored or st.repos[repo][tostring(url):sub(#repo + 2)]
@@ -208,7 +208,7 @@ end
---@type UnstableFetcher
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)
if not repo then
remove(tostring(cwd))

View File

@@ -2,37 +2,59 @@
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
- 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/).
## 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
1. Using yazi package manager
```sh
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
Add this to your `~/.config/yazi/init.lua`:
2. Add this line to your `~/.config/yazi/init.lua`:
```lua
require("yaziline"):setup()
```
Optionally, configure line:
## Configuration
This is default config, if you want to see presets go to [this section](#presets).
```lua
require("yaziline"):setup({
color = "#98c379", -- main theme color
secondary_color = "#5A6078", -- secondary color
color = "#98c379",
secondary_color = "#5A6078",
default_files_color = "darkgray", -- color of the file counter when it's inactive
selected_files_color = "white",
yanked_files_color = "green",
@@ -51,10 +73,18 @@ require("yaziline"):setup({
filename_max_length = 24, -- truncate when filename > 24
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
| | | | | | | | |
@@ -71,73 +101,16 @@ require("yaziline"):setup({
## Features
### Preconfigured separators
Choose your style:
### Presets
- `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](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](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](https://github.com/llanosrocas/yaziline.yazi/blob/master/.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)
![empty](https://github.com/llanosrocas/yaziline.yazi/blob/main/.github/images/empty.png)
### Selected and Yanked Counter
@@ -149,9 +122,9 @@ Displays the truncated filename on the left, which is useful for smaller windows
```lua
require("yaziline"):setup({
filename_max_length = 24, -- truncate when filename > 24
filename_truncate_length = 6, -- leave 6 chars on both sides
filename_truncate_separator = "..." -- the separator of the truncated filename
filename_max_length = 24,
filename_truncate_length = 6,
filename_truncate_separator = "..."
})
```

View File

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