Yeni Tema: Yirmi Onbeş

Merhabalar,

Uzun zamandır severek kullandığım Independent Publisher WordPress temasından ani bir kararla WordPress’in varsayılan tema olarak bizlere sunduğu Yirmi Onbeş temasına geçiş yaptım.

Güncemde teknik konular haricinde bu tarz içeriklere yer vermek istemesem de; okuyucularıma karşı kendimi sorumlu hissettiğim için açıklama ihtiyacı duydum.

Independent Publisher

Öncelikle, Independent Publisher genel olarak yani bir şablon olarak beni yansıtıyor diyebiliriz? “Bunu da nerden çıkardın?” diye soranları duyar gibiyim. Beni karakter olarak tanıyanlar kafalarını onaylarcasına yukarı-aşağı hareket ettirdi zaten. Kısaca açıklamak gerekirse; günlük yaşantımda da sade bir insanım. Yerel ağ(internet) üzerinde ise her zaman doğru bilginin savunucu olmuş, kaliteli, güncel ve doğru içerikleri doğru bir üslupla insanlara ulaştırmayı tercih etmiş ve yerel ağda da yerel betlerin(internet sitesi) bu şekilde olmasını istemişimdir. Üstüne üstlük renklerden ve kalabalık nesnelerden arınmış bir günce(blog) okumanın tadı hiçbir şeyde yoktur!

WordPress temasının geliştiricisi Raam Dev abimiz, kendi işinde gücünde mütevazi güzel bir insan. Tam olarak indirme sayısına ve oylamalara göz gezdirmedim fakat güzel bir indirme yakaladığını tahmin ediyorum. Raam abimiz, bu durumdan hiçbir çıkar gütmeden gayet bir gün her geliştiricinin yapmasını umduğumuz gibi GitHub üzerinde açık kaynak olarak yayınlamış çalışmasını.

Tüm bu değerlendirmelerin ışığında uzun bir süre kullandım, caanım temayı.

Eee, Sonra?

Eesi sevgili okuyucum; ilerleyen süreçte beni rahatsız eden bazı durumlar vardı. Benim için en önemlisi ihtiyaçlarım doğrultusunda mantıklı ve işlevsel güncellemeleri zorlanmadan yapabilmeme olanak sağlamasıdır. Bu temanın dizin yapısı ve kullanılan kod yapısı ise buna pek müsaade eden tarz değil maalesef. Özellikle ilk kullandığım zamanlarda Raam’a birkaç kez mail ile sitem etmişliğim ve yardım almışlığım da vardır. Kendisi her durumda yardımcı oldu lakin bir yapı var ve sen onun dışına çıkamıyorsun.

WordPress’e de CMS olarak çok hakim değilim. Blog mu? Yahu yazıyorsun yayınlıyor işte pek bir esprisi yok bu işin. Önemli olan yazdıklarınla kimlere dokunabildiğindir.

Temada son zamanlarda fark ettiğim birkaç sitil hatası ve bunları düzeltmek için kendimde yeterli enerjiyi bulamamam, GitHub üzerinde son işlemenin aylar öncesinde olduğunu gördüğümde biraz daha okuyucuya “Bak, buradayım. Okusana beni. Hadi, oku!” diyebilecek bir tema arayışına girdim.

Birazcık ücretsiz mağazaları dolaştım. Çok yeni moda ve sadeliği arka plana atmış temalara rast geldim. Yeteri kadar araştırma yapacak zamanımın da olmadığını göz önünde bulundurduğumda kendim bir tema çıkartayım dedim. Şöyle bir düşününce de mantıklı geldi. Sadece kendi ihtiyaçlarıma göre evrilecek bir yapıyı ayağa kaldırmak çok zamanımı almasa gerek diye düşündüm.

Tam o sırada, temalar kısmında eskiden de geçici olarak bir göz kırptığım Yirmi Onbeş temasını gördüm.

Yirmi Onbeş

Yirmi Onbeş’in geçmişinden haberdarım. Geçmişinden kaçamazsın diyerek samimi bir yüzleşmeden sonra hiç düşünmeden etkinleştirdim dedim. Karşıma çıkan önyüz daha sade ve daha okuyucu odaklı bir çalışma idi.

Yapı olarak WordPress’in varsayılan teması olduğunu bir bakışta hissettirecek güzellikte. Önümüzdeki bir ay boyunca Yirmi Onbeş ile devam edeceğim. Yapılan sorgu sayılarından SEO’ya kadar birçok etmeni göz önünde bulundurarak yeni bir tema yapmalı mıyım? Yoksa Yirmi Onbeş ile devam mı etmeliyim? Sorularına cevap bulacağım. Bunu da tabii ki zaman ve karşıma çıkan durum raporları gösterecek.

Sonuç

Her ne olursa olsun, geliştirmeye; yazmaya ve paylaşmaya devam ediyoruz. Vee “Bizim bir Mert vardı, o güzel yazıyordu, bu onun güncesi değil!” diye bir düşünce kapılmıyoruz.

Kaynak ve İleri Okuma

  • https://tr.wordpress.org/themes/twentyfifteen/
  • https://tr.wordpress.org/themes/independent-publisher/

Logitech Teknik Servis Süreci (Penta)

Merhabalar, 13 Haziran 2017’de satın aldığım M720 Triathlon model farede bluetooth bağlantı sorunu yaşamaya başladım. Bir anda hiçbir cihazı görmemeye başladı. Bu cihazı almamın en önemli nedenlerininden birisi ise birden fazla cihaza bağlanabilme özelliği olduğu için bu sorun bana büyük engel olmaya başlamıştı.

Bir boşluğumda Logitech’e garanti kapsamında ürünü göndermek istedim. Türkiye’deki temsilcileri Penta, tam ismi ile Penta Teknoloji Ürünleri Dağıtım Ticaret A.Ş. ile elektronik mail kanalı ile iletişime geçtim ve durumu özetledim.

Penta:

Kendilerinden şu şekilde bir yanıt aldım. Siz de ürününüzü göndermeden önce lütfen dikkate alınız. Bu konuda fazla bilgiye ulaşamadığım için sizlerin de bilgilenmesini istedim.

  • Ürünü faturasının fotokopisi ile birlikte arıza notunu yazarak servisimize Yurtiçi kargo ile gönderebilirsiniz.
  • İstanbul Anadolu yakasından gönderilen ürünlerin kargo ücreti müşteriye aittir. (Gönderici Ödemeli)
  • İstanbul Avrupa yakasından ve İstanbul dışı diğer illerden gönderilen ürünlerin kargo ücreti servisimize aittir. (Alıcı Ödemeli)
  • Yurtiçi Kargo Anlaşma Kodu : 262 244 793
  • Penta Teknoloji Ürünleri Dağıtım Tic. A.Ş.
    Organize Sanayi Bölgesi Nato Yolu 4. Cad. No : 1 Yukarı Dudullu Ümraniye İstanbul

Burada ürünü göndermek için ihtiyacınız olan tüm bilgiler mevcut.

Süreç:

Ürünümü 17 Temmuz 2017 tarihinde Yurtiçi Kargo ile gönderdim ve yine mail kanalı ile de kendilerine ulaştığı ve işleme alındığı bilgisine ulaştım. Teknik servis, maksimum yirmi iş günü içerisinde sorunu çözmeyi hedeflemekte. Şu an beş iş gününü tamamlamış bulunmaktayız.

Süreç ile ilgili gelişmeleri yine buradan güncellerim. Logitech ürünleri konusunda sorun yaşayanlara da rehberlik etmiş olur.

  • 6. iş günündeyiz ve halen ürün arıza takip numaramı alamadım. Ürünün aciliyetini bildirmeme rağmen tek geri bildirimleri “net bir bilgi veremeyiz, 20 iş günü içerisinde tamamlanacaktır.” tarzında kalıplaşmış elektronik postalardan ibaret.
  • Kendilerine (850) 277 0 277 numaralı telefondan ulaştım. Kargo takip numaramın son altı hanesini kendilerine bildirdim ve ürün hakkında bilgi aldım. Sorunsuz bir şekilde değişimi yapıldığı ve gün içerisinde kargoya verileceği söylendi. Ürün yarın elimde olursa Penta, bizlerden tam not alacak!
  • Ürün, beklediğim gibi tarafıma ulaştı. Birebir yenisi ile değişim yapıldı. Penta’ya teşekkürlerimizi iletiyoruz.

Bonus:

Ek olarak Linux üzerinde fare kullanımını konfigüre etmek isteyenler için de bu makalemi önerebilirim.

