Compare commits

...

2 Commits

Author SHA1 Message Date
Bernardo Magri
329dc009b6 fix(installer): repair git init, LUKS reprompt, impermanence-no exit, quiet disko
- nrun git git init -q passed 'git' as a subcommand to git itself,
  failing the post-disko repo init. Drop the duplicated arg.
- disko's luks module reads passwordFile at the top level; placing it
  under settings.* meant it was silently ignored and disko fell back
  to askPassword=true, prompting the user again on luksOpen. Move the
  option to the right scope.
- configure_impermanence now uses local rc, nrun gum confirm, and an
  explicit case (0/1/130) with a final return 0 so a No answer no
  longer aborts the installer.
- run_disko_with_retry hides disko's chatty output behind a gum spin
  by default and surfaces the captured log on failure. Set
  NOMARCHY_VERBOSE_DISKO=1 to stream output live.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-02 09:48:37 +01:00
Bernardo Magri
0af1395df2 fix(themes): complete summer-day with Everforest Light palette
colors.toml and icons.theme were copy-pasted from summer-night (a dark
theme). Repalette to Everforest Light, mark as light via light.mode,
switch icons to Yaru-blue, fix the broken Waybar import, and add the
btop/neovim/vscode/rofi/walker app configs the sibling themes ship.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-02 09:48:21 +01:00
11 changed files with 388 additions and 53 deletions

View File

@@ -1,4 +1,21 @@
@import "../colors/everforest-light.css";
@define-color bg_dim #efebd4;
@define-color bg0 #fdf6e3;
@define-color bg1 #f4f0d9;
@define-color bg2 #efebd4;
@define-color bg3 #e6e2cc;
@define-color bg4 #e0dcc7;
@define-color bg5 #bdc3af;
@define-color fg #5c6a72;
@define-color red #f85552;
@define-color orange #f57d26;
@define-color yellow #dfa000;
@define-color green #8da101;
@define-color aqua #35a77c;
@define-color blue #3a94c5;
@define-color purple #df69ba;
@define-color grey0 #a6b0a0;
@define-color grey1 #939f91;
@define-color grey2 #829181;
/* margin: top right bottom left */
/* Spacing outside the element */
@@ -21,7 +38,7 @@ window#waybar {
transition-duration: .5s;
border-bottom-width: 5px;
border-bottom-color: #2e3538;
border-bottom-color: #3d4a52;
border-bottom-style: solid;
}
@@ -60,14 +77,14 @@ window#waybar {
margin-bottom: -5px;
border-bottom-width: 5px;
border-bottom-color: #1c4a62;
border-bottom-color: #1e6791;
border-bottom-style: solid;
}
#custom-launcher {
background-color: @green;
color: @bg0;
border-bottom-color: #465000;
border-bottom-color: #5d6b00;
margin-left: 15px;
padding-left: 20px;
@@ -77,7 +94,7 @@ window#waybar {
#custom-powermenu {
background-color: @red;
color: @bg0;
border-bottom-color: #9e0906;
border-bottom-color: #b32f2c;
margin-right: 15px;
padding-left: 20px;

View File

@@ -44,8 +44,8 @@ let
content = {
type = "luks";
name = extraLuks drive;
passwordFile = "/dev/shm/nomarchy-luks.key";
settings.allowDiscards = true;
settings.passwordFile = "/dev/shm/nomarchy-luks.key";
content.type = "btrfs";
};
};
@@ -116,8 +116,8 @@ in {
content = {
type = "luks";
name = mainLuksName;
passwordFile = "/dev/shm/nomarchy-luks.key";
settings.allowDiscards = true;
settings.passwordFile = "/dev/shm/nomarchy-luks.key";
content = rootBtrfs;
};
};

View File

