The file lit.site.cfg has to be inspected for any incorrect calls to executables. For example see src_prepare function form dev-lang/boogie.
Eclasses
Because we will need to specify how many threads should lit run we need to inherit multiprocessing to detect how many parallel jobs the portage config sets.
1
inheritmultiprocessing
Dependencies
Ensure that dev-python/lit is in BDEPEND, but also additional packages may be needed, for example dev-python/OutputCheck.
Recently while browsing the Alpine git repo I noticed they have a function called snapshot, see: https://git.alpinelinux.org/aports/tree/testing/dart/APKBUILD#n45 I am not 100% sure about how that works but a wild guess is that the developers can run that function to fetch the sources and maybe later upload them to the Alpine repo or some sort of (cloud?) storage.
In Portage there exists a pkg_config function used to run miscellaneous configuration for packages. The only major difference between src_snapshot and that would of course be that users would never run snapshot.
Sandbox
Probably only the network sandbox would have to be lifted out… to fetch the sources of course.
But also a few (at least one?) special directories and variables would be useful.
Company-Ebuild should pull in app-emacs/ebuild-mode, if that does not happen, then report a bug ;-D
Standard
Add the following to your user's Emacs initialization file. The initialization file is either ~/.emacs.d/init.el or ~/.config/emacs/init.el for newer versions of GNU Emacs.
The :defer t and :mode "..." enable deferred loading which theoretically speeds up GNU Emacs initialization time at the cost of running the whole use-package block of ebuild-mode configuration when the :mode condition is met.
Use the cache directory /run/user/1000/chrome/cache
1
--disk-cache-dir=${XDG_RUNTIME_DIR}/chrome/cache
Window size
Sawn a window of size 1200x900
1
--window-size=1200,900
Full config
The file /etc/chromium/default is sourced by the Chromium launcher, that's why we can sue bash syntax here.
1 2 3 4 5 6 7 8 91011121314151617181920
#!/usr/bin/env bash# Dark interface# Force web UI dark modeCHROMIUM_FLAGS="${CHROMIUM_FLAGS} --enable-features=WebUIDarkMode --force-dark-mode"# Hardware acceleration# Accelerated video decoding and GPU supportCHROMIUM_FLAGS="${CHROMIUM_FLAGS} --enable-accelerated-video-decode --enable-gpu"# Reader modeCHROMIUM_FLAGS="${CHROMIUM_FLAGS} --enable-reader-mode"# Runtime cache# Use the cache directory /run/user/1000/chrome/cacheCHROMIUM_FLAGS="${CHROMIUM_FLAGS} --disk-cache-dir=${XDG_RUNTIME_DIR}/chrome/cache"# Window size# Sawn a window of size 1200x900CHROMIUM_FLAGS="${CHROMIUM_FLAGS} --window-size=1200,900"
Binary
If you use www-client/chromium-bin, then the config is located at /etc/chromium/default and CHROMIUM_FLAGS is CHROMIUM_BIN_FLAGS.
Adding the above to Your Emacs config will cause Emacs to start a daemon after it is opened (and no other Emacs servers are running), this also does not require --daemon flag.
After the daemon is started You can open files by right-clicking on them and selecting to open them in "Emacsclient".
Furthermore: You also utilize --iconic and add emacs --iconic to your Plasma startup. This is way better than using emacs --daemon because you can just click on your taskbar to open the minimized Emacs window. Also, Emacs will load all Your graphical libraries and configurations so Your theme will look properly and not as if Emacs was being used on the console.
Breeze theme
Sadly I have not found any theme that would look like Plasma. I use the spacemacs theme which looks a little bit similar, especially the background color comes close to Breeze's dark background color.
Note that the theme which You load with the function load-theme is a different thing that the GTK theme Emacs uses.
The GTK theme should be enabled if Your Emacs version is built with GTK support. On Gentoo this setting is controlled with the gtk USE flag. Also the flag toolkit-scroll-bars can be enabled for a look of scroll-bars consistent with the selected toolkit.
Xresources
There is a different approach to theming Your Emacs that loading a theme defined in ELisp - You can use a ~/.Xresource file.
If you do not load any theme in your configuration Emacs will by default read the .Xresources file, unless the --no-x-resources flag is used.
Here are a few Xresources config files that come close to the default Breeze theme:
Emacs can be built with FreeDesktop's D-Bus support to communicate over the dbus protocol. This can come handy when using ERC as it has a setting to enable desktop notifications on mentions (erc-desktop-notifications.el).
The dbus interface can also be utilized to query desktop-oriented daemons, for example this library talks to the Bluetooth daemon.
KDE development
Those are some ELisp libraries that I found while browsing GitHub, they might be useful for somebody who delves into KDE app development.
Opening files in different applications
In addition to async-shell-command and start-process-shell-command I wrote this small library that may come handy.
Outside Emacs, inside Plasma
Sadly the KDE team did not add support to emulate Emacs-like keys in Plasma itself, but some applications like, for example Kate have configuration options to customize the key bindings. This is a repository explaining how to setup Kate's bindings.
Huge thanks to Sam James and Arthur Zamarin for support and interest in getting this feature done.
Installation
Unmasking
The Flycheck integration is unreleased as of now, this will (hopefully) change in the future, but for now You need live versions of snakeoil, pkgcore and pkgcheck.
The lines with :ensure nil are there to prevent use-package from trying to download the particular package from Elpa (because we use system packages for this configuration).
Instead of changing CSS style for Your Racket projects documentation, You may be interested in compiling Markdown files generated form Scribble source into HTML documentation website.
Creating MkDocs project
Create docs directory and mkdocs.yml config file in current directory, along with a dummy index.md file in docs folder.
1
mkdocsnew.
Edit the name of the project.
Replace Racket-Project with your project name.
12
---site_name:Racket-Project
Building Scribble
Generate markdown files form scribble documentation.
Replace Racket-Project.scrbl with path to your scribble documentation main source file.
Compile HTML documentation from the markdown source.
1
mkdocsbuild
HTML files should appear in the site directory.
Running the server
Some features, like search for example are only available when running the mkdocs server.
1
mkdocsserve
Caveats
Some scribble functions do not look good or work correctly for markdown-to-HTML compilation by MkDocs.
table-of-contents - looks like a source block
index-section - letter links do not work
Example configuration
1 2 3 4 5 6 7 8 9101112131415161718
site_name:Racket-Ebuildsite_author:xgqt@riseup.netsite_description:library to ease ebuild creationsite_url:https://gitlab.com/gentoo-racket/racket-ebuildrepo_name:gentoo-racket/racket-ebuildrepo_url:https://gitlab.com/gentoo-racket/racket-ebuildplugins:-searchtheme:name:materialextra:social:-icon:fontawesome/brands/gitlablink:https://gitlab.com/gentoo-racket/racket-ebuild
First using a needle or a toothpick click a button on the right side of the laptop (indicated by a bent arrow), this will start the machine up in BIOS selection menu where you choose the BIOS setup option.
Then, in the BIOS menu disable option to check laptop charge level while it is shut down. If not disabled it will interfere with key combination that has to be pressed while laptop is shut down. This can be turned back after the advanced BIOS menu is enabled.
After that "Exit saving changes" and shutdown.
Keys
I thought it was a joke at first but it really is true that a special combination of keys has to be pressed depending on the laptop model (while it is shut down).
Instead of using Ansible, Python, Yaml or Scheme we might use something similar to this for simple configuration, or if gets merged to upstream Portage the better.
Worth mentioning is the idea from Michał Górny who proposes to configure portage with toml files, like the example given in the bug report.