Bağlantılar:

Esen kalın!

Kotlin: Yineleyiciler & Döngüler

Kotlin‘de yineliyiciler ya da bir başka deyişle döngüler konusu ile devam ediyoruz. Geleceğin Yazarları, döngüleri şu şekilde tanımlamış:

Yazılan kodlarda belirli satırların birden fazla tekrar edilmesi istenebilir. Böyle durumlarda döngü yapıları kullanılır. Döngü yapılarında, döngünün kaç kere tekrar edeceği dinamik olarak belirlenebilir. Hatta döngünün tekrarlaması bir koşula bağlanabilir.

Biz de bu tanıma bağlı kalarak Kotlin üzerinde genel kullanım mantığı ile örnekleme yapalım.

For

For döngüsü, işlem koşullarının önceden belirli olduğu durumlarda kullanılır. Hemen bir genel kullanım örneği verelim ve sözdizime bakalım.

Bu ifadenin çıktısı şuna benzer olmalıdır:

Burada kullanılan .. operatörü bir aralık belirtir. Buna rangeTo fonksiyonu diyoruz. Tam anlamı şu şekilde aslında  1 <= i && i <= 10 ve yine burada kullanılan && operatörü ve anlamına gelmektedir.

Bir örnek daha verelim. Bu kez sadeleştirilmiş sözdizimi ile gelsin.

Birinci ifade için çıktımız 1234 olurken ikinci ifade için tanımsız olacaktır. Peki, bu aralığın tersini almak mümkün mü? Gayet tabii.

Burada çıktımızın 4321 olmasını bekleriz.

Peki, son elemanı içermeyen bir aralık oluşturmak istersek bunu nasıl yaparız? Until fonksiyonu ile.

Tam olarak gösterimi ise şu şekilde olmaktadır: [1, 10)

WHILE

Döngüsel işlem veya tekrarlı işlem (iterasyon, İng. iteration), bilgisayarı aynı işlem grubunu belirli bir koşul sağlanana kadar tekrar tekrar yapmak için yönlendirir.” diye aktarmış Geleceğin Yazarları.

Bu tarz teknik tanımlarda daha evrensel cümleler kullanmaya özen gösteriyorum ki Türkçe Yazılım‘da belirli bir kalıp oluşturalım.

While döngüsü kullanımına dair genel kullanım örneği verelim:

Burada, x değeri 0’dan büyük olma koşulunu gerçekleştirmeye devam ettiği sürece döngü çalışacaktır.

Burada çıktımızın aşağıdaki gibi olmasını bekleriz:

DO WHILE

While döngüsünde belirlenen koşul döngünün başlangıcında bulunmaktadır. Bunun anlamı, koşulun false dönmesi halinde while bloğu çalışmayacaktır. Fakat, bazı zamanlarda while bloğunu bir kere de olsa çalıştırmamız gereken durumlarla karşılaşacağız. Bu tarz durumlarda ise Do While ifadesini kullanacağız.

Genel bir kullanım örneği verelim:

Kaynak ve İleri Okuma

Kotlin: Koşul İfadeleri

Kotlin‘de şartlı deyimler ve koşul ifadelerini inceleyelim. Bunun için IF Koşulu ve WHEN Koşulu üzerinde sözdizimine göz gezdirelim.

IF Koşulu

Koşullar, yazılım dillerinde önemli bir yere sahiptir. Kullanılan algoritmalarda şartlı deyimler olarak geçen bu ifadeler sayesinde veri çıktılarımıza ve diyagram akışımıza göre süreci düzenleyebiliriz. Türkçe’de eğer anlamına gelen IF, belirttiğimiz bir koşulun gerçekleşmesi durumunda istenen değerin döndürülmesini sağlar. Bununla ilgili hemen birkaç basit sözdizimi görelim.

Genel Kullanım

Yukarıdaki örnekte max değişkenine varsayılan olarak a değişkeni atanmış ve hemen altında bir if koşulu yazılmıştır. Eğer, a değişkeni b değişkeninden küçük ise max değişkenine b değişkeni atansın.

Bunu else kullanarak yapalım.

Else ile Birlikte Kullanalım:

IF koşulunda else ifadesi, tanımlanan koşula uymayan durumlarda kullanılır. Burada a değişkeninin b değişkeninden büyük olma koşulu tanımlanmış fakat; belirtilen koşula uymadığı için else ifadesi geçerli kılınmış, max değişkenine b değişkeni atanmış.

