fix(apps): improve Thunar and Mako integration
Some checks failed
Check / eval-and-lint (push) Has been cancelled
Some checks failed
Check / eval-and-lint (push) Has been cancelled
This commit is contained in:
@@ -22,12 +22,15 @@ layer=overlay
|
|||||||
|
|
||||||
[summary~="Setup Wi-Fi"]
|
[summary~="Setup Wi-Fi"]
|
||||||
on-button-left=exec sh -c 'nomarchy-notification-dismiss "Setup Wi-Fi"; nomarchy-launch-wifi'
|
on-button-left=exec sh -c 'nomarchy-notification-dismiss "Setup Wi-Fi"; nomarchy-launch-wifi'
|
||||||
|
on-click=exec sh -c 'nomarchy-notification-dismiss "Setup Wi-Fi"; nomarchy-launch-wifi'
|
||||||
|
|
||||||
[summary~="Update System"]
|
[summary~="Update System"]
|
||||||
on-button-left=exec sh -c 'nomarchy-notification-dismiss "Update System"; nomarchy-launch-floating-terminal-with-presentation nomarchy-update'
|
on-button-left=exec sh -c 'nomarchy-notification-dismiss "Update System"; nomarchy-launch-floating-terminal-with-presentation nomarchy-update'
|
||||||
|
on-click=exec sh -c 'nomarchy-notification-dismiss "Update System"; nomarchy-launch-floating-terminal-with-presentation nomarchy-update'
|
||||||
|
|
||||||
[summary~="Learn Keybindings"]
|
[summary~="Learn Keybindings"]
|
||||||
on-button-left=exec sh -c 'nomarchy-notification-dismiss "Learn Keybindings"; nomarchy-menu-keybindings'
|
on-button-left=exec sh -c 'nomarchy-notification-dismiss "Learn Keybindings"; nomarchy-menu-keybindings'
|
||||||
|
on-click=exec sh -c 'nomarchy-notification-dismiss "Learn Keybindings"; nomarchy-menu-keybindings'
|
||||||
|
|
||||||
[summary~="Screenshot copied & saved"]
|
[summary~="Screenshot copied & saved"]
|
||||||
max-icon-size=80
|
max-icon-size=80
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
./network.nix
|
./network.nix
|
||||||
./impermanence.nix
|
./impermanence.nix
|
||||||
./browser.nix
|
./browser.nix
|
||||||
|
./file-manager.nix
|
||||||
# Tier 1 system features (all opt-in via nomarchy.system.*).
|
# Tier 1 system features (all opt-in via nomarchy.system.*).
|
||||||
./snapper.nix
|
./snapper.nix
|
||||||
./laptop.nix
|
./laptop.nix
|
||||||
|
|||||||
29
core/system/file-manager.nix
Normal file
29
core/system/file-manager.nix
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{ pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
# Core system-side support for file management.
|
||||||
|
# This provides the backend services required by Thunar (and other file
|
||||||
|
# managers) to function correctly on a standalone compositor.
|
||||||
|
|
||||||
|
services.gvfs.enable = lib.mkDefault true; # Mount, trash, and other file system operations
|
||||||
|
services.tumbler.enable = lib.mkDefault true; # Thumbnail support for images/videos/etc.
|
||||||
|
|
||||||
|
# Explicitly enable Thunar for D-Bus integration
|
||||||
|
programs.thunar.enable = lib.mkDefault true;
|
||||||
|
|
||||||
|
# Allow Thunar to use gvfs (trash, network mounts, etc.)
|
||||||
|
programs.thunar.plugins = with pkgs.xfce; [
|
||||||
|
thunar-archive-plugin
|
||||||
|
thunar-volman
|
||||||
|
thunar-media-tags-plugin
|
||||||
|
];
|
||||||
|
|
||||||
|
# Supporting utilities for Thunar and general file management
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
ffmpegthumbnailer # Video thumbnails
|
||||||
|
libgsf # ODF thumbnails
|
||||||
|
poppler-utils # PDF thumbnails
|
||||||
|
xfce.exo # Required for "Open Terminal Here" and other associations
|
||||||
|
shared-mime-info # Standard MIME database
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -19,12 +19,13 @@ Guardrails (apply when adding anything):
|
|||||||
|
|
||||||
### Now (ready to pick up)
|
### Now (ready to pick up)
|
||||||
|
|
||||||
_(empty — all entries shipped or moved to Later)_
|
- **Deep Runtime Polish: App Integration.** Verify deeper NixOS integration for core apps in a live VM. Check **Thunar** (thumbnails, "Open Terminal Here"), **VSCode** (font propagation, extension loading), and **Mako** (clickable notification actions).
|
||||||
|
- **Deep Runtime Polish: Interactive Script Audit (Round 2).** Run complex `nomarchy-*` commands inside a real Alacritty window in the VM. Identify and fix failures caused by TTY expectations, `$TERM` mismatches, or `gum` layout issues on specific themes.
|
||||||
|
- **Deep Runtime Polish: State-Sync Stress Test.** Verify the robustness of the hybrid declarative state system (`nomarchy-state.nix`). Run automated "chaos" cycles (rapid theme/font/scaling changes) to catch race conditions or Nix generation errors.
|
||||||
|
- **Deep Runtime Polish: Keybinding vs. Tooltip Reconciliation.** Ensure that `docs/KEYBINDINGS.md`, Waybar tooltips, and live Hyprland behavior are in perfect sync. Identify and fix stale references or conflicts with app-specific defaults.
|
||||||
|
|
||||||
### Next (bigger lifts that build on Now)
|
### Next (bigger lifts that build on Now)
|
||||||
|
|
||||||
_(empty — all entries shipped or moved to Later)_
|
|
||||||
|
|
||||||
### Later (speculative or research-shaped)
|
### Later (speculative or research-shaped)
|
||||||
|
|
||||||
- **Rolling vs pinned channel choice in the installer.**
|
- **Rolling vs pinned channel choice in the installer.**
|
||||||
|
|||||||
@@ -9,8 +9,20 @@ if (($# == 0)); then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Find the first notification whose 'summary' matches the regex in $1
|
# Find the first notification whose 'summary' matches the regex in $1
|
||||||
notification_id=$(makoctl list | grep -F "$1" | head -n1 | sed -E 's/^Notification ([0-9]+):.*/\1/')
|
output=$(makoctl list)
|
||||||
|
|
||||||
if [[ -n $notification_id ]]; then
|
if [[ $output == "["* ]] || [[ $output == "{"* ]]; then
|
||||||
makoctl dismiss -n $notification_id
|
# JSON format (mako 1.8+)
|
||||||
|
# Structure is usually an array of notifications or a wrapper object
|
||||||
|
notification_id=$(echo "$output" | jq -r --arg pat "$1" '
|
||||||
|
if type == "array" then .
|
||||||
|
else .notifications // .data[0] // [] end
|
||||||
|
| .[] | select((.summary // .["summary-text"] // "") | contains($pat)) | .id' | head -n1)
|
||||||
|
else
|
||||||
|
# Human format (older mako)
|
||||||
|
notification_id=$(echo "$output" | grep -F "$1" | head -n1 | sed -E 's/^Notification ([0-9]+):.*/\1/')
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$notification_id" =~ ^[0-9]+$ ]]; then
|
||||||
|
makoctl dismiss -n "$notification_id"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user