User:Pavlix

Contact
The best way to contact me over Gentoo topics is to catch me in #gentoo on

Why Gentoo
I'm more of a pragmatic user of Gentoo. As an open source software developer digging into many projects, I'm taking advantage of portage, overlays, ebuilds and user patches. Gentoo serves the purpose of quickly turning my wishes into an installed package I can use for further testing or daily use.

My ebuilds
I'm currently storing all my ebuilds in the ixit overlay run by User:Okias as a Github repo who granted me push access. The software fits into different categories. Most of my ebuilds are live ebuilds built from Git or other VCS software with public repositories.

Please contact me if you're interested in any of the packages or related packages that are not included.

Enlightenment
Live ebuilds for what would become Enlightenment 0.20 (or E20) core packages. I'm considering also adding E19 packages.



Hardware
He're the hardware that I either have or know something about.


 * Lenovo ThinkPad X61
 * Lenovo ThinkPad X201
 * Lenovo ThinkPad X420s

(See also: Category:Laptops)

System

 * systemd (primarily to make Gentoo close to my work setup)
 * Bash
 * eix
 * genkernel-next (formerly genkernel)
 * LVM
 * sudo
 * screen
 * pm-utils
 * iproute
 * networkmanager
 * ntpd
 * acpid
 * laptop-mode-tools
 * thermal-daemon

Developmnet / Testing

 * LXC
 * Qemu
 * libvirt

Desktop

 * Enlightenment (formerly Awesome)
 * nm-applet

Applications

 * screen
 * vim
 * offlineimap
 * mutt
 * Firefox, Midori

Force --autounmask-write changes
CONFIG_PROTECT_MASK="${CONFIG_PROTECT_MASK} /etc/portage"

Keyboard
US and Czech qwerty keyboard layouts, toggled with Alt+Shift, with AltGr+Menu as Compose/Multi key.

setxkbmap "us,cz(qwerty)" -option grp:alt_shift_toggle,compose:menu-altgr

Trackpoint
xinput set-int-prop "TPPS/2 IBM TrackPoint" "Device Accel Profile" 8 3 xinput set-float-prop "TPPS/2 IBM TrackPoint" "Device Accel Velocity Scaling" 30 xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation" 8 1 xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Button" 8 2 xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Timeout" 16 200 xinput set-int-prop "TPPS/2 IBM TrackPoint" "Evdev Wheel Emulation Axes" 8 6 7 4 5

Portage: User patches
I recently switched from  to   to patch the source before running eautoreconf.

Portage: Restart emerge automatically after autounmask-write
{{File|/etc/portage/patches/sys-apps/portage-2.2.8-r1/autounmask.patch|| Index: portage-2.2.8/pym/_emerge/depgraph.py

=
====================================================== --- portage-2.2.8.orig/pym/_emerge/depgraph.py +++ portage-2.2.8/pym/_emerge/depgraph.py @@ -27,7 +27,7 @@ from portage.dep._slot_operator import i from portage.eapi import eapi_has_strong_blocks, eapi_has_required_use, \ _get_eapi_attrs from portage.exception import (InvalidAtom, InvalidData, InvalidDependString, -      PackageNotFound, PortageException) +      PackageNotFound, PortageException, RetryEmerge) from portage.output import colorize, create_color_func, \        darkgreen, green bad = create_color_func("BAD") @@ -7349,6 +7349,8 @@ class depgraph(object):                        for root in roots:                                chk_updated_cfg_files(root, [os.path.join(os.sep, USER_CONFIG_PATH)]) +                      if autounmask_write: +                               raise RetryEmerge("Re-try emerge")                elif not pretend and not autounmask_write and roots:                        writemsg("\nUse --autounmask-write to write changes to config files (honoring\n"                                "CONFIG_PROTECT). Carefully examine the list of proposed changes,\n" Index: portage-2.2.8/pym/_emerge/main.py

=
====================================================== --- portage-2.2.8.orig/pym/_emerge/main.py +++ portage-2.2.8/pym/_emerge/main.py @@ -18,6 +18,7 @@ portage.proxy.lazyimport.lazyimport(glob       '_emerge.is_valid_package_atom:insert_category_into_atom' ) from portage import os +from portage.exception import RetryEmerge from portage.util._argparse import ArgumentParser if sys.hexversion >= 0x3000000: @@ -1029,6 +1030,8 @@ def emerge_main(args=None): try: return run_action(emerge_config) +      except RetryEmerge: +              return emerge_main finally: # Call destructors for our portdbapi instances. for x in emerge_config.trees.values: Index: portage-2.2.8/pym/portage/exception.py

=
====================================================== --- portage-2.2.8.orig/pym/portage/exception.py +++ portage-2.2.8/pym/portage/exception.py @@ -74,6 +74,9 @@ class InvalidData(PortageException): class InvalidDataType(PortageException): """An incorrect type was passed instead of the expected one""" +class RetryEmerge(PortageException): +      """Re-try the emerge request""" + class InvalidLocation(PortageException): """Data was not found when it was expected to exist or was specified incorrectly""" }}

Debugging
FEATURES="splitdebug installsources"

Fedora rawhide on LXC
NAME=rawhide RELEASE=rawhide VGNAME=vg

euse -E lua caps -p app-arch/rpm emerge -v1 rpm

lxc-create -n $NAME -t fedora -B lvm --vgname $VGNAME -- -R $RELEASE

Notes:


 * With new LXC builds, LVM won't work.
 * LXC container's systemd breaks host's ttys

Systemd
From udev to systemd:

emerge --unmerge udev emerge -v systemd

What you need to have a dual boot Gentoo with systemd and OpenRC:

app-emulation/libvirt >= 1.2.3 sys-fs/lvm2 >= ???


 * Configure PAM

Network printing
Install the necessary packages:

euse -E zeroconf emerge -av cups nss-mdns system-config-printer-gnome

Make sure nss-mdns is configured:

hosts:      files mdns_minimal dns mdns
 * 1) grep hosts /etc/nsswitch.conf

Start cups and avahi-daemon.

Find and configure the printer:

system-config-printer

Get rid of window tearing
compton -c --vsync opengl --backend glx --vsync opengl-swc

Screen lock using systemd
/etc/systemd/system/slock.service:

[Unit] Description=Lock X session using slock Before=sleep.target

[Service] User=pavlix Environment=DISPLAY=:0 Type=simple ExecStart=/usr/bin/slock

[Install] WantedBy=sleep.target WantedBy=lock.target

A multi-user variant can be prepared with xautolock.

Pages

 * Debugging