Compare commits
2 Commits
f2b99e0f75
...
329dc009b6
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
329dc009b6 | ||
|
|
0af1395df2 |
@@ -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 */
|
/* margin: top right bottom left */
|
||||||
/* Spacing outside the element */
|
/* Spacing outside the element */
|
||||||
@@ -21,7 +38,7 @@ window#waybar {
|
|||||||
transition-duration: .5s;
|
transition-duration: .5s;
|
||||||
|
|
||||||
border-bottom-width: 5px;
|
border-bottom-width: 5px;
|
||||||
border-bottom-color: #2e3538;
|
border-bottom-color: #3d4a52;
|
||||||
border-bottom-style: solid;
|
border-bottom-style: solid;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,14 +77,14 @@ window#waybar {
|
|||||||
margin-bottom: -5px;
|
margin-bottom: -5px;
|
||||||
|
|
||||||
border-bottom-width: 5px;
|
border-bottom-width: 5px;
|
||||||
border-bottom-color: #1c4a62;
|
border-bottom-color: #1e6791;
|
||||||
border-bottom-style: solid;
|
border-bottom-style: solid;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-launcher {
|
#custom-launcher {
|
||||||
background-color: @green;
|
background-color: @green;
|
||||||
color: @bg0;
|
color: @bg0;
|
||||||
border-bottom-color: #465000;
|
border-bottom-color: #5d6b00;
|
||||||
|
|
||||||
margin-left: 15px;
|
margin-left: 15px;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
@@ -77,9 +94,9 @@ window#waybar {
|
|||||||
#custom-powermenu {
|
#custom-powermenu {
|
||||||
background-color: @red;
|
background-color: @red;
|
||||||
color: @bg0;
|
color: @bg0;
|
||||||
border-bottom-color: #9e0906;
|
border-bottom-color: #b32f2c;
|
||||||
|
|
||||||
margin-right: 15px;
|
margin-right: 15px;
|
||||||
padding-left: 20px;
|
padding-left: 20px;
|
||||||
padding-right: 23px;
|
padding-right: 23px;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,8 +44,8 @@ let
|
|||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "luks";
|
||||||
name = extraLuks drive;
|
name = extraLuks drive;
|
||||||
|
passwordFile = "/dev/shm/nomarchy-luks.key";
|
||||||
settings.allowDiscards = true;
|
settings.allowDiscards = true;
|
||||||
settings.passwordFile = "/dev/shm/nomarchy-luks.key";
|
|
||||||
content.type = "btrfs";
|
content.type = "btrfs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@@ -116,8 +116,8 @@ in {
|
|||||||
content = {
|
content = {
|
||||||
type = "luks";
|
type = "luks";
|
||||||
name = mainLuksName;
|
name = mainLuksName;
|
||||||
|
passwordFile = "/dev/shm/nomarchy-luks.key";
|
||||||
settings.allowDiscards = true;
|
settings.allowDiscards = true;
|
||||||
settings.passwordFile = "/dev/shm/nomarchy-luks.key";
|
|
||||||
content = rootBtrfs;
|
content = rootBtrfs;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -869,17 +869,27 @@ configure_impermanence() {
|
|||||||
info "This provides a clean, reproducible system."
|
info "This provides a clean, reproducible system."
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
rc=0
|
local rc=0
|
||||||
gum confirm "Enable Impermanence?" || rc=$?
|
nrun gum confirm "Enable Impermanence?" || rc=$?
|
||||||
if [[ $rc -eq 0 ]]; then
|
case "$rc" in
|
||||||
ENABLE_IMPERMANENCE="true"
|
0)
|
||||||
success "Impermanence enabled"
|
ENABLE_IMPERMANENCE="true"
|
||||||
else
|
success "Impermanence enabled"
|
||||||
if [[ $rc -eq 130 ]]; then return 130; fi
|
;;
|
||||||
ENABLE_IMPERMANENCE="false"
|
1)
|
||||||
info "Impermanence disabled (traditional persistent root)"
|
ENABLE_IMPERMANENCE="false"
|
||||||
fi
|
info "Impermanence disabled (traditional persistent root)"
|
||||||
|
;;
|
||||||
|
130)
|
||||||
|
return 130
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
ENABLE_IMPERMANENCE="false"
|
||||||
|
info "Impermanence disabled (traditional persistent root)"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
save_state
|
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
|
# 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
|
# 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.
|
# 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() {
|
run_disko_with_retry() {
|
||||||
local main_drive="$1"
|
local main_drive="$1"
|
||||||
local extras_nix="$2"
|
local extras_nix="$2"
|
||||||
@@ -1093,13 +1107,33 @@ run_disko_with_retry() {
|
|||||||
|
|
||||||
while true; do
|
while true; do
|
||||||
local rc=0
|
local rc=0
|
||||||
set +e
|
if [[ "$NOMARCHY_VERBOSE_DISKO" == "1" ]]; then
|
||||||
disko --mode destroy,format,mount \
|
set +e
|
||||||
--argstr mainDrive "$main_drive" \
|
disko --mode destroy,format,mount \
|
||||||
--arg extraDrives "$extras_nix" \
|
--argstr mainDrive "$main_drive" \
|
||||||
"$disko_file" 2>&1 | tee "$log"
|
--arg extraDrives "$extras_nix" \
|
||||||
rc=${PIPESTATUS[0]}
|
"$disko_file" 2>&1 | tee "$log"
|
||||||
set -e
|
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
|
if [[ $rc -eq 0 ]]; then
|
||||||
rm -f "$log"
|
rm -f "$log"
|
||||||
@@ -1197,11 +1231,11 @@ execute_installation() {
|
|||||||
info "Initializing git repository..."
|
info "Initializing git repository..."
|
||||||
(
|
(
|
||||||
cd /mnt/etc/nixos
|
cd /mnt/etc/nixos
|
||||||
nrun git git init -q
|
nrun git init -q
|
||||||
nrun git git add .
|
nrun git add .
|
||||||
nrun git git config user.name "Nomarchy Installer"
|
nrun git config user.name "Nomarchy Installer"
|
||||||
nrun git git config user.email "installer@nomarchy"
|
nrun git config user.email "installer@nomarchy"
|
||||||
nrun git git commit -qm "Initial Nomarchy configuration"
|
nrun git commit -qm "Initial Nomarchy configuration"
|
||||||
)
|
)
|
||||||
success "Git repository initialized"
|
success "Git repository initialized"
|
||||||
|
|
||||||
|
|||||||
86
themes/palettes/summer-day/apps/btop.theme
Normal file
86
themes/palettes/summer-day/apps/btop.theme
Normal 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"
|
||||||
16
themes/palettes/summer-day/apps/neovim.lua
Normal file
16
themes/palettes/summer-day/apps/neovim.lua
Normal 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,
|
||||||
|
},
|
||||||
|
}
|
||||||
143
themes/palettes/summer-day/apps/rofi.rasi
Normal file
143
themes/palettes/summer-day/apps/rofi.rasi
Normal 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;
|
||||||
|
}
|
||||||
4
themes/palettes/summer-day/apps/vscode.json
Normal file
4
themes/palettes/summer-day/apps/vscode.json
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"name": "Everforest Light",
|
||||||
|
"extension": "sainnhe.everforest"
|
||||||
|
}
|
||||||
34
themes/palettes/summer-day/apps/walker/style.css
Normal file
34
themes/palettes/summer-day/apps/walker/style.css
Normal 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;
|
||||||
|
}
|
||||||
@@ -1,23 +1,23 @@
|
|||||||
accent = "#83b6af"
|
accent = "#3a94c5"
|
||||||
cursor = "#d3c6aa"
|
cursor = "#5c6a72"
|
||||||
foreground = "#d3c6aa"
|
foreground = "#5c6a72"
|
||||||
background = "#2d353b"
|
background = "#fdf6e3"
|
||||||
selection_foreground = "#d3c6aa"
|
selection_foreground = "#5c6a72"
|
||||||
selection_background = "#505a60"
|
selection_background = "#d3dbc8"
|
||||||
|
|
||||||
color0 = "#3c474d"
|
color0 = "#5c6a72"
|
||||||
color1 = "#e68183"
|
color1 = "#f85552"
|
||||||
color2 = "#a7c080"
|
color2 = "#8da101"
|
||||||
color3 = "#d9bb80"
|
color3 = "#dfa000"
|
||||||
color4 = "#83b6af"
|
color4 = "#3a94c5"
|
||||||
color5 = "#d39bb6"
|
color5 = "#df69ba"
|
||||||
color6 = "#87c095"
|
color6 = "#35a77c"
|
||||||
color7 = "#868d80"
|
color7 = "#fdf6e3"
|
||||||
color8 = "#868d80"
|
color8 = "#829181"
|
||||||
color9 = "#e68183"
|
color9 = "#f85552"
|
||||||
color10 = "#a7c080"
|
color10 = "#8da101"
|
||||||
color11 = "#d9bb80"
|
color11 = "#dfa000"
|
||||||
color12 = "#83b6af"
|
color12 = "#3a94c5"
|
||||||
color13 = "#d39bb6"
|
color13 = "#df69ba"
|
||||||
color14 = "#87c095"
|
color14 = "#35a77c"
|
||||||
color15 = "#868d80"
|
color15 = "#fdf6e3"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
Everforest-Dark
|
Yaru-blue
|
||||||
|
|||||||
1
themes/palettes/summer-day/light.mode
Normal file
1
themes/palettes/summer-day/light.mode
Normal file
@@ -0,0 +1 @@
|
|||||||
|
# This will set "prefer-light" and use "Adwaita" as the theme
|
||||||
Reference in New Issue
Block a user