Compare commits
3 Commits
684d54e0c2
...
077e852b3b
| Author | SHA1 | Date | |
|---|---|---|---|
| 077e852b3b | |||
| ca7f9bb79e | |||
| f2a28f8577 |
12
README.md
12
README.md
@ -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 |
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
@ -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>
|
||||
@ -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;
|
||||
}
|
||||
@ -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" },
|
||||
]
|
||||
|
||||
@ -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}",
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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)..."
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user