Compare commits
64 Commits
deb977de09
...
pixelbook
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
06de3fb0ac | ||
|
|
eaa05e13d0 | ||
|
|
98f6ca10ff | ||
|
|
675652044f | ||
|
|
c901defbf3 | ||
|
|
8bf7b7d489 | ||
|
|
6e772f1137 | ||
|
|
d7f99659f1 | ||
|
|
023e362896 | ||
|
|
c66327a31f | ||
|
|
423d057abd | ||
|
|
6061f61c16 | ||
|
|
f6bc39a7fb | ||
|
|
68e84fdd77 | ||
|
|
48bdb12e77 | ||
|
|
ec72d20455 | ||
|
|
7f47b1ca1b | ||
|
|
5fcb37591c | ||
|
|
3f0b8162b8 | ||
|
|
b90ec542de | ||
|
|
16b7a200de | ||
|
|
e3e7de8eb1 | ||
|
|
51e5917e43 | ||
|
|
2d260dec90 | ||
|
|
72a8d6f615 | ||
|
|
34ffd5c100 | ||
|
|
da36f1b3d8 | ||
|
|
1c922c2234 | ||
|
|
d56132618a | ||
|
|
575d4360f1 | ||
|
|
e7328f2865 | ||
|
|
6be5ad6b3d | ||
|
|
44d3cc61f5 | ||
|
|
d20ce1e4d4 | ||
|
|
ae43050061 | ||
|
|
7ecf2ef1b1 | ||
|
|
05c3b0c1dc | ||
|
|
fccb2312da | ||
|
|
47c36a82bf | ||
|
|
112cba2b8c | ||
|
|
1a017cfac7 | ||
|
|
eae6737d76 | ||
|
|
c652e60619 | ||
|
|
b94e13d63e | ||
|
|
68139849f6 | ||
|
|
8975324e7c | ||
|
|
e5fd4bf9e6 | ||
|
|
a0666e6904 | ||
|
|
a97378654e | ||
|
|
f28f542d4d | ||
|
|
9d118078ae | ||
|
|
c2a0f90b4f | ||
|
|
6f3c5ca025 | ||
|
|
49fa0eb9cc | ||
|
|
e4b10e7260 | ||
|
|
a536defe9a | ||
|
|
c7b8b4c510 | ||
|
|
34cd3b7aa4 | ||
|
|
1f18074e29 | ||
|
|
971ed7e75d | ||
|
|
35709eb06a | ||
|
|
25c2f2753b | ||
|
|
fa1ed38678 | ||
|
|
beb8781b5c |
@@ -18,6 +18,7 @@ hwpstate: false
|
||||
build_user:
|
||||
name: talexander
|
||||
group: talexander
|
||||
devfs_rules: "homeserver_devfs.rules"
|
||||
jail_zfs_dataset: zmass/encrypted/jails
|
||||
jail_zfs_dataset_mountpoint: /jail/main
|
||||
jail_canmount: "on"
|
||||
|
||||
@@ -14,9 +14,9 @@ loader_conf: "odofreebsd_loader.conf"
|
||||
install_graphics: true
|
||||
graphics_driver: "intel"
|
||||
cputype: "intel"
|
||||
cpu_opt: tigerlake
|
||||
cpu_opt: skylake
|
||||
hwpstate: true
|
||||
cores: 8
|
||||
cores: 4
|
||||
build_user:
|
||||
name: talexander
|
||||
group: talexander
|
||||
|
||||
@@ -32,8 +32,8 @@ enabled_wireguard:
|
||||
- colo
|
||||
cputype: "intel"
|
||||
hwpstate: true
|
||||
cores: 8
|
||||
cores: 4
|
||||
sway_conf_files:
|
||||
- rofimoji
|
||||
docker_storage_driver: zfs # alternatively overlay2
|
||||
docker_storage_driver: overlay2 # alternatively zfs
|
||||
docker_zfs_dataset: zroot/linux/archmain/docker
|
||||
|
||||
35
ansible/environments/laptop/host_vars/pixellinux
Normal file
35
ansible/environments/laptop/host_vars/pixellinux
Normal file
@@ -0,0 +1,35 @@
|
||||
os_flavor: "linux"
|
||||
users:
|
||||
talexander:
|
||||
initialize: true
|
||||
uid: 11235
|
||||
gid: 1000
|
||||
groups:
|
||||
- name: wheel
|
||||
- name: users
|
||||
- name: docker
|
||||
- name: libvirt
|
||||
- name: uucp
|
||||
authorized_keys:
|
||||
- yubikey
|
||||
- main_fido
|
||||
- backup_fido
|
||||
- homeassistant
|
||||
gitconfig: "gitconfig_home"
|
||||
zfs_snapshot_datasets:
|
||||
- path: zroot/linux/archmain/be
|
||||
install_graphics: true
|
||||
graphics_driver: "intel"
|
||||
build_user:
|
||||
name: talexander
|
||||
group: talexander
|
||||
wireguard_directory: pixel
|
||||
enabled_wireguard:
|
||||
- wgh
|
||||
cputype: "intel"
|
||||
hwpstate: true
|
||||
cores: 4
|
||||
sway_conf_files:
|
||||
- rofimoji
|
||||
docker_storage_driver: overlay2 # alternatively zfs
|
||||
docker_zfs_dataset: zroot/linux/archmain/docker
|
||||
@@ -1,3 +1,4 @@
|
||||
[gui]
|
||||
odolinux ansible_connection=local ansible_host=127.0.0.1
|
||||
odofreebsd ansible_connection=local ansible_host=127.0.0.1
|
||||
pixellinux ansible_connection=local ansible_host=127.0.0.1
|
||||
|
||||
5
ansible/environments/vm/host_vars/freebsdupdatemrmanager
Normal file
5
ansible/environments/vm/host_vars/freebsdupdatemrmanager
Normal file
@@ -0,0 +1,5 @@
|
||||
os_flavor: "freebsd"
|
||||
cpu_opt: skylake
|
||||
build_user:
|
||||
name: root
|
||||
group: wheel
|
||||
@@ -1,9 +1,13 @@
|
||||
[vm]
|
||||
poudriereodo ansible_user=builder ansible_host=10.213.177.12
|
||||
poudrieremrmanager ansible_user=root ansible_host=poudriere
|
||||
freebsdupdatemrmanager ansible_user=root ansible_host=freebsdupdate
|
||||
#
|
||||
# Put in ~/.ssh/config
|
||||
# Host poudriere
|
||||
# ProxyJump talexander@mrmanager
|
||||
# HostName 10.215.1.203
|
||||
#
|
||||
# Host freebsdupdate
|
||||
# ProxyJump talexander@mrmanager
|
||||
# HostName 10.215.1.213
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
- javascript
|
||||
- launch_keyboard
|
||||
- lvfs
|
||||
- restaurant_health_rating
|
||||
|
||||
- hosts: nat_dhcp:homeserver_nat_dhcp:mrmanager_nat_dhcp
|
||||
vars:
|
||||
@@ -68,6 +69,7 @@
|
||||
- portshaker
|
||||
- poudriere
|
||||
- poudrierenginx
|
||||
- freebsd_update_server
|
||||
|
||||
- hosts: mrmanager
|
||||
vars:
|
||||
@@ -112,3 +114,37 @@
|
||||
- doas
|
||||
- users
|
||||
- public_dns
|
||||
|
||||
- hosts: odolinux:odofreebsd
|
||||
vars:
|
||||
ansible_become: True
|
||||
roles:
|
||||
- framework_laptop
|
||||
|
||||
- hosts: pixellinux
|
||||
vars:
|
||||
ansible_become: True
|
||||
roles:
|
||||
- pixelbook
|
||||
|
||||
- hosts: odofreebsd
|
||||
vars:
|
||||
ansible_become: True
|
||||
roles:
|
||||
- freebsd_update_server
|
||||
|
||||
- hosts: freebsdupdatemrmanager
|
||||
vars:
|
||||
ansible_become: True
|
||||
roles:
|
||||
- sudo # for poudboot script
|
||||
- doas
|
||||
- fstab
|
||||
- build
|
||||
- freebsd_update_server
|
||||
|
||||
- hosts: homeserver
|
||||
vars:
|
||||
ansible_become: True
|
||||
roles:
|
||||
- homeserver
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Automounter master map, see auto_master(5) for details.
|
||||
#
|
||||
|
||||
@@ -7,7 +7,6 @@
|
||||
# This file controls resource limits, accounting limits and
|
||||
# default user environment settings.
|
||||
#
|
||||
# $FreeBSD$
|
||||
#
|
||||
|
||||
# Default settings effectively disable resource limits, see the
|
||||
|
||||
@@ -1,3 +1,43 @@
|
||||
# - name: Create directories
|
||||
# file:
|
||||
# name: "{{ item }}"
|
||||
# state: directory
|
||||
# mode: 0755
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - /foo/bar
|
||||
|
||||
# - name: Install scripts
|
||||
# copy:
|
||||
# src: "files/{{ item.src }}"
|
||||
# dest: "{{ item.dest }}"
|
||||
# mode: 0755
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - src: foo.bash
|
||||
# dest: /usr/local/bin/foo
|
||||
|
||||
# - name: Install Configuration
|
||||
# copy:
|
||||
# src: "files/{{ item.src }}"
|
||||
# dest: "{{ item.dest }}"
|
||||
# mode: 0600
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - src: foo.conf
|
||||
# dest: /usr/local/etc/foo.conf
|
||||
|
||||
# - name: Clone Source
|
||||
# git:
|
||||
# repo: "https://foo.bar/baz.git"
|
||||
# dest: /foo/bar
|
||||
# version: "v1.0.2"
|
||||
# force: true
|
||||
# diff: false
|
||||
|
||||
- import_tasks: tasks/freebsd.yaml
|
||||
when: 'os_flavor == "freebsd"'
|
||||
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
freebsd_version: "releng/13.2"
|
||||
# freebsd_version: "releng/13.2"
|
||||
freebsd_version: "9c80d66ec1b4c5b9ac7aaf5b0fdbb1628d49c181"
|
||||
|
||||
@@ -1,34 +1,27 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
=a/z4
|
||||
0H+RsWG0HlRvbSBBbGV4YW5kZXIgPHdvcmtAZml6ei5idXp6PoiQBBMWCAA4FiEE
|
||||
uEgVk2PCh3kXlUvhJ95A2bhFXBsFAl+w+R0CGwMFCwkIBwIGFQoJCAsCBBYCAwEC
|
||||
HgECF4AACgkQJ95A2bhFXBt6fgD+NOYnw9gz5K/q3H5LE/JvqzCSHezJmeGgif0C
|
||||
uU4m1/MA+gPDKME7syEtJsTpELEMrxWWpDW0tD/W1iJE7roGYPQPtB1Ub20gQWxl
|
||||
eGFuZGVyIDx0b21AZml6ei5idXp6PoiQBBMWCAA4FiEEuEgVk2PCh3kXlUvhJ95A
|
||||
2bhFXBsFAl2cFhoCGwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQJ95A2bhF
|
||||
XBvYJQEA19wc2s/bEKcnHONC3i8UikLFqZXyYoH6/MFjoAteU8sBAKpE7Qq0zbJb
|
||||
XWRESzK3u6p7/+kUqOeDltAuKXTe1FAGuDMEXZwWyhYJKwYBBAHaRw8BAQdAPyIL
|
||||
4EGg4T5JO9q2kpVDy2WjMiXz3nZXwYW4GLoTYkiI9QQYFggAJgIbAhYhBLhIFZNj
|
||||
wod5F5VL4SfeQNm4RVwbBQJlC4ZhBQkLMdaXAIF2IAQZFggAHRYhBIHmRDmWdVAu
|
||||
sSUWutOhecmlPA7eBQJdnBbKAAoJENOhecmlPA7ejJ4A/iq7N2mMhx+ovOXm1REo
|
||||
ASPF3l4YAAjOHsXqcPtFHKGJAQCiuA71d6CQ+qNZLuka/KVB/etkkJvDzvaTtiQQ
|
||||
QG+gAwkQJ95A2bhFXBtRDgEAqymMavroD5c/4+M/EZ3/d8wxfA9E3Fb/1mt4c2Zr
|
||||
NnkBAKYOM+pz/pncFnV+kF7h7TQEEYuGw1JhJVT/duA4lwsLuDMEXZwXARYJKwYB
|
||||
BAHaRw8BAQdAa76TmWuKuiR1bnNV1FUE6oQ4C8A+UiQb8x0k1z2DmTKIfgQYFggA
|
||||
JgIbIBYhBLhIFZNjwod5F5VL4SfeQNm4RVwbBQJlC4ZwBQkLMdZgAAoJECfeQNm4
|
||||
RVwb8TkA/RkBu9Ev8iDE5nvn8YF8FRiY56Z5d+SBPG4VvrCzXrmlAP46wUjIRpkM
|
||||
rTbb1GMbvYnkeOrBs/qiWjEtHHc3ZLMWD7g4BF2cFygSCisGAQQBl1UBBQEBB0AO
|
||||
0t3BUxLuokTqKVcheFAZd4UKxAGznPQlvsVyhWWIEgMBCAeIfgQYFggAJgIbDBYh
|
||||
BLhIFZNjwod5F5VL4SfeQNm4RVwbBQJlC4ZwBQkLMdY5AAoJECfeQNm4RVwbXscA
|
||||
/A8zRRTCwQKxJ8iz5jmTcVFAhl2vD781Dtv8NvcWd5t8APwIwcuFVZZA3yayhIxi
|
||||
3aqYpMRxpn2t6Nswax1MIM8DBQ==
|
||||
=dzEV
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
@@ -31,10 +31,11 @@ Architecture = auto
|
||||
# Misc options
|
||||
#UseSyslog
|
||||
#Color
|
||||
#TotalDownload
|
||||
NoProgressBar
|
||||
# We cannot check disk space from within a chroot environment
|
||||
#CheckSpace
|
||||
#VerbosePkgLists
|
||||
VerbosePkgLists
|
||||
ParallelDownloads = 5
|
||||
|
||||
# By default, pacman accepts packages signed by keys that its local keyring
|
||||
# trusts (see pacman-key and its man page), as well as unsigned packages.
|
||||
@@ -69,32 +70,24 @@ LocalFileSigLevel = Optional
|
||||
# repo name header and Include lines. You can add preferred servers immediately
|
||||
# after the header, and they will be used before the default mirrors.
|
||||
|
||||
#[testing]
|
||||
#[core-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[core]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[extra-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[extra]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
#[community-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[community]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# If you want to run 32 bit applications on your x86_64 system,
|
||||
# enable the multilib repositories as required here.
|
||||
|
||||
#[multilib-testing]
|
||||
#Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
[multilib]
|
||||
Include = /etc/pacman.d/mirrorlist
|
||||
|
||||
# An example of a custom package repository. See the pacman manpage for
|
||||
# tips on creating your own repositories.
|
||||
#[custom]
|
||||
#SigLevel = Optional TrustAll
|
||||
#Server = file:///home/custompkgs
|
||||
|
||||
[custom]
|
||||
SigLevel = Required
|
||||
Server = file:///var/cache/pacman/custom
|
||||
@@ -1,3 +1,5 @@
|
||||
dependencies:
|
||||
- users
|
||||
- gpg
|
||||
- role: users
|
||||
when: 'os_flavor == "linux"'
|
||||
- role: gpg
|
||||
when: 'os_flavor == "linux"'
|
||||
|
||||
@@ -3,12 +3,3 @@
|
||||
|
||||
- import_tasks: tasks/linux.yaml
|
||||
when: 'os_flavor == "linux"'
|
||||
|
||||
- include_tasks:
|
||||
file: tasks/peruser.yaml
|
||||
apply:
|
||||
become: yes
|
||||
become_user: "{{ initialize_user }}"
|
||||
loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}"
|
||||
loop_control:
|
||||
loop_var: initialize_user
|
||||
|
||||
@@ -99,7 +99,7 @@
|
||||
become: true
|
||||
become_user: "{{ build_user.name }}"
|
||||
args:
|
||||
creates: /var/cache/pacman/custom/custom.db.tar
|
||||
creates: /var/cache/pacman/custom/custom.db.tar.sig
|
||||
|
||||
- name: Install scripts
|
||||
copy:
|
||||
|
||||
@@ -5,12 +5,12 @@ KERNCONF=CUSTOM
|
||||
WITH_MALLOC_PRODUCTION=YES
|
||||
WITHOUT_LLVM_ASSERTIONS=YES
|
||||
WITH_REPRODUCIBLE_BUILD=YES
|
||||
PORTS_MODULES+=graphics/drm-510-kmod
|
||||
NO_SHARED=YES
|
||||
PORTS_MODULES+=graphics/drm-kmod
|
||||
PORTS_MODULES+=graphics/gpu-firmware-intel-kmod
|
||||
PORTS_MODULES+=net/wireguard-kmod
|
||||
|
||||
# Would be fun to experiment with:
|
||||
# WITHOUT_SOURCELESS=YES
|
||||
# WITHOUT_SHARED_TOOLCHAIN=YES
|
||||
# WITHOUT_GAMES=YES
|
||||
# WITHOUT_KERBEROS=YES
|
||||
# WITHOUT_LEGACY_CONSOLE=YES
|
||||
|
||||
@@ -7,6 +7,12 @@ IFS=$'\n\t'
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
perc=$1
|
||||
if [ "$perc" -gt 100 ]; then
|
||||
perc=100
|
||||
fi
|
||||
if [ "$perc" -lt 0 ]; then
|
||||
perc=0
|
||||
fi
|
||||
epp=$((100 - perc))
|
||||
|
||||
sysctl -N dev.hwpstate_intel | grep -E 'dev.hwpstate_intel.[0-9]+.epp' | while read var; do
|
||||
|
||||
@@ -8,15 +8,20 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
perc=$1
|
||||
|
||||
if [ $perc -gt 100 ]; then
|
||||
if [ "$perc" -gt 100 ]; then
|
||||
echo 0 | tee /sys/devices/system/cpu/intel_pstate/no_turbo
|
||||
perc=100
|
||||
else
|
||||
echo 1 | tee /sys/devices/system/cpu/intel_pstate/no_turbo
|
||||
fi
|
||||
|
||||
if [ $perc -lt 50 ]; then
|
||||
echo "power" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
||||
else
|
||||
if [ "$perc" -ge 80 ]; then
|
||||
echo "performance" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
||||
elif [ "$perc" -ge 60 ]; then
|
||||
echo "balance_performance" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
||||
elif [ "$perc" -ge 40 ]; then
|
||||
echo "default" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
||||
elif [ "$perc" -ge 20 ]; then
|
||||
echo "balance_power" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
||||
else
|
||||
echo "power" | tee /sys/devices/system/cpu/cpufreq/policy*/energy_performance_preference
|
||||
fi
|
||||
|
||||
@@ -4,27 +4,27 @@
|
||||
- powertop
|
||||
state: present
|
||||
|
||||
- name: Install tmpfiles.d configuration
|
||||
copy:
|
||||
src: "files/{{ item }}_tmpfiles.conf"
|
||||
dest: "/etc/tmpfiles.d/{{ item }}.conf"
|
||||
mode: 0644
|
||||
owner: root
|
||||
group: wheel
|
||||
loop:
|
||||
- disable_turboboost
|
||||
# - name: Install tmpfiles.d configuration
|
||||
# copy:
|
||||
# src: "files/{{ item }}_tmpfiles.conf"
|
||||
# dest: "/etc/tmpfiles.d/{{ item }}.conf"
|
||||
# mode: 0644
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - disable_turboboost
|
||||
|
||||
- name: Favor energy efficiency for Speed Shift
|
||||
when: hwpstate is defined and hwpstate and cores is defined
|
||||
template:
|
||||
src: "templates/{{ item.src }}.j2"
|
||||
dest: "{{ item.dest }}"
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: wheel
|
||||
loop:
|
||||
- src: energy_performance_preference.conf
|
||||
dest: /etc/tmpfiles.d/energy_performance_preference.conf
|
||||
# - name: Favor energy efficiency for Speed Shift
|
||||
# when: hwpstate is defined and hwpstate and cores is defined
|
||||
# template:
|
||||
# src: "templates/{{ item.src }}.j2"
|
||||
# dest: "{{ item.dest }}"
|
||||
# mode: 0755
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - src: energy_performance_preference.conf
|
||||
# dest: /etc/tmpfiles.d/energy_performance_preference.conf
|
||||
|
||||
- name: Install scripts
|
||||
when: hwpstate is defined and hwpstate
|
||||
|
||||
19
ansible/roles/devfs/files/homeserver_devfs.rules
Normal file
19
ansible/roles/devfs/files/homeserver_devfs.rules
Normal file
@@ -0,0 +1,19 @@
|
||||
# [localrules=10]
|
||||
# add path 'input/*' mode 0660 group video
|
||||
# add path 'usb/*' mode 0660 group usb
|
||||
|
||||
[tajailwg=13]
|
||||
add include $devfsrules_hide_all
|
||||
add include $devfsrules_unhide_basic
|
||||
add include $devfsrules_unhide_login
|
||||
add path 'bpf*' unhide
|
||||
add path pf unhide
|
||||
add path pflog unhide
|
||||
add path pfsynv unhide
|
||||
add path 'tun*' unhide
|
||||
|
||||
[tajaildhcp=14]
|
||||
add include $devfsrules_hide_all
|
||||
add include $devfsrules_unhide_basic
|
||||
add include $devfsrules_unhide_login
|
||||
add path 'bpf*' unhide
|
||||
@@ -1,7 +1,7 @@
|
||||
(use-package diminish)
|
||||
|
||||
;; Eglot recommends pulling the latest of the standard libraries it
|
||||
;; uses from ELPA if you're not tracking the current emacs development
|
||||
;; uses from ELPA if you're not tracking the current.config/emacsevelopment
|
||||
;; branch.
|
||||
(use-package xref
|
||||
:pin gnu
|
||||
@@ -36,6 +36,7 @@
|
||||
|
||||
;; Display a horizontal line instead of ^L for page break characters
|
||||
(use-package page-break-lines
|
||||
:diminish
|
||||
:config
|
||||
(global-page-break-lines-mode +1)
|
||||
)
|
||||
@@ -44,7 +45,7 @@
|
||||
;; This is an emacs built-in but we're pulling the latest version
|
||||
:config
|
||||
(setq recentf-max-saved-items 100)
|
||||
(setq recentf-save-file (recentf-expand-file-name "~/.emacs.d/private/cache/recentf"))
|
||||
(setq recentf-save-file (recentf-expand-file-name "~/.config/emacs/private/cache/recentf"))
|
||||
(recentf-mode 1))
|
||||
|
||||
;; Persist history over Emacs restarts. Vertico sorts by history position.
|
||||
|
||||
@@ -53,7 +53,15 @@
|
||||
(let ((load-it (lambda (f)
|
||||
(load-file (concat (file-name-as-directory dir) f)))
|
||||
))
|
||||
(mapc load-it (directory-files dir nil "\\.el$"))))
|
||||
(mapc load-it (directory-files dir nil "\\.el$"))))
|
||||
|
||||
(defun generate-vc-link ()
|
||||
(interactive)
|
||||
(or
|
||||
(generate-github-link)
|
||||
(generate-source-hut-link)
|
||||
)
|
||||
)
|
||||
|
||||
(defun generate-github-link ()
|
||||
"Generate a permalink to the current line."
|
||||
@@ -69,10 +77,37 @@
|
||||
(let* (
|
||||
(gh-org (match-string 2 repository-url))
|
||||
(gh-repo (match-string 3 repository-url))
|
||||
(full-url (format "https://github.com/%s/%s/blob/%s/%s#L%s" gh-org gh-repo current-rev relative-path line-number))
|
||||
(full-url (format "https://github.com/%s/%s/blob/%s/%s?plain=1#L%s" gh-org gh-repo current-rev relative-path line-number))
|
||||
)
|
||||
(message "%s" full-url)
|
||||
(kill-new full-url)
|
||||
t
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
(defun generate-source-hut-link ()
|
||||
"Generate a permalink to the current line."
|
||||
(interactive)
|
||||
(let (
|
||||
(current-rev (vc-working-revision buffer-file-name))
|
||||
(line-number (line-number-at-pos))
|
||||
(repository-url (vc-git-repository-url buffer-file-name))
|
||||
(relative-path (file-relative-name buffer-file-name (vc-root-dir)))
|
||||
)
|
||||
(message "Using repo url %s" repository-url)
|
||||
(save-match-data
|
||||
(and (string-match "https://git.sr.ht/\\([^/]+\\)/\\([^/]+\\)" repository-url)
|
||||
(let* (
|
||||
(sh-org (match-string 1 repository-url))
|
||||
(sh-repo (match-string 2 repository-url))
|
||||
(full-url (format "https://git.sr.ht/%s/%s/tree/%s/%s#L%s" sh-org sh-repo current-rev relative-path line-number))
|
||||
)
|
||||
(message "%s" full-url)
|
||||
(kill-new full-url)
|
||||
t
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
;; dabbrev-expand. Seems to be some sort of dumb-expand. Accidentally hitting it when trying to use M-?
|
||||
(global-unset-key (kbd "M-/"))
|
||||
|
||||
(global-set-key (kbd "C-x g l") 'generate-github-link)
|
||||
(global-set-key (kbd "C-x g l") 'generate-vc-link)
|
||||
|
||||
(provide 'base-global-keys)
|
||||
|
||||
@@ -53,16 +53,25 @@
|
||||
use-short-answers t
|
||||
;; Natively compile packages
|
||||
package-native-compile t
|
||||
;; Typed text replaces selection
|
||||
delete-selection-mode t
|
||||
;; Confirm when opening a file that does not exist
|
||||
confirm-nonexistent-file-or-buffer t
|
||||
;; Do not require double space to end a sentence.
|
||||
sentence-end-double-space nil
|
||||
;; Show trailing whitespace
|
||||
show-trailing-whitespace t
|
||||
;; Remove the line when killing it with ctrl-k
|
||||
kill-whole-line t
|
||||
)
|
||||
|
||||
;; (setq-default fringes-outside-margins t)
|
||||
|
||||
;; Per-pixel scrolling instead of per-line
|
||||
(pixel-scroll-precision-mode)
|
||||
|
||||
;; Typed text replaces selection
|
||||
(delete-selection-mode)
|
||||
|
||||
|
||||
;; Delete trailing whitespace before save
|
||||
(add-hook 'before-save-hook 'delete-trailing-whitespace)
|
||||
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
;; C-M-.
|
||||
([remap xref-find-apropos] . #'consult-eglot-symbols)
|
||||
)
|
||||
:hook (
|
||||
(eglot-managed-mode . (lambda ()
|
||||
(when (eglot-managed-p)
|
||||
(corfu-mode +1)
|
||||
)
|
||||
))
|
||||
)
|
||||
;; :hook (
|
||||
;; (eglot-managed-mode . (lambda ()
|
||||
;; (when (eglot-managed-p)
|
||||
;; (corfu-mode +1)
|
||||
;; )
|
||||
;; ))
|
||||
;; )
|
||||
:config
|
||||
(fset #'jsonrpc--log-event #'ignore) ;; Disable logging LSP traffic for performance boost
|
||||
(set-face-attribute 'eglot-highlight-symbol-face nil :background "#0291a1" :foreground "black")
|
||||
@@ -33,4 +33,14 @@
|
||||
:commands (consult-eglot-symbols)
|
||||
)
|
||||
|
||||
(use-package company
|
||||
:after eglot
|
||||
:hook (eglot-managed-mode . company-mode)
|
||||
:config
|
||||
(setq company-backends '((company-capf)))
|
||||
)
|
||||
|
||||
;; (use-package company-box
|
||||
;; :hook (company-mode . company-box-mode))
|
||||
|
||||
(provide 'common-lsp)
|
||||
|
||||
@@ -3,6 +3,10 @@
|
||||
(use-package bash-ts-mode
|
||||
:ensure nil
|
||||
:commands (bash-ts-mode)
|
||||
:hook (
|
||||
(bash-ts-mode . (lambda ()
|
||||
(flymake-mode +1)
|
||||
)))
|
||||
:init
|
||||
(add-to-list 'major-mode-remap-alist '(sh-mode . bash-ts-mode))
|
||||
(add-to-list 'treesit-language-source-alist '(bash "https://github.com/tree-sitter/tree-sitter-bash"))
|
||||
|
||||
@@ -5,19 +5,25 @@
|
||||
:pin manual
|
||||
:mode (
|
||||
("\\.go\\'" . go-ts-mode)
|
||||
("/go\\.mod\\'" . go-ts-mode)
|
||||
("/go\\.mod\\'" . go-mod-ts-mode)
|
||||
)
|
||||
:commands (go-mode go-ts-mode)
|
||||
:commands (go-ts-mode go-mod-ts-mode)
|
||||
:hook (
|
||||
(go-ts-mode . (lambda ()
|
||||
(when-linux
|
||||
(eglot-ensure)
|
||||
)
|
||||
))
|
||||
))
|
||||
|
||||
(go-mod-ts-mode . (lambda ()
|
||||
(when-linux
|
||||
(eglot-ensure)
|
||||
)
|
||||
))
|
||||
|
||||
;; (before-save . lsp-format-buffer)
|
||||
)
|
||||
:init
|
||||
(add-to-list 'major-mode-remap-alist '(go-mode . go-ts-mode))
|
||||
(add-to-list 'treesit-language-source-alist '(go "https://github.com/tree-sitter/tree-sitter-go"))
|
||||
(add-to-list 'treesit-language-source-alist '(gomod "https://github.com/camdencheek/tree-sitter-go-mod"))
|
||||
(unless (treesit-ready-p 'go) (treesit-install-language-grammar 'go))
|
||||
|
||||
@@ -94,20 +94,20 @@
|
||||
)
|
||||
|
||||
|
||||
;; (use-package web-mode
|
||||
;; :mode (("\\.dust\\'" . web-mode)
|
||||
;; )
|
||||
;; :config
|
||||
;; (setq web-mode-markup-indent-offset 2)
|
||||
;; (setq web-mode-enable-current-element-highlight t)
|
||||
;; )
|
||||
(use-package web-mode
|
||||
:mode (("\\.dust\\'" . dust-mode)
|
||||
)
|
||||
:config
|
||||
(setq web-mode-markup-indent-offset 2)
|
||||
(setq web-mode-enable-current-element-highlight t)
|
||||
)
|
||||
|
||||
;; ;; Define a custom mode for dust so that org-mode handle #+BEGIN_SRC dust blocks
|
||||
;; (define-derived-mode dust-mode web-mode "WebDust"
|
||||
;; "Major mode for editing dust templates in web-mode."
|
||||
;; (web-mode)
|
||||
;; (web-mode-set-engine "dust")
|
||||
;; ;; (setq web-mode-content-type "html")
|
||||
;; )
|
||||
;; Define a custom mode for dust so that org-mode handle #+BEGIN_SRC dust blocks
|
||||
(define-derived-mode dust-mode web-mode "WebDust"
|
||||
"Major mode for editing dust templates in web-mode."
|
||||
(web-mode)
|
||||
(web-mode-set-engine "dust")
|
||||
;; (setq web-mode-content-type "html")
|
||||
)
|
||||
|
||||
(provide 'lang-javascript)
|
||||
|
||||
@@ -7,6 +7,8 @@
|
||||
:init (setq markdown-command "multimarkdown"))
|
||||
|
||||
;; For code block editing
|
||||
(use-package edit-indirect)
|
||||
(use-package edit-indirect
|
||||
:commands (edit-indirect-region edit-indirect-save edit-indirect-abort edit-indirect-commit edit-indirect-display-active-buffer)
|
||||
)
|
||||
|
||||
(provide 'lang-markdown)
|
||||
|
||||
@@ -20,6 +20,9 @@
|
||||
org-confirm-babel-evaluate nil
|
||||
)
|
||||
|
||||
;; Show the full source of org-mode links instead of condensing them. I.E. render "[[foo]]" instead of "foo"
|
||||
(setq org-descriptive-links nil)
|
||||
|
||||
;; Only interpret _ and ^ and sub and superscripts if they're of the form _{subscript} and ^{superscript}
|
||||
(setq org-export-with-sub-superscripts '{})
|
||||
;; Don't include a "validate" link at the bottom of html export
|
||||
@@ -67,7 +70,6 @@
|
||||
(use-package org-bullets
|
||||
:commands org-bullets-mode
|
||||
:hook (org-mode . org-bullets-mode)
|
||||
:bind ((:map org-mode-map ([remap fill-paragraph] . unfill-toggle)))
|
||||
)
|
||||
|
||||
(use-package gnuplot-mode)
|
||||
|
||||
@@ -38,14 +38,17 @@
|
||||
:hook (
|
||||
(rust-ts-mode . (lambda ()
|
||||
(eglot-ensure)
|
||||
;; Disable on-type formatting which was incorrectly injecting parenthesis into my code.
|
||||
(make-local-variable 'eglot-ignored-server-capabilities)
|
||||
(add-to-list 'eglot-ignored-server-capabilities :documentOnTypeFormattingProvider)
|
||||
;; Configure initialization options
|
||||
(let ((rust-analyzer-command (locate-rust-analyzer)))
|
||||
(when rust-analyzer-command
|
||||
;; (add-to-list 'eglot-server-programs `(rust-ts-mode . (,rust-analyzer-command)))
|
||||
(add-to-list 'eglot-server-programs `(rust-ts-mode . (,rust-analyzer-command :initializationOptions (:imports (:granularity (:enforce t :group "item")
|
||||
:merge (:glob nil)
|
||||
:prefix "self")
|
||||
:inlayHints (:maxLength nil)
|
||||
:workspace (:symbol (:search (:limit 1024)))))))
|
||||
))))
|
||||
)
|
||||
)
|
||||
(add-hook 'before-save-hook 'eglot-format-buffer nil 'local)
|
||||
|
||||
10
ansible/roles/emacs/files/elisp/util-flymake.el
Normal file
10
ansible/roles/emacs/files/elisp/util-flymake.el
Normal file
@@ -0,0 +1,10 @@
|
||||
(use-package flymake
|
||||
:pin manual
|
||||
:ensure nil
|
||||
:commands (flymake-mode)
|
||||
:config
|
||||
;; Set the text before the brackets for flymake's modeline output to an empty string to make it less verbose.
|
||||
(setq flymake-mode-line-lighter "")
|
||||
)
|
||||
|
||||
(provide 'util-flymake)
|
||||
@@ -46,11 +46,11 @@
|
||||
)
|
||||
)
|
||||
|
||||
(use-package corfu
|
||||
:commands (corfu-mode global-corfu-mode)
|
||||
:custom
|
||||
(corfu-auto t)
|
||||
)
|
||||
;; (use-package corfu
|
||||
;; :commands (corfu-mode global-corfu-mode)
|
||||
;; :custom
|
||||
;; (corfu-auto t)
|
||||
;; )
|
||||
|
||||
(use-package marginalia
|
||||
:config (marginalia-mode))
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
|
||||
(require 'util-vertico)
|
||||
|
||||
(require 'util-flymake)
|
||||
|
||||
(require 'lang-python)
|
||||
|
||||
(require 'lang-javascript)
|
||||
|
||||
@@ -3,24 +3,27 @@
|
||||
|
||||
INIT_SCRIPT=$(cat <<EOF
|
||||
(progn
|
||||
(setq make-backup-files nil auto-save-default nil create-lockfiles nil)
|
||||
(load-theme 'tango-dark t)
|
||||
(set-face-attribute 'default nil :background "black")
|
||||
;; Bright yellow highlighting for selected region
|
||||
(set-face-attribute 'region nil :background "#ffff50" :foreground "black")
|
||||
;; Bright green cursor to distinguish from yellow region
|
||||
(set-cursor-color "#ccff66")
|
||||
;; Hightlight the current line
|
||||
(set-face-attribute 'line-number-current-line nil :foreground "white")
|
||||
;; Set default font
|
||||
(set-face-attribute 'default nil :height 100 :width 'regular :weight 'regular :family "Cascadia Mono")
|
||||
;; Set fallback font for unicode glyphs
|
||||
(set-fontset-font "fontset-default" nil (font-spec :name "Noto Color Emoji"))
|
||||
(menu-bar-mode -1)
|
||||
(when (fboundp 'tool-bar-mode)
|
||||
(tool-bar-mode -1))
|
||||
(when ( fboundp 'scroll-bar-mode)
|
||||
(scroll-bar-mode -1)))
|
||||
(setq make-backup-files nil auto-save-default nil create-lockfiles nil)
|
||||
(load-theme 'tango-dark t)
|
||||
(set-face-attribute 'default nil :background "black")
|
||||
;; Bright yellow highlighting for selected region
|
||||
(set-face-attribute 'region nil :background "#ffff50" :foreground "black")
|
||||
;; Bright green cursor to distinguish from yellow region
|
||||
(set-cursor-color "#ccff66")
|
||||
;; Hightlight the current line
|
||||
(set-face-attribute 'line-number-current-line nil :foreground "white")
|
||||
;; Set default font
|
||||
(set-face-attribute 'default nil :height 100 :width 'regular :weight 'regular :family "Cascadia Mono")
|
||||
;; Set fallback font for unicode glyphs
|
||||
(set-fontset-font "fontset-default" nil (font-spec :name "Noto Color Emoji"))
|
||||
(menu-bar-mode -1)
|
||||
(when (fboundp 'tool-bar-mode)
|
||||
(tool-bar-mode -1))
|
||||
(when ( fboundp 'scroll-bar-mode)
|
||||
(scroll-bar-mode -1))
|
||||
(pixel-scroll-precision-mode)
|
||||
(setq frame-resize-pixelwise t)
|
||||
)
|
||||
EOF
|
||||
)
|
||||
|
||||
|
||||
@@ -16,4 +16,7 @@
|
||||
(when (fboundp 'tool-bar-mode)
|
||||
(tool-bar-mode -1))
|
||||
(when ( fboundp 'scroll-bar-mode)
|
||||
(scroll-bar-mode -1)))
|
||||
(scroll-bar-mode -1))
|
||||
(pixel-scroll-precision-mode)
|
||||
(setq frame-resize-pixelwise t)
|
||||
)
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
- pyright
|
||||
- gopls
|
||||
- typescript-language-server
|
||||
- shellcheck
|
||||
state: present
|
||||
|
||||
- name: Create directories
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
owner: "{{ account_name.stdout }}"
|
||||
group: "{{ group_name.stdout }}"
|
||||
loop:
|
||||
- ".emacs.d/elisp"
|
||||
- ".config/emacs/elisp"
|
||||
|
||||
- name: Configure dotfiles
|
||||
when: 'emacs_flavor == "full"'
|
||||
@@ -21,9 +21,9 @@
|
||||
group: "{{ group_name.stdout }}"
|
||||
loop:
|
||||
- src: init.el
|
||||
dest: .emacs.d/init.el
|
||||
dest: .config/emacs/init.el
|
||||
- src: early-init.el
|
||||
dest: .emacs.d/early-init.el
|
||||
dest: .config/emacs/early-init.el
|
||||
|
||||
- name: Configure dotfiles
|
||||
when: 'emacs_flavor == "plain"'
|
||||
@@ -35,7 +35,7 @@
|
||||
group: "{{ group_name.stdout }}"
|
||||
loop:
|
||||
- src: plainmacs_init.el
|
||||
dest: .emacs.d/init.el
|
||||
dest: .config/emacs/init.el
|
||||
|
||||
- name: Configure elisp files
|
||||
when: 'emacs_flavor == "full"'
|
||||
@@ -46,7 +46,7 @@
|
||||
group: "{{ group_name.stdout }}"
|
||||
loop:
|
||||
- src: elisp
|
||||
dest: .emacs.d/
|
||||
dest: .config/emacs/
|
||||
|
||||
- name: Configure zshrc additional imports
|
||||
copy:
|
||||
|
||||
15
ansible/roles/framework_laptop/tasks/common.yaml
Normal file
15
ansible/roles/framework_laptop/tasks/common.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
- import_tasks: tasks/freebsd.yaml
|
||||
when: 'os_flavor == "freebsd"'
|
||||
|
||||
- import_tasks: tasks/linux.yaml
|
||||
when: 'os_flavor == "linux"'
|
||||
|
||||
- include_tasks:
|
||||
file: tasks/peruser.yaml
|
||||
apply:
|
||||
become: yes
|
||||
become_user: "{{ initialize_user }}"
|
||||
when: users is defined
|
||||
loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}"
|
||||
loop_control:
|
||||
loop_var: initialize_user
|
||||
5
ansible/roles/framework_laptop/tasks/freebsd.yaml
Normal file
5
ansible/roles/framework_laptop/tasks/freebsd.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
# - name: Install packages
|
||||
# package:
|
||||
# name:
|
||||
# - foo
|
||||
# state: present
|
||||
9
ansible/roles/framework_laptop/tasks/linux.yaml
Normal file
9
ansible/roles/framework_laptop/tasks/linux.yaml
Normal file
@@ -0,0 +1,9 @@
|
||||
# This will prevent pools from being imported, but since my laptop has a single pool with a single disk which is mounted during boot, disabling this service saves me 10 seconds at boot. Reference: https://github.com/openzfs/zfs/issues/10891
|
||||
- name: Disable services
|
||||
systemd:
|
||||
enabled: no
|
||||
masked: true
|
||||
name: "{{ item }}"
|
||||
daemon_reload: yes
|
||||
loop:
|
||||
- systemd-udev-settle.service
|
||||
2
ansible/roles/framework_laptop/tasks/main.yaml
Normal file
2
ansible/roles/framework_laptop/tasks/main.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
- import_tasks: tasks/common.yaml
|
||||
# when: foo is defined
|
||||
130
ansible/roles/freebsd_update_server/files/build_release.bash
Normal file
130
ansible/roles/freebsd_update_server/files/build_release.bash
Normal file
@@ -0,0 +1,130 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
: ${DATA_DIRECTORY:="/usr/local/share/freebsdupdate"}
|
||||
: ${STAGE_FILE:="${DATA_DIRECTORY}/stage"}
|
||||
: ${RELEASE_DIRECTORY:="${DATA_DIRECTORY}/release"}
|
||||
: ${LOG_DIRECTORY:="${DATA_DIRECTORY}/logs"}
|
||||
: ${PORTS_TREE:="/usr/ports"}
|
||||
: ${PORTS_REPO:="https://git.FreeBSD.org/ports.git"}
|
||||
|
||||
############## Setup #########################
|
||||
|
||||
function die {
|
||||
local status_code="$1"
|
||||
shift
|
||||
(>&2 echo "${@}")
|
||||
exit "$status_code"
|
||||
}
|
||||
|
||||
function log {
|
||||
(>&2 echo "${@}")
|
||||
}
|
||||
|
||||
############## Program #########################
|
||||
|
||||
function main {
|
||||
assert_directories
|
||||
|
||||
local stage=""
|
||||
if [ -e "$STAGE_FILE" ]; then
|
||||
local stage=$(cat "$STAGE_FILE")
|
||||
fi
|
||||
if [ "$stage" = "selfbuild" ]; then
|
||||
log_cmd stage_selfbuild
|
||||
elif [ "$stage" = "selfinstallworld" ]; then
|
||||
log_cmd stage_selfinstallworld
|
||||
elif [ "$stage" = "selfconflictcheck" ]; then
|
||||
log_cmd stage_selfconflictcheck
|
||||
elif [ "$stage" = "releasebuild" ]; then
|
||||
log_cmd stage_releasebuild
|
||||
elif [ "$stage" = "done" ]; then
|
||||
log_cmd stage_done
|
||||
else
|
||||
die 1 "Unhandled stage: \"$stage\"."
|
||||
fi
|
||||
}
|
||||
|
||||
function log_cmd {
|
||||
"${@}" |& tee "$LOG_DIRECTORY/$(date +%Y%m%d-%s).log"
|
||||
}
|
||||
|
||||
function self_conflict_check {
|
||||
if etcupdate status | grep -qE '^ C '; then
|
||||
die 1 'Conflicts remain in etcupdate. Run `etcupdate resolve` to fix them first.'
|
||||
fi
|
||||
}
|
||||
|
||||
function assert_directories {
|
||||
for d in "$DATA_DIRECTORY" "$RELEASE_DIRECTORY" "$LOG_DIRECTORY"; do
|
||||
if [ ! -e "$d" ]; then
|
||||
mkdir -p "$d"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
function update_ports_tree {
|
||||
if [ ! -e "$PORTS_TREE" ]; then
|
||||
mkdir -p $PORTS_TREE
|
||||
git -C $PORTS_TREE init --initial-branch=main
|
||||
git -C $PORTS_TREE remote add origin $PORTS_REPO
|
||||
fi
|
||||
git -C $PORTS_TREE fetch origin main # 'refs/heads/main'
|
||||
git -C $PORTS_TREE checkout FETCH_HEAD
|
||||
}
|
||||
|
||||
function set_stage {
|
||||
echo "${@}" > "$STAGE_FILE"
|
||||
}
|
||||
|
||||
function stage_selfbuild {
|
||||
self_conflict_check
|
||||
assert_directories
|
||||
update_ports_tree
|
||||
|
||||
SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src clean
|
||||
SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src buildworld buildkernel
|
||||
SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src installkernel
|
||||
|
||||
set_stage "selfinstallworld"
|
||||
/sbin/shutdown -r now
|
||||
}
|
||||
|
||||
function stage_selfinstallworld {
|
||||
etcupdate -p
|
||||
SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src installworld
|
||||
etcupdate -B
|
||||
|
||||
set_stage "selfconflictcheck"
|
||||
stage_selfconflictcheck
|
||||
}
|
||||
|
||||
function stage_selfconflictcheck {
|
||||
self_conflict_check
|
||||
set_stage "releasebuild"
|
||||
/sbin/shutdown -r now
|
||||
}
|
||||
|
||||
function stage_releasebuild {
|
||||
local today=$(date +%Y%m%d)
|
||||
local target_directory="${RELEASE_DIRECTORY}/${today}"
|
||||
if [ -e "$target_directory" ]; then
|
||||
die 1 "The release directory $target_directory already exists. Exiting."
|
||||
fi
|
||||
SRCCONF=/dev/null __MAKE_CONF=/dev/null make -C /usr/src clean
|
||||
make -C /usr/src buildworld buildkernel
|
||||
make -C /usr/src/release obj
|
||||
make -C /usr/src/release release
|
||||
mkdir -p "$target_directory"
|
||||
make -C /usr/src/release install DESTDIR="$target_directory"
|
||||
set_stage "done"
|
||||
}
|
||||
|
||||
function stage_done {
|
||||
log "Everything is done."
|
||||
}
|
||||
|
||||
main "${@}"
|
||||
120
ansible/roles/freebsd_update_server/files/release.conf
Normal file
120
ansible/roles/freebsd_update_server/files/release.conf
Normal file
@@ -0,0 +1,120 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
|
||||
## Redefine environment variables here to override prototypes
|
||||
## defined in release.sh.
|
||||
#load_chroot_env() { }
|
||||
#load_target_env() { }
|
||||
#buildenv_setup() { }
|
||||
|
||||
## Set the directory within which the release will be built.
|
||||
CHROOTDIR="/scratch"
|
||||
|
||||
## Do not explicitly require the devel/git port to be installed.
|
||||
#NOGIT=1
|
||||
## Set the version control system host.
|
||||
GITROOT="https://git.freebsd.org/"
|
||||
GITSRC="src.git"
|
||||
GITPORTS="ports.git"
|
||||
|
||||
## Set the src/, ports/, and doc/ branches or tags.
|
||||
#SRCBRANCH="stable/13"
|
||||
SRCBRANCH="main"
|
||||
PORTBRANCH="main"
|
||||
|
||||
## Sample configuration for using git from ports.
|
||||
#GITCMD="/usr/local/bin/git clone -q --branch main"
|
||||
|
||||
## Set to override the default target architecture.
|
||||
#TARGET="amd64"
|
||||
#TARGET_ARCH="amd64"
|
||||
#KERNEL="GENERIC"
|
||||
KERNEL="GENERIC-NODEBUG"
|
||||
## Multiple kernels may be set.
|
||||
#KERNEL="GENERIC XENHVM"
|
||||
|
||||
## Set to specify a custom make.conf and/or src.conf
|
||||
#MAKE_CONF="/etc/local/make.conf"
|
||||
MAKE_CONF="/etc/make.conf"
|
||||
#SRC_CONF="/etc/local/src.conf"
|
||||
SRC_CONF="/etc/src.conf"
|
||||
|
||||
## Set to use make(1) flags.
|
||||
#MAKE_FLAGS="-s"
|
||||
|
||||
## Set to use world- and kernel-specific make(1) flags.
|
||||
#WORLD_FLAGS="-j $(sysctl -n hw.ncpu)"
|
||||
#KERNEL_FLAGS="-j $(( $(( $(sysctl -n hw.ncpu) + 1 )) / 2 ))"
|
||||
|
||||
## Set miscellaneous 'make release' settings.
|
||||
#NOPORTS=
|
||||
#NOSRC=
|
||||
#WITH_DVD=
|
||||
#WITH_COMPRESSED_IMAGES=
|
||||
|
||||
## Set to '1' to disable multi-threaded xz(1) compression.
|
||||
#XZ_THREADS=0
|
||||
|
||||
## Set when building embedded images.
|
||||
#EMBEDDEDBUILD=
|
||||
|
||||
## Set to a list of ports required to build embedded system-on-chip
|
||||
## images, such as sysutils/u-boot-rpi.
|
||||
#EMBEDDEDPORTS=
|
||||
|
||||
## Set to the hardware platform of the target userland. This value
|
||||
## is passed to make(1) to set the TARGET (value of uname -m) to cross
|
||||
## build.
|
||||
#EMBEDDED_TARGET=
|
||||
|
||||
## Set to the machine processor architecture of the target userland.
|
||||
## This value is passed to make(1) to set the TARGET_ARCH (value of uname -p)
|
||||
## to cross build.
|
||||
#EMBEDDED_TARGET_ARCH=
|
||||
|
||||
## Set to skip the chroot environment buildworld/installworld/distribution
|
||||
## step if it is expected the build environment will exist via alternate
|
||||
## means.
|
||||
#CHROOTBUILD_SKIP=
|
||||
|
||||
## Set to a non-empty value skip checkout or update of /usr/src in
|
||||
## the chroot. This is intended for use when /usr/src already exists.
|
||||
#SRC_UPDATE_SKIP=
|
||||
|
||||
## Set to a non-empty value skip checkout or update of /usr/ports in
|
||||
## the chroot. This is intended for use when /usr/ports already exists.
|
||||
#PORTS_UPDATE_SKIP=
|
||||
|
||||
## Set to pass additional flags to make(1) for the build chroot setup, such
|
||||
## as TARGET/TARGET_ARCH.
|
||||
#CHROOT_MAKEENV=
|
||||
|
||||
## Set to a non-empty value to build virtual machine images as part of the
|
||||
## release build.
|
||||
#WITH_VMIMAGES=
|
||||
|
||||
## Set to a non-empty value to compress virtual machine images with xz(1)
|
||||
## as part of the release build.
|
||||
#WITH_COMPRESSED_VMIMAGES=
|
||||
|
||||
## If WITH_VMIMAGES is set to a non-empty value, this is the name of the
|
||||
## file to use for the installed userland/kernel.
|
||||
#VMBASE="vm"
|
||||
|
||||
## If WITH_VMIMAGES is set to a non-empty value, this is the size of the
|
||||
## virtual machine disk filesystem. Valid size values are described in
|
||||
## the makefs(8) manual page.
|
||||
#VMSIZE="20g"
|
||||
|
||||
## If WITH_VMIMAGES is set to a non-empty value, this is a list of disk
|
||||
## image formats to create. Valid values are listed in the mkimg(1)
|
||||
## manual page, as well as 'mkimg --formats' output.
|
||||
#VMFORMATS="vhdf vmdk qcow2 raw"
|
||||
|
||||
## Set to a non-empty value to build virtual machine images for various
|
||||
## cloud providers as part of the release build.
|
||||
#WITH_CLOUDWARE=
|
||||
|
||||
## If WITH_CLOUDWARE is set to a non-empty value, this is a list of providers
|
||||
## to create disk images.
|
||||
#CLOUDWARE="EC2 GCE VAGRANT-VIRTUALBOX VAGRANT-VMWARE"
|
||||
5
ansible/roles/freebsd_update_server/tasks/common.yaml
Normal file
5
ansible/roles/freebsd_update_server/tasks/common.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
- import_tasks: tasks/freebsd.yaml
|
||||
when: 'os_flavor == "freebsd" and build_user is defined'
|
||||
|
||||
- import_tasks: tasks/linux.yaml
|
||||
when: 'os_flavor == "linux"'
|
||||
50
ansible/roles/freebsd_update_server/tasks/freebsd.yaml
Normal file
50
ansible/roles/freebsd_update_server/tasks/freebsd.yaml
Normal file
@@ -0,0 +1,50 @@
|
||||
- name: Install packages
|
||||
package:
|
||||
name:
|
||||
- git
|
||||
- tmux # For convenience
|
||||
- htop # For convenience
|
||||
- bash
|
||||
state: present
|
||||
|
||||
- name: Create directories
|
||||
file:
|
||||
name: "{{ item }}"
|
||||
state: directory
|
||||
mode: 0755
|
||||
owner: "{{ build_user.name }}"
|
||||
group: "{{ build_user.group }}"
|
||||
loop:
|
||||
- /opt/freebsd_update_server
|
||||
|
||||
- name: Clone freebsd-update-build
|
||||
git:
|
||||
repo: "https://github.com/freebsd/freebsd-update-build.git"
|
||||
dest: /opt/freebsd_update_server/freebsd-update-build
|
||||
version: "28bb3ae7de9c1332fe8a366fb154a5b9faf37f49"
|
||||
force: true
|
||||
become: true
|
||||
become_user: "{{ build_user.name }}"
|
||||
diff: false
|
||||
|
||||
- name: Install Configuration
|
||||
copy:
|
||||
src: "files/{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
mode: 0600
|
||||
owner: "{{ build_user.name }}"
|
||||
group: "{{ build_user.group }}"
|
||||
loop:
|
||||
- src: release.conf
|
||||
dest: /opt/freebsd_update_server/release.conf
|
||||
|
||||
- name: Install scripts
|
||||
copy:
|
||||
src: "files/{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: wheel
|
||||
loop:
|
||||
- src: build_release.bash
|
||||
dest: /usr/local/bin/build_release
|
||||
29
ansible/roles/freebsd_update_server/tasks/linux.yaml
Normal file
29
ansible/roles/freebsd_update_server/tasks/linux.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
# - name: Build aur packages
|
||||
# register: buildaur
|
||||
# become_user: "{{ build_user.name }}"
|
||||
# command: "aurutils-sync --no-view {{ item }}"
|
||||
# args:
|
||||
# creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
||||
# loop:
|
||||
# - foo
|
||||
|
||||
# - name: Update cache
|
||||
# when: buildaur.changed
|
||||
# pacman:
|
||||
# name: []
|
||||
# state: present
|
||||
# update_cache: true
|
||||
|
||||
# - name: Install packages
|
||||
# package:
|
||||
# name:
|
||||
# - foo
|
||||
# state: present
|
||||
|
||||
# - name: Enable services
|
||||
# systemd:
|
||||
# enabled: yes
|
||||
# name: "{{ item }}"
|
||||
# daemon_reload: yes
|
||||
# loop:
|
||||
# - foo.service
|
||||
2
ansible/roles/freebsd_update_server/tasks/main.yaml
Normal file
2
ansible/roles/freebsd_update_server/tasks/main.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
- import_tasks: tasks/common.yaml
|
||||
# when: foo is defined
|
||||
@@ -3,13 +3,3 @@
|
||||
|
||||
- import_tasks: tasks/linux.yaml
|
||||
when: 'os_flavor == "linux"'
|
||||
|
||||
- include_tasks:
|
||||
file: tasks/peruser.yaml
|
||||
apply:
|
||||
become: yes
|
||||
become_user: "{{ initialize_user }}"
|
||||
when: users is defined
|
||||
loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}"
|
||||
loop_control:
|
||||
loop_var: initialize_user
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
args:
|
||||
creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
||||
loop:
|
||||
- google-cloud-sdk
|
||||
- google-cloud-cli
|
||||
|
||||
- name: Update cache
|
||||
when: buildaur.changed
|
||||
@@ -17,5 +17,5 @@
|
||||
- name: Install packages
|
||||
package:
|
||||
name:
|
||||
- google-cloud-sdk
|
||||
- google-cloud-cli
|
||||
state: present
|
||||
|
||||
@@ -1,34 +1,27 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
=a/z4
|
||||
0H+RsWG0HlRvbSBBbGV4YW5kZXIgPHdvcmtAZml6ei5idXp6PoiQBBMWCAA4FiEE
|
||||
uEgVk2PCh3kXlUvhJ95A2bhFXBsFAl+w+R0CGwMFCwkIBwIGFQoJCAsCBBYCAwEC
|
||||
HgECF4AACgkQJ95A2bhFXBt6fgD+NOYnw9gz5K/q3H5LE/JvqzCSHezJmeGgif0C
|
||||
uU4m1/MA+gPDKME7syEtJsTpELEMrxWWpDW0tD/W1iJE7roGYPQPtB1Ub20gQWxl
|
||||
eGFuZGVyIDx0b21AZml6ei5idXp6PoiQBBMWCAA4FiEEuEgVk2PCh3kXlUvhJ95A
|
||||
2bhFXBsFAl2cFhoCGwMFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQJ95A2bhF
|
||||
XBvYJQEA19wc2s/bEKcnHONC3i8UikLFqZXyYoH6/MFjoAteU8sBAKpE7Qq0zbJb
|
||||
XWRESzK3u6p7/+kUqOeDltAuKXTe1FAGuDMEXZwWyhYJKwYBBAHaRw8BAQdAPyIL
|
||||
4EGg4T5JO9q2kpVDy2WjMiXz3nZXwYW4GLoTYkiI9QQYFggAJgIbAhYhBLhIFZNj
|
||||
wod5F5VL4SfeQNm4RVwbBQJlC4ZhBQkLMdaXAIF2IAQZFggAHRYhBIHmRDmWdVAu
|
||||
sSUWutOhecmlPA7eBQJdnBbKAAoJENOhecmlPA7ejJ4A/iq7N2mMhx+ovOXm1REo
|
||||
ASPF3l4YAAjOHsXqcPtFHKGJAQCiuA71d6CQ+qNZLuka/KVB/etkkJvDzvaTtiQQ
|
||||
QG+gAwkQJ95A2bhFXBtRDgEAqymMavroD5c/4+M/EZ3/d8wxfA9E3Fb/1mt4c2Zr
|
||||
NnkBAKYOM+pz/pncFnV+kF7h7TQEEYuGw1JhJVT/duA4lwsLuDMEXZwXARYJKwYB
|
||||
BAHaRw8BAQdAa76TmWuKuiR1bnNV1FUE6oQ4C8A+UiQb8x0k1z2DmTKIfgQYFggA
|
||||
JgIbIBYhBLhIFZNjwod5F5VL4SfeQNm4RVwbBQJlC4ZwBQkLMdZgAAoJECfeQNm4
|
||||
RVwb8TkA/RkBu9Ev8iDE5nvn8YF8FRiY56Z5d+SBPG4VvrCzXrmlAP46wUjIRpkM
|
||||
rTbb1GMbvYnkeOrBs/qiWjEtHHc3ZLMWD7g4BF2cFygSCisGAQQBl1UBBQEBB0AO
|
||||
0t3BUxLuokTqKVcheFAZd4UKxAGznPQlvsVyhWWIEgMBCAeIfgQYFggAJgIbDBYh
|
||||
BLhIFZNjwod5F5VL4SfeQNm4RVwbBQJlC4ZwBQkLMdY5AAoJECfeQNm4RVwbXscA
|
||||
/A8zRRTCwQKxJ8iz5jmTcVFAhl2vD781Dtv8NvcWd5t8APwIwcuFVZZA3yayhIxi
|
||||
3aqYpMRxpn2t6Nswax1MIM8DBQ==
|
||||
=dzEV
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
@@ -4,8 +4,6 @@ use-standard-socket
|
||||
default-cache-ttl 600
|
||||
max-cache-ttl 7200
|
||||
display :0
|
||||
{% if install_graphics and os_flavor == "linux" %}
|
||||
pinentry-program /usr/bin/pinentry-qt
|
||||
{% elif install_graphics and os_flavor == "freebsd" %}
|
||||
{% if install_graphics and os_flavor == "freebsd" %}
|
||||
pinentry-program /usr/local/bin/pinentry-qt5
|
||||
{% endif %}
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
#enable_guc=2
|
||||
#hw.i915kms.enable_guc=2
|
||||
@@ -29,6 +29,7 @@
|
||||
group: wheel
|
||||
loop:
|
||||
- intel_power
|
||||
- intel_hw_accel_video
|
||||
|
||||
- name: Install service configuration
|
||||
copy:
|
||||
|
||||
10
ansible/roles/homeserver/files/decrypt_disks.bash
Normal file
10
ansible/roles/homeserver/files/decrypt_disks.bash
Normal file
@@ -0,0 +1,10 @@
|
||||
#!/usr/bin/env bash
|
||||
#
|
||||
# Decrypt and mount the disks after a fresh reboot.
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||
|
||||
zfs load-key -r zmass/encrypted
|
||||
zfs mount -a
|
||||
service bemount start
|
||||
55
ansible/roles/homeserver/tasks/common.yaml
Normal file
55
ansible/roles/homeserver/tasks/common.yaml
Normal file
@@ -0,0 +1,55 @@
|
||||
# - name: Create directories
|
||||
# file:
|
||||
# name: "{{ item }}"
|
||||
# state: directory
|
||||
# mode: 0755
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - /foo/bar
|
||||
|
||||
# - name: Install scripts
|
||||
# copy:
|
||||
# src: "files/{{ item.src }}"
|
||||
# dest: "{{ item.dest }}"
|
||||
# mode: 0755
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - src: foo.bash
|
||||
# dest: /usr/local/bin/foo
|
||||
|
||||
# - name: Install Configuration
|
||||
# copy:
|
||||
# src: "files/{{ item.src }}"
|
||||
# dest: "{{ item.dest }}"
|
||||
# mode: 0600
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - src: foo.conf
|
||||
# dest: /usr/local/etc/foo.conf
|
||||
|
||||
# - name: Clone Source
|
||||
# git:
|
||||
# repo: "https://foo.bar/baz.git"
|
||||
# dest: /foo/bar
|
||||
# version: "v1.0.2"
|
||||
# force: true
|
||||
# diff: false
|
||||
|
||||
- import_tasks: tasks/freebsd.yaml
|
||||
when: 'os_flavor == "freebsd"'
|
||||
|
||||
- import_tasks: tasks/linux.yaml
|
||||
when: 'os_flavor == "linux"'
|
||||
|
||||
- include_tasks:
|
||||
file: tasks/peruser.yaml
|
||||
apply:
|
||||
become: yes
|
||||
become_user: "{{ initialize_user }}"
|
||||
when: users is defined
|
||||
loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}"
|
||||
loop_control:
|
||||
loop_var: initialize_user
|
||||
10
ansible/roles/homeserver/tasks/freebsd.yaml
Normal file
10
ansible/roles/homeserver/tasks/freebsd.yaml
Normal file
@@ -0,0 +1,10 @@
|
||||
- name: Install scripts
|
||||
copy:
|
||||
src: "files/{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: wheel
|
||||
loop:
|
||||
- src: decrypt_disks.bash
|
||||
dest: /usr/local/bin/decrypt_disks
|
||||
29
ansible/roles/homeserver/tasks/linux.yaml
Normal file
29
ansible/roles/homeserver/tasks/linux.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
# - name: Build aur packages
|
||||
# register: buildaur
|
||||
# become_user: "{{ build_user.name }}"
|
||||
# command: "aurutils-sync --no-view {{ item }}"
|
||||
# args:
|
||||
# creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
||||
# loop:
|
||||
# - foo
|
||||
|
||||
# - name: Update cache
|
||||
# when: buildaur.changed
|
||||
# pacman:
|
||||
# name: []
|
||||
# state: present
|
||||
# update_cache: true
|
||||
|
||||
# - name: Install packages
|
||||
# package:
|
||||
# name:
|
||||
# - foo
|
||||
# state: present
|
||||
|
||||
# - name: Enable services
|
||||
# systemd:
|
||||
# enabled: yes
|
||||
# name: "{{ item }}"
|
||||
# daemon_reload: yes
|
||||
# loop:
|
||||
# - foo.service
|
||||
2
ansible/roles/homeserver/tasks/main.yaml
Normal file
2
ansible/roles/homeserver/tasks/main.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
- import_tasks: tasks/common.yaml
|
||||
# when: foo is defined
|
||||
@@ -78,6 +78,11 @@
|
||||
// brianai
|
||||
"hw-address": "06:a6:dc:59:78:12",
|
||||
"ip-address": "10.215.1.215"
|
||||
},
|
||||
{
|
||||
// freebsdupdate
|
||||
"hw-address": "06:14:5c:92:3d:5b",
|
||||
"ip-address": "10.215.1.213"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,3 +1,19 @@
|
||||
- name: Build aur packages
|
||||
register: buildaur
|
||||
become_user: "{{ build_user.name }}"
|
||||
command: "aurutils-sync --no-view {{ item }}"
|
||||
args:
|
||||
creates: "/var/cache/pacman/custom/{{ item }}-*.pkg.tar.*"
|
||||
loop:
|
||||
- nvm
|
||||
|
||||
- name: Update cache
|
||||
when: buildaur.changed
|
||||
pacman:
|
||||
name: []
|
||||
state: present
|
||||
update_cache: true
|
||||
|
||||
- name: Install packages
|
||||
package:
|
||||
name:
|
||||
|
||||
@@ -2,6 +2,12 @@
|
||||
package:
|
||||
name:
|
||||
- fwupd
|
||||
state: present
|
||||
|
||||
- name: Install packages
|
||||
when: install_graphics
|
||||
package:
|
||||
name:
|
||||
- gnome-firmware
|
||||
state: present
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
- name: Install packages
|
||||
package:
|
||||
name:
|
||||
- youtube-dl
|
||||
- yt-dlp
|
||||
state: present
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
wlans_ath0="wlan0"
|
||||
#wlans_ath0="wlan0"
|
||||
wlans_iwm0="wlan0"
|
||||
ifconfig_wlan0="WPA DHCP"
|
||||
ifconfig_wlan0_ipv6="inet6 accept_rtadv"
|
||||
|
||||
4
ansible/roles/pixelbook/files/61-eve-keyboard.hwdb
Normal file
4
ansible/roles/pixelbook/files/61-eve-keyboard.hwdb
Normal file
@@ -0,0 +1,4 @@
|
||||
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGoogle:pnEve:pvr*
|
||||
KEYBOARD_KEY_5d=delete
|
||||
KEYBOARD_KEY_d8=leftmeta
|
||||
KEYBOARD_KEY_db=capslock
|
||||
BIN
ansible/roles/pixelbook/files/9d71-GOOGLE-EVEMAX-0-tplg.bin
Normal file
BIN
ansible/roles/pixelbook/files/9d71-GOOGLE-EVEMAX-0-tplg.bin
Normal file
Binary file not shown.
129
ansible/roles/pixelbook/files/HiFi.conf
Normal file
129
ansible/roles/pixelbook/files/HiFi.conf
Normal file
@@ -0,0 +1,129 @@
|
||||
SectionVerb {
|
||||
EnableSequence [
|
||||
cdev "hw:kblr55145663max"
|
||||
|
||||
cset "name='codec1_out mo hs_pb_in mi Switch' on"
|
||||
cset "name='Left DAI Sel Mux' Left"
|
||||
cset "name='Right DAI Sel Mux' Right"
|
||||
cset "name='Left Speaker Volume' 3"
|
||||
cset "name='Right Speaker Volume' 3"
|
||||
cset "name='Left Digital Volume' 60"
|
||||
cset "name='Right Digital Volume' 60"
|
||||
cset "name='Left Spk Switch' on"
|
||||
cset "name='Right Spk Switch' on"
|
||||
cset "name='Left Boost Output Voltage' 0"
|
||||
cset "name='Right Boost Output Voltage' 0"
|
||||
cset "name='Left Current Limit' 7"
|
||||
cset "name='Right Current Limit' 7"
|
||||
cset "name='Headphone Playback Volume' 16"
|
||||
cset "name='Headset Mic Switch' off"
|
||||
cset "name='DMIC Switch' on"
|
||||
cset "name='STO1 ADC MIXL ADC1 Switch' on"
|
||||
cset "name='Pin5-Port0 Mux' 2"
|
||||
cset "name='Pin5-Port1 Mux' 2"
|
||||
cset "name='Pin5-Port2 Mux' 2"
|
||||
cset "name='Pin6-Port0 Mux' 1"
|
||||
cset "name='Pin6-Port1 Mux' 1"
|
||||
cset "name='Pin6-Port2 Mux' 1"
|
||||
cset "name='Pin7-Port0 Mux' 3"
|
||||
cset "name='Pin7-Port1 Mux' 3"
|
||||
cset "name='Pin7-Port2 Mux' 3"
|
||||
cset "name='ADC Capture Volume' 35"
|
||||
cset "name='ADC1 Capture Volume' 55"
|
||||
cset "name='ADC2 Capture Volume' 55"
|
||||
cset "name='DAC L Mux' STO DAC MIXL"
|
||||
cset "name='DAC R Mux' STO DAC MIXR"
|
||||
cset "name='STO1 DAC MIXL DAC L Switch' on"
|
||||
cset "name='STO1 DAC MIXR DAC R Switch' on"
|
||||
cset-tlv "name='spk_pb_in dsm 0 dsm_params params' /opt/google/dsm/dsmparam.bin"
|
||||
]
|
||||
}
|
||||
|
||||
SectionDevice."Speaker" {
|
||||
Comment "Speaker"
|
||||
|
||||
Value {
|
||||
PlaybackPCM "hw:kblr55145663max,0"
|
||||
DspName "speaker_eq"
|
||||
}
|
||||
}
|
||||
|
||||
SectionDevice."Headphones" {
|
||||
Comment "Headphones"
|
||||
|
||||
Value {
|
||||
PlaybackPCM "hw:kblr55145663max,2"
|
||||
MixerName "DAC"
|
||||
JackDev "kbl-r5514-5663-max Headset Jack"
|
||||
|
||||
}
|
||||
|
||||
EnableSequence [
|
||||
cset "name='Headphone Jack Switch' on"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='Headphone Jack Switch' off"
|
||||
]
|
||||
}
|
||||
|
||||
SectionDevice."Internal Mic" {
|
||||
Comment "Internal Microphone"
|
||||
|
||||
Value {
|
||||
CapturePCM "hw:kblr55145663max,4"
|
||||
CaptureChannelMap "2 3 0 1 -1 -1 -1 -1 -1 -1 -1"
|
||||
MixerName "ADC2"
|
||||
DefaultNodeGain "2700"
|
||||
CaptureChannels "4"
|
||||
}
|
||||
|
||||
EnableSequence [
|
||||
cset "name='Sto1 ADC MIXL DMIC Switch' on"
|
||||
cset "name='Sto1 ADC MIXR DMIC Switch' on"
|
||||
cset "name='Sto2 ADC MIXL DMIC Switch' on"
|
||||
cset "name='Sto2 ADC MIXR DMIC Switch' on"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='Sto1 ADC MIXL DMIC Switch' off"
|
||||
cset "name='Sto1 ADC MIXR DMIC Switch' off"
|
||||
cset "name='Sto2 ADC MIXL DMIC Switch' off"
|
||||
cset "name='Sto2 ADC MIXR DMIC Switch' off"
|
||||
]
|
||||
}
|
||||
|
||||
SectionDevice."Mic" {
|
||||
Comment "Headset Microphone"
|
||||
|
||||
Value {
|
||||
CapturePCM "hw:kblr55145663max,1"
|
||||
JackDev "kbl-r5514-5663-max Headset Jack"
|
||||
}
|
||||
|
||||
EnableSequence [
|
||||
cset "name='Headset Mic Switch' on"
|
||||
]
|
||||
|
||||
DisableSequence [
|
||||
cset "name='Headset Mic Switch' off"
|
||||
]
|
||||
}
|
||||
|
||||
SectionDevice."HDMI1" {
|
||||
Comment "HDMI 1"
|
||||
|
||||
Value {
|
||||
PlaybackPCM "hw:kblr55145663max,6"
|
||||
JackDev "kbl-r5514-5663-max HDMI/DP,pcm=6 Jack"
|
||||
}
|
||||
}
|
||||
|
||||
SectionDevice."HDMI2" {
|
||||
Comment "HDMI 2"
|
||||
|
||||
Value {
|
||||
PlaybackPCM "hw:kblr55145663max,7"
|
||||
JackDev "kbl-r5514-5663-max HDMI/DP,pcm=7 Jack"
|
||||
}
|
||||
}
|
||||
BIN
ansible/roles/pixelbook/files/dsmparam.bin
Normal file
BIN
ansible/roles/pixelbook/files/dsmparam.bin
Normal file
Binary file not shown.
Binary file not shown.
BIN
ansible/roles/pixelbook/files/dsp_lib_dsm_core_spt_release.bin
Normal file
BIN
ansible/roles/pixelbook/files/dsp_lib_dsm_core_spt_release.bin
Normal file
Binary file not shown.
6
ansible/roles/pixelbook/files/kbl-r5514-5663-.conf
Normal file
6
ansible/roles/pixelbook/files/kbl-r5514-5663-.conf
Normal file
@@ -0,0 +1,6 @@
|
||||
Syntax 3
|
||||
|
||||
SectionUseCase."HiFi" {
|
||||
File "HiFi.conf"
|
||||
Comment "Default"
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
# Enable the pixelbook keyboard backlight. This seems to persist without needing the tmpfiles.d entry but it is here for clean installs of the machine.
|
||||
w- /sys/class/leds/chromeos::kbd_backlight/brightness - - - - 100
|
||||
55
ansible/roles/pixelbook/tasks/common.yaml
Normal file
55
ansible/roles/pixelbook/tasks/common.yaml
Normal file
@@ -0,0 +1,55 @@
|
||||
# - name: Create directories
|
||||
# file:
|
||||
# name: "{{ item }}"
|
||||
# state: directory
|
||||
# mode: 0755
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - /foo/bar
|
||||
|
||||
# - name: Install scripts
|
||||
# copy:
|
||||
# src: "files/{{ item.src }}"
|
||||
# dest: "{{ item.dest }}"
|
||||
# mode: 0755
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - src: foo.bash
|
||||
# dest: /usr/local/bin/foo
|
||||
|
||||
# - name: Install Configuration
|
||||
# copy:
|
||||
# src: "files/{{ item.src }}"
|
||||
# dest: "{{ item.dest }}"
|
||||
# mode: 0600
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - src: foo.conf
|
||||
# dest: /usr/local/etc/foo.conf
|
||||
|
||||
# - name: Clone Source
|
||||
# git:
|
||||
# repo: "https://foo.bar/baz.git"
|
||||
# dest: /foo/bar
|
||||
# version: "v1.0.2"
|
||||
# force: true
|
||||
# diff: false
|
||||
|
||||
- import_tasks: tasks/freebsd.yaml
|
||||
when: 'os_flavor == "freebsd"'
|
||||
|
||||
- import_tasks: tasks/linux.yaml
|
||||
when: 'os_flavor == "linux"'
|
||||
|
||||
- include_tasks:
|
||||
file: tasks/peruser.yaml
|
||||
apply:
|
||||
become: yes
|
||||
become_user: "{{ initialize_user }}"
|
||||
when: users is defined
|
||||
loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}"
|
||||
loop_control:
|
||||
loop_var: initialize_user
|
||||
5
ansible/roles/pixelbook/tasks/freebsd.yaml
Normal file
5
ansible/roles/pixelbook/tasks/freebsd.yaml
Normal file
@@ -0,0 +1,5 @@
|
||||
# - name: Install packages
|
||||
# package:
|
||||
# name:
|
||||
# - foo
|
||||
# state: present
|
||||
57
ansible/roles/pixelbook/tasks/linux.yaml
Normal file
57
ansible/roles/pixelbook/tasks/linux.yaml
Normal file
@@ -0,0 +1,57 @@
|
||||
# Audio firmware from instructions at https://wiki.gentoo.org/wiki/Google_Pixelbook_(2017)#Audio
|
||||
|
||||
- name: Create directories
|
||||
file:
|
||||
name: "{{ item }}"
|
||||
state: directory
|
||||
mode: 0755
|
||||
owner: root
|
||||
group: wheel
|
||||
loop:
|
||||
- /opt/google/dsm
|
||||
- /usr/share/alsa/ucm2/Intel/kbl-r5514-5663-
|
||||
- /usr/share/alsa/ucm2/conf.d/kbl-r5514-5663-
|
||||
|
||||
- name: Install tmpfiles.d configuration
|
||||
copy:
|
||||
src: "files/{{ item }}_tmpfiles.conf"
|
||||
dest: "/etc/tmpfiles.d/{{ item }}.conf"
|
||||
mode: 0644
|
||||
owner: root
|
||||
group: wheel
|
||||
loop:
|
||||
- pixelbook_keyboard_backlight
|
||||
|
||||
- name: Install Configuration
|
||||
copy:
|
||||
src: "files/{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
mode: 0600
|
||||
owner: root
|
||||
group: wheel
|
||||
loop:
|
||||
- src: 61-eve-keyboard.hwdb
|
||||
dest: /etc/udev/hwdb.d/61-eve-keyboard.hwdb
|
||||
- src: 9d71-GOOGLE-EVEMAX-0-tplg.bin
|
||||
dest: /lib/firmware/9d71-GOOGLE-EVEMAX-0-tplg.bin
|
||||
- src: dsp_lib_dsm_core_spt_release.bin
|
||||
dest: /lib/firmware/dsp_lib_dsm_core_spt_release.bin
|
||||
- src: dsp_fw_C75061F3-F2B2-4DCC-8F9F-82ABB4131E66.bin
|
||||
dest: /lib/firmware/intel/dsp_fw_C75061F3-F2B2-4DCC-8F9F-82ABB4131E66.bin
|
||||
- src: dsmparam.bin
|
||||
dest: /opt/google/dsm/dsmparam.bin
|
||||
- src: HiFi.conf
|
||||
dest: /usr/share/alsa/ucm2/Intel/kbl-r5514-5663-/HiFi.conf
|
||||
- src: kbl-r5514-5663-.conf
|
||||
dest: /usr/share/alsa/ucm2/Intel/kbl-r5514-5663-/kbl-r5514-5663-.conf
|
||||
|
||||
- name: Create symlinks
|
||||
file:
|
||||
src: "{{ item.src }}"
|
||||
dest: "{{ item.dest }}"
|
||||
owner: root
|
||||
group: wheel
|
||||
state: link
|
||||
loop:
|
||||
- src: /usr/share/alsa/ucm2/Intel/kbl-r5514-5663-/kbl-r5514-5663-.conf
|
||||
dest: /usr/share/alsa/ucm2/conf.d/kbl-r5514-5663-/kbl-r5514-5663-.conf
|
||||
2
ansible/roles/pixelbook/tasks/main.yaml
Normal file
2
ansible/roles/pixelbook/tasks/main.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
- import_tasks: tasks/common.yaml
|
||||
# when: foo is defined
|
||||
29
ansible/roles/pixelbook/tasks/peruser.yaml
Normal file
29
ansible/roles/pixelbook/tasks/peruser.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
- include_role:
|
||||
name: per_user
|
||||
|
||||
# - name: Create directories
|
||||
# file:
|
||||
# name: "{{ account_homedir.stdout }}/{{ item }}"
|
||||
# state: directory
|
||||
# mode: 0700
|
||||
# owner: "{{ account_name.stdout }}"
|
||||
# group: "{{ group_name.stdout }}"
|
||||
# loop:
|
||||
# - ".config/foo"
|
||||
|
||||
# - name: Copy files
|
||||
# copy:
|
||||
# src: "files/{{ item.src }}"
|
||||
# dest: "{{ account_homedir.stdout }}/{{ item.dest }}"
|
||||
# mode: 0600
|
||||
# owner: "{{ account_name.stdout }}"
|
||||
# group: "{{ group_name.stdout }}"
|
||||
# loop:
|
||||
# - src: foo.conf
|
||||
# dest: .config/foo/foo.conf
|
||||
|
||||
- import_tasks: tasks/peruser_freebsd.yaml
|
||||
when: 'os_flavor == "freebsd"'
|
||||
|
||||
- import_tasks: tasks/peruser_linux.yaml
|
||||
when: 'os_flavor == "linux"'
|
||||
0
ansible/roles/pixelbook/tasks/peruser_freebsd.yaml
Normal file
0
ansible/roles/pixelbook/tasks/peruser_freebsd.yaml
Normal file
0
ansible/roles/pixelbook/tasks/peruser_linux.yaml
Normal file
0
ansible/roles/pixelbook/tasks/peruser_linux.yaml
Normal file
@@ -4,7 +4,7 @@
|
||||
#
|
||||
# Example from bottom of /usr/share/examples/etc/make.conf
|
||||
.if ${.CURDIR:N*/lang/gcc48*} && ${.CURDIR:N*/lang/gcc10*} && ${.CURDIR:N*/devel/qt6-base*}
|
||||
CPUTYPE?=tigerlake
|
||||
CPUTYPE?=skylake
|
||||
# CPUTYPE?=x86-64-v4
|
||||
.endif
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ dns/coredns
|
||||
editors/emacs
|
||||
editors/mg
|
||||
ftp/wget
|
||||
graphics/ImageMagick
|
||||
graphics/drm-kmod
|
||||
graphics/evince
|
||||
graphics/gimp
|
||||
|
||||
@@ -70,3 +70,4 @@ _caldavs._tcp IN SRV 0 1 443 caldav.fastmail.com
|
||||
|
||||
home IN A 68.197.252.22
|
||||
opstunnel IN CNAME home.fizz.buzz.
|
||||
stream IN CNAME home.fizz.buzz.
|
||||
|
||||
@@ -8,6 +8,7 @@ allow-dnsupdate-from=
|
||||
# Only notify ns1.he.net
|
||||
only-notify=216.218.130.2/32, 10.215.1.0/24
|
||||
also-notify=216.218.130.2
|
||||
default-ttl=1800
|
||||
|
||||
# Autogenerated configuration file template
|
||||
|
||||
|
||||
55
ansible/roles/restaurant_health_rating/tasks/common.yaml
Normal file
55
ansible/roles/restaurant_health_rating/tasks/common.yaml
Normal file
@@ -0,0 +1,55 @@
|
||||
# - name: Create directories
|
||||
# file:
|
||||
# name: "{{ item }}"
|
||||
# state: directory
|
||||
# mode: 0755
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - /foo/bar
|
||||
|
||||
# - name: Install scripts
|
||||
# copy:
|
||||
# src: "files/{{ item.src }}"
|
||||
# dest: "{{ item.dest }}"
|
||||
# mode: 0755
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - src: foo.bash
|
||||
# dest: /usr/local/bin/foo
|
||||
|
||||
# - name: Install Configuration
|
||||
# copy:
|
||||
# src: "files/{{ item.src }}"
|
||||
# dest: "{{ item.dest }}"
|
||||
# mode: 0600
|
||||
# owner: root
|
||||
# group: wheel
|
||||
# loop:
|
||||
# - src: foo.conf
|
||||
# dest: /usr/local/etc/foo.conf
|
||||
|
||||
# - name: Clone Source
|
||||
# git:
|
||||
# repo: "https://foo.bar/baz.git"
|
||||
# dest: /foo/bar
|
||||
# version: "v1.0.2"
|
||||
# force: true
|
||||
# diff: false
|
||||
|
||||
- import_tasks: tasks/freebsd.yaml
|
||||
when: 'os_flavor == "freebsd"'
|
||||
|
||||
- import_tasks: tasks/linux.yaml
|
||||
when: 'os_flavor == "linux"'
|
||||
|
||||
- include_tasks:
|
||||
file: tasks/peruser.yaml
|
||||
apply:
|
||||
become: yes
|
||||
become_user: "{{ initialize_user }}"
|
||||
when: users is defined
|
||||
loop: "{{ users | dict2items | community.general.json_query('[?value.initialize==`true`].key') }}"
|
||||
loop_control:
|
||||
loop_var: initialize_user
|
||||
@@ -0,0 +1,5 @@
|
||||
- name: Install packages
|
||||
package:
|
||||
name:
|
||||
- ImageMagick7
|
||||
state: present
|
||||
6
ansible/roles/restaurant_health_rating/tasks/linux.yaml
Normal file
6
ansible/roles/restaurant_health_rating/tasks/linux.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
- name: Install packages
|
||||
package:
|
||||
name:
|
||||
- imagemagick
|
||||
- web-ext
|
||||
state: present
|
||||
2
ansible/roles/restaurant_health_rating/tasks/main.yaml
Normal file
2
ansible/roles/restaurant_health_rating/tasks/main.yaml
Normal file
@@ -0,0 +1,2 @@
|
||||
- import_tasks: tasks/common.yaml
|
||||
# when: foo is defined
|
||||
29
ansible/roles/restaurant_health_rating/tasks/peruser.yaml
Normal file
29
ansible/roles/restaurant_health_rating/tasks/peruser.yaml
Normal file
@@ -0,0 +1,29 @@
|
||||
- include_role:
|
||||
name: per_user
|
||||
|
||||
# - name: Create directories
|
||||
# file:
|
||||
# name: "{{ account_homedir.stdout }}/{{ item }}"
|
||||
# state: directory
|
||||
# mode: 0700
|
||||
# owner: "{{ account_name.stdout }}"
|
||||
# group: "{{ group_name.stdout }}"
|
||||
# loop:
|
||||
# - ".config/foo"
|
||||
|
||||
# - name: Copy files
|
||||
# copy:
|
||||
# src: "files/{{ item.src }}"
|
||||
# dest: "{{ account_homedir.stdout }}/{{ item.dest }}"
|
||||
# mode: 0600
|
||||
# owner: "{{ account_name.stdout }}"
|
||||
# group: "{{ group_name.stdout }}"
|
||||
# loop:
|
||||
# - src: foo.conf
|
||||
# dest: .config/foo/foo.conf
|
||||
|
||||
- import_tasks: tasks/peruser_freebsd.yaml
|
||||
when: 'os_flavor == "freebsd"'
|
||||
|
||||
- import_tasks: tasks/peruser_linux.yaml
|
||||
when: 'os_flavor == "linux"'
|
||||
@@ -1,2 +1,2 @@
|
||||
# Check that rust-analyzer is valid for date on https://rust-lang.github.io/rustup-components-history/
|
||||
rust_date: "2023-09-02"
|
||||
rust_date: "2023-10-16"
|
||||
|
||||
@@ -5,4 +5,5 @@
|
||||
- lldb # for lldb-vscode
|
||||
- musl # for building static binaries
|
||||
- rust-analyzer
|
||||
- cargo-semver-checks
|
||||
state: present
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user