i3wm:切换到工作区并将容器移动到(相同)工作区映射到不同的工作区

i3wm:切换到工作区并将容器移动到(相同)工作区映射到不同的工作区

大家好,

这个问题难倒了我:

目前的行为

我的 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

2018-06-27-144015_1920x1080_scrot

答案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 可能会得到您想要的结果。

i3 设置示例

编辑根据要求,我附上了我的 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

相关内容