Canadian man living in New Hampshire denied re-entry to U.S after visiting Canada.


This entry was edited (3 minutes ago)

Blender HDR and the reference white issue | About Blender's HDR support on Wayland


From Sebastian Wick’s Mastodon
Blender is getting HDR on Linux via Wayland before Windows! This isn't by accident, but shows how creating a system with a different design creates better results for users and application developers.

Firefox is in this same boat too. It will get HDR support on Linux* sooner than Windows. Firefox currently only supports HDR on MacOS.


Mirror archive.ph/9HWNG

This entry was edited (1 hour ago)

Bernie Sanders says that if AI makes us so productive, we should get a 4-day workweek


Ro Khanna is trying to force Congress to vote on releasing the Epstein files


The speaker of the house and Zionist-first Mike Johnson will probably kill this. It would be nice to see if the democrats would vote this through if they gain the house in 2026. My guess, they would not. Epstein had "friends" on both sides of the aisle.

Source on Xitter (xcancel link)

This entry was edited (1 hour ago)

Dual carbon sequestration with photosynthetic living materials


ETH Zurich researchers have developed a groundbreaking "living material" that actively captures carbon dioxide from the atmosphere through two mechanisms: biomass production and mineral formation[^1][^2].

The material combines cyanobacteria (photosynthetic bacteria) embedded within a printable hydrogel matrix. The cyanobacteria convert CO2 into biomass through photosynthesis while simultaneously triggering the formation of solid carbonate minerals - a process called microbially induced carbonate precipitation (MICP)[^1].

Key achievements of the material include:

  • Sequestered 2.2 mg of CO2 per gram of hydrogel over 30 days
  • Captured 26 mg of CO2 per gram over 400 days in mineral form
  • Maintained viability for over one year
  • Required only sunlight and artificial seawater to function
  • Can be 3D printed into various structures[^1]

The research team demonstrated practical applications by creating:

  • A 3-meter high tree-trunk structure at the Venice Architecture Biennale that can bind 18kg of CO2 annually
  • Building facade coatings that could capture carbon throughout a building's lifecycle
  • Lattice structures that passively transport nutrients through capillary action[^2]

"As a building material, it could help to store CO2 directly in buildings in the future," said Mark Tibbitt, Professor of Macromolecular Engineering at ETH Zurich[^2].

The material represents a low-maintenance, environmentally friendly approach to carbon capture that operates at ambient conditions using atmospheric CO2, contrasting with industrial methods requiring concentrated CO2 sources and controlled conditions[^1].

[^1]: Nature Communications - Dual carbon sequestration with photosynthetic living materials

[^2]: ETH Zurich - A building material that lives and stores carbon

Investigating intentionality in elephant gestural communication


A groundbreaking study published in July 2025 demonstrates that African savannah elephants use intentional gestures to communicate their goals, similar to great apes[^1]. The research team presented semi-captive elephants with desired and undesired items, recording their communication attempts when experimenters met, partially met, or failed to meet their goals[^1].

The study identified 38 different gesture types that elephants used almost exclusively when a visually attentive experimenter was present[^1]. The elephants showed three key criteria for intentional communication:

  1. Audience directedness - signaling only when someone was watching
  2. Persistence - continuing to gesture when goals were partially met
  3. Elaboration - using new signals when communication failed

The research was conducted at the Jafuta Reserve in Zimbabwe, where elephants combined specific vocalizations with gestures in greeting behaviors[^6]. They used different types of signals including:

  • Silent-visual gestures
  • Audible gestures
  • Tactile gestures
  • Rumble vocalizations

The findings reveal that elephants, like apes, assess the communicative effectiveness of their gesturing and adjust their signals based on the audience's visual attention[^6]. This expands understanding of intentional communication beyond the primate lineage[^9].

[^1]: Royal Society Open Science - Investigating intentionality in elephant gestural communication

[^6]: Nature - Multimodal communication and audience directedness in the greeting behaviour of semi-captive African savannah elephants

[^9]: Pangea Trust - Gestures and greetings used by elephants show intentional multimodal communication

Escaping Sway bindings