İfade Biçiminde Yazalım:

WHEN Koşulu

When ise C benzeri dillerin geçiş operatörü olarak kullanılmakta.

Genel Kullanım

Birden Çok Aralık

Kaynak ve İleri Okuma:

Linux Mouse Konfigürasyonu (xinput,xev)

Kullandığınız farenin buton işlevlerini değiştirebilir, farklı görevler atayabilir ve tuş görevlerini yer değiştirebilirsiniz. Logitech M720 Triathlon kullanırken ileri ve geri tuşlarının yerlerini değiştirmem gerekti. Bunun için Linux’ta xinput komutu üzerinde lists ve set-button-map parametrelerini kullanarak seçili aygıt üzerinde tanımlama yaparken xev komutu ile de ilgili butonların hangi ID değerlerini öğreneceğiz.

Öncelikle xinput komutunun sözdizimine bir göz gezdirelim:

Biz, xinput set-button-map komutunu kullanacağız.

Komutumuzun çıktısı şuna benzer olmalıdır:

Logitech M720 Triathlon cihazımın Id değeri 11 gözükmekte. Şimdi, değiştirmek istediğimiz butonların hangi Id değerlerine sahip olduklarını öğrenelim.

Komutu çalıştırdıktan sonra değiştirmek istediğimiz butonlara tıklayalım ve uçbirime bakalım. Çıktımız şuna benzer olmalıdır:

Ben burada Id değeri 8 olan butonum ile Id değeri 9 olan butonumu yer değiştireceğim. Bu sayede işlevleri de yer değiştirmiş olacaktır.

Yukarıdaki komutu uçbirimde çalıştırdığımızda butonların işlevlerinin başarılı bir şekilde yer değiştirdiğini görebiliriz.

Oturumu her yeniden başlattığımızda seçili aygıtın Id değeri değişebilir. Şu anki oturumda Id değeri 11 olan aygıt üzerinde bu işlemi gerçekleştirdik. Bu komutu bir session dosyasında açılışta çalıştırmak istediğinizde hata alma olasılığınız çok yüksek çünkü her zaman Id değeri 11 olmayacaktır.

Bunun için basit bir script kullanalım.

Burada Logitech M720 Triathlon olarak yazdığım aygıt ismi için siz kullanmak istediğiniz aygıtı yazabilirsiniz. For döngüsünde bu aygıtı bulur ve bir regex kuralı ile ilgili satırı parçalayarak bizlere Id değerini verir.

Bu dosyayı dosya.sh olarak kaydedebilir ve başlangıçta çalıştırabilirsiniz.

Kotlin: Temel Sözdizimine Genel Bakış

Kotlin ile ilk uygulamamızı yazalım ve temel seviyede Kotlin sözdizimine genel bir göz gezdirelim.

Merhaba Dünya

Yazılım dillerinin başlangıç klasiği “Hello World” ile başlayalım uygulamamıza. Öncelikle Intellij IDEA yazılımını çalıştıralım.

Create New Project ‘e tıklayalım ve açılan arayüzde Java sekmesi altında Kotlin (Java) seçeneğini işaretleyerek next diyelim.

Bir sonraki aşamada Project name  alanına ilkuygulama yazarak finish  diyorum.

Gerekli modüller yüklendiğinde bizleri sade bir arayüz karşılamakta.

Project  sekmesi altında yer alan uygulama dizininin altında yer alan src dizinine sağ tıklayalım ve New  ve Kotlin File/Class  yönergelerini takip edelim.

Öncelikle JAVA’da bunu nasıl yaparız ona bakalım, hemen ardından Kotlin ile yazalım.

Java ile “Merhaba Dünya”

Kotlin ile “Merhaba Dünya”

Kotlin’de bir diğer yazım biçimi olarak da {} kullanmak yerine =  operatörü ile daha kısa ifadeler elde edebiliriz. Intellij IDEA üzerine ilgili satırın üzerine alt+enter  kombinasyonları ile karşınıza çıkan seçenekte “Conver to expression body” seçeneği ile bu düzenlemeyi otomatik olarak gerçekleştirebilirsiniz.

Kotlin ile “Merhaba Dünya”

Kotlin’de Veri Tipleri