@@ -869,17 +869,27 @@ configure_impermanence() {
info "This provides a clean, reproducible system."
echo ""
rc=0
gum confirm "Enable Impermanence?" || rc=$?
if [[ $rc -eq 0 ]]; then
local rc=0
nrun gum confirm "Enable Impermanence?" || rc=$?
case "$rc" in
0)
ENABLE_IMPERMANENCE="true"
success "Impermanence enabled"
else
if [[ $rc -eq 130 ]]; then return 130; fi
;;
1)
ENABLE_IMPERMANENCE="false"
info "Impermanence disabled (traditional persistent root)"
fi
;;
130)
return 130
;;
*)
ENABLE_IMPERMANENCE="false"
info "Impermanence disabled (traditional persistent root)"
;;
esac
save_state
return 0
}
# ============================================================================
@@ -1084,6 +1094,10 @@ _LUKS_KEY_PATH="/dev/shm/nomarchy-luks.key"
# Wrap the disko invocation so a failure surfaces the last few lines of
# output and offers Retry / View full log / Abort. set -e is suspended for
# the disko call so we can inspect its exit code; restored on every path.
#
# By default disko's chatty output is hidden behind a `gum spin` spinner;
# the full log is captured and shown on failure or via `gum pager`. Set
# NOMARCHY_VERBOSE_DISKO=1 to stream disko output live instead.
run_disko_with_retry() {
local main_drive="$1"
local extras_nix="$2"
@@ -1093,6 +1107,7 @@ run_disko_with_retry() {
while true; do
local rc=0
if [[ "$NOMARCHY_VERBOSE_DISKO" == "1" ]]; then
set +e
disko --mode destroy,format,mount \
--argstr mainDrive "$main_drive" \
@@ -1100,6 +1115,25 @@ run_disko_with_retry() {
"$disko_file" 2>&1 | tee "$log"
rc=${PIPESTATUS[0]}
set -e
else
# Silent path: run disko in the background, write all output to
# $log, and show a spinner. Use a status file for the exit code
# because `gum spin` doesn't propagate the wrapped command's rc.
local status_file
status_file=$(mktemp --suffix=.disko.rc)
set +e
nrun gum spin --spinner dot --title "Partitioning disk(s) with disko..." -- \
bash -c '
disko --mode destroy,format,mount \
--argstr mainDrive "$1" \
--arg extraDrives "$2" \
"$3" > "$4" 2>&1
echo $? > "$5"
' _ "$main_drive" "$extras_nix" "$disko_file" "$log" "$status_file"
set -e
rc=$(cat "$status_file" 2>/dev/null || echo 1)
rm -f "$status_file"
fi
if [[ $rc -eq 0 ]]; then
rm -f "$log"
@@ -1197,11 +1231,11 @@ execute_installation() {
info "Initializing git repository..."
(
cd /mnt/etc/nixos
nrun git git init -q
nrun git git add .
nrun git git config user.name "Nomarchy Installer"
nrun git git config user.email "installer@nomarchy"
nrun git git commit -qm "Initial Nomarchy configuration"
nrun git init -q
nrun git add .
nrun git config user.name "Nomarchy Installer"
nrun git config user.email "installer@nomarchy"
nrun git commit -qm "Initial Nomarchy configuration"
)
success "Git repository initialized"

View File

@@ -0,0 +1,86 @@
# Main background, empty for terminal default, need to be empty if you want transparent background
theme[main_bg]="#fdf6e3"
# Main text color
theme[main_fg]="#5c6a72"
# Title color for boxes
theme[title]="#5c6a72"
# Highlight color for keyboard shortcuts
theme[hi_fg]="#f85552"
# Background color of selected items
theme[selected_bg]="#e6e2cc"
# Foreground color of selected items
theme[selected_fg]="#dfa000"
# Color of inactive/disabled text
theme[inactive_fg]="#bdc3af"
# Color of text appearing on top of graphs, i.e uptime and current network graph scaling
theme[graph_text]="#5c6a72"
# Misc colors for processes box including mini cpu graphs, details memory graph and details status text
theme[proc_misc]="#8da101"
# Cpu box outline color
theme[cpu_box]="#bdc3af"
# Memory/disks box outline color
theme[mem_box]="#bdc3af"
# Net up/down box outline color
theme[net_box]="#bdc3af"
# Processes box outline color
theme[proc_box]="#bdc3af"
# Box divider line and small boxes line color
theme[div_line]="#bdc3af"
# Temperature graph colors
theme[temp_start]="#8da101"
theme[temp_mid]="#dfa000"
theme[temp_end]="#f85552"
# CPU graph colors
theme[cpu_start]="#8da101"
theme[cpu_mid]="#dfa000"
theme[cpu_end]="#f85552"
# Mem/Disk free meter
theme[free_start]="#f85552"
theme[free_mid]="#dfa000"
theme[free_end]="#8da101"
# Mem/Disk cached meter
theme[cached_start]="#3a94c5"
theme[cached_mid]="#35a77c"
theme[cached_end]="#8da101"
# Mem/Disk available meter
theme[available_start]="#f85552"
theme[available_mid]="#dfa000"
theme[available_end]="#8da101"
# Mem/Disk used meter
theme[used_start]="#8da101"
theme[used_mid]="#dfa000"
theme[used_end]="#f85552"
# Download graph colors
theme[download_start]="#8da101"
theme[download_mid]="#35a77c"
theme[download_end]="#3a94c5"
# Upload graph colors
theme[upload_start]="#dfa000"
theme[upload_mid]="#df69ba"
theme[upload_end]="#f85552"
# Process box color gradient for threads, mem and cpu usage
theme[process_start]="#8da101"
theme[process_mid]="#f85552"
theme[process_end]="#f85552"

View File

@@ -0,0 +1,16 @@
return {
{ "neanias/everforest-nvim" },
{
"LazyVim/LazyVim",
opts = {
colorscheme = "everforest",
background = "soft",
},
},
{
"LazyVim/LazyVim",
init = function()
vim.opt.background = "light"
end,
},
}

View File

@@ -0,0 +1,143 @@
/**
* Nomarchy Summer Day Rofi Theme
* Converted from everforest.rasi and config
*/
configuration {
modi: "drun";
show-icons: true;
icon-theme: "Papirus-Light";
terminal: "kitty";
drun-display-format: "{name}";
case-sensitive: false;
location: 0;
disable-history: false;
hide-scrollbar: true;
display-drun: "Search";
}
* {
/* Summer Day color definitions */
bg0: #fdf6e3;
fg: #5c6a72;
red: #f85552;
yellow: #dfa000;
green: #8da101;
aqua: #35a77c;
blue: #3a94c5;
purple: #df69ba;
grey0: #a6b0a0;
font: "Iosevka Nerd Font 17";
background-color: transparent;
text-color: @fg;
}
window {
transparency: "real";
background-color: @fg;
text-color: @bg0;
border-bottom: 5px;
border-color: @yellow;
border-radius: 15px;
width: 40%;
height: 50%;
location: center;
anchor: center;
x-offset: 0;
y-offset: 0;
}
mainbox {
background-color: transparent;
children: [ inputbar, listview ];
spacing: 0px;
padding: 0px;
}
inputbar {
children: [ prompt, entry ];
background-color: @green;
text-color: @bg0;
expand: false;
border-bottom: 5px;
border-color: @grey0;
border-radius: 10px;
margin: 15px;
padding: 10px;
spacing: 15px;
}
prompt {
enabled: true;
background-color: inherit;
text-color: inherit;
}
entry {
background-color: inherit;
text-color: inherit;
cursor: text;
placeholder: "Type to search...";
placeholder-color: @bg0;
}
listview {
background-color: transparent;
columns: 1;
lines: 8;
spacing: 0px;
cycle: true;
dynamic: true;
layout: vertical;
padding: 20px;
}
element {
background-color: transparent;
text-color: @bg0;
orientation: horizontal;
border-radius: 10px;
padding: 10px;
spacing: 15px;
}
element-icon {
background-color: transparent;
text-color: inherit;
size: 40px;
cursor: inherit;
}
element-text {
background-color: transparent;
text-color: inherit;
highlight: bold;
cursor: inherit;
vertical-align: 0.5;
horizontal-align: 0.0;
}
element selected {
background-color: @bg0;
text-color: @fg;
border-bottom: 5px;
border-color: #bdc3af;
border-radius: 10px;
}
element-text selected {
text-color: @fg;
}
element-icon selected {
text-color: @fg;
}
scrollbar {
width: 0px;
background-color: transparent;
handle-width: 0px;
handle-color: transparent;
border: 0px;
}

View File

@@ -0,0 +1,4 @@
{
"name": "Everforest Light",
"extension": "sainnhe.everforest"
}

View File

@@ -0,0 +1,34 @@
#window {
background-color: #fdf6e3;
color: #5c6a72;
border-bottom: 5px solid #dfa000;
border-radius: 15px;
}
#search {
background-color: #8da101;
color: #fdf6e3;
border-bottom: 5px solid #bdc3af;
border-radius: 10px;
margin: 15px;
padding: 10px;
}
#input {
color: #5c6a72;
}
#list {
padding: 20px;
}
.item {
border-radius: 10px;
padding: 10px;
}
.item.active {
background-color: #e6e2cc;
color: #5c6a72;
border-bottom: 5px solid #bdc3af;
}

View File

@@ -1,23 +1,23 @@
accent = "#83b6af"
cursor = "#d3c6aa"
foreground = "#d3c6aa"
background = "#2d353b"
selection_foreground = "#d3c6aa"
selection_background = "#505a60"
accent = "#3a94c5"
cursor = "#5c6a72"
foreground = "#5c6a72"
background = "#fdf6e3"
selection_foreground = "#5c6a72"
selection_background = "#d3dbc8"
color0 = "#3c474d"
color1 = "#e68183"
color2 = "#a7c080"
color3 = "#d9bb80"
color4 = "#83b6af"
color5 = "#d39bb6"
color6 = "#87c095"
color7 = "#868d80"
color8 = "#868d80"
color9 = "#e68183"
color10 = "#a7c080"
color11 = "#d9bb80"
color12 = "#83b6af"
color13 = "#d39bb6"
color14 = "#87c095"
color15 = "#868d80"
color0 = "#5c6a72"
color1 = "#f85552"
color2 = "#8da101"
color3 = "#dfa000"
color4 = "#3a94c5"
color5 = "#df69ba"
color6 = "#35a77c"
color7 = "#fdf6e3"
color8 = "#829181"
color9 = "#f85552"
color10 = "#8da101"
color11 = "#dfa000"
color12 = "#3a94c5"
color13 = "#df69ba"
color14 = "#35a77c"
color15 = "#fdf6e3"

View File

@@ -1 +1 @@
Everforest-Dark
Yaru-blue

View File

@@ -0,0 +1 @@
# This will set "prefer-light" and use "Adwaita" as the theme