Linux笔记之xhost +和docker的关系以及GDK_SCALE和GDK_DPI_SCALE详解

Linux笔记之xhost +和docker的关系以及GDK_SCALE和GDK_DPI_SCALE详解

——2024-02-11

code review!

文章目录

  • Linux笔记之xhost +和docker的关系以及GDK_SCALE和GDK_DPI_SCALE详解
      • `xhost +` 的作用
      • `xhost` 与 Docker 的关系
    • -e GDK_SCALE 和 -e GDK_DPI_SCALE详解
      • `GDK_SCALE`
      • `GDK_DPI_SCALE`

xhost 是一个用来控制 X 服务器图形界面访问权限的工具。X 服务器是跑在类Unix操作系统上的软件,它管理和提供图形界面服务。 xhost 允许用户指定哪些用户和主机可以显示图形界面上的窗口。

xhost + 的作用

使用 xhost + 命令可以让任何用户从任何主机连接到 X 服务器。这个命令会关闭 X 服务器的访问控制,这意味着任何人都没有限制地访问你的 X 服务器。出于安全考虑,这通常不是推荐的操作,因为它会使你的 X 会话对任何人开放,并可能导致安全风险。

正确的用法通常是使用 xhost 加上特定的用户名或主机名来允许访问,例如:

xhost +SI:localuser:username

这条命令将允许本地用户 username 访问 X 服务器。

或者只允许特定的远程主机访问:

xhost +hostname

这条命令允许来自 hostname 的用户访问 X 服务器。

xhost 与 Docker 的关系

在使用 Docker 容器进行图形界面应用的开发时,有时需要将容器内运行的图形应用显示到宿主机的屏幕上。Docker 容器通常是隔离的,并没有直接访问宿主机的 X 服务器的权限。

要实现这一点,你需要在宿主机上允许容器访问 X 服务器。一个常见的做法是在宿主机上运行 xhost + 来禁用访问控制,然后在启动 Docker 容器时,将 X 服务器的 Unix 套接字共享给容器,这通常通过挂载一个卷来实现:

docker run -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix:rw my_docker_image

在这个命令中:

  • -e DISPLAY 设置环境变量 DISPLAY,让容器知道如何连接 X 服务器。
  • -v /tmp/.X11-unix:/tmp/.X11-unix:rw 将宿主机的 X 服务器 Unix 套接字目录挂载到容器中,这样容器就可以通过这个套接字与宿主机的 X 服务器通信。

为了安全起见,在完成图形界面应用的运行之后,应该通过运行 xhost - 命令来重新启用访问控制。

要注意的是,这种方法存在安全隐患,因为它允许任何应用接入你的 X 服务器。更安全的方法是只授权特定的 Docker 容器访问 X 服务器,而不是使用 xhost + 完全关闭访问控制。在 Docker 的场景下,可以通过设置特定的环境变量或者使用更细粒度的访问控制来实现这一点。

-e GDK_SCALE 和 -e GDK_DPI_SCALE详解

在使用 GTK+ (GIMP Toolkit) 应用程序时,环境变量 GDK_SCALEGDK_DPI_SCALE 可以用来调整应用程序界面的缩放级别,这在高分辨率显示屏(如 HiDPI 或 4K 显示器)上特别有用。这两个环境变量通常在启动 GTK+ 应用程序时设置,以确保应用程序的用户界面元素以合适的大小和清晰度显示。

GDK_SCALE

GDK_SCALE 环境变量用于整数缩放。它会按照指定的整数比例放大 GTK+ 程序的所有视觉元素(如窗口、按钮和文字)。例如,如果你在一个高 DPI 的显示器上发现应用程序的界面太小了,你可以通过设置 GDK_SCALE2 来使得所有的 UI 元素放大两倍。

GDK_SCALE=2 my-gtk-application

或者在使用 docker run 时:

docker run -e GDK_SCALE=2 my_docker_image

GDK_DPI_SCALE