Kotlin’de veri tiplerinde ondalık sayı, tam sayı ve string ifadeleri inceleyelim. Burada ek anektod olarak değişken tanımlamalarında kullanacağımız val ve var farkına da değineceğim.

Burada myDecimal ondalık veri tipimizi, myNumber tam sayı veri tipimizi ve myString string veri tipimizi temsil etmektedirler.

Bir değişkeni tanımlarken var kullandığımızda mutable (değişken/değişebilir), val kullandığımızda ise immutable (değişmez) olmaktadır.

Kod bloğumuzun en sonunda, print(myString)  dediğimizde bizlere “En azından hayattayız…” çıktısını verir. Fakat böyle bir şeyi val  ile yapamayız.

Burada noktalı virgül kullanımı opsiyoneldir.

Kotlin’de Class ve Fonksiyon Yapısı

Kotlin üzerinde basit bir örnek bloğu yazdım. Eminim, zihninizde sözdizimi ve işleyiş biçimi adına faydası olacaktır. Bir class içerisinde fonksiyon tanımladım.

Burada Inmutable (değişmez) val ile name değişkenimin String bir ifade olduğunu belirttim ve değerine ismimi yazdım. Bir satır altında obj değişkenimin içerisinde Person classının içerisinde bulunan Disp fonksiyonuna değer gönderdik.

Class Person‘ın içerisinde tanımladığımız Disp fonksiyonunda ise gelen değeri print  fonksiyonu ile yazdırdık.

Burada dikkat ederseniz ${name} tarzında bir ifade kullandım. String bir ifade içerisinde değişken tanımlamanız için $ kullanmanız gerekmektedir. Peki, {} kullanmamızın amacı nedir?

${} ifadesini name.lastname tarzında birden fazla dizinin yazılmasında kullanıyoruz.

Bir Class Oluşturalım

Peki, harici bir Class nasıl oluşturabiliriz? Proje dizinimizde src üzerinde New diyelim ve yeni bir Package oluşturalım. Oluşturduğumuz Package’nin ismi com.persons olsun.

Oluşturduğumuz com.persons ‘ın içerisine yine New diyerek Kotlin File/Class diyelim ve Kind seçeneğinde Class‘ı seçelim.

Person içerisinde bulunan Person Class’ımızı bu dosyanın içerisinde tanımlayalım ve Person içerisinde import edelim.

Bu sayede harici Class‘lar üzerinde de çalışabiliriz.

Kotlin’de Yorum Satırları

Birçok yazılım dilinde de kullandığımız sözdizimi burada da geçerli. Burada iki farklı şekilde  // Yorum ve  /* Yorum */ olmak üzere yorum satırlarını tanımlayabiliriz.

Kotlin: JAVA JDK ve IntelliJ IDEA Yükleyelim

Kotlin için ihtiyacımız olan yazılımları yükleyelim. JAVA JDK ve Intellij IDEA kurulumlarını gerçekleştireceğiz.

Java JDK

Google’da JAVA JDK araması yaptığımda karşıma çıkan ilk sonuca tıklıyorum. Buradan kendi işletim sisteminizi göz önünde bulundurarak Java SE Development Kit ‘i indirelim.

Linux’ta indirilen klasörde uçbirim açalım.

Eğer ki lib  dizini altında jvm  dizini yok ise mkdir komutu ile oluşturabilirsiniz.

JDK dizinimizin yollarını tanımlayalım. Uçbirimde /etc/profile dosyasını metin editörü ile açalım ve aşağıdaki komutları dosyanın en sonuna ekleyelim.

Cihazımızı yeniden başlatalım. Uçbirimde java -version komutunu girelim. Çıktımız aşağıdakine benzer olmalıdır.

IntelliJ IDEA

Kotlin için kullanacağımız IntelliJ IDEA yazılımını kendi sitesinden indirelimCommunity sürümü ücretsiz olarak yayınlanmakta.

Linux için, bin  dizini içerisinde idea.sh  dosyasını uçbirimde çalıştırmak yeterlidir.

Kotlin için ihtiyacımız olan her şeye sahibiz.

 

Kotlin’e Giriş