Author @ExtremeDullard@lemmy.sdf.org

If you're trying to use another Sway session inside your own Sway session (either a nested Sway session or a remote Sway session) or you use an application that uses the same shortcuts as Sway, then you'd like Sway to "get out of the way" and let those shortcuts through.

You can do that by defining a passthrough mode in ~/.config/sway/config:

# Passthrough mode
mode "passthru" {
        bindsym $mod+Escape mode "default"
}
bindsym $mod+Escape mode "passthru"

When you hit Mod+Escape, it enters the "passthru" mode, in which the same binding, Mod+Escape, is the only binding that does anything at all - and that is returning to normal mode. All other normal bindings in that mode will be ignored by Sway and will reach either your nested / remote Sway desktop or your application that expects them.

Here's an example of Sway / application conflict:

In my Sway, Ctrl+Shift+e is set to brings up the emoji picker (rofimoji if you're curious). But Ctrl+Shift+e is also the shortcut to bring up the Developer Tools pane in Firefox. So when I infrequently need the latter, I enable the passthrough mode first.

Of course, when you enter the passthrough mode, passthru appears in your (s)waybar. You'd think it makes it obvious that you're in a special mode, but it's actually really easy to enter the passthrough mode and forget about it. Therefore, if no bindings seem to work properly anymore, remember to look down 😃

Also, if you ever need to enter the passthrough mode in a nested / remote Sway session - like for example if you need the Firefox Developer Tools pane in a remote Sway session, then you'll have to define a different binding to switch passthrough on and off, either in the local session or in the remote session, otherwise they're going to clash.

But it happens very rarely for me, so I didn't bother: all my machines use the same passthrough mode binding in i3 and Sway and I've never run into the problem. But it can happen.



How to Xephyr in Sway: running nested Sway sessions as other users


Author @ExtremeDullard@lemmy.sdf.org
How to Xephyr in Sway: running nested Sway sessions as other users

If you come from i3, you might be missing Xephyr or Xnest-like functionalities in Sway - that is, the ability to run another desktop session as another user inside your current desktop.

In i3, I log into my test desktops all the time without leaving my main desktop, and that's something I really miss in Sway / Wayland. So I spent some time putting a script together to do that seamlessly in Sway too. You may find it useful.

In fairness, Sway - or more precisely wlroots - can already run nested natively without any modification. You can test that by opening a terminal and typing sway in it: you'll get a second, identical desktop inside your current one.

The problems come when you want to run another user's desktop within yours, for the following reasons:

  1. Wayland makes the incredibly restrictive assumption that the Wayland compositor and clients always run as the same user, and therefore puts the Wayland socket in the user's XDG_RUNTIME_DIR (usually /run/user/<userid>/).
    That's a problem if you want a Wayland application running as another user to connect to that Wayland socket, because other users can't access your XDG_RUNTIME_DIR, and you really don't want to open it up to other users just to be able to access the socket because it's full of sensitive files pertaining to your running session.

    Moreover, since XDG_RUNTIME_DIR is usually a mounted tmpfs, you can't symlink the socket outside the directory either because sockets can't be symlinked across filesystems in Linux.

    In other words, again, Wayland makes it extra difficult to do something simple for no good reason.

  2. Sway requires a full login environment - and particularly XDG_RUNTIME_DIR - to be set in the environment, which usually implies that it should also be setup and mounted in /run/user.
    Unfortunately, you can't just sudo into the account you want to run your nested Sway desktop as and start Sway because PAM explicitely doesn't set XDG when su'ing or sudo'ing, and doing it manually is a recipe for problems.

To solve 1., we use a clever piece of software called filterway, which conveniently solves two problems:

  • It acts as a sort of gateway: it connects to a Wayland socket on one side, creates its own socket on the other side and links the two. This functionality is used to expose the primary Wayland socket securely without compromising XDG_RUNTIME_DIR.
  • It replaces the app ID of the top Wayland client that connects to it - which is really its primary party trick. In this use case, that's useful to track the state of the nested Sway session in the primary session's tree.

There is no package for filterway so you have to clone the Github repo, build the binary and install it somewhere in your PATH. Fortunately, it's just a small utility so building it is really simple.

To solve 2., we use systemd-run to setup the target user's environment as if it was a full login, then run Sway with the correct setup to connect to the primary Wayland display's socket.

The following script ties everything together: it starts filterway, starts Sway as the other user, then takes care of stopping Sway and filterway and cleaning things up when the session is closed. Alll you need is to add your name to the sudoers.

\#!/bin/sh

# Make sure we run in Wayland
if [ ! "${WAYLAND_DISPLAY}" ]; then
  echo "$0 must be run in a Wayland environment"
  exit
fi

# Make sure we run in Sway
if [ ! "${SWAYSOCK}" ]; then
  echo "$0 must be run in a Sway session"
  exit
fi

# Pass the nested session's user as first argument
if [ ! "$1" ]; then
  echo "Usage: $0 username"
  exit
fi
NUSER=$1

# Make sure the nested session's user exists
# Replace "password" with "passwd" here, change due to Lemmy posting glitch
if ! grep -q "^${NUSER}:" /etc/password; then
  echo "User ${NUSER} doesn't exist"
  exit
fi

# Make sure filterway is installed
if ! which -s filterway; then
  echo "filterway not found in the PATH."
  echo "Please install if from https://github.com/andrewbaxter/filterway"
  exit
fi

# Get a unique ID for this nested session
UUID=$(uuidgen)

# Figure out where our Wayland socket is and make sure it exists
if echo ${WAYLAND_DISPLAY} | grep -q "^/"; then 
  RSOCKPATH=${WAYLAND_DISPLAY}
else
  RSOCKPATH=${XDG_RUNTIME_DIR}/${WAYLAND_DISPLAY}
fi
if ! [ -S ${RSOCKPATH} ]; then 
  echo "Socket file ${RSOCKPATH} for this Wayland display \"${WAYLAND_DISPLAY}\" doesn't exist!?"
  echo "Giving up..."
  exit
fi

# Unique nested session's Wayland display name
NWDISPLAY=wayland-nested-${UUID}

# Unique filespec for the nested session's Wayland socket
NSOCKPATH=/tmp/${NWDISPLAY}

# Unique filespec for the nested Sway socket
NSWAYSOCK=/tmp/sway-nested-ipc.${NUSER}.${UUID}.sock

# Run filterway in the background to expose our private Wayland socket in ${XDG_RUNTIME_DIR} (which is most likely a tmpfs-mounted directory that can't be shared outside without compromising the private $(XDG_RUNTIME_DIR}) and to rename the nested session's app ID
rm -f ${NSOCKPATH}
filterway --upstream ${RSOCKPATH} --downstream ${NSOCKPATH} --app-id "Nested Sway - ${NUSER} ($UUID)" &
FILTERWAY_PID=$!

# Wait until filterway has created the socket and associated lock files for the nested session
RETRY=3
while [ ${RETRY} -gt 0 ] && ! ( [ -S ${NSOCKPATH} ] && [ -f ${NSOCKPATH}.lock ] ); do
  sleep 1
  RETRY=$((RETRY-1))
done

# If filterway somehow didn't start, try to kill it and clean up its files for good measure
if [ ${RETRY} = 0 ]; then
  kill ${FILTERWAY_PID}
  rm -f ${NSOCKPATH} ${NSOCKPATH}.lock
fi

# Fix up the permissions of the socket and associated lock files for the nested session so it's only accessible to the owner
chmod 600 ${NSOCKPATH} ${NSOCKPATH}.lock

# Become root
sudo -s -- << EOF

  # Give the socket and associated lock files to the nested session's user
  chown ${NUSER}: ${NSOCKPATH} ${NSOCKPATH}.lock

  # Remove stale symlinks then start Sway as that user in a new session in the background
  systemd-run --pipe --machine ${NUSER}@ --setenv=WAYLAND_DISPLAY=${NWDISPLAY} --setenv=SWAYSOCK=${NSWAYSOCK} --user /bin/sh -c '[ "\${XDG_RUNTIME_DIR}" ] && (find \${XDG_RUNTIME_DIR} -maxdepth 1 -name "wayland-nested-*" -xtype l -exec rm -f {} \; || true) && rm -f \${XDG_RUNTIME_DIR}/${NWDISPLAY} && ln -s ${NSOCKPATH} \${XDG_RUNTIME_DIR}/${NWDISPLAY} && sway' &

  # Wait for the Sway container to appear within 3 seconds after starting Sway, then wait for it to disappear for more than 5 seconds afterwards
  export SWAYSOCK=${SWAYSOCK}
  COUNTDOWN=3
  while [ \${COUNTDOWN} -gt 0 ]; do
    if swaymsg -t get_tree | grep -q 'app_id.*${UUID}'; then
      COUNTDOWN=5
    fi
    sleep 1
    COUNTDOWN=\$((COUNTDOWN-1))
  done

  # Stop the nested Sway
  SWAYSOCK=${NSWAYSOCK} swaymsg exit

  # Kill filterway
  kill ${FILTERWAY_PID}

  # Remove the filterway socket and socket lock files
  rm -f ${NUSER}: ${NSOCKPATH} ${NSOCKPATH}.lock

EOF

I called it nest_sway.sh and it lives in my ~/scripts directory, which is in my PATH. Whenever I want to start a desktop as another user within my desktop, I simply type
$ nest_sway.sh <username>

and hey-presto, the desktop appears. Just like with Xephy.

in reply to Davriellelouna

I dunno, the following looks suspiciously like Gregor "I don't want home prices to go down" Robertson is gonna declare victory with just 8 urban wards updated:

In March, then-federal housing minister Nate Erskine-Smith warned Toronto Mayor Olivia Chow that any deviation from a citywide policy permitting sixplexes would result in 25 per cent less federal funding, ...

Gregor Robertson, Canada's new housing minister, has not indicated whether he will follow his predecessor's lead. In a statement to CBC News on Thursday, a spokesperson said the federal government is working with Toronto to meet its sixplex goals.

"The Housing Accelerator Fund rewards ambitious housing initiatives from local governments, with a focus on reducing bureaucracy, zoning restrictions, and other red tape. We are working closely with the city of Toronto to meet these goals and remain ready to work with all levels of governments to tackle the housing crisis," said spokesperson Mohammad Hussain.

【#TheHagueGroup】To Bogotá | Progressive International (2025-07-12)


#TheHagueGroup】To Bogotá | Progressive International (2025-07-12)

progressive.international/wire…
———

>> This week, more than 25 states from around the world will gather in Bogotá, Colombia, for the “Emergency Conference” to halt the Gaza genocide: the most ambitious multilateral response since Israel began its campaign of devastation two years ago.

>> “The Bogotá conference will go down as the moment in history that states finally stood up to do the right thing,” said UN Special Rapporteur #FrancescaAlbanese, calling the formation of The Hague Group the “most significant political development of the last 20 months.”

>> Jointly convened by Colombia and South Africa, The Hague Group’s Co-Chairs, the conference brings together states far beyond the boundaries of the Group — from Algeria to Brazil, China to Spain, Indonesia to Qatar — “to move from condemnation to collective action,” in the words of Colombian President Gustavo Petro…

#BogotaConference #StopGenocide
@palestine@a.gup.pe

Is Earth inside a huge void? 'Sound of Big Bang' hints so


Blender HDR and the reference white issue | About Blender's HDR support on Wayland


From Sebastian Wick’s Mastodon

Blender is getting HDR on Linux via Wayland before Windows! This isn't by accident, but shows how creating a system with a different design creates better results for users and application developers.


Firefox is in this same boat too. It will get HDR support on Linux* sooner than Windows. Firefox currently only supports HDR on MacOS.

This entry was edited (1 hour ago)
in reply to return2ozma

Soviet style mass apartment complexes to combat homelessness but you have to download an app to get in and out, and the app collects and sells all your data. There's a concierge who does spot checks but they accept bribes in fresh fruit, vegetables and old N64 games.

The internets. Multiple internets, like different streaming services and you need to pay a subscription to each one to access all the websites.

Rail guns. Everyone will have a rail gun. It will be awesome.