Git Product home page Git Product logo

gentoo-portage-config's Introduction

gentoo-portage-config's People

Contributors

magiruuvelvet avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

gencoo gmh5225

gentoo-portage-config's Issues

remaining TODOs before I can switch to KDE Wayland

  • Albert Launcher copy to clipboard of credentials (using my SecretService plugin)
    Wayland's security model makes this harder than it should be.
  • fix external Media Keys (Bluetooth, etc.)
    The last time I tried they did not work in Wayland.
  • functional tiling script with floating support based on window class (not title) for KWin Wayland
    Yes, some Wayland windows have a class so they can be properly identified.
    b713c80

figure out how to handle multiple GPUs with Vulkan on all-AMD hybrid graphic system

Now that I have migrated from an Intel+NVIDIA hybrid graphic setup to a pure all-AMD hybrid graphic setup, I have this annoying issue that Vulkan applications prefer to run on the dGPU when I need them to run on the iGPU.

Figure out how to properly force the device which is used for Vulkan. The setup must work with the primerun script to only allow the use of the dGPU, otherwise only the iGPU can be used.

OpenGL doesn't seem to be affected by this issue and works as intended.

experiment: try to force together Hyprland and most of the KDE ecosystem

I like KDE too much to give it up, but kwin_wayland is a pile of garbage on my system. Try to merge Hyprland with the KDE ecosystem and get a functional production-ready system up and running.

  • KWallet
  • KDE Apps
    • Konsole
    • Dolphin
    • Yakuake (drop-down terminal, maybe it's time to move on and cope with the fact that drop-down terminals are "outdated"; it is even broken in the KDE Wayland session)
  • Akonadi (mostly KMail and Calendar; yes I unironically use Akonadi)
    • KWallet (KWallet in itself works with my keyboard launcher and other applications, but Akonadi still can't communicate with it for some reason)
    • Integrate Akonadi Calendar into some bar (waybar or eww)
  • Global Menu Bar (I actually use this as daily driver and love it)
  • Albert Launcher (or better: switch to a new keyboard launcher; somewhat works under XWayland for now)
  • Bar (waybar or eww)
    • Task Bar (running applications)
    • System Tray (the tray in waybar is partially broken/buggy with non-GTK apps, no love for Qt ๐Ÿ˜ž)
    • Global Menu Integration
    • Hyprland Workspaces
    • System Monitoring (use ksystemstats for this, once I figure out how it updates the sensor data, the plasmashell widget is triggering updates in intervals)
    • Prime Render Offload Indicator
    • proper System Time which doesn't suck or looks ugly, ideally with multi-line as I have it in plasmashell
    • Network Manager Applet
    • Bluetooth Applet
    • Clipboard Manager + Applet in Bar (something like klipper in plasmashell)
  • Desktop Portal
    • KDE File Picker (the GTK file picker is borderline unusable and ugly and can't be fixed)
    • ...
  • avoid adding too much GTK/GNOME shit, and keep most of the stuff Qt-based

Random notes:

  • You can't overlay/draw applications over the plasmashell panels in the KDE Wayland session, which means there is a high chance that plasmashell under Wayland uses the layer-shell specification, which means there is a chance the plasmashell could work under Hyprland. I didn't investigate this in detail yet. If this works, I will just continue to use the plasmashell instead of migrating to another bar, which is a extremely time-consuming task.
    plasmashell doesn't work in Hyprland. It is treated as a window and will be tiled. In floating mode, it can be dragged around and applications don't stay above it. plasmashell has a standalone mode which probably could be utilized together with the "reserved space" feature of Hyprland.

Bluetooth audio on PipeWire not ready for production yet

Bluetooth audio is utterly broken with PipeWire when multiple streams are active or if streams are rapidly opened/closed, no issues with PulseAudio. USB Audio (FiiO M5) works perfectly fine and can handle the heat and never breaks when spamming streams or having multiple concurrent streams open.

wireplumber[112313]: (-49) client too slow! rate:1024/48000 pos:23148544 status:triggered

Investigation is ongoing. Experimenting with different quantum values and sample rates didn't lead to any meaningful results yet. My only guess is that the Bluetooth plugin in PipeWire does some weird buffering.

Kernel version: 5.15.119-gentoo-dist

For reference: Bluetooth audio on PulseAudio works perfectly fine on my system. Spamming streams was never an issue there. Why does this matter? Applications which play notification sounds, or simply just having sneaky audio playback in web browsers while listening to music, breaks the playback on PipeWire and I need to restart it in the worst case, sometimes switching profiles fixes it. This is far from being useable in production right now.

Debugging: You can install PulseAudio and PipeWire at the same time by using my media-sound/pulseaudio-daemon-noconflict ebuild. Only system mode is supported.

Accepting questions and issues now

From now on, I will accept questions and issues regarding my Gentoo profile and installation. Feel free to ask by opening an issue on this repository.

find a better method to handle C packages with missing -std=gnu compiler flag

Currently, most C applications and libraries with GNU C extensions need package.env modifications to compile successfully. There are a lot of developers out there who assume GNU C extensions are available by default and omit the -std=gnu(c-version) compiler flag. The LLVM toolchain on my system defaults to ISO C, and has GNU extensions disabled by default when the standard is not specified using this flag. C++ applications and libraries aren't that much affected, but it can happen there too in rare cases.

Maybe there is a more elegant way to handle this problem without implicitly enabling GNU extensions in the toolchain again. A (almost) GNU-free Gentoo should have a compiler which defaults to ISO C.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.