Merhabalar, Kotlin derslerine başlamadan önce basit ama anlaşılır bir girizgah yazmak istedim. Buna bağlı olarak; aşağıda bazı maddelere yer verdim. Kısa cümlelerle konuya az çok hakim olmanızı amaçlayan bir konsept üzerinde ilerleyeceğim.

  • Google I/O (Innovation in the Open/Açık Yenilik) 2017 toplantısında Android‘in resmi dili seçilmiştir.
  • JetBrains tarafından geliştirilmektedir.
    • Kotlin yazarken kullanacağımız IDE (IntelliJ IDEA) JetBrains geliştirmektedir.
    • Android Studio, IntelliJ IDEA’nın üzerine inşaa edilmiştir.
  • Java’dan daha esnek ve güçlü bir yapıya sahip.
    • Sözdizimi daha anlamlı ve kısa.
    • Güvenlik özellikleri uygulamalarınızı daha sağlıklı geliştirebilirsiniz.
    • Uygulamalarınızda daha fazla performans elde edebilirsiniz.
  • Java Sanal Makinesı’ni kullanır.
  • Matematik ve bilgisayar bilimleri üzerine (High Order Functions) destekler.
  • Kotlin ve Java birlikte çalışabilirler.

Kotlin ve Java üzerine daha birçok madde yazılabilir ve irdelenebilir belki ama şimdilik bizlere bu kadar maddenin yeterli olacağını düşünmekteyim.

Ben Kotlin dersleri sürecinde Linux işletim sistemi ile devam edeceğim. Sizin kullanıdığınız sistemlerle bazı farklılıklar olabilir. Bunları araştırarak öğrenebilirsiniz.

 

Linux Manjaro 17 I3WM Topluluk Sürümü Çözümleri

Esenlikler, Linux Manjaro topluluğunun geliştirdiği ve konfigüre ettiği I3WM (pencere/dizin) yöneticisine dair çözümlerimi aktarmaya çalışacağım. Bu makale ben çözümler buldukça güncellenecektir.

Ekran Çözünürlüğü

Kullanıdığınız dahili ya da harici monitörün çözünürlüğünü güncellemek ve tanımlamak için xrandr komutunu kullanacağız.

Klavyeden ctrl+enter  kombinasyonunu kullanarak uçbirimi açalım.

Komutun çıktısı aşağıdakine benzer olmalıdır:

Şu an cihazımın tanımladığı iki adet aygıt bulunmaktadır. Bunlar yukarıda da görülebileceği üzere DP1 ve eDP1 (birincil)‘dir. Bizim tanımlamak ve konfigüre etmek istediğimiz aygıtın isminin DP1 olduğunu öğreniyoruz.

Ben harici ekranımın çözünürlüğü için 1366x768  tercih ediyorum. Bu çözünürlüğü tanımlamak için yeni bir mod tanımlamamız gerekmektedir. Uçbirimden aşağıdaki komut ile devam edelim.

Komutun çıktısı aşağıdakine benzer olmalıdır:

Yeni modumu tanımlayalım.

Tanımladığımız modu ekleyelim. Kullanılan addmore  parametresinde DP1 aygıtını tanımladım. Siz, xrandr çıktınızda hangi aygıtı kullanmak istiyorsanız onu yazmalısınız.

Ekrana çıkışını verelim. Bu kez output  parametresini kullanalım.

Tanımladığımız harici monitörde görüntünün gelmesi gerekmektedir. Linux’ta xrandr komutunu kullanarak cihazımıza bağlı olan bir monitöre ilgili çözünürlüğü tanımladık ve görüntü çıkışı verdik.

Bu işlemi Linux Manjaro topluluğu I3WM sürümünde mod+ctrl+b kombinasyonları ile kullanabileceğimiz bir menüde de gerçekleştirebiliriz.

Otomatik Tanımlama

Linux Manjaro Gnome 3.22 Çözümleri yazımda da kullandığım bir yöntemi tercih edebiliriz. Yalnız fark ettiğim sorun şudur ki XFCE ve Gnome masaüstlerinde cihazı başlattıktan sonra harici monitörü taktığımızda tanımlama ve çözünürlük ayarları başarılı bir şekilde bize yansısa da I3WM‘de yukarıdaki yöntemi kullanmanız gerekmektedir.

Uçbirimde aşağıdaki dosyayı görüntüleyelim.

Yukarıda yer alan komutları ekleyelim ve dosyamızı güncelleyelim. Orijinal yazıda ilgili konunun kaynakları yer almaktadır.

