diff --git a/assets/branding/icon.png b/assets/branding/icon.png new file mode 100644 index 0000000..dbcde56 Binary files /dev/null and b/assets/branding/icon.png differ diff --git a/assets/branding/icon.txt b/assets/branding/icon.txt new file mode 100644 index 0000000..0bdd125 --- /dev/null +++ b/assets/branding/icon.txt @@ -0,0 +1,34 @@ + ,,, + ,, ,,,,,, + ,,,,,,,, ,,,,,,,,,, + ,,,,,,,,,,,,,, .,,,,,,,,,,,, + ,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,,. ,,,,,,,,,,,,,,,,,,, + .,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,, +, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,, +,,, ,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,, .,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,. ,,,,,,,,,,,,,,,,,,,,,,,,, ,,, .,,,,,,,,,,,, +,,,,,,,,,,,, .,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,. ,,,,,,,,,,,,, +,,,,,,,,,,,,, ,, ,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,, ,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,, ,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,,,, ,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,, ,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,, ,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,, +,,,,,,,,,,,,, ,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,, +,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,, .,,,,, +,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, ,,, +,,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,,,,, ,,,,,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,,,,, .,,,,,,,,,,,,,,,,,,, +,,,,,,,,,,,,, ,,,,,,,,,,,,,, +,,,,,,,,,, ,,,,,,,,,. +,,,,,, ,, +,,,, diff --git a/assets/branding/logo.svg b/assets/branding/logo.svg index ea44270..b060ba0 100644 --- a/assets/branding/logo.svg +++ b/assets/branding/logo.svg @@ -2,14 +2,14 @@ diff --git a/assets/makima/AT Translated Set 2 keyboard.toml b/assets/makima/AT Translated Set 2 keyboard.toml new file mode 100644 index 0000000..3872c35 --- /dev/null +++ b/assets/makima/AT Translated Set 2 keyboard.toml @@ -0,0 +1,7 @@ +# Run nomarchy-restart-makima after any changes + +[remap] +KEY_LEFTMETA-KEY_LEFTSHIFT-KEY_F23 = ["KEY_LEFTMETA", "KEY_LEFTALT", "KEY_SPACE"] + +[settings] +GRAB_DEVICE = "true" diff --git a/assets/nautilus-python/extensions/localsend.py b/assets/nautilus-python/extensions/localsend.py new file mode 100644 index 0000000..aaf4440 --- /dev/null +++ b/assets/nautilus-python/extensions/localsend.py @@ -0,0 +1,84 @@ +import os +import shutil + +from gi import require_version + +require_version("Nautilus", "4.1") + +from gi.repository import GObject, Gio, Nautilus + + +class SendViaLocalSendAction(GObject.GObject, Nautilus.MenuProvider): + def _launch_localsend(self, paths): + command = self._resolve_command() + if not command: + return + + if command[-1] == "@@": + command = command + paths + ["@@"] + else: + command = command + paths + + Gio.Subprocess.new(command, Gio.SubprocessFlags.NONE) + + def _resolve_command(self): + localsend = shutil.which("localsend") + if localsend: + return [localsend, "--headless", "send"] + + flatpak = shutil.which("flatpak") + if flatpak and self._has_flatpak_app(flatpak, "org.localsend.localsend_app"): + return [ + flatpak, + "run", + "--file-forwarding", + "org.localsend.localsend_app", + "@@", + ] + + return None + + def _has_flatpak_app(self, flatpak, app_id): + process = Gio.Subprocess.new( + [flatpak, "info", app_id], + Gio.SubprocessFlags.STDOUT_SILENCE | Gio.SubprocessFlags.STDERR_SILENCE, + ) + return process.wait_check() + + def _selected_paths(self, files): + paths = [] + + for file in files: + location = file.get_location() + if not location: + continue + + path = location.get_path() + if path and path not in paths: + paths.append(path) + + return paths + + def _make_item(self, paths): + label = ( + "Send via LocalSend" if len(paths) == 1 else "Send selected via LocalSend" + ) + item = Nautilus.MenuItem( + name="LocalSendNautilus::send_via_localsend", + label=label, + icon="localsend", + ) + item.connect("activate", self._on_activate, paths) + return item + + def _on_activate(self, _menu, paths): + self._launch_localsend(paths) + + def get_file_items(self, *args): + files = args[0] if len(args) == 1 else args[1] + paths = self._selected_paths(files) + + if not paths or not self._resolve_command(): + return [] + + return [self._make_item(paths)] diff --git a/assets/nomarchy-skill/SKILL.md b/assets/nomarchy-skill/SKILL.md new file mode 100644 index 0000000..19c2eba --- /dev/null +++ b/assets/nomarchy-skill/SKILL.md @@ -0,0 +1,366 @@ +--- +name: nomarchy +description: > + REQUIRED for end-user customization of Linux desktop, window manager, or system config. + Use when editing ~/.config/hypr/, ~/.config/waybar/, ~/.config/walker/, + ~/.config/alacritty/, ~/.config/kitty/, ~/.config/ghostty/, ~/.config/mako/, + or ~/.config/nomarchy/. Triggers: Hyprland, window rules, animations, keybindings, + monitors, gaps, borders, blur, opacity, waybar, walker, terminal config, themes, + wallpaper, night light, idle, lock screen, screenshots, layer rules, workspace + settings, display config, and user-facing nomarchy commands. Excludes Nomarchy + source development in ~/.local/share/nomarchy/ and nomarchy-dev-* workflows. +--- + +# Nomarchy Skill + +Manage [Nomarchy](https://nomarchy.org/) Linux systems - a beautiful, modern, opinionated Arch Linux distribution with Hyprland. + +This skill is for end-user customization on installed systems. +It is not for contributing to Nomarchy source code. + +## When This Skill MUST Be Used + +**ALWAYS invoke this skill for end-user requests involving ANY of these:** + +- Editing ANY file in `~/.config/hypr/` (window rules, animations, keybindings, monitors, etc.) +- Editing ANY file in `~/.config/waybar/`, `~/.config/walker/`, `~/.config/mako/` +- Editing terminal configs (alacritty, kitty, ghostty) +- Editing ANY file in `~/.config/nomarchy/` +- Window behavior, animations, opacity, blur, gaps, borders +- Layer rules, workspace settings, display/monitor configuration +- Themes, wallpapers, fonts, appearance changes +- User-facing `nomarchy-*` commands (`nomarchy-theme-*`, `nomarchy-refresh-*`, `nomarchy-restart-*`, etc.) +- Screenshots, screen recording, night light, idle behavior, lock screen + +**If you're about to edit a config file in ~/.config/ on this system, STOP and use this skill first.** + +**Do NOT use this skill for Nomarchy development tasks** (editing files in `~/.local/share/nomarchy/`, creating migrations, or running `nomarchy-dev-*` workflows). + +## Critical Safety Rules + +**For end-user customization tasks, NEVER modify anything in `~/.local/share/nomarchy/`** - but READING is safe and encouraged. + +This directory contains Nomarchy's source files managed by git. Any changes will be: +- Lost on next `nomarchy-update` +- Cause conflicts with upstream +- Break the system's update mechanism + +``` +~/.local/share/nomarchy/ # READ-ONLY - NEVER EDIT (reading is OK) +├── bin/ # Source scripts (symlinked to PATH) +├── config/ # Default config templates +├── themes/ # Stock themes +├── default/ # System defaults +├── migrations/ # Update migrations +└── install/ # Installation scripts +``` + +**Reading `~/.local/share/nomarchy/` is SAFE and useful** - do it freely to: +- Understand how nomarchy commands work: `cat $(which nomarchy-theme-set)` +- See default configs before customizing: `cat ~/.local/share/nomarchy/config/waybar/config.jsonc` +- Check stock theme files to copy for customization +- Reference default hyprland settings: `cat ~/.config/nomarchy/default/hypr/*` + +**Always use these safe locations instead:** +- `~/.config/` - User configuration (safe to edit) +- `~/.config/nomarchy/themes//` - Custom themes (must be real directories) +- `~/.config/nomarchy/hooks/` - Custom automation hooks + +If the request is to develop Nomarchy itself, this skill is out of scope. Follow repository development instructions instead of this skill. + +## System Architecture + +Nomarchy is built on: + +| Component | Purpose | Config Location | +|-----------|---------|-----------------| +| **Arch Linux** | Base OS | `/etc/`, `~/.config/` | +| **Hyprland** | Wayland compositor/WM | `~/.config/hypr/` | +| **Waybar** | Status bar | `~/.config/waybar/` | +| **Walker** | App launcher | `~/.config/walker/` | +| **Alacritty/Kitty/Ghostty** | Terminals | `~/.config//` | +| **Mako** | Notifications | `~/.config/mako/` | +| **SwayOSD** | On-screen display | `~/.config/swayosd/` | + +## Command Discovery + +Nomarchy provides ~145 commands following `nomarchy--` pattern. + +```bash +# List all nomarchy commands +compgen -c | grep -E '^nomarchy-' | sort -u + +# Find commands by category +compgen -c | grep -E '^nomarchy-theme' +compgen -c | grep -E '^nomarchy-restart' + +# Read a command's source to understand it +cat $(which nomarchy-theme-set) +``` + +### Command Categories + +| Prefix | Purpose | Example | +|--------|---------|---------| +| `nomarchy-refresh-*` | Reset config to defaults (backs up first) | `nomarchy-refresh-waybar` | +| `nomarchy-restart-*` | Restart a service/app | `nomarchy-restart-waybar` | +| `nomarchy-toggle-*` | Toggle feature on/off | `nomarchy-toggle-nightlight` | +| `nomarchy-theme-*` | Theme management | `nomarchy-theme-set ` | +| `nomarchy-install-*` | Install optional software | `nomarchy-install-docker-dbs` | +| `nomarchy-launch-*` | Launch apps | `nomarchy-launch-browser` | +| `nomarchy-cmd-*` | System commands | `nomarchy-cmd-screenshot` | +| `nomarchy-pkg-*` | Package management | `nomarchy-pkg-install ` | +| `nomarchy-setup-*` | Initial setup tasks | `nomarchy-setup-fingerprint` | +| `nomarchy-update-*` | System updates | `nomarchy-update` | + +## Configuration Locations + +### Hyprland (Window Manager) + +``` +~/.config/hypr/ +├── hyprland.conf # Main config (sources others) +├── bindings.conf # Keybindings +├── monitors.conf # Display configuration +├── input.conf # Keyboard/mouse settings +├── looknfeel.conf # Appearance (gaps, borders, animations) +├── envs.conf # Environment variables +├── autostart.conf # Startup applications +├── hypridle.conf # Idle behavior (screen off, lock, suspend) +├── hyprlock.conf # Lock screen appearance +└── hyprsunset.conf # Night light / blue light filter +``` + +**Key behaviors:** +- Hyprland auto-reloads on config save (no restart needed for most changes) +- Use `hyprctl reload` to force reload +- Use `nomarchy-refresh-hyprland` to reset to defaults + +### Waybar (Status Bar) + +``` +~/.config/waybar/ +├── config.jsonc # Bar layout and modules (JSONC format) +└── style.css # Styling +``` + +**Waybar does NOT auto-reload.** You MUST run `nomarchy-restart-waybar` after any config changes. + +**Commands:** `nomarchy-restart-waybar`, `nomarchy-refresh-waybar`, `nomarchy-toggle-waybar` + +### Terminals + +``` +~/.config/alacritty/alacritty.toml +~/.config/kitty/kitty.conf +~/.config/ghostty/config +``` + +**Command:** `nomarchy-restart-terminal` + +### Other Configs + +| App | Location | +|-----|----------| +| btop | `~/.config/btop/btop.conf` | +| fastfetch | `~/.config/fastfetch/config.jsonc` | +| lazygit | `~/.config/lazygit/config.yml` | +| starship | `~/.config/starship.toml` | +| git | `~/.config/git/config` | +| walker | `~/.config/walker/config.toml` | + +## Safe Customization Patterns + +### Pattern 1: Edit User Config Directly + +For simple changes, edit files in `~/.config/`: + +```bash +# 1. Read current config +cat ~/.config/hypr/bindings.conf + +# 2. Backup before changes +cp ~/.config/hypr/bindings.conf ~/.config/hypr/bindings.conf.bak.$(date +%s) + +# 3. Make changes with Edit tool + +# 4. Apply changes +# - Hyprland: auto-reloads on save (no restart needed) +# - Waybar: MUST restart with nomarchy-restart-waybar +# - Walker: MUST restart with nomarchy-restart-walker +# - Terminals: MUST restart with nomarchy-restart-terminal +``` + +### Pattern 2: Make a new theme + +1. Create a directory under ~/.config/nomarchy/themes. +2. See how an existing theme is done via ~/.local/share/nomarchy/themes/catppuccin. +3. Download a matching background (or several) from the internet and put them in ~/.config/nomarchy/themes/[name-of-new-theme] +4. When done with the theme, run nomarchy-theme-set "Name of new theme" + +### Pattern 3: Use Hooks for Automation + +Create scripts in `~/.config/nomarchy/hooks/` to run automatically on events: + +```bash +# Available hooks (see samples in ~/.config/nomarchy/hooks/): +~/.config/nomarchy/hooks/ +├── theme-set # Runs after theme change (receives theme name as $1) +├── font-set # Runs after font change +└── post-update # Runs after nomarchy-update +``` + +Example hook (`~/.config/nomarchy/hooks/theme-set`): +```bash +#!/bin/bash +THEME_NAME=$1 +echo "Theme changed to: $THEME_NAME" +# Add custom actions here +``` + +### Pattern 4: Reset to Defaults -- ALWAYS SEEK USER CONFIRMATION BEFORE RUNNING + +When customizations go wrong: + +```bash +# Reset specific config (creates backup automatically) +nomarchy-refresh-waybar +nomarchy-refresh-hyprland + +# The refresh command: +# 1. Backs up current config with timestamp +# 2. Copies default from ~/.local/share/nomarchy/config/ +# 3. Restarts the component +``` + +## Common Tasks + +### Themes + +```bash +nomarchy-theme-list # Show available themes +nomarchy-theme-current # Show current theme +nomarchy-theme-set # Apply theme (use "Tokyo Night" not "tokyo-night") +nomarchy-theme-next # Cycle to next theme +nomarchy-theme-bg-next # Cycle wallpaper +nomarchy-theme-install # Install from git repo +``` + +### Keybindings + +Edit `~/.config/hypr/bindings.conf`. Format: +``` +bind = SUPER, Return, exec, xdg-terminal-exec +bind = SUPER, Q, killactive +bind = SUPER SHIFT, E, exit +``` + +View current bindings: `nomarchy-menu-keybindings --print` + +**IMPORTANT: When re-binding an existing key:** + +1. First check existing bindings: `nomarchy-menu-keybindings --print` +2. If the key is already bound, you MUST add an `unbind` directive BEFORE your new `bind` +3. Inform the user what the key was previously bound to + +Example - rebinding SUPER+F (which is bound to fullscreen by default): +``` +# Unbind existing SUPER+F (was: fullscreen) +unbind = SUPER, F +# New binding for file manager +bind = SUPER, F, exec, nautilus +``` + +Always tell the user: "Note: SUPER+F was previously bound to fullscreen. I've added an unbind directive to override it." + +### Display/Monitors + +Edit `~/.config/hypr/monitors.conf`. Format: +``` +monitor = eDP-1, 1920x1080@60, 0x0, 1 +monitor = HDMI-A-1, 2560x1440@144, 1920x0, 1 +``` + +List monitors: `hyprctl monitors` + +### Window Rules + +**CRITICAL: Hyprland window rules syntax changes frequently between versions.** + +Before writing ANY window rules, you MUST fetch the current documentation from the official Hyprland wiki: +- https://github.com/hyprwm/hyprland-wiki/blob/main/content/Configuring/Window-Rules.md + +DO NOT rely on cached or memorized window rule syntax. The format has changed multiple times and using outdated syntax will cause errors or unexpected behavior. + +Window rules go in `~/.config/hypr/hyprland.conf` or a sourced file. Always verify the current syntax from the wiki first. + +### Fonts + +```bash +nomarchy-font-list # Available fonts +nomarchy-font-current # Current font +nomarchy-font-set # Change font +``` + +### System + +```bash +nomarchy-update # Full system update +nomarchy-version # Show Nomarchy version +nomarchy-debug --no-sudo --print # Debug info (ALWAYS use these flags) +nomarchy-lock-screen # Lock screen +nomarchy-system-shutdown # Shutdown +nomarchy-system-reboot # Reboot +``` + +**IMPORTANT:** Always run `nomarchy-debug` with `--no-sudo --print` flags to avoid interactive sudo prompts that will hang the terminal. + +## Troubleshooting + +```bash +# Get debug information (ALWAYS use these flags to avoid interactive prompts) +nomarchy-debug --no-sudo --print + +# Upload logs for support +nomarchy-upload-log + +# Reset specific config to defaults +nomarchy-refresh- + +# Refresh specific config file +# config-file path is relative to ~/.config/ +# eg. nomarchy-refresh-config hypr/hyprlock.conf will refresh ~/.config/hypr/hyprlock.conf +nomarchy-refresh-config + +# Full reinstall of configs (nuclear option) +nomarchy-reinstall +``` + +## Decision Framework + +When user requests system changes: + +1. **Is it a stock nomarchy command?** Use it directly +2. **Is it a config edit?** Edit in `~/.config/`, never `~/.local/share/nomarchy/` +3. **Is it a theme customization?** Create a NEW custom theme directory +4. **Is it automation?** Use hooks in `~/.config/nomarchy/hooks/` +5. **Is it a package install?** Use `nomarchy-pkg-add` (or `nomarchy-pkg-aur-add` for AUR-only packages) +6. **Unsure if command exists?** Search with `compgen -c | grep nomarchy` + +## Out of Scope + +This skill intentionally does not cover Nomarchy source development. Do not use this skill for: +- Editing files in `~/.local/share/nomarchy/` (`bin/`, `config/`, `default/`, `themes/`, `migrations/`, etc.) +- Creating or editing migrations +- Running `nomarchy-dev-*` commands + +## Example Requests + +- "Change my theme to catppuccin" -> `nomarchy-theme-set catppuccin` +- "Add a keybinding for Super+E to open file manager" -> Check existing bindings first, add `unbind` if needed, then add `bind` in `~/.config/hypr/bindings.conf` +- "Configure my external monitor" -> Edit `~/.config/hypr/monitors.conf` +- "Make the window gaps smaller" -> Edit `~/.config/hypr/looknfeel.conf` +- "Set up night light to turn on at sunset" -> `nomarchy-toggle-nightlight` or edit `~/.config/hypr/hyprsunset.conf` +- "Customize the catppuccin theme colors" -> Create `~/.config/nomarchy/themes/catppuccin-custom/` by copying from stock, then edit +- "Run a script every time I change themes" -> Create `~/.config/nomarchy/hooks/theme-set` +- "Reset waybar to defaults" -> `nomarchy-refresh-waybar` diff --git a/assets/plymouth/bullet.png b/assets/plymouth/bullet.png new file mode 100644 index 0000000..62249b3 Binary files /dev/null and b/assets/plymouth/bullet.png differ diff --git a/assets/plymouth/entry.png b/assets/plymouth/entry.png new file mode 100644 index 0000000..5c78917 Binary files /dev/null and b/assets/plymouth/entry.png differ diff --git a/assets/plymouth/lock.png b/assets/plymouth/lock.png new file mode 100644 index 0000000..3046de1 Binary files /dev/null and b/assets/plymouth/lock.png differ diff --git a/assets/plymouth/nomarchy.plymouth b/assets/plymouth/nomarchy.plymouth index f5f05b2..cbacec9 100644 --- a/assets/plymouth/nomarchy.plymouth +++ b/assets/plymouth/nomarchy.plymouth @@ -1,8 +1,11 @@ [Plymouth Theme] Name=Nomarchy -Description=Nomarchy boot splash theme +Description=Omarchy splash screen. ModuleName=script [script] -ImageDir=/etc/plymouth/themes/nomarchy -ScriptFile=/etc/plymouth/themes/nomarchy/nomarchy.script +ImageDir=/usr/share/plymouth/themes/nomarchy +ScriptFile=/usr/share/plymouth/themes/nomarchy/nomarchy.script +ConsoleLogBackgroundColor=0x1a1b26 +MonospaceFont=Cantarell 11 +Font=Cantarell 11 diff --git a/assets/plymouth/nomarchy.script b/assets/plymouth/nomarchy.script index f07fac1..df0c298 100644 --- a/assets/plymouth/nomarchy.script +++ b/assets/plymouth/nomarchy.script @@ -1,53 +1,257 @@ -# Nomarchy Plymouth Theme Script -# Centered logo with smooth fade-in and LUKS password support +# Omarchy Plymouth Theme Script -# Set background to black -Window.SetBackgroundTopColor(0, 0, 0); -Window.SetBackgroundBottomColor(0, 0, 0); +Window.SetBackgroundTopColor(0.101, 0.105, 0.149); +Window.SetBackgroundBottomColor(0.101, 0.105, 0.149); -# Logo Setup -logo_image = Image("logo.png"); -logo_sprite = Sprite(logo_image); -logo_sprite.SetX(Window.GetWidth() / 2 - logo_image.GetWidth() / 2); -logo_sprite.SetY(Window.GetHeight() / 2 - logo_image.GetHeight() / 2); +logo.image = Image("logo.png"); +logo.sprite = Sprite(logo.image); +logo.sprite.SetX (Window.GetWidth() / 2 - logo.image.GetWidth() / 2); +logo.sprite.SetY (Window.GetHeight() / 2 - logo.image.GetHeight() / 2); +logo.sprite.SetOpacity (1); -# Initial opacity at 0 for fade-in effect -logo_opacity = 0; -logo_sprite.SetOpacity(logo_opacity); +# Use these to adjust the progress bar timing +global.fake_progress_limit = 0.7; # Target percentage for fake progress (0.0 to 1.0) +global.fake_progress_duration = 15.0; # Duration in seconds to reach limit -# Message Display Setup (for LUKS password, system messages) -message_sprite = Sprite(); -message_sprite.SetY(Window.GetHeight() * 0.7); # Place below logo +# Progress bar animation variables +global.fake_progress = 0.0; +global.real_progress = 0.0; +global.fake_progress_active = 0; # 0 / 1 boolean +global.animation_frame = 0; +global.fake_progress_start_time = 0; # Track when fake progress started +global.password_shown = 0; # Track if password dialog has been shown +global.max_progress = 0.0; # Track the maximum progress reached to prevent backwards movement -fun display_message_callback(text) { - if (!text) return; - my_image = Image.Text(text, 1, 1, 1); # White text - message_sprite.SetImage(my_image); - message_sprite.SetX(Window.GetWidth() / 2 - my_image.GetWidth() / 2); - message_sprite.SetOpacity(logo_opacity); # Sync message opacity with logo -} - -# Password Entry Handling -fun password_callback(text, bullet_count) { - bullets = ""; - for (i = 0; i < bullet_count; i++) bullets += "*"; - display_message_callback(bullets); -} - -# Plymouth State Hooks -Plymouth.SetDisplayPasswordFunction(password_callback); -Plymouth.SetDisplayNormalFunction(fun() { message_sprite.SetImage(NULL); }); -Plymouth.SetDisplayMessageFunction(display_message_callback); - -# Animation Logic -fun refresh_callback () { - # Smooth fade-in - if (logo_opacity < 1) { - logo_opacity += 0.02; # Adjust speed here - if (logo_opacity > 1) logo_opacity = 1; - logo_sprite.SetOpacity(logo_opacity); - message_sprite.SetOpacity(logo_opacity); +fun refresh_callback () + { + global.animation_frame++; + + # Animate fake progress to limit over time with easing + if (global.fake_progress_active == 1) + { + # Calculate elapsed time since start + elapsed_time = global.animation_frame / 50.0; # Convert frames to seconds (50 FPS) + + # Calculate linear progress ratio (0 to 1) based on time + time_ratio = elapsed_time / global.fake_progress_duration; + if (time_ratio > 1.0) + time_ratio = 1.0; + + # Apply easing curve: ease-out quadratic + # Formula: 1 - (1 - x)^2 + eased_ratio = 1 - ((1 - time_ratio) * (1 - time_ratio)); + + # Calculate fake progress based on eased ratio + global.fake_progress = eased_ratio * global.fake_progress_limit; + + # Update progress bar with fake progress + update_progress_bar(global.fake_progress); + } } -} + Plymouth.SetRefreshFunction (refresh_callback); + +#----------------------------------------- Helper Functions -------------------------------- + +fun update_progress_bar(progress) + { + # Only update if progress is moving forward + if (progress > global.max_progress) + { + global.max_progress = progress; + width = Math.Int(progress_bar.original_image.GetWidth() * progress); + if (width < 1) width = 1; # Ensure minimum width of 1 pixel + + progress_bar.image = progress_bar.original_image.Scale(width, progress_bar.original_image.GetHeight()); + progress_bar.sprite.SetImage(progress_bar.image); + } + } + +fun show_progress_bar() + { + progress_box.sprite.SetOpacity(1); + progress_bar.sprite.SetOpacity(1); + } + +fun hide_progress_bar() + { + progress_box.sprite.SetOpacity(0); + progress_bar.sprite.SetOpacity(0); + } + +fun show_password_dialog() + { + lock.sprite.SetOpacity(1); + entry.sprite.SetOpacity(1); + } + +fun hide_password_dialog() + { + lock.sprite.SetOpacity(0); + entry.sprite.SetOpacity(0); + for (index = 0; bullet.sprites[index]; index++) + bullet.sprites[index].SetOpacity(0); + } + +fun start_fake_progress() + { + # Don't reset if we already have progress + if (global.max_progress == 0.0) + { + global.fake_progress = 0.0; + global.real_progress = 0.0; + update_progress_bar(0.0); + } + global.fake_progress_active = 1; + global.animation_frame = 0; + } + +fun stop_fake_progress() + { + global.fake_progress_active = 0; + } + +#----------------------------------------- Dialogue -------------------------------- + +lock.image = Image("lock.png"); +entry.image = Image("entry.png"); +bullet.image = Image("bullet.png"); + +entry.sprite = Sprite(entry.image); +entry.x = Window.GetWidth()/2 - entry.image.GetWidth() / 2; +entry.y = logo.sprite.GetY() + logo.image.GetHeight() + 40; +entry.sprite.SetPosition(entry.x, entry.y, 10001); +entry.sprite.SetOpacity(0); + +# Scale lock to be slightly shorter than entry field height +# Original lock is 84x96, entry height determines scale +lock_height = entry.image.GetHeight() * 0.8; +lock_scale = lock_height / 96; +lock_width = 84 * lock_scale; + +scaled_lock = lock.image.Scale(lock_width, lock_height); +lock.sprite = Sprite(scaled_lock); +lock.x = entry.x - lock_width - 15; +lock.y = entry.y + entry.image.GetHeight()/2 - lock_height/2; +lock.sprite.SetPosition(lock.x, lock.y, 10001); +lock.sprite.SetOpacity(0); + +# Bullet array +bullet.sprites = []; + +fun display_normal_callback () + { + hide_password_dialog(); + + # Get current mode + mode = Plymouth.GetMode(); + + # Only show progress bar for boot and resume modes + if ((mode == "boot" || mode == "resume") && global.password_shown == 1) + { + show_progress_bar(); + start_fake_progress(); + } + } + +fun display_password_callback (prompt, bullets) + { + global.password_shown = 1; # Mark that password dialog has been shown + + # Reset progress when password dialog appears + stop_fake_progress(); + hide_progress_bar(); + global.max_progress = 0.0; + global.fake_progress = 0.0; + global.real_progress = 0.0; + show_password_dialog(); + + # Clear all bullets first + for (index = 0; bullet.sprites[index]; index++) + bullet.sprites[index].SetOpacity(0); + + # Create and show bullets for current password (max 21) + max_bullets = 21; + bullets_to_show = bullets; + if (bullets_to_show > max_bullets) + bullets_to_show = max_bullets; + + for (index = 0; index < bullets_to_show; index++) + { + if (!bullet.sprites[index]) + { + # Scale bullet image to 7x7 pixels + scaled_bullet = bullet.image.Scale(7, 7); + bullet.sprites[index] = Sprite(scaled_bullet); + bullet.x = entry.x + 20 + index * (7 + 5); + bullet.y = entry.y + entry.image.GetHeight() / 2 - 3.5; + bullet.sprites[index].SetPosition(bullet.x, bullet.y, 10002); + } + bullet.sprites[index].SetOpacity(1); + } + } + +Plymouth.SetDisplayNormalFunction(display_normal_callback); +Plymouth.SetDisplayPasswordFunction(display_password_callback); + +#----------------------------------------- Progress Bar -------------------------------- + +progress_box.image = Image("progress_box.png"); +progress_box.sprite = Sprite(progress_box.image); + +progress_box.x = Window.GetWidth() / 2 - progress_box.image.GetWidth() / 2; +progress_box.y = entry.y + entry.image.GetHeight() / 2 - progress_box.image.GetHeight() / 2; +progress_box.sprite.SetPosition(progress_box.x, progress_box.y, 0); +progress_box.sprite.SetOpacity(0); + +progress_bar.original_image = Image("progress_bar.png"); +progress_bar.sprite = Sprite(); +progress_bar.image = progress_bar.original_image.Scale(1, progress_bar.original_image.GetHeight()); + +progress_bar.x = Window.GetWidth() / 2 - progress_bar.original_image.GetWidth() / 2; +progress_bar.y = progress_box.y + (progress_box.image.GetHeight() - progress_bar.original_image.GetHeight()) / 2; +progress_bar.sprite.SetPosition(progress_bar.x, progress_bar.y, 1); +progress_bar.sprite.SetOpacity(0); + +fun progress_callback (duration, progress) + { + global.real_progress = progress; + + # If real progress is above limit, stop fake progress and use real progress + if (progress > global.fake_progress_limit) + { + stop_fake_progress(); + update_progress_bar(progress); + } + } + +Plymouth.SetBootProgressFunction(progress_callback); + +#----------------------------------------- Quit -------------------------------- + +fun quit_callback () +{ + logo.sprite.SetOpacity (1); +} + +Plymouth.SetQuitFunction(quit_callback); + +#----------------------------------------- Message -------------------------------- + +message_sprite = Sprite(); +message_sprite.SetPosition(10, 10, 10000); + +fun display_message_callback (text) +{ + my_image = Image.Text(text, 1, 1, 1); + message_sprite.SetImage(my_image); +} + +fun hide_message_callback (text) +{ + message_sprite.SetOpacity(0); +} + +Plymouth.SetDisplayMessageFunction (display_message_callback); +Plymouth.SetHideMessageFunction (hide_message_callback); diff --git a/assets/plymouth/progress_bar.png b/assets/plymouth/progress_bar.png new file mode 100644 index 0000000..dbb9fd7 Binary files /dev/null and b/assets/plymouth/progress_bar.png differ diff --git a/assets/plymouth/progress_box.png b/assets/plymouth/progress_box.png new file mode 100644 index 0000000..6a263f2 Binary files /dev/null and b/assets/plymouth/progress_box.png differ diff --git a/assets/sddm/nomarchy/Main.qml b/assets/sddm/nomarchy/Main.qml new file mode 100644 index 0000000..d074913 --- /dev/null +++ b/assets/sddm/nomarchy/Main.qml @@ -0,0 +1,99 @@ +import QtQuick 2.0 +import SddmComponents 2.0 + +Rectangle { + id: root + width: 640 + height: 480 + color: "#000000" + + property string currentUser: userModel.lastUser + property int sessionIndex: { + for (var i = 0; i < sessionModel.rowCount(); i++) { + var name = (sessionModel.data(sessionModel.index(i, 0), Qt.DisplayRole) || "").toString() + if (name.indexOf("uwsm") !== -1) + return i + } + return sessionModel.lastIndex + } + + Connections { + target: sddm + function onLoginFailed() { + errorMessage.text = "Login failed" + password.text = "" + password.focus = true + } + function onLoginSucceeded() { + errorMessage.text = "" + } + } + + Column { + anchors.centerIn: parent + spacing: root.height * 0.04 + width: parent.width + + Image { + source: "logo.svg" + width: root.width * 0.35 + height: Math.round(width * sourceSize.height / sourceSize.width) + fillMode: Image.PreserveAspectFit + anchors.horizontalCenter: parent.horizontalCenter + } + + Row { + anchors.horizontalCenter: parent.horizontalCenter + spacing: root.width * 0.007 + + Text { + text: "\uf023" + color: "#ffffff" + font.family: "JetBrainsMono Nerd Font" + font.pixelSize: root.height * 0.025 + anchors.verticalCenter: parent.verticalCenter + } + + Rectangle { + width: root.width * 0.17 + height: root.height * 0.04 + color: "#000000" + border.color: "#ffffff" + border.width: 1 + clip: true + + TextInput { + id: password + anchors.fill: parent + anchors.margins: root.height * 0.008 + verticalAlignment: TextInput.AlignVCenter + echoMode: TextInput.Password + font.family: "JetBrainsMono Nerd Font" + font.pixelSize: root.height * 0.02 + font.letterSpacing: root.height * 0.004 + passwordCharacter: "\u2022" + color: "#ffffff" + focus: true + + Keys.onPressed: { + if (event.key === Qt.Key_Return || event.key === Qt.Key_Enter) { + sddm.login(root.currentUser, password.text, root.sessionIndex) + event.accepted = true + } + } + } + } + } + + Text { + id: errorMessage + text: "" + color: "#f7768e" + font.family: "JetBrainsMono Nerd Font" + font.pixelSize: root.height * 0.018 + anchors.horizontalCenter: parent.horizontalCenter + } + } + + Component.onCompleted: password.forceActiveFocus() +} diff --git a/assets/sddm/nomarchy/logo.svg b/assets/sddm/nomarchy/logo.svg new file mode 100644 index 0000000..b060ba0 --- /dev/null +++ b/assets/sddm/nomarchy/logo.svg @@ -0,0 +1,64 @@ + + + + diff --git a/assets/sddm/nomarchy/metadata.desktop b/assets/sddm/nomarchy/metadata.desktop new file mode 100644 index 0000000..c289221 --- /dev/null +++ b/assets/sddm/nomarchy/metadata.desktop @@ -0,0 +1,6 @@ +[SddmGreeterTheme] +Name=Nomarchy +Description=Minimal terminal-style login theme matching the Limine bootloader aesthetic +Author=Nomarchy +Type=sddm-theme +Version=1.0 diff --git a/assets/sddm/nomarchy/theme.conf b/assets/sddm/nomarchy/theme.conf new file mode 100644 index 0000000..e94cbbd --- /dev/null +++ b/assets/sddm/nomarchy/theme.conf @@ -0,0 +1 @@ +[General] diff --git a/assets/themed/alacritty.toml.tpl b/assets/themed/alacritty.toml.tpl new file mode 100644 index 0000000..ff8bc8d --- /dev/null +++ b/assets/themed/alacritty.toml.tpl @@ -0,0 +1,47 @@ +[colors.primary] +background = "{{ background }}" +foreground = "{{ foreground }}" + +[colors.cursor] +text = "{{ background }}" +cursor = "{{ cursor }}" + +[colors.vi_mode_cursor] +text = "{{ background }}" +cursor = "{{ cursor }}" + +[colors.search.matches] +foreground = "{{ background }}" +background = "{{ color3 }}" + +[colors.search.focused_match] +foreground = "{{ background }}" +background = "{{ color1 }}" + +[colors.footer_bar] +foreground = "{{ background }}" +background = "{{ foreground }}" + +[colors.selection] +text = "{{ selection_foreground }}" +background = "{{ selection_background }}" + +[colors.normal] +black = "{{ color0 }}" +red = "{{ color1 }}" +green = "{{ color2 }}" +yellow = "{{ color3 }}" +blue = "{{ color4 }}" +magenta = "{{ color5 }}" +cyan = "{{ color6 }}" +white = "{{ color7 }}" + +[colors.bright] +black = "{{ color8 }}" +red = "{{ color9 }}" +green = "{{ color10 }}" +yellow = "{{ color11 }}" +blue = "{{ color12 }}" +magenta = "{{ color13 }}" +cyan = "{{ color14 }}" +white = "{{ color15 }}" diff --git a/assets/themed/btop.theme.tpl b/assets/themed/btop.theme.tpl new file mode 100644 index 0000000..7b1b299 --- /dev/null +++ b/assets/themed/btop.theme.tpl @@ -0,0 +1,83 @@ +# Main background, empty for terminal default, need to be empty if you want transparent background +theme[main_bg]="{{ background }}" + +# Main text color +theme[main_fg]="{{ foreground }}" + +# Title color for boxes +theme[title]="{{ foreground }}" + +# Highlight color for keyboard shortcuts +theme[hi_fg]="{{ accent }}" + +# Background color of selected item in processes box +theme[selected_bg]="{{ color8 }}" + +# Foreground color of selected item in processes box +theme[selected_fg]="{{ accent }}" + +# Color of inactive/disabled text +theme[inactive_fg]="{{ color8 }}" + +# Color of text appearing on top of graphs, i.e uptime and current network graph scaling +theme[graph_text]="{{ foreground }}" + +# Background color of the percentage meters +theme[meter_bg]="{{ color8 }}" + +# Misc colors for processes box including mini cpu graphs, details memory graph and details status text +theme[proc_misc]="{{ foreground }}" + +# CPU, Memory, Network, Proc box outline colors +theme[cpu_box]="{{ color5 }}" +theme[mem_box]="{{ color2 }}" +theme[net_box]="{{ color1 }}" +theme[proc_box]="{{ accent }}" + +# Box divider line and small boxes line color +theme[div_line]="{{ color8 }}" + +# Temperature graph color (Green -> Yellow -> Red) +theme[temp_start]="{{ color2 }}" +theme[temp_mid]="{{ color3 }}" +theme[temp_end]="{{ color1 }}" + +# CPU graph colors (Teal -> Lavender) +theme[cpu_start]="{{ color6 }}" +theme[cpu_mid]="{{ color4 }}" +theme[cpu_end]="{{ color5 }}" + +# Mem/Disk free meter (Mauve -> Lavender -> Blue) +theme[free_start]="{{ color5 }}" +theme[free_mid]="{{ color4 }}" +theme[free_end]="{{ color6 }}" + +# Mem/Disk cached meter (Sapphire -> Lavender) +theme[cached_start]="{{ color4 }}" +theme[cached_mid]="{{ color6 }}" +theme[cached_end]="{{ color5 }}" + +# Mem/Disk available meter (Peach -> Red) +theme[available_start]="{{ color3 }}" +theme[available_mid]="{{ color1 }}" +theme[available_end]="{{ color1 }}" + +# Mem/Disk used meter (Green -> Sky) +theme[used_start]="{{ color2 }}" +theme[used_mid]="{{ color6 }}" +theme[used_end]="{{ color4 }}" + +# Download graph colors (Peach -> Red) +theme[download_start]="{{ color3 }}" +theme[download_mid]="{{ color1 }}" +theme[download_end]="{{ color1 }}" + +# Upload graph colors (Green -> Sky) +theme[upload_start]="{{ color2 }}" +theme[upload_mid]="{{ color6 }}" +theme[upload_end]="{{ color4 }}" + +# Process box color gradient for threads, mem and cpu usage (Sapphire -> Mauve) +theme[process_start]="{{ color6 }}" +theme[process_mid]="{{ color4 }}" +theme[process_end]="{{ color5 }}" diff --git a/assets/themed/chromium.theme.tpl b/assets/themed/chromium.theme.tpl new file mode 100644 index 0000000..84059b2 --- /dev/null +++ b/assets/themed/chromium.theme.tpl @@ -0,0 +1 @@ +{{ background_rgb }} diff --git a/assets/themed/ghostty.conf.tpl b/assets/themed/ghostty.conf.tpl new file mode 100644 index 0000000..bafc649 --- /dev/null +++ b/assets/themed/ghostty.conf.tpl @@ -0,0 +1,22 @@ +background = {{ background }} +foreground = {{ foreground }} +cursor-color = {{ cursor }} +selection-background = {{ selection_background }} +selection-foreground = {{ selection_foreground }} + +palette = 0={{ color0 }} +palette = 1={{ color1 }} +palette = 2={{ color2 }} +palette = 3={{ color3 }} +palette = 4={{ color4 }} +palette = 5={{ color5 }} +palette = 6={{ color6 }} +palette = 7={{ color7 }} +palette = 8={{ color8 }} +palette = 9={{ color9 }} +palette = 10={{ color10 }} +palette = 11={{ color11 }} +palette = 12={{ color12 }} +palette = 13={{ color13 }} +palette = 14={{ color14 }} +palette = 15={{ color15 }} diff --git a/assets/themed/hyprland-preview-share-picker.css.tpl b/assets/themed/hyprland-preview-share-picker.css.tpl new file mode 100644 index 0000000..07e5e4e --- /dev/null +++ b/assets/themed/hyprland-preview-share-picker.css.tpl @@ -0,0 +1,94 @@ +@define-color foreground {{ foreground }}; +@define-color background {{ background }}; +@define-color accent {{ accent }}; +@define-color muted {{ color8 }}; +@define-color card_bg {{ color0 }}; +@define-color text_dark {{ background }}; +@define-color accent_hover {{ color12 }}; +@define-color selected_tab {{ accent }}; +@define-color text {{ foreground }}; + +* { + all: unset; + font-family: JetBrains Mono NF; + color: @foreground; + font-weight: bold; + font-size: 16px; +} + +.window { + background: alpha(@background, 0.95); + border: solid 2px @accent; + margin: 4px; + padding: 18px; +} + +tabs { + padding: 0.5rem 1rem; +} + +tabs > tab { + margin-right: 1rem; +} + +.tab-label { + color: @text; + transition: all 0.2s ease; +} + +tabs > tab:checked > .tab-label, tabs > tab:active > .tab-label { + text-decoration: underline currentColor; + color: @selected_tab; +} + +tabs > tab:focus > .tab-label { + color: @foreground; +} + +.page { + padding: 1rem; +} + +.image-label { + font-size: 12px; + padding: 0.25rem; +} + +flowboxchild > .card, button > .card { + transition: all 0.2s ease; + border: solid 2px transparent; + border-color: @background; + border-radius: 5px; + background-color: @card_bg; + padding: 5px; +} + +flowboxchild:hover > .card, button:hover > .card, flowboxchild:active > .card, flowboxchild:selected > .card, button:active > .card, button:selected > .card, button:focus > .card { + border: solid 2px @accent; +} + +.image { + border-radius: 5px; +} + +.region-button { + padding: 0.5rem 1rem; + border-radius: 5px; + background-color: @accent; + color: @text_dark; + transition: all 0.2s ease; +} + +.region-button > label { + color: @text_dark; +} + +.region-button:not(:disabled):hover, .region-button:not(:disabled):focus { + background-color: @accent_hover; + color: @text_dark; +} + +.region-button:disabled { + background-color: @muted; + color: @background; +} diff --git a/assets/themed/hyprland.conf.tpl b/assets/themed/hyprland.conf.tpl new file mode 100644 index 0000000..e4dbf3c --- /dev/null +++ b/assets/themed/hyprland.conf.tpl @@ -0,0 +1,9 @@ +$activeBorderColor = rgb({{ accent_strip }}) + +general { + col.active_border = $activeBorderColor +} + +group { + col.border_active = $activeBorderColor +} diff --git a/assets/themed/hyprlock.conf.tpl b/assets/themed/hyprlock.conf.tpl new file mode 100644 index 0000000..1b4cac3 --- /dev/null +++ b/assets/themed/hyprlock.conf.tpl @@ -0,0 +1,5 @@ +$color = rgba({{ background_rgb }}, 1.0) +$inner_color = rgba({{ background_rgb }}, 0.8) +$outer_color = rgba({{ foreground_rgb }}, 1.0) +$font_color = rgba({{ foreground_rgb }}, 1.0) +$check_color = rgba({{ accent_rgb }}, 1.0) diff --git a/assets/themed/keyboard.rgb.tpl b/assets/themed/keyboard.rgb.tpl new file mode 100644 index 0000000..bc9f35a --- /dev/null +++ b/assets/themed/keyboard.rgb.tpl @@ -0,0 +1 @@ +{{ accent }} diff --git a/assets/themed/kitty.conf.tpl b/assets/themed/kitty.conf.tpl new file mode 100644 index 0000000..e74a5bb --- /dev/null +++ b/assets/themed/kitty.conf.tpl @@ -0,0 +1,27 @@ +foreground {{ foreground }} +background {{ background }} +selection_foreground {{ selection_foreground }} +selection_background {{ selection_background }} + +cursor {{ cursor }} +cursor_text_color {{ background }} + +active_border_color {{ accent }} +active_tab_background {{ accent }} + +color0 {{ color0 }} +color1 {{ color1 }} +color2 {{ color2 }} +color3 {{ color3 }} +color4 {{ color4 }} +color5 {{ color5 }} +color6 {{ color6 }} +color7 {{ color7 }} +color8 {{ color8 }} +color9 {{ color9 }} +color10 {{ color10 }} +color11 {{ color11 }} +color12 {{ color12 }} +color13 {{ color13 }} +color14 {{ color14 }} +color15 {{ color15 }} diff --git a/assets/themed/mako.ini.tpl b/assets/themed/mako.ini.tpl new file mode 100644 index 0000000..cdccf73 --- /dev/null +++ b/assets/themed/mako.ini.tpl @@ -0,0 +1,5 @@ +include=~/.config/nomarchy/default/mako/core.ini + +text-color={{ foreground }} +border-color={{ accent }} +background-color={{ background }} diff --git a/assets/themed/obsidian.css.tpl b/assets/themed/obsidian.css.tpl new file mode 100644 index 0000000..7645a50 --- /dev/null +++ b/assets/themed/obsidian.css.tpl @@ -0,0 +1,99 @@ +/* Nomarchy Theme for Obsidian */ + +.theme-dark, .theme-light { + /* Core colors */ + --background-primary: {{ background }}; + --background-primary-alt: {{ background }}; + --background-secondary: {{ background }}; + --background-secondary-alt: {{ background }}; + --text-normal: {{ foreground }}; + + /* Selection colors */ + --text-selection: {{ selection_background }}; + + /* Border color */ + --background-modifier-border: {{ color8 }}; + + /* Semantic heading colors */ + --text-title-h1: {{ color1 }}; + --text-title-h2: {{ color2 }}; + --text-title-h3: {{ color3 }}; + --text-title-h4: {{ color4 }}; + --text-title-h5: {{ color5 }}; + --text-title-h6: {{ color5 }}; + + /* Links and accents */ + --text-link: {{ color4 }}; + --text-accent: {{ accent }}; + --text-accent-hover: {{ accent }}; + --interactive-accent: {{ accent }}; + --interactive-accent-hover: {{ accent }}; + + /* Muted text */ + --text-muted: color-mix(in srgb, {{ foreground }} 70%, transparent); + --text-faint: color-mix(in srgb, {{ foreground }} 55%, transparent); + + /* Code */ + --code-normal: {{ color6 }}; + + /* Errors and success */ + --text-error: {{ color1 }}; + --text-error-hover: {{ color1 }}; + --text-success: {{ color2 }}; + + /* Tags */ + --tag-color: {{ color6 }}; + --tag-background: {{ color8 }}; + + /* Graph */ + --graph-line: {{ color8 }}; + --graph-node: {{ accent }}; + --graph-node-focused: {{ color4 }}; + --graph-node-tag: {{ color6 }}; + --graph-node-attachment: {{ color2 }}; +} + +/* Headers */ +.cm-header-1, .markdown-rendered h1 { color: var(--text-title-h1); } +.cm-header-2, .markdown-rendered h2 { color: var(--text-title-h2); } +.cm-header-3, .markdown-rendered h3 { color: var(--text-title-h3); } +.cm-header-4, .markdown-rendered h4 { color: var(--text-title-h4); } +.cm-header-5, .markdown-rendered h5 { color: var(--text-title-h5); } +.cm-header-6, .markdown-rendered h6 { color: var(--text-title-h6); } + +/* Code blocks */ +.markdown-rendered code { + color: {{ color6 }}; +} + +/* Syntax highlighting */ +.cm-s-obsidian span.cm-keyword { color: {{ color1 }}; } +.cm-s-obsidian span.cm-string { color: {{ color2 }}; } +.cm-s-obsidian span.cm-number { color: {{ color3 }}; } +.cm-s-obsidian span.cm-comment { color: {{ color8 }}; } +.cm-s-obsidian span.cm-operator { color: {{ color4 }}; } +.cm-s-obsidian span.cm-def { color: {{ color4 }}; } + +/* Links */ +.markdown-rendered a { + color: var(--text-link); +} + +/* Blockquotes */ +.markdown-rendered blockquote { + border-left-color: {{ accent }}; +} + +/* Active elements */ +.workspace-leaf.mod-active .workspace-leaf-header-title { + color: var(--interactive-accent); +} + +.nav-file-title.is-active { + color: var(--interactive-accent); +} + +/* Search results */ +.search-result-file-title { + color: var(--interactive-accent); +} diff --git a/assets/themed/swayosd.css.tpl b/assets/themed/swayosd.css.tpl new file mode 100644 index 0000000..e06402c --- /dev/null +++ b/assets/themed/swayosd.css.tpl @@ -0,0 +1,5 @@ +@define-color background-color {{ background }}; +@define-color border-color {{ foreground }}; +@define-color label {{ foreground }}; +@define-color image {{ foreground }}; +@define-color progress {{ accent }}; diff --git a/assets/themed/walker.css.tpl b/assets/themed/walker.css.tpl new file mode 100644 index 0000000..123ca92 --- /dev/null +++ b/assets/themed/walker.css.tpl @@ -0,0 +1,6 @@ +@define-color selected-text {{ accent }}; +@define-color text {{ foreground }}; +@define-color base {{ background }}; +@define-color border {{ foreground }}; +@define-color foreground {{ foreground }}; +@define-color background {{ background }}; diff --git a/assets/themed/waybar.css.tpl b/assets/themed/waybar.css.tpl new file mode 100644 index 0000000..d876a92 --- /dev/null +++ b/assets/themed/waybar.css.tpl @@ -0,0 +1,2 @@ +@define-color foreground {{ foreground }}; +@define-color background {{ background }}; diff --git a/themes/catppuccin-latte/backgrounds/1-color-fade.png b/assets/themes/catppuccin-latte/backgrounds/1-color-fade.png similarity index 100% rename from themes/catppuccin-latte/backgrounds/1-color-fade.png rename to assets/themes/catppuccin-latte/backgrounds/1-color-fade.png diff --git a/themes/catppuccin-latte/btop.theme b/assets/themes/catppuccin-latte/btop.theme similarity index 100% rename from themes/catppuccin-latte/btop.theme rename to assets/themes/catppuccin-latte/btop.theme diff --git a/themes/catppuccin-latte/colors.toml b/assets/themes/catppuccin-latte/colors.toml similarity index 100% rename from themes/catppuccin-latte/colors.toml rename to assets/themes/catppuccin-latte/colors.toml diff --git a/themes/catppuccin-latte/icons.theme b/assets/themes/catppuccin-latte/icons.theme similarity index 100% rename from themes/catppuccin-latte/icons.theme rename to assets/themes/catppuccin-latte/icons.theme diff --git a/themes/catppuccin-latte/light.mode b/assets/themes/catppuccin-latte/light.mode similarity index 100% rename from themes/catppuccin-latte/light.mode rename to assets/themes/catppuccin-latte/light.mode diff --git a/themes/catppuccin-latte/neovim.lua b/assets/themes/catppuccin-latte/neovim.lua similarity index 100% rename from themes/catppuccin-latte/neovim.lua rename to assets/themes/catppuccin-latte/neovim.lua diff --git a/themes/catppuccin-latte/preview.png b/assets/themes/catppuccin-latte/preview.png similarity index 100% rename from themes/catppuccin-latte/preview.png rename to assets/themes/catppuccin-latte/preview.png diff --git a/themes/catppuccin-latte/vscode.json b/assets/themes/catppuccin-latte/vscode.json similarity index 100% rename from themes/catppuccin-latte/vscode.json rename to assets/themes/catppuccin-latte/vscode.json diff --git a/themes/catppuccin/backgrounds/1-totoro.png b/assets/themes/catppuccin/backgrounds/1-totoro.png similarity index 100% rename from themes/catppuccin/backgrounds/1-totoro.png rename to assets/themes/catppuccin/backgrounds/1-totoro.png diff --git a/themes/catppuccin/backgrounds/2-waves.png b/assets/themes/catppuccin/backgrounds/2-waves.png similarity index 100% rename from themes/catppuccin/backgrounds/2-waves.png rename to assets/themes/catppuccin/backgrounds/2-waves.png diff --git a/themes/catppuccin/backgrounds/3-blue-eye.png b/assets/themes/catppuccin/backgrounds/3-blue-eye.png similarity index 100% rename from themes/catppuccin/backgrounds/3-blue-eye.png rename to assets/themes/catppuccin/backgrounds/3-blue-eye.png diff --git a/themes/catppuccin/btop.theme b/assets/themes/catppuccin/btop.theme similarity index 100% rename from themes/catppuccin/btop.theme rename to assets/themes/catppuccin/btop.theme diff --git a/themes/catppuccin/colors.toml b/assets/themes/catppuccin/colors.toml similarity index 100% rename from themes/catppuccin/colors.toml rename to assets/themes/catppuccin/colors.toml diff --git a/themes/catppuccin/icons.theme b/assets/themes/catppuccin/icons.theme similarity index 100% rename from themes/catppuccin/icons.theme rename to assets/themes/catppuccin/icons.theme diff --git a/themes/catppuccin/neovim.lua b/assets/themes/catppuccin/neovim.lua similarity index 100% rename from themes/catppuccin/neovim.lua rename to assets/themes/catppuccin/neovim.lua diff --git a/themes/catppuccin/preview.png b/assets/themes/catppuccin/preview.png similarity index 100% rename from themes/catppuccin/preview.png rename to assets/themes/catppuccin/preview.png diff --git a/themes/catppuccin/vscode.json b/assets/themes/catppuccin/vscode.json similarity index 100% rename from themes/catppuccin/vscode.json rename to assets/themes/catppuccin/vscode.json diff --git a/themes/catppuccin/waybar.css b/assets/themes/catppuccin/waybar.css similarity index 100% rename from themes/catppuccin/waybar.css rename to assets/themes/catppuccin/waybar.css diff --git a/themes/ethereal/backgrounds/1-cosmic.jpg b/assets/themes/ethereal/backgrounds/1-cosmic.jpg similarity index 100% rename from themes/ethereal/backgrounds/1-cosmic.jpg rename to assets/themes/ethereal/backgrounds/1-cosmic.jpg diff --git a/themes/ethereal/backgrounds/2-meadow.jpg b/assets/themes/ethereal/backgrounds/2-meadow.jpg similarity index 100% rename from themes/ethereal/backgrounds/2-meadow.jpg rename to assets/themes/ethereal/backgrounds/2-meadow.jpg diff --git a/themes/ethereal/btop.theme b/assets/themes/ethereal/btop.theme similarity index 100% rename from themes/ethereal/btop.theme rename to assets/themes/ethereal/btop.theme diff --git a/themes/ethereal/colors.toml b/assets/themes/ethereal/colors.toml similarity index 100% rename from themes/ethereal/colors.toml rename to assets/themes/ethereal/colors.toml diff --git a/themes/ethereal/icons.theme b/assets/themes/ethereal/icons.theme similarity index 100% rename from themes/ethereal/icons.theme rename to assets/themes/ethereal/icons.theme diff --git a/themes/ethereal/neovim.lua b/assets/themes/ethereal/neovim.lua similarity index 100% rename from themes/ethereal/neovim.lua rename to assets/themes/ethereal/neovim.lua diff --git a/themes/ethereal/preview.png b/assets/themes/ethereal/preview.png similarity index 100% rename from themes/ethereal/preview.png rename to assets/themes/ethereal/preview.png diff --git a/themes/ethereal/vscode.json b/assets/themes/ethereal/vscode.json similarity index 100% rename from themes/ethereal/vscode.json rename to assets/themes/ethereal/vscode.json diff --git a/themes/everforest/backgrounds/1-tree-tops.jpg b/assets/themes/everforest/backgrounds/1-tree-tops.jpg similarity index 100% rename from themes/everforest/backgrounds/1-tree-tops.jpg rename to assets/themes/everforest/backgrounds/1-tree-tops.jpg diff --git a/themes/everforest/btop.theme b/assets/themes/everforest/btop.theme similarity index 100% rename from themes/everforest/btop.theme rename to assets/themes/everforest/btop.theme diff --git a/themes/everforest/colors.toml b/assets/themes/everforest/colors.toml similarity index 100% rename from themes/everforest/colors.toml rename to assets/themes/everforest/colors.toml diff --git a/themes/everforest/icons.theme b/assets/themes/everforest/icons.theme similarity index 100% rename from themes/everforest/icons.theme rename to assets/themes/everforest/icons.theme diff --git a/themes/everforest/neovim.lua b/assets/themes/everforest/neovim.lua similarity index 100% rename from themes/everforest/neovim.lua rename to assets/themes/everforest/neovim.lua diff --git a/themes/everforest/preview.png b/assets/themes/everforest/preview.png similarity index 100% rename from themes/everforest/preview.png rename to assets/themes/everforest/preview.png diff --git a/themes/everforest/vscode.json b/assets/themes/everforest/vscode.json similarity index 100% rename from themes/everforest/vscode.json rename to assets/themes/everforest/vscode.json diff --git a/themes/flexoki-light/backgrounds/1-orb.png b/assets/themes/flexoki-light/backgrounds/1-orb.png similarity index 100% rename from themes/flexoki-light/backgrounds/1-orb.png rename to assets/themes/flexoki-light/backgrounds/1-orb.png diff --git a/themes/flexoki-light/backgrounds/2-nomarchy.png b/assets/themes/flexoki-light/backgrounds/2-nomarchy.png similarity index 100% rename from themes/flexoki-light/backgrounds/2-nomarchy.png rename to assets/themes/flexoki-light/backgrounds/2-nomarchy.png diff --git a/themes/flexoki-light/btop.theme b/assets/themes/flexoki-light/btop.theme similarity index 100% rename from themes/flexoki-light/btop.theme rename to assets/themes/flexoki-light/btop.theme diff --git a/themes/flexoki-light/chromium.theme b/assets/themes/flexoki-light/chromium.theme similarity index 100% rename from themes/flexoki-light/chromium.theme rename to assets/themes/flexoki-light/chromium.theme diff --git a/themes/flexoki-light/colors.toml b/assets/themes/flexoki-light/colors.toml similarity index 100% rename from themes/flexoki-light/colors.toml rename to assets/themes/flexoki-light/colors.toml diff --git a/themes/flexoki-light/icons.theme b/assets/themes/flexoki-light/icons.theme similarity index 100% rename from themes/flexoki-light/icons.theme rename to assets/themes/flexoki-light/icons.theme diff --git a/themes/flexoki-light/light.mode b/assets/themes/flexoki-light/light.mode similarity index 100% rename from themes/flexoki-light/light.mode rename to assets/themes/flexoki-light/light.mode diff --git a/themes/flexoki-light/neovim.lua b/assets/themes/flexoki-light/neovim.lua similarity index 100% rename from themes/flexoki-light/neovim.lua rename to assets/themes/flexoki-light/neovim.lua diff --git a/themes/flexoki-light/preview.png b/assets/themes/flexoki-light/preview.png similarity index 100% rename from themes/flexoki-light/preview.png rename to assets/themes/flexoki-light/preview.png diff --git a/themes/flexoki-light/vscode.json b/assets/themes/flexoki-light/vscode.json similarity index 100% rename from themes/flexoki-light/vscode.json rename to assets/themes/flexoki-light/vscode.json diff --git a/themes/gruvbox/backgrounds/1-the-backwater.jpg b/assets/themes/gruvbox/backgrounds/1-the-backwater.jpg similarity index 100% rename from themes/gruvbox/backgrounds/1-the-backwater.jpg rename to assets/themes/gruvbox/backgrounds/1-the-backwater.jpg diff --git a/themes/gruvbox/backgrounds/2-flower-basket.jpg b/assets/themes/gruvbox/backgrounds/2-flower-basket.jpg similarity index 100% rename from themes/gruvbox/backgrounds/2-flower-basket.jpg rename to assets/themes/gruvbox/backgrounds/2-flower-basket.jpg diff --git a/themes/gruvbox/backgrounds/3-village-square.jpg b/assets/themes/gruvbox/backgrounds/3-village-square.jpg similarity index 100% rename from themes/gruvbox/backgrounds/3-village-square.jpg rename to assets/themes/gruvbox/backgrounds/3-village-square.jpg diff --git a/themes/gruvbox/backgrounds/4-idyllic-procession.jpg b/assets/themes/gruvbox/backgrounds/4-idyllic-procession.jpg similarity index 100% rename from themes/gruvbox/backgrounds/4-idyllic-procession.jpg rename to assets/themes/gruvbox/backgrounds/4-idyllic-procession.jpg diff --git a/themes/gruvbox/backgrounds/5-leaves.jpg b/assets/themes/gruvbox/backgrounds/5-leaves.jpg similarity index 100% rename from themes/gruvbox/backgrounds/5-leaves.jpg rename to assets/themes/gruvbox/backgrounds/5-leaves.jpg diff --git a/themes/gruvbox/btop.theme b/assets/themes/gruvbox/btop.theme similarity index 100% rename from themes/gruvbox/btop.theme rename to assets/themes/gruvbox/btop.theme diff --git a/themes/gruvbox/colors.toml b/assets/themes/gruvbox/colors.toml similarity index 100% rename from themes/gruvbox/colors.toml rename to assets/themes/gruvbox/colors.toml diff --git a/themes/gruvbox/icons.theme b/assets/themes/gruvbox/icons.theme similarity index 100% rename from themes/gruvbox/icons.theme rename to assets/themes/gruvbox/icons.theme diff --git a/themes/gruvbox/neovim.lua b/assets/themes/gruvbox/neovim.lua similarity index 100% rename from themes/gruvbox/neovim.lua rename to assets/themes/gruvbox/neovim.lua diff --git a/themes/gruvbox/preview.png b/assets/themes/gruvbox/preview.png similarity index 100% rename from themes/gruvbox/preview.png rename to assets/themes/gruvbox/preview.png diff --git a/themes/gruvbox/vscode.json b/assets/themes/gruvbox/vscode.json similarity index 100% rename from themes/gruvbox/vscode.json rename to assets/themes/gruvbox/vscode.json diff --git a/themes/hackerman/backgrounds/1-synth-scape.jpg b/assets/themes/hackerman/backgrounds/1-synth-scape.jpg similarity index 100% rename from themes/hackerman/backgrounds/1-synth-scape.jpg rename to assets/themes/hackerman/backgrounds/1-synth-scape.jpg diff --git a/themes/hackerman/backgrounds/2-geometric.jpg b/assets/themes/hackerman/backgrounds/2-geometric.jpg similarity index 100% rename from themes/hackerman/backgrounds/2-geometric.jpg rename to assets/themes/hackerman/backgrounds/2-geometric.jpg diff --git a/themes/hackerman/btop.theme b/assets/themes/hackerman/btop.theme similarity index 100% rename from themes/hackerman/btop.theme rename to assets/themes/hackerman/btop.theme diff --git a/themes/hackerman/colors.toml b/assets/themes/hackerman/colors.toml similarity index 100% rename from themes/hackerman/colors.toml rename to assets/themes/hackerman/colors.toml diff --git a/themes/hackerman/icons.theme b/assets/themes/hackerman/icons.theme similarity index 100% rename from themes/hackerman/icons.theme rename to assets/themes/hackerman/icons.theme diff --git a/themes/hackerman/neovim.lua b/assets/themes/hackerman/neovim.lua similarity index 100% rename from themes/hackerman/neovim.lua rename to assets/themes/hackerman/neovim.lua diff --git a/themes/hackerman/preview.png b/assets/themes/hackerman/preview.png similarity index 100% rename from themes/hackerman/preview.png rename to assets/themes/hackerman/preview.png diff --git a/themes/hackerman/vscode.json b/assets/themes/hackerman/vscode.json similarity index 100% rename from themes/hackerman/vscode.json rename to assets/themes/hackerman/vscode.json diff --git a/themes/kanagawa/backgrounds/1-kanagawa.jpg b/assets/themes/kanagawa/backgrounds/1-kanagawa.jpg similarity index 100% rename from themes/kanagawa/backgrounds/1-kanagawa.jpg rename to assets/themes/kanagawa/backgrounds/1-kanagawa.jpg diff --git a/themes/kanagawa/btop.theme b/assets/themes/kanagawa/btop.theme similarity index 100% rename from themes/kanagawa/btop.theme rename to assets/themes/kanagawa/btop.theme diff --git a/themes/kanagawa/colors.toml b/assets/themes/kanagawa/colors.toml similarity index 100% rename from themes/kanagawa/colors.toml rename to assets/themes/kanagawa/colors.toml diff --git a/themes/kanagawa/hyprland.conf b/assets/themes/kanagawa/hyprland.conf similarity index 100% rename from themes/kanagawa/hyprland.conf rename to assets/themes/kanagawa/hyprland.conf diff --git a/themes/kanagawa/icons.theme b/assets/themes/kanagawa/icons.theme similarity index 100% rename from themes/kanagawa/icons.theme rename to assets/themes/kanagawa/icons.theme diff --git a/themes/kanagawa/neovim.lua b/assets/themes/kanagawa/neovim.lua similarity index 100% rename from themes/kanagawa/neovim.lua rename to assets/themes/kanagawa/neovim.lua diff --git a/themes/kanagawa/preview.png b/assets/themes/kanagawa/preview.png similarity index 100% rename from themes/kanagawa/preview.png rename to assets/themes/kanagawa/preview.png diff --git a/themes/kanagawa/vscode.json b/assets/themes/kanagawa/vscode.json similarity index 100% rename from themes/kanagawa/vscode.json rename to assets/themes/kanagawa/vscode.json diff --git a/themes/lumon/backgrounds/01-united-in-severance.jpg b/assets/themes/lumon/backgrounds/01-united-in-severance.jpg similarity index 100% rename from themes/lumon/backgrounds/01-united-in-severance.jpg rename to assets/themes/lumon/backgrounds/01-united-in-severance.jpg diff --git a/themes/lumon/backgrounds/02-opinions-equally.jpg b/assets/themes/lumon/backgrounds/02-opinions-equally.jpg similarity index 100% rename from themes/lumon/backgrounds/02-opinions-equally.jpg rename to assets/themes/lumon/backgrounds/02-opinions-equally.jpg diff --git a/themes/lumon/btop.theme b/assets/themes/lumon/btop.theme similarity index 100% rename from themes/lumon/btop.theme rename to assets/themes/lumon/btop.theme diff --git a/themes/lumon/chromium.theme b/assets/themes/lumon/chromium.theme similarity index 100% rename from themes/lumon/chromium.theme rename to assets/themes/lumon/chromium.theme diff --git a/themes/lumon/colors.toml b/assets/themes/lumon/colors.toml similarity index 100% rename from themes/lumon/colors.toml rename to assets/themes/lumon/colors.toml diff --git a/themes/lumon/hyprland.conf b/assets/themes/lumon/hyprland.conf similarity index 100% rename from themes/lumon/hyprland.conf rename to assets/themes/lumon/hyprland.conf diff --git a/themes/lumon/icons.theme b/assets/themes/lumon/icons.theme similarity index 100% rename from themes/lumon/icons.theme rename to assets/themes/lumon/icons.theme diff --git a/themes/lumon/neovim.lua b/assets/themes/lumon/neovim.lua similarity index 100% rename from themes/lumon/neovim.lua rename to assets/themes/lumon/neovim.lua diff --git a/themes/lumon/preview.png b/assets/themes/lumon/preview.png similarity index 100% rename from themes/lumon/preview.png rename to assets/themes/lumon/preview.png diff --git a/themes/lumon/swayosd.css b/assets/themes/lumon/swayosd.css similarity index 100% rename from themes/lumon/swayosd.css rename to assets/themes/lumon/swayosd.css diff --git a/themes/lumon/vscode.json b/assets/themes/lumon/vscode.json similarity index 100% rename from themes/lumon/vscode.json rename to assets/themes/lumon/vscode.json diff --git a/themes/lumon/waybar.css b/assets/themes/lumon/waybar.css similarity index 100% rename from themes/lumon/waybar.css rename to assets/themes/lumon/waybar.css diff --git a/themes/matte-black/backgrounds/0-ship-at-sea.jpg b/assets/themes/matte-black/backgrounds/0-ship-at-sea.jpg similarity index 100% rename from themes/matte-black/backgrounds/0-ship-at-sea.jpg rename to assets/themes/matte-black/backgrounds/0-ship-at-sea.jpg diff --git a/themes/matte-black/backgrounds/1-dark-waters.jpg b/assets/themes/matte-black/backgrounds/1-dark-waters.jpg similarity index 100% rename from themes/matte-black/backgrounds/1-dark-waters.jpg rename to assets/themes/matte-black/backgrounds/1-dark-waters.jpg diff --git a/themes/matte-black/backgrounds/2-dot-hands.jpg b/assets/themes/matte-black/backgrounds/2-dot-hands.jpg similarity index 100% rename from themes/matte-black/backgrounds/2-dot-hands.jpg rename to assets/themes/matte-black/backgrounds/2-dot-hands.jpg diff --git a/themes/matte-black/btop.theme b/assets/themes/matte-black/btop.theme similarity index 100% rename from themes/matte-black/btop.theme rename to assets/themes/matte-black/btop.theme diff --git a/themes/matte-black/colors.toml b/assets/themes/matte-black/colors.toml similarity index 100% rename from themes/matte-black/colors.toml rename to assets/themes/matte-black/colors.toml diff --git a/themes/matte-black/icons.theme b/assets/themes/matte-black/icons.theme similarity index 100% rename from themes/matte-black/icons.theme rename to assets/themes/matte-black/icons.theme diff --git a/themes/matte-black/neovim.lua b/assets/themes/matte-black/neovim.lua similarity index 100% rename from themes/matte-black/neovim.lua rename to assets/themes/matte-black/neovim.lua diff --git a/themes/matte-black/preview.png b/assets/themes/matte-black/preview.png similarity index 100% rename from themes/matte-black/preview.png rename to assets/themes/matte-black/preview.png diff --git a/themes/matte-black/vscode.json b/assets/themes/matte-black/vscode.json similarity index 100% rename from themes/matte-black/vscode.json rename to assets/themes/matte-black/vscode.json diff --git a/themes/miasma/backgrounds/01-nature-of-fear.jpg b/assets/themes/miasma/backgrounds/01-nature-of-fear.jpg similarity index 100% rename from themes/miasma/backgrounds/01-nature-of-fear.jpg rename to assets/themes/miasma/backgrounds/01-nature-of-fear.jpg diff --git a/themes/miasma/backgrounds/02-crowned.jpg b/assets/themes/miasma/backgrounds/02-crowned.jpg similarity index 100% rename from themes/miasma/backgrounds/02-crowned.jpg rename to assets/themes/miasma/backgrounds/02-crowned.jpg diff --git a/themes/miasma/btop.theme b/assets/themes/miasma/btop.theme similarity index 100% rename from themes/miasma/btop.theme rename to assets/themes/miasma/btop.theme diff --git a/themes/miasma/colors.toml b/assets/themes/miasma/colors.toml similarity index 100% rename from themes/miasma/colors.toml rename to assets/themes/miasma/colors.toml diff --git a/themes/miasma/icons.theme b/assets/themes/miasma/icons.theme similarity index 100% rename from themes/miasma/icons.theme rename to assets/themes/miasma/icons.theme diff --git a/themes/miasma/neovim.lua b/assets/themes/miasma/neovim.lua similarity index 100% rename from themes/miasma/neovim.lua rename to assets/themes/miasma/neovim.lua diff --git a/themes/miasma/preview.png b/assets/themes/miasma/preview.png similarity index 100% rename from themes/miasma/preview.png rename to assets/themes/miasma/preview.png diff --git a/themes/miasma/vscode.json b/assets/themes/miasma/vscode.json similarity index 100% rename from themes/miasma/vscode.json rename to assets/themes/miasma/vscode.json diff --git a/themes/nomarchy-palettes.nix b/assets/themes/nomarchy-palettes.nix similarity index 100% rename from themes/nomarchy-palettes.nix rename to assets/themes/nomarchy-palettes.nix diff --git a/themes/nord/backgrounds/0-black-moon.jpg b/assets/themes/nord/backgrounds/0-black-moon.jpg similarity index 100% rename from themes/nord/backgrounds/0-black-moon.jpg rename to assets/themes/nord/backgrounds/0-black-moon.jpg diff --git a/themes/nord/backgrounds/1-city-view.png b/assets/themes/nord/backgrounds/1-city-view.png similarity index 100% rename from themes/nord/backgrounds/1-city-view.png rename to assets/themes/nord/backgrounds/1-city-view.png diff --git a/themes/nord/backgrounds/2-night-hawks.png b/assets/themes/nord/backgrounds/2-night-hawks.png similarity index 100% rename from themes/nord/backgrounds/2-night-hawks.png rename to assets/themes/nord/backgrounds/2-night-hawks.png diff --git a/themes/nord/btop.theme b/assets/themes/nord/btop.theme similarity index 100% rename from themes/nord/btop.theme rename to assets/themes/nord/btop.theme diff --git a/themes/nord/colors.toml b/assets/themes/nord/colors.toml similarity index 100% rename from themes/nord/colors.toml rename to assets/themes/nord/colors.toml diff --git a/themes/nord/icons.theme b/assets/themes/nord/icons.theme similarity index 100% rename from themes/nord/icons.theme rename to assets/themes/nord/icons.theme diff --git a/themes/nord/neovim.lua b/assets/themes/nord/neovim.lua similarity index 100% rename from themes/nord/neovim.lua rename to assets/themes/nord/neovim.lua diff --git a/themes/nord/preview.png b/assets/themes/nord/preview.png similarity index 100% rename from themes/nord/preview.png rename to assets/themes/nord/preview.png diff --git a/themes/nord/vscode.json b/assets/themes/nord/vscode.json similarity index 100% rename from themes/nord/vscode.json rename to assets/themes/nord/vscode.json diff --git a/themes/osaka-jade/backgrounds/1-glowing-city.jpg b/assets/themes/osaka-jade/backgrounds/1-glowing-city.jpg similarity index 100% rename from themes/osaka-jade/backgrounds/1-glowing-city.jpg rename to assets/themes/osaka-jade/backgrounds/1-glowing-city.jpg diff --git a/themes/osaka-jade/backgrounds/2-shaded-entrance.jpg b/assets/themes/osaka-jade/backgrounds/2-shaded-entrance.jpg similarity index 100% rename from themes/osaka-jade/backgrounds/2-shaded-entrance.jpg rename to assets/themes/osaka-jade/backgrounds/2-shaded-entrance.jpg diff --git a/themes/osaka-jade/backgrounds/3-mountain-moon.jpg b/assets/themes/osaka-jade/backgrounds/3-mountain-moon.jpg similarity index 100% rename from themes/osaka-jade/backgrounds/3-mountain-moon.jpg rename to assets/themes/osaka-jade/backgrounds/3-mountain-moon.jpg diff --git a/themes/osaka-jade/btop.theme b/assets/themes/osaka-jade/btop.theme similarity index 100% rename from themes/osaka-jade/btop.theme rename to assets/themes/osaka-jade/btop.theme diff --git a/themes/osaka-jade/colors.toml b/assets/themes/osaka-jade/colors.toml similarity index 100% rename from themes/osaka-jade/colors.toml rename to assets/themes/osaka-jade/colors.toml diff --git a/themes/osaka-jade/icons.theme b/assets/themes/osaka-jade/icons.theme similarity index 100% rename from themes/osaka-jade/icons.theme rename to assets/themes/osaka-jade/icons.theme diff --git a/themes/osaka-jade/neovim.lua b/assets/themes/osaka-jade/neovim.lua similarity index 100% rename from themes/osaka-jade/neovim.lua rename to assets/themes/osaka-jade/neovim.lua diff --git a/themes/osaka-jade/preview.png b/assets/themes/osaka-jade/preview.png similarity index 100% rename from themes/osaka-jade/preview.png rename to assets/themes/osaka-jade/preview.png diff --git a/themes/osaka-jade/vscode.json b/assets/themes/osaka-jade/vscode.json similarity index 100% rename from themes/osaka-jade/vscode.json rename to assets/themes/osaka-jade/vscode.json diff --git a/themes/retro-82/backgrounds/1-in-the-groove.jpg b/assets/themes/retro-82/backgrounds/1-in-the-groove.jpg similarity index 100% rename from themes/retro-82/backgrounds/1-in-the-groove.jpg rename to assets/themes/retro-82/backgrounds/1-in-the-groove.jpg diff --git a/themes/retro-82/backgrounds/2-dusk-guardian.jpg b/assets/themes/retro-82/backgrounds/2-dusk-guardian.jpg similarity index 100% rename from themes/retro-82/backgrounds/2-dusk-guardian.jpg rename to assets/themes/retro-82/backgrounds/2-dusk-guardian.jpg diff --git a/themes/retro-82/backgrounds/3-glassy-lines.jpg b/assets/themes/retro-82/backgrounds/3-glassy-lines.jpg similarity index 100% rename from themes/retro-82/backgrounds/3-glassy-lines.jpg rename to assets/themes/retro-82/backgrounds/3-glassy-lines.jpg diff --git a/themes/retro-82/backgrounds/4-gateway.jpg b/assets/themes/retro-82/backgrounds/4-gateway.jpg similarity index 100% rename from themes/retro-82/backgrounds/4-gateway.jpg rename to assets/themes/retro-82/backgrounds/4-gateway.jpg diff --git a/themes/retro-82/backgrounds/5-zen-boat.jpg b/assets/themes/retro-82/backgrounds/5-zen-boat.jpg similarity index 100% rename from themes/retro-82/backgrounds/5-zen-boat.jpg rename to assets/themes/retro-82/backgrounds/5-zen-boat.jpg diff --git a/themes/retro-82/backgrounds/6-abstract-pyramids.jpg b/assets/themes/retro-82/backgrounds/6-abstract-pyramids.jpg similarity index 100% rename from themes/retro-82/backgrounds/6-abstract-pyramids.jpg rename to assets/themes/retro-82/backgrounds/6-abstract-pyramids.jpg diff --git a/themes/retro-82/backgrounds/7-the-journey.jpg b/assets/themes/retro-82/backgrounds/7-the-journey.jpg similarity index 100% rename from themes/retro-82/backgrounds/7-the-journey.jpg rename to assets/themes/retro-82/backgrounds/7-the-journey.jpg diff --git a/themes/retro-82/backgrounds/8-glitter-glass.jpg b/assets/themes/retro-82/backgrounds/8-glitter-glass.jpg similarity index 100% rename from themes/retro-82/backgrounds/8-glitter-glass.jpg rename to assets/themes/retro-82/backgrounds/8-glitter-glass.jpg diff --git a/themes/retro-82/btop.theme b/assets/themes/retro-82/btop.theme similarity index 100% rename from themes/retro-82/btop.theme rename to assets/themes/retro-82/btop.theme diff --git a/themes/retro-82/chromium.theme b/assets/themes/retro-82/chromium.theme similarity index 100% rename from themes/retro-82/chromium.theme rename to assets/themes/retro-82/chromium.theme diff --git a/themes/retro-82/colors.toml b/assets/themes/retro-82/colors.toml similarity index 100% rename from themes/retro-82/colors.toml rename to assets/themes/retro-82/colors.toml diff --git a/themes/retro-82/hyprland.conf b/assets/themes/retro-82/hyprland.conf similarity index 100% rename from themes/retro-82/hyprland.conf rename to assets/themes/retro-82/hyprland.conf diff --git a/themes/retro-82/icons.theme b/assets/themes/retro-82/icons.theme similarity index 100% rename from themes/retro-82/icons.theme rename to assets/themes/retro-82/icons.theme diff --git a/themes/retro-82/neovim.lua b/assets/themes/retro-82/neovim.lua similarity index 100% rename from themes/retro-82/neovim.lua rename to assets/themes/retro-82/neovim.lua diff --git a/themes/retro-82/preview.png b/assets/themes/retro-82/preview.png similarity index 100% rename from themes/retro-82/preview.png rename to assets/themes/retro-82/preview.png diff --git a/themes/retro-82/swayosd.css b/assets/themes/retro-82/swayosd.css similarity index 100% rename from themes/retro-82/swayosd.css rename to assets/themes/retro-82/swayosd.css diff --git a/themes/retro-82/vscode.json b/assets/themes/retro-82/vscode.json similarity index 100% rename from themes/retro-82/vscode.json rename to assets/themes/retro-82/vscode.json diff --git a/themes/retro-82/waybar.css b/assets/themes/retro-82/waybar.css similarity index 100% rename from themes/retro-82/waybar.css rename to assets/themes/retro-82/waybar.css diff --git a/themes/ristretto/backgrounds/1-color-curves.jpg b/assets/themes/ristretto/backgrounds/1-color-curves.jpg similarity index 100% rename from themes/ristretto/backgrounds/1-color-curves.jpg rename to assets/themes/ristretto/backgrounds/1-color-curves.jpg diff --git a/themes/ristretto/backgrounds/2-coffee-beans.jpg b/assets/themes/ristretto/backgrounds/2-coffee-beans.jpg similarity index 100% rename from themes/ristretto/backgrounds/2-coffee-beans.jpg rename to assets/themes/ristretto/backgrounds/2-coffee-beans.jpg diff --git a/themes/ristretto/backgrounds/3-industrial-moon.jpg b/assets/themes/ristretto/backgrounds/3-industrial-moon.jpg similarity index 100% rename from themes/ristretto/backgrounds/3-industrial-moon.jpg rename to assets/themes/ristretto/backgrounds/3-industrial-moon.jpg diff --git a/themes/ristretto/btop.theme b/assets/themes/ristretto/btop.theme similarity index 100% rename from themes/ristretto/btop.theme rename to assets/themes/ristretto/btop.theme diff --git a/themes/ristretto/colors.toml b/assets/themes/ristretto/colors.toml similarity index 100% rename from themes/ristretto/colors.toml rename to assets/themes/ristretto/colors.toml diff --git a/themes/ristretto/icons.theme b/assets/themes/ristretto/icons.theme similarity index 100% rename from themes/ristretto/icons.theme rename to assets/themes/ristretto/icons.theme diff --git a/themes/ristretto/neovim.lua b/assets/themes/ristretto/neovim.lua similarity index 100% rename from themes/ristretto/neovim.lua rename to assets/themes/ristretto/neovim.lua diff --git a/themes/ristretto/preview.png b/assets/themes/ristretto/preview.png similarity index 100% rename from themes/ristretto/preview.png rename to assets/themes/ristretto/preview.png diff --git a/themes/ristretto/vscode.json b/assets/themes/ristretto/vscode.json similarity index 100% rename from themes/ristretto/vscode.json rename to assets/themes/ristretto/vscode.json diff --git a/themes/rose-pine/backgrounds/1-funky-shapes.jpg b/assets/themes/rose-pine/backgrounds/1-funky-shapes.jpg similarity index 100% rename from themes/rose-pine/backgrounds/1-funky-shapes.jpg rename to assets/themes/rose-pine/backgrounds/1-funky-shapes.jpg diff --git a/themes/rose-pine/backgrounds/2-dot-map.png b/assets/themes/rose-pine/backgrounds/2-dot-map.png similarity index 100% rename from themes/rose-pine/backgrounds/2-dot-map.png rename to assets/themes/rose-pine/backgrounds/2-dot-map.png diff --git a/themes/rose-pine/backgrounds/3-nomarchy-plants.png b/assets/themes/rose-pine/backgrounds/3-nomarchy-plants.png similarity index 100% rename from themes/rose-pine/backgrounds/3-nomarchy-plants.png rename to assets/themes/rose-pine/backgrounds/3-nomarchy-plants.png diff --git a/themes/rose-pine/btop.theme b/assets/themes/rose-pine/btop.theme similarity index 100% rename from themes/rose-pine/btop.theme rename to assets/themes/rose-pine/btop.theme diff --git a/themes/rose-pine/chromium.theme b/assets/themes/rose-pine/chromium.theme similarity index 100% rename from themes/rose-pine/chromium.theme rename to assets/themes/rose-pine/chromium.theme diff --git a/themes/rose-pine/colors.toml b/assets/themes/rose-pine/colors.toml similarity index 100% rename from themes/rose-pine/colors.toml rename to assets/themes/rose-pine/colors.toml diff --git a/themes/rose-pine/icons.theme b/assets/themes/rose-pine/icons.theme similarity index 100% rename from themes/rose-pine/icons.theme rename to assets/themes/rose-pine/icons.theme diff --git a/themes/rose-pine/light.mode b/assets/themes/rose-pine/light.mode similarity index 100% rename from themes/rose-pine/light.mode rename to assets/themes/rose-pine/light.mode diff --git a/themes/rose-pine/neovim.lua b/assets/themes/rose-pine/neovim.lua similarity index 100% rename from themes/rose-pine/neovim.lua rename to assets/themes/rose-pine/neovim.lua diff --git a/themes/rose-pine/preview.png b/assets/themes/rose-pine/preview.png similarity index 100% rename from themes/rose-pine/preview.png rename to assets/themes/rose-pine/preview.png diff --git a/themes/rose-pine/vscode.json b/assets/themes/rose-pine/vscode.json similarity index 100% rename from themes/rose-pine/vscode.json rename to assets/themes/rose-pine/vscode.json diff --git a/themes/tokyo-night/backgrounds/0-swirl-buck.jpg b/assets/themes/tokyo-night/backgrounds/0-swirl-buck.jpg similarity index 100% rename from themes/tokyo-night/backgrounds/0-swirl-buck.jpg rename to assets/themes/tokyo-night/backgrounds/0-swirl-buck.jpg diff --git a/themes/tokyo-night/backgrounds/1-sunset-lake.png b/assets/themes/tokyo-night/backgrounds/1-sunset-lake.png similarity index 100% rename from themes/tokyo-night/backgrounds/1-sunset-lake.png rename to assets/themes/tokyo-night/backgrounds/1-sunset-lake.png diff --git a/themes/tokyo-night/backgrounds/2-pawel-czerwinski.jpg b/assets/themes/tokyo-night/backgrounds/2-pawel-czerwinski.jpg similarity index 100% rename from themes/tokyo-night/backgrounds/2-pawel-czerwinski.jpg rename to assets/themes/tokyo-night/backgrounds/2-pawel-czerwinski.jpg diff --git a/themes/tokyo-night/backgrounds/3-milad-fakurian.jpg b/assets/themes/tokyo-night/backgrounds/3-milad-fakurian.jpg similarity index 100% rename from themes/tokyo-night/backgrounds/3-milad-fakurian.jpg rename to assets/themes/tokyo-night/backgrounds/3-milad-fakurian.jpg diff --git a/themes/tokyo-night/btop.theme b/assets/themes/tokyo-night/btop.theme similarity index 100% rename from themes/tokyo-night/btop.theme rename to assets/themes/tokyo-night/btop.theme diff --git a/themes/tokyo-night/colors.toml b/assets/themes/tokyo-night/colors.toml similarity index 100% rename from themes/tokyo-night/colors.toml rename to assets/themes/tokyo-night/colors.toml diff --git a/themes/tokyo-night/icons.theme b/assets/themes/tokyo-night/icons.theme similarity index 100% rename from themes/tokyo-night/icons.theme rename to assets/themes/tokyo-night/icons.theme diff --git a/themes/tokyo-night/keyboard.rgb b/assets/themes/tokyo-night/keyboard.rgb similarity index 100% rename from themes/tokyo-night/keyboard.rgb rename to assets/themes/tokyo-night/keyboard.rgb diff --git a/themes/tokyo-night/neovim.lua b/assets/themes/tokyo-night/neovim.lua similarity index 100% rename from themes/tokyo-night/neovim.lua rename to assets/themes/tokyo-night/neovim.lua diff --git a/themes/tokyo-night/preview.png b/assets/themes/tokyo-night/preview.png similarity index 100% rename from themes/tokyo-night/preview.png rename to assets/themes/tokyo-night/preview.png diff --git a/themes/tokyo-night/vscode.json b/assets/themes/tokyo-night/vscode.json similarity index 100% rename from themes/tokyo-night/vscode.json rename to assets/themes/tokyo-night/vscode.json diff --git a/themes/vantablack/backgrounds/1-twisted-stairs.jpg b/assets/themes/vantablack/backgrounds/1-twisted-stairs.jpg similarity index 100% rename from themes/vantablack/backgrounds/1-twisted-stairs.jpg rename to assets/themes/vantablack/backgrounds/1-twisted-stairs.jpg diff --git a/themes/vantablack/backgrounds/2-layers-deep.jpg b/assets/themes/vantablack/backgrounds/2-layers-deep.jpg similarity index 100% rename from themes/vantablack/backgrounds/2-layers-deep.jpg rename to assets/themes/vantablack/backgrounds/2-layers-deep.jpg diff --git a/themes/vantablack/backgrounds/3-layers-stacked.jpg b/assets/themes/vantablack/backgrounds/3-layers-stacked.jpg similarity index 100% rename from themes/vantablack/backgrounds/3-layers-stacked.jpg rename to assets/themes/vantablack/backgrounds/3-layers-stacked.jpg diff --git a/themes/vantablack/btop.theme b/assets/themes/vantablack/btop.theme similarity index 100% rename from themes/vantablack/btop.theme rename to assets/themes/vantablack/btop.theme diff --git a/themes/vantablack/colors.toml b/assets/themes/vantablack/colors.toml similarity index 100% rename from themes/vantablack/colors.toml rename to assets/themes/vantablack/colors.toml diff --git a/themes/vantablack/icons.theme b/assets/themes/vantablack/icons.theme similarity index 100% rename from themes/vantablack/icons.theme rename to assets/themes/vantablack/icons.theme diff --git a/themes/vantablack/neovim.lua b/assets/themes/vantablack/neovim.lua similarity index 100% rename from themes/vantablack/neovim.lua rename to assets/themes/vantablack/neovim.lua diff --git a/themes/vantablack/preview.png b/assets/themes/vantablack/preview.png similarity index 100% rename from themes/vantablack/preview.png rename to assets/themes/vantablack/preview.png diff --git a/themes/vantablack/vscode.json b/assets/themes/vantablack/vscode.json similarity index 100% rename from themes/vantablack/vscode.json rename to assets/themes/vantablack/vscode.json diff --git a/themes/white/backgrounds/1-white.jpg b/assets/themes/white/backgrounds/1-white.jpg similarity index 100% rename from themes/white/backgrounds/1-white.jpg rename to assets/themes/white/backgrounds/1-white.jpg diff --git a/themes/white/backgrounds/2-white.jpg b/assets/themes/white/backgrounds/2-white.jpg similarity index 100% rename from themes/white/backgrounds/2-white.jpg rename to assets/themes/white/backgrounds/2-white.jpg diff --git a/themes/white/backgrounds/3-white.jpg b/assets/themes/white/backgrounds/3-white.jpg similarity index 100% rename from themes/white/backgrounds/3-white.jpg rename to assets/themes/white/backgrounds/3-white.jpg diff --git a/themes/white/btop.theme b/assets/themes/white/btop.theme similarity index 100% rename from themes/white/btop.theme rename to assets/themes/white/btop.theme diff --git a/themes/white/colors.toml b/assets/themes/white/colors.toml similarity index 100% rename from themes/white/colors.toml rename to assets/themes/white/colors.toml diff --git a/themes/white/icons.theme b/assets/themes/white/icons.theme similarity index 100% rename from themes/white/icons.theme rename to assets/themes/white/icons.theme diff --git a/themes/white/light.mode b/assets/themes/white/light.mode similarity index 100% rename from themes/white/light.mode rename to assets/themes/white/light.mode diff --git a/themes/white/neovim.lua b/assets/themes/white/neovim.lua similarity index 100% rename from themes/white/neovim.lua rename to assets/themes/white/neovim.lua diff --git a/themes/white/preview.png b/assets/themes/white/preview.png similarity index 100% rename from themes/white/preview.png rename to assets/themes/white/preview.png diff --git a/themes/white/vscode.json b/assets/themes/white/vscode.json similarity index 100% rename from themes/white/vscode.json rename to assets/themes/white/vscode.json diff --git a/bin/nomarchy-font-current b/bin/appearance/nomarchy-font-current similarity index 80% rename from bin/nomarchy-font-current rename to bin/appearance/nomarchy-font-current index b5b79d1..9e7c7f5 100755 --- a/bin/nomarchy-font-current +++ b/bin/appearance/nomarchy-font-current @@ -1,6 +1,6 @@ #!/bin/bash # Returns the name of the current monospace font being used by extracting it from the Waybar stylesheet. -# This can be changed using nomarchy-font-set. +# This can be changed using nnomarchy-font-set. grep -oP 'font-family:\s*["'\'']?\K[^;"'\'']+' ~/.config/waybar/style.css | head -n1 diff --git a/bin/nomarchy-font-list b/bin/appearance/nomarchy-font-list similarity index 64% rename from bin/nomarchy-font-list rename to bin/appearance/nomarchy-font-list index 90490c7..964eebb 100755 --- a/bin/nomarchy-font-list +++ b/bin/appearance/nomarchy-font-list @@ -1,5 +1,5 @@ #!/bin/bash -# Returns a list of all the monospace fonts available on the system that can be set using nomarchy-font-set. +# Returns a list of all the monospace fonts available on the system that can be set using nnomarchy-font-set. -fc-list :spacing=100 -f "%{family[0]}\n" | grep -v -i -E 'emoji|signwriting|nomarchy' | sort -u +fc-list :spacing=100 -f "%{family[0]}\n" | grep -v -i -E 'emoji|signwriting|nnomarchy' | sort -u diff --git a/bin/nomarchy-font-set b/bin/appearance/nomarchy-font-set similarity index 87% rename from bin/nomarchy-font-set rename to bin/appearance/nomarchy-font-set index 7dd2385..277ba06 100755 --- a/bin/nomarchy-font-set +++ b/bin/appearance/nomarchy-font-set @@ -1,12 +1,12 @@ #!/usr/bin/env bash # Set the system-wide monospace font that should be used by the terminal, hyprlock, waybar, swayosd, etc. -# Declarative version for Nomarchy NixOS. +# Declarative version for Nnomarchy NixOS. font_name="$1" if [[ -z $font_name ]]; then - echo "Usage: nomarchy-font-set " + echo "Usage: nnomarchy-font-set " exit 1 fi @@ -31,7 +31,7 @@ if fc-list | grep -iq "$font_name"; then notify-send -u low " You must restart Ghostty to see font change" fi - nomarchy-hook font-set "$font_name" + nnomarchy-hook font-set "$font_name" else echo "Font '$font_name' not found." exit 1 diff --git a/bin/nomarchy-show-done b/bin/appearance/nomarchy-show-done similarity index 100% rename from bin/nomarchy-show-done rename to bin/appearance/nomarchy-show-done diff --git a/bin/nomarchy-show-logo b/bin/appearance/nomarchy-show-logo similarity index 52% rename from bin/nomarchy-show-logo rename to bin/appearance/nomarchy-show-logo index beb0596..7c9d35a 100755 --- a/bin/nomarchy-show-logo +++ b/bin/appearance/nomarchy-show-logo @@ -1,10 +1,10 @@ #!/bin/bash -# Display the Nomarchy logo in the terminal using green color. +# Display the Nnomarchy logo in the terminal using green color. # Used by various presentation scripts to show branding. clear echo -e "\033[32m" -cat < ~/.config/nomarchy/branding/logo.txt +cat < ~/.config/nnomarchy/branding/logo.txt echo -e "\033[0m" echo diff --git a/bin/appearance/nomarchy-theme-bg-install b/bin/appearance/nomarchy-theme-bg-install new file mode 100755 index 0000000..77a246a --- /dev/null +++ b/bin/appearance/nomarchy-theme-bg-install @@ -0,0 +1,7 @@ +#!/bin/bash + +CURRENT_THEME_NAME=$(cat "$HOME/.config/nnomarchy/current/theme.name") +THEME_USER_BACKGROUNDS="$HOME/.config/nnomarchy/backgrounds/$CURRENT_THEME_NAME" + +mkdir -p "$THEME_USER_BACKGROUNDS" +nautilus "$THEME_USER_BACKGROUNDS" diff --git a/bin/nomarchy-theme-bg-next b/bin/appearance/nomarchy-theme-bg-next similarity index 86% rename from bin/nomarchy-theme-bg-next rename to bin/appearance/nomarchy-theme-bg-next index 1ed4dc9..5683546 100755 --- a/bin/nomarchy-theme-bg-next +++ b/bin/appearance/nomarchy-theme-bg-next @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Cycles through the background images available for the current theme. -# Declarative + Hybrid (instant swww) for Nomarchy NixOS. +# Declarative + Hybrid (instant swww) for Nnomarchy NixOS. STATE_DIR="$HOME/.config/home-manager" STATE_FILE="$STATE_DIR/state.json" @@ -11,10 +11,10 @@ mkdir -p "$STATE_DIR" THEME_NAME=$(jq -r '.theme // "nord"' "$STATE_FILE") # Resolve themes directory (Built-in from Nix store via Home Manager, or user extra) -if [ -d "$HOME/.config/nomarchy/themes/$THEME_NAME" ]; then - THEMES_DIR="$HOME/.config/nomarchy/themes" +if [ -d "$HOME/.config/nnomarchy/themes/$THEME_NAME" ]; then + THEMES_DIR="$HOME/.config/nnomarchy/themes" else - THEMES_DIR="$HOME/.local/share/nomarchy/themes" + THEMES_DIR="$HOME/.local/share/nnomarchy/themes" fi BG_DIR="$THEMES_DIR/$THEME_NAME/backgrounds" diff --git a/bin/nomarchy-theme-bg-set b/bin/appearance/nomarchy-theme-bg-set similarity index 72% rename from bin/nomarchy-theme-bg-set rename to bin/appearance/nomarchy-theme-bg-set index 26e3c44..cb301b8 100755 --- a/bin/nomarchy-theme-bg-set +++ b/bin/appearance/nomarchy-theme-bg-set @@ -3,12 +3,12 @@ # Sets the specified image as the current background if [[ -z $1 ]]; then - echo "Usage: nomarchy-theme-bg-set " >&2 + echo "Usage: nnomarchy-theme-bg-set " >&2 exit 1 fi BACKGROUND="$1" -CURRENT_BACKGROUND_LINK="$HOME/.config/nomarchy/current/background" +CURRENT_BACKGROUND_LINK="$HOME/.config/nnomarchy/current/background" # Create symlink to the new background ln -nsf "$BACKGROUND" "$CURRENT_BACKGROUND_LINK" diff --git a/bin/nomarchy-theme-current b/bin/appearance/nomarchy-theme-current similarity index 69% rename from bin/nomarchy-theme-current rename to bin/appearance/nomarchy-theme-current index 2007b41..cbaed97 100755 --- a/bin/nomarchy-theme-current +++ b/bin/appearance/nomarchy-theme-current @@ -1,6 +1,6 @@ #!/bin/bash -THEME_NAME_PATH="$HOME/.config/nomarchy/current/theme.name" +THEME_NAME_PATH="$HOME/.config/nnomarchy/current/theme.name" if [[ -f $THEME_NAME_PATH ]]; then cat $THEME_NAME_PATH | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g' diff --git a/bin/appearance/nomarchy-theme-install b/bin/appearance/nomarchy-theme-install new file mode 100755 index 0000000..a684ec7 --- /dev/null +++ b/bin/appearance/nomarchy-theme-install @@ -0,0 +1,33 @@ +#!/bin/bash + +# nnomarchy-theme-install: Install a new theme from a git repo for Nnomarchy +# Usage: nnomarchy-theme-install + +if [[ -z $1 ]]; then + echo -e "\e[32mSee https://manuals.omamix.org/2/the-nnomarchy-manual/90/extra-themes\n\e[0m" + REPO_URL=$(gum input --placeholder="Git repo URL for theme" --header="") +else + REPO_URL="$1" +fi + +if [[ -z $REPO_URL ]]; then + exit 1 +fi + +THEMES_DIR="$HOME/.config/nnomarchy/themes" +THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^nnomarchy-//; s/-theme$//') +THEME_PATH="$THEMES_DIR/$THEME_NAME" + +# Remove existing theme if present +if [[ -d $THEME_PATH ]]; then + rm -rf "$THEME_PATH" +fi + +# Clone the repo directly to ~/.config/nnomarchy/themes +if ! git clone "$REPO_URL" "$THEME_PATH"; then + echo "Error: Failed to clone theme repo." + exit 1 +fi + +# Apply the new theme with nnomarchy-theme-set +nnomarchy-theme-set $THEME_NAME diff --git a/bin/appearance/nomarchy-theme-list b/bin/appearance/nomarchy-theme-list new file mode 100755 index 0000000..59e61ad --- /dev/null +++ b/bin/appearance/nomarchy-theme-list @@ -0,0 +1,8 @@ +#!/bin/bash + +{ + find ~/.config/nnomarchy/themes/ -mindepth 1 -maxdepth 1 \( -type d -o -type l \) -printf '%f\n' + find "$NOMARCHY_PATH/assets/themes/" -mindepth 1 -maxdepth 1 -type d -printf '%f\n' +} | sort -u | while read -r name; do + echo "$name" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g' +done diff --git a/bin/appearance/nomarchy-theme-refresh b/bin/appearance/nomarchy-theme-refresh new file mode 100755 index 0000000..97a037c --- /dev/null +++ b/bin/appearance/nomarchy-theme-refresh @@ -0,0 +1,9 @@ +#!/bin/bash + +# Refresh the current theme from its templates. + +THEME_NAME_PATH="$HOME/.config/nnomarchy/current/theme.name" + +if [[ -f $THEME_NAME_PATH ]]; then + nnomarchy-theme-set "$(cat $THEME_NAME_PATH)" +fi diff --git a/bin/nomarchy-theme-remove b/bin/appearance/nomarchy-theme-remove similarity index 64% rename from bin/nomarchy-theme-remove rename to bin/appearance/nomarchy-theme-remove index 7b058c4..d5d8d7d 100755 --- a/bin/nomarchy-theme-remove +++ b/bin/appearance/nomarchy-theme-remove @@ -1,10 +1,10 @@ #!/bin/bash -# nomarchy-theme-remove: Remove a theme from Nomarchy by name -# Usage: nomarchy-theme-remove +# nnomarchy-theme-remove: Remove a theme from Nnomarchy by name +# Usage: nnomarchy-theme-remove if [[ -z $1 ]]; then - mapfile -t extra_themes < <(find ~/.config/nomarchy/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l -printf '%f\n') + mapfile -t extra_themes < <(find ~/.config/nnomarchy/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l -printf '%f\n') if (( ${#extra_themes[@]} > 0 )); then THEME_NAME=$(printf '%s\n' "${extra_themes[@]}" | sort | gum choose --header="Remove extra theme") @@ -16,8 +16,8 @@ else THEME_NAME="$1" fi -THEMES_DIR="$HOME/.config/nomarchy/themes" -CURRENT_DIR="$HOME/.config/nomarchy/current" +THEMES_DIR="$HOME/.config/nnomarchy/themes" +CURRENT_DIR="$HOME/.config/nnomarchy/current" THEME_PATH="$THEMES_DIR/$THEME_NAME" # Ensure a theme was set diff --git a/bin/nomarchy-theme-set b/bin/appearance/nomarchy-theme-set similarity index 76% rename from bin/nomarchy-theme-set rename to bin/appearance/nomarchy-theme-set index 2fe2b6e..5de72f1 100755 --- a/bin/nomarchy-theme-set +++ b/bin/appearance/nomarchy-theme-set @@ -1,12 +1,12 @@ #!/usr/bin/env bash # Set the system theme declaratively. -# Usage: nomarchy-theme-set +# Usage: nnomarchy-theme-set THEME_NAME="$1" if [[ -z $THEME_NAME ]]; then - echo "Usage: nomarchy-theme-set " + echo "Usage: nnomarchy-theme-set " exit 1 fi @@ -14,10 +14,10 @@ STATE_DIR="$HOME/.config/home-manager" STATE_FILE="$STATE_DIR/state.json" # Resolve themes directory (Built-in from Nix store via Home Manager, or user extra) -if [ -d "$HOME/.config/nomarchy/themes/$THEME_NAME" ]; then - THEMES_DIR="$HOME/.config/nomarchy/themes" +if [ -d "$HOME/.config/nnomarchy/themes/$THEME_NAME" ]; then + THEMES_DIR="$HOME/.config/nnomarchy/themes" else - THEMES_DIR="$HOME/.local/share/nomarchy/themes" + THEMES_DIR="$HOME/.local/share/nnomarchy/themes" fi mkdir -p "$STATE_DIR" @@ -26,7 +26,7 @@ mkdir -p "$STATE_DIR" if [ ! -d "$THEMES_DIR/$THEME_NAME" ] && ! [[ "$THEME_NAME" == "nord" ]]; then echo "Theme '$THEME_NAME' not found in $THEMES_DIR" # Check if it exists in the palettes file - # (Assuming nomarchy-palettes.nix is imported in Nix) + # (Assuming nnomarchy-palettes.nix is imported in Nix) fi TMP_JSON=$(mktemp) @@ -49,9 +49,9 @@ if [ -d "$BG_DIR" ]; then fi echo "Theme set to $THEME_NAME. Applying changes with env-update..." -rm -rf "$HOME/.config/nomarchy/current/theme" +rm -rf "$HOME/.config/nnomarchy/current/theme" env-update -nomarchy-theme-set-templates +nnomarchy-theme-set-templates -nomarchy-hook theme-set "$THEME_NAME" +nnomarchy-hook theme-set "$THEME_NAME" diff --git a/bin/appearance/nomarchy-theme-set-keyboard b/bin/appearance/nomarchy-theme-set-keyboard new file mode 100755 index 0000000..a31a0b5 --- /dev/null +++ b/bin/appearance/nomarchy-theme-set-keyboard @@ -0,0 +1,4 @@ +#!/bin/bash + +nnomarchy-theme-set-keyboard-asus-rog +nnomarchy-theme-set-keyboard-f16 diff --git a/bin/appearance/nomarchy-theme-set-keyboard-asus-rog b/bin/appearance/nomarchy-theme-set-keyboard-asus-rog new file mode 100755 index 0000000..f5b4ccb --- /dev/null +++ b/bin/appearance/nomarchy-theme-set-keyboard-asus-rog @@ -0,0 +1,7 @@ +#!/bin/bash + +ASUSCTL_THEME=~/.config/nnomarchy/current/theme/keyboard.rgb + +if nnomarchy-cmd-present asusctl; then + asusctl aura effect static -c $(sed 's/^#//' $ASUSCTL_THEME) +fi diff --git a/bin/nomarchy-theme-set-keyboard-f16 b/bin/appearance/nomarchy-theme-set-keyboard-f16 similarity index 80% rename from bin/nomarchy-theme-set-keyboard-f16 rename to bin/appearance/nomarchy-theme-set-keyboard-f16 index 66a0f12..62dcd7e 100755 --- a/bin/nomarchy-theme-set-keyboard-f16 +++ b/bin/appearance/nomarchy-theme-set-keyboard-f16 @@ -1,8 +1,8 @@ #!/bin/bash -FRAMEWORK16_THEME=~/.config/nomarchy/current/theme/keyboard.rgb +FRAMEWORK16_THEME=~/.config/nnomarchy/current/theme/keyboard.rgb -if nomarchy-cmd-present qmk_hid && [[ -f $FRAMEWORK16_THEME ]]; then +if nnomarchy-cmd-present qmk_hid && [[ -f $FRAMEWORK16_THEME ]]; then hex=$(cat "$FRAMEWORK16_THEME") hex="${hex#\#}" diff --git a/bin/nomarchy-theme-set-obsidian b/bin/appearance/nomarchy-theme-set-obsidian similarity index 56% rename from bin/nomarchy-theme-set-obsidian rename to bin/appearance/nomarchy-theme-set-obsidian index e24fd8d..c0eb298 100755 --- a/bin/nomarchy-theme-set-obsidian +++ b/bin/appearance/nomarchy-theme-set-obsidian @@ -1,25 +1,25 @@ #!/bin/bash -# Sync Nomarchy theme to all Obsidian vaults +# Sync Nnomarchy theme to all Obsidian vaults -CURRENT_THEME_DIR="$HOME/.config/nomarchy/current/theme" +CURRENT_THEME_DIR="$HOME/.config/nnomarchy/current/theme" [[ -f $CURRENT_THEME_DIR/obsidian.css ]] || exit 0 jq -r '.vaults | values[].path' ~/.config/obsidian/obsidian.json 2>/dev/null | while read -r vault_path; do [[ -d $vault_path/.obsidian ]] || continue - theme_dir="$vault_path/.obsidian/themes/Nomarchy" + theme_dir="$vault_path/.obsidian/themes/Nnomarchy" mkdir -p "$theme_dir" [[ -f $theme_dir/manifest.json ]] || cat >"$theme_dir/manifest.json" <<'EOF' { - "name": "Nomarchy", + "name": "Nnomarchy", "version": "1.0.0", "minAppVersion": "0.16.0", - "description": "Automatically syncs with your current Nomarchy system theme colors and fonts", - "author": "Nomarchy", - "authorUrl": "https://nomarchy.org" + "description": "Automatically syncs with your current Nnomarchy system theme colors and fonts", + "author": "Nnomarchy", + "authorUrl": "https://nnomarchy.org" } EOF diff --git a/bin/nomarchy-theme-set-templates b/bin/appearance/nomarchy-theme-set-templates similarity index 90% rename from bin/nomarchy-theme-set-templates rename to bin/appearance/nomarchy-theme-set-templates index 3fb9599..6fd4907 100755 --- a/bin/nomarchy-theme-set-templates +++ b/bin/appearance/nomarchy-theme-set-templates @@ -1,8 +1,8 @@ #!/bin/bash -TEMPLATES_DIR="$OMARCHY_PATH/default/themed" -USER_TEMPLATES_DIR="$HOME/.config/nomarchy/themed" -NEXT_THEME_DIR="$HOME/.config/nomarchy/current/theme" +TEMPLATES_DIR="$NOMARCHY_PATH/assets/themed" +USER_TEMPLATES_DIR="$HOME/.config/nnomarchy/themed" +NEXT_THEME_DIR="$HOME/.config/nnomarchy/current/theme" COLORS_FILE="$NEXT_THEME_DIR/colors.toml" # Convert hex color to decimal RGB (e.g., "#1e1e2e" -> "30,30,46") diff --git a/bin/nomarchy-theme-set-vscode b/bin/appearance/nomarchy-theme-set-vscode similarity index 84% rename from bin/nomarchy-theme-set-vscode rename to bin/appearance/nomarchy-theme-set-vscode index 621d8a4..cf76022 100755 --- a/bin/nomarchy-theme-set-vscode +++ b/bin/appearance/nomarchy-theme-set-vscode @@ -1,14 +1,14 @@ #!/bin/bash -# Sync Nomarchy theme to VS Code, VSCodium, and Cursor +# Sync Nnomarchy theme to VS Code, VSCodium, and Cursor -VS_CODE_THEME="$HOME/.config/nomarchy/current/theme/vscode.json" +VS_CODE_THEME="$HOME/.config/nnomarchy/current/theme/vscode.json" set_theme() { local editor_cmd="$1" local settings_path="$2" - nomarchy-cmd-present "$editor_cmd" && [[ $NOMARCHY_TOGGLE_SKIP_VSCODE_THEME != "true" ]] || return 0 + nnomarchy-cmd-present "$editor_cmd" && [[ $NNOMARCHY_TOGGLE_SKIP_VSCODE_THEME != "true" ]] || return 0 if [[ -f $VS_CODE_THEME ]]; then theme_name=$(jq -r '.name' "$VS_CODE_THEME") diff --git a/bin/nomarchy-theme-update b/bin/appearance/nomarchy-theme-update similarity index 77% rename from bin/nomarchy-theme-update rename to bin/appearance/nomarchy-theme-update index af49ea0..e63b671 100755 --- a/bin/nomarchy-theme-update +++ b/bin/appearance/nomarchy-theme-update @@ -1,6 +1,6 @@ #!/bin/bash -for dir in ~/.config/nomarchy/themes/*/; do +for dir in ~/.config/nnomarchy/themes/*/; do if [[ -d $dir ]] && [[ ! -L ${dir%/} ]] && [[ -d $dir/.git ]]; then echo "Updating: $(basename "$dir")" git -C "$dir" pull diff --git a/bin/nomarchy-toggle-nightlight b/bin/appearance/nomarchy-toggle-nightlight similarity index 92% rename from bin/nomarchy-toggle-nightlight rename to bin/appearance/nomarchy-toggle-nightlight index 6cde7ac..078d698 100755 --- a/bin/nomarchy-toggle-nightlight +++ b/bin/appearance/nomarchy-toggle-nightlight @@ -9,7 +9,7 @@ mkdir -p "$(dirname "$STATE_FILE")" # Initialize if doesn't exist [[ ! -f $STATE_FILE ]] && echo "{}" > "$STATE_FILE" -if [[ $NOMARCHY_TOGGLE_NIGHTLIGHT == "false" ]]; then +if [[ $NNOMARCHY_TOGGLE_NIGHTLIGHT == "false" ]]; then NEW_VALUE="true" hyprctl dispatch exec hyprsunset --temperature 4000 notify-send -u low "󰔎 Nightlight enabled" diff --git a/bin/nomarchy-launch-about b/bin/apps/nomarchy-launch-about similarity index 55% rename from bin/nomarchy-launch-about rename to bin/apps/nomarchy-launch-about index 315906f..d90f8f5 100755 --- a/bin/nomarchy-launch-about +++ b/bin/apps/nomarchy-launch-about @@ -2,4 +2,4 @@ # Launch the fastfetch TUI that gives information about the current system. -exec nomarchy-launch-or-focus-tui "bash -c 'fastfetch; read -n 1 -s'" +exec nnomarchy-launch-or-focus-tui "bash -c 'fastfetch; read -n 1 -s'" diff --git a/bin/apps/nomarchy-launch-audio b/bin/apps/nomarchy-launch-audio new file mode 100755 index 0000000..5eb963b --- /dev/null +++ b/bin/apps/nomarchy-launch-audio @@ -0,0 +1,5 @@ +#!/bin/bash + +# Launch the Nnomarchy audio controls TUI (provided by wiremix). + +nnomarchy-launch-or-focus-tui wiremix diff --git a/bin/apps/nomarchy-launch-bluetooth b/bin/apps/nomarchy-launch-bluetooth new file mode 100755 index 0000000..5927e93 --- /dev/null +++ b/bin/apps/nomarchy-launch-bluetooth @@ -0,0 +1,7 @@ +#!/bin/bash + +# Launch the Nnomarchy bluetooth controls TUI (provided by bluetui). +# Also attempts to unblock bluetooth service if rfkill had blocked it. + +rfkill unblock bluetooth +exec nnomarchy-launch-or-focus-tui bluetui diff --git a/bin/nomarchy-launch-browser b/bin/apps/nomarchy-launch-browser similarity index 100% rename from bin/nomarchy-launch-browser rename to bin/apps/nomarchy-launch-browser diff --git a/bin/nomarchy-launch-editor b/bin/apps/nomarchy-launch-editor similarity index 78% rename from bin/nomarchy-launch-editor rename to bin/apps/nomarchy-launch-editor index d12dee2..0b3f1a1 100755 --- a/bin/nomarchy-launch-editor +++ b/bin/apps/nomarchy-launch-editor @@ -3,11 +3,11 @@ # Launch the default editor as determined by $EDITOR (set via ~/.config/uwsm/default) (or nvim if missing). # Starts suitable editors in a terminal window and otherwise as a regular application. -nomarchy-cmd-present "$EDITOR" || EDITOR=nvim +nnomarchy-cmd-present "$EDITOR" || EDITOR=nvim case "$EDITOR" in nvim | vim | nano | micro | hx | helix | fresh) - exec nomarchy-launch-tui "$EDITOR" "$@" + exec nnomarchy-launch-tui "$EDITOR" "$@" ;; *) exec setsid uwsm-app -- "$EDITOR" "$@" diff --git a/bin/apps/nomarchy-launch-floating-terminal-with-presentation b/bin/apps/nomarchy-launch-floating-terminal-with-presentation new file mode 100755 index 0000000..7b864d7 --- /dev/null +++ b/bin/apps/nomarchy-launch-floating-terminal-with-presentation @@ -0,0 +1,7 @@ +#!/bin/bash + +# Launch a floating terminal with the Nnomarchy logo presentation, then execute the command passed in, and finally end with the nnomarchy-show-done presentation. +# Used by actions such as Update System. + +cmd="$*" +exec setsid uwsm-app -- xdg-terminal-exec --app-id=org.nnomarchy.terminal --title=Nnomarchy -e bash -c "nnomarchy-show-logo; $cmd; if (( \$? != 130 )); then nnomarchy-show-done; fi" diff --git a/bin/nomarchy-launch-or-focus b/bin/apps/nomarchy-launch-or-focus similarity index 89% rename from bin/nomarchy-launch-or-focus rename to bin/apps/nomarchy-launch-or-focus index 477e0c3..b9d8764 100755 --- a/bin/nomarchy-launch-or-focus +++ b/bin/apps/nomarchy-launch-or-focus @@ -4,7 +4,7 @@ # Use by some default bindings, like the one for Spotify, to ensure there is only one instance of the application open. if (($# == 0)); then - echo "Usage: nomarchy-launch-or-focus [window-pattern] [launch-command]" + echo "Usage: nnomarchy-launch-or-focus [window-pattern] [launch-command]" exit 1 fi diff --git a/bin/apps/nomarchy-launch-or-focus-tui b/bin/apps/nomarchy-launch-or-focus-tui new file mode 100755 index 0000000..fa084bb --- /dev/null +++ b/bin/apps/nomarchy-launch-or-focus-tui @@ -0,0 +1,9 @@ +#!/bin/bash + +# Launch or focus on a given TUI identified by the passed in as the command. +# Use by commands like nnomarchy-launch-wifi to ensure there is only one wifi configuration screen open. + +APP_ID="org.nnomarchy.$(basename "$1")" +LAUNCH_COMMAND="nnomarchy-launch-tui $@" + +exec nnomarchy-launch-or-focus "$APP_ID" "$LAUNCH_COMMAND" diff --git a/bin/nomarchy-launch-or-focus-webapp b/bin/apps/nomarchy-launch-or-focus-webapp similarity index 57% rename from bin/nomarchy-launch-or-focus-webapp rename to bin/apps/nomarchy-launch-or-focus-webapp index 809cc21..12f89a3 100755 --- a/bin/nomarchy-launch-or-focus-webapp +++ b/bin/apps/nomarchy-launch-or-focus-webapp @@ -4,12 +4,12 @@ # Use by some default bindings, like the one for WhatsApp, to ensure there is only one instance of the application open. if (($# == 0)); then - echo "Usage: nomarchy-launch-or-focus-webapp [window-pattern] [url-and-flags...]" + echo "Usage: nnomarchy-launch-or-focus-webapp [window-pattern] [url-and-flags...]" exit 1 fi WINDOW_PATTERN="$1" shift -LAUNCH_COMMAND="nomarchy-launch-webapp $@" +LAUNCH_COMMAND="nnomarchy-launch-webapp $@" -exec nomarchy-launch-or-focus "$WINDOW_PATTERN" "$LAUNCH_COMMAND" +exec nnomarchy-launch-or-focus "$WINDOW_PATTERN" "$LAUNCH_COMMAND" diff --git a/bin/nomarchy-launch-screensaver b/bin/apps/nomarchy-launch-screensaver similarity index 59% rename from bin/nomarchy-launch-screensaver rename to bin/apps/nomarchy-launch-screensaver index 16eff8e..d229d7b 100755 --- a/bin/nomarchy-launch-screensaver +++ b/bin/apps/nomarchy-launch-screensaver @@ -1,6 +1,6 @@ #!/bin/bash -# Launch the Nomarchy screensaver in the default terminal on the system with the correct font configuration. +# Launch the Nnomarchy screensaver in the default terminal on the system with the correct font configuration. # Exit early if we don't have the tte show if ! command -v tte &>/dev/null; then @@ -8,11 +8,11 @@ if ! command -v tte &>/dev/null; then fi # Exit early if screensave is already running -pgrep -f org.nomarchy.screensaver && exit 0 +pgrep -f org.nnomarchy.screensaver && exit 0 # Allow screensaver to be turned off but also force started # Skip if screensaver is disabled in configuration -if [[ $NOMARCHY_TOGGLE_SCREENSAVER == "false" ]] && [[ $1 != "force" ]]; then +if [[ $NNOMARCHY_TOGGLE_SCREENSAVER == "false" ]] && [[ $1 != "force" ]]; then exit 0 fi @@ -29,23 +29,23 @@ for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do case $terminal in *Alacritty*) hyprctl dispatch exec -- \ - alacritty --class=org.nomarchy.screensaver \ - --config-file ~/.local/share/nomarchy/default/alacritty/screensaver.toml \ - -e nomarchy-cmd-screensaver + alacritty --class=org.nnomarchy.screensaver \ + --config-file ~/.local/share/nnomarchy/default/alacritty/screensaver.toml \ + -e nnomarchy-cmd-screensaver ;; *ghostty*) hyprctl dispatch exec -- \ - ghostty --class=org.nomarchy.screensaver \ - --config-file=~/.local/share/nomarchy/default/ghostty/screensaver \ + ghostty --class=org.nnomarchy.screensaver \ + --config-file=~/.local/share/nnomarchy/default/ghostty/screensaver \ --font-size=18 \ - -e nomarchy-cmd-screensaver + -e nnomarchy-cmd-screensaver ;; *kitty*) hyprctl dispatch exec -- \ - kitty --class=org.nomarchy.screensaver \ + kitty --class=org.nnomarchy.screensaver \ --override font_size=18 \ --override window_padding_width=0 \ - -e nomarchy-cmd-screensaver + -e nnomarchy-cmd-screensaver ;; *) notify-send -u low "✋ Screensaver only runs in Alacritty, Ghostty, or Kitty" diff --git a/bin/apps/nomarchy-launch-tui b/bin/apps/nomarchy-launch-tui new file mode 100755 index 0000000..c162eb9 --- /dev/null +++ b/bin/apps/nomarchy-launch-tui @@ -0,0 +1,5 @@ +#!/bin/bash + +# Launch the TUI command passed in as an argument in the default terminal with an org.nnomarchy.COMMAND app id for styling. + +exec setsid uwsm-app -- xdg-terminal-exec --app-id=org.nnomarchy.$(basename $1) -e "$1" "${@:2}" diff --git a/bin/nomarchy-launch-walker b/bin/apps/nomarchy-launch-walker similarity index 100% rename from bin/nomarchy-launch-walker rename to bin/apps/nomarchy-launch-walker diff --git a/bin/nomarchy-launch-webapp b/bin/apps/nomarchy-launch-webapp similarity index 100% rename from bin/nomarchy-launch-webapp rename to bin/apps/nomarchy-launch-webapp diff --git a/bin/nomarchy-launch-wifi b/bin/apps/nomarchy-launch-wifi similarity index 52% rename from bin/nomarchy-launch-wifi rename to bin/apps/nomarchy-launch-wifi index fda2297..a2be9d3 100755 --- a/bin/nomarchy-launch-wifi +++ b/bin/apps/nomarchy-launch-wifi @@ -1,7 +1,7 @@ #!/bin/bash -# Launch the Nomarchy wifi controls (provided by the Impala TUI). +# Launch the Nnomarchy wifi controls (provided by the Impala TUI). # Attempts to unblock the wifi service first in case it should be been blocked. rfkill unblock wifi -nomarchy-launch-or-focus-tui impala +nnomarchy-launch-or-focus-tui impala diff --git a/bin/nomarchy-restart-app b/bin/apps/nomarchy-restart-app similarity index 64% rename from bin/nomarchy-restart-app rename to bin/apps/nomarchy-restart-app index 53ba2d1..bdeb81d 100755 --- a/bin/nomarchy-restart-app +++ b/bin/apps/nomarchy-restart-app @@ -1,7 +1,7 @@ #!/bin/bash # Restart an application by killing it and relaunching via uwsm. -# Usage: nomarchy-restart-app [application-args...] +# Usage: nnomarchy-restart-app [application-args...] pkill -x $1 setsid uwsm-app -- "$@" >/dev/null 2>&1 & diff --git a/bin/apps/nomarchy-restart-btop b/bin/apps/nomarchy-restart-btop new file mode 100755 index 0000000..d289983 --- /dev/null +++ b/bin/apps/nomarchy-restart-btop @@ -0,0 +1,5 @@ +#!/bin/bash + +# Reload btop configuration (used by the Nnomarchy theme switching). + +pkill -SIGUSR2 btop diff --git a/bin/nomarchy-restart-opencode b/bin/apps/nomarchy-restart-opencode similarity index 53% rename from bin/nomarchy-restart-opencode rename to bin/apps/nomarchy-restart-opencode index a674af2..896e911 100755 --- a/bin/nomarchy-restart-opencode +++ b/bin/apps/nomarchy-restart-opencode @@ -1,6 +1,6 @@ #!/bin/bash -# Reload opencode configuration (used by the Nomarchy theme switching). +# Reload opencode configuration (used by the Nnomarchy theme switching). if pgrep -x opencode >/dev/null; then killall -SIGUSR2 opencode diff --git a/bin/nomarchy-restart-terminal b/bin/apps/nomarchy-restart-terminal similarity index 100% rename from bin/nomarchy-restart-terminal rename to bin/apps/nomarchy-restart-terminal diff --git a/bin/nomarchy-restart-tmux b/bin/apps/nomarchy-restart-tmux similarity index 100% rename from bin/nomarchy-restart-tmux rename to bin/apps/nomarchy-restart-tmux diff --git a/bin/nomarchy-tui-install b/bin/apps/nomarchy-tui-install similarity index 100% rename from bin/nomarchy-tui-install rename to bin/apps/nomarchy-tui-install diff --git a/bin/nomarchy-tui-remove b/bin/apps/nomarchy-tui-remove similarity index 100% rename from bin/nomarchy-tui-remove rename to bin/apps/nomarchy-tui-remove diff --git a/bin/nomarchy-tui-remove-all b/bin/apps/nomarchy-tui-remove-all similarity index 94% rename from bin/nomarchy-tui-remove-all rename to bin/apps/nomarchy-tui-remove-all index 0ae4dde..351178f 100755 --- a/bin/nomarchy-tui-remove-all +++ b/bin/apps/nomarchy-tui-remove-all @@ -1,6 +1,6 @@ #!/bin/bash -# Remove all TUIs installed via nomarchy-tui-install. +# Remove all TUIs installed via nnomarchy-tui-install. # Identifies TUIs by their Exec pattern (xdg-terminal-exec --app-id=TUI.). set -e diff --git a/bin/nomarchy-voxtype-config b/bin/apps/nomarchy-voxtype-config similarity index 58% rename from bin/nomarchy-voxtype-config rename to bin/apps/nomarchy-voxtype-config index 27b641f..e1a6c02 100755 --- a/bin/nomarchy-voxtype-config +++ b/bin/apps/nomarchy-voxtype-config @@ -3,4 +3,4 @@ set -e # Used by Voxtype waybar module to open config on right click -exec nomarchy-launch-editor ~/.config/voxtype/config.toml +exec nnomarchy-launch-editor ~/.config/voxtype/config.toml diff --git a/bin/nomarchy-voxtype-install b/bin/apps/nomarchy-voxtype-install similarity index 73% rename from bin/nomarchy-voxtype-install rename to bin/apps/nomarchy-voxtype-install index 467b45b..3ba7078 100755 --- a/bin/nomarchy-voxtype-install +++ b/bin/apps/nomarchy-voxtype-install @@ -4,18 +4,18 @@ set -e # Install voxtype and configure it for use. if gum confirm "Install Voxtype + AI model (~150MB) to enable dictation?"; then - nomarchy-pkg-add wtype voxtype-bin + nnomarchy-pkg-add wtype voxtype-bin # Setup voxtype mkdir -p ~/.config/voxtype - cp $OMARCHY_PATH/default/voxtype/config.toml ~/.config/voxtype/ + cp ~/.config/nomarchy/default/voxtype/config.toml ~/.config/voxtype/ voxtype setup --download --no-post-install - if nomarchy-hw-vulkan; then + if nnomarchy-hw-vulkan; then voxtype setup gpu --enable || true fi voxtype setup systemd - nomarchy-restart-waybar + nnomarchy-restart-waybar notify-send " Voxtype Dictation Ready" "Press Super + Ctrl + X to toggle dictation.\nEdit ~/.config/voxtype/config.toml for options." -t 10000 fi diff --git a/bin/apps/nomarchy-voxtype-model b/bin/apps/nomarchy-voxtype-model new file mode 100755 index 0000000..9007849 --- /dev/null +++ b/bin/apps/nomarchy-voxtype-model @@ -0,0 +1,5 @@ +#!/bin/bash +set -e + +nnomarchy-launch-floating-terminal-with-presentation "voxtype setup model" +nnomarchy-restart-waybar diff --git a/bin/nomarchy-voxtype-remove b/bin/apps/nomarchy-voxtype-remove similarity index 83% rename from bin/nomarchy-voxtype-remove rename to bin/apps/nomarchy-voxtype-remove index 8eb49ca..0b4bc75 100755 --- a/bin/nomarchy-voxtype-remove +++ b/bin/apps/nomarchy-voxtype-remove @@ -3,7 +3,7 @@ set -e # Remove voxtype and its configurations. -if nomarchy-cmd-present voxtype; then +if nnomarchy-cmd-present voxtype; then echo "Uninstall Voxtype to remove dictation." # Remove services @@ -12,7 +12,7 @@ if nomarchy-cmd-present voxtype; then systemctl --user daemon-reload # Remove packages and configs - nomarchy-pkg-drop wtype voxtype-bin + nnomarchy-pkg-drop wtype voxtype-bin rm -rf ~/.config/voxtype rm -rf ~/.local/share/voxtype else diff --git a/bin/nomarchy-voxtype-status b/bin/apps/nomarchy-voxtype-status similarity index 82% rename from bin/nomarchy-voxtype-status rename to bin/apps/nomarchy-voxtype-status index 03d7e1d..06a0e9f 100755 --- a/bin/nomarchy-voxtype-status +++ b/bin/apps/nomarchy-voxtype-status @@ -1,6 +1,6 @@ #!/bin/bash -if nomarchy-cmd-present voxtype; then +if nnomarchy-cmd-present voxtype; then voxtype status --follow --extended --format json | while read -r line; do echo "$line" | jq -c '. + {alt: .class}' done diff --git a/bin/nomarchy-webapp-handler-hey b/bin/apps/nomarchy-webapp-handler-hey similarity index 83% rename from bin/nomarchy-webapp-handler-hey rename to bin/apps/nomarchy-webapp-handler-hey index f050d36..6ef9de6 100755 --- a/bin/nomarchy-webapp-handler-hey +++ b/bin/apps/nomarchy-webapp-handler-hey @@ -8,4 +8,4 @@ if [[ $url =~ ^mailto: ]]; then web_url="https://app.hey.com/messages/new?to=$email" fi -exec nomarchy-launch-webapp "$web_url" +exec nnomarchy-launch-webapp "$web_url" diff --git a/bin/nomarchy-webapp-handler-zoom b/bin/apps/nomarchy-webapp-handler-zoom similarity index 91% rename from bin/nomarchy-webapp-handler-zoom rename to bin/apps/nomarchy-webapp-handler-zoom index 82aafe9..1f0c661 100755 --- a/bin/nomarchy-webapp-handler-zoom +++ b/bin/apps/nomarchy-webapp-handler-zoom @@ -17,4 +17,4 @@ if [[ $url =~ ^zoom(mtg|us):// ]]; then fi fi -exec nomarchy-launch-webapp "$web_url" +exec nnomarchy-launch-webapp "$web_url" diff --git a/bin/nomarchy-webapp-install b/bin/apps/nomarchy-webapp-install similarity index 97% rename from bin/nomarchy-webapp-install rename to bin/apps/nomarchy-webapp-install index 1d3e7b8..ecc7e65 100755 --- a/bin/nomarchy-webapp-install +++ b/bin/apps/nomarchy-webapp-install @@ -60,7 +60,7 @@ else fi # Use custom exec if provided, otherwise default behavior -EXEC_COMMAND="${CUSTOM_EXEC:-nomarchy-launch-webapp $APP_URL}" +EXEC_COMMAND="${CUSTOM_EXEC:-nnomarchy-launch-webapp $APP_URL}" # Create application .desktop file DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop" diff --git a/bin/nomarchy-webapp-remove b/bin/apps/nomarchy-webapp-remove similarity index 92% rename from bin/nomarchy-webapp-remove rename to bin/apps/nomarchy-webapp-remove index b927abc..9e9fd6e 100755 --- a/bin/nomarchy-webapp-remove +++ b/bin/apps/nomarchy-webapp-remove @@ -8,7 +8,7 @@ DESKTOP_DIR="$HOME/.local/share/applications/" if (( $# == 0 )); then # Find all web apps while IFS= read -r -d '' file; do - if grep -q '^Exec=.*\(nomarchy-launch-webapp\|nomarchy-webapp-handler\).*' "$file"; then + if grep -q '^Exec=.*\(nnomarchy-launch-webapp\|nnomarchy-webapp-handler\).*' "$file"; then WEB_APPS+=("$(basename "${file%.desktop}")") fi done < <(find "$DESKTOP_DIR" -name '*.desktop' -print0) diff --git a/bin/nomarchy-webapp-remove-all b/bin/apps/nomarchy-webapp-remove-all similarity index 74% rename from bin/nomarchy-webapp-remove-all rename to bin/apps/nomarchy-webapp-remove-all index 80b5c50..711e11b 100755 --- a/bin/nomarchy-webapp-remove-all +++ b/bin/apps/nomarchy-webapp-remove-all @@ -1,7 +1,7 @@ #!/bin/bash -# Remove all web apps installed via nomarchy-webapp-install. -# Identifies web apps by their Exec pattern (nomarchy-launch-webapp or nomarchy-webapp-handler). +# Remove all web apps installed via nnomarchy-webapp-install. +# Identifies web apps by their Exec pattern (nnomarchy-launch-webapp or nnomarchy-webapp-handler). set -e @@ -12,7 +12,7 @@ echo "Scanning for web apps in $APP_DIR..." webapp_desktop_files=() while IFS= read -r -d '' file; do - if grep -q "Exec=nomarchy-launch-webapp\|Exec=nomarchy-webapp-handler" "$file" 2>/dev/null; then + if grep -q "Exec=nnomarchy-launch-webapp\|Exec=nnomarchy-webapp-handler" "$file" 2>/dev/null; then webapp_desktop_files+=("$file") fi done < <(find "$APP_DIR" -maxdepth 1 -name "*.desktop" -print0 2>/dev/null) diff --git a/bin/nomarchy-windows-vm b/bin/apps/nomarchy-windows-vm similarity index 88% rename from bin/nomarchy-windows-vm rename to bin/apps/nomarchy-windows-vm index 3548789..5566be2 100755 --- a/bin/nomarchy-windows-vm +++ b/bin/apps/nomarchy-windows-vm @@ -35,22 +35,22 @@ install_windows() { check_prerequisites - nomarchy-pkg-add freerdp openbsd-netcat gum + nnomarchy-pkg-add freerdp openbsd-netcat gum mkdir -p "$HOME/.windows" mkdir -p "$HOME/.config/windows" mkdir -p "$HOME/.local/share/applications/icons" # Install Windows VM icon and desktop file - if [[ -f $OMARCHY_PATH/applications/icons/windows.png ]]; then - cp "$OMARCHY_PATH/applications/icons/windows.png" "$HOME/.local/share/applications/icons/windows.png" + if [[ -f $NOMARCHY_PATH/applications/icons/windows.png ]]; then + cp "$NOMARCHY_PATH/applications/icons/windows.png" "$HOME/.local/share/applications/icons/windows.png" fi cat << EOF | tee "$HOME/.local/share/applications/windows-vm.desktop" > /dev/null [Desktop Entry] Name=Windows Comment=Start Windows VM via Docker and connect with RDP -Exec=uwsm app -- nomarchy-windows-vm launch +Exec=uwsm app -- nnomarchy-windows-vm launch Icon=$HOME/.local/share/applications/icons/windows.png Terminal=false Type=Application @@ -177,7 +177,7 @@ EOF services: windows: image: dockurr/windows - container_name: nomarchy-windows + container_name: nnomarchy-windows environment: VERSION: "11" RAM_SIZE: "$SELECTED_RAM" @@ -236,7 +236,7 @@ EOF echo "" echo "Once finished, launch 'Windows' via Super + Space" echo "" - echo "To stop the VM: nomarchy-windows-vm stop" + echo "To stop the VM: nnomarchy-windows-vm stop" echo "To change resources: ~/.config/windows/docker-compose.yml" echo "" } @@ -269,7 +269,7 @@ launch_windows() { # Check if config exists if [[ ! -f $COMPOSE_FILE ]]; then - echo "Windows VM not configured. Please run: nomarchy-windows-vm install" + echo "Windows VM not configured. Please run: nnomarchy-windows-vm install" exit 1 fi @@ -282,7 +282,7 @@ launch_windows() { [[ -z $WIN_PASS ]] && WIN_PASS="admin" # Check if container is already running - CONTAINER_STATUS=$(docker inspect --format='{{.State.Status}}' nomarchy-windows 2>/dev/null) + CONTAINER_STATUS=$(docker inspect --format='{{.State.Status}}' nnomarchy-windows 2>/dev/null) if [[ $CONTAINER_STATUS != "running" ]]; then echo "Starting Windows VM..." @@ -292,21 +292,21 @@ launch_windows() { if ! docker-compose -f "$COMPOSE_FILE" up -d 2>&1; then echo "❌ Failed to start Windows VM!" - echo " Try checking: nomarchy-windows-vm status" - echo " View logs: docker logs nomarchy-windows" + echo " Try checking: nnomarchy-windows-vm status" + echo " View logs: docker logs nnomarchy-windows" notify-send -u critical "Windows VM" "Failed to start Windows VM" exit 1 fi echo "Waiting for Windows VM to start..." WAIT_COUNT=0 - until docker logs nomarchy-windows 2>&1 | grep -qi "windows started successfully"; do + until docker logs nnomarchy-windows 2>&1 | grep -qi "windows started successfully"; do sleep 2 WAIT_COUNT=$((WAIT_COUNT + 1)) if (( WAIT_COUNT > 60 )); then # 2 minutes timeout echo "" echo "❌ Timeout: Windows VM failed to start within 2 minutes" - echo " Check logs: docker logs nomarchy-windows" + echo " Check logs: docker logs nnomarchy-windows" exit 1 fi done @@ -315,7 +315,7 @@ launch_windows() { # Build the connection info if [[ $KEEP_ALIVE = "true" ]]; then LIFECYCLE="VM will keep running after RDP closes -To stop: nomarchy-windows-vm stop" +To stop: nnomarchy-windows-vm stop" else LIFECYCLE="VM will auto-stop when RDP closes" fi @@ -342,7 +342,7 @@ To stop: nomarchy-windows-vm stop" # If scale is less than 130%, don't set any scale (use default 100) # Connect with RDP in fullscreen (auto-detects resolution) - xfreerdp3 /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 -grab-keyboard /sound /microphone /clipboard /cert:ignore /title:"Windows VM - Nomarchy" /dynamic-resolution /gfx:AVC444 /floatbar:sticky:off,default:visible,show:fullscreen $RDP_SCALE + xfreerdp3 /u:"$WIN_USER" /p:"$WIN_PASS" /v:127.0.0.1:3389 -grab-keyboard /sound /microphone /clipboard /cert:ignore /title:"Windows VM - Nnomarchy" /dynamic-resolution /gfx:AVC444 /floatbar:sticky:off,default:visible,show:fullscreen $RDP_SCALE # After RDP closes, stop the container unless --keep-alive was specified if [[ $KEEP_ALIVE = "false" ]]; then @@ -353,7 +353,7 @@ To stop: nomarchy-windows-vm stop" else echo "" echo "RDP session closed. Windows VM is still running." - echo "To stop it: nomarchy-windows-vm stop" + echo "To stop it: nnomarchy-windows-vm stop" fi } @@ -371,15 +371,15 @@ stop_windows() { status_windows() { if [[ ! -f $COMPOSE_FILE ]]; then echo "Windows VM not configured." - echo "To set up: nomarchy-windows-vm install" + echo "To set up: nnomarchy-windows-vm install" exit 1 fi - CONTAINER_STATUS=$(docker inspect --format='{{.State.Status}}' nomarchy-windows 2>/dev/null) + CONTAINER_STATUS=$(docker inspect --format='{{.State.Status}}' nnomarchy-windows 2>/dev/null) if [[ -z $CONTAINER_STATUS ]]; then echo "Windows VM container not found." - echo "To start: nomarchy-windows-vm launch" + echo "To start: nnomarchy-windows-vm launch" elif [[ $CONTAINER_STATUS = "running" ]]; then gum style \ --border normal \ @@ -391,16 +391,16 @@ status_windows() { "Web interface: http://127.0.0.1:8006" \ "RDP available: port 3389" \ "" \ - "To connect: nomarchy-windows-vm launch" \ - "To stop: nomarchy-windows-vm stop" + "To connect: nnomarchy-windows-vm launch" \ + "To stop: nnomarchy-windows-vm stop" else echo "Windows VM is stopped (status: $CONTAINER_STATUS)" - echo "To start: nomarchy-windows-vm launch" + echo "To start: nnomarchy-windows-vm launch" fi } show_usage() { - echo "Usage: nomarchy-windows-vm [command] [options]" + echo "Usage: nnomarchy-windows-vm [command] [options]" echo "" echo "Commands:" echo " install Install and configure Windows VM" @@ -413,10 +413,10 @@ show_usage() { echo " help Show this help message" echo "" echo "Examples:" - echo " nomarchy-windows-vm install # Set up Windows VM for first time" - echo " nomarchy-windows-vm launch # Connect to VM (auto-stop on exit)" - echo " nomarchy-windows-vm launch -k # Connect to VM (keep running)" - echo " nomarchy-windows-vm stop # Shut down the VM" + echo " nnomarchy-windows-vm install # Set up Windows VM for first time" + echo " nnomarchy-windows-vm launch # Connect to VM (auto-stop on exit)" + echo " nnomarchy-windows-vm launch -k # Connect to VM (keep running)" + echo " nnomarchy-windows-vm stop # Shut down the VM" } # Main command dispatcher diff --git a/bin/nomarchy-battery-capacity b/bin/hardware/nomarchy-battery-capacity similarity index 75% rename from bin/nomarchy-battery-capacity rename to bin/hardware/nomarchy-battery-capacity index 341daed..e777eb4 100755 --- a/bin/nomarchy-battery-capacity +++ b/bin/hardware/nomarchy-battery-capacity @@ -1,7 +1,7 @@ #!/bin/bash # Returns the battery full capacity in Wh (rounded to whole number). -# Used by nomarchy-battery-status for displaying battery capacity. +# Used by nnomarchy-battery-status for displaying battery capacity. battery_info=$(upower -i $(upower -e | grep BAT)) diff --git a/bin/nomarchy-battery-monitor b/bin/hardware/nomarchy-battery-monitor similarity index 82% rename from bin/nomarchy-battery-monitor rename to bin/hardware/nomarchy-battery-monitor index a6907ba..e835b1e 100755 --- a/bin/nomarchy-battery-monitor +++ b/bin/hardware/nomarchy-battery-monitor @@ -3,13 +3,13 @@ # Designed to be run by systemd timer every 30 seconds and alerts if battery is low BATTERY_THRESHOLD=10 -NOTIFICATION_FLAG="/run/user/$UID/nomarchy_battery_notified" -BATTERY_LEVEL=$(nomarchy-battery-remaining) +NOTIFICATION_FLAG="/run/user/$UID/nnomarchy_battery_notified" +BATTERY_LEVEL=$(nnomarchy-battery-remaining) BATTERY_STATE=$(upower -i $(upower -e | grep 'BAT') | grep -E "state" | awk '{print $2}') send_notification() { notify-send -u critical "󱐋 Time to recharge!" "Battery is down to ${1}%" -i battery-caution -t 30000 - nomarchy-hook battery-low "$1" + nnomarchy-hook battery-low "$1" } if [[ -n $BATTERY_LEVEL && $BATTERY_LEVEL =~ ^[0-9]+$ ]]; then diff --git a/bin/nomarchy-battery-present b/bin/hardware/nomarchy-battery-present similarity index 100% rename from bin/nomarchy-battery-present rename to bin/hardware/nomarchy-battery-present diff --git a/bin/nomarchy-battery-remaining b/bin/hardware/nomarchy-battery-remaining similarity index 100% rename from bin/nomarchy-battery-remaining rename to bin/hardware/nomarchy-battery-remaining diff --git a/bin/nomarchy-battery-remaining-time b/bin/hardware/nomarchy-battery-remaining-time similarity index 100% rename from bin/nomarchy-battery-remaining-time rename to bin/hardware/nomarchy-battery-remaining-time diff --git a/bin/nomarchy-battery-status b/bin/hardware/nomarchy-battery-status similarity index 89% rename from bin/nomarchy-battery-status rename to bin/hardware/nomarchy-battery-status index 3674bd3..9cd1d16 100755 --- a/bin/nomarchy-battery-status +++ b/bin/hardware/nomarchy-battery-status @@ -18,8 +18,8 @@ power_rate=$(echo "$battery_info" | awk '/energy-rate/ { }') state=$(echo "$battery_info" | awk '/state/ { print $2; exit }') -time_remaining=$(nomarchy-battery-remaining-time) -capacity=$(nomarchy-battery-capacity) +time_remaining=$(nnomarchy-battery-remaining-time) +capacity=$(nnomarchy-battery-capacity) if [[ $state == "charging" ]]; then echo "󰁹 Battery ${percentage}% · ${time_remaining} to full ·  ${power_rate}W / ${capacity}Wh" diff --git a/bin/nomarchy-brightness-display b/bin/hardware/nomarchy-brightness-display similarity index 80% rename from bin/nomarchy-brightness-display rename to bin/hardware/nomarchy-brightness-display index 1d04bfd..260d12a 100755 --- a/bin/nomarchy-brightness-display +++ b/bin/hardware/nomarchy-brightness-display @@ -1,7 +1,7 @@ #!/bin/bash # Adjust brightness on the most likely display device. -# Usage: nomarchy-brightness-display +# Usage: nnomarchy-brightness-display step="${1:-+5%}" @@ -18,4 +18,4 @@ done brightnessctl -d "$device" set "$step" >/dev/null # Use SwayOSD to display the new brightness setting. -nomarchy-swayosd-brightness "$(brightnessctl -d "$device" -m | cut -d',' -f4 | tr -d '%')" +nnomarchy-swayosd-brightness "$(brightnessctl -d "$device" -m | cut -d',' -f4 | tr -d '%')" diff --git a/bin/nomarchy-brightness-display-apple b/bin/hardware/nomarchy-brightness-display-apple similarity index 88% rename from bin/nomarchy-brightness-display-apple rename to bin/hardware/nomarchy-brightness-display-apple index f3a937d..0bfa7af 100755 --- a/bin/nomarchy-brightness-display-apple +++ b/bin/hardware/nomarchy-brightness-display-apple @@ -8,5 +8,5 @@ else device="$(sudo asdcontrol --detect /dev/usb/hiddev* | grep ^/dev/usb/hiddev | cut -d: -f1)" sudo asdcontrol "$device" -- "$1" >/dev/null value="$(sudo asdcontrol "$device" | awk -F= '/BRIGHTNESS=/{print $2+0}')" - nomarchy-swayosd-brightness "$(( value * 100 / 60000 ))" + nnomarchy-swayosd-brightness "$(( value * 100 / 60000 ))" fi diff --git a/bin/nomarchy-brightness-keyboard b/bin/hardware/nomarchy-brightness-keyboard similarity index 92% rename from bin/nomarchy-brightness-keyboard rename to bin/hardware/nomarchy-brightness-keyboard index ded5590..d89f232 100755 --- a/bin/nomarchy-brightness-keyboard +++ b/bin/hardware/nomarchy-brightness-keyboard @@ -1,7 +1,7 @@ #!/bin/bash # Adjust keyboard backlight brightness using available steps. -# Usage: nomarchy-brightness-keyboard +# Usage: nnomarchy-brightness-keyboard direction="${1:-up}" @@ -39,4 +39,4 @@ brightnessctl -d "$device" set "$new_brightness" >/dev/null # Use SwayOSD to display the new brightness setting. percent=$((new_brightness * 100 / max_brightness)) -nomarchy-swayosd-kbd-brightness "$percent" +nnomarchy-swayosd-kbd-brightness "$percent" diff --git a/bin/nomarchy-haptic-touchpad b/bin/hardware/nomarchy-haptic-touchpad similarity index 100% rename from bin/nomarchy-haptic-touchpad rename to bin/hardware/nomarchy-haptic-touchpad diff --git a/bin/nomarchy-hw-asus-rog b/bin/hardware/nomarchy-hw-asus-rog similarity index 100% rename from bin/nomarchy-hw-asus-rog rename to bin/hardware/nomarchy-hw-asus-rog diff --git a/bin/nomarchy-hw-framework16 b/bin/hardware/nomarchy-hw-framework16 similarity index 81% rename from bin/nomarchy-hw-framework16 rename to bin/hardware/nomarchy-hw-framework16 index 5907e75..2bf65d9 100755 --- a/bin/nomarchy-hw-framework16 +++ b/bin/hardware/nomarchy-hw-framework16 @@ -3,4 +3,4 @@ # Detect whether the computer is a Framework Laptop 16. [[ $(cat /sys/class/dmi/id/sys_vendor 2>/dev/null) == "Framework" ]] && - nomarchy-hw-match "Laptop 16" + nnomarchy-hw-match "Laptop 16" diff --git a/bin/nomarchy-hw-intel b/bin/hardware/nomarchy-hw-intel similarity index 100% rename from bin/nomarchy-hw-intel rename to bin/hardware/nomarchy-hw-intel diff --git a/bin/nomarchy-hw-intel-ptl b/bin/hardware/nomarchy-hw-intel-ptl similarity index 100% rename from bin/nomarchy-hw-intel-ptl rename to bin/hardware/nomarchy-hw-intel-ptl diff --git a/bin/nomarchy-hw-match b/bin/hardware/nomarchy-hw-match similarity index 80% rename from bin/nomarchy-hw-match rename to bin/hardware/nomarchy-hw-match index 9ba6466..78c4882 100755 --- a/bin/nomarchy-hw-match +++ b/bin/hardware/nomarchy-hw-match @@ -1,6 +1,6 @@ #!/bin/bash # Match against the computer's DMI product name (case-insensitive). -# Usage: nomarchy-hw-match "XPS" +# Usage: nnomarchy-hw-match "XPS" grep -qi "$1" /sys/class/dmi/id/product_name 2>/dev/null diff --git a/bin/nomarchy-hw-surface b/bin/hardware/nomarchy-hw-surface similarity index 83% rename from bin/nomarchy-hw-surface rename to bin/hardware/nomarchy-hw-surface index 4dbb185..57ab972 100755 --- a/bin/nomarchy-hw-surface +++ b/bin/hardware/nomarchy-hw-surface @@ -3,4 +3,4 @@ # Detect whether the computer is a Microsoft Surface device. [[ $(cat /sys/class/dmi/id/sys_vendor 2>/dev/null) == "Microsoft Corporation" ]] && - nomarchy-hw-match "Surface" + nnomarchy-hw-match "Surface" diff --git a/bin/nomarchy-hw-vulkan b/bin/hardware/nomarchy-hw-vulkan similarity index 100% rename from bin/nomarchy-hw-vulkan rename to bin/hardware/nomarchy-hw-vulkan diff --git a/bin/nomarchy-powerprofiles-list b/bin/hardware/nomarchy-powerprofiles-list similarity index 76% rename from bin/nomarchy-powerprofiles-list rename to bin/hardware/nomarchy-powerprofiles-list index 27083c3..aa5e5ea 100755 --- a/bin/nomarchy-powerprofiles-list +++ b/bin/hardware/nomarchy-powerprofiles-list @@ -1,7 +1,7 @@ #!/bin/bash # Returns a list of all the available power profiles on the system. -# Used by the Nomarchy Menu under Setup > Power Profile. +# Used by the Nnomarchy Menu under Setup > Power Profile. powerprofilesctl list | awk '/^\s*[* ]\s*[a-zA-Z0-9\-]+:$/ { gsub(/^[*[:space:]]+|:$/,""); print }' | diff --git a/bin/nomarchy-restart-makima b/bin/hardware/nomarchy-restart-makima similarity index 83% rename from bin/nomarchy-restart-makima rename to bin/hardware/nomarchy-restart-makima index f3f2e8c..585f3b5 100755 --- a/bin/nomarchy-restart-makima +++ b/bin/hardware/nomarchy-restart-makima @@ -1,5 +1,5 @@ #!/bin/bash -# Restart makima - key remapping service for remapping Copilot key to Nomarchy Menu +# Restart makima - key remapping service for remapping Copilot key to Nnomarchy Menu sudo systemctl restart makima diff --git a/bin/nomarchy-restart-trackpad b/bin/hardware/nomarchy-restart-trackpad similarity index 100% rename from bin/nomarchy-restart-trackpad rename to bin/hardware/nomarchy-restart-trackpad diff --git a/bin/nomarchy-toggle-hybrid-gpu b/bin/hardware/nomarchy-toggle-hybrid-gpu similarity index 91% rename from bin/nomarchy-toggle-hybrid-gpu rename to bin/hardware/nomarchy-toggle-hybrid-gpu index 31cb351..9c2159a 100755 --- a/bin/nomarchy-toggle-hybrid-gpu +++ b/bin/hardware/nomarchy-toggle-hybrid-gpu @@ -1,7 +1,7 @@ #!/usr/bin/env bash # Toggle dedicated vs integrated GPU mode via supergfxd (for hybrid gpu laptops, like Asus G14). -# Declarative enablement + Runtime mode switching for Nomarchy NixOS. +# Declarative enablement + Runtime mode switching for Nnomarchy NixOS. STATE_FILE="/etc/nixos/state.json" @@ -30,14 +30,14 @@ case "$gpu_mode" in if gum confirm "Switch to Hybrid mode (enables dGPU) and reboot?"; then supergfxctl -m Hybrid echo "Switching to Hybrid mode..." - nomarchy-system-reboot + nnomarchy-system-reboot fi ;; "Hybrid") if gum confirm "Switch to Integrated mode (disables dGPU) and reboot?"; then supergfxctl -m Integrated echo "Switching to Integrated mode..." - nomarchy-system-reboot + nnomarchy-system-reboot fi ;; *) diff --git a/bin/nomarchy-wifi-powersave b/bin/hardware/nomarchy-wifi-powersave similarity index 76% rename from bin/nomarchy-wifi-powersave rename to bin/hardware/nomarchy-wifi-powersave index 6ecc68c..f13be5c 100755 --- a/bin/nomarchy-wifi-powersave +++ b/bin/hardware/nomarchy-wifi-powersave @@ -1,14 +1,14 @@ #!/usr/bin/env bash # Toggles wifi power saving declaratively. -# Usage: nomarchy-wifi-powersave +# Usage: nnomarchy-wifi-powersave STATE_FILE="/etc/nixos/state.json" case "$1" in on) value="true" ;; off) value="false" ;; -*) echo "Usage: nomarchy-wifi-powersave "; exit 1 ;; +*) echo "Usage: nnomarchy-wifi-powersave "; exit 1 ;; esac sudo jq ".wifi.powersave = $value" "$STATE_FILE" > /tmp/state.json && sudo mv /tmp/state.json "$STATE_FILE" diff --git a/bin/nomarchy-hook b/bin/nomarchy-hook deleted file mode 100755 index 7f4db73..0000000 --- a/bin/nomarchy-hook +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/bash - -# Run a named hook, like post-update (available in ~/.config/nomarchy/hooks/post-update). - -set -e - -if (( $# < 1 )); then - echo "Usage: nomarchy-hook [name] [args...]" - exit 1 -fi - -HOOK=$1 -HOOK_PATH="$HOME/.config/nomarchy/hooks/$1" -shift - -if [[ -f $HOOK_PATH ]]; then - bash "$HOOK_PATH" "$@" -fi diff --git a/bin/nomarchy-launch-audio b/bin/nomarchy-launch-audio deleted file mode 100755 index 6df6e25..0000000 --- a/bin/nomarchy-launch-audio +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Launch the Nomarchy audio controls TUI (provided by wiremix). - -nomarchy-launch-or-focus-tui wiremix diff --git a/bin/nomarchy-launch-bluetooth b/bin/nomarchy-launch-bluetooth deleted file mode 100755 index cbe34b7..0000000 --- a/bin/nomarchy-launch-bluetooth +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -# Launch the Nomarchy bluetooth controls TUI (provided by bluetui). -# Also attempts to unblock bluetooth service if rfkill had blocked it. - -rfkill unblock bluetooth -exec nomarchy-launch-or-focus-tui bluetui diff --git a/bin/nomarchy-launch-floating-terminal-with-presentation b/bin/nomarchy-launch-floating-terminal-with-presentation deleted file mode 100755 index ef4acf6..0000000 --- a/bin/nomarchy-launch-floating-terminal-with-presentation +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -# Launch a floating terminal with the Nomarchy logo presentation, then execute the command passed in, and finally end with the nomarchy-show-done presentation. -# Used by actions such as Update System. - -cmd="$*" -exec setsid uwsm-app -- xdg-terminal-exec --app-id=org.nomarchy.terminal --title=Nomarchy -e bash -c "nomarchy-show-logo; $cmd; if (( \$? != 130 )); then nomarchy-show-done; fi" diff --git a/bin/nomarchy-launch-or-focus-tui b/bin/nomarchy-launch-or-focus-tui deleted file mode 100755 index a387124..0000000 --- a/bin/nomarchy-launch-or-focus-tui +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -# Launch or focus on a given TUI identified by the passed in as the command. -# Use by commands like nomarchy-launch-wifi to ensure there is only one wifi configuration screen open. - -APP_ID="org.nomarchy.$(basename "$1")" -LAUNCH_COMMAND="nomarchy-launch-tui $@" - -exec nomarchy-launch-or-focus "$APP_ID" "$LAUNCH_COMMAND" diff --git a/bin/nomarchy-launch-tui b/bin/nomarchy-launch-tui deleted file mode 100755 index 300ac68..0000000 --- a/bin/nomarchy-launch-tui +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Launch the TUI command passed in as an argument in the default terminal with an org.nomarchy.COMMAND app id for styling. - -exec setsid uwsm-app -- xdg-terminal-exec --app-id=org.nomarchy.$(basename $1) -e "$1" "${@:2}" diff --git a/bin/nomarchy-refresh-fastfetch b/bin/nomarchy-refresh-fastfetch deleted file mode 100755 index ac397bb..0000000 --- a/bin/nomarchy-refresh-fastfetch +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Overwrite the user config for fastfetch with the Nomarchy default. - -nomarchy-refresh-config fastfetch/config.jsonc diff --git a/bin/nomarchy-restart-btop b/bin/nomarchy-restart-btop deleted file mode 100755 index 288a800..0000000 --- a/bin/nomarchy-restart-btop +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Reload btop configuration (used by the Nomarchy theme switching). - -pkill -SIGUSR2 btop diff --git a/bin/nomarchy-restart-hyprctl b/bin/nomarchy-restart-hyprctl deleted file mode 100755 index 92c9487..0000000 --- a/bin/nomarchy-restart-hyprctl +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Reload hyprland configuration (used by the Nomarchy theme switching). - -hyprctl reload >/dev/null diff --git a/bin/nomarchy-restart-mako b/bin/nomarchy-restart-mako deleted file mode 100755 index a0633b1..0000000 --- a/bin/nomarchy-restart-mako +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash - -# Reload mako configuration (used by the Nomarchy theme switching). - -makoctl reload diff --git a/bin/nomarchy-restart-swayosd b/bin/nomarchy-restart-swayosd deleted file mode 100755 index d87a477..0000000 --- a/bin/nomarchy-restart-swayosd +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -nomarchy-restart-app swayosd-server diff --git a/bin/nomarchy-restart-waybar b/bin/nomarchy-restart-waybar deleted file mode 100755 index 832775c..0000000 --- a/bin/nomarchy-restart-waybar +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -nomarchy-restart-app waybar diff --git a/bin/nomarchy-setup-makima b/bin/nomarchy-setup-makima deleted file mode 100755 index b480463..0000000 --- a/bin/nomarchy-setup-makima +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/bash - -# Setup makima - key remapping service for remapping Copilot key to Nomarchy Menu - -CONFIG_FILE="$HOME/.config/makima/AT Translated Set 2 keyboard.toml" - -if [[ ! -f $CONFIG_FILE ]]; then - nomarchy-pkg-add makima-bin - - mkdir -p "$HOME/.config/makima" - cp "$OMARCHY_PATH/default/makima/AT Translated Set 2 keyboard.toml" "$CONFIG_FILE" - - sudo mkdir -p /etc/systemd/system/makima.service.d - sudo tee /etc/systemd/system/makima.service.d/override.conf >/dev/null </dev/null || true -fi diff --git a/bin/nomarchy-test-vm b/bin/nomarchy-test-vm deleted file mode 100755 index 32acb69..0000000 --- a/bin/nomarchy-test-vm +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env bash - -# Build and run the Nomarchy VM (installed environment) for testing. - -echo "Building Nomarchy VM (Installed Environment)..." -echo "Note: To test the INSTALLER, run 'nomarchy-test-installer' instead." -nix build .#nixosConfigurations.vm.config.system.build.vm - -if [ $? -eq 0 ]; then - echo "Success! Launching VM..." - ./result/bin/run-nomarchy-vm -else - echo "Error: VM build failed." - exit 1 -fi diff --git a/bin/nomarchy-theme-bg-install b/bin/nomarchy-theme-bg-install deleted file mode 100755 index db3e4b9..0000000 --- a/bin/nomarchy-theme-bg-install +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -CURRENT_THEME_NAME=$(cat "$HOME/.config/nomarchy/current/theme.name") -THEME_USER_BACKGROUNDS="$HOME/.config/nomarchy/backgrounds/$CURRENT_THEME_NAME" - -mkdir -p "$THEME_USER_BACKGROUNDS" -nautilus "$THEME_USER_BACKGROUNDS" diff --git a/bin/nomarchy-theme-install b/bin/nomarchy-theme-install deleted file mode 100755 index 0916391..0000000 --- a/bin/nomarchy-theme-install +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/bash - -# nomarchy-theme-install: Install a new theme from a git repo for Nomarchy -# Usage: nomarchy-theme-install - -if [[ -z $1 ]]; then - echo -e "\e[32mSee https://manuals.omamix.org/2/the-nomarchy-manual/90/extra-themes\n\e[0m" - REPO_URL=$(gum input --placeholder="Git repo URL for theme" --header="") -else - REPO_URL="$1" -fi - -if [[ -z $REPO_URL ]]; then - exit 1 -fi - -THEMES_DIR="$HOME/.config/nomarchy/themes" -THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^nomarchy-//; s/-theme$//') -THEME_PATH="$THEMES_DIR/$THEME_NAME" - -# Remove existing theme if present -if [[ -d $THEME_PATH ]]; then - rm -rf "$THEME_PATH" -fi - -# Clone the repo directly to ~/.config/nomarchy/themes -if ! git clone "$REPO_URL" "$THEME_PATH"; then - echo "Error: Failed to clone theme repo." - exit 1 -fi - -# Apply the new theme with nomarchy-theme-set -nomarchy-theme-set $THEME_NAME diff --git a/bin/nomarchy-theme-list b/bin/nomarchy-theme-list deleted file mode 100755 index 2e96dad..0000000 --- a/bin/nomarchy-theme-list +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/bash - -{ - find ~/.config/nomarchy/themes/ -mindepth 1 -maxdepth 1 \( -type d -o -type l \) -printf '%f\n' - find "$OMARCHY_PATH/themes/" -mindepth 1 -maxdepth 1 -type d -printf '%f\n' -} | sort -u | while read -r name; do - echo "$name" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g' -done diff --git a/bin/nomarchy-theme-refresh b/bin/nomarchy-theme-refresh deleted file mode 100755 index a3dc806..0000000 --- a/bin/nomarchy-theme-refresh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -# Refresh the current theme from its templates. - -THEME_NAME_PATH="$HOME/.config/nomarchy/current/theme.name" - -if [[ -f $THEME_NAME_PATH ]]; then - nomarchy-theme-set "$(cat $THEME_NAME_PATH)" -fi diff --git a/bin/nomarchy-theme-set-keyboard b/bin/nomarchy-theme-set-keyboard deleted file mode 100755 index 24b939e..0000000 --- a/bin/nomarchy-theme-set-keyboard +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash - -nomarchy-theme-set-keyboard-asus-rog -nomarchy-theme-set-keyboard-f16 diff --git a/bin/nomarchy-theme-set-keyboard-asus-rog b/bin/nomarchy-theme-set-keyboard-asus-rog deleted file mode 100755 index a705674..0000000 --- a/bin/nomarchy-theme-set-keyboard-asus-rog +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -ASUSCTL_THEME=~/.config/nomarchy/current/theme/keyboard.rgb - -if nomarchy-cmd-present asusctl; then - asusctl aura effect static -c $(sed 's/^#//' $ASUSCTL_THEME) -fi diff --git a/bin/nomarchy-voxtype-model b/bin/nomarchy-voxtype-model deleted file mode 100755 index bd2d5ce..0000000 --- a/bin/nomarchy-voxtype-model +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -set -e - -nomarchy-launch-floating-terminal-with-presentation "voxtype setup model" -nomarchy-restart-waybar diff --git a/bin/nomarchy-hibernation-available b/bin/system/nomarchy-hibernation-available similarity index 90% rename from bin/nomarchy-hibernation-available rename to bin/system/nomarchy-hibernation-available index 02740a5..6a73f58 100755 --- a/bin/nomarchy-hibernation-available +++ b/bin/system/nomarchy-hibernation-available @@ -11,7 +11,7 @@ SWAPSIZE=$(( 1024 * ${SWAPSIZE_KB:-0} )) HIBERNATION_IMAGE_SIZE=$(cat /sys/power/image_size) -if (( SWAPSIZE > HIBERNATION_IMAGE_SIZE )) && [[ -f /etc/mkinitcpio.conf.d/nomarchy_resume.conf ]]; then +if (( SWAPSIZE > HIBERNATION_IMAGE_SIZE )) && [[ -f /etc/mkinitcpio.conf.d/nnomarchy_resume.conf ]]; then exit 0 else exit 1 diff --git a/bin/nomarchy-hibernation-remove b/bin/system/nomarchy-hibernation-remove similarity index 96% rename from bin/nomarchy-hibernation-remove rename to bin/system/nomarchy-hibernation-remove index 3cb5127..0177de8 100755 --- a/bin/nomarchy-hibernation-remove +++ b/bin/system/nomarchy-hibernation-remove @@ -3,7 +3,7 @@ # Removes hibernation setup: disables swap, removes swapfile, removes fstab entry, # removes resume hook, and removes suspend-then-hibernate configuration. -MKINITCPIO_CONF="/etc/mkinitcpio.conf.d/nomarchy_resume.conf" +MKINITCPIO_CONF="/etc/mkinitcpio.conf.d/nnomarchy_resume.conf" # Check if hibernation is configured if [[ ! -f $MKINITCPIO_CONF ]] || ! grep -q "^HOOKS+=(resume)$" "$MKINITCPIO_CONF"; then diff --git a/bin/nomarchy-hibernation-setup b/bin/system/nomarchy-hibernation-setup similarity index 93% rename from bin/nomarchy-hibernation-setup rename to bin/system/nomarchy-hibernation-setup index 8ba69d7..03903a9 100755 --- a/bin/nomarchy-hibernation-setup +++ b/bin/system/nomarchy-hibernation-setup @@ -13,7 +13,7 @@ if ! command -v limine-mkinitcpio &>/dev/null; then exit 0 fi -MKINITCPIO_CONF="/etc/mkinitcpio.conf.d/nomarchy_resume.conf" +MKINITCPIO_CONF="/etc/mkinitcpio.conf.d/nnomarchy_resume.conf" # Check if hibernation is already configured if [[ -f $MKINITCPIO_CONF ]] && grep -q "^HOOKS+=(resume)$" "$MKINITCPIO_CONF"; then @@ -63,9 +63,6 @@ sudo mkdir -p /etc/mkinitcpio.conf.d echo "Adding resume hook to $MKINITCPIO_CONF" echo "HOOKS+=(resume)" | sudo tee "$MKINITCPIO_CONF" >/dev/null -# Ensure keyboard backlight doesn't prevent sleep -sudo cp -p "$OMARCHY_PATH/default/systemd/system-sleep/keyboard-backlight" /usr/lib/systemd/system-sleep/ - # Add resume= kernel parameters so the initramfs resume hook knows where to find the # hibernation image. Without these, resume happens late (after GPU drivers load) and fails. RESUME_DROP_IN="/etc/limine-entry-tool.d/resume.conf" @@ -98,5 +95,5 @@ sudo limine-update echo if [[ $1 != "--force" ]] && gum confirm "Reboot to enable hibernation?"; then - nomarchy-system-reboot + nnomarchy-system-reboot fi diff --git a/bin/nomarchy-pkg-add b/bin/system/nomarchy-pkg-add similarity index 92% rename from bin/nomarchy-pkg-add rename to bin/system/nomarchy-pkg-add index c1e0643..06b424d 100755 --- a/bin/nomarchy-pkg-add +++ b/bin/system/nomarchy-pkg-add @@ -3,7 +3,7 @@ PKG_NAME="$1" if [ -z "$PKG_NAME" ]; then - echo "Usage: nomarchy-pkg-add " + echo "Usage: nnomarchy-pkg-add " exit 1 fi diff --git a/bin/nomarchy-pkg-remove b/bin/system/nomarchy-pkg-remove similarity index 84% rename from bin/nomarchy-pkg-remove rename to bin/system/nomarchy-pkg-remove index 0909cc3..b0cd5ad 100755 --- a/bin/nomarchy-pkg-remove +++ b/bin/system/nomarchy-pkg-remove @@ -3,14 +3,14 @@ PKG_NAME="$1" if [ -z "$PKG_NAME" ]; then - echo "Usage: nomarchy-pkg-remove " + echo "Usage: nnomarchy-pkg-remove " exit 1 fi STATE_FILE="$HOME/.config/home-manager/user-packages.json" if [ ! -f "$STATE_FILE" ]; then - echo "No packages managed by nomarchy-pkg yet." + echo "No packages managed by nnomarchy-pkg yet." exit 0 fi diff --git a/bin/nomarchy-restart-bluetooth b/bin/system/nomarchy-restart-bluetooth similarity index 100% rename from bin/nomarchy-restart-bluetooth rename to bin/system/nomarchy-restart-bluetooth diff --git a/bin/nomarchy-restart-pipewire b/bin/system/nomarchy-restart-pipewire similarity index 100% rename from bin/nomarchy-restart-pipewire rename to bin/system/nomarchy-restart-pipewire diff --git a/bin/nomarchy-restart-wifi b/bin/system/nomarchy-restart-wifi similarity index 100% rename from bin/nomarchy-restart-wifi rename to bin/system/nomarchy-restart-wifi diff --git a/bin/nomarchy-restart-xcompose b/bin/system/nomarchy-restart-xcompose similarity index 64% rename from bin/nomarchy-restart-xcompose rename to bin/system/nomarchy-restart-xcompose index 6797259..7a8cd2d 100755 --- a/bin/nomarchy-restart-xcompose +++ b/bin/system/nomarchy-restart-xcompose @@ -2,4 +2,4 @@ # Restart the XCompose input method service (fcitx5) to apply new compose key settings. -nomarchy-restart-app fcitx5 --disable notificationitem +nnomarchy-restart-app fcitx5 --disable notificationitem diff --git a/bin/nomarchy-setup-dns b/bin/system/nomarchy-setup-dns similarity index 94% rename from bin/nomarchy-setup-dns rename to bin/system/nomarchy-setup-dns index b2eb7ac..7ef4b7a 100755 --- a/bin/nomarchy-setup-dns +++ b/bin/system/nomarchy-setup-dns @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# Configure DNS declaratively for Nomarchy NixOS. +# Configure DNS declaratively for Nnomarchy NixOS. # Hybrid: updates /etc/nixos/state.json and runs sys-update. STATE_FILE="/etc/nixos/state.json" diff --git a/bin/nomarchy-setup-fido2 b/bin/system/nomarchy-setup-fido2 similarity index 92% rename from bin/nomarchy-setup-fido2 rename to bin/system/nomarchy-setup-fido2 index 64c28b3..a0e443d 100755 --- a/bin/nomarchy-setup-fido2 +++ b/bin/system/nomarchy-setup-fido2 @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# Configure FIDO2 support declaratively for Nomarchy NixOS. +# Configure FIDO2 support declaratively for Nnomarchy NixOS. STATE_FILE="/etc/nixos/state.json" diff --git a/bin/nomarchy-setup-fingerprint b/bin/system/nomarchy-setup-fingerprint similarity index 92% rename from bin/nomarchy-setup-fingerprint rename to bin/system/nomarchy-setup-fingerprint index 92d1f46..241904d 100755 --- a/bin/nomarchy-setup-fingerprint +++ b/bin/system/nomarchy-setup-fingerprint @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# Configure fingerprint support declaratively for Nomarchy NixOS. +# Configure fingerprint support declaratively for Nnomarchy NixOS. STATE_FILE="/etc/nixos/state.json" diff --git a/bin/nomarchy-sudo-keepalive b/bin/system/nomarchy-sudo-keepalive similarity index 88% rename from bin/nomarchy-sudo-keepalive rename to bin/system/nomarchy-sudo-keepalive index 3b9da33..55fe8d1 100755 --- a/bin/nomarchy-sudo-keepalive +++ b/bin/system/nomarchy-sudo-keepalive @@ -2,7 +2,7 @@ # Prompt for sudo once and keep the credential alive in the background. # Source this script so the trap applies to the calling shell: -# source nomarchy-sudo-keepalive +# source nnomarchy-sudo-keepalive sudo -v while true; do sudo -n true; sleep 60; done 2>/dev/null & diff --git a/bin/nomarchy-sudo-passwordless-toggle b/bin/system/nomarchy-sudo-passwordless-toggle similarity index 88% rename from bin/nomarchy-sudo-passwordless-toggle rename to bin/system/nomarchy-sudo-passwordless-toggle index 1752453..92b7d0c 100755 --- a/bin/nomarchy-sudo-passwordless-toggle +++ b/bin/system/nomarchy-sudo-passwordless-toggle @@ -4,8 +4,8 @@ # First run: enables passwordless sudo for 15 minutes (after confirmation). # Second run: disables it early. -NOPASSWD_FILE="/etc/sudoers.d/99-nomarchy-nopasswd-${USER}" -TIMER_NAME="nomarchy-nopasswd-expire-${USER}" +NOPASSWD_FILE="/etc/sudoers.d/99-nnomarchy-nopasswd-${USER}" +TIMER_NAME="nnomarchy-nopasswd-expire-${USER}" # Safety: if the file exists but the timer doesn't (e.g. after reboot), clean up if sudo test -f "$NOPASSWD_FILE" && ! systemctl is-active "${TIMER_NAME}.timer" &>/dev/null; then @@ -36,7 +36,7 @@ else sudo systemd-run --on-active=15m --timer-property=AccuracySec=1s --unit="$TIMER_NAME" \ rm "$NOPASSWD_FILE" echo "Passwordless sudo has been ENABLED. It will automatically disable in 15 minutes." - echo "Note: if you restart before then, run nomarchy-sudo-passwordless-toggle again to disable it." + echo "Note: if you restart before then, run nnomarchy-sudo-passwordless-toggle again to disable it." else echo "Aborted. No changes made." fi diff --git a/bin/nomarchy-sudo-reset b/bin/system/nomarchy-sudo-reset similarity index 100% rename from bin/nomarchy-sudo-reset rename to bin/system/nomarchy-sudo-reset diff --git a/bin/nomarchy-system-logout b/bin/system/nomarchy-system-logout similarity index 91% rename from bin/nomarchy-system-logout rename to bin/system/nomarchy-system-logout index c881800..221e8bf 100755 --- a/bin/nomarchy-system-logout +++ b/bin/system/nomarchy-system-logout @@ -7,5 +7,5 @@ nohup bash -c "sleep 2 && uwsm stop" >/dev/null 2>&1 & # Now close all windows -nomarchy-hyprland-window-close-all +nnomarchy-hyprland-window-close-all sleep 1 # Allow apps like Chrome to shutdown correctly diff --git a/bin/nomarchy-system-reboot b/bin/system/nomarchy-system-reboot similarity index 86% rename from bin/nomarchy-system-reboot rename to bin/system/nomarchy-system-reboot index 4ff7c0d..a582ad9 100755 --- a/bin/nomarchy-system-reboot +++ b/bin/system/nomarchy-system-reboot @@ -3,11 +3,11 @@ # Reboot command that first closes all application windows (thus giving them a chance to save state). # This is particularly helpful for applications like Chromium that otherwise won't shutdown cleanly. -nomarchy-state clear re*-required +nnomarchy-state clear re*-required # Schedule the reboot to happen after closing windows (detached from terminal) nohup bash -c "sleep 2 && systemctl reboot --no-wall" >/dev/null 2>&1 & # Now close all windows -nomarchy-hyprland-window-close-all +nnomarchy-hyprland-window-close-all sleep 1 # Allow apps like Chrome to shutdown correctly diff --git a/bin/nomarchy-system-shutdown b/bin/system/nomarchy-system-shutdown similarity index 86% rename from bin/nomarchy-system-shutdown rename to bin/system/nomarchy-system-shutdown index 6c7442a..abccb3c 100755 --- a/bin/nomarchy-system-shutdown +++ b/bin/system/nomarchy-system-shutdown @@ -3,11 +3,11 @@ # Shutdown command that first closes all application windows (thus giving them a chance to save state). # This is particularly helpful for applications like Chromium that otherwise won't shutdown cleanly. -nomarchy-state clear re*-required +nnomarchy-state clear re*-required # Schedule the shutdown to happen after closing windows (detached from terminal) nohup bash -c "sleep 2 && systemctl poweroff --no-wall" >/dev/null 2>&1 & # Now close all windows -nomarchy-hyprland-window-close-all +nnomarchy-hyprland-window-close-all sleep 1 # Allow apps like Chrome to shutdown correctly diff --git a/bin/nomarchy-toggle-idle b/bin/system/nomarchy-toggle-idle similarity index 94% rename from bin/nomarchy-toggle-idle rename to bin/system/nomarchy-toggle-idle index 699737d..be093e3 100755 --- a/bin/nomarchy-toggle-idle +++ b/bin/system/nomarchy-toggle-idle @@ -9,7 +9,7 @@ mkdir -p "$(dirname "$STATE_FILE")" # Initialize if doesn't exist [[ ! -f $STATE_FILE ]] && echo "{}" > "$STATE_FILE" -if [[ $NOMARCHY_TOGGLE_IDLE == "false" ]]; then +if [[ $NNOMARCHY_TOGGLE_IDLE == "false" ]]; then NEW_VALUE="true" setsid hypridle >/dev/null 2>&1 & notify-send -u low "󱫖 Now locking computer when idle" diff --git a/bin/nomarchy-toggle-suspend b/bin/system/nomarchy-toggle-suspend similarity index 94% rename from bin/nomarchy-toggle-suspend rename to bin/system/nomarchy-toggle-suspend index c5888b9..8f33c48 100755 --- a/bin/nomarchy-toggle-suspend +++ b/bin/system/nomarchy-toggle-suspend @@ -10,7 +10,7 @@ mkdir -p "$(dirname "$STATE_FILE")" [[ ! -f $STATE_FILE ]] && echo "{}" > "$STATE_FILE" # Get current state from env or state file -if [[ $NOMARCHY_TOGGLE_SUSPEND == "false" ]]; then +if [[ $NNOMARCHY_TOGGLE_SUSPEND == "false" ]]; then NEW_VALUE="true" notify-send -u low "󰒲 Suspend now available in system menu" else diff --git a/bin/nomarchy-tz-select b/bin/system/nomarchy-tz-select similarity index 85% rename from bin/nomarchy-tz-select rename to bin/system/nomarchy-tz-select index b5ff3b6..dcfb881 100755 --- a/bin/nomarchy-tz-select +++ b/bin/system/nomarchy-tz-select @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# Select system timezone declaratively for Nomarchy NixOS. +# Select system timezone declaratively for Nnomarchy NixOS. STATE_FILE="/etc/nixos/state.json" diff --git a/bin/nomarchy-update b/bin/system/nomarchy-update similarity index 83% rename from bin/nomarchy-update rename to bin/system/nomarchy-update index 81e7e55..eb39c0f 100755 --- a/bin/nomarchy-update +++ b/bin/system/nomarchy-update @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# Nomarchy Update Script +# Nnomarchy Update Script # 1. Updates the flake inputs in /etc/nixos # 2. Applies system-wide NixOS changes # 3. Applies user-level Home Manager changes @@ -10,11 +10,11 @@ set -e REPO_DIR="/etc/nixos" if [ ! -d "$REPO_DIR" ]; then - echo "Error: $REPO_DIR not found. Are you running on a Nomarchy system?" + echo "Error: $REPO_DIR not found. Are you running on a Nnomarchy system?" exit 1 fi -echo "--- Starting Nomarchy Update ---" +echo "--- Starting Nnomarchy Update ---" # 1. Update Flake Lock echo "Updating flake inputs..." @@ -35,4 +35,4 @@ if [ -d "$REPO_DIR/.git" ]; then sudo git -C "$REPO_DIR" commit -m "chore: update system (flake.lock)" || echo "No lockfile changes to commit." fi -echo "--- Nomarchy Update Complete ---" +echo "--- Nnomarchy Update Complete ---" diff --git a/bin/nomarchy-update-time b/bin/system/nomarchy-update-time similarity index 100% rename from bin/nomarchy-update-time rename to bin/system/nomarchy-update-time diff --git a/bin/nomarchy-build-iso b/bin/utils/nomarchy-build-iso similarity index 78% rename from bin/nomarchy-build-iso rename to bin/utils/nomarchy-build-iso index e411312..3aa452a 100755 --- a/bin/nomarchy-build-iso +++ b/bin/utils/nomarchy-build-iso @@ -1,8 +1,8 @@ #!/usr/bin/env bash -# Build the Nomarchy Installer ISO declaratively using the flake. +# Build the Nnomarchy Installer ISO declaratively using the flake. -echo "Building Nomarchy Installer ISO..." +echo "Building Nnomarchy Installer ISO..." # The output will be a symlink named 'result' in the current directory nix build .#nixosConfigurations.installerIso.config.system.build.isoImage diff --git a/bin/nomarchy-cmd-audio-switch b/bin/utils/nomarchy-cmd-audio-switch similarity index 100% rename from bin/nomarchy-cmd-audio-switch rename to bin/utils/nomarchy-cmd-audio-switch diff --git a/bin/nomarchy-cmd-present b/bin/utils/nomarchy-cmd-present similarity index 100% rename from bin/nomarchy-cmd-present rename to bin/utils/nomarchy-cmd-present diff --git a/bin/nomarchy-cmd-screenrecord b/bin/utils/nomarchy-cmd-screenrecord similarity index 96% rename from bin/nomarchy-cmd-screenrecord rename to bin/utils/nomarchy-cmd-screenrecord index 7c84c70..2faff2c 100755 --- a/bin/nomarchy-cmd-screenrecord +++ b/bin/utils/nomarchy-cmd-screenrecord @@ -1,12 +1,12 @@ #!/bin/bash # Start and stop a screenrecording, which will be saved to ~/Videos by default. -# Alternative location can be set via OMARCHY_SCREENRECORD_DIR or XDG_VIDEOS_DIR ENVs. +# Alternative location can be set via NOMARCHY_SCREENRECORD_DIR or XDG_VIDEOS_DIR ENVs. # Resolution is capped to 4K for monitors above 4K, native otherwise. # Override via --resolution= (e.g. --resolution=1920x1080, --resolution=0x0 for native). [[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs -OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}" +OUTPUT_DIR="${NOMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}" if [[ ! -d $OUTPUT_DIR ]]; then notify-send "Screen recording directory does not exist: $OUTPUT_DIR" -u critical -t 3000 @@ -19,7 +19,7 @@ WEBCAM="false" WEBCAM_DEVICE="" RESOLUTION="" STOP_RECORDING="false" -RECORDING_FILE="/tmp/nomarchy-screenrecord-filename" +RECORDING_FILE="/tmp/nnomarchy-screenrecord-filename" for arg in "$@"; do case "$arg" in diff --git a/bin/nomarchy-cmd-screensaver b/bin/utils/nomarchy-cmd-screensaver similarity index 75% rename from bin/nomarchy-cmd-screensaver rename to bin/utils/nomarchy-cmd-screensaver index 81eee58..954e780 100755 --- a/bin/nomarchy-cmd-screensaver +++ b/bin/utils/nomarchy-cmd-screensaver @@ -1,15 +1,15 @@ #!/bin/bash -# Run the Nomarchy screensaver using random effects from TTE. +# Run the Nnomarchy screensaver using random effects from TTE. screensaver_in_focus() { - hyprctl activewindow -j | jq -e '.class == "org.nomarchy.screensaver"' >/dev/null 2>&1 + hyprctl activewindow -j | jq -e '.class == "org.nnomarchy.screensaver"' >/dev/null 2>&1 } exit_screensaver() { hyprctl keyword cursor:invisible false &>/dev/null || true pkill -x tte 2>/dev/null - pkill -f org.nomarchy.screensaver 2>/dev/null + pkill -f org.nnomarchy.screensaver 2>/dev/null exit 0 } @@ -23,7 +23,7 @@ hyprctl keyword cursor:invisible true &>/dev/null tty=$(tty 2>/dev/null) while true; do - tte -i ~/.config/nomarchy/branding/screensaver.txt \ + tte -i ~/.config/nnomarchy/branding/screensaver.txt \ --frame-rate 120 --canvas-width 0 --canvas-height 0 --reuse-canvas --anchor-canvas c --anchor-text c\ --random-effect --exclude-effects dev_worm \ --no-eol --no-restore-cursor & diff --git a/bin/nomarchy-cmd-screenshot b/bin/utils/nomarchy-cmd-screenshot similarity index 92% rename from bin/nomarchy-cmd-screenshot rename to bin/utils/nomarchy-cmd-screenshot index 16060e9..2252925 100755 --- a/bin/nomarchy-cmd-screenshot +++ b/bin/utils/nomarchy-cmd-screenshot @@ -1,11 +1,11 @@ #!/bin/bash # Take a screenshot of the whole screen, a specific window, or a user-drawn region. -# Saves to ~/Pictures by default, but that can be changed via OMARCHY_SCREENSHOT_DIR or XDG_PICTURES_DIR ENVs. -# Editor defaults to Satty but can be changed via --editor= or OMARCHY_SCREENSHOT_EDITOR env +# Saves to ~/Pictures by default, but that can be changed via NOMARCHY_SCREENSHOT_DIR or XDG_PICTURES_DIR ENVs. +# Editor defaults to Satty but can be changed via --editor= or NOMARCHY_SCREENSHOT_EDITOR env [[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs -OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-${XDG_PICTURES_DIR:-$HOME/Pictures}}" +OUTPUT_DIR="${NOMARCHY_SCREENSHOT_DIR:-${XDG_PICTURES_DIR:-$HOME/Pictures}}" if [[ ! -d $OUTPUT_DIR ]]; then notify-send "Screenshot directory does not exist: $OUTPUT_DIR" -u critical -t 3000 @@ -14,7 +14,7 @@ fi pkill slurp && exit 0 -SCREENSHOT_EDITOR="${OMARCHY_SCREENSHOT_EDITOR:-satty}" +SCREENSHOT_EDITOR="${NOMARCHY_SCREENSHOT_EDITOR:-satty}" # Parse --editor flag from any position ARGS=() diff --git a/bin/nomarchy-cmd-share b/bin/utils/nomarchy-cmd-share similarity index 95% rename from bin/nomarchy-cmd-share rename to bin/utils/nomarchy-cmd-share index c830930..14ea466 100755 --- a/bin/nomarchy-cmd-share +++ b/bin/utils/nomarchy-cmd-share @@ -3,7 +3,7 @@ # Share clipboard, file, or folder using LocalSend. Bound to Super + Ctrl + S by default. if (($# == 0)); then - echo "Usage: nomarchy-cmd-share [clipboard|file|folder]" + echo "Usage: nnomarchy-cmd-share [clipboard|file|folder]" exit 1 fi diff --git a/bin/nomarchy-cmd-terminal-cwd b/bin/utils/nomarchy-cmd-terminal-cwd similarity index 100% rename from bin/nomarchy-cmd-terminal-cwd rename to bin/utils/nomarchy-cmd-terminal-cwd diff --git a/bin/nomarchy-config-direct-boot b/bin/utils/nomarchy-config-direct-boot similarity index 80% rename from bin/nomarchy-config-direct-boot rename to bin/utils/nomarchy-config-direct-boot index 92c8f5c..8fb4ec7 100755 --- a/bin/nomarchy-config-direct-boot +++ b/bin/utils/nomarchy-config-direct-boot @@ -1,6 +1,6 @@ #!/bin/bash -# Add an EFI boot entry for the Nomarchy UKI, allowing the system to boot directly +# Add an EFI boot entry for the Nnomarchy UKI, allowing the system to boot directly # without a bootloader like Limine. Requires UEFI firmware and a built UKI. if [[ ! -d /sys/firmware/efi ]]; then @@ -23,10 +23,10 @@ if cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "Apple"; then exit 1 fi -uki_file=$(find /boot/EFI/Linux/ -name "nomarchy*.efi" -printf "%f\n" 2>/dev/null | head -1) +uki_file=$(find /boot/EFI/Linux/ -name "nnomarchy*.efi" -printf "%f\n" 2>/dev/null | head -1) if [[ -z $uki_file ]]; then - echo "Error: No Nomarchy UKI found in /boot/EFI/Linux/" >&2 + echo "Error: No Nnomarchy UKI found in /boot/EFI/Linux/" >&2 exit 1 fi @@ -40,6 +40,6 @@ if gum confirm "Setup direct boot (so snapshot booting must be done via bios)?"; sudo efibootmgr --create \ --disk "$disk" \ --part "$part" \ - --label "Nomarchy" \ + --label "Nnomarchy" \ --loader "\\EFI\\Linux\\$uki_file" fi diff --git a/bin/nomarchy-drive-info b/bin/utils/nomarchy-drive-info similarity index 93% rename from bin/nomarchy-drive-info rename to bin/utils/nomarchy-drive-info index 35c4056..a9af97a 100755 --- a/bin/nomarchy-drive-info +++ b/bin/utils/nomarchy-drive-info @@ -1,9 +1,9 @@ #!/bin/bash -# Returns drive information about a given volumne, like /dev/nvme0, which is used by nomarchy-drive-select. +# Returns drive information about a given volumne, like /dev/nvme0, which is used by nnomarchy-drive-select. if (($# == 0)); then - echo "Usage: nomarchy-drive-info [/dev/drive]" + echo "Usage: nnomarchy-drive-info [/dev/drive]" exit 1 else drive="$1" diff --git a/bin/nomarchy-drive-select b/bin/utils/nomarchy-drive-select similarity index 80% rename from bin/nomarchy-drive-select rename to bin/utils/nomarchy-drive-select index 20ac635..21abca9 100755 --- a/bin/nomarchy-drive-select +++ b/bin/utils/nomarchy-drive-select @@ -1,6 +1,6 @@ #!/bin/bash -# Select a drive from a list with info that includes space and brand. Used by nomarchy-drive-set-password. +# Select a drive from a list with info that includes space and brand. Used by nnomarchy-drive-set-password. if (($# == 0)); then drives=$(lsblk -dpno NAME | grep -E '/dev/(sd|hd|vd|nvme|mmcblk|xv)') @@ -11,7 +11,7 @@ fi drives_with_info="" while IFS= read -r drive; do [[ -n $drive ]] || continue - drives_with_info+="$(nomarchy-drive-info "$drive")"$'\n' + drives_with_info+="$(nnomarchy-drive-info "$drive")"$'\n' done <<<"$drives" selected_drive="$(printf "%s" "$drives_with_info" | gum choose --header "Select drive")" || exit 1 diff --git a/bin/nomarchy-drive-set-password b/bin/utils/nomarchy-drive-set-password similarity index 89% rename from bin/nomarchy-drive-set-password rename to bin/utils/nomarchy-drive-set-password index 350d6a5..68f2f63 100755 --- a/bin/nomarchy-drive-set-password +++ b/bin/utils/nomarchy-drive-set-password @@ -8,7 +8,7 @@ if [[ -n $encrypted_drives ]]; then if (( $(wc -l <</dev/null; then fi # Avoid running screensaver when locked -pkill -f org.nomarchy.screensaver +pkill -f org.nnomarchy.screensaver diff --git a/bin/nomarchy-menu b/bin/utils/nomarchy-menu similarity index 58% rename from bin/nomarchy-menu rename to bin/utils/nomarchy-menu index b590d4e..a804896 100755 --- a/bin/nomarchy-menu +++ b/bin/utils/nomarchy-menu @@ -1,8 +1,8 @@ #!/bin/bash -# Launch the Nomarchy Menu or takes a parameter to jump straight to a submenu. +# Launch the Nnomarchy Menu or takes a parameter to jump straight to a submenu. -export PATH="$HOME/.local/share/nomarchy/bin:$PATH" +export PATH="$HOME/.local/share/nnomarchy/bin:$PATH" # Set to true when going directly to a submenu, so we can exit directly BACK_TO_EXIT=false @@ -42,30 +42,30 @@ menu() { fi fi - echo -e "$options" | nomarchy-launch-walker --dmenu --width 295 --minheight 1 --maxheight 630 -p "$prompt…" "${args[@]}" 2>/dev/null + echo -e "$options" | nnomarchy-launch-walker --dmenu --width 295 --minheight 1 --maxheight 630 -p "$prompt…" "${args[@]}" 2>/dev/null } terminal() { - xdg-terminal-exec --app-id=org.nomarchy.terminal "$@" + xdg-terminal-exec --app-id=org.nnomarchy.terminal "$@" } present_terminal() { - nomarchy-launch-floating-terminal-with-presentation $1 + nnomarchy-launch-floating-terminal-with-presentation $1 } open_in_editor() { notify-send -u low "Editing config file" "$1" - nomarchy-launch-editor "$1" + nnomarchy-launch-editor "$1" } show_learn_menu() { - case $(menu "Learn" " Keybindings\n Nomarchy\n Hyprland\n󰣇 Arch\n Neovim\n󱆃 Bash") in - *Keybindings*) nomarchy-menu-keybindings ;; - *Nomarchy*) nomarchy-launch-webapp "https://learn.omacom.io/2/the-nomarchy-manual" ;; - *Hyprland*) nomarchy-launch-webapp "https://wiki.hypr.land/" ;; - *Arch*) nomarchy-launch-webapp "https://wiki.archlinux.org/title/Main_page" ;; - *Bash*) nomarchy-launch-webapp "https://devhints.io/bash" ;; - *Neovim*) nomarchy-launch-webapp "https://www.lazyvim.org/keymaps" ;; + case $(menu "Learn" " Keybindings\n Nnomarchy\n Hyprland\n󰣇 Arch\n Neovim\n󱆃 Bash") in + *Keybindings*) nnomarchy-menu-keybindings ;; + *Nnomarchy*) nnomarchy-launch-webapp "https://learn.omacom.io/2/the-nnomarchy-manual" ;; + *Hyprland*) nnomarchy-launch-webapp "https://wiki.hypr.land/" ;; + *Arch*) nnomarchy-launch-webapp "https://wiki.archlinux.org/title/Main_page" ;; + *Bash*) nnomarchy-launch-webapp "https://devhints.io/bash" ;; + *Neovim*) nnomarchy-launch-webapp "https://www.lazyvim.org/keymaps" ;; *) show_main_menu ;; esac } @@ -82,7 +82,7 @@ show_trigger_menu() { show_capture_menu() { case $(menu "Capture" " Screenshot\n Screenrecord\n󰃉 Color") in - *Screenshot*) nomarchy-cmd-screenshot ;; + *Screenshot*) nnomarchy-cmd-screenshot ;; *Screenrecord*) show_screenrecord_menu ;; *Color*) pkill hyprpicker || hyprpicker -a ;; *) back_to show_trigger_menu ;; @@ -117,18 +117,18 @@ show_webcam_select_menu() { } show_screenrecord_menu() { - nomarchy-cmd-screenrecord --stop-recording && exit 0 + nnomarchy-cmd-screenrecord --stop-recording && exit 0 case $(menu "Screenrecord" " With no audio\n With desktop audio\n With desktop + microphone audio\n With desktop + microphone audio + webcam") in - *"With no audio") nomarchy-cmd-screenrecord ;; - *"With desktop audio") nomarchy-cmd-screenrecord --with-desktop-audio ;; - *"With desktop + microphone audio") nomarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio ;; + *"With no audio") nnomarchy-cmd-screenrecord ;; + *"With desktop audio") nnomarchy-cmd-screenrecord --with-desktop-audio ;; + *"With desktop + microphone audio") nnomarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio ;; *"With desktop + microphone audio + webcam") local device=$(show_webcam_select_menu) || { back_to show_capture_menu return } - nomarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio --with-webcam --webcam-device="$device" + nnomarchy-cmd-screenrecord --with-desktop-audio --with-microphone-audio --with-webcam --webcam-device="$device" ;; *) back_to show_capture_menu ;; esac @@ -136,9 +136,9 @@ show_screenrecord_menu() { show_share_menu() { case $(menu "Share" " Clipboard\n File \n Folder") in - *Clipboard*) nomarchy-cmd-share clipboard ;; - *File*) terminal bash -c "nomarchy-cmd-share file" ;; - *Folder*) terminal bash -c "nomarchy-cmd-share folder" ;; + *Clipboard*) nnomarchy-cmd-share clipboard ;; + *File*) terminal bash -c "nnomarchy-cmd-share file" ;; + *Folder*) terminal bash -c "nnomarchy-cmd-share folder" ;; *) back_to show_trigger_menu ;; esac } @@ -146,21 +146,21 @@ show_share_menu() { show_toggle_menu() { case $(menu "Toggle" "󱄄 Screensaver\n󰔎 Nightlight\n󱫖 Idle Lock\n󰍜 Top Bar\n󱂬 Workspace Layout\n Window Gaps\n 1-Window Ratio\n󰍹 Display Scaling") in - *Screensaver*) nomarchy-toggle-screensaver ;; - *Nightlight*) nomarchy-toggle-nightlight ;; - *Idle*) nomarchy-toggle-idle ;; - *Bar*) nomarchy-toggle-waybar ;; - *Layout*) nomarchy-hyprland-workspace-layout-toggle ;; - *Ratio*) nomarchy-hyprland-window-single-square-aspect-toggle ;; - *Gaps*) nomarchy-hyprland-window-gaps-toggle ;; - *Scaling*) nomarchy-hyprland-monitor-scaling-cycle ;; + *Screensaver*) nnomarchy-toggle-screensaver ;; + *Nightlight*) nnomarchy-toggle-nightlight ;; + *Idle*) nnomarchy-toggle-idle ;; + *Bar*) nnomarchy-toggle-waybar ;; + *Layout*) nnomarchy-hyprland-workspace-layout-toggle ;; + *Ratio*) nnomarchy-hyprland-window-single-square-aspect-toggle ;; + *Gaps*) nnomarchy-hyprland-window-gaps-toggle ;; + *Scaling*) nnomarchy-hyprland-monitor-scaling-cycle ;; *) back_to show_trigger_menu ;; esac } show_hardware_menu() { case $(menu "Toggle" " Hybrid GPU") in - *"Hybrid GPU"*) present_terminal nomarchy-toggle-hybrid-gpu ;; + *"Hybrid GPU"*) present_terminal nnomarchy-toggle-hybrid-gpu ;; *) show_trigger_menu ;; esac } @@ -171,26 +171,26 @@ show_style_menu() { *Font*) show_font_menu ;; *Background*) show_background_menu ;; *Hyprland*) open_in_editor ~/.config/hypr/looknfeel.conf ;; - *Screensaver*) open_in_editor ~/.config/nomarchy/branding/screensaver.txt ;; - *About*) open_in_editor ~/.config/nomarchy/branding/about.txt ;; + *Screensaver*) open_in_editor ~/.config/nnomarchy/branding/screensaver.txt ;; + *About*) open_in_editor ~/.config/nnomarchy/branding/about.txt ;; *) show_main_menu ;; esac } show_theme_menu() { - nomarchy-launch-walker -m menus:nomarchythemes --width 800 --minheight 400 + nnomarchy-launch-walker -m menus:nnomarchythemes --width 800 --minheight 400 } show_background_menu() { - nomarchy-launch-walker -m menus:nomarchyBackgroundSelector --width 800 --minheight 400 + nnomarchy-launch-walker -m menus:nnomarchyBackgroundSelector --width 800 --minheight 400 } show_font_menu() { - theme=$(menu "Font" "$(nomarchy-font-list)" "--width 350" "$(nomarchy-font-current)") + theme=$(menu "Font" "$(nnomarchy-font-list)" "--width 350" "$(nnomarchy-font-current)") if [[ $theme == "CNCLD" || -z $theme ]]; then back_to show_style_menu else - nomarchy-font-set "$theme" + nnomarchy-font-set "$theme" fi } @@ -202,16 +202,16 @@ show_setup_menu() { options="$options\n󰱔 DNS\n Security\n Config" case $(menu "Setup" "$options") in - *Audio*) nomarchy-launch-audio ;; - *Wifi*) nomarchy-launch-wifi ;; - *Bluetooth*) nomarchy-launch-bluetooth ;; + *Audio*) nnomarchy-launch-audio ;; + *Wifi*) nnomarchy-launch-wifi ;; + *Bluetooth*) nnomarchy-launch-bluetooth ;; *Power*) show_setup_power_menu ;; *System*) show_setup_system_menu ;; *Monitors*) open_in_editor ~/.config/hypr/monitors.conf ;; *Keybindings*) open_in_editor ~/.config/hypr/bindings.conf ;; *Input*) open_in_editor ~/.config/hypr/input.conf ;; - *Key\ Remapping*) nomarchy-setup-makima && open_in_editor "$HOME/.config/makima/AT Translated Set 2 keyboard.toml" && nomarchy-restart-makima ;; - *DNS*) present_terminal nomarchy-setup-dns ;; + *Key\ Remapping*) nnomarchy-setup-makima && open_in_editor "$HOME/.config/makima/AT Translated Set 2 keyboard.toml" && nnomarchy-restart-makima ;; + *DNS*) present_terminal nnomarchy-setup-dns ;; *Security*) show_setup_security_menu ;; *Config*) show_setup_config_menu ;; *) show_main_menu ;; @@ -219,7 +219,7 @@ show_setup_menu() { } show_setup_power_menu() { - profile=$(menu "Power Profile" "$(nomarchy-powerprofiles-list)" "" "$(powerprofilesctl get)") + profile=$(menu "Power Profile" "$(nnomarchy-powerprofiles-list)" "" "$(powerprofilesctl get)") if [[ $profile == "CNCLD" || -z $profile ]]; then back_to show_setup_menu @@ -230,8 +230,8 @@ show_setup_power_menu() { show_setup_security_menu() { case $(menu "Setup" "󰈷 Fingerprint\n Fido2") in - *Fingerprint*) present_terminal nomarchy-setup-fingerprint ;; - *Fido2*) present_terminal nomarchy-setup-fido2 ;; + *Fingerprint*) present_terminal nnomarchy-setup-fingerprint ;; + *Fido2*) present_terminal nnomarchy-setup-fido2 ;; *) show_setup_menu ;; esac } @@ -240,13 +240,13 @@ show_setup_config_menu() { case $(menu "Setup" " Defaults\n Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n Swayosd\n󰌧 Walker\n󰍜 Waybar\n󰞅 XCompose") in *Defaults*) open_in_editor ~/.config/uwsm/default ;; *Hyprland*) open_in_editor ~/.config/hypr/hyprland.conf ;; - *Hypridle*) open_in_editor ~/.config/hypr/hypridle.conf && nomarchy-restart-hypridle ;; + *Hypridle*) open_in_editor ~/.config/hypr/hypridle.conf && nnomarchy-restart-hypridle ;; *Hyprlock*) open_in_editor ~/.config/hypr/hyprlock.conf ;; - *Hyprsunset*) open_in_editor ~/.config/hypr/hyprsunset.conf && nomarchy-restart-hyprsunset ;; - *Swayosd*) open_in_editor ~/.config/swayosd/config.toml && nomarchy-restart-swayosd ;; - *Walker*) open_in_editor ~/.config/walker/config.toml && nomarchy-restart-walker ;; - *Waybar*) open_in_editor ~/.config/waybar/config.jsonc && nomarchy-restart-waybar ;; - *XCompose*) open_in_editor ~/.XCompose && nomarchy-restart-xcompose ;; + *Hyprsunset*) open_in_editor ~/.config/hypr/hyprsunset.conf && nnomarchy-restart-hyprsunset ;; + *Swayosd*) open_in_editor ~/.config/swayosd/config.toml && nnomarchy-restart-swayosd ;; + *Walker*) open_in_editor ~/.config/walker/config.toml && nnomarchy-restart-walker ;; + *Waybar*) open_in_editor ~/.config/waybar/config.jsonc && nnomarchy-restart-waybar ;; + *XCompose*) open_in_editor ~/.XCompose && nnomarchy-restart-xcompose ;; *) show_setup_menu ;; esac } @@ -254,22 +254,22 @@ show_setup_config_menu() { show_setup_system_menu() { local options="" - if [[ $NOMARCHY_TOGGLE_SUSPEND == "false" ]]; then + if [[ $NNOMARCHY_TOGGLE_SUSPEND == "false" ]]; then options="$options󰒲 Enable Suspend" else options="$options󰒲 Disable Suspend" fi - if nomarchy-hibernation-available; then + if nnomarchy-hibernation-available; then options="$options\n󰤁 Disable Hibernate" else options="$options\n󰤁 Enable Hibernate" fi case $(menu "System" "$options") in - *Suspend*) nomarchy-toggle-suspend ;; - *"Enable Hibernate"*) present_terminal nomarchy-hibernation-setup ;; - *"Disable Hibernate"*) present_terminal nomarchy-hibernation-remove ;; + *Suspend*) nnomarchy-toggle-suspend ;; + *"Enable Hibernate"*) present_terminal nnomarchy-hibernation-setup ;; + *"Disable Hibernate"*) present_terminal nnomarchy-hibernation-remove ;; *) show_setup_menu ;; esac } @@ -277,25 +277,25 @@ show_setup_system_menu() { show_update_menu() { - case $(menu "Update" "  Nomarchy\n󰸌 Extra Themes\n Process\n󰇅 Hardware\n Firmware\n Password\n Timezone\n Time") in - *Nomarchy*) present_terminal nomarchy-update ;; - *Themes*) present_terminal nomarchy-theme-update ;; + case $(menu "Update" "  Nnomarchy\n󰸌 Extra Themes\n Process\n󰇅 Hardware\n Firmware\n Password\n Timezone\n Time") in + *Nnomarchy*) present_terminal nnomarchy-update ;; + *Themes*) present_terminal nnomarchy-theme-update ;; *Process*) show_update_process_menu ;; *Hardware*) show_update_hardware_menu ;; - *Firmware*) present_terminal nomarchy-update-firmware ;; - *Timezone*) present_terminal nomarchy-tz-select ;; - *Time*) present_terminal nomarchy-update-time ;; + *Firmware*) present_terminal nnomarchy-update-firmware ;; + *Timezone*) present_terminal nnomarchy-tz-select ;; + *Time*) present_terminal nnomarchy-update-time ;; *Password*) show_update_password_menu ;; *) show_main_menu ;; esac } show_update_process_menu() { case $(menu "Restart" " Hypridle\n Hyprsunset\n Swayosd\n󰌧 Walker\n󰍜 Waybar") in - *Hypridle*) nomarchy-restart-hypridle ;; - *Hyprsunset*) nomarchy-restart-hyprsunset ;; - *Swayosd*) nomarchy-restart-swayosd ;; - *Walker*) nomarchy-restart-walker ;; - *Waybar*) nomarchy-restart-waybar ;; + *Hypridle*) nnomarchy-restart-hypridle ;; + *Hyprsunset*) nnomarchy-restart-hyprsunset ;; + *Swayosd*) nnomarchy-restart-swayosd ;; + *Walker*) nnomarchy-restart-walker ;; + *Waybar*) nnomarchy-restart-waybar ;; *) show_update_menu ;; esac } @@ -304,39 +304,39 @@ show_update_process_menu() { show_update_hardware_menu() { case $(menu "Restart" " Audio\n󱚾 Wi-Fi\n󰂯 Bluetooth") in - *Audio*) present_terminal nomarchy-restart-pipewire ;; - *Wi-Fi*) present_terminal nomarchy-restart-wifi ;; - *Bluetooth*) present_terminal nomarchy-restart-bluetooth ;; + *Audio*) present_terminal nnomarchy-restart-pipewire ;; + *Wi-Fi*) present_terminal nnomarchy-restart-wifi ;; + *Bluetooth*) present_terminal nnomarchy-restart-bluetooth ;; *) show_update_menu ;; esac } show_update_password_menu() { case $(menu "Update Password" " Drive Encryption\n User") in - *Drive*) present_terminal nomarchy-drive-set-password ;; + *Drive*) present_terminal nnomarchy-drive-set-password ;; *User*) present_terminal passwd ;; *) show_update_menu ;; esac } show_about() { - nomarchy-launch-about + nnomarchy-launch-about } show_system_menu() { local options="󱄄 Screensaver\n Lock" - [[ $NOMARCHY_TOGGLE_SUSPEND != "false" ]] && options="$options\n󰒲 Suspend" - nomarchy-hibernation-available && options="$options\n󰤁 Hibernate" + [[ $NNOMARCHY_TOGGLE_SUSPEND != "false" ]] && options="$options\n󰒲 Suspend" + nnomarchy-hibernation-available && options="$options\n󰤁 Hibernate" options="$options\n󰍃 Logout\n󰜉 Restart\n󰐥 Shutdown" case $(menu "System" "$options") in - *Screensaver*) nomarchy-launch-screensaver force ;; - *Lock*) nomarchy-lock-screen ;; + *Screensaver*) nnomarchy-launch-screensaver force ;; + *Lock*) nnomarchy-lock-screen ;; *Suspend*) systemctl suspend ;; *Hibernate*) systemctl hibernate ;; - *Logout*) nomarchy-system-logout ;; - *Restart*) nomarchy-system-reboot ;; - *Shutdown*) nomarchy-system-shutdown ;; + *Logout*) nnomarchy-system-logout ;; + *Restart*) nnomarchy-system-reboot ;; + *Shutdown*) nnomarchy-system-shutdown ;; *) back_to show_main_menu ;; esac } @@ -366,7 +366,7 @@ go_to_menu() { } # Allow user extensions and overrides -USER_EXTENSIONS="$HOME/.config/nomarchy/extensions/menu.sh" +USER_EXTENSIONS="$HOME/.config/nnomarchy/extensions/menu.sh" [[ -f $USER_EXTENSIONS ]] && source "$USER_EXTENSIONS" toggle_existing_menu diff --git a/bin/nomarchy-menu-keybindings b/bin/utils/nomarchy-menu-keybindings similarity index 98% rename from bin/nomarchy-menu-keybindings rename to bin/utils/nomarchy-menu-keybindings index dc9564a..ffaaaab 100755 --- a/bin/nomarchy-menu-keybindings +++ b/bin/utils/nomarchy-menu-keybindings @@ -79,7 +79,7 @@ parse_keycodes() { # Fetch dynamic keybindings from Hyprland # # Also do some pre-processing: -# - Remove standard Nomarchy bin path prefix +# - Remove standard Nnomarchy bin path prefix # - Remove uwsm prefix # - Map numeric modifier key mask to a textual rendition # - Output comma-separated values that the parser can understand @@ -88,7 +88,7 @@ dynamic_bindings() { jq -r '.[] | {modmask, key, keycode, description, dispatcher, arg} | "\(.modmask),\(.key)@\(.keycode),\(.description),\(.dispatcher),\(.arg)"' | sed -r \ -e 's/null//' \ - -e 's,~/.local/share/nomarchy/bin/,,' \ + -e 's,~/.local/share/nnomarchy/bin/,,' \ -e 's,uwsm app -- ,,' \ -e 's,uwsm-app -- ,,' \ -e 's/@0//' \ @@ -172,7 +172,7 @@ prioritize_entries() { if (match(line, /Browser/) && !match(line, /Browser[[:space:]]*\(/) && !match(line, /SUPER SHIFT.*\+.*B.*→.*Browser/)) prio = 2 if (match(line, /File manager/) && !match(line, /File manager \(cwd\)/)) prio = 3 if (match(line, /Launch apps/)) prio = 4 - if (match(line, /Nomarchy menu/)) prio = 5 + if (match(line, /Nnomarchy menu/)) prio = 5 if (match(line, /System menu/)) prio = 6 if (match(line, /Theme menu/)) prio = 7 if (match(line, /Full screen/)) prio = 8 diff --git a/bin/nomarchy-notification-dismiss b/bin/utils/nomarchy-notification-dismiss similarity index 88% rename from bin/nomarchy-notification-dismiss rename to bin/utils/nomarchy-notification-dismiss index 4d2e11f..ce77889 100755 --- a/bin/nomarchy-notification-dismiss +++ b/bin/utils/nomarchy-notification-dismiss @@ -3,7 +3,7 @@ # Dismiss a mako notification on the basis of its summary. Used by the first-run notifications to dismiss them after clicking for action. if (($# == 0)); then - echo "Usage: nomarchy-notification-dismiss " + echo "Usage: nnomarchy-notification-dismiss " exit 1 fi diff --git a/bin/nomarchy-npx-install b/bin/utils/nomarchy-npx-install similarity index 66% rename from bin/nomarchy-npx-install rename to bin/utils/nomarchy-npx-install index 729e9a4..39da9e2 100755 --- a/bin/nomarchy-npx-install +++ b/bin/utils/nomarchy-npx-install @@ -1,13 +1,13 @@ #!/bin/bash # Install an npx wrapper for a given npm package. -# Usage: nomarchy-npx-install [command-name] +# Usage: nnomarchy-npx-install [command-name] # # If command-name is omitted, it defaults to the package name. -# Example: nomarchy-npx-install opencode-ai opencode +# Example: nnomarchy-npx-install opencode-ai opencode if [[ -z $1 ]]; then - echo "Usage: nomarchy-npx-install [command-name]" + echo "Usage: nnomarchy-npx-install [command-name]" exit 1 fi diff --git a/bin/nomarchy-on-boot b/bin/utils/nomarchy-on-boot similarity index 92% rename from bin/nomarchy-on-boot rename to bin/utils/nomarchy-on-boot index 67d09c2..6284e5b 100755 --- a/bin/nomarchy-on-boot +++ b/bin/utils/nomarchy-on-boot @@ -1,21 +1,21 @@ #!/usr/bin/env bash -# Nomarchy on-boot initialization script. +# Nnomarchy on-boot initialization script. # Automatically detects the hardware, applies necessary runtime tweaks, # and sets the correct screen resolution/scaling. # 1. Automatically configure optimal screen resolution and scaling -nomarchy-hyprland-monitor-scaling-cycle >/dev/null 2>&1 +nnomarchy-hyprland-monitor-scaling-cycle >/dev/null 2>&1 # 2. Hardware-specific runtime tweaks -if nomarchy-hw-match "Laptop 16"; then +if nnomarchy-hw-match "Laptop 16"; then # Framework 16 specific tweaks - nomarchy-theme-set-keyboard-f16 >/dev/null 2>&1 + nnomarchy-theme-set-keyboard-f16 >/dev/null 2>&1 fi -if nomarchy-hw-asus-rog; then +if nnomarchy-hw-asus-rog; then # Asus ROG specific tweaks - nomarchy-theme-set-keyboard-asus-rog >/dev/null 2>&1 + nnomarchy-theme-set-keyboard-asus-rog >/dev/null 2>&1 fi # 3. Declarative hardware configuration check (nixos-hardware) diff --git a/bin/utils/nomarchy-refresh-fastfetch b/bin/utils/nomarchy-refresh-fastfetch new file mode 100755 index 0000000..dffd5f4 --- /dev/null +++ b/bin/utils/nomarchy-refresh-fastfetch @@ -0,0 +1,5 @@ +#!/bin/bash + +# Overwrite the user config for fastfetch with the Nnomarchy default. + +nnomarchy-refresh-config fastfetch/config.jsonc diff --git a/bin/nomarchy-snapshot b/bin/utils/nomarchy-snapshot similarity index 68% rename from bin/nomarchy-snapshot rename to bin/utils/nomarchy-snapshot index 1f1c63f..33376cd 100755 --- a/bin/nomarchy-snapshot +++ b/bin/utils/nomarchy-snapshot @@ -3,20 +3,20 @@ set -e COMMAND="$1" -OMARCHY_PATH=${OMARCHY_PATH:-$HOME/.local/share/nomarchy} +NOMARCHY_PATH=${NOMARCHY_PATH:-$HOME/.local/share/nnomarchy} if [[ -z $COMMAND ]]; then - echo "Usage: nomarchy-snapshot " >&2 + echo "Usage: nnomarchy-snapshot " >&2 exit 1 fi if ! command -v snapper &>/dev/null; then - exit 127 # nomarchy-update can use this to just ignore if snapper is not available + exit 127 # nnomarchy-update can use this to just ignore if snapper is not available fi case "$COMMAND" in create) - DESC="$(nomarchy-version)" + DESC="$(nnomarchy-version)" echo -e "\e[32mCreate system snapshot\e[0m" diff --git a/bin/nomarchy-state b/bin/utils/nomarchy-state similarity index 54% rename from bin/nomarchy-state rename to bin/utils/nomarchy-state index 855676f..cff87cf 100755 --- a/bin/nomarchy-state +++ b/bin/utils/nomarchy-state @@ -1,24 +1,24 @@ #!/bin/bash -# Manage persistent runtime state files for Nomarchy indicators. -# Usage: nomarchy-state +# Manage persistent runtime state files for Nnomarchy indicators. +# Usage: nnomarchy-state # Used to track whether things like reboot, restart, etc are required. # DO NOT use this for configuration toggles (suspend, screensaver, etc). -# Use declarative Nomarchy NixOS home-manager options for those instead. +# Use declarative Nnomarchy NixOS home-manager options for those instead. -STATE_DIR="$HOME/.local/state/nomarchy" +STATE_DIR="$HOME/.local/state/nnomarchy" mkdir -p "$STATE_DIR" COMMAND="$1" STATE_NAME="$2" if [[ -z $COMMAND ]]; then - echo "Usage: nomarchy-state " + echo "Usage: nnomarchy-state " exit 1 fi if [[ -z $STATE_NAME ]]; then - echo "Usage: nomarchy-state $COMMAND " + echo "Usage: nnomarchy-state $COMMAND " exit 1 fi diff --git a/bin/nomarchy-sync b/bin/utils/nomarchy-sync similarity index 86% rename from bin/nomarchy-sync rename to bin/utils/nomarchy-sync index 5b0dca8..415332b 100755 --- a/bin/nomarchy-sync +++ b/bin/utils/nomarchy-sync @@ -1,11 +1,11 @@ #!/usr/bin/env bash -# nomarchy-sync: Automate backing up and restoring Nomarchy declarative configurations and dynamic state. +# nnomarchy-sync: Automate backing up and restoring Nnomarchy declarative configurations and dynamic state. set -e if [[ -z $1 ]]; then - echo "Usage: nomarchy-sync [repo-url]" + echo "Usage: nnomarchy-sync [repo-url]" echo " push: Backup current state to the configured repository." echo " pull: Restore state from the configured repository and apply updates." exit 1 @@ -18,7 +18,7 @@ STATE_DIR="$HOME/.config/home-manager" CONFIG_DIR="/etc/nixos" # Identify the target repo directory (we use a local dot-folder to stage things) -SYNC_DIR="$HOME/.local/share/nomarchy-sync" +SYNC_DIR="$HOME/.local/share/nnomarchy-sync" mkdir -p "$SYNC_DIR" cd "$SYNC_DIR" @@ -26,14 +26,14 @@ cd "$SYNC_DIR" if [ ! -d ".git" ]; then if [[ -z $REPO_URL ]]; then echo "Error: No Git repository configured. Please provide a repo-url for the first run:" - echo "Example: nomarchy-sync push git@github.com:username/nomarchy-backup.git" + echo "Example: nnomarchy-sync push git@github.com:username/nnomarchy-backup.git" exit 1 fi git init git remote add origin "$REPO_URL" # Basic configuration for automated commits - git config user.name "Nomarchy Sync" - git config user.email "sync@nomarchy.local" + git config user.name "Nnomarchy Sync" + git config user.email "sync@nnomarchy.local" fi if [[ "$COMMAND" == "push" ]]; then diff --git a/bin/nomarchy-test-installer b/bin/utils/nomarchy-test-installer similarity index 59% rename from bin/nomarchy-test-installer rename to bin/utils/nomarchy-test-installer index dbec788..29997b7 100755 --- a/bin/nomarchy-test-installer +++ b/bin/utils/nomarchy-test-installer @@ -1,13 +1,13 @@ #!/usr/bin/env bash -# Build and run the Nomarchy Installer VM for testing. +# Build and run the Nnomarchy Installer VM for testing. -echo "Building Nomarchy Installer VM..." +echo "Building Nnomarchy Installer VM..." nix build .#nixosConfigurations.installerVm.config.system.build.vm if [ $? -eq 0 ]; then echo "Success! Launching Installer VM..." - ./result/bin/run-nomarchy-installer-vm + ./result/bin/run-nnomarchy-installer-vm else echo "Error: VM build failed." exit 1 diff --git a/bin/utils/nomarchy-test-vm b/bin/utils/nomarchy-test-vm new file mode 100755 index 0000000..c57c281 --- /dev/null +++ b/bin/utils/nomarchy-test-vm @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +# Build and run the Nnomarchy VM (installed environment) for testing. + +echo "Building Nnomarchy VM (Installed Environment)..." +echo "Note: To test the INSTALLER, run 'nnomarchy-test-installer' instead." +nix build .#nixosConfigurations.vm.config.system.build.vm + +if [ $? -eq 0 ]; then + echo "Success! Launching VM..." + ./result/bin/run-nnomarchy-vm +else + echo "Error: VM build failed." + exit 1 +fi diff --git a/bin/nomarchy-toggle-notification-silencing b/bin/utils/nomarchy-toggle-notification-silencing similarity index 100% rename from bin/nomarchy-toggle-notification-silencing rename to bin/utils/nomarchy-toggle-notification-silencing diff --git a/bin/nomarchy-welcome b/bin/utils/nomarchy-welcome similarity index 71% rename from bin/nomarchy-welcome rename to bin/utils/nomarchy-welcome index 74b5bd9..f1e66d3 100755 --- a/bin/nomarchy-welcome +++ b/bin/utils/nomarchy-welcome @@ -1,6 +1,6 @@ #!/usr/bin/env bash -FLAG_FILE="$HOME/.config/nomarchy/.first-run-done" +FLAG_FILE="$HOME/.config/nnomarchy/.first-run-done" if [ -f "$FLAG_FILE" ]; then exit 0 @@ -16,28 +16,28 @@ fi gum style \ --foreground 212 --border-foreground 212 --border double \ --align center --width 50 --margin "1 2" --padding "2 4" \ - "Nomarchy" "The NixOS Distribution with Omarchy Flavour" + "Nnomarchy" "The NixOS Distribution with Nomarchy Flavour" echo "Welcome! Let's personalize your new system." echo "" # 1. Select initial theme echo "Step 1: Choose your starting theme" -nomarchy-theme-selector +nnomarchy-theme-selector # 2. Select initial font echo "Step 2: Choose your preferred font" -nomarchy-font-selector +nnomarchy-font-selector # 3. Setup Local Repo (Crucial for env-update to work) echo "" -echo "Nomarchy relies on a local git repository for declarative updates." +echo "Nnomarchy relies on a local git repository for declarative updates." if [ ! -d "/etc/nixos/.git" ]; then echo "Warning: /etc/nixos is not a git repository. Declarative updates might fail." if gum confirm "Would you like to initialize /etc/nixos as a git repo?"; then sudo git -C /etc/nixos init sudo git -C /etc/nixos add . - sudo git -C /etc/nixos commit -m "Initial Nomarchy System Commit" + sudo git -C /etc/nixos commit -m "Initial Nnomarchy System Commit" fi fi @@ -45,5 +45,5 @@ fi mkdir -p "$(dirname "$FLAG_FILE")" touch "$FLAG_FILE" -gum style --foreground 82 "Setup complete! Enjoy your Nomarchy experience." +gum style --foreground 82 "Setup complete! Enjoy your Nnomarchy experience." sleep 3 diff --git a/bin/nomarchy-hyprland-active-window-transparency-toggle b/bin/wm/nomarchy-hyprland-active-window-transparency-toggle similarity index 100% rename from bin/nomarchy-hyprland-active-window-transparency-toggle rename to bin/wm/nomarchy-hyprland-active-window-transparency-toggle diff --git a/bin/nomarchy-hyprland-monitor-scaling-cycle b/bin/wm/nomarchy-hyprland-monitor-scaling-cycle similarity index 100% rename from bin/nomarchy-hyprland-monitor-scaling-cycle rename to bin/wm/nomarchy-hyprland-monitor-scaling-cycle diff --git a/bin/nomarchy-hyprland-window-close-all b/bin/wm/nomarchy-hyprland-window-close-all similarity index 100% rename from bin/nomarchy-hyprland-window-close-all rename to bin/wm/nomarchy-hyprland-window-close-all diff --git a/bin/nomarchy-hyprland-window-gaps-toggle b/bin/wm/nomarchy-hyprland-window-gaps-toggle similarity index 100% rename from bin/nomarchy-hyprland-window-gaps-toggle rename to bin/wm/nomarchy-hyprland-window-gaps-toggle diff --git a/bin/nomarchy-hyprland-window-pop b/bin/wm/nomarchy-hyprland-window-pop similarity index 96% rename from bin/nomarchy-hyprland-window-pop rename to bin/wm/nomarchy-hyprland-window-pop index ef8126e..c34eb3a 100755 --- a/bin/nomarchy-hyprland-window-pop +++ b/bin/wm/nomarchy-hyprland-window-pop @@ -3,7 +3,7 @@ # Toggle to pop-out a tile to stay fixed on a display basis. # Usage: -# nomarchy-hyprland-window-pop [width height [x y]] +# nnomarchy-hyprland-window-pop [width height [x y]] # # Arguments: # width Optional. Width of the floating window. Default: 1300 diff --git a/bin/nomarchy-hyprland-window-single-square-aspect-toggle b/bin/wm/nomarchy-hyprland-window-single-square-aspect-toggle similarity index 100% rename from bin/nomarchy-hyprland-window-single-square-aspect-toggle rename to bin/wm/nomarchy-hyprland-window-single-square-aspect-toggle diff --git a/bin/nomarchy-hyprland-workspace-layout-toggle b/bin/wm/nomarchy-hyprland-workspace-layout-toggle similarity index 100% rename from bin/nomarchy-hyprland-workspace-layout-toggle rename to bin/wm/nomarchy-hyprland-workspace-layout-toggle diff --git a/bin/wm/nomarchy-restart-hyprctl b/bin/wm/nomarchy-restart-hyprctl new file mode 100755 index 0000000..d20fcdb --- /dev/null +++ b/bin/wm/nomarchy-restart-hyprctl @@ -0,0 +1,5 @@ +#!/bin/bash + +# Reload hyprland configuration (used by the Nnomarchy theme switching). + +hyprctl reload >/dev/null diff --git a/bin/nomarchy-restart-hypridle b/bin/wm/nomarchy-restart-hypridle similarity index 73% rename from bin/nomarchy-restart-hypridle rename to bin/wm/nomarchy-restart-hypridle index e970cef..fff690f 100755 --- a/bin/nomarchy-restart-hypridle +++ b/bin/wm/nomarchy-restart-hypridle @@ -2,4 +2,4 @@ # Restart the hypridle service (used for idle detection and auto-lock). -nomarchy-restart-app hypridle +nnomarchy-restart-app hypridle diff --git a/bin/nomarchy-restart-hyprsunset b/bin/wm/nomarchy-restart-hyprsunset similarity index 73% rename from bin/nomarchy-restart-hyprsunset rename to bin/wm/nomarchy-restart-hyprsunset index 8defc66..5abcbf7 100755 --- a/bin/nomarchy-restart-hyprsunset +++ b/bin/wm/nomarchy-restart-hyprsunset @@ -2,4 +2,4 @@ # Restart the hyprsunset service (used for blue light filtering/night light). -nomarchy-restart-app hyprsunset +nnomarchy-restart-app hyprsunset diff --git a/bin/wm/nomarchy-restart-mako b/bin/wm/nomarchy-restart-mako new file mode 100755 index 0000000..511c18e --- /dev/null +++ b/bin/wm/nomarchy-restart-mako @@ -0,0 +1,5 @@ +#!/bin/bash + +# Reload mako configuration (used by the Nnomarchy theme switching). + +makoctl reload diff --git a/bin/wm/nomarchy-restart-swayosd b/bin/wm/nomarchy-restart-swayosd new file mode 100755 index 0000000..5480bb3 --- /dev/null +++ b/bin/wm/nomarchy-restart-swayosd @@ -0,0 +1,3 @@ +#!/bin/bash + +nnomarchy-restart-app swayosd-server diff --git a/bin/nomarchy-restart-walker b/bin/wm/nomarchy-restart-walker similarity index 100% rename from bin/nomarchy-restart-walker rename to bin/wm/nomarchy-restart-walker diff --git a/bin/wm/nomarchy-restart-waybar b/bin/wm/nomarchy-restart-waybar new file mode 100755 index 0000000..ac59ef2 --- /dev/null +++ b/bin/wm/nomarchy-restart-waybar @@ -0,0 +1,3 @@ +#!/bin/bash + +nnomarchy-restart-app waybar diff --git a/bin/nomarchy-swayosd-brightness b/bin/wm/nomarchy-swayosd-brightness similarity index 89% rename from bin/nomarchy-swayosd-brightness rename to bin/wm/nomarchy-swayosd-brightness index 416f3be..11de72f 100755 --- a/bin/nomarchy-swayosd-brightness +++ b/bin/wm/nomarchy-swayosd-brightness @@ -1,7 +1,7 @@ #!/bin/bash # Display brightness level using SwayOSD on the current monitor. -# Usage: nomarchy-swayosd-brightness +# Usage: nnomarchy-swayosd-brightness percent="$1" diff --git a/bin/nomarchy-swayosd-kbd-brightness b/bin/wm/nomarchy-swayosd-kbd-brightness similarity index 89% rename from bin/nomarchy-swayosd-kbd-brightness rename to bin/wm/nomarchy-swayosd-kbd-brightness index ccdc784..9967822 100755 --- a/bin/nomarchy-swayosd-kbd-brightness +++ b/bin/wm/nomarchy-swayosd-kbd-brightness @@ -1,7 +1,7 @@ #!/bin/bash # Display keyboard brightness level using SwayOSD on the current monitor. -# Usage: nomarchy-swayosd-kbd-brightness +# Usage: nnomarchy-swayosd-kbd-brightness percent="$1" diff --git a/bin/nomarchy-toggle-screensaver b/bin/wm/nomarchy-toggle-screensaver similarity index 92% rename from bin/nomarchy-toggle-screensaver rename to bin/wm/nomarchy-toggle-screensaver index ad3839e..f59821c 100755 --- a/bin/nomarchy-toggle-screensaver +++ b/bin/wm/nomarchy-toggle-screensaver @@ -9,7 +9,7 @@ mkdir -p "$(dirname "$STATE_FILE")" # Initialize if doesn't exist [[ ! -f $STATE_FILE ]] && echo "{}" > "$STATE_FILE" -if [[ $NOMARCHY_TOGGLE_SCREENSAVER == "false" ]]; then +if [[ $NNOMARCHY_TOGGLE_SCREENSAVER == "false" ]]; then NEW_VALUE="true" notify-send -u low "󱄄 Screensaver enabled" else diff --git a/bin/nomarchy-toggle-waybar b/bin/wm/nomarchy-toggle-waybar similarity index 93% rename from bin/nomarchy-toggle-waybar rename to bin/wm/nomarchy-toggle-waybar index bf21573..624526d 100755 --- a/bin/nomarchy-toggle-waybar +++ b/bin/wm/nomarchy-toggle-waybar @@ -9,7 +9,7 @@ mkdir -p "$(dirname "$STATE_FILE")" # Initialize if doesn't exist [[ ! -f $STATE_FILE ]] && echo "{}" > "$STATE_FILE" -if [[ $NOMARCHY_TOGGLE_WAYBAR == "false" ]]; then +if [[ $NNOMARCHY_TOGGLE_WAYBAR == "false" ]]; then NEW_VALUE="true" uwsm-app -- waybar >/dev/null 2>&1 & notify-send -u low "󰍜 Top bar enabled" diff --git a/config/brave-flags.conf b/config/brave-flags.conf index 8f63bee..171cc79 100644 --- a/config/brave-flags.conf +++ b/config/brave-flags.conf @@ -1,4 +1,4 @@ --ozone-platform=wayland --ozone-platform-hint=wayland --enable-features=TouchpadOverscrollHistoryNavigation ---load-extension=~/.local/share/nomarchy/default/chromium/extensions/copy-url +--load-extension=~/.config/nomarchy/default/chromium/extensions/copy-url diff --git a/config/chromium-flags.conf b/config/chromium-flags.conf index 8f63bee..171cc79 100644 --- a/config/chromium-flags.conf +++ b/config/chromium-flags.conf @@ -1,4 +1,4 @@ --ozone-platform=wayland --ozone-platform-hint=wayland --enable-features=TouchpadOverscrollHistoryNavigation ---load-extension=~/.local/share/nomarchy/default/chromium/extensions/copy-url +--load-extension=~/.config/nomarchy/default/chromium/extensions/copy-url diff --git a/config/hypr/hyprland.conf b/config/hypr/hyprland.conf index af346d5..62cb462 100644 --- a/config/hypr/hyprland.conf +++ b/config/hypr/hyprland.conf @@ -1,15 +1,15 @@ # Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/ # Use defaults Nomarchy defaults (but don't edit these directly!) -source = ~/.local/share/nomarchy/default/hypr/autostart.conf -source = ~/.local/share/nomarchy/default/hypr/bindings/media.conf -source = ~/.local/share/nomarchy/default/hypr/bindings/clipboard.conf -source = ~/.local/share/nomarchy/default/hypr/bindings/tiling-v2.conf -source = ~/.local/share/nomarchy/default/hypr/bindings/utilities.conf -source = ~/.local/share/nomarchy/default/hypr/envs.conf -source = ~/.local/share/nomarchy/default/hypr/looknfeel.conf -source = ~/.local/share/nomarchy/default/hypr/input.conf -source = ~/.local/share/nomarchy/default/hypr/windows.conf +source = ~/.config/nomarchy/default/hypr/autostart.conf +source = ~/.config/nomarchy/default/hypr/bindings/media.conf +source = ~/.config/nomarchy/default/hypr/bindings/clipboard.conf +source = ~/.config/nomarchy/default/hypr/bindings/tiling-v2.conf +source = ~/.config/nomarchy/default/hypr/bindings/utilities.conf +source = ~/.config/nomarchy/default/hypr/envs.conf +source = ~/.config/nomarchy/default/hypr/looknfeel.conf +source = ~/.config/nomarchy/default/hypr/input.conf +source = ~/.config/nomarchy/default/hypr/windows.conf source = ~/.config/nomarchy/current/theme/hyprland.conf # Change your own setup in these files (and overwrite any settings from defaults!) diff --git a/config/nomarchy.ttf b/config/nomarchy.ttf index 151bdfd..e025e2c 100644 Binary files a/config/nomarchy.ttf and b/config/nomarchy.ttf differ diff --git a/config/nomarchy/default/alacritty/screensaver.toml b/config/nomarchy/default/alacritty/screensaver.toml new file mode 100644 index 0000000..7db389e --- /dev/null +++ b/config/nomarchy/default/alacritty/screensaver.toml @@ -0,0 +1,11 @@ +[colors.primary] +background = "0x000000" + +[colors.cursor] +cursor = "0x000000" + +[font] +size = 18.0 + +[window] +opacity = 1.0 diff --git a/config/nomarchy/default/bash/aliases b/config/nomarchy/default/bash/aliases new file mode 100644 index 0000000..8e281d0 --- /dev/null +++ b/config/nomarchy/default/bash/aliases @@ -0,0 +1,57 @@ +# File system +if command -v eza &> /dev/null; then + alias ls='eza -lh --group-directories-first --icons=auto' + alias lsa='ls -a' + alias lt='eza --tree --level=2 --long --icons --git' + alias lta='lt -a' +fi + +if [[ "$TERM" == "xterm-kitty" ]]; then + alias ff="fzf --preview 'case \$(file --mime-type -b {}) in image/*) kitty icat --clear --transfer-mode=memory --stdin=no --place=\${FZF_PREVIEW_COLUMNS}x\${FZF_PREVIEW_LINES}@0x0 {} ;; *) bat --style=numbers --color=always {} ;; esac'" +else + alias ff="fzf --preview 'bat --style=numbers --color=always {}'" +fi +alias eff='$EDITOR "$(ff)"' +sff() { if [ $# -eq 0 ]; then echo "Usage: sff (e.g. sff host:/tmp/)"; return 1; fi; local file; file=$(find . -type f -printf '%T@\t%p\n' | sort -rn | cut -f2- | ff) && [ -n "$file" ] && scp "$file" "$1"; } + +if command -v zoxide &> /dev/null; then + alias cd="zd" + zd() { + if (( $# == 0 )); then + builtin cd ~ || return + elif [[ -d $1 ]]; then + builtin cd "$1" || return + else + if ! z "$@"; then + echo "Error: Directory not found" + return 1 + fi + + printf "\U000F17A9 " + pwd + fi + } +fi + +open() ( + xdg-open "$@" >/dev/null 2>&1 & +) + +# Directories +alias ..='cd ..' +alias ...='cd ../..' +alias ....='cd ../../..' + +# Tools +alias c='opencode' +alias cx='printf "\033[2J\033[3J\033[H" && claude --allow-dangerously-skip-permissions' +alias d='docker' +alias r='rails' +alias t='tmux attach || tmux new -s Work' +n() { if [ "$#" -eq 0 ]; then command nvim . ; else command nvim "$@"; fi; } + +# Git +alias g='git' +alias gcm='git commit -m' +alias gcam='git commit -a -m' +alias gcad='git commit -a --amend' diff --git a/config/nomarchy/default/bash/envs b/config/nomarchy/default/bash/envs new file mode 100644 index 0000000..bf4e48c --- /dev/null +++ b/config/nomarchy/default/bash/envs @@ -0,0 +1,7 @@ +# Editor used by CLI +export SUDO_EDITOR="$EDITOR" +export BAT_THEME=ansi + +# Duplicated from .config/uwsm/env so SSH works too +export NOMARCHY_PATH=$HOME/.local/share/nomarchy +export PATH=$NOMARCHY_PATH/bin:$PATH:$HOME/.local/bin diff --git a/config/nomarchy/default/bash/fns/compression b/config/nomarchy/default/bash/fns/compression new file mode 100644 index 0000000..4e8bb81 --- /dev/null +++ b/config/nomarchy/default/bash/fns/compression @@ -0,0 +1,3 @@ +# Compression +compress() { tar -czf "${1%/}.tar.gz" "${1%/}"; } +alias decompress="tar -xzf" diff --git a/config/nomarchy/default/bash/fns/drives b/config/nomarchy/default/bash/fns/drives new file mode 100644 index 0000000..ec7dbfe --- /dev/null +++ b/config/nomarchy/default/bash/fns/drives @@ -0,0 +1,59 @@ +# Write iso file to sd card +iso2sd() { + if (( $# < 1 )); then + echo "Usage: iso2sd [output_device]" + echo "Example: iso2sd ~/Downloads/ubuntu-25.04-desktop-amd64.iso /dev/sda" + return 1 + fi + + local iso="$1" + local drive="$2" + + if [[ -z $drive ]]; then + local available_sds=$(lsblk -dpno NAME | grep -E '/dev/sd') + + if [[ -z $available_sds ]]; then + echo "No SD drives found and no drive specified" + return 1 + fi + + drive=$(nomarchy-drive-select "$available_sds") + + if [[ -z $drive ]]; then + echo "No drive selected" + return 1 + fi + fi + + sudo dd bs=4M status=progress oflag=sync if="$iso" of="$drive" + sudo eject "$drive" +} + +# Format an entire drive for a single partition using exFAT +format-drive() { + if (( $# != 2 )); then + echo "Usage: format-drive " + echo "Example: format-drive /dev/sda 'My Stuff'" + echo -e "\nAvailable drives:" + lsblk -d -o NAME -n | awk '{print "/dev/"$1}' + else + echo "WARNING: This will completely erase all data on $1 and label it '$2'." + read -rp "Are you sure you want to continue? (y/N): " confirm + + if [[ $confirm =~ ^[Yy]$ ]]; then + sudo wipefs -a "$1" + sudo dd if=/dev/zero of="$1" bs=1M count=100 status=progress + sudo parted -s "$1" mklabel gpt + sudo parted -s "$1" mkpart primary 1MiB 100% + sudo parted -s "$1" set 1 msftdata on + + partition="$([[ $1 == *"nvme"* ]] && echo "${1}p1" || echo "${1}1")" + sudo partprobe "$1" || true + sudo udevadm settle || true + + sudo mkfs.exfat -n "$2" "$partition" + + echo "Drive $1 formatted as exFAT and labeled '$2'." + fi + fi +} diff --git a/config/nomarchy/default/bash/fns/ssh-port-forwarding b/config/nomarchy/default/bash/fns/ssh-port-forwarding new file mode 100644 index 0000000..4ee6c92 --- /dev/null +++ b/config/nomarchy/default/bash/fns/ssh-port-forwarding @@ -0,0 +1,20 @@ +# SSH Port Forwarding Functions +fip() { + (( $# < 2 )) && echo "Usage: fip [port2] ..." && return 1 + local host="$1" + shift + for port in "$@"; do + ssh -f -N -L "$port:localhost:$port" "$host" && echo "Forwarding localhost:$port -> $host:$port" + done +} + +dip() { + (( $# == 0 )) && echo "Usage: dip [port2] ..." && return 1 + for port in "$@"; do + pkill -f "ssh.*-L $port:localhost:$port" && echo "Stopped forwarding port $port" || echo "No forwarding on port $port" + done +} + +lip() { + pgrep -af "ssh.*-L [0-9]+:localhost:[0-9]+" || echo "No active forwards" +} diff --git a/config/nomarchy/default/bash/fns/tmux b/config/nomarchy/default/bash/fns/tmux new file mode 100644 index 0000000..0144f2e --- /dev/null +++ b/config/nomarchy/default/bash/fns/tmux @@ -0,0 +1,97 @@ +# Create a Tmux Dev Layout with editor, ai, and terminal +# Usage: tdl [] +tdl() { + [[ -z $1 ]] && { echo "Usage: tdl []"; return 1; } + [[ -z $TMUX ]] && { echo "You must start tmux to use tdl."; return 1; } + + local current_dir="${PWD}" + local editor_pane ai_pane ai2_pane + local ai="$1" + local ai2="$2" + + # Use TMUX_PANE for the pane we're running in (stable even if active window changes) + editor_pane="$TMUX_PANE" + + # Name the current window after the base directory name + tmux rename-window -t "$editor_pane" "$(basename "$current_dir")" + + # Split window vertically - top 85%, bottom 15% (target editor pane explicitly) + tmux split-window -v -p 15 -t "$editor_pane" -c "$current_dir" + + # Split editor pane horizontally - AI on right 30% (capture new pane ID directly) + ai_pane=$(tmux split-window -h -p 30 -t "$editor_pane" -c "$current_dir" -P -F '#{pane_id}') + + # If second AI provided, split the AI pane vertically + if [[ -n $ai2 ]]; then + ai2_pane=$(tmux split-window -v -t "$ai_pane" -c "$current_dir" -P -F '#{pane_id}') + tmux send-keys -t "$ai2_pane" "$ai2" C-m + fi + + # Run ai in the right pane + tmux send-keys -t "$ai_pane" "$ai" C-m + + # Run nvim in the left pane + tmux send-keys -t "$editor_pane" "$EDITOR ." C-m + + # Select the nvim pane for focus + tmux select-pane -t "$editor_pane" +} + +# Create multiple tdl windows with one per subdirectory in the current directory +# Usage: tdlm [] +tdlm() { + [[ -z $1 ]] && { echo "Usage: tdlm []"; return 1; } + [[ -z $TMUX ]] && { echo "You must start tmux to use tdlm."; return 1; } + + local ai="$1" + local ai2="$2" + local base_dir="$PWD" + local first=true + + # Rename the session to the current directory name (replace dots/colons which tmux disallows) + tmux rename-session "$(basename "$base_dir" | tr '.:' '--')" + + for dir in "$base_dir"/*/; do + [[ -d $dir ]] || continue + local dirpath="${dir%/}" + + if $first; then + # Reuse the current window for the first project + tmux send-keys -t "$TMUX_PANE" "cd '$dirpath' && tdl $ai $ai2" C-m + first=false + else + local pane_id=$(tmux new-window -c "$dirpath" -P -F '#{pane_id}') + tmux send-keys -t "$pane_id" "tdl $ai $ai2" C-m + fi + done +} + +# Create a multi-pane swarm layout with the same command started in each pane (great for AI) +# Usage: tsl +tsl() { + [[ -z $1 || -z $2 ]] && { echo "Usage: tsl "; return 1; } + [[ -z $TMUX ]] && { echo "You must start tmux to use tsl."; return 1; } + + local count="$1" + local cmd="$2" + local current_dir="${PWD}" + local -a panes + + tmux rename-window -t "$TMUX_PANE" "$(basename "$current_dir")" + + panes+=("$TMUX_PANE") + + while (( ${#panes[@]} < count )); do + local new_pane + local split_target="${panes[-1]}" + new_pane=$(tmux split-window -h -t "$split_target" -c "$current_dir" -P -F '#{pane_id}') + panes+=("$new_pane") + tmux select-layout -t "${panes[0]}" tiled + done + + for pane in "${panes[@]}"; do + tmux send-keys -t "$pane" "$cmd" C-m + done + + tmux select-pane -t "${panes[0]}" +} diff --git a/config/nomarchy/default/bash/fns/transcoding b/config/nomarchy/default/bash/fns/transcoding new file mode 100644 index 0000000..6f5b6a5 --- /dev/null +++ b/config/nomarchy/default/bash/fns/transcoding @@ -0,0 +1,53 @@ +# Transcode a video to a good-balance 1080p that's great for sharing online +transcode-video-1080p() { + ffmpeg -i "$1" -vf scale=1920:1080 -c:v libx264 -preset fast -crf 23 -c:a copy "${1%.*}-1080p.mp4" +} + +# Transcode a video to a good-balance 4K that's great for sharing online +transcode-video-4K() { + ffmpeg -i "$1" -c:v libx265 -preset slow -crf 24 -c:a aac -b:a 192k "${1%.*}-optimized.mp4" +} + +# Transcode any image to JPG image that's great for shrinking wallpapers +img2jpg() { + img="$1" + shift + + magick "$img" "$@" -quality 85 -strip "${img%.*}-converted.jpg" +} + +# Transcode any image to a small JPG (max 1080px wide) +img2jpg-small() { + img="$1" + shift + + magick "$img" "$@" -resize 1080x\> -quality 85 -strip "${img%.*}-small.jpg" +} + +# Transcode any image to a 4K JPG (max 2160px wide) +img2jpg-medium() { + img="$1" + shift + + magick "$img" "$@" -resize 2160x\> -quality 85 -strip "${img%.*}-medium.jpg" +} + +# Transcode any image to a 6K JPG (max 3160px wide) +img2jpg-large() { + img="$1" + shift + + magick "$img" "$@" -resize 3160x\> -quality 85 -strip "${img%.*}-large.jpg" +} + +# Transcode any image to compressed-but-lossless PNG +img2png() { + img="$1" + shift + + magick "$img" "$@" -strip -define png:compression-filter=5 \ + -define png:compression-level=9 \ + -define png:compression-strategy=1 \ + -define png:exclude-chunk=all \ + "${img%.*}-optimized.png" +} diff --git a/config/nomarchy/default/bash/fns/worktrees b/config/nomarchy/default/bash/fns/worktrees new file mode 100644 index 0000000..a175a64 --- /dev/null +++ b/config/nomarchy/default/bash/fns/worktrees @@ -0,0 +1,36 @@ +# Create a new worktree and branch from within current git directory. +ga() { + if [[ -z "$1" ]]; then + echo "Usage: ga [branch name]" + return 1 + fi + + local branch="$1" + local base="$(basename "$PWD")" + local wt_path="../${base}--${branch}" + + git worktree add -b "$branch" "$wt_path" + mise trust "$wt_path" + cd "$wt_path" +} + +# Remove worktree and branch from within active worktree directory. +gd() { + if gum confirm "Remove worktree and branch?"; then + local cwd base branch root worktree + + cwd="$(pwd)" + worktree="$(basename "$cwd")" + + # split on first `--` + root="${worktree%%--*}" + branch="${worktree#*--}" + + # Protect against accidentally nuking a non-worktree directory + if [[ "$root" != "$worktree" ]]; then + cd "../$root" + git worktree remove "$cwd" --force || return 1 + git branch -D "$branch" + fi + fi +} diff --git a/config/nomarchy/default/bash/functions b/config/nomarchy/default/bash/functions new file mode 100644 index 0000000..9e2cef0 --- /dev/null +++ b/config/nomarchy/default/bash/functions @@ -0,0 +1 @@ +for f in $HOME/.config/nomarchy/default/bash/fns/*; do source "$f"; done diff --git a/config/nomarchy/default/bash/init b/config/nomarchy/default/bash/init new file mode 100644 index 0000000..4c5e6e3 --- /dev/null +++ b/config/nomarchy/default/bash/init @@ -0,0 +1,24 @@ +if command -v mise &> /dev/null; then + eval "$(mise activate bash)" +fi + +if command -v starship &> /dev/null; then + eval "$(starship init bash)" +fi + +if command -v zoxide &> /dev/null; then + eval "$(zoxide init bash)" +fi + +if command -v try &> /dev/null; then + eval "$(SHELL=/bin/bash command try init ~/Work/tries)" +fi + +if command -v fzf &> /dev/null; then + if [[ -f /usr/share/fzf/completion.bash ]]; then + source /usr/share/fzf/completion.bash + fi + if [[ -f /usr/share/fzf/key-bindings.bash ]]; then + source /usr/share/fzf/key-bindings.bash + fi +fi diff --git a/config/nomarchy/default/bash/inputrc b/config/nomarchy/default/bash/inputrc new file mode 100644 index 0000000..3b48e55 --- /dev/null +++ b/config/nomarchy/default/bash/inputrc @@ -0,0 +1,47 @@ +set meta-flag on +set input-meta on +set output-meta on +set convert-meta off +set completion-ignore-case on +set completion-prefix-display-length 2 +set show-all-if-ambiguous on +set show-all-if-unmodified on + +# Arrow keys match what you've typed so far against your command history +"\e[A": history-search-backward +"\e[B": history-search-forward +"\e[C": forward-char +"\e[D": backward-char + +# Immediately add a trailing slash when autocompleting symlinks to directories +set mark-symlinked-directories on + +# Do not autocomplete hidden files unless the pattern explicitly begins with a dot +set match-hidden-files off + +# Show all autocomplete results at once +set page-completions off + +# If there are more than 200 possible completions for a word, ask to show them all +set completion-query-items 200 + +# Show extra file information when completing, like `ls -F` does +set visible-stats on + +# Be more intelligent when autocompleting by also looking at the text after +# the cursor. For example, when the current line is "cd ~/src/mozil", and +# the cursor is on the "z", pressing Tab will not autocomplete it to "cd +# ~/src/mozillail", but to "cd ~/src/mozilla". (This is supported by the +# Readline used by Bash 4.) +set skip-completed-text on + +# Coloring for Bash 4 tab completions. +set colored-stats on + +# Cycle forward and backward through completion candidates (tab/shift+tab) +# (completion listing and display behavior configured above) +TAB: menu-complete +"\e[Z": menu-complete-backward + +# On first Tab, complete the common prefix before cycling candidates +set menu-complete-display-prefix on diff --git a/config/nomarchy/default/bash/rc b/config/nomarchy/default/bash/rc new file mode 100644 index 0000000..5d0a39e --- /dev/null +++ b/config/nomarchy/default/bash/rc @@ -0,0 +1,6 @@ +source ~/.config/nomarchy/default/bash/envs +source ~/.config/nomarchy/default/bash/shell +source ~/.config/nomarchy/default/bash/aliases +source ~/.config/nomarchy/default/bash/functions +source ~/.config/nomarchy/default/bash/init +[[ $- == *i* ]] && bind -f ~/.config/nomarchy/default/bash/inputrc diff --git a/config/nomarchy/default/bash/shell b/config/nomarchy/default/bash/shell new file mode 100644 index 0000000..7eb4867 --- /dev/null +++ b/config/nomarchy/default/bash/shell @@ -0,0 +1,13 @@ +# History control +shopt -s histappend +HISTCONTROL=ignoreboth +HISTSIZE=32768 +HISTFILESIZE="${HISTSIZE}" + +# Autocompletion +if [[ ! -v BASH_COMPLETION_VERSINFO && -f /usr/share/bash-completion/bash_completion ]]; then + source /usr/share/bash-completion/bash_completion +fi + +# Ensure command hashing is off for mise +set +h diff --git a/config/nomarchy/default/bashrc b/config/nomarchy/default/bashrc new file mode 100644 index 0000000..7fcd619 --- /dev/null +++ b/config/nomarchy/default/bashrc @@ -0,0 +1,11 @@ +# If not running interactively, don't do anything (leave this at the top of this file) +[[ $- != *i* ]] && return + +# All the default Nomarchy aliases and functions +# (don't mess with these directly, just overwrite them here!) +source ~/.config/nomarchy/default/bash/rc + +# Add your own exports, aliases, and functions here. +# +# Make an alias for invoking commands you use constantly +# alias p='python' diff --git a/config/nomarchy/default/chromium/extensions/copy-url/background.js b/config/nomarchy/default/chromium/extensions/copy-url/background.js new file mode 100644 index 0000000..a2537c5 --- /dev/null +++ b/config/nomarchy/default/chromium/extensions/copy-url/background.js @@ -0,0 +1,21 @@ +chrome.commands.onCommand.addListener((command) => { + if (command === 'copy-url') { + chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => { + const currentTab = tabs[0]; + + chrome.scripting.executeScript({ + target: { tabId: currentTab.id }, + func: () => { + navigator.clipboard.writeText(window.location.href); + } + }).then(() => { + chrome.notifications.create({ + type: 'basic', + iconUrl: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==', + title: ' URL copied to clipboard', + message: '' + }); + }); + }); + } +}); diff --git a/config/nomarchy/default/chromium/extensions/copy-url/icon.png b/config/nomarchy/default/chromium/extensions/copy-url/icon.png new file mode 120000 index 0000000..e088259 --- /dev/null +++ b/config/nomarchy/default/chromium/extensions/copy-url/icon.png @@ -0,0 +1 @@ +../../../../icon.png \ No newline at end of file diff --git a/config/nomarchy/default/chromium/extensions/copy-url/manifest.json b/config/nomarchy/default/chromium/extensions/copy-url/manifest.json new file mode 100644 index 0000000..74b9004 --- /dev/null +++ b/config/nomarchy/default/chromium/extensions/copy-url/manifest.json @@ -0,0 +1,19 @@ +{ + "manifest_version": 3, + "name": "Copy URL", + "version": "1.0", + "description": "Copy current URL to clipboard, this extension is installed by Nomarchy", + "permissions": ["activeTab", "scripting", "notifications"], + "icons": { + "16": "icon.png", + "48": "icon.png", + "128": "icon.png" + }, + "commands": { + "copy-url": { + "suggested_key": {"default": "Alt+Shift+L"}, + "description": "Copy URL" + } + }, + "background": {"service_worker": "background.js"} +} diff --git a/config/nomarchy/default/elephant/nomarchy_background_selector.lua b/config/nomarchy/default/elephant/nomarchy_background_selector.lua new file mode 100644 index 0000000..f75c336 --- /dev/null +++ b/config/nomarchy/default/elephant/nomarchy_background_selector.lua @@ -0,0 +1,73 @@ +Name = "nomarchyBackgroundSelector" +NamePretty = "Nomarchy Background Selector" +Cache = false +HideFromProviderlist = true +SearchName = true + +local function ShellEscape(s) + return "'" .. s:gsub("'", "'\\''") .. "'" +end + +function FormatName(filename) + -- Remove leading number and dash + local name = filename:gsub("^%d+", ""):gsub("^%-", "") + -- Remove extension + name = name:gsub("%.[^%.]+$", "") + -- Replace dashes with spaces + name = name:gsub("-", " ") + -- Capitalize each word + name = name:gsub("%S+", function(word) + return word:sub(1, 1):upper() .. word:sub(2):lower() + end) + return name +end + +function GetEntries() + local entries = {} + local home = os.getenv("HOME") + + -- Read current theme name + local theme_name_file = io.open(home .. "/.config/nomarchy/current/theme.name", "r") + local theme_name = theme_name_file and theme_name_file:read("*l") or nil + if theme_name_file then + theme_name_file:close() + end + + -- Directories to search + local dirs = { + home .. "/.config/nomarchy/current/theme/backgrounds", + } + if theme_name then + table.insert(dirs, home .. "/.config/nomarchy/backgrounds/" .. theme_name) + end + + -- Track added files to avoid duplicates + local seen = {} + + for _, wallpaper_dir in ipairs(dirs) do + local handle = io.popen( + "find " .. ShellEscape(wallpaper_dir) + .. " -maxdepth 1 -type f \\( -name '*.jpg' -o -name '*.jpeg' -o -name '*.png' -o -name '*.gif' -o -name '*.bmp' -o -name '*.webp' \\) 2>/dev/null | sort" + ) + if handle then + for background in handle:lines() do + local filename = background:match("([^/]+)$") + if filename and not seen[filename] then + seen[filename] = true + table.insert(entries, { + Text = FormatName(filename), + Value = background, + Actions = { + activate = "nomarchy-theme-bg-set " .. ShellEscape(background), + }, + Preview = background, + PreviewType = "file", + }) + end + end + handle:close() + end + end + + return entries +end diff --git a/config/nomarchy/default/elephant/nomarchy_themes.lua b/config/nomarchy/default/elephant/nomarchy_themes.lua new file mode 100644 index 0000000..8e24b11 --- /dev/null +++ b/config/nomarchy/default/elephant/nomarchy_themes.lua @@ -0,0 +1,96 @@ +-- +-- Dynamic Nomarchy Theme Menu for Elephant/Walker +-- +Name = "nomarchythemes" +NamePretty = "Nomarchy Themes" +HideFromProviderlist = true + +-- Check if file exists using Lua (no subprocess) +local function file_exists(path) + local f = io.open(path, "r") + if f then + f:close() + return true + end + return false +end + +-- Get first matching file from directory using ls (single call for fallback) +local function first_image_in_dir(dir) + local handle = io.popen("ls -1 '" .. dir .. "' 2>/dev/null | head -n 1") + if handle then + local file = handle:read("*l") + handle:close() + if file and file ~= "" then + return dir .. "/" .. file + end + end + return nil +end + +-- The main function elephant will call +function GetEntries() + local entries = {} + local user_theme_dir = os.getenv("HOME") .. "/.config/nomarchy/themes" + local nomarchy_path = os.getenv("NOMARCHY_PATH") or "" + local default_theme_dir = nomarchy_path .. "/themes" + + local seen_themes = {} + + -- Helper function to process themes from a directory + local function process_themes_from_dir(theme_dir) + -- Single find call to get all theme directories + local handle = io.popen("find -L '" .. theme_dir .. "' -mindepth 1 -maxdepth 1 -type d 2>/dev/null") + if not handle then + return + end + + for theme_path in handle:lines() do + local theme_name = theme_path:match(".*/(.+)$") + + if theme_name and not seen_themes[theme_name] then + seen_themes[theme_name] = true + + -- Check for preview images directly (no subprocess) + local preview_path = nil + local preview_png = theme_path .. "/preview.png" + local preview_jpg = theme_path .. "/preview.jpg" + + if file_exists(preview_png) then + preview_path = preview_png + elseif file_exists(preview_jpg) then + preview_path = preview_jpg + else + -- Fallback: get first image from backgrounds (one ls call) + preview_path = first_image_in_dir(theme_path .. "/backgrounds") + end + + if preview_path and preview_path ~= "" then + local display_name = theme_name:gsub("_", " "):gsub("%-", " ") + display_name = display_name:gsub("(%a)([%w_']*)", function(first, rest) + return first:upper() .. rest:lower() + end) + display_name = display_name .. " " + + table.insert(entries, { + Text = display_name, + Preview = preview_path, + PreviewType = "file", + Actions = { + activate = "nomarchy-theme-set " .. theme_name, + }, + }) + end + end + end + + handle:close() + end + + -- Process user themes first (they take precedence) + process_themes_from_dir(user_theme_dir) + -- Then process default themes (only if not already seen) + process_themes_from_dir(default_theme_dir) + + return entries +end diff --git a/config/nomarchy/default/ghostty/screensaver b/config/nomarchy/default/ghostty/screensaver new file mode 100644 index 0000000..dc35906 --- /dev/null +++ b/config/nomarchy/default/ghostty/screensaver @@ -0,0 +1,3 @@ +window-padding-x = 0 +window-padding-y = 0 +window-padding-color = "extend-always" diff --git a/config/nomarchy/default/gpg/dirmngr.conf b/config/nomarchy/default/gpg/dirmngr.conf new file mode 100644 index 0000000..8d32790 --- /dev/null +++ b/config/nomarchy/default/gpg/dirmngr.conf @@ -0,0 +1,7 @@ +keyserver hkps://keyserver.ubuntu.com +keyserver hkps://pgp.surfnet.nl +keyserver hkps://keys.mailvelope.com +keyserver hkps://keyring.debian.org +keyserver hkps://pgp.mit.edu + +connect-quick-timeout 4 diff --git a/config/nomarchy/default/hypr/apps.conf b/config/nomarchy/default/hypr/apps.conf new file mode 100644 index 0000000..9f7c656 --- /dev/null +++ b/config/nomarchy/default/hypr/apps.conf @@ -0,0 +1,17 @@ +# App-specific tweaks +source = ~/.config/nomarchy/default/hypr/apps/1password.conf +source = ~/.config/nomarchy/default/hypr/apps/bitwarden.conf +source = ~/.config/nomarchy/default/hypr/apps/browser.conf +source = ~/.config/nomarchy/default/hypr/apps/hyprshot.conf +source = ~/.config/nomarchy/default/hypr/apps/localsend.conf +source = ~/.config/nomarchy/default/hypr/apps/pip.conf +source = ~/.config/nomarchy/default/hypr/apps/qemu.conf +source = ~/.config/nomarchy/default/hypr/apps/retroarch.conf +source = ~/.config/nomarchy/default/hypr/apps/steam.conf +source = ~/.config/nomarchy/default/hypr/apps/geforce.conf +source = ~/.config/nomarchy/default/hypr/apps/moonlight.conf +source = ~/.config/nomarchy/default/hypr/apps/system.conf +source = ~/.config/nomarchy/default/hypr/apps/telegram.conf +source = ~/.config/nomarchy/default/hypr/apps/terminals.conf +source = ~/.config/nomarchy/default/hypr/apps/walker.conf +source = ~/.config/nomarchy/default/hypr/apps/webcam-overlay.conf diff --git a/config/nomarchy/default/hypr/apps/1password.conf b/config/nomarchy/default/hypr/apps/1password.conf new file mode 100644 index 0000000..a666430 --- /dev/null +++ b/config/nomarchy/default/hypr/apps/1password.conf @@ -0,0 +1,2 @@ +windowrule = no_screen_share on, match:class ^(1[p|P]assword)$ +windowrule = tag +floating-window, match:class ^(1[p|P]assword)$ diff --git a/config/nomarchy/default/hypr/apps/bitwarden.conf b/config/nomarchy/default/hypr/apps/bitwarden.conf new file mode 100644 index 0000000..8ffb568 --- /dev/null +++ b/config/nomarchy/default/hypr/apps/bitwarden.conf @@ -0,0 +1,6 @@ +windowrule = no_screen_share on, match:class ^(Bitwarden)$ +windowrule = tag +floating-window, match:class ^(Bitwarden)$ + +# Bitwarden Chrome Extension +windowrule = no_screen_share on, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default +windowrule = tag +floating-window, match:class chrome-nngceckbapebfimnlniiiahkandclblb-Default diff --git a/config/nomarchy/default/hypr/apps/browser.conf b/config/nomarchy/default/hypr/apps/browser.conf new file mode 100644 index 0000000..7f30ba3 --- /dev/null +++ b/config/nomarchy/default/hypr/apps/browser.conf @@ -0,0 +1,16 @@ +# Browser types +windowrule = tag +chromium-based-browser, match:class ((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium) +windowrule = tag +firefox-based-browser, match:class ([fF]irefox|zen|librewolf) +windowrule = tag -default-opacity, match:tag chromium-based-browser +windowrule = tag -default-opacity, match:tag firefox-based-browser + +# Video apps: remove chromium browser tag so they don't get opacity applied +windowrule = tag -chromium-based-browser, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default) +windowrule = tag -default-opacity, match:class (chrome-youtube.com__-Default|chrome-app.zoom.us__wc_home-Default) + +# Force chromium-based browsers into a tile to deal with --app bug +windowrule = tile on, match:tag chromium-based-browser + +# Only a subtle opacity change, but not for video sites +windowrule = opacity 1.0 0.97, match:tag chromium-based-browser +windowrule = opacity 1.0 0.97, match:tag firefox-based-browser diff --git a/config/nomarchy/default/hypr/apps/davinci-resolve.conf b/config/nomarchy/default/hypr/apps/davinci-resolve.conf new file mode 100644 index 0000000..9067fdf --- /dev/null +++ b/config/nomarchy/default/hypr/apps/davinci-resolve.conf @@ -0,0 +1,2 @@ +# Focus floating DaVinci Resolve dialog windows +windowrule = stay_focused on, match:class .*[Rr]esolve.*, match:float 1 diff --git a/config/nomarchy/default/hypr/apps/geforce.conf b/config/nomarchy/default/hypr/apps/geforce.conf new file mode 100644 index 0000000..fb2e5a3 --- /dev/null +++ b/config/nomarchy/default/hypr/apps/geforce.conf @@ -0,0 +1,5 @@ +windowrule { + name = geforce + match:class = GeForceNOW + idle_inhibit = fullscreen +} diff --git a/config/nomarchy/default/hypr/apps/hyprshot.conf b/config/nomarchy/default/hypr/apps/hyprshot.conf new file mode 100644 index 0000000..795ac39 --- /dev/null +++ b/config/nomarchy/default/hypr/apps/hyprshot.conf @@ -0,0 +1,2 @@ +# Remove 1px border around hyprshot screenshots +layerrule = no_anim on, match:namespace selection diff --git a/config/nomarchy/default/hypr/apps/localsend.conf b/config/nomarchy/default/hypr/apps/localsend.conf new file mode 100644 index 0000000..c4f6a55 --- /dev/null +++ b/config/nomarchy/default/hypr/apps/localsend.conf @@ -0,0 +1,4 @@ +# Float LocalSend and fzf file picker +windowrule = float on, match:class (Share|localsend) +windowrule = center on, match:class (Share|localsend) +windowrule = size 1100 700, match:class localsend diff --git a/config/nomarchy/default/hypr/apps/moonlight.conf b/config/nomarchy/default/hypr/apps/moonlight.conf new file mode 100644 index 0000000..271a11c --- /dev/null +++ b/config/nomarchy/default/hypr/apps/moonlight.conf @@ -0,0 +1,6 @@ +windowrule { + name = moonlight + match:class = com.moonlight_stream.Moonlight + fullscreen = 1 + idle_inhibit = fullscreen +} diff --git a/config/nomarchy/default/hypr/apps/pip.conf b/config/nomarchy/default/hypr/apps/pip.conf new file mode 100644 index 0000000..417edc9 --- /dev/null +++ b/config/nomarchy/default/hypr/apps/pip.conf @@ -0,0 +1,10 @@ +# Picture-in-picture overlays +windowrule = tag +pip, match:title (Picture.?in.?[Pp]icture) +windowrule = tag -default-opacity, match:tag pip +windowrule = float on, match:tag pip +windowrule = pin on, match:tag pip +windowrule = size 600 338, match:tag pip +windowrule = keep_aspect_ratio on, match:tag pip +windowrule = border_size 0, match:tag pip +windowrule = opacity 1 1, match:tag pip +windowrule = move (monitor_w-window_w-40) (monitor_h*0.04), match:tag pip diff --git a/config/nomarchy/default/hypr/apps/qemu.conf b/config/nomarchy/default/hypr/apps/qemu.conf new file mode 100644 index 0000000..6dcce0e --- /dev/null +++ b/config/nomarchy/default/hypr/apps/qemu.conf @@ -0,0 +1,2 @@ +windowrule = tag -default-opacity, match:class qemu +windowrule = opacity 1 1, match:class qemu diff --git a/config/nomarchy/default/hypr/apps/retroarch.conf b/config/nomarchy/default/hypr/apps/retroarch.conf new file mode 100644 index 0000000..556f0fd --- /dev/null +++ b/config/nomarchy/default/hypr/apps/retroarch.conf @@ -0,0 +1,4 @@ +windowrule = fullscreen on, match:class com.libretro.RetroArch +windowrule = tag -default-opacity, match:class com.libretro.RetroArch +windowrule = opacity 1 1, match:class com.libretro.RetroArch +windowrule = idle_inhibit fullscreen, match:class com.libretro.RetroArch diff --git a/config/nomarchy/default/hypr/apps/steam.conf b/config/nomarchy/default/hypr/apps/steam.conf new file mode 100644 index 0000000..a42a6e6 --- /dev/null +++ b/config/nomarchy/default/hypr/apps/steam.conf @@ -0,0 +1,8 @@ +# Float Steam +windowrule = float on, match:class steam +windowrule = center on, match:class steam, match:title Steam +windowrule = tag -default-opacity, match:class steam.* +windowrule = opacity 1 1, match:class steam.* +windowrule = size 1100 700, match:class steam, match:title Steam +windowrule = size 460 800, match:class steam, match:title Friends List +windowrule = idle_inhibit fullscreen, match:class steam diff --git a/config/nomarchy/default/hypr/apps/system.conf b/config/nomarchy/default/hypr/apps/system.conf new file mode 100644 index 0000000..ca0f075 --- /dev/null +++ b/config/nomarchy/default/hypr/apps/system.conf @@ -0,0 +1,23 @@ +# Floating windows +windowrule = float on, match:tag floating-window +windowrule = center on, match:tag floating-window +windowrule = size 875 600, match:tag floating-window + +windowrule = tag +floating-window, match:class (org.nomarchy.bluetui|org.nomarchy.impala|org.nomarchy.wiremix|org.nomarchy.btop|org.nomarchy.terminal|org.nomarchy.bash|org.gnome.NautilusPreviewer|org.gnome.Evince|com.gabm.satty|Nomarchy|About|TUI.float|imv|mpv) +windowrule = tag +floating-window, match:class (xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), match:title ^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*) +windowrule = float on, match:class org.gnome.Calculator + +# Fullscreen screensaver +windowrule = fullscreen on, match:class org.nomarchy.screensaver +windowrule = float on, match:class org.nomarchy.screensaver +windowrule = animation slide, match:class org.nomarchy.screensaver + +# No transparency on media windows +windowrule = tag -default-opacity, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ +windowrule = opacity 1 1, match:class ^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ + +# Popped window rounding +windowrule = rounding 8, match:tag pop + +# Prevent idle while open +windowrule = idle_inhibit always, match:tag noidle diff --git a/config/nomarchy/default/hypr/apps/telegram.conf b/config/nomarchy/default/hypr/apps/telegram.conf new file mode 100644 index 0000000..5a621fd --- /dev/null +++ b/config/nomarchy/default/hypr/apps/telegram.conf @@ -0,0 +1,2 @@ +# Prevent Telegram from stealing focus on new messages +windowrule = focus_on_activate off, match:class org.telegram.desktop diff --git a/config/nomarchy/default/hypr/apps/terminals.conf b/config/nomarchy/default/hypr/apps/terminals.conf new file mode 100644 index 0000000..ead08dd --- /dev/null +++ b/config/nomarchy/default/hypr/apps/terminals.conf @@ -0,0 +1,4 @@ +# Define terminal tag to style them uniformly +windowrule = tag +terminal, match:class (Alacritty|kitty|com.mitchellh.ghostty) +windowrule = tag -default-opacity, match:tag terminal +windowrule = opacity 0.97 0.9, match:tag terminal diff --git a/config/nomarchy/default/hypr/apps/walker.conf b/config/nomarchy/default/hypr/apps/walker.conf new file mode 100644 index 0000000..127e3b4 --- /dev/null +++ b/config/nomarchy/default/hypr/apps/walker.conf @@ -0,0 +1,2 @@ +# Application-specific animation +layerrule = no_anim on, match:namespace walker diff --git a/config/nomarchy/default/hypr/apps/webcam-overlay.conf b/config/nomarchy/default/hypr/apps/webcam-overlay.conf new file mode 100644 index 0000000..307d686 --- /dev/null +++ b/config/nomarchy/default/hypr/apps/webcam-overlay.conf @@ -0,0 +1,6 @@ +# Webcam overlay for screen recording +windowrule = float on, match:title WebcamOverlay +windowrule = pin on, match:title WebcamOverlay +windowrule = no_initial_focus on, match:title WebcamOverlay +windowrule = no_dim on, match:title WebcamOverlay +windowrule = move (monitor_w-window_w-40) (monitor_h-window_h-40), match:title WebcamOverlay diff --git a/config/nomarchy/default/hypr/autostart.conf b/config/nomarchy/default/hypr/autostart.conf new file mode 100644 index 0000000..2df79df --- /dev/null +++ b/config/nomarchy/default/hypr/autostart.conf @@ -0,0 +1,12 @@ +exec-once = uwsm-app -- hypridle +exec-once = uwsm-app -- mako +exec-once = uwsm-app -- waybar +exec-once = uwsm-app -- fcitx5 --disable notificationitem +exec-once = uwsm-app -- swaybg -i ~/.config/nomarchy/current/background -m fill +exec-once = uwsm-app -- swayosd-server +exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1 +exec-once = nomarchy-cmd-first-run + +# Slow app launch fix -- set systemd vars +exec-once = systemctl --user import-environment $(env | cut -d'=' -f 1) +exec-once = dbus-update-activation-environment --systemd --all diff --git a/config/nomarchy/default/hypr/bindings.conf b/config/nomarchy/default/hypr/bindings.conf new file mode 100644 index 0000000..0f74b71 --- /dev/null +++ b/config/nomarchy/default/hypr/bindings.conf @@ -0,0 +1,16 @@ +# Deprecated bindings file. New installations include everything directly. + +bindd = SUPER, RETURN, Terminal, exec, $terminal +bindd = SUPER, F, File manager, exec, $fileManager +bindd = SUPER, B, Web browser, exec, $browser +bindd = SUPER, M, Music player, exec, $music +bindd = SUPER, N, Neovim, exec, $terminal -e nvim +bindd = SUPER, T, Top, exec, $terminal -e btop +bindd = SUPER, D, Lazy Docker, exec, $terminal -e lazydocker +bindd = SUPER, G, Messenger, exec, $messenger +bindd = SUPER, O, Obsidian, exec, obsidian -disable-gpu +bindd = SUPER, SLASH, Password manager, exec, $passwordManager + +source = ~/.config/nomarchy/default/hypr/bindings/media.conf +source = ~/.config/nomarchy/default/hypr/bindings/tiling.conf +source = ~/.config/nomarchy/default/hypr/bindings/utilities.conf diff --git a/config/nomarchy/default/hypr/bindings/clipboard.conf b/config/nomarchy/default/hypr/bindings/clipboard.conf new file mode 100644 index 0000000..be3a6ab --- /dev/null +++ b/config/nomarchy/default/hypr/bindings/clipboard.conf @@ -0,0 +1,5 @@ +# Copy / Paste +bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert, +bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert, +bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X, +bindd = SUPER CTRL, V, Clipboard manager, exec, nomarchy-launch-walker -m clipboard diff --git a/config/nomarchy/default/hypr/bindings/media.conf b/config/nomarchy/default/hypr/bindings/media.conf new file mode 100644 index 0000000..c4d5514 --- /dev/null +++ b/config/nomarchy/default/hypr/bindings/media.conf @@ -0,0 +1,28 @@ +# Only display the OSD on the currently focused monitor +$osdclient = swayosd-client --monitor "$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')" + +# Laptop multimedia keys for volume and LCD brightness (with OSD) +bindeld = ,XF86AudioRaiseVolume, Volume up, exec, $osdclient --output-volume raise +bindeld = ,XF86AudioLowerVolume, Volume down, exec, $osdclient --output-volume lower +bindeld = ,XF86AudioMute, Mute, exec, $osdclient --output-volume mute-toggle +bindeld = ,XF86AudioMicMute, Mute microphone, exec, $osdclient --input-volume mute-toggle +bindeld = ,XF86MonBrightnessUp, Brightness up, exec, nomarchy-brightness-display +5% +bindeld = ,XF86MonBrightnessDown, Brightness down, exec, nomarchy-brightness-display 5%- +bindeld = ,XF86KbdBrightnessUp, Keyboard brightness up, exec, nomarchy-brightness-keyboard up +bindeld = ,XF86KbdBrightnessDown, Keyboard brightness down, exec, nomarchy-brightness-keyboard down +bindld = ,XF86KbdLightOnOff, Keyboard backlight cycle, exec, nomarchy-brightness-keyboard cycle + +# Precise 1% multimedia adjustments with Alt modifier +bindeld = ALT, XF86AudioRaiseVolume, Volume up precise, exec, $osdclient --output-volume +1 +bindeld = ALT, XF86AudioLowerVolume, Volume down precise, exec, $osdclient --output-volume -1 +bindeld = ALT, XF86MonBrightnessUp, Brightness up precise, exec, nomarchy-brightness-display +1% +bindeld = ALT, XF86MonBrightnessDown, Brightness down precise, exec, nomarchy-brightness-display 1%- + +# Requires playerctl +bindld = , XF86AudioNext, Next track, exec, $osdclient --playerctl next +bindld = , XF86AudioPause, Pause, exec, $osdclient --playerctl play-pause +bindld = , XF86AudioPlay, Play, exec, $osdclient --playerctl play-pause +bindld = , XF86AudioPrev, Previous track, exec, $osdclient --playerctl previous + +# Switch audio output with Super + Mute +bindld = SUPER, XF86AudioMute, Switch audio output, exec, nomarchy-cmd-audio-switch diff --git a/config/nomarchy/default/hypr/bindings/tiling-v2.conf b/config/nomarchy/default/hypr/bindings/tiling-v2.conf new file mode 100644 index 0000000..7788a5b --- /dev/null +++ b/config/nomarchy/default/hypr/bindings/tiling-v2.conf @@ -0,0 +1,128 @@ +# Close windows +bindd = SUPER, W, Close window, killactive, +bindd = CTRL ALT, DELETE, Close all windows, exec, nomarchy-hyprland-window-close-all + +# Control tiling +bindd = SUPER, J, Toggle window split, layoutmsg, togglesplit +bindd = SUPER, P, Pseudo window, pseudo, # dwindle +bindd = SUPER, T, Toggle window floating/tiling, togglefloating, +bindd = SUPER, F, Full screen, fullscreen, 0 +bindd = SUPER CTRL, F, Tiled full screen, fullscreenstate, 0 2 +bindd = SUPER ALT, F, Full width, fullscreen, 1 +bindd = SUPER, O, Pop window out (float & pin), exec, nomarchy-hyprland-window-pop +bindd = SUPER, L, Toggle workspace layout, exec, nomarchy-hyprland-workspace-layout-toggle + +# Move focus with SUPER + arrow keys +bindd = SUPER, LEFT, Move window focus left, movefocus, l +bindd = SUPER, RIGHT, Move window focus right, movefocus, r +bindd = SUPER, UP, Move window focus up, movefocus, u +bindd = SUPER, DOWN, Move window focus down, movefocus, d + +# Switch workspaces with SUPER + [1-9; 0] +bindd = SUPER, code:10, Switch to workspace 1, workspace, 1 +bindd = SUPER, code:11, Switch to workspace 2, workspace, 2 +bindd = SUPER, code:12, Switch to workspace 3, workspace, 3 +bindd = SUPER, code:13, Switch to workspace 4, workspace, 4 +bindd = SUPER, code:14, Switch to workspace 5, workspace, 5 +bindd = SUPER, code:15, Switch to workspace 6, workspace, 6 +bindd = SUPER, code:16, Switch to workspace 7, workspace, 7 +bindd = SUPER, code:17, Switch to workspace 8, workspace, 8 +bindd = SUPER, code:18, Switch to workspace 9, workspace, 9 +bindd = SUPER, code:19, Switch to workspace 10, workspace, 10 + +# Move active window to a workspace with SUPER + SHIFT + [1-9; 0] +bindd = SUPER SHIFT, code:10, Move window to workspace 1, movetoworkspace, 1 +bindd = SUPER SHIFT, code:11, Move window to workspace 2, movetoworkspace, 2 +bindd = SUPER SHIFT, code:12, Move window to workspace 3, movetoworkspace, 3 +bindd = SUPER SHIFT, code:13, Move window to workspace 4, movetoworkspace, 4 +bindd = SUPER SHIFT, code:14, Move window to workspace 5, movetoworkspace, 5 +bindd = SUPER SHIFT, code:15, Move window to workspace 6, movetoworkspace, 6 +bindd = SUPER SHIFT, code:16, Move window to workspace 7, movetoworkspace, 7 +bindd = SUPER SHIFT, code:17, Move window to workspace 8, movetoworkspace, 8 +bindd = SUPER SHIFT, code:18, Move window to workspace 9, movetoworkspace, 9 +bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10 + +# Move active window silently to a workspace with SUPER + SHIFT + ALT + [1-9; 0] +bindd = SUPER SHIFT ALT, code:10, Move window silently to workspace 1, movetoworkspacesilent, 1 +bindd = SUPER SHIFT ALT, code:11, Move window silently to workspace 2, movetoworkspacesilent, 2 +bindd = SUPER SHIFT ALT, code:12, Move window silently to workspace 3, movetoworkspacesilent, 3 +bindd = SUPER SHIFT ALT, code:13, Move window silently to workspace 4, movetoworkspacesilent, 4 +bindd = SUPER SHIFT ALT, code:14, Move window silently to workspace 5, movetoworkspacesilent, 5 +bindd = SUPER SHIFT ALT, code:15, Move window silently to workspace 6, movetoworkspacesilent, 6 +bindd = SUPER SHIFT ALT, code:16, Move window silently to workspace 7, movetoworkspacesilent, 7 +bindd = SUPER SHIFT ALT, code:17, Move window silently to workspace 8, movetoworkspacesilent, 8 +bindd = SUPER SHIFT ALT, code:18, Move window silently to workspace 9, movetoworkspacesilent, 9 +bindd = SUPER SHIFT ALT, code:19, Move window silently to workspace 10, movetoworkspacesilent, 10 + +# Control scratchpad +bindd = SUPER, S, Toggle scratchpad, togglespecialworkspace, scratchpad +bindd = SUPER ALT, S, Move window to scratchpad, movetoworkspacesilent, special:scratchpad + +# TAB between workspaces +bindd = SUPER, TAB, Next workspace, workspace, e+1 +bindd = SUPER SHIFT, TAB, Previous workspace, workspace, e-1 +bindd = SUPER CTRL, TAB, Former workspace, workspace, previous + +# Move workspaces to other monitors +bindd = SUPER SHIFT ALT, LEFT, Move workspace to left monitor, movecurrentworkspacetomonitor, l +bindd = SUPER SHIFT ALT, RIGHT, Move workspace to right monitor, movecurrentworkspacetomonitor, r +bindd = SUPER SHIFT ALT, UP, Move workspace to up monitor, movecurrentworkspacetomonitor, u +bindd = SUPER SHIFT ALT, DOWN, Move workspace to down monitor, movecurrentworkspacetomonitor, d + +# Swap active window with the one next to it with SUPER + SHIFT + arrow keys +bindd = SUPER SHIFT, LEFT, Swap window to the left, swapwindow, l +bindd = SUPER SHIFT, RIGHT, Swap window to the right, swapwindow, r +bindd = SUPER SHIFT, UP, Swap window up, swapwindow, u +bindd = SUPER SHIFT, DOWN, Swap window down, swapwindow, d + +# Cycle through applications on active workspace +bindd = ALT, TAB, Cycle to next window, cyclenext +bindd = ALT SHIFT, TAB, Cycle to prev window, cyclenext, prev +bindd = ALT, TAB, Reveal active window on top, bringactivetotop +bindd = ALT SHIFT, TAB, Reveal active window on top, bringactivetotop + +# Resize active window +bindd = SUPER, code:20, Expand window left, resizeactive, -100 0 # - key +bindd = SUPER, code:21, Shrink window left, resizeactive, 100 0 # = key +bindd = SUPER SHIFT, code:20, Shrink window up, resizeactive, 0 -100 +bindd = SUPER SHIFT, code:21, Expand window down, resizeactive, 0 100 + +# Scroll through existing workspaces with SUPER + scroll +bindd = SUPER, mouse_down, Scroll active workspace forward, workspace, e+1 +bindd = SUPER, mouse_up, Scroll active workspace backward, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindmd = SUPER, mouse:272, Move window, movewindow +bindmd = SUPER, mouse:273, Resize window, resizewindow + +# Toggle groups +bindd = SUPER, G, Toggle window grouping, togglegroup +bindd = SUPER ALT, G, Move active window out of group, moveoutofgroup + +# Join groups +bindd = SUPER ALT, LEFT, Move window to group on left, moveintogroup, l +bindd = SUPER ALT, RIGHT, Move window to group on right, moveintogroup, r +bindd = SUPER ALT, UP, Move window to group on top, moveintogroup, u +bindd = SUPER ALT, DOWN, Move window to group on bottom, moveintogroup, d + +# Navigate a single set of grouped windows +bindd = SUPER ALT, TAB, Next window in group, changegroupactive, f +bindd = SUPER ALT SHIFT, TAB, Previous window in group, changegroupactive, b + +# Window navigation for grouped windows +bindd = SUPER CTRL, LEFT, Move grouped window focus left, changegroupactive, b +bindd = SUPER CTRL, RIGHT, Move grouped window focus right, changegroupactive, f + +# Scroll through a set of grouped windows with SUPER + ALT + scroll +bindd = SUPER ALT, mouse_down, Next window in group, changegroupactive, f +bindd = SUPER ALT, mouse_up, Previous window in group, changegroupactive, b + +# Activate window in a group by number +bindd = SUPER ALT, code:10, Switch to group window 1, changegroupactive, 1 +bindd = SUPER ALT, code:11, Switch to group window 2, changegroupactive, 2 +bindd = SUPER ALT, code:12, Switch to group window 3, changegroupactive, 3 +bindd = SUPER ALT, code:13, Switch to group window 4, changegroupactive, 4 +bindd = SUPER ALT, code:14, Switch to group window 5, changegroupactive, 5 + +# Cycle monitor scaling +bindd = SUPER, Slash, Cycle monitor scaling, exec, nomarchy-hyprland-monitor-scaling-cycle diff --git a/config/nomarchy/default/hypr/bindings/tiling.conf b/config/nomarchy/default/hypr/bindings/tiling.conf new file mode 100644 index 0000000..c3360e9 --- /dev/null +++ b/config/nomarchy/default/hypr/bindings/tiling.conf @@ -0,0 +1,74 @@ +# This is now a deprecated file meant for those who did not wish to learn the latest Nomarchy hotkeys. +# Do not make changes here, but bring them to tiling-v2.conf instead. + +# Close windows +bindd = SUPER, W, Close window, killactive, +bindd = CTRL ALT, DELETE, Close all windows, exec, nomarchy-hyprland-window-close-all + +# Control tiling +bindd = SUPER, J, Toggle window split, togglesplit, # dwindle +bindd = SUPER, P, Pseudo window, pseudo, # dwindle +bindd = SUPER SHIFT, V, Toggle window floating/tiling, togglefloating, +bindd = SHIFT, F11, Force full screen, fullscreen, 0 +bindd = ALT, F11, Full width, fullscreen, 1 + +# Move focus with SUPER + arrow keys +bindd = SUPER, LEFT, Move focus left, movefocus, l +bindd = SUPER, RIGHT, Move focus right, movefocus, r +bindd = SUPER, UP, Move focus up, movefocus, u +bindd = SUPER, DOWN, Move focus down, movefocus, d + +# Switch workspaces with SUPER + [0-9] +bindd = SUPER, code:10, Switch to workspace 1, workspace, 1 +bindd = SUPER, code:11, Switch to workspace 2, workspace, 2 +bindd = SUPER, code:12, Switch to workspace 3, workspace, 3 +bindd = SUPER, code:13, Switch to workspace 4, workspace, 4 +bindd = SUPER, code:14, Switch to workspace 5, workspace, 5 +bindd = SUPER, code:15, Switch to workspace 6, workspace, 6 +bindd = SUPER, code:16, Switch to workspace 7, workspace, 7 +bindd = SUPER, code:17, Switch to workspace 8, workspace, 8 +bindd = SUPER, code:18, Switch to workspace 9, workspace, 9 +bindd = SUPER, code:19, Switch to workspace 10, workspace, 10 + +# Move active window to a workspace with SUPER + SHIFT + [0-9] +bindd = SUPER SHIFT, code:10, Move window to workspace 1, movetoworkspace, 1 +bindd = SUPER SHIFT, code:11, Move window to workspace 2, movetoworkspace, 2 +bindd = SUPER SHIFT, code:12, Move window to workspace 3, movetoworkspace, 3 +bindd = SUPER SHIFT, code:13, Move window to workspace 4, movetoworkspace, 4 +bindd = SUPER SHIFT, code:14, Move window to workspace 5, movetoworkspace, 5 +bindd = SUPER SHIFT, code:15, Move window to workspace 6, movetoworkspace, 6 +bindd = SUPER SHIFT, code:16, Move window to workspace 7, movetoworkspace, 7 +bindd = SUPER SHIFT, code:17, Move window to workspace 8, movetoworkspace, 8 +bindd = SUPER SHIFT, code:18, Move window to workspace 9, movetoworkspace, 9 +bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10 + +# TAB between workspaces +bindd = SUPER, TAB, Next workspace, workspace, e+1 +bindd = SUPER SHIFT, TAB, Previous workspace, workspace, e-1 +bindd = SUPER CTRL, TAB, Former workspace, workspace, previous + +# Swap active window with the one next to it with SUPER + SHIFT + arrow keys +bindd = SUPER SHIFT, LEFT, Swap window to the left, swapwindow, l +bindd = SUPER SHIFT, RIGHT, Swap window to the right, swapwindow, r +bindd = SUPER SHIFT, UP, Swap window up, swapwindow, u +bindd = SUPER SHIFT, DOWN, Swap window down, swapwindow, d + +# Cycle through applications on active workspace +bindd = ALT, TAB, Cycle to next window, cyclenext +bindd = ALT SHIFT, TAB, Cycle to prev window, cyclenext, prev +bindd = ALT, TAB, Reveal active window on top, bringactivetotop +bindd = ALT SHIFT, TAB, Reveal active window on top, bringactivetotop + +# Resize active window +bindd = SUPER, code:20, Expand window left, resizeactive, -100 0 # - key +bindd = SUPER, code:21, Shrink window left, resizeactive, 100 0 # = key +bindd = SUPER SHIFT, code:20, Shrink window up, resizeactive, 0 -100 +bindd = SUPER SHIFT, code:21, Expand window down, resizeactive, 0 100 + +# Scroll through existing workspaces with SUPER + scroll +bindd = SUPER, MOUSE_DOWN, Scroll active workspace forward, workspace, e+1 +bindd = SUPER, MOUSE_UP, Scroll active workspace backward, workspace, e-1 + +# Move/resize windows with mainMod + LMB/RMB and dragging +bindmd = SUPER, mouse:272, Move window, movewindow +bindmd = SUPER, mouse:273, Resize window, resizewindow diff --git a/config/nomarchy/default/hypr/bindings/utilities.conf b/config/nomarchy/default/hypr/bindings/utilities.conf new file mode 100644 index 0000000..6a32518 --- /dev/null +++ b/config/nomarchy/default/hypr/bindings/utilities.conf @@ -0,0 +1,62 @@ +# Menus +bindd = SUPER, SPACE, Launch apps, exec, nomarchy-launch-walker +bindd = SUPER CTRL, E, Emoji picker, exec, nomarchy-launch-walker -m symbols +bindd = SUPER CTRL, C, Capture menu, exec, nomarchy-menu capture +bindd = SUPER CTRL, O, Toggle menu, exec, nomarchy-menu toggle +bindd = SUPER ALT, SPACE, Nomarchy menu, exec, nomarchy-menu +bindd = SUPER, ESCAPE, System menu, exec, nomarchy-menu system +bindld = , XF86PowerOff, Power menu, exec, nomarchy-menu system +bindd = SUPER, K, Show key bindings, exec, nomarchy-menu-keybindings +bindd = , XF86Calculator, Calculator, exec, gnome-calculator + +# Aesthetics +bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, nomarchy-toggle-waybar +bindd = SUPER CTRL, SPACE, Theme background menu, exec, nomarchy-menu background +bindd = SUPER SHIFT CTRL, SPACE, Theme menu, exec, nomarchy-menu theme +bindd = SUPER, BACKSPACE, Toggle window transparency, exec, nomarchy-hyprland-active-window-transparency-toggle +bindd = SUPER SHIFT, BACKSPACE, Toggle window gaps, exec, nomarchy-hyprland-window-gaps-toggle +bindd = SUPER CTRL, BACKSPACE, Toggle single-window square aspect, exec, nomarchy-hyprland-window-single-square-aspect-toggle + +# Notifications +bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss +bindd = SUPER SHIFT, COMMA, Dismiss all notifications, exec, makoctl dismiss --all +bindd = SUPER CTRL, COMMA, Toggle silencing notifications, exec, nomarchy-toggle-notification-silencing +bindd = SUPER ALT, COMMA, Invoke last notification, exec, makoctl invoke +bindd = SUPER SHIFT ALT, COMMA, Restore last notification, exec, makoctl restore + +# Toggles +bindd = SUPER CTRL, I, Toggle locking on idle, exec, nomarchy-toggle-idle +bindd = SUPER CTRL, N, Toggle nightlight, exec, nomarchy-toggle-nightlight + +# Control Apple Display brightness +bindd = CTRL, F1, Apple Display brightness down, exec, nomarchy-brightness-display-apple -5000 +bindd = CTRL, F2, Apple Display brightness up, exec, nomarchy-brightness-display-apple +5000 +bindd = SHIFT CTRL, F2, Apple Display full brightness, exec, nomarchy-brightness-display-apple +60000 + +# Captures +bindd = , PRINT, Screenshot, exec, nomarchy-cmd-screenshot +bindd = ALT, PRINT, Screenrecording, exec, nomarchy-menu screenrecord +bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a + +# File sharing +bindd = SUPER CTRL, S, Share, exec, nomarchy-menu share + +# Waybar-less information +bindd = SUPER CTRL ALT, T, Show time, exec, notify-send -u low " $(date +"%A %H:%M · %d %B %Y · Week %V")" +bindd = SUPER CTRL ALT, B, Show battery remaining, exec, notify-send -u low "$(nomarchy-battery-status)" + +# Control panels +bindd = SUPER CTRL, A, Audio controls, exec, nomarchy-launch-audio +bindd = SUPER CTRL, B, Bluetooth controls, exec, nomarchy-launch-bluetooth +bindd = SUPER CTRL, W, Wifi controls, exec, nomarchy-launch-wifi +bindd = SUPER CTRL, T, Activity, exec, nomarchy-launch-tui btop + +# Dictation +bindd = SUPER CTRL, X, Toggle dictation, exec, voxtype record toggle + +# Zoom +bindd = SUPER CTRL, Z, Zoom in, exec, hyprctl keyword cursor:zoom_factor $(hyprctl getoption cursor:zoom_factor -j | jq '.float + 1') +bindd = SUPER CTRL ALT, Z, Reset zoom, exec, hyprctl keyword cursor:zoom_factor 1 + +# Lock system +bindd = SUPER CTRL, L, Lock system, exec, nomarchy-lock-screen diff --git a/config/nomarchy/default/hypr/envs.conf b/config/nomarchy/default/hypr/envs.conf new file mode 100644 index 0000000..85afc77 --- /dev/null +++ b/config/nomarchy/default/hypr/envs.conf @@ -0,0 +1,29 @@ +# Cursor size +env = XCURSOR_SIZE,24 +env = HYPRCURSOR_SIZE,24 + +# Force all apps to use Wayland +env = GDK_BACKEND,wayland,x11,* +env = QT_QPA_PLATFORM,wayland;xcb +env = QT_STYLE_OVERRIDE,kvantum +env = SDL_VIDEODRIVER,wayland,x11 +env = MOZ_ENABLE_WAYLAND,1 +env = ELECTRON_OZONE_PLATFORM_HINT,wayland +env = OZONE_PLATFORM,wayland +env = XDG_SESSION_TYPE,wayland + +# Allow better support for screen sharing (Google Meet, Discord, etc) +env = XDG_CURRENT_DESKTOP,Hyprland +env = XDG_SESSION_DESKTOP,Hyprland + +xwayland { + force_zero_scaling = true +} + +# Use XCompose file +env = XCOMPOSEFILE,~/.XCompose + +# Don't show update on first launch +ecosystem { + no_update_news = true +} diff --git a/config/nomarchy/default/hypr/input.conf b/config/nomarchy/default/hypr/input.conf new file mode 100644 index 0000000..74b2aca --- /dev/null +++ b/config/nomarchy/default/hypr/input.conf @@ -0,0 +1,21 @@ +# https://wiki.hyprland.org/Configuring/Variables/#input +input { + kb_layout = us + kb_variant = + kb_model = + kb_options = compose:caps + kb_rules = + + follow_mouse = 1 + + sensitivity = 0 # -1.0 - 1.0, 0 means no modification. + + touchpad { + natural_scroll = false + } +} + +misc { + key_press_enables_dpms = true # key press will trigger wake + mouse_move_enables_dpms = true # mouse move will trigger wake +} diff --git a/config/nomarchy/default/hypr/looknfeel.conf b/config/nomarchy/default/hypr/looknfeel.conf new file mode 100644 index 0000000..b73c954 --- /dev/null +++ b/config/nomarchy/default/hypr/looknfeel.conf @@ -0,0 +1,147 @@ +# Refer to https://wiki.hyprland.org/Configuring/Variables/ + +# Variables +$activeBorderColor = rgba(33ccffee) rgba(00ff99ee) 45deg +$inactiveBorderColor = rgba(595959aa) + +# https://wiki.hyprland.org/Configuring/Variables/#general +general { + gaps_in = 5 + gaps_out = 10 + + border_size = 2 + + # https://wiki.hyprland.org/Configuring/Variables/#variable-types for info about colors + col.active_border = $activeBorderColor + col.inactive_border = $inactiveBorderColor + + # Set to true enable resizing windows by clicking and dragging on borders and gaps + resize_on_border = false + + # Please see https://wiki.hyprland.org/Configuring/Tearing/ before you turn this on + allow_tearing = false + + layout = dwindle +} + +# https://wiki.hyprland.org/Configuring/Variables/#decoration +decoration { + rounding = 0 + + shadow { + enabled = true + range = 2 + render_power = 3 + color = rgba(1a1a1aee) + } + + # https://wiki.hyprland.org/Configuring/Variables/#blur + blur { + enabled = true + size = 2 + passes = 2 + special = true + brightness = 0.60 + contrast = 0.75 + } +} + +# https://wiki.hypr.land/Configuring/Variables/#group +group { + col.border_active = $activeBorderColor + col.border_inactive = $inactiveBorderColor + col.border_locked_active = -1 + col.border_locked_inactive = -1 + + groupbar { + font_size = 12 + font_family = monospace + font_weight_active = ultraheavy + font_weight_inactive = normal + + indicator_height = 0 + indicator_gap = 5 + height = 22 + gaps_in = 5 + gaps_out = 0 + + text_color = rgb(ffffff) + text_color_inactive = rgba(ffffff90) + col.active = rgba(00000040) + col.inactive = rgba(00000020) + + gradients = true + gradient_rounding = 0 + gradient_round_only_edges = false + } +} + + +# https://wiki.hyprland.org/Configuring/Variables/#animations +animations { + enabled = yes, please :) + + # Default animations, see https://wiki.hyprland.org/Configuring/Animations/ for more + + bezier = easeOutQuint,0.23,1,0.32,1 + bezier = easeInOutCubic,0.65,0.05,0.36,1 + bezier = linear,0,0,1,1 + bezier = almostLinear,0.5,0.5,0.75,1.0 + bezier = quick,0.15,0,0.1,1 + + animation = global, 1, 10, default + animation = border, 1, 5.39, easeOutQuint + animation = windows, 1, 4.79, easeOutQuint + animation = windowsIn, 1, 4.1, easeOutQuint, popin 87% + animation = windowsOut, 1, 1.49, linear, popin 87% + animation = fadeIn, 1, 1.73, almostLinear + animation = fadeOut, 1, 1.46, almostLinear + animation = fade, 1, 3.03, quick + animation = layers, 1, 3.81, easeOutQuint + animation = layersIn, 1, 4, easeOutQuint, fade + animation = layersOut, 1, 1.5, linear, fade + animation = fadeLayersIn, 1, 1.79, almostLinear + animation = fadeLayersOut, 1, 1.39, almostLinear + animation = workspaces, 0, 0, ease + animation = specialWorkspace, 1, 4, easeOutQuint, slidevert +} + +# See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more +dwindle { + pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true # You probably want this + force_split = 2 # Always split on the right +} + +# See https://wiki.hyprland.org/Configuring/Master-Layout/ for more +master { + new_status = master +} + +# https://wiki.hyprland.org/Configuring/Variables/#misc +misc { + disable_hyprland_logo = true + disable_splash_rendering = true + disable_scale_notification = true + focus_on_activate = true + anr_missed_pings = 3 + on_focus_under_fullscreen = 1 +} + +# https://wiki.hypr.land/Configuring/Variables/#cursor +cursor { + hide_on_key_press = true + warp_on_change_workspace = 1 +} + +# Auto toggle scratchpad on switching workspace from scratchpad +binds { + hide_special_on_workspace_change = true +} + +# Style Gum confirm to match terminal theme +env = GUM_CONFIRM_PROMPT_FOREGROUND,6 # Cyan +env = GUM_CONFIRM_SELECTED_FOREGROUND,0 # Black +env = GUM_CONFIRM_SELECTED_BACKGROUND,2 # Green +env = GUM_CONFIRM_UNSELECTED_FOREGROUND,7 # White +env = GUM_CONFIRM_UNSELECTED_BACKGROUND,8 # Dark grey diff --git a/config/nomarchy/default/hypr/plain-bindings.conf b/config/nomarchy/default/hypr/plain-bindings.conf new file mode 100644 index 0000000..aaf56fe --- /dev/null +++ b/config/nomarchy/default/hypr/plain-bindings.conf @@ -0,0 +1,16 @@ +# Application bindings +bindd = SUPER, RETURN, Terminal, exec, uwsm-app -- xdg-terminal-exec --dir="$(nomarchy-cmd-terminal-cwd)" +bindd = SUPER SHIFT, RETURN, Browser, exec, nomarchy-launch-browser +bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window +bindd = SUPER ALT SHIFT, F, File manager (cwd), exec, uwsm-app -- nautilus --new-window "$(nomarchy-cmd-terminal-cwd)" +bindd = SUPER SHIFT, B, Browser, exec, nomarchy-launch-browser +bindd = SUPER SHIFT ALT, B, Browser (private), exec, nomarchy-launch-browser --private +bindd = SUPER SHIFT, N, Editor, exec, nomarchy-launch-editor + +# Add extra bindings +# bindd = SUPER SHIFT, A, ChatGPT, exec, nomarchy-launch-webapp "https://chatgpt.com" +# bindd = SUPER SHIFT, R, exec, alacritty -e ssh your-server + +# Overwrite existing bindings, like putting Nomarchy Menu on Super + Space +# unbind = SUPER, SPACE +# bindd = SUPER, SPACE, Nomarchy menu, exec, nomarchy-menu diff --git a/config/nomarchy/default/hypr/windows.conf b/config/nomarchy/default/hypr/windows.conf new file mode 100644 index 0000000..8089063 --- /dev/null +++ b/config/nomarchy/default/hypr/windows.conf @@ -0,0 +1,15 @@ +# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more +# Hyprland 0.53+ syntax +windowrule = suppress_event maximize, match:class .* + +# Tag all windows for default opacity (apps can override with -default-opacity tag) +windowrule = tag +default-opacity, match:class .* + +# Fix some dragging issues with XWayland +windowrule = no_focus on, match:class ^$, match:title ^$, match:xwayland 1, match:float 1, match:fullscreen 0, match:pin 0 + +# App-specific tweaks (may remove default-opacity tag) +source = ~/.config/nomarchy/default/hypr/apps.conf + +# Apply default opacity after apps have had a chance to opt out +windowrule = opacity 0.97 0.9, match:tag default-opacity diff --git a/config/nomarchy/default/mako/core.ini b/config/nomarchy/default/mako/core.ini new file mode 100644 index 0000000..267f7cf --- /dev/null +++ b/config/nomarchy/default/mako/core.ini @@ -0,0 +1,34 @@ +anchor=top-right +default-timeout=5000 +width=420 +outer-margin=20 +padding=10,15 +border-size=2 +max-icon-size=32 +font=sans-serif 14px + +[app-name=Spotify] +invisible=1 + +[mode=do-not-disturb] +invisible=true + +[mode=do-not-disturb app-name=notify-send] +invisible=false + +[urgency=critical] +default-timeout=0 +layer=overlay + +[summary~="Setup Wi-Fi"] +on-button-left=exec sh -c 'nomarchy-notification-dismiss "Setup Wi-Fi"; nomarchy-launch-wifi' + +[summary~="Update System"] +on-button-left=exec sh -c 'nomarchy-notification-dismiss "Update System"; nomarchy-launch-floating-terminal-with-presentation nomarchy-update' + +[summary~="Learn Keybindings"] +on-button-left=exec sh -c 'nomarchy-notification-dismiss "Learn Keybindings"; nomarchy-menu-keybindings' + +[summary~="Screenshot copied & saved"] +max-icon-size=80 +format=%s\n%b diff --git a/config/nomarchy/default/voxtype/config.toml b/config/nomarchy/default/voxtype/config.toml new file mode 100644 index 0000000..59d1f94 --- /dev/null +++ b/config/nomarchy/default/voxtype/config.toml @@ -0,0 +1,97 @@ +# Voxtype Configuration +# +# Location: ~/.config/voxtype/config.toml +# All settings can be overridden via CLI flags +# +# State file for external integrations (Waybar, polybar, etc.) +# Use "auto" for default location ($XDG_RUNTIME_DIR/voxtype/state), +# a custom path, or "disabled" to turn off. The daemon writes state +# ("idle", "recording", "transcribing") to this file whenever it changes. +# Required for `voxtype record toggle` and `voxtype status` commands. +state_file = "auto" + +[hotkey] +# Hotkey is configured in Hyprland. Default is Super + Ctrl + X +enabled = false + +[audio] +# Audio input device ("default" uses system default) +# List devices with: pactl list sources short +device = "default" + +# Sample rate in Hz (whisper expects 16000) +sample_rate = 16000 + +# Maximum recording duration in seconds (safety limit) +max_duration_secs = 60 + +# [audio.feedback] +# Enable audio feedback sounds (beeps when recording starts/stops) +# enabled = true +# +# Sound theme: "default", "subtle", "mechanical", or path to custom theme directory +# theme = "default" +# +# Volume level (0.0 to 1.0) +# volume = 0.7 + +[whisper] +# Model to use for transcription +# Options: tiny, tiny.en, base, base.en, small, small.en, medium, medium.en, large-v3, large-v3-turbo +# .en models are English-only but faster and more accurate for English +# large-v3-turbo is faster than large-v3 with minimal accuracy loss (recommended for GPU) +# Or provide absolute path to a custom .bin model file +model = "base.en" + +# Language for transcription +# Use "en" for English, "auto" for auto-detection +# See: https://github.com/openai/whisper#available-models-and-languages +language = "en" + +# Translate non-English speech to English +translate = false + +# Number of CPU threads for inference (omit for auto-detection) +# threads = 4 + +[output] +# Primary output mode: "type" or "clipboard" +# - type: Simulates keyboard input at cursor position (requires ydotool) +# - clipboard: Copies text to clipboard (requires wl-copy) +mode = "type" + +# Fall back to clipboard if typing fails +fallback_to_clipboard = true + +# Delay between typed characters in milliseconds +# 0 = fastest possible, increase if characters are dropped +type_delay_ms = 1 + +# Post-processing command (optional) +# Pipe transcribed text through an external command for cleanup before output. +# The command receives text on stdin and outputs processed text on stdout. +# Useful for LLM-based text cleanup, grammar correction, filler word removal. +# On any failure (timeout, error), falls back to original transcription. +# +# [output.post_process] +# command = "ollama run llama3.2:1b 'Clean up this dictation. Fix grammar, remove filler words. Output only the cleaned text:'" +# timeout_ms = 30000 # 30 second timeout (generous for LLM) + +[output.notification] +# Show notification when recording starts (hotkey pressed) +on_recording_start = false + +# Show notification when recording stops (transcription beginning) +on_recording_stop = false + +# Show notification with transcribed text after transcription completes +on_transcription = false + +# [text] +# Text processing options (word replacements, spoken punctuation) +# +# Enable spoken punctuation conversion (e.g., say "period" to get ".") +# spoken_punctuation = false +# +# Custom word replacements (case-insensitive) +# replacements = { "hyperwhisper" = "hyprwhspr" } diff --git a/config/nomarchy/default/walker/restart.conf b/config/nomarchy/default/walker/restart.conf new file mode 100644 index 0000000..5794031 --- /dev/null +++ b/config/nomarchy/default/walker/restart.conf @@ -0,0 +1,3 @@ +[Service] +Restart=always +RestartSec=2 diff --git a/config/nomarchy/default/walker/themes/nomarchy-default/layout.xml b/config/nomarchy/default/walker/themes/nomarchy-default/layout.xml new file mode 100644 index 0000000..3b7bda7 --- /dev/null +++ b/config/nomarchy/default/walker/themes/nomarchy-default/layout.xml @@ -0,0 +1,156 @@ + + + + + + true + Walker + + + + 644 + hidden + horizontal + center + center + + + + vertical + true + true + 10 + + + + hidden + horizontal + fill + true + true + + + + fill + true + true + + + + + + + + horizontal + 10 + true + true + + + + true + 100 + Waiting for elephant... + + + + + + No Results + 0.0 + true + + + + + + true + false + true + 600 + 300 + 0 + true + true + automatic + automatic + + + + 1 + false + + + + + + + + + + + + + + true + 10 + + + + 10 + + + + + + true + end + 10 + + + + + + + + + 0 + false + + + + + + + + diff --git a/config/nomarchy/default/walker/themes/nomarchy-default/style.css b/config/nomarchy/default/walker/themes/nomarchy-default/style.css new file mode 100644 index 0000000..d47de70 --- /dev/null +++ b/config/nomarchy/default/walker/themes/nomarchy-default/style.css @@ -0,0 +1,116 @@ +@import "../../../../../../../.config/nomarchy/current/theme/walker.css"; + +* { + all: unset; +} + +* { + font-family: monospace; + font-size: 18px; + color: @text; +} + +scrollbar { + opacity: 0; +} + +.normal-icons { + -gtk-icon-size: 16px; +} + +.large-icons { + -gtk-icon-size: 32px; +} + +.box-wrapper { + background: alpha(@base, 0.95); + padding: 20px; + border: 2px solid @border; +} + +.preview-box { +} + +.box { +} + +.search-container { + background: @base; + padding: 10px; +} + +.input placeholder { + opacity: 0.5; +} + +.input { +} + +.input:focus, +.input:active { + box-shadow: none; + outline: none; +} + +.content-container { +} + +.placeholder { +} + +.scroll { +} + +.list { +} + +child, +child > * { +} + +child:hover .item-box { +} + +child:selected .item-box { +} + +child:selected .item-box * { + color: @selected-text; +} + +.item-box { + padding-left: 14px; +} + +.item-text-box { + all: unset; + padding: 14px 0; +} + +.item-text { +} + +.item-subtext { + font-size: 0px; + min-height: 0px; + margin: 0px; + padding: 0px; +} + +.item-image { + margin-right: 14px; + -gtk-icon-transform: scale(0.9); +} + +.current { + font-style: italic; +} + +.keybind-hints { + background: @background; + padding: 10px; + margin-top: 10px; +} + +.preview { +} diff --git a/config/nomarchy/default/walker/walker.desktop b/config/nomarchy/default/walker/walker.desktop new file mode 100644 index 0000000..fa7bdfe --- /dev/null +++ b/config/nomarchy/default/walker/walker.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Name=Walker +Comment=Walker Service +Exec=walker --gapplication-service +StartupNotify=false +Terminal=false +Type=Application diff --git a/config/nomarchy/default/waybar/indicators/idle.sh b/config/nomarchy/default/waybar/indicators/idle.sh new file mode 100755 index 0000000..ebb5f4f --- /dev/null +++ b/config/nomarchy/default/waybar/indicators/idle.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if pgrep -x hypridle >/dev/null; then + echo '{"text": ""}' +else + echo '{"text": "󱫖", "tooltip": "Idle lock disabled", "class": "active"}' +fi diff --git a/config/nomarchy/default/waybar/indicators/notification-silencing.sh b/config/nomarchy/default/waybar/indicators/notification-silencing.sh new file mode 100755 index 0000000..d5a6827 --- /dev/null +++ b/config/nomarchy/default/waybar/indicators/notification-silencing.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if makoctl mode | grep -q 'do-not-disturb'; then + echo '{"text": "󰂛", "tooltip": "Notifications silenced", "class": "active"}' +else + echo '{"text": ""}' +fi diff --git a/config/nomarchy/default/waybar/indicators/screen-recording.sh b/config/nomarchy/default/waybar/indicators/screen-recording.sh new file mode 100755 index 0000000..80038e0 --- /dev/null +++ b/config/nomarchy/default/waybar/indicators/screen-recording.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +if pgrep -f "^gpu-screen-recorder" >/dev/null; then + echo '{"text": "󰻂", "tooltip": "Stop recording", "class": "active"}' +else + echo '{"text": ""}' +fi diff --git a/config/nomarchy/default/wireplumber/wireplumber.conf.d/alsa-soft-mixer.conf b/config/nomarchy/default/wireplumber/wireplumber.conf.d/alsa-soft-mixer.conf new file mode 100644 index 0000000..6fc1dbd --- /dev/null +++ b/config/nomarchy/default/wireplumber/wireplumber.conf.d/alsa-soft-mixer.conf @@ -0,0 +1,18 @@ +## Use software volume control for all ALSA devices. +## This prevents hardware mixer quirks (like muffled audio on Realtek codecs) +## and provides consistent volume behavior across all hardware. + +monitor.alsa.rules = [ + { + matches = [ + { + device.name = "~alsa_card.*" + } + ] + actions = { + update-props = { + api.alsa.soft-mixer = true + } + } + } +] diff --git a/config/nomarchy/default/xcompose b/config/nomarchy/default/xcompose new file mode 100644 index 0000000..a45c5be --- /dev/null +++ b/config/nomarchy/default/xcompose @@ -0,0 +1,29 @@ +include "%L" + +# Emoji + : "😄" # smile + : "😂" # cry + : "😍" # love + : "✌️" # victory + : "❤️" # heart + : "👍" # yes + : "👎" # no + : "🖕" # fuck + : "🤞" # wish + : "🤘" # rock + : "😘" # kiss + : "🙄" # eyeroll + : "🤤" # droll + : "💰" # money + : "🎉" # xellebrate + <1> : "💯" # 100% + : "🥂" # toast +

: "🙏" # pray + : "😉" # wink + : "👌" # OK + : "👋" # greeting + : "💪" # arm + : "🤯" # blowing + +# Typography + : "—" diff --git a/config/walker/config.toml b/config/walker/config.toml index ebbb8e6..6c39101 100644 --- a/config/walker/config.toml +++ b/config/walker/config.toml @@ -1,7 +1,7 @@ force_keyboard_focus = true # forces keyboard forcus to stay in Walker selection_wrap = true # wrap list if at bottom or top theme = "nomarchy-default" # theme to use -additional_theme_location = "~/.local/share/nomarchy/default/walker/themes/" +additional_theme_location = "~/.config/nomarchy/default/walker/themes/" hide_action_hints = true # globally hide the action hints [placeholders] diff --git a/modules/home/default.nix b/modules/home/default.nix index 7934276..aac255c 100644 --- a/modules/home/default.nix +++ b/modules/home/default.nix @@ -1,7 +1,7 @@ { config, pkgs, inputs, lib, ... }: let - palettes = import ../../themes/nomarchy-palettes.nix; + palettes = import ../../assets/themes/nomarchy-palettes.nix; userPackagesFile = "${config.home.homeDirectory}/.config/home-manager/user-packages.json"; userPackages = if builtins.pathExists userPackagesFile then let diff --git a/modules/home/scripts.nix b/modules/home/scripts.nix index 8c2b2a1..d67f2e3 100644 --- a/modules/home/scripts.nix +++ b/modules/home/scripts.nix @@ -39,7 +39,7 @@ let installPhase = '' mkdir -p $out/bin - cp -r * $out/bin/ + find . -type f -exec cp {} $out/bin/ \; chmod +x $out/bin/* # Wrap every script to ensure dependencies are in PATH and inject configuration diff --git a/modules/home/state.nix b/modules/home/state.nix index 3c630f1..6805e65 100644 --- a/modules/home/state.nix +++ b/modules/home/state.nix @@ -119,9 +119,9 @@ in fonts.monospace = togglesState.font or "JetBrainsMono Nerd Font"; # Derived properties from the theme directory - isLightMode = builtins.pathExists (../../themes + "/${togglesState.theme or "nord"}/light.mode"); + isLightMode = builtins.pathExists (../../assets/themes + "/${togglesState.theme or "nord"}/light.mode"); iconsTheme = let - iconsFile = ../../themes + "/${togglesState.theme or "nord"}/icons.theme"; + iconsFile = ../../assets/themes + "/${togglesState.theme or "nord"}/icons.theme"; in if builtins.pathExists iconsFile then lib.removeSuffix "\n" (builtins.readFile iconsFile) diff --git a/modules/home/stylix.nix b/modules/home/stylix.nix index e3c0878..7ffd492 100644 --- a/modules/home/stylix.nix +++ b/modules/home/stylix.nix @@ -2,12 +2,12 @@ let # Re-use our state-based logic - palettes = import ../../themes/nomarchy-palettes.nix; + palettes = import ../../assets/themes/nomarchy-palettes.nix; activeThemeName = config.nomarchy.theme; activeWallpaper = if config.nomarchy.wallpaper != "" then config.nomarchy.wallpaper - else "${../../themes/catppuccin/backgrounds/1-totoro.png}"; # Fallback + else "${../../assets/themes/catppuccin/backgrounds/1-totoro.png}"; # Fallback # Map nix-colors palette to a format Stylix expects (attrset of hex strings) currentPalette = (palettes.${activeThemeName} or palettes.nord).palette; diff --git a/modules/home/theme-files.nix b/modules/home/theme-files.nix index 4b81131..b872f09 100644 --- a/modules/home/theme-files.nix +++ b/modules/home/theme-files.nix @@ -2,7 +2,7 @@ { xdg.configFile."nomarchy/current/theme" = { - source = ../../themes/${config.nomarchy.theme}; + source = ../../assets/themes/${config.nomarchy.theme}; recursive = true; }; @@ -13,5 +13,8 @@ xdg.configFile."nomarchy/branding/logo.txt".source = ../../assets/branding/logo.txt; # Expose all themes to the system via local share for script accessibility - xdg.dataFile."nomarchy/themes".source = ../../themes; + xdg.dataFile."nomarchy/themes".source = ../../assets/themes; + + # Nautilus python extensions + xdg.dataFile."nautilus-python/extensions/localsend.py".source = ../../assets/nautilus-python/extensions/localsend.py; } diff --git a/modules/home/theme-switcher.nix b/modules/home/theme-switcher.nix index 79b762c..3fb88e7 100644 --- a/modules/home/theme-switcher.nix +++ b/modules/home/theme-switcher.nix @@ -1,7 +1,7 @@ { config, pkgs, ... }: let - palettes = import ../../themes/nomarchy-palettes.nix; + palettes = import ../../assets/themes/nomarchy-palettes.nix; themeNames = builtins.attrNames palettes; themeList = builtins.concatStringsSep "\\n" themeNames; diff --git a/modules/system/browser.nix b/modules/system/browser.nix index 370d323..6aa6651 100644 --- a/modules/system/browser.nix +++ b/modules/system/browser.nix @@ -1,7 +1,7 @@ { config, pkgs, lib, ... }: let - palettes = import ../../themes/nomarchy-palettes.nix; + palettes = import ../../assets/themes/nomarchy-palettes.nix; activeThemeName = config.nomarchy.system.theme; currentPalette = (palettes.${activeThemeName} or palettes.nord).palette; diff --git a/modules/system/default.nix b/modules/system/default.nix index ef745bb..7ccbc6c 100644 --- a/modules/system/default.nix +++ b/modules/system/default.nix @@ -4,6 +4,7 @@ imports = [ ./options.nix ./state.nix + ./systemd.nix ./plymouth.nix ./sddm.nix ./hardware.nix @@ -12,6 +13,7 @@ ./network.nix ./browser.nix ./impermanence.nix + ./makima.nix ]; time.timeZone = config.nomarchy.system.timezone; diff --git a/modules/system/hardware.nix b/modules/system/hardware.nix index 89595ec..e0d63ee 100644 --- a/modules/system/hardware.nix +++ b/modules/system/hardware.nix @@ -62,6 +62,7 @@ in (mkIf config.nomarchy.system.features.hybridGPU { services.supergfxd.enable = true; + systemd.services.supergfxd.serviceConfig.ExecStartPre = "-${pkgs.coreutils}/bin/sleep 5"; }) ]; } diff --git a/modules/system/makima.nix b/modules/system/makima.nix new file mode 100644 index 0000000..05208d2 --- /dev/null +++ b/modules/system/makima.nix @@ -0,0 +1,25 @@ +{ config, pkgs, lib, ... }: + +let + cfg = config.nomarchy.system.features.makima; +in +{ + config = lib.mkIf cfg { + # If the user has makima-bin available in their overlays (as they originally used a custom package), + # this will install it. Otherwise, it will fail evaluation if not available in nixpkgs. + environment.systemPackages = [ pkgs.makima-bin ]; + + environment.etc."makima/AT Translated Set 2 keyboard.toml".source = ../../assets/makima + "/AT Translated Set 2 keyboard.toml"; + + systemd.services.makima = { + description = "Makima key remapping service"; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + User = config.services.displayManager.autoLogin.user; + Environment = "MAKIMA_CONFIG=/etc/makima"; + ExecStart = "${pkgs.makima-bin}/bin/makima"; + Restart = "on-failure"; + }; + }; + }; +} diff --git a/modules/system/options.nix b/modules/system/options.nix index 25f5c8f..df31e79 100644 --- a/modules/system/options.nix +++ b/modules/system/options.nix @@ -40,6 +40,11 @@ default = false; description = "Whether to enable hybrid GPU support (supergfxd)."; }; + makima = lib.mkOption { + type = lib.types.bool; + default = false; + description = "Whether to enable makima key remapper."; + }; }; theme = lib.mkOption { type = lib.types.str; diff --git a/modules/system/sddm.nix b/modules/system/sddm.nix index 9dd9c0c..ffcc261 100644 --- a/modules/system/sddm.nix +++ b/modules/system/sddm.nix @@ -1,11 +1,25 @@ { config, pkgs, lib, ... }: +let + nomarchy-sddm-theme = pkgs.stdenv.mkDerivation { + pname = "nomarchy-sddm-theme"; + version = "1.0"; + src = ../../assets/sddm/nomarchy; + installPhase = '' + mkdir -p $out/share/sddm/themes/nomarchy + cp -r * $out/share/sddm/themes/nomarchy/ + ''; + }; +in { services.displayManager.sddm = { enable = true; wayland.enable = true; + theme = "nomarchy"; }; + environment.systemPackages = [ nomarchy-sddm-theme ]; + # Enable Hyprland system-level dependencies programs.hyprland.enable = true; } diff --git a/modules/system/state.nix b/modules/system/state.nix index 4091420..dafb77f 100644 --- a/modules/system/state.nix +++ b/modules/system/state.nix @@ -22,6 +22,7 @@ in fingerprint = systemState.features.fingerprint or false; fido2 = systemState.features.fido2 or false; hybridGPU = systemState.features.hybridGPU or false; + makima = systemState.features.makima or false; }; theme = systemState.theme or "nord"; }; diff --git a/modules/system/systemd.nix b/modules/system/systemd.nix new file mode 100644 index 0000000..3596690 --- /dev/null +++ b/modules/system/systemd.nix @@ -0,0 +1,64 @@ +{ config, pkgs, lib, ... }: + +{ + systemd.settings.Manager.DefaultTimeoutStopSec = "5s"; + + systemd.services."user@".serviceConfig.TimeoutStopSec = "5s"; + + powerManagement.powerDownCommands = '' + # --- force-igpu --- + # Use the Vfio to Integrated trick to turn off NVIDIA dgpu when in integrated mode + if [[ $1 == "hibernate" ]] && ${pkgs.coreutils}/bin/lsmod | grep -q supergfxd; then + ${pkgs.supergfxctl}/bin/supergfxctl -m Vfio || true + sleep 1 + fi + + # --- keyboard-backlight --- + # Turn off keyboard backlight before hibernate to prevent hang on power-off. + if [[ $1 == "hibernate" ]]; then + device="" + for candidate in /sys/class/leds/*kbd_backlight*; do + if [[ -e "$candidate" ]]; then + device="$(${pkgs.coreutils}/bin/basename "$candidate")" + break + fi + done + if [[ -n "$device" ]]; then + ${pkgs.brightnessctl}/bin/brightnessctl -d "$device" set 0 >/dev/null 2>&1 || true + fi + fi + + # --- unmount-fuse --- + # Lazy-unmount gvfsd-fuse filesystems before suspend/hibernate + while IFS=' ' read -r _ mountpoint fstype _; do + if [[ $fstype == fuse.gvfsd-fuse ]]; then + mountpoint=$(printf '%b' "$mountpoint") + ${pkgs.fuse3}/bin/fusermount3 -uz "$mountpoint" 2>/dev/null || ${pkgs.fuse}/bin/fusermount -uz "$mountpoint" 2>/dev/null || true + fi + done < /proc/mounts + ''; + + powerManagement.resumeCommands = '' + # --- force-igpu --- + if ${pkgs.coreutils}/bin/lsmod | grep -q supergfxd; then + sleep 4 + ${pkgs.supergfxctl}/bin/supergfxctl -m Vfio || true + sleep 1 + ${pkgs.supergfxctl}/bin/supergfxctl -m Integrated || true + fi + + # --- unmount-fuse --- + ( + sleep 5 + for uid_dir in /run/user/*; do + uid="$(${pkgs.coreutils}/bin/basename "$uid_dir")" + if [[ -S $uid_dir/bus ]]; then + sudo -u "#$uid" env \ + DBUS_SESSION_BUS_ADDRESS="unix:path=$uid_dir/bus" \ + XDG_RUNTIME_DIR="$uid_dir" \ + systemctl --user restart gvfs-daemon.service 2>/dev/null || true + fi + done + ) & + ''; +}