Compare commits
1 commit
Author | SHA1 | Date | |
---|---|---|---|
7e84a60ae6 |
132 changed files with 4723 additions and 7416 deletions
4
.git-crypt/.gitattributes
vendored
Normal file
4
.git-crypt/.gitattributes
vendored
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
# Do not edit this file. To specify the files to encrypt, create your own
|
||||||
|
# .gitattributes file in the directory where your files are.
|
||||||
|
* !filter !diff
|
||||||
|
*.gpg binary
|
Binary file not shown.
1
.gitattributes
vendored
Normal file
1
.gitattributes
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
nixos/secrets/** filter=git-crypt diff=git-crypt
|
20
README.md
20
README.md
|
@ -1,22 +1,18 @@
|
||||||
# sisyphus
|
# sisyphus
|
||||||
|
|
||||||
Welcome to my dotfiles repository, named Sisyphus. This repository houses the configurations for my Linux machines, spanning various distributions. Please note that not all configurations may be up-to-date or fully functional. If you decide to use these configurations for your own machines, be prepared for potential issues. Nevertheless, feel free to borrow or draw inspiration from this collection.
|
This repository serves as my dotfiles. It contains the configuration for my Linux machine(s), for multiple distributions. Not everything might be up to date and/or working, so don't expect a working machine if you try to use this configuration for your own machines. However, feel free to steal some parts or be inspired.
|
||||||
|
|
||||||
## Organisation
|
|
||||||
|
|
||||||
To maintain clarity and versatility, I've organized my configuration files into distinct subdirectories. The "bare" configuration files, those you typically find in your `~/.config` directory, are located in [stow](./stow). This separation allows for a streamlined approach to managing configurations, while other subdirectories house OS-specific settings.
|
|
||||||
|
|
||||||
- [Arch Linux](./arch) (+ [stow](./stow))
|
- [Arch Linux](./arch) (+ [stow](./stow))
|
||||||
- [NixOS](./nixos) (+ [stow](./stow))
|
- [Nixos](./nixos)
|
||||||
|
|
||||||
## The Sisyphus Analogy
|
## Analogy
|
||||||
|
|
||||||
The Sisyphus analogy is a straightforward one.
|
The analogy is quite simple.
|
||||||
|
|
||||||
Throughout my journey with Linux, especially during my time as a student, I found myself reinstalling my operating system countless times. Whether it was due to a botched installation, unsatisfactory performance, or simply the desire for a fresh start, I've been there. Things escalated when I began tinkering extensively with machine configurations, often resulting in disk management mishaps. It was clear that I needed to find a way to put an end to these frequent reinstallations, contain my configurations, and maintain system stability. This repository represents my solution to these challenges.
|
Over the course of getting to know Linux and during my career as a student, I had to reinstall my OS SO so so many times, either because I bricked my previous install, or because things weren't working the way I wanted them to or even because I found the current install to be cluttered. On a particular day, I had installed Arch (that's what I started with back then) over ten times, which is my personal record of most-installed-computers-in-one-day so far. I also managed to speedrun the installation process to 8min30sec for the kernel with an additional 4min30sec for installing Sway (fun fact/did you know?).
|
||||||
|
|
||||||
I hope that by maintaining this repository, I can minimize the challenges of breaking my laptop and make configurations easily accessible. They are designed to be relatively static and require as little user input as reasonably possible during installation.
|
Later, this worsened even more when I had way too much fun playing around with the machine configuration. (Managing disks is prone to errors!) I hope my addaction to breaking my laptop will ease with this repo: keeping everything easily accessible, often statically configured, so that it can be installed with as little input as (reasonably) possible.
|
||||||
|
|
||||||
TL;DR: My journey with Linux was a challenging one, marked by frequent restarts, which is why I chose the name Sisyphus as an analogy from [Greek mythology](https://en.wikipedia.org/wiki/Sisyphus).
|
TL;DR: Discovering Linux was a tedious process and I had to start over several times, hence the analogy with [Sisyphus, greek mythology](https://en.wikipedia.org/wiki/Sisyphus).
|
||||||
|
|
||||||
P.S. While the name "Sisyphus" has a deep mythological significance, it also sounds cool and conveniently contains "sys" from "system" in its name. But, let's keep that our little secret, shall we?
|
*But also because it sounds cool and it has the sys from sytem in the name, don't tell anyone this though.*
|
||||||
|
|
26
arch/stow/_scripts/.scripts/cleandependencies.sh
Executable file
26
arch/stow/_scripts/.scripts/cleandependencies.sh
Executable file
|
@ -0,0 +1,26 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Remove unused dependencies that are not explicitly installed
|
||||||
|
# Usage: [sudo] cleandependencies
|
||||||
|
|
||||||
|
# Retrieve a list of all packages that are not explicitly installed and are not needed by anything else.
|
||||||
|
# Note that optional dependencies also do not get removed.
|
||||||
|
# function getList () {
|
||||||
|
# grep "Name\|Required By\|Optional For\|Install Reason" <<< $(pacman -Qi) |
|
||||||
|
# tr '\n' ';' | sed "s/$/\n/" |
|
||||||
|
# sed "s/ */ /g" |
|
||||||
|
# sed "s/Name/\nName/g" |
|
||||||
|
# sed "s/\(Name\|Required By\|Optional For\|Install Reason\) : //g" |
|
||||||
|
# grep "Installed as a dependency for another package" |
|
||||||
|
# grep "^[^;]*;None;None" |
|
||||||
|
# cut -f 1 -d ';'
|
||||||
|
# } ; export -f getList
|
||||||
|
|
||||||
|
current_amount=$(pacman -Qdtq | wc -l)
|
||||||
|
# Keep looping while there are unusded dependencies.
|
||||||
|
# Stop when the next amount is the same, probably because the action was canceled.
|
||||||
|
while [[ ${current_amount} -ne 0 && ${current_amount} -ne ${previous_amount:=0} ]] ; do
|
||||||
|
previous_amount=${current_amount}
|
||||||
|
pacman -R $(pacman -Qdtq)
|
||||||
|
current_amount=$(pacman -Qdtq | wc -l)
|
||||||
|
done
|
||||||
|
|
22
arch/stow/_scripts/.scripts/dnd.sh
Executable file
22
arch/stow/_scripts/.scripts/dnd.sh
Executable file
|
@ -0,0 +1,22 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Script to toggle Do not disturb mode for mako and dunst
|
||||||
|
|
||||||
|
# Permanent memory
|
||||||
|
saved_state=0
|
||||||
|
|
||||||
|
# Toggle
|
||||||
|
if [[ ${saved_state} -eq 0 ]] ; then
|
||||||
|
~/.scripts/notify.sh 'Hiding notifications'
|
||||||
|
sleep 5
|
||||||
|
makoctl set-mode do-not-disturb
|
||||||
|
dunstctl set-paused true
|
||||||
|
else
|
||||||
|
makoctl set-mode default
|
||||||
|
dunstctl set-paused false
|
||||||
|
~/.scripts/notify.sh 'Showing notifications'
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Update status in file
|
||||||
|
new_state=$(( (${saved_state} + 1) % 2 ))
|
||||||
|
sed -i "s/^saved_state=.*$/saved_state=${new_state}/" "${0}"
|
||||||
|
|
16
arch/stow/_scripts/.scripts/focus.sh
Executable file
16
arch/stow/_scripts/.scripts/focus.sh
Executable file
|
@ -0,0 +1,16 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Script to toggle black background to focus on sway
|
||||||
|
|
||||||
|
# Get instances of swaybg, except for the 'standard' one.
|
||||||
|
list=$( pgrep swaybg | head -n -1 )
|
||||||
|
|
||||||
|
if [ -z "${list}" ] ; then
|
||||||
|
swaybg --mode=solid_color --color=#000000 &
|
||||||
|
# Give the previous command some time to execute
|
||||||
|
sleep .1
|
||||||
|
swaymsg reload
|
||||||
|
else
|
||||||
|
# Clean up if already running
|
||||||
|
kill $( tr ' ' '\n' <<< ${list} )
|
||||||
|
fi
|
||||||
|
|
19
arch/stow/_scripts/.scripts/idle.sh
Executable file
19
arch/stow/_scripts/.scripts/idle.sh
Executable file
|
@ -0,0 +1,19 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Configuration of swayidle
|
||||||
|
# Just run the script
|
||||||
|
|
||||||
|
# Kill previous instances to avoid clashing
|
||||||
|
pkill swayidle
|
||||||
|
|
||||||
|
swayidle -w \
|
||||||
|
timeout 600 \
|
||||||
|
'swaymsg "output * dpms off"' \
|
||||||
|
resume 'swaymsg "output * dpms on"' \
|
||||||
|
timeout 1200 \
|
||||||
|
'systemctl suspend' \
|
||||||
|
before-sleep 'swaymsg "output * dpms on"; swaylock'
|
||||||
|
# Screen needs to be turned back on or you will get a black screen after waking up again.
|
||||||
|
|
||||||
|
# timeout 300 \
|
||||||
|
# "~/.scripts/wander.sh" \
|
||||||
|
# resume 'brightnessctl -r' \
|
|
@ -2,10 +2,8 @@
|
||||||
# Show system status in notification, or your own message
|
# Show system status in notification, or your own message
|
||||||
# Syntaxis: notify [-vb] [-t <timeout>] [-p <value>] [<title> <message>]
|
# Syntaxis: notify [-vb] [-t <timeout>] [-p <value>] [<title> <message>]
|
||||||
|
|
||||||
# Requirements/dependencies:
|
# Requirements:
|
||||||
# - amixer
|
|
||||||
# - brightnessctl
|
# - brightnessctl
|
||||||
# - libnotify (notify-send)
|
|
||||||
|
|
||||||
panic () {
|
panic () {
|
||||||
>&2 echo "Syntaxis: notify [-vb] [-t <timeout>] [-p <value>] [<title> <message>]"
|
>&2 echo "Syntaxis: notify [-vb] [-t <timeout>] [-p <value>] [<title> <message>]"
|
||||||
|
@ -22,15 +20,15 @@ while getopts ":bvt:p:" options; do
|
||||||
;;
|
;;
|
||||||
v)
|
v)
|
||||||
# Get volume (don't use pamixer because that is way slower)
|
# Get volume (don't use pamixer because that is way slower)
|
||||||
value=$( amixer sget 'Master' \
|
value=$( pactl get-sink-volume @DEFAULT_SINK@ \
|
||||||
| grep -o '\[[0-9]*%\]' \
|
| cut -d '/' -f2 \
|
||||||
| tr -d '][%' \
|
| grep -o '[0-9]*%' \
|
||||||
| head -n1 )
|
| tr -d '%' )
|
||||||
title="Volume: ${value}%"
|
title="Volume: ${value}%"
|
||||||
category='sysinfo'
|
category='sysinfo'
|
||||||
|
|
||||||
# If audio disabled, set value to zero.
|
# If audio disabled, set value to zero.
|
||||||
if [ "$( amixer sget 'Master' | grep -o '\[\(on\|off\)\]' | head -n1 )" == "[off]" ] ; then
|
if [ "$( pactl get-sink-mute @DEFAULT_SINK@ )" == "Mute: yes" ] ; then
|
||||||
title="Volume: ${value}% (Disabled)"
|
title="Volume: ${value}% (Disabled)"
|
||||||
value=0
|
value=0
|
||||||
fi
|
fi
|
9
arch/stow/_scripts/.scripts/wander.sh
Executable file
9
arch/stow/_scripts/.scripts/wander.sh
Executable file
|
@ -0,0 +1,9 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Toggle brightness to 'sleep' or 'awake', since brightnessctl does not support
|
||||||
|
# percentages of current amount.
|
||||||
|
# Just run the script
|
||||||
|
|
||||||
|
current=$( brightnessctl get )
|
||||||
|
# Doesn't have to be accurate so we can use built-in calculator.
|
||||||
|
brightnessctl -sq set $(( current / 10 * 3 ))
|
||||||
|
|
|
@ -6,10 +6,10 @@ pid=$(pgrep wlsunset)
|
||||||
|
|
||||||
if [[ -z ${pid} ]] ; then
|
if [[ -z ${pid} ]] ; then
|
||||||
# Start wlsunset right away.
|
# Start wlsunset right away.
|
||||||
wlsunset -l 50.50 -L 4.00 -t 3000 -T 6500 &
|
wlsunset -l 50 -L 4 -t 2500 &
|
||||||
else
|
else
|
||||||
# Currently stop wlsunset but restart in an hour.
|
# Currently stop wlsunset but restart in an hour.
|
||||||
kill ${pid}
|
kill ${pid}
|
||||||
notify-send 'Stopping sunset' 'Restarting in an hour'
|
~/.scripts/notify.sh 'Stopping sunset' 'Restarting in an hour'
|
||||||
at now +1 hours -f "${0}"
|
at now +1 hours -f ~/.scripts/wlsunset.sh
|
||||||
fi
|
fi
|
7
arch/stow/_scripts/git-flake
Executable file
7
arch/stow/_scripts/git-flake
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
# Ignore flake.nix and flake.lock
|
||||||
|
# For using personal flakes in a project that does not provide and want flakes.
|
||||||
|
# Syntaxis: git flake
|
||||||
|
|
||||||
|
git add --intent-to-add flake.nix flake.lock
|
||||||
|
git update-index --assume-unchanged flake.nix
|
11
arch/stow/bash/.bashrc
Normal file
11
arch/stow/bash/.bashrc
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
#
|
||||||
|
# ~/.bashrc
|
||||||
|
#
|
||||||
|
|
||||||
|
# If not running interactively, don't do anything
|
||||||
|
[[ $- != *i* ]] && return
|
||||||
|
|
||||||
|
alias ls='ls --color=auto'
|
||||||
|
PS1='[\u@\h \W]\$ '
|
||||||
|
|
||||||
|
eval $( keychain --eval --quiet ~/.ssh/id_ed25519 )
|
|
@ -4,8 +4,8 @@
|
||||||
|
|
||||||
font=letter:size=10
|
font=letter:size=10
|
||||||
dpi-aware=yes
|
dpi-aware=yes
|
||||||
icon-theme=Icosystem
|
icon-theme=Win11-black
|
||||||
terminal=kitty -e
|
terminal=alacritty -e
|
||||||
output=eDP-1
|
output=eDP-1
|
||||||
|
|
||||||
lines=10
|
lines=10
|
|
@ -1,13 +1,10 @@
|
||||||
keys:
|
keys:
|
||||||
- &tdpeuter age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
- &tdpeuter age1q2gqur3t4fu8flsuu2zdnule37vdkh6egpt6a2e3ytx433x8gpvsr4hw6l
|
||||||
|
- &Tibo-NixDesk age1quvlqpznqkw2r0jhyx6p2hsq3dk93087yha46ugtce6ew9c64pgq4uhcvz
|
||||||
- &server_H4G0 age1d4gvqz3anf082ja6xt03hnkzazfum80um9t45m4rerl4n3va2yuqgnsg03
|
|
||||||
|
|
||||||
creation_rules:
|
creation_rules:
|
||||||
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
|
- path_regex: secrets/[^/]+\.yaml$
|
||||||
key_groups:
|
key_groups:
|
||||||
- age:
|
- age:
|
||||||
- *tdpeuter
|
- *tdpeuter
|
||||||
|
|
||||||
- *server_H4G0
|
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,3 @@
|
||||||
# NixOS
|
# nixos
|
||||||
|
|
||||||
Nix Flake configuration for my Linux machines running NixOS.
|
Nix Flake for my Linux machines running NixOS.
|
||||||
|
|
||||||
## Structure
|
|
||||||
|
|
||||||
The directory structure is organized as follows:
|
|
||||||
|
|
||||||
- [`flake.nix`](./flake.nix): Main entrypoint for the configuration.
|
|
||||||
- [hosts/*hostname*](./hosts): Host-specific configuration by setting options. Each host has its own folder.
|
|
||||||
- [modules](./modules): Declarations of configuration options.
|
|
||||||
- [overlays](./overlays): Attribute overrides for Nix Packages.
|
|
||||||
- [secrets](./secrets): Encrypted files that store sensitive information, such as SSH private keys.
|
|
||||||
- [users/*username*](./users): User-specific configuration. Users are defined as modules, so they can be enabled or disabled on a host machine.
|
|
||||||
|
|
||||||
[Modules](https://nixos.wiki/wiki/NixOS_modules) are a key component of NixOS. They encapsulate various configuration options, which should make it easy for you to integrate it into your specific configuration.
|
|
||||||
|
|
201
nixos/flake.lock
201
nixos/flake.lock
|
@ -2,17 +2,17 @@
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"devshell": {
|
"devshell": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs"
|
"nixpkgs"
|
||||||
]
|
],
|
||||||
|
"systems": "systems"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1713532798,
|
"lastModified": 1687173957,
|
||||||
"narHash": "sha256-wtBhsdMJA3Wa32Wtm1eeo84GejtI43pMrFrmwLXrsEc=",
|
"narHash": "sha256-GOds2bAQcZ94fb9/Nl/aM+r+0wGSi4EKYuZYR8Dw4R8=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "devshell",
|
"repo": "devshell",
|
||||||
"rev": "12e914740a25ea1891ec619bb53cf5e6ca922e40",
|
"rev": "2cf83bb31720fcc29a999aee28d6da101173e66a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -22,33 +22,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"flake-utils": {
|
"flake-utils": {
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1701680307,
|
|
||||||
"narHash": "sha256-kAuep2h5ajznlPMD9rnQyffWG8EM/C73lejGofXvdM8=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "4022d587cbbfd70fe950c1e2083a02621806a725",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"flake-utils_2": {
|
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"systems": "systems_2"
|
"systems": "systems_2"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1710146030,
|
"lastModified": 1687709756,
|
||||||
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
|
"narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=",
|
||||||
"owner": "numtide",
|
"owner": "numtide",
|
||||||
"repo": "flake-utils",
|
"repo": "flake-utils",
|
||||||
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
|
"rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -64,79 +46,58 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716736833,
|
"lastModified": 1687647567,
|
||||||
"narHash": "sha256-rNObca6dm7Qs524O4st8VJH6pZ/Xe1gxl+Rx6mcWYo0=",
|
"narHash": "sha256-Ua90LZYJO7/7KW/KK/AqijhIekd+wxPwbVKXuBYzJeQ=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "a631666f5ec18271e86a5cde998cba68c33d9ac6",
|
"rev": "6ca1e16eb3016c94b7ac16699e1d4158bd4e39a4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-24.05",
|
"ref": "release-23.05",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nix-github-actions": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"openconnect-sso",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1701208414,
|
|
||||||
"narHash": "sha256-xrQ0FyhwTZK6BwKhahIkUVZhMNk21IEI1nUcWSONtpo=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nix-github-actions",
|
|
||||||
"rev": "93e39cc1a087d65bcf7a132e75a650c44dd2b734",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "nix-github-actions",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717144377,
|
"lastModified": 1687729501,
|
||||||
"narHash": "sha256-F/TKWETwB5RaR8owkPPi+SPJh83AQsm6KrQAlJ8v/uA=",
|
"narHash": "sha256-mTLkMePoHUWvTCf3NuKbeYEea/tsikSIKBWwb9OfRr4=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "805a384895c696f802a9bf5bf4720f37385df547",
|
"rev": "35130d4b4f0b8c50ed2aceb909a538c66c91d4a0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"id": "nixpkgs",
|
"id": "nixpkgs",
|
||||||
"ref": "nixos-24.05",
|
"ref": "nixos-23.05",
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717265169,
|
"lastModified": 1687031877,
|
||||||
"narHash": "sha256-IITcGd6xpNoyq9SZBigCkv4+qMHSqot0RDPR4xsZ2CA=",
|
"narHash": "sha256-yMFcVeI+kZ6KD2QBrFPNsvBrLq2Gt//D0baHByMrjFY=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "3b1b4895b2c5f9f5544d02132896aeb9ceea77bc",
|
"rev": "e2e2059d19668dab1744301b8b0e821e3aae9c99",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "release-23.11",
|
"ref": "release-23.05",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-unstable": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1716948383,
|
"lastModified": 1687681650,
|
||||||
"narHash": "sha256-SzDKxseEcHR5KzPXLwsemyTR/kaM9whxeiJohbL04rs=",
|
"narHash": "sha256-M2If+gRcfpmaJy/XbfSsRzLlPpoU4nr0NHnKKl50fd8=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ad57eef4ef0659193044870c731987a6df5cf56b",
|
"rev": "1c9db9710cb23d60570ad4d7ab829c2d34403de3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -145,79 +106,13 @@
|
||||||
"type": "indirect"
|
"type": "indirect"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"openconnect-sso": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": [
|
|
||||||
"utils"
|
|
||||||
],
|
|
||||||
"nix-github-actions": "nix-github-actions",
|
|
||||||
"nixpkgs": [
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"poetry2nix": "poetry2nix",
|
|
||||||
"systems": "systems_3",
|
|
||||||
"treefmt-nix": "treefmt-nix"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1701455376,
|
|
||||||
"narHash": "sha256-FMLrMdi6JY7ZfqV5XnNj64jnDcGKznKZLn7O6OMO3u0=",
|
|
||||||
"owner": "ThinkChaos",
|
|
||||||
"repo": "openconnect-sso",
|
|
||||||
"rev": "20c0015c4264c72cc19ac272de0dc534309bd21b",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "ThinkChaos",
|
|
||||||
"ref": "fix/nix-flake",
|
|
||||||
"repo": "openconnect-sso",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"poetry2nix": {
|
|
||||||
"inputs": {
|
|
||||||
"flake-utils": [
|
|
||||||
"openconnect-sso",
|
|
||||||
"flake-utils"
|
|
||||||
],
|
|
||||||
"nix-github-actions": [
|
|
||||||
"openconnect-sso",
|
|
||||||
"nix-github-actions"
|
|
||||||
],
|
|
||||||
"nixpkgs": [
|
|
||||||
"openconnect-sso",
|
|
||||||
"nixpkgs"
|
|
||||||
],
|
|
||||||
"systems": [
|
|
||||||
"openconnect-sso",
|
|
||||||
"systems"
|
|
||||||
],
|
|
||||||
"treefmt-nix": [
|
|
||||||
"openconnect-sso",
|
|
||||||
"treefmt-nix"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1701105783,
|
|
||||||
"narHash": "sha256-5IOI0xXGbhAkUZNNcPId48V78Q+/JlW0hzlif0zxRmM=",
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "poetry2nix",
|
|
||||||
"rev": "0b2bff39e9bd4e6db3208e09c276ca83a063b370",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-community",
|
|
||||||
"repo": "poetry2nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"devshell": "devshell",
|
"devshell": "devshell",
|
||||||
"flake-utils": "flake-utils_2",
|
"flake-utils": "flake-utils",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||||
"openconnect-sso": "openconnect-sso",
|
|
||||||
"sops-nix": "sops-nix",
|
"sops-nix": "sops-nix",
|
||||||
"utils": "utils"
|
"utils": "utils"
|
||||||
}
|
}
|
||||||
|
@ -230,11 +125,11 @@
|
||||||
"nixpkgs-stable": "nixpkgs-stable"
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1717297459,
|
"lastModified": 1687398569,
|
||||||
"narHash": "sha256-cZC2f68w5UrJ1f+2NWGV9Gx0dEYmxwomWN2B0lx0QRA=",
|
"narHash": "sha256-e/umuIKFcFtZtWeX369Hbdt9r+GQ48moDmlTcyHWL28=",
|
||||||
"owner": "Mic92",
|
"owner": "Mic92",
|
||||||
"repo": "sops-nix",
|
"repo": "sops-nix",
|
||||||
"rev": "ab2a43b0d21d1d37d4d5726a892f714eaeb4b075",
|
"rev": "2ff6973350682f8d16371f8c071a304b8067f192",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -273,42 +168,6 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"systems_3": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"treefmt-nix": {
|
|
||||||
"inputs": {
|
|
||||||
"nixpkgs": [
|
|
||||||
"openconnect-sso",
|
|
||||||
"nixpkgs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1699786194,
|
|
||||||
"narHash": "sha256-3h3EH1FXQkIeAuzaWB+nK0XK54uSD46pp+dMD3gAcB4=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"rev": "e82f32aa7f06bbbd56d7b12186d555223dc399d1",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "treefmt-nix",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"utils": {
|
"utils": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": [
|
"flake-utils": [
|
||||||
|
@ -316,11 +175,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1715533576,
|
"lastModified": 1657226504,
|
||||||
"narHash": "sha256-fT4ppWeCJ0uR300EH3i7kmgRZnAVxrH+XtK09jQWihk=",
|
"narHash": "sha256-GIYNjuq4mJlFgqKsZ+YrgzWm0IpA4axA3MCrdKYj7gs=",
|
||||||
"owner": "gytis-ivaskevicius",
|
"owner": "gytis-ivaskevicius",
|
||||||
"repo": "flake-utils-plus",
|
"repo": "flake-utils-plus",
|
||||||
"rev": "3542fe9126dc492e53ddd252bb0260fe035f2c0f",
|
"rev": "2bf0f91643c2e5ae38c1b26893ac2927ac9bd82a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
description = "System configuration of my machines using flakes";
|
description = "System configuration of my machines using flakes";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "nixpkgs/nixos-24.05";
|
nixpkgs.url = "nixpkgs/nixos-23.05";
|
||||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||||
|
|
||||||
devshell = {
|
devshell = {
|
||||||
|
@ -11,16 +11,9 @@
|
||||||
};
|
};
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
flake-utils.url = "github:numtide/flake-utils";
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-24.05";
|
url = "github:nix-community/home-manager/release-23.05";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
openconnect-sso = {
|
|
||||||
url = github:ThinkChaos/openconnect-sso/fix/nix-flake;
|
|
||||||
inputs = {
|
|
||||||
flake-utils.follows = "utils";
|
|
||||||
nixpkgs.follows = "nixpkgs";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
sops-nix = {
|
sops-nix = {
|
||||||
url = "github:Mic92/sops-nix";
|
url = "github:Mic92/sops-nix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
@ -33,32 +26,17 @@
|
||||||
|
|
||||||
outputs = inputs@{
|
outputs = inputs@{
|
||||||
self, nixpkgs, nixpkgs-unstable,
|
self, nixpkgs, nixpkgs-unstable,
|
||||||
devshell, flake-utils, home-manager, openconnect-sso, sops-nix, utils,
|
devshell, flake-utils, home-manager, sops-nix, utils,
|
||||||
... }:
|
... }:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
|
|
||||||
unfreePackages = pkg: builtins.elem (nixpkgs.lib.getName pkg) [
|
|
||||||
"corefonts"
|
|
||||||
"nvidia-settings" "nvidia-x11" "nvidia-persistenced"
|
|
||||||
"Oracle_VM_VirtualBox_Extension_Pack"
|
|
||||||
"spotify"
|
|
||||||
"steam" "steam-original" "steam-run"
|
|
||||||
"vista-fonts"
|
|
||||||
"nvidia-persistenced" # Docker
|
|
||||||
];
|
|
||||||
in
|
in
|
||||||
utils.lib.mkFlake {
|
utils.lib.mkFlake {
|
||||||
inherit self inputs;
|
inherit self inputs;
|
||||||
|
|
||||||
channelsConfig.allowUnfreePredicate = unfreePackages;
|
channelsConfig = {
|
||||||
|
allowUnfree = true;
|
||||||
sharedOverlays = [
|
};
|
||||||
(import ./overlays/cmdtime)
|
|
||||||
(import ./overlays/icosystem)
|
|
||||||
(import ./overlays/letter)
|
|
||||||
(import ./overlays/spotify)
|
|
||||||
];
|
|
||||||
|
|
||||||
hostDefaults = {
|
hostDefaults = {
|
||||||
inherit system;
|
inherit system;
|
||||||
|
@ -66,7 +44,6 @@
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
pkgs-unstable = import nixpkgs-unstable {
|
pkgs-unstable = import nixpkgs-unstable {
|
||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfreePredicate = unfreePackages;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -74,7 +51,6 @@
|
||||||
home-manager.nixosModule
|
home-manager.nixosModule
|
||||||
sops-nix.nixosModules.sops
|
sops-nix.nixosModules.sops
|
||||||
./modules
|
./modules
|
||||||
./users
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,92 +1,72 @@
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports =
|
||||||
./hardware-configuration.nix
|
[ # Include the results of the hardware scan.
|
||||||
];
|
./hardware-configuration.nix
|
||||||
|
../../modules/hardware/nvidia.nix
|
||||||
|
|
||||||
sisyphus = {
|
../../modules/apps/virtualbox
|
||||||
desktop.sway.enable = true;
|
../../modules/des/gnome
|
||||||
|
];
|
||||||
|
|
||||||
hardware = {
|
# Bootloader.
|
||||||
nvidia = {
|
boot.loader.systemd-boot.enable = true;
|
||||||
enable = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
model = "RTX 2060";
|
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||||
gui-settings = true;
|
|
||||||
};
|
|
||||||
yubikey.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
networking = {
|
# Enable networking
|
||||||
networkmanager.enable = true;
|
networking.hostName = "Tibo-NixDesk"; # Define your hostname.
|
||||||
openconnect-sso.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
};
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
|
|
||||||
nix = {
|
|
||||||
flakes.enable = true;
|
|
||||||
gc.onFull.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
direnv.enable = true;
|
|
||||||
home-manager.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
ssh.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
pipewire.enable = true;
|
|
||||||
printing.enable = true;
|
|
||||||
openrgb.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
users.tdpeuter.enable = true;
|
|
||||||
|
|
||||||
virtualisation = {
|
|
||||||
docker.enable = true;
|
|
||||||
virtualbox.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
loader = {
|
|
||||||
systemd-boot.enable = true;
|
|
||||||
efi = {
|
|
||||||
canTouchEfiVariables = true;
|
|
||||||
efiSysMountPoint = "/boot/efi";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
git
|
|
||||||
vim-full
|
|
||||||
w3m
|
|
||||||
wget
|
|
||||||
zenith-nvidia
|
|
||||||
];
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
steam.enable = true;
|
|
||||||
zsh.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.bluetooth.enable = true;
|
|
||||||
|
|
||||||
networking.hostName = "Tibo-NixDesk";
|
|
||||||
|
|
||||||
services.xserver = {
|
|
||||||
layout = "us";
|
|
||||||
xkbVariant = "altgr-intl";
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
|
|
||||||
|
# Set your time zone.
|
||||||
time.timeZone = "Europe/Brussels";
|
time.timeZone = "Europe/Brussels";
|
||||||
|
|
||||||
i18n.defaultLocale = "en_GB.UTF-8";
|
# Select internationalisation properties.
|
||||||
console = {
|
i18n.defaultLocale = "en_GB.utf8";
|
||||||
# font = "Lat2-Terminus16";
|
|
||||||
useXkbConfig = true; # use xkbOptions in tty.
|
# Configure keymap in X11
|
||||||
|
services.xserver = {
|
||||||
|
layout = "us";
|
||||||
|
xkbVariant = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Enable sound with pipewire.
|
||||||
|
sound.enable = true;
|
||||||
|
hardware.pulseaudio.enable = false;
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
# If you want to use JACK applications, uncomment this
|
||||||
|
#jack.enable = true;
|
||||||
|
|
||||||
|
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||||
|
# no need to redefine it in your config for now)
|
||||||
|
#media-session.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
|
# started in user sessions.
|
||||||
|
# programs.mtr.enable = true;
|
||||||
|
# programs.gnupg.agent = {
|
||||||
|
# enable = true;
|
||||||
|
# enableSSHSupport = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# List services that you want to enable:
|
||||||
|
|
||||||
|
# Enable the OpenSSH daemon.
|
||||||
|
# services.openssh.enable = true;
|
||||||
|
|
||||||
|
# Open ports in the firewall.
|
||||||
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
|
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||||
|
# Or disable the firewall altogether.
|
||||||
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
system.stateVersion = "23.05";
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,67 +4,26 @@
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
{ config, lib, pkgs, modulesPath, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports =
|
||||||
(modulesPath + "/installer/scan/not-detected.nix")
|
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||||
];
|
];
|
||||||
|
|
||||||
boot = {
|
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||||
initrd = {
|
boot.initrd.kernelModules = [ ];
|
||||||
availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
kernelModules = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
};
|
|
||||||
kernelModules = [ "kvm-intel" ];
|
|
||||||
extraModulePackages = [ ];
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems = {
|
fileSystems."/" =
|
||||||
"/" = {
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
device = "/dev/disk/by-label/NIX-ROOT";
|
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
"/boot/efi" = {
|
fileSystems."/boot/efi" =
|
||||||
device = "/dev/disk/by-label/NIX-BOOT";
|
{ device = "/dev/disk/by-label/NIXBOOT";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
"/nix" = {
|
swapDevices = [ ];
|
||||||
device = "/dev/disk/by-label/NIX-STORE";
|
|
||||||
fsType = "ext4";
|
|
||||||
options = [ "noatime" ];
|
|
||||||
};
|
|
||||||
|
|
||||||
"/mnt/Nextcloud" = {
|
|
||||||
device = "/dev/disk/by-label/Nextcloud";
|
|
||||||
fsType = "ntfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
# "/home/${config.users.users.tdpeuter.name}/Nextcloud" = {
|
|
||||||
"/home/tdpeuter/Nextcloud" = {
|
|
||||||
depends = [
|
|
||||||
"/mnt/Nextcloud"
|
|
||||||
];
|
|
||||||
device = "/mnt/Nextcloud/Nextcloud";
|
|
||||||
fsType = "none";
|
|
||||||
options = [
|
|
||||||
"bind"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
"/mnt/Games" = {
|
|
||||||
device = "/dev/disk/by-label/Games";
|
|
||||||
fsType = "ntfs";
|
|
||||||
options = [
|
|
||||||
"uid=tdpeuter"
|
|
||||||
"gid=users"
|
|
||||||
"defaults"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [
|
|
||||||
{ device = "/dev/disk/by-label/SWAP"; }
|
|
||||||
];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
|
|
|
@ -3,118 +3,107 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
../../modules/hardware/nvidia.nix
|
||||||
|
|
||||||
|
../../modules/apps/virtualbox
|
||||||
|
../../modules/des/gnome
|
||||||
];
|
];
|
||||||
|
|
||||||
sisyphus = {
|
# Use the systemd-boot EFI boot loader.]
|
||||||
desktop.sway.enable = true;
|
boot.loader = {
|
||||||
|
systemd-boot.enable = true;
|
||||||
hardware = {
|
efi = {
|
||||||
eid.enable = true;
|
canTouchEfiVariables = true;
|
||||||
nvidia = {
|
efiSysMountPoint = "/boot/efi";
|
||||||
enable = true;
|
|
||||||
model = "Quadro T2000";
|
|
||||||
};
|
|
||||||
yubikey.enable = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
networking = {
|
|
||||||
networkmanager.enable = true;
|
|
||||||
# openconnect-sso.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
nix = {
|
|
||||||
flakes.enable = true;
|
|
||||||
gc.onFull.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
direnv.enable = true;
|
|
||||||
home-manager.enable = true;
|
|
||||||
sops.enable = true;
|
|
||||||
ssh.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
|
||||||
pipewire.enable = true;
|
|
||||||
tailscale.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
users.tdpeuter.enable = true;
|
|
||||||
|
|
||||||
virtualisation = {
|
|
||||||
docker.enable = true;
|
|
||||||
virtualbox.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
boot = {
|
|
||||||
# Encryption
|
|
||||||
initrd = {
|
|
||||||
# Setup keyfile
|
|
||||||
secrets."/crypto_keyfile.bin" = null;
|
|
||||||
|
|
||||||
# Enable swap on luks
|
|
||||||
luks.devices."luks-3825c43c-6cc4-4846-b1cc-02b5938640c9" = {
|
|
||||||
device = "/dev/disk/by-uuid/3825c43c-6cc4-4846-b1cc-02b5938640c9";
|
|
||||||
keyFile = "/crypto_keyfile.bin";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.]
|
|
||||||
loader = {
|
|
||||||
systemd-boot.enable = true;
|
|
||||||
efi = {
|
|
||||||
canTouchEfiVariables = true;
|
|
||||||
efiSysMountPoint = "/boot/efi";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
git
|
|
||||||
vim-full
|
|
||||||
w3m
|
|
||||||
wget
|
|
||||||
zenith-nvidia
|
|
||||||
];
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
zsh.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.bluetooth = {
|
|
||||||
enable = true;
|
|
||||||
powerOnBoot = false;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Setup keyfile
|
||||||
|
boot.initrd.secrets = {
|
||||||
|
"/crypto_keyfile.bin" = null;
|
||||||
|
};
|
||||||
|
|
||||||
networking.hostName = "Tibo-NixFat";
|
networking.hostName = "Tibo-NixFat";
|
||||||
|
# Pick only one of the below networking options.
|
||||||
services = {
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
# Handle the laptop lid switch as follows:
|
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||||
logind = {
|
|
||||||
lidSwitch = "hybrid-sleep";
|
# Set your time zone.
|
||||||
lidSwitchExternalPower = "lock";
|
|
||||||
lidSwitchDocked = "ignore";
|
|
||||||
};
|
|
||||||
|
|
||||||
xserver.xkb = {
|
|
||||||
# Keyboard layout
|
|
||||||
layout = "us";
|
|
||||||
variant = "altgr-intl";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Touchpad
|
|
||||||
libinput.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
system.stateVersion = "24.05";
|
|
||||||
|
|
||||||
time.timeZone = "Europe/Brussels";
|
time.timeZone = "Europe/Brussels";
|
||||||
|
|
||||||
# --- Barrier ---
|
# Configure network proxy if necessary
|
||||||
|
# networking.proxy.default = "http://user:password@proxy:port/";
|
||||||
|
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
||||||
|
|
||||||
|
# Select internationalisation properties.
|
||||||
i18n.defaultLocale = "en_GB.UTF-8";
|
i18n.defaultLocale = "en_GB.UTF-8";
|
||||||
console = {
|
# console = {
|
||||||
useXkbConfig = true; # use xkbOptions in tty.
|
# font = "Lat2-Terminus16";
|
||||||
|
# keyMap = "us";
|
||||||
|
# useXkbConfig = true; # use xkbOptions in tty.
|
||||||
|
# };
|
||||||
|
|
||||||
|
services.xserver = {
|
||||||
|
# Configure keymap in X11
|
||||||
|
layout = "us";
|
||||||
|
xkbVariant = "";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
# Enable CUPS to print documents.
|
||||||
|
# services.printing.enable = true;
|
||||||
|
|
||||||
|
# Enable sound with pipewire.
|
||||||
|
sound.enable = true;
|
||||||
|
hardware.pulseaudio.enable = false;
|
||||||
|
security.rtkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
alsa.support32Bit = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
# If you want to use JACK applications, uncomment this
|
||||||
|
#jack.enable = true;
|
||||||
|
|
||||||
|
# use the example session manager (no others are packaged yet so this is enabled by default,
|
||||||
|
# no need to redefine it in your config for now)
|
||||||
|
#media-session.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.logind.lidSwitch = "ignore";
|
||||||
|
|
||||||
|
# Enable Bluetooth.
|
||||||
|
hardware.bluetooth.enable = true;
|
||||||
|
|
||||||
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
|
services.xserver.libinput.enable = true;
|
||||||
|
|
||||||
|
# Allow unfree packages
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
|
# started in user sessions.
|
||||||
|
# programs.mtr.enable = true;
|
||||||
|
# programs.gnupg.agent = {
|
||||||
|
# enable = true;
|
||||||
|
# enableSSHSupport = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# List services that you want to enable:
|
||||||
|
|
||||||
|
# Enable the OpenSSH daemon.
|
||||||
|
# services.openssh.enable = true;
|
||||||
|
|
||||||
|
# Open ports in the firewall.
|
||||||
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
|
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||||
|
# Or disable the firewall altogether.
|
||||||
|
# networking.firewall.enable = false;
|
||||||
|
|
||||||
|
# Copy the NixOS configuration file and link it from the resulting system
|
||||||
|
# (/run/current-system/configuration.nix). This is useful in case you
|
||||||
|
# accidentally delete configuration.nix.
|
||||||
|
# system.copySystemConfiguration = true;
|
||||||
|
|
||||||
|
system.stateVersion = "23.05";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,29 +13,29 @@
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
boot.kernelModules = [ "kvm-intel" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
|
||||||
fileSystems."/" = {
|
fileSystems."/" =
|
||||||
device = "/dev/disk/by-label/NIX-ROOT";
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
boot.initrd.luks.devices."luks-c21cb4a4-f618-43af-bc0c-e8be74fe3b81".device = "/dev/disk/by-uuid/c21cb4a4-f618-43af-bc0c-e8be74fe3b81";
|
boot.initrd.luks.devices."luks-7319552e-7148-4a9b-aa56-aa580b0b935a".device = "/dev/disk/by-uuid/7319552e-7148-4a9b-aa56-aa580b0b935a";
|
||||||
|
|
||||||
fileSystems."/boot/efi" = {
|
fileSystems."/boot/efi" =
|
||||||
device = "/dev/disk/by-label/NIX-BOOT";
|
{ device = "/dev/disk/by-label/NIXBOOT";
|
||||||
fsType = "vfat";
|
fsType = "vfat";
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [
|
# swapDevices =
|
||||||
{ device = "/dev/disk/by-label/SWAP"; }
|
# [ { device = "/dev/disk/by-label/SWAP"; }
|
||||||
];
|
# ];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
# still possible to use this option, but it's recommended to use it in conjunction
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||||
networking.useDHCP = lib.mkDefault true;
|
networking.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
# networking.interfaces.eno2.useDHCP = lib.mkDefault true;
|
||||||
# networking.interfaces.wlp111s0.useDHCP = lib.mkDefault true;
|
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||||
|
|
||||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||||
|
|
|
@ -1,14 +1,22 @@
|
||||||
|
# Edit this configuration file to define what should be installed on
|
||||||
|
# your system. Help is available in the configuration.nix(5) man page
|
||||||
|
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||||
|
|
||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[ # Include the results of the hardware scan.
|
[ # Include the results of the hardware scan.
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
../../modules/des/plasma
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Bootloader
|
# Nix Flakes
|
||||||
|
nix.package = pkgs.nixFlakes;
|
||||||
|
nix.extraOptions = ''
|
||||||
|
experimental-features = nix-command flakes
|
||||||
|
'';
|
||||||
|
|
||||||
|
# Use the systemd-boot EFI boot loader.]
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
systemd-boot.enable = true;
|
systemd-boot.enable = true;
|
||||||
|
|
||||||
|
@ -18,11 +26,10 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
networking = {
|
networking.hostName = "Tibo-NixTest"; # Define your hostname.
|
||||||
hostName = "Tibo-NixTest";
|
# Pick only one of the below networking options.
|
||||||
# wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||||
networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||||
};
|
|
||||||
|
|
||||||
# Set your time zone.
|
# Set your time zone.
|
||||||
time.timeZone = "Europe/Brussels";
|
time.timeZone = "Europe/Brussels";
|
||||||
|
@ -46,6 +53,29 @@
|
||||||
# "caps:escape" # map caps to escape.
|
# "caps:escape" # map caps to escape.
|
||||||
# };
|
# };
|
||||||
|
|
||||||
|
|
||||||
|
services.xserver = {
|
||||||
|
# Enable the X11 windowing system.
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# Enable the Plasma 5 Desktop Environment.
|
||||||
|
displayManager.sddm.enable = true;
|
||||||
|
displayManager.defaultSession = "plasmawayland";
|
||||||
|
|
||||||
|
desktopManager.plasma5 = {
|
||||||
|
enable = true;
|
||||||
|
excludePackages = with pkgs.libsForQt5; [
|
||||||
|
elisa
|
||||||
|
okular
|
||||||
|
plasma-browser-integration
|
||||||
|
khelpcenter
|
||||||
|
kwalletmanager
|
||||||
|
oxygen
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
# Enable CUPS to print documents.
|
||||||
# services.printing.enable = true;
|
# services.printing.enable = true;
|
||||||
|
|
||||||
|
@ -59,6 +89,44 @@
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
# Enable touchpad support (enabled default in most desktopManager).
|
||||||
services.xserver.libinput.enable = true;
|
services.xserver.libinput.enable = true;
|
||||||
|
|
||||||
|
# Define a user account. Don't forget to set a password with ‘passwd’.
|
||||||
|
users.users.tdpeuter = {
|
||||||
|
description = "Tibo De Peuter";
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "wheel" "networkmanager" ];
|
||||||
|
initialPassword = "ChangeMe";
|
||||||
|
packages = with pkgs; [
|
||||||
|
home-manager
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# List packages installed in system profile. To search, run:
|
||||||
|
# $ nix search wget
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
firefox
|
||||||
|
git
|
||||||
|
mongodb
|
||||||
|
vim
|
||||||
|
wget
|
||||||
|
];
|
||||||
|
|
||||||
|
nixpkgs.config = {
|
||||||
|
allowUnfree = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Some programs need SUID wrappers, can be configured further or are
|
||||||
|
# started in user sessions.
|
||||||
|
# programs.mtr.enable = true;
|
||||||
|
# programs.gnupg.agent = {
|
||||||
|
# enable = true;
|
||||||
|
# enableSSHSupport = true;
|
||||||
|
# };
|
||||||
|
|
||||||
|
# List services that you want to enable:
|
||||||
|
|
||||||
|
# Enable the OpenSSH daemon.
|
||||||
|
# services.openssh.enable = true;
|
||||||
|
|
||||||
# Open ports in the firewall.
|
# Open ports in the firewall.
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||||
|
@ -70,7 +138,13 @@
|
||||||
# accidentally delete configuration.nix.
|
# accidentally delete configuration.nix.
|
||||||
# system.copySystemConfiguration = true;
|
# system.copySystemConfiguration = true;
|
||||||
|
|
||||||
system.stateVersion = "23.05";
|
# This value determines the NixOS release from which the default
|
||||||
|
# settings for stateful data, like file locations and database versions
|
||||||
|
# on your system were taken. It‘s perfectly fine and recommended to leave
|
||||||
|
# this value at the release version of the first install of this system.
|
||||||
|
# Before changing this value read the documentation for this option
|
||||||
|
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||||
|
system.stateVersion = "22.11"; # Did you read the comment?
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
15
nixos/modules/apps/alacritty/default.nix
Normal file
15
nixos/modules/apps/alacritty/default.nix
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
{ inputs, lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home-manager.users.tdpeuter = { pkgs, ... }: {
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
alacritty
|
||||||
|
];
|
||||||
|
|
||||||
|
file = {
|
||||||
|
".config/alacritty".source = ../../../../stow/alacritty/.config/alacritty;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
27
nixos/modules/apps/default.nix
Normal file
27
nixos/modules/apps/default.nix
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./alacritty
|
||||||
|
./firefox
|
||||||
|
./steam
|
||||||
|
./thunderbird
|
||||||
|
# ./virtualbox
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.users.tdpeuter = { pkgs, ... }: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
brave
|
||||||
|
caprine-bin
|
||||||
|
discord
|
||||||
|
jellyfin-media-player
|
||||||
|
libreoffice-fresh
|
||||||
|
mattermost-desktop
|
||||||
|
nextcloud-client
|
||||||
|
obsidian
|
||||||
|
pinentry_qt
|
||||||
|
qalculate-gtk
|
||||||
|
spotify
|
||||||
|
zathura
|
||||||
|
zoom-us
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
41
nixos/modules/apps/firefox/default.nix
Normal file
41
nixos/modules/apps/firefox/default.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{ inputs, lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home-manager.users.tdpeuter.programs.firefox = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.firefox.override {
|
||||||
|
cfg = {
|
||||||
|
enableTridactylNative = true;
|
||||||
|
};
|
||||||
|
extraPolicies = {
|
||||||
|
DisableFirefoxStudies = true;
|
||||||
|
DisablePocket = true;
|
||||||
|
DisableTelemetry = true;
|
||||||
|
ExtensionSettings = {};
|
||||||
|
OfferToSaveLogins = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
profiles.tdpeuter = {
|
||||||
|
search = {
|
||||||
|
default = "DuckDuckGo";
|
||||||
|
force = true;
|
||||||
|
engines = {
|
||||||
|
"eBay".metaData.hidden = true;
|
||||||
|
"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" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
8
nixos/modules/apps/steam/default.nix
Normal file
8
nixos/modules/apps/steam/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{ inputs, lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.steam = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
164
nixos/modules/apps/thunderbird/default.nix
Normal file
164
nixos/modules/apps/thunderbird/default.nix
Normal file
|
@ -0,0 +1,164 @@
|
||||||
|
{ inputs, lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
signatures = {
|
||||||
|
default = ''
|
||||||
|
Met vriendelijke groeten
|
||||||
|
Tibo De Peuter
|
||||||
|
'';
|
||||||
|
UGent = ''
|
||||||
|
Met vriendelijke groeten
|
||||||
|
Tibo De Peuter
|
||||||
|
|
||||||
|
Student 2Ba Informatica
|
||||||
|
'';
|
||||||
|
MrFortem = ''
|
||||||
|
Kind regards
|
||||||
|
MrFortem Fiducia
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
home-manager.users.tdpeuter = {
|
||||||
|
accounts.email.accounts = {
|
||||||
|
Telenet = {
|
||||||
|
address = "tibo.depeuter@telenet.be";
|
||||||
|
userName = "tibo.depeuter@telenet.be";
|
||||||
|
imap = {
|
||||||
|
host = "imap.telenet.be";
|
||||||
|
port = 993;
|
||||||
|
tls.enable = true;
|
||||||
|
};
|
||||||
|
smtp = {
|
||||||
|
host = "smtp.telenet.be";
|
||||||
|
port = 587;
|
||||||
|
tls = {
|
||||||
|
enable = true;
|
||||||
|
useStartTls = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
realName = "Tibo De Peuter";
|
||||||
|
signature = {
|
||||||
|
showSignature = "append";
|
||||||
|
text = signatures.default;
|
||||||
|
};
|
||||||
|
|
||||||
|
primary = true;
|
||||||
|
thunderbird = {
|
||||||
|
enable = true;
|
||||||
|
settings = id: {
|
||||||
|
"mail.identity.id_${id}.htmlSigText" = signatures.default;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
UGent = {
|
||||||
|
flavor = "outlook.office365.com";
|
||||||
|
address = "tibo.depeuter@ugent.be";
|
||||||
|
|
||||||
|
realName = "Tibo De Peuter";
|
||||||
|
signature = {
|
||||||
|
showSignature = "append";
|
||||||
|
text = signatures.UGent;
|
||||||
|
};
|
||||||
|
|
||||||
|
thunderbird = {
|
||||||
|
enable = true;
|
||||||
|
settings = id: {
|
||||||
|
"mail.server.server_${id}.authMethod" = 10;
|
||||||
|
"mail.smtpserver.smtp_${id}.authMethod" = 10;
|
||||||
|
"mail.identity.id_${id}.htmlSigText" = signatures.UGent;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
Gmail = {
|
||||||
|
flavor = "gmail.com";
|
||||||
|
address = "tibo.depeuter@gmail.com";
|
||||||
|
|
||||||
|
realName = "Tibo De Peuter";
|
||||||
|
signature = {
|
||||||
|
showSignature = "append";
|
||||||
|
text = signatures.default;
|
||||||
|
};
|
||||||
|
thunderbird = {
|
||||||
|
enable = true;
|
||||||
|
settings = id: {
|
||||||
|
"mail.identity.id_${id}.htmlSigText" = signatures.default;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
MrFortem = {
|
||||||
|
flavor = "gmail.com";
|
||||||
|
address = "fortemfiducia@gmail.com";
|
||||||
|
|
||||||
|
realName = "Fortem Fiducia";
|
||||||
|
signature = {
|
||||||
|
showSignature = "attach";
|
||||||
|
text = ''
|
||||||
|
Kind regards
|
||||||
|
MrFortem Fiducia
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
thunderbird = {
|
||||||
|
enable = true;
|
||||||
|
settings = id: {
|
||||||
|
"mail.server.server_${id}.directory" = ".thunderbird/tdpeuter/ImapMail/imap.gmail.com-mrfortem";
|
||||||
|
"mail.server.server_${id}.directory-rel" = "[ProfD]ImapMail/imap.gmail.com-mrfortem";
|
||||||
|
"mail.identity.id_${id}.htmlSigText" = signatures.MrFortem;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
thunderbird = {
|
||||||
|
enable = true;
|
||||||
|
profiles.tdpeuter = {
|
||||||
|
isDefault = true;
|
||||||
|
settings = {
|
||||||
|
"mailnews.default_sort_order" = 2; # Sort descending
|
||||||
|
"mailnews.mark_message_read.delay" = true;
|
||||||
|
"mailnews.start_page.enabled" = false;
|
||||||
|
"mail.pane_config.dynamic" = 2; # Vertical view
|
||||||
|
|
||||||
|
"calendar.list.sortOrder" = "personal ugent tasks planning zeus";
|
||||||
|
|
||||||
|
"calendar.registry.personal.cache.enabled" = true;
|
||||||
|
"calendar.registry.personal.name" = "Personal";
|
||||||
|
"calendar.registry.personal.type" = "caldav";
|
||||||
|
"calendar.registry.personal.uri" = "https://cloud.depeuter.dev/remote.php/dav/calendars/tdpeuter/personal/";
|
||||||
|
"calendar.registry.personal.username" = "tdpeuter";
|
||||||
|
|
||||||
|
"calendar.registry.ugent.cache.enabled" = true;
|
||||||
|
"calendar.registry.ugent.color" = "#1E64C8";
|
||||||
|
"calendar.registry.ugent.name" = "UGent";
|
||||||
|
"calendar.registry.ugent.type" = "caldav";
|
||||||
|
"calendar.registry.ugent.uri" = "https://cloud.depeuter.dev/remote.php/dav/calendars/tdpeuter/ugent/";
|
||||||
|
"calendar.registry.ugent.username" = "tdpeuter";
|
||||||
|
|
||||||
|
"calendar.registry.planning.cache.enabled" = true;
|
||||||
|
"calendar.registry.planning.name" = "Planning";
|
||||||
|
"calendar.registry.planning.type" = "caldav";
|
||||||
|
"calendar.registry.planning.uri" = "https://cloud.depeuter.dev/remote.php/dav/calendars/tdpeuter/planning/";
|
||||||
|
"calendar.registry.planning.username" = "tdpeuter";
|
||||||
|
|
||||||
|
"calendar.registry.zeus.cache.enabled" = true;
|
||||||
|
"calendar.registry.zeus.color" = "#FF7F00";
|
||||||
|
"calendar.registry.zeus.name" = "ZeusWPI";
|
||||||
|
"calendar.registry.zeus.type" = "ics";
|
||||||
|
"calendar.registry.zeus.uri" = "https://zeus.ugent.be/ical.ics";
|
||||||
|
|
||||||
|
"calendar.registry.tasks.cache.enabled" = true;
|
||||||
|
"calendar.registry.tasks.color" = "#813D9C";
|
||||||
|
"calendar.registry.tasks.name" = "Tasks";
|
||||||
|
"calendar.registry.tasks.type" = "caldav";
|
||||||
|
"calendar.registry.tasks.uri" = "https://cloud.depeuter.dev/remote.php/dav/calendars/tdpeuter/tasks-2/";
|
||||||
|
"calendar.registry.tasks.username" = "tdpeuter";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
17
nixos/modules/apps/virtualbox/default.nix
Normal file
17
nixos/modules/apps/virtualbox/default.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
|
||||||
|
virtualisation.virtualbox = {
|
||||||
|
host = {
|
||||||
|
enable = true;
|
||||||
|
enableExtensionPack = true;
|
||||||
|
};
|
||||||
|
guest = {
|
||||||
|
enable = true;
|
||||||
|
x11 = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
users.extraGroups.vboxusers.members = [
|
||||||
|
"user-with-access-to-virtualbox"
|
||||||
|
];
|
||||||
|
|
||||||
|
}
|
|
@ -1,11 +1,58 @@
|
||||||
|
{ inputs, lib, config, pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./desktop
|
./apps
|
||||||
./hardware
|
./shells
|
||||||
./networking
|
./utils
|
||||||
./nix
|
|
||||||
./programs
|
|
||||||
./services
|
|
||||||
./virtualisation
|
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Nix Flakes
|
||||||
|
nix.package = pkgs.nixFlakes;
|
||||||
|
nix.extraOptions = ''
|
||||||
|
experimental-features = nix-command flakes
|
||||||
|
keep-outputs = true
|
||||||
|
keep-derivations = true
|
||||||
|
'';
|
||||||
|
|
||||||
|
users.users.tdpeuter = {
|
||||||
|
description = "Tibo De Peuter";
|
||||||
|
isNormalUser = true;
|
||||||
|
extraGroups = [ "networkmanager" "wheel" ];
|
||||||
|
initialPassword = "ChangeMe";
|
||||||
|
packages = with pkgs; [
|
||||||
|
home-manager
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.useGlobalPkgs = true;
|
||||||
|
|
||||||
|
home-manager.users.tdpeuter = { pkgs, ... }: {
|
||||||
|
home = {
|
||||||
|
username = "tdpeuter";
|
||||||
|
homeDirectory = "/home/tdpeuter";
|
||||||
|
stateVersion = "23.05";
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
gnupg
|
||||||
|
|
||||||
|
# Fonts
|
||||||
|
corefonts # Calibri for Uni
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
home-manager.enable = true;
|
||||||
|
gpg.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services = {
|
||||||
|
gpg-agent = {
|
||||||
|
enable = true;
|
||||||
|
pinentryFlavor = "qt";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
41
nixos/modules/des/gnome/default.nix
Normal file
41
nixos/modules/des/gnome/default.nix
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
# Enable the GNOME Desktop Environment.
|
||||||
|
displayManager.gdm.enable = true;
|
||||||
|
desktopManager.gnome.enable = true;
|
||||||
|
|
||||||
|
excludePackages = with pkgs; [
|
||||||
|
xterm
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs; [
|
||||||
|
gnomeExtensions.launch-new-instance
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.gnome.excludePackages = (with pkgs; [
|
||||||
|
epiphany # Web browser
|
||||||
|
gnome-console
|
||||||
|
gnome-photos
|
||||||
|
gnome-text-editor
|
||||||
|
gnome-tour
|
||||||
|
]) ++ (with pkgs.gnome; [
|
||||||
|
geary # Mail client
|
||||||
|
gedit
|
||||||
|
gnome-calculator
|
||||||
|
gnome-calendar
|
||||||
|
gnome-characters
|
||||||
|
gnome-clocks
|
||||||
|
gnome-contacts
|
||||||
|
gnome-maps
|
||||||
|
gnome-music
|
||||||
|
gnome-weather
|
||||||
|
simple-scan
|
||||||
|
totem # Movie player
|
||||||
|
yelp # Help viewer
|
||||||
|
]);
|
||||||
|
}
|
32
nixos/modules/des/plasma/default.nix
Normal file
32
nixos/modules/des/plasma/default.nix
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
displayManager.sddm = {
|
||||||
|
enable = true;
|
||||||
|
# https://discourse.nixos.org/t/plasma-wayland-session-not-available-from-sddm/13447/2
|
||||||
|
settings.Wayland.SessionDir = "${pkgs.plasma5Packages.plasma-workspace}/share/wayland-sessions";
|
||||||
|
};
|
||||||
|
|
||||||
|
desktopManager.plasma5 = {
|
||||||
|
enable = true;
|
||||||
|
useQtScaling = true;
|
||||||
|
|
||||||
|
excludePackages = with pkgs.libsForQt5; [
|
||||||
|
elisa
|
||||||
|
okular
|
||||||
|
khelpcenter
|
||||||
|
konsole
|
||||||
|
print-manager
|
||||||
|
plasma-systemmonitor
|
||||||
|
gwenview
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
excludePackages = with pkgs; [
|
||||||
|
xterm
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
110
nixos/modules/des/sway/default.nix
Normal file
110
nixos/modules/des/sway/default.nix
Normal file
|
@ -0,0 +1,110 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
# bash script to let dbus know about important env variables and
|
||||||
|
# propagate them to relevent services run at the end of sway config
|
||||||
|
# see
|
||||||
|
# https://github.com/emersion/xdg-desktop-portal-wlr/wiki/"It-doesn't-work"-Troubleshooting-Checklist
|
||||||
|
# note: this is pretty much the same as /etc/sway/config.d/nixos.conf but also restarts
|
||||||
|
# some user services to make sure they have the correct environment variables
|
||||||
|
dbus-sway-environment = pkgs.writeTextFile {
|
||||||
|
name = "dbus-sway-environment";
|
||||||
|
destination = "/bin/dbus-sway-environment";
|
||||||
|
executable = true;
|
||||||
|
|
||||||
|
text = ''
|
||||||
|
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
|
||||||
|
systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
|
||||||
|
systemctl --user start pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
# currently, there is some friction between sway and gtk:
|
||||||
|
# https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
|
||||||
|
# the suggested way to set gtk settings is with gsettings
|
||||||
|
# for gsettings to work, we need to tell it where the schemas are
|
||||||
|
# using the XDG_DATA_DIR environment variable
|
||||||
|
# run at the end of sway config
|
||||||
|
configure-gtk = pkgs.writeTextFile {
|
||||||
|
name = "configure-gtk";
|
||||||
|
destination = "/bin/configure-gtk";
|
||||||
|
executable = true;
|
||||||
|
text = let
|
||||||
|
schema = pkgs.gsettings-desktop-schemas;
|
||||||
|
datadir = "${schema}/share/gsettings-schemas/${schema.name}";
|
||||||
|
in ''
|
||||||
|
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
|
||||||
|
gnome_schema=org.gnome.desktop.interface
|
||||||
|
gsettings set $gnome_schema gtk-theme 'Dracula'
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services.xserver = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
displayManager.lightdm.enable = true;
|
||||||
|
|
||||||
|
excludePackages = with pkgs; [
|
||||||
|
xterm
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
security.polkit.enable = true;
|
||||||
|
services.pipewire = {
|
||||||
|
enable = true;
|
||||||
|
alsa.enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.dbus.enable = true;
|
||||||
|
xdg.portal = {
|
||||||
|
enable = true;
|
||||||
|
wlr.enable = true;
|
||||||
|
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.sway = {
|
||||||
|
enable = true;
|
||||||
|
wrapperFeatures.gtk = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
home-manager.users.tdpeuter = { pkgs, ... }: {
|
||||||
|
home = {
|
||||||
|
username = "tdpeuter";
|
||||||
|
homeDirectory = "/home/tdpeuter";
|
||||||
|
|
||||||
|
file = {
|
||||||
|
".config/sway".source = ../../../../stow/sway/.config/sway;
|
||||||
|
".config/waybar".source = ../../../../stow/waybar/.config/waybar;
|
||||||
|
".config/dunst".source = ../../../../stow/dunst/.config/dunst;
|
||||||
|
# TODO Fix scripts, I don't like it this way
|
||||||
|
".scripts".source = ../../../../stow/_scripts/.scripts;
|
||||||
|
};
|
||||||
|
|
||||||
|
packages = with pkgs; [
|
||||||
|
brightnessctl
|
||||||
|
dunst
|
||||||
|
font-awesome
|
||||||
|
pamixer
|
||||||
|
pavucontrol
|
||||||
|
playerctl
|
||||||
|
swayidle
|
||||||
|
swaylock-effects
|
||||||
|
waybar
|
||||||
|
wmname
|
||||||
|
];
|
||||||
|
# };
|
||||||
|
#
|
||||||
|
# wayland.windowManager.sway = {
|
||||||
|
# enable = true;
|
||||||
|
# package = pkgs.sway-unwrapped;
|
||||||
|
# config = rec {
|
||||||
|
# terminal = "alacritty";
|
||||||
|
# startup = [
|
||||||
|
# {command = "alacritty";}
|
||||||
|
# ];
|
||||||
|
# };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./gnome
|
|
||||||
./hyprland
|
|
||||||
./plasma
|
|
||||||
./sway
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,59 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.desktop.gnome;
|
|
||||||
in {
|
|
||||||
options.sisyphus.desktop.gnome.enable = lib.mkEnableOption "GNOME";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.xserver = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
excludePackages = with pkgs; [
|
|
||||||
xterm
|
|
||||||
];
|
|
||||||
|
|
||||||
displayManager.gdm.enable = true;
|
|
||||||
desktopManager.gnome.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Start a new instance of application instead of going to that window.
|
|
||||||
environment.systemPackages = with pkgs.gnomeExtensions; [
|
|
||||||
launch-new-instance
|
|
||||||
];
|
|
||||||
|
|
||||||
# Do not use these packages
|
|
||||||
environment.gnome.excludePackages = (with pkgs; [
|
|
||||||
baobab
|
|
||||||
epiphany # Web browser
|
|
||||||
evince # Document viewer
|
|
||||||
gnome-connections # Remote desktop client
|
|
||||||
gnome-console
|
|
||||||
gnome-photos
|
|
||||||
gnome-text-editor
|
|
||||||
gnome-tour
|
|
||||||
loupe # Image viewer
|
|
||||||
snapshot # Camera
|
|
||||||
]) ++ (with pkgs.gnome; [
|
|
||||||
eog # Image viewer
|
|
||||||
file-roller # Archive manager
|
|
||||||
geary # Mail client
|
|
||||||
gedit
|
|
||||||
gnome-calculator
|
|
||||||
gnome-calendar
|
|
||||||
gnome-characters
|
|
||||||
gnome-clocks
|
|
||||||
gnome-contacts
|
|
||||||
gnome-disk-utility
|
|
||||||
gnome-font-viewer
|
|
||||||
gnome-logs
|
|
||||||
gnome-maps
|
|
||||||
gnome-music
|
|
||||||
gnome-system-monitor
|
|
||||||
gnome-weather
|
|
||||||
simple-scan
|
|
||||||
totem # Movie player
|
|
||||||
yelp # Help viewer
|
|
||||||
]);
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.desktop.hyprland;
|
|
||||||
in {
|
|
||||||
options.sisyphus.desktop.hyprland.enable = lib.mkEnableOption "Hyprland";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.hyprland = {
|
|
||||||
enable = true;
|
|
||||||
xwayland.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
# This module is not tested at all so it might be broken!
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.desktop.plasma;
|
|
||||||
in {
|
|
||||||
options.sisyphus.desktop.plasma.enable = lib.mkEnableOption "KDE Plasma";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.xserver = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
displayManager = {
|
|
||||||
defaultSession = "plasmawayland";
|
|
||||||
sddm = {
|
|
||||||
enable = true;
|
|
||||||
# https://discourse.nixos.org/t/plasma-wayland-session-not-available-from-sddm/13447/2
|
|
||||||
settings.Wayland.SessionDir = "${pkgs.plasma5Packages.plasma-workspace}/share/wayland-sessions";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
desktopManager.plasma5 = {
|
|
||||||
enable = true;
|
|
||||||
useQtScaling = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
excludePackages = with pkgs; [
|
|
||||||
xterm
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.plasma5.excludePackages = with pkgs.libsForQt5; [
|
|
||||||
elisa
|
|
||||||
okular
|
|
||||||
khelpcenter
|
|
||||||
konsole
|
|
||||||
print-manager
|
|
||||||
plasma-systemmonitor
|
|
||||||
gwenview
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,151 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.desktop.sway;
|
|
||||||
|
|
||||||
# bash script to let dbus know about important env variables and
|
|
||||||
# propagate them to relevent services run at the end of sway config
|
|
||||||
# see
|
|
||||||
# https://github.com/emersion/xdg-desktop-portal-wlr/wiki/"It-doesn't-work"-Troubleshooting-Checklist
|
|
||||||
# note: this is pretty much the same as /etc/sway/config.d/nixos.conf but also restarts
|
|
||||||
# some user services to make sure they have the correct environment variables
|
|
||||||
dbus-sway-environment = pkgs.writeTextFile {
|
|
||||||
name = "dbus-sway-environment";
|
|
||||||
destination = "/bin/dbus-sway-environment";
|
|
||||||
executable = true;
|
|
||||||
|
|
||||||
text = ''
|
|
||||||
dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=sway
|
|
||||||
systemctl --user stop pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
|
|
||||||
systemctl --user start pipewire pipewire-media-session xdg-desktop-portal xdg-desktop-portal-wlr
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
# currently, there is some friction between sway and gtk:
|
|
||||||
# https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland
|
|
||||||
# the suggested way to set gtk settings is with gsettings
|
|
||||||
# for gsettings to work, we need to tell it where the schemas are
|
|
||||||
# using the XDG_DATA_DIR environment variable
|
|
||||||
# run at the end of sway config
|
|
||||||
configure-gtk = pkgs.writeTextFile {
|
|
||||||
name = "configure-gtk";
|
|
||||||
destination = "/bin/configure-gtk";
|
|
||||||
executable = true;
|
|
||||||
text = let
|
|
||||||
schema = pkgs.gsettings-desktop-schemas;
|
|
||||||
datadir = "${schema}/share/gsettings-schemas/${schema.name}";
|
|
||||||
in ''
|
|
||||||
export XDG_DATA_DIRS=${datadir}:$XDG_DATA_DIRS
|
|
||||||
gnome_schema=org.gnome.desktop.interface
|
|
||||||
# gsettings set $gnome_schema gtk-theme 'Dracula'
|
|
||||||
|
|
||||||
# https://github.com/crispyricepc/sway-nvidia/blob/2101a18698151a61266740f1297158119bf660ac/wlroots-env-nvidia.sh
|
|
||||||
# Hardware cursors not yet working on wlroots
|
|
||||||
export WLR_NO_HARDWARE_CURSORS=1
|
|
||||||
# Set wlroots renderer to Vulkan to avoid flickering
|
|
||||||
export WLR_RENDERER=vulkan
|
|
||||||
# General wayland environment variables
|
|
||||||
export XDG_SESSION_TYPE=wayland
|
|
||||||
export QT_QPA_PLATFORM=wayland
|
|
||||||
export QT_WAYLAND_DISABLE_WINDOWDECORATION=1
|
|
||||||
# Firefox wayland environment variable
|
|
||||||
export MOZ_ENABLE_WAYLAND=1
|
|
||||||
export MOZ_USE_XINPUT2=1
|
|
||||||
# OpenGL Variables
|
|
||||||
export GBM_BACKEND=nvidia-drm
|
|
||||||
export __GL_GSYNC_ALLOWED=0
|
|
||||||
export __GL_VRR_ALLOWED=0
|
|
||||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
|
||||||
# Xwayland compatibility
|
|
||||||
export XWAYLAND_NO_GLAMOR=1
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
options.sisyphus.desktop.sway.enable = lib.mkEnableOption "Sway";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
environment.systemPackages = (with pkgs; [
|
|
||||||
dbus-sway-environment
|
|
||||||
configure-gtk
|
|
||||||
wayland
|
|
||||||
xdg-utils # Open with default program
|
|
||||||
glib # gsettings
|
|
||||||
wl-clipboard
|
|
||||||
wdisplays # Tool to configure displays
|
|
||||||
|
|
||||||
brightnessctl
|
|
||||||
dunst
|
|
||||||
libnotify
|
|
||||||
playerctl
|
|
||||||
swaybg
|
|
||||||
swaylock-effects
|
|
||||||
waybar
|
|
||||||
wlsunset
|
|
||||||
|
|
||||||
# TODO Turn into own module/package?
|
|
||||||
jq
|
|
||||||
j4-dmenu-desktop
|
|
||||||
rofi
|
|
||||||
]) ++ (with pkgs.sway-contrib; [
|
|
||||||
grimshot
|
|
||||||
]);
|
|
||||||
|
|
||||||
environment.sessionVariables = {
|
|
||||||
SCRIPT_DIR = ../../../../scripts;
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
|
||||||
dejavu_fonts
|
|
||||||
font-awesome
|
|
||||||
noto-fonts
|
|
||||||
noto-fonts-cjk
|
|
||||||
noto-fonts-emoji
|
|
||||||
source-han-sans
|
|
||||||
source-han-sans-japanese
|
|
||||||
source-han-serif-japanese
|
|
||||||
];
|
|
||||||
|
|
||||||
security.polkit.enable = true;
|
|
||||||
|
|
||||||
services = {
|
|
||||||
atd.enable = true; # Required by sunset.sh
|
|
||||||
dbus.enable = true;
|
|
||||||
gnome.gnome-keyring.enable = true;
|
|
||||||
|
|
||||||
pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
power-profiles-daemon.enable = true;
|
|
||||||
|
|
||||||
xserver = {
|
|
||||||
displayManager.session = [{
|
|
||||||
manage = "window";
|
|
||||||
name = "Sway";
|
|
||||||
start = ''
|
|
||||||
${pkgs.sway}/bin/sway --unsupported-gpu &
|
|
||||||
waitPID=$!
|
|
||||||
'';
|
|
||||||
}];
|
|
||||||
videoDrivers = [ "nouveau" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg.portal = {
|
|
||||||
enable = true;
|
|
||||||
wlr.enable = true;
|
|
||||||
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
|
||||||
};
|
|
||||||
|
|
||||||
programs.sway = {
|
|
||||||
enable = true;
|
|
||||||
wrapperFeatures.gtk = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
sisyphus.users.wantedGroups = [
|
|
||||||
config.users.groups.video.name # Brightnessctl
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./eid
|
|
||||||
./nvidia
|
|
||||||
./yubikey
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.hardware.eid;
|
|
||||||
in {
|
|
||||||
options.sisyphus.hardware.eid.enable = lib.mkEnableOption "Electronic identity card (eID)";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.pcscd = {
|
|
||||||
enable = true;
|
|
||||||
plugins = [ pkgs.ccid ];
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
eid-mw
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
33
nixos/modules/hardware/nvidia.nix
Normal file
33
nixos/modules/hardware/nvidia.nix
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{ inputs, lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
|
||||||
|
export __NV_PRIME_RENDER_OFFLOAD=1
|
||||||
|
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
|
||||||
|
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
||||||
|
export __VK_LAYER_NV_optimus=NVIDIA_only
|
||||||
|
exec "$@"
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
{
|
||||||
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
|
|
||||||
|
hardware = {
|
||||||
|
opengl.enable = true;
|
||||||
|
nvidia = {
|
||||||
|
open = true;
|
||||||
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
|
modesetting.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
# Offloading
|
||||||
|
# environment.systemPackages = [ nvidia-offload ];
|
||||||
|
# hardware.nvidia.prime = {
|
||||||
|
# offload.enable = true;
|
||||||
|
# intelBusId = "PCI::00:02:0";
|
||||||
|
# nvidiaBusId = "PCI:01:00:0";
|
||||||
|
# };
|
||||||
|
}
|
|
@ -1,82 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.hardware.nvidia;
|
|
||||||
|
|
||||||
# The graphics cards for which to do offloading
|
|
||||||
do-offloading = builtins.elem cfg.model [ "Quadro T2000" ];
|
|
||||||
nvidia-offload = pkgs.writeShellScriptBin "nvidia-offload" ''
|
|
||||||
export __NV_PRIME_RENDER_OFFLOAD=1
|
|
||||||
export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
|
|
||||||
export __GLX_VENDOR_LIBRARY_NAME=nvidia
|
|
||||||
export __VK_LAYER_NV_optimus=NVIDIA_only
|
|
||||||
exec "$@"
|
|
||||||
'';
|
|
||||||
in {
|
|
||||||
options.sisyphus.hardware.nvidia = {
|
|
||||||
enable = lib.mkEnableOption "NVIDIA GPU support";
|
|
||||||
model = lib.mkOption {
|
|
||||||
type = lib.types.enum [ "" "Quadro T2000" "RTX 2060" ];
|
|
||||||
default = "";
|
|
||||||
example = "Quadro T2000";
|
|
||||||
description = lib.mdDoc "The model of NVIDIA GPU card";
|
|
||||||
};
|
|
||||||
gui-settings = lib.mkEnableOption "NVIDIA settings menu";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
# boot = {
|
|
||||||
# extraModprobeConfig = "options nvidia-drm modeset=1";
|
|
||||||
#
|
|
||||||
# initrd.kernelModules = [
|
|
||||||
# "nvidia"
|
|
||||||
# "nvidia_modeset"
|
|
||||||
# "nvidia_uvm"
|
|
||||||
# "nvidia_drm"
|
|
||||||
# ];
|
|
||||||
# };
|
|
||||||
|
|
||||||
hardware = {
|
|
||||||
opengl = {
|
|
||||||
enable = true;
|
|
||||||
driSupport = true;
|
|
||||||
driSupport32Bit = true;
|
|
||||||
};
|
|
||||||
nvidia = {
|
|
||||||
open = false;
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
|
||||||
modesetting.enable = true;
|
|
||||||
nvidiaSettings = cfg.gui-settings;
|
|
||||||
powerManagement = {
|
|
||||||
enable = do-offloading;
|
|
||||||
finegrained = do-offloading;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Avoid flickering
|
|
||||||
forceFullCompositionPipeline = true;
|
|
||||||
|
|
||||||
prime = lib.mkMerge [
|
|
||||||
(lib.mkIf do-offloading {
|
|
||||||
offload = {
|
|
||||||
enable = true;
|
|
||||||
enableOffloadCmd = true;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
(lib.mkIf (cfg.model == "Quadro T2000") {
|
|
||||||
intelBusId = "PCI::00:02:0";
|
|
||||||
nvidiaBusId = "PCI:01:00:0";
|
|
||||||
})
|
|
||||||
(lib.mkIf (cfg.model == "RTX 2060") {
|
|
||||||
sync.enable = true;
|
|
||||||
intelBusId = "PCI::00:02:0";
|
|
||||||
nvidiaBusId = "PCI:01:00:0";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = lib.mkIf do-offloading [
|
|
||||||
nvidia-offload
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,36 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.hardware.yubikey;
|
|
||||||
in {
|
|
||||||
options.sisyphus.hardware.yubikey.enable = lib.mkEnableOption "YubiKey support";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs = {
|
|
||||||
gnupg.agent = {
|
|
||||||
enable = true;
|
|
||||||
# TODO Necessary?
|
|
||||||
# enableSSHSupport = true;
|
|
||||||
# pinentryFlavor = "curses";
|
|
||||||
};
|
|
||||||
|
|
||||||
# yubikey-touch-detector.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Enable smart card reading
|
|
||||||
services.pcscd.enable = true;
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
yubikey-touch-detector
|
|
||||||
];
|
|
||||||
|
|
||||||
# Send a notification if the YubiKey is waiting for touch.
|
|
||||||
systemd.user.services.yubikey-touch-detector = {
|
|
||||||
enable = true;
|
|
||||||
description = "Detects when your YubiKey is waiting for a touch";
|
|
||||||
path = with pkgs; [ yubikey-touch-detector ];
|
|
||||||
script = ''exec yubikey-touch-detector --notify'';
|
|
||||||
environment.YUBIKEY_TOUCH_DETECTOR_LIBNOTIFY = "true";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./networkmanager
|
|
||||||
./openconnect-sso
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.networking.networkmanager;
|
|
||||||
in {
|
|
||||||
options.sisyphus.networking.networkmanager.enable = lib.mkEnableOption "NetworkManager";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
networking.networkmanager.enable = true;
|
|
||||||
|
|
||||||
# Prevent slow boot times
|
|
||||||
systemd.services.NetworkManager-wait-online.enable = false;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{ config, inputs, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.networking.openconnect-sso;
|
|
||||||
in {
|
|
||||||
options.sisyphus.networking.openconnect-sso.enable = lib.mkEnableOption "OpenConnect SSO";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
inputs.openconnect-sso.packages.${config.nixpkgs.localSystem.system}.default
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./flakes
|
|
||||||
./gc
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.nix.flakes;
|
|
||||||
in {
|
|
||||||
options.sisyphus.nix.flakes.enable = lib.mkEnableOption "Nix Flakes";
|
|
||||||
|
|
||||||
config.nix = lib.mkIf cfg.enable {
|
|
||||||
extraOptions = ''
|
|
||||||
experimental-features = nix-command flakes
|
|
||||||
'';
|
|
||||||
package = pkgs.nixFlakes;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.nix.gc;
|
|
||||||
in {
|
|
||||||
options.sisyphus.nix.gc = {
|
|
||||||
weekly.enable = lib.mkEnableOption "Scheduled Nix garbage-collection";
|
|
||||||
onFull.enable = lib.mkEnableOption "Nix garbage-collection when disk is almost full";
|
|
||||||
};
|
|
||||||
|
|
||||||
config.nix = {
|
|
||||||
# If the disk has less than 100MiB, free up to 2GiB by garbage-collecting.
|
|
||||||
extraOptions = lib.mkIf cfg.onFull.enable ''
|
|
||||||
min-free = ${toString (100 * 1024 * 1024)}
|
|
||||||
max-free = ${toString (2048 * 1024 * 1024)}
|
|
||||||
'';
|
|
||||||
|
|
||||||
# Scheduled garbage-collect
|
|
||||||
gc = lib.mkIf cfg.weekly.enable {
|
|
||||||
automatic = true;
|
|
||||||
dates = "weekly";
|
|
||||||
options = "--delete-older-than 30d";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./direnv
|
|
||||||
./home-manager
|
|
||||||
./sops
|
|
||||||
./spotify-adblock
|
|
||||||
./ssh
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.programs.direnv;
|
|
||||||
in {
|
|
||||||
options.sisyphus.programs.direnv.enable = lib.mkEnableOption "direnv";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.direnv = {
|
|
||||||
enable = true;
|
|
||||||
nix-direnv.enable = true; # Use nix-specific direnv.
|
|
||||||
};
|
|
||||||
|
|
||||||
# This is also done by setting programs.direnv.persistDerivations.
|
|
||||||
# Keep derivations so shells don't break.
|
|
||||||
nix.extraOptions = ''
|
|
||||||
keep-outputs = true
|
|
||||||
keep-derivations = true
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.programs.home-manager;
|
|
||||||
in {
|
|
||||||
options.sisyphus.programs.home-manager.enable = lib.mkEnableOption "Home-manager";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
home-manager
|
|
||||||
];
|
|
||||||
|
|
||||||
home-manager.useGlobalPkgs = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
# Adding SSH keys
|
|
||||||
|
|
||||||
To incorporate SSH keys, for instance, to enable authentication with a Git server, follow these steps:
|
|
||||||
|
|
||||||
Step 0: If necessary, generate a keypair, for example using the command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
ssh-keygen -t ed25519
|
|
||||||
```
|
|
||||||
|
|
||||||
Please note that setting a password for the keypair is not yet tested.
|
|
||||||
|
|
||||||
Step 1: Create a new file named `yourservice.yaml` within the [secrets](../../../secrets/) directory by executing the following command:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sops secrets/yourservice.yaml
|
|
||||||
```
|
|
||||||
|
|
||||||
Within this file, create a value that contains your private key. For example:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
yourservice:
|
|
||||||
ssh: |
|
|
||||||
-----BEGIN OPENSSH PRIVATE KEY-----
|
|
||||||
<...>
|
|
||||||
-----END OPENSSH PRIVATE KEY-----
|
|
||||||
```
|
|
||||||
|
|
||||||
Step 2: Reference this value in [your sops configuration](../../utils/sops/default.nix) as follows:
|
|
||||||
|
|
||||||
```
|
|
||||||
sops.secrets."yourservice/ssh".format = "yaml";
|
|
||||||
sops.secrets."yourservice/sss".sopsFile = secrets/youservice.yaml;
|
|
||||||
```
|
|
||||||
|
|
||||||
Step 3: Finally, add the SSH key to your SSH configuration so that it is used correctly when connecting to your host. Add the following lines to your SSH configuraton file:
|
|
||||||
|
|
||||||
```
|
|
||||||
Host yourservice
|
|
||||||
IdentityFile /run/secrets/yourservice/ssh
|
|
||||||
```
|
|
|
@ -1,25 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.programs.sops;
|
|
||||||
in {
|
|
||||||
options.sisyphus.programs.sops.enable = lib.mkEnableOption "Sops";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
sops
|
|
||||||
];
|
|
||||||
|
|
||||||
sops = {
|
|
||||||
# Add secrets.yml to the Nix Store.
|
|
||||||
defaultSopsFile = ../../../secrets/secrets.yaml;
|
|
||||||
age = {
|
|
||||||
# Automatically import SSH keys as age keys.
|
|
||||||
sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
|
|
||||||
# Use an age key that is expected to already be in the filesystem.
|
|
||||||
# You will need to place this file manually.
|
|
||||||
keyFile = "/var/lib/sops-nix/key.txt";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.programs.spotify-adblock;
|
|
||||||
in {
|
|
||||||
options.sisyphus.programs.spotify-adblock.enable = lib.mkEnableOption "Spotify adblock";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
environment.etc."spotify-adblock/config.toml".source = "${pkgs.spotify-adblock}/config.toml";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.programs.ssh;
|
|
||||||
in {
|
|
||||||
options.sisyphus.programs.ssh.enable = lib.mkEnableOption "SSH";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.ssh = {
|
|
||||||
enableAskPassword = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./monero
|
|
||||||
./openrgb
|
|
||||||
./openssh
|
|
||||||
./pipewire
|
|
||||||
./printing
|
|
||||||
./tailscale
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.services.monero;
|
|
||||||
in {
|
|
||||||
options.sisyphus.services.monero.enable = lib.mkEnableOption "Monero";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
monero-cli
|
|
||||||
];
|
|
||||||
|
|
||||||
services = {
|
|
||||||
# Choose to run a node or not.
|
|
||||||
monero.enable = true;
|
|
||||||
|
|
||||||
xmrig = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
autosave = true;
|
|
||||||
background = true;
|
|
||||||
pause-on-battery = true;
|
|
||||||
pause-on-active = 60;
|
|
||||||
donate-level = 5;
|
|
||||||
cpu = true;
|
|
||||||
opencl = false;
|
|
||||||
cuda = true;
|
|
||||||
pools = [
|
|
||||||
{
|
|
||||||
url = "monerohash.com:9999";
|
|
||||||
# url = "127.0.0.1:18081"; # Local node
|
|
||||||
user = "44FjmmLn1k1GC1AFTLSdWDZ17CHB2h3eRCnfkfTQBucHaKX1AGS5oLERR1FEaHxPQcUNwrbEfsgbY4Y6bYJm6ZrdCYGwg7b";
|
|
||||||
keepalive = true;
|
|
||||||
tls = true;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,23 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.services.openrgb;
|
|
||||||
in {
|
|
||||||
options.sisyphus.services.openrgb.enable = lib.mkEnableOption "OpenRGB";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.udev.packages = with pkgs; [
|
|
||||||
openrgb
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.kernelModules = [ "i2c-dev" ];
|
|
||||||
|
|
||||||
hardware.i2c.enable = true;
|
|
||||||
|
|
||||||
services.hardware.openrgb = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs.openrgb-with-all-plugins;
|
|
||||||
motherboard = "intel";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.services.openssh;
|
|
||||||
in {
|
|
||||||
options.sisyphus.services.openssh.enable = lib.mkEnableOption "OpenSSH";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.openssh = {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
PasswordAuthentication = false;
|
|
||||||
PermitRootLogin = "no";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.services.pipewire;
|
|
||||||
in {
|
|
||||||
options.sisyphus.services.pipewire.enable = lib.mkEnableOption "Pipewire";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
sound.enable = true;
|
|
||||||
hardware.pulseaudio.enable = false;
|
|
||||||
security.rtkit.enable = true;
|
|
||||||
services.pipewire = {
|
|
||||||
enable = true;
|
|
||||||
alsa.enable = true;
|
|
||||||
alsa.support32Bit = true;
|
|
||||||
pulse.enable = true;
|
|
||||||
# If you want to use JACK applications, uncomment this
|
|
||||||
#jack.enable = true;
|
|
||||||
|
|
||||||
# use the example session manager (no others are packaged yet so this is enabled by default,
|
|
||||||
# no need to redefine it in your config for now)
|
|
||||||
#media-session.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.services.printing;
|
|
||||||
in {
|
|
||||||
options.sisyphus.services.printing.enable = lib.mkEnableOption "Printing";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services = {
|
|
||||||
printing.enable = true;
|
|
||||||
avahi = {
|
|
||||||
enable = true;
|
|
||||||
nssmdns = true;
|
|
||||||
openFirewall = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ config, lib, pkgs, pkgs-unstable, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.services.tailscale;
|
|
||||||
in {
|
|
||||||
options.sisyphus.services.tailscale.enable = lib.mkEnableOption "Tailscale";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
services.tailscale = {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs-unstable.tailscale;
|
|
||||||
useRoutingFeatures = "client";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
5
nixos/modules/shells/default.nix
Normal file
5
nixos/modules/shells/default.nix
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./zsh
|
||||||
|
];
|
||||||
|
}
|
70
nixos/modules/shells/zsh/default.nix
Normal file
70
nixos/modules/shells/zsh/default.nix
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
programs.zsh.enable = true;
|
||||||
|
users.users.tdpeuter.shell = pkgs.zsh;
|
||||||
|
|
||||||
|
home-manager.users.tdpeuter = { pkgs, ... }: {
|
||||||
|
home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
font-awesome
|
||||||
|
];
|
||||||
|
|
||||||
|
file = {
|
||||||
|
".oh-my-zsh".source = ../../../../stow/zsh/.oh-my-zsh;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.zsh = {
|
||||||
|
enable = true;
|
||||||
|
enableAutosuggestions = true;
|
||||||
|
enableSyntaxHighlighting = true;
|
||||||
|
history = {
|
||||||
|
expireDuplicatesFirst = true;
|
||||||
|
extended = true;
|
||||||
|
};
|
||||||
|
initExtra = ''
|
||||||
|
eval "$(direnv hook zsh)"
|
||||||
|
'';
|
||||||
|
oh-my-zsh = {
|
||||||
|
enable = true;
|
||||||
|
custom = "$HOME/.oh-my-zsh";
|
||||||
|
plugins = [
|
||||||
|
"dirhistory"
|
||||||
|
"git"
|
||||||
|
"screen"
|
||||||
|
];
|
||||||
|
theme = "mrfortem";
|
||||||
|
};
|
||||||
|
plugins = [
|
||||||
|
{
|
||||||
|
name = "cmdtime";
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "tom-auger";
|
||||||
|
repo = "cmdtime";
|
||||||
|
rev = "ffc72641dcfa0ee6666ceb1dc712b61be30a1e8b";
|
||||||
|
hash = "sha256-v6wCfNoPXDD3sS6yUYE6lre8Ir1yJcLGoAW3O8sUOCg=";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
shellAliases = {
|
||||||
|
cp = "cp -i"; # Confirm before overwriting something
|
||||||
|
df = "df -h";
|
||||||
|
free = "free -m";
|
||||||
|
ll = "ls -la";
|
||||||
|
np = "nano -w PKGBUILD";
|
||||||
|
more = "less";
|
||||||
|
hgrep = "history | grep";
|
||||||
|
|
||||||
|
gs = "git status";
|
||||||
|
|
||||||
|
update = ''
|
||||||
|
pushd ~/projects/sisyphus/nixos
|
||||||
|
nix flake update
|
||||||
|
sudo nixos-rebuild switch --flake .# --show-trace
|
||||||
|
popd
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
43
nixos/modules/utils/default.nix
Normal file
43
nixos/modules/utils/default.nix
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./mpv
|
||||||
|
./vifm
|
||||||
|
./vim
|
||||||
|
./zellij
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.users.tdpeuter = { pkgs, ... }: {
|
||||||
|
home.packages = with pkgs; [
|
||||||
|
direnv
|
||||||
|
duf
|
||||||
|
git-crypt
|
||||||
|
lynx
|
||||||
|
nsxiv
|
||||||
|
w3m
|
||||||
|
wget
|
||||||
|
zenith-nvidia
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
direnv = {
|
||||||
|
enable = true;
|
||||||
|
nix-direnv.enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
git = {
|
||||||
|
enable = true;
|
||||||
|
userName = "tdpeuter";
|
||||||
|
userEmail = "tibo.depeuter@gmail.com";
|
||||||
|
extraConfig = {
|
||||||
|
core.editor = "vim";
|
||||||
|
};
|
||||||
|
includes = [
|
||||||
|
{
|
||||||
|
path = "~/.gitconfig-ugent";
|
||||||
|
condition = "gitdir:~/Nextcloud/Documenten/UGent";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
11
nixos/modules/utils/mpv/default.nix
Normal file
11
nixos/modules/utils/mpv/default.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{ config, system, lib, pkgs-unstable, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home-manager.users.tdpeuter.home = {
|
||||||
|
packages = with pkgs-unstable; [
|
||||||
|
mpv
|
||||||
|
];
|
||||||
|
|
||||||
|
file.".config/mpv".source = ../../../../stow/mpv/.config/mpv;
|
||||||
|
};
|
||||||
|
}
|
8
nixos/modules/utils/ssh/default.nix
Normal file
8
nixos/modules/utils/ssh/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
passwordAuthentication = false;
|
||||||
|
};
|
||||||
|
}
|
22
nixos/modules/utils/vifm/default.nix
Normal file
22
nixos/modules/utils/vifm/default.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
home-manager.users.tdpeuter.home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
vifm
|
||||||
|
|
||||||
|
chafa # Terminal image previewer
|
||||||
|
glow # Terminal Markdown renderer
|
||||||
|
|
||||||
|
font-awesome_5
|
||||||
|
];
|
||||||
|
|
||||||
|
# Put files separately so history still works
|
||||||
|
file = {
|
||||||
|
".config/vifm/colors".source = ../../../../stow/vifm/.config/vifm/colors;
|
||||||
|
".config/vifm/scripts".source = ../../../../stow/vifm/.config/vifm/scripts;
|
||||||
|
".config/vifm/vifmrc".source = ../../../../stow/vifm/.config/vifm/vifmrc;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
76
nixos/modules/utils/vim/default.nix
Normal file
76
nixos/modules/utils/vim/default.nix
Normal file
|
@ -0,0 +1,76 @@
|
||||||
|
{ inputs, lib, config, pkgs, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home-manager.users.tdpeuter = { pkgs, ... }: {
|
||||||
|
home.file = {
|
||||||
|
".vim".source = ../../../../stow/vim/.vim;
|
||||||
|
};
|
||||||
|
|
||||||
|
programs.vim = {
|
||||||
|
enable = true;
|
||||||
|
extraConfig = ''
|
||||||
|
colorscheme catppuccin_mocha_mod
|
||||||
|
|
||||||
|
" Tags
|
||||||
|
" pacman -S ctags
|
||||||
|
command! MakeTags !ctags -R . &
|
||||||
|
" Move to defintion using ^]
|
||||||
|
" Move to ambigious using g^]
|
||||||
|
" Move back using ^t
|
||||||
|
|
||||||
|
filetype on
|
||||||
|
filetype indent on
|
||||||
|
filetype plugin on
|
||||||
|
|
||||||
|
" File browsing
|
||||||
|
let g:netrw_browse_split=4 " open in the previous window
|
||||||
|
let g:netrw_altv=1 " split new windows to the right
|
||||||
|
let g:netrw_liststyle=3 " treeview
|
||||||
|
|
||||||
|
set autoindent
|
||||||
|
set conceallevel=2
|
||||||
|
set incsearch
|
||||||
|
set linebreak
|
||||||
|
set nocompatible
|
||||||
|
set path+=**
|
||||||
|
set scrolloff=3
|
||||||
|
set showcmd
|
||||||
|
set showmatch
|
||||||
|
set smartindent
|
||||||
|
set smarttab
|
||||||
|
set title
|
||||||
|
set wildignore=*.docx,*.jpg,*.png,*.gif,*.pdf,*.pyc,*.exe,*.flv,*.img,*.xlsx
|
||||||
|
set wildmenu
|
||||||
|
|
||||||
|
syntax enable
|
||||||
|
|
||||||
|
if $TERM == 'alacritty'
|
||||||
|
set ttymouse=sgr " Alacritty specific
|
||||||
|
endif
|
||||||
|
if has("autocmd")
|
||||||
|
au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif
|
||||||
|
" https://stackoverflow.com/a/37558470/19044747
|
||||||
|
augroup remember_folds
|
||||||
|
autocmd!
|
||||||
|
autocmd BufWinLeave * silent! mkview
|
||||||
|
autocmd BufWinEnter * silent! loadview
|
||||||
|
augroup END
|
||||||
|
endif
|
||||||
|
'';
|
||||||
|
plugins = with pkgs.vimPlugins; [
|
||||||
|
ale
|
||||||
|
catppuccin-vim
|
||||||
|
statix
|
||||||
|
vifm-vim
|
||||||
|
];
|
||||||
|
settings = {
|
||||||
|
expandtab = true;
|
||||||
|
mouse = "a";
|
||||||
|
number = true;
|
||||||
|
relativenumber = true;
|
||||||
|
shiftwidth = 4;
|
||||||
|
tabstop = 4;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
16
nixos/modules/utils/zellij/default.nix
Normal file
16
nixos/modules/utils/zellij/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{ config, pkgs, lib, ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
home-manager.users.tdpeuter.home = {
|
||||||
|
packages = with pkgs; [
|
||||||
|
zellij
|
||||||
|
];
|
||||||
|
|
||||||
|
file.".config/zellij".source = ../../../../stow/zellij/.config/zellij;
|
||||||
|
};
|
||||||
|
|
||||||
|
fonts.fonts = with pkgs; [
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk
|
||||||
|
];
|
||||||
|
}
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./docker
|
|
||||||
./qemu
|
|
||||||
./virtualbox
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.virtualisation.docker;
|
|
||||||
in {
|
|
||||||
options.sisyphus.virtualisation.docker.enable = lib.mkEnableOption "Docker";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
virtualisation.docker = {
|
|
||||||
enable = true;
|
|
||||||
# Because these are made for development purposes and not for servers
|
|
||||||
enableOnBoot = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
hardware.nvidia-container-toolkit.enable = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.virtualisation.qemu;
|
|
||||||
in {
|
|
||||||
options.sisyphus.virtualisation.qemu.enable = lib.mkEnableOption "QEMU";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
qemu
|
|
||||||
];
|
|
||||||
|
|
||||||
virtualisation.libvirtd.qemu.runAsRoot = false;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,41 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.virtualisation.virtualbox;
|
|
||||||
|
|
||||||
# I like to override the virtualbox package because it is frequently
|
|
||||||
# and rebuilds take quite long.
|
|
||||||
inherit (pkgs) fetchurl;
|
|
||||||
version = "7.0.10";
|
|
||||||
virtualbox-override = pkgs.virtualbox.overrideAttrs (oldAttrs: {
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://download.virtualbox.org/virtualbox/${version}/VirtualBox-${version}.tar.bz2";
|
|
||||||
sha256 = "0b1e6d8b7f87d017c7fae37f80586acff04f799ffc1d51e995954d6415dee371";
|
|
||||||
};
|
|
||||||
});
|
|
||||||
in {
|
|
||||||
options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
virtualisation.virtualbox = {
|
|
||||||
host = {
|
|
||||||
enable = true;
|
|
||||||
enableExtensionPack = true;
|
|
||||||
package = virtualbox-override;
|
|
||||||
};
|
|
||||||
guest = {
|
|
||||||
enable = true;
|
|
||||||
clipboard = true;
|
|
||||||
seamless = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# Define the group
|
|
||||||
users.groups.vboxusers = {};
|
|
||||||
|
|
||||||
sisyphus.users.wantedGroups = [
|
|
||||||
config.users.groups.vboxusers.name # The group we defined earlier
|
|
||||||
config.users.groups.dialout.name # Serial Port
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,17 +0,0 @@
|
||||||
final: prev: {
|
|
||||||
cmdtime = final.stdenv.mkDerivation {
|
|
||||||
name = "cmdtime";
|
|
||||||
version = "v0.0.0";
|
|
||||||
src = final.fetchFromGitHub {
|
|
||||||
owner = "tom-auger";
|
|
||||||
repo = "cmdtime";
|
|
||||||
rev = "ffc72641dcfa0ee6666ceb1dc712b61be30a1e8b";
|
|
||||||
hash = "sha256-v6wCfNoPXDD3sS6yUYE6lre8Ir1yJcLGoAW3O8sUOCg=";
|
|
||||||
};
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share/cmdtime
|
|
||||||
cp $src/cmdtime.plugin.zsh $out/share/cmdtime/cmdtime.plugin.zsh
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
# The following is taken from: https://nixos-and-flakes.thiscute.world/nixpkgs/overlays
|
|
||||||
|
|
||||||
# import all nix files in the current folder, and execute them with args as parameters
|
|
||||||
# The return value is a list of all execution results, which is the list of overlays
|
|
||||||
|
|
||||||
args:
|
|
||||||
# execute and import all overlay files in the current directory with the given args
|
|
||||||
builtins.map
|
|
||||||
(f: (import (./. + "/${f}") args)) # execute and import the overlay file
|
|
||||||
(builtins.filter # find all overlay files in the current directory
|
|
||||||
(f: f != "default.nix")
|
|
||||||
(builtins.attrNames (builtins.readDir ./.)))
|
|
|
@ -1,18 +0,0 @@
|
||||||
final: prev: {
|
|
||||||
icosystem = final.stdenv.mkDerivation {
|
|
||||||
name = "icosystem";
|
|
||||||
version = "v1.0.0";
|
|
||||||
src = final.fetchFromGitea {
|
|
||||||
domain = "git.depeuter.dev";
|
|
||||||
owner = "tdpeuter";
|
|
||||||
repo = "icosystem";
|
|
||||||
rev = "ca565dc36d";
|
|
||||||
hash = "sha256-GJu0APTkrsFH981Y1RBedOnvVJ5Z79w2WPcLkrc8CH0=";
|
|
||||||
};
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share/icons
|
|
||||||
cp -R $src $out/share/icons/icosystem
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
final: prev: {
|
|
||||||
letter = final.stdenv.mkDerivation {
|
|
||||||
name = "letter";
|
|
||||||
version = "v1.0.0";
|
|
||||||
src = final.fetchFromGitea {
|
|
||||||
domain = "git.depeuter.dev";
|
|
||||||
owner = "tdpeuter";
|
|
||||||
repo = "letter";
|
|
||||||
rev = "v1.0.0";
|
|
||||||
hash = "sha256-2HaXZMIYSauqj9Cy7rRzYGyuYLno9AHAXpWsyD+BdtE=";
|
|
||||||
};
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/share/fonts
|
|
||||||
cp -R $src/ttf $out/share/fonts/letter
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,24 +0,0 @@
|
||||||
final: prev: {
|
|
||||||
spotify-adblock = final.rustPlatform.buildRustPackage rec {
|
|
||||||
name = "spotify-adblock";
|
|
||||||
version = "v1.0.3";
|
|
||||||
src = final.fetchFromGitHub {
|
|
||||||
owner = "abba23";
|
|
||||||
repo = "spotify-adblock";
|
|
||||||
rev = "5a3281d";
|
|
||||||
sha256 = "sha256-UzpHAHpQx2MlmBNKm2turjeVmgp5zXKWm3nZbEo0mYE=";
|
|
||||||
};
|
|
||||||
|
|
||||||
cargoHash = "sha256-oHfk68mAIcmOenW7jn71Xpt8hWVDtxyInWhVN2rH+kk=";
|
|
||||||
|
|
||||||
buildInputs = with final; [
|
|
||||||
cargo
|
|
||||||
rustc
|
|
||||||
];
|
|
||||||
|
|
||||||
postPatch = ''
|
|
||||||
mkdir -p $out
|
|
||||||
cp $src/config.toml $out/config.toml
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,22 +0,0 @@
|
||||||
GitHub:
|
|
||||||
ssh: ENC[AES256_GCM,data:jzRpTgefhZg7Vhm8QvWNsPBko1yw56sM/XehY72lAc7aRz+dx6BGgyYbZiifd7GrGJGUbH6gWfUg8YjgVla6VRsiHCEvSK3bY0ADDwTeSUs+wuybYXQZqhivSCInVtVSNAcp99uI1QwKor289zmxcFtSZEXgU1OCSel/8br+qipAbOkzAKX1v15eigjY4OSQxXL59EuuuHEQ+vjVVv95tDv03jaNAoU9UKr0Atrny/Fn2sQn4Tmec5Q1XdvDErKhSxrAFiACkxXUwPZMHez+BUZrmkksqpzNJjYNIlmsITuOVr7Fyen9wotAwsDf96Fmz5JYLtRX9CAboUgQLdUOKprwX/xgBnFtDTSH1Qr785T1QSAZL6xdE6hNibxZO3vGeeaPC3oGB5g9x5CwTQelMdOUPKdKorCDj226o56cTc/IQxUpsULbeOyi2pMGHiTHbiQBzHpxWyQ/gBktPkF25GOFeaCu3gW+xsspX91jSKudcYdBqWUNmJcdsfHfPxPM4cZtA/sVMyoA+YcehgU7GTu9DAlxDTug/JWo,iv:5shfzmrFFVEuaYmyTkBMAw9BIFFkKz0yl1dyJWxq6Y4=,tag:CX7TBJJXCKuIPSmg9/RpGg==,type:str]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
|
||||||
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k
|
|
||||||
SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz
|
|
||||||
ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6
|
|
||||||
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
|
|
||||||
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2023-09-11T10:23:48Z"
|
|
||||||
mac: ENC[AES256_GCM,data:3XEbhFY1TlXo6bTctV2u4i6QPzXnJC6iU3F/MUARSQl1z4peOB5x8hZfdiV/hVMR8I+83TxDcEAmKDrcaMf89Tqa+OiD//wBekMUfS7AmBRhpv7X5qfarflfnygacFsAMhf/bdiqowYbGSNvlPjueqHJaFZ+3x/wPrt/jAYNlr8=,iv:ciQmY7bE+Je6kMlmxxtQvp+r3e/ZK942tT4TtXhDX2M=,tag:4+7uZlEm5bcRfZC7pp5Y7Q==,type:str]
|
|
||||||
pgp: []
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.7.3
|
|
|
@ -1,24 +0,0 @@
|
||||||
Hugo:
|
|
||||||
ssh: ENC[AES256_GCM,data:Qi4YEvG64lJqhISMNtuC0mM02TU5KPpzdgs8x2UJwxAxus4+Aa3nIttkbcbKxtobL7ohKcMFGq7bBdj+s4zbctctknHdjiwj1caDoD7+Fm5H0RWLe7yjt5e4IxRywN8cNF59FfINl2tMutuENOzSucjHIXTKSV/ARZzwhcyZkQy//YvlReUSrUNaNkVM1VtjVILOToAXGzQx5w74eX+9JYV9FtZRTbr/spule+UDDtPZaaiFZmFfE5YjULFPaZJo2iUiirKalPodxfIar9eXzoN+bOQbz2Xys1QHNEt2cwWjERruCsojiyA+XeYFreWEWGggSEXizxv7cS5ab1e9XqtWR+u3Gdy/t1/cjoMBVXuLxQ+BwTlAO8NDgRbW0aq8q5yOsPCjShI/N4EVN5qtMUT1+mYZLCiZPPXbLBIiyqIWea/Ru8iIo7+WoF2iDBgshwnw8+uGDFfwlNh3SAwMSQOcGg06+U17PeU56Q/wqID2lEMDgGfHdqObvMlae1q+Qa9cwrp4xDw5S42NlgVaNcovUav5US5kO43r,iv:xvuRv4sqLRGv9npIVjnGV7zDPzIyS58ZKN2T23BmMZs=,tag:iGnBzgRhREEfKjE/ea5Drw==,type:str]
|
|
||||||
Gitea:
|
|
||||||
ssh: ENC[AES256_GCM,data:digqDmnEPg/Zn9Xt7+Z/R9lTBs6CeOgHgIhstWxHnvucwshUO7Zu+l80YPyzAck0pO5YIKML8hjAqj30lYqSPRzG1uRpT7likCy15MqyyQ64U+5PGQRNhybo1eYoqVFYd2sYc5xzkve1b8zCDfxj2mbmRYETYSidHZLaDilq6iKtWWSX+mnTXqJ2gIj+J7pfFBOHskWglnrVdj93AOdpG6cmnvzE7ey8SrMt9t0GzmRFAvjP3slio8NTsI97fu3isF0phGoh8q9tGGRnRMDq3E33zzntT3jawtWiib9ZCxuJ8Zhwc1fIF07YfBJ+sZJ7Kau1205NFJtISGbVhVmpD9kQdoFwYQxYJuvPcDYyIYH/K86bYnBmJWRCwbTh7Es7DCCC90VY/yMjRNoYvjupjhuHKGXE8O/Y8weERZ+GuZ8BSxFwU81YK9mcQyw+Z+MdAFsZEhR7cpxRkty2INKxOdX8wJGVw3A1cInwuiBjLiED0ndh39RqJbE8DUQAJgngSbYK52rCadjhs2xf+tPiDatsDMAHU2DpyDcz,iv:Dh9hhr1mp+gXA1eUvsJVb5opbaEtdRMKAd4HQSQlOpc=,tag:k4M96tstNATvyFe6xF2IzQ==,type:str]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
|
||||||
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k
|
|
||||||
SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz
|
|
||||||
ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6
|
|
||||||
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
|
|
||||||
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2023-10-05T19:05:15Z"
|
|
||||||
mac: ENC[AES256_GCM,data:8xMV6RkmXpt2uY07E+59ZXwTwTL6oqo9j5sFOxejwnFU06MGW9t1h/5HFg+GKpp3Jj1LT6a7uuyip6bDGCMEhI054sTv2uDlOIFd4nbHwOh+keEH/FLa8csTq4yyisROsaXUUCtWxraGXz0MQXT8xlQMT7Pn0x43JssmPhOwrRo=,iv:JKNsroIAxvV5V23at/DsDdud5idVn5IEQHrgeFHR3fQ=,tag:XY0hikk4yvqfynPI8q+GBg==,type:str]
|
|
||||||
pgp: []
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.7.3
|
|
|
@ -1,27 +0,0 @@
|
||||||
UGent:
|
|
||||||
GitHub:
|
|
||||||
ssh: ENC[AES256_GCM,data:J50bZHBhN1AT1mF0YpzAFvC4zYeXiIPLJsb4Bx2oqnwX8XlfL0xta7z9Y5CmLxBIxowpj2sLaAnElO1pbsGl8NCnERYvAAt0tpnF3ndozLKfqGPsBKnnc/s9CrZhcsCtoH23lMlVsYMJfVR3B1/0W1XeU+E/GpzBTaH0jkwpmE9+k/TdtPPqSqHvF47NS9lTDx9puHSFixNhxUE82/7wvKTrkGO6+SJXTELXqFM7IojwIHs9UrL2zIrMMRnSPwAiZ96UI4Cg2S18j610ZzX/aw1qODqL53ZfZ9HKurGxyEN58ehR4UhiGsHiml9Ged9UIHhpX3DtMCrwrZfAzGLDV4DxDGQRT8C/aCgOag5AtYJczivY8wA9CQpiTBBUlomUurjRtiSX4FdvZxZLTmY+DtnE/SblRNsAZUEu6DVcg+HUYgqWu+XgVhWyKCiEbKpw0Crl4O3e8evIZ8H7+o3ydQjSgjbIkNjtYGR6fH/8Hh1HOsdh9CDevhNh0TtD/KP7ahTEIeelm6A9ZaP92Bnga5aafKtjX0RBOv4u,iv:6YE94ihsaUkB9+c48ELvRiY8bgZvS0EoyP+l5AisW8o=,tag:NSMpky7GoxDkybFSCjJm3Q==,type:str]
|
|
||||||
HPC:
|
|
||||||
ssh: ENC[AES256_GCM,data:A4ir0yvCgIVJCl4C5fB4+WhJVj6Go9XWfjw1/lOaWr2rP+tVNnjGuv/d47z55Gxose5keYX2wRMet/M2Re18+5ckFTyfT4YkcHtQCyBGbmwYmIzxcaxinNsCuOelEdNnFnYW2ha0aJ8Q5Xjfpec1YqDrCT/Add3qGRzBizQJ1FajbyhxJOKLYvUrYvLZ8+XE8SUndvjQnVig3ArUm2hDFsEMm4ClZ4T+EwcIuWrS8ia7ZoqlQhglEtlSEczE65a6hQAFeXE64YC3s8kWlRGhRqJQXjB5g/UTkOht3Vrw2cNzrz90tR9vhooOEBEI6d8F8RJGkdyUe5zod1eKnE/lwOFhhTbzrGrYzX4oUrDIL+Dx9+R9mQchv9qSau1JtKDvzkYmqVVgTC6wE98gTRSBw78f0MKO27FA3diC/k3t+mwsKVRjcvlTUcbRcFAxjq/U5TbOq5jOgA41dI9KE/+bnJoLRh81m/sq9EqMTp90wDKn+jjCn7lGcGDwtaaTlbLIGIw5u9pcfD4UyvJZamnS96JAhsDUqk+fxb05,iv:jPCdaC7CahKrj3tvzZTs1ZI/3+zuCCqIdXp3vo9l/iY=,tag:DeUdWEZHpsB1AMD2AQuiTg==,type:str]
|
|
||||||
SubGit:
|
|
||||||
ssh: ENC[AES256_GCM,data:hJAle4DHJNvX569reclBG5rEdWsjAyV2TtHYMiPfky/dMKJkYgT4+T0doLfUn1O6at77kJGPmwUEvmK819DUuvHtNY7c6angV7iLygJ/ThI1FIFOKH+NxEsI3scoT0VDDybHpgice/fcJL1tMcvE74+dWOnZ2r4pxcMJEFHUPVVWcl9/stJLn78OonsyWpj8PglcnYFOfZ6THIe3lyNBxRp7XEweuwjacthGzOzNu3Z95zcCAnAokFVZ570glJNhjJVNEmPHZkHOcGiGNNM4JNbR11v+dOYtac942t/mmmWwAzbznuu8ZLupYWjdg/f07ftkPAwFwCoXblZ3708Lvf6uOt/CPeWvEII2Haf1Cr5w+U6TAt14zzL73xCSQqwz1TfkcmD+bJplmtcpSP/KX8/BRK7qr6Ec5T9ecbraRB7zDBg0X2x51DSHLrA7UIhpI9JNaOArU5UOVYTWwuzFiGG61elJMcPZ5vWEVrTCocfa4INPo4B2MkFbbsYf6xnY1L3Wc9LQjkff6aCqYnQaXZ/WfPWepf9YvYG1,iv:0Bm1r0FuJJKKmcbTiPL36rb5FaMZfOO7Mx8pXU2FSfg=,tag:0ShoJPJUx37mEAus+mhPmw==,type:str]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
|
||||||
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYWWFUdnpERVlkK29TQ09k
|
|
||||||
SnJMVm5rUEV6S0huSzJ2YjFFQ3pNR0pmZWprClZEVDloeDE2ODNkMVVJTUtqaENz
|
|
||||||
ZzhwTTA4V2xOeW55WGtPZU5FWElQNDAKLS0tIFh5ZWtmZHRBWTAvM3ZwY3pKQ0R6
|
|
||||||
aDNUbFlhWWVoOWpjVlV1VTVJejlSMjQK6wCeCRdHY5oyTX6/R1U5AOGJyp0exi1A
|
|
||||||
dWPUMfkKBBBkrR+G6ougd8o3FwFf+yfb5RhaTxxqjit6p2RyMjR64w==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2023-10-10T06:57:11Z"
|
|
||||||
mac: ENC[AES256_GCM,data:Tvwv2mqceAxi7ic3+95Y6hBMHjqVoCkYnTkEsXOrhumgXpuuB/QQ0ASEf6gbgkCLXGwnUAXsK41bIIJfFgYSk89fHw6AaXfs6a+zL2Mh5zkhMIE2bm68mFK8+/TX/e8SibbEwNZCKOcPqvaO6nK816KCmh3KKCbT9ObaB6CA/KI=,iv:YPKgYAnQ135JXou7q9jVN7b3SKIDwceKcbqiIjkqnTU=,tag:udPrEVu2F+hWkhNoEyjTYg==,type:str]
|
|
||||||
pgp: []
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.7.3
|
|
|
@ -1,30 +0,0 @@
|
||||||
hello: ENC[AES256_GCM,data:Qs69AsC8Yz+2RWSMvZp3zw==,iv:9p9bf2MI0HFwPB5qu0nTy3riyE6xUqsdObaXv3vgs3c=,tag:fjwrOPR/2vIeNgPDEVI+LQ==,type:str]
|
|
||||||
example_key: ENC[AES256_GCM,data:JaknfPEPPtIotkwWpQ==,iv:OQy1S24scW0Ac9omkHg1HSCH6b7cClBMDH1GXZkzUBY=,tag:ItO6EdXKy4zOuZ2DROI+Tg==,type:str]
|
|
||||||
#ENC[AES256_GCM,data:Pok2Tcvryb59LmHDanq5/Q==,iv:Wl2nAb0X7s3bFeGeVUAHb+FMqrKHSJwwHulhdwhPkuE=,tag:YxicHwyrYLZZ6sFGNvkMMA==,type:comment]
|
|
||||||
example_array:
|
|
||||||
- ENC[AES256_GCM,data:ULZ3vixg/k1biadqhw8=,iv:7NMuh30RkiBGpXO/sd5WKzBggNnMZkV8eD16w39utd4=,tag:+ReYo3sQf2rgK0nTXAq1UA==,type:str]
|
|
||||||
- ENC[AES256_GCM,data:VawE9ClM28rRQPScWAM=,iv:XKiKDFGy6Io5gyp/FHLXIs7CpT41E6KAKHQmuZLRVHE=,tag:FSIdSnI/emPwHk0dQVT/TQ==,type:str]
|
|
||||||
example_number: ENC[AES256_GCM,data:yd6R8u2Nd5effA==,iv:7NO330iRkYO42a4AjBr5Ebv/nxx5J0/OpWKIqMTqdPQ=,tag:N/RK1+Q+QqnVPCkGPA1/AQ==,type:float]
|
|
||||||
example_booleans:
|
|
||||||
- ENC[AES256_GCM,data:Ul7fKA==,iv:U51FhTsWwkbhUWGsO8D+bl2mLdTIfapIB+OGJEOAiRA=,tag:9NJLKp8s2TSKLyXwM8OncA==,type:bool]
|
|
||||||
- ENC[AES256_GCM,data:LVU1a90=,iv:1X1qV+8iIe1i5hIrqyB3tJew9hsHjJHlATmkEmwRA0Y=,tag:ko/5OwmJH/6HKPsvbkoRpw==,type:bool]
|
|
||||||
sops:
|
|
||||||
kms: []
|
|
||||||
gcp_kms: []
|
|
||||||
azure_kv: []
|
|
||||||
hc_vault: []
|
|
||||||
age:
|
|
||||||
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
|
||||||
enc: |
|
|
||||||
-----BEGIN AGE ENCRYPTED FILE-----
|
|
||||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3ekx1bzluY0ZhYmhnRmhW
|
|
||||||
b3pzM2RlKzFrREpMK3RNU1MweldNRXJ5NjE4CmNRbnFvbk1EN0V0ZWJiVzFmL3Jt
|
|
||||||
N1Vpb3NEdXFzdzU4MjN1elp1RWZ5THcKLS0tIDR4cTFJNVFveEdxaEYvZndKbURa
|
|
||||||
UHpaNENhL3c1K3RXc05hUmdNZVBpT2MKwBj4+Gb7giVJIoPWiwY3tvugEAexXy6Q
|
|
||||||
YTWgZQZk96r5aF2mBjRCFCc7prj85PsUN/UXOPjPLVAFG3lwS0Eaog==
|
|
||||||
-----END AGE ENCRYPTED FILE-----
|
|
||||||
lastmodified: "2023-09-10T20:20:18Z"
|
|
||||||
mac: ENC[AES256_GCM,data:yfmYEo8pdlG3tu4Fabwde57igIvpt4UuhQqStVlV36rvPnv9dc42+6iduu+heuQ2OAVw0jk6/o6SWJpcms2DReOAMGDOgt+zV3TgJym52YdMcjTNJTo+4loULhvaWyN9ZdPJjSYKEoSgOZi+oMx4BpwreQEaPaYUxcbTqrWCUa8=,iv:Mb81sBxibRxSaC2kgakhy2pyEmW0MDobF+lHF7cny5E=,tag:DCqTWSnf5Gv5YfAGSEC2yw==,type:str]
|
|
||||||
pgp: []
|
|
||||||
unencrypted_suffix: _unencrypted
|
|
||||||
version: 3.7.3
|
|
3
nixos/secrets/sops/age/keys.txt
Normal file
3
nixos/secrets/sops/age/keys.txt
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
# created: 2023-04-11T14:44:53+02:00
|
||||||
|
# public key: age1q2gqur3t4fu8flsuu2zdnule37vdkh6egpt6a2e3ytx433x8gpvsr4hw6l
|
||||||
|
AGE-SECRET-KEY-10J7MWCWQQY33TVNMQ9AMH4TH5LULSVAZ539P9QG3NA2Z3LTMXAFS2QQ4NG
|
|
@ -1,14 +0,0 @@
|
||||||
{ config, lib, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./tdpeuter
|
|
||||||
];
|
|
||||||
|
|
||||||
options.sisyphus.users.wantedGroups = lib.mkOption {
|
|
||||||
type = lib.types.listOf lib.types.str;
|
|
||||||
default = [ ];
|
|
||||||
example = [ config.users.groups.wheel.name ];
|
|
||||||
description = "Groups to which a user should be added";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,174 +0,0 @@
|
||||||
{ config, lib, pkgs, pkgs-unstable, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.users.tdpeuter;
|
|
||||||
|
|
||||||
user = config.users.users.tdpeuter.name;
|
|
||||||
installedPkgs = config.environment.systemPackages ++ config.home-manager.users.tdpeuter.home.packages;
|
|
||||||
|
|
||||||
cursor = {
|
|
||||||
package = pkgs.phinger-cursors;
|
|
||||||
name = "phinger-cursors";
|
|
||||||
size = 24;
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
imports = [
|
|
||||||
./dotfiles.nix
|
|
||||||
./firefox.nix # Enables Firefox without setting options
|
|
||||||
./mail.nix # Enables Thunderbird without setting options
|
|
||||||
./secrets.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
options.sisyphus.users.tdpeuter.enable = lib.mkEnableOption "user Tibo De Peuter";
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
users.users.tdpeuter = {
|
|
||||||
description = "Tibo De Peuter";
|
|
||||||
isNormalUser = true;
|
|
||||||
extraGroups = config.sisyphus.users.wantedGroups ++ [
|
|
||||||
config.users.groups.input.name
|
|
||||||
config.users.groups.keys.name
|
|
||||||
config.users.groups.networkmanager.name
|
|
||||||
config.users.groups.wheel.name
|
|
||||||
];
|
|
||||||
initialPassword = "ChangeMe";
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
};
|
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
|
||||||
corefonts # Calibri for Uni
|
|
||||||
font-awesome # Dependency of Vifm & zsh config
|
|
||||||
letter # Personal font
|
|
||||||
noto-fonts-cjk # Dependency of Zellij config
|
|
||||||
noto-fonts # Dependency of Zellij config
|
|
||||||
vistafonts # Microsoft fonts
|
|
||||||
];
|
|
||||||
|
|
||||||
sisyphus = {
|
|
||||||
programs.spotify-adblock.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable {
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
|
|
||||||
home = {
|
|
||||||
username = user;
|
|
||||||
homeDirectory = "/home/${user}";
|
|
||||||
inherit (config.system) stateVersion;
|
|
||||||
|
|
||||||
packages = (with pkgs; [
|
|
||||||
cmdtime # Zsh plugin
|
|
||||||
icosystem # Personal icon theme
|
|
||||||
spotify-adblock
|
|
||||||
]) ++ (with pkgs-unstable; [
|
|
||||||
brave
|
|
||||||
chafa # Terminal image viewer
|
|
||||||
duf # Df alternative
|
|
||||||
foot
|
|
||||||
fzf
|
|
||||||
glow # Terminal Markdown renderer
|
|
||||||
jellyfin-media-player
|
|
||||||
kitty
|
|
||||||
libreoffice-fresh
|
|
||||||
logseq
|
|
||||||
mpv
|
|
||||||
nextcloud-client
|
|
||||||
nsxiv # Lightweight image viewer
|
|
||||||
qalculate-gtk # Calculator
|
|
||||||
spotify
|
|
||||||
unzip
|
|
||||||
vifm # File manager
|
|
||||||
zathura # PDF viewer
|
|
||||||
zellij # Tmux + screen alternative
|
|
||||||
zsh
|
|
||||||
zsh-autosuggestions
|
|
||||||
zsh-syntax-highlighting
|
|
||||||
|
|
||||||
# SMB
|
|
||||||
cifs-utils psmisc
|
|
||||||
|
|
||||||
# Linters and LSPs
|
|
||||||
statix # Nix
|
|
||||||
ruff pylint # Python
|
|
||||||
]);
|
|
||||||
|
|
||||||
pointerCursor = {
|
|
||||||
inherit (cursor) package name size;
|
|
||||||
gtk.enable = true;
|
|
||||||
x11.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# GNOME ricing
|
|
||||||
# Browse available settings by running:
|
|
||||||
# gsettings list-schemas | xargs -I % sh -c 'echo %; gsettings list-keys %' | less
|
|
||||||
dconf.settings = lib.mkIf config.sisyphus.desktop.gnome.enable {
|
|
||||||
"org/gnome/desktop/background" = {
|
|
||||||
picture-uri = "file:///home/tdpeuter/Nextcloud/Afbeeldingen/wallpapers/bg";
|
|
||||||
picture-uri-dark = "file:///home/tdpeuter/Nextcloud/Afbeeldingen/wallpapers/bg-dark";
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/interface" = {
|
|
||||||
enable-animations = false;
|
|
||||||
enable-hot-corners = false;
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/notifications" = {
|
|
||||||
show-in-lock-screen = false;
|
|
||||||
};
|
|
||||||
"org/gnome/desktop/peripherals.touchpad" = {
|
|
||||||
tap-to-click = true;
|
|
||||||
};
|
|
||||||
"org/gnome/mutter" = {
|
|
||||||
dynamic-workspaces = true;
|
|
||||||
workspaces-only-on-primary = false;
|
|
||||||
};
|
|
||||||
"org/gnome/shell/app-switcher" = {
|
|
||||||
current-workspace-only = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
cursorTheme = cursor;
|
|
||||||
};
|
|
||||||
|
|
||||||
xdg = {
|
|
||||||
desktopEntries.spotify = {
|
|
||||||
name = "Spotify";
|
|
||||||
genericName = "Music Player";
|
|
||||||
icon = "spotify-client";
|
|
||||||
exec = "env LD_PRELOAD=${pkgs.spotify-adblock}/lib/libspotifyadblock.so spotify %U";
|
|
||||||
mimeType = [ "x-scheme-handler/spotify" ];
|
|
||||||
categories = [ "Audio" "Music" "Player" "AudioVideo" ];
|
|
||||||
settings = {
|
|
||||||
TryExec = "spotify";
|
|
||||||
StartupWMClass = "spotify";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
mimeApps = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
defaultApplications = let
|
|
||||||
browser = "firefox.desktop";
|
|
||||||
image-viewer = "nsxiv.desktop";
|
|
||||||
pdf-viewer = "org.pwmt.zathura-pdf-mupdf.desktop";
|
|
||||||
in {
|
|
||||||
"application/pdf" = pdf-viewer;
|
|
||||||
"application/x-extension-htm" = browser;
|
|
||||||
"application/x-extension-html" = browser;
|
|
||||||
"application/x-extension-shtml" = browser;
|
|
||||||
"application/x-extension-xht" = browser;
|
|
||||||
"application/x-extension-xhtml" = browser;
|
|
||||||
"application/xhtml+xml" = browser;
|
|
||||||
"image/jpeg" = image-viewer;
|
|
||||||
"image/png" = image-viewer;
|
|
||||||
"image/webp" = image-viewer;
|
|
||||||
"text/html" = browser;
|
|
||||||
"x-scheme-handler/chrome" = browser;
|
|
||||||
"x-scheme-handler/http" = browser;
|
|
||||||
"x-scheme-handler/https" = browser;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,117 +0,0 @@
|
||||||
{ config, lib, pkgs, pkgs-unstable, ... }:
|
|
||||||
|
|
||||||
# Does basically the same thing that stow does, but using Nix.
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.users.tdpeuter;
|
|
||||||
user = config.users.users.tdpeuter.name;
|
|
||||||
installedPkgs = config.environment.systemPackages ++ config.home-manager.users.tdpeuter.home.packages;
|
|
||||||
in {
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable {
|
|
||||||
home = {
|
|
||||||
file = lib.mkMerge [
|
|
||||||
{
|
|
||||||
".config/alacritty" = {
|
|
||||||
enable = false;
|
|
||||||
source = ../../../stow/alacritty/.config/alacritty;
|
|
||||||
};
|
|
||||||
".config/dunst" = {
|
|
||||||
inherit (config.sisyphus.desktop.sway) enable;
|
|
||||||
source = ../../../stow/dunst/.config/dunst;
|
|
||||||
};
|
|
||||||
".config/foot" = {
|
|
||||||
recursive = true;
|
|
||||||
source = ../../../stow/foot/.config/foot;
|
|
||||||
};
|
|
||||||
".config/fuzzel" = {
|
|
||||||
recursive = true;
|
|
||||||
source = ../../../stow/fuzzel/.config/fuzzel;
|
|
||||||
};
|
|
||||||
".config/git" = {
|
|
||||||
recursive = true;
|
|
||||||
source = ../../../stow/git/.config/git;
|
|
||||||
};
|
|
||||||
".config/kitty" = {
|
|
||||||
enable = false;
|
|
||||||
recursive = true;
|
|
||||||
source = ../../../stow/kitty/.config/kitty;
|
|
||||||
};
|
|
||||||
".config/mako" = {
|
|
||||||
enable = false;
|
|
||||||
source = ../../../stow/mako/.config/mako;
|
|
||||||
};
|
|
||||||
".config/mpv" = {
|
|
||||||
source = ../../../stow/mpv/.config/mpv;
|
|
||||||
};
|
|
||||||
".config/OpenRGB" = {
|
|
||||||
inherit (config.sisyphus.services.openrgb) enable;
|
|
||||||
recursive = true;
|
|
||||||
source = ../../../stow/openrgb/.config/OpenRGB;
|
|
||||||
};
|
|
||||||
".config/sway" = {
|
|
||||||
inherit (config.sisyphus.desktop.sway) enable;
|
|
||||||
source = ../../../stow/sway/.config/sway;
|
|
||||||
};
|
|
||||||
".config/swayidle" = {
|
|
||||||
inherit (config.sisyphus.desktop.sway) enable;
|
|
||||||
source = ../../../stow/swayidle/.config/swayidle;
|
|
||||||
};
|
|
||||||
".config/swaylock" = {
|
|
||||||
inherit (config.sisyphus.desktop.sway) enable;
|
|
||||||
source = ../../../stow/swaylock/.config/swaylock;
|
|
||||||
};
|
|
||||||
".config/vifm" = {
|
|
||||||
recursive = true; # Fix history and all working
|
|
||||||
source = ../../../stow/vifm/.config/vifm;
|
|
||||||
};
|
|
||||||
".config/waybar" = {
|
|
||||||
inherit (config.sisyphus.desktop.sway) enable;
|
|
||||||
source = ../../../stow/waybar/.config/waybar;
|
|
||||||
};
|
|
||||||
".config/zellij" = {
|
|
||||||
source = ../../../stow/zellij/.config/zellij;
|
|
||||||
};
|
|
||||||
".oh-my-zsh" = {
|
|
||||||
enable = config.users.users.tdpeuter.shell == pkgs.zsh;
|
|
||||||
source = "${pkgs.oh-my-zsh}/share/oh-my-zsh";
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
".oh-my-zsh/themes/tdpeuter.zsh-theme" = {
|
|
||||||
enable = config.users.users.tdpeuter.shell == pkgs.zsh;
|
|
||||||
source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme;
|
|
||||||
};
|
|
||||||
".ssh/config" = lib.mkIf config.sisyphus.programs.ssh.enable {
|
|
||||||
inherit (config.sisyphus.programs.ssh) enable;
|
|
||||||
source = ../../../stow/ssh/.ssh/config;
|
|
||||||
};
|
|
||||||
".vim" = {
|
|
||||||
recursive = true;
|
|
||||||
source = ../../../stow/vim/.vim;
|
|
||||||
};
|
|
||||||
".vim/autoload/plug.vim" = {
|
|
||||||
source = "${pkgs.vimPlugins.vim-plug}/plug.vim";
|
|
||||||
};
|
|
||||||
".vimrc" = {
|
|
||||||
source = ../../../stow/vim/.vimrc;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
(lib.mkIf (config.users.users.tdpeuter.shell == pkgs.zsh) {
|
|
||||||
".zshrc" = {
|
|
||||||
source = ../../../stow/zsh/.zshrc;
|
|
||||||
};
|
|
||||||
".zsh/plugins/cmdtime/cmdtime.plugin.zsh" = {
|
|
||||||
source = "${pkgs.cmdtime}/share/cmdtime/cmdtime.plugin.zsh";
|
|
||||||
};
|
|
||||||
".zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh" = {
|
|
||||||
source = "${pkgs.zsh-autosuggestions}/share/zsh-autosuggestions/zsh-autosuggestions.zsh";
|
|
||||||
};
|
|
||||||
".zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" = {
|
|
||||||
source = "${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh";
|
|
||||||
};
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,66 +0,0 @@
|
||||||
{ config, lib, pkgs, pkgs-unstable, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.users.tdpeuter;
|
|
||||||
user = config.users.users.tdpeuter.name;
|
|
||||||
in {
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.tdpeuter.programs.firefox = lib.mkIf config.sisyphus.programs.home-manager.enable {
|
|
||||||
enable = true;
|
|
||||||
package = pkgs-unstable.firefox.override {
|
|
||||||
cfg = {
|
|
||||||
speechSynthesisSupport = true; # Allow Text-to-speech in e.g. Discord
|
|
||||||
};
|
|
||||||
nativeMessagingHosts = with pkgs; [
|
|
||||||
tridactyl-native
|
|
||||||
];
|
|
||||||
extraPolicies = {
|
|
||||||
DisableFirefoxStudies = true;
|
|
||||||
DisablePocket = true;
|
|
||||||
DisableTelemetry = true;
|
|
||||||
OfferToSaveLogins = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Support smart cards
|
|
||||||
pkcs11Modules = with pkgs-unstable; [
|
|
||||||
eid-mw
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
profiles.tdpeuter.search= {
|
|
||||||
default = "DuckDuckGo";
|
|
||||||
force = true;
|
|
||||||
engines = {
|
|
||||||
"Bing".metaData.hidden = true;
|
|
||||||
"eBay".metaData.hidden = true;
|
|
||||||
"Qwant".metaData.hidden = true;
|
|
||||||
|
|
||||||
"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" ];
|
|
||||||
};
|
|
||||||
"GitHub" = {
|
|
||||||
urls = [{
|
|
||||||
template = "https://github.com/search";
|
|
||||||
params = [
|
|
||||||
{ name = "q"; value = "{searchTerms}"; }
|
|
||||||
{ name = "type"; value = "repositories"; }
|
|
||||||
];
|
|
||||||
}];
|
|
||||||
|
|
||||||
icon = "${pkgs.icosystem}/share/icons/icosystem/scalable/apps/github-mark.svg";
|
|
||||||
definedAliases = [ "@gh" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,139 +0,0 @@
|
||||||
{ config, lib, pkgs, pkgs-unstable, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.users.tdpeuter;
|
|
||||||
user = config.users.users.tdpeuter.name;
|
|
||||||
signatures = {
|
|
||||||
default = ''
|
|
||||||
Met vriendelijke groeten
|
|
||||||
Tibo De Peuter
|
|
||||||
'';
|
|
||||||
UGent = ''
|
|
||||||
Met vriendelijke groeten
|
|
||||||
Tibo De Peuter
|
|
||||||
|
|
||||||
Student 2Ba/3Ba Informatica
|
|
||||||
'';
|
|
||||||
MrFortem = ''
|
|
||||||
Kind regards
|
|
||||||
MrFortem Fiducia
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
home-manager.users.tdpeuter = lib.mkIf config.sisyphus.programs.home-manager.enable {
|
|
||||||
accounts.email.accounts = {
|
|
||||||
Telenet = {
|
|
||||||
address = "tibo.depeuter@telenet.be";
|
|
||||||
userName = "tibo.depeuter@telenet.be";
|
|
||||||
imap = {
|
|
||||||
host = "imap.telenet.be";
|
|
||||||
port = 993;
|
|
||||||
tls.enable = true;
|
|
||||||
};
|
|
||||||
smtp = {
|
|
||||||
host = "smtp.telenet.be";
|
|
||||||
port = 587;
|
|
||||||
tls = {
|
|
||||||
enable = true;
|
|
||||||
useStartTls = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
realName = config.users.users.tdpeuter.description;
|
|
||||||
signature = {
|
|
||||||
showSignature = "append";
|
|
||||||
text = signatures.default;
|
|
||||||
};
|
|
||||||
|
|
||||||
primary = true;
|
|
||||||
thunderbird = {
|
|
||||||
enable = true;
|
|
||||||
settings = id: {
|
|
||||||
"mail.identity.id_${id}.htmlSigText" = signatures.default;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
UGent = {
|
|
||||||
flavor = "outlook.office365.com";
|
|
||||||
address = "tibo.depeuter@ugent.be";
|
|
||||||
|
|
||||||
realName = config.users.users.tdpeuter.description;
|
|
||||||
signature = {
|
|
||||||
showSignature = "append";
|
|
||||||
text = signatures.UGent;
|
|
||||||
};
|
|
||||||
|
|
||||||
thunderbird = {
|
|
||||||
enable = true;
|
|
||||||
settings = id: {
|
|
||||||
"mail.server.server_${id}.authMethod" = 10;
|
|
||||||
"mail.smtpserver.smtp_${id}.authMethod" = 10;
|
|
||||||
"mail.identity.id_${id}.htmlSigText" = signatures.UGent;
|
|
||||||
|
|
||||||
# Allow PGP
|
|
||||||
"mail.identity.id_${id}.openpgp_key_id" = "9B11F5243089DB5B"; # Your 'master' key
|
|
||||||
"mail.identity.id_${id}.attachPgpKey" = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
Gmail = {
|
|
||||||
flavor = "gmail.com";
|
|
||||||
address = "tibo.depeuter@gmail.com";
|
|
||||||
|
|
||||||
realName = config.users.users.tdpeuter.description;
|
|
||||||
signature = {
|
|
||||||
showSignature = "append";
|
|
||||||
text = signatures.default;
|
|
||||||
};
|
|
||||||
thunderbird = {
|
|
||||||
enable = true;
|
|
||||||
settings = id: {
|
|
||||||
"mail.identity.id_${id}.htmlSigText" = signatures.default;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
MrFortem = {
|
|
||||||
flavor = "gmail.com";
|
|
||||||
address = "fortemfiducia@gmail.com";
|
|
||||||
|
|
||||||
realName = "Fortem Fiducia";
|
|
||||||
signature = {
|
|
||||||
showSignature = "append";
|
|
||||||
text = signatures.MrFortem;
|
|
||||||
};
|
|
||||||
|
|
||||||
thunderbird = {
|
|
||||||
enable = true;
|
|
||||||
settings = id: {
|
|
||||||
"mail.server.server_${id}.directory" = ".thunderbird/tdpeuter/ImapMail/imap.gmail.com-mrfortem";
|
|
||||||
"mail.server.server_${id}.directory-rel" = "[ProfD]ImapMail/imap.gmail.com-mrfortem";
|
|
||||||
"mail.identity.id_${id}.htmlSigText" = signatures.MrFortem;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
thunderbird = {
|
|
||||||
enable = true;
|
|
||||||
profiles.tdpeuter = {
|
|
||||||
isDefault = true;
|
|
||||||
settings = {
|
|
||||||
# View
|
|
||||||
"mailnews.default_sort_order" = 2; # Sort descending
|
|
||||||
"mailnews.mark_message_read.delay" = true;
|
|
||||||
"mailnews.start_page.enabled" = false;
|
|
||||||
"mail.pane_config.dynamic" = 2; # Vertical view
|
|
||||||
|
|
||||||
# Encryption
|
|
||||||
"mail.openpgp.allow_external_gnupg" = true; # Enable YubiKey GPG signing
|
|
||||||
"mail.e2ee.auto_enable" = true; # Automatically enable encryption when possible.
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,34 +0,0 @@
|
||||||
{ config, lib, pkgs, pkgs-unstable, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.sisyphus.users.tdpeuter;
|
|
||||||
user = config.users.users.tdpeuter.name;
|
|
||||||
in {
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
sops.secrets = lib.mkIf config.sisyphus.programs.sops.enable (
|
|
||||||
let
|
|
||||||
Hugo = {
|
|
||||||
format = "yaml";
|
|
||||||
sopsFile = ../../secrets/Hugo.yaml;
|
|
||||||
owner = user;
|
|
||||||
};
|
|
||||||
UGent = {
|
|
||||||
format = "yaml";
|
|
||||||
sopsFile = ../../secrets/UGent.yaml;
|
|
||||||
owner = user;
|
|
||||||
};
|
|
||||||
in {
|
|
||||||
"Hugo/ssh" = Hugo;
|
|
||||||
"UGent/HPC/ssh" = UGent;
|
|
||||||
|
|
||||||
"GitHub/ssh" = {
|
|
||||||
format = "yaml";
|
|
||||||
sopsFile = ../../secrets/GitHub.yaml;
|
|
||||||
owner = user;
|
|
||||||
};
|
|
||||||
"Hugo/Gitea/ssh" = Hugo;
|
|
||||||
"UGent/GitHub/ssh" = UGent;
|
|
||||||
"UGent/SubGit/ssh" = UGent;
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,19 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# Script to toggle Do not disturb mode for dunst
|
|
||||||
|
|
||||||
# Get current state
|
|
||||||
if [ "$( command -v dunstctl )" ]; then
|
|
||||||
current_state="$( dunstctl is-paused )"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Toggle
|
|
||||||
if [ "${current_state}" == "false" ] ; then
|
|
||||||
notify-send 'Hiding notifications'
|
|
||||||
sleep 5
|
|
||||||
# makoctl set-mode do-not-disturb
|
|
||||||
dunstctl set-paused true
|
|
||||||
else
|
|
||||||
# makoctl set-mode default
|
|
||||||
dunstctl set-paused false
|
|
||||||
notify-send 'Showing notifications'
|
|
||||||
fi
|
|
|
@ -1,140 +0,0 @@
|
||||||
#!/usr/bin/env bash
|
|
||||||
# Toggle light- or dark-mode for your applications
|
|
||||||
# Usage: toggle [-m light|dark] [-g]
|
|
||||||
|
|
||||||
#################
|
|
||||||
### Variables ###
|
|
||||||
#################
|
|
||||||
|
|
||||||
THEME_LIGHT='tdpeuter-light'
|
|
||||||
THEME_DARK='tdpeuter-dark'
|
|
||||||
THEME_DEFAULT="${THEME_LIGHT}"
|
|
||||||
|
|
||||||
STATE_DIR="${HOME}/.local/state/sisyphus"
|
|
||||||
STATE_FILE="${STATE_DIR}/theme"
|
|
||||||
BG_DIR="${HOME}/Nextcloud/Afbeeldingen/wallpapers"
|
|
||||||
|
|
||||||
declare -A theme_next
|
|
||||||
theme_next[${THEME_LIGHT}]="${THEME_DARK}"
|
|
||||||
theme_next[${THEME_DARK}]="${THEME_LIGHT}"
|
|
||||||
|
|
||||||
declare -A gsettings_alt
|
|
||||||
gsettings_alt[${THEME_LIGHT}]='default'
|
|
||||||
gsettings_alt[${THEME_DARK}]='prefer-dark'
|
|
||||||
|
|
||||||
declare -A gtk_theme
|
|
||||||
gtk_theme[${THEME_LIGHT}]='Adwaita'
|
|
||||||
gtk_theme[${THEME_DARK}]='Adwaita-dark'
|
|
||||||
|
|
||||||
declare -A wallpaper
|
|
||||||
wallpaper[${THEME_LIGHT}]="bg-light"
|
|
||||||
wallpaper[${THEME_DARK}]="bg-dark"
|
|
||||||
|
|
||||||
#############
|
|
||||||
### Logic ###
|
|
||||||
#############
|
|
||||||
|
|
||||||
# Parse options
|
|
||||||
while getopts ":m:g" option; do
|
|
||||||
case "${option}" in
|
|
||||||
m)
|
|
||||||
if [ "${OPTARG}" == 'light' ]; then
|
|
||||||
theme="${THEME_LIGHT}"
|
|
||||||
elif [ "${OPTARG}" == 'dark' ]; then
|
|
||||||
theme="${THEME_DARK}"
|
|
||||||
else
|
|
||||||
>&2 printf "Error: Invalid mode: '%s'.\nShould be either 'light' or 'dark'\n" "${option}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
g)
|
|
||||||
previous_theme="$(cat ${STATE_FILE})"
|
|
||||||
if [ "${previous_theme}" == "${THEME_LIGHT}" ]; then
|
|
||||||
class="activated"
|
|
||||||
percentage=1
|
|
||||||
else
|
|
||||||
percentage=0
|
|
||||||
fi
|
|
||||||
printf '{ "class": "%s", "percentage": %d }' "${class}" "${percentage}"
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
>&2 printf "Error: Invalid option: '%s'.\n" "${option}"
|
|
||||||
exit 1
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
shift $(( OPTIND - 1 ))
|
|
||||||
|
|
||||||
# Check if the state file exists
|
|
||||||
if ! [ -d "$(dirname ${STATE_FILE})" ]; then
|
|
||||||
mkdir -p "$(dirname ${STATE_FILE})"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Choose next theme
|
|
||||||
previous_theme="$(cat ${STATE_FILE})"
|
|
||||||
if ! [[ -z "${previous_theme}" || "${theme}" ]]; then
|
|
||||||
theme="${theme_next[${previous_theme}]}"
|
|
||||||
fi
|
|
||||||
echo "${theme:=${THEME_DEFAULT}}" > "${STATE_FILE}"
|
|
||||||
|
|
||||||
######################
|
|
||||||
### Set all themes ###
|
|
||||||
######################
|
|
||||||
|
|
||||||
# Update terminal colors by sending it OSC sequences.
|
|
||||||
# Alternatively, you could use theme.sh (https://github.com/lemnos/theme.sh)
|
|
||||||
# Function below loosely based on theme.sh and https://codeberg.org/dnkl/foot/issues/708
|
|
||||||
function update_terminal_colors() {
|
|
||||||
for pid in $(pgrep zsh); do
|
|
||||||
if [ "${theme}" == "${THEME_LIGHT}" ]; then
|
|
||||||
printf "\033]10;#000000\007" >> /proc/${pid}/fd/0
|
|
||||||
printf "\033]11;#ffffff\007" >> /proc/${pid}/fd/0
|
|
||||||
elif [ "${theme}" == "${THEME_DARK}" ]; then
|
|
||||||
printf "\033]10;#ffffff\007" >> /proc/${pid}/fd/0
|
|
||||||
printf "\033]11;#000000\007" >> /proc/${pid}/fd/0
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Foot
|
|
||||||
if [ "$(command -v foot)" ] ; then
|
|
||||||
# Make color theme switch 'permanent'.
|
|
||||||
echo "include=~/.config/foot/themes/${theme}.ini" > ~/.config/foot/theme.ini &
|
|
||||||
# We will have to change the terminal colors ourselves.
|
|
||||||
update_terminal_colors &
|
|
||||||
fi
|
|
||||||
|
|
||||||
# GNOME (GTK)
|
|
||||||
if [ "$(command -v gsettings)" ]; then
|
|
||||||
gsettings set org.gnome.desktop.interface color-scheme "${gsettings_alt[${theme}]}" &
|
|
||||||
gsettings set org.gnome.desktop.interface gtk-theme "${gtk_theme[${theme}]}" &
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Kitty
|
|
||||||
if [ "$(command -v kitty)" ]; then
|
|
||||||
kitten themes --reload-in all --config-file-name theme.conf "${theme}" &
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Sway
|
|
||||||
if [ "$(command -v swaybg)" ]; then
|
|
||||||
bg_path="${BG_DIR}/${wallpaper[${theme}]}"
|
|
||||||
/run/current-system/sw/bin/cp "${bg_path}" "${STATE_DIR}/bg" && swaymsg reload &
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Vifm
|
|
||||||
if [ "$(command -v vifm)" ]; then
|
|
||||||
echo "colorscheme ${theme} Default-256 Default" > ~/.config/vifm/theme.conf
|
|
||||||
# Update all running instances
|
|
||||||
vifm --remote -c "colorscheme ${theme}" &
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Vim
|
|
||||||
if [ "$(command -v vim)" ]; then
|
|
||||||
echo "colorscheme ${theme}" > ~/.vim/theme.conf
|
|
||||||
# Update all running instances
|
|
||||||
for server in $(vim --serverlist); do
|
|
||||||
vim --servername "${server}" --remote-send "<C-\><C-N>:colorscheme ${theme}<CR>"
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
|
@ -102,41 +102,41 @@ window:
|
||||||
#multiplier: 3
|
#multiplier: 3
|
||||||
|
|
||||||
# Font configuration
|
# Font configuration
|
||||||
font:
|
# font:
|
||||||
# Normal (roman) font face
|
# Normal (roman) font face
|
||||||
normal:
|
# normal:
|
||||||
# Font family
|
# Font family
|
||||||
#
|
#
|
||||||
# Default:
|
# Default:
|
||||||
# - (macOS) Menlo
|
# - (macOS) Menlo
|
||||||
# - (Linux/BSD) monospace
|
# - (Linux/BSD) monospace
|
||||||
# - (Windows) Consolas
|
# - (Windows) Consolas
|
||||||
family: Letter
|
# family: Letter
|
||||||
|
|
||||||
# The `style` can be specified to pick a specific face.
|
# The `style` can be specified to pick a specific face.
|
||||||
style: Extended
|
# style: Extended
|
||||||
|
|
||||||
# Bold font face
|
# Bold font face
|
||||||
bold:
|
# bold:
|
||||||
# Font family
|
# Font family
|
||||||
#
|
#
|
||||||
# If the bold family is not specified, it will fall back to the
|
# If the bold family is not specified, it will fall back to the
|
||||||
# value specified for the normal font.
|
# value specified for the normal font.
|
||||||
family: Letter
|
# family: Letter
|
||||||
|
|
||||||
# The `style` can be specified to pick a specific face.
|
# The `style` can be specified to pick a specific face.
|
||||||
style: Heavy
|
# style: Heavy
|
||||||
|
|
||||||
# Italic font face
|
# Italic font face
|
||||||
italic:
|
# italic:
|
||||||
# Font family
|
# Font family
|
||||||
#
|
#
|
||||||
# If the italic family is not specified, it will fall back to the
|
# If the italic family is not specified, it will fall back to the
|
||||||
# value specified for the normal font.
|
# value specified for the normal font.
|
||||||
family: Letter
|
# family: Letter
|
||||||
|
|
||||||
# The `style` can be specified to pick a specific face.
|
# The `style` can be specified to pick a specific face.
|
||||||
style: Oblique
|
# style: Oblique
|
||||||
|
|
||||||
# Bold italic font face
|
# Bold italic font face
|
||||||
#bold_italic:
|
#bold_italic:
|
||||||
|
|
|
@ -1,229 +0,0 @@
|
||||||
# -*- conf -*-
|
|
||||||
# ~/.config/foot/foot.ini
|
|
||||||
|
|
||||||
# Include the correct color scheme
|
|
||||||
include=~/.config/foot/theme.ini
|
|
||||||
|
|
||||||
# shell=$SHELL (if set, otherwise user's default shell from /etc/passwd)
|
|
||||||
term=xterm-256color
|
|
||||||
# login-shell=no
|
|
||||||
|
|
||||||
# app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode
|
|
||||||
# title=foot
|
|
||||||
# locked-title=no
|
|
||||||
|
|
||||||
font=letter extended:size=10
|
|
||||||
# font-bold=<bold variant of regular font>
|
|
||||||
# font-italic=<italic variant of regular font>
|
|
||||||
# font-bold-italic=<bold+italic variant of regular font>
|
|
||||||
# font-size-adjustment=0.5
|
|
||||||
# line-height=<font metrics>
|
|
||||||
# letter-spacing=0
|
|
||||||
# horizontal-letter-offset=0
|
|
||||||
# vertical-letter-offset=0
|
|
||||||
# underline-offset=<font metrics>
|
|
||||||
# underline-thickness=<font underline thickness>
|
|
||||||
# box-drawings-uses-font-glyphs=no
|
|
||||||
dpi-aware=yes
|
|
||||||
|
|
||||||
# initial-window-size-pixels=700x500 # Or,
|
|
||||||
# initial-window-size-chars=<COLSxROWS>
|
|
||||||
# initial-window-mode=windowed
|
|
||||||
pad=10x10 # optionally append 'center'
|
|
||||||
# resize-delay-ms=100
|
|
||||||
|
|
||||||
# notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body}
|
|
||||||
|
|
||||||
# bold-text-in-bright=no
|
|
||||||
# word-delimiters=,│`|:"'()[]{}<>
|
|
||||||
# selection-target=primary
|
|
||||||
# workers=<number of logical CPUs>
|
|
||||||
# utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux)
|
|
||||||
# utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD)
|
|
||||||
|
|
||||||
[environment]
|
|
||||||
# name=value
|
|
||||||
|
|
||||||
[bell]
|
|
||||||
urgent=yes
|
|
||||||
notify=yes
|
|
||||||
visual=yes
|
|
||||||
# command=
|
|
||||||
# command-focused=no
|
|
||||||
|
|
||||||
[scrollback]
|
|
||||||
# lines=1000
|
|
||||||
# multiplier=3.0
|
|
||||||
# indicator-position=relative
|
|
||||||
# indicator-format=""
|
|
||||||
|
|
||||||
[url]
|
|
||||||
# launch=xdg-open ${url}
|
|
||||||
# label-letters=sadfjklewcmpgh
|
|
||||||
# osc8-underline=url-mode
|
|
||||||
# protocols=http, https, ftp, ftps, file, gemini, gopher
|
|
||||||
# uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[]
|
|
||||||
|
|
||||||
[cursor]
|
|
||||||
# style=block
|
|
||||||
# color=<inverse foreground/background>
|
|
||||||
# blink=no
|
|
||||||
# beam-thickness=1.5
|
|
||||||
# underline-thickness=<font underline thickness>
|
|
||||||
|
|
||||||
[mouse]
|
|
||||||
# hide-when-typing=no
|
|
||||||
# alternate-scroll-mode=yes
|
|
||||||
|
|
||||||
[touch]
|
|
||||||
# long-press-delay=400
|
|
||||||
|
|
||||||
[colors]
|
|
||||||
alpha=0.8
|
|
||||||
# background=242424
|
|
||||||
# foreground=ffffff
|
|
||||||
flash=b00020
|
|
||||||
# flash-alpha=0.5
|
|
||||||
|
|
||||||
## Normal/regular colors (color palette 0-7)
|
|
||||||
# regular0=242424 # black
|
|
||||||
# regular1=f62b5a # red
|
|
||||||
# regular2=47b413 # green
|
|
||||||
# regular3=e3c401 # yellow
|
|
||||||
# regular4=24acd4 # blue
|
|
||||||
# regular5=f2affd # magenta
|
|
||||||
# regular6=13c299 # cyan
|
|
||||||
# regular7=e6e6e6 # white
|
|
||||||
|
|
||||||
## Bright colors (color palette 8-15)
|
|
||||||
# bright0=616161 # bright black
|
|
||||||
# bright1=ff4d51 # bright red
|
|
||||||
# bright2=35d450 # bright green
|
|
||||||
# bright3=e9e836 # bright yellow
|
|
||||||
# bright4=5dc5f8 # bright blue
|
|
||||||
# bright5=feabf2 # bright magenta
|
|
||||||
# bright6=24dfc4 # bright cyan
|
|
||||||
# bright7=ffffff # bright white
|
|
||||||
|
|
||||||
## dimmed colors (see foot.ini(5) man page)
|
|
||||||
# dim0=<not set>
|
|
||||||
# ...
|
|
||||||
# dim7=<not-set>
|
|
||||||
|
|
||||||
## The remaining 256-color palette
|
|
||||||
# 16 = <256-color palette #16>
|
|
||||||
# ...
|
|
||||||
# 255 = <256-color palette #255>
|
|
||||||
|
|
||||||
## Misc colors
|
|
||||||
# selection-foreground=<inverse foreground/background>
|
|
||||||
# selection-background=<inverse foreground/background>
|
|
||||||
# jump-labels=<regular0> <regular3> # black-on-yellow
|
|
||||||
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
|
|
||||||
# search-box-no-match=<regular0> <regular1> # black-on-red
|
|
||||||
# search-box-match=<regular0> <regular3> # black-on-yellow
|
|
||||||
# urls=<regular3>
|
|
||||||
|
|
||||||
[csd]
|
|
||||||
preferred=none
|
|
||||||
# size=26
|
|
||||||
# font=<primary font>
|
|
||||||
# color=<foreground color>
|
|
||||||
# hide-when-maximized=no
|
|
||||||
# double-click-to-maximize=yes
|
|
||||||
# border-width=0
|
|
||||||
# border-color=<csd.color>
|
|
||||||
# button-width=26
|
|
||||||
# button-color=<background color>
|
|
||||||
# button-minimize-color=<regular4>
|
|
||||||
# button-maximize-color=<regular2>
|
|
||||||
# button-close-color=<regular1>
|
|
||||||
|
|
||||||
[key-bindings]
|
|
||||||
# scrollback-up-page=Shift+Page_Up
|
|
||||||
# scrollback-up-half-page=none
|
|
||||||
# scrollback-up-line=none
|
|
||||||
# scrollback-down-page=Shift+Page_Down
|
|
||||||
# scrollback-down-half-page=none
|
|
||||||
# scrollback-down-line=none
|
|
||||||
# scrollback-home=none
|
|
||||||
# scrollback-end=none
|
|
||||||
# clipboard-copy=Control+Shift+c XF86Copy
|
|
||||||
# clipboard-paste=Control+Shift+v XF86Paste
|
|
||||||
# primary-paste=Shift+Insert
|
|
||||||
# search-start=Control+Shift+r
|
|
||||||
# font-increase=Control+plus Control+equal Control+KP_Add
|
|
||||||
# font-decrease=Control+minus Control+KP_Subtract
|
|
||||||
# font-reset=Control+0 Control+KP_0
|
|
||||||
# spawn-terminal=Control+Shift+n
|
|
||||||
# minimize=none
|
|
||||||
# maximize=none
|
|
||||||
# fullscreen=none
|
|
||||||
# pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
|
||||||
# pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none
|
|
||||||
# pipe-selected=[xargs -r firefox] none
|
|
||||||
# show-urls-launch=Control+Shift+o
|
|
||||||
# show-urls-copy=none
|
|
||||||
# show-urls-persistent=none
|
|
||||||
# prompt-prev=Control+Shift+z
|
|
||||||
# prompt-next=Control+Shift+x
|
|
||||||
# unicode-input=Control+Shift+u
|
|
||||||
# noop=none
|
|
||||||
|
|
||||||
[search-bindings]
|
|
||||||
# cancel=Control+g Control+c Escape
|
|
||||||
# commit=Return
|
|
||||||
# find-prev=Control+r
|
|
||||||
# find-next=Control+s
|
|
||||||
# cursor-left=Left Control+b
|
|
||||||
# cursor-left-word=Control+Left Mod1+b
|
|
||||||
# cursor-right=Right Control+f
|
|
||||||
# cursor-right-word=Control+Right Mod1+f
|
|
||||||
# cursor-home=Home Control+a
|
|
||||||
# cursor-end=End Control+e
|
|
||||||
# delete-prev=BackSpace
|
|
||||||
# delete-prev-word=Mod1+BackSpace Control+BackSpace
|
|
||||||
# delete-next=Delete
|
|
||||||
# delete-next-word=Mod1+d Control+Delete
|
|
||||||
# extend-char=Shift+Right
|
|
||||||
# extend-to-word-boundary=Control+w Control+Shift+Right
|
|
||||||
# extend-to-next-whitespace=Control+Shift+w
|
|
||||||
# extend-line-down=Shift+Down
|
|
||||||
# extend-backward-char=Shift+Left
|
|
||||||
# extend-backward-to-word-boundary=Control+Shift+Left
|
|
||||||
# extend-backward-to-next-whitespace=none
|
|
||||||
# extend-line-up=Shift+Up
|
|
||||||
# clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste
|
|
||||||
# primary-paste=Shift+Insert
|
|
||||||
# unicode-input=none
|
|
||||||
# scrollback-up-page=Shift+Page_Up
|
|
||||||
# scrollback-up-half-page=none
|
|
||||||
# scrollback-up-line=none
|
|
||||||
# scrollback-down-page=Shift+Page_Down
|
|
||||||
# scrollback-down-half-page=none
|
|
||||||
# scrollback-down-line=none
|
|
||||||
# scrollback-home=none
|
|
||||||
# scrollback-end=none
|
|
||||||
|
|
||||||
[url-bindings]
|
|
||||||
# cancel=Control+g Control+c Control+d Escape
|
|
||||||
# toggle-url-visible=t
|
|
||||||
|
|
||||||
[text-bindings]
|
|
||||||
# \x03=Mod4+c # Map Super+c -> Ctrl+c
|
|
||||||
|
|
||||||
[mouse-bindings]
|
|
||||||
# scrollback-up-mouse=BTN_BACK
|
|
||||||
# scrollback-down-mouse=BTN_FORWARD
|
|
||||||
# selection-override-modifiers=Shift
|
|
||||||
# primary-paste=BTN_MIDDLE
|
|
||||||
# select-begin=BTN_LEFT
|
|
||||||
# select-begin-block=Control+BTN_LEFT
|
|
||||||
# select-extend=BTN_RIGHT
|
|
||||||
# select-extend-character-wise=Control+BTN_RIGHT
|
|
||||||
# select-word=BTN_LEFT-2
|
|
||||||
# select-word-whitespace=Control+BTN_LEFT-2
|
|
||||||
# select-quote = BTN_LEFT-3
|
|
||||||
# select-row=BTN_LEFT-4
|
|
||||||
|
|
||||||
# vim: ft=dosini
|
|
|
@ -1,64 +0,0 @@
|
||||||
[colors]
|
|
||||||
# alpha=0.8
|
|
||||||
background=171717
|
|
||||||
foreground=dcdfe4
|
|
||||||
# flash=b00020
|
|
||||||
# flash-alpha=0.5
|
|
||||||
|
|
||||||
## Normal/regular colors (color palette 0-7)
|
|
||||||
regular0=242424 # black
|
|
||||||
# regular0=21222c
|
|
||||||
# regular1=f62b5a # red
|
|
||||||
regular1=c86564
|
|
||||||
regular2=47b413 # green
|
|
||||||
# regular2=b2bc68
|
|
||||||
regular3=e3c401 # yellow
|
|
||||||
# regular3=f7e03f
|
|
||||||
# regular4=24acd4 # blue
|
|
||||||
regular4=80a2be
|
|
||||||
regular5=f2affd # magenta
|
|
||||||
# color5 #b294bb
|
|
||||||
# regular6=13c299 # cyan
|
|
||||||
regular6=8abeb7
|
|
||||||
regular7=e6e6e6 # white
|
|
||||||
# regular7=ffffff
|
|
||||||
|
|
||||||
## Bright colors (color palette 8-15)
|
|
||||||
# bright0=616161 # bright black
|
|
||||||
# bright0=6272a4
|
|
||||||
# bright1=ff4d51 # bright red
|
|
||||||
# color9 #C86564
|
|
||||||
# bright2=35d450 # bright green
|
|
||||||
# color10 #B2BC68
|
|
||||||
# bright3=e9e836 # bright yellow
|
|
||||||
# color11 #f7e03f
|
|
||||||
# bright4=5dc5f8 # bright blue
|
|
||||||
# color12 #80A2BE
|
|
||||||
# bright5=feabf2 # bright magenta
|
|
||||||
# bright5=b294bb
|
|
||||||
# bright6=24dfc4 # bright cyan
|
|
||||||
# bright6=8abeb7
|
|
||||||
bright7=ffffff # bright white
|
|
||||||
|
|
||||||
## dimmed colors (see foot.ini(5) man page)
|
|
||||||
# dim0=<not set>
|
|
||||||
# ...
|
|
||||||
# dim7=<not-set>
|
|
||||||
|
|
||||||
## The remaining 256-color palette
|
|
||||||
# 16 = <256-color palette #16>
|
|
||||||
# ...
|
|
||||||
# 255 = <256-color palette #255>
|
|
||||||
|
|
||||||
## Misc colors
|
|
||||||
# selection-foreground=<inverse foreground/background>
|
|
||||||
# selection-foreground=000000
|
|
||||||
# selection-background=<inverse foreground/background>
|
|
||||||
# selection-background=fffacd
|
|
||||||
# jump-labels=<regular0> <regular3> # black-on-yellow
|
|
||||||
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
|
|
||||||
# search-box-no-match=<regular0> <regular1> # black-on-red
|
|
||||||
# search-box-match=<regular0> <regular3> # black-on-yellow
|
|
||||||
# urls=<regular3>
|
|
||||||
urls=0087bd
|
|
||||||
|
|
|
@ -1,64 +0,0 @@
|
||||||
[colors]
|
|
||||||
# alpha=0.8
|
|
||||||
background=fafafa
|
|
||||||
foreground=000000
|
|
||||||
# flash=b00020
|
|
||||||
# flash-alpha=0.5
|
|
||||||
|
|
||||||
## Normal/regular colors (color palette 0-7)
|
|
||||||
# regular0=242424 # black
|
|
||||||
# color0 #383A42
|
|
||||||
# regular1=f62b5a # red
|
|
||||||
# color1 #E45649
|
|
||||||
# regular2=47b413 # green
|
|
||||||
# color2 #40A14F
|
|
||||||
# regular3=e3c401 # yellow
|
|
||||||
# color3 #C18401
|
|
||||||
# regular4=24acd4 # blue
|
|
||||||
regular4=0184bc
|
|
||||||
# regular5=f2affd # magenta
|
|
||||||
# color5 #A626A4
|
|
||||||
# regular6=13c299 # cyan
|
|
||||||
# color6 #0997B3
|
|
||||||
# regular7=e6e6e6 # white
|
|
||||||
# color7 #FAFAFA
|
|
||||||
|
|
||||||
## Bright colors (color palette 8-15)
|
|
||||||
# bright0=616161 # bright black
|
|
||||||
# color8 #6272a4
|
|
||||||
# bright1=ff4d51 # bright red
|
|
||||||
# color9 #E45649
|
|
||||||
# bright2=35d450 # bright green
|
|
||||||
# color10 #40A14F
|
|
||||||
# bright3=e9e836 # bright yellow
|
|
||||||
# color11 #C18401
|
|
||||||
# bright4=5dc5f8 # bright blue
|
|
||||||
# color12 #0184BC
|
|
||||||
# bright5=feabf2 # bright magenta
|
|
||||||
# color13 #A626A4
|
|
||||||
# bright6=24dfc4 # bright cyan
|
|
||||||
# color14 #0997B3
|
|
||||||
# bright7=ffffff # bright white
|
|
||||||
# color15 #FAFAFA
|
|
||||||
|
|
||||||
## dimmed colors (see foot.ini(5) man page)
|
|
||||||
# dim0=<not set>
|
|
||||||
# ...
|
|
||||||
# dim7=<not-set>
|
|
||||||
|
|
||||||
## The remaining 256-color palette
|
|
||||||
# 16 = <256-color palette #16>
|
|
||||||
# ...
|
|
||||||
# 255 = <256-color palette #255>
|
|
||||||
|
|
||||||
## Misc colors
|
|
||||||
# selection-foreground=<inverse foreground/background>
|
|
||||||
selection-foreground=383a42
|
|
||||||
# selection-background=<inverse foreground/background>
|
|
||||||
selection-background=bfceff
|
|
||||||
# jump-labels=<regular0> <regular3> # black-on-yellow
|
|
||||||
# scrollback-indicator=<regular0> <bright4> # black-on-bright-blue
|
|
||||||
# search-box-no-match=<regular0> <regular1> # black-on-red
|
|
||||||
# search-box-match=<regular0> <regular3> # black-on-yellow
|
|
||||||
urls=f0f0f0
|
|
||||||
|
|
|
@ -1,28 +0,0 @@
|
||||||
[user]
|
|
||||||
name = "Tibo De Peuter"
|
|
||||||
email = "tibo@depeuter.dev"
|
|
||||||
signingkey = "0x9B11F5243089DB5B"
|
|
||||||
|
|
||||||
[color]
|
|
||||||
ui = true
|
|
||||||
|
|
||||||
[commit]
|
|
||||||
# Always sign commits
|
|
||||||
gpgsign = true
|
|
||||||
|
|
||||||
[core]
|
|
||||||
editor = "vim";
|
|
||||||
excludesFile = "~/.config/git/ignore"
|
|
||||||
|
|
||||||
[help]
|
|
||||||
autocorrect = 15
|
|
||||||
|
|
||||||
[includeIf "gitdir:~/university/"] # Trailing backslash is necessary!
|
|
||||||
path = "~/.config/git/university"
|
|
||||||
|
|
||||||
[init]
|
|
||||||
defaultBranch = "main"
|
|
||||||
|
|
||||||
[safe]
|
|
||||||
directory = "/home/tdpeuter/university/sshfs"
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
*~
|
|
||||||
.*.swp
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue