mirror of
https://github.com/fmhy/edit.git
synced 2025-10-12 07:41:08 +11:00
Compare commits
2 commits
7f333ead3b
...
e018996355
Author | SHA1 | Date | |
---|---|---|---|
|
e018996355 | ||
|
333717cc27 |
6 changed files with 104 additions and 91 deletions
|
@ -3,7 +3,7 @@ import { colors } from '@fmhy/colors'
|
|||
import { useStorage, useStyleTag } from '@vueuse/core'
|
||||
import { watch, onMounted } from 'vue'
|
||||
|
||||
// Add Halloween colors locally
|
||||
// Add Halloween colors
|
||||
const halloweenColors = {
|
||||
50: '#fff7ed',
|
||||
100: '#ffedd5',
|
||||
|
@ -18,7 +18,7 @@ const halloweenColors = {
|
|||
950: '#431407'
|
||||
}
|
||||
|
||||
// Extend colors with Halloween theme
|
||||
// hall extend or something
|
||||
const extendedColors = {
|
||||
...colors,
|
||||
halloween: halloweenColors
|
||||
|
@ -54,89 +54,97 @@ const updateThemeColor = (colorName: ColorNames) => {
|
|||
.map((scale) => `--vp-c-brand-${scale}: ${colorSet[scale]};`)
|
||||
.join('\n ')
|
||||
|
||||
// if user isnt using halloween theme switch it
|
||||
const nonHalloweenOverride = colorName !== 'halloween' ? `
|
||||
--vp-c-bg: #ffffff !important;
|
||||
--vp-c-bg-alt: #f9f9f9 !important;
|
||||
--vp-c-bg-elv: rgba(255, 255, 255, 0.7) !important;
|
||||
--vp-button-alt-bg: #484848 !important;
|
||||
--vp-button-alt-text: #f0eeee !important;
|
||||
--vp-button-alt-hover-bg: #484848 !important;
|
||||
--vp-button-alt-hover-text: #f0eeee !important;
|
||||
--vp-button-brand-bg: var(--vp-c-brand-1) !important;
|
||||
--vp-button-brand-border: var(--vp-c-brand-soft) !important;
|
||||
--vp-button-brand-text: rgba(42, 40, 47) !important;
|
||||
--vp-button-brand-hover-bg: var(--vp-c-brand-soft) !important;
|
||||
--vp-button-brand-hover-border: var(--vp-c-brand-soft) !important;
|
||||
--vp-button-brand-hover-text: rgba(42, 40, 47) !important;
|
||||
` : ''
|
||||
|
||||
const nonHalloweenDarkOverride = colorName !== 'halloween' ? `
|
||||
--vp-c-bg: rgb(26, 26, 26) !important;
|
||||
--vp-c-bg-alt: rgb(23, 23, 23) !important;
|
||||
--vp-c-bg-elv: rgba(23, 23, 23, 0.8) !important;
|
||||
--vp-button-alt-bg: #484848 !important;
|
||||
--vp-button-alt-text: #f0eeee !important;
|
||||
--vp-button-alt-hover-bg: #484848 !important;
|
||||
--vp-button-alt-hover-text: #f0eeee !important;
|
||||
--vp-button-brand-bg: var(--vp-c-brand-1) !important;
|
||||
--vp-button-brand-border: var(--vp-c-brand-soft) !important;
|
||||
--vp-button-brand-text: rgba(42, 40, 47) !important;
|
||||
--vp-button-brand-hover-bg: var(--vp-c-brand-soft) !important;
|
||||
--vp-button-brand-hover-border: var(--vp-c-brand-soft) !important;
|
||||
--vp-button-brand-hover-text: rgba(42, 40, 47) !important;
|
||||
` : ''
|
||||
|
||||
const nonHalloweenBodyOverride = colorName !== 'halloween' ? `
|
||||
body {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
.VPApp, .Layout, .VPContent, .VPHome, .VPHero, #app {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
.dark body {
|
||||
background-color: rgb(26, 26, 26) !important;
|
||||
}
|
||||
.dark .VPApp, .dark .Layout, .dark .VPContent, .dark .VPHome, .dark .VPHero, .dark #app {
|
||||
background-color: rgb(26, 26, 26) !important;
|
||||
}
|
||||
` : ''
|
||||
|
||||
css.value = `
|
||||
:root {
|
||||
${cssVars}
|
||||
--vp-c-brand-1: ${colorSet[500]};
|
||||
--vp-c-brand-2: ${colorSet[600]};
|
||||
--vp-c-brand-3: ${colorSet[800]};
|
||||
--vp-c-brand-soft: ${colorSet[400]};
|
||||
${nonHalloweenOverride}
|
||||
}
|
||||
|
||||
.dark {
|
||||
${cssVars}
|
||||
--vp-c-brand-1: ${colorSet[400]};
|
||||
--vp-c-brand-2: ${colorSet[500]};
|
||||
--vp-c-brand-3: ${colorSet[700]};
|
||||
--vp-c-brand-soft: ${colorSet[300]};
|
||||
${nonHalloweenDarkOverride}
|
||||
}
|
||||
|
||||
${nonHalloweenBodyOverride}
|
||||
`
|
||||
|
||||
// Add/remove Halloween theme indicator
|
||||
const htmlElement = document.documentElement
|
||||
|
||||
if (colorName === 'halloween') {
|
||||
htmlElement.setAttribute('data-halloween-theme', 'true')
|
||||
// Apply Halloween theme
|
||||
htmlElement.classList.add('theme-halloween')
|
||||
|
||||
css.value = `
|
||||
:root {
|
||||
${cssVars}
|
||||
--vp-c-brand-1: ${colorSet[500]};
|
||||
--vp-c-brand-2: ${colorSet[600]};
|
||||
--vp-c-brand-3: ${colorSet[800]};
|
||||
--vp-c-brand-soft: ${colorSet[400]};
|
||||
}
|
||||
|
||||
.dark {
|
||||
${cssVars}
|
||||
--vp-c-brand-1: ${colorSet[400]};
|
||||
--vp-c-brand-2: ${colorSet[500]};
|
||||
--vp-c-brand-3: ${colorSet[700]};
|
||||
--vp-c-brand-soft: ${colorSet[300]};
|
||||
}
|
||||
`
|
||||
} else {
|
||||
htmlElement.removeAttribute('data-halloween-theme')
|
||||
// Remove Halloween theme and apply other theme with normal backgrounds
|
||||
htmlElement.classList.remove('theme-halloween')
|
||||
|
||||
css.value = `
|
||||
:root {
|
||||
${cssVars}
|
||||
--vp-c-brand-1: ${colorSet[500]};
|
||||
--vp-c-brand-2: ${colorSet[600]};
|
||||
--vp-c-brand-3: ${colorSet[800]};
|
||||
--vp-c-brand-soft: ${colorSet[400]};
|
||||
--vp-c-bg: #ffffff !important;
|
||||
--vp-c-bg-alt: #f9f9f9 !important;
|
||||
--vp-c-bg-elv: rgba(255, 255, 255, 0.7) !important;
|
||||
--vp-c-bg-soft: #f9f9f9 !important;
|
||||
}
|
||||
|
||||
.dark {
|
||||
${cssVars}
|
||||
--vp-c-brand-1: ${colorSet[400]};
|
||||
--vp-c-brand-2: ${colorSet[500]};
|
||||
--vp-c-brand-3: ${colorSet[700]};
|
||||
--vp-c-brand-soft: ${colorSet[300]};
|
||||
--vp-c-bg: rgb(26, 26, 26) !important;
|
||||
--vp-c-bg-alt: rgb(23, 23, 23) !important;
|
||||
--vp-c-bg-elv: rgba(23, 23, 23, 0.8) !important;
|
||||
--vp-c-bg-soft: rgb(23, 23, 23) !important;
|
||||
}
|
||||
|
||||
html, body {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
|
||||
.VPApp, .Layout, .VPContent, .VPHome, .VPHero, #app, .vp-doc {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
|
||||
.VPHome {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
|
||||
.VPHome .VPHero {
|
||||
background-color: #ffffff !important;
|
||||
}
|
||||
|
||||
.dark html, .dark body {
|
||||
background-color: rgb(26, 26, 26) !important;
|
||||
}
|
||||
|
||||
.dark .VPApp, .dark .Layout, .dark .VPContent, .dark .VPHome, .dark .VPHero, .dark #app, .dark .vp-doc {
|
||||
background-color: rgb(26, 26, 26) !important;
|
||||
}
|
||||
|
||||
.dark .VPHome {
|
||||
background-color: rgb(26, 26, 26) !important;
|
||||
}
|
||||
|
||||
.dark .VPHome .VPHero {
|
||||
background-color: rgb(26, 26, 26) !important;
|
||||
}
|
||||
`
|
||||
}
|
||||
}
|
||||
|
||||
// Set Halloween theme ASAP if its the pref
|
||||
const storedTheme = localStorage.getItem('preferred-color')
|
||||
if (!storedTheme || storedTheme === '"halloween"') {
|
||||
document.documentElement.setAttribute('data-halloween-theme', 'true')
|
||||
document.documentElement.classList.add('theme-halloween')
|
||||
}
|
||||
|
||||
// Initialize theme color
|
||||
|
@ -145,7 +153,7 @@ updateThemeColor(selectedColor.value)
|
|||
// halloween stuff
|
||||
onMounted(() => {
|
||||
if (selectedColor.value === 'halloween') {
|
||||
document.documentElement.setAttribute('data-halloween-theme', 'true')
|
||||
document.documentElement.classList.add('theme-halloween')
|
||||
}
|
||||
// Re-apply the theme to ensure everything is initialized
|
||||
updateThemeColor(selectedColor.value)
|
||||
|
@ -170,6 +178,13 @@ const normalizeColorName = (colorName: string) =>
|
|||
:title="normalizeColorName(color)"
|
||||
>
|
||||
<span
|
||||
v-if="color === 'halloween'"
|
||||
class="inline-block w-6 h-6 flex items-center justify-center text-xl"
|
||||
>
|
||||
🎃
|
||||
</span>
|
||||
<span
|
||||
v-else
|
||||
class="inline-block w-6 h-6 rounded-full"
|
||||
:style="{ backgroundColor: extendedColors[color][500] }"
|
||||
/>
|
||||
|
|
|
@ -316,20 +316,14 @@
|
|||
* ↪️ **[Linux 2FA](https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/adblock-vpn-privacy#wiki_.25B7_password_privacy_.2F_2fa)**
|
||||
* ↪️ **[DNS Adblocking](https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/adblock-vpn-privacy/#wiki_.25B7_dns_adblocking)**
|
||||
* ⭐ **[Arch Security Wiki](https://wiki.archlinux.org/title/Security)**, [Linux Hardening](https://vez.mrsk.me/linux-hardening.html) / [2](https://madaidans-insecurities.github.io/guides/linux-hardening.html) or [How to Secure a Linux Server](https://github.com/imthenachoman/How-To-Secure-A-Linux-Server) - Linux Security Guides
|
||||
* ⭐ **[SpoofDPI](https://github.com/xvzc/SpoofDPI)** or [zapret](https://github.com/bol-van/zapret) - DPI Circumvention
|
||||
* ⭐ **[CryptSetup](https://gitlab.com/cryptsetup/cryptsetup)**, [gocryptfs](https://nuetzlich.net/gocryptfs) / [GitHub](https://github.com/rfjakob/gocryptfs) or [Tomb](https://dyne.org/software/tomb/) - File Encryption
|
||||
* [Securely Wipe Disk](https://wiki.archlinux.org/title/Securely_wipe_disk) or [SSD Memory Cell Clearing](https://wiki.archlinux.org/title/Solid_state_drive/Memory_cell_clearing) - Linux Disk Wipe Guides
|
||||
* [JShielder](https://github.com/Jsitech/JShielder) - Hardening Script for Linux Servers
|
||||
* [YouTubeUnblock](https://github.com/Waujito/youtubeUnblock) - YouTube DPI Circumvention
|
||||
* [SShuttle](https://github.com/sshuttle/sshuttle) - Proxy
|
||||
* [Lynis](https://github.com/CISOfy/lynis) - Linux Security Auditing Tool
|
||||
* [Lockigest](https://elma.dev/works/lockigest/) - Screen Locker / [GitHub](https://github.com/elmsec/lockigest)
|
||||
* [Mistborn](https://gitlab.com/cyber5k/mistborn) - Manage Cloud Security Apps
|
||||
* [OpenSnitch](https://github.com/evilsocket/opensnitch) or [gufw](https://github.com/costales/gufw) - Linux Firewalls
|
||||
* [Tracee](https://aquasecurity.github.io/tracee/latest) - Runtime Security and Forensics
|
||||
* [OpenVPN Wrapper](https://github.com/slingamn/namespaced-openvpn) - VPN Tunnel
|
||||
* [Openconnect VPN Server](https://ocserv.gitlab.io/www/index.html) - Linux SSL VPN Server
|
||||
* [DSVPN](https://github.com/jedisct1/dsvpn) - Self-Hosted VPN
|
||||
* [vnStat](https://github.com/vergoh/vnstat) - Network Monitors
|
||||
* [Howdy](https://github.com/boltgolt/howdy) - Linux Facial Authentication
|
||||
* [USBGuard](https://github.com/USBGuard/usbguard) - Implement USB Device Authorization Policies
|
||||
|
@ -337,7 +331,6 @@
|
|||
* [Collision](https://flathub.org/apps/dev.geopjr.Collision) - Check File Hashes
|
||||
* [WhoAmI Project](https://owerdogan.github.io/whoami-project) - Privacy / Anonymity Tool / [GitHub](https://github.com/owerdogan/whoami-project)
|
||||
* [Yubikey Full Disk Encryption](https://github.com/agherzan/yubikey-full-disk-encryption) - Use YubiKey to unlock a LUKS Partition
|
||||
* [DNSWarden](https://dnswarden.com/) - DNS Adblocking / [GitHub](https://github.com/bhanupratapys/dnswarden)
|
||||
* [Firejail](https://firejail.wordpress.com/) or [Bubblewrap](https://github.com/containers/bubblewrap) - Sandboxing Tools
|
||||
* [GoogleTeller](https://github.com/berthubert/googerteller) - Google Tracking Notifications
|
||||
|
||||
|
|
|
@ -441,7 +441,7 @@
|
|||
## ▷ Android Adblocking
|
||||
|
||||
* ↪️ **[DNS Adblocking](https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/adblock-vpn-privacy/#wiki_.25B7_dns_adblocking)**
|
||||
* ⭐ **[Rethink DNS](https://rethinkdns.com/app)** / [Blocklists](https://rethinkdns.com/app#blocklists), [personalDNSfilter](https://www.zenz-solutions.de/personaldnsfilter-wp/), [DNSWarden](https://dnswarden.com/) / [GitHub](https://github.com/bhanupratapys/dnswarden) - DNS Adblockers
|
||||
* ⭐ **[Rethink DNS](https://rethinkdns.com/app)** / [Blocklists](https://rethinkdns.com/app#blocklists), [personalDNSfilter](https://www.zenz-solutions.de/personaldnsfilter-wp/) - DNS Adblockers
|
||||
* ⭐ **[AdGuard Premium](https://rentry.co/FMHYB64#adguard)** - Adblocking App
|
||||
* ⭐ **[uBlock Origin](https://github.com/gorhill/uBlock)** - Adblocker / Works Best on [Firefox](https://addons.mozilla.org/en-US/firefox/addon/ublock-origin/) / [Brave](https://brave.com/)
|
||||
* [AdAway](https://adaway.org/) - Adblocking App / [GitHub](https://github.com/AdAway/AdAway)
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
* [NextDNS](https://nextdns.io) - Customizable DNS Adblocking Service / [Video](https://youtu.be/WUG57ynLb8I)
|
||||
* [LibreDNS](https://libredns.gr/) - DNS Adblocking / [GitLab](https://gitlab.com/libreops/libredns)
|
||||
* [Tiarap](https://doh.tiar.app/) - DNS Adblocking / [GitHub](https://github.com/pengelana/blocklist)
|
||||
* [DNSWarden](https://dnswarden.com/) - DNS Adblocking / [GitHub](https://github.com/bhanupratapys/dnswarden)
|
||||
* [Blocky](https://0xerr0r.github.io/blocky/latest/) - DNS Adblocking / [GitHub](https://github.com/0xERR0R/blocky)
|
||||
* [AdGuard DNS](https://adguard-dns.io/) - Customizable DNS Adblocking Service / [X](https://x.com/adguard) / [Subreddit](https://reddit.com/r/Adguard) / [Telegram](https://t.me/adguarden)
|
||||
* [Control D](https://controld.com/free-dns) - Customizable DNS Adblocking Service / [X](https://x.com/controldns) / [Subreddit](https://reddit.com/r/ControlD/) / [Discord](https://discord.gg/dns)
|
||||
|
@ -185,9 +186,7 @@
|
|||
## ▷ Network Security
|
||||
|
||||
* ⭐ **[Safing Portmaster](https://safing.io/)** - Network Monitor / DNS Resolver / Firewall / [Discord](https://discord.com/invite/safing) / [GitHub](https://github.com/safing)
|
||||
* ⭐ **[DNSveil](https://msasanmh.github.io/DNSveil/)** - DNS Client / [GitHub](https://github.com/msasanmh/DNSveil)
|
||||
* [I2P](https://geti2p.net/en/) - Encrypted Private Network Layer / [Guide](https://rentry.co/CBGI2P) / [GitLab](https://i2pgit.org/)
|
||||
* [3X-UI](https://github.com/MHSanaei/3x-ui) - DIY Privacy Network / [Telegram](https://t.me/XrayUI) / **[Warning](https://github.com/fmhy/FMHY/wiki/FMHY‐Notes.md#3x-ui)**
|
||||
* [I2P](https://geti2p.net/en/) - Encrypted P2P Network Layer / [Guide](https://rentry.co/CBGI2P) / [GitLab](https://i2pgit.org/)
|
||||
* [Simplewall](https://github.com/henrypp/simplewall) - Firewall
|
||||
* [Fort](https://github.com/tnodir/fort) - Firewall
|
||||
* [WFC](https://www.binisoft.org/wfc.php) - Firewall
|
||||
|
@ -378,7 +377,7 @@
|
|||
* [OpenVPN](https://openvpn.net/) - VPN Server
|
||||
* [WGDashboard](https://wgdashboard.dev/) - WireGuard Panel / AmneziaWG / [Subreddit](https://www.reddit.com/r/WGDashboard/) / [Discord](https://discord.gg/72TwzjeuWm) / [GitHub](https://github.com/donaldzou/WGDashboard)
|
||||
* [Headscale](https://github.com/juanfont/headscale) - Self Hosted Tailscale
|
||||
* [Nebula](https://github.com/slackhq/nebula) or [ZeroTier](https://www.zerotier.com/) - Mesh VPN Server
|
||||
* [Nebula](https://github.com/slackhq/nebula) or [ZeroTier](https://www.zerotier.com/) - Mesh VPN Server
|
||||
* [IPsec VPN](https://github.com/hwdsl2/setup-ipsec-vpn) - VPN Server
|
||||
* [Cloudflare Tunnels](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) - Application Tunnel / VPN Alternative / [WireGuard](https://gist.github.com/WildeBeast2521/adabae243e0b83e344ceef0422c3fa6d)
|
||||
* [Cloud WireGuard Guide](https://github.com/rajannpatel/Pi-Hole-on-Google-Compute-Engine-Free-Tier-with-Full-Tunnel-and-Split-Tunnel-Wireguard-VPN-Configs) - WireGuard + Pi-hole VPN using Google Cloud
|
||||
|
@ -387,6 +386,9 @@
|
|||
* [OpenConnect](https://gitlab.com/openconnect/openconnect) - SSL VPN / [GUI](https://openconnect.github.io/openconnect-gui/)
|
||||
* [Pritunl](https://pritunl.com/) - VPN Server / [GitHub](https://github.com/pritunl/pritunl)
|
||||
* [Algo VPN](https://blog.trailofbits.com/2016/12/12/meet-algo-the-vpn-that-works/) - Cloud VPN / [GitHub](https://github.com/trailofbits/algo)
|
||||
* [SShuttle](https://sshuttle.readthedocs.io/en) - SSH VPN Server [GitHub](https://github.com/sshuttle/sshuttle)
|
||||
* [DSVPN](https://github.com/jedisct1/dsvpn) - Simple VPN Server
|
||||
* [Openconnect](https://ocserv.gitlab.io/www/index.html) - SSL VPN Server
|
||||
|
||||
***
|
||||
|
||||
|
@ -429,6 +431,7 @@
|
|||
* [Scramjet](https://docs.titaniumnetwork.org/proxies/scramjet/) / [GitHub](https://github.com/MercuryWorkshop/scramjet/) or [Nebula](https://github.com/NebulaServices/Nebula) - Web Proxy Server
|
||||
* [Nginx Proxy Manager](https://nginxproxymanager.com) - Reverse Proxy UI / [Subreddit](https://reddit.com/r/nginxproxymanager) / [GitHub](https://github.com/NginxProxyManager/nginx-proxy-manager)
|
||||
|
||||
|
||||
***
|
||||
|
||||
## ▷ Proxy Clients
|
||||
|
@ -454,9 +457,10 @@
|
|||
|
||||
* ↪️ **[Great Firewall Bypass](https://www.reddit.com/r/FREEMEDIAHECKYEAH/wiki/non-eng#wiki_.25B7_great_firewall)**
|
||||
* ⭐ **[ByeDPIAndroid](https://github.com/dovecoteescapee/ByeDPIAndroid)**, - Network Packet Alter Tool / Android
|
||||
* ⭐ **[zapret](https://github.com/bol-van/zapret)** or **[GoodbyeDPI](https://github.com/ValdikSS/GoodbyeDPI/)** - Network Packet Alter Tool
|
||||
* ⭐ **[zapret](https://github.com/bol-van/zapret)**, **[SpoofDPI](https://github.com/xvzc/SpoofDPI)** or **[GoodbyeDPI](https://github.com/ValdikSS/GoodbyeDPI/)** - Network Packet Alter Tool
|
||||
* ⭐ **[DNSveil](https://msasanmh.github.io/DNSveil/)** - DNS Client / [GitHub](https://github.com/msasanmh/DNSveil)
|
||||
* [ByeByeDPI](https://github.com/romanvht/ByeByeDPI/blob/master/README-en.md), [PowerTunnel](https://github.com/krlvm/PowerTunnel) or [Green Tunnel](https://github.com/SadeghHayeri/GreenTunnel) - Network Packet Alter Tools
|
||||
* [YouTubeUnblock](https://github.com/Waujito/youtubeUnblock) - Unblock YouTube with SNI Spoof / OpenWrt / Entware Routers
|
||||
|
||||
***
|
||||
|
||||
|
|
|
@ -296,7 +296,6 @@
|
|||
* [ShortUrlBot](https://t.me/ShortUrlBot) - Link Shortener Bots
|
||||
* [AiImageBot](https://t.me/AiImageBot) - Text to Image
|
||||
* [Shieldy Bot](https://t.me/shieldy_bot) - Spam Protection Bot / [GitHub](https://github.com/1inch/shieldy)
|
||||
* [ProxyBot](https://t.me/vamproxy_bot), [proxy_socks5_bot](https://t.me/BestMTProxyBot) or [ShadowSocks_bot](https://t.me/ShadowSocks_bot) - Telegram Proxy Bots
|
||||
* [r/TelegramBots](https://www.reddit.com/r/TelegramBots/) - Telegram Bots Discussion
|
||||
|
||||
***
|
||||
|
|
|
@ -149,6 +149,8 @@
|
|||
* [Mytunneling](https://www.mytunneling.com/)
|
||||
* [OpenTunnel](https://opentunnel.net/)
|
||||
* [Howdy](https://howdy.id/)
|
||||
* [ProxyBot](https://t.me/vamproxy_bot) - Telegram Proxy Bot
|
||||
* [proxy_socks5_bot](https://t.me/BestMTProxyBot) or [ShadowSocks_bot](https://t.me/ShadowSocks_bot) - Telegram Shadowsocks Bots
|
||||
|
||||
***
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue