Drop western default apps from the CN default set
Basecamp, Discord, HEY, Google Contacts/Maps/Messages/Photos, WhatsApp, and X lose their shipped launchers, webapp keybindings, and the whatsapp-slim extension; aether, libreoffice-fresh, and obs-studio leave the base package set. The HEY mailto handler and its registration go with them. Preinstall add/remove lists, the launcher hide list, and chromium flags stay in sync. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QKxGW1raAWaqeU8WdHsMsp
@@ -1,8 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Basecamp
|
||||
Exec=omarchy-launch-webapp https://launchpad.37signals.com
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=basecamp
|
||||
StartupNotify=true
|
||||
@@ -1,8 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Discord
|
||||
Exec=omarchy-launch-webapp https://discord.com/channels/@me
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=omarchy-discord
|
||||
StartupNotify=true
|
||||
@@ -1,8 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Google Contacts
|
||||
Exec=omarchy-launch-webapp https://contacts.google.com/
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=google-contacts
|
||||
StartupNotify=true
|
||||
@@ -1,8 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Google Maps
|
||||
Exec=omarchy-launch-webapp https://maps.google.com
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=google-maps
|
||||
StartupNotify=true
|
||||
@@ -1,8 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Google Messages
|
||||
Exec=omarchy-launch-webapp https://messages.google.com/web/conversations
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=google-messages
|
||||
StartupNotify=true
|
||||
@@ -1,8 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Google Photos
|
||||
Exec=omarchy-launch-webapp https://photos.google.com/
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=google-photos
|
||||
StartupNotify=true
|
||||
@@ -1,9 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=HEY
|
||||
Exec=omarchy-webapp-handler-hey %u
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=hey
|
||||
StartupNotify=true
|
||||
MimeType=x-scheme-handler/mailto
|
||||
@@ -1,8 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=WhatsApp
|
||||
Exec=omarchy-launch-webapp https://web.whatsapp.com/
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=whatsapp
|
||||
StartupNotify=true
|
||||
@@ -1,8 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=X
|
||||
Exec=omarchy-launch-webapp https://x.com/
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=x
|
||||
StartupNotify=true
|
||||
|
Before Width: | Height: | Size: 147 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 196 KiB |
|
Before Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 22 KiB |
@@ -12,13 +12,10 @@ if gum confirm "Are you sure you want to restore all preinstalled web apps, TUI
|
||||
|
||||
# Mirrors the list in omarchy-remove-preinstalls; both track omarchy-base.packages
|
||||
if ! omarchy-pkg-add \
|
||||
aether \
|
||||
cliamp \
|
||||
libreoffice-fresh \
|
||||
xournalpp \
|
||||
pinta \
|
||||
obsidian \
|
||||
obs-studio \
|
||||
kdenlive \
|
||||
moonlight-qt \
|
||||
lazydocker \
|
||||
|
||||
@@ -11,7 +11,7 @@ Usage: omarchy finalize user [--force] [--first-install]
|
||||
|
||||
Runs the per-user setup steps that /etc/skel can't seed:
|
||||
dev-aware skill symlinks, xdg-user-dirs + gtk bookmarks (need \$HOME),
|
||||
default browser/mailto, and install/user/all.sh.
|
||||
default browser, and install/user/all.sh.
|
||||
|
||||
For shipped configs see /etc/skel (new users) and omarchy-reinstall-configs
|
||||
(existing users explicitly resyncing).
|
||||
@@ -110,7 +110,6 @@ source "$OMARCHY_INSTALL/user/all.sh"
|
||||
|
||||
omarchy-refresh-applications
|
||||
env -u BROWSER xdg-settings set default-web-browser chromium.desktop
|
||||
xdg-mime default HEY.desktop x-scheme-handler/mailto
|
||||
|
||||
if (( first_install )); then
|
||||
mkdir -p "$state_dir/migrations"
|
||||
|
||||
@@ -18,13 +18,10 @@ if gum confirm "Are you sure you want to remove all preinstalled web apps, TUI w
|
||||
~/.local/bin/omp ~/.local/bin/ori ~/.local/bin/grok ~/.local/bin/crush ~/.local/bin/ghui ~/.local/bin/hunk
|
||||
|
||||
omarchy-pkg-drop \
|
||||
aether \
|
||||
cliamp \
|
||||
libreoffice-fresh \
|
||||
xournalpp \
|
||||
pinta \
|
||||
obsidian \
|
||||
obs-studio \
|
||||
kdenlive \
|
||||
moonlight-qt \
|
||||
lazydocker \
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# omarchy:summary=Open HEY webmail and translate mailto links
|
||||
# omarchy:args=[url]
|
||||
|
||||
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"
|
||||
@@ -2,4 +2,4 @@
|
||||
--ozone-platform-hint=wayland
|
||||
--password-store=gnome-libsecret
|
||||
--enable-features=TouchpadOverscrollHistoryNavigation
|
||||
--load-extension=/usr/share/omarchy/default/chromium/extensions/copy-url,/usr/share/omarchy/default/chromium/extensions/yt-dlp,/usr/share/omarchy/default/chromium/extensions/whatsapp-slim
|
||||
--load-extension=/usr/share/omarchy/default/chromium/extensions/copy-url,/usr/share/omarchy/default/chromium/extensions/yt-dlp
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
{
|
||||
"manifest_version": 3,
|
||||
"name": "WhatsApp Slim",
|
||||
"version": "1.1",
|
||||
"key": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAszLhFYxjvKqx1VAORt3M6b0H1Kz03cmQ1MrUjJZ8gj3nhRcvufk6PS17yUIjEdKKmuj+1HuFVwOaHJQsACGJXwn2TeKQqZmZx/83yd7ydgabHXTsJbhy5O+Yunv+VA1B2IX/phcXpkH9bPv2PuC/bQ13nmmAvT2b+EMyq8EPQHOoSWhE4M4kIhLDczTmxfJX5X3tTxH66952DYuQWvGpIXLAUXkvIgap0qemW68/LymPaWzcg6g3oE/nZ7C0j7JE5bnqLFxqXNlA9Jt+Ss/1Y33QL3OSD9EEsrpgueS0bbqtkmFQ9/jGlruIL+qj0xe+CAtqbJ5ty9H/sqi01kjfyQIDAQAB",
|
||||
"description": "Make WhatsApp Web follow the system theme and collapse its chat list in narrow windows, this extension is installed by Omarchy",
|
||||
"content_scripts": [
|
||||
{
|
||||
"matches": [
|
||||
"https://web.whatsapp.com/*"
|
||||
],
|
||||
"css": [
|
||||
"whatsapp.css"
|
||||
],
|
||||
"js": [
|
||||
"system-theme.js"
|
||||
],
|
||||
"run_at": "document_start"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
if (localStorage.getItem("system-theme-mode") !== "true") {
|
||||
localStorage.setItem("system-theme-mode", "true");
|
||||
location.reload();
|
||||
}
|
||||
@@ -1,64 +0,0 @@
|
||||
/* Collapse WhatsApp Web's chat list to a Signal-style avatar rail when the
|
||||
* window is too narrow to show both the full list and the conversation.
|
||||
* Leans on WhatsApp's stable structural ids (#side, #main, #pane-side) and
|
||||
* data-testid hooks rather than its obfuscated, frequently-churning class
|
||||
* names. */
|
||||
|
||||
@media (max-width: 1100px) {
|
||||
/* The chat-list column (title header + #side) becomes an avatar rail */
|
||||
div:has(> div#side) {
|
||||
flex: 0 0 90px !important;
|
||||
min-width: 90px !important;
|
||||
max-width: 90px !important;
|
||||
}
|
||||
|
||||
/* Chat-list title bar, search, filter chips, and banner don't fit.
|
||||
* Scoped to the column wrapper: the left icon nav rail confusingly
|
||||
* shares the same chatlist-header testid and must survive. */
|
||||
div:has(> div#side) > header,
|
||||
#side > div:first-child,
|
||||
#side [role="tablist"],
|
||||
#side span[data-testid="chat-butterbar"] {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* The rail doesn't need a visible scrollbar, and horizontal overflow
|
||||
* from the collapsed rows must not wiggle */
|
||||
#pane-side {
|
||||
overflow-x: hidden !important;
|
||||
scrollbar-width: none !important;
|
||||
}
|
||||
|
||||
/* Chat rows: keep the avatar column, collapse the text/preview columns
|
||||
* without display:none so the unread badge can be resurrected */
|
||||
[data-testid="cell-frame-container"] {
|
||||
position: relative !important;
|
||||
}
|
||||
|
||||
[data-testid="cell-frame-container"] > div:not(:first-child) {
|
||||
visibility: hidden !important;
|
||||
width: 0 !important;
|
||||
min-width: 0 !important;
|
||||
overflow: hidden !important;
|
||||
}
|
||||
|
||||
/* Float the unread badge over the avatar's top-right corner */
|
||||
[data-testid="cell-frame-container"] span[aria-label*="unread"] {
|
||||
visibility: visible !important;
|
||||
position: absolute !important;
|
||||
top: 2px !important;
|
||||
left: 50px !important;
|
||||
}
|
||||
|
||||
/* The empty drawer overlay keeps the stock chat-list width, which
|
||||
* strands its divider border in the middle of the conversation */
|
||||
[data-testid="drawer-middle"] {
|
||||
border-left: none !important;
|
||||
}
|
||||
|
||||
/* Let the app shrink below WhatsApp's default minimum width */
|
||||
#app,
|
||||
#app .two {
|
||||
min-width: 0 !important;
|
||||
}
|
||||
}
|
||||
@@ -21,14 +21,5 @@ if o.preinstalled_bindings_enabled() then
|
||||
|
||||
o.bind("SUPER + SHIFT + A", "ChatGPT", { webapp = "https://chatgpt.com" })
|
||||
o.bind("SUPER + SHIFT + ALT + A", "Grok", { webapp = "https://grok.com" })
|
||||
o.bind("SUPER + SHIFT + C", "Calendar", { webapp = "https://app.hey.com/calendar/weeks/" })
|
||||
o.bind("SUPER + SHIFT + E", "Email", { webapp = "https://app.hey.com" })
|
||||
o.bind("SUPER + SHIFT + ALT + E", "New email", { webapp = "https://app.hey.com/messages/new?display=standalone&new_window=true" })
|
||||
o.bind("SUPER + SHIFT + Y", "YouTube", { webapp = "https://youtube.com/" })
|
||||
o.bind("SUPER + SHIFT + ALT + G", "WhatsApp", { webapp = "https://web.whatsapp.com/", focus = true })
|
||||
o.bind( "SUPER + SHIFT + CTRL + G", "Google Messages", { webapp = "https://messages.google.com/web/conversations", focus = true })
|
||||
o.bind("SUPER + SHIFT + P", "Google Photos", { webapp = "https://photos.google.com/", focus = true })
|
||||
o.bind("SUPER + SHIFT + S", "Google Maps", { webapp = "https://maps.google.com/", focus = true })
|
||||
o.bind("SUPER + SHIFT + X", "X", { webapp = "https://x.com/" })
|
||||
o.bind("SUPER + SHIFT + ALT + X", "X Post", { webapp = "https://x.com/compose/post" })
|
||||
end
|
||||
|
||||
@@ -19,11 +19,6 @@ kbd-layout-viewer5
|
||||
kcm_fcitx5
|
||||
kcm_kaccounts
|
||||
kvantummanager
|
||||
libreoffice-base
|
||||
libreoffice-draw
|
||||
libreoffice-math
|
||||
libreoffice-startcenter
|
||||
libreoffice-xsltfilter
|
||||
limine-snapper-restore
|
||||
lstopo
|
||||
org.fcitx.Fcitx5
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# Omarchy core package list pacstrapped by the ISO.
|
||||
# The ISO builder also reads this file when constructing the offline mirror.
|
||||
|
||||
aether
|
||||
alsa-utils
|
||||
asdcontrol
|
||||
avahi
|
||||
@@ -74,7 +73,6 @@ less
|
||||
libsecret
|
||||
libvips
|
||||
libyaml
|
||||
libreoffice-fresh
|
||||
llvm
|
||||
localsend
|
||||
lua51
|
||||
@@ -93,7 +91,6 @@ noto-fonts-cjk
|
||||
noto-fonts-emoji
|
||||
nss-mdns
|
||||
nvim
|
||||
obs-studio
|
||||
obsidian
|
||||
omacalc
|
||||
omacut
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/base-test.sh"
|
||||
|
||||
require_command node
|
||||
|
||||
# A keyless unpacked extension gets a path-derived id, so its settings — and
|
||||
# any shortcut registrations it may grow — would go stale if its load path or
|
||||
# packaging ever changed. The pinned key keeps the id stable everywhere.
|
||||
whatsapp_slim_id=$(node - <<'JS' "$ROOT/default/chromium/extensions/whatsapp-slim/manifest.json"
|
||||
const crypto = require('crypto')
|
||||
const fs = require('fs')
|
||||
|
||||
const manifest = JSON.parse(fs.readFileSync(process.argv[2], 'utf8'))
|
||||
const hash = crypto.createHash('sha256').update(Buffer.from(manifest.key, 'base64')).digest()
|
||||
const alphabet = 'abcdefghijklmnop'
|
||||
let id = ''
|
||||
|
||||
for (const byte of hash.subarray(0, 16)) {
|
||||
id += alphabet[byte >> 4]
|
||||
id += alphabet[byte & 0x0f]
|
||||
}
|
||||
|
||||
process.stdout.write(id)
|
||||
JS
|
||||
)
|
||||
|
||||
[[ $whatsapp_slim_id == "amhpgjbcfakkmkeojmoaoiochhifohdi" ]] ||
|
||||
fail "whatsapp-slim extension manifest has the stable id" "$whatsapp_slim_id"
|
||||
pass "whatsapp-slim extension manifest has the stable id"
|
||||
@@ -1,30 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/base-test.sh"
|
||||
|
||||
require_command jq
|
||||
require_command node
|
||||
|
||||
EXT_DIR="$ROOT/default/chromium/extensions/whatsapp-slim"
|
||||
|
||||
jq -e '
|
||||
.content_scripts[0].js == ["system-theme.js"] and
|
||||
.content_scripts[0].run_at == "document_start"
|
||||
' "$EXT_DIR/manifest.json" >/dev/null || fail "WhatsApp enables system theming before startup"
|
||||
|
||||
mode=$(node - "$EXT_DIR/system-theme.js" <<'JS'
|
||||
const fs = require("fs")
|
||||
const values = new Map()
|
||||
let reloaded = false
|
||||
global.localStorage = {
|
||||
getItem: key => values.get(key),
|
||||
setItem: (key, value) => values.set(key, value),
|
||||
}
|
||||
global.location = { reload: () => { reloaded = true } }
|
||||
eval(fs.readFileSync(process.argv[2], "utf8"))
|
||||
process.stdout.write(`${values.get("system-theme-mode")}:${reloaded}`)
|
||||
JS
|
||||
)
|
||||
|
||||
[[ $mode == "true:true" ]] || fail "WhatsApp selects its system theme mode" "$mode"
|
||||
pass "WhatsApp follows the system theme through its existing slim extension"
|
||||