mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
Compare commits
3 Commits
sddm-uki-c
...
add-fast-s
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d6477f212 | ||
|
|
0a28bd1e67 | ||
|
|
9dc8a1717c |
@@ -1,2 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Hidden=true
|
||||
@@ -1,2 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Hidden=true
|
||||
@@ -1,2 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Hidden=true
|
||||
@@ -1,2 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Hidden=true
|
||||
@@ -1,2 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Hidden=true
|
||||
@@ -2,7 +2,7 @@
|
||||
Name=Neovim
|
||||
GenericName=Text Editor
|
||||
Comment=Edit text files
|
||||
Exec=sh -c "$TERMINAL --class=nvim --title=nvim -e nvim -- %F"
|
||||
Exec=$TERMINAL --class=nvim --title=nvim -e nvim -- %F
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Keywords=Text;editor;
|
||||
|
||||
@@ -15,7 +15,7 @@ SCOPE="$1"
|
||||
AUDIO=$([[ $2 == "audio" ]] && echo "--audio")
|
||||
|
||||
start_screenrecording() {
|
||||
local filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
|
||||
filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
|
||||
|
||||
if lspci | grep -qi 'nvidia'; then
|
||||
wf-recorder $AUDIO -f "$filename" -c libx264 -p crf=23 -p preset=medium -p movflags=+faststart "$@" &
|
||||
@@ -47,8 +47,7 @@ screenrecording_active() {
|
||||
if screenrecording_active; then
|
||||
stop_screenrecording
|
||||
elif [[ "$SCOPE" == "output" ]]; then
|
||||
output=$(slurp -o) || exit 1
|
||||
start_screenrecording -g "$output"
|
||||
start_screenrecording
|
||||
else
|
||||
region=$(slurp) || exit 1
|
||||
start_screenrecording -g "$region"
|
||||
|
||||
@@ -18,7 +18,7 @@ hyprctl keyword cursor:invisible true
|
||||
while true; do
|
||||
effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1)
|
||||
tte -i ~/.config/omarchy/branding/screensaver.txt \
|
||||
--frame-rate 240 --canvas-width 0 --canvas-height $(($(tput lines) - 1)) --anchor-canvas c --anchor-text c \
|
||||
--frame-rate 240 --canvas-width 0 --canvas-height $(($(tput lines) - 2)) --anchor-canvas c --anchor-text c \
|
||||
"$effect" &
|
||||
|
||||
while pgrep -x tte >/dev/null; do
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
options=("MySQL" "PostgreSQL" "Redis" "MongoDB" "MariaDB")
|
||||
|
||||
if [[ "$#" -eq 0 ]]; then
|
||||
choices=$(printf "%s\n" "${options[@]}" | gum choose --header "Select database (return to install, esc to cancel)") || main_menu
|
||||
choices=$(printf "%s\n" "${options[@]}" | gum choose --header "Select databases (space to select, return to install, esc to cancel)") || main_menu
|
||||
else
|
||||
choices="$@"
|
||||
fi
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo "Installing VSCode..."
|
||||
omarchy-pkg-add visual-studio-code-bin
|
||||
|
||||
mkdir -p ~/.vscode
|
||||
|
||||
cat > ~/.vscode/argv.json << 'EOF'
|
||||
// This configuration file allows you to pass permanent command line arguments to VS Code.
|
||||
// Only a subset of arguments is currently supported to reduce the likelihood of breaking
|
||||
// the installation.
|
||||
//
|
||||
// PLEASE DO NOT CHANGE WITHOUT UNDERSTANDING THE IMPACT
|
||||
//
|
||||
// NOTE: Changing this file requires a restart of VS Code.
|
||||
{
|
||||
"password-store":"gnome-libsecret"
|
||||
}
|
||||
EOF
|
||||
|
||||
setsid gtk-launch code
|
||||
@@ -3,7 +3,7 @@
|
||||
browser=$(xdg-settings get default-web-browser)
|
||||
|
||||
case $browser in
|
||||
google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi* | helium-browser*) ;;
|
||||
google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi*) ;;
|
||||
*) browser="chromium.desktop" ;;
|
||||
esac
|
||||
|
||||
|
||||
@@ -260,7 +260,7 @@ show_install_service_menu() {
|
||||
|
||||
show_install_editor_menu() {
|
||||
case $(menu "Install" " VSCode\n Cursor\n Zed\n Sublime Text\n Helix\n Emacs") in
|
||||
*VSCode*) present_terminal omarchy-install-vscode ;;
|
||||
*VSCode*) install_and_launch "VSCode" "visual-studio-code-bin" "code" ;;
|
||||
*Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;;
|
||||
*Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;;
|
||||
*Sublime*) aur_install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
|
||||
@@ -451,9 +451,9 @@ show_system_menu() {
|
||||
*Lock*) omarchy-lock-screen ;;
|
||||
*Screensaver*) omarchy-launch-screensaver force ;;
|
||||
*Suspend*) systemctl suspend ;;
|
||||
*Relaunch*) omarchy-state clear relaunch-required && sudo systemctl restart sddm ;;
|
||||
*Restart*) omarchy-state clear re*-required && systemctl reboot ;;
|
||||
*Shutdown*) omarchy-state clear re*-required && systemctl poweroff ;;
|
||||
*Relaunch*) uwsm stop ;;
|
||||
*Restart*) systemctl reboot ;;
|
||||
*Shutdown*) systemctl poweroff ;;
|
||||
*) back_to show_main_menu ;;
|
||||
esac
|
||||
}
|
||||
|
||||
@@ -3,69 +3,6 @@
|
||||
# A script to display Hyprland keybindings defined in your configuration
|
||||
# using walker for an interactive search menu.
|
||||
|
||||
declare -A KEYCODE_SYM_MAP
|
||||
|
||||
build_keymap_cache() {
|
||||
local keymap
|
||||
keymap="$(xkbcli compile-keymap)" || {
|
||||
echo "Failed to compile keymap" >&2
|
||||
return 1
|
||||
}
|
||||
|
||||
while IFS=, read -r code sym; do
|
||||
[[ -z "$code" || -z "$sym" ]] && continue
|
||||
KEYCODE_SYM_MAP["$code"]="$sym"
|
||||
done < <(
|
||||
awk '
|
||||
BEGIN { sec = "" }
|
||||
/xkb_keycodes/ { sec = "codes"; next }
|
||||
/xkb_symbols/ { sec = "syms"; next }
|
||||
sec == "codes" {
|
||||
if (match($0, /<([A-Za-z0-9_]+)>\s*=\s*([0-9]+)\s*;/, m)) code_by_name[m[1]] = m[2]
|
||||
}
|
||||
sec == "syms" {
|
||||
if (match($0, /key\s*<([A-Za-z0-9_]+)>\s*\{\s*\[\s*([^, \]]+)/, m)) sym_by_name[m[1]] = m[2]
|
||||
}
|
||||
END {
|
||||
for (k in code_by_name) {
|
||||
c = code_by_name[k]
|
||||
s = sym_by_name[k]
|
||||
if (c != "" && s != "" && s != "NoSymbol") print c "," s
|
||||
}
|
||||
}
|
||||
' <<<"$keymap"
|
||||
)
|
||||
}
|
||||
|
||||
lookup_keycode_cached() {
|
||||
printf '%s\n' "${KEYCODE_SYM_MAP[$1]}"
|
||||
}
|
||||
|
||||
parse_keycodes() {
|
||||
local start end elapsed
|
||||
[[ "${DEBUG:-0}" == "1" ]] && start=$(date +%s.%N)
|
||||
while IFS= read -r line; do
|
||||
if [[ "$line" =~ code:([0-9]+) ]]; then
|
||||
code="${BASH_REMATCH[1]}"
|
||||
symbol=$(lookup_keycode_cached "$code" "$XKB_KEYMAP_CACHE")
|
||||
echo "${line/code:${code}/$symbol}"
|
||||
else
|
||||
echo "$line"
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ "$DEBUG" == "1" ]]; then
|
||||
end=$(date +%s.%N)
|
||||
# fall back to awk if bc is missing
|
||||
if command -v bc >/dev/null 2>&1; then
|
||||
elapsed=$(echo "$end - $start" | bc)
|
||||
else
|
||||
elapsed=$(awk -v s="$start" -v e="$end" 'BEGIN{printf "%.6f", (e - s)}')
|
||||
fi
|
||||
echo "[DEBUG] parse_keycodes elapsed: ${elapsed}s" >&2
|
||||
fi
|
||||
}
|
||||
|
||||
# Fetch dynamic keybindings from Hyprland
|
||||
#
|
||||
# Also do some pre-processing:
|
||||
@@ -74,30 +11,30 @@ parse_keycodes() {
|
||||
# - Map numeric modifier key mask to a textual rendition
|
||||
# - Output comma-separated values that the parser can understand
|
||||
dynamic_bindings() {
|
||||
hyprctl -j binds |
|
||||
jq -r '.[] | {modmask, key, keycode, description, dispatcher, arg} | "\(.modmask),\(.key)@\(.keycode),\(.description),\(.dispatcher),\(.arg)"' |
|
||||
hyprctl -j binds | \
|
||||
jq -r '.[] | {modmask, key, keycode, description, dispatcher, arg} | "\(.modmask),\(.key)@\(.keycode),\(.description),\(.dispatcher),\(.arg)"' | \
|
||||
sed -r \
|
||||
-e 's/null//' \
|
||||
-e 's,~/.local/share/omarchy/bin/,,' \
|
||||
-e 's,uwsm app -- ,,' \
|
||||
-e 's/@0//' \
|
||||
-e 's/,@/,code:/' \
|
||||
-e 's/^0,/,/' \
|
||||
-e 's/^1,/SHIFT,/' \
|
||||
-e 's/^4,/CTRL,/' \
|
||||
-e 's/^5,/SHIFT CTRL,/' \
|
||||
-e 's/^8,/ALT,/' \
|
||||
-e 's/^9,/SHIFT ALT,/' \
|
||||
-e 's/^12,/CTRL ALT,/' \
|
||||
-e 's/^13,/SHIFT CTRL ALT,/' \
|
||||
-e 's/^64,/SUPER,/' \
|
||||
-e 's/^65,/SUPER SHIFT,/' \
|
||||
-e 's/^68,/SUPER CTRL,/' \
|
||||
-e 's/^69,/SUPER SHIFT CTRL,/' \
|
||||
-e 's/^72,/SUPER ALT,/' \
|
||||
-e 's/^73,/SUPER SHIFT ALT,/' \
|
||||
-e 's/^76,/SUPER CTRL ALT,/' \
|
||||
-e 's/^77,/SUPER SHIFT CTRL ALT,/'
|
||||
-e 's/null//' \
|
||||
-e 's,~/.local/share/omarchy/bin/,,' \
|
||||
-e 's,uwsm app -- ,,' \
|
||||
-e 's/@0//' \
|
||||
-e 's/,@/,code:/' \
|
||||
-e 's/^0,/,/' \
|
||||
-e 's/^1,/SHIFT,/' \
|
||||
-e 's/^4,/CTRL,/' \
|
||||
-e 's/^5,/SHIFT CTRL,/' \
|
||||
-e 's/^8,/ALT,/' \
|
||||
-e 's/^9,/SHIFT ALT,/' \
|
||||
-e 's/^12,/CTRL ALT,/' \
|
||||
-e 's/^13,/SHIFT CTRL ALT,/' \
|
||||
-e 's/^64,/SUPER,/' \
|
||||
-e 's/^65,/SUPER SHIFT,/' \
|
||||
-e 's/^68,/SUPER CTRL,/' \
|
||||
-e 's/^69,/SUPER SHIFT CTRL,/' \
|
||||
-e 's/^72,/SUPER ALT,/' \
|
||||
-e 's/^73,/SUPER SHIFT ALT,/' \
|
||||
-e 's/^76,/SUPER CTRL ALT,/' \
|
||||
-e 's/^77,/SUPER SHIFT CTRL ALT,/'
|
||||
}
|
||||
|
||||
# Parse and format keybindings
|
||||
@@ -149,10 +86,8 @@ parse_bindings() {
|
||||
monitor_height=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .height')
|
||||
menu_height=$((monitor_height * 40 / 100))
|
||||
|
||||
build_keymap_cache
|
||||
|
||||
dynamic_bindings |
|
||||
sort -u |
|
||||
parse_keycodes |
|
||||
parse_bindings |
|
||||
dynamic_bindings | \
|
||||
sort -u | \
|
||||
parse_bindings | \
|
||||
walker --dmenu --theme keybindings -p 'Keybindings' -w 800 -h "$menu_height"
|
||||
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
#!/bin/bash
|
||||
|
||||
sudo pacman -S --noconfirm --needed "$@" || exit 1
|
||||
|
||||
for pkg in "$@"; do
|
||||
# Secondary check to handle states where pacman doesn't actually register an error
|
||||
if ! pacman -Q "$pkg" &>/dev/null; then
|
||||
echo -e "\033[31mError: Package '$pkg' did not install\033[0m" >&2
|
||||
exit 1
|
||||
sudo pacman -S --noconfirm "$pkg" || exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
#!/bin/bash
|
||||
|
||||
echo -e "Restarting pipewire audio service...\n"
|
||||
echo -e "Restarting pirewire audio service...\n"
|
||||
systemctl --user restart pipewire.service
|
||||
|
||||
@@ -20,7 +20,7 @@ print_info() {
|
||||
}
|
||||
|
||||
check_fingerprint_hardware() {
|
||||
if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix|elan|validity|FPC'; then
|
||||
if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix|elan|validity'; then
|
||||
print_error "\nNo fingerprint sensor detected."
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -4,17 +4,16 @@ CHROMIUM_THEME=~/.config/omarchy/current/theme/chromium.theme
|
||||
|
||||
if omarchy-cmd-present chromium || omarchy-cmd-present brave; then
|
||||
if [[ -f $CHROMIUM_THEME ]]; then
|
||||
THEME_RGB_COLOR=$(<$CHROMIUM_THEME)
|
||||
rgb=$(<$CHROMIUM_THEME)
|
||||
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${rgb//,/ })
|
||||
else
|
||||
# Use a default, neutral grey if theme doesn't have a color
|
||||
THEME_RGB_COLOR="28,32,39"
|
||||
THEME_HEX_COLOR="#1c2027"
|
||||
fi
|
||||
|
||||
if omarchy-cmd-present chromium; then
|
||||
rm -f /etc/chromium/policies/managed/color.json
|
||||
chromium --no-startup-window --set-theme-color="$THEME_RGB_COLOR"
|
||||
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/chromium/policies/managed/color.json" >/dev/null
|
||||
chromium --refresh-platform-policy --no-startup-window
|
||||
fi
|
||||
|
||||
if omarchy-cmd-present brave; then
|
||||
|
||||
@@ -43,7 +43,7 @@ cat >"$DESKTOP_FILE" <<EOF
|
||||
Version=1.0
|
||||
Name=$APP_NAME
|
||||
Comment=$APP_NAME
|
||||
Exec=\$TERMINAL --class=$APP_CLASS -e $APP_EXEC
|
||||
Exec=$TERMINAL --class $APP_CLASS -e $APP_EXEC
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=$ICON_PATH
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
#!/bin/bash
|
||||
cat $OMARCHY_PATH/version
|
||||
|
||||
git -C "$OMARCHY_PATH" describe --tags $(git -C "$OMARCHY_PATH" rev-list --tags --max-count=1)
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
#!/bin/bash
|
||||
url="$1"
|
||||
web_url="https://app.hey.com"
|
||||
|
||||
# Handle mailto: URLs
|
||||
if [[ $url =~ ^mailto: ]]; then
|
||||
email=$(echo "$url" | sed 's/mailto://')
|
||||
web_url="https://app.hey.com/messages/new?to=$email"
|
||||
fi
|
||||
|
||||
exec omarchy-launch-webapp "$web_url"
|
||||
@@ -6,7 +6,7 @@ DESKTOP_DIR="$HOME/.local/share/applications/"
|
||||
if [ "$#" -eq 0 ]; then
|
||||
# Find all web apps
|
||||
while IFS= read -r -d '' file; do
|
||||
if grep -q '^Exec=.*\(omarchy-launch-webapp\|omarchy-webapp-handler\).*' "$file"; then
|
||||
if grep -q '^Exec=.*omarchy-launch-webapp.*' "$file"; then
|
||||
WEB_APPS+=("$(basename "${file%.desktop}")")
|
||||
fi
|
||||
done < <(find "$DESKTOP_DIR" -name '*.desktop' -print0)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
$terminal = uwsm app -- $TERMINAL
|
||||
$browser = omarchy-launch-browser
|
||||
|
||||
bindd = SUPER, RETURN, Terminal, exec, $terminal --working-directory="$(omarchy-cmd-terminal-cwd)"
|
||||
bindd = SUPER, return, Terminal, exec, $terminal --working-directory="$(omarchy-cmd-terminal-cwd)"
|
||||
bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window
|
||||
bindd = SUPER, B, Browser, exec, $browser
|
||||
bindd = SUPER SHIFT, B, Browser (private), exec, $browser --private
|
||||
@@ -12,7 +12,7 @@ bindd = SUPER, T, Activity, exec, $terminal -e btop
|
||||
bindd = SUPER, D, Docker, exec, $terminal -e lazydocker
|
||||
bindd = SUPER, G, Signal, exec, omarchy-launch-or-focus signal "uwsm app -- signal-desktop"
|
||||
bindd = SUPER, O, Obsidian, exec, omarchy-launch-or-focus obsidian "uwsm app -- obsidian -disable-gpu --enable-wayland-ime"
|
||||
bindd = SUPER, SLASH, Passwords, exec, uwsm app -- 1password
|
||||
bindd = SUPER, slash, Passwords, exec, uwsm app -- 1password
|
||||
|
||||
# If your web app url contains #, type it as ## to prevent hyperland treat it as comments
|
||||
bindd = SUPER, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com"
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
input {
|
||||
# Use multiple keyboard layouts and switch between them with Left Alt + Right Alt
|
||||
# kb_layout = us,dk,eu
|
||||
kb_options = compose:caps # ,grp:shifts_toggle
|
||||
kb_options = compose:caps # ,grp:alts_toggle
|
||||
|
||||
# Change speed of keyboard repeat
|
||||
repeat_rate = 40
|
||||
@@ -12,7 +12,7 @@ input {
|
||||
# Start with numlock on by default
|
||||
numlock_by_default = true
|
||||
|
||||
# Increase sensitivity for mouse/trackpad (default: 0)
|
||||
# Increase sensitity for mouse/trackpack (default: 0)
|
||||
# sensitivity = 0.35
|
||||
|
||||
touchpad {
|
||||
|
||||
@@ -15,9 +15,3 @@ decoration {
|
||||
# Use round window corners
|
||||
# rounding = 8
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Dwindle-Layout/
|
||||
dwindle {
|
||||
# Avoid overly wide single-window layouts on wide screens
|
||||
# single_window_aspect_ratio = 1 1
|
||||
}
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
return {
|
||||
-- Load all theme plugins but don't apply them
|
||||
-- This ensures all colorschemes are available for hot-reloading
|
||||
{
|
||||
"ribru17/bamboo.nvim",
|
||||
lazy = true,
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"catppuccin/nvim",
|
||||
name = "catppuccin",
|
||||
lazy = true,
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"sainnhe/everforest",
|
||||
lazy = true,
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"ellisonleao/gruvbox.nvim",
|
||||
lazy = true,
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"rebelot/kanagawa.nvim",
|
||||
lazy = true,
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"tahayvr/matteblack.nvim",
|
||||
lazy = true,
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"loctvl842/monokai-pro.nvim",
|
||||
lazy = true,
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"shaunsingh/nord.nvim",
|
||||
lazy = true,
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"rose-pine/neovim",
|
||||
name = "rose-pine",
|
||||
lazy = true,
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"folke/tokyonight.nvim",
|
||||
lazy = true,
|
||||
priority = 1000,
|
||||
},
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
return {
|
||||
{
|
||||
name = "theme-hotreload",
|
||||
dir = vim.fn.stdpath("config"),
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
local transparency_file = vim.fn.stdpath("config") .. "/plugin/after/transparency.lua"
|
||||
|
||||
vim.api.nvim_create_autocmd("User", {
|
||||
pattern = "LazyReload",
|
||||
callback = function()
|
||||
package.loaded["plugins.theme"] = nil
|
||||
|
||||
vim.schedule(function()
|
||||
local ok, theme_spec = pcall(require, "plugins.theme")
|
||||
if not ok then
|
||||
return
|
||||
end
|
||||
|
||||
for _, spec in ipairs(theme_spec) do
|
||||
if spec[1] == "LazyVim/LazyVim" and spec.opts and spec.opts.colorscheme then
|
||||
local colorscheme = spec.opts.colorscheme
|
||||
|
||||
require("lazy.core.loader").colorscheme(colorscheme)
|
||||
|
||||
vim.defer_fn(function()
|
||||
pcall(vim.cmd.colorscheme, colorscheme)
|
||||
|
||||
if vim.fn.filereadable(transparency_file) == 1 then
|
||||
vim.defer_fn(function()
|
||||
vim.cmd.source(transparency_file)
|
||||
end, 5)
|
||||
end
|
||||
end, 5)
|
||||
|
||||
break
|
||||
end
|
||||
end
|
||||
end)
|
||||
end,
|
||||
})
|
||||
end,
|
||||
},
|
||||
}
|
||||
8
config/nvim/lua/plugins/theme.lua
Normal file
8
config/nvim/lua/plugins/theme.lua
Normal file
@@ -0,0 +1,8 @@
|
||||
return {
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "tokyonight",
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
# Browser types
|
||||
windowrule = tag +chromium-based-browser, class:([cC]hrom(e|ium)|[bB]rave-browser|Microsoft-edge|Vivaldi-stable|helium)
|
||||
windowrule = tag +chromium-based-browser, class:([cC]hrom(e|ium)|[bB]rave-browser|Microsoft-edge|Vivaldi-stable)
|
||||
windowrule = tag +firefox-based-browser, class:([fF]irefox|zen|librewolf)
|
||||
|
||||
# Force chromium-based browsers into a tile to deal with --app bug
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Float Steam
|
||||
# Float Steam, fullscreen RetroArch
|
||||
windowrule = float, class:steam
|
||||
windowrule = center, class:steam, title:Steam
|
||||
windowrule = opacity 1 1, class:steam
|
||||
|
||||
@@ -4,7 +4,7 @@ exec-once = uwsm app -- waybar
|
||||
exec-once = uwsm app -- fcitx5
|
||||
exec-once = uwsm app -- swaybg -i ~/.config/omarchy/current/background -m fill
|
||||
exec-once = uwsm app -- swayosd-server
|
||||
exec-once = uwsm app -- walker --gapplication-service
|
||||
exec-once = uwsm app -- walker --gapplication-service &
|
||||
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||
exec-once = wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'
|
||||
exec-once = omarchy-cmd-first-run
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Deprecated bindings file. New installations include everything directly.
|
||||
|
||||
bindd = SUPER, RETURN, Terminal, exec, $terminal
|
||||
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
|
||||
@@ -9,7 +9,7 @@ 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
|
||||
bindd = SUPER, slash, Password manager, exec, $passwordManager
|
||||
|
||||
source = ~/.local/share/omarchy/default/hypr/bindings/media.conf
|
||||
source = ~/.local/share/omarchy/default/hypr/bindings/tiling.conf
|
||||
|
||||
@@ -10,10 +10,10 @@ 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
|
||||
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
|
||||
@@ -39,22 +39,22 @@ 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
|
||||
# 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
|
||||
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
|
||||
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
|
||||
@@ -63,8 +63,8 @@ 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
|
||||
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
|
||||
|
||||
@@ -86,7 +86,6 @@ misc {
|
||||
disable_hyprland_logo = true
|
||||
disable_splash_rendering = true
|
||||
focus_on_activate = true
|
||||
anr_missed_pings = 3
|
||||
}
|
||||
|
||||
# https://wiki.hypr.land/Configuring/Variables/#cursor
|
||||
|
||||
@@ -25,6 +25,6 @@ run_logged $OMARCHY_INSTALL/config/hardware/usb-autosuspend.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/nvidia.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-f13-amd-audio-input.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-bcm43xx.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-bcm4360.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-spi-keyboard.sh
|
||||
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-t2.sh
|
||||
|
||||
5
install/config/hardware/fix-apple-bcm4360.sh
Normal file
5
install/config/hardware/fix-apple-bcm4360.sh
Normal file
@@ -0,0 +1,5 @@
|
||||
# Install wifi drivers for 2013-2015 MacBooks using the BCM4360 chip
|
||||
if lspci -nnv | grep -A2 "14e4:43a0" | grep -q "106b:"; then
|
||||
echo "Apple BCM4360 detected"
|
||||
sudo pacman -S --noconfirm --needed broadcom-wl dkms linux-headers
|
||||
fi
|
||||
@@ -1,11 +0,0 @@
|
||||
# Install Wi-Fi drivers for Broadcom chips on MacBooks:
|
||||
# - BCM4360 (2013–2015)
|
||||
# - BCM4331 (2012, early 2013)
|
||||
|
||||
pci_info=$(lspci -nnv)
|
||||
|
||||
if echo "$pci_info" | grep -q "106b:" &&
|
||||
(echo "$pci_info" | grep -q "14e4:43a0" || echo "$pci_info" | grep -q "14e4:4331"); then
|
||||
echo "Apple BCM4360 / BCM4331 detected"
|
||||
sudo pacman -S --noconfirm --needed broadcom-wl dkms linux-headers
|
||||
fi
|
||||
@@ -1,12 +1,7 @@
|
||||
# Detect MacBook models that need SPI keyboard modules
|
||||
product_name="$(cat /sys/class/dmi/id/product_name 2>/dev/null)"
|
||||
if [[ "$product_name" =~ MacBook[89],1|MacBook1[02],1|MacBookPro13,[123]|MacBookPro14,[123] ]]; then
|
||||
if [[ "$(cat /sys/class/dmi/id/product_name 2>/dev/null)" =~ MacBook12,1|MacBookPro13,[123]|MacBookPro14,[123] ]]; then
|
||||
echo "Detected MacBook with SPI keyboard"
|
||||
|
||||
sudo pacman -S --noconfirm --needed macbook12-spi-driver-dkms
|
||||
if [[ "$product_name" == "MacBook8,1" ]]; then
|
||||
echo "MODULES=(applespi spi_pxa2xx_platform spi_pxa2xx_pci)" | sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null
|
||||
else
|
||||
echo "MODULES=(applespi intel_lpss_pci spi_pxa2xx_platform)" | sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null
|
||||
fi
|
||||
echo "MODULES=(applespi intel_lpss_pci spi_pxa2xx_platform)" | sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null
|
||||
fi
|
||||
|
||||
@@ -33,6 +33,3 @@ xdg-mime default mpv.desktop video/x-ms-asf
|
||||
xdg-mime default mpv.desktop video/x-ogm+ogg
|
||||
xdg-mime default mpv.desktop video/x-theora+ogg
|
||||
xdg-mime default mpv.desktop application/ogg
|
||||
|
||||
# Use Hey for mailto: links
|
||||
xdg-mime default HEY.desktop x-scheme-handler/mailto
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
# Setup sudo-less controls for controlling brightness on Apple Displays
|
||||
echo "$USER ALL=(ALL) NOPASSWD: /usr/bin/asdcontrol" | sudo tee /etc/sudoers.d/asdcontrol
|
||||
echo "$USER ALL=(ALL) NOPASSWD: /usr/local/bin/asdcontrol" | sudo tee /etc/sudoers.d/asdcontrol
|
||||
sudo chmod 440 /etc/sudoers.d/asdcontrol
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
run_logged $OMARCHY_INSTALL/login/plymouth.sh
|
||||
run_logged $OMARCHY_INSTALL/login/default-keyring.sh
|
||||
run_logged $OMARCHY_INSTALL/login/sddm.sh
|
||||
run_logged $OMARCHY_INSTALL/login/limine-snapper.sh
|
||||
run_logged $OMARCHY_INSTALL/login/enable-mkinitcpio.sh
|
||||
run_logged $OMARCHY_INSTALL/login/alt-bootloaders.sh
|
||||
|
||||
115
install/login/alt-bootloaders.sh
Normal file
115
install/login/alt-bootloaders.sh
Normal file
@@ -0,0 +1,115 @@
|
||||
if ! command -v limine &>/dev/null; then
|
||||
# Add kernel hooks
|
||||
if ! grep -Eq '^HOOKS=.*plymouth' /etc/mkinitcpio.conf; then
|
||||
# Backup original mkinitcpio.conf just in case
|
||||
backup_timestamp=$(date +"%Y%m%d%H%M%S")
|
||||
sudo cp /etc/mkinitcpio.conf "/etc/mkinitcpio.conf.bak.${backup_timestamp}"
|
||||
|
||||
# Add plymouth to HOOKS array after 'base udev' or 'base systemd'
|
||||
if grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base systemd"; then
|
||||
sudo sed -i '/^HOOKS=/s/base systemd/base systemd plymouth/' /etc/mkinitcpio.conf
|
||||
elif grep "^HOOKS=" /etc/mkinitcpio.conf | grep -q "base udev"; then
|
||||
sudo sed -i '/^HOOKS=/s/base udev/base udev plymouth/' /etc/mkinitcpio.conf
|
||||
else
|
||||
echo "Couldn't add the Plymouth hook"
|
||||
fi
|
||||
|
||||
# Regenerate initramfs
|
||||
sudo mkinitcpio -P
|
||||
fi
|
||||
|
||||
# Add kernel parameters for Plymouth
|
||||
if [ -d "/boot/loader/entries" ]; then # systemd-boot
|
||||
echo "Detected systemd-boot"
|
||||
|
||||
for entry in /boot/loader/entries/*.conf; do
|
||||
if [ -f "$entry" ]; then
|
||||
# Skip fallback entries
|
||||
if [[ "$(basename "$entry")" == *"fallback"* ]]; then
|
||||
echo "Skipped: $(basename "$entry") (fallback entry)"
|
||||
continue
|
||||
fi
|
||||
|
||||
# Skip if splash it already present for some reason
|
||||
if ! grep -q "splash" "$entry"; then
|
||||
sudo sed -i '/^options/ s/$/ splash quiet/' "$entry"
|
||||
else
|
||||
echo "Skipped: $(basename "$entry") (splash already present)"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
elif [ -f "/etc/default/grub" ]; then # Grub
|
||||
echo "Detected grub"
|
||||
|
||||
# Backup GRUB config before modifying
|
||||
backup_timestamp=$(date +"%Y%m%d%H%M%S")
|
||||
sudo cp /etc/default/grub "/etc/default/grub.bak.${backup_timestamp}"
|
||||
|
||||
# Check if splash is already in GRUB_CMDLINE_LINUX_DEFAULT
|
||||
if ! grep -q "GRUB_CMDLINE_LINUX_DEFAULT.*splash" /etc/default/grub; then
|
||||
# Get current GRUB_CMDLINE_LINUX_DEFAULT value
|
||||
current_cmdline=$(grep "^GRUB_CMDLINE_LINUX_DEFAULT=" /etc/default/grub | cut -d'"' -f2)
|
||||
|
||||
# Add splash and quiet if not present
|
||||
new_cmdline="$current_cmdline"
|
||||
if [[ ! "$current_cmdline" =~ splash ]]; then
|
||||
new_cmdline="$new_cmdline splash"
|
||||
fi
|
||||
if [[ ! "$current_cmdline" =~ quiet ]]; then
|
||||
new_cmdline="$new_cmdline quiet"
|
||||
fi
|
||||
|
||||
# Trim any leading/trailing spaces
|
||||
new_cmdline=$(echo "$new_cmdline" | xargs)
|
||||
|
||||
sudo sed -i "s/^GRUB_CMDLINE_LINUX_DEFAULT=\".*\"/GRUB_CMDLINE_LINUX_DEFAULT=\"$new_cmdline\"/" /etc/default/grub
|
||||
|
||||
# Regenerate grub config
|
||||
sudo grub-mkconfig -o /boot/grub/grub.cfg
|
||||
else
|
||||
echo "GRUB already configured with splash kernel parameters"
|
||||
fi
|
||||
elif [ -d "/etc/cmdline.d" ]; then # UKI
|
||||
echo "Detected a UKI setup"
|
||||
# Relying on mkinitcpio to assemble a UKI
|
||||
# https://wiki.archlinux.org/title/Unified_kernel_image
|
||||
if ! grep -q splash /etc/cmdline.d/*.conf; then
|
||||
# Need splash, create the omarchy file
|
||||
echo "splash" | sudo tee -a /etc/cmdline.d/omarchy.conf
|
||||
fi
|
||||
if ! grep -q quiet /etc/cmdline.d/*.conf; then
|
||||
# Need quiet, create or append the omarchy file
|
||||
echo "quiet" | sudo tee -a /etc/cmdline.d/omarchy.conf
|
||||
fi
|
||||
elif [ -f "/etc/kernel/cmdline" ]; then # UKI Alternate
|
||||
# Alternate UKI kernel cmdline location
|
||||
echo "Detected a UKI setup"
|
||||
|
||||
# Backup kernel cmdline config before modifying
|
||||
backup_timestamp=$(date +"%Y%m%d%H%M%S")
|
||||
sudo cp /etc/kernel/cmdline "/etc/kernel/cmdline.bak.${backup_timestamp}"
|
||||
|
||||
current_cmdline=$(cat /etc/kernel/cmdline)
|
||||
|
||||
# Add splash and quiet if not present
|
||||
new_cmdline="$current_cmdline"
|
||||
if [[ ! "$current_cmdline" =~ splash ]]; then
|
||||
new_cmdline="$new_cmdline splash"
|
||||
fi
|
||||
if [[ ! "$current_cmdline" =~ quiet ]]; then
|
||||
new_cmdline="$new_cmdline quiet"
|
||||
fi
|
||||
|
||||
# Trim any leading/trailing spaces
|
||||
new_cmdline=$(echo "$new_cmdline" | xargs)
|
||||
|
||||
# Write new file
|
||||
echo $new_cmdline | sudo tee /etc/kernel/cmdline
|
||||
else
|
||||
echo ""
|
||||
echo " None of systemd-boot, GRUB, or UKI detected. Please manually add these kernel parameters:"
|
||||
echo " - splash (to see the graphical splash screen)"
|
||||
echo " - quiet (for silent boot)"
|
||||
echo ""
|
||||
fi
|
||||
fi
|
||||
@@ -1,20 +0,0 @@
|
||||
KEYRING_DIR="$HOME/.local/share/keyrings"
|
||||
KEYRING_FILE="$KEYRING_DIR/Default_keyring.keyring"
|
||||
DEFAULT_FILE="$KEYRING_DIR/default"
|
||||
|
||||
cat << EOF | tee "$KEYRING_FILE"
|
||||
[keyring]
|
||||
display-name=Default keyring
|
||||
ctime=$(date +%s)
|
||||
mtime=0
|
||||
lock-on-idle=false
|
||||
lock-after=false
|
||||
EOF
|
||||
|
||||
cat << EOF | tee "$DEFAULT_FILE"
|
||||
Default_keyring
|
||||
EOF
|
||||
|
||||
chmod 700 "$KEYRING_DIR"
|
||||
chmod 600 "$KEYRING_FILE"
|
||||
chmod 644 "$DEFAULT_FILE"
|
||||
18
install/login/enable-mkinitcpio.sh
Normal file
18
install/login/enable-mkinitcpio.sh
Normal file
@@ -0,0 +1,18 @@
|
||||
echo "Re-enabling mkinitcpio hooks..."
|
||||
|
||||
# Restore the specific mkinitcpio pacman hooks
|
||||
if [ -f /usr/share/libalpm/hooks/90-mkinitcpio-install.hook.disabled ]; then
|
||||
sudo mv /usr/share/libalpm/hooks/90-mkinitcpio-install.hook.disabled /usr/share/libalpm/hooks/90-mkinitcpio-install.hook
|
||||
fi
|
||||
|
||||
if [ -f /usr/share/libalpm/hooks/60-mkinitcpio-remove.hook.disabled ]; then
|
||||
sudo mv /usr/share/libalpm/hooks/60-mkinitcpio-remove.hook.disabled /usr/share/libalpm/hooks/60-mkinitcpio-remove.hook
|
||||
fi
|
||||
|
||||
echo "mkinitcpio hooks re-enabled"
|
||||
|
||||
if command -v limine &>/dev/null; then
|
||||
sudo limine-update
|
||||
else
|
||||
sudo mkinitcpio -P
|
||||
fi
|
||||
@@ -1,6 +1,4 @@
|
||||
if command -v limine &>/dev/null; then
|
||||
sudo pacman -S --noconfirm --needed limine-snapper-sync limine-mkinitcpio-hook
|
||||
|
||||
sudo tee /etc/mkinitcpio.conf.d/omarchy_hooks.conf <<EOF >/dev/null
|
||||
HOOKS=(base udev plymouth keyboard autodetect microcode modconf kms keymap consolefont block encrypt filesystems fsck btrfs-overlayfs)
|
||||
EOF
|
||||
@@ -36,7 +34,6 @@ KERNEL_CMDLINE[default]="$CMDLINE"
|
||||
KERNEL_CMDLINE[default]+="quiet splash"
|
||||
|
||||
ENABLE_UKI=yes
|
||||
CUSTOM_UKI_NAME="omarchy"
|
||||
|
||||
ENABLE_LIMINE_FALLBACK=yes
|
||||
|
||||
@@ -78,6 +75,7 @@ term_background_bright: 24283b
|
||||
|
||||
EOF
|
||||
|
||||
sudo pacman -S --noconfirm --needed limine-snapper-sync limine-mkinitcpio-hook
|
||||
|
||||
# Match Snapper configs if not installing from the ISO
|
||||
if [[ -z ${OMARCHY_CHROOT_INSTALL:-} ]]; then
|
||||
@@ -98,39 +96,13 @@ EOF
|
||||
chrootable_systemctl_enable limine-snapper-sync.service
|
||||
fi
|
||||
|
||||
echo "Re-enabling mkinitcpio hooks..."
|
||||
|
||||
# Restore the specific mkinitcpio pacman hooks
|
||||
if [ -f /usr/share/libalpm/hooks/90-mkinitcpio-install.hook.disabled ]; then
|
||||
sudo mv /usr/share/libalpm/hooks/90-mkinitcpio-install.hook.disabled /usr/share/libalpm/hooks/90-mkinitcpio-install.hook
|
||||
fi
|
||||
|
||||
if [ -f /usr/share/libalpm/hooks/60-mkinitcpio-remove.hook.disabled ]; then
|
||||
sudo mv /usr/share/libalpm/hooks/60-mkinitcpio-remove.hook.disabled /usr/share/libalpm/hooks/60-mkinitcpio-remove.hook
|
||||
fi
|
||||
|
||||
echo "mkinitcpio hooks re-enabled"
|
||||
|
||||
sudo limine-update
|
||||
|
||||
if [[ -n $EFI ]] && efibootmgr &>/dev/null; then
|
||||
# Remove the archinstall-created Limine entry
|
||||
while IFS= read -r bootnum; do
|
||||
sudo efibootmgr -b "$bootnum" -B >/dev/null 2>&1
|
||||
done < <(efibootmgr | grep -E "^Boot[0-9]{4}\*? Arch Linux Limine" | sed 's/^Boot\([0-9]\{4\}\).*/\1/')
|
||||
fi
|
||||
|
||||
if [[ -n $EFI ]] && efibootmgr &>/dev/null &&
|
||||
# Add UKI entry to UEFI machines to skip bootloader showing on normal boot
|
||||
if [[ -n $EFI ]] && efibootmgr &>/dev/null && ! efibootmgr | grep -q Omarchy &&
|
||||
! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "American Megatrends" &&
|
||||
! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "Apple"; then
|
||||
|
||||
uki_file=$(find /boot/EFI/Linux/ -name "omarchy*.efi" -printf "%f\n" 2>/dev/null | head -1)
|
||||
|
||||
if [[ -n "$uki_file" ]]; then
|
||||
sudo efibootmgr --create \
|
||||
--disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \
|
||||
--part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \
|
||||
--label "Omarchy" \
|
||||
--loader "\\EFI\\Linux\\$uki_file"
|
||||
fi
|
||||
sudo efibootmgr --create \
|
||||
--disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \
|
||||
--part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \
|
||||
--label "Omarchy" \
|
||||
--loader "\\EFI\\Linux\\$(cat /etc/machine-id)_linux.efi"
|
||||
fi
|
||||
|
||||
@@ -1,4 +1,151 @@
|
||||
# Hyprland launched via UWSM and login directly as user, rely on disk encryption + hyprlock for security
|
||||
|
||||
# ==============================================================================
|
||||
# PLYMOUTH SETUP
|
||||
# ==============================================================================
|
||||
|
||||
if [ "$(plymouth-set-default-theme)" != "omarchy" ]; then
|
||||
sudo cp -r "$HOME/.local/share/omarchy/default/plymouth" /usr/share/plymouth/themes/omarchy/
|
||||
sudo plymouth-set-default-theme omarchy
|
||||
fi
|
||||
|
||||
# ==============================================================================
|
||||
# SEAMLESS LOGIN
|
||||
# ==============================================================================
|
||||
|
||||
if [ ! -x /usr/local/bin/seamless-login ]; then
|
||||
# Compile the seamless login helper -- needed to prevent seeing terminal between loader and desktop
|
||||
cat <<'CCODE' >/tmp/seamless-login.c
|
||||
/*
|
||||
* Seamless Login - Minimal SDDM-style Plymouth transition
|
||||
* Replicates SDDM's VT management for seamless auto-login
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <sys/ioctl.h>
|
||||
#include <linux/kd.h>
|
||||
#include <linux/vt.h>
|
||||
#include <sys/wait.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
int vt_fd;
|
||||
int vt_num = 1; // TTY1
|
||||
char vt_path[32];
|
||||
|
||||
if (argc < 2) {
|
||||
fprintf(stderr, "Usage: %s <session_command>\n", argv[0]);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Open the VT (simple approach like SDDM)
|
||||
snprintf(vt_path, sizeof(vt_path), "/dev/tty%d", vt_num);
|
||||
vt_fd = open(vt_path, O_RDWR);
|
||||
if (vt_fd < 0) {
|
||||
perror("Failed to open VT");
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Activate the VT
|
||||
if (ioctl(vt_fd, VT_ACTIVATE, vt_num) < 0) {
|
||||
perror("VT_ACTIVATE failed");
|
||||
close(vt_fd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Wait for VT to be active
|
||||
if (ioctl(vt_fd, VT_WAITACTIVE, vt_num) < 0) {
|
||||
perror("VT_WAITACTIVE failed");
|
||||
close(vt_fd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Critical: Set graphics mode to prevent console text
|
||||
if (ioctl(vt_fd, KDSETMODE, KD_GRAPHICS) < 0) {
|
||||
perror("KDSETMODE KD_GRAPHICS failed");
|
||||
close(vt_fd);
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Clear VT and close (like SDDM does)
|
||||
const char *clear_seq = "\33[H\33[2J";
|
||||
if (write(vt_fd, clear_seq, strlen(clear_seq)) < 0) {
|
||||
perror("Failed to clear VT");
|
||||
}
|
||||
|
||||
close(vt_fd);
|
||||
|
||||
// Set working directory to user's home
|
||||
const char *home = getenv("HOME");
|
||||
if (home) chdir(home);
|
||||
|
||||
// Now execute the session command
|
||||
execvp(argv[1], &argv[1]);
|
||||
perror("Failed to exec session");
|
||||
return 1;
|
||||
}
|
||||
CCODE
|
||||
|
||||
gcc -o /tmp/seamless-login /tmp/seamless-login.c
|
||||
sudo mv /tmp/seamless-login /usr/local/bin/seamless-login
|
||||
sudo chmod +x /usr/local/bin/seamless-login
|
||||
rm /tmp/seamless-login.c
|
||||
fi
|
||||
|
||||
if [ ! -f /etc/systemd/system/omarchy-seamless-login.service ]; then
|
||||
cat <<EOF | sudo tee /etc/systemd/system/omarchy-seamless-login.service
|
||||
[Unit]
|
||||
Description=Omarchy Seamless Auto-Login
|
||||
Documentation=https://github.com/basecamp/omarchy
|
||||
Conflicts=getty@tty1.service
|
||||
After=systemd-user-sessions.service getty@tty1.service plymouth-quit.service systemd-logind.service
|
||||
PartOf=graphical.target
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
ExecStart=/usr/local/bin/seamless-login uwsm start -- hyprland.desktop
|
||||
Restart=always
|
||||
RestartSec=2
|
||||
StartLimitIntervalSec=30
|
||||
StartLimitBurst=2
|
||||
User=$USER
|
||||
TTYPath=/dev/tty1
|
||||
TTYReset=yes
|
||||
TTYVHangup=yes
|
||||
TTYVTDisallocate=yes
|
||||
StandardInput=tty
|
||||
StandardOutput=journal
|
||||
StandardError=journal+console
|
||||
PAMName=login
|
||||
|
||||
[Install]
|
||||
WantedBy=graphical.target
|
||||
EOF
|
||||
fi
|
||||
|
||||
if [ ! -f /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf ]; then
|
||||
# Make plymouth remain until graphical.target
|
||||
sudo mkdir -p /etc/systemd/system/plymouth-quit.service.d
|
||||
sudo tee /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf <<'EOF'
|
||||
[Unit]
|
||||
After=multi-user.target
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Mask plymouth-quit-wait.service only if not already masked
|
||||
if ! systemctl is-enabled plymouth-quit-wait.service | grep -q masked; then
|
||||
sudo systemctl mask plymouth-quit-wait.service
|
||||
sudo systemctl daemon-reload
|
||||
fi
|
||||
|
||||
# Enable omarchy-seamless-login.service only if not already enabled
|
||||
if ! systemctl is-enabled omarchy-seamless-login.service | grep -q enabled; then
|
||||
sudo systemctl enable omarchy-seamless-login.service
|
||||
fi
|
||||
|
||||
# Disable getty@tty1.service only if not already disabled
|
||||
if ! systemctl is-enabled getty@tty1.service | grep -q disabled; then
|
||||
sudo systemctl disable getty@tty1.service
|
||||
fi
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
sudo mkdir -p /etc/sddm.conf.d
|
||||
|
||||
if [ ! -f /etc/sddm.conf.d/autologin.conf ]; then
|
||||
cat <<EOF | sudo tee /etc/sddm.conf.d/autologin.conf
|
||||
[Autologin]
|
||||
User=$USER
|
||||
Session=hyprland-uwsm
|
||||
|
||||
[Theme]
|
||||
Current=breeze
|
||||
EOF
|
||||
fi
|
||||
|
||||
echo "$USER ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart sddm" | sudo tee /etc/sudoers.d/allow-passwordless-restart-sddm
|
||||
|
||||
chrootable_systemctl_enable sddm.service
|
||||
@@ -56,7 +56,6 @@ kvantum-qt5
|
||||
lazydocker
|
||||
lazygit
|
||||
less
|
||||
libsecret
|
||||
libyaml
|
||||
libqalculate
|
||||
libreoffice
|
||||
@@ -69,7 +68,6 @@ mariadb-libs
|
||||
mise
|
||||
mpv
|
||||
nautilus
|
||||
gnome-disk-utility
|
||||
noto-fonts
|
||||
noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
@@ -94,7 +92,6 @@ python-terminaltexteffects
|
||||
qt5-wayland
|
||||
ripgrep
|
||||
satty
|
||||
sddm
|
||||
signal-desktop
|
||||
slurp
|
||||
spotify
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
omarchy-webapp-install "HEY" https://app.hey.com HEY.png "omarchy-webapp-handler-hey %u" "x-scheme-handler/mailto"
|
||||
omarchy-webapp-install "HEY" https://app.hey.com HEY.png
|
||||
omarchy-webapp-install "Basecamp" https://launchpad.37signals.com Basecamp.png
|
||||
omarchy-webapp-install "WhatsApp" https://web.whatsapp.com/ WhatsApp.png
|
||||
omarchy-webapp-install "Google Photos" https://photos.google.com/ "Google Photos.png"
|
||||
|
||||
@@ -18,18 +18,9 @@ done
|
||||
# Must be x86 only to fully work
|
||||
[ "$(uname -m)" != "x86_64" ] && abort "x86_64 CPU"
|
||||
|
||||
# Must have secure boot disabled
|
||||
bootctl status 2>/dev/null | grep -q 'Secure Boot: disabled' || abort "Secure Boot disabled"
|
||||
|
||||
# Must not have Gnome or KDE already install
|
||||
pacman -Qe gnome-shell &>/dev/null && abort "Fresh + Vanilla Arch"
|
||||
pacman -Qe plasma-desktop &>/dev/null && abort "Fresh + Vanilla Arch"
|
||||
|
||||
# Must have limine installed
|
||||
command -v limine &>/dev/null || abort "Limine bootloader"
|
||||
|
||||
# Must have btrfs root filesystem
|
||||
[ "$(findmnt -n -o FSTYPE /)" = "btrfs" ] || abort "Btrfs root filesystem"
|
||||
|
||||
# Cleared all guards
|
||||
echo "Guards: OK"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
echo "Use current terminal shell cwd for new terminal working directories"
|
||||
|
||||
if ! grep -q "working-directory" ~/.config/hypr/bindings.conf; then
|
||||
sed -i '/bindd = SUPER, RETURN, Terminal, exec, \$terminal/ s|$| --working-directory=$(omarchy-cmd-terminal-cwd)|' ~/.config/hypr/bindings.conf
|
||||
sed -i '/bindd = SUPER, return, Terminal, exec, \$terminal/ s|$| --working-directory=$(omarchy-cmd-terminal-cwd)|' ~/.config/hypr/bindings.conf
|
||||
fi
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
echo "Add live themeing to neovim"
|
||||
|
||||
cp -f $OMARCHY_PATH/config/nvim/lua/plugins/all-themes.lua ~/.config/nvim/lua/plugins/
|
||||
cp -f $OMARCHY_PATH/config/nvim/lua/plugins/omarchy-theme-hotreload.lua ~/.config/nvim/lua/plugins/
|
||||
@@ -1,17 +0,0 @@
|
||||
echo "Fix Disk Usage and Docker TUIs"
|
||||
|
||||
APP_DIR="$HOME/.local/share/applications"
|
||||
ICON_DIR="$APP_DIR/icons"
|
||||
|
||||
# Don't use omarchy-tui-remove to preserve icons
|
||||
|
||||
if [[ -f "$APP_DIR/Docker.desktop" ]]; then
|
||||
rm "$APP_DIR/Docker.desktop"
|
||||
omarchy-tui-install "Docker" "lazydocker" tile "$ICON_DIR/Docker.png"
|
||||
fi
|
||||
|
||||
if [[ -f "$APP_DIR/Disk Usage.desktop" ]]; then
|
||||
rm "$APP_DIR/Disk Usage.desktop"
|
||||
omarchy-tui-install "Disk Usage" "bash -c 'dust -r; read -n 1 -s'" float "$ICON_DIR/Disk Usage.png"
|
||||
fi
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
error_exit() {
|
||||
echo -e "\033[31mERROR: Migration failed! Manual intervention required.\033[0m" >&2
|
||||
echo -e "\033[31mDO NOT REBOOT - System may be in inconsistent state until the error is fixed.\033[0m" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
trap error_exit ERR
|
||||
|
||||
echo "Change display manager to SDDM"
|
||||
|
||||
omarchy-pkg-add sddm libsecret gnome-keyring || error_exit
|
||||
|
||||
sudo mkdir -p /etc/sddm.conf.d
|
||||
|
||||
cat <<EOF | sudo tee /etc/sddm.conf.d/autologin.conf
|
||||
[Autologin]
|
||||
User=$USER
|
||||
Session=hyprland-uwsm
|
||||
|
||||
[Theme]
|
||||
Current=breeze
|
||||
EOF
|
||||
|
||||
sudo systemctl disable omarchy-seamless-login.service
|
||||
sudo systemctl unmask plymouth-quit-wait.service
|
||||
sudo systemctl enable getty@tty1.service
|
||||
sudo systemctl enable sddm.service
|
||||
sudo systemctl daemon-reload
|
||||
|
||||
if systemctl is-enabled omarchy-seamless-login.service >/dev/null 2>&1; then
|
||||
echo -e "\033[31mError: omarchy-seamless-login.service is still enabled\033[0m" >&2
|
||||
error_exit
|
||||
fi
|
||||
|
||||
if systemctl is-masked plymouth-quit-wait.service >/dev/null 2>&1; then
|
||||
echo -e "\033[31mError: plymouth-quit-wait.service is still masked\033[0m" >&2
|
||||
error_exit
|
||||
fi
|
||||
|
||||
if ! systemctl is-enabled getty@tty1.service >/dev/null 2>&1; then
|
||||
echo -e "\033[31mError: getty@tty1.service is not enabled\033[0m" >&2
|
||||
error_exit
|
||||
fi
|
||||
|
||||
if ! systemctl is-enabled sddm.service >/dev/null 2>&1; then
|
||||
echo -e "\033[31mError: sddm.service is not enabled\033[0m" >&2
|
||||
error_exit
|
||||
fi
|
||||
|
||||
sudo rm -f /usr/local/bin/seamless-login
|
||||
sudo rm -f /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf
|
||||
sudo rm -f /etc/systemd/system/omarchy-seamless-login.service
|
||||
|
||||
echo "Migration completed successfully"
|
||||
@@ -1,38 +0,0 @@
|
||||
echo "Update UKI to custom named entry"
|
||||
|
||||
if command -v limine &>/dev/null && [[ -f /etc/default/limine ]]; then
|
||||
if grep -q "^ENABLE_UKI=yes" /etc/default/limine; then
|
||||
if ! grep -q "^CUSTOM_UKI_NAME=" /etc/default/limine; then
|
||||
sudo sed -i '/^ENABLE_UKI=yes/a CUSTOM_UKI_NAME="omarchy"' /etc/default/limine
|
||||
fi
|
||||
|
||||
# Remove the archinstall-created Limine entry
|
||||
while IFS= read -r bootnum; do
|
||||
sudo efibootmgr -b "$bootnum" -B >/dev/null 2>&1
|
||||
done < <(efibootmgr | grep -E "^Boot[0-9]{4}\*? Arch Linux Limine" | sed 's/^Boot\([0-9]\{4\}\).*/\1/')
|
||||
|
||||
sudo limine-update
|
||||
|
||||
uki_file=$(find /boot/EFI/Linux/ -name "omarchy*.efi" -printf "%f\n" 2>/dev/null | head -1)
|
||||
|
||||
if [[ -n "$uki_file" ]]; then
|
||||
while IFS= read -r bootnum; do
|
||||
sudo efibootmgr -b "$bootnum" -B >/dev/null 2>&1
|
||||
done < <(efibootmgr | grep -E "^Boot[0-9]{4}\*? Omarchy" | sed 's/^Boot\([0-9]\{4\}\).*/\1/')
|
||||
|
||||
# Skip EFI entry creation on Apple hardware
|
||||
if ! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "Apple"; then
|
||||
sudo efibootmgr --create \
|
||||
--disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \
|
||||
--part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \
|
||||
--label "Omarchy" \
|
||||
--loader "\\EFI\\Linux\\$uki_file"
|
||||
fi
|
||||
fi
|
||||
else
|
||||
echo "Not using UKI. Not making any changes."
|
||||
fi
|
||||
else
|
||||
echo "Boot config is non-standard. Not making any changes."
|
||||
fi
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
echo "Adding hidden entries for electron apps"
|
||||
|
||||
cp $OMARCHY_PATH/applications/hidden/electron*.desktop ~/.local/share/applications/
|
||||
@@ -1,5 +0,0 @@
|
||||
echo "Correct path for sudoless asdcontrol for working Apple Display hotkeys"
|
||||
|
||||
if [[ $(command -v asdcontrol) == "/usr/bin/asdcontrol" ]]; then
|
||||
echo "$USER ALL=(ALL) NOPASSWD: /usr/bin/asdcontrol" | sudo tee /etc/sudoers.d/asdcontrol
|
||||
fi
|
||||
@@ -1,3 +0,0 @@
|
||||
echo "Fix opening in nvim from files manager"
|
||||
|
||||
cp -f $OMARCHY_PATH/applications/nvim.desktop ~/.local/share/applications/nvim.desktop
|
||||
@@ -1,4 +0,0 @@
|
||||
echo "Hide OpenJDK applications from app launcher"
|
||||
|
||||
cp $OMARCHY_PATH/applications/hidden/*openjdk.desktop ~/.local/share/applications/
|
||||
|
||||
@@ -3,9 +3,12 @@ return {
|
||||
"catppuccin/nvim",
|
||||
name = "catppuccin",
|
||||
priority = 1000,
|
||||
opts = {
|
||||
flavour = "latte",
|
||||
},
|
||||
config = function()
|
||||
require("catppuccin").setup({
|
||||
flavour = "latte", -- other options: "mocha", "frappe", "macchiato"
|
||||
})
|
||||
vim.cmd.colorscheme("catppuccin-latte")
|
||||
end,
|
||||
},
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
return {
|
||||
{
|
||||
"catppuccin/nvim",
|
||||
name = "catppuccin",
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
|
||||
@@ -1,13 +1,9 @@
|
||||
return {
|
||||
{
|
||||
"ribru17/bamboo.nvim",
|
||||
priority = 1000,
|
||||
opts = {},
|
||||
},
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "bamboo",
|
||||
},
|
||||
},
|
||||
"ribru17/bamboo.nvim",
|
||||
lazy = false,
|
||||
priority = 1000,
|
||||
config = function()
|
||||
require("bamboo").setup({})
|
||||
require("bamboo").load()
|
||||
end,
|
||||
}
|
||||
|
||||
@@ -1,14 +1,31 @@
|
||||
return {
|
||||
{
|
||||
"loctvl842/monokai-pro.nvim",
|
||||
opts = {
|
||||
filter = "ristretto",
|
||||
},
|
||||
},
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "monokai-pro",
|
||||
},
|
||||
},
|
||||
{
|
||||
"gthelding/monokai-pro.nvim",
|
||||
config = function()
|
||||
require("monokai-pro").setup({
|
||||
filter = "ristretto",
|
||||
override = function()
|
||||
return {
|
||||
NonText = { fg = "#948a8b" },
|
||||
MiniIconsGrey = { fg = "#948a8b" },
|
||||
MiniIconsRed = { fg = "#fd6883" },
|
||||
MiniIconsBlue = { fg = "#85dacc" },
|
||||
MiniIconsGreen = { fg = "#adda78" },
|
||||
MiniIconsYellow = { fg = "#f9cc6c" },
|
||||
MiniIconsOrange = { fg = "#f38d70" },
|
||||
MiniIconsPurple = { fg = "#a8a9eb" },
|
||||
MiniIconsAzure = { fg = "#a8a9eb" },
|
||||
MiniIconsCyan = { fg = "#85dacc" }, -- same value as MiniIconsBlue for consistency
|
||||
}
|
||||
end,
|
||||
})
|
||||
vim.cmd([[colorscheme monokai-pro]])
|
||||
end,
|
||||
},
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "monokai-pro",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
@@ -1,121 +1,123 @@
|
||||
# see https://github.com/eza-community/eza-themes/blob/main/themes/rose-pine-dawn.yml
|
||||
# see https://github.com/eza-community/eza-themes/blob/main/themes/rose-pine.yml
|
||||
|
||||
colourful: true
|
||||
|
||||
# Colors are in format of:
|
||||
# color/paletteRef (Description) #color code
|
||||
|
||||
# Gold (Terminal Yellow) #ea9d34
|
||||
# Love (Terminal Red) #b4637a
|
||||
# Rose (Terminal Cyan) #d7827e
|
||||
# Base (Primary Background) #faf4ed
|
||||
# Iris (Terminal Magenta) #907aa9
|
||||
# Foam (Terminal Blue) #56949f
|
||||
# Pine (Terminal Green) #286983
|
||||
# Text (High contrast foreground) #575279
|
||||
# Muted (Low Contrast Foreground) #9893a5
|
||||
# Subtle (Medium Contrast Foreground) #797593
|
||||
# Highlight Low (Low contrast highlight) #f4ede8
|
||||
# Highlight Med (Medium Contrast Highlight) #dfdad9
|
||||
# Highlight High (High Contrast Highlight) #cecacd
|
||||
# Gold (Terminal Yellow) #f6c177
|
||||
# Love (Terminal Red) #eb6f92
|
||||
# Rose (Terminal Cyan) #ebbcba
|
||||
# Base (Primary Background) #191724
|
||||
# Iris (Terminal Magenta) #c4a7e7
|
||||
# Foam (Terminal Blue) #9ccfd8
|
||||
# Pine (Terminal Green) #31748f
|
||||
# Muted (Low Contrast Foreground) #6e6a86
|
||||
# Surface (Secondary Background Atop Base) #1f1d2e
|
||||
# Overlay (Tertiary Background Atop Surface) #26233a
|
||||
# Subtle (Medium Contrast Foreground) #908caa
|
||||
# Text (High Contrast Foreground) #e0def4
|
||||
# Highlight Low (Low Contrast Highlight) #21202e
|
||||
# Highlight Med (Medium Contrast Highlight) #403d52
|
||||
# Highlight High (High Contrast Highlight) #524f67
|
||||
|
||||
filekinds:
|
||||
normal: { foreground: "#575279" }
|
||||
directory: { foreground: "#56949f" }
|
||||
symlink: { foreground: "#cecacd" }
|
||||
pipe: { foreground: "#797593" }
|
||||
block_device: { foreground: "#d7827e" }
|
||||
char_device: { foreground: "#ea9d34" }
|
||||
socket: { foreground: "#f4ede8" }
|
||||
special: { foreground: "#907aa9" }
|
||||
executable: { foreground: "#907aa9" }
|
||||
mount_point: { foreground: "#dfdad9" }
|
||||
normal: {foreground: "#e0def4"}
|
||||
directory: {foreground: "#9ccfd8"}
|
||||
symlink: {foreground: "#524f67"}
|
||||
pipe: {foreground: "#908caa"}
|
||||
block_device: {foreground: "#ebbcba"}
|
||||
char_device: {foreground: "#f6c177"}
|
||||
socket: {foreground: "#21202e"}
|
||||
special: {foreground: "#c4a7e7"}
|
||||
executable: {foreground: "#c4a7e7"}
|
||||
mount_point: {foreground: "#403d52"}
|
||||
|
||||
perms:
|
||||
user_read: { foreground: "#797593" }
|
||||
user_write: { foreground: "#d7827e" }
|
||||
user_execute_file: { foreground: "#907aa9" }
|
||||
user_execute_other: { foreground: "#907aa9" }
|
||||
group_read: { foreground: "#797593" }
|
||||
group_write: { foreground: "#d7827e" }
|
||||
group_execute: { foreground: "#907aa9" }
|
||||
other_read: { foreground: "#797593" }
|
||||
other_write: { foreground: "#d7827e" }
|
||||
other_execute: { foreground: "#907aa9" }
|
||||
special_user_file: { foreground: "#907aa9" }
|
||||
special_other: { foreground: "#d7827e" }
|
||||
attribute: { foreground: "#797593" }
|
||||
user_read: {foreground: "#908caa"}
|
||||
user_write: {foreground: "#403d52"}
|
||||
user_execute_file: {foreground: "#c4a7e7"}
|
||||
user_execute_other: {foreground: "#c4a7e7"}
|
||||
group_read: {foreground: "#908caa"}
|
||||
group_write: {foreground: "#403d52"}
|
||||
group_execute: {foreground: "#c4a7e7"}
|
||||
other_read: {foreground: "#908caa"}
|
||||
other_write: {foreground: "#403d52"}
|
||||
other_execute: {foreground: "#c4a7e7"}
|
||||
special_user_file: {foreground: "#c4a7e7"}
|
||||
special_other: {foreground: "#403d52"}
|
||||
attribute: {foreground: "#908caa"}
|
||||
|
||||
size:
|
||||
major: { foreground: "#797593" }
|
||||
minor: { foreground: "#56949f" }
|
||||
number_byte: { foreground: "#797593" }
|
||||
number_kilo: { foreground: "#cecacd" }
|
||||
number_mega: { foreground: "#286983" }
|
||||
number_giga: { foreground: "#907aa9" }
|
||||
number_huge: { foreground: "#907aa9" }
|
||||
unit_byte: { foreground: "#797593" }
|
||||
unit_kilo: { foreground: "#286983" }
|
||||
unit_mega: { foreground: "#907aa9" }
|
||||
unit_giga: { foreground: "#907aa9" }
|
||||
unit_huge: { foreground: "#56949f" }
|
||||
major: {foreground: "#908caa"}
|
||||
minor: {foreground: "#9ccfd8"}
|
||||
number_byte: {foreground: "#908caa"}
|
||||
number_kilo: {foreground: "#524f67"}
|
||||
number_mega: {foreground: "#31748f"}
|
||||
number_giga: {foreground: "#c4a7e7"}
|
||||
number_huge: {foreground: "#c4a7e7"}
|
||||
unit_byte: {foreground: "#908caa"}
|
||||
unit_kilo: {foreground: "#31748f"}
|
||||
unit_mega: {foreground: "#c4a7e7"}
|
||||
unit_giga: {foreground: "#c4a7e7"}
|
||||
unit_huge: {foreground: "#9ccfd8"}
|
||||
|
||||
users:
|
||||
user_you: { foreground: "#ea9d34" }
|
||||
user_root: { foreground: "#b4637a" }
|
||||
user_other: { foreground: "#907aa9" }
|
||||
group_yours: { foreground: "#cecacd" }
|
||||
group_other: { foreground: "#9893a5" }
|
||||
group_root: { foreground: "#b4637a" }
|
||||
user_you: {foreground: "#f6c177"}
|
||||
user_root: {foreground: "#eb6f92"}
|
||||
user_other: {foreground: "#c4a7e7"}
|
||||
group_yours: {foreground: "#524f67"}
|
||||
group_other: {foreground: "#6e6a86"}
|
||||
group_root: {foreground: "#eb6f92"}
|
||||
|
||||
links:
|
||||
normal: { foreground: "#56949f" }
|
||||
multi_link_file: { foreground: "#286983" }
|
||||
normal: {foreground: "#9ccfd8"}
|
||||
multi_link_file: {foreground: "#31748f"}
|
||||
|
||||
git:
|
||||
new: { foreground: "#56949f" }
|
||||
modified: { foreground: "#ea9d34" }
|
||||
deleted: { foreground: "#b4637a" }
|
||||
renamed: { foreground: "#286983" }
|
||||
typechange: { foreground: "#907aa9" }
|
||||
ignored: { foreground: "#9893a5" }
|
||||
conflicted: { foreground: "#d7827e" }
|
||||
new: {foreground: "#9ccfd8"}
|
||||
modified: {foreground: "#f6c177"}
|
||||
deleted: {foreground: "#eb6f92"}
|
||||
renamed: {foreground: "#31748f"}
|
||||
typechange: {foreground: "#c4a7e7"}
|
||||
ignored: {foreground: "#6e6a86"}
|
||||
conflicted: {foreground: "#ebbcba"}
|
||||
|
||||
git_repo:
|
||||
branch_main: { foreground: "#797593" }
|
||||
branch_other: { foreground: "#907aa9" }
|
||||
git_clean: { foreground: "#56949f" }
|
||||
git_dirty: { foreground: "#b4637a" }
|
||||
branch_main: {foreground: "#908caa"}
|
||||
branch_other: {foreground: "#c4a7e7"}
|
||||
git_clean: {foreground: "#9ccfd8"}
|
||||
git_dirty: {foreground: "#eb6f92"}
|
||||
|
||||
security_context:
|
||||
colon: { foreground: "#797593" }
|
||||
user: { foreground: "#56949f" }
|
||||
role: { foreground: "#907aa9" }
|
||||
typ: { foreground: "#9893a5" }
|
||||
range: { foreground: "#907aa9" }
|
||||
colon: {foreground: "#908caa"}
|
||||
user: {foreground: "#9ccfd8"}
|
||||
role: {foreground: "#c4a7e7"}
|
||||
typ: {foreground: "#6e6a86"}
|
||||
range: {foreground: "#c4a7e7"}
|
||||
|
||||
file_type:
|
||||
image: { foreground: "#ea9d34" }
|
||||
video: { foreground: "#b4637a" }
|
||||
music: { foreground: "#56949f" }
|
||||
lossless: { foreground: "#9893a5" }
|
||||
crypto: { foreground: "#dfdad9" }
|
||||
document: { foreground: "#797593" }
|
||||
compressed: { foreground: "#907aa9" }
|
||||
temp: { foreground: "#d7827e" }
|
||||
compiled: { foreground: "#286983" }
|
||||
build: { foreground: "#9893a5" }
|
||||
source: { foreground: "#d7827e" }
|
||||
image: {foreground: "#f6c177"}
|
||||
video: {foreground: "#eb6f92"}
|
||||
music: {foreground: "#9ccfd8"}
|
||||
lossless: {foreground: "#6e6a86"}
|
||||
crypto: {foreground: "#403d52"}
|
||||
document: {foreground: "#908caa"}
|
||||
compressed: {foreground: "#c4a7e7"}
|
||||
temp: {foreground: "#ebbcba"}
|
||||
compiled: {foreground: "#31748f"}
|
||||
build: {foreground: "#6e6a86"}
|
||||
source: {foreground: "#ebbcba"}
|
||||
|
||||
punctuation: { foreground: "#cecacd" }
|
||||
date: { foreground: "#286983" }
|
||||
inode: { foreground: "#797593" }
|
||||
blocks: { foreground: "#9893a5" }
|
||||
header: { foreground: "#797593" }
|
||||
octal: { foreground: "#56949f" }
|
||||
flags: { foreground: "#907aa9" }
|
||||
punctuation: {foreground: "#524f67"}
|
||||
date: {foreground: "#31748f"}
|
||||
inode: {foreground: "#908caa"}
|
||||
blocks: {foreground: "#6e6a86"}
|
||||
header: {foreground: "#908caa"}
|
||||
octal: {foreground: "#9ccfd8"}
|
||||
flags: {foreground: "#c4a7e7"}
|
||||
|
||||
symlink_path: { foreground: "#56949f" }
|
||||
control_char: { foreground: "#286983" }
|
||||
broken_symlink: { foreground: "#b4637a" }
|
||||
broken_path_overlay: { foreground: "#cecacd" }
|
||||
symlink_path: {foreground: "#9ccfd8"}
|
||||
control_char: {foreground: "#31748f"}
|
||||
broken_symlink: {foreground: "#eb6f92"}
|
||||
broken_path_overlay: {foreground: "#524f67"}
|
||||
|
||||
@@ -1,12 +1,8 @@
|
||||
return {
|
||||
{
|
||||
"folke/tokyonight.nvim",
|
||||
priority = 1000,
|
||||
},
|
||||
{
|
||||
"LazyVim/LazyVim",
|
||||
opts = {
|
||||
colorscheme = "tokyonight-night",
|
||||
colorscheme = "tokyonight",
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user