大家好,
这个问题难倒了我:
目前的行为
我的 i3 配置具有以下工作空间:
bindsym $mod+grave workspace h0me
bindsym $mod+1 workspace term1nal
bindsym $mod+2 workspace co2e
bindsym $mod+3 workspace teleg3am
bindsym $mod+4 workspace edi4or
bindsym $mod+Shift+grave move container to workspace h0me
bindsym $mod+Shift+1 move container to workspace term1nal
bindsym $mod+Shift+2 move container to workspace co2e
bindsym $mod+Shift+3 move container to workspace teleg3am
bindsym $mod+Shift+4 move container to workspace edi4or
我的 Polybar 有以下内容:
ws-icon-0 = h0me;a
ws-icon-1 = term1nal;b
ws-icon-2 = co2e;c
ws-icon-3 = teleg3am;d
ws-icon-4 = edi4or;e
其中 a 到 e 是图标。
我希望 Polybar 在切换到新工作区以及将容器移动到那里时显示名称旁边的项目(Polybar 已相应配置)。
但是,当我将容器移动到新工作区时,polybar 仅显示图标和名称。该工作空间不会映射到$mod+1
;我只能通过搜索或循环所有工作区来切换到该工作区。
当我切换到工作区时,我会得到一个同名的新工作区,但没有图标。
此行为仅适用于工作区 1 到 3,所有其他工作区均相应地工作。
环境
输出i3 --moreversion 2>&-
:
i3版本: 我正在 Arch linux 上使用 Polybar 运行 i3-gaps 版本 4.15.0.1。
日志文件网址:https://logs.i3wm.org/logs/5746196614217728.bz2
- Linux 发行版和版本:Arch Linux Kernel 4.17.2-1 - 您是否使用合成器(例如,xcompmgr 或 compton):compton
答案1
您通过 Polybar 而不是 i3 配置文件映射这些图标是否有原因?并不是说这样做有什么问题,我只是能够完全在 i3 中完成您所描述的事情:
bindsym $mod+1 workspace 1:
bindsym $mod+2 workspace 2:
bindsym $mod+3 workspace 3:
bindsym $mod+4 workspace 4:
bindsym $mod+Shift+1 move container to workspace 1:
bindsym $mod+Shift+2 move container to workspace 2:
bindsym $mod+Shift+3 move container to workspace 3:
bindsym $mod+Shift+4 move container to workspace 4:
这些框是很棒的图标,我直接将其复制/粘贴到配置文件中。我决定只用一个图标来描述工作区,因为我倾向于仅在某些工作区上执行某些任务(例如,工作区 2 是网页浏览,工作区 3 是终端/代码编辑),但您也可以轻松地执行您的操作“我的图标“ 设置。
也许将其转移到 i3 配置文件而不是通过 Polybar 可能会得到您想要的结果。
编辑根据要求,我附上了我的 Polybar 配置文件:
;=====================================================
;
; To learn more about how to configure Polybar
; go to https://github.com/jaagr/polybar
;
; The README contains alot of information
;
;=====================================================
[global/wm]
margin-top = 100
margin-bottom = 100
[colors]
fg = ${xrdb:color7}
modfg = ${xrdb:color1}
bg = ${xrdb:color0}
white = #d1d1d1
gray = #585858
black = #ce1d1d1d
red = #c795ae
blue = #95aec7
yellow = #c7ae95
green = #aec795
[bar/example]
width = 100%
height = 41
top = true
;margin-top = 100
border-top-size = 1 # creating top border space
offset-y = -3 # aligning tray icons with rest of bar
monitor = ${env:MONITOR:}
;background = #141021
background = #000f0f0f # This is the hexcode for transparency (also used in powermenu)
foreground = #c4b7c5
fixed-center = false
font-0 = FontAwesome:pixelsize=10;0
font-1 = PragmataPro Nerd Font:pixelsize=10;0
font-2 = "Font Awesome 5 Free:style=Regular:pixelsize=10;1"
font-3 = "Font Awesome 5 Free:style=Solid:pixelsize=10;1"
font-4 = "Font Awesome 5 Brands:pixelsize=10;1"
modules-left = i3
modules-center = date
modules-right = wireless-network cpu memory filesystem filesystem2 temperature pulseaudio backlight battery powermenu
tray-position = right
;tray-maxsize = 41
tray-background = #000f0f0f
tray-foreground= #000f0f0f
scroll-up = i3wm-wsnext
scroll-down = i3wm-wsprev
overline-size = 2
overline-color = ${colors.white}
underline-size = 4
underline-color = ${colors.white}
;override-redirect = true
;wm-restack = i3
[module/i3]
type = internal/i3
pin-workspaces = true
strip-wsnumbers = true
index-sort = true
enable-scroll = false
format = <label-state>
format-padding-right = 2
label-unfocused-foreground = #8a7f8f
label-unfocused-padding = 1
label-focused-foreground = #c16772
label-focused-padding = 1
label-urgent-foreground = #e4b226
label-urgent-padding = 1
[module/filesystem]
type = internal/fs
; Mountpoints to display
mount-0 = /
label-mounted = %free%
format-mounted-padding = 2
; Seconds to sleep between updates
; Default: 30
; interval = 10
; Display fixed precision values
; Default: false
fixed-values = true
; Spacing between entries
; Default: 2
spacing = 6
[module/filesystem2]
type = internal/fs
; Mountpoints to display
mount-0 = /media/<my_name>/Data
label-mounted = %free%
format-mounted-padding = 2
; Seconds to sleep between updates
; Default: 30
; interval = 10
; Display fixed precision values
; Default: false
fixed-values = true
; Spacing between entries
; Default: 2
spacing = 6
[module/cpu]
type = internal/cpu
interval = 1
format = <label>
format-padding = 2
label = %percentage%%
[module/memory]
type = internal/memory
interval = 1
format = <label>
format-padding = 2
label = %gb_used% (%percentage_used%%)
[module/temperature]
type = internal/temperature
interval = 1
thermal-zone = 0
warn-temperature = 74
format = <ramp> <label>
format-padding = 2
format-warn = <ramp> <label-warn>
format-warn-padding = 2
label = %temperature-c%
label-warn = %temperature-c%
label-warn-foreground = #e4b226
ramp-0 =
ramp-1 =
ramp-2 =
ramp-3 =
ramp-4 =
[module/date]
type = internal/date
interval = 1
date = %a %b %d,
time = %H:%M:%S
date-alt = %A, %d %B %Y
time-alt = %H:%M:%S
format = <label>
format-padding = 2
label = %date% %time%
[module/battery]
; Note - if battery isn't showing, try BAT0 or BAT1, etc.
type = internal/battery
full-at = 95
battery = BAT1
adapter = ACAD
poll-interval = 5
format-charging = <animation-charging> <label-charging>
format-charging-padding = 2
format-discharging = <ramp-capacity> <label-discharging>
format-discharging-padding = 2
format-full = <ramp-capacity> <label-full>
format-full-padding = 2
label-charging = %percentage%%
label-discharging = %percentage%%
label-full = %percentage%%
ramp-capacity-0 =
ramp-capacity-1 =
ramp-capacity-2 =
ramp-capacity-3 =
ramp-capacity-4 =
animation-charging-0 =
animation-charging-1 =
animation-charging-2 =
animation-charging-3 =
animation-charging-4 =
animation-charging-framerate = 500
[module/backlight]
type = internal/backlight
card = intel_backlight
format = <label>
format-padding = 2
label = %percentage%%
[module/pulseaudio]
type = internal/pulseaudio
; List sinks via `pactl list sinks` and look at the Name field
sink = alsa_output.pci-0000_00_1b.0.analog-stereo
;interval = 1
format-volume-padding = 2
format-volume = <ramp-volume> <label-volume>
ramp-volume-0 =
ramp-volume-1 =
ramp-volume-2 =
format-muted-padding = 2
label-muted = 0%
[module/powermenu]
type = custom/menu
label-open =
label-close = cancel
label-close-background = #000f0f0f
label-close-foreground = #ffeefc
label-open-padding-left = 4
label-open-padding-right = 3
label-close-padding = 3
menu-0-0 = lock
menu-0-0-exec = ~/scripts/lock.sh
menu-0-0-background = #000f0f0f
menu-0-0-foreground = #c05c47
menu-0-0-padding-right = 3
menu-0-1 = reboot
menu-0-1-exec = menu-open-1
menu-0-1-background = #000f0f0f
menu-0-1-foreground = #c05c47
menu-0-1-padding-right = 3
menu-0-2 = power off
menu-0-2-exec = menu-open-2
menu-0-2-background = #000f0f0f
menu-0-2-foreground = #c05c47
menu-0-2-padding-right = 3
menu-1-0 = reboot?
menu-1-0-exec = reboot
menu-1-0-background = #000f0f0f
menu-1-0-foreground = #e4b226
menu-1-0-padding-right = 3
menu-2-0 = power off?
menu-2-0-exec = poweroff
menu-2-0-background = #000f0f0f
menu-2-0-foreground = #e4b226
menu-2-0-padding-right = 3
[module/wireless-network]
type = internal/network
; Look at ifconfig for interface
interface = wlo1
format-connected = <label-connected>
format-connected-padding = 2
format-disconnected = <label-disconnected>
format-disconnected-padding = 2
label-connected = %essid%
label-disconnected = None