GDK_DPI_SCALE 环境变量用于微调 DPI 缩放。不同于 GDK_SCALE 的整数缩放,GDK_DPI_SCALE 可以接受浮点数值,允许更细粒度的缩放控制。这对于那些整数缩放不够精细,或者用户想要稍微调整界面大小的情况非常有用。

比如,如果你想要让界面元素比正常大一点,但是又不想翻倍,你可以设置一个介于 1 到 2 之间的值:

GDK_DPI_SCALE=1.5 my-gtk-application

或者在使用 docker run 时:

docker run -e GDK_DPI_SCALE=1.5 my_docker_image

请注意,不是所有的 GTK+ 应用都会响应 GDK_SCALEGDK_DPI_SCALE 环境变量。应用程序需要使用相应的 GTK+ 版本并且开发者需要实现了适当的支持。此外,这两个变量可能会与其他缩放设置相互作用,例如 GNOME 的缩放设置,因此你可能需要进行一些尝试,以找到最适合你显示器和应用程序的设置。

在 Docker 环境中使用这些变量时,需要确保它们通过 -e 选项传递给容器,这样在容器内运行的应用程序就可以识别并应用这些缩放设置。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2780498.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

ClickHouse--03--数据类型

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 数据类型1. Int2.FloattoFloat32(...) 用来将字符串转换成 Float32 类型的函数toFloat64(...) 用来将字符串转换成 Float64 类型的函数 3.DecimaltoDecimal32(value…

学习Android的第十天

目录 Android CheckBox 复选框 获得选中的 CheckBox 的值 自定义点击效果 改变文字与选择框的相对位置 修改文字与选择框的距离 Android ToggleButton 开关按钮 改变 ToggleButton 的状态和文本 Android Switch 开关 改变 Switch 的状态和文本 Android CheckBox 复选框…

Python 3 中使用 pandas 和 Jupyter Notebook 进行数据分析和可视化

简介 Python 的 pandas 包用于数据操作和分析,旨在让您以直观的方式处理带标签或关联数据。 pandas 包提供了电子表格功能,但由于您正在使用 Python,因此它比传统的图形电子表格程序要快得多且更高效。 在本教程中,我们将介绍如…

深入解析大型数据中心云平台的网络技术与实践

最简单的总结 SDN主流选择了OverLay。虚拟集群的规模(非物理机所能比拟) 使得Vxlan的组播传播( 虚拟机构成的集群包含的 MAC 地址数量往往多一两个数量级 MAC地址表 )对网络设备性能要求巨大(你不可能每个交换机都买核心交换机一样的配置吧)…

ZigBee学习——在官方例程实现组网

✨Z-Stack版本:3.0.2 ✨IAR版本:10.10.1 ✨这篇博客是在善学坊BDB组网实验的基础上进行完善,并指出实现的过程中会出现的各种各样的问题! 善学坊教程地址: ZigBee3.0 BDB组网实验 文章目录 一、基础工程选择二、可能遇…

力扣刷题之旅:高阶篇(一)—— 并查集的应用

力扣(LeetCode)是一个在线编程平台,主要用于帮助程序员提升算法和数据结构方面的能力。以下是一些力扣上的入门题目,以及它们的解题代码。 --点击进入刷题地址 引言 在算法的世界中,并查集是一种非常高效且实用的数…

PySQLRecon:一款功能强大的MSSQL安全测试工具

关于PySQLRecon PySQLRecon是一款功能强大的MSSQL安全测试工具,该工具基于SQLRecon实现其功能,可以帮助广大红队研究人员针对MSSQL执行攻击性安全测试。 环境配置 由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Pyt…

微软和苏黎世联邦理工学院开源SliceGPT创新压缩技术节省大量部署资源;OpenAI成立儿童安全团队,防AI误用

🦉 AI新闻 🚀 微软和苏黎世联邦理工学院开源SliceGPT创新压缩技术节省大量部署资源 摘要:微软和苏黎世联邦理工学院研究人员开源了SliceGPT,通过对大模型的权重矩阵进行压缩切片,实现了模型紧缩,节省了部…

Netty应用(六) 之 异步 Channel

目录 12.Netty异步的相关概念 12.1 异步编程的概念 12.2 方式1:主线程阻塞,等待异步线程完成调用,然后主线程发起请求IO 12.3 方式2:主线程注册异步线程,异步线程去回调发起请求IO 12.4 细节注释 12.5 异步的好处…

《UE5_C++多人TPS完整教程》学习笔记10 ——《P11 设置加入游戏会话(Setup for Joining Sessions)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P11 设置加入游戏会话(Setup for Joining Sessions)》 的学习笔记,该系列教学视频为 Udemy 课程 《Unreal Engine 5 C Multiplayer Shooter》 的中文字幕翻译版,UP主&…

阿里云服务器带宽计费模式是什么?怎么选择?

阿里云服务器带宽计费模式分为“按固定带宽”和“按使用流量”,有什么区别?按固定带宽是指直接购买多少M带宽,比如1M、5M、10M、100M等,阿里云直接分配用户所购买的带宽值,根据带宽大小先付费再使用;按使用…

leetcode(矩阵)74. 搜索二维矩阵(C++详细解释)DAY7

文章目录 1.题目示例提示 2.解答思路3.实现代码结果 4.总结 1.题目 给你一个满足下述两条属性的 m x n 整数矩阵: 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target ,如果 target 在矩阵中…

数学实验第三版(主编:李继成 赵小艳)课后练习答案(八)(4)

实验八:近似计算 练习四 1.自己设置一种计算欧拉常数近似值的方法,看你对欧拉常数的计算能精确到小数点后多少位? 从示例7的图8.5我们已经得知,只要求出每个小矩形中在函数y1/x以上的部分的面积之和,我们就可以得知…

【后端高频面试题--SpringBoot篇】

🚀 作者 :“码上有前” 🚀 文章简介 :后端高频面试题 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 这里写目录标题 1.什么是SpringBoot?它的主要特点是什么?2.列举一些Spri…

【java】11:IDEA常用快捷键+包

1. IDEA 常用快捷键 删除当前行, 默认是 ctrl Y 自己配置 ctrl d复制当前行, 自己配置 ctrl alt 向下光标补全代码 alt /添加注释和取消注释 ctrl / 【第一次是添加注释,第二次是取消注释】导入该行需要的类 先配置 auto import , 然后使用 altenter 即可快速…

【leetcode热题100】子集 II

给你一个整数数组 nums ,其中可能包含重复元素,请你返回该数组所有可能的子集(幂集)。 解集 不能 包含重复的子集。返回的解集中,子集可以按 任意顺序 排列。 示例 1: 输入:nums [1,2,2] 输出…

极狐GitLab 使用阿里云作为 OmniAuth 身份验证 provider

使用阿里云作为 OmniAuth 身份验证 provider 您可以启用阿里云 OAuth 2.0 OmniAuth provider并使用您的阿里云账户登录极狐GitLab。 创建阿里云应用 登录阿里云平台,在上面创建一个应用。阿里云会生成一个 client ID and secret key 供您使用。 登录到阿里云平台…

模型 AARRR(获取、激活、留存、收益、推荐)

系列文章 主要是 分享 思维模型,涉及各个领域,重在提升认知。用户增长五环。 1 模型 AARRR(获取、激活、留存、收益、推荐)的应用 1.1 抖音的AARRR模型应用 抖音是一款非常成功的应用程序,它在用户获取、用户激活、用户留存、收入获取和用户…

C++新特性“CPU优化对齐”

哈喽 各位读者伙伴大家好 本篇文章讲一下C新特性 alignas&alignof 在这之前 我们大家应该先了解一下数据对齐的问题 什么是数据对齐问题呢? 以下是两个结构体在内存中的分布图: 为什么要数据对齐呢? 首先是CPU 电脑中的CPU(单核或者多核…

mac docker 宿主机和容器间网络打通

动因 是这样,笔者最近满怀欣喜入手Docker,看着各种文章命令都是不断点头称道:“嗯嗯,不错不错”,在接下来终于准备大干一场的时候碰壁了,主要情况是说在Mac中跑了第一把的时候发现碰到,虚拟机和宿主机居然…