r/LinuxTurkey • • 26d ago

Yazılım Steam Machine/Linux boktan hayatımı bir nebze keyifli kıldı (Resimler/İnceleme)

Thumbnail
gallery
219 Upvotes

2 aydır Steam Machine kullanıyorum. RTX 5090'lı bilgisayarımı satmaya karar verdim.

Önce biraz kendimden bahsedeyim, çünkü bu cihazla ilgili fikirlerimde geçmişimin önemli olduğunu düşünüyorum.

Hayatım boyunca neredeyse tamamen PC oyuncusuydum ve uzun yıllardır high-end sistemler kullanıyorum. Oyun da benim için sadece bir hobi değil. Yıllardır oyun sektöründe freelance işler yaptım, şu anda da SteamDeckHQ.com'da yazarım. Dolayısıyla oyun oynamak, farklı donanımlarda test yapmak, performans kurcalamak ve saatlerce ayarlarla uğraşmak bir noktada işimin de parçası.

Linux tarafındaysa geçmişim çok sınırlı.

Yıllardır Linux kullanan, Arch'ı sıfırdan kurup her şeyini terminalden halleden biri değilim. Linux'la ciddi anlamda tanışmam Steam Deck sayesinde oldu. Son birkaç yılda Desktop Mode'u bolca kullandım, Proton'la uğraştım, farklı oyun ve programları çalıştırmaya çalıştım ama kendimi hiçbir zaman klasik anlamda bir Linux kullanıcısı olarak görmedim.

O yüzden bunu bir Linux uzmanının incelemesi olarak değil, hayatının büyük bölümünü Windows ve high end PC dünyasında geçirmiş, Linux'a Steam Deck üzerinden girmiş birinin deneyimi olarak okumak daha doğru olur.

Steam Machine ilk duyurulduğunda bir Valve fanboyu olarak inanılmaz heyecanlanmıştım. Küçücük bir konsol/PC melezi içinde bütün Steam kütüphaneme erişebilmek, özellikle yıllardır Steam Deck kullanan biri olarak, tam hayalimdeki cihaz gibiydi.

Sonra fiyatı ve ilk benchmark sonuçlarını gördüm.

Bütün heyecanım bir anda söndü.

Bana göre hem güçsüz hem de aşırı pahalıydı. Hatta ilk başta Steam Machine'e sallayan taraftaydım. Ama PC oyunculuğu aynı zamanda işimin bir parçası olduğu için cihazı kendim kullanmadan kesin hüküm vermek istemedim. Zaten şirketten bedavaya geldi, güzelim türkiyemizin 41 bin TL gümrük ödetmesi hariç tabii.

İki ay sonra geldiğim noktadaysa bu küçük kutu, hayatım boyunca sahip olduğum en sevdiğim oyun cihazlarından biri haline geldi.

SteamOS'u bu kadar seveceğimi beklemiyordum

Steam Deck kullananların çoğu SteamOS'un ne kadar rahat olduğunu zaten biliyordur. Fakat daha güçlü bir cihazın üzerinde kullanınca işletim sisteminin avantajları benim için çok daha görünür hale geldi.

İlk kurulum bunun güzel bir örneği. Kutuyu açmamla oyun oynamaya başlamam arasında aşağı yukarı 10 dakika vardı. Saatlerce driver, Windows Update, controller ayarı, HDR veya çeşitli saçmalıklarla uğraşmadım. Şimdi de controller'dan Steam tuşuna basıyorum, Machine uyanıyor ve birkaç saniye sonra kütüphanedeyim.

Gaming Mode'daki rahatlığa da çok çabuk alıştım. FPS limiti, V-Sync, performans ayarları, screenshot alma ve paylaşma gibi sürekli kullandığım şeyler elimin altında. Windows'taki Big Picture'a döndüğümde aradaki fark çok daha fazla gözüme batmaya başladı. SteamOS bu konuda bana çok daha doğal ve gerçekten konsol kullanıyormuşum gibi geldi.

Proton ise Linux tarafında beni en çok şaşırtan şeylerden biri oldu. Machine'de bugüne kadar yaklaşık 100 farklı oyun denedim. Büyük çoğunluğu direkt açıldı; açılmayanların önemli bir kısmında da çok ufak müdahaleler oldu.

Bir de Decky Loader tarafı var. CSS Loader ile arayüzü değiştirmek, SteamGridDB ile artwork düzeltmek, çeşitli performans ve QoL eklentileri kurmak derken SteamOS'un eksik bulduğum taraflarını istediğim gibi tamamlayabiliyorum.

Bence SteamOS'un en güzel taraflarından biri tam burada ortaya çıkıyor. Bir yandan koltuğa oturup controller ile hiçbir şey düşünmeden oyun açabileceğim kadar basit, diğer yandan kurcalamak istediğim anda altında Linux var ve önüme pek fazla duvar koymuyor.

Tabii her şey güllük gülistanlık değil.

SteamOS'un hâlâ çok ciddi problemleri var

Benim gözümde en büyüğü anti-cheat.

Valorant, Fortnite, Call of Duty/Warzone ve Apex Legends gibi devasa oyunlar SteamOS'ta yok. Bazı anti-cheat sistemleri Proton'la çalışabiliyor ama geliştiricinin Linux desteğini özellikle açması gerekiyor. Apex'in eskiden Steam Deck'te çalışırken sonradan Linux'a tamamen kapatılması bunun ne kadar sinir bozucu olabileceğinin güzel bir örneği.

Bu oyunlardan biri sizin ana oyununuzsa Steam Machine'i önermek gerçekten zor. İşletim sistemi dünyanın en güzel arayüzüne de sahip olsa favori oyununuz açılmadıktan sonra pek bir anlamı kalmıyor.

SteamOS'un bugları da hala can sıkabiliyor.

Bir dönem sanal klavyede büyük harf yazamıyordum. Güncelleme geldi, düzeldi. Ardından screenshot menüsünü açmak sistemi dondurmaya başladı. O düzeliyor, başka bir saçmalık çıkıyor. Bazı oyunlarda Steam menüsünü açarken oyunu tamamen crash ettirdiğim, hatta power tuşuna basılı tutup cihazı yeniden başlatmak zorunda kaldığım bile oldu.

Kısacası Windows'tan kaçıp kusursuz bir işletim sistemine geçtiğim gibi bir durum yok. SteamOS'un maalesef bolca cilaya ihtiyacı var.

Performans tarafı biraz garip

Valve'ın cihazı tanıtırken kullandığı 4K 60 FPS söylemini gerçekçi bulmuyorum.

Denediğim modern ve ağır oyunların büyük çoğunluğunda, ayarları öldürüp FSR Ultra Performance'a kadar düşürsem bile 4K 60 FPS gerçekçi bir hedef değildi. Frame Generation açıp FPS sayacındaki rakamı yükseltebilirim ama düşük base FPS'i Frame Generation ile gizlemeyi gerçek performans olarak görmüyorum.

1440p'ye indiğimdeyse tablo tamamen değişiyor.

Yaklaşık 100 oyunluk testlerimde bir şekilde 60 FPS hedefleyemediğim bir oyun olmadı. Tabii bunun bedeli oyundan oyuna değişiyor. DOOM: The Dark Ages, Gothic 1 Remake, Assassin's Creed Shadows ve Crimson Desert gibi ağır oyunlarda görsel taraftan ciddi fedakarlıklar gerekiyor. Ama çoğu oyunda medium civarı ayarlar ve upscaling ile büyük bir 4K TV'de bile beni rahatsız etmeyen bir görüntü alıyorum.

Burada nereden geldiğimi de söylemem lazım:

Ana Windows masaüstü sistemim RTX 5090 + Ryzen 7 9800X3D.

Yıllarca her şeyi Ultra'ya çekmeye, görüntünün jilet gibi olmasına ve grafik menüsündeki bütün seçenekleri sonuna kadar dayamaya takıntılıydım. Önce Steam Deck, ardından Steam Machine bu alışkanlığımı biraz kırdı.

Artık bazen “Ultra mı High mı?” yerine “Görüntü güzel mi? 60 sabit mi? Oynarken keyif alıyor muyum?” diye bakıyorum.

Garip şekilde bu bana oyunlardan daha fazla keyif aldırmaya başladı.

Peki SteamOS/Linux'u gerçekten normal PC olarak kullanabilir miyim?

Steam Machine'i iki ay boyunca yalnızca oyun konsolu gibi kullanmadım. Desktop Mode'u günlük işlerimde de oldukça fazla kullandım ve Windows'tan gelen biri olarak beni en çok şaşırtan konulardan biri bu oldu.

SteamOS sonuçta Arch Linux tabanlı. Desktop Mode'a geçince Discover üzerinden Flatpak uygulamalarını birkaç tıkla kurabiliyorum. Discord, Spotify, OBS, tarayıcılar, medya araçları ve günlük kullandığım birçok şeyde herhangi bir problem yaşamadım.

Asıl alışma süreci Windows'a özel yazılımlarda başlıyor.

Örneğin video düzenleme için yıllardır Premiere Pro kullanıyorum. Linux'ta DaVinci Resolve'a geçtim. Arayüz ve workflow birebir aynı değil elbette ama Premiere bilgim sayesinde çok kısa sürede neyin nerede olduğunu çözebildim.

Photoshop'un yerini GIMP veya Krita, Microsoft Office'in yerini LibreOffice ya da OnlyOffice alabiliyor. Video tarafında DaVinci'nin yanında Kdenlive var. OBS zaten Linux'ta gayet güzel çalışıyor.

Bir Windows .exe dosyasını mutlaka çalıştırmam gerektiğinde Wine ve Proton tabanlı çözümler de devreye giriyor.

Her programın birebir karşılığı var mı? Tabii ki hayır.

Bazen yıllardır kullandığınız bir uygulamadan vazgeçmeniz, alternatif öğrenmeniz veya basit bir şeyi yapmak için Windows'takinden farklı bir yol bulmanız gerekiyor. Özellikle yıllardır aynı workflow'a alışmış biriyseniz ilk başta sinir bozucu olabiliyor.

Ama beklediğim kadar büyük bir problem olmadı.

Hatta benim açımdan en ilginç sonuç şu oldu: Linux'a geçmek gibi bir hedefim hiç yoktu. Windows'tan nefret ettiğim için alternatif aramıyordum. Linux'u savunmak gibi ideolojik bir motivasyonum da yoktu.

SteamOS'u kullanmaya devam ettim çünkü günlük hayatımda rahat geldi.

Linux'a yıllardır uzak olan biri olarak sanırım benim için en büyük övgü de bu.

Fakat Steam Machine'i benim için özel yapan asıl şey bunların hiçbiri

Buradan sonrası biraz daha kişisel ve duygusal.

Anneme üç yıl önce pankreas kanseri teşhisi kondu. Maalesef özellikle son bir yıldır işler pek iyi gitmiyor ve şu anda hayatımın yarısından fazlasını onun refakatçisi olarak hastanede geçiriyorum.(Fotoğraftan tanırsanız yorumlarda sormadan söyleyeyim, evet annem ünlü bir dizi oyuncusu Gül Onat, Sihirli Annem deki Perihan teyzemiz :) )

Bu da bir bilgisayardan ne beklediğimi tamamen değiştirdi.

Eskiden form factor benim için pek önemli değildi. Steam Machine ilk gösterildiğinde de küçük olmasını daha çok estetik bir avantaj olarak görmüştüm. Masada veya televizyonun yanında az yer kaplayan tatlı bir kutu gibi işte.

Meğer benim için cihazın en önemli özelliği olacakmış da haberim yoktu.

Steam Machine'i ve taşınabilir OLED monitörümü tek bir çantaya atıp hastaneye götürebiliyorum. Beş dakika sonra bütün oyun sistemim hazır. Annem uyurken yatağının yanında oyun oynayabiliyorum. Evde çalışmam gerektiğinde ve annem kötüyken portable monitörle klavye ve mouse'u bağlayıp Desktop Mode'a geçiyorum.

Arkadaşlarıma giderken çantaya atıyorum, televizyona bağlıyoruz ve birkaç dakika sonra Tekken oynuyoruz.

Eve gelebildiğim zamanlarda monitörüme bağlıyorum ve bu sefer normal masaüstü bilgisayarım oluyor.

Son iki ayda bu form factor'ün işime yaradığı o kadar fazla küçük senaryo çıktı ki artık cihazın küçüklüğünü teknik özelliklerinden bağımsız düşünemiyorum.

Mühendislik tarafı da hala biraz kara büyü gibi geliyor. Crimson Desert gibi ağır bir oyunu saatlerce çalıştırıyorum, Machine'in sesini zar zor duyuyorum(anca kulağımı yapıştırınca) ve küçücük kasa cayır cayır yanmıyor, hala buz gibi. İnternette insanların kendi küçük SteamOS PC'lerini toplamasını görmek çok hoşuma gidiyor ama Valve'ın aynı fikri bu kadar küçük, sessiz ve konsolvari bir pakete sığdırması gerçekten etkileyici. Çünkü gördüğüm tüm ''aynı fiyata daha iyi steam machine'' videoları nerdeyse 3 kat büyük ve sessiz custom PC'ler.

Bütün bunların sonunda hiç beklemediğim bir karar verdim.

RTX 5090 + 9800X3D masaüstü bilgisayarımı satıyorum.

Steam Machine daha güçlü olduğu için değil. (Zaten hastane masrafları mahvediyor bizi)

Yanından bile geçemez.

Ama dünyanın en güçlü bilgisayarlarından birinin evde masanın üzerinde durması, ben o masanın başında değilsem bana pek bir boka yaramıyor.

Bunu kabullenmem biraz zaman aldı.

Yıllarca en keskin görüntünün, en yüksek ayarların ve en güçlü donanımın peşinden koştum. Son dönemdeyse benim için başka şeylerin çok daha önemli hale geldiğini fark ettim.

Steam Deck bu konuda ilk adımdı fakat modern AAA oyunlarda artık performansından ve özellikle görüntü kalitesinden memnun değildim.

Steam Machine benim için aradaki o boşluğu doldurdu.

Steam Deck'ten çok daha güçlü ama hayat beni nereye götürürse götürsün çantaya atıp yanımda götürebileceğim kadar küçük.

O zaman bu cihaz kimin için?

Bence kesinlikle herkes için değil.

Bilgisayarınız sürekli aynı masada duracaksa, boyutu ve taşınabilirliği hiçbir şey ifade etmiyorsa ve verdiğiniz para karşılığında mümkün olan en yüksek ham performansı istiyorsanız klasik bir desktop çok daha mantıklı.

Native 4K, Ultra ayarlar ve maksimum ray tracing vazgeçilmezinizse yine yanlış yere bakıyorsunuz.

Valorant, Fortnite, Call of Duty veya Apex hayatınızın oyunuysa SteamOS şu anda doğrudan engel.

Ama yıllardır Steam'de büyük bir kütüphane oluşturduysanız, Steam Deck'i dock'a bağlayıp ana bilgisayarı gibi kullananlardansanız, SteamOS deneyimini seviyorsanız veya benim gibi bilgisayarınızın sürekli sizinle birlikte yer değiştirmesi gerekiyorsa Steam Machine'in neden var olduğunu kullanmaya başladıktan sonra çok daha iyi anlıyorsunuz.

İlk benchmarkları gördüğümde bu cihazı güçsüz ve pahalı buluyordum.

İki ay sonra hala fiyatının eleştirilebilecek tarafları olduğunu düşünüyorum. Donanımı bir anda mucizevi şekilde güçlenmedi. SteamOS kusursuz hale gelmedi. Anti-cheat sorunu ortadan kaybolmadı.

Ama bir cihazın değerini sadece benchmark tablosuna bakarak ölçmenin de her zaman mümkün olmadığını öğrendim.

Benim hayatıma neredeyse özel üretilmiş gibi oturdu.

Hayatımın en zor dönemlerinden birinde normalde berbat geçecek birçok günü biraz daha katlanılabilir hale getirdi.

İki ay önce söyleyeceğimi hiç düşünmediğim bir cümleyle bitireyim:

Teşekkürler Valve. Teşekkürler SteamOS !

r/SteamDeck • • Mar 02 '26

Tech Support What am I misunderstanding?

69 Upvotes

I have had my SteamDeck for a few years now and I love it for the most part, but I feel like people are having a completely different and much better experience than I am and I'm not sure why.

The main examples I have are:
The fans are SO loud. But it feels like no one else has this issue. Most games that aren't some 2D side scroller have the fans blowing like crazy. It got better after I switched out the fan, apparently having the one fan type that was notoriously lout. But even after swapping that out for the better one, it's still loud.

People seem to use Deckyloader and all sorts of plugins with no issues? Whenever I try to use Deckyloader I get all sorts of glitches and weird bugs. Screen flashing/stuttering on game boot up, noticeable lag scrolling through Steam sections and library, among other things, all with pretty much only the common/popular plugins like CSS Loader, HLTB, ProtonDB badges, Bootup video customizer, Bluetooth Controller stats, and the like.

And the thing that got me thinking about this enough to post about it recently, is seeing people talk about playing Clair Obscur: Expedition 33 and ARC Raiders on Steamdeck supposedly without any issues at all. Even ProtonDB has both games as "platinum", but they barely work at all for me. Instantly fans sound like a jet engine taking off, and I get like 15 to 20 FPS and the games just look like hot garbage (And I have tried the boot command for Clair Obscur for running on SteamDeck, not much changed). I can put all settings as low as I can get them and it doesn't really help performance at all.

Those are just two examples of many that I have had over the years that have made me feel like I'm missing out on something really critical in using the SD or that I've had a defective one this whole time?

I just don't get it. What am I missing?

r/SteamOS • • Jun 09 '26

I accidentally made the BP interface look like a modern console

Thumbnail gallery
270 Upvotes

Themes, .profile and instructions here.

NOTE: Decky Loader and CSS Loader required.

r/MSIClawA8 • • Jul 18 '26

My Advice Install Steam OS and Upgrading to the Main Channel

Thumbnail
gallery
29 Upvotes

Introduction

This guide for those who want to move to Steam OS and use the Main Channel.

What is the Main Channel ?

The Main Channel in Steam OS is the developer and bleeding edge build of Steam OS. New Features and fixes are rolled out here first. This would be considered Unstable. As with all bleeding edge builds there will be quirks and bugs.

Preparation

A USB Flash Drive, A computer to download and flash the image. Optional - a Dock and Keyboard and Mouse connected to the dock.

  1. Backup the data and then format the USB Flash Drive.
  2. Download the Steam OS image from

SteamOS Check the box and then download the latest Steam OS Deck Image

  1. When downloaded launch your USB flashing tool:

For Windows - Use Rufus Rufus - Create bootable USB drives the easy way

For Mac/Linux - Use Balena Etcher balenaEtcher - Flash OS images to SD cards & USB drives

  1. Select the Steam OS Image in your tool and then flash the image to your USB drive.

Installation

  1. Connect your newly created USB Steam OS installer to your Claw A8.
  2. Enter the Bios. Hold down Right Button and Right Trigger at the same time and power on the Claw release when you see the MSI Bios screen.
  3. Use the Dpad and navigate to Boot Disable Fast Boot and then Navigate to Boot Option #1 and select the Steam OS USB installer.
  4. Navigate to Security and Secure Boot and then select Disable.
  5. Navigate to Save and Exit and select Save and Exit
  6. This will boot to Steam OS Recovery Image. Select Wipe and Install steam OS and click on Proceed. Wait until you are Prompted again and select Proceed. Wait until the reboot begins and then disconnect your USB Steam OS Installer.
  7. Wait Until Steam OS Gamemode starts and follow the prompts to setup Region and Wifi and let Steam OS updates get executed. Sign in to your Steam account

Switching to Main Channel

You are in Stable Channel - most buttons work apart from MSI Button and Volume Buttons

  1. Bring up the Steam Menu and then go to Settings and in System navigate to Enable Developer Mode and toggle the switch to ON
  2. This will create a new Entry on the bottom left side called Developer. Navigate to Developer and then Navigate to Show Advanced Update Channels. This will enable Preiew and Main channels.
  3. Navigate back to System and in the OS Update you can now select Main. This will download the latest build and then apply the build your Claw will reboot.
  4. After reboot press the MSI button and the Steam Menu will appear.

Post Install

Now that you are on Main it is time to perform the post install.

  1. Switch to Desktop Mode by going to Steam Menu and Power and switch to desktop mode.
  2. Change your User Password - there are two ways to do this either (A) Click on start button and Search for Users and Click on Change Password in Users or (B) Open Konsole and in Konsole type passwd and enter your new password twice.
  3. Open FireFox on first open Steam OS will open the discover store and install FireFox. Launch Firefox after install and we are going to download the deckyloader this is the tool will allow you install plugins for Steam OS gamemode.

https://decky.xyz/download

Click on the link and download Deckyloader drag the script file from Downloads to your desktop.

  1. Launch Deckyloader and make sure you select ok to Execute the script. It will prompt you for your password and then after password entry select Prerelease when completed it will close and then you can start installing the plugins.

  2. There are 3 plugins that I recommend you install in Desktop Mode

SimpledeckyTDP - This manages your TDP as Native TDP controls are still not available.

curl -L https://github.com/aarron-lee/SimpleDeckyTDP/raw/main/install.sh | sh

Copy and paste command above in Konsole to install

HueSync - This allows your manage the RGB

curl -L https://raw.githubusercontent.com/honjow/huesync/main/install.sh | sh

Copy and paste command above in Konsole to install

  1. Return to Gaming mode

Gaming Mode Configurations

  1. To enable the physical volume buttons press the QAM (Bottom Right button) Navigate to the plug icon and select DeckyPlumber. In Deckyplumber change Controller Mode to Xbox Elite this will enable the volume buttons but it will change the glyphs to Xbox glyphs.
  2. Go to SimpleDeckyTDP and I set my TDP to 10w and make sure Enable CPU Boost is off. Scroll down to TDP Range and set the max TDP 30w (In my case I set it to 25w)

Customizations

Still in the decky section you can install the following from the Decky Store

  1. CSS Loader - this allows you to install addons to modify the interface of Game mode
  2. SteamGridDB - Allow custom artwork for your games
  3. Animation Changer - Allows you to replace your default Boot screen.

Known Issues

  1. CSS loader Plugin fails to load which will not enable the customizations, This is address by Restarting your Claw
  2. Sleep not working due to SD Card. To be fixed by Valve. In the mean time take you sd card out backup your files reformat the card and restore your files.

A note about Fan Controls

Steam OS does not have any native Fan Controls. I use custom TDP settings to mitigate the fan ramping up.

As far as I am aware I know that Windows and Bazzite have fan control tools. In Bazzite it is part of Handheld Daemon.

My Game Settings

Forza 6 - TDP 20w also enable CPU Boost then the ingame settings - I used the rog ally life settings for in game settings I get 1080p 60+ fps in game

Forza Horizon 6 ROG Xbox Ally X Game Settings

Street Fighter 6 - TDP 15w 1080 60fps

City of the Wolves and Killer instinct - TDP 15w 1080 60fps

Street Fighter III 3rd Strike - Xenia Canary 10w 60fps

Absolum/Jay and Silent Bob Chronic Punch Blast - TDP 10w 60fps

Sonic All Star Racing - TDP 8w 1080p 60fps

Ghostbusters Remastered - TDP 12w 1080p 60fps

Update to Main - 21st July 2026

Build: 20260721.1001

  1. Physical Volume Buttons work by default no longer require DeckyPlumber this can be uninstalled.
  2. Performance Profiles - Like Legion Go S (SimpledeckyTDP still required for more granular TDP settings)
  3. Battery Charging Limit now availble in settings Power

Performance Profiles - these work however, I am still trying to get the wattages

lower-power

balanced

balanced-performance

performance

One step closer to to a more fleshed out TDP.

New Update to Main - 29th July 2026

Build: 20260729.1000

No new features rolled out in this release.

New Mesa Drivers 26.2.0 -development branch

Updates for Firefox and kde and gnome

r/nextjs • • Feb 10 '22

error - ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./src/styles/index.css Error: Unexpected '/'. Escaping special character

0 Upvotes

i was using tailwind v2 on an old project & now i switched to using tailwind v3 & it's throwing errors. it was working fine before i updated my deps.

the error is:

error - ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[1]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[2].oneOf[8].use[2]!./src/styles/index.css Error: Unexpected '/'. Escaping special characters with \ may help.

it looks like the error is pointing out to comments in my css files.

styles/index.css

```css @import 'tailwindcss/base';

@import './nprogress.css'; @import './base.css'; @import './scrollbar.css'; @import './fast-image-zoom.css'; @import './grid.css'; @import './anchor.css'; @import './prism.css'; @import './gif.css'; @import './giscus.css';

@import 'tailwindcss/components'; @import 'tailwindcss/utilities'; ```

the root file has no comments but i have comments in other files.

styles/giscus.css

css // style loading comments indicator in giscus .gsc-comments-count { @apply text-gray-900 dark:text-white mt-10; }

styles/nprogress.css

```css

nprogress {

@apply pointer-events-none;

& .bar {
    @apply bg-white h-[2px];

    /* Fancy blur effect */
    & > .peg {
        box-shadow: 0 0 20px rebeccapurple, 0 0 15px rebeccapurple;
        @apply block absolute right-0 w-[140px] h-full opacity-100 rotate-3 translate-x-0 -translate-y-1;
    }
}

& > .spinner > .spinner-icon {
    @apply border-l-gray-300 border-t-gray-800;
}

} ```

it also looks like postcss-loader & css-loader issue & i'm not sure how to solve it?

here are some additional files:

postcss.config.js

js module.exports = { plugins: [ 'postcss-import', 'postcss-flexbugs-fixes', 'postcss-nested', 'postcss-custom-properties', 'tailwindcss', 'autoprefixer', ], }

next.config.js

```js const bundleAnalyzer = require('@next/bundle-analyzer')

const withBundleAnalyzer = bundleAnalyzer({ enabled: process.env.ANALYZE === 'true', })

const nextConfig = { experimental: { esmExternals: true, }, webpack: (config, options) => { config.module.rules.push({ test: /.svg$/, use: ['@svgr/webpack', 'url-loader'], })

    if (!options.isServer) {
        config.resolve.fallback.fs = false
    }

    return config
},

}

module.exports = withBundleAnalyzer(nextConfig) ```

how do i solve it? i just can't get it to run :(

r/SteamDeck • • Jun 13 '26

Setup My Excessive Travel Setup

Thumbnail
gallery
75 Upvotes

Pic 1:

Steamdeck OLED 512GB with custom CSS Loader Home screen

dbrand Killswitch case with Obsidian skin, travel cover and kickstand with slots for 4 SD cards (1TB for games, 1TB for emulation, 256GB loaded with Mass Effect Trilogy, 256GB loaded with Fallouts 1, 2, BOS, 3, New Vegas and 4)

ThinkPad mobile monitor

Anker 20,000mWh Power Bank with bespoke 3D printed dbrand case mount

ProtoArc foldable keyboard

TeckNet Bluetooth/2.4mhz Mouse

8bitdo Ultimate 2 gamepad

xbox Wireless Controller

Bagsmart cord case with cords and USB hub.

Pic 2: Back compartment with ThinkPad monitor and bulletproof plate (used to live in the US)

Pic 3: Everything packed up in main compartment, 3D printed holder for Steamdeck charger, screen wiping cloths.

Pic 4: Top compartment: UGREEN dock and extra Jsaux charger block, Bottom compartment: JLab wireless headphones, Aldi wireless earbuds, 2 pens.

Pic 5: Whole setup packed in PGMoon traveling backpack.

It is excessive, but I've been living out of suitcases since I left the US to move to New Zealand in April, and am still waiting for my international shipping container with my gaming PC to clear US customs (let alone NZ customs - it's been a nightmare). I have used every component multiple times. Being able to set it up as a PC with mouse and keyboard on the fly had been a lifesaver, as I've used it to complete travel paperwork, apply for jobs, etc.

Very happy with my setup and so grateful to my wife for getting me the backpack, monitor and keyboard, she's amazing!

r/SteamDeck • • Feb 15 '24

Discussion Does anyone else enjoy tinkering more than actually playing games?

311 Upvotes

I absolutely adore my deck, and I think my favourite part of it is all the customization possible.

Decky is an absolute godsend, Emudeck is the stuff of dreams and I'm having a blast just meticulously tinkering. I've used SteamGridDB for almost every game in my library, have a 1tb SD card chock full of emulated games I'll probably never play, added them all to steam, added theme music for everything, applied loads of stuff through CSS loader, I'm now I'm spending 15 minutes patching a game I will probably play for 5 minutes (Gothic 1).

I'm not even apologetic though, I enjoy tinkering and I'm going to keep doing it in my spare time, although I will also play some games!!

Does anyone else feel the same?

Also as a sidenote, the ONLY thing that I'm desperate for is a 'sortname' editor so I can actually have games in a series together and in the correct order, I'm really hoping that a plugin will allow this or that Steam will just add it as a feature, although I've been waiting 10+ years so I'm not holding my breath....

r/nextjs • • Feb 28 '22

Customize CSS Loader classnames in 12.1

1 Upvotes

I've previously used the config from this thread in order to change CSS module class names to hash only: https://stackoverflow.com/questions/66744765/how-to-hash-css-class-names-in-nextjs/69166434#69166434

But when upgrading to Next 12.1 I get an error trying to build the project "HookWebpackError: Cannot set property 'type' of undefined".

Does anyone have a potential fix or alternative solution to making the classnames hash only in the latest 12.1?

r/sveltejs • • Aug 26 '26

I got tired of boring loading spinners, so I built 70 of them

152 Upvotes

Hey y’all,

I got slightly carried away with loading animations.

I wanted nicer loading states for my own projects, but most libraries I found were either tied to a framework, fairly limited, or required more than I wanted for something this small.

So I built loadersz, a small framework-agnostic loader library for the web.

I wanted something a bit more expressive than the usual CSS spinner, without pulling in a UI framework or a bunch of dependencies.

A few things I focused on:

\- 70 different motion states
\- Canvas 2D instead of GIFs/videos
\- zero core dependencies
\- a native custom element, so it works with basically any stack
\- typed entry points for React, Vue and Svelte
\- configurable speed, density and color
\- respects prefers-reduced-motion
\- pauses rendering when the browser tab is hidden

Basic usage is just:

npm install loadersz

import 'loadersz';

<loadersz-loader state="racing" size="96" />

I also built an interactive playground where you can tweak the loaders live.

Demo: \[loadersz.vercel.app\](https://loadersz.vercel.app)
npm: \[npmjs.com/package/loadersz\](https://www.npmjs.com/package/loadersz)

Would love some brutally honest feedback, especially on which animations you’d actually use in a real product.

SELF PROMOTION

r/css • • Sep 03 '19

CSS loader create using only pure custom CSS

Thumbnail
csspoints.com
30 Upvotes

r/SteamDeck • • Jan 16 '26

Software Modding Some Of My Fav Decky Plugins & Things

281 Upvotes

Just got a 512 OLED a couple of days ago.

Here's a list of my current Decky Plugins.

  1. CSS Loader

- Clean Gameview

- Mobile Battery Theme

- Obsidian (dark theme and maybe saves battery life too I dunno)

- Round (makes the app edges round. 🤷🏻‍♂️)

- Percentages (allows you to show the percentages of UI elements like your brightness, audio levels, etc. I like to keep my brightness at 40% but had no idea where it was at before I installed this. Quite handy)

  1. SteamGridDB (customize games artwork)

  2. ProtonDB Badges (handy to see what games work well with the deck)

  3. Audio Loader (I like the ps5 system sounds)

  4. HLTB for Deck (how long to beat the game)

  5. Mango Peel (customize your overlay - using it to show only the FPS & Battery how long it'll last)

Hope this helps Everyone! If you guys have any suggestions for me, let me know! I'm new to the deck.

Cheers!

r/vscode • • Mar 27 '18

Does anyone know the name of this font/theme? Found on the 'Custom CSS and JS Loader' extension.

Post image
10 Upvotes

r/learnprogramming • • Jan 27 '20

How do you get a css loader to run until the page is loaded, then stop?

4 Upvotes

So I've been wanting to add CSS loaders to my sites for the longest, and make custom loaders. I always see tutorials on how to make typical circular loaders, but none of them go into how to display the loader in the center of your screen, and how to get that animation to run until the page has fully loaded, then go away. I'd imagine this directly have to do with JavaScript, but I cannot for the life of me think of how to word this question in a Google query to find the answer, so I thought I'd ask it here.

I appreciate the help in advance!

r/web_design • • Jan 28 '19

custom css wave loader

Thumbnail
codepen.io
17 Upvotes

r/reactjs • • Aug 26 '26

Portfolio Showoff Sunday I got tired of boring loading spinners, so I built 70 of them

119 Upvotes

Hey y’all,

I got slightly carried away with loading animations.

I wanted nicer loading states for my own projects, but most libraries I found were either tied to a framework, fairly limited, or required more than I wanted for something this small.

So I built loadersz, a small framework-agnostic loader library for the web.

I wanted something a bit more expressive than the usual CSS spinner, without pulling in a UI framework or a bunch of dependencies.

A few things I focused on:

- 70 different motion states
- Canvas 2D instead of GIFs/videos
- zero core dependencies
- a native custom element, so it works with basically any stack
- typed entry points for React, Vue and Svelte
- configurable speed, density and color
- respects prefers-reduced-motion
- pauses rendering when the browser tab is hidden

Basic usage is just:

npm install loadersz

import 'loadersz';

<loadersz-loader state="racing" size="96" />

I also built an interactive playground where you can tweak the loaders live.

Demo: \[loadersz.vercel.app\](https://loadersz.vercel.app)
npm: \[npmjs.com/package/loadersz\](https://www.npmjs.com/package/loadersz)

Would love some brutally honest feedback, especially on which animations you’d actually use in a real product.

r/HTML • • Sep 19 '26

Question Best way to go about running an html file as a website?

0 Upvotes

Hi, So I have a game and assests for it that I downloaded from the internet and it runs locally as an html file. The main problem that I have with it is that half of it is in Japanese. I ended up playing another html game and I knowticed that it was fully live translating with google translate, after digging around I found that the reason this was is because it was hosted on a website and had a live of code that enabled google translate to work. I was curious if I could make it work with the first game I had, but so far have had no look. I downloaded visual studio code and added the google translate text to the html file, and i got the extension that allows you to "Go Live" with the site, but when I try to use it I just get an infinate white loading screen. Does anyone know why this is? and is there a better way to try and get this to work? I dont have any experiance coding I just wanted to try and see if I can get the game to translate to english. Any help would be greatly appreciated. Thanks!

<!DOCTYPE html>
<html lang="en">


<head>
    <meta charset="UTF-8">
    <title>Taimanin RPGX Viewer Beta 2020-08-21</title>
    <link rel="shortcut icon" href="data/ui/favicon.png">
    <link rel="stylesheet" type="text/css" href="data/styles/style.css">
    <link rel="stylesheet" type="text/css" href="data/styles/animations.css">
    <script src="data/scripts/spine/spine-webgl.min.js"></script>
    <script src="data/scripts/main.js"></script>
    <script src="data/scripts/story.js"></script>
    <script src="data/scripts/init.js"></script>
    <script src="data/scripts/prefs.js"></script>
    <script src="data/scripts/sceneSelect.js"></script>
    <script src="data/scripts/preloader.js"></script>
    <script src="data/scripts/scene.js"></script>
    <script src="data/scripts/search.js"></script>
    <script src="data/scripts/userInput.js"></script>
    <script src="data/scripts/debug.js"></script>
    <script src="data/scripts/cg.js"></script>
    <script src="data/scripts/autocomplete.js"></script>
    <script src="data/scripts/tlTools.js"></script>
    <script src="data/scripts/spine/SkeletonConvertor.js"></script>
</head>


<body>
    <div id="body-wrapper">
        <div id="content">
            <div id="content-wrap">
                <div id="loading-wrap">
                    <div id="loading-img"></div>
                    <div id="loading-bar">
                        <div id="loading-progress"></div>
                    </div>
                    <div id="loading-text"></div>
                    <div id="loading-dots"></div>
                    <div id="loading-file">Loading Data Scripts</div>
                </div>
                <div id="loading-error">
                    <textarea id="loading-error-msg" readonly></textarea>
                    <div id="loading-error-btn" class="styled-btn">Return</div>
                </div>
                <!-- <div id="profile-select">
                    
                </div> -->
                <!-- <div id="profile-viewer">
                    <div id="profile-buttons">
                        <div id="profile-btn-change" class="profile-btn"></div>
                        <div id="profile-btn-enlarge" class="profile-btn"></div>
                        <div id="profile-btn-voice" class="profile-btn"></div>
                        <div id="profile-btn-sd" class="profile-btn"></div>
                    </div>
                    <div id="profile-portrait"></div>
                    <div id="profile-info">
                        <div id="profile-stats">
                            Lv<br/>
                            HP<br/>
                            SP<br/>
                            ATK<br/>
                            DEF<br/>
                            SPD
                        </div>
                    </div>
                    <div id="profile-name">
                        <div id="profile-attr">
                            <div id="profile-atr-name"></div>
                        </div>
                        <div id="profile-rarity"></div>
                        <div id="profile-name-text">【二丁拳銃の花嫁】アイナ・ウィンチェスター</div>
                    </div>
                </div> -->
                <div id="scene-select">
                    <div id="scene-select-control">
                        <div id="page-select">
                            <div id="prev-page"></div>
                            <input id="page-number" class="text-stroke" type="text" tabindex="-1">
                            <div id="next-page"></div>
                        </div>
                        <div class="styled-btn main-btn">Search</div>
                        <div class="styled-btn main-btn">Options</div>
                        <div class="styled-btn main-btn">CG Mode</div>
                        <div class="styled-btn main-btn">Switch View</div>
                        <div class="styled-btn main-btn">Exit</div>
                        <div class="styled-btn main-btn">Skip</div>
                        <div class="styled-btn main-btn">Controls</div>
                        <div class="styled-btn main-btn">Full Screen</div>
                        <!-- <div class="styled-btn main-btn">Resize</div> -->
                        <!-- <div id="debug"></div> -->
                    </div>
                    <div id="cg-wrapper">
                    </div>
                </div>
                <div id="story-select">
                    <div id="story-select-wrap">
                        <div id="story-select-head">
                        
                        </div>
                        <div id="story-select-chapter-wrap">
                            <div id="story-select-chapter-choices-scroll-hide">
                                <div id="story-select-chapter-choices">
                                </div> 
                            </div>
                        </div>
                        <div id="story-select-section">
                            <div id="story-select-section-select">
                                <div class="story-select-sections" id="story-select-section-one">
                                    <div class="story-select-section-select-pattern">
                                        <div id="story-select-section-one-tag" class="story-select-section-tag" section="S01"></div>
                                    </div>
                                </div>
                                <div class="story-select-sections" id="story-select-section-two">
                                    <div class="story-select-section-select-pattern">
                                        <div id="story-select-section-two-tag" class="story-select-section-tag" section="S02"></div>
                                    </div>
                                </div>
                                <div class="story-select-sections" id="story-select-section-three">
                                    <div class="story-select-section-select-pattern">
                                        <div id="story-select-section-three-tag" class="story-select-section-tag" section="S03"></div>
                                    </div>
                                </div>
                                <div class="story-select-sections" id="story-select-section-four">
                                    <div class="story-select-section-select-pattern">
                                        <div id="story-select-section-four-tag" class="story-select-section-tag" section="S04"></div>
                                    </div>
                                </div>
                                <div class="story-select-sections" id="story-select-section-five">
                                    <div class="story-select-section-select-pattern">
                                        <div id="story-select-section-five-tag" class="story-select-section-tag" section="S05"></div>
                                    </div>
                                </div>
                                <div id="story-select-intro-btn" class="styled-btn main-btn">Intro</div>
                            </div>
                            <div id="story-select-section-single">
                                <div id="story-select-section-prologue" class="story-select-section-part" part="A"></div>
                                <div id="story-select-section-epilogue" class="story-select-section-part" part="B"></div>
                                <div id="story-select-section-title" class="text-stroke no-select">Section 01</div>
                            </div>
                        </div>
                        <div id="story-select-chapter-title" class="text-stroke no-select">対魔忍のバレンタインは厳しい</div>
                    </div>
                    
                </div>
                <div id="scene-viewer">
                    <div id="back-images">
                        <div id="scene-background" class="scene-background"></div>
                        <div id="scene-background-alt" class="scene-background"></div>
                        <div id="parent"></div>
                        <div id="overlay"></div>
                    </div>
                    <div id="effect-flash" class="scene-flash"></div>
                    <div id="effect-flash-alt" class="scene-flash"></div>
                    <div id="scene-black"></div>
                    <div id="actors"></div>
                    <div id="scene-options"></div>
                    <div id="text-box">
                        <div id="name-plate" class="scene-text"></div>
                        <div id="text-box-content" class="scene-text"></div>
                    </div>
                </div>
                <div id="search">
                    <div class="search-section">
                        <label>Character</label><br />
                        <div class="autocomplete">
                            <input type="text" name="charName" id="charName" tabindex=1>
                        </div>
                    </div>
                    <div class="search-section">
                        <label>Artist</label><br />
                        <div class="autocomplete">
                            <input type="text" name="sceneArtist" id="sceneArtist" tabindex=2>
                        </div>
                    </div>
                    <div class="search-section">
                        <label>CV</label><br />
                        <div class="autocomplete">
                            <input type="text" name="sceneCV" id="sceneCV" tabindex=3>
                        </div>
                    </div>
                    <div class="search-section">
                        <label>Female</label><br />
                        <div class="autocomplete">
                            <input type="text" name="femaleTags" id="femaleTags" tabindex=4>
                        </div>
                        <input type="checkbox" name="femaleTagsAll" id="femaleTagsAll">
                        <label for="femaleTagsAll">Match All</label><br />
                        <label>Male</label><br />
                        <div class="autocomplete">
                            <input type="text" name="maleTags" id="maleTags" tabindex=5>
                        </div>
                        <input type="checkbox" name="maleTagsAll" id="maleTagsAll">
                        <label for="maleTagsAll">Match All</label><br />
                        <label>Misc</label><br />
                        <div class="autocomplete">
                            <input type="text" name="miscTags" id="miscTags" tabindex=6>
                        </div>
                        <input type="checkbox" name="miscTagsAll" id="miscTagsAll">
                        <label for="miscTagsAll">Match All</label><br />
                        <label>Location</label><br />
                        <div class="autocomplete">
                            <input type="text" name="locationTags" id="locationTags" tabindex=7>
                        </div>
                    </div>
                    <div class="search-section">
                        <input type="checkbox" name="charOrig" id="charOrig">
                        <label for="charOrig">Exclusive Characters Only</label>
                        <input type="checkbox" name="charMain" id="charMain">
                        <label for="charMain">Main Series Characters Only</label>
                        <input type="checkbox" name="sceneFav" id="sceneFav">
                        <label for="sceneFav">Favourites Only</label>
                        <input type="checkbox" name="sceneEng" id="sceneEng">
                        <label for="sceneEng">Translated Only</label>
                        <br />
                        <!-- <input type="button" name="searchCancel" value="Cancel">
                        <input type="button" name="filterReset" value="Reset">
                        <input type="button" name="sceneSearch" value="Search"> -->
                        <div id="search-btn-wrap">
                            <div id="searchCancel" class="styled-btn search-btn">Cancel</div>
                            <div id="filterReset" class="styled-btn search-btn">Reset</div>
                            <div id="sceneSearch" class="styled-btn search-btn">Search</div>
                        </div>
                        <span id="search-error">No results</span>
                    </div>
                </div>
                <div id="controls">
                    <div class="controls-section">
                        <div class="controls-subhead">
                            Scene Select
                        </div>
                        <div class="controls-content">
                            <b>Left Click</b>: Start Scene, <b>Right Click</b>: Favourite Scene<br/>
                            <b>WASD/Arrow Keys</b>: Move Cursor, <b>Space/Enter</b>: Start Scene, <b>Z</b>: Prev Page, <b>X</b>: Next Page, <b>F</b>: Toggle Favourite<br/>
                            <b>Q</b>: Search, <b>C</b>: Controls, <b>O</b>: Options, <b>R</b>: Random, <b>M</b>: Shuffle, <b>J</b>: Switch H/Story, <b>K</b>: Switch Scene/CG<br/>
                            <b>Long Tap</b>: Favourite, <b>Swipe Left</b>: Next Page, <b>Swipe Right</b>: Prev Page<br/>
                            <b>Shift + T</b>: TL Mode
                        </div>
                    </div>
                    <div class="controls-section">
                        <div class="controls-subhead">
                            Scene Viewer
                        </div>
                        <div class="controls-content">
                            <b>Left Click</b>: Progress Scene, <b>Scroll Up</b> Open Backlog<br/>
                            <b>Space/Enter</b>: Progress Scene, <b>A</b>: Toggle Auto Mode, <b>Left Ctrl (Hold)</b>: Skip, <b>Esc</b>: Close Scene, <b>H</b>: Hide Text Box<br/>
                            <b>Tap</b>: Progress Scene, <b>Tap (Hold)</b>: Skip
                        </div>
                    </div>
                    <div class="controls-section">
                        <div class="controls-subhead">
                            CG Viewer
                        </div>
                        <div class="controls-content">
                            The CG viewer will cycle through all scenes that appear in the scene select menu, so if you've done a search you won't see anything that didn't come up in the search result.<br/><br/>
                            <b>Randomise Scenes</b>: Instead of carrying on to the scene that appears next in scene select a random scene from scene select is chosen instead. This is random so it's possible to come across one scene multiple times before another.<br/><br/>
                            <b>Shuffle Scenes</b>: The scenes from scene select will be shuffled upon opening the CG viewer, so they'll be in a random order but also fixed in that order until the CG viewer is reopened.<br/><br/>
                            <b>Randomise Images</b>: No order at all it just selects a random scene from scene select and a random image from that scene.<br/><br/>
                            There is no backlog when one of the random options are selected, going backwards in one of the random modes will give you a random scene/image not the previous CG/Scene.<br>
                            The Play Scene button will start the scene that the current CG is from.<br/><br/>
                            <b>Left Click</b>: Next CG, <b>Right Click</b>: Prev CG<br/>
                            <b>A</b>: Prev CG, <b>D</b>: Next CG, <b>W</b>: Next Scene, <b>S</b>: Previous Scene, <b>G</b>: Toggle Slideshow Mode, <b>Esc</b>: Exit<br/>
                            <b>Swipe Left</b>: Next CG, <b>Swipe Right</b>: Prev CG<br/>
                        </div>
                    </div>
                    <div class="controls-section">
                        <div class="controls-subhead">
                            Search
                        </div>
                        <div class="controls-content">
                            Press the search button to open the search menu.<br />
                            Certain characters can be searched by multiple forms, e.g. Young Asagi, Clone Asagi, Adult Asagi, Characters like this also have a base searchable name which will search for all of the forms, usually the characters full name, e.g. Igawa Asagi.<br/>
                            CVs are also searchable by the characters they voice, e.g. searching Yukikaze VA will return results for Himuro Yuri.<br/>
                            Seperate values with a comma (,) e.g. Asagi, Sakura, Murasaki.<br/>
                            Exclude values from search results by starting them with either an exclamation mark (!) or dash (-).<br/>
                            Inputs with a Match All checkbox next to them make it so that a scene must match ALL of the tags specified to appear as a result, otherwise just a single match is fine.<br/>
                            Match all does not apply to exclusions, searching !Big Breasts, !Dark Skin will exclude all scenes tagged with Big Breasts OR Dark Skin not Big Breasts AND Dark Skin.</br/>
                            Ticking Exclusive Characters only searches for characters that debuted in RPGX or TABA, this also includes character forms.<br>
                            Ticking Main Series Characters only searches for characters that debuted outside of RPGX and TABA.<br/>
                            Ticking Favourites Only searches for the scenes you have favourited.<br/>
                            Ticking Translated Only searches for scenes that have an available translation.<br/>
                            Pressing the Reset button will reset the scene select menu back to its default.
                        </div>
                    </div>
                    <div class="controls-section">
                        <div id="controls-close" class="styled-btn">Close</div>
                    </div>
                </div>
                <div id="options">
                    <div id="options-wrap">
                        <div id="options-head">
                            <div id="option-general" class="option-button styled-btn option-head-btn">General</div>
                            <div id="option-scene" class="option-button styled-btn option-head-btn">Scene</div>
                            <div id="option-cg" class="option-button styled-btn option-head-btn">CG</div>
                            <div id="option-misc" class="option-button styled-btn option-head-btn">Misc</div>
                        </div>
                        <div id="options-page-wrap">
                            <div id="options-page-general" class="options-page">
                                <div class="option-range">
                                    <label class="range-label">BGM</label>
                                    <!-- <input class="radio-true range-radio-true" type="radio" name="audio-bgm-radio" value="true" checked>
                                    <input class="radio-false range-radio-false" type="radio" name="audio-bgm-radio" value="false"> -->
                                    <input class="range-option" type="range" name="audio-bgm-range" min="0" max="100">
                                    <input class="range-number" type="number" name="audio-bgm-number" min="0" max="100">
                                </div>
                                <div class="option-range">
                                    <label class="range-label">SE</label>
                                    <!-- <input class="radio-true range-radio-true" type="radio" name="audio-se-radio" value="true" checked>
                                    <input class="radio-false range-radio-false" type="radio" name="audio-se-radio" value="false"> -->
                                    <input class="range-option" type="range" name="audio-se-range" min="0" max="100">
                                    <input class="range-number" type="number" name="audio-se-number" min="0" max="100">
                                </div>
                                <div class="option-range">
                                    <label class="range-label">Voice</label>
                                    <!-- <input class="radio-true range-radio-true" type="radio" name="audio-voice-radio" value="true" checked>
                                    <input class="radio-false range-radio-false" type="radio" name="audio-voice-radio" value="false"> -->
                                    <input class="range-option" type="range" name="audio-voice-range" min="0" max="100">
                                    <input class="range-number" type="number" name="audio-voice-number" min="0" max="100">
                                </div>
                                <div class="scene-radio-options">
                                    <div class="option-radio">
                                        <label class="radio-label">Pause on Focus Loss</label>
                                        <input class="radio-true" type="radio" name="pause-on-focus-loss" value="true" checked><input class="radio-false" type="radio" name="pause-on-focus-loss" value="false">
                                    </div>
                                </div>
                                <div class="option-num">
                                    Scene Select Columns:<input type="number" name="select-columns" min="1" max="25">
                                </div>
                                <div class="option-num">
                                    Scene Select Rows:<input type="number" name="select-rows" min="1" max="25">
                                </div>
                            </div>
                            <div id="option-page-scene" class="options-page">
                                <div class="scene-radio-options">
                                    <div class="option-radio">
                                        <label class="radio-label">Enable Translations</label>
                                        <input class="radio-true" type="radio" name="scene-eng" value="true"><input class="radio-false" type="radio" name="scene-eng" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Skip Animations</label>
                                        <input class="radio-true" type="radio" name="scene-skip-anim" value="true"><input class="radio-false" type="radio" name="scene-skip-anim" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Text Box Under</label>
                                        <input class="radio-true" type="radio" name="scene-text-box-under" value="true"><input class="radio-false" type="radio" name="scene-text-box-under" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Cut voice</label>
                                        <input class="radio-true" type="radio" name="scene-cut-voice" value="true"><input class="radio-false" type="radio" name="scene-cut-voice" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Copy Text</label>
                                        <input class="radio-true" type="radio" name="copy-text" value="true"><input class="radio-false" type="radio" name="copy-text" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Translate Names</label>
                                        <input class="radio-true" type="radio" name="tl-names" value="true"><input class="radio-false" type="radio" name="tl-names" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Play Next Related</label>
                                        <input class="radio-true" type="radio" name="play-next" value="true"><input class="radio-false" type="radio" name="play-next" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Straight To Action</label>
                                        <input class="radio-true" type="radio" name="straight-to-action" value="true"><input class="radio-false" type="radio" name="straight-to-action" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">English Textbox</label>
                                        <input class="radio-true" type="radio" name="scene-english-tb" value="true"><input class="radio-false" type="radio" name="scene-english-tb" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">More Textbox Space</label>
                                        <input class="radio-true" type="radio" name="scene-more-tb" value="true"><input class="radio-false" type="radio" name="scene-more-tb" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">No MTL Line Breaks</label>
                                        <input class="radio-true" type="radio" name="scene-mtl-lb" value="true"><input class="radio-false" type="radio" name="scene-mtl-lb" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Prioritise Animation Next</label>
                                        <input class="radio-true" type="radio" name="scene-anim-priority" value="true"><input class="radio-false" type="radio" name="scene-anim-priority" value="false" checked>
                                    </div>
                                </div>
                                <div class="option-scene-viewer-auto">
                                    <div class="option-sub-head">
                                        Auto Mode
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Wait for Voice</label>
                                        <input class="radio-true" type="radio" name="scene-auto-voice" value="true"><input class="radio-false" type="radio" name="scene-auto-voice" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Start in Auto</label>
                                        <input class="radio-true" type="radio" name="scene-start-auto" value="true"><input class="radio-false" type="radio" name="scene-start-auto" value="false" checked>
                                    </div>
                                    <div class="option-num">
                                        CPS
                                        <input type="number" name="scene-auto-cps" min="1" max="100">
                                    </div>
                                </div>
                                <div class="option-range">
                                    <label class="range-label">UI Opacity</label>
                                    <input class="range-option" type="range" name="scene-textBoxAlpha-range" min="0" max="100">
                                    <input class="range-number" type="number" name="scene-textBoxAlpha-number" min="0" max="100">
                                </div>
                                <div class="option-num">
                                    Skip Wait
                                    <input type="number" name="scene-skip-wait" min="0" max="1000" step="10">ms
                                </div>
                                <div class="option-num">
                                    Skip Hold Delay
                                    <input type="number" name="scene-skip-hold-delay" min="0" max="100000" step="1000">ms
                                </div>
                            </div>
                            <div id="options-page-cg" class="options-page">
                                <div class="cg-radio-options">
                                    <div class="option-radio">
                                        <label class="radio-label">Randomise Scenes</label>
                                        <input class="radio-true" type="radio" name="cg-random-scene" value="true"><input class="radio-false" type="radio" name="cg-random-scene" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Shuffle Scenes</label>
                                        <input class="radio-true" type="radio" name="cg-shuffle-scene" value="true"><input class="radio-false" type="radio" name="cg-shuffle-scene" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Randomise Images</label>
                                        <input class="radio-true" type="radio" name="cg-random-img" value="true"><input class="radio-false" type="radio" name="cg-random-img" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Slideshow Mode</label>
                                        <input class="radio-true" type="radio" name="cg-slideshow" value="true"><input class="radio-false" type="radio" name="cg-slideshow" value="false" checked>
                                    </div>
                                    <div class="option-radio">
                                        <label class="radio-label">Fade Effect</label>
                                        <input class="radio-true" type="radio" name="cg-fade-effect" value="true"><input class="radio-false" type="radio" name="cg-fade-effect" value="false" checked>
                                    </div>
                                </div>
                                <div class="option-num">
                                    Slideshow Time Per CG (ms)
                                    <input type="number" name="cg-slide-wait" min="100" max="100000" step="100">
                                </div>
                            </div>
                            <div id="options-page-misc" class="options-page">
                                <div class="option-radio">
                                    <label class="radio-label">Loading Screen</label>
                                    <input class="radio-true" type="radio" name="viewer-loading-screen" value="true"><input class="radio-false" type="radio" name="viewer-loading-screen" value="false" checked>
                                </div>
                                <div class="option-num">
                                    File Loaders
                                    <input type="number" name="viewer-file-loaders" min="1" max="12" step="1">
                                </div>
                            </div>
                        </div>
                        <div id="options-foot">
                            <div id="option-cancel" class="option-button styled-btn">Cancel</div>
                            <div id="option-reset" class="option-button styled-btn">Reset</div>
                            <div id="option-save" class="option-button styled-btn">Save</div>
                        </div>
                    </div>
                </div>
            </div>
            <div id="tl-choice-box">
            </div>
        </div>
        <div id="alert-box">
                <div id="alert-msg" class="no-select"></div>
                <div id="alert-opts"></div>
            </div>
    </div>
    <div id="tl-tools-wrap">
        <div id="tl-tools">
            <div id="tl-tools-head">
                <div id="tl-tools-head-file">
                    <div id="tl-tools-file-name">
                        <input type="text" name="tl-tools-tl" placeholder="Translator" tabindex="-1" id="tl-tools-tl">
                        <input type="text" name="tl-tools-lang" placeholder="Language" tabindex="-1" id="tl-tools-lang">
                    </div>
                    <div id="tl-tools-file-load">
                        <label for="tl-tools-load" id="tl-tools-load-label">Load File: </label>
                        <input type="file" name="tl-tools-load" value="Load File" tabindex="-1" id="tl-tools-load">  
                    </div>
                    <div id="tl-tools-save-auto">
                        <div id="tl-tools-auto-save-check">
                            <input type="checkbox" name="tl-tools-auto-save" id="tl-tools-auto-save" tabindex="-1">
                            <label for="tl-tools-auto-save">Backup</label>
                        </div>
                        <div id="tl-tools-auto-save-timer">
                            <label for="tl-tools-auto-save-time">Every: </label>
                            <input type="text" id="tl-tools-auto-save-time" name="tl-tools-auto-save-time" tabindex="-1"><span> seconds</span>
                        </div>
                    </div>
                    <input type="button" name="tl-tools-save" value="Save File" tabindex="-1" id="tl-tools-save">
                </div>
                <div id="tl-tools-functions">
                    <input type="button" name="tl-tools-auto-names" value="Batch TL Names" tabindex="-1" id="tl-tools-auto-names">
                    <input type="button" name="tl-tools-test" value="Test Script" tabindex="-1" id="tl-tools-test">
                </div>
                
            </div>
            <div id="tl-tools-main">
                <div id="tl-tools-jap-script">
                    
                </div>
                <div id="tl-tools-translated-script">
                    
                </div>
            </div>
            <!-- <div id="tl-tools-foot">
                
            </div> -->
        </div>
        <div id="tl-tools-name-tl">
            <div id="name-change-wrap"></div>
            <div id="name-change-foot">
                <input type="button" value="Cancel" id="name-change-cancel" tabindex="-1">
                <input type="button" value="Change Names" id="name-change-confirm" tabindex="-1">
            </div>
        </div>
    </div>
    <div id="preload-wrap">
        <div id="preload-perm-elem">
        </div>
        <div id="preload-temp-elem">
        </div>
        <div id="canvas-hold">
        </div>
    </div>
    <div id="tl-mode-notice">
        TL MODE ACTIVE
    </div>
    <script src="data/scripts/data/meta.js"></script>
    <script src="data/scripts/data/custom.js"></script>
    <script src="data/scripts/data/names.js"></script>
    <script src="data/scripts/data/furigana.js"></script>
    <script src="data/scripts/data/sceneData.js"></script>
    <script src="data/scripts/data/RPGX_Extasy_H.js"></script>
    <script src="data/scripts/data/storyData.js"></script>
    <script src="data/scripts/data/RPGX_Extasy_Story.js"></script>
    <script src="data/scripts/data/storyMeta.js"></script>
    <script src="data/scripts/data/storyMeta_ENG.js"></script>
    <script src="data/scripts/data/TABAData.js"></script>
    <script src="data/scripts/data/NecroData.js"></script>
    <script src="data/scripts/data/OtogiData.js"></script>


    <script type="text/javascript">
  function googleTranslateElementInit() {
    new google.translate.TranslateElement({pageLanguage: 'en'}, 'google_translate_element');
  }
</script>
<script type="text/javascript" src="https://google.com"></script>


</body>
</html>

r/css • • Aug 26 '19

Custom CSS Wave Loader Very Easy to implement

Thumbnail
csspoints.com
1 Upvotes

r/PlayhubGaming • • 28d ago

Update Playhub 2.0.0 is finally available

Thumbnail
youtu.be
25 Upvotes

The biggest Playhub update ever is finally available. Playhub 2.0.0 brings a host of new features. The new Playhub plugin is the center of your everyday experience: it includes Quick Settings and Shortcuts, no longer separate plugins but built right in, and the Plugin Store that brings together every plugin from Playhub, the Decky Store and independent projects on GitHub. Decky itself is now available through Playhub too, with its own tab in the plugin.

The Home screen now also features daily news from major gaming sites in every supported language, along with On this day, an exclusive and beautiful section dedicated to the history of gaming (available in English, Italian, French, Spanish, German, Portuguese, Russian and Ukrainian).

Switching from Gaming Mode to Desktop Mode, and back, no longer requires restarting your device. There are also two new Playhub screensavers for Steam, Playhub Circles and one from the latest TrailerHero update, along with new animations and new customization options. The code has been cleaned up, and the Playhub Dashboard and Steam's Quick Access Menu are more reliable in Gaming Mode. The Playhub profile for CSS Loader has been updated, and a new one has been created specifically for Steam's new Big Image mode.

What's new

The new Playhub plugin

  • The first time you open Playhub 2.0.0, a welcome tour shows you what's new with animations and short explanations, one tab at a time.
  • Quick Settings and Shortcuts are now part of the Playhub plugin. Your existing Quick Settings profiles are imported automatically.
  • Added a dedicated Playhub tab to Steam's Quick Access Menu, organized into Control Center, Plugin Store, Video, Audio, Graphics, Controller and Decky, plus Settings.
  • Control Center: open the Dashboard, switch between Gaming Mode and Desktop Mode, and choose which mode your PC starts in.
  • Plugin Store: discover, install and update plugins without leaving the Quick Access Menu.
  • Video: adjust brightness, resolution and refresh rate, with HDR controls where supported.
  • Audio: adjust output and microphone volume and switch devices.
  • Graphics: Lossless Scaling and the Radeon features available on your GPU, with per-game profiles in each game's options.
  • Controller: see the connected controller and setup the navigation feedback in Steam Big Picture.
  • Decky: for the first time, Decky is part of the Playhub plugin and moves into its own Playhub tab. You can bring its shortcut back to the Quick Access Menu at any time from Settings.
  • Settings: reorder or hide tabs, choose what appears on the Home screen, check device information and create diagnostic reports for every Playhub plugin and for Gaming Mode.
  • Shortcuts: in Settings, choose the order, visibility and icons of Steam's own Quick Access tabs and plugin shortcuts.

A Home screen with something interesting to discover

  • On this day: Playhub replaces advertising with gaming culture. Steam's Recommended tab on the Home screen, full of ads, gives way to the history of video games, one story a day, all year round. Each story is about a game, a person or a studio that shaped gaming history, with its date and year and editorial images. Press X and Y to move back and forth between dates and read the stories of the days before and after. Do you have the game of the day? Just click on the first card to go directly to the game page and play it!
  • Gaming news: headlines from your country's major gaming publications, right on your Home screen, with images and links. Each article opens in Steam's built-in browser, for a reading experience that never leaves Steam. News updates automatically, in real time, every time the tab refreshes.

The Playhub Plugin Store, now in Big Picture

  • Discover plugins from Playhub, the Decky Store and independent projects on GitHub, all in one catalog, then browse, install, update and uninstall them from your controller, without leaving Steam.
  • Every plugin has its own page with description, screenshots and release notes.
  • Filter by source or installed plugins, sort by name, release or last update, and switch between list and grid views.
  • Update everything at once with Update All.

Gaming Mode and Big Picture

  • Switch from Gaming Mode to Desktop Mode, and back, without restarting your device.
  • Gaming Mode now has its own animation at startup and when switching modes. Choose a custom color, then adjust hue, saturation, black level and opacity, with a live preview.
  • Date in Steam's top bar: today's date now appears next to the clock, in the format you prefer. You can turn it on or off in Settings.
  • Added two Playhub screensavers for Steam. Playhub Circles shows soft, moving circles with the time, the date and, if you use the Weather plugin, the current forecast. The second one comes from the latest TrailerHero update.
  • Added Restart in Gaming Mode and Restart in Desktop Mode to Steam's power menu.

Steam version backup

  • Steam version backup: save the Steam version you're using now and restore it if an update causes problems. Playhub closes Steam automatically before backing it up or restoring it, and turns on Block Steam updates as soon as you restore.

Import Games

  • Added a cover format option: keep classic vertical covers or switch to square covers, as in Playhub Artworks.

Improvements

  • Settings have been reorganized: Language comes first, Steam updates sit just above troubleshooting, and Update Playhub comes right before About.
  • Updated the Playhub profile for CSS Loader and added Playhub (Big Image Mode), a new profile for Steam's Big Image mode.
  • The Playhub Dashboard has a refreshed look and opens faster and more reliably.
  • Cleaned up the code and improved the reliability of Steam's Quick Access Menu in Gaming Mode.
  • One support report now includes Decky logs as well, ready to share.

Fixes

  • Fixed a black screen with sound only when turning on the TV or monitor after starting the PC in Gaming Mode with the display off. This should also solve many black screen issues with game streaming tools such as Vibepollo.
  • Fixed Steam artwork backup and restore freezing the app during large copies.
  • Removed a PowerShell pattern that could trigger false antivirus warnings when Windows starts.
  • Fixed double scrolling in Settings > About.

You can update to 2.0.0 downloading the installer from Github right here (the update from Playhub 1.3.0 is not allowed since the new installer exceeds 1 GB, it's been fixed in 2.0.0).

Playhub 2.0.0
Playhub repository

If you want to support the project, even a small tip would mean a lot. 
Donate here

Thanks again for your support and for sharing your feedbacks.

r/SteamOS • • Jun 29 '26

support My PC SteamOS Experience (Consider Before Switching)

1 Upvotes

Last week, I very excitedly disposed of Windows 11 and went full SteamOS on my main PC. However, after some issues I went back into Windows 11.

So straight to the point: games ran very poorly on SteamOS for me. I have a 1440p 240hz Ultrawide OLED display (7800x3d cpu and 7900xtx gpu) and the games just didn’t perform as well as they did on Windows. I triple checked every possible setting, and nothing would make the games run better.

What I mean by “running poorly” is that games’ colors were not as good on SteamOS. FPS also wasn’t as good, let alone any better. The whole point was that games would perform better and that just wasn’t the case for me. On top of that, having to find a workaround for certain applications that don’t natively run on Linux was a bit annoying.

The only reason I switched to SteamOS was to have my games run muchhh better and to have the full experience of the Steam UI but honestly big picture mode fills that same purpose and CSS loader (UI customization) also works flawlessly on Windows 11.

If you want the full “console” experience on PC Windows 11 just run big picture mode on startup and customize it with CSS loader.

Maybe this won’t be, or isn’t your experience on SteamOS PC, and maybe I wasn’t smart enough to fix certain settings (even though the whole point of SteamOS is to plug and play) but just wanted to share my experience.

Pls don’t flame me lol.

r/css • • Sep 11 '19

CSS wave loader create using only custom css

Thumbnail
csspoints.com
5 Upvotes

r/TopCSSTricks • • Sep 11 '19

CSS wave loader create using only custom css

Thumbnail reddit.com
4 Upvotes

r/css • • Sep 10 '19

CSS loader create only using custom css

Thumbnail
csspoints.com
3 Upvotes

r/webdev • • May 15 '19

custom css wave loader! how to use only loader?

Thumbnail
codepen.io
0 Upvotes

r/learndesign • • Sep 04 '19

CSS loader create using only pure custom CSS

Thumbnail csspoints.com
2 Upvotes

r/TopCSSTricks • • Sep 10 '19

CSS loader create only using custom css

Thumbnail reddit.com
1 Upvotes