Compare commits

..

3 Commits

Author SHA1 Message Date
077e852b3b Use system zsh plugins, remove redundant waybar network modules
- Source zsh-autosuggestions and zsh-syntax-highlighting from
  /usr/share/zsh/plugins/ instead of oh-my-zsh custom dir
- Add both as official packages
- Remove waybar network and custom/vpn modules (nm-applet covers this)
- Move tray from modules-left to first position in modules-right
2026-03-31 10:27:53 +02:00
ca7f9bb79e Remove non-existent walker providers, add nirisessions set
Remove prefixes and actions for providers not installed as
elephant packages: windows, symbols, websearch, archlinuxpkgs.
Add provider set for nirisessions.
2026-03-31 09:58:13 +02:00
f2a28f8577 docs: fix README, remove gtklock and wlogout remnants
README: fix keybind (wlogout → moonset), remove gtklock from project
structure, correct package counts, remove nonexistent install-themes.sh,
mark update.sh as legacy wrapper.
Remove gtklock packages (5) and wlogout from package lists.
Remove defaults/xdg/gtklock/ config directory.
Remove stale foot/waybar overrides from transform.sh.
2026-03-31 09:36:20 +02:00
11 changed files with 18 additions and 268 deletions

View File

@ -50,7 +50,7 @@ desktop that can be rebuilt from scratch in minutes.
4. Reboot again — done.
The archinstall config clones this repo to `/opt/moonarch` via custom-commands.
post-install.sh handles the remaining ~100 packages, all configs, themes, services,
post-install.sh handles the remaining ~95 packages, all configs, themes, services,
and user setup.
### Transform (Existing Arch+Wayland System)
@ -99,15 +99,14 @@ config/
user_configuration.json archinstall config (locale, audio, services, custom-commands)
packages/
official.txt Arch repo packages (~100), one per line
aur.txt AUR packages (~15), one per line
official.txt Arch repo packages (~80), one per line
aur.txt AUR packages (~20), one per line
scripts/
lib.sh Shared helpers sourced by all scripts
post-install.sh Main automation (packages, configs, themes, services)
transform.sh Convert existing Arch+Wayland system to Moonarch
install-themes.sh Cursor theme installer (Sweet-cursors)
update.sh System updater (symlinked to moonarch-update)
update.sh Legacy wrapper — prints notice, forwards to moonarch-update
defaults/
xdg/ System-wide XDG configs (deployed to /etc/xdg/)
@ -117,7 +116,6 @@ defaults/
foot/foot.ini Terminal: font, colors, keybinds
dunst/dunstrc Notifications: geometry, colors, behavior
kanshi/config Display profiles (empty, user-configured)
gtklock/ Lock screen: config, UI layout, CSS
stasis/stasis.rune Idle manager: AC/battery power plans
pipewire/ Audio: RNNoise input denoising
waypaper/config.ini Wallpaper manager: backend, folder, transitions
@ -178,7 +176,7 @@ greetd ─► niri (greeter instance) ─► moongreet ─► user authenticates
| `Super+E` | File manager |
| `Super+A` | Audio control (walker) |
| `Super+N` | VPN manager |
| `Super+Alt+L` | Session menu (wlogout) |
| `Super+Alt+L` | Session menu (moonset) |
| `Print` | Screenshot |
| `Ctrl+Print` | Screenshot screen |
| `Alt+Print` | Screenshot window |

View File

@ -117,12 +117,12 @@ if command -v fzf &>/dev/null; then
export FZF_ALT_C_OPTS="--preview 'eza --tree --color=always {} | head -200'"
fi
# --- Plugins (oh-my-zsh) ---
if [[ -d "${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting" ]]; then
source "${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
# --- Plugins (system packages) ---
if [[ -f /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ]]; then
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
fi
if [[ -d "${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions" ]]; then
source "${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh"
if [[ -f /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh ]]; then
source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
ZSH_AUTOSUGGEST_STRATEGY=(history completion)
fi

View File

@ -1,29 +0,0 @@
# ABOUTME: Moonarch default gtklock configuration.
# ABOUTME: User overrides go in ~/.config/gtklock/config.ini
[main]
modules=powerbar-module;userinfo-module;playerctl-module;dpms
follow-focus=true
layout=/etc/xdg/gtklock/gtklock.ui
[powerbar]
show-labels=false
linked-buttons=true
reboot-command=systemctl reboot
poweroff-command=systemctl -i poweroff
suspend-command=systemctl suspend
userswitch-command=
logout-command=
[playerctl]
art-size=64
position=under-clock
[userinfo]
round-image=true
horizontal-layout=false
under-clock=false
[dpms]
idle-hide=true
idle-timeout=10

View File

