wimpy-ified

inspired by wimpysworld nix-config
This commit is contained in:
Gregory Burd 2023-09-25 14:05:07 -04:00 committed by Greg Burd
parent a81c09b737
commit 86706b1fc7
221 changed files with 4788 additions and 1003 deletions

7
.github/dependabot.yml vendored Normal file
View file

@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: "github-actions"
directory: "/"
schedule:
# Check for updates to GitHub Actions every week
interval: "weekly"

80
.github/workflows/build-iso.yml vendored Normal file
View file

@ -0,0 +1,80 @@
name: Build 🏗️ and Publish 📀
on:
push:
tags: ['*']
jobs:
create-release:
name: Create Release
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Create release ${{ github.ref }} as a draft
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release create "${{ github.ref }}" --draft --generate-notes
build-console-iso:
needs: [create-release]
name: Console ISO
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v4
- uses: DeterminateSystems/magic-nix-cache-action@v2
- name: Build Console ISO
run: |
nix build .#nixosConfigurations.iso-console.config.system.build.isoImage
mkdir iso || true
ISO=$(head -n1 result/nix-support/hydra-build-products | cut -d'/' -f6)
sudo mv "result/iso/${ISO}" iso/console-${ISO}
sha256sum "iso/console-${ISO}" > "iso/console-${ISO}.sha256"
sed -i -r "s/ .*\/(.+)/ \1/g" "iso/console-${ISO}.sha256"
- name: Upload Console ISO
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
for artefact in "iso/"*; do
gh release upload "${{ github.ref }}" "${artefact}" --clobber
done
build-desktop-iso:
needs: [create-release]
name: Desktop ISO
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v4
- uses: DeterminateSystems/magic-nix-cache-action@v2
- name: Build Desktop ISO
run: |
nix build .#nixosConfigurations.iso-desktop.config.system.build.isoImage
mkdir iso || true
ISO=$(head -n1 result/nix-support/hydra-build-products | cut -d'/' -f6)
sudo mv "result/iso/${ISO}" iso/desktop-${ISO}
sha256sum "iso/desktop-${ISO}" > "iso/desktop-${ISO}.sha256"
sed -i -r "s/ .*\/(.+)/ \1/g" "iso/desktop-${ISO}.sha256"
- name: Upload Desktop ISO
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
for artefact in "iso/"*; do
gh release upload "${{ github.ref }}" "${artefact}" --clobber
done
publish-release:
name: Publish Release
needs: [build-console-iso, build-desktop-iso]
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Publish release ${{ github.ref }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
if [ "$(gh release view "${{ github.ref }}" --json assets --template '{{len .assets}}')" -lt 0 ]; then
exit 1
fi
gh release edit "${{ github.ref }}" --draft=false

16
.github/workflows/deadnix.yml vendored Normal file
View file

@ -0,0 +1,16 @@
name: Dead 😵 Nix ❄️ Analysis 🔍️
on:
push:
branches:
- main
jobs:
deadnix:
name: Dead Nix Analysis
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@v4
- uses: DeterminateSystems/magic-nix-cache-action@v2
- uses: astro/deadnix-action@v1

22
.github/workflows/flake-checker.yml vendored Normal file
View file

@ -0,0 +1,22 @@
name: Flake ❄️ Checker ✅
on:
push:
branches:
- main
schedule:
# l33t o'clock
- cron: '37 13 * * *'
workflow_dispatch:
jobs:
flake-checker:
name: Flake Checker
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: DeterminateSystems/nix-installer-action@v4
- uses: DeterminateSystems/magic-nix-cache-action@v2
- uses: DeterminateSystems/flake-checker-action@v5

25
.github/workflows/lock-updater.yml vendored Normal file
View file

@ -0,0 +1,25 @@
name: Flake ❄️ Lock 🔒️ Updater ✨
on:
schedule:
# Pi o'clock
- cron: '3 14 * * 1,5'
workflow_dispatch:
jobs:
lock-updater:
name: Flake Lock Updater
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: DeterminateSystems/nix-installer-action@v4
- uses: DeterminateSystems/magic-nix-cache-action@v2
- uses: DeterminateSystems/update-flake-lock@v20
with:
pr-title: "chore: update flake.lock"
# Labels to be set on the PR
pr-labels: |
dependencies
automated

38
NOTES
View file

@ -21,6 +21,9 @@
* swap (see: https://discourse.nixos.org/t/how-do-i-set-up-a-swap-file/8323/7)
* udevadm trigger
nh os switch --ask
INSTALL:
export device=/dev/nvme0n1
export hostname=floki
@ -93,25 +96,24 @@ clear; sudo nixos-rebuild dry-activate --flake .#${hostname}
https://mt-caret.github.io/blog/posts/2020-06-29-optin-state.html
https://hoverbear.org/blog/declarative-gnome-configuration-in-nixos/
https://github.com/wimpysworld/nix-config
https://github.com/Misterio77/nix-config
https://github.com/Misterio77/nix-starter-configs
------------------------------------------
TODO:
* agenix: alternative to sops/age for secrets
agenix.url = "github:ryantm/agenix";
agenix.inputs.nixpkgs.follows = "nixpkgs";
* "yet-another-nix-helper" https://github.com/viperML/nh
* declarative disk partitioning/formatting
https://github.com/nix-community/disko
* https://aria2.github.io/
* https://github.com/schollz/croc
------------------------------------------
EXAMPLE COMMANDS:
building the system configuration...
warning: Git tree '/home/gburd/ws/nix-config' is dirty
trace: warning: optionsDocBook is deprecated since 23.11 and will be removed in 24.05
trace: warning: optionsDocBook is deprecated since 23.11 and will be removed in 24.05
trace: warning: optionsDocBook is deprecated since 23.11 and will be removed in 24.05
would stop the following units: ModemManager.service, NetworkManager-wait-online.service, NetworkManager.service, accounts-daemon.service, alsa-store.service, audit.service, avahi-daemon.service, avahi-daemon.socket, bluetooth.service, bolt.service, colord.service, cpufreq.service, kmod-static-nodes.service, logrotate-checkconf.service, mount-pstore.service, network-local-commands.service, network-setup.service, nscd.service, power-profiles-daemon.service, resolvconf.service, rtkit-daemon.service, systemd-machined.service, systemd-modules-load.service, systemd-oomd.service, systemd-oomd.socket, systemd-sysctl.service, systemd-timesyncd.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-udevd.service, systemd-update-done.service, udisks2.service, upower.service, wpa_supplicant.service
would NOT stop the following changed units: display-manager.service, getty@tty1.service, systemd-backlight@backlight:intel_backlight.service, systemd-backlight@leds:tpacpi::kbd_backlight.service, systemd-fsck@dev-disk-by\x2duuid-3D04\x2d3716.service, systemd-journal-flush.service, systemd-logind.service, systemd-random-seed.service, systemd-remount-fs.service, systemd-update-utmp.service, systemd-user-sessions.service, user-runtime-dir@1000.service, user@1000.service
would activate the configuration...
sops-install-secrets: Imported /persist/etc/ssh/ssh_host_ed25519_key as age key with fingerprint age1z2x0g05q2erpux006vwhul70d8akj9avrj67s9p27fm4ce32ly8qt8nllz
warning: password file /run/secrets-for-users/gburd-password does not exist
would restart systemd
would reload the following units: dbus.service, firewall.service, persist.mount, reload-systemd-vconsole-setup.service
would restart the following units: nix-daemon.service, polkit.service, sshd.service, systemd-journald.service
would start the following units: ModemManager.service, NetworkManager-wait-online.service, NetworkManager.service, accounts-daemon.service, audit.service, avahi-daemon.socket, bluetooth.service, bolt.service, colord.service, cpufreq.service, kmod-static-nodes.service, logrotate-checkconf.service, mount-pstore.service, network-local-commands.service, network-setup.service, nscd.service, power-profiles-daemon.service, resolvconf.service, rtkit-daemon.service, systemd-machined.service, systemd-modules-load.service, systemd-oomd.socket, systemd-sysctl.service, systemd-timesyncd.service, systemd-udevd-control.socket, systemd-udevd-kernel.socket, systemd-update-done.service, udisks2.service, upower.service, wpa_supplicant.service
[nix-shell:~/ws/nix-config]$ clear; sudo nixos-rebuild dry-activate --flake .#floki
* nh os switch --ask
* clear; sudo nixos-rebuild dry-activate --flake .#floki

View file

@ -1,90 +1,22 @@
{
"nodes": {
"base16-schemes": {
"flake": false,
"locked": {
"lastModified": 1680729003,
"narHash": "sha256-M9LHTL24/W4oqgbYRkz0B2qpNrkefTs98pfj3MxIXnU=",
"owner": "tinted-theming",
"repo": "base16-schemes",
"rev": "dc048afa066287a719ddbab62b3e19e4b5110cf0",
"type": "github"
},
"original": {
"owner": "tinted-theming",
"repo": "base16-schemes",
"type": "github"
}
},
"blobs": {
"flake": false,
"locked": {
"lastModified": 1604995301,
"narHash": "sha256-wcLzgLec6SGJA8fx1OEN1yV/Py5b+U5iyYpksUY/yLw=",
"owner": "simple-nixos-mailserver",
"repo": "blobs",
"rev": "2cccdf1ca48316f2cfd1c9a0017e8de5a7156265",
"type": "gitlab"
},
"original": {
"owner": "simple-nixos-mailserver",
"repo": "blobs",
"type": "gitlab"
}
},
"composer2nix-src": {
"flake": false,
"locked": {
"lastModified": 1646178110,
"narHash": "sha256-P3acfGwHYjjZQcviPiOT7T7qzzP/drc2mibzrsrNP18=",
"owner": "svanderburg",
"repo": "composer2nix",
"rev": "299caca4aac42d7639a42eb4dde951c010f6e91c",
"type": "github"
},
"original": {
"owner": "svanderburg",
"ref": "v0.0.6",
"repo": "composer2nix",
"type": "github"
}
},
"firefly": {
"disko": {
"inputs": {
"composer2nix-src": "composer2nix-src",
"firefly-iii-src": "firefly-iii-src",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1689496855,
"narHash": "sha256-eLgJaeURjdKuBjyhS97texllfmtjCOhtPo1IOPvRCzI=",
"owner": "timhae",
"repo": "firefly",
"rev": "73aba7e1e9bd61bef0f8f54294beb3528e436806",
"lastModified": 1695632260,
"narHash": "sha256-B8nW57UouYtiWMJKX5leByifMj+lYk7IyV5uz0c/ZwA=",
"owner": "nix-community",
"repo": "disko",
"rev": "a14a3fb0a8e465fcd728e398d00204a195be06a3",
"type": "github"
},
"original": {
"owner": "timhae",
"repo": "firefly",
"type": "github"
}
},
"firefly-iii-src": {
"flake": false,
"locked": {
"lastModified": 1681548383,
"narHash": "sha256-ymWotU5wM6nQhsfnyAt+unewJ5D0tJpNK+UedSyfITU=",
"owner": "firefly-iii",
"repo": "firefly-iii",
"rev": "f878af0d3bbfe7b1a51bef758d4e2e9a66118316",
"type": "github"
},
"original": {
"owner": "firefly-iii",
"ref": "v6.0.8",
"repo": "firefly-iii",
"owner": "nix-community",
"repo": "disko",
"type": "github"
}
},
@ -111,22 +43,6 @@
"type": "gitlab"
}
},
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1668681692,
"narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "009399224d5e398d03b22badca40a37ac85412a1",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
@ -160,18 +76,21 @@
"type": "github"
}
},
"hardware": {
"flake-utils_2": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1694710316,
"narHash": "sha256-uRh46iIC86D8BD1wCDA5gRrt+hslUXiD0kx/UjnjBcs=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "570256327eb6ca6f7bebe8d93af49459092a0c43",
"lastModified": 1681202837,
"narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "cfacdce06f30d2b68473a46042957675eebb3401",
"type": "github"
},
"original": {
"owner": "nixos",
"repo": "nixos-hardware",
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
@ -182,15 +101,16 @@
]
},
"locked": {
"lastModified": 1695191928,
"narHash": "sha256-yXUtJZQweg6v9G5fXStqkVNwxT4Xf+cux37yBVpaYCY=",
"lastModified": 1695108154,
"narHash": "sha256-gSg7UTVtls2yO9lKtP0yb66XBHT1Fx5qZSZbGMpSn2c=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "0ed5f9786bba801c59fb53eef497438040acd471",
"rev": "07682fff75d41f18327a871088d20af2710d4744",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-23.05",
"repo": "home-manager",
"type": "github"
}
@ -232,25 +152,6 @@
"type": "github"
}
},
"nix-colors": {
"inputs": {
"base16-schemes": "base16-schemes",
"nixpkgs-lib": "nixpkgs-lib_2"
},
"locked": {
"lastModified": 1682108218,
"narHash": "sha256-tMr7BbxualFQlN+XopS8rMMgf2XR9ZfRuwIZtjsWmfI=",
"owner": "misterio77",
"repo": "nix-colors",
"rev": "b92df8f5eb1fa20d8e09810c03c9dc0d94ef2820",
"type": "github"
},
"original": {
"owner": "misterio77",
"repo": "nix-colors",
"type": "github"
}
},
"nix-filter": {
"locked": {
"lastModified": 1687178632,
@ -266,47 +167,56 @@
"type": "github"
}
},
"nixos-mailserver": {
"nix-formatter-pack": {
"inputs": {
"blobs": "blobs",
"flake-compat": "flake-compat",
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-22_11": [
"nixpkgs"
],
"nixpkgs-23_05": [
"nixpkgs"
],
"utils": "utils"
"nmd": "nmd",
"nmt": "nmt"
},
"locked": {
"lastModified": 1689976554,
"narHash": "sha256-uWJq3sIhkqfzPmfB2RWd5XFVooGFfSuJH9ER/r302xQ=",
"owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver",
"rev": "c63f6e7b053c18325194ff0e274dba44e8d2271e",
"type": "gitlab"
"lastModified": 1694984852,
"narHash": "sha256-A1x55uLb2LT9evsTWYc1U9+iki1AmE5ROxOuCKPf3JE=",
"owner": "Gerschtli",
"repo": "nix-formatter-pack",
"rev": "23795a4daf29ce784b3edc13b9776c7b445c453b",
"type": "github"
},
"original": {
"owner": "simple-nixos-mailserver",
"repo": "nixos-mailserver",
"type": "gitlab"
"owner": "Gerschtli",
"repo": "nix-formatter-pack",
"type": "github"
}
},
"nixpkgs": {
"nixos-hardware": {
"locked": {
"lastModified": 1694959747,
"narHash": "sha256-CXQ2MuledDVlVM5dLC4pB41cFlBWxRw4tCBsFrq3cRk=",
"lastModified": 1695541019,
"narHash": "sha256-rs++zfk41K9ArWkDAlmBDlGlKO8qeRIRzdjo+9SmNFI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "970a59bd19eff3752ce552935687100c46e820a5",
"repo": "nixos-hardware",
"rev": "61283b30d11f27d5b76439d43f20d0c0c8ff5296",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"ref": "master",
"repo": "nixos-hardware",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1695559356,
"narHash": "sha256-kXZ1pUoImD9OEbPCwpTz4tHsNTr4CIyIfXb3ocuR8sI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "261abe8a44a7e8392598d038d2e01f7b33cf26d0",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-23.05",
"repo": "nixpkgs",
"type": "github"
}
@ -329,33 +239,67 @@
"type": "github"
}
},
"nixpkgs-lib_2": {
"nixpkgs-unstable": {
"locked": {
"lastModified": 1680397293,
"narHash": "sha256-wBpJ73+tJ8fZSWb4tzNbAVahC4HSo2QG3nICDy4ExBQ=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "b18d328214ca3c627d3cc3f51fd9d1397fdbcd7a",
"lastModified": 1695360818,
"narHash": "sha256-JlkN3R/SSoMTa+CasbxS1gq+GpGxXQlNZRUh9+LIy/0=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "e35dcc04a3853da485a396bdd332217d0ac9054f",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nmd": {
"flake": false,
"locked": {
"lastModified": 1666190571,
"narHash": "sha256-Z1hc7M9X6L+H83o9vOprijpzhTfOBjd0KmUTnpHAVjA=",
"owner": "rycee",
"repo": "nmd",
"rev": "b75d312b4f33bd3294cd8ae5c2ca8c6da2afc169",
"type": "gitlab"
},
"original": {
"owner": "rycee",
"repo": "nmd",
"type": "gitlab"
}
},
"nmt": {
"flake": false,
"locked": {
"lastModified": 1648075362,
"narHash": "sha256-u36WgzoA84dMVsGXzml4wZ5ckGgfnvS0ryzo/3zn/Pc=",
"owner": "rycee",
"repo": "nmt",
"rev": "d83601002c99b78c89ea80e5e6ba21addcfe12ae",
"type": "gitlab"
},
"original": {
"owner": "rycee",
"repo": "nmt",
"type": "gitlab"
}
},
"root": {
"inputs": {
"firefly": "firefly",
"disko": "disko",
"firefox-addons": "firefox-addons",
"hardware": "hardware",
"home-manager": "home-manager",
"impermanence": "impermanence",
"nh": "nh",
"nix-colors": "nix-colors",
"nixos-mailserver": "nixos-mailserver",
"nix-formatter-pack": "nix-formatter-pack",
"nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs",
"sops-nix": "sops-nix"
"nixpkgs-unstable": "nixpkgs-unstable",
"sops-nix": "sops-nix",
"vscode-server": "vscode-server"
}
},
"sops-nix": {
@ -381,18 +325,39 @@
"type": "github"
}
},
"utils": {
"systems": {
"locked": {
"lastModified": 1605370193,
"narHash": "sha256-YyMTf3URDL/otKdKgtoMChu4vfVL3vCMkRqpGifhUn0=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5021eac20303a61fafe17224c087f5519baed54d",
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"vscode-server": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1684517665,
"narHash": "sha256-SaAr66uCQ8CF75jIr23FZjk1+9Kfwm5sQnwV25206Gs=",
"owner": "nix-community",
"repo": "nixos-vscode-server",
"rev": "1e1358493df6529d4c7bc4cc3066f76fd16d4ae6",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixos-vscode-server",
"type": "github"
}
}

199
flake.nix
View file

@ -1,109 +1,120 @@
{
description = "My (Greg Burd's) NixOS configuration";
description = "Greg Burd's NixOS and Home Manager Configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-23.05";
# You can access packages and modules from different nixpkgs revs at the
# same time. See 'unstable-packages' overlay in 'overlays/default.nix'.
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
disko.url = "github:nix-community/disko";
disko.inputs.nixpkgs.follows = "nixpkgs";
home-manager.url = "github:nix-community/home-manager/release-23.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
nixos-hardware.url = "github:nixos/nixos-hardware/master";
hardware.url = "github:nixos/nixos-hardware";
impermanence.url = "github:nix-community/impermanence";
nix-colors.url = "github:misterio77/nix-colors";
sops-nix = {
url = "github:mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs-stable.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nh = {
url = "github:viperml/nh";
inputs.nixpkgs.follows = "nixpkgs";
};
nixos-mailserver = {
url = "gitlab:simple-nixos-mailserver/nixos-mailserver";
inputs.nixpkgs.follows = "nixpkgs";
inputs.nixpkgs-22_11.follows = "nixpkgs";
inputs.nixpkgs-23_05.follows = "nixpkgs";
};
firefly = {
url = "github:timhae/firefly";
inputs.nixpkgs.follows = "nixpkgs";
};
firefox-addons = {
url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-formatter-pack.url = "github:Gerschtli/nix-formatter-pack";
nix-formatter-pack.inputs.nixpkgs.follows = "nixpkgs";
vscode-server.url = "github:nix-community/nixos-vscode-server";
vscode-server.inputs.nixpkgs.follows = "nixpkgs";
sops-nix.url = "github:mic92/sops-nix";
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
sops-nix.inputs.nixpkgs-stable.follows = "nixpkgs";
nh.url = "github:viperml/nh";
nh.inputs.nixpkgs.follows = "nixpkgs";
firefox-addons.url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
firefox-addons.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = { self, nixpkgs, home-manager, ... }@inputs:
outputs =
{ self
, nixpkgs
, nix-formatter-pack
, ...
} @ inputs:
let
inherit (self) outputs;
lib = nixpkgs.lib // home-manager.lib;
systems = [ "x86_64-linux" "aarch64-linux" ];
forEachSystem = f: lib.genAttrs systems (sys: f pkgsFor.${sys});
pkgsFor = nixpkgs.legacyPackages;
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
stateVersion = "23.05";
libx = import ./lib { inherit inputs outputs stateVersion; };
in
{
inherit lib;
# home-manager switch -b backup --flake $HOME/ws/nix-config
# nix build .#homeConfigurations."gburd@floki".activationPackage
homeConfigurations = {
# .iso images
# ---------------------------------------------------------------------
"gburd@iso-console" = libx.mkHome { hostname = "iso-console"; username = "nixos"; };
"gburd@iso-desktop" = libx.mkHome { hostname = "iso-desktop"; username = "nixos"; desktop = "pantheon"; };
# Workstations
# ---------------------------------------------------------------------
"gburd@floki" = libx.mkHome { hostname = "floki"; username = "gburd"; desktop = "pantheon"; };
# Servers
# ---------------------------------------------------------------------
};
nixosConfigurations = {
# .iso images
# ---------------------------------------------------------------------
# - nix build .#nixosConfigurations.{iso-console|iso-desktop}.config.system.build.isoImage
iso-console = libx.mkHost { hostname = "iso-console"; username = "nixos"; installer = nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix"; };
iso-desktop = libx.mkHost { hostname = "iso-desktop"; username = "nixos"; installer = nixpkgs + "/nixos/modules/installer/cd-dvd/installation-cd-graphical-calamares.nix"; desktop = "pantheon"; };
# Workstations
# ---------------------------------------------------------------------
# Lenovo Carbon X1 Extreme Gen 5 - x86_64
floki = libx.mkHost { hostname = "floki"; username = "gburd"; desktop = "pantheon"; };
# Servers
# ---------------------------------------------------------------------
};
# Custom packages and modifications, exported as overlays
overlays = import ./overlays { inherit inputs outputs; };
hydraJobs = import ./hydra.nix { inherit inputs outputs; };
# Devshell for bootstrapping; acessible via 'nix develop' or 'nix-shell' (legacy)
devShells = libx.forAllSystems (system:
let pkgs = nixpkgs.legacyPackages.${system};
in import ./shell.nix { inherit pkgs; }
);
# nix fmt
formatter = libx.forAllSystems (system:
nix-formatter-pack.lib.mkFormatter {
pkgs = nixpkgs.legacyPackages.${system};
config.tools = {
alejandra.enable = false;
deadnix.enable = true;
nixpkgs-fmt.enable = true;
statix.enable = true;
};
}
);
# Custom packages; acessible via 'nix build', 'nix shell', etc
packages = libx.forAllSystems (system:
let pkgs = nixpkgs.legacyPackages.${system};
in import ./pkgs { inherit pkgs; }
);
nixosModules = import ./modules/nixos;
homeManagerModules = import ./modules/home-manager;
templates = import ./templates;
overlays = import ./overlays { inherit inputs outputs; };
hydraJobs = import ./hydra.nix { inherit inputs outputs; };
packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; });
devShells = forEachSystem (pkgs: import ./shell.nix { inherit pkgs; });
formatter = forEachSystem (pkgs: pkgs.nixpkgs-fmt);
wallpapers = import ./home/gburd/wallpapers;
nixosConfigurations = {
# Personal laptop - Lenovo Carbon X1 Extreme Gen 5 - x86_64
floki = lib.nixosSystem {
modules = [ ./hosts/floki ];
specialArgs = { inherit inputs outputs; };
};
# Work laptop - MacBook Air macOS/nix - aarch64
# ? = lib.nixosSystem {
# modules = [ ./hosts/? ];
# specialArgs = { inherit inputs outputs; };
# };
# Main desktop - Intel NUC Skull Canyon - x86_64
# ? = lib.nixosSystem {
# modules = [ ./hosts/? ];
# specialArgs = { inherit inputs outputs; };
# };
# Core server (?)
# ? = lib.nixosSystem {
# modules = [ ./hosts/? ];
# specialArgs = { inherit inputs outputs; };
# };
# Build and game server (?)
# ? = lib.nixosSystem {
# modules = [ ./hosts/? ];
# specialArgs = { inherit inputs outputs; };
# };
};
homeConfigurations = {
# Desktops
"gburd@floki" = lib.homeManagerConfiguration {
modules = [ ./home/gburd/floki.nix ];
pkgs = pkgsFor.x86_64-linux;
extraSpecialArgs = { inherit inputs outputs; };
};
"gburd@generic" = lib.homeManagerConfiguration {
modules = [ ./home/gburd/generic.nix ];
pkgs = pkgsFor.x86_64-linux;
extraSpecialArgs = { inherit inputs outputs; };
};
};
};
}

View file

@ -0,0 +1,185 @@
{ config, lib, pkgs, ... }: {
home = {
file = {
"${config.xdg.configHome}/neofetch/config.conf".text = builtins.readFile ./neofetch.conf;
};
packages = with pkgs; [
neofetch
];
sessionVariables = {
EDITOR = "micro";
MANPAGER = "sh -c 'col --no-backspaces --spaces | bat --language man'";
SYSTEMD_EDITOR = "micro";
VISUAL = "micro";
};
};
programs = {
atuin = {
enable = true;
enableBashIntegration = true;
enableFishIntegration = true;
flags = [
"--disable-up-arrow"
];
package = pkgs.unstable.atuin;
settings = {
auto_sync = true;
dialect = "uk";
show_preview = true;
style = "compact";
sync_frequency = "1h";
sync_address = "https://api.atuin.sh";
update_check = false;
};
};
bat = {
enable = true;
extraPackages = with pkgs.bat-extras; [
batwatch
prettybat
];
};
bottom = {
enable = true;
settings = {
colors = {
high_battery_color = "green";
medium_battery_color = "yellow";
low_battery_color = "red";
};
disk_filter = {
is_list_ignored = true;
list = [ "/dev/loop" ];
regex = true;
case_sensitive = false;
whole_word = false;
};
flags = {
dot_marker = false;
enable_gpu_memory = true;
group_processes = true;
hide_table_gap = true;
mem_as_value = true;
tree = true;
};
};
};
dircolors = {
enable = true;
enableBashIntegration = true;
enableFishIntegration = true;
};
direnv = {
enable = true;
enableBashIntegration = true;
nix-direnv = {
enable = true;
};
};
exa = {
enable = true;
enableAliases = true;
icons = true;
};
fish = {
enable = true;
shellAliases = {
cat = "bat --paging=never --style=plain";
htop = "btm --basic --tree --hide_table_gap --dot_marker --mem_as_value";
ip = "ip --color --brief";
less = "bat --paging=always";
more = "bat --paging=always";
top = "btm --basic --tree --hide_table_gap --dot_marker --mem_as_value";
tree = "exa --tree";
};
};
gh = {
enable = true;
extensions = with pkgs; [ gh-markdown-preview ];
settings = {
editor = "micro";
git_protocol = "ssh";
prompt = "enabled";
};
};
git = {
enable = true;
delta = {
enable = true;
options = {
features = "decorations";
navigate = true;
side-by-side = true;
};
};
aliases = {
lg = "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit";
};
extraConfig = {
push = {
default = "matching";
};
pull = {
rebase = true;
};
init = {
defaultBranch = "main";
};
};
ignores = [
"*.log"
"*.out"
".DS_Store"
"bin/"
"dist/"
"result"
];
};
gpg.enable = true;
home-manager.enable = true;
info.enable = true;
jq.enable = true;
micro = {
enable = true;
settings = {
colorscheme = "simple";
diffgutter = true;
rmtrailingws = true;
savecursor = true;
saveundo = true;
scrollbar = true;
};
};
powerline-go = {
enable = true;
settings = {
cwd-max-depth = 5;
cwd-max-dir-size = 12;
max-width = 60;
};
};
};
services = {
gpg-agent = {
enable = true;
enableSshSupport = true;
pinentryFlavor = "curses";
};
};
# Nicely reload system units when changing configs
systemd.user.startServices = "sd-switch";
xdg = {
enable = true;
userDirs = {
enable = true;
createDirectories = lib.mkDefault true;
extraConfig = {
XDG_SCREENSHOTS_DIR = "${config.home.homeDirectory}/Pictures/Screenshots";
};
};
};
}

View file

@ -0,0 +1,842 @@
# Adapted from https://github.com/chick2d/neofetch-themes/blob/main/normal/acenoster.conf
# Originally made by https://github.com/HimDek/ (HimDek)
# Customization Wiki https://github.com/dylanaraps/neofetch/wiki/Customizing-Info
print_info() {
info "${cl2} ╭─" distro
info "${cl2} ├─" kernel
# info "${cl2} ├─" users
info "${cl2} ├─" packages
info "${cl2} ╰─" uptime
echo
info "${cl6} ╭─" shell
info "${cl6} ├─" de
info "${cl6} ├─" wm
info "${cl6} ├─" theme
# info "${cl6} ├─" icons
info "${cl6} ├─" font
info "${cl6} ├─" term_font
info "${cl6} ╰─" term
echo
info "${cl4} ╭─" model
info "${cl4} ├─" cpu
info "${cl4} ├─" memory
info "${cl4} ├─ ${cl0}" disk
# info "${cl4} ├─ ${cl0} " battery
info "${cl4} ├─" gpu
# info "${cl4} ├─" gpu_driver
info "${cl4} ╰─" resolution
prin " "
prin "\n \n ${cl0}─${cl1}──${cl2}──${cl3}──${cl4}──${cl5}──${cl6}──${cl7}─ "
}
##--------- Title
# Hide/Show Fully qualified domain name.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --title_fqdn
title_fqdn="off"
##--------- Kernel
# Shorten the output of the kernel function.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --kernel_shorthand
# Supports: Everything except *BSDs (except PacBSD and PC-BSD)
#
# Example:
# on: '4.8.9-1-ARCH'
# off: 'Linux 4.8.9-1-ARCH'
kernel_shorthand="on"
##--------- Distro
# Shorten the output of the distro function
#
# Default: 'off'
# Values: 'on', 'tiny', 'off'
# Flag: --distro_shorthand
# Supports: Everything except Windows and Haiku
distro_shorthand="on"
# Show/Hide OS Architecture.
# Show 'x86_64', 'x86' and etc in 'Distro:' output.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --os_arch
#
# Example:
# on: 'Arch Linux x86_64'
# off: 'Arch Linux'
os_arch="on"
##--------- Uptime
# Shorten the output of the uptime function
#
# Default: 'on'
# Values: 'on', 'tiny', 'off'
# Flag: --uptime_shorthand
#
# Example:
# on: '2 days, 10 hours, 3 mins'
# tiny: '2d 10h 3m'
# off: '2 days, 10 hours, 3 minutes'
uptime_shorthand="tiny"
##--------- Memory
# Show memory pecentage in output.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --memory_percent
#
# Example:
# on: '1801MiB / 7881MiB (22%)'
# off: '1801MiB / 7881MiB'
memory_percent="on"
# Change memory output unit.
#
# Default: 'mib'
# Values: 'kib', 'mib', 'gib'
# Flag: --memory_unit
#
# Example:
# kib '1020928KiB / 7117824KiB'
# mib '1042MiB / 6951MiB'
# gib: ' 0.98GiB / 6.79GiB'
memory_unit="Gib"
##--------- Packages
# Show/Hide Package Manager names.
#
# Default: 'tiny'
# Values: 'on', 'tiny' 'off'
# Flag: --package_managers
#
# Example:
# on: '998 (pacman), 8 (flatpak), 4 (snap)'
# tiny: '908 (pacman, flatpak, snap)'
# off: '908'
package_managers="on"
##--------- Shell
# Show the path to $SHELL
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --shell_path
#
# Example:
# on: '/bin/bash'
# off: 'bash'
shell_path="off"
# Show $SHELL version
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --shell_version
#
# Example:
# on: 'bash 4.4.5'
# off: 'bash'
shell_version="on"
##--------- CPU
# CPU speed type
#
# Default: 'bios_limit'
# Values: 'scaling_cur_freq', 'scaling_min_freq', 'scaling_max_freq', 'bios_limit'.
# Flag: --speed_type
# Supports: Linux with 'cpufreq'
# NOTE: Any file in '/sys/devices/system/cpu/cpu0/cpufreq' can be used as a value.
speed_type="scaling_max_freq"
# CPU speed shorthand
#
# Default: 'off'
# Values: 'on', 'off'.
# Flag: --speed_shorthand
# NOTE: This flag is not supported in systems with CPU speed less than 1 GHz
#
# Example:
# on: 'i7-6500U (4) @ 3.1GHz'
# off: 'i7-6500U (4) @ 3.100GHz'
speed_shorthand="on"
# Enable/Disable CPU brand in output.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --cpu_brand
#
# Example:
# on: 'Intel i7-6500U'
# off: 'i7-6500U (4)'
cpu_brand="on"
# CPU Speed
# Hide/Show CPU speed.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --cpu_speed
#
# Example:
# on: 'Intel i7-6500U (4) @ 3.1GHz'
# off: 'Intel i7-6500U (4)'
cpu_speed="on"
# CPU Cores
# Display CPU cores in output
#
# Default: 'logical'
# Values: 'logical', 'physical', 'off'
# Flag: --cpu_cores
# Support: 'physical' doesn't work on BSD.
#
# Example:
# logical: 'Intel i7-6500U (4) @ 3.1GHz' (All virtual cores)
# physical: 'Intel i7-6500U (2) @ 3.1GHz' (All physical cores)
# off: 'Intel i7-6500U @ 3.1GHz'
cpu_cores="logical"
# CPU Temperature
# Hide/Show CPU temperature.
# Note the temperature is added to the regular CPU function.
#
# Default: 'off'
# Values: 'C', 'F', 'off'
# Flag: --cpu_temp
# Supports: Linux, BSD
# NOTE: For FreeBSD and NetBSD-based systems, you'll need to enable
# coretemp kernel module. This only supports newer Intel processors.
#
# Example: sudo rm /var/lib/pacman/db.lck
# C: 'Intel i7-6500U (4) @ 3.1GHz [27.2°C]'
# F: 'Intel i7-6500U (4) @ 3.1GHz [82.0°F]'
# off: 'Intel i7-6500U (4) @ 3.1GHz'
cpu_temp="on"
##--------- GPU
# Enable/Disable GPU Brand
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gpu_brand
#
# Example:
# on: 'AMD HD 7950'
# off: 'HD 7950'
gpu_brand="on"
# Which GPU to display
#
# Default: 'all'
# Values: 'all', 'dedicated', 'integrated'
# Flag: --gpu_type
# Supports: Linux
#
# Example:
# all:
# GPU1: AMD HD 7950
# GPU2: Intel Integrated Graphics
#
# dedicated:
# GPU1: AMD HD 7950
#
# integrated:
# GPU1: Intel Integrated Graphics
gpu_type="all"
##--------- Resolution
# Display refresh rate next to each monitor
# Default: 'off'
# Values: 'on', 'off'
# Flag: --refresh_rate
# Supports: Doesn't work on Windows.
#
# Example:
# on: '1920x1080 @ 60Hz'
# off: '1920x1080'
refresh_rate="on"
##--------- Gtk Theme / Icons / Font
# Shorten output of GTK Theme / Icons / Font
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --gtk_shorthand
#
# Example:
# on: 'Numix, Adwaita'
# off: 'Numix [GTK2], Adwaita [GTK3]'
gtk_shorthand="on"
# Enable/Disable gtk2 Theme / Icons / Font
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gtk2
#
# Example:
# on: 'Numix [GTK2], Adwaita [GTK3]'
# off: 'Adwaita [GTK3]'
gtk2="off"
# Enable/Disable gtk3 Theme / Icons / Font
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --gtk3
#
# Example:
# on: 'Numix [GTK2], Adwaita [GTK3]'
# off: 'Numix [GTK2]'
gtk3="on"
##--------- IP Address
# Website to ping for the public IP
#
# Default: 'http://ident.me'
# Values: 'url'
# Flag: --ip_host
public_ip_host="http://ident.me"
# Public IP timeout.
#
# Default: '2'
# Values: 'int'
# Flag: --ip_timeout
public_ip_timeout=2
# Desktop Environment
# Show Desktop Environment version
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --de_version
de_version="on"
##--------- Disk
# Which disks to display.
# The values can be any /dev/sdXX, mount point or directory.
# NOTE: By default we only show the disk info for '/'.
#
# Default: '/'
# Values: '/', '/dev/sdXX', '/path/to/drive'.
# Flag: --disk_show
#
# Example:
# disk_show=('/' '/dev/sdb1'):
# 'Disk (/): 74G / 118G (66%)'
# 'Disk (/mnt/Videos): 823G / 893G (93%)'
#
# disk_show=('/'):
# 'Disk (/): 74G / 118G (66%)'
#
disk_show=('/' '/home')
# Disk subtitle.
# What to append to the Disk subtitle.
#
# Default: 'mount'
# Values: 'mount', 'name', 'dir', 'none'
# Flag: --disk_subtitle
#
# Example:
# name: 'Disk (/dev/sda1): 74G / 118G (66%)'
# 'Disk (/dev/sdb2): 74G / 118G (66%)'
#
# mount: 'Disk (/): 74G / 118G (66%)'
# 'Disk (/mnt/Local Disk): 74G / 118G (66%)'
# 'Disk (/mnt/Videos): 74G / 118G (66%)'
#
# dir: 'Disk (/): 74G / 118G (66%)'
# 'Disk (Local Disk): 74G / 118G (66%)'
# 'Disk (Videos): 74G / 118G (66%)'
#
# none: 'Disk: 74G / 118G (66%)'
# 'Disk: 74G / 118G (66%)'
# 'Disk: 74G / 118G (66%)'
disk_subtitle="mount"
# Disk percent.
# Show/Hide disk percent.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --disk_percent
#
# Example:
# on: 'Disk (/): 74G / 118G (66%)'
# off: 'Disk (/): 74G / 118G'
disk_percent="on"
##--------- Song
# Manually specify a music player.
#
# Default: 'auto'
# Values: 'auto', 'player-name'
# Flag: --music_player
#
# Available values for 'player-name':
#
# amarok
# audacious
# banshee
# bluemindo
# clementine
# cmus
# deadbeef
# deepin-music
# dragon
# elisa
# exaile
# gnome-music
# gmusicbrowser
# gogglesmm
# guayadeque
# io.elementary.music
# iTunes
# juk
# lollypop
# mocp
# mopidy
# mpd
# muine
# netease-cloud-music
# olivia
# playerctl
# pogo
# pragha
# qmmp
# quodlibet
# rhythmbox
# sayonara
# smplayer
# spotify
# strawberry
# tauonmb
# tomahawk
# vlc
# xmms2d
# xnoise
# yarock
music_player="auto"
# Format to display song information.
#
# Default: '%artist% - %album% - %title%'
# Values: '%artist%', '%album%', '%title%'
# Flag: --song_format
#
# Example:
# default: 'Song: Jet - Get Born - Sgt Major'
song_format="%artist% - %album% - %title%"
# Print the Artist, Album and Title on separate lines
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --song_shorthand
#
# Example:
# on: 'Artist: The Fratellis'
# 'Album: Costello Music'
# 'Song: Chelsea Dagger'
#
# off: 'Song: The Fratellis - Costello Music - Chelsea Dagger'
song_shorthand="off"
# 'mpc' arguments (specify a host, password etc).
#
# Default: ''
# Example: mpc_args=(-h HOST -P PASSWORD)
mpc_args=()
##--------- Text Colors
# Text Colors
#
# Default: 'distro'
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
# Flag: --colors
#
# Each number represents a different part of the text in
# this order: 'title', '@', 'underline', 'subtitle', 'colon', 'info'
#
# Example:
# colors=(distro) - Text is colored based on Distro colors.
# colors=(4 6 1 8 8 6) - Text is colored in the order above.
colors=(distro)
##--------- Text Options
# Toggle bold text
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --bold
bold="on"
# Enable/Disable Underline
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --underline
underline_enabled="on"
# Underline character
#
# Default: '-'
# Values: 'string'
# Flag: --underline_char
underline_char=""
# Info Separator
# Replace the default separator with the specified string.
#
# Default: ':'
# Flag: --separator
#
# Example:
# separator="->": 'Shell-> bash'
# separator=" =": 'WM = dwm'
separator=" "
##--------- Color Blocks
# Color block range
# The range of colors to print.
#
# Default: '0', '15'
# Values: 'num'
# Flag: --block_range
#
# Example:
#
# Display colors 0-7 in the blocks. (8 colors)
# neofetch --block_range 0 7
#
# Display colors 0-15 in the blocks. (16 colors)
# neofetch --block_range 0 15
#block_range=(8 15)
block_range=(1 8)
# Colors for custom colorblocks
#colors
#bold="(tput bold)"
magenta="\033[1;35m"
green="\033[1;32m"
white="\033[1;37m"
blue="\033[1;34m"
red="\033[1;31m"
black="\033[1;40;30m"
yellow="\033[1;33m"
cyan="\033[1;36m"
reset="\033[0m"
bgyellow="\033[1;43;33m"
bgwhite="\033[1;47;37m"
cl0="${reset}"
cl1="${magenta}"
cl2="${green}"
cl3="${white}"
cl4="${blue}"
cl5="${red}"
cl6="${yellow}"
cl7="${cyan}"
cl8="${black}"
cl9="${bgyellow}"
cl10="${bgwhite}"
# Toggle color blocks
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --color_blocks
color_blocks="on"
# Color block width in spaces
#
# Default: '3'
# Values: 'num'
# Flag: --block_width
block_width=4
# Color block height in lines
#
# Default: '1'
# Values: 'num'
# Flag: --block_height
block_height=1
# Color Alignment
#
# Default: 'auto'
# Values: 'auto', 'num'
# Flag: --col_offset
#
# Number specifies how far from the left side of the terminal (in spaces) to
# begin printing the columns, in case you want to e.g. center them under your
# text.
# Example:
# col_offset="auto" - Default behavior of neofetch
# col_offset=7 - Leave 7 spaces then print the colors
col_offset="auto"
##--------- Progress Bars
# Bar characters
#
# Default: '-', '='
# Values: 'string', 'string'
# Flag: --bar_char
#
# Example:
# neofetch --bar_char 'elapsed' 'total'
# neofetch --bar_char '-' '='
bar_char_elapsed="-"
bar_char_total="="
# Toggle Bar border
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --bar_border
bar_border="on"
# Progress bar length in spaces
# Number of chars long to make the progress bars.
#
# Default: '15'
# Values: 'num'
# Flag: --bar_length
bar_length=15
# Progress bar colors
# When set to distro, uses your distro's logo colors.
#
# Default: 'distro', 'distro'
# Values: 'distro', 'num'
# Flag: --bar_colors
#
# Example:
# neofetch --bar_colors 3 4
# neofetch --bar_colors distro 5
bar_color_elapsed="distro"
bar_color_total="distro"
# Info display
# Display a bar with the info.
#
# Default: 'off'
# Values: 'bar', 'infobar', 'barinfo', 'off'
# Flags: --cpu_display
# --memory_display
# --battery_display
# --disk_display
#
# Example:
# bar: '[---=======]'
# infobar: 'info [---=======]'
# barinfo: '[---=======] info'
# off: 'info'
cpu_display="on"
memory_display="on"
battery_display="on"
disk_display="on"
##--------- Backend Settings
# Image backend.
#
# Default: 'ascii'
# Values: 'ascii', 'caca', 'chafa', 'jp2a', 'iterm2', 'off',
# 'pot', 'termpix', 'pixterm', 'tycat', 'w3m', 'kitty'
# Flag: --backend
image_backend="ascii"
# Image Source
#
# Which image or ascii file to display.
#
# Default: 'auto'
# Values: 'auto', 'ascii', 'wallpaper', '/path/to/img', '/path/to/ascii', '/path/to/dir/'
# 'command output (neofetch --ascii "$(fortune | cowsay -W 30)")'
# Flag: --source
#
# NOTE: 'auto' will pick the best image source for whatever image backend is used.
# In ascii mode, distro ascii art will be used and in an image mode, your
# wallpaper will be used.
image_source="auto"
##--------- Ascii Options
# Ascii distro
# Which distro's ascii art to display.
#
# Default: 'auto'
# Values: 'auto', 'distro_name'
# Flag: --ascii_distro
# NOTE: AIX, Alpine, Anarchy, Android, Antergos, antiX, "AOSC OS",
# "AOSC OS/Retro", Apricity, ArcoLinux, ArchBox, ARCHlabs,
# ArchStrike, XFerience, ArchMerge, Arch, Artix, Arya, Bedrock,
# Bitrig, BlackArch, BLAG, BlankOn, BlueLight, bonsai, BSD,
# BunsenLabs, Calculate, Carbs, CentOS, Chakra, ChaletOS,
# Chapeau, Chrom*, Cleanjaro, ClearOS, Clear_Linux, Clover,
# Condres, Container_Linux, CRUX, Cucumber, Debian, Deepin,
# DesaOS, Devuan, DracOS, DarkOs, DragonFly, Drauger, Elementary,
# EndeavourOS, Endless, EuroLinux, Exherbo, Fedora, Feren, FreeBSD,
# FreeMiNT, Frugalware, Funtoo, GalliumOS, Garuda, Gentoo, Pentoo,
# gNewSense, GNOME, GNU, GoboLinux, Grombyang, Guix, Haiku, Huayra,
# Hyperbola, janus, Kali, KaOS, KDE_neon, Kibojoe, Kogaion,
# Korora, KSLinux, Kubuntu, LEDE, LFS, Linux_Lite,
# LMDE, Lubuntu, Lunar, macos, Mageia, MagpieOS, Mandriva,
# Manjaro, Maui, Mer, Minix, LinuxMint, MX_Linux, Namib,
# Neptune, NetBSD, Netrunner, Nitrux, NixOS, Nurunner,
# NuTyX, OBRevenge, OpenBSD, openEuler, OpenIndiana, openmamba,
# OpenMandriva, OpenStage, OpenWrt, osmc, Oracle, OS Elbrus, PacBSD,
# Parabola, Pardus, Parrot, Parsix, TrueOS, PCLinuxOS, Peppermint,
# popos, Porteus, PostMarketOS, Proxmox, Puppy, PureOS, Qubes, Radix,
# Raspbian, Reborn_OS, Redstar, Redcore, Redhat, Refracted_Devuan,
# Regata, Rosa, sabotage, Sabayon, Sailfish, SalentOS, Scientific,
# Septor, SereneLinux, SharkLinux, Siduction, Slackware, SliTaz,
# SmartOS, Solus, Source_Mage, Sparky, Star, SteamOS, SunOS,
# openSUSE_Leap, openSUSE_Tumbleweed, openSUSE, SwagArch, Tails,
# Trisquel, Ubuntu-Budgie, Ubuntu-GNOME, Ubuntu-MATE, Ubuntu-Studio,
# Ubuntu, Venom, Void, Obarun, windows10, Windows7, Xubuntu, Zorin,
# and IRIX have ascii logos
# NOTE: Arch, Ubuntu, Redhat, and Dragonfly have 'old' logo variants.
# Use '{distro name}_old' to use the old logos.
# NOTE: Ubuntu has flavor variants.
# Change this to Lubuntu, Kubuntu, Xubuntu, Ubuntu-GNOME,
# Ubuntu-Studio, Ubuntu-Mate or Ubuntu-Budgie to use the flavors.
# NOTE: Arcolinux, Dragonfly, Fedora, Alpine, Arch, Ubuntu,
# CRUX, Debian, Gentoo, FreeBSD, Mac, NixOS, OpenBSD, android,
# Antrix, CentOS, Cleanjaro, ElementaryOS, GUIX, Hyperbola,
# Manjaro, MXLinux, NetBSD, Parabola, POP_OS, PureOS,
# Slackware, SunOS, LinuxLite, OpenSUSE, Raspbian,
# postmarketOS, and Void have a smaller logo variant.
# Use '{distro name}_small' to use the small variants.
ascii_distro="auto"
# Ascii Colors
#
# Default: 'distro'
# Values: 'distro', 'num' 'num' 'num' 'num' 'num' 'num'
# Flag: --ascii_colors
#
# Example:
# ascii_colors=(distro) - Ascii is colored based on Distro colors.
# ascii_colors=(4 6 1 8 8 6) - Ascii is colored using these colors.
ascii_colors=(distro)
# Bold ascii logo
# Whether or not to bold the ascii logo.
#
# Default: 'on'
# Values: 'on', 'off'
# Flag: --ascii_bold
ascii_bold="on"
##--------- Image Options
# Image loop
# Setting this to on will make neofetch redraw the image constantly until
# Ctrl+C is pressed. This fixes display issues in some terminal emulators.
#
# Default: 'off'
# Values: 'on', 'off'
# Flag: --loop
image_loop="off"
# Thumbnail directory
#
# Default: '~/.cache/thumbnails/neofetch'
# Values: 'dir'
thumbnail_dir="${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch"
# Crop mode
#
# Default: 'normal'
# Values: 'normal', 'fit', 'fill'
# Flag: --crop_mode
#
# See this wiki page to learn about the fit and fill options.
# https://github.com/dylanaraps/neofetch/wiki/What-is-Waifu-Crop%3F
crop_mode="normal"
# Crop offset
# Note: Only affects 'normal' crop mode.
#
# Default: 'center'
# Values: 'northwest', 'north', 'northeast', 'west', 'center'
# 'east', 'southwest', 'south', 'southeast'
# Flag: --crop_offset
crop_offset="center"
# Image size
# The image is half the terminal width by default.
#
# Default: 'auto'
# Values: 'auto', '00px', '00%', 'none'
# Flags: --image_size
# --size
image_size="auto"
# Gap between image and text
#
# Default: '3'
# Values: 'num', '-num'
# Flag: --gap
gap=2
# Image offsets
# Only works with the w3m backend.
#
# Default: '0'
# Values: 'px'
# Flags: --xoffset
# --yoffset
yoffset=0
xoffset=0
# Image background color
# Only works with the w3m backend.
#
# Default: ''
# Values: 'color', 'blue'
# Flag: --bg_color
background_color=
##--------- Misc Options
# Stdout mode
# Turn off all colors and disables image backend (ASCII/Image).
# Useful for piping into another command.
# Default: 'off'
# Values: 'on', 'off'
stdout="off"

View file

@ -0,0 +1,27 @@
{ config, lib, pkgs, username, ... }:
with lib.hm.gvariant;
{
home.packages = with pkgs; [
audio-recorder
];
dconf.settings = {
"apps/audio-recorder" = {
append-to-file = false;
filename-pattern = "LMP-${username}-%V-%H%M";
folder-name = "${config.home.homeDirectory}/Audio";
keep-on-top = true;
level-bar-value = 2;
media-format = "Podcast Mono, Lossless 44KHz";
#saved-profiles = [('CD Quality, AAC 44KHz', 'm4a', '', 'audio/x-raw,rate=44100,channels=2 ! avenc_aac compliance=-2 ! avmux_mp4'), ('CD Quality, Lossless 44KHz', 'flac', '', 'audio/x-raw,rate=44100,channels=2 ! flacenc name=enc'), ('CD Quality, Lossy 44KHz', 'ogg', '', 'audio/x-raw,rate=44100,channels=2 ! vorbisenc name=enc quality=0.5 ! oggmux'), ('CD Quality, MP3 Lossy 44KHz', 'mp3', '', 'audio/x-raw,rate=44100,channels=2 ! lamemp3enc name=enc target=0 quality=2'), ('Lossless WAV 22KHz', 'wav', '', 'audio/x-raw,rate=22050,channels=1 ! wavenc name=enc'), ('Lossless WAV 44KHz', 'wav', '', 'audio/x-raw,rate=44100,channels=2 ! wavenc name=enc'), ('Lossy Speex 32KHz', 'spx', '', 'audio/x-raw,rate=32000,channels=2 ! speexenc name=enc ! oggmux'), ('Podcast Mono, Lossless 44KHz', 'flac', '', 'audio/x-raw,rate=44100,channels=1 ! flacenc name=enc')];
show-systray-icon = false;
timer-active = false;
timer-expanded = false;
timer-text = "";
};
};
systemd.user.tmpfiles.rules = [
"d ${config.home.homeDirectory}/Audio 0755 ${username} users - -"
];
}

View file

@ -0,0 +1,14 @@
{ lib, pkgs, ... }:
with lib.hm.gvariant;
{
home.packages = with pkgs; [
celluloid
];
dconf.settings = {
"io/github/celluloid-player/celluloid" = {
csd-enable = false;
dark-theme-enable = true;
};
};
}

View file

@ -0,0 +1,13 @@
{ lib, pkgs, ... }:
with lib.hm.gvariant;
{
home.packages = with pkgs; [
gnome.dconf-editor
];
dconf.settings = {
"ca/desrt/dconf-editor" = {
show-warning = false;
};
};
}

View file

@ -0,0 +1,27 @@
{ config, pkgs, ... }:
{
# https://github.com/muesli/deckmaster
home = {
file = {
"${config.xdg.configHome}/autostart/deskmaster-xl.desktop".text = "
[Desktop Entry]
Name=Deckmaster XL
Comment=Deckmaster XL
Type=Application
Exec=deckmaster -deck ${config.home.homeDirectory}/Studio/StreamDeck/Deckmaster-xl/main.deck
Categories=
Terminal=false
NoDisplay=true
StartupNotify=false";
};
# Deckmaster and the utilities I bind to the Stream Deck
packages = with pkgs; [
bc
deckmaster
hueadm
libnotify
unstable.obs-cli
playerctl
];
};
}

View file

@ -0,0 +1,47 @@
{ desktop, lib, username, ... }: {
imports = [
(./. + "/${desktop}.nix")
] ++ lib.optional (builtins.pathExists (./. + "/../users/${username}/desktop.nix")) ../users/${username}/desktop.nix;
# https://nixos.wiki/wiki/Bluetooth#Using_Bluetooth_headsets_with_PulseAudio
services.mpris-proxy.enable = true;
xresources.properties = {
"XTerm*background" = "#121214";
"XTerm*foreground" = "#c8c8c8";
"XTerm*cursorBlink" = true;
"XTerm*cursorColor" = "#FFC560";
"XTerm*boldColors" = false;
#Black + DarkGrey
"*color0" = "#141417";
"*color8" = "#434345";
#DarkRed + Red
"*color1" = "#D62C2C";
"*color9" = "#DE5656";
#DarkGreen + Green
"*color2" = "#42DD76";
"*color10" = "#A1EEBB";
#DarkYellow + Yellow
"*color3" = "#FFB638";
"*color11" = "#FFC560";
#DarkBlue + Blue
"*color4" = "#28A9FF";
"*color12" = "#94D4FF";
#DarkMagenta + Magenta
"*color5" = "#E66DFF";
"*color13" = "#F3B6FF";
#DarkCyan + Cyan
"*color6" = "#14E5D4";
"*color14" = "#A1F5EE";
#LightGrey + White
"*color7" = "#c8c8c8";
"*color15" = "#e9e9e9";
"XTerm*faceName" = "FiraCode Nerd Font:size=13:style=Medium:antialias=true";
"XTerm*boldFont" = "FiraCode Nerd Font:size=13:style=Bold:antialias=true";
"XTerm*geometry" = "132x50";
"XTerm.termName" = "xterm-256color";
"XTerm*locale" = false;
"XTerm*utf8" = true;
};
}

View file

@ -0,0 +1,22 @@
{ pkgs, ... }:
{
# https://github.com/tom-james-watson/emote
home.packages = with pkgs.unstable; [
emote
];
systemd.user.services = {
emote = {
Unit = {
Description = "Emote";
};
Service = {
ExecStart = "${pkgs.unstable.emote}/bin/emote";
Restart = "on-failure";
};
Install = {
WantedBy = [ "default.target" ];
};
};
};
}

View file

@ -0,0 +1,191 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
unstable.gitkraken
];
home.file = {
".gitkraken/themes/bearded-vivid-black.jsonc".text = ''
{
"meta": {
"name": "Bearded Vivid Black",
"scheme": "dark" // must be "light" or "dark"
},
"themeValues": {
// values applied to the entire app
"root": {
"red": "#d62c2c",
"orange": "#ff7135",
"yellow": "#ffb638",
"green": "#42dd76",
"teal": "#14e5d4",
"blue": "#28a9ff",
"ltblue": "#94D4FF",
"purple": "#e66dff",
"app__bg0": "#141417",
"toolbar__bg0": "lighten(saturate(@app__bg0, 3%), 1%)",
"toolbar__bg1": "lighten(@toolbar__bg0, 4%)", //4%
"toolbar__bg2": "lighten(@toolbar__bg1, 6%)", //6%
"panel__bg0": "lighten(@app__bg0, 5%)", //5%
"panel__bg1": "lighten(@panel__bg0, 4%)", //4%
"panel__bg2": "lighten(@panel__bg1, 4%)", //4%
"input__bg": "#141417",
"input-bg-warn-color": "fade(@orange, 60%)",
"panel-border": "fade(#FFFFFF, 8%)",
"section-border": "fade(#FFFFFF, 8%)",
"subtle-border": "fade(#FFFFFF, 4%)",
"modal-overlay-color": "rgba(0,0,0,.5)",
// graph colors
"graph-color-0": "#14E5D4", //cyan
"graph-color-1": "#28A9FF", //blue
"graph-color-2": "#8e00c2", //purle
"graph-color-3": "#E66DFF", //magenta
"graph-color-4": "#F3B6FF", //lt. magenta
"graph-color-5": "#D62C2C", //red
"graph-color-6": "#ff7135", //orange
"graph-color-7": "#FFB638", //yellow
"graph-color-8": "#42DD76", //green
"graph-color-9": "#2ece9d", //teal
// text colors
// values starting with . aren't added to the CSS, they're just variables
".text-color": "#c8c8c8",
"text-selected": "@.text-color",
"text-normal": "fade(@.text-color, 78%)",
"text-secondary": "fade(@.text-color, 65%)",
"text-disabled": "fade(@.text-color, 45%)",
"text-accent": "#28a9ff", //blue
"text-inverse": "#373737",
"text-bright": "@.text-color",
"text-dimmed": "fade(@text-normal, 20%)",
"text-dimmed-selected": "fade(@text-dimmed, 50%)",
"text-selected-row": "@text-selected",
// buttons
"btn-text": "@text-normal",
"btn-text-hover": "@text-selected",
"default-border": "@text-normal",
"default-bg": "transparent",
"default-hover": "transparent",
"default-border-hover": "@text-selected",
"primary-border": "@blue",
"primary-bg": "fade(@blue, 10%)", //10%
"primary-hover": "fade(@blue, 40%)", //40%
"success-border": "@green",
"success-bg": "fade(@green, 10%)",
"success-hover": "fade(@green, 40%)",
"warning-border": "@orange",
"warning-bg": "fade(@orange, 10%)",
"warning-hover": "fade(@orange, 35%)",
"danger-border": "@red",
"danger-bg": "fade(@red, 10%)",
"danger-hover": "fade(@red, 40%)",
// states
"hover-row": "fade(@blue, 50%)", //15%
"danger-row": "fade(@red, 40%)",
"selected-row": "fade(@blue, 75%)", //20%
"selected-row-border": "none",
"warning-row": "fade(@orange, 40%)",
"droppable": "fade(@yellow, 30%)",
"drop-target": "fade(@green, 50%)",
"input--disabled": "fade(#000000, 10%)",
"link-color": "#14e5d4", //cyan
"link-color-bright": "#14e5d4", //cyan
"form-control-focus": "@blue",
// various app elements
"scroll-thumb-border": "rgba(0,0,0,0)",
"scroll-thumb-bg": "rgba(255,255,255,0.15)",
"scroll-thumb-bg-light": "rgba(0,0,0,0.15)",
"wip-status": "fade(@blue, 40%)",
"card__bg": "@panel__bg2",
"card-shadow": "@rgba(0,0,0,.2)",
"statusbar__warning-bg": "mixLess(@graph-color-7, @app__bg0, 50%)",
"label__yellow-color": "#ffb638", //yellow
"label__light-blue-color": "#28a9ff", //blue
"label__purple-color": "#e66dff", //magenta
// component states
"filtering": "fade(@blue, 50%)",
"soloing": "fade(@orange, 50%)",
"checked-out": "fade(@green, 30%)",
"soloed": "fade(@orange, 30%)",
"filter-match": "fade(@blue, 50%)",
"clone__progress": "fade(@blue, 70%)",
"toolbar__prompt": "fade(@blue, 20%)",
"verified": "fade(@green, 30%)",
"unverified": "fade(#ffffff, 10%)",
"drop-sort-border": "@green",
// terminal
"terminal__repo-name-color": "turquoise",
"terminal__repo-branch-color": "violet",
"terminal__repo-tag-color": "coral",
"terminal__repo-upstream-color": "lime",
"terminal__background": "#121214",
"terminal__cursor": "#ffb638",
"terminal__cursorAccent": "#ffb638",
"terminal__foreground": "#c8c8c8",
"terminal__selection": "#37373a", //grey-dark
"terminal__black": "#141417",
"terminal__red": "#d62c2c",
"terminal__green": "#42dd76",
"terminal__yellow": "#ffb638",
"terminal__blue": "#28a9ff",
"terminal__magenta": "#e66dff",
"terminal__cyan": "#14e5d4",
"terminal__white": "#c8c8c8",
"terminal__brightBlack": "#434345",
"terminal__brightRed": "#DE5656",
"terminal__brightGreen": "#A1EEBB",
"terminal__brightYellow": "#FFC560",
"terminal__brightBlue": "#94D4FF",
"terminal__brightMagenta": "#F3B6FF",
"terminal__brightCyan": "#A1F5EE,
"terminal__brightWhite": "#E9E9E9,
// code editor
"code-bg": "@app__bg0",
"code-foreground": "@text-normal",
"code-blame-color-0": "@graph-color-0",
"code-blame-color-1": "@graph-color-1",
"code-blame-color-2": "@graph-color-2",
"code-blame-color-3": "@graph-color-3",
"code-blame-color-4": "@graph-color-4",
"code-blame-color-5": "@graph-color-5",
"code-blame-color-6": "@graph-color-6",
"code-blame-color-7": "@graph-color-7",
"code-blame-color-8": "@graph-color-8",
"code-blame-color-9": "@graph-color-9",
"added-line": "fade(@green, 30%)",
"deleted-line": "fade(@red, 30%)",
"modified-line": "fade(#000000, 25%)",
"conflict-info-color": "#14e5d4", //cyan
"conflict-left-border-color": "#14e5d4", //cyan
"conflict-left-color": "fade(@conflict-left-border-color, 25%)",
"conflict-right-border-color": "#ffb638", //yellow
"conflict-right-color": "fade(@conflict-right-border-color, 25%)",
"conflict-output-border-color": "#e66dff", //magenta
"conflict-output-color": "fade(@conflict-output-border-color, 25%)"
},
// override specific values just for the toolbar
"toolbar": {
"text-selected": "rgba(255,255,255,1)",
"text-normal": "rgba(255,255,255,.9)",
"text-secondary": "rgba(255,255,255,.6)",
"text-disabled": "rgba(255,255,255,.4)",
"section-border": "rgba(255,255,255,.2)",
"input__bg": "rgba(0,0,0,.20)",
"link-color": "#14e5d4", //cyan
"btn-text": "var(--text-normal)"
},
// override specific values just for the tabs bar
"tabsbar": {
"text-selected": "rgba(255,255,255,1)",
"text-normal": "rgba(255,255,255,.9)",
"text-secondary": "rgba(255,255,255,.6)",
"text-disabled": "rgba(255,255,255,.4)",
"section-border": "rgba(255,255,255,.2)",
"input__bg": "rgba(0,0,0,.20)",
"link-color": "#14e5d4", //cyan
"btn-text": "var(--text-normal)"
}
}
}
'';
};
}

View file

@ -0,0 +1,19 @@
{ config, lib, pkgs, username, ... }:
with lib.hm.gvariant;
{
home.packages = with pkgs; [
gnome.gnome-sound-recorder
];
dconf.settings = {
"org/gnome/SoundRecorder" = {
audio-channel = "mono";
audio-profile = "flac";
};
};
systemd.user.tmpfiles.rules = [
"d ${config.home.homeDirectory}/Audio 0755 ${username} users - -"
"L+ ${config.home.homeDirectory}/.local/share/org.gnome.SoundRecorder/ - - - - ${config.home.homeDirectory}/Audio/"
];
}

View file

@ -0,0 +1,22 @@
{ pkgs, ... }:
{
# https://localsend.org/
home.packages = with pkgs; [
localsend
];
systemd.user.services = {
localsend = {
Unit = {
Description = "LocalSend";
};
Service = {
ExecStart = "${pkgs.localsend}/bin/localsend";
Restart = "on-failure";
};
Install = {
WantedBy = [ "default.target" ];
};
};
};
}

View file

@ -0,0 +1,363 @@
{ config, lib, pkgs, ... }:
with lib.hm.gvariant;
{
dconf.settings = {
"org/gnome/charmap" = {
font = "Work Sans 22";
};
"org/gnome/desktop/interface" = {
cursor-theme = "Yaru";
document-font-name = "Work Sans 12";
font-name = "Work Sans 12";
gtk-theme = "Yaru-magenta-dark";
icon-theme = "Yaru-magenta-dark";
monospace-font-name = "FiraCode Nerd Font Medium 13";
};
"org/gnome/desktop/wm/preferences" = {
button-layout = ":minimize,maximize,close";
theme = "Yaru-dark";
titlebar-font = "Work Sans Semi-Bold 12";
titlebar-uses-system-font = false;
};
"org/gnome/evolution/mail" = {
monospace-font = "FiraCode Nerd Font Medium 13";
search-gravatar-for-photo = true;
show-sender-photo = true;
variable-width-font = "Work Sans 12";
};
"org/gnome/evolution/plugin/external-editor" = {
command = "pluma";
};
"org/gtk/settings/file-chooser" = {
sort-directories-first = true;
};
"org/mate/applications-office/calendar" = {
exec = "evolution";
};
"org/mate/applications-office/tasks" = {
exec = "evolution";
};
"org/mate/caja/desktop" = {
computer-icon-visible = false;
font = "Work Sans Medium 12";
home-icon-visible = true;
trash-icon-visible = false;
};
"org/mate/caja/list-view" = {
default-zoom-level = "small";
};
"org/mate/caja/preferences" = {
default-folder-view = "list-view";
};
"org/mate/dictionary" = {
print-font = "Work Sans 12";
};
"org/mate/disk-usage-analyzer/ui" = {
statusbar-visible = true;
};
"org/mate/desktop/applications/calculator" = {
exec = "mate-calc";
};
"org/mate/desktop/applications/messager" = {
exec = "telegram-desktop";
};
"org/mate/desktop/applications/terminal" = {
exec = "mate-terminal";
};
"org/mate/desktop/background" = {
picture-filename = "";
primary-color = "rgb(192,97,203)";
secondary-color = "rgb(28,113,216)";
};
"org/mate/desktop/font-rendering" = {
antialiasing = "rgba";
hinting = "slight";
rgba-order = "rgb";
};
"org/mate/desktop/interface" = {
document-font-name = "Work Sans 12";
font-name = "Work Sans 12";
gtk-decoration-layout = ":minimize,maximize,close";
gtk-theme = "Yaru-magenta-dark";
gtk-color-scheme = "tooltip_fg_color:#ffffff\ntooltip_bg_color:#343434";
icon-theme = "Yaru-magenta-dark";
monospace-font-name = "FiraCode Nerd Font Medium 13";
};
"org/mate/desktop/peripherals/keyboard/kbd" = {
options = [ "terminate\tterminate:ctrl_alt_bksp" "caps\tcaps:none" ];
};
"org/mate/desktop/peripherals/mouse" = {
cursor-size = 32;
cursor-theme = "Yaru";
};
"org/mate/desktop/peripherals/touchpad" = {
disable-while-typing = true;
tap-to-click = true;
three-finger-click = 0;
two-finger-click = 0;
};
"org/mate/desktop/session" = {
idle-delay = 30;
};
"org/mate/desktop/sound" = {
event-sounds = true;
input-feedback-sounds = true;
theme-name = "Yaru";
};
"org/mate/eom/view" = {
extrapolate = false;
interpolate = false;
};
"org/mate/notification-daemon" = {
theme = "slider";
};
"org/mate/marco/general" = {
alt-tab-expand-to-fit-title = true;
button-layout = ":minimize,maximize,close";
center-new-windows = false;
compositing-manager = true;
num-workspaces = 8;
show-tab-border = false;
theme = "Yaru-dark";
titlebar-font = "Work Sans Semi-Bold 12";
};
"org/mate/marco/global-keybindings" = {
run-command-1 = "<Mod4>l";
run-command-2 = "<Shift>Print";
run-command-3 = "<Mod4>e";
run-command-4 = "<Mod4>t";
run-command-5 = "<Mod4>i";
run-command-6 = "<Mod4>s";
run-command-7 = "<Control><Shift>Escape";
run-command-8 = "<Mod4>Pause";
run-command-terminal = "<Control><Alt>t";
switch-panels = "disabled";
switch-windows = "<Alt>Tab";
switch-windows-all = "<Control><Alt>Tab";
switch-windows-all-backward = "<Control><Alt><Shift>Tab";
switch-windows-backward = "<Alt><Shift>Tab";
switch-to-workspace-1 = "<Mod4>1";
switch-to-workspace-2 = "<Mod4>2";
switch-to-workspace-3 = "<Mod4>3";
switch-to-workspace-4 = "<Mod4>4";
switch-to-workspace-5 = "<Mod4>5";
switch-to-workspace-6 = "<Mod4>6";
switch-to-workspace-7 = "<Mod4>7";
switch-to-workspace-8 = "<Mod4>8";
};
"org/mate/marco/keybinding-commands" = {
command-1 = "mate-screensaver-command --lock";
command-2 = "/bin/sh -c \"sleep 0.1; mate-screenshot --area\"";
command-3 = "caja";
command-4 = "mate-terminal --window";
command-5 = "mate-control-center";
command-6 = "mate-search-tool";
command-7 = "mate-system-monitor -p";
command-8 = "mate-system-monitor -s";
};
"org/mate/marco/window-keybindings" = {
maximize = "<Mod4>Up";
move-to-center = "<Alt><Mod4>c";
tile-to-corner-ne = "<Alt><Mod4>Right";
tile-to-corner-nw = "<Alt><Mod4>Left";
tile-to-corner-se = "<Shift><Alt><Mod4>Right";
tile-to-corner-sw = "<Shift><Alt><Mod4>Left";
tile-to-side-e = "<Mod4>Right";
tile-to-side-w = "<Mod4>Left";
toggle-shaded = "<Control><Alt>s";
unmaximize = "<Mod4>Down";
};
"org/mate/marco/workspace-names" = {
name-1 = " Web ";
name-2 = " Work ";
name-3 = " Chat ";
name-4 = " Code ";
name-5 = " Virt ";
name-6 = " Cast ";
name-7 = " Fun ";
name-8 = " Stuff ";
};
"org/mate/maximus" = {
no-maximize = true;
undecorate = false;
};
"org/mate/media-handling" = {
autorun-x-content-start-app = [ "x-content/software" "x-content/video-bluray.xml" "x-content/video-dvd.xml" "x-content/video-hddvd.xml" "x-content/video-svcd.xml" "x-content/video-vcd.xml" ];
};
"org/mate/panel" = {
enable-sni-support = true;
show-program-list = true;
};
"org/mate/panel/menubar" = {
icon-name = "start-here-symbolic";
};
"org/mate/panel/objects/workspace-switcher/prefs" = {
display-workspace-names = true;
};
"org/mate/pluma" = {
auto-indent = true;
bracket-matching = true;
color-scheme = "Yaru-dark";
display-line-numbers = true;
display-right-margin = true;
display-overview-map = true;
editor-font = "FiraCode Nerd Font Medium 13";
highlight-current-line = true;
insert-spaces = true;
print-font-body-pango = "FiraCode Nerd Font Medium 10";
print-font-header-pango = "Work Sans 11";
print-font-numbers-pango = "Work Sans 8";
};
"org/mate/power-manager" = {
button-power = "interactive";
sleep-computer-ac = 0;
sleep-display-ac = 3600;
};
"org/mate/screensaver" = {
lock-delay = 1;
mode = "single";
themes = [ "screensavers-footlogo-floaters" ];
};
"org/mate/settings-daemon/plugins/media-keys" = {
magnifier = "<Alt><Mod4>m";
on-screen-keyboard = "<Alt><Mod4>k";
screenreader = "<Alt><Mod4>s";
};
"org/mate/stickynotes" = {
default-font = "Work Sans Medium 10";
};
"org/mate/system-monitor" = {
cpu-color0 = "#9A0606";
cpu-color1 = "#B42828";
cpu-color10 = "#6B9A06";
cpu-color11 = "#86B428";
cpu-color12 = "#A4CD50";
cpu-color13 = "#C4E67F";
cpu-color14 = "#E6FFB3";
cpu-color15 = "#066B9A";
cpu-color16 = "#2886B4";
cpu-color17 = "#50A5CD";
cpu-color18 = "#7FC4E6";
cpu-color19 = "#B3E6FF";
cpu-color2 = "#CD5050";
cpu-color20 = "#21069A";
cpu-color21 = "#4028B4";
cpu-color22 = "#6550CD";
cpu-color23 = "#907FE6";
cpu-color24 = "#C0B4FF";
cpu-color25 = "#870087";
cpu-color26 = "#BC00BC";
cpu-color27 = "#F100F1";
cpu-color28 = "#FF4FFF";
cpu-color29 = "#FF87FF";
cpu-color3 = "#E67F7F";
cpu-color30 = "#C4A000";
cpu-color31 = "#EDD400";
cpu-color4 = "#FFB4B4";
cpu-color5 = "#9A5306";
cpu-color6 = "#B47028";
cpu-color7 = "#CD8F50";
cpu-color8 = "#E6B37F";
cpu-color9 = "#FFDBB5";
show-tree = true;
solaris-mode = false;
};
"org/mate/terminal/profile" = {
allow-bold = false;
use-system-font = true;
};
};
gtk = {
enable = true;
cursorTheme = {
name = "Yaru";
package = pkgs.yaru-theme;
size = 32;
};
font = {
name = "Work Sans 12";
package = pkgs.work-sans;
};
gtk2 = {
configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
extraConfig = ''
gtk-application-prefer-dark-theme=1
'';
};
gtk3 = {
extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
};
gtk4 = {
extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
};
iconTheme = {
name = "Yaru-dark-magenta";
package = pkgs.yaru-theme;
};
theme = {
name = "Yaru-dark-magenta";
package = pkgs.yaru-theme;
};
};
home.pointerCursor = {
name = "Yaru";
package = pkgs.yaru-theme;
size = 32;
gtk.enable = true;
x11.enable = true;
};
}

View file

@ -0,0 +1,19 @@
{ lib, pkgs, ... }:
with lib.hm.gvariant;
{
home.packages = with pkgs; [
meld
];
dconf.settings = {
"org/gnome/meld" = {
indent-width = 4;
insert-spaces-instead-of-tabs = true;
highlight-current-line = true;
show-line-numbers = true;
prefer-dark-theme = true;
highlight-syntax = true;
style-scheme = "Yaru-dark";
};
};
}

View file

@ -0,0 +1,267 @@
{ config, lib, pkgs, ... }:
with lib.hm.gvariant;
{
dconf.settings = {
"com/github/stsdc/monitor/settings" = {
background-state = true;
indicator-state = true;
indicator-cpu-state = false;
indicator-gpu-state = false;
indicator-memory-state = false;
indicator-network-download-state = true;
indicator-network-upload-state = true;
indicator-temperature-state = true;
};
"desktop/ibus/panel" = {
show-icon-on-systray = false;
use-custom-font = true;
custom-font = "Work Sans 10";
};
"desktop/ibus/panel/emoji" = {
font = "JoyPixels 16";
};
"io/elementary/code/saved-state" = {
outline-visible = true;
};
"io/elementary/code/settings" = {
strip-trailing-on-save = true;
show-mini-map = true;
show-right-margin = true;
style-scheme = "Yaru-dark";
prefer-dark-style = true;
};
"io/elementary/desktop/agent-geoclue2" = {
location-enabled = true;
};
"io/elementary/desktop/wingpanel" = {
use-transparency = false;
};
"io/elementary/desktop/wingpanel/datetime" = {
clock-format = "24h";
};
"io/elementary/desktop/wingpanel/sound" = {
max-volume = 100.0;
};
"io/elementary/files/preferences" = {
singleclick-select = true;
};
"io/elementary/notifications/applications/gala-other" = {
remember = false;
sounds = false;
};
"io/elementary/settings-daemon/datetime" = {
show-weeks = true;
};
"io/elementary/settings-daemon/housekeeping" = {
cleanup-downloads-folder = false;
};
"io/elementary/terminal/settings" = {
audible-bell = false;
background = "rgb(18,18,20)";
cursor-color = "rgb(255,182,56)";
follow-last-tab = "true";
font = "FiraCode Nerd Font Medium 13";
foreground = "rgb(200,200,200)";
natural-copy-paste = false;
palette = "rgb(20,20,23):rgb(214,43,43):rgb(65,221,117):rgb(255,182,56):rgb(40,169,255):rgb(230,109,255):rgb(20,229,211):rgb(200,200,200):rgb(67,67,69):rgb(222,86,86):rgb(161,238,187):rgb(255,219,156):rgb(148,212,255):rgb(243,182,255):rgb(161,245,238):rgb(233,233,233)";
theme = "custom";
unsafe-paste-alert = false;
};
"net/launchpad/plank/docks/dock1" = {
alignment = "center";
hide-mode = "window-dodge";
icon-size = 48;
pinned-only = false;
position = "left";
theme = "Transparent";
};
"org/gnome/desktop/datetime" = {
automatic-timezone = true;
};
"org/gnome/desktop/input-sources" = {
xkb-options = [ "grp:alt_shift_toggle" "caps:none" ];
};
"org/gnome/desktop/interface" = {
clock-format = "24h";
color-scheme = "prefer-dark";
cursor-size = 32;
cursor-theme = "elementary";
document-font-name = "Work Sans 12";
font-name = "Work Sans 12";
gtk-theme = "io.elementary.stylesheet.bubblegum";
gtk-enable-primary-paste = true;
icon-theme = "elementary";
monospace-font-name = "FiraCode Nerd Font Medium 13";
text-scaling-factor = 1.0;
};
"org/gnome/desktop/session" = {
idle-delay = lib.hm.gvariant.mkUint32 7200;
};
"org/gnome/desktop/sound" = {
theme-name = "elementary";
};
"org/gnome/desktop/wm/keybindings" = {
switch-to-workspace-left = [ "<Primary><Alt>Left" ];
switch-to-workspace-right = [ "<Primary><Alt>Right" ];
};
"org/gnome/desktop/wm/preferences" = {
audible-bell = false;
button-layout = ":minimize,maximize,close";
num-workspaces = 8;
titlebar-font = "Work Sans Semi-Bold 12";
workspace-names = [ "Web" "Work" "Chat" "Code" "Virt" "Cast" "Fun" "Stuff" ];
};
"org/gnome/GWeather" = {
temperature-unit = "centigrade";
};
"org/gnome/mutter" = {
workspaces-only-on-primary = false;
dynamic-workspaces = false;
};
"org/gnome/mutter/keybindings" = {
toggle-tiled-left = [ "<Super>Left" ];
toggle-tiled-right = [ "<Super>Right" ];
};
"org/gnome/settings-daemon/plugins/media-keys" = {
custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" ];
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
binding = "<Super>e";
command = "io.elementary.files -n ~/";
name = "io.elementary.files -n ~/";
};
"org/gnome/settings-daemon/plugins/power" = {
power-button-action = "interactive";
sleep-inactive-ac-timeout = 0;
sleep-inactive-ac-type = "nothing";
};
#"org/gnome/settings-daemon/plugins/xsettings" = {
# overrides = "{\'Gtk/DialogsUseHeader\': <0>, \'Gtk/ShellShowsAppMenu\': <0>, \'Gtk/EnablePrimaryPaste\': <1>, \'Gtk/DecorationLayout\': <\':minimize,maximize,close,menu\'>, \'Gtk/ShowUnicodeMenu\': <0>}";
#};
"org/gtk/gtk4/Settings/FileChooser" = {
clock-format = "24h";
};
"org/gtk/Settings/FileChooser" = {
clock-format = "24h";
};
"org/pantheon/desktop/gala/appearance" = {
button-layout = ":minimize,maximize,close";
};
"org/pantheon/desktop/gala/behavior" = {
dynamic-workspaces = false;
overlay-action = "io.elementary.wingpanel --toggle-indicator=app-launcher";
};
"org/pantheon/desktop/gala/mask-corners" = {
enable = false;
};
};
gtk = {
enable = true;
cursorTheme = {
name = "elementary";
package = pkgs.pantheon.elementary-icon-theme;
size = 32;
};
font = {
name = "Work Sans 12";
package = pkgs.work-sans;
};
gtk2 = {
configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc";
extraConfig = ''
gtk-application-prefer-dark-theme=1
'';
};
gtk3 = {
extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
};
gtk4 = {
extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
};
iconTheme = {
name = "elementary";
package = pkgs.pantheon.elementary-icon-theme;
};
theme = {
name = "io.elementary.stylesheet.bubblegum";
package = pkgs.pantheon.elementary-gtk-theme;
};
};
home.pointerCursor = {
package = pkgs.pantheon.elementary-icon-theme;
name = "elementary";
size = 32;
gtk.enable = true;
x11.enable = true;
};
home.file = {
"${config.xdg.configHome}/autostart/ibus-daemon.desktop".text = "
[Desktop Entry]
Name=IBus Daemon
Comment=IBus Daemon
Type=Application
Exec=${pkgs.ibus}/bin/ibus-daemon --daemonize --desktop=pantheon --replace --xim
Categories=
Terminal=false
NoDisplay=true
StartupNotify=false";
"${config.xdg.configHome}/autostart/monitor.desktop".text = "
[Desktop Entry]
Name=Monitor Indicators
Comment=Monitor Indicators
Type=Application
Exec=/run/current-system/sw/bin/com.github.stsdc.monitor --start-in-background
Icon=com.github.stsdc.monitor
Categories=
Terminal=false
StartupNotify=false";
};
}

View file

@ -0,0 +1,22 @@
{ lib, pkgs, ... }:
with lib.hm.gvariant;
{
home.packages = with pkgs; [
rhythmbox
];
dconf.settings = {
"org/gnome/rhythmbox/plugins" = {
active-plugins = [ "rb" "power-manager" "mpris" "iradio" "generic-player" "audiocd" "android" ];
};
"org/gnome/rhythmbox/podcast" = {
download-interval = "manual";
};
"org/gnome/rhythmbox/sources" = {
browser-views = "genres-artists-albums";
visible-columns = [ "post-time" "duration" "track-number" "album" "genre" "beats-per-minute" "play-count" "artist" ];
};
};
}

View file

@ -0,0 +1,75 @@
[sakura]
colorset1_fore=rgb(192,192,192)
colorset1_back=rgb(18,18,20)
colorset1_curs=rgb(255,182,56)
colorset1_scheme=0
colorset1_key=F1
colorset2_fore=rgb(192,192,192)
colorset2_back=rgb(0,0,0)
colorset2_curs=rgb(255,255,255)
colorset2_scheme=1
colorset2_key=F2
colorset3_fore=rgb(192,192,192)
colorset3_back=rgb(0,0,0)
colorset3_curs=rgb(255,255,255)
colorset3_scheme=1
colorset3_key=F3
colorset4_fore=rgb(192,192,192)
colorset4_back=rgb(0,0,0)
colorset4_curs=rgb(255,255,255)
colorset4_scheme=1
colorset4_key=F4
colorset5_fore=rgb(192,192,192)
colorset5_back=rgb(0,0,0)
colorset5_curs=rgb(255,255,255)
colorset5_scheme=1
colorset5_key=F5
colorset6_fore=rgb(192,192,192)
colorset6_back=rgb(0,0,0)
colorset6_curs=rgb(255,255,255)
colorset6_scheme=1
colorset6_key=F6
last_colorset=1
bold_is_bright=false
scroll_lines=4096
font=FixedsysModernV05 Nerd Font Mono 18
show_tab_bar=never
scrollbar=false
closebutton=false
tabs_on_bottom=false
less_questions=true
disable_numbered_tabswitch=true
use_fading=false
scrollable_tabs=true
urgent_bell=Yes
audible_bell=Yes
blinking_cursor=Yes
cursor_type=VTE_CURSOR_SHAPE_BLOCK
word_chars=-,./?%&#_~:
palette=1
add_tab_accelerator=5
del_tab_accelerator=5
switch_tab_accelerator=8
move_tab_accelerator=9
copy_accelerator=5
scrollbar_accelerator=5
open_url_accelerator=5
font_size_accelerator=4
set_tab_name_accelerator=5
search_accelerator=5
add_tab_key=T
del_tab_key=W
prev_tab_key=Left
next_tab_key=Right
copy_key=C
paste_key=V
scrollbar_key=S
set_tab_name_key=N
search_key=F
increase_font_size_key=plus
decrease_font_size_key=minus
fullscreen_key=F11
set_colorset_accelerator=5
icon_file=terminal-tango.svg
paste_button=2
menu_button=3

View file

@ -0,0 +1,10 @@
{ config, pkgs, ... }: {
home = {
file = {
"${config.xdg.configHome}/sakura/sakura.conf".text = builtins.readFile ./sakura.conf;
};
packages = with pkgs; [
sakura
];
};
}

View file

@ -0,0 +1,86 @@
# Generated via dconf2nix: https://github.com/gvolpe/dconf2nix
{ lib, pkgs, ... }:
with lib.hm.gvariant;
{
home.packages = with pkgs; [
tilix
];
dconf.settings = {
"com/gexperts/Tilix" = {
app-title = "\${appName}: \${directory}";
paste-strip-trailing-whitespace = true;
prompt-on-close = true;
quake-hide-lose-focus = true;
quake-specific-monitor = 0;
session-name = "\${id}";
terminal-title-show-when-single = true;
terminal-title-style = "none";
use-tabs = true;
window-style = "normal";
};
"com/gexperts/Tilix/keybindings" = {
win-view-sidebar = "<Primary>F12";
};
"com/gexperts/Tilix/profiles" = {
default = "d1def387-a465-4497-81bc-b8b2de782b2d";
list = [ "d1def387-a465-4497-81bc-b8b2de782b2d" ];
};
"com/gexperts/Tilix/profiles/d1def387-a465-4497-81bc-b8b2de782b2d" = {
background-color = "#121212121414";
badge-color = "#E6E66D6DFFFF";
badge-color-set = true;
badge-font = "FiraCode Nerd Font Mono 12";
badge-text = "\${columns}x\${rows}";
badge-use-system-font = false;
bold-color = "#C8C8C8C8C8C8";
bold-color-set = true;
bold-is-bright = false;
cell-height-scale = 1.0;
cell-width-scale = 1.0;
cursor-background-color = "#FFFFB6B63838";
cursor-blink-mode = "on";
cursor-colors-set = true;
cursor-foreground-color = "#FFFFB6B63838";
default-size-columns = 132;
default-size-rows = 50;
draw-margin = 80;
font = "FiraCode Nerd Font Medium 12";
foreground-color = "#C8C8C8C8C8C8";
highlight-background-color = "#1E1E1E1E2020";
highlight-colors-set = false;
highlight-foreground-color = "#C8C8C8C8C8C8";
palette = [ "#121212121414" "#D6D62B2B2B2B" "#4141DDDD7575" "#FFFFB6B63838" "#2828A9A9FFFF" "#E6E66D6DFFFF" "#1414E5E5D3D3" "#C8C8C8C8C8C8" "#434343434545" "#DEDE56565656" "#A1A1EEEEBBBB" "#FFFFC5C56060" "#9494D4D4FFFF" "#F2F2B6B6FFFF" "#A0A0F5F5EDED" "#E9E9E9E9E9E9" ];
scrollback-unlimited = true;
terminal-title = "";
use-system-font = true;
use-theme-colors = false;
visible-name = "Bearded Dark Vivid";
};
"org/gnome/desktop/default/applications/terminal" = {
exec = "tilix";
exec-arg = "-e";
};
"org/gnome/settings-daemon/plugins/media-keys" = {
custom-keybindings = [ "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2/" ];
terminal = [ "" ];
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom1" = {
binding = "<Super>t";
command = "tilix";
name = "tilix";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom2" = {
binding = "<Primary><Alt>t";
command = "tilix";
name = "tilix";
};
};
}

View file

@ -0,0 +1,22 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
borgbackup
vorta
];
systemd.user.services = {
vorta = {
Unit = {
Description = "Vorta";
};
Service = {
ExecStart = "${pkgs.vorta}/bin/vorta --daemonise";
Restart = "on-failure";
};
Install = {
WantedBy = [ "default.target" ];
};
};
};
}

