# settings

Published articles for settings.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Релиз рабочего окружения GNOME 51 A Coruña

DevFeed: [Релиз рабочего окружения GNOME 51 A Coruña](<https://devfeed.tech/articles/gnome-51-a-coruna-40897.md>)

Original publisher: [Read original article](<https://habr.com/ru/news/1083092/>)

Author: denis-19

Published: 2026-09-17T08:31:45Z

Content type: news

Language: ru

Sources: [Tagir Valeev](<https://devfeed.tech/sources/tagir-valeev.md>)

Topics: [input](<https://devfeed.tech/topics/input.md>), [Wayland](<https://devfeed.tech/topics/wayland.md>), [SVG](<https://devfeed.tech/topics/svg.md>), [API](<https://devfeed.tech/topics/api.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [background](<https://devfeed.tech/tags/background.md>), [capture](<https://devfeed.tech/tags/capture.md>), [files](<https://devfeed.tech/tags/files.md>), [gnome](<https://devfeed.tech/tags/gnome.md>), [gnome-51](<https://devfeed.tech/tags/gnome-51.md>), [input](<https://devfeed.tech/tags/input.md>), [panel](<https://devfeed.tech/tags/panel.md>), [settings](<https://devfeed.tech/tags/settings.md>), [svg](<https://devfeed.tech/tags/svg.md>), [tag-08a48a9394c3](<https://devfeed.tech/tags/tag-08a48a9394c3.md>), [tag-cb5ff012b3f0](<https://devfeed.tech/tags/tag-cb5ff012b3f0.md>), [wayland](<https://devfeed.tech/tags/wayland.md>)

### AI overview

GNOME 51, codenamed A Coruña, was released on September 16, 2026. The release improves performance and settings, adds new GNOME Circle applications and elements, and introduces features including monitor brightness restoration, elogind support, a QR-code generation API, input capture portal support, improved screen recording, SVG-based cursors, and Wayland background effects.

### Source excerpt

16 сентября 2026 года состоялся релиз рабочего окружения GNOME 51 под кодовым названием A Coruña. В проекте оптимизирована производительность и настройки, добавлены новые элементы и приложения в GNOME Circle. Читать далее

## GNOME 51 Released With Improved Frame Scheduling, Many App Improvements

DevFeed: [GNOME 51 Released With Improved Frame Scheduling, Many App Improvements](<https://devfeed.tech/articles/gnome-51-released-with-improved-frame-scheduling-many-app-improvements-31407.md>)

Original publisher: [Read original article](<https://www.phoronix.com/news/GNOME-51-Released>)

Author: Michael Larabel

Published: 2026-09-16T16:25:21Z

Content type: news

Language: en

Sources: [Phoronix](<https://devfeed.tech/sources/phoronix.md>)

Topics: [releases](<https://devfeed.tech/topics/releases.md>), [Wayland](<https://devfeed.tech/topics/wayland.md>), [Release notes](<https://devfeed.tech/topics/release-notes.md>), [Software](<https://devfeed.tech/topics/software.md>), [ui](<https://devfeed.tech/topics/ui.md>), [legacy](<https://devfeed.tech/topics/legacy.md>), [Nvidia](<https://devfeed.tech/topics/nvidia.md>)

Tags: [desktop](<https://devfeed.tech/tags/desktop.md>), [desktop-linux](<https://devfeed.tech/tags/desktop-linux.md>), [driver](<https://devfeed.tech/tags/driver.md>), [experience](<https://devfeed.tech/tags/experience.md>), [faster](<https://devfeed.tech/tags/faster.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [legacy](<https://devfeed.tech/tags/legacy.md>), [linux-benchmarking](<https://devfeed.tech/tags/linux-benchmarking.md>), [linux-hardware-benchmarks](<https://devfeed.tech/tags/linux-hardware-benchmarks.md>), [linux-hardware-reviews](<https://devfeed.tech/tags/linux-hardware-reviews.md>), [linux-how-to](<https://devfeed.tech/tags/linux-how-to.md>), [linux-performance](<https://devfeed.tech/tags/linux-performance.md>), [linux-server-benchmarks](<https://devfeed.tech/tags/linux-server-benchmarks.md>), [notes](<https://devfeed.tech/tags/notes.md>), [nvidia](<https://devfeed.tech/tags/nvidia.md>), [offline](<https://devfeed.tech/tags/offline.md>), [open-source-graphics](<https://devfeed.tech/tags/open-source-graphics.md>), [other](<https://devfeed.tech/tags/other.md>), [phoronix](<https://devfeed.tech/tags/phoronix.md>), [phoronix-test-suite](<https://devfeed.tech/tags/phoronix-test-suite.md>), [protocols](<https://devfeed.tech/tags/protocols.md>), [release](<https://devfeed.tech/tags/release.md>), [release-notes](<https://devfeed.tech/tags/release-notes.md>), [settings](<https://devfeed.tech/tags/settings.md>), [software](<https://devfeed.tech/tags/software.md>), [time](<https://devfeed.tech/tags/time.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>), [ubuntu-benchmarks](<https://devfeed.tech/tags/ubuntu-benchmarks.md>), [ubuntu-hardware](<https://devfeed.tech/tags/ubuntu-hardware.md>), [ui](<https://devfeed.tech/tags/ui.md>), [wayland](<https://devfeed.tech/tags/wayland.md>), [workstation](<https://devfeed.tech/tags/workstation.md>)

### AI overview

GNOME 51 has been released with improved frame scheduling and desktop responsiveness, new Wayland protocol support, removal of legacy NVIDIA EGLStreams driver support, and updates to several GNOME applications and settings.

### Source excerpt

Right on schedule and in time for appearing in the likes of Ubuntu 26.10 and Fedora Workstation 45, the GNOME 51 desktop is officially released...

## PHPStan custom rules

DevFeed: [PHPStan custom rules](<https://devfeed.tech/articles/phpstan-custom-rules-39472.md>)

Original publisher: [Read original article](<https://akrabat.com/phpstan-custom-rules/>)

Author: Rob

Published: 2026-03-03T11:00:00Z

Content type: tutorial

Language: en

Sources: [Rob Allen](<https://devfeed.tech/sources/rob-allen.md>)

Topics: [PHP](<https://devfeed.tech/topics/php.md>), [Exception](<https://devfeed.tech/topics/exception.md>), [Code](<https://devfeed.tech/topics/code.md>), [phpstorm](<https://devfeed.tech/topics/phpstorm.md>)

Tags: [autocomplete](<https://devfeed.tech/tags/autocomplete.md>), [class](<https://devfeed.tech/tags/class.md>), [code](<https://devfeed.tech/tags/code.md>), [container](<https://devfeed.tech/tags/container.md>), [exception](<https://devfeed.tech/tags/exception.md>), [extension](<https://devfeed.tech/tags/extension.md>), [php](<https://devfeed.tech/tags/php.md>), [phpstorm](<https://devfeed.tech/tags/phpstorm.md>), [runtime](<https://devfeed.tech/tags/runtime.md>), [settings](<https://devfeed.tech/tags/settings.md>)

### AI overview

This tutorial explains how a PHPStan custom rule can detect references to unavailable PHP classes. It also describes configuring PhpStorm to limit autocomplete to extensions used by the application.

### Source excerpt

Recently I discovered that this code passed our PHPStan level 10 checks: use http\Exception\InvalidArgumentException; // ... throw new InvalidArgumentException; I was surprised as http\Exception\InvalidArgumentException is not a class in our system. While cooling, I discovered that there's an http PHP extension and it appears that PHPStan has a stub for this which means that it accepts it as existing even if it doesn't. What we think happened is that I wrote throw new InvalidArgumentException; and... continue reading.

## Pi-hole: bloquea publicidad en toda tu red

DevFeed: [Pi-hole: bloquea publicidad en toda tu red](<https://devfeed.tech/articles/pi-hole-bloquea-publicidad-en-toda-tu-red-34074.md>)

Original publisher: [Read original article](<https://tengoping.com/blog/pihole-bloqueo-publicidad-red/>)

Author: Antonio Pérez

Published: 2026-02-04T00:00:00Z

Content type: tutorial

Language: es

Sources: [tengoping.com](<https://devfeed.tech/sources/tengoping-com.md>)

Topics: [Pi-hole](<https://devfeed.tech/topics/pihole.md>), [DHCP](<https://devfeed.tech/topics/dhcp.md>), [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Debian](<https://devfeed.tech/topics/debian.md>), [Ubuntu](<https://devfeed.tech/topics/ubuntu.md>)

Tags: [cloudflare](<https://devfeed.tech/tags/cloudflare.md>), [debian](<https://devfeed.tech/tags/debian.md>), [dhcp](<https://devfeed.tech/tags/dhcp.md>), [dns](<https://devfeed.tech/tags/dns.md>), [lan](<https://devfeed.tech/tags/lan.md>), [linux](<https://devfeed.tech/tags/linux.md>), [local](<https://devfeed.tech/tags/local.md>), [pi](<https://devfeed.tech/tags/pi.md>), [raspberry-pi](<https://devfeed.tech/tags/raspberry-pi.md>), [resolver](<https://devfeed.tech/tags/resolver.md>), [router](<https://devfeed.tech/tags/router.md>), [script](<https://devfeed.tech/tags/script.md>), [settings](<https://devfeed.tech/tags/settings.md>), [ubuntu](<https://devfeed.tech/tags/ubuntu.md>)

### AI overview

A Spanish tutorial explaining how Pi-hole filters advertising and tracking domains through local DNS, how to install it on a Raspberry Pi or Linux system, configure it on a router, use DHCP when necessary, and resolve local network names.

### Source excerpt

Pi-hole a fondo: por qué el DoH del navegador lo esquiva, DNS local para tu LAN, Teleporter y qué revisar si no bloquea.

## Validate Environment Variables with Pydantic

DevFeed: [Validate Environment Variables with Pydantic](<https://devfeed.tech/articles/validate-environment-variables-with-pydantic-30865.md>)

Original publisher: [Read original article](<https://www.packetcoders.io/validate-environment-variables-with-pydantic/>)

Author: Rick Donato

Published: 2025-12-02T08:00:19Z

Content type: tutorial

Language: en

Sources: [Packet Coders - Learn Network Automation](<https://devfeed.tech/sources/packet-coders-learn-network-automation.md>)

Topics: [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [Environment Variables](<https://devfeed.tech/topics/environment-variables.md>), [.env](<https://devfeed.tech/topics/dotenv.md>), [Python](<https://devfeed.tech/topics/python.md>)

Tags: [env-file-security](<https://devfeed.tech/tags/env-file-security.md>), [environment-variables](<https://devfeed.tech/tags/environment-variables.md>), [python](<https://devfeed.tech/tags/python.md>), [settings](<https://devfeed.tech/tags/settings.md>), [tips](<https://devfeed.tech/tags/tips.md>)

### AI overview

A brief tutorial tip showing how to validate environment variables from .env files with Pydantic before they reach an application. It also notes that this can remove the need to manually call python-dotenv.

### Source excerpt

Tip! Validate your env vars from your .env files before they hit your application by using Pydantic. This also eliminates the need to call python-dotenv manually. Here's an example: # uv add pydantic pydantic-settings python-dotenv from pydantic import Field, AnyHttpUrl, ValidationError from pydantic_settings import BaseSettings,

## vimrc: settings based on terminal background

DevFeed: [vimrc: settings based on terminal background](<https://devfeed.tech/articles/vimrc-settings-based-on-terminal-background-30278.md>)

Original publisher: [Read original article](<https://www.netmeister.org/blog/vim-color-by-bg.html>)

Published: 2025-09-05T17:22:45Z

Content type: tutorial

Language: en

Sources: [Signs of Triviality](<https://devfeed.tech/sources/signs-of-triviality.md>)

Topics: [Syntax Highlighting](<https://devfeed.tech/topics/syntax-highlighting.md>), [Terminal](<https://devfeed.tech/topics/terminal.md>)

Tags: [based](<https://devfeed.tech/tags/based.md>), [highlighting](<https://devfeed.tech/tags/highlighting.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [set](<https://devfeed.tech/tags/set.md>), [settings](<https://devfeed.tech/tags/settings.md>), [syntax](<https://devfeed.tech/tags/syntax.md>), [syntax-highlighting](<https://devfeed.tech/tags/syntax-highlighting.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

### AI overview

A tutorial on configuring Vim syntax-highlighting colorschemes based on the current terminal background.

### Source excerpt

How to set e.g., syntax highlighting colorschemes based on the current terminal's background.

## Standard Token Exchange is now officially supported in Keycloak 26.2

DevFeed: [Standard Token Exchange is now officially supported in Keycloak 26.2](<https://devfeed.tech/articles/standard-token-exchange-is-now-officially-supported-in-keycloak-26-2-31711.md>)

Original publisher: [Read original article](<https://www.keycloak.org/2025/05/standard-token-exchange-kc-26-2>)

Author: Giuseppe Graziano

Published: 2025-05-26T00:00:00Z

Content type: release

Language: en

Sources: [Keycloak Blog](<https://devfeed.tech/sources/keycloak-blog.md>)

Topics: [Keycloak](<https://devfeed.tech/topics/keycloak.md>), [OAuth 2.0](<https://devfeed.tech/topics/oauth2.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [idm](<https://devfeed.tech/tags/idm.md>), [kerberos](<https://devfeed.tech/tags/kerberos.md>), [keycloak](<https://devfeed.tech/tags/keycloak.md>), [ldap](<https://devfeed.tech/tags/ldap.md>), [oauth-2-0](<https://devfeed.tech/tags/oauth-2-0.md>), [openid-connect](<https://devfeed.tech/tags/openid-connect.md>), [preview](<https://devfeed.tech/tags/preview.md>), [release](<https://devfeed.tech/tags/release.md>), [rules](<https://devfeed.tech/tags/rules.md>), [saml](<https://devfeed.tech/tags/saml.md>), [scopes](<https://devfeed.tech/tags/scopes.md>), [settings](<https://devfeed.tech/tags/settings.md>), [sso](<https://devfeed.tech/tags/sso.md>), [standard](<https://devfeed.tech/tags/standard.md>), [token](<https://devfeed.tech/tags/token.md>)

### AI overview

Keycloak 26.2 officially supports Standard Token Exchange and complies with OAuth 2.0 Token Exchange (RFC 8693). The feature lets clients exchange tokens, configure exchanges through the Admin Console, and enforce rules with Client Policies.

### Source excerpt

The Token Exchange feature has been available in Keycloak for a long time, but only as a preview feature. With the release of Keycloak 26.2, we're happy to share that Standard Token Exchange is now officially supported and fully compliant with OAuth 2.0 Token Exchange (RFC 8693). What is Token Exchange? 🔄 Token Exchange is a mechanism that allows a client to exchange one token for another. In the context of Keycloak, this means a client can exchange a token originally issued for another client and receive a new token issued specifically for itself. Token Exchange is especially helpful in these scenarios: 🎯 Different Audience When a token was issued for one service but needs to be used to access another, Token Exchange can issue a new token with the appropriate audience. 🔐 Scoped Permissions If a client needs to access a service with more limited permissions, it can exchange its token for one with reduced or more specific scopes. What's new? 🆕 ✅ Official support (no longer a preview feature) 📘 Compliance with RFC 8693 (OAuth 2.0 Token Exchange) 🖱 Simple configuration via the Admin Console (just a switch in client settings) 🛡 Integration with Client Policies to enforce custom rules. You can restrict exchanges to specific clients, or deny exchanges based on requested scopes. How to get started 🚀 If you're using Keycloak 26.2 or later, there's nothing extra to enable. Token Exchange is ready to use, just open the client settings in the admin console and enable the dedicated switch. If you're still using the preview feature of token exchange, check the migration guide and the comparison to understand the differences and plan your migration. 📄 For full setup instructions and configuration details, refer to the official documentation. What's next? 🔍 We're continuing to expand Token Exchange support with future enhancements such as: 🔄 Exchanging tokens issued by external identity providers 👤 Using token exchange to impersonate users Stay tuned for updates in upcoming rele

## Support Time to Take Action with Compose

DevFeed: [Support Time to Take Action with Compose](<https://devfeed.tech/articles/support-time-to-take-action-with-compose-38496.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2024-12-28/support-time-to-take-action-with-compose/>)

Author: Eevis Panula

Published: 2024-12-28T09:46:59.418000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [Android](<https://devfeed.tech/topics/android.md>), [Compose](<https://devfeed.tech/topics/compose.md>), [User interface design](<https://devfeed.tech/topics/ui-design.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [android](<https://devfeed.tech/tags/android.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [components](<https://devfeed.tech/tags/components.md>), [compose](<https://devfeed.tech/tags/compose.md>), [custom](<https://devfeed.tech/tags/custom.md>), [developers](<https://devfeed.tech/tags/developers.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [settings](<https://devfeed.tech/tags/settings.md>), [users](<https://devfeed.tech/tags/users.md>)

### AI overview

This tutorial explains Android's Time to take action accessibility setting, which controls how long temporary messages remain visible. It describes why users may need additional time and shows why custom Compose components must explicitly support the setting.

### Source excerpt

While working on my master's thesis and the Android Accessibility Checklist, one of the answers to my survey mentioned an accessibility setting called time to take action. Since then, I've been curious about it and wanted to write a blog post as I feel it's one of the undersupported accessibility settings and really useful for those who utilize it. So, what is time to take action, and why would someone use it? And why should we, as developers, care? Let's talk about that first. Time to Take Action Time to take action is a setting that controls the minimum time in which temporary messages asking a user to take action are shown. So, for example, when you press the volume buttons on your Android phone, you should see the volume controls next to the volume buttons, and this setting controls how long they're visible. This setting has different options: Default, 10 seconds, 30 seconds, 1 minute and 2 minutes. You can find them from Settings -> Accessibility Settings -> Timing controls -> Time to take action (Accessibility timeout). The screen looks something like this, depending on your phone's version and manufacturer: And why would someone need this setting? Well, the source code and documentation for a method we're going to use in a moment puts it pretty well: Some users may need extra time to review the controls, or to reach them, or to activate assistive technology to activate the controls automatically. Okay, now we've established what the time to take action is. However, the question of relevance remains: Why should we care as developers? Isn't it something that the operating system handles automatically? The answer is yes and no. Most components on the operating system level and Material3 components respect this setting. However, when you're building a custom component, it's not automatically respected, and you'll need to add support for it. That's why the settings page mentions that not all apps support the setting. The thing is, developers usually don't know abo

## Change App Theme - Personalizing Accessibility

DevFeed: [Change App Theme - Personalizing Accessibility](<https://devfeed.tech/articles/change-app-theme-personalizing-accessibility-38481.md>)

Original publisher: [Read original article](<https://eevis.codes/blog/2024-05-21/change-app-theme-personalizing-accessibility/>)

Author: Eevis Panula

Published: 2025-06-11T04:23:10.332000Z

Content type: tutorial

Language: en

Sources: [Eevis Blog](<https://devfeed.tech/sources/eevis-blog.md>)

Topics: [Accessibility](<https://devfeed.tech/topics/accessibility.md>), [personalization](<https://devfeed.tech/topics/personalization.md>), [Dark Mode](<https://devfeed.tech/topics/dark-mode.md>), [color](<https://devfeed.tech/topics/color.md>), [Users](<https://devfeed.tech/topics/users.md>)

Tags: [accessibility](<https://devfeed.tech/tags/accessibility.md>), [color](<https://devfeed.tech/tags/color.md>), [dark-mode](<https://devfeed.tech/tags/dark-mode.md>), [personalization](<https://devfeed.tech/tags/personalization.md>), [settings](<https://devfeed.tech/tags/settings.md>), [users](<https://devfeed.tech/tags/users.md>)

### AI overview

This tutorial explains how to add an app theme setting as part of personalizing accessibility. It presents four options: system settings, light, dark, and high-contrast themes, and describes storing the selection and applying the corresponding theme.

### Source excerpt

I'm continuing the theme of personalizing accessibility, which I've started with my two posts. You can find them from the following links: Personalizing Accessibility with Settings Toggle Labels With Icons -- Personalizing Accessibility As a quick recap, in the previous posts, I've discussed how personalization can generally be the key to improving accessibility, and given a concrete example of adding a setting to hide or display labels with icons. In this blog post, I will continue with concrete examples. We will add a setting to change the app's theme. The user will have four options: follow system settings (the default), light, dark, and high-contrast color theme. Let's dive in. Why? Sometimes, users want to use their apps with a different theme than what their phone has as its theme. Personally, I use everything in dark mode, but I've encountered some apps with dark themes with colors that are unusable for me. They either have too much contrast, or sometimes, too little. In those cases, I wanted to change to a light theme. Usually, there has been no such option, so I've either abandoned the app or used it as little as possible if I needed to use it. So it's all about giving users the control. The minimum options for this type of setting would be the system default, light, and dark. But what about the high-contrast theme? Why would you want to add that? Who even needs it? High-Contrast Theme A high-contrast theme has a limited color palette with higher contrast colors. One concrete example is Windows High-Contrast Mode, which was developed for Windows 7 and later. Android provides a setting for high-contrast text, but it only applies to text, not graphics. WebAIM surveyed low-vision users in 2018, showing that 51.4% of the respondents (n=248) used a high-contrast mode. Low-vision users are a large group needing high-contrast themes, but there are others as well. For example, people with migraines, Irlene syndrome, or some people with dyslexia might benefit from hi

## How to run Zwift in full screen

DevFeed: [How to run Zwift in full screen](<https://devfeed.tech/articles/how-to-run-zwift-in-full-screen-27683.md>)

Original publisher: [Read original article](<https://gagor.pro/2023/12/how-to-run-zwift-in-full-screen/>)

Author: Tom

Published: 2023-12-28T00:00:00Z

Content type: tutorial

Language: en

Sources: [Tomasz Gągor](<https://devfeed.tech/sources/tomasz-gagor.md>)

Topics: [screen](<https://devfeed.tech/topics/screen.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [Spotify](<https://devfeed.tech/topics/spotify.md>)

Tags: [display](<https://devfeed.tech/tags/display.md>), [gaming](<https://devfeed.tech/tags/gaming.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [music](<https://devfeed.tech/tags/music.md>), [run](<https://devfeed.tech/tags/run.md>), [screen](<https://devfeed.tech/tags/screen.md>), [settings](<https://devfeed.tech/tags/settings.md>), [windows](<https://devfeed.tech/tags/windows.md>), [zwift-display-options](<https://devfeed.tech/tags/zwift-display-options.md>), [zwift-full-screen](<https://devfeed.tech/tags/zwift-full-screen.md>), [zwift-immersive-experience](<https://devfeed.tech/tags/zwift-immersive-experience.md>), [zwift-screen-mode](<https://devfeed.tech/tags/zwift-screen-mode.md>), [zwift-windows-settings](<https://devfeed.tech/tags/zwift-windows-settings.md>)

### AI overview

A short tutorial explains how to switch Zwift from windowed mode to full-screen mode by opening My settings, selecting Sound & Display, and changing Screen Mode to Full Screen. It also notes that Title Music can be disabled and mentions using a Spotify playlist.

### Source excerpt

Learn how to run Zwift in full screen mode on Windows, eliminating the windowed mode's start menu and title bar for a more immersive experience.

## Chrome support for passkeys in iCloud Keychain

DevFeed: [Chrome support for passkeys in iCloud Keychain](<https://devfeed.tech/articles/chrome-support-for-passkeys-in-icloud-keychain-36611.md>)

Original publisher: [Read original article](<http://www.imperialviolet.org/2023/10/18/icloudkeychain.html>)

Author: Adam Langley

Published: 2023-10-18T00:00:00Z

Content type: release

Language: en

Sources: [ImperialViolet](<https://devfeed.tech/sources/imperialviolet.md>)

Topics: [Chrome](<https://devfeed.tech/topics/chrome.md>), [Passkeys](<https://devfeed.tech/topics/passkeys.md>), [WebAuthn](<https://devfeed.tech/topics/webauthn.md>), [macOS](<https://devfeed.tech/topics/macos.md>), [iOS](<https://devfeed.tech/topics/ios.md>), [Google](<https://devfeed.tech/topics/google.md>)

Tags: [browsers](<https://devfeed.tech/tags/browsers.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [ios](<https://devfeed.tech/tags/ios.md>), [macos](<https://devfeed.tech/tags/macos.md>), [settings](<https://devfeed.tech/tags/settings.md>), [stable-channel](<https://devfeed.tech/tags/stable-channel.md>), [sync](<https://devfeed.tech/tags/sync.md>), [terminal](<https://devfeed.tech/tags/terminal.md>)

### AI overview

Chrome 118 adds support for creating and accessing passkeys in iCloud Keychain on macOS 13.5 or later. The article explains the required permission for autofill and account-picker access, as well as iCloud account and sync requirements.

### Source excerpt

Chrome 118 (which is rolling out to the Stable channel now) contains support for creating and accessing passkeys in iCloud Keychain. Firstly, I'd like to thank Apple for creating an API for this that browsers can use: it's a bunch of work, and they didn't have to. Chrome has long had support for creating WebAuthn credentials on macOS that were protected by the macOS Keychain and stored in the local Chrome profile. If you've used WebAuthn in Chrome and it asked you for Touch ID (or your unlock password) then it was this. It has worked great for a long time. But passkeys are supposed to be durable, and something that's forever trapped in a local profile on disk is not durable. Also, if you're a macOS + iOS user then it's very convenient to have passkeys sync between your different devices, but Google Password Manager doesn't cover passkeys on those platforms yet. (We're working on it.) So having iCloud Keychain support is hopefully useful for a number of people. With Chrome 118 you'll see an "iCloud Keychain" option appear in Chrome's WebAuthn UI if you're running macOS 13.5 or later: You won't, at first, see iCloud Keychain credentials appear in autofill. That's because you need to grant Chrome permission to access the metadata of iCloud Keychain passkeys before it can display them. So the first time you select iCloud Keychain as an option, you'll see this: If you accept, then iCloud Keychain credentials will appear in autofill, and in Chrome's account picker when you click a button to use passkeys. If you decline, then you won't be asked again. You can still use iCloud Keychain, but you'll have to go though some extra clicks every time. You can change your mind in System Settings -> Passkeys Access for Web Browsers, or you can run tccutil reset WebBrowserPublicKeyCredential from a terminal to reset that permission system wide. (Restart Chrome after doing either of those things.) Saving a passkey in iCloud Keychain requires having an iCloud account and having iCloud K

## Fluent Multi-Environment Config for Craft CMS 4

DevFeed: [Fluent Multi-Environment Config for Craft CMS 4](<https://devfeed.tech/articles/fluent-multi-environment-config-for-craft-cms-4-31263.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/fluent-multi-environment-config-for-craft-cms-4>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2022-07-26T04:00:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [allows](<https://devfeed.tech/tags/allows.md>), [autocomplete](<https://devfeed.tech/tags/autocomplete.md>), [better](<https://devfeed.tech/tags/better.md>), [cms](<https://devfeed.tech/tags/cms.md>), [config](<https://devfeed.tech/tags/config.md>), [craft](<https://devfeed.tech/tags/craft.md>), [create](<https://devfeed.tech/tags/create.md>), [editor](<https://devfeed.tech/tags/editor.md>), [environment](<https://devfeed.tech/tags/environment.md>), [errors](<https://devfeed.tech/tags/errors.md>), [fewer](<https://devfeed.tech/tags/fewer.md>), [files](<https://devfeed.tech/tags/files.md>), [fluent](<https://devfeed.tech/tags/fluent.md>), [insights](<https://devfeed.tech/tags/insights.md>), [less](<https://devfeed.tech/tags/less.md>), [model](<https://devfeed.tech/tags/model.md>), [multi-environment](<https://devfeed.tech/tags/multi-environment.md>), [settings](<https://devfeed.tech/tags/settings.md>), [using](<https://devfeed.tech/tags/using.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

This tutorial explains how Craft CMS 4.2's optional fluent configuration interface improves multi-environment config files. It highlights autocomplete, inline documentation, and type-checking as ways to reduce lookup work and configuration errors.

### Source excerpt

Using the new fluent model config settings in Craft CMS 4.2 allows you to create better config files, with less work and fewer errors

## Disable Cmd + Mouse Wheel (or Ctrl + Mouse Wheel) zoom in Firefox

DevFeed: [Disable Cmd + Mouse Wheel (or Ctrl + Mouse Wheel) zoom in Firefox](<https://devfeed.tech/articles/disable-cmd-mouse-wheel-or-ctrl-mouse-wheel-zoom-in-firefox-37264.md>)

Original publisher: [Read original article](<https://muffinman.io/blog/disable-cmd-mouse-wheel-zoom-in-firefox/>)

Author: Stanko

Published: 2019-10-25T00:00:00Z

Content type: tutorial

Language: en

Sources: [Stanko Tadić](<https://devfeed.tech/sources/stanko-tadic.md>)

Topics: [Firefox](<https://devfeed.tech/topics/firefox.md>), [browser](<https://devfeed.tech/topics/browser.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [firefox](<https://devfeed.tech/tags/firefox.md>), [settings](<https://devfeed.tech/tags/settings.md>)

### AI overview

A short tutorial explains how to disable Cmd + Mouse Wheel zoom in Firefox by changing mousewheel.with_meta.action in about:config from 3 to 0. It also gives the equivalent Control + Mouse Wheel setting for non-Mac users and explains how to restore the default.

### Source excerpt

Short Firefox tip to disable Cmd + MouseWheel zoom. There is a weird interaction with it. Therefore I decided to turn it off completely (I never used it anyway). When I scroll a page using a trackpad and start switching tabs via Cmd + Tab, inertia scrolling would still be active, and the page I switched to gets zoomed in a lot (as I'm still holding Cmd). It really got on my nerves. To disable it, you'll need to type about:config in your address bar. A warning pageThis page will allow you to change hidden browser settings, so be careful with it. may appear. Continue like the hacker you are, and search for mousewheel.with_meta. You should see something like this: We need to change mousewheel.with_meta.action, from 3 to 0. To change it, click on the edit button (or just double click the value). And that is it! For people who are not on Mac and want to disable Control + Mouse Wheel, follow the same procedure and change mousewheel.with_control.action from 3 to 0. If you ever want to switch it back on, find the same option, and change it back to 3. Once you change a value, Firefox will give you a small reset button, just in case you forgot the default value.

## (Some) iPhone Privacy Settings

DevFeed: [(Some) iPhone Privacy Settings](<https://devfeed.tech/articles/some-iphone-privacy-settings-30205.md>)

Original publisher: [Read original article](<https://www.netmeister.org/blog/iphone-privacy-settings.html>)

Published: 2018-02-02T02:36:48Z

Content type: opinion

Language: en

Sources: [Signs of Triviality](<https://devfeed.tech/sources/signs-of-triviality.md>)

Topics: [iphone](<https://devfeed.tech/topics/iphone.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [iphone](<https://devfeed.tech/tags/iphone.md>), [personal](<https://devfeed.tech/tags/personal.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [security](<https://devfeed.tech/tags/security.md>), [security-and-privacy](<https://devfeed.tech/tags/security-and-privacy.md>), [settings](<https://devfeed.tech/tags/settings.md>)

### AI overview

A personal overview of iPhone settings relevant to security and privacy.

### Source excerpt

A quick rundown of my personal iPhone settings as far as they're relevant to security and privacy.

## (Some) Browser Privacy Settings

DevFeed: [(Some) Browser Privacy Settings](<https://devfeed.tech/articles/some-browser-privacy-settings-30160.md>)

Original publisher: [Read original article](<https://www.netmeister.org/blog/browser-privacy-settings.html>)

Published: 2018-01-27T19:10:28Z

Content type: article

Language: en

Sources: [Signs of Triviality](<https://devfeed.tech/sources/signs-of-triviality.md>)

Topics: [browser](<https://devfeed.tech/topics/browser.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [browser](<https://devfeed.tech/tags/browser.md>), [highlighting](<https://devfeed.tech/tags/highlighting.md>), [personal](<https://devfeed.tech/tags/personal.md>), [privacy](<https://devfeed.tech/tags/privacy.md>), [security](<https://devfeed.tech/tags/security.md>), [security-and-privacy](<https://devfeed.tech/tags/security-and-privacy.md>), [settings](<https://devfeed.tech/tags/settings.md>), [setup](<https://devfeed.tech/tags/setup.md>)

### AI overview

An overview of the author's personal browser setup, focusing on settings relevant to security and privacy.

### Source excerpt

A quick rundown of my personal browser setup, highlighting the security and privacy relevant settings.

## Dealing With Murphy's Law at upday.

DevFeed: [Dealing With Murphy's Law at upday.](<https://devfeed.tech/articles/dealing-with-murphy-s-law-at-upday-35107.md>)

Original publisher: [Read original article](<https://upday.github.io/blog/dealing-with-murphy-s-law-at-upday/>)

Author: Nicola Miotto (nicola@upday.com)

Published: 2017-07-24T04:39:55Z

Content type: article

Language: en

Sources: [Upday](<https://devfeed.tech/sources/upday.md>)

Topics: [resiliency](<https://devfeed.tech/topics/resiliency.md>), [Android](<https://devfeed.tech/topics/android.md>), [App](<https://devfeed.tech/topics/app.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [Front end](<https://devfeed.tech/topics/frontend.md>), [samsung](<https://devfeed.tech/topics/samsung.md>), [User experience (UX)](<https://devfeed.tech/topics/ux.md>), [Users](<https://devfeed.tech/topics/users.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [app](<https://devfeed.tech/tags/app.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [backend](<https://devfeed.tech/tags/backend.md>), [behaviour](<https://devfeed.tech/tags/behaviour.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [devices](<https://devfeed.tech/tags/devices.md>), [errors](<https://devfeed.tech/tags/errors.md>), [frontend](<https://devfeed.tech/tags/frontend.md>), [outage](<https://devfeed.tech/tags/outage.md>), [resiliency](<https://devfeed.tech/tags/resiliency.md>), [samsung](<https://devfeed.tech/tags/samsung.md>), [service](<https://devfeed.tech/tags/service.md>), [settings](<https://devfeed.tech/tags/settings.md>)

### AI overview

The article discusses the architecture of upday's Android news app, focusing on resiliency and robustness around the personalized My News feature. It also explains the app's news streams and the service-level agreement severity levels used to respond to incidents.

### Source excerpt

In this blog post we will provide a few insights on the architecture of the upday news app (both backend and frontend), focusing on the work that has been put on the resiliency and robustness of the components around the My News feature. upday & Samsung Before digging into the technicalities, it's worth to spend a few words on what upday is and which responsabilities we have towards our stake holders. The App upday is a fruit of a collaboration between Axel Springer and Samsung. The end result is a news application for Android, pre-installed as the default news-app on most of the Samsung devices (S7, S8, A series etc). The one purpose of the application is to deliver relevant news content to the users. The goal is achieved by means of the two news streams that the app provides: Top News: this section is an editorial curated news stream, whose titles and headlines are manually crafted by a team of editors (in each of the available countries). It's supposed to provide the user with all the relevant news of the moment, independently from taste and preferences. My News: this is the "machine curated" news stream, generated by a swarm of super intelligent cyber beings enslaved to our will. Or at least that's how business sometimes likes to sell it. The important thing is that this stream is personalized based on the user explicit feedback and settings and behaviour. SLA With Samsung Collaborations with big players come always at a cost. For the engineering team at upday this cost is the Service Level Agreement that we need to commit to. So, when a problem with the service occurs, it's categorized in a specific severity level that also defines then the actions to take. These are, in Layman's terms, the 4 severity levels of our SLA: Severity 4: An Error affecting non- upday 's Services with little or no Users impact. More concisely: no one cares. It's hit once a single third-party picture wouldn't load, for instance. Severity 3: Errors that causes degradation of the UX. Lik

## Multi-Environment Config for Craft CMS

DevFeed: [Multi-Environment Config for Craft CMS](<https://devfeed.tech/articles/multi-environment-config-for-craft-cms-31285.md>)

Original publisher: [Read original article](<https://nystudio107.com/blog/multi-environment-config-for-craft-cms>)

Author: andrew@nystudio107.com (Andrew Welch)

Published: 2016-12-02T20:32:00Z

Content type: tutorial

Language: en

Sources: [nystudio107 | Articles on modern web development.](<https://devfeed.tech/sources/nystudio107-articles-on-modern-web-development.md>)

Topics: [Content Management System](<https://devfeed.tech/topics/cms.md>), [Development](<https://devfeed.tech/topics/development.md>), [Website](<https://devfeed.tech/topics/website.md>)

Tags: [cms](<https://devfeed.tech/tags/cms.md>), [configs](<https://devfeed.tech/tags/configs.md>), [craft](<https://devfeed.tech/tags/craft.md>), [effectively](<https://devfeed.tech/tags/effectively.md>), [efficacious](<https://devfeed.tech/tags/efficacious.md>), [environment](<https://devfeed.tech/tags/environment.md>), [environments](<https://devfeed.tech/tags/environments.md>), [help](<https://devfeed.tech/tags/help.md>), [here-s](<https://devfeed.tech/tags/here-s.md>), [insights](<https://devfeed.tech/tags/insights.md>), [multi-environment](<https://devfeed.tech/tags/multi-environment.md>), [production](<https://devfeed.tech/tags/production.md>), [project](<https://devfeed.tech/tags/project.md>), [settings](<https://devfeed.tech/tags/settings.md>), [staging](<https://devfeed.tech/tags/staging.md>), [strategy](<https://devfeed.tech/tags/strategy.md>), [work](<https://devfeed.tech/tags/work.md>)

### AI overview

This tutorial explains how to configure a Craft CMS 2.5.x project for live, staging, and local environments. It covers environment-specific settings, including development mode, template caching, databases, passwords, file-system locations, and configuration overrides.

### Source excerpt

Multi-environment configs help you work more effectively with Craft CMS. Here's an efficacious strategy

## Open DNS for when DNS outages occur

DevFeed: [Open DNS for when DNS outages occur](<https://devfeed.tech/articles/open-dns-for-when-dns-outages-occur-41191.md>)

Original publisher: [Read original article](<https://www.craigkerstiens.com/2016/10/21/opendns/>)

Author: Map

Published: 2016-10-21T20:55:56Z

Content type: tutorial

Language: en

Sources: [Craig Kerstiens](<https://devfeed.tech/sources/craig-kerstiens.md>)

Topics: [Network](<https://devfeed.tech/topics/network.md>)

Tags: [configure](<https://devfeed.tech/tags/configure.md>), [dns](<https://devfeed.tech/tags/dns.md>), [mac](<https://devfeed.tech/tags/mac.md>), [outages](<https://devfeed.tech/tags/outages.md>), [resolver](<https://devfeed.tech/tags/resolver.md>), [settings](<https://devfeed.tech/tags/settings.md>), [ttl](<https://devfeed.tech/tags/ttl.md>)

### AI overview

This tutorial explains how OpenDNS can help restore name resolution during a DNS outage by caching records beyond their TTL when the upstream DNS server is unavailable. It provides the resolver addresses and Mac configuration steps.

### Source excerpt

Open DNS is a DNS resolver that caches records beyond their TTL if the upstream DNS server cannot be found. In cases like today's major outage it can be handy to swap your DNS settings out for this, or it may be worth using as a standard default. Resolution may be a bit slow as it will try to see if the upstream server cannot be found, but it at least can get you back to a working state. If you know what you're doing then all you need to do is configure your DNS settings to: 208.67.220.220 and 208.67.222.222. If you need a little more guidance you can go into your System Preferences on Mac, select Network, then Advanced and finally the DNS tab. You should set it up to look as follows:

## Unlocalize Google Chrome Omnibar

DevFeed: [Unlocalize Google Chrome Omnibar](<https://devfeed.tech/articles/unlocalize-google-chrome-omnibar-38382.md>)

Original publisher: [Read original article](<https://meedamian.com/post/unlocalize-google-in-chrome/>)

Author: hi@meedamian.com (Damian Mee)

Published: 2016-01-05T00:00:00Z

Content type: tutorial

Language: en

Sources: [Damian Mee | Blog | Portfolio | About](<https://devfeed.tech/sources/damian-mee-blog-portfolio-about.md>)

Topics: [Google Chrome](<https://devfeed.tech/topics/google-chrome.md>), [Google](<https://devfeed.tech/topics/google.md>), [Virtual Private Network](<https://devfeed.tech/topics/vpn.md>)

Tags: [change](<https://devfeed.tech/tags/change.md>), [chrome](<https://devfeed.tech/tags/chrome.md>), [copy](<https://devfeed.tech/tags/copy.md>), [domain](<https://devfeed.tech/tags/domain.md>), [google](<https://devfeed.tech/tags/google.md>), [google-chrome](<https://devfeed.tech/tags/google-chrome.md>), [search](<https://devfeed.tech/tags/search.md>), [search-engine](<https://devfeed.tech/tags/search-engine.md>), [settings](<https://devfeed.tech/tags/settings.md>), [vpn](<https://devfeed.tech/tags/vpn.md>)

### AI overview

A tutorial explains how to change Chrome's Google search-engine settings to prevent Google from redirecting users who travel frequently or use a VPN to a local domain they do not want.

### Source excerpt

If you travel a lot or use a VPN, then at some point, Google might start to, wrongfully, think that you'd rather use some outdated local domain. Steps to fix it: Go to chrome://settings/searchEngines (copy-paste it into your address bar) In the Default search settings section find "Google" Rename Google to ex. Google (Annoying) in the 1st field Change google.com to ex. Google.annoying in the 2nd field Copy URL¹ from the 3rd field Scroll to the bottom of the Other search engines section Add a new search engine: Put Google into the 1st field Put google.

## Emacs Kicker

DevFeed: [Emacs Kicker](<https://devfeed.tech/articles/emacs-kicker-34410.md>)

Original publisher: [Read original article](<https://tapoueh.org/blog/2011/04/emacs-kicker/>)

Author: Dimitri Fontaine PostgreSQL Major Contributor; Author

Published: 2011-04-15T19:30:00Z

Content type: tutorial

Language: en

Sources: [Dimitri Fontaine](<https://devfeed.tech/sources/dimitri-fontaine.md>)

Topics: [Emacs](<https://devfeed.tech/topics/emacs.md>), [file](<https://devfeed.tech/topics/file.md>)

Tags: [emacs](<https://devfeed.tech/tags/emacs.md>), [external](<https://devfeed.tech/tags/external.md>), [file](<https://devfeed.tech/tags/file.md>), [mac](<https://devfeed.tech/tags/mac.md>), [packages](<https://devfeed.tech/tags/packages.md>), [repository](<https://devfeed.tech/tags/repository.md>), [settings](<https://devfeed.tech/tags/settings.md>)

### AI overview

The article introduces emacs-kicker, a 128-line Emacs user initialization file based on el-get for external packages. It describes its package selection, custom key bindings, system-specific settings, and how to try it by cloning the repository.

### Source excerpt

Following up on the very popular emacs-starter-kit, I'm now proposing the emacs-kicker. It's about the .emacs file you've seen in older posts here, which I maintain for some colleagues. After all, if they find it useful, some more people might to, so I've decided to publish it. What you'll find is a very simple 128 lines Emacs user init file, based on el-get for external packages. A not so random selection of those is used, here's the list when you hide some details: