ตั้งค่าตัวแปรสภาพแวดล้อมสำหรับ unity application launcher


8

ฉันสร้าง.desktopไฟล์เพื่อเปิดแอปพลิเคชันของเรา แอปพลิเคชันของเราต้องการตัวแปรสภาพแวดล้อมบางตัวได้รับการกำหนดค่าอย่างถูกต้อง ฉันจะกำหนดค่าตัวแปรสภาพแวดล้อมนี้ได้ที่ฐานต่อผู้ใช้ (ผู้สมัครปกติที่ฉันรู้ชอบ~/.bashrcและ~/.profileไม่ทำงาน)

อาจจะมีการแก้ไขปัญหาดังนั้นฉันสามารถกำหนดค่าในExec=บรรทัดของ.desktopไฟล์ก่อนเปิดแอปพลิเคชันได้หรือไม่

คำตอบ:


15

ในไฟล์เดสก์ท็อปเองคุณสามารถรันโปรแกรมผ่านenv:

Exec=/usr/bin/env VAR=value /usr/bin/yourprogram

หรือใช้สคริปต์ตัวตัดคำ (เช่น/usr/bin/yourprogram.env):

#!/bin/sh
VAR=value
export VAR
exec /usr/bin/yourprogram.real "$@"

อย่างไรก็ตามทั้งคู่เป็นวิธีการแก้ปัญหาที่ไม่ดีเนื่องจาก Unity จะไม่สามารถติดตามโปรแกรมได้อย่างถูกต้องหากเริ่มต้นด้วย wrapper

มันจะดีกว่ามากใน~/.profileการทำงาน - ตรวจสอบให้แน่ใจว่าคุณใช้ไวยากรณ์ที่ถูกต้องและทั้งหมดนั้น

export VAR=value

หรือ

VAR=value
export VAR

โปรดจำไว้ว่า~/.profileจะอ่านเมื่อคุณเข้าสู่ระบบเท่านั้นดังนั้นคุณต้องออกจากระบบหลังจากเปลี่ยน


ขอบคุณ น่าเสียดายที่คำแนะนำการใช้งานของคุณenv VAR=value /my/appไม่ทำงาน ตัวแปรสภาพแวดล้อมVARไม่ได้ถูกตั้งค่าเป็นvalueเมื่อ/my/appเปิดตัว (ฉันพยายามแก้ไขdesktopไฟล์~/.gnome/apps) การสร้างสคริปต์ตัวตัดคำไม่มีตัวเลือกสำหรับฉันเพราะสิ่งนี้ควรใช้งานได้สำหรับแอปพลิเคชันของเราที่แจกจ่ายให้กับผู้ใช้ปลายทางและฉันไม่รู้ว่าผู้ใช้ปลายทางต้องการให้สคริปต์ตัวตัดคำอยู่ที่ใด (การสร้างตัวเรียกใช้งาน )
Mike L.

(หืมฉันไม่ทราบว่า~/.gnome/appsยังใช้งานอยู่มันถูกเรียก~/.local/share/applicationsใช้เมื่อไม่กี่ปีที่ผ่านมา) @ ไมค์ถ้าเป็นแอปพลิเคชันของคุณเองทำไมถึงไม่สามารถแก้ไขได้โดยอัตโนมัติเพื่อกำหนดตัวแปรสภาพแวดล้อมที่เหมาะสม (นอกจากนี้ฉันสามารถถามว่าคุณตั้งค่าตัวแปรใดเป็นพิเศษหรือไม่)
user1686

ฉันกำลังพยายามตั้งค่าตัวแปรที่กำหนดตำแหน่งของสภาพแวดล้อมรันไทม์ Java สำหรับแอปพลิเคชันของเรา
Mike L.

1
อาจใช้บางส่วนของที่ตั้งมาตรฐาน standard.freedesktop.org/basedir-spec/basedir-spec-latest.html
technosaurus

ผมได้ติดตั้งไฟล์โดยใช้.desktop xdg-desktop-menu install <my-desktop-file>ดูเหมือนว่ามันถูกคัดลอกไปยังสองสถานที่และฉันมักจะได้รับการแก้ไขผิดหนึ่ง ...
ไมค์ลิตร
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.