Ekran Yırtılması

Genel ağ (internet) üzerinde bir tarayıcıda gezinirken farenizin tekerleği ile yukarı-aşağı yaptığınızda ekrandaki yırtılmaları fark edebilirsiniz. Bunun için Compton kullanacağız.

Linux Manjaro topluluğu I3WM sürümünde bizler için bir alias (takma ad) atamış. Uçbirimi açalım ve comp komutunu girelim. Karşımıza topluluğun yazdığı komutlar çıkmaktadır. Ben bunları kullanmak istemediğim için tamamını sildim ve sadece yırtılmaları önlemek için tanımlanan komutları kullandım.

Uçbirimde direkt olarak görüntülemek isterseniz ~/.config/compton.conf  dosya uzantısını bir metin editörü olarak görüntülemeniz yeterlidir.

Yukarıda yer alan komutları dosyamıza ekleyelim ve yeniden başlatalım. Yırtılmaların düzeldiğini fark edeceksinizdir.

Klavyede mod+t  ile compton‘u devre dışı bırakabilir, mod+ctrl+t  ile de tekrar devreye alabilirsiniz. Uçbirimde ise compton -b  komutunu kullanarak başlatabilirsiniz.

Ve yine topluluğun geliştirdiği compton-conf  paketini kurarak grafiksel bir arayüz ile de ayarlarınızı gerçekleştirebilirsiniz.

Olası Sorunlar

Uçbirimde compton komutunu uyguladığınızda glx_init(): No GLX extension.  çıktısını alabilirsiniz.

Çözümüne dair edindiğim bilgilere dayanarak söyleyebilirim ki; Bumblebee ve ekran kartı kulumunu başalarılı bir şekilde gerçekleştirdiğinizde sorun düzelecektir. Bu konuda daha ayrıntılı araştırma için ilgili kaynakları aşağıya bırakıyorum.

Touchpad (dokunmatik fare)

Touchpad (dokunmatik fare) üzerinde XFCE ve Gnome masaüstlerinde grafiksel arayüz ile dokunmatik ayarlarını düzenleyebiliyorduk. Ben I3WM‘de bunu bulamadığım için bazı düzenlemeler ile sorunu çözeceğiz.

Öncelikle uçbirimi açalım.

Yukarıdaki komutları ilgili dosyamızda tanımlayalım ve cihazı yeniden başlatalım. Tüm fonksiyonların başarılı bir şekilde çalıştığını görebilirsiniz.

Bununla ilgili birkaç kaynak bırakıyorum.

Harici Klavye Ayarları

Linux’ta klavye ayarları için setxkbmap kullanılmaktadır. Benim dizüstü bilgisayarımda harici klavye kullanırken karakter hatası almaya başladım. Bu sorunu çözmek için uçbirimde setxkbmap tr  komutunu çalıştırdım. Başarılı bir şekilde Türkçe karakter tanımlaması gerçekleştirildi. Bunu başlangıçta çalıştırmak için ise;

I3WM için tanımlı config dosyamızı bir metin editörü ile görüntüleyelim ve dosyaya aşağıdaki komutu ekleyelim:

Bilgisayarımızı yeniden başlatabiliriz. Klavye ayarlarımız Türkçe karakter seti ile güncellenmiştir.

ASUS K555U Realtek ALC256 Linux Mikrofon Sorunu

Güncelleme: Linux Kernel 4.12

Linux Kernel 4.12 ile birlikte ses ve mikrofon sorunlarının tamamı giderildi.


Esenlikler herkese. Eğer bu yazıya Google’da yaptığınız araştırmalar sonucunda geldi iseniz; Tanrı şimdiden sabır versin. Belirtmek isterim ki bu yazıda umduğunuzu bulamayacaksınız, zira ben de çaresizim.

Bilgisayarımı ilk aldığımda blogumda Windows 10’da yaşanan uyku sorunundan bahsetmiştim. Bu yazıdan kısa bir süre sonra Linux kullanmaya başladım. Ubuntu, Mint, OpenSUSE, Linux Lite, Arch Linux ve Manjaro dağıtımlarını kullandım. KDE, XFCE ve Gnome masaüstü ortamları ile çalıştım. Şu an sabit olarak Manjaro I3WM kullanmaktayım. Sözün özü şu ki; Linux’ta Realtek ALC256 ses kartının mikrofon ayarlarında sorun oluşmakta maalesef.

