#0400 – Szent küldetésen…

Huhh, majdnem két év telt el a legutóbbi bejegyzés óta. Rohan az idő. Sok minden történt azóta, de nem erőltetek magánéleti dolgokat senkire 🙂 Lényeg a lényeg, hogy még mélyebbre másztam azóta a Javas dolgokba és az OpenGL meg a hasonlók helyett mostanában elég rendesen beszippantottak olyan dolgok, mint az IoT, a NoSQL, a Big Data, a Cloud meg hasonlók. Emellett az erős új főirány mellett megmaradt pár oldalirány is – egyenlőre még köztük a 3D-vel. Más kérdés, hogy ez a post most abszolút nem az OpenGL-ről fog szólni…

Na de mi ez a szent küldetés? Nos, aki Java-zik, az egy idő után eljut oda, hogy meg kell hoznia egy fontos (khmm) döntést – Eclipse vs. IntelliJ. Nos, én az előbb mellett vagyok, mert tetszik, hogy bármit meg tudok vele csinálni gyakorlatilag, szénné bírom customizálni, hackelni. Egy bajom van vele – hogy a sötét témája ronda Windows-on. Tudom #FirstWorldProblems, meg ilyesmi, de akkor is irritál. 😛 Nos, konkrétan erre gondolok:

0400_eclipse_ugly_scrollbar
Arggh! A szemem...

Aaargghh! :O Mi az a scrollbar?? Komolyan? Nos, hogy teljes legyen az igazság, ez már egy pimpolt verzió, kapaszkodjatok meg! Mondom, mi változott, mire így néz ki a cucc:

  • Sajna az Eclipse alaból tök világos témával jön, ami bántja az ember szemét – szerencsére ezt át lehet állítani magában az Eclipse-ben a preferences alatt egy sötétebbre.
  • A következő, hogy az editornak is adjunk valami színvilágot, mert a sötét témára átállva nehézkesen olvasható a kód. Ehhez kell az Eclipse Color Theme plugin innen – a használata marha egyszerű, az editorok színvilágát mindenki lője be ízlése szerint.
  • By default ott világít fenn a menüsor, de azt ki lehet kapcsolni hála az égnek magában az Eclipse-ben elég könnyen (perspective customization). Ez opcionális, de engem zavart, hogy minden más sötét, ez meg világos.
  • Aztán ott az ablakkeret, ami csak a helyet veszi el az embertől, s tök felesleges egy dual monitoros rendszerben. Erre van egy plugin, update site itt, aminek a telepítése után az Alt-F11 fullscreenre teszi az IDE felületét. Yay!
  • Végezetül még mindig ott az az ordenáré scrollbar minden view-ban… Erre is van egy plugin, ami FlatScrollbar névre hallgat (update site itt) és a view-kban ilyenre cseréli a Windows gagyi scrollbarját:

    0400_eclipse_flat_scrollbar
    Hopp, ez jól néz ki - FlatScrollbar az Outline view-n!

Na, ez már tök jó, így jutottam oda, ahol az első kép van – és itt a történet vége, ha szépen, szabályosan akarunk játszani. Ugyanis az editorokra nem működik a FlatScrollbar. Daaaamn… Hát akkor – ha már az Eclipse opensource – jöjjön egy kis hackelés! A cél az, hogy vagy lecseréjük, vagy legrosszabb esetben eltűntessük a Windows világító scrollbarjait.

Nem mászok bele nagyon az Eclipse-be, a hozzá tartozó GUI alapját adó SWT-be, meg hasonlókba – aki akar, olvasson utána! Egyszerűen csak leírom, hogy mit hackeltem meg, lehetőleg úgy, hogy egy junior is utánam tudja csinálni. Nos, az SWT gyakorlatilag egy jar file az Eclipse plugins alkönyvtárában, és valami org.eclipse.swt.win32.win32.x86_64..jar néven fut. Gyakorlatilag ebben kell lecserelnünk egyetlen classt, abba is csak két sort kell beszúrni. Tehát, kell egy új java project, oda bevágni ezt a jart librarynak, majd annak az egy classnak (név szerint StyledText) a forráskódját kell begyűjteni a netről – innen! Hogy Neked, kedves olvasó, konkrétan melyik verzióra lesz szükséged, az rohadtul nem egzakt sajna – függ attól, hogy milyen Eclipse verziód van, mikor olvasod ezt a postot, etc. Nekem konkrétan ez a verzió kellett Eclipse Mars.2-höz (4.5.2). Pár próbálkozásba bele fog telni, míg megtalálod a megfelelő verziót – gyakorlatilag a legújabbtól elindulsz visszafele addig, amíg nem találsz egy olyat, ami fordul abban a java projectben, amihez hozzáadtad az SWT-s jart libraryként. Ha ez megvan, jön maga a hack – kód sor kód kell a setScrollBars(boolean vertical) függvénybe:

0400_eclipse_scrollbar_hack
Tudom, ronda és brutális, de teszi a dolgát...

A kód a könnyebb copy-paste kedvéért:

if (verticalBar != null) verticalBar.setVisible(false);
if (horizontalBar != null) horizontalBar.setVisible(false);

Save és ha így is lefordult és megvan a class file, onnantól egyszerű a dolog – Eclipseből kilépni, belemásolni a class file-t az eredeti jarba az Eclipse/plugins alatt, újraindítani az Eclipse-et és jó lesz. Végeredményben valami ilyet kell látnunk:

0400_eclipse_hidden_scrollbar
Scrollbarok elrejtve ;)

Egy dologra még mindig nem válaszoltam – tehát milyen szent küldetésről van itt szó? Hát arról, hogy habár ezzel a hack-kel el lehet lenni ideig-óráig (pontosabban a következő Eclipse update-ig, amikor is újra meg kell hackelni az új SWT jart!), én szeretném, ha FlatScrollbar lenne az editorokban is. Fogalmam sincs, hogy ennek hogy fogok nekiállni (illetve azt még sejtem 🙂 ), meg hogy lesz-e ebből valami, de a motiváció adott, hiszen senki sem szeret egy ronda IDE-vel dolgozni! 🙂

Posted in iNi Blog Tagged with: , , ,

What the …

A die hard coder's blog about basically anything slightly related to programming, gaming, IT, etc. Stuff I've experienced, opinions and rants, written in mostly a caffeine-happy state of mind. Oh, and some articles too...

The Archives