@ -1,138 +0,0 @@
<!-- ABOUTME: Moonarch default gtklock UI layout definition. -->
<!-- ABOUTME: User overrides go in ~/.config/gtklock/gtklock.ui -->
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<object class="GtkBox" id="window-box">
<property name="name">window-box</property>
<property name="margin">20</property>
<property name="halign">center</property>
<property name="valign">center</property>
<property name="orientation">vertical</property>
<property name="spacing">50</property>
<child>
<object class="GtkBox" id="info-box">
<property name="name">info-box</property>
<property name="halign">center</property>
<property name="orientation">vertical</property>
<property name="spacing">5</property>
<child>
<object class="GtkBox" id="time-box">
<property name="name">time-box</property>
<property name="halign">center</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="clock-label">
<property name="name">clock-label</property>
<property name="halign">center</property>
</object>
</child>
<child>
<object class="GtkLabel" id="date-label">
<property name="name">date-label</property>
<property name="halign">center</property>
</object>
</child>
</object>
</child>
</object>
</child>
<child>
<object class="GtkRevealer" id="body-revealer">
<property name="transition-type">none</property>
<property name="reveal-child">0</property>
<child>
<object class="GtkGrid" id="body-grid">
<property name="row-spacing">5</property>
<property name="column-spacing">5</property>
<child>
<object class="GtkLabel" id="input-label">
<property name="name">input-label</property>
<property name="label" translatable="yes">Password:</property>
</object>
<packing>
<property name="left-attach">0</property>
<property name="top-attach">0</property>
</packing>
</child>
<child>
<object class="GtkEntry" id="input-field">
<property name="name">input-field</property>
<property name="width-request">380</property>
<property name="visibility">0</property>
<property name="caps-lock-warning">0</property>
<property name="input-purpose">password</property>
<property name="secondary-icon-name">view-reveal-symbolic</property>
<signal name="icon-release" handler="window_pw_toggle_vis"/>
<signal name="activate" handler="window_pw_check"/>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">0</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkRevealer" id="message-revealer">
<property name="transition-type">none</property>
<property name="no-show-all">1</property>
<child>
<object class="GtkScrolledWindow" id="message-scrolled-window">
<property name="hscrollbar-policy">never</property>
<property name="max-content-height">256</property>
<property name="propagate-natural-height">1</property>
<child>
<object class="GtkViewport">
<child>
<object class="GtkBox" id="message-box">
<property name="orientation">vertical</property>
<property name="homogeneous">1</property>
</object>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">1</property>
<property name="width">2</property>
</packing>
</child>
<child>
<object class="GtkBox">
<property name="halign">end</property>
<property name="spacing">5</property>
<child>
<object class="GtkLabel" id="warning-label">
<property name="name">warning-label</property>
</object>
</child>
<child>
<object class="GtkLabel" id="error-label">
<property name="name">error-label</property>
</object>
</child>
<child>
<object class="GtkButton" id="unlock-button">
<property name="name">unlock-button</property>
<property name="label" translatable="yes">Unlock</property>
<style>
<class name="suggested-action"/>
</style>
<signal name="clicked" handler="window_pw_check"/>
</object>
</child>
</object>
<packing>
<property name="left-attach">1</property>
<property name="top-attach">2</property>
<property name="width">2</property>
</packing>
</child>
</object>
</child>
</object>
</child>
</object>
</interface>

View File

@ -1,12 +0,0 @@
/* ABOUTME: Moonarch default gtklock stylesheet. */
/* ABOUTME: User overrides go in ~/.config/gtklock/style.css */
window {
background-image: url("/usr/share/moonarch/wallpaper.jpg");
background-size: cover;
}
#powerbar {
padding-bottom: 100px;
background: red;
}

View File

@ -49,7 +49,6 @@ show_actions = ["alt j"]
default = [
"desktopapplications",
"calc",
"websearch",
]
empty = ["desktopapplications"]
max_results = 50
@ -66,6 +65,10 @@ empty = ["bluetooth"]
default = ["wireplumber"]
empty = ["wireplumber"]
[providers.sets.sessions]
default = ["nirisessions"]
empty = ["nirisessions"]
[[providers.prefixes]]
prefix = ";"
provider = "providerlist"
@ -78,26 +81,14 @@ provider = "runner"
prefix = "/"
provider = "files"
[[providers.prefixes]]
prefix = "."
provider = "symbols"
[[providers.prefixes]]
prefix = "="
provider = "calc"
[[providers.prefixes]]
prefix = "@"
provider = "websearch"
[[providers.prefixes]]
prefix = ":"
provider = "clipboard"
[[providers.prefixes]]
prefix = "$"
provider = "windows"
[providers.clipboard]
time_format = "relative"
@ -150,26 +141,12 @@ wireplumber = [
{ action = "set_default_device", label = "set default", bind = "ctrl d", after = "Nothing" },
]
archlinuxpkgs = [
{ action = "install", bind = "Return", default = true },
{ action = "remove", bind = "Return" },
{ action = "show_all", label = "show all", bind = "ctrl i", after = "AsyncClearReload" },
{ action = "refresh", label = "refresh", bind = "ctrl r", after = "AsyncReload" },
{ action = "visit_url", label = "open URL", bind = "ctrl o" },
{ action = "show_installed", label = "show installed", bind = "ctrl i", after = "AsyncClearReload" },
]
calc = [
{ action = "copy", default = true, bind = "Return" },
{ action = "delete", bind = "ctrl d", after = "AsyncReload" },
{ action = "delete_all", bind = "ctrl shift d", after = "AsyncReload" },
]
websearch = [
{ action = "search", default = true, bind = "Return" },
{ action = "open_url", label = "open url", default = true, bind = "Return" },
]
files = [
{ action = "open", default = true, bind = "Return" },
{ action = "opendir", label = "open dir", bind = "ctrl Return" },
@ -182,6 +159,3 @@ runner = [
{ action = "runterminal", label = "run in terminal", bind = "shift Return" },
]
symbols = [
{ action = "run_cmd", label = "select", default = true, bind = "Return" },
]

View File

@ -8,7 +8,6 @@
"modules-left": [
"group/sys",
"niri/workspaces",
"tray",
"wlr/taskbar",
"niri/window"
],
@ -16,9 +15,10 @@
],
"modules-right": [
"tray",
"mpris",
"custom/cpugov",
"group/net",
"bluetooth",
"group/sound",
"backlight",
"battery",
@ -34,14 +34,6 @@
"privacy"
]
},
"group/net": {
"orientation": "inherit",
"modules": [
"custom/vpn",
"network",
"bluetooth"
]
},
"group/stats": {
"orientation": "inherit",
"modules": [
@ -73,23 +65,6 @@
"clock"
]
},
"network": {
"format-wifi": "{icon}",
"format-ethernet": " {ifname}",
"format-disconnected": "󰱟 Offline",
"tooltip-format": "󰊗 {ifname} via {gwaddr}",
"tooltip-format-wifi": " WiFi {essid} ({signalStrength}%)",
"tooltip-format-ethernet": "󰱔 {ifname}",
"tooltip-format-disconnected": "Disconnected",
"on-click": "nm-connection-editor",
"format-icons": [
"󱛅",
"󱛂",
"󱛃",
"󱚽"
],
"max-length": 5
},
"tray": {
"icon-size": 15,
"spacing": 10
@ -364,14 +339,6 @@
"tooltip-format-activated": "󱎴 No Lockscreen on idle",
"tooltip-format-deactivated": "󰷛 Lockscreen on idle"
},
"custom/vpn": {
"format": "󰖂",
"exec": "echo '{\"class\": \"connected\", \"tooltip\": \"VPN Connected\"}'",
"exec-if": "nmcli -t -f TYPE,STATE connection show --active | grep -qE '^(vpn|wireguard):'",
"return-type": "json",
"interval": 5,
"signal": 9
},
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",

View File

@ -42,7 +42,6 @@ window#waybar {
#memory,
#bluetooth,
#temperature,
#network,
#pulseaudio,
#tray,
#mode,
@ -59,7 +58,6 @@ window#waybar {
#custom-gpu-usage,
#custom-cpugov,
#custom-dnd,
#custom-vpn.connected,
#power-profiles-daemon,
#privacy,
#gamemode,

View File

@ -21,8 +21,6 @@ waybar-niri-windows-bin
waybar-niri-workspaces-enhanced-git
wdisplays-persistent-gettext
wl-color-picker
wlogout
gtklock-dpms-module
# Applications
blueberry

View File

@ -14,6 +14,8 @@ zip
# Shell & Terminal
zsh
zsh-autosuggestions
zsh-syntax-highlighting
foot
foot-terminfo
bat
@ -65,10 +67,6 @@ libnotify
upower
awww
brightnessctl
gtklock
gtklock-playerctl-module
gtklock-powerbar-module
gtklock-userinfo-module
nwg-look
greetd
polkit-gnome

View File

@ -285,10 +285,6 @@ done
log "Deploying moonarch config overrides..."
cp /usr/share/moonarch/walker-config.toml "$HOME/.config/walker/config.toml"
log " + walker/config.toml"
cp /usr/share/moonarch/foot/foot.ini "$HOME/.config/foot/foot.ini"
log " + foot/foot.ini"
cp /usr/share/moonarch/waybar/style.css "$HOME/.config/waybar/style.css"
log " + waybar/style.css"
# Deploy user defaults (overwrite, no existence check)
log "Deploying user config defaults to ~/.config/ (overwrite)..."