View file

@ -0,0 +1,21 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [
keybase-gui
];
systemd.user.services = {
keybase-gui = {
Unit = {
Description = "Keybase GUI";
};
Service = {
ExecStart = "${pkgs.keybase-gui}/bin/keybase-gui";
Restart = "on-failure";
};
Install = {
WantedBy = [ "default.target" ];
};
};
};
}

View file

@ -0,0 +1,12 @@
{ desktop, lib, ... }: {
imports = [ ] ++ lib.optionals (desktop != null) [
./keybase-gui.nix
];
services = {
kbfs = {
enable = true;
mountPoint = "Keybase";
};
};
}

View file

@ -0,0 +1,8 @@
{ pkgs, ... }: {
services.syncthing = {
tray = {
enable = true;
package = pkgs.unstable.syncthingtray;
};
};
}

View file

@ -0,0 +1,16 @@
{ config, desktop, hostname, lib, ... }: {
imports = [ ] ++ lib.optionals (desktop != null) [
./syncthing-tray.nix
];
services.syncthing = {
enable = true;
extraOptions = [
"--config=${config.home.homeDirectory}/Syncthing/Devices/${hostname}"
"--data=${config.home.homeDirectory}/Syncthing/DB/${hostname}"
"--gui-address=0.0.0.0:8384"
"--no-default-folder"
"--no-browser"
];
};
}

54
home/gburd/.gitconfig Normal file
View file

@ -0,0 +1,54 @@
[format]
pretty=format:%C(yellow)%h%Creset | %C(green)%ad (%ar)%Creset | %C(blue)%an%Creset | %s
[push]
default = simple
[branch]
autosetuprebase = always
[receive]
denyCurrentBranch = warn
[filter "media"]
clean = git media clean %f
smudge = git media smudge %f
required = true
# http://nicercode.github.io/blog/2013-04-30-excel-and-line-endings/
[filter "cr"]
clean = LC_CTYPE=C awk '{printf(\"%s\\n\", $0)}' | LC_CTYPE=C tr '\\r' '\\n'
smudge = tr '\\n' '\\r'
[diff]
tool = meld
[difftool]
prompt = false
[difftool "meld"]
cmd = meld "$LOCAL" "$REMOTE"
[merge]
tool = meld
[mergetool "meld"]
# Choose one of these 2 lines (not both!) explained below.
cmd = meld "$LOCAL" "$MERGED" "$REMOTE" --output "$MERGED"
cmd = meld "$LOCAL" "$BASE" "$REMOTE" --output "$MERGED"
[core]
editor = vim
# editor = emacs -nw -q
excludesfile = ~/.gitignore_global
pager = less -FMRiX
quotepath = false
[filter "lfs"]
process = git-lfs filter-process
required = true
clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f
[init]
templateDir = /home/gregburd/.git-template
defaultBranch = main
[commit]
gpgsign = true

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, ... }: {
{ pkgs, ... }: {
imports = [
./bash.nix
./bat.nix
@ -17,6 +17,7 @@
./starship.nix
./xpo.nix
];
home.packages = with pkgs; [
comma # Install and run programs by sticking a , before them
distrobox # Nice escape hatch, integrates docker images with my environment
@ -24,7 +25,7 @@
bc # Calculator
bottom # System viewer
ncdu # TUI disk usage
# eza # Better ls
# eza # Better ls
ripgrep # Better grep
fd # Better find
curl # cURL
@ -41,6 +42,6 @@
tly # Tally counter
# inputs.nh.default # nixos-rebuild and home-manager CLI wrapper
inputs.nh.default # nixos-rebuild and home-manager CLI wrapper
];
}

View file

@ -1,4 +1,4 @@
{ pkgs, lib, config, ... }:
{ pkgs, config, ... }:
let
ssh = "${pkgs.openssh}/bin/ssh";

View file

@ -1,4 +1,4 @@
{ pkgs, config, lib, ... }:
{ pkgs, config, ... }:
let
pinentry =
if config.gtk.enable then {
@ -10,13 +10,14 @@ let
};
in
{
# home.packages = pinentry.packages;
# home.packages = pinentry.packages;
home.packages = [ pkgs.pinentry-curses ];
services.gpg-agent = { #TODO: gnupg vs gpg-agent ?
services.gpg-agent = {
#TODO: gnupg vs gpg-agent ?
enable = true;
enableSshSupport = true;
# sshKeys = [ "149F16412997785363112F3DBD713BC91D51B831" ];
# sshKeys = [ "149F16412997785363112F3DBD713BC91D51B831" ];
pinentryFlavor = pinentry.name;
enableExtraSocket = true;
};

View file

@ -50,18 +50,25 @@
style = "bold red";
};
custom = {
nix_inspect = let
excluded = [
"kitty" "imagemagick" "ncurses" "user-environment" "pciutils" "binutils-wrapper"
];
in {
disabled = false;
when = "test -z $IN_NIX_SHELL";
command = "${(lib.getExe pkgs.nix-inspect)} ${(lib.concatStringsSep " " excluded)}";
format = "[($output <- )$symbol]($style) ";
symbol = " ";
style = "bold blue";
};
nix_inspect =
let
excluded = [
"kitty"
"imagemagick"
"ncurses"
"user-environment"
"pciutils"
"binutils-wrapper"
];
in
{
disabled = false;
when = "test -z $IN_NIX_SHELL";
command = "${(lib.getExe pkgs.nix-inspect)} ${(lib.concatStringsSep " " excluded)}";
format = "[($output <- )$symbol]($style) ";
symbol = " ";
style = "bold blue";
};
};
character = {

View file

@ -1,21 +1,17 @@
{ inputs, lib, pkgs, config, outputs, ... }:
let
inherit (inputs.nix-colors) colorSchemes;
inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) colorschemeFromPicture nixWallpaperFromScheme;
in
{
imports = [
inputs.impermanence.nixosModules.home-manager.impermanence
inputs.nix-colors.homeManagerModule
../features/cli
../features/nvim
./cli
./nvim
] ++ (builtins.attrValues outputs.homeManagerModules);
nixpkgs = {
overlays = builtins.attrValues outputs.overlays;
config = {
allowUnfree = true;
allowUnfreePredicate = (_: true);
allowUnfreePredicate = _: true;
};
};
@ -41,7 +37,7 @@ in
stateVersion = lib.mkDefault "23.05";
sessionPath = [ "$HOME/.local/bin" ];
sessionVariables = {
FLAKE = "$HOME/Documents/NixConfig";
FLAKE = "$HOME/ws/nix-config";
};
persistence = {

View file

@ -6,7 +6,7 @@
./alacritty.nix
./font.nix
./gtk.nix
# ./kdeconnect.nix
# ./kdeconnect.nix
./pavucontrol.nix
./playerctl.nix
./qt.nix

View file

@ -1,4 +1,4 @@
{ config, pkgs, lib, ... }:
{ config, pkgs, ... }:
let inherit (config.colorscheme) colors;
in {

View file

@ -0,0 +1,127 @@
{ pkgs, ... }:
{
programs.browserpass.enable = true;
programs.firefox = {
enable = true;
package = pkgs.wrapFirefox pkgs.firefox-unwrapped {
extraPolicies = {
CaptivePortal = false;
DisableFirefoxStudies = true;
DisablePocket = true;
DisableTelemetry = true;
DisableFirefoxAccounts = false;
NoDefaultBookmarks = true;
OfferToSaveLogins = false;
OfferToSaveLoginsDefault = false;
PasswordManagerEnabled = false;
FirefoxHome = {
Search = true;
Pocket = false;
Snippets = false;
TopSites = false;
Highlights = false;
};
UserMessaging = {
ExtensionRecommendations = false;
SkipOnboarding = true;
};
};
};
profiles.gburd = {
id = 0;
bookmarks = { };
extensions = with pkgs.inputs.firefox-addons; [
# autoplay-no-more
bypass-paywalls-clean
i-dont-care-about-cookies
# kagi-search-for-firefox
clearurls
decentraleyes
disconnect
duckduckgo-privacy-essentials
floccus
ghostery
# https-everywhere
# languagetool
# onetab
privacy-badger
privacy-badger
privacy-redirect
proton-pass
react-devtools
ublock-origin
];
search = {
force = true;
default = "Kagi";
engines = {
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"NixOS Wiki" = {
urls = [{ template = "https://nixos.wiki/index.php?search={searchTerms}"; }];
iconUpdateURL = "https://nixos.wiki/favicon.png";
updateInterval = 24 * 60 * 60 * 1000;
definedAliases = [ "@nw" ];
};
"Wikipedia (en)".metaData.alias = "@wiki";
"Google".metaData.hidden = true;
"Amazon.com".metaData.hidden = true;
"Bing".metaData.hidden = true;
"eBay".metaData.hidden = true;
};
};
extraConfig = ''
user_pref("toolkit.legacyUserProfileCustomizations.stylesheets", true);
user_pref("full-screen-api.ignore-widgets", true);
user_pref("media.ffmpeg.vaapi.enabled", true);
user_pref("media.rdd-vpx.enabled", true);
'';
userChrome = ''
# a css
'';
userContent = ''
# Here too
'';
settings = {
"general.smoothScroll" = true;
"browser.disableResetPrompt" = true;
"browser.download.panel.shown" = true;
"browser.download.useDownloadDir" = false;
"browser.newtabpage.activity-stream.showSponsoredTopSites" = false;
"browser.shell.checkDefaultBrowser" = false;
"browser.shell.defaultBrowserCheckCount" = 1;
"browser.startup.homepage" = "about:blank";
"browser.uiCustomization.state" = ''{"placements":{"widget-overflow-fixed-list":[],"nav-bar":["back-button","forward-button","stop-reload-button","home-button","urlbar-container","downloads-button","library-button","ublock0_raymondhill_net-browser-action","_testpilot-containers-browser-action"],"toolbar-menubar":["menubar-items"],"TabsToolbar":["tabbrowser-tabs","new-tab-button","alltabs-button"],"PersonalToolbar":["import-button","personal-bookmarks"]},"seen":["save-to-pocket-button","developer-button","ublock0_raymondhill_net-browser-action","_testpilot-containers-browser-action"],"dirtyAreaCache":["nav-bar","PersonalToolbar","toolbar-menubar","TabsToolbar","widget-overflow-fixed-list"],"currentVersion":18,"newElementCount":4}'';
"dom.security.https_only_mode" = true;
"identity.fxaccounts.enabled" = false;
"privacy.trackingprotection.enabled" = true;
"signon.rememberSignons" = false;
};
};
};
home = {
persistence = {
# Not persisting is safer, but... <shrug>
"/persist/home/gburd".directories = [ ".mozilla/firefox" ];
};
};
xdg.mimeApps.defaultApplications = {
"text/html" = [ "firefox.desktop" ];
"text/xml" = [ "firefox.desktop" ];
"x-scheme-handler/http" = [ "firefox.desktop" ];
"x-scheme-handler/https" = [ "firefox.desktop" ];
};
}

View file

@ -1,14 +1,14 @@
{ pkgs, ... }:
{
imports = [];
imports = [ ];
home.packages = with pkgs; [
# Gnome3 apps
# gnome3.eog # image viewer
# gnome3.evince # pdf reader
# gnome3.eog # image viewer
# gnome3.evince # pdf reader
# Desktop look & feel
# gnome.gnome-tweak-tool
# gnome.gnome-tweak-tool
# Extensions
gnomeExtensions.appindicator
@ -32,8 +32,8 @@
# gnome.gnome-tweaks
# ]
# };
# dbus.packages = [ pkgs.gnome.dconf ];
# udev.packages = [ pkgs.gnome.gnome-settings-
# dbus.packages = [ pkgs.gnome.dconf ];
# udev.packages = [ pkgs.gnome.gnome-settings-
home.sessionVariables = {
MOZ_ENABLE_WAYLAND = 1;

View file

@ -1,4 +1,4 @@
{ pkgs, lib, ... }:
{ pkgs, ... }:
let

View file

@ -1,4 +1,4 @@
{ pkgs, config, ... }:
{ pkgs, ... }:
{
qt = {
enable = true;

View file

@ -1,4 +1,4 @@
{ pkgs, lib, ... }: {
{ pkgs, ... }: {
home.packages = [ pkgs.sublime-music ];
home.persistence = {
"/persist/home/gburd".directories = [ ".config/sublime-music" ];

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ config, ... }:
let inherit (config.colorscheme) colors kind;
in

View file

@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ config, ... }:
let
inherit (config) colorscheme;

View file

@ -1,4 +1,4 @@
{ config, pkgs, lib, ... }: {
{ pkgs, ... }: {
imports = [
../common
../common/gnome-wm

View file

@ -1,6 +1,6 @@
{ pkgs, ... }: {
imports = [
# ./steam.nix
# ./steam.nix
];
home.packages = with pkgs; [ gamescope ];
}

View file

@ -1,6 +1,6 @@
{ colorscheme }: {
"${colorscheme.slug}" = {
palette = builtins.mapAttrs (name: value: "#${value}") colorscheme.colors; # Add leading '#'
palette = builtins.mapAttrs (_name: value: "#${value}") colorscheme.colors; # Add leading '#'
"attributes" = "base09";
"comment" = { fg = "base03"; modifiers = [ "italic" ]; };
"constant" = "base09";

Some files were not shown because too many files have changed in this diff Show more