From 265d97cecc4a6787760cfc52648933d73c3903bd Mon Sep 17 00:00:00 2001 From: Miguel Palhas Date: Mon, 24 Nov 2025 13:21:00 +0000 Subject: [PATCH] wip --- flake.lock | 42 +++++++++---------- home/arrakis/default.nix | 3 +- home/common/programs/default.nix | 1 + home/common/programs/hyprland/default.nix | 33 ++++++++++++--- .../programs/{kitty.nix => kitty/default.nix} | 2 + home/common/programs/kitty/sessions/yazi | 1 + home/common/programs/yazi/default.nix | 14 +++++++ home/common/programs/yazi/yazi.toml | 9 ++++ home/common/programs/zsh.nix | 12 ++++-- home/desktop/default.nix | 2 +- hosts/arrakis/default.nix | 2 +- 11 files changed, 88 insertions(+), 33 deletions(-) rename home/common/programs/{kitty.nix => kitty/default.nix} (98%) create mode 100644 home/common/programs/kitty/sessions/yazi create mode 100644 home/common/programs/yazi/default.nix create mode 100644 home/common/programs/yazi/yazi.toml diff --git a/flake.lock b/flake.lock index 4f56248..a1371b7 100644 --- a/flake.lock +++ b/flake.lock @@ -45,11 +45,11 @@ ] }, "locked": { - "lastModified": 1762980239, - "narHash": "sha256-8oNVE8TrD19ulHinjaqONf9QWCKK+w4url56cdStMpM=", + "lastModified": 1763759067, + "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "52a2caecc898d0b46b2b905f058ccc5081f842da", + "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", "type": "github" }, "original": { @@ -115,11 +115,11 @@ "nixpkgs": "nixpkgs_3" }, "locked": { - "lastModified": 1763363037, - "narHash": "sha256-y0Z6CvLpPAwyGGhx+EEKxvWsaMaf0dgl4MJtF6QlWuU=", + "lastModified": 1763967824, + "narHash": "sha256-/7Rqw0Y1hDGPnbX6IEcWSKhx5M4nJl539j9FvSa4C80=", "owner": "shazow", "repo": "foundry.nix", - "rev": "0cc7fdcae7cdf09d0585c2b8e0024e2189a37c02", + "rev": "bbf79c88974d4bae764a5353d2a7b4ce63a8f053", "type": "github" }, "original": { @@ -333,11 +333,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1763191728, - "narHash": "sha256-esRhOS0APE6k40Hs/jjReXg+rx+J5LkWw7cuWFKlwYA=", + "lastModified": 1763618868, + "narHash": "sha256-v5afmLjn/uyD9EQuPBn7nZuaZVV9r+JerayK/4wvdWA=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "1d4c88323ac36805d09657d13a5273aea1b34f0c", + "rev": "a8d610af3f1a5fb71e23e08434d8d61a466fc942", "type": "github" }, "original": { @@ -387,11 +387,11 @@ "systems": "systems_3" }, "locked": { - "lastModified": 1763334942, - "narHash": "sha256-ORaewCyY3Fff+XaGrRjWi0XYzC22YTr/H3oL9c9k+9I=", + "lastModified": 1763984728, + "narHash": "sha256-i07UsSg+kedev5Bh/p/ERG1xrbRivOztih8laHZR6W8=", "owner": "nix-community", "repo": "nixvim", - "rev": "59af09b1814538b826f30eac8024d126d8c36efc", + "rev": "3dc952d69cd38cdc3ad3ec7570fc4a1caed2bfea", "type": "github" }, "original": { @@ -426,11 +426,11 @@ "nvchad-starter": { "flake": false, "locked": { - "lastModified": 1761549665, - "narHash": "sha256-mmJDsK3cshuCfwQMuhQTiPfjnuZ3OFCSYIEojtgLXzs=", + "lastModified": 1763985834, + "narHash": "sha256-aP8d8J7Zc/rbAJHzo6cJ8hiVGGiRkuNC/3ScTCDqRmQ=", "owner": "naps62", "repo": "nvchad-starter", - "rev": "2b736718f5114252f01f5ad205729077762b5dae", + "rev": "8223b4f0c7a711887a1edc528ec7566942fad45e", "type": "github" }, "original": { @@ -450,11 +450,11 @@ ] }, "locked": { - "lastModified": 1763090138, - "narHash": "sha256-7h9pE4Sm/gk3KSa0N/kTSm3Jr3VSriKhCzWe94r9nRE=", + "lastModified": 1763694739, + "narHash": "sha256-zpT3XysPItqHuYvygFfC8ASzKNGExARZCrfDQUul1v4=", "owner": "nix-community", "repo": "nix4nvchad", - "rev": "856b909046ad6f07e8337736ecf3702460be2b0f", + "rev": "713a3693da4832c169aa90e8cae6e7a45b8c7949", "type": "github" }, "original": { @@ -698,11 +698,11 @@ "nixpkgs": "nixpkgs_7" }, "locked": { - "lastModified": 1763353619, - "narHash": "sha256-y30wSzjr7QiO4OVB/Tt7dnLRLIuK2EpaftpKeMMLGu0=", + "lastModified": 1763958868, + "narHash": "sha256-IOP3fAjawH68FL1RDakySNRK6XNYdZajX538Q3U58Y0=", "owner": "0xc000022070", "repo": "zen-browser-flake", - "rev": "7463345c68cfdd9e92e2d40e390b1a802b0f2add", + "rev": "15db6bda557066f3525010209bde4ec5f968f2ba", "type": "github" }, "original": { diff --git a/home/arrakis/default.nix b/home/arrakis/default.nix index 1d2a13f..fa29895 100644 --- a/home/arrakis/default.nix +++ b/home/arrakis/default.nix @@ -15,12 +15,13 @@ ../common/programs/zen-browser.nix ../common/programs/hyprland ../common/programs/i3.nix - ../common/programs/kitty.nix + ../common/programs/kitty ../common/programs/syncthing.nix ../common/programs/unity.nix ../common/programs/ethui.nix ../common/programs/gpg.nix ../common/features/xdg.nix + ../common/programs/3d.nix ../common/features/bluetooth.nix ./monitors.nix ]; diff --git a/home/common/programs/default.nix b/home/common/programs/default.nix index e78ac9e..f8cb967 100644 --- a/home/common/programs/default.nix +++ b/home/common/programs/default.nix @@ -17,6 +17,7 @@ ./aider.nix ./cpp.nix ./claude + ./yazi ]; programs = { diff --git a/home/common/programs/hyprland/default.nix b/home/common/programs/hyprland/default.nix index ad5dba0..5096cf4 100644 --- a/home/common/programs/hyprland/default.nix +++ b/home/common/programs/hyprland/default.nix @@ -44,6 +44,7 @@ in gaps_in = 0; gaps_out = 0; snap = { + enabled = true; border_overlap = true; }; @@ -54,6 +55,7 @@ in misc = { disable_hyprland_logo = true; disable_splash_rendering = true; + new_window_takes_over_fullscreen = 2; }; xwayland = { @@ -104,6 +106,15 @@ in "nm-applet" "hyprsunset" ]; + workspace = [ + # no gaps when only window + "w[t1], gapsout:0, gapsin:0" + "w[tg1], gapsout:0, gapsin:0" + "f[1], gapsout:0, gapsin:0" + + "special:terminal, on-created-empty:[float; size 1000 800; move center] kitty, persistent:false" + "special:yazi, on-created-empty:[float; size 1000 800; move center] kitty --session sessions/yazi, persistent:false" + ]; windowrulev2 = [ # imv @@ -120,23 +131,28 @@ in "move cursor -50% -50%, class:pavucontrol" "size 600 600, class:pavucontrol" - # thunar - "float, class:thunar" - "move cursor -50% -50%, class:thunar" - "size 800 600, class:thunar" - # metamask "float, class:chrome-nkbihfbeogaeaoehlefnkodbefgpgknn-.*" # bitwarden, chrome "float, class:chrome-nngceckbapebfimnlniiiahkandclblb-.*" + + # no gaps when only window + "bordersize 0, floating:0, onworkspace:w[t1]" + "rounding 0, floating:0, onworkspace:w[t1]" + "bordersize 0, floating:0, onworkspace:w[tg1]" + "rounding 0, floating:0, onworkspace:w[tg1]" + "bordersize 0, floating:0, onworkspace:f[1]" + "rounding 0, floating:0, onworkspace:f[1]" + + "move center, onworkspace:special:terminal" + "move center, onworkspace:special:yazi" ]; "$mod" = "SUPER"; bind = [ "$mod, t, exec, kitty" - "$mod, e, exec, thunar" "$mod, v, togglefloating" "$mod, q, killactive" "$mod, f, fullscreen, 0" @@ -182,6 +198,11 @@ in "$mod, mouse_down, workspace, e+1" "$mod, mouse_up, workspace, e-1" + # special workspaces + "$mod, x, togglespecialworkspace, terminal" + "$mod, x, centerwindow" + "$mod, e, togglespecialworkspace, yazi" + "$mod, e, centerwindow" ]; bindel = [ diff --git a/home/common/programs/kitty.nix b/home/common/programs/kitty/default.nix similarity index 98% rename from home/common/programs/kitty.nix rename to home/common/programs/kitty/default.nix index 123e945..a342049 100644 --- a/home/common/programs/kitty.nix +++ b/home/common/programs/kitty/default.nix @@ -126,4 +126,6 @@ color15 #ffffff ''; }; + + xdg.configFile."kitty/sessions".source = ./sessions; } diff --git a/home/common/programs/kitty/sessions/yazi b/home/common/programs/kitty/sessions/yazi new file mode 100644 index 0000000..97d0013 --- /dev/null +++ b/home/common/programs/kitty/sessions/yazi @@ -0,0 +1 @@ +launch yazi diff --git a/home/common/programs/yazi/default.nix b/home/common/programs/yazi/default.nix new file mode 100644 index 0000000..85c6c43 --- /dev/null +++ b/home/common/programs/yazi/default.nix @@ -0,0 +1,14 @@ +{ + lib, + pkgs, + config, + ... +}: +{ + + home.packages = with pkgs; [ + yazi + ]; + + xdg.configFile."yazi/yazi.yaml".source = ./yazi.yaml; +} diff --git a/home/common/programs/yazi/yazi.toml b/home/common/programs/yazi/yazi.toml new file mode 100644 index 0000000..388ba43 --- /dev/null +++ b/home/common/programs/yazi/yazi.toml @@ -0,0 +1,9 @@ +[preview] +image_quality = 80 + +[opener] +pdf = [{ run = 'tdf "$@"', block = true }] +edit = [{ run = '$EDITOR "$@"', block = true }] + +[open] +rules = [{ mime = "application/pdf", use = "tdf" }] diff --git a/home/common/programs/zsh.nix b/home/common/programs/zsh.nix index 8b23c76..c02494c 100644 --- a/home/common/programs/zsh.nix +++ b/home/common/programs/zsh.nix @@ -66,10 +66,15 @@ export PATH="$HOME/.bin:$PATH" export FOUNDRY_DISABLE_NIGHTLY_WARNING=true - # export PKG_CONFIG_PATH=$(nix eval --raw nixpkgs.openssl.dev)/lib/pkgconfig:$PKG_CONFIG_PATH - # export LIBRARY_PATH=$(nix eval --raw nixpkgs.openssl.dev)/lib:$LIBRARY_PATH - # export LD_LIBRARY_PATH=$(nix eval --raw nixpkgs.openssl.dev)/lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=${pkgs.icu}/lib:${pkgs.stdenv.cc.cc.lib}/lib:$LD_LIBRARY_PATH + + function y() { + local tmp="$(mktemp -t "yazi-cwd.XXXXXX")" cwd + yazi "$@" --cwd-file="$tmp" + IFS= read -r -d "" cwd < "$tmp" + [ -n "$cwd" ] && [ "$cwd" != "$PWD" ] && builtin cd -- "$cwd" + rm -f -- "$tmp" + } ''; }; @@ -120,6 +125,7 @@ eza asdf-vm fd + tdf ]; home.sessionVariables = { diff --git a/home/desktop/default.nix b/home/desktop/default.nix index 0b7a3c1..724e75b 100644 --- a/home/desktop/default.nix +++ b/home/desktop/default.nix @@ -15,7 +15,7 @@ ../common/programs/zen-browser.nix ../common/programs/hyprland ../common/programs/i3.nix - ../common/programs/kitty.nix + ../common/programs/kitty ../common/programs/syncthing.nix ../common/programs/unity.nix ../common/programs/gpg.nix diff --git a/hosts/arrakis/default.nix b/hosts/arrakis/default.nix index d5a5948..51ea574 100644 --- a/hosts/arrakis/default.nix +++ b/hosts/arrakis/default.nix @@ -37,7 +37,7 @@ ]; }; - stdenv.hostPlatform.system.stateVersion = "24.05"; + system.stateVersion = "24.05"; programs.zsh.enable = true;