Bu konu ile ilgili Google ve diğer arama motorlarında yaptığınız araştırmalarda sayısız forumda sayısız konu okuyacak ama çözüme yüksek ihtimal ulaşamayacaksınız. Jack girişinden ve dahili kemara mikrofonundan bir türlü ses kaydedemeyeceksiniz. Alsamixer, PulseAudio gibi binbir çeşit araç deneyecek, paket depolarında sörf yapacaksınız. Biliyorum, biliyorum çünkü ben bunları yaşadım. Tüm Facebook gruplarına konu açtım. Farklı dağıtımlarda uzman kişilerden görüş aldım. Bu sorunun bir çözümü yok ve kronik bir sorun.

Geçici ve ideal olmayan bir çözüm buldum neyse ki. Çok içime sinmese de paylaşmak istedim. Bir Jack dönüştürücüye ihtiyacımız var. Google’da USB Ses Kartı olarak arama yaptığınınızda görebilirsiniz. Ben denemek için en kalitesiz olanlarından bir tane aldım. Bu arada  mikrofon olarak da Snopy’nin Sn-330M mikrofonunu satın aldım. Uygun fiyatına nazaran harika verim aldım. Satın aldığım kalitesiz Jack dönüştürücü biraz daha sağlam olsa çok daha güzel bir ses kalitesi alacağımı tahmin ediyorum. Eğer ciddi anlamda bu konuda bir çalışmanız olacaksa Creative’nin X-Fi Go Pro modelini tavsiye ederim. Henüz denemedim ama okuduğuma göre alınası bir cihaz.

Bir diğer alternatif ise USB çıkışlı bir mikrofon satın almanız. Ses kalitesi ne kadar iyi olur orası tartışılır, bilemeyeceğim.

Bu arada yeri gelmişken yeni bir kulaklık almayı düşünüyorum. Pioneer’in SE-MJ591 modelini beğendim. Satın aldığımda deneyimimi burada güncellerim.

Güncelleme

Uzun bir aradan sonra beni tam olarak tatmin etmese de bir çözüm buldum. Linux Arch tabanlı dağıtımlarda hda-jack-retask-bz paketini yükleyelim ve üçbirimde hda-jack-retask  komutu ile çalıştıralım.

Muhtemelen her cihazda farklı olacaktır bu sorun ve çözümü. Ben deneyerek buldum. Select a codec menüsünden ses kartım olan Realtek ALC256‘yı seçtim. Sağ menüden ise show unconnected pins seçeneğini işaretledim.

Pin ID:0x18 olanı override olarak işaretledim ve Microfone seçtim. Install boot override seçeneği ile başlangıçta ayarların yapılandırılmasını sağladım.

Uçbirimde bir metin editörü ile aşağıdaki dosyayı görüntüleyelim.

İçerisinde bulunan satırları silelim ve aşağıdaki komutla değiştirelim.

Yedeklemeyi unutmayın.

Bilgisayarımı yeniden başlattığımda uçbirimde pavucontrol ile ses ayarlarımı görüntüledim. Çıkış ayarlarından dahili mikrofonumu seçtim.

Bu yöntemle dizüstü bilgisayarınızdaki dahili mikrofonu kullanabilirsiniz. Bazılarında Pin ID:0x19 çalışmış. Siz denemelisiniz kendiniz için.

Olası Sorunlar

Uçbirimde pavucontrol  yazdığınızda Establishing connection toPulseAudio. Please wait ..” hatası alabilirsiniz.

Çözüm olarak rm -r ~/.pulse komutunu uçbirimde çalıştırın. Bunun ardından pulseaudio -k komutu ile servisi durduralım ve pulseaudio --start ile yeniden başlatalım.

Uçbirimde tekrar pavucontrol komutunu girdiğinizde gerekli ses ayarlarınızı yapabilirsiniz.

Pioneer SE-MJ591

Piooner SE-MJ591 modelini Idefix üzerinden satın aldım. Yanınızda taşımak için harika bir taşıma kutusu mevcut. Müzikleri tüm detayları ile hissedebilirsiniz.

Uzun kullanımda rahatsız etmekte. Ben en fazla iki saat aralıksız kullanabildim. Biraz çıkartıp dinlenmek gerekiyor.

Onun dışında çok memnunum.