{"id":17818268,"url":"https://github.com/questionlp/framework-laptop-16","last_synced_at":"2026-03-07T02:32:37.318Z","repository":{"id":245504062,"uuid":"818338955","full_name":"questionlp/framework-laptop-16","owner":"questionlp","description":"Information on installing and using Linux (esp. Fedora) on a Framework Laptop 16","archived":false,"fork":false,"pushed_at":"2025-11-21T23:11:35.000Z","size":84,"stargazers_count":7,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-22T01:11:22.687Z","etag":null,"topics":["fedora","framework-laptop","linux"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/questionlp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-06-21T16:16:23.000Z","updated_at":"2025-11-21T23:11:39.000Z","dependencies_parsed_at":"2024-07-26T05:27:41.441Z","dependency_job_id":"62e40a6d-9267-4812-99da-c3ec74fcae1d","html_url":"https://github.com/questionlp/framework-laptop-16","commit_stats":null,"previous_names":["questionlp/framework-laptop-16"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/questionlp/framework-laptop-16","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/questionlp%2Fframework-laptop-16","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/questionlp%2Fframework-laptop-16/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/questionlp%2Fframework-laptop-16/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/questionlp%2Fframework-laptop-16/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/questionlp","download_url":"https://codeload.github.com/questionlp/framework-laptop-16/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/questionlp%2Fframework-laptop-16/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30206069,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T19:07:06.838Z","status":"online","status_checked_at":"2026-03-07T02:00:06.765Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fedora","framework-laptop","linux"],"created_at":"2024-10-27T16:48:59.009Z","updated_at":"2026-03-07T02:32:37.296Z","avatar_url":"https://github.com/questionlp.png","language":"Shell","readme":"# Framework Laptop 16\n\nThis repository contains files that fix issues or modify behavior of the Framework Laptop 16 when using Linux.\n\n## Fedora: Package Installation\n\n*This only applies to non-immutable versions and spins of Fedora.*\n\n### Prepping Fedora for Web Development\n\nSee [Prepping Fedora for Python, Ruby and Node.js Web Development](./prepping-fedora-for-web-development.md)\n\n### Using OpenH264 and Mesa from RPM Fusion\n\nSee [Installing OpenH264 and Mesa from RPM Fusion](./installing-openh264-and-mesa-from-rpmfusion.md)\n\n## Disabling Fedora Flatpak Remotes\n\nDue to issues with Flatpak applications that are distributed via Fedora's Flatpak repo not being official versions, up to date, or have other issues, it is recommended to disable both `fedora` and `fedora-testing` remotes and stick with installing Flatpaks from [Flathub](https://flathub.org/) instead.\n\nTo disable either of the Fedora remotes, run the following command for the specific remote to disable:\n\n```bash\nflatpak remote-modify --no-filter --disable fedora\nflatpak remote-modify --no-filter --disable fedora-testing\n```\n\nTo re-enable either of the remotes, run the following command:\n\n```bash\nflatpak remote-modify --no-filter --enable fedora\nflatpak remote-modify --no-filter --enable fedora-testing\n```\n\nTo ensure that the Flathub remote is available, run the following command (provided by [Flathub](https://flathub.org/setup/Fedora)):\n\n```bash\nflatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo\n```\n\n## power-profiles-daemon, Power Save and Reduced Screen Contrast\n\nWhen setting the Power Profile of the Framework Laptop 16 to \"Power Save\" mode and running on battery, power-profiles-daemon and the AMD GPU driver will put the display panel in low power mode, thus causing the display have lower contrast.\n\nA solution has been found in the README.md file for [power-profiles-daemon](https://gitlab.freedesktop.org/upower/power-profiles-daemon) git repo. I have posted more information in [issue #1](https://github.com/questionlp/framework-laptop-16/issues/1).\n\nWith Fedora 41 switching from using `power-profiles-daemon` to `tuned-ppd`, the method of automatically setting the display panel power mode needs to be updated. Steps are provided in [issue #2](https://github.com/questionlp/framework-laptop-16/issues/2). Corresponding files have been added to the repository under `etc/tuned`.\n\n## Fedora 41: Replacing `tuned` with `power-profiles-daemon`\n\nTo replace the default `tuned` with the Framework recommended `power-profiles-daemon`, you can run the following on a fully updated system:\n\n```bash\nsudo dnf remove tuned\nsudo dnf install power-profiles-daemon\n```\n\nOnce `power-profiles-daemon` has been installed, you will want to restart your laptop as soon as possible for the changes to fully take effect.\n\nSELinux may report a violation when switching power profiles. To disable the warning, you can run the following as **root**:\n\n```bash\nausearch -c 'power-profiles-' --raw | audit2allow -M my-powerprofiles\nsemodule -X 300 -i my-powerprofiles.pp\n```\n\nYou may need to [re-apply the reduced screen contrast fix](https://github.com/questionlp/framework-laptop-16/issues/1) for `power-profiles-daemon` mentioned above if you made the changes in Fedora 40, upgraded to Fedora 41, then replace `tuned` with `power-profiles-daemon`.\n\n## Fedora 41: AMD GPU Screen Glitches and Corruption\n\nSee [issue #3](https://github.com/questionlp/framework-laptop-16/issues/3) for steps to add `amdgpu.sg_display=0` to the kernel arguments using `grubby` as a potential fix for random screen glitches and corruption that can occur with AMD GPUs.\n\n## Fix Headset Microphone Input\n\nThere is a known issue with the default Fedora install may not correctly handling headset microphone input from the audio expansion card.\n\n```bash\nsudo tee /etc/modprobe.d/alsa-base.conf \u003c\u003c\u003c \"echo options snd-hda-intel index=1,0 model=auto,dell-headset-multi\"\n```\n\nSource: \u003chttps://community.frame.work/t/solved-headset-mic-on-amd-fw13-running-fedora-39/38847/2\u003e\n\n## QMK/VIA Keyboard: Left CTRL and Fn Swap and Right CTRL and ALT Swap\n\nIn order to swap the left `CTRL` and `Fn` keys (and, optionally, swapping the right `CTRL` and `ALT` keys) using Framework's version of [VIA](https://keyboard.frame.work/), a `udev` rule needs to be added in order for the application to access and modify the QMK firmware.\n\nCopy the `50-qmk.rules` file under `etc/udev/rules.d` to `/etc/udev/rules.d` and run the following commands:\n\n```bash\nsudo udevadm control --reload-rules\nsudo udevadm trigger\n```\n\nI also mapped `Fn` + `Caps Lock` to `Scroll Lock` in order to use `Scroll Lock` as a `Compose` key. There is a variation of the map to use `Fn` + `Tab` instead of `Fn` + `Caps Lock`.\n\nLocated under `qmk-via` are exported JSON files containing the various swaps and mappings:\n\n| Keymap JSON File | Description |\n| --- | --- |\n| [fl16-ansi-swaps-lctrl_fn-ralt_rctl-fnmap-capslock_scrolllock.json](qmk-via/fl16-ansi-swaps-lctrl_fn-ralt_rctl-fnmap-capslock_scrolllock.json) | Swapped: Left `Ctrl` and `Fn`, Swapped: Right `Alt` and Right `Ctrl`, Mapped: `Fn` + `Caps Lock` to Scroll Lock |\n| [fl16-ansi-swaps-lctrl_fn-ralt_rctl-fnmap-tab_scrolllock.json](qmk-via/fl16-ansi-swaps-lctrl_fn-ralt_rctl-fnmap-tab_scrolllock.json) | Swapped: Left `Ctrl` and `Fn`, Swapped: Right `Alt` and Right `Ctrl`, Mapped: `Fn` + `Tab` to Scroll Lock |\n| [fl16-ansi-swaps-lctrl_fn-ralt_rctl.json](qmk-via/fl16-ansi-swaps-lctrl_fn-ralt_rctl.json) | Swapped: Left `Ctrl` and `Fn`, Swapped: Right `Alt` and Right `Ctrl` |\n| [fl16-ansi-swaps-lctrl_fn.json](qmk-via/fl16-ansi-swaps-lctrl_fn.json) | Swapped: Left `Ctrl` and `Fn` |\n| [fl16-rgb-ansi-fnmap-capslock_scrolllock.json](qmk-via/fl16-rgb-ansi-fnmap-capslock_scrolllock.json) | RGB US English keyboard - Mapped: `Fn` + `Caps Lock` to Scroll Lock |\n| [fl16-rgb-ansi-swaps-ralt_rctl-fnmap-capslock_scrolllock.json](qmk-via/fl16-rgb-ansi-swaps-ralt_rctl-fnmap-capslock_scrolllock.json) | RGB US English keyboard - Swapped: Right `Ctrl` and Right `Alt`, Mapped: `Fn` + `Caps Lock` to Scroll Lock |\n\n### Mapping `Scroll Lock` to `Compose`\n\nThe steps provided have been tested in Fedora 40 (KDE Plasma 6) and Debian 12 (GNOME, Cinnamon, MATE and XFCE).\n\n#### KDE Plasma 6\n\n1. In the \"System Settings\" application, browse to \"Keyboard\" under \"Input \u0026 Output\"\n2. Click on the \"Key Bindings\" tab\n3. Scroll down to and expand the \"Position of Compose Key\" item\n4. Check \"Scroll Lock\"\n5. Click \"Apply\" to save the settings\n\n#### GNOME\n\n1. In the \"Settings\" application, browse to \"Keyboard\"\n2. Under \"Special Character Entry\", click on \"Compose Key\"\n3. Click on the toggle to enable the \"Compose Key\" option\n4. Select \"Scroll Lock\" from the list and close the dialog\n\n#### Cinnamon\n\n1. Click on the Cinnamon Menu button, browse to \"Keyboard\" under \"Preferences\"\n2. In the \"Keyboard\" settings window, click on the \"Layouts\" tab\n3. In the lower portion of the window, click on \"Options...\"\n4. In the \"Keyboard Layout Options\" dialog, scroll down to and expand the \"Position of Compose Key\" item\n5. Check \"Scroll Lock\"\n6. Click on the \"Close\" button to close the dialog\n\n#### MATE\n\n1. Click on the \"System\" menu and browse to \"Keyboard\" under \"Preferences\" and \"Hardware\"\n2. In the \"Keyboard Preferences\" window, click on the \"Layout\" tab\n3. In the lower portion of the window, click on the \"Options...\"\n4. In the \"Keyboard Layout Options\" dialog, scroll down to and expand the \"Position of Compose Key\" item\n5. Check \"Scroll Lock\"\n6. Click on the \"Close\" button to close the dialog\n\n#### XFCE\n\n1. Click on the \"Applications\" menu and browse to \"Keyboard\" under \"Settings\"\n2. In the \"Keyboard\" settings window, click on the \"Layout\" tab\n3. Click on the toggle to disable the \"Use system defaults\" option\n4. In the \"Compose key\" dropdown, select \"Scroll Lock\"\n5. Click on the \"Close\" button to close the settings window\n\n## Disable Wireless Power Saving\n\n*This may not be necessary for all cases, but including it for reference.*\n\nWireless network power saving can be disabled on a per-connection basis using the `nmcli` utility:\n\n```bash\nnmcli connection modify ssid 802-11-wireless.powersave 2\n```\n\nTo revert to the default value, run:\n\n```bash\nnmcli connection modify ssid 802-11-wireless.powersave 0\n```\n\n## Improving Laptop Sound\n\nIn many cases, the sound that comes out of the speakers sounds a bit muddy and does not have good sound staging. To improve things a bit, I use [EasyEffects](https://github.com/wwmm/easyeffects) and the \"Laptop\" preset provided by [JackHack96/EasyEffects-Presets](https://github.com/JackHack96/EasyEffects-Presets).\n\n## VS Code: Inserting of indents when using KDE Task Switcher\n\nWhile this is not specific to the Framework Laptop 16 or even Fedora, but it is an annoyance when using KDE Task Switcher via `Alt` + `Tab`. A workaround is to set \"Allow legacy X11 apps to read keystrokes typed in all apps\" to \"Never\" instead of the default \"As above, plus any key typed while the Control, Alt, or Meta keys are pressed\".\n\nKeep in mind that this might break functionality of other legacy X11 applications outside of VS Code.\n\n## 'License'\n\nFiles and documentation included in this repository is free and unemcumbered software released into the public domain. For more information, see the included UNLICENSE file.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquestionlp%2Fframework-laptop-16","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fquestionlp%2Fframework-laptop-16","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fquestionlp%2Fframework-laptop-16/lists"}