mirror of
https://github.com/anotherhadi/nixy.git
synced 2026-08-21 10:45:49 +02:00
Waybar here i come (#58)
This commit is contained in:
@@ -1,66 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cursorShaders = pkgs.fetchFromGitHub {
|
||||
owner = "sahaj-b";
|
||||
repo = "ghostty-cursor-shaders";
|
||||
rev = "06d4e90fb5410e9c4d0b3131584060adddf89406";
|
||||
hash = "sha256-G/UIr1bKnxn1AcHl/4FL/jou6b7M2VeREslYVELxdmw=";
|
||||
};
|
||||
c = config.lib.stylix.colors;
|
||||
in {
|
||||
home.sessionVariables = {
|
||||
TERMINAL = "ghostty";
|
||||
TERM = "ghostty";
|
||||
};
|
||||
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
installVimSyntax = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
window-padding-x = 10;
|
||||
confirm-close-surface = false;
|
||||
window-padding-y = 10;
|
||||
clipboard-read = "allow";
|
||||
clipboard-write = "allow";
|
||||
copy-on-select = "clipboard";
|
||||
app-notifications = false;
|
||||
custom-shader = "${cursorShaders}/cursor_warp.glsl";
|
||||
custom-shader-animation = "always";
|
||||
keybind = [
|
||||
# "ctrl+j=goto_split:left"
|
||||
# "ctrl+i=goto_split:up"
|
||||
# "ctrl+k=goto_split:down"
|
||||
# "ctrl+l=goto_split:right"
|
||||
# "shift+ctrl+h=new_split:left"
|
||||
# "shift+ctrl+j=new_split:down"
|
||||
# "shift+ctrl+k=new_split:up"
|
||||
# "shift+ctrl+l=new_split:right"
|
||||
"shift+ctrl+tab=new_tab"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
home.file.".config/ilovetui/config.yaml".text = ''
|
||||
colors:
|
||||
base00: "#${c.base00}" # Background
|
||||
base01: "#${c.base01}" # Lighter Background / Status Bars
|
||||
base02: "#${c.base02}" # Selection Background
|
||||
base03: "#${c.base03}" # Comments / Invisibles
|
||||
base04: "#${c.base04}" # Dark Foreground / Status Bars
|
||||
base05: "#${c.base05}" # Default Foreground
|
||||
base06: "#${c.base06}" # Light Foreground
|
||||
base07: "#${c.base07}" # Light Background
|
||||
base08: "#${c.base08}" # Variables / Errors / Diff Deleted
|
||||
base09: "#${c.base09}" # Integers / Constants / Booleans
|
||||
base0a: "#${c.base0A}" # Classes / Warnings / Search Background
|
||||
base0b: "#${c.base0B}" # Strings / Success / Diff Inserted
|
||||
base0c: "#${c.base0C}" # Support / Regex / Escape Characters
|
||||
base0d: "#${c.base0D}" # Functions / Methods / Headings / Accent
|
||||
base0e: "#${c.base0E}" # Keywords / Storage / Diff Changed
|
||||
base0f: "#${c.base0F}" # Embedded / Misc
|
||||
'';
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
pkgs-stable,
|
||||
pkgs-nur-hadi,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs-stable; [
|
||||
vlc # Video player
|
||||
obsidian # Note taking app
|
||||
textpieces # Manipulate texts
|
||||
resources # Ressource monitor
|
||||
gnome-clocks # Clocks app
|
||||
gnome-text-editor # Basic graphic text editor
|
||||
ticktick # Todo app
|
||||
pinta # Image editor
|
||||
switcheroo # Convert images between different formats
|
||||
onlyoffice-desktopeditors # Office suite
|
||||
blanket # Listen to different sounds
|
||||
signal-desktop # Messaging app
|
||||
librewolf # Backup browser
|
||||
|
||||
# I love TUIs
|
||||
caligula # User-friendly, lightweight TUI for disk imaging (ISO, USB BOOT)
|
||||
browsh # A modern text-based browser that renders anything that a modern browser can. It runs in a terminal and can be used remotely over SSH
|
||||
dysk # A terminal-based disk usage analyzer
|
||||
wikiman # Offline search engine for manual pages (arch wiki, tldr)
|
||||
tealdeer # Fast tldr client
|
||||
sttr # Minimalist "cyberchef" like. Cross-platform, cli app to perform various operations on string
|
||||
wiremix # Simple TUI mixer for PipeWire
|
||||
slides # A terminal-based presentation tool that allows you to create and deliver presentations directly from the command line
|
||||
pom # Pomodoro timer in your terminal
|
||||
pkgs.wifitui # TUI for managing wifi
|
||||
pkgs-nur-hadi.usbguard-tui # TUI for managing USBGuard rules
|
||||
pkgs-nur-hadi.sheets # Terminal based spreadsheet tool
|
||||
|
||||
# I love CLIs
|
||||
httpie # Command-line HTTP client, a user-friendly cURL replacement
|
||||
gh # GitHub
|
||||
gh-dash # A terminal dashboard for GitHub
|
||||
figlet # Transform text into ASCII art
|
||||
pastel # Command-line tool to generate, analyze, convert and manipulate colors
|
||||
imagemagick # Image manipulation tool
|
||||
chafa # Image to ANSI/Unicode converter and more.
|
||||
];
|
||||
}
|
||||
@@ -1,35 +1,29 @@
|
||||
{
|
||||
pkgs,
|
||||
pkgs-stable,
|
||||
pkgs-nur-hadi,
|
||||
}:
|
||||
(with pkgs-stable; [
|
||||
{pkgs}: (with pkgs; [
|
||||
# Web
|
||||
dirb
|
||||
ffuf
|
||||
katana
|
||||
whatweb
|
||||
sqlmap
|
||||
nosqli
|
||||
|
||||
# Hashes
|
||||
hashcat
|
||||
haiti
|
||||
hydra
|
||||
john
|
||||
|
||||
# Databases
|
||||
mariadb
|
||||
redis
|
||||
sqlmap
|
||||
nosqli
|
||||
|
||||
# Network
|
||||
inetutils
|
||||
termshark # wireshark in TUI
|
||||
dnsrecon
|
||||
whois
|
||||
dig
|
||||
nmap
|
||||
samba
|
||||
hydra
|
||||
|
||||
# Misc
|
||||
metasploit
|
||||
@@ -41,8 +35,6 @@
|
||||
|
||||
# Forensics
|
||||
binwalk
|
||||
])
|
||||
++ (with pkgs-nur-hadi; [
|
||||
spilltea
|
||||
jwt-tui
|
||||
pkgs.nur.repos.anotherhadi.spilltea
|
||||
pkgs.nur.repos.anotherhadi.jwt-tui
|
||||
])
|
||||
|
||||
@@ -1,11 +1,6 @@
|
||||
{
|
||||
pkgs,
|
||||
pkgs-stable,
|
||||
pkgs-nur-hadi,
|
||||
...
|
||||
}: {
|
||||
{pkgs, ...}: {
|
||||
home.packages = import ./cybersecurity-packages.nix {
|
||||
inherit pkgs pkgs-stable pkgs-nur-hadi;
|
||||
inherit pkgs;
|
||||
};
|
||||
|
||||
systemd.user.tmpfiles.rules = [
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
{
|
||||
pkgs,
|
||||
pkgs-stable,
|
||||
}:
|
||||
(with pkgs; [
|
||||
go
|
||||
claude-code
|
||||
])
|
||||
++ (with pkgs-stable; [
|
||||
nodejs
|
||||
air
|
||||
duckdb
|
||||
python3
|
||||
jq
|
||||
nix-prefetch-github
|
||||
rsync
|
||||
])
|
||||
@@ -1,7 +1,20 @@
|
||||
{
|
||||
pkgs,
|
||||
pkgs-stable,
|
||||
pkgs-unstable,
|
||||
...
|
||||
}: {
|
||||
home.packages = import ./dev-packages.nix {inherit pkgs pkgs-stable;};
|
||||
home.packages = with pkgs-unstable;
|
||||
[
|
||||
go
|
||||
claude-code
|
||||
]
|
||||
++ (with pkgs; [
|
||||
nodejs
|
||||
air
|
||||
duckdb
|
||||
python3
|
||||
jq
|
||||
nix-prefetch-github
|
||||
rsync
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
pkgs-stable,
|
||||
pkgs-nur-hadi,
|
||||
system,
|
||||
...
|
||||
}: let
|
||||
devPackages = import ./dev-packages.nix {inherit pkgs pkgs-stable;};
|
||||
cyberPackages = import ./cybersecurity-packages.nix {inherit pkgs pkgs-stable pkgs-nur-hadi;};
|
||||
in {
|
||||
packages.${system} = {
|
||||
dev = pkgs.buildEnv {
|
||||
name = "dev-tools";
|
||||
paths = devPackages;
|
||||
};
|
||||
cybersecurity = pkgs.buildEnv {
|
||||
name = "cybersecurity-tools";
|
||||
paths = cyberPackages;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
{
|
||||
pkgs-stable,
|
||||
pkgs-nur-hadi,
|
||||
inputs,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs-stable; [
|
||||
tty-solitaire
|
||||
bastet
|
||||
peaclock
|
||||
cbonsai
|
||||
pipes
|
||||
cmatrix
|
||||
fastfetch
|
||||
];
|
||||
}
|
||||
+2
-2
@@ -1,7 +1,7 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
...
|
||||
}: let
|
||||
bookmarkList =
|
||||
@@ -451,7 +451,7 @@ in {
|
||||
};
|
||||
Service = {
|
||||
Type = "simple";
|
||||
ExecStart = "${pkgs.darkhttpd}/bin/darkhttpd %h/.local/share/helium-startpage --port 8888 --addr 127.0.0.1 --no-listing";
|
||||
ExecStart = "${pkgs-unstable.darkhttpd}/bin/darkhttpd %h/.local/share/helium-startpage --port 8888 --addr 127.0.0.1 --no-listing";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
Install.WantedBy = ["default.target"];
|
||||
+8
@@ -11,6 +11,14 @@
|
||||
name = "Hyprland Wiki";
|
||||
url = "https://wiki.hypr.land";
|
||||
}
|
||||
{
|
||||
name = "Nerdfont Cheatsheet";
|
||||
url = "https://www.nerdfonts.com/cheat-sheet";
|
||||
}
|
||||
{
|
||||
name = "Helium Bangs";
|
||||
url = "https://helium.computer/bangs";
|
||||
}
|
||||
{
|
||||
name = "NVF Options";
|
||||
url = "https://nvf.notashelf.dev/";
|
||||
+4
@@ -43,6 +43,10 @@
|
||||
name = "Gemini";
|
||||
url = "https://gemini.google.com";
|
||||
}
|
||||
{
|
||||
name = "Lumo";
|
||||
url = "https://lumo.proton.me";
|
||||
}
|
||||
];
|
||||
}
|
||||
]
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
inputs,
|
||||
config,
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
@@ -44,11 +44,11 @@
|
||||
"--show-avatar-button=never"
|
||||
];
|
||||
|
||||
originalPkg = (inputs.helium-browser.packages.${pkgs.stdenv.hostPlatform.system}.helium).override {
|
||||
originalPkg = (inputs.helium-browser.packages.${pkgs-unstable.stdenv.hostPlatform.system}.helium).override {
|
||||
flags = heliumFlags;
|
||||
};
|
||||
|
||||
patchScript = pkgs.writeShellScript "helium-patch-prefs" ''
|
||||
patchScript = pkgs-unstable.writeShellScript "helium-patch-prefs" ''
|
||||
PROFILE="$HOME/.config/net.imput.helium/Default"
|
||||
THEME_DIR="$PROFILE/Extensions/${themeId}/1.0_0"
|
||||
PREFS="$PROFILE/Preferences"
|
||||
@@ -59,7 +59,7 @@
|
||||
|
||||
if [ -f "$PREFS" ]; then
|
||||
tmp=$(mktemp)
|
||||
${lib.getExe pkgs.jq} \
|
||||
${lib.getExe pkgs-unstable.jq} \
|
||||
--arg id "${themeId}" \
|
||||
--slurpfile manifest "$THEME_DIR/manifest.json" \
|
||||
'
|
||||
@@ -85,12 +85,13 @@
|
||||
fi
|
||||
'';
|
||||
|
||||
baseWrapped = pkgs.symlinkJoin {
|
||||
baseWrapped = pkgs-unstable.symlinkJoin {
|
||||
name = "helium-wrapped";
|
||||
paths = [originalPkg];
|
||||
nativeBuildInputs = [pkgs.makeWrapper];
|
||||
nativeBuildInputs = [pkgs-unstable.makeWrapper];
|
||||
postBuild = ''
|
||||
wrapProgram $out/bin/helium \
|
||||
--set-default GTK_USE_PORTAL 1 \
|
||||
--run ${lib.escapeShellArg (toString patchScript)}
|
||||
'';
|
||||
};
|
||||
@@ -111,7 +112,7 @@ in {
|
||||
|
||||
xdg.desktopEntries.helium = {
|
||||
name = "Helium";
|
||||
genericName = "Navigateur Web";
|
||||
genericName = "Web Browser";
|
||||
exec = "${config.programs.helium.package}/bin/helium %U";
|
||||
icon = "${config.programs.helium.package}/share/icons/hicolor/256x256/apps/helium.png";
|
||||
terminal = false;
|
||||
@@ -128,7 +129,7 @@ in {
|
||||
|
||||
xdg.desktopEntries.helium-private = {
|
||||
name = "Helium (Private window)";
|
||||
genericName = "Navigateur Web";
|
||||
genericName = "Web Browser";
|
||||
exec = "${config.programs.helium.package}/bin/helium --incognito %U";
|
||||
icon = "${config.programs.helium.package}/share/icons/hicolor/256x256/apps/helium.png";
|
||||
terminal = false;
|
||||
@@ -41,7 +41,7 @@ in {
|
||||
DefaultBrowserSettingEnabled = false;
|
||||
DeveloperToolsAvailability = 1;
|
||||
|
||||
DnsOverHttpsMode = "secure";
|
||||
DnsOverHttpsMode = "automatic";
|
||||
DnsOverHttpsTemplates = "https://dns.quad9.net/dns-query";
|
||||
|
||||
DefaultSearchProviderEnabled = true;
|
||||
@@ -0,0 +1,17 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
vlc # Video player
|
||||
obsidian # Note taking app
|
||||
textpieces # Manipulate texts
|
||||
resources # Resource monitor
|
||||
gnome-clocks # Clocks app
|
||||
gnome-text-editor # Basic graphic text editor
|
||||
ticktick # Todo app
|
||||
pinta # Image editor
|
||||
switcheroo # Convert images between different formats
|
||||
onlyoffice-desktopeditors # Office suite
|
||||
blanket # Listen to different sounds
|
||||
signal-desktop # Messaging app
|
||||
thunar # File explorer
|
||||
];
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{pkgs, ...}: let
|
||||
nightshift-toggle =
|
||||
pkgs.writeShellScriptBin "nightshift-toggle"
|
||||
# bash
|
||||
''
|
||||
if pidof "hyprsunset"; then
|
||||
pkill hyprsunset
|
||||
${pkgs.libnotify}/bin/notify-send "Night Shift Disabled" "Returning to full spectrum light. Filter disabled."
|
||||
else
|
||||
${pkgs.hyprsunset}/bin/hyprsunset -t 4500 &
|
||||
${pkgs.libnotify}/bin/notify-send "Night Shift Activated" "Welcome to the warm side. Blue light filtering is now active."
|
||||
fi
|
||||
'';
|
||||
in {
|
||||
home.packages = with pkgs; [
|
||||
hyprsunset
|
||||
nightshift-toggle
|
||||
];
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
c = config.lib.stylix.colors;
|
||||
in {
|
||||
imports = [inputs.nvf.homeManagerModules.default];
|
||||
programs.nvf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
vim.luaConfigRC.hl-overrides = ''
|
||||
local function apply_hl()
|
||||
vim.api.nvim_set_hl(0, "MiniStarterHeader", { fg = "#${c.base0D}", bold = true })
|
||||
vim.api.nvim_set_hl(0, "SnacksPickerBorder", { fg = "#${c.base0D}" })
|
||||
vim.api.nvim_set_hl(0, "SnacksPickerTitle", { fg = "#${c.base0D}", bold = true })
|
||||
end
|
||||
apply_hl()
|
||||
vim.api.nvim_create_autocmd("ColorScheme", { pattern = "*", callback = apply_hl })
|
||||
'';
|
||||
imports = [
|
||||
./options.nix
|
||||
./languages.nix
|
||||
./picker.nix
|
||||
./snacks.nix
|
||||
./keymaps.nix
|
||||
./utils.nix
|
||||
./mini.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,37 +0,0 @@
|
||||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
system,
|
||||
...
|
||||
}: let
|
||||
nvimConfig = inputs.nvf.lib.neovimConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [
|
||||
./options.nix
|
||||
./languages.nix
|
||||
./picker.nix
|
||||
./snacks.nix
|
||||
./keymaps.nix
|
||||
./utils.nix
|
||||
./mini.nix
|
||||
];
|
||||
};
|
||||
in {
|
||||
packages.${system}.nvim = nvimConfig.neovim;
|
||||
|
||||
apps.${system}.nvim = {
|
||||
type = "app";
|
||||
program = "${nvimConfig.neovim}/bin/nvim";
|
||||
};
|
||||
defaultApp.${system} = {
|
||||
type = "app";
|
||||
program = "${nvimConfig.neovim}/bin/nvim";
|
||||
};
|
||||
|
||||
homeManagerModules.nvim = {
|
||||
imports = [
|
||||
inputs.nvf.homeManagerModules.default
|
||||
./default.nix
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
wayland.windowManager.hyprland.settings.exec-once = [
|
||||
"protonvpn-app --start-minimized &"
|
||||
];
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
# Fzf is a general-purpose command-line fuzzy finder.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
accent = "#" + config.lib.stylix.colors.base0D;
|
||||
foreground = "#" + config.lib.stylix.colors.base05;
|
||||
muted = "#" + config.lib.stylix.colors.base03;
|
||||
in {
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
colors = lib.mkForce {
|
||||
"fg+" = accent;
|
||||
"bg+" = "-1";
|
||||
"fg" = foreground;
|
||||
"bg" = "-1";
|
||||
"prompt" = muted;
|
||||
"pointer" = accent;
|
||||
};
|
||||
defaultOptions = [
|
||||
"--margin=1"
|
||||
"--layout=reverse"
|
||||
"--border=none"
|
||||
"--info='hidden'"
|
||||
"--header=''"
|
||||
"--prompt='/ '"
|
||||
"-i"
|
||||
"--no-bold"
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,196 +0,0 @@
|
||||
# My shell configuration
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [
|
||||
bat
|
||||
ripgrep
|
||||
];
|
||||
|
||||
# Add go binaries to the PATH
|
||||
home.sessionPath = ["$HOME/go/bin"];
|
||||
|
||||
home.sessionVariables = {
|
||||
COLORTERM = "truecolor";
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting = {
|
||||
enable = true;
|
||||
highlighters = [
|
||||
"main"
|
||||
"brackets"
|
||||
"pattern"
|
||||
"regexp"
|
||||
"root"
|
||||
"line"
|
||||
];
|
||||
};
|
||||
historySubstringSearch.enable = true;
|
||||
|
||||
history = {
|
||||
ignoreDups = true;
|
||||
save = 10000;
|
||||
size = 10000;
|
||||
};
|
||||
|
||||
profileExtra = lib.optionalString (config.home.sessionPath != []) ''
|
||||
export PATH="$PATH''${PATH:+:}${lib.concatStringsSep ":" config.home.sessionPath}"
|
||||
'';
|
||||
|
||||
shellAliases = {
|
||||
# Change default
|
||||
vim = "nvim";
|
||||
vi = "nvim";
|
||||
cd = "z";
|
||||
ls = "eza --icons=always --no-quotes";
|
||||
tree = "eza --icons=always --tree --no-quotes";
|
||||
cat = "bat --theme=base16 --color=always --paging=never --tabs=2 --wrap=never --plain";
|
||||
mkdir = "mkdir -p";
|
||||
|
||||
# Shortcuts
|
||||
spt = "spotatui";
|
||||
v = "nvim";
|
||||
c = "clear";
|
||||
e = "exit";
|
||||
open = "${pkgs.xdg-utils}/bin/xdg-open";
|
||||
|
||||
notes = "nvim ~/notes/index.md --cmd 'cd ~/notes' -c ':lua Snacks.picker.smart()'";
|
||||
nix-shell = "nix-shell --command zsh";
|
||||
|
||||
# git
|
||||
g = "lazygit";
|
||||
ga = "git add";
|
||||
gc = "git commit";
|
||||
gcu = "git add . && git commit -m 'Update'";
|
||||
gp = "git push";
|
||||
gpl = "git pull";
|
||||
gs = "git status";
|
||||
gd = "git diff";
|
||||
gco = "git checkout";
|
||||
gcb = "git checkout -b";
|
||||
gbr = "git branch";
|
||||
grs = "git reset HEAD~1";
|
||||
grh = "git reset --hard HEAD~1";
|
||||
gaa = "git add .";
|
||||
gcm = "git commit -m";
|
||||
|
||||
# Typo
|
||||
clera = "clear";
|
||||
celar = "clear";
|
||||
claer = "clear";
|
||||
sl = "ls";
|
||||
};
|
||||
|
||||
initContent =
|
||||
# bash
|
||||
''
|
||||
bindkey -e
|
||||
|
||||
# Open command in VIM
|
||||
autoload -Uz edit-command-line
|
||||
zle -N edit-command-line
|
||||
bindkey '^X' edit-command-line
|
||||
|
||||
# Suffix Aliases
|
||||
alias -s {nix,md,txt,json,yml,yaml,go}=nvim
|
||||
alias -s {png,jpg,jpeg,gif,pdf}=xdg-open
|
||||
|
||||
# 3. Global Aliases (Remplacés n'importe où dans la commande, pas seulement au début)
|
||||
alias -g G="| grep"
|
||||
alias -g L="| less"
|
||||
alias -g V="| nvim"
|
||||
alias -g H="| head"
|
||||
alias -g T="| tail"
|
||||
alias -g JQ="| jq"
|
||||
alias -g C="| wl-copy"
|
||||
alias -g NE="2>/dev/null"
|
||||
alias -g ND=">/dev/null"
|
||||
alias -g NUL=">/dev/null 2>1"
|
||||
|
||||
# search history based on what's typed in the prompt
|
||||
autoload -U history-search-end
|
||||
zle -N history-beginning-search-backward-end history-search-end
|
||||
zle -N history-beginning-search-forward-end history-search-end
|
||||
bindkey "^[OA" history-beginning-search-backward-end
|
||||
bindkey "^[OB" history-beginning-search-forward-end
|
||||
|
||||
# General completion behavior
|
||||
zstyle ':completion:*' completer _extensions _complete _approximate
|
||||
|
||||
# Use cache
|
||||
zstyle ':completion:*' use-cache on
|
||||
zstyle ':completion:*' cache-path "$XDG_CACHE_HOME/zsh/.zcompcache"
|
||||
|
||||
# Complete the alias
|
||||
zstyle ':completion:*' complete true
|
||||
|
||||
# Autocomplete options
|
||||
zstyle ':completion:*' complete-options true
|
||||
|
||||
# Completion matching control
|
||||
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|[._-]=* r:|=*' 'l:|=* r:|=*'
|
||||
zstyle ':completion:*' keep-prefix true
|
||||
|
||||
# Group matches and describe
|
||||
zstyle ':completion:*' menu select
|
||||
zstyle ':completion:*' list-grouped false
|
||||
zstyle ':completion:*' list-separator '''
|
||||
zstyle ':completion:*' group-name '''
|
||||
zstyle ':completion:*' verbose yes
|
||||
zstyle ':completion:*:matches' group 'yes'
|
||||
zstyle ':completion:*:warnings' format '%F{red}%B-- No match for: %d --%b%f'
|
||||
zstyle ':completion:*:messages' format '%d'
|
||||
zstyle ':completion:*:corrections' format '%B%d (errors: %e)%b'
|
||||
zstyle ':completion:*:descriptions' format '[%d]'
|
||||
|
||||
# Colors
|
||||
zstyle ':completion:*' list-colors ''${(s.:.)LS_COLORS}
|
||||
|
||||
# Case insensitive tab completion
|
||||
zstyle ':completion:*:*:cd:*' tag-order local-directories directory-stack path-directories
|
||||
zstyle ':completion:*:*:cd:*:directory-stack' menu yes select
|
||||
zstyle ':completion:*:-tilde-:*' group-order 'named-directories' 'path-directories' 'users' 'expand'
|
||||
zstyle ':completion:*:*:-command-:*:*' group-order aliases builtins functions commands
|
||||
zstyle ':completion:*' special-dirs true
|
||||
zstyle ':completion:*' squeeze-slashes true
|
||||
|
||||
# Sort
|
||||
zstyle ':completion:*' sort false
|
||||
zstyle ":completion:*:git-checkout:*" sort false
|
||||
zstyle ':completion:*' file-sort modification
|
||||
zstyle ':completion:*:eza' sort false
|
||||
zstyle ':completion:complete:*:options' sort false
|
||||
zstyle ':completion:files' sort false
|
||||
|
||||
autoload zmv
|
||||
|
||||
hash -d dl=~/Downloads
|
||||
hash -d ni=~/.config/nixos
|
||||
hash -d de=~/dev
|
||||
hash -d cy=~/Cyber
|
||||
|
||||
${lib.optionalString config.services.gpg-agent.enable ''
|
||||
gnupg_path=$(ls $XDG_RUNTIME_DIR/gnupg)
|
||||
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/gnupg/$gnupg_path/S.gpg-agent.ssh"
|
||||
''}
|
||||
|
||||
# Allow foot to pipe command output
|
||||
function precmd {
|
||||
if ! builtin zle; then
|
||||
print -n "\e]133;D\e\\"
|
||||
fi
|
||||
}
|
||||
function preexec {
|
||||
print -n "\e]133;C\e\\"
|
||||
}
|
||||
|
||||
'';
|
||||
};
|
||||
}
|
||||
@@ -1,176 +0,0 @@
|
||||
# Thunar is a file explorer
|
||||
{
|
||||
pkgs,
|
||||
pkgs-stable,
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
user = config.var.username;
|
||||
in {
|
||||
# ctrl + m to toggle the menubar
|
||||
home.packages =
|
||||
(with pkgs-stable; [
|
||||
xfce.thunar
|
||||
xfce.xfconf
|
||||
xfce.tumbler
|
||||
xfce.thunar-archive-plugin
|
||||
xfce.thunar-volman
|
||||
xfce.thunar-media-tags-plugin
|
||||
p7zip
|
||||
xarchiver
|
||||
])
|
||||
++ (with pkgs; [
|
||||
# Icon themes: keep on global pkgs to avoid conflicts with other modules
|
||||
papirus-icon-theme
|
||||
material-icons
|
||||
material-design-icons
|
||||
material-symbols
|
||||
]);
|
||||
|
||||
gtk = {
|
||||
enable = true;
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
|
||||
# bookmarks for the side pane
|
||||
gtk3.bookmarks = [
|
||||
"file:///home/${user}/Downloads Downloads"
|
||||
"file:///home/${user}/Pictures Pictures"
|
||||
"file:///home/${user}/.config/nixos NixOS"
|
||||
"file:///home/${user}/dev Development"
|
||||
];
|
||||
};
|
||||
|
||||
qt.enable = true;
|
||||
|
||||
home.sessionVariables = {
|
||||
XDG_ICON_DIR = "${pkgs.papirus-icon-theme}/share/icons/Papirus";
|
||||
QS_ICON_THEME = "Papirus";
|
||||
QT_STYLE_OVERRIDE = lib.mkForce "Fusion";
|
||||
};
|
||||
|
||||
home.file.".config/xarchiver/xarchiverrc".text = ''
|
||||
[xarchiver]
|
||||
preferred_format=0
|
||||
prefer_unzip=true
|
||||
confirm_deletion=true
|
||||
sort_filename_content=false
|
||||
advanced_isearch=true
|
||||
auto_expand=true
|
||||
store_output=false
|
||||
icon_size=2
|
||||
show_archive_comment=false
|
||||
show_sidebar=true
|
||||
show_location_bar=true
|
||||
show_toolbar=true
|
||||
preferred_custom_cmd=
|
||||
preferred_temp_dir=/tmp
|
||||
preferred_extract_dir=./
|
||||
allow_sub_dir=0
|
||||
ensure_directory=true
|
||||
overwrite=false
|
||||
full_path=2
|
||||
touch=false
|
||||
fresh=false
|
||||
update=false
|
||||
store_path=false
|
||||
updadd=true
|
||||
freshen=false
|
||||
recurse=true
|
||||
solid_archive=false
|
||||
remove_files=false
|
||||
'';
|
||||
|
||||
home.file.".config/xfce4/xfconf/xfce-perchannel-xml/thunar.xml" = {
|
||||
text = ''
|
||||
<?xml version="1.1" encoding="UTF-8"?>
|
||||
|
||||
<channel name="thunar" version="1.0">
|
||||
<property name="last-view" type="string" value="ThunarIconView"/>
|
||||
<property name="last-icon-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_100_PERCENT"/>
|
||||
<property name="last-window-maximized" type="bool" value="true"/>
|
||||
<property name="last-separator-position" type="int" value="230"/>
|
||||
<property name="last-statusbar-visible" type="bool" value="false"/>
|
||||
<property name="last-menubar-visible" type="bool" value="false"/>
|
||||
<property name="misc-single-click" type="bool" value="false"/>
|
||||
<property name="shortcuts-icon-emblems" type="bool" value="true"/>
|
||||
<property name="tree-icon-emblems" type="bool" value="true"/>
|
||||
<property name="misc-file-size-binary" type="bool" value="false"/>
|
||||
<property name="misc-thumbnail-draw-frames" type="bool" value="true"/>
|
||||
<property name="misc-text-beside-icons" type="bool" value="false"/>
|
||||
<property name="misc-change-window-icon" type="bool" value="false"/>
|
||||
<property name="hidden-bookmarks" type="array">
|
||||
<value type="string" value="computer:///"/>
|
||||
<value type="string" value="recent:///"/>
|
||||
<value type="string" value="network:///"/>
|
||||
</property>
|
||||
<property name="hidden-devices" type="array">
|
||||
<value type="string" value="52FEA905FEA8E309"/>
|
||||
</property>
|
||||
<property name="last-toolbar-item-order" type="string" value="0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17"/>
|
||||
<property name="last-toolbar-visible-buttons" type="string" value="0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0"/>
|
||||
<property name="last-location-bar" type="string" value="ThunarLocationButtons"/>
|
||||
<property name="last-show-hidden" type="bool" value="false"/>
|
||||
<property name="last-details-view-zoom-level" type="string" value="THUNAR_ZOOM_LEVEL_38_PERCENT"/>
|
||||
<property name="last-details-view-column-widths" type="string" value="50,50,118,111,50,50,50,50,993,50,50,84,50,151"/>
|
||||
<property name="last-toolbar-items" type="string" value="menu:1,undo:1,back:1,forward:1,open-parent:0,open-home:0,redo:0,zoom-in:0,zoom-out:0,zoom-reset:0,location-bar:1,view-switcher:1,search:1,view-as-icons:0,view-as-detailed-list:0,view-as-compact-list:0,toggle-split-view:0,reload:0,new-tab:0,new-window:0,uca-action-1700000000000001:0"/>
|
||||
<property name="last-side-pane" type="string" value="THUNAR_SIDEPANE_TYPE_SHORTCUTS"/>
|
||||
<property name="last-image-preview-visible" type="bool" value="false"/>
|
||||
<property name="misc-use-csd" type="bool" value="true"/>
|
||||
<property name="default-view" type="string" value="ThunarIconView"/>
|
||||
<property name="misc-thumbnail-max-file-size" type="uint64" value="1073741824"/>
|
||||
<property name="misc-symbolic-icons-in-toolbar" type="bool" value="true"/>
|
||||
<property name="misc-date-style" type="string" value="THUNAR_DATE_STYLE_SIMPLE"/>
|
||||
<property name="shortcuts-icon-size" type="string" value="THUNAR_ICON_SIZE_16"/>
|
||||
<property name="tree-icon-size" type="string" value="THUNAR_ICON_SIZE_16"/>
|
||||
<property name="misc-symbolic-icons-in-sidepane" type="bool" value="true"/>
|
||||
<property name="misc-open-new-window-as-tab" type="bool" value="false"/>
|
||||
<property name="misc-full-path-in-tab-title" type="bool" value="true"/>
|
||||
<property name="misc-show-delete-action" type="bool" value="false"/>
|
||||
</channel>
|
||||
'';
|
||||
force = true;
|
||||
};
|
||||
|
||||
xdg.configFile."Thunar/uca.xml".text = ''
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<actions>
|
||||
<action>
|
||||
<icon>utilities-terminal</icon>
|
||||
<name>Open Terminal Here</name>
|
||||
<unique-id>1700000000000001</unique-id>
|
||||
<command>ghostty -d %f</command>
|
||||
<description>Opens terminal in the selected folder</description>
|
||||
<patterns>*</patterns>
|
||||
<startup-notify/>
|
||||
<directories/>
|
||||
</action>
|
||||
<action>
|
||||
<icon></icon>
|
||||
<name>Extract here</name>
|
||||
<submenu></submenu>
|
||||
<unique-id>1689618425925956-3</unique-id>
|
||||
<command>xarchiver -x . %f</command>
|
||||
<description>Extracts the archive into the directory it is located in.</description>
|
||||
<range>*</range>
|
||||
<patterns>*.tar.bz2;*.tar.gz;*.tar.xz;*.tar.Z;*.tar;*.taz;*.tb2;*.tbz;*.tbz2;*.tgz;*.txz;*.zip;*.bz2;*.docx;*.apk;*.gz;*.odt;</patterns>
|
||||
<other-files/>
|
||||
</action>
|
||||
<action>
|
||||
<icon>package-x-generic</icon>
|
||||
<name>Compress here (tar.gz)</name>
|
||||
<submenu></submenu>
|
||||
<unique-id>1700000000000003</unique-id>
|
||||
<command>tar -czvf %n.tar.gz %N</command>
|
||||
<description>Creates a compressed archive (.tar.gz) of selected files/folders.</description>
|
||||
<range>*</range>
|
||||
<patterns>*</patterns>
|
||||
<directories/>
|
||||
<other-files/>
|
||||
</action>
|
||||
</actions>
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
c = config.lib.stylix.colors;
|
||||
# TODO: Waiting for a version in nixpkgs
|
||||
version = "1.11.2";
|
||||
sources = {
|
||||
"x86_64-linux" = {
|
||||
url = "https://github.com/elio-fm/elio/releases/download/v${version}/elio-${version}-x86_64-unknown-linux-gnu.tar.gz";
|
||||
hash = "sha256-9cW/xUA9p0LEYI3/j4MGPVZvcyJpV1JYKYBuHur4sTM=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
url = "https://github.com/elio-fm/elio/releases/download/v${version}/elio-${version}-aarch64-unknown-linux-gnu.tar.gz";
|
||||
hash = "sha256-zg141Dp+jHwAqzoaCNvOoC7ZFeAX+cO8HZF5W7wz1Qs=";
|
||||
};
|
||||
};
|
||||
source =
|
||||
sources.${pkgs.stdenv.hostPlatform.system}
|
||||
or (throw "elio: unsupported platform ${pkgs.stdenv.hostPlatform.system}");
|
||||
|
||||
elio = pkgs.stdenv.mkDerivation {
|
||||
pname = "elio";
|
||||
inherit version;
|
||||
|
||||
src = pkgs.fetchurl {inherit (source) url hash;};
|
||||
|
||||
nativeBuildInputs = [pkgs.autoPatchelfHook];
|
||||
|
||||
buildInputs = [pkgs.stdenv.cc.cc.lib];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
install -Dm755 elio -t $out/bin
|
||||
|
||||
for size in 48 128 256 512; do
|
||||
install -Dm644 \
|
||||
"packaging/linux/icons/hicolor/''${size}x''${size}/apps/elio.png" \
|
||||
"$out/share/icons/hicolor/''${size}x''${size}/apps/elio.png"
|
||||
done
|
||||
install -Dm644 packaging/linux/elio.desktop -t $out/share/applications
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Terminal file manager";
|
||||
homepage = "https://github.com/elio-fm/elio";
|
||||
license = pkgs.lib.licenses.mit;
|
||||
mainProgram = "elio";
|
||||
platforms = builtins.attrNames sources;
|
||||
sourceProvenance = [pkgs.lib.sourceTypes.binaryNativeCode];
|
||||
};
|
||||
};
|
||||
in {
|
||||
home.packages = [elio];
|
||||
|
||||
xdg.desktopEntries.elio = {
|
||||
name = "elio";
|
||||
exec = "${pkgs.ghostty}/bin/ghostty +new-window -e ${elio}/bin/elio %f";
|
||||
terminal = false;
|
||||
icon = "elio";
|
||||
mimeType = ["inode/directory"];
|
||||
categories = ["System" "FileManager" "FileTools" "ConsoleOnly"];
|
||||
};
|
||||
|
||||
xdg.configFile."elio/theme.toml".text = ''
|
||||
[palette]
|
||||
bg = "#${c.base00}"
|
||||
chrome = "#${c.base01}"
|
||||
chrome_alt = "#${c.base01}"
|
||||
chip_text = "#${c.base00}"
|
||||
panel = "#${c.base00}"
|
||||
panel_alt = "#${c.base00}"
|
||||
surface = "#${c.base02}"
|
||||
elevated = "#${c.base02}"
|
||||
border = "#${c.base03}"
|
||||
text = "#${c.base05}"
|
||||
muted = "#${c.base04}"
|
||||
accent = "#${c.base0D}"
|
||||
accent_soft = "#${c.base02}"
|
||||
accent_text = "#${c.base06}"
|
||||
selected_bg = "#${c.base02}"
|
||||
selected_border = "#${c.base0D}"
|
||||
selection_bar = "#${c.base09}"
|
||||
yank_bar = "#${c.base0B}"
|
||||
cut_bar = "#${c.base08}"
|
||||
progress_bar = "#${c.base0D}"
|
||||
grid_selection_band = "#${c.base02}"
|
||||
grid_yank_band = "#${c.base01}"
|
||||
grid_cut_band = "#${c.base01}"
|
||||
sidebar_active = "#${c.base02}"
|
||||
button_bg = "#${c.base01}"
|
||||
button_disabled_bg = "#${c.base01}"
|
||||
path_bg = "#${c.base00}"
|
||||
|
||||
[preview.code]
|
||||
fg = "#${c.base05}"
|
||||
bg = "#${c.base01}"
|
||||
selection_bg = "#${c.base02}"
|
||||
selection_fg = "#${c.base06}"
|
||||
caret = "#${c.base0C}"
|
||||
line_highlight = "#${c.base01}"
|
||||
line_number = "#${c.base03}"
|
||||
comment = "#${c.base03}"
|
||||
string = "#${c.base0B}"
|
||||
constant = "#${c.base09}"
|
||||
keyword = "#${c.base0E}"
|
||||
function = "#${c.base0D}"
|
||||
type = "#${c.base0A}"
|
||||
parameter = "#${c.base08}"
|
||||
tag = "#${c.base0C}"
|
||||
operator = "#${c.base0C}"
|
||||
macro = "#${c.base0F}"
|
||||
invalid = "#${c.base08}"
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
# Ghostty is a terminal emulator
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}: let
|
||||
cursorShaders = pkgs.fetchFromGitHub {
|
||||
owner = "sahaj-b";
|
||||
repo = "ghostty-cursor-shaders";
|
||||
rev = "06d4e90fb5410e9c4d0b3131584060adddf89406";
|
||||
hash = "sha256-G/UIr1bKnxn1AcHl/4FL/jou6b7M2VeREslYVELxdmw=";
|
||||
};
|
||||
c = config.lib.stylix.colors;
|
||||
in {
|
||||
home.sessionVariables = {
|
||||
TERMINAL = "ghostty";
|
||||
TERM = "ghostty";
|
||||
};
|
||||
|
||||
programs.ghostty = {
|
||||
enable = true;
|
||||
installVimSyntax = true;
|
||||
enableZshIntegration = true;
|
||||
settings = {
|
||||
window-padding-x = 10;
|
||||
confirm-close-surface = false;
|
||||
window-padding-y = 10;
|
||||
gtk-single-instance = true;
|
||||
clipboard-read = "allow";
|
||||
clipboard-write = "allow";
|
||||
copy-on-select = "clipboard";
|
||||
app-notifications = false;
|
||||
custom-shader = "${cursorShaders}/cursor_warp.glsl";
|
||||
custom-shader-animation = "always";
|
||||
keybind = [
|
||||
"shift+ctrl+tab=new_tab"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -16,6 +16,9 @@ in {
|
||||
"node_modules"
|
||||
"result"
|
||||
"result-*"
|
||||
".superpowers/"
|
||||
".claude/"
|
||||
"docs/superpowers/"
|
||||
];
|
||||
settings = {
|
||||
user.name = username;
|
||||
@@ -40,13 +43,10 @@ in {
|
||||
d = "diff";
|
||||
ps = "!git push origin $(git rev-parse --abbrev-ref HEAD)";
|
||||
pl = "!git pull origin $(git rev-parse --abbrev-ref HEAD)";
|
||||
af = "!git add $(git ls-files -m -o --exclude-standard | sk -m)";
|
||||
st = "status";
|
||||
br = "branch";
|
||||
df = "!git hist | peco | awk '{print $2}' | xargs -I {} git diff {}^ {}";
|
||||
hist = ''log --pretty=format:"%Cgreen%h %Creset%cd %Cblue[%cn] %Creset%s%C(yellow)%d%C(reset)" --graph --date=relative --decorate --all'';
|
||||
llog = ''log --graph --name-status --pretty=format:"%C(red)%h %C(reset)(%cd) %C(green)%an %Creset%s %C(yellow)%d%Creset" --date=relative'';
|
||||
edit-unmerged = "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; hx `f`";
|
||||
};
|
||||
};
|
||||
};
|
||||
@@ -0,0 +1,23 @@
|
||||
{config, ...}: let
|
||||
c = config.lib.stylix.colors;
|
||||
in {
|
||||
home.file.".config/ilovetui/config.yaml".text = ''
|
||||
colors:
|
||||
base00: "#${c.base00}" # Background
|
||||
base01: "#${c.base01}" # Lighter Background / Status Bars
|
||||
base02: "#${c.base02}" # Selection Background
|
||||
base03: "#${c.base03}" # Comments / Invisibles
|
||||
base04: "#${c.base04}" # Dark Foreground / Status Bars
|
||||
base05: "#${c.base05}" # Default Foreground
|
||||
base06: "#${c.base06}" # Light Foreground
|
||||
base07: "#${c.base07}" # Light Background
|
||||
base08: "#${c.base08}" # Variables / Errors / Diff Deleted
|
||||
base09: "#${c.base09}" # Integers / Constants / Booleans
|
||||
base0a: "#${c.base0A}" # Classes / Warnings / Search Background
|
||||
base0b: "#${c.base0B}" # Strings / Success / Diff Inserted
|
||||
base0c: "#${c.base0C}" # Support / Regex / Escape Characters
|
||||
base0d: "#${c.base0D}" # Functions / Methods / Headings / Accent
|
||||
base0e: "#${c.base0E}" # Keywords / Storage / Diff Changed
|
||||
base0f: "#${c.base0F}" # Embedded / Misc
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: {
|
||||
home.sessionVariables = {
|
||||
EDITOR = "nvim";
|
||||
VISUAL = "nvim";
|
||||
};
|
||||
|
||||
programs.nvf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
vim.luaConfigRC = lib.mkIf (config ? stylix && config.stylix.enable) {
|
||||
hl-overrides = let
|
||||
c = config.lib.stylix.colors;
|
||||
in ''
|
||||
local function apply_hl()
|
||||
vim.api.nvim_set_hl(0, "MiniStarterHeader", { fg = "#${c.base0D}", bold = true })
|
||||
vim.api.nvim_set_hl(0, "SnacksPickerBorder", { fg = "#${c.base0D}" })
|
||||
vim.api.nvim_set_hl(0, "SnacksPickerTitle", { fg = "#${c.base0D}", bold = true })
|
||||
end
|
||||
apply_hl()
|
||||
vim.api.nvim_create_autocmd("ColorScheme", { pattern = "*", callback = apply_hl })
|
||||
'';
|
||||
};
|
||||
imports = [
|
||||
./options.nix
|
||||
./languages.nix
|
||||
./picker.nix
|
||||
./snacks.nix
|
||||
./keymaps.nix
|
||||
./utils.nix
|
||||
./mini.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
Generated
+133
@@ -0,0 +1,133 @@
|
||||
{
|
||||
"nodes": {
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1777699697,
|
||||
"narHash": "sha256-Eg9b/rq/ECYwNwEXs5i9wHyhxNI0JrYx2srdI2uZMaQ=",
|
||||
"ref": "refs/heads/main",
|
||||
"rev": "382052b74656a369c5408822af3f2501e9b1af81",
|
||||
"revCount": 94,
|
||||
"type": "git",
|
||||
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
||||
},
|
||||
"original": {
|
||||
"type": "git",
|
||||
"url": "https://git.lix.systems/lix-project/flake-compat.git"
|
||||
}
|
||||
},
|
||||
"flake-parts": {
|
||||
"inputs": {
|
||||
"nixpkgs-lib": [
|
||||
"nvf",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1778716662,
|
||||
"narHash": "sha256-m1Yf0wZ8j1OHjTc2UwHwyQRSnNeSgLJOd7q5Y45hzi4=",
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"rev": "f7c1a2d347e4c52d5fb8d10cb4d94b5884e546fb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "hercules-ci",
|
||||
"repo": "flake-parts",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"mnw": {
|
||||
"locked": {
|
||||
"lastModified": 1780772958,
|
||||
"narHash": "sha256-VKKe8r4pwCGWZ3Yr9CPN129R4S3CKLSrlYqdYz3vKpM=",
|
||||
"owner": "Gerg-L",
|
||||
"repo": "mnw",
|
||||
"rev": "0871dbf63a53610c95db04439ed8ea4d6ec9c160",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "Gerg-L",
|
||||
"repo": "mnw",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1785133411,
|
||||
"narHash": "sha256-Yjv0WEg39KRYS0rBdTbu6Fc/or/ihAKk13W9sQ6VWd0=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "2f5a153c270b70cb0f8c11f46d96d6d3bc39f4e3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-26.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs_2": {
|
||||
"locked": {
|
||||
"lastModified": 1781216227,
|
||||
"narHash": "sha256-9mUW6gNwoN2SWc/l0fW4svPNOulXLl8ijqKyeSOGgJE=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "a0374025a863d007d98e3297f6aa46cc3141c2f0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-26.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nvf": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-parts": "flake-parts",
|
||||
"mnw": "mnw",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1781997110,
|
||||
"narHash": "sha256-6D6xtYN5t1kZGNd69eMZsRBkgX5Df1roErn/kFR1C+A=",
|
||||
"owner": "notashelf",
|
||||
"repo": "nvf",
|
||||
"rev": "320f60b97075a58d38b90fc5e39f478421dbd38a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "notashelf",
|
||||
"repo": "nvf",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nvf": "nvf"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
description = "Hadi's NVF Neovim configuration";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
|
||||
nvf.url = "github:notashelf/nvf";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
self,
|
||||
nixpkgs,
|
||||
nvf,
|
||||
...
|
||||
}: let
|
||||
systems = ["x86_64-linux" "aarch64-linux" "aarch64-darwin" "x86_64-darwin"];
|
||||
forAllSystems = f: nixpkgs.lib.genAttrs systems f;
|
||||
modules = [
|
||||
./options.nix
|
||||
./languages.nix
|
||||
./picker.nix
|
||||
./snacks.nix
|
||||
./keymaps.nix
|
||||
./utils.nix
|
||||
./mini.nix
|
||||
];
|
||||
in {
|
||||
packages = forAllSystems (system: let
|
||||
pkgs = nixpkgs.legacyPackages.${system};
|
||||
nvim = (nvf.lib.neovimConfiguration {inherit pkgs modules;}).neovim;
|
||||
in {
|
||||
inherit nvim;
|
||||
default = nvim;
|
||||
});
|
||||
|
||||
apps = forAllSystems (system: let
|
||||
nvim = {
|
||||
type = "app";
|
||||
program = "${self.packages.${system}.nvim}/bin/nvim";
|
||||
};
|
||||
in {
|
||||
inherit nvim;
|
||||
default = nvim;
|
||||
});
|
||||
|
||||
homeManagerModules = rec {
|
||||
nvim = {
|
||||
imports = [
|
||||
nvf.homeManagerModules.default
|
||||
./default.nix
|
||||
];
|
||||
};
|
||||
default = nvim;
|
||||
};
|
||||
|
||||
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
|
||||
};
|
||||
}
|
||||
@@ -98,7 +98,7 @@
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>set spell!<cr>";
|
||||
desc = "Toggle spellLazyGitcheck";
|
||||
desc = "Toggle spell check";
|
||||
}
|
||||
{
|
||||
key = "<leader>uc";
|
||||
@@ -1,4 +1,4 @@
|
||||
{...}: {
|
||||
{pkgs, ...}: {
|
||||
vim = {
|
||||
diagnostics = {
|
||||
enable = true;
|
||||
@@ -25,6 +25,7 @@
|
||||
context.enable = true;
|
||||
highlight.enable = true;
|
||||
textobjects.enable = true;
|
||||
grammars = [pkgs.vimPlugins.nvim-treesitter.grammarPlugins.http];
|
||||
};
|
||||
lsp = {
|
||||
enable = true;
|
||||
@@ -23,13 +23,12 @@
|
||||
miniclue.gen_clues.z(),
|
||||
{ mode = 'n', keys = '<Leader>f', desc = '+find' },
|
||||
{ mode = 'n', keys = '<Leader>s', desc = '+search' },
|
||||
{ mode = 'n', keys = '<Leader>t', desc = '+terminal' },
|
||||
{ mode = 'n', keys = '<Leader>t', desc = '+tools' },
|
||||
{ mode = 'n', keys = '<Leader>u', desc = '+ui' },
|
||||
{ mode = 'n', keys = '<Leader>l', desc = '+lsp' },
|
||||
{ mode = 'n', keys = '<Leader>x', desc = '+trouble' },
|
||||
{ mode = 'n', keys = '<Leader>!', desc = 'shell' },
|
||||
{ mode = 'v', keys = '<Leader>!', desc = 'shell' },
|
||||
{ mode = 'n', keys = '<Leader>e', desc = 'yazi' },
|
||||
},
|
||||
window = { delay = 300 },
|
||||
})
|
||||
@@ -18,7 +18,7 @@
|
||||
desc = "Smart Find Files";
|
||||
}
|
||||
{
|
||||
key = "<leader>E";
|
||||
key = "<leader>e";
|
||||
mode = "n";
|
||||
silent = true;
|
||||
action = "<cmd>lua Snacks.explorer()<cr>";
|
||||
@@ -5,15 +5,7 @@
|
||||
vim.keymap.del("n", "<leader>tdt")
|
||||
'';
|
||||
undoFile.enable = true;
|
||||
utility.yazi-nvim = {
|
||||
enable = true;
|
||||
mappings.openYazi = "<leader>e";
|
||||
};
|
||||
notes.todo-comments.enable = true;
|
||||
assistant.copilot = {
|
||||
enable = true;
|
||||
cmp.enable = true;
|
||||
};
|
||||
|
||||
autocomplete = {
|
||||
nvim-cmp = {
|
||||
@@ -0,0 +1,39 @@
|
||||
{pkgs, ...}: {
|
||||
home.packages = with pkgs; [
|
||||
# I love TUIs
|
||||
caligula # User-friendly, lightweight TUI for disk imaging (ISO, USB BOOT)
|
||||
dysk # A terminal-based disk usage analyzer
|
||||
wikiman # Offline search engine for manual pages (arch wiki, tldr)
|
||||
tealdeer # Fast tldr client
|
||||
sttr # A minimalist CyberChef-like, cross-platform CLI app for performing various operations on strings
|
||||
slides # A terminal-based presentation tool that allows you to create and deliver presentations directly from the command line
|
||||
pom # Pomodoro timer in your terminal
|
||||
tabiew # A terminal-based CSV viewer and manipulator
|
||||
jless # A pager for JSON
|
||||
pkgs.nur.repos.anotherhadi.usbguard-tui # TUI for managing USBGuard rules
|
||||
pkgs.nur.repos.anotherhadi.sheets # Terminal based spreadsheet tool
|
||||
pkgs.nur.repos.anotherhadi.settuings # Terminal based settings (wifi, bluetooth, audio, ...)
|
||||
rainfrog # TODO: To test
|
||||
posting # TODO: To test
|
||||
newsboat # TODO: To test
|
||||
dooit # TODO: To test
|
||||
|
||||
# I love CLIs
|
||||
httpie # Command-line HTTP client, a user-friendly cURL replacement
|
||||
gh # GitHub
|
||||
gh-dash # A terminal dashboard for GitHub
|
||||
figlet # Transform text into ASCII art
|
||||
pastel # Command-line tool to generate, analyze, convert and manipulate colors
|
||||
imagemagick # Image manipulation tool
|
||||
chafa # Image to ANSI/Unicode converter and more.
|
||||
|
||||
# Just cool
|
||||
tty-solitaire
|
||||
bastet
|
||||
peaclock
|
||||
cbonsai
|
||||
pipes
|
||||
cmatrix
|
||||
fastfetch
|
||||
];
|
||||
}
|
||||
@@ -1,6 +1,8 @@
|
||||
{
|
||||
programs.direnv = {
|
||||
enable = true;
|
||||
nix-direnv.enable = true;
|
||||
nix-direnv = {
|
||||
enable = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,5 +1,8 @@
|
||||
# Eza is a ls replacement
|
||||
{
|
||||
programs.zsh.initContent = ''
|
||||
compdef eza=ls
|
||||
'';
|
||||
programs.eza = {
|
||||
enable = true;
|
||||
icons = "auto";
|
||||
@@ -0,0 +1,50 @@
|
||||
# Fzf is a general-purpose command-line fuzzy finder.
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
accent = "#" + config.lib.stylix.colors.base0D;
|
||||
foreground = "#" + config.lib.stylix.colors.base05;
|
||||
muted = "#" + config.lib.stylix.colors.base03;
|
||||
previewCmd = "bat --color=always --style=plain,numbers --line-range=:500 {}";
|
||||
in {
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
|
||||
defaultCommand = "fd --type f --hidden --strip-cwd-prefix";
|
||||
fileWidgetCommand = "fd --type f --hidden --strip-cwd-prefix";
|
||||
fileWidgetOptions = ["--preview '${previewCmd}'"];
|
||||
|
||||
colors = lib.mkForce {
|
||||
"fg+" = accent;
|
||||
"bg+" = "-1";
|
||||
"fg" = foreground;
|
||||
"bg" = "-1";
|
||||
"prompt" = muted;
|
||||
"pointer" = accent;
|
||||
};
|
||||
|
||||
defaultOptions = [
|
||||
"--height=60%"
|
||||
"--layout=reverse"
|
||||
"--border=none"
|
||||
"--prompt='/ '"
|
||||
"--preview-window=right:65%:wrap:border-left"
|
||||
"-i"
|
||||
"--no-bold"
|
||||
];
|
||||
};
|
||||
|
||||
programs.zsh.initContent = lib.mkAfter ''
|
||||
_fzf_file_no_hidden() {
|
||||
local cmd result
|
||||
cmd="''${FZF_DEFAULT_COMMAND/--hidden /}"
|
||||
result=$(eval "''${cmd:-find . -type f}" | fzf --preview "${previewCmd}") \
|
||||
&& LBUFFER+="$result"
|
||||
zle reset-prompt
|
||||
}
|
||||
zle -N _fzf_file_no_hidden
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,152 @@
|
||||
# My shell configuration
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
home.packages = with pkgs; [
|
||||
bat
|
||||
ripgrep
|
||||
];
|
||||
|
||||
home = {
|
||||
sessionPath = ["$HOME/go/bin"];
|
||||
sessionVariables = {
|
||||
COLORTERM = "truecolor";
|
||||
MANPAGER = "bat -l man -p";
|
||||
};
|
||||
};
|
||||
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
autocd = true;
|
||||
enableCompletion = true;
|
||||
autosuggestion.enable = true;
|
||||
syntaxHighlighting.enable = true;
|
||||
historySubstringSearch.enable = true;
|
||||
|
||||
plugins = [
|
||||
{
|
||||
name = "zsh-vi-mode";
|
||||
src = pkgs.zsh-vi-mode;
|
||||
file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh";
|
||||
}
|
||||
];
|
||||
|
||||
history = {
|
||||
ignoreDups = true;
|
||||
findNoDups = true;
|
||||
expireDuplicatesFirst = true;
|
||||
ignoreSpace = true;
|
||||
append = true;
|
||||
save = 10000;
|
||||
size = 10000;
|
||||
};
|
||||
|
||||
setOptions = [
|
||||
"NOBEEP"
|
||||
"AUTOCD"
|
||||
"NUMERIC_GLOB_SORT"
|
||||
];
|
||||
|
||||
profileExtra = lib.optionalString (config.home.sessionPath != []) ''
|
||||
export PATH="$PATH''${PATH:+:}${lib.concatStringsSep ":" config.home.sessionPath}"
|
||||
'';
|
||||
|
||||
shellAliases = {
|
||||
# Change default
|
||||
vim = "nvim";
|
||||
vi = "nvim";
|
||||
cd = "z";
|
||||
ls = "eza --icons=always --no-quotes";
|
||||
tree = "eza --icons=always --tree --no-quotes";
|
||||
cat = "bat --theme=base16 --color=always --paging=never --tabs=2 --wrap=never --plain";
|
||||
mkdir = "mkdir -p";
|
||||
nix-shell = "nix-shell --command zsh";
|
||||
grep = "rg --color=auto";
|
||||
diff = "diff --color=auto";
|
||||
df = "df -h";
|
||||
|
||||
# Shortcuts
|
||||
spt = "spotatui";
|
||||
open = "${pkgs.xdg-utils}/bin/xdg-open";
|
||||
|
||||
notes = "nvim ~/notes/index.md --cmd 'cd ~/notes' -c ':lua Snacks.picker.smart()'";
|
||||
|
||||
# git
|
||||
g = "lazygit";
|
||||
ga = "git add";
|
||||
gc = "git commit";
|
||||
gp = "git push";
|
||||
gpl = "git pull";
|
||||
gs = "git status";
|
||||
gd = "git diff";
|
||||
gco = "git checkout";
|
||||
gcb = "git checkout -b";
|
||||
gbr = "git branch";
|
||||
grs = "git reset HEAD~1";
|
||||
grh = "git reset --hard HEAD~1";
|
||||
gaa = "git add .";
|
||||
gcm = "git commit -m";
|
||||
|
||||
# Original binaries
|
||||
ocat = "/run/current-system/sw/bin/cat";
|
||||
ols = "/run/current-system/sw/bin/ls";
|
||||
ocd = "builtin cd";
|
||||
|
||||
# Typo
|
||||
clera = "clear";
|
||||
celar = "clear";
|
||||
claer = "clear";
|
||||
sl = "ls";
|
||||
};
|
||||
|
||||
initContent = lib.mkMerge [
|
||||
(lib.mkOrder 550 ''
|
||||
function zvm_config() {
|
||||
ZVM_INSERT_MODE_CURSOR=$ZVM_CURSOR_BEAM
|
||||
ZVM_NORMAL_MODE_CURSOR=$ZVM_CURSOR_BLOCK
|
||||
ZVM_VISUAL_MODE_CURSOR=$ZVM_CURSOR_BLOCK
|
||||
|
||||
ZVM_VI_HIGHLIGHT_BACKGROUND=none
|
||||
ZVM_VI_HIGHLIGHT_FOREGROUND=none
|
||||
ZVM_VI_HIGHLIGHT_EXTRASTYLE=none
|
||||
}
|
||||
'')
|
||||
# bash
|
||||
''
|
||||
# Suffix Aliases
|
||||
alias -s {nix,md,txt,yml,yaml,go}=nvim
|
||||
alias -s {json,jsonl}=jless
|
||||
alias -s {csv,tsv,parquet,pqt,arrow,db,sqlite,xls,xlsx,xlsm,xlsb,fwf}=tw
|
||||
alias -s {png,jpg,jpeg,gif,pdf}=xdg-open
|
||||
|
||||
# Global Aliases
|
||||
alias -g G="| rg"
|
||||
alias -g L="| less"
|
||||
alias -g V="| nvim"
|
||||
alias -g H="| head"
|
||||
alias -g T="| tail"
|
||||
alias -g JQ="| jq"
|
||||
alias -g C="| wl-copy"
|
||||
alias -g NE="2>/dev/null"
|
||||
alias -g ND=">/dev/null"
|
||||
alias -g NUL=">/dev/null 2>&1"
|
||||
|
||||
autoload zmv # Mv for multiple files
|
||||
|
||||
zstyle ':completion:*' menu select
|
||||
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
|
||||
|
||||
zvm_after_init() {
|
||||
bindkey '^[[1;5C' forward-word
|
||||
bindkey '^[[1;5D' backward-word
|
||||
bindkey '^F' _fzf_file_no_hidden
|
||||
bindkey '^[[A' history-substring-search-up
|
||||
bindkey '^[[B' history-substring-search-down
|
||||
}
|
||||
''
|
||||
];
|
||||
};
|
||||
}
|
||||
@@ -1,129 +0,0 @@
|
||||
{pkgs, ...}: {
|
||||
programs.yazi = {
|
||||
enable = true;
|
||||
shellWrapperName = "y";
|
||||
|
||||
plugins = {
|
||||
git = {
|
||||
package = pkgs.yaziPlugins.git;
|
||||
setup = true;
|
||||
};
|
||||
ouch = pkgs.yaziPlugins.ouch;
|
||||
piper = pkgs.yaziPlugins.piper;
|
||||
convert = pkgs.yaziPlugins.convert;
|
||||
"jump-to-char" = pkgs.yaziPlugins."jump-to-char";
|
||||
"wl-clipboard" = pkgs.yaziPlugins."wl-clipboard";
|
||||
"batch-rename-gui" = pkgs.yaziPlugins.mkYaziPlugin {
|
||||
pname = "batch-rename-gui.yazi";
|
||||
version = "0-unstable-2025-07-08";
|
||||
src = pkgs.fetchFromGitHub {
|
||||
owner = "pakhromov";
|
||||
repo = "batch-rename-gui.yazi";
|
||||
rev = "5c2d5aa349948b6ab405a171541faab44751f6a5";
|
||||
hash = "sha256-3RviPY3WOyYi5GWXWRYMWp6VLxCe5cuJX7Kb7AyWxLE=";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
settings.mgr.ratio = [0 4 3];
|
||||
|
||||
settings.plugin = {
|
||||
prepend_fetchers = [
|
||||
{
|
||||
url = "*";
|
||||
run = "git";
|
||||
group = "git";
|
||||
}
|
||||
{
|
||||
url = "*/";
|
||||
run = "git";
|
||||
group = "git";
|
||||
}
|
||||
];
|
||||
prepend_previewers = [
|
||||
{
|
||||
url = "*.md";
|
||||
run = ''piper -- CLICOLOR_FORCE=1 glow -w=$w -s=dark "$1"'';
|
||||
}
|
||||
];
|
||||
prepend_openers = [
|
||||
{
|
||||
url = "*.{zip,tar,gz,bz2,xz,7z,rar}";
|
||||
run = "ouch";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
keymap.mgr.prepend_keymap = [
|
||||
{
|
||||
on = ["C"];
|
||||
run = "plugin ouch";
|
||||
desc = "Compress";
|
||||
}
|
||||
{
|
||||
on = ["X"];
|
||||
run = "plugin ouch --args=extract";
|
||||
desc = "Extract";
|
||||
}
|
||||
{
|
||||
on = ["c" "p"];
|
||||
run = "plugin convert -- --extension='png'";
|
||||
desc = "Convert to PNG";
|
||||
}
|
||||
{
|
||||
on = ["c" "j"];
|
||||
run = "plugin convert -- --extension='jpg'";
|
||||
desc = "Convert to JPG";
|
||||
}
|
||||
{
|
||||
on = ["c" "w"];
|
||||
run = "plugin convert -- --extension='webp'";
|
||||
desc = "Convert to WebP";
|
||||
}
|
||||
{
|
||||
on = ["M"];
|
||||
run = ''shell 'exiftool "$@" | less' --block'';
|
||||
desc = "Show metadata";
|
||||
}
|
||||
{
|
||||
on = ["T"];
|
||||
run = "plugin toggle-parent";
|
||||
desc = "Toggle parent pane";
|
||||
}
|
||||
{
|
||||
on = ["F"];
|
||||
run = "plugin jump-to-char";
|
||||
desc = "Jump to char";
|
||||
}
|
||||
{
|
||||
on = ["Y"];
|
||||
run = "plugin wl-clipboard";
|
||||
desc = "Copy to clipboard (Wayland)";
|
||||
}
|
||||
{
|
||||
on = ["B"];
|
||||
run = "plugin batch-rename-gui";
|
||||
desc = "Batch rename";
|
||||
}
|
||||
];
|
||||
};
|
||||
|
||||
home.packages = with pkgs; [glow ouch hexyl exiftool fzf wl-clipboard];
|
||||
|
||||
xdg.configFile."yazi/plugins/toggle-parent.yazi/main.lua".text = ''
|
||||
--- @sync entry
|
||||
local RESTORE_WIDTH = 1
|
||||
return {
|
||||
entry = function(st, job)
|
||||
local r = rt.mgr.ratio
|
||||
if r.parent == 0 then
|
||||
rt.mgr.ratio = { st.width or RESTORE_WIDTH, r.current, r.preview }
|
||||
else
|
||||
st.width = r.parent
|
||||
rt.mgr.ratio = { 0, r.current, r.preview }
|
||||
end
|
||||
ya.emit("app:resize", {})
|
||||
end
|
||||
}
|
||||
'';
|
||||
}
|
||||
Reference in New Issue
Block a user