Türkçe kurulum yapılan Linux dağıtımlarının çoğunda, kurulumdan sonra masaüstü ortamının "Masaüstü" adında Türkçe isimlendirilmiş bir klasöre bağlandığını görürsünüz. Bu klasör içinden çalıştırılan ya da bu klasör içindeki bir dosyayı kullanan bazı uygulamalar, içinde çalıştıkları klasörün adının içerdiği Türkçe karakterlerden ötürü, dosya olmasına rağmen "dosya ya da dizin yok" gibi hatalar verebiliyor. Buna benzer sorunları gidermenin geçici ve kalıcı iki basit yolu var.

    • Geçici: Kullanılan uygulama ve proje dosyaları, Türkçe karakter içermeyen bir alana taşınır ve orada çalıştırılabilir.
    • Kalıcı: Sistemin bağlı olduğu kullanıcı dizinleri değiştirilerek, dizin yolu içinde Türkçe karakter bulunmayan başka bir klasör, masaüstü dizinine bağlanır.

      İkinci yöntem sistem genelinde uygulandığı için, bu soruna daha kalıcı bir çözüm oluşturur.

      Kullanıcı dizinlerinin değiştirilmesi

      Linux işletim sisteminde, genel amaçlı kullanılan bazı dizinler (Masaüstü, Belgeler, Müzik, Videolar vb.), sistem açılışında bağımsız değişkenlere tanımlanır. Bu sayede, kullanıcıların genel dizinlerine ihtiyaç duyan uygulamalar bu değişkenlere bakarak ilgili klasörü bulur. İnternet tarayıcınızın indirdiği dosyaları İndirilenler klasörüne kaydetmesi veya ofis uygulamalarının belgelerinizi Belgeler klasörüne kaydetmesi gibi. Bu tanımlanmış dizinler düzenlenerek, sistem genelinde uygulamalar farklı bir dizine yönlendirilebilir. Yani sistemin genel masaüstü ortamını, Masaüstü klasörüne değil de, başka bir klasöre yönlendirebilirsek, bu sorundan kurtulmuş oluruz.

      Bu işlemi iki farklı yolla gerçekleştirebilirsiniz.

      1. Kullanıcı dizinleri dosyasını düzenleyerek.
      2. Yardımcı komut satırı uygulamasını (xdg-user-dirs-update) kullanarak (bu uygulama her masaüstü ortamında kurulu olmayabilir).

      1. Kullanıcı dizinleri dosyasının düzenlenmesi

      /home/$USER/.config/ dizinindeki user-dirs.dirs dosyasını, herhangi bir metin editörü ile açın. Eğer sistem diliniz Türkçe'yse, aşağıdaki gibi Türkçe klasör isimleri görebilirsiniz.

      XDG_DESKTOP_DIR="$HOME/Masaüstü"
      XDG_DOWNLOAD_DIR="$HOME/İndirilenler"
      XDG_TEMPLATES_DIR="$HOME/Şablonlar"
      XDG_PUBLICSHARE_DIR="$HOME/Genel"
      XDG_DOCUMENTS_DIR="$HOME/Belgeler"
      XDG_MUSIC_DIR="$HOME/Müzik"
      XDG_PICTURES_DIR="$HOME/Resimler"
      XDG_VIDEOS_DIR="$HOME/Videolar"
      

      Dosyada tanımlanmış klasör isimlerini, kendi kullanmak istediğiniz klasörlerin adlarıyla değiştirin. Örneğin Masaüstü klasörünü İngilizce kurulumda olduğu gibi Desktop olarak değiştirelim.

      XDG_DESKTOP_DIR="$HOME/Desktop"

      Buraya yazdığınız klasör kullanıcı ana dizininde ($HOME) gösterildiği için, aynı yerde aynı klasörü oluşturmanız gerekiyor. Veya nereye tanımladıysanız.

      Dosyayı kaydedin ve sistemi yeniden başlatın. Ya da terminalden aşağıdaki komutu verdiğinizde uygulamalar yeni masaüstü klasörü olarak Desktop klasörünü görecektir.

      $ xdg-user-dirs-update

      Üstteki komutla dosya yöneticisi, medya oynatıcı, internet tarayıcı gibi uygulamalar değişikliği anında görecektir. Ancak masaüstü ortamları (XFCE, Gnome vb.) bu durumu ekrana hemen yansıtmaz. Ayrıca xdg-user-dirs-update uygulaması sisteminizde yüklü olmayabilir. Bu durumda sisteminizi yeniden başlatmalısınız. Artık eski masaüstü klasörünüzdeki dosyaları bu klasöre kopyaladığınızda, simgeler de ekranda görünecektir.

      2. Komut satırı uygulamasının kullanılması

      Yukarıdaki yönteme alternatif olarak, xdg-user-dirs-update uygulamasıyla da kullanıcı dizinlerini değiştirebilirsiniz. Uygulamaya --set parametresiyle birlikte değiştirmek istediğiniz dizini ve tam dizin yolunu belirtmelisiniz.

      xdg-user-dirs-update --set <DIR> <path>
      • <DIR> Kullanıcı dizinini temsil eden bağımsız değişkenin adı. Değiştirmek istediğiniz dizinin, listedeki değişken adını kullanabilirsiniz.
        DESKTOP
        DOWNLOAD
        TEMPLATES
        PUBLICSHARE
        DOCUMENTS
        MUSIC
        PICTURES
        VIDEOS
      • <path> Kullanıcı dizinine bağlayacağınız klasörün tam dizin yolu.

      Örnek olarak masaüstü dizinimizi, kullanıcı ana dizinindeki Desktop klasörüne bağlayalım.

      xdg-user-dirs-update --set DESKTOP /home/$USER/Desktop

      Artık uygulamalar yeni masaüstü klasörü olarak Desktop klasörünü görecektir. Masaüstü ortamınızda da etkin olabilmesi için sistemi yeniden başlatmalısınız.

      Varsayılan dizinleri yeniden oluşturma

      xdg-user-dirs-update uygulamasını kullanarak, dizinleri kurulumla beraber gelen varsayılanlara döndürebilir ve ilgili klasörleri de yeniden oluşturabilirsiniz. Bu işlemin, dil tercihinize bağlı olarak farklı seçenekleri var.

      Sistemin kullandığı dilde varsayılan dizinler oluşturma

      Sistemin kullandığı dilde varsayılan dizin ve klasörlere dönmek için bu komutu kullanabilirsiniz. Bu komut sonrasında eğer sisteminiz Türkçe diline ayarlıysa, kullanıcı kök dizininde Türkçe klasörler kendiliğinden oluşturularak dizinler bu klasörlere bağlanır. /home/$USER/.config/user-dirs.dirs dosyası mevcut değilse yenisi oluşturulur. İngilizce klasörler varsa silinmez.

      xdg-user-dirs-update --force

      İngilizce varsayılan dizinler oluşturma

      İngilizce varsayılan dizin ve klasörlere dönmek için aşağıdaki komutu kullanabilirsiniz. Bu komut sonrasında sisteminiz Türkçe dahi olsa, kullanıcı kök dizininde İngilizce klasörler kendiliğinden oluşturularak dizinler bu klasörlere bağlanır. /home/$USER/.config/user-dirs.dirs dosyası mevcut değilse yenisi oluşturulur. Türkçe klasörler varsa silinmez.

      LC_ALL=C xdg-user-dirs-update --force

      Mevcut duruma göre varsayılan dizinler oluşturma

      Alttaki komut mevcut durumu gözeterek işlem yapar.

      • /home/$USER/.config/user-dirs.dirs dosyası mevcutsa ve dosyada tanımlanan klasörler de mevcutsa doğrudan bağlantı kurulur. Klasörler mevcut değilse, klasörleri ve dizinleri oluşturmaz, dizini boş bırakır.
      • /home/$USER/.config/user-dirs.dirs dosyası mevcut değilse, Türkçe ya da İngilizce hangi klasör varsa dizini ona bağlar. Türkçe ve İngilizce klasörlerin ikisi de varsa dizinleri İngilizce klasörlere bağlar, Türkçe isimlileri silmez. Hiç klasör yoksa Türkçe isimli klasörleri oluşturur ve dizinleri bu klasörlere bağlar.
      xdg-user-dirs-update

      Ayrıca /home/$USER/.config/user-dirs.dirs dosyası mevcut değilken sistemi yeniden başlattığınızda da bu son komut çalışır ve aynı sonuçlar gerçekleşir.

      Kaynaklar