Browse Source

statusbar changed to polybar

master
bvn13 2 years ago
parent
commit
2d943b5a7d
  1. 3
      .gitmodules
  2. 41
      config
  3. 2
      dunstrc
  4. 1
      i3-auto-layout
  5. BIN
      i3-auto-layout-run
  6. 107
      polybar.conf
  7. 462
      polybar.conf.example
  8. 14
      polybar.sh
  9. 12
      testfont.pl

3
.gitmodules vendored

@ -0,0 +1,3 @@ @@ -0,0 +1,3 @@
[submodule "i3-auto-layout"]
path = i3-auto-layout
url = https://github.com/chmln/i3-auto-layout.git

41
config

@ -220,25 +220,25 @@ bindsym $mod+l exec --no-startup-id ~/.config/i3/i3lock-fancy-dualmonitor @@ -220,25 +220,25 @@ bindsym $mod+l exec --no-startup-id ~/.config/i3/i3lock-fancy-dualmonitor
# Start i3bar to display a workspace bar (plus the system information i3status
# finds out, if available)
bar {
# status_command i3status
# status_command i3status --config ~/.config/i3/i3status.conf
# font pango:FontAwesome, DejaVu Sans Mono 9
font pango: Iosevka 9
position top
status_command i3status-rs ~/.config/i3/i3status-rust.toml
colors {
separator #666666
background #222222
statusline #dddddd
focused_workspace #0088CC #0088CC #ffffff
active_workspace #333333 #333333 #ffffff
inactive_workspace #333333 #333333 #888888
urgent_workspace #2f343a #900000 #ffffff
}
}
#bar {
## status_command i3status
## status_command i3status --config ~/.config/i3/i3status.conf
## font pango:FontAwesome, DejaVu Sans Mono 9
# font pango: Iosevka 9
# position top
# status_command i3status-rs ~/.config/i3/i3status-rust.toml
# colors {
# separator #666666
# background #222222
# statusline #dddddd
# focused_workspace #0088CC #0088CC #ffffff
# active_workspace #333333 #333333 #ffffff
# inactive_workspace #333333 #333333 #888888
# urgent_workspace #2f343a #900000 #ffffff
# }
#}
exec_always --no-startup-id 'bash ~/.config/i3/polybar.sh'
## my
exec --no-startup-id 'xset -b'
@ -250,9 +250,10 @@ exec --no-startup-id "setxkbmap -layout us,ru -option grp:caps_toggle" @@ -250,9 +250,10 @@ exec --no-startup-id "setxkbmap -layout us,ru -option grp:caps_toggle"
exec "compton -b -G -C -f -D30 -I0.45 -O0.45 --paint-on-overlay --unredir-if-possible --backend glx --glx-no-stencil --glx-no-rebind-pixmap --no-fading-openclose --inactive-dim-fixed --config /dev/null --vsync opengl"
exec --no-startup-id "hsetroot -solid '#000000'"
exec --no-startup-id "dunst"
exec_always --no-startup-id "dunst"
exec nm-applet
exec_always --no-startup-id ~/.config/i3/i3-auto-layout-run
# windows managing

2
dunstrc

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
[global]
monitor = 0
follow = mouse
#follow = mouse
geometry = "300x60-20+48"
indicate_hidden = yes
shrink = no

1
i3-auto-layout

@ -0,0 +1 @@ @@ -0,0 +1 @@
Subproject commit c78219641cf83530b7cdfedd9b23e46888e6ba62

BIN
i3-auto-layout-run

Binary file not shown.

107
polybar.conf

@ -5,6 +5,8 @@ @@ -5,6 +5,8 @@
;
; The README contains alot of information
;
; https://github.com/polybar/polybar/wiki/
;
;=====================================================
[settings]
@ -23,7 +25,7 @@ alert = #bd2c40 @@ -23,7 +25,7 @@ alert = #bd2c40
margin-top = 5
margin-bottom = 5
[bar/example]
[bar/mybar]
bottom = false
separator = ""
@ -37,8 +39,8 @@ offset-y = 0 @@ -37,8 +39,8 @@ offset-y = 0
background = ${colors.background}
foreground = ${colors.foreground}
overline-size = 2
overline-color = #f00
line-size = 2
line-color = #f00
underline-size = 2
underline-color = #00f
@ -50,21 +52,23 @@ padding-right = 2 @@ -50,21 +52,23 @@ padding-right = 2
module-margin-left = 1
module-margin-right = 2
font-0 = FontAwesome:style=Regular
font-1 = Iosevka:style=Regular
font-2 = Roboto:style=Regular
font-3 = Cantarell:style=Regular
;font-0 = System San Francisco Display:pixelsize=12
;font-1 = unifont:fontformat=truetype:size=6:heavy;-2
;font-2 = siji:pixelsize=10
;font-3 = FontAwesome:pixelsize=12;0
;font-4 = fixed:pixelsize=10
;font-5 = TakaoPGothic:pixelsize=12
modules-left = i3 xwindow
font-0 = "JetBrainsMono Nerd Font:size=11;2"
font-1 = "JetBrainsMono Nerd Font:size=11;3"
font-2 = "JetBrainsMono Nerd Font:size=11;3"
font-3 = siji:pixelsize=12;3
font-4 = Font Awesome 5 Free:pixelsize=9;2
font-5 = Font Awesome 5 Free Solid:pixelsize=9;2
font-6 = Font Awesome 5 Brands:pixelsize=11;2
font-7 = unifont:pixelsize=12;3
font-8 = FontAwesome:style=Regular
font-9 = PT Sans:style=Regular
font-10 = OpenSymbol:style=Regular
font-11 = Abyssinica SIL:style=Regular
font-12 = Symbola:style=Regular
modules-left = suspend-control i3 xwindow
modules-center =
modules-right = xbacklight-acpi volume xkeyboard memory cpu wlan battery temperature date powermenu
modules-right = zoom-audio xbacklight-acpi volume xkeyboard memory cpu wlan battery temperature date powermenu
tray-position = right
tray-padding = 2
@ -72,9 +76,9 @@ tray-padding = 2 @@ -72,9 +76,9 @@ tray-padding = 2
;tray-background = #0063ff
;wm-restack = bspwm
;wm-restack = i3
wm-restack = i3
override-redirect = true
;override-redirect = true
;scroll-up = bspwm-desknext
;scroll-down = bspwm-deskprev
@ -103,7 +107,7 @@ interval = 25 @@ -103,7 +107,7 @@ interval = 25
mount-0 = /
mount-1 = /home
mount-2 = /invalid/mountpoint
;mount-2 = /invalid/mountpoint
label-mounted = %mountpoint%: %percentage_free%%
@ -159,11 +163,11 @@ label-visible-background = ${self.label-focused-background} @@ -159,11 +163,11 @@ label-visible-background = ${self.label-focused-background}
label-visible-underline = ${self.label-focused-underline}
label-visible-padding = ${self.label-focused-padding}
; ws-icon-0 = "1;a"
; ws-icon-1 = "2;a"
; ws-icon-2 = "3;a"
; ws-icon-3 = "4;"
; ws-icon-default = k
ws-icon-0 = "1;WWW"
ws-icon-1 = "2;Slack"
ws-icon-2 = "3;Tg"
ws-icon-3 = "4;"
ws-icon-default = k
[module/mpd]
type = internal/mpd
@ -204,15 +208,27 @@ bar-empty = ─ @@ -204,15 +208,27 @@ bar-empty = ─
bar-empty-font = 2
bar-empty-foreground = ${colors.foreground-alt}
[module/backlight-acpi]
[module/backlight-acpi-inherit]
inherit = module/xbacklight
type = internal/backlight
card = intel_backlight
[module/backlight-acpi]
type = internal/xbacklight
;output = HDMI-1
enable-scroll = true
format = ramp
ramp-0 = 🌕
ramp-1 = 🌔
ramp-2 = 🌓
ramp-3 = 🌒
ramp-4 = 🌑
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = " "
format-prefix = "CPU "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #f90000
label = %percentage%%
@ -220,7 +236,7 @@ label = %percentage%% @@ -220,7 +236,7 @@ label = %percentage%%
[module/memory]
type = internal/memory
interval = 2
format-prefix = " "
format-prefix = "MEM "
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #4bffdc
label = %percentage_used%%
@ -251,7 +267,7 @@ interface = eth0 @@ -251,7 +267,7 @@ interface = eth0
interval = 3.0
format-connected-underline = #55aa55
format-connected-prefix = " "
format-connected-prefix = "📶 "
format-connected-foreground-foreground = ${colors.foreground-alt}
label-connected = %local_ip%
@ -269,7 +285,7 @@ date-alt = " %Y-%m-%d" @@ -269,7 +285,7 @@ date-alt = " %Y-%m-%d"
time = %H:%M
time-alt = %H:%M:%S
format-prefix =
;format-prefix =
format-prefix-foreground = ${colors.foreground-alt}
format-underline = #0a6cf5
@ -306,9 +322,9 @@ bar-volume-empty-foreground = ${colors.foreground-alt} @@ -306,9 +322,9 @@ bar-volume-empty-foreground = ${colors.foreground-alt}
[module/battery]
type = internal/battery
battery = BAT0
battery = BAT1
adapter = ADP1
full-at = 98
full-at = 99
format-charging = <animation-charging> <label-charging>
format-charging-underline = #ffb52a
@ -341,8 +357,8 @@ format-underline = #f50a4d @@ -341,8 +357,8 @@ format-underline = #f50a4d
format-warn = <ramp> <label-warn>
format-warn-underline = ${self.format-underline}
label = %temperature%
label-warn = %temperature%
label = %temperature-c%
label-warn = %temperature-c%
label-warn-foreground = ${colors.secondary}
ramp-0 =
@ -355,9 +371,9 @@ type = custom/menu @@ -355,9 +371,9 @@ type = custom/menu
format-spacing = 1
label-open = power
label-open = power
label-open-foreground = ${colors.secondary}
label-close = cancel
label-close = cancel
label-close-foreground = ${colors.secondary}
label-separator = |
label-separator-foreground = ${colors.foreground-alt}
@ -378,3 +394,22 @@ menu-2-1 = cancel @@ -378,3 +394,22 @@ menu-2-1 = cancel
menu-2-1-exec = menu-open-0
; vim:ft=dosini
[module/zoom-audio]
type = custom/script
;exec = pactl list short | grep -e 'bluez_sink.2C_4D_79_47_42_9F.headset_head_unit[^.]' | awk '{print $NF}' || 'NORMAL'
label = 🎧 %output%
interval = 0.5
exec = pactl list short | grep -q 'bluez_sink.2C_4D_79_47_42_9F.headset_head_unit[^.]' && echo $(pactl list short | grep -e 'bluez_sink.2C_4D_79_47_42_9F.headset_head_unit[^.]' | awk '{print "ZOOM:"$NF}') || echo 'MUSIC'
;click-left = pactl set-card-profile bluez_card.2C_4D_79_47_42_9F headset_head_unit
;click-right = pactl set-card-profile bluez_card.2C_4D_79_47_42_9F a2dp_sink
click-left = pactl list short | grep -q 'bluez_sink.2C_4D_79_47_42_9F.headset_head_unit[^.]' && pactl set-card-profile bluez_card.2C_4D_79_47_42_9F a2dp_sink || pactl set-card-profile bluez_card.2C_4D_79_47_42_9F headset_head_unit
click-right = $HOME/.config/i3/rofi-btooth
[module/suspend-control]
type = custom/script
interval = 0.5
exec = xset q | grep -q 'DPMS is Disabled' && echo '🔲' || echo '🔳'
click-left = xset q | grep 'DPMS is Disabled' && xset s on +dpms || xset s off -dpms

