Lỗi người dùng XDG lạ đặt lại lỗi


10

Tôi có một vấn đề kỳ lạ với 12.04 LTS.

Bất kể tôi làm gì với ~/.config/user-dirs.dirstệp, bất cứ khi nào tôi đăng nhập lại vào lần tiếp theo, tệp đó chỉ được đặt thành $ HOME. Một cái gì đó đang xảy ra trong quá trình đăng nhập bằng lightdm ghi đè lên nội dung của tệp đó.

Nếu tôi đăng nhập và làm một xdg-user-dirs-update --forcethì nội dung của tập tin là OK. Sau khi tôi đăng xuất, tập tin vẫn ổn. Đó là khi tôi đăng nhập lại bằng lightdm thì có gì đó không ổn.

Nó khá là khó chịu.


Bạn đang sử dụng môi trường máy tính để bàn nào? Có một lỗi tràn ngập ở đây thời gian gần đây: bugs.launchpad.net/pcmanfm/+bug/1031463

Tôi đang sử dụng mặc định Unity2D
sybreon

Câu trả lời:


2

Có một kịch bản tự khởi động

/etc/xdg/autostart/user-dirs-update-gtk.desktop

Mà gọi chương trình xdg-user-dirs-gtk-update, dường như không có mantrang hoặc --helpgiải thích, nhưng tôi đoán có thể là nguyên nhân.

Bạn có thể xóa tập lệnh này (có vẻ như thuộc về gói xdg-user-dirs-gtkvà có thể được tạo lại nếu nó được cập nhật) hoặc thêm một dòng Hidden=truevào tệp tự khởi động, để ngăn nó chạy (và bạn nên được hỏi nếu bạn muốn giữ bản sao sửa đổi của bạn trong bất kỳ bản cập nhật trong tương lai).


Tôi đã làm một cái gì đó tương tự, nhưng đã tạo một tập lệnh trong /etc/X11/Xsession.d/ để ghi đè lên các bộ XDG.
sybreon

Các Commentlĩnh vực trong tôi .desktoptập nói Cập nhật thư mục chung tên để phù hợp với địa phương hiện nay . Nhưng điều đó không có lý do tại sao tôi muốn chuyển đổi đường dẫn thực tế của mình tùy thuộc vào miền địa phương; Tôi có thể thấy việc chuyển chuỗi hiển thị cho các thư mục đó, nhưng không phải là đường dẫn hệ thống tập tin.
palswim

0

Googling vấn đề của bạn dẫn tôi đến xdg-user-dirs, có thể được cài đặt từ Trung tâm phần mềm Ubuntu . Nó tuyên bố các tính năng sau:

Chương trình này đọc một tệp cấu hình và một tập hợp các thư mục mặc định. Sau đó, nó tạo các phiên bản được bản địa hóa của các thư mục này trong thư mục nhà của người dùng và thiết lập tệp cấu hình trong $ (XDG_CONFIG_HOME) /user-dirs.dirs (XDG_CONFIG_HOME mặc định là ~ / .config) mà các ứng dụng có thể đọc để tìm các thư mục này.

Các tài liệu đầy đủ có thể được tìm thấy ở đây .


Đó không phải là giải pháp vì vấn đề là các tệp này bằng cách nào đó được 'đặt lại' sau mỗi lần đăng nhập.
sybreon

0

Tôi đề nghị kiểm tra các điểm sau:

  • Hãy thử kiểm tra xem có XDG_CONFIG_HOMEđược đặt ở một vị trí khác là '~ / .config` không.
    • trên cấp độ vỏ
    • thông qua grep XDG_CONFIG_HOME /etc/*profile /etc/*rc ~/.*rc ~/.*profile /etc/X11/Xsession /etc/X11/Xsession.d/*

Như cách giải quyết, sử dụng các liên kết tượng trưng giữa tên thư mục tiêu chuẩntùy chỉnh của bạn .

ví dụ

 cd ${HOME}
 function link() {
 local dir=$1
 shift 1
 [ -e ${dir} ] || mkdir -p ${dir}
 for name in $*
 do
 if [ -L ${name} ]
 then
 if [ "$(readlink ${name})" = "${dir}" ]
 then
 [ -e  "${dir}" ] || mkdir -p "${dir}"
 echo "${name} allready converted to ${dir}"
 else
 echo "${name} (link) converted to ${dir}"
 [ -e  "${dir}" ] || mkdir -p "${dir}"
 mv -av ${name}/* ${dir}/ 2>/dev/null    || true # can be emtpy
 mv -av ${name}/.??* ${dir}/ 2>/dev/null || true # can be emtpy
 rm -f ${name}
 ln -svf ${dir} ${name}
 fi
 else
 if [ -d ${name} ]
 then
 mv -av ${name}/* ${dir}/ 2>/dev/null    || true # can be emtpy
 mv -av ${name}/.??* ${dir}/ 2>/dev/null || true # can be emtpy
 rmdir ${name}
 ln -sv ${dir} ${name};
 echo "${name} (dir) converted to ${dir}"
 else
 ln -sv ${dir} ${name};
 echo "${name} linked to ${dir}"
 fi
 fi
 done

 }


 #     real                DE          EN
 link  ~/data/templates    Vorlagen    Templates
 link  ~/data/public       Öffentlich  Public
 link  ~/data/documents    Dokumente   Documents
 link  ~/data/music        Musik       Music
 link  ~/data/photo        Bilder      Pictures
 link  ~/data/video        Videos
 link  ~/data/privat       Privat

hiện tại, tôi đã có một cách giải quyết để buộc các thư mục sử dụng tập lệnh /etc/X11/Xsession.d/.
sybreon

0

Các mục sẽ được đặt lại nếu các thư mục tùy chỉnh không tồn tại khi bản cập nhật chạy. Có thể là thư mục nhà của bạn không được gắn kết cho đến cuối quá trình đăng nhập? Có lẽ bạn có thể đặt mặc định /etc/xdg/user-dirs.defaultsđể nó được viết lại thành cùng một đường dẫn?


thư mục nhà của người dùng là một giá đỡ glusterfs được gắn trong khi khởi động .. vì vậy, nó có sẵn khi người dùng đăng nhập.
syenameon

0

Sau khi thực hiện các thay đổi và lưu tệp nhưng trước khi bạn đăng nhập lại, hãy thực thi

echo "enabled=false" > ~/.config/user-dirs.conf

Điều này tạo ra các thư mục người dùng . conf mà nên ngăn chặn bất kỳ thiết lập lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.