Compare commits
11 Commits
9453784fb8
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
311a89c0e6
|
|||
|
874311fcb0
|
|||
|
e648c1f1a6
|
|||
|
f789df0f02
|
|||
|
417d48f0f5
|
|||
|
a60f923e59
|
|||
|
fff6a726d8
|
|||
|
ac91f71a92
|
|||
|
5fefee5e2c
|
|||
|
6f90fe5d28
|
|||
|
b043039705
|
@@ -37,7 +37,7 @@ https://github.com/user-attachments/assets/2550607a-48ea-4662-98ba-d26722b26b1b
|
|||||||
- Bar: ~~Waybar~~ | **Quickshell**
|
- Bar: ~~Waybar~~ | **Quickshell**
|
||||||
- Shell: (bash & fish) | **Zsh**
|
- Shell: (bash & fish) | **Zsh**
|
||||||
- Prompt: Oh My Posh | **Starship**
|
- Prompt: Oh My Posh | **Starship**
|
||||||
- Terminal: **Kitty** & (WezTerm | **Ghostty**)
|
- Terminal: **Kitty** | WezTerm | Ghostty
|
||||||
- Power Menu: **Wlogout** & Quickshell
|
- Power Menu: **Wlogout** & Quickshell
|
||||||
- Colorscheme: **Catppuccin Mocha**
|
- Colorscheme: **Catppuccin Mocha**
|
||||||
- App Launcher: ~~Rofi~~ | ~~Fuzzel~~ | **vicinae**
|
- App Launcher: ~~Rofi~~ | ~~Fuzzel~~ | **vicinae**
|
||||||
|
|||||||
Executable
+7
@@ -0,0 +1,7 @@
|
|||||||
|
include kitty.conf
|
||||||
|
|
||||||
|
remember_window_size false
|
||||||
|
initial_window_width 960
|
||||||
|
initial_window_height 720
|
||||||
|
|
||||||
|
window_padding_width 5
|
||||||
@@ -3,13 +3,13 @@ listen_on unix:/tmp/kitty
|
|||||||
shell_integration enabled
|
shell_integration enabled
|
||||||
|
|
||||||
# kitty-scrollback.nvim Kitten alias
|
# kitty-scrollback.nvim Kitten alias
|
||||||
action_alias kitty_scrollback_nvim kitten $HOME/.local/share/nvim/lazy/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py
|
# action_alias kitty_scrollback_nvim kitten $HOME/.local/share/nvim/lazy/kitty-scrollback.nvim/python/kitty_scrollback_nvim.py
|
||||||
# Browse scrollback buffer in nvim
|
# Browse scrollback buffer in nvim
|
||||||
map kitty_mod+h kitty_scrollback_nvim
|
# map kitty_mod+h kitty_scrollback_nvim
|
||||||
# Browse output of the last shell command in nvim
|
# Browse output of the last shell command in nvim
|
||||||
map kitty_mod+g kitty_scrollback_nvim --config ksb_builtin_last_cmd_output
|
# map kitty_mod+g kitty_scrollback_nvim --config ksb_builtin_last_cmd_output
|
||||||
# Show clicked command output in nvim
|
# Show clicked command output in nvim
|
||||||
mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output
|
# mouse_map ctrl+shift+right press ungrabbed combine : mouse_select_command_output : kitty_scrollback_nvim --config ksb_builtin_last_visited_cmd_output
|
||||||
|
|
||||||
# disable the stupid notification
|
# disable the stupid notification
|
||||||
confirm_os_window_close 0
|
confirm_os_window_close 0
|
||||||
|
|||||||
@@ -14,9 +14,9 @@ binds {
|
|||||||
Mod+E repeat=false { spawn "dolphin" "--new-window"; }
|
Mod+E repeat=false { spawn "dolphin" "--new-window"; }
|
||||||
Mod+Shift+E repeat=false { spawn "nautilus" "--new-window"; }
|
Mod+Shift+E repeat=false { spawn "nautilus" "--new-window"; }
|
||||||
Mod+W repeat=false { spawn-sh "zen || zen-browser"; }
|
Mod+W repeat=false { spawn-sh "zen || zen-browser"; }
|
||||||
Mod+B repeat=false { spawn-sh "pkill -x -n btop || ghostty +new-window -e btop"; }
|
Mod+B repeat=false { spawn-sh "pkill -x -n btop || kitty-floating -e btop"; }
|
||||||
Mod+Shift+T repeat=false { spawn "ghostty" "+new-window"; }
|
Mod+Shift+T repeat=false { spawn "kitty-floating"; }
|
||||||
Mod+Shift+Return repeat=false { spawn "ghostty" "+new-window"; }
|
Mod+Shift+Return repeat=false { spawn "kitty-floating"; }
|
||||||
Mod+T repeat=false { spawn "kitty"; }
|
Mod+T repeat=false { spawn "kitty"; }
|
||||||
Mod+Return repeat=false { spawn "kitty"; }
|
Mod+Return repeat=false { spawn "kitty"; }
|
||||||
Mod+Shift+W repeat=false { spawn "wallreel"; }
|
Mod+Shift+W repeat=false { spawn "wallreel"; }
|
||||||
@@ -163,7 +163,7 @@ binds {
|
|||||||
|
|
||||||
// Session
|
// Session
|
||||||
Mod+K allow-inhibiting=false repeat=false { quit; }
|
Mod+K allow-inhibiting=false repeat=false { quit; }
|
||||||
Mod+Shift+P allow-inhibiting=false repeat=false { spawn-sh "hyprlock & niri msg action power-off-monitors"; }
|
Mod+Shift+P allow-inhibiting=false repeat=false { spawn-sh "loginctl lock-session; niri msg action power-off-monitors"; }
|
||||||
Mod+L allow-inhibiting=false repeat=false { spawn "loginctl" "lock-session"; }
|
Mod+L allow-inhibiting=false repeat=false { spawn "loginctl" "lock-session"; }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ window-rule {
|
|||||||
window-rule {
|
window-rule {
|
||||||
match app-id="org.wezfurlong.wezterm"
|
match app-id="org.wezfurlong.wezterm"
|
||||||
match app-id="com.mitchellh.ghostty"
|
match app-id="com.mitchellh.ghostty"
|
||||||
|
match app-id="kitty-floating"
|
||||||
open-floating true
|
open-floating true
|
||||||
default-column-width { proportion 0.5; }
|
default-column-width { proportion 0.5; }
|
||||||
}
|
}
|
||||||
@@ -61,6 +62,13 @@ window-rule {
|
|||||||
open-floating true
|
open-floating true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// QQ
|
||||||
|
window-rule {
|
||||||
|
match app-id="QQ" title="资料卡"
|
||||||
|
match app-id="QQ" title="天气"
|
||||||
|
open-focused false
|
||||||
|
}
|
||||||
|
|
||||||
// Block from recording
|
// Block from recording
|
||||||
window-rule {
|
window-rule {
|
||||||
match app-id="org.mozilla.Thunderbird"
|
match app-id="org.mozilla.Thunderbird"
|
||||||
|
|||||||
@@ -91,10 +91,11 @@ layer-rule {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cursor {
|
window-rule {
|
||||||
xcursor-theme "Bibata-Modern-Ice"
|
match is-floating=true
|
||||||
xcursor-size 24
|
background-effect {
|
||||||
hide-when-typing
|
xray false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// I love rounded corners
|
// I love rounded corners
|
||||||
@@ -103,6 +104,12 @@ window-rule {
|
|||||||
clip-to-geometry true
|
clip-to-geometry true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cursor {
|
||||||
|
xcursor-theme "Bibata-Modern-Ice"
|
||||||
|
xcursor-size 24
|
||||||
|
hide-when-typing
|
||||||
|
}
|
||||||
|
|
||||||
recent-windows {
|
recent-windows {
|
||||||
highlight {
|
highlight {
|
||||||
active-color "#89b4fa"
|
active-color "#89b4fa"
|
||||||
|
|||||||
@@ -12,8 +12,9 @@ gtk-enable-input-feedback-sounds=0
|
|||||||
gtk-font-name=Sarasa UI SC, 10
|
gtk-font-name=Sarasa UI SC, 10
|
||||||
gtk-icon-theme-name=Papirus
|
gtk-icon-theme-name=Papirus
|
||||||
gtk-menu-images=true
|
gtk-menu-images=true
|
||||||
gtk-modules=colorreload-gtk-module
|
gtk-modules=colorreload-gtk-module:appmenu-gtk-module
|
||||||
gtk-primary-button-warps-slider=true
|
gtk-primary-button-warps-slider=true
|
||||||
|
gtk-shell-shows-menubar=1
|
||||||
gtk-sound-theme-name=ocean
|
gtk-sound-theme-name=ocean
|
||||||
gtk-theme-name=catppuccin-mocha-blue-standard+default
|
gtk-theme-name=catppuccin-mocha-blue-standard+default
|
||||||
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
gtk-toolbar-icon-size=GTK_ICON_SIZE_LARGE_TOOLBAR
|
||||||
|
|||||||
@@ -11,15 +11,23 @@ Item {
|
|||||||
property color fillColor: Colors.mRed
|
property color fillColor: Colors.mRed
|
||||||
property color _actualColor: Colors.mRed
|
property color _actualColor: Colors.mRed
|
||||||
property bool _expand: mouseArea.containsMouse
|
property bool _expand: mouseArea.containsMouse
|
||||||
|
property string displayText: Niri.castOutputs.length > 0 ? Niri.castOutputs.join(", ") : "Casting"
|
||||||
|
|
||||||
visible: RecordService.isRecording
|
visible: Niri.isCasting
|
||||||
implicitHeight: Math.max(symbolIcon.implicitHeight, textLabel.implicitHeight)
|
implicitHeight: Math.max(symbolIcon.implicitHeight, textLabel.implicitHeight)
|
||||||
implicitWidth: height + expander.implicitWidth
|
implicitWidth: height + expander.implicitWidth
|
||||||
|
|
||||||
|
Connections {
|
||||||
|
target: Niri
|
||||||
|
onCastOutputsListChanged: {
|
||||||
|
root.displayText = Niri.castOutputs.length > 0 ? Niri.castOutputs.join(", ") : "Casting";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SequentialAnimation {
|
SequentialAnimation {
|
||||||
id: blinkAnimation
|
id: blinkAnimation
|
||||||
|
|
||||||
running: RecordService.isRecording
|
running: root.visible
|
||||||
loops: Animation.Infinite
|
loops: Animation.Infinite
|
||||||
|
|
||||||
ColorAnimation {
|
ColorAnimation {
|
||||||
@@ -70,7 +78,7 @@ Item {
|
|||||||
anchors.verticalCenter: parent.verticalCenter
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
anchors.left: parent.left
|
anchors.left: parent.left
|
||||||
anchors.leftMargin: 5
|
anchors.leftMargin: 5
|
||||||
text: RecordService.recordingDisplay || "Recording"
|
text: root.displayText
|
||||||
color: root.fillColor
|
color: root.fillColor
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -92,12 +100,6 @@ Item {
|
|||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
cursorShape: Qt.PointingHandCursor
|
cursorShape: Qt.PointingHandCursor
|
||||||
hoverEnabled: true
|
hoverEnabled: true
|
||||||
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
|
|
||||||
onClicked: (mouse) => {
|
|
||||||
if (mouse.button === Qt.LeftButton)
|
|
||||||
RecordService.startOrStop();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Behavior on _actualColor {
|
Behavior on _actualColor {
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ Singleton {
|
|||||||
id: process
|
id: process
|
||||||
|
|
||||||
running: false
|
running: false
|
||||||
command: ["ghostty", "+new-window", "-e", "btop"]
|
command: ["kitty-floating", "-e", "btop"]
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,11 +35,16 @@ Singleton {
|
|||||||
})
|
})
|
||||||
property var workspaceCache: ({
|
property var workspaceCache: ({
|
||||||
})
|
})
|
||||||
|
property var castCache: ({
|
||||||
|
})
|
||||||
|
property var castOutputs: []
|
||||||
|
property bool isCasting: false
|
||||||
|
|
||||||
signal workspaceChanged()
|
signal workspaceChanged()
|
||||||
signal activeWindowChanged()
|
signal activeWindowChanged()
|
||||||
signal windowListChanged()
|
signal windowListChanged()
|
||||||
signal outputsChanged()
|
signal outputsChanged()
|
||||||
|
signal castOutputsListChanged()
|
||||||
|
|
||||||
function initialize() {
|
function initialize() {
|
||||||
niriEventStream.connected = true;
|
niriEventStream.connected = true;
|
||||||
@@ -434,6 +439,79 @@ Singleton {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function _syncCasts() {
|
||||||
|
isCasting = Object.keys(castCache).length > 0;
|
||||||
|
castOutputs = [];
|
||||||
|
for (const castId in castCache) {
|
||||||
|
const cast = castCache[castId];
|
||||||
|
if (cast.output) {
|
||||||
|
if (!castOutputs.includes(cast.output))
|
||||||
|
castOutputs.push(cast.output);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
castOutputsListChanged();
|
||||||
|
}
|
||||||
|
|
||||||
|
function _handleCastsChanged(eventData) {
|
||||||
|
try {
|
||||||
|
const casts = eventData.casts || [];
|
||||||
|
castCache = {
|
||||||
|
};
|
||||||
|
castOutputs = [];
|
||||||
|
for (const cast of casts) {
|
||||||
|
const castData = {
|
||||||
|
"id": cast.stream_id,
|
||||||
|
"stream_id": cast.stream_id,
|
||||||
|
"session_id": cast.session_id,
|
||||||
|
"kind": cast.kind,
|
||||||
|
"output": cast.target?.Output?.name,
|
||||||
|
"pid": cast.pid
|
||||||
|
};
|
||||||
|
castCache[castData.id] = castData;
|
||||||
|
}
|
||||||
|
_syncCasts();
|
||||||
|
} catch (e) {
|
||||||
|
Logger.e("NiriService", "Error handling CastsChanged:", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _handleCastStopped(eventData) {
|
||||||
|
try {
|
||||||
|
const castId = eventData.stream_id;
|
||||||
|
delete castCache[castId];
|
||||||
|
_syncCasts();
|
||||||
|
} catch (e) {
|
||||||
|
Logger.e("NiriService", "Error handling CastStopped:", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function _handleCastStartedOrChanged(eventData) {
|
||||||
|
try {
|
||||||
|
const cast = eventData.cast;
|
||||||
|
if (!cast)
|
||||||
|
return ;
|
||||||
|
if (cast.is_active === true) {
|
||||||
|
// If the cast is active, we can treat it as a new or updated cast
|
||||||
|
const castData = {
|
||||||
|
"id": cast.stream_id,
|
||||||
|
"stream_id": cast.stream_id,
|
||||||
|
"session_id": cast.session_id,
|
||||||
|
"kind": cast.kind,
|
||||||
|
"output": cast.target?.Output?.name,
|
||||||
|
"pid": cast.pid
|
||||||
|
};
|
||||||
|
castCache[castData.id] = castData;
|
||||||
|
} else {
|
||||||
|
// If the cast is not active, we should remove it from the cache
|
||||||
|
const castId = cast.stream_id;
|
||||||
|
delete castCache[castId];
|
||||||
|
}
|
||||||
|
_syncCasts();
|
||||||
|
} catch (e) {
|
||||||
|
Logger.e("NiriService", "Error handling CastStartedOrChanged:", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function switchToWorkspace(workspace) {
|
function switchToWorkspace(workspace) {
|
||||||
try {
|
try {
|
||||||
Quickshell.execDetached(["niri", "msg", "action", "focus-workspace", workspace.idx.toString()]);
|
Quickshell.execDetached(["niri", "msg", "action", "focus-workspace", workspace.idx.toString()]);
|
||||||
@@ -578,6 +656,12 @@ Singleton {
|
|||||||
_queryDisplayScales();
|
_queryDisplayScales();
|
||||||
else if (event.ScreenshotCaptured)
|
else if (event.ScreenshotCaptured)
|
||||||
_handleScreenshotCaptured(event.ScreenshotCaptured);
|
_handleScreenshotCaptured(event.ScreenshotCaptured);
|
||||||
|
else if (event.CastsChanged)
|
||||||
|
_handleCastsChanged(event.CastsChanged);
|
||||||
|
else if (event.CastStopped)
|
||||||
|
_handleCastStopped(event.CastStopped);
|
||||||
|
else if (event.CastStartedOrChanged)
|
||||||
|
_handleCastStartedOrChanged(event.CastStartedOrChanged);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
Logger.e("NiriService", "Error parsing event stream:", e, data);
|
Logger.e("NiriService", "Error parsing event stream:", e, data);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ Singleton {
|
|||||||
|
|
||||||
function openNote(path) {
|
function openNote(path) {
|
||||||
recentNotePath = path;
|
recentNotePath = path;
|
||||||
Quickshell.execDetached(["ghostty", "+new-window", "-e", "helix", path]);
|
Quickshell.execDetached(["kitty-floating", "-e", "helix", path]);
|
||||||
}
|
}
|
||||||
|
|
||||||
function openRecent() {
|
function openRecent() {
|
||||||
|
|||||||
Executable
+3
@@ -0,0 +1,3 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
kitty --app-id kitty-floating --config "$HOME/.config/kitty/floating.conf" "$@"
|
||||||
@@ -46,4 +46,5 @@ fi
|
|||||||
|
|
||||||
if (( $+commands[bat] )); then
|
if (( $+commands[bat] )); then
|
||||||
export BAT_THEME="Catppuccin Mocha"
|
export BAT_THEME="Catppuccin Mocha"
|
||||||
|
export BAT_STYLE="default,-numbers"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -180,17 +180,20 @@ if (( $+commands[git] )); then
|
|||||||
print -r -- "$repo"
|
print -r -- "$repo"
|
||||||
}
|
}
|
||||||
|
|
||||||
gc() {
|
gcl() {
|
||||||
local repo
|
local repo
|
||||||
repo=$(uy_git_repo_from_clipboard) || return 1
|
repo=$(uy_git_repo_from_clipboard) || return 1
|
||||||
git clone "$repo"
|
git clone "$repo"
|
||||||
}
|
}
|
||||||
|
|
||||||
pingo() {
|
pingo() {
|
||||||
cd "$HOME/Repositories/Uni" || return 1
|
builtin cd "$HOME/Repositories/Uni" || return 1
|
||||||
local repo
|
local repo
|
||||||
repo=$(uy_git_repo_from_clipboard) || return 1
|
repo=$(uy_git_repo_from_clipboard) || return 1
|
||||||
local dir_name="${repo:t:r}"
|
local dir_name="${repo:t:r}"
|
||||||
|
local course="${${dir_name%%[^[:lower:]]*}:u}"
|
||||||
|
mkdir -p "$course"
|
||||||
|
builtin cd "$course" || return 1
|
||||||
if [[ ! -d "$dir_name" ]]; then
|
if [[ ! -d "$dir_name" ]]; then
|
||||||
git clone "$repo" || return 1
|
git clone "$repo" || return 1
|
||||||
fi
|
fi
|
||||||
@@ -201,7 +204,7 @@ if (( $+commands[git] )); then
|
|||||||
disown
|
disown
|
||||||
else
|
else
|
||||||
echo "Opening method missing or invalid"
|
echo "Opening method missing or invalid"
|
||||||
cd "$dir_name"
|
builtin cd "$dir_name"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ fi
|
|||||||
|
|
||||||
[[ -f "$HOME/.cargo/env" ]] && source "$HOME/.cargo/env"
|
[[ -f "$HOME/.cargo/env" ]] && source "$HOME/.cargo/env"
|
||||||
(( $+commands[opam] )) && eval "$(opam env)"
|
(( $+commands[opam] )) && eval "$(opam env)"
|
||||||
|
prepend_path "$HOME/.cargo/bin"
|
||||||
prepend_path "$HOME/go/bin"
|
prepend_path "$HOME/go/bin"
|
||||||
prepend_path "$HOME/.local/bin"
|
prepend_path "$HOME/.local/bin"
|
||||||
prepend_path "$HOME/.local/scripts"
|
prepend_path "$HOME/.local/scripts"
|
||||||
|
|||||||
Submodule config/wallpaper/Pictures/backgrounds updated: deb1b1ec1c...5984c56815
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"label": "lock",
|
"label": "lock",
|
||||||
"action": "hyprlock &",
|
"action": "loginctl lock-session",
|
||||||
"text": "Lock",
|
"text": "Lock",
|
||||||
"keybind": "l"
|
"keybind": "l"
|
||||||
}
|
}
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
"label": "suspend",
|
"label": "suspend",
|
||||||
"action": "sleep 0.1 && systemctl suspend",
|
"action": "systemctl suspend",
|
||||||
"text": "Suspend",
|
"text": "Suspend",
|
||||||
"keybind": "u"
|
"keybind": "u"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,8 +78,8 @@ keymap = [
|
|||||||
], desc = "Toggle the current selection state" },
|
], desc = "Toggle the current selection state" },
|
||||||
{ on = "v", run = "toggle_all", desc = "Enter visual mode (selection mode)" },
|
{ on = "v", run = "toggle_all", desc = "Enter visual mode (selection mode)" },
|
||||||
{ on = "V", run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" },
|
{ on = "V", run = "visual_mode --unset", desc = "Enter visual mode (unset mode)" },
|
||||||
# { on = "<C-a>", run = "select_all --state=true", desc = "Select all files" },
|
{ on = "<C-a>", run = "toggle_all --state=true", desc = "Select all files" },
|
||||||
# { on = "<C-r>", run = "select_all --state=none", desc = "Inverse selection of all files" },
|
{ on = "<C-r>", run = "toggle_all", desc = "Inverse selection of all files" },
|
||||||
|
|
||||||
# Find
|
# Find
|
||||||
{ on = "<C-f>", run = "plugin fzf", desc = "Jump to a directory or reveal a file using fzf" },
|
{ on = "<C-f>", run = "plugin fzf", desc = "Jump to a directory or reveal a file using fzf" },
|
||||||
@@ -360,9 +360,9 @@ keymap = [
|
|||||||
[spot]
|
[spot]
|
||||||
keymap = [
|
keymap = [
|
||||||
# Navigation
|
# Navigation
|
||||||
{ on = "u", run = "arrow -1", desc = "Move up" },
|
{ on = "k", run = "arrow -1", desc = "Move up" },
|
||||||
{ on = "<Up>", run = "arrow -1", desc = "Move up" },
|
{ on = "<Up>", run = "arrow -1", desc = "Move up" },
|
||||||
{ on = "e", run = "arrow 1", desc = "Move down" },
|
{ on = "j", run = "arrow 1", desc = "Move down" },
|
||||||
{ on = "<Down>", run = "arrow 1", desc = "Move down" },
|
{ on = "<Down>", run = "arrow 1", desc = "Move down" },
|
||||||
|
|
||||||
# Close
|
# Close
|
||||||
@@ -385,8 +385,8 @@ keymap = [
|
|||||||
{ on = "<C-c>", run = "close", desc = "Close task manager" },
|
{ on = "<C-c>", run = "close", desc = "Close task manager" },
|
||||||
{ on = "w", run = "close", desc = "Close task manager" },
|
{ on = "w", run = "close", desc = "Close task manager" },
|
||||||
|
|
||||||
{ on = "u", run = "arrow -1", desc = "Move cursor up" },
|
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
|
||||||
{ on = "e", run = "arrow 1", desc = "Move cursor down" },
|
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
|
||||||
|
|
||||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||||
@@ -407,8 +407,8 @@ keymap = [
|
|||||||
{ on = "<C-c>", run = "close", desc = "Cancel selection" },
|
{ on = "<C-c>", run = "close", desc = "Cancel selection" },
|
||||||
{ on = "<Enter>", run = "close --submit", desc = "Submit the selection" },
|
{ on = "<Enter>", run = "close --submit", desc = "Submit the selection" },
|
||||||
|
|
||||||
{ on = "u", run = "arrow -1", desc = "Move cursor up" },
|
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
|
||||||
{ on = "e", run = "arrow 1", desc = "Move cursor down" },
|
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
|
||||||
|
|
||||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||||
@@ -499,15 +499,15 @@ keymap = [
|
|||||||
{ on = "P", run = "paste --before", desc = "Paste the copied characters before the cursor" },
|
{ on = "P", run = "paste --before", desc = "Paste the copied characters before the cursor" },
|
||||||
|
|
||||||
# Undo/Redo
|
# Undo/Redo
|
||||||
{ on = "l", run = "undo", desc = "Undo the last operation" },
|
{ on = "u", run = "undo", desc = "Undo the last operation" },
|
||||||
{ on = "<C-r>", run = "redo", desc = "Redo the last operation" },
|
{ on = "U", run = "redo", desc = "Redo the last operation" },
|
||||||
|
|
||||||
# Help
|
# Help
|
||||||
{ on = "~", run = "help", desc = "Open help" },
|
{ on = "~", run = "help", desc = "Open help" },
|
||||||
{ on = "<F1>", run = "help", desc = "Open help" },
|
{ on = "<F1>", run = "help", desc = "Open help" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[completion]
|
[cmp]
|
||||||
|
|
||||||
keymap = [
|
keymap = [
|
||||||
{ on = "<C-c>", run = "close", desc = "Cancel completion" },
|
{ on = "<C-c>", run = "close", desc = "Cancel completion" },
|
||||||
@@ -537,8 +537,8 @@ keymap = [
|
|||||||
{ on = "<C-c>", run = "close", desc = "Hide the help" },
|
{ on = "<C-c>", run = "close", desc = "Hide the help" },
|
||||||
|
|
||||||
# Navigation
|
# Navigation
|
||||||
{ on = "u", run = "arrow -1", desc = "Move cursor up" },
|
{ on = "k", run = "arrow -1", desc = "Move cursor up" },
|
||||||
{ on = "e", run = "arrow 1", desc = "Move cursor down" },
|
{ on = "j", run = "arrow 1", desc = "Move cursor down" },
|
||||||
|
|
||||||
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
{ on = "<Up>", run = "arrow -1", desc = "Move cursor up" },
|
||||||
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
{ on = "<Down>", run = "arrow 1", desc = "Move cursor down" },
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
[[plugin.deps]]
|
[[plugin.deps]]
|
||||||
use = "yazi-rs/plugins:git"
|
use = "yazi-rs/plugins:git"
|
||||||
rev = "43c6978"
|
rev = "ac82af3"
|
||||||
hash = "26db011a778f261d730d4f5f8bf24b3f"
|
hash = "6849444b7c2df08eace83f3f86fb55a3"
|
||||||
|
|
||||||
[[plugin.deps]]
|
[[plugin.deps]]
|
||||||
use = "yazi-rs/plugins:smart-enter"
|
use = "yazi-rs/plugins:smart-enter"
|
||||||
rev = "43c6978"
|
rev = "ac82af3"
|
||||||
hash = "187cc58ba7ac3befd49c342129e6f1b6"
|
hash = "187cc58ba7ac3befd49c342129e6f1b6"
|
||||||
|
|
||||||
[[plugin.deps]]
|
[[plugin.deps]]
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
> 嗯, 用户想问的似乎是如何使用
|
||||||
|
>
|
||||||
|
> - `qemu-user-static`
|
||||||
|
> - `qemu-user-static-binfmt`
|
||||||
|
>
|
||||||
|
> 通过
|
||||||
|
>
|
||||||
|
> ```bash
|
||||||
|
> sudo systemd-nspawn -M {{ rootfs-name }}
|
||||||
|
> ```
|
||||||
|
>
|
||||||
|
> 运行从
|
||||||
|
>
|
||||||
|
> ```bash
|
||||||
|
> wget https://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz
|
||||||
|
> ```
|
||||||
|
>
|
||||||
|
> 下载且通过
|
||||||
|
>
|
||||||
|
> ```bash
|
||||||
|
> sudo mkdir -p /var/lib/machines/{{ rootfs-name }} && \
|
||||||
|
> sudo bsdtar -xpf ArchLinuxARM-aarch64-latest.tar.gz -C /var/lib/machines/{{ rootfs-name }}
|
||||||
|
> ```
|
||||||
|
>
|
||||||
|
> 解压的 aarch64 架构的 archlinux rootfs. 但要不要提醒用户应该取消注释 `cat /etc/pacman.conf` 中的
|
||||||
|
>
|
||||||
|
> ```conf
|
||||||
|
> [options]
|
||||||
|
> #DisableSandboxFilesystem
|
||||||
|
> #DisableSandboxSyscalls
|
||||||
|
> ```
|
||||||
|
>
|
||||||
|
> 以禁用在 systemd-nspawn 中默认不可用的下载沙盒, 并且应该避免运行需要 setuid 的程序 (如 sudo), 因为 `/proc/sys/fs/binfmt_misc/qemu-aarch64` 中的 `flags` 缺失 `C` (Credentials) 标志, 导致可执行文件的 `s` 权限位被忽视? 不过如果真的需要 setuid 的话, 也可以通过
|
||||||
|
>
|
||||||
|
> ```bash
|
||||||
|
> sudo cp /usr/lib/binfmt.d/qemu-aarch64-static.conf /etc/binfmt.d/
|
||||||
|
> ```
|
||||||
|
>
|
||||||
|
> 复制一份并在末尾加上 C, 要不要一并告诉用户?
|
||||||
|
>
|
||||||
|
> 算了, 反正用户什么也不懂, 即使问题解决也只会原地消失, 一句感谢也不说.
|
||||||
|
|
||||||
|
_Baked for 27s._
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
## 问题
|
||||||
|
|
||||||
|
### VapourSynth 破坏性更新
|
||||||
|
|
||||||
|
> Tue May 5 09:08:30 CEST 2026
|
||||||
|
|
||||||
|
- `extra/vapoursynth` 包更新至 75 版本后 (此问题其实是 R74 引入的, 但他们似乎跳过了 R74 直接在近几天更新至 R75), vsscript 库文件符号链接关系如下:
|
||||||
|
- `/usr/lib/libvapoursynth-script.so` -> `python3.14/site-packages/vapoursynth/libvsscript.so`
|
||||||
|
- `/usr/lib/libvapoursynth-script.so.0` -> `python3.14/site-packages/vapoursynth/libvsscript.so`
|
||||||
|
|
||||||
|
这导致 ldconfig 根据 SONAME 字段建立的缓存条目变化, 例如从 `libvapoursynth-script.so.0 (libc,x86-64) => /usr/lib/libvapoursynth-script.so.0` 变为 `libvsscript.so (libc6,x86-64) => /usr/lib/libvsscript.so`, 可能会使其他未能重新链接的程序找不到对应库.
|
||||||
|
|
||||||
|
但该问题影响范围比较有限, 因为动态库并不完全根据 ldconfig 缓存条目加载 —— 如果文件名完全匹配也能正确加载, 毕竟 `/usr/lib/libvapoursynth-script.so.0` 仍然存在.
|
||||||
|
|
||||||
|
- 同时, 插件目录也从 `/usr/lib/vapoursynth/` 改为 `/usr/lib/python3.14/site-packages/vapoursynth/plugins/`, 很多包未能及时更新插件安装路径, 导致 vapoursynth 插件丢失.
|
||||||
|
|
||||||
|
extra 仓库中的 vapoursynth-plugin-\* 包均已改为类似如下动态查找插件安装路径的方式:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
install -Dm 755 libxxx.so -t "${pkgdir}"/$(python -c 'import vapoursynth;print(vapoursynth.get_plugin_dir())')/
|
||||||
|
```
|
||||||
|
|
||||||
|
所以不会出问题. 主要影响范围是打包者或上游硬编码插件安装路径为 `/usr/lib/vapoursynth` 的包, 其中包括少数 extra 仓库的包如 `extra/ffms2` 和众多 AUR 包.
|
||||||
|
|
||||||
|
- vapoursynth 不再在编译器 link libpython, 而必须在加载 libvsscript.so 时选择 python. 选哪个 python 由 `$HOME/.config/vapoursynth/vapoursynth.toml` 维护的映射关系决定, 格式类似:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
"/usr/lib/python3.14/site-packages/vapoursynth/libvsscript.so" = ["/usr/bin/python","/usr/lib/libpython3.14.so.1.0"]
|
||||||
|
```
|
||||||
|
|
||||||
|
可以运行 `vapoursynth config` 自动更新.
|
||||||
|
|
||||||
|
然而, 上文提到过新的 libvsscript.so 的 ldconfig 条目是 `libvsscript.so (libc6,x86-64) => /usr/lib/libvsscript.so`, 而 `vapoursynth config` 只会在 `vapoursynth.toml` 写入 `/usr/lib/python3.14/site-packages/vapoursynth/libvsscript.so` 的条目. 此时, 如果加载 libvsscript.so, 会从 ldconfig 拿到 `/usr/lib/libvsscript.so`,而 vapoursynth 在拿到此路径后不解 symlink, 查 `vapoursynth.toml` 时和任何条目都对不上, 导致加载失败. 报错类似:
|
||||||
|
|
||||||
|
```
|
||||||
|
Python executable and library path couldn't be determined despite automatic configuration. Run `vapoursynth config` to set it for this Python installation and then try again.
|
||||||
|
```
|
||||||
|
|
||||||
|
临时修复方式为在 `$HOME/.config/vapoursynth/vapoursynth.toml` 里手动加上针对 `/usr/lib/libvsscript.so` 符号链接的条目:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
"/usr/lib/libvsscript.so" = ["/usr/bin/python","/usr/lib/libpython3.14.so.1.0"]
|
||||||
|
```
|
||||||
|
|
||||||
|
如果运行 vapoursynth 此次更新前构建并链接的程序, 可能同样需要为 `/usr/lib/libvapoursynth-script.so.0` 准备对应条目:
|
||||||
|
|
||||||
|
```toml
|
||||||
|
"/usr/lib/libvapoursynth-script.so.0" = ["/usr/bin/python","/usr/lib/libpython3.14.so.1.0"]
|
||||||
|
```
|
||||||
|
|
||||||
|
影响范围为所有动态链接 vapoursynth 的二进制文件.
|
||||||
|
|
||||||
|
### CUDA 13.2 不兼容 GCC 16.1
|
||||||
|
|
||||||
|
> Mon May 4 15:39:17 CEST 2026
|
||||||
|
|
||||||
|
nvcc 和 gcc 兼容问题的历史重演. 随 GCC 16.1 发布, 以前用 GCC 15.2 能够编译的 CUDA 包会报一堆错误, 影响范围非常大.
|
||||||
|
|
||||||
|
解决方法为装 gcc15 等旧版本工具链, 并修改编译流程使 nvcc 使用指定编译器. 例如对于部分 Makefile:
|
||||||
|
|
||||||
|
```makefile
|
||||||
|
CUDA_CCBIN ?=
|
||||||
|
cudaccbin = $(if $(CUDA_CCBIN),-ccbin $(CUDA_CCBIN),)
|
||||||
|
|
||||||
|
...
|
||||||
|
|
||||||
|
nvcc $(cudaccbin) ...
|
||||||
|
```
|
||||||
|
|
||||||
|
但这样会带来一个问题: `gcc15` 是 AUR 包, 需要编译. 而这并不会是一个很愉快的过程. 除去超大的仓库体积, 超长时间的编译测试和超高的资源占用外, 过程中还可能会因为各种问题失败, 修复问题后可能还需要从头再来, 成本过高.
|
||||||
|
|
||||||
|
但好在 cachyos 有打包 `gcc14` 二进制包, 因此再降一个版本即可绕过编译过程. 但 AUR 上的众多打包者应该还是会选择 `gcc15`, 因此在有仓库打包 `gcc15` 二进制包或 NVIDIA 更新 CUDA 支持 GCC 16 之前, 几乎所有涉及 CUDA 的包仍然需要手动修改 PKGBUILD 构建.
|
||||||
|
|
||||||
|
另外还有几个可选方案:
|
||||||
|
|
||||||
|
- 可以用 clang++ 代替 nvcc, 但支持程度似乎有限 (`clang++: warning: CUDA version is newer than the latest partially supported version 12.9 [-Wunknown-cuda-version]`), 且对于部分已经在使用 nvcc 构建的项目可能需要较大幅度地修改编译参数和流程, 实用价值不高.
|
||||||
@@ -1,75 +0,0 @@
|
|||||||
things I have installed:
|
|
||||||
|
|
||||||
full KDE Plasma 6 setup
|
|
||||||
which can provide:
|
|
||||||
SDDM theme # Breeze is enough
|
|
||||||
kcalc/kalc # calculator(s), what's the difference?
|
|
||||||
kcolorchooser # or hyprpicker
|
|
||||||
pipewire & friends
|
|
||||||
...
|
|
||||||
|
|
||||||
# hypr*
|
|
||||||
hyprland
|
|
||||||
hypridle
|
|
||||||
hyprlock
|
|
||||||
hyprshot
|
|
||||||
hyprpicker
|
|
||||||
plugin hyprexpo # workspaces overview
|
|
||||||
plugin hyprorganize # https://github.com/Uyanide/hyprplug
|
|
||||||
|
|
||||||
# xdg-desktop-portal*
|
|
||||||
xdg-desktop-portal
|
|
||||||
xdg-desktop-portal-hyprland # not working with my Intel iGPU, but fine with NVIDIA dGPU
|
|
||||||
xdg-desktop-portal-gtk # for file picker
|
|
||||||
xdg-desktop-portal-gnome # why not?
|
|
||||||
|
|
||||||
# terminal emulator(s)
|
|
||||||
kitty # normal terminal
|
|
||||||
ghostty # floating terminal, for btop for example
|
|
||||||
|
|
||||||
# under surface
|
|
||||||
swww # wallpaper daemon
|
|
||||||
mako # notification daemon
|
|
||||||
gnome-keyring # --password-store=gnome-libsecret
|
|
||||||
wl-clipboard
|
|
||||||
cliphist # clipboard history
|
|
||||||
slurp # region selector
|
|
||||||
wf-recorder # screen recorder
|
|
||||||
brightnessctl
|
|
||||||
playerctl
|
|
||||||
pamixer
|
|
||||||
zoxide # better cd
|
|
||||||
eza # better ls
|
|
||||||
bat # better cat
|
|
||||||
|
|
||||||
# GUI
|
|
||||||
waybar
|
|
||||||
eww
|
|
||||||
wlogout
|
|
||||||
rofi(-wayland)
|
|
||||||
mpv
|
|
||||||
network-manager-applet # nm-applet
|
|
||||||
blueman # bluetooth GUI & applet
|
|
||||||
pwvucontrol
|
|
||||||
gnome-text-editor # or kwrite, notepad replacement
|
|
||||||
btop # system monitor
|
|
||||||
activate-linux # :/
|
|
||||||
polkit-gnome # polkit authentication agent
|
|
||||||
gradia # screenshots editor
|
|
||||||
|
|
||||||
# fonts & themes
|
|
||||||
maplemono-nf-cn / ttf-maplemono-nf-cn-unhinted (archlinuxcn)
|
|
||||||
Sour Gummy
|
|
||||||
ttf-meslo-nerd
|
|
||||||
ttf-jetbrains-mono-nerd
|
|
||||||
spicetify # spotify tweaks
|
|
||||||
spicetify-maketplace # spotify themes
|
|
||||||
nwg-look # theme of GTK apps
|
|
||||||
catppuccin-gtk-theme-mocha # theme of GTK apps
|
|
||||||
kvantum
|
|
||||||
|
|
||||||
# utils
|
|
||||||
bc
|
|
||||||
jq
|
|
||||||
python-colorthief
|
|
||||||
python-watchdog
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
things I have installed:
|
|
||||||
|
|
||||||
in addition to everything in `./hyprland-ricing.txt`:
|
|
||||||
|
|
||||||
xwayland-satellite
|
|
||||||
wlsunset
|
|
||||||
wezterm # replaces ghostty
|
|
||||||
+62
-47
@@ -7,49 +7,6 @@ grab
|
|||||||
| bash -s -- "$0"
|
| bash -s -- "$0"
|
||||||
exit $?
|
exit $?
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> The gibberish above is **NOT** meant to be copy-pasted into the terminal. It is a script that updates the [Full list](#full-list) section below, and should be run as:
|
|
||||||
>
|
|
||||||
> ```bash
|
|
||||||
> bash /path/to/dotfiles/memo/packages.md
|
|
||||||
> ```
|
|
||||||
|
|
||||||
## Notes
|
|
||||||
|
|
||||||
| | |
|
|
||||||
| --------- | ---------------------------- |
|
|
||||||
| alass | Subtitle sync; used in mpv |
|
|
||||||
| axel | CLI download accelerator |
|
|
||||||
| figlet | Draw large letters |
|
|
||||||
| foliate | GTK eBook reader |
|
|
||||||
| gearlever | AppImage manager |
|
|
||||||
| gping | Ping with better looking TUI |
|
|
||||||
| jp2a | JPEG to ASCII |
|
|
||||||
| nethogs | Network top |
|
|
||||||
| picard | Music tagger (MusicBrainz) |
|
|
||||||
| toilet | Better FIGlet |
|
|
||||||
| wev | Debug wayland events |
|
|
||||||
| yad | Fork of zenity |
|
|
||||||
| zenity | Display dialog boxes via cli |
|
|
||||||
|
|
||||||
## Some useful commands
|
|
||||||
|
|
||||||
Show packages sorted by size, with a preview of their info:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
expac -H M '%m\t%n' \
|
|
||||||
| sort -hr \
|
|
||||||
| fzf --delimiter='\t' --with-nth=1,2 --multi \
|
|
||||||
--preview 'yay -Qi {2}' \
|
|
||||||
--preview-window='right,70%,wrap'
|
|
||||||
```
|
|
||||||
|
|
||||||
Update the list below:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
bash /path/to/dotfiles/memo/packages.md
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- update-full-list:start
|
<!-- update-full-list:start
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
@@ -94,6 +51,49 @@ echo "Updated Full list in: $script_path"
|
|||||||
|
|
||||||
update-full-list:end -->
|
update-full-list:end -->
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> The gibberish above is **NOT** meant to be copy-pasted into the terminal. It is a script that updates the [Full list](#full-list) section below, and should be run as:
|
||||||
|
>
|
||||||
|
> ```bash
|
||||||
|
> bash /path/to/dotfiles/memo/packages.md
|
||||||
|
> ```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
| | |
|
||||||
|
| --------- | ---------------------------- |
|
||||||
|
| alass | Subtitle sync; used in mpv |
|
||||||
|
| axel | CLI download accelerator |
|
||||||
|
| figlet | Draw large letters |
|
||||||
|
| foliate | GTK eBook reader |
|
||||||
|
| gearlever | AppImage manager |
|
||||||
|
| gping | Ping with better looking TUI |
|
||||||
|
| jp2a | JPEG to ASCII |
|
||||||
|
| nethogs | Network top |
|
||||||
|
| picard | Music tagger (MusicBrainz) |
|
||||||
|
| toilet | Better FIGlet |
|
||||||
|
| wev | Debug wayland events |
|
||||||
|
| yad | Fork of zenity |
|
||||||
|
| zenity | Display dialog boxes via cli |
|
||||||
|
|
||||||
|
## Some useful commands
|
||||||
|
|
||||||
|
Show packages sorted by size, with a preview of their info:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
expac -H M '%m\t%n' \
|
||||||
|
| sort -hr \
|
||||||
|
| fzf --delimiter='\t' --with-nth=1,2 --multi \
|
||||||
|
--preview 'yay -Qi {2}' \
|
||||||
|
--preview-window='right,70%,wrap'
|
||||||
|
```
|
||||||
|
|
||||||
|
Update the list below:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
bash /path/to/dotfiles/memo/packages.md
|
||||||
|
```
|
||||||
|
|
||||||
## Full list
|
## Full list
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -106,8 +106,10 @@ archiso
|
|||||||
archlinux-contrib
|
archlinux-contrib
|
||||||
archlinuxcn-keyring
|
archlinuxcn-keyring
|
||||||
ark
|
ark
|
||||||
|
av1an
|
||||||
awww
|
awww
|
||||||
axel
|
axel
|
||||||
|
azure-cli
|
||||||
base
|
base
|
||||||
base-devel
|
base-devel
|
||||||
bash-completion
|
bash-completion
|
||||||
@@ -138,11 +140,13 @@ chafa
|
|||||||
chaotic-keyring
|
chaotic-keyring
|
||||||
chaotic-mirrorlist
|
chaotic-mirrorlist
|
||||||
chromium
|
chromium
|
||||||
|
chwd
|
||||||
claude-code
|
claude-code
|
||||||
cloc
|
cloc
|
||||||
cmake
|
cmake
|
||||||
cmatrix-git
|
cmatrix-git
|
||||||
composer
|
composer
|
||||||
|
compsize
|
||||||
corectrl
|
corectrl
|
||||||
cowfortune
|
cowfortune
|
||||||
cpu-x
|
cpu-x
|
||||||
@@ -181,7 +185,9 @@ fcitx5-qt
|
|||||||
fd
|
fd
|
||||||
fdkaac
|
fdkaac
|
||||||
ffmpeg-full
|
ffmpeg-full
|
||||||
|
ffms2
|
||||||
ffnvcodec-headers
|
ffnvcodec-headers
|
||||||
|
ffvship
|
||||||
figlet
|
figlet
|
||||||
filelight
|
filelight
|
||||||
fish
|
fish
|
||||||
@@ -197,6 +203,7 @@ frei0r-plugins
|
|||||||
fuzzel
|
fuzzel
|
||||||
fzf
|
fzf
|
||||||
gamemode
|
gamemode
|
||||||
|
gcc14
|
||||||
gdb
|
gdb
|
||||||
gdu
|
gdu
|
||||||
gearlever
|
gearlever
|
||||||
@@ -274,10 +281,11 @@ lib32-nvidia-utils
|
|||||||
lib32-opencl-nvidia
|
lib32-opencl-nvidia
|
||||||
lib32-vulkan-icd-loader
|
lib32-vulkan-icd-loader
|
||||||
lib32-vulkan-intel
|
lib32-vulkan-intel
|
||||||
|
libc++
|
||||||
libdbusmenu-lxqt
|
libdbusmenu-lxqt
|
||||||
libggml-git
|
|
||||||
libguestfs
|
libguestfs
|
||||||
libreoffice-still-zh-cn
|
libreoffice-still-zh-cn
|
||||||
|
libspng
|
||||||
libva-intel-driver
|
libva-intel-driver
|
||||||
libva-nvidia-driver
|
libva-nvidia-driver
|
||||||
libva-utils
|
libva-utils
|
||||||
@@ -289,8 +297,7 @@ linux-cachyos-headers
|
|||||||
linux-firmware
|
linux-firmware
|
||||||
linux-lts
|
linux-lts
|
||||||
linux-lts-headers
|
linux-lts-headers
|
||||||
linuxqq-nt
|
linuxqq
|
||||||
llama-cpp-git
|
|
||||||
llmfit-bin
|
llmfit-bin
|
||||||
localsend
|
localsend
|
||||||
lolcat
|
lolcat
|
||||||
@@ -304,7 +311,7 @@ man-pages
|
|||||||
mangohud
|
mangohud
|
||||||
matugen
|
matugen
|
||||||
meson
|
meson
|
||||||
mission-center
|
mkvtoolnix-cli
|
||||||
modprobed-db
|
modprobed-db
|
||||||
moonlight-qt
|
moonlight-qt
|
||||||
moreutils
|
moreutils
|
||||||
@@ -314,6 +321,7 @@ mpd-mpris
|
|||||||
mpv-full
|
mpv-full
|
||||||
mpv-mpris
|
mpv-mpris
|
||||||
msedit
|
msedit
|
||||||
|
namcap
|
||||||
nasm
|
nasm
|
||||||
nautilus
|
nautilus
|
||||||
nautilus-share
|
nautilus-share
|
||||||
@@ -332,7 +340,9 @@ nvidia-prime
|
|||||||
nvidia-settings
|
nvidia-settings
|
||||||
nvidia-utils
|
nvidia-utils
|
||||||
nvme-cli
|
nvme-cli
|
||||||
|
nvtop
|
||||||
nwg-look
|
nwg-look
|
||||||
|
oavif
|
||||||
obs-studio
|
obs-studio
|
||||||
obsidian
|
obsidian
|
||||||
okular
|
okular
|
||||||
@@ -381,6 +391,8 @@ python-yaml
|
|||||||
qbittorrent-enhanced
|
qbittorrent-enhanced
|
||||||
qdiskinfo
|
qdiskinfo
|
||||||
qemu-full
|
qemu-full
|
||||||
|
qemu-user-static
|
||||||
|
qemu-user-static-binfmt
|
||||||
qt5-graphicaleffects
|
qt5-graphicaleffects
|
||||||
qt5-quickcontrols
|
qt5-quickcontrols
|
||||||
qt5-quickcontrols2
|
qt5-quickcontrols2
|
||||||
@@ -407,6 +419,7 @@ quickshell-git
|
|||||||
qutebrowser
|
qutebrowser
|
||||||
rclone
|
rclone
|
||||||
reflector
|
reflector
|
||||||
|
resources
|
||||||
riscv64-linux-gnu-binutils
|
riscv64-linux-gnu-binutils
|
||||||
riscv64-linux-gnu-gcc
|
riscv64-linux-gnu-gcc
|
||||||
rsync
|
rsync
|
||||||
@@ -486,6 +499,7 @@ unrar
|
|||||||
usbip
|
usbip
|
||||||
uv
|
uv
|
||||||
valgrind
|
valgrind
|
||||||
|
vapoursynth-plugin-vship-cuda-git
|
||||||
ventoy-bin
|
ventoy-bin
|
||||||
vesktop-bin
|
vesktop-bin
|
||||||
vicinae
|
vicinae
|
||||||
@@ -568,6 +582,7 @@ yt-dlp
|
|||||||
zellij
|
zellij
|
||||||
zen-browser-bin
|
zen-browser-bin
|
||||||
zenity
|
zenity
|
||||||
|
zig
|
||||||
zoxide
|
zoxide
|
||||||
zram-generator
|
zram-generator
|
||||||
zsh
|
zsh
|
||||||
|
|||||||
Reference in New Issue
Block a user