462
polybar.conf.example

@ -0,0 +1,462 @@ @@ -0,0 +1,462 @@
;==========================================================
;
;
; ██████╗ ██████╗ ██╗ ██╗ ██╗██████╗ █████╗ ██████╗
; ██╔══██╗██╔═══██╗██║ ╚██╗ ██╔╝██╔══██╗██╔══██╗██╔══██╗
; ██████╔╝██║ ██║██║ ╚████╔╝ ██████╔╝███████║██████╔╝
; ██╔═══╝ ██║ ██║██║ ╚██╔╝ ██╔══██╗██╔══██║██╔══██╗
; ██║ ╚██████╔╝███████╗██║ ██████╔╝██║ ██║██║ ██║
; ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝
;
;
; To learn more about how to configure Polybar
; go to https://github.com/polybar/polybar
;
; The README contains a lot of information
;
;==========================================================
[colors]
;background = ${xrdb:color0:#222}
;;background = #2e3440
background = #2e3440
background-alt = #00000000
;foreground = ${xrdb:color7:#222}
foreground = #eceff4
foreground-alt = #eceff4
primary = #5E81AC
secondary = #e60053
alert = #bd2c40
[bar/mybar]
;monitor = ${env:MONITOR:HDMI-1}
width = 100%
height = 30
;offset-x = 1%
;offset-y = 1%
radius = 0.0
fixed-center = true
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 4
line-color = #f00
border-size = 4
border-color = #00000000
padding-left = 0
padding-right = 0
module-margin-left = 0
module-margin-right = 0
font-0 = "JetBrainsMono Nerd Font:size=11;2"
font-1 = "JetBrainsMono Nerd Font:size=11;3"
font-2 = "JetBrainsMono Nerd Font:size=11;3"
font-3 = siji:pixelsize=12;3
font-4 = Font Awesome 5 Free:pixelsize=9;2
font-5 = Font Awesome 5 Free Solid:pixelsize=9;2
font-6 = Font Awesome 5 Brands:pixelsize=11;2
font-7 = unifont:pixelsize=12;3
font-8 = FontAwesome:style=Regular
font-9 = PT Sans:style=Regular
font-10 = OpenSymbol:style=Regular
font-11 = Abyssinica SIL:style=Regular
modules-left = i3 xwindow
modules-center =
modules-right = xkeyboard pulseaudio memory cpu wlan temperature date powermenu
separator = " / "
tray-position = right
tray-padding = 2
;tray-background = #0063ff
;wm-restack = bspwm
wm-restack = i3
;override-redirect = true
;scroll-up = bspwm-desknext
;scroll-down = bspwm-deskprev
scroll-up = i3wm-wsnext
scroll-down = i3wm-wsprev
cursor-click = pointer
cursor-scroll = ns-resize
[module/xwindow]
type = internal/xwindow
label = %title%
format-padding = 4
[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock
#format-prefix = ""
format-prefix-foreground = ${colors.foreground-alt}
format-prefix-underline = ${colors.secondary}
label-layout = %layout%
label-layout-underline = ${colors.secondary}
label-indicator-padding = 2
label-indicator-margin = 1
label-indicator-background = ${colors.secondary}
label-indicator-underline = ${colors.secondary}
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %{F#0a81f5}%mountpoint%%{F-}: %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.foreground-alt}
[module/bspwm]
type = internal/bspwm
label-focused = %index%
label-focused-background = ${colors.background-alt}
label-focused-underline= ${colors.primary}
label-focused-padding = 2
label-occupied = %index%
label-occupied-padding = 2
label-urgent = %index%!
label-urgent-background = ${colors.alert}
label-urgent-padding = 2
label-empty = %index%
label-empty-foreground = ${colors.foreground-alt}
label-empty-padding = 2
; Separator in between workspaces
; label-separator = |
[module/i3]
type = internal/i3
format = <label-state>
;<label-mode>
index-sort = true
wrapping-scroll = false
; Only show workspaces on the same output as the bar
;pin-workspaces = true
ws-icon-0 = 1
ws-icon-1 = 2
ws-icon-2 = 3
ws-icon-3 = 4
ws-icon-4 = 5
ws-icon-5 = 6
ws-icon-6 = 7
ws-icon-7 = 8
ws-icon-8 = 9
ws-icon-9 = 0
label-mode-padding = 2
label-mode-foreground = #000
label-mode-background = ${colors.primary}
; focused = Active workspace on focused monitor
label-focused = %icon%
label-focused-background = #0000
;label-focused-underline= ${colors.primary}
label-focused-padding = 2
label-focused-foreground = #85a7e6
; unfocused = Inactive workspace on any monitor
label-unfocused = %icon%
label-unfocused-padding = 2
; visible = Active workspace on unfocused monitor
label-visible = %icon%
label-visible-background = ${self.label-focused-background}
;label-visible-underline = ${self.label-focused-underline}
label-visible-padding = ${self.label-focused-padding}
; urgent = Workspace with urgency hint set
label-urgent = %icon%
label-urgent-background = #85a7e6
label-urgent-padding = 2
; Separator in between workspaces
; label-separator = |
[module/mpd]
type = internal/mpd
format-online = <label-song> <icon-prev> <icon-stop> <toggle> <icon-next>
icon-prev =
icon-stop =
icon-play =
icon-pause =
icon-next =
label-song-maxlen = 25
label-song-ellipsis = true
[module/xbacklight]
type = internal/xbacklight
format = <label> <bar>
label = BL
bar-width = 10
bar-indicator = |
bar-indicator-foreground = #fff
bar-indicator-font = 2
bar-fill = ─
bar-fill-font = 2
bar-fill-foreground = #9f78e1
bar-empty = ─
bar-empty-font = 2
bar-empty-foreground = ${colors.foreground-alt}
[module/backlight-acpi]
inherit = module/xbacklight
type = internal/backlight
card = intel_backlight
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
;format-underline = #f90000
label = %percentage:2%%
[module/memory]
type = internal/memory
interval = 2
format-prefix = " "
format-prefix-foreground = ${colors.foreground-alt}
;format-underline = #4bffdc
label = RAM %gb_used%/%gb_free%
[module/wlan]
type = internal/network
interface = wlp2s0
interval = 3.0
format-connected = <ramp-signal> <label-connected>
format-connected-underline = #9f78e1
label-connected = %essid%
format-disconnected =
;format-disconnected = <label-disconnected>
;format-disconnected-underline = ${self.format-connected-underline}
;label-disconnected = %ifname% disconnected
;label-disconnected-foreground = ${colors.foreground-alt}
ramp-signal-0 =
ramp-signal-1 =
ramp-signal-2 =
ramp-signal-3 =
ramp-signal-4 =
ramp-signal-foreground = ${colors.foreground-alt}
[module/eth]
type = internal/network
interface = wlp2s0
interval = 3.0
;format-connected-underline = #55aa55
format-connected-prefix = " "
format-connected-prefix-foreground = ${colors.foreground-alt}
label-connected = %downspeed% %{T-}%upspeed%
#format-disconnected =
#format-disconnected = <label-disconnected>
#format-disconnected-underline = ${self.format-connected-underline}
#label-disconnected = %ifname% disconnected
#label-disconnected-foreground = ${colors.foreground-alt}
[module/date]
type = internal/date
interval = 5
date = "%{T2}%{T-} %b - %d - %Y "
date-alt = " %Y-%m-%d"
label = %date% | %time%
time = "%{T2}%{T-} %I:%M %p"
time-alt = "%{T2}%{T-} %I:%M:%S %p"
format-prefix-foreground = ${colors.foreground-alt}
[module/pulseaudio]
type = internal/pulseaudio
format-volume = <label-volume> <bar-volume>
label-volume = VOL %percentage%%
label-volume-foreground = ${root.foreground}
label-muted = "🔇 muted"
label-muted-foreground = #666
bar-volume-width = 10
bar-volume-foreground-0 = #55aa55
bar-volume-foreground-1 = #55aa55
bar-volume-foreground-2 = #55aa55
bar-volume-foreground-3 = #55aa55
bar-volume-foreground-4 = #55aa55
bar-volume-foreground-5 = #f5a70a
bar-volume-foreground-6 = #ff5555
bar-volume-gradient = false
bar-volume-indicator = |
bar-volume-indicator-font = 2
bar-volume-fill = ─
bar-volume-fill-font = 2
bar-volume-empty = ─
bar-volume-empty-font = 2
bar-volume-empty-foreground = ${colors.foreground-alt}
[module/alsa]
type = internal/alsa
format-volume = <label-volume> <bar-volume>
label-volume = VOL
label-volume-foreground = ${root.foreground}
format-muted-prefix = " "
format-muted-foreground = ${colors.foreground-alt}
label-muted = sound muted
bar-volume-width = 10
bar-volume-foreground-0 = #55aa55
bar-volume-foreground-1 = #55aa55
bar-volume-foreground-2 = #55aa55
bar-volume-foreground-3 = #55aa55
bar-volume-foreground-4 = #55aa55
bar-volume-foreground-5 = #f5a70a
bar-volume-foreground-6 = #ff5555
bar-volume-gradient = false
bar-volume-indicator = |
bar-volume-indicator-font = 2
bar-volume-fill = ─
bar-volume-fill-font = 2
bar-volume-empty = ─
bar-volume-empty-font = 2
bar-volume-empty-foreground = ${colors.foreground-alt}
[module/battery]
type = internal/battery
battery = BAT0
adapter = AC
full-at = 98
format-charging = <animation-charging> <label-charging>
format-charging-underline = #ffb52a
format-discharging = <animation-discharging> <label-discharging>
format-discharging-underline = ${self.format-charging-underline}
format-full-prefix = " "
format-full-prefix-foreground = ${colors.foreground-alt}
format-full-underline = ${self.format-charging-underline}
ramp-capacity-0 =
ramp-capacity-1 =
ramp-capacity-2 =
ramp-capacity-foreground = ${colors.foreground-alt}
animation-charging-0 =
animation-charging-1 =
animation-charging-2 =
animation-charging-foreground = ${colors.foreground-alt}
animation-charging-framerate = 750
animation-discharging-0 =
animation-discharging-1 =
animation-discharging-2 =
animation-discharging-foreground = ${colors.foreground-alt}
animation-discharging-framerate = 750
[module/temperature]
type = internal/temperature
thermal-zone = 0
warn-temperature = 60
format = <ramp> <label>
;format-underline = #f50a4d
format-warn = <ramp> <label-warn>
;format-warn-underline = ${self.format-underline}
label = %temperature-c%
label-warn = %temperature-c%
label-warn-foreground = ${colors.secondary}
ramp-0 =
ramp-1 =
ramp-2 =
ramp-foreground = ${colors.foreground-alt}
[module/powermenu]
type = custom/menu
expand-right = false
format-spacing = 1
label-open =
label-open-foreground = ${colors.secondary}
label-close = cancel
label-close-foreground = ${colors.secondary}
label-separator = |
label-separator-foreground = ${colors.foreground-alt}
menu-0-0 = reboot
menu-0-0-exec = menu-open-1
menu-0-1 = shutdown
menu-0-1-exec = menu-open-2
menu-0-2 = suspend
menu-0-2-exec = menu-open-3
menu-1-0 = reboot
menu-1-0-exec = systemctl reboot
menu-2-0 = shutdown
menu-2-0-exec = systemctl poweroff
menu-3-0 = suspend
menu-3-0-exec = systemctl suspend
[module/pacman-updates]
type = custom/script
exec = checkupdates | wc -l
label = %output% updates
format-prefix = " "
click-left = alacritty -e sudo pacman -Syu --noconfirm
;format-prefix-foreground = #ff0000
[settings]
screenchange-reload = true
;compositing-background = xor
;compositing-background = screen
;compositing-foreground = source
;compositing-border = over
;pseudo-transparency = false
[global/wm]
margin-top = 0
margin-bottom = 0
; vim:ft=dosini

14
polybar.sh

@ -0,0 +1,14 @@ @@ -0,0 +1,14 @@
#!/usr/bin/env bash
# Terminate already running bar instances
killall -q polybar
# If all your bars have ipc enabled, you can also use
# polybar-msg cmd quit
# Launch bar1 and bar2
echo "---" | tee -a /tmp/polybar1.log /tmp/polybar2.log
polybar --config=$HOME/.config/i3/polybar.conf mybar >>/tmp/polybar1.log 2>&1
echo "Bars launched..."

12
testfont.pl

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
use strict;
use warnings;
use Font::FreeType;
my ($char) = @ARGV;
foreach my $font_def (`fc-list`) {
my ($file, $name) = split(/: /, $font_def);
my $face = Font::FreeType->new->face($file);
my $glyph = $face->glyph_from_char($char);
if ($glyph) {
print $font_def;
}
}
Loading…
Cancel
Save