/etc/bluetooth/input.conf
[General]
# Enable HID protocol handling in userspace input profile
# Defaults to false (HIDP handled in HIDP kernel module)
UserspaceHID=true
Keyboard seems to have quite a long autonomy but like every device running with a battery: it's always better to know the charge level. After a quick search, I found out that using dbus
I should be able to request the percentage of remaining battery.
Browsing a bit, we can see that org.bluez
has a dedicated interface: org.bluez.Battery1
with a Percentage
property, it should make the job.
After some introspection on this interface using the object /org/bluez/hci0/dev_DC_2C...
where 'DC_2C...' is the mac address of the device, I was not able to find this Percentage
property.
dbus-send \
--print-reply=literal --system \
--dest=org.freedesktop.UPower \
/org/freedesktop/UPower/devices/keyboard_hid_dc2c..._battery \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.UPower.Device string:"Percentage" | awk '{print $3}')
Finally, a custom widget has been added to my Waybar in order to display the charge with a nice icon:
Useful links:Some experiments with 'dbus' in order to be able to fetch the current charging level of my k6 keyboard (bluetooth mode) :)
— Mathieu Tortuyaux (@tormath1) March 3, 2021
percentage is displayed on the left of the bar. I'll certainly write a couple of lines about it ! pic.twitter.com/kSCqQ5zpPQ
input "type:keyboard" {
xkb_layout us
xkb_variant intl
}
For the cedilla, it was more tricky, it's not a dead key: it's natively present on the keyboard, on the '.' key. It requires the usage of the "Alt right" key, for this K6 must be in "Windows" mode. Happy typing !
Ça fonctionne très bien !
$ equery f libpod | grep service
/usr/lib/systemd/system/podman-auto-update.service
/usr/lib/systemd/system/podman.service
/usr/lib/systemd/user/podman-auto-update.service
/usr/lib/systemd/user/podman.service
/usr/share/man/man1/podman-system-service.1.bz2
$ sudo systemctl start podman.service
It will create a unix Socket listening on %t/podman/podman.sock
.
Let's create a dummy docker-compose spec:
version: '3.7'
services:
app:
image: docker.io/alpine
command: ["sleep", "60s"]
I'm going to naively run everything:
$ sudo DOCKER_HOST="unix:///run/podman/podman.sock" docker-compose up
Creating network "tmp_default" with the default driver
Creating tmp_app_1 ... error
ERROR: for tmp_app_1 cannot disconnect container 489f636118ca696ec03a6188fe8e027b56c1d1f1c9b04180a913a6ad603ff5b5 from networks as it is not running: container state improper
ERROR: for app cannot disconnect container 489f636118ca696ec03a6188fe8e027b56c1d1f1c9b04180a913a6ad603ff5b5 from networks as it is not running: container state improper
ERROR: Encountered errors while bringing up the project.
Oops, it seems the limitation of the current support of Docker-Compose on Podman 2.2.1 is reached. Let's try to manually start the container:
$ sudo DOCKER_HOST="unix:///run/podman/podman.sock" docker-compose up --no-start
Creating network "tmp_default" with the default driver
Creating tmp_app_1 ... done
$ sudo podman ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ed221fc06d6f docker.io/library/alpine:latest sleep 60s 46 seconds ago Created tmp_app_1
$ sudo podman start tmp_app_1
tmp_app_1
$ sudo podman exec -ti ed221fc06d6f ping google.com
PING google.com (216.58.213.78): 56 data bytes
64 bytes from 216.58.213.78: seq=0 ttl=113 time=2.952 ms
64 bytes from 216.58.213.78: seq=1 ttl=113 time=22.398 ms
64 bytes from 216.58.213.78: seq=2 ttl=113 time=7.604 ms
64 bytes from 216.58.213.78: seq=3 ttl=113 time=3.135 ms
...
It works fine with the needs I have. It's enough to wait for the official release of Podman 3.0.0 on Gentoo !
user-session
supports in order to have a session scoped dbus daemon
screencast
support to be able to use pipewire
xdg-desktop-portal
with screencast
support
xdg-desktop-portal-wlr
for the wlroots XDG backend implementation
libressl
instead of openssl (https://www.libressl.org/goals.html). NodeJS does not support yet libressl, so you must compile NodeJS with the bundled SSL
wayland? (
dev-libs/wayland:=
dev-libs/libffi:=
screencast? ( media-video/pipewire:0/0.3 )
x11-libs/gtk+:3[wayland,X]
x11-libs/libdrm:=
x11-libs/libxkbcommon:=
)
As we can see, screencast requires pipewire-0.3. YES, it's a good thing, I was afraid to have only supports for pipewire-0.2. Which would be blocking for the Firefox installation...
After a few hours of compilation, Chromium is installed. The last thing to do is to add --enable-webrtc-pipewire-capturer
into /etc/chromium/default
.
$ terraform state --help
Usage: terraform state [options] [args]
This command has subcommands for advanced state management.
These subcommands can be used to slice and dice the Terraform state.
This is sometimes necessary in advanced cases. For your safety, all
state management commands that modify the state create a timestamped
backup of the state prior to making modifications.
The structure and output of the commands is specifically tailored to work
well with the common Unix utilities such as grep, awk, etc. We recommend
using those tools to perform more advanced state tasks.
Subcommands:
list List resources in the state
mv Move an item in the state
pull Pull current state and output to stdout
push Update remote state from a local state file
replace-provider Replace provider in the state
rm Remove instances from the state
show Show a resource in the state
$ terraform state rm google_storage_bucket.bfBqD
$ terraform state rm google_storage_bucket.SZMzR
Then, I wanted to rename one of my resource:
$ terraform state mv google_storage_bucket.xeFOT google_storage_bucket.static