Compare commits
1 commit
| Author | SHA1 | Date | |
|---|---|---|---|
| 7e84a60ae6 |
161 changed files with 4947 additions and 19467 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
|
||||
2
.gitignore
vendored
2
.gitignore
vendored
|
|
@ -1,3 +1 @@
|
|||
result
|
||||
|
||||
.idea
|
||||
|
|
|
|||
20
README.md
20
README.md
|
|
@ -1,22 +1,18 @@
|
|||
# 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.
|
||||
|
||||
## 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.
|
||||
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.
|
||||
|
||||
- [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
|
||||
# Syntaxis: notify [-vb] [-t <timeout>] [-p <value>] [<title> <message>]
|
||||
|
||||
# Requirements/dependencies:
|
||||
# - amixer
|
||||
# Requirements:
|
||||
# - brightnessctl
|
||||
# - libnotify (notify-send)
|
||||
|
||||
panic () {
|
||||
>&2 echo "Syntaxis: notify [-vb] [-t <timeout>] [-p <value>] [<title> <message>]"
|
||||
|
|
@ -23,14 +21,14 @@ while getopts ":bvt:p:" options; do
|
|||
v)
|
||||
# Get volume (don't use pamixer because that is way slower)
|
||||
value=$( pactl get-sink-volume @DEFAULT_SINK@ \
|
||||
| cut -d '/' -f2 \
|
||||
| grep -o '[0-9]*%' \
|
||||
| tr -d '%' \
|
||||
| head -n1 )
|
||||
| tr -d '%' )
|
||||
title="Volume: ${value}%"
|
||||
category='sysinfo'
|
||||
|
||||
# If audio disabled, set value to zero.
|
||||
if [ "$( pactl get-sink-mute @DEFAULT_SINK@ | grep -o '\(yes\|no\)' | head -n1 )" == 'yes' ] ; then
|
||||
if [ "$( pactl get-sink-mute @DEFAULT_SINK@ )" == "Mute: yes" ] ; then
|
||||
title="Volume: ${value}% (Disabled)"
|
||||
value=0
|
||||
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
|
||||
# Start wlsunset right away.
|
||||
wlsunset -l 50.50 -L 4.00 -t 3000 -T 6500 &
|
||||
wlsunset -l 50 -L 4 -t 2500 &
|
||||
else
|
||||
# Currently stop wlsunset but restart in an hour.
|
||||
kill ${pid}
|
||||
notify-send 'Stopping sunset' 'Restarting in an hour'
|
||||
at now +1 hours -f "${0}"
|
||||
~/.scripts/notify.sh 'Stopping sunset' 'Restarting in an hour'
|
||||
at now +1 hours -f ~/.scripts/wlsunset.sh
|
||||
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
|
||||
dpi-aware=yes
|
||||
icon-theme=Icosystem
|
||||
terminal=kitty -e
|
||||
icon-theme=Win11-black
|
||||
terminal=alacritty -e
|
||||
output=eDP-1
|
||||
|
||||
lines=10
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 112 KiB |
225
colors.sh
225
colors.sh
|
|
@ -1,225 +0,0 @@
|
|||
# tdpeuter color schemes
|
||||
# The goal is to offer light and dark theme that is easy on the eyes,
|
||||
# whilst also being unique and defining.
|
||||
|
||||
###############################
|
||||
# tdpeuter-light color scheme #
|
||||
###############################
|
||||
|
||||
# 171717 # Foreground
|
||||
# FAFAFA # Daisy (Background)
|
||||
|
||||
# Regular colors (0-7)
|
||||
|
||||
# 000000 # Black (0)
|
||||
# 1
|
||||
# 2
|
||||
# 3
|
||||
# 4
|
||||
# 5
|
||||
# 6
|
||||
# 7
|
||||
|
||||
# Bright colors (8-15)
|
||||
|
||||
# 000000 # Black (8)
|
||||
# 9
|
||||
# 10
|
||||
# 11
|
||||
# 12
|
||||
# 13
|
||||
# 14
|
||||
# 15
|
||||
|
||||
##############################
|
||||
# tdpeuter-dark color scheme #
|
||||
##############################
|
||||
|
||||
# FAFAFA # Daisy (Foreground)
|
||||
printf "\033]10;#FAFAFA\007"
|
||||
# 171717 # Background
|
||||
printf "\033]11;#171717\007"
|
||||
|
||||
# Regular colors (0-7)
|
||||
|
||||
# 242124 # Black 0
|
||||
printf "\033]4;0;#242124\007"
|
||||
# B90E0A # Crimson (Red) 1
|
||||
printf "\033]4;1;#B90E0A\007"
|
||||
# B2BC68 # Leafy (Green) 2
|
||||
printf "\033]4;2;#B2BC68\007"
|
||||
# FFE135 # Banana (Yellow) 3
|
||||
printf "\033]4;3;#FFE135\007"
|
||||
# 80A2BE # Icicle (Blue) 4
|
||||
printf "\033]4;4;#80A2BE\007"
|
||||
# A45EE5 # Amethyst (Magenta) 5
|
||||
printf "\033]4;5;#A45EE5\007"
|
||||
# # (Cyan) 6
|
||||
printf "\033]4;6;#80A2BE\007"
|
||||
# FBFCF8 # Pearl (White) 7
|
||||
printf "\033]4;7;#FBFCF8\007"
|
||||
|
||||
# Bright colors (8-15)
|
||||
|
||||
# 363636 # Grey-isch (Black) 8
|
||||
printf "\033]4;8;#363636\007"
|
||||
# BC544B # Blush (Red) 9
|
||||
printf "\033]4;9;#BC544B\007"
|
||||
# A6E3A1 # Lime (Green) 10
|
||||
printf "\033]4;10;#A6E3A1\007"
|
||||
# FCF4A3 # Banana (Yellow) 11
|
||||
printf "\033]4;11;#FCF4A3\007"
|
||||
# 74C7EC # Sapphire (Blue) 12
|
||||
printf "\033]4;12;#74C7EC\007"
|
||||
# B4BEFE # Lavender (Magenta) 13
|
||||
# #CBA6F7
|
||||
printf "\033]4;13;#B4BEFE\007"
|
||||
# # (Cyan) 14
|
||||
printf "\033]4;14;#74C7EC\007"
|
||||
# FFFFFF # White 15
|
||||
printf "\033]4;15;#FFFFFF\007"
|
||||
|
||||
|
||||
# NEW COLORS 20241101
|
||||
#
|
||||
# Nr # R G B H S B # Name
|
||||
# FG # 250 250 250 0 0 98 # Daisy (White)
|
||||
printf "\033]10;#FAFAFA\007"
|
||||
# BG # 19 19 19 0 0 7 # -
|
||||
printf "\033]11;#131313\007"
|
||||
|
||||
# Regular colors (0-7)
|
||||
|
||||
# Nr # R G B H S B # Name
|
||||
# 0 # 61 61 61 0 0 24 # - (Black)
|
||||
printf "\033]4;0;#3D3D3D\007"
|
||||
# 1 # 186 19 61 345 90 73 # - (Red)
|
||||
printf "\033]4;1;#BA133D\007"
|
||||
# 2 # 61 186 19 105 90 73 # - (Green)
|
||||
printf "\033]4;2;#3DBA13\007"
|
||||
# 3 # 186 144 19 45 90 73 # - (Yellow)
|
||||
printf "\033]4;3;#BA9013\007"
|
||||
# 4 # 19 61 186 225 90 73 # - (Blue)
|
||||
printf "\033]4;4;#133DBA\007"
|
||||
# 5 # 144 19 186 285 90 73 # - (Magenta)
|
||||
printf "\033]4;5;#9013BA\007"
|
||||
# 6 # 19 186 144 165 90 73 # - (Cyan)
|
||||
printf "\033]4;6;#13BA90\007"
|
||||
# 7 # 186 186 186 0 0 73 # - (White)
|
||||
printf "\033]4;7;#BABABA\007"
|
||||
|
||||
# Bright colors (8-15)
|
||||
|
||||
# Nr # R G B H S B # Name
|
||||
# 8 # 122 122 122 0 0 48 # - (Black)
|
||||
printf "\033]4;8;#363636\007"
|
||||
# 9 # 250 25 81 345 90 98 # - (Red)
|
||||
printf "\033]4;9;#FA1951\007"
|
||||
# 10 # 81 250 25 105 90 98 # - (Green)
|
||||
printf "\033]4;10;#51FA19\007"
|
||||
# 11 # 250 194 25 45 90 98 # - (Yellow)
|
||||
printf "\033]4;11;#FAC219\007"
|
||||
# 12 # 25 81 250 225 90 98 # - (Blue)
|
||||
printf "\033]4;12;#1951FA\007"
|
||||
# 13 # 194 25 250 285 90 98 # - (Magenta)
|
||||
printf "\033]4;13;#C219FA\007"
|
||||
# 14 # 25 259 194 165 90 98 # - (Cyan)
|
||||
printf "\033]4;14;#19FAC2\007"
|
||||
# 15 # 250 250 250 0 0 98 # - (White)
|
||||
printf "\033]4;15;#FAFAFA\007"
|
||||
|
||||
# BRIGHTER
|
||||
#
|
||||
# Nr # R G B H S B # Name
|
||||
# FG # 250 250 250 0 0 98 # Daisy (White)
|
||||
printf "\033]11;#FAFAFA\007"
|
||||
# BG # 19 19 19 0 0 7 # -
|
||||
printf "\033]10;#131313\007"
|
||||
|
||||
# Regular colors (0-7)
|
||||
|
||||
# Nr # R G B H S B # Name
|
||||
# 0 # 61 61 61 0 0 24 # - (Black)
|
||||
printf "\033]4;0;#3D3D3D\007"
|
||||
# 1 # 186 19 61 345 90 73 # - (Red)
|
||||
printf "\033]4;1;#E62E4D\007"
|
||||
# 2 # 61 186 19 105 90 73 # - (Green)
|
||||
printf "\033]4;2;#4DE62E\007"
|
||||
# 3 # 186 144 19 45 90 73 # - (Yellow)
|
||||
printf "\033]4;3;#E6C72E\007"
|
||||
# 4 # 19 61 186 225 90 73 # - (Blue)
|
||||
printf "\033]4;4;#2E4CE6\007"
|
||||
# 5 # 144 19 186 285 90 73 # - (Magenta)
|
||||
printf "\033]4;5;#C52DE3\007"
|
||||
# 6 # 19 186 144 165 90 73 # - (Cyan)
|
||||
printf "\033]4;6;#2EE6C7\007"
|
||||
# 7 # 186 186 186 0 0 73 # - (White)
|
||||
printf "\033]4;7;#BABABA\007"
|
||||
|
||||
# Bright colors (8-15)
|
||||
|
||||
# Nr # R G B H S B # Name
|
||||
# 8 # 122 122 122 0 0 48 # - (Black)
|
||||
printf "\033]4;8;#7A7A7A\007"
|
||||
# 9 # 250 25 81 345 90 98 # - (Red)
|
||||
printf "\033]4;9;#FF002B\007"
|
||||
# 10 # 81 250 25 105 90 98 # - (Green)
|
||||
printf "\033]4;10;#2BFF00\007"
|
||||
# 11 # 250 194 25 45 90 98 # - (Yellow)
|
||||
printf "\033]4;11;#FFd500\007"
|
||||
# 12 # 25 81 250 225 90 98 # - (Blue)
|
||||
printf "\033]4;12;#002AFF\007"
|
||||
# 13 # 194 25 250 285 90 98 # - (Magenta)
|
||||
printf "\033]4;13;#D400FF\007"
|
||||
# 14 # 25 259 194 165 90 98 # - (Cyan)
|
||||
printf "\033]4;14;#00FFC0\007"
|
||||
# 15 # 250 250 250 0 0 98 # - (White)
|
||||
printf "\033]4;15;#FAFAFA\007"
|
||||
|
||||
# TEsting again
|
||||
|
||||
# Nr # R G B H S B # Name
|
||||
# FG # 250 250 250 0 0 98 # Daisy (White)
|
||||
# FAFAFA # Daisy (Foreground)
|
||||
printf "\033]10;#FAFAFA\007"
|
||||
# 171717 # Background
|
||||
printf "\033]11;#171717\007"
|
||||
|
||||
# Nr # R G B H S B # Name
|
||||
# 0 # 61 61 61 0 0 24 # - (Black)
|
||||
printf "\033]4;0;#202124\007"
|
||||
# 1 # 186 19 61 345 90 73 # - (Red)
|
||||
printf "\033]4;1;#EA4335\007"
|
||||
# 2 # 61 186 19 105 90 73 # - (Green)
|
||||
printf "\033]4;2;#34A853\007"
|
||||
# 3 # 186 144 19 45 90 73 # - (Yellow)
|
||||
printf "\033]4;3;#FBBC04\007"
|
||||
# 4 # 19 61 186 225 90 73 # - (Blue)
|
||||
printf "\033]4;4;#4285F4\007"
|
||||
# 5 # 144 19 186 285 90 73 # - (Magenta)
|
||||
printf "\033]4;5;#A142F4\007"
|
||||
# 6 # 19 186 144 165 90 73 # - (Cyan)
|
||||
printf "\033]4;6;#24C1E0\007"
|
||||
# 7 # 186 186 186 0 0 73 # - (White)
|
||||
printf "\033]4;7;#FBFCF8\007"
|
||||
|
||||
# Bright colors (8-15)
|
||||
|
||||
# Nr # R G B H S B # Name
|
||||
# 8 # 122 122 122 0 0 48 # - (Black)
|
||||
printf "\033]4;8;#5F6368\007"
|
||||
# 9 # 250 25 81 345 90 98 # - (Red)
|
||||
printf "\033]4;9;#EA4335\007"
|
||||
# 10 # 81 250 25 105 90 98 # - (Green)
|
||||
printf "\033]4;10;#34A853\007"
|
||||
# 11 # 250 194 25 45 90 98 # - (Yellow)
|
||||
printf "\033]4;11;#FBBC05\007"
|
||||
# 12 # 25 81 250 225 90 98 # - (Blue)
|
||||
printf "\033]4;12;#4285F4\007"
|
||||
# 13 # 194 25 250 285 90 98 # - (Magenta)
|
||||
printf "\033]4;13;#A142F4\007"
|
||||
# 14 # 25 259 194 165 90 98 # - (Cyan)
|
||||
printf "\033]4;14;#24C1E0\007"
|
||||
# 15 # 250 250 250 0 0 98 # - (White)
|
||||
printf "\033]4;15;#FFFFFF\007"
|
||||
|
||||
|
|
@ -1,10 +1,10 @@
|
|||
keys:
|
||||
- &Tibo-NixFatDesk age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
||||
- &Tibo-NixTop age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
|
||||
- &tdpeuter age1q2gqur3t4fu8flsuu2zdnule37vdkh6egpt6a2e3ytx433x8gpvsr4hw6l
|
||||
- &Tibo-NixDesk age1quvlqpznqkw2r0jhyx6p2hsq3dk93087yha46ugtce6ew9c64pgq4uhcvz
|
||||
|
||||
creation_rules:
|
||||
- path_regex: secrets/[^/]+\.(yaml|json|env|ini)$
|
||||
- path_regex: secrets/[^/]+\.yaml$
|
||||
key_groups:
|
||||
- age:
|
||||
- *Tibo-NixFatDesk
|
||||
- *Tibo-NixTop
|
||||
- *tdpeuter
|
||||
|
||||
|
|
|
|||
|
|
@ -1,16 +1,3 @@
|
|||
# NixOS
|
||||
# nixos
|
||||
|
||||
Nix Flake configuration 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.
|
||||
Nix Flake for my Linux machines running NixOS.
|
||||
|
|
|
|||
214
nixos/flake.lock
generated
214
nixos/flake.lock
generated
|
|
@ -1,15 +1,36 @@
|
|||
{
|
||||
"nodes": {
|
||||
"flake-utils": {
|
||||
"devshell": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"lastModified": 1687173957,
|
||||
"narHash": "sha256-GOds2bAQcZ94fb9/Nl/aM+r+0wGSi4EKYuZYR8Dw4R8=",
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"rev": "2cf83bb31720fcc29a999aee28d6da101173e66a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "devshell",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems_2"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1687709756,
|
||||
"narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -25,63 +46,58 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758463745,
|
||||
"narHash": "sha256-uhzsV0Q0I9j2y/rfweWeGif5AWe0MGrgZ/3TjpDYdGA=",
|
||||
"lastModified": 1687647567,
|
||||
"narHash": "sha256-Ua90LZYJO7/7KW/KK/AqijhIekd+wxPwbVKXuBYzJeQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "3b955f5f0a942f9f60cdc9cacb7844335d0f21c3",
|
||||
"rev": "6ca1e16eb3016c94b7ac16699e1d4158bd4e39a4",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-25.05",
|
||||
"ref": "release-23.05",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nix-github-actions": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"openconnect-sso",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1720066371,
|
||||
"narHash": "sha256-uPlLYH2S0ACj0IcgaK9Lsf4spmJoGejR9DotXiXSBZQ=",
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"rev": "622f829f5fe69310a866c8a6cd07e747c44ef820",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "nix-github-actions",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1760862643,
|
||||
"narHash": "sha256-PXwG0TM7Ek87DNx4LbGWuD93PbFeKAJs4FfALtp7Wo0=",
|
||||
"lastModified": 1687729501,
|
||||
"narHash": "sha256-mTLkMePoHUWvTCf3NuKbeYEea/tsikSIKBWwb9OfRr4=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "33c6dca0c0cb31d6addcd34e90a63ad61826b28c",
|
||||
"rev": "35130d4b4f0b8c50ed2aceb909a538c66c91d4a0",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"id": "nixpkgs",
|
||||
"ref": "nixos-25.05",
|
||||
"ref": "nixos-23.05",
|
||||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1687031877,
|
||||
"narHash": "sha256-yMFcVeI+kZ6KD2QBrFPNsvBrLq2Gt//D0baHByMrjFY=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "e2e2059d19668dab1744301b8b0e821e3aae9c99",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "release-23.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1760878510,
|
||||
"narHash": "sha256-K5Osef2qexezUfs0alLvZ7nQFTGS9DL2oTVsIXsqLgs=",
|
||||
"lastModified": 1687681650,
|
||||
"narHash": "sha256-M2If+gRcfpmaJy/XbfSsRzLlPpoU4nr0NHnKKl50fd8=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5e2a59a5b1a82f89f2c7e598302a9cacebb72a67",
|
||||
"rev": "1c9db9710cb23d60570ad4d7ab829c2d34403de3",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -90,95 +106,30 @@
|
|||
"type": "indirect"
|
||||
}
|
||||
},
|
||||
"openconnect-sso": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"utils"
|
||||
],
|
||||
"nix-github-actions": "nix-github-actions",
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
],
|
||||
"poetry2nix": "poetry2nix",
|
||||
"systems": "systems_2",
|
||||
"treefmt-nix": "treefmt-nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1758594056,
|
||||
"narHash": "sha256-6XyKDRWqBngw1g73e789iyIaw/0VF04ELk/ATtlkTVU=",
|
||||
"owner": "ThinkChaos",
|
||||
"repo": "openconnect-sso",
|
||||
"rev": "2041471efd331d0591d34e122aefb02690fb233a",
|
||||
"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": 1721039874,
|
||||
"narHash": "sha256-XANsG9GYHip8pxZpbqKf/YGv8tIa0xTh289Y+WNBNfw=",
|
||||
"owner": "nix-community",
|
||||
"repo": "poetry2nix",
|
||||
"rev": "d11c01e58587e5f21037ed6477465a7f26a32e27",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"repo": "poetry2nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"devshell": "devshell",
|
||||
"flake-utils": "flake-utils",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"openconnect-sso": "openconnect-sso",
|
||||
"sops-nix": "sops-nix",
|
||||
"utils": "utils",
|
||||
"zen-browser": "zen-browser"
|
||||
"utils": "utils"
|
||||
}
|
||||
},
|
||||
"sops-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
],
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1760998189,
|
||||
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
|
||||
"lastModified": 1687398569,
|
||||
"narHash": "sha256-e/umuIKFcFtZtWeX369Hbdt9r+GQ48moDmlTcyHWL28=",
|
||||
"owner": "Mic92",
|
||||
"repo": "sops-nix",
|
||||
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
|
||||
"rev": "2ff6973350682f8d16371f8c071a304b8067f192",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -217,27 +168,6 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"treefmt-nix": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"openconnect-sso",
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1721769617,
|
||||
"narHash": "sha256-6Pqa0bi5nV74IZcENKYRToRNM5obo1EQ+3ihtunJ014=",
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"rev": "8db8970be1fb8be9c845af7ebec53b699fe7e009",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "treefmt-nix",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"utils": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
|
|
@ -245,11 +175,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1738591040,
|
||||
"narHash": "sha256-4WNeriUToshQ/L5J+dTSWC5OJIwT39SEP7V7oylndi8=",
|
||||
"lastModified": 1657226504,
|
||||
"narHash": "sha256-GIYNjuq4mJlFgqKsZ+YrgzWm0IpA4axA3MCrdKYj7gs=",
|
||||
"owner": "gytis-ivaskevicius",
|
||||
"repo": "flake-utils-plus",
|
||||
"rev": "afcb15b845e74ac5e998358709b2b5fe42a948d1",
|
||||
"rev": "2bf0f91643c2e5ae38c1b26893ac2927ac9bd82a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
@ -257,26 +187,6 @@
|
|||
"repo": "flake-utils-plus",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zen-browser": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1761105987,
|
||||
"narHash": "sha256-d01CGcdNlsqIn4ncGCWHM0Velnii/Ggef1iybQvEOfc=",
|
||||
"owner": "youwen5",
|
||||
"repo": "zen-browser-flake",
|
||||
"rev": "e7d9fefd8665be5d4c77466140f21a15f6d29e93",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "youwen5",
|
||||
"repo": "zen-browser-flake",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
|
|
|
|||
|
|
@ -2,64 +2,41 @@
|
|||
description = "System configuration of my machines using flakes";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "nixpkgs/nixos-25.05";
|
||||
nixpkgs.url = "nixpkgs/nixos-23.05";
|
||||
nixpkgs-unstable.url = "nixpkgs/nixos-unstable";
|
||||
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-25.05";
|
||||
devshell = {
|
||||
url = "github:numtide/devshell";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
openconnect-sso = {
|
||||
url = "github:ThinkChaos/openconnect-sso/fix/nix-flake";
|
||||
inputs = {
|
||||
flake-utils.follows = "utils";
|
||||
nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
flake-utils.url = "github:numtide/flake-utils";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-23.05";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
sops-nix = {
|
||||
url = "github:Mic92/sops-nix";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
utils = {
|
||||
url = "github:gytis-ivaskevicius/flake-utils-plus";
|
||||
inputs.flake-utils.follows = "flake-utils";
|
||||
};
|
||||
zen-browser = {
|
||||
url = "github:youwen5/zen-browser-flake";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = inputs@{
|
||||
self, nixpkgs, nixpkgs-unstable,
|
||||
flake-utils, home-manager, openconnect-sso, sops-nix, utils, zen-browser,
|
||||
devshell, flake-utils, home-manager, sops-nix, utils,
|
||||
... }:
|
||||
let
|
||||
system = utils.lib.system.x86_64-linux;
|
||||
|
||||
unfreePackages = pkg: builtins.elem (nixpkgs.lib.getName pkg) [
|
||||
"corefonts"
|
||||
"nvidia-settings" "nvidia-x11" "nvidia-persistenced"
|
||||
"Oracle_VirtualBox_Extension_Pack"
|
||||
"spotify"
|
||||
"steam" "steam-unwrapped" "steam-run"
|
||||
"vista-fonts"
|
||||
"intel-ocl"
|
||||
"libfprint-2-tod1-broadcom"
|
||||
];
|
||||
system = "x86_64-linux";
|
||||
in
|
||||
utils.lib.mkFlake {
|
||||
inherit self inputs;
|
||||
|
||||
channelsConfig.allowUnfreePredicate = unfreePackages;
|
||||
|
||||
sharedOverlays = [
|
||||
(import ./overlays/cmdtime)
|
||||
(import ./overlays/icosystem)
|
||||
(import ./overlays/letter)
|
||||
(import ./overlays/spotify)
|
||||
];
|
||||
channelsConfig = {
|
||||
allowUnfree = true;
|
||||
};
|
||||
|
||||
hostDefaults = {
|
||||
inherit system;
|
||||
|
|
@ -67,16 +44,13 @@
|
|||
specialArgs = {
|
||||
pkgs-unstable = import nixpkgs-unstable {
|
||||
inherit system;
|
||||
config.allowUnfreePredicate = unfreePackages;
|
||||
};
|
||||
};
|
||||
|
||||
modules = [
|
||||
./modules
|
||||
./users
|
||||
|
||||
home-manager.nixosModules.home-manager
|
||||
home-manager.nixosModule
|
||||
sops-nix.nixosModules.sops
|
||||
./modules
|
||||
];
|
||||
};
|
||||
|
||||
|
|
@ -84,7 +58,6 @@
|
|||
Tibo-NixDesk.modules = [ ./hosts/Tibo-NixDesk ];
|
||||
Tibo-NixFat.modules = [ ./hosts/Tibo-NixFat ];
|
||||
Tibo-NixTest.modules = [ ./hosts/Tibo-NixTest ];
|
||||
Tibo-NixTop.modules = [ ./hosts/Tibo-NixTop ];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,92 +1,72 @@
|
|||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
../../modules/hardware/nvidia.nix
|
||||
|
||||
sisyphus = {
|
||||
desktop.sway.enable = true;
|
||||
../../modules/apps/virtualbox
|
||||
../../modules/des/gnome
|
||||
];
|
||||
|
||||
hardware = {
|
||||
nvidia = {
|
||||
enable = true;
|
||||
model = "RTX 2060";
|
||||
gui-settings = true;
|
||||
};
|
||||
yubikey.enable = true;
|
||||
};
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.efi.efiSysMountPoint = "/boot/efi";
|
||||
|
||||
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;
|
||||
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.xkb = {
|
||||
layout = "us";
|
||||
variant = "altgr-intl";
|
||||
};
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
# Enable networking
|
||||
networking.hostName = "Tibo-NixDesk"; # Define your hostname.
|
||||
networking.networkmanager.enable = true;
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Brussels";
|
||||
|
||||
i18n.defaultLocale = "en_GB.UTF-8";
|
||||
console = {
|
||||
# font = "Lat2-Terminus16";
|
||||
useXkbConfig = true; # use xkbOptions in tty.
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_GB.utf8";
|
||||
|
||||
# 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, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
|
||||
kernelModules = [ ];
|
||||
};
|
||||
kernelModules = [ "kvm-intel" ];
|
||||
extraModulePackages = [ ];
|
||||
};
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-label/NIX-ROOT";
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-label/NIXROOT";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
"/boot/efi" = {
|
||||
device = "/dev/disk/by-label/NIX-BOOT";
|
||||
fileSystems."/boot/efi" =
|
||||
{ device = "/dev/disk/by-label/NIXBOOT";
|
||||
fsType = "vfat";
|
||||
};
|
||||
|
||||
"/nix" = {
|
||||
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"; }
|
||||
];
|
||||
swapDevices = [ ];
|
||||
|
||||
# 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
|
||||
|
|
|
|||
|
|
@ -3,131 +3,107 @@
|
|||
{
|
||||
imports = [
|
||||
./hardware-configuration.nix
|
||||
../../modules/hardware/nvidia.nix
|
||||
|
||||
../../modules/apps/virtualbox
|
||||
../../modules/des/gnome
|
||||
];
|
||||
|
||||
sisyphus = {
|
||||
desktop = {
|
||||
sway.enable = true;
|
||||
hyprland.enable = true;
|
||||
|
||||
# Use the systemd-boot EFI boot loader.]
|
||||
boot.loader = {
|
||||
systemd-boot.enable = true;
|
||||
efi = {
|
||||
canTouchEfiVariables = true;
|
||||
efiSysMountPoint = "/boot/efi";
|
||||
};
|
||||
|
||||
hardware = {
|
||||
eid.enable = true;
|
||||
nvidia = {
|
||||
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;
|
||||
};
|
||||
|
||||
networking = {
|
||||
hostName = "Tibo-NixFat";
|
||||
networkmanager.wifi.powersave = true;
|
||||
# Setup keyfile
|
||||
boot.initrd.secrets = {
|
||||
"/crypto_keyfile.bin" = null;
|
||||
};
|
||||
|
||||
services = {
|
||||
logind = {
|
||||
# Handle the laptop lid switch as follows:
|
||||
lidSwitch = "hybrid-sleep";
|
||||
lidSwitchExternalPower = "lock";
|
||||
lidSwitchDocked = "ignore";
|
||||
|
||||
# Handle the power key
|
||||
powerKey = "suspend";
|
||||
};
|
||||
|
||||
xserver.xkb = {
|
||||
# Keyboard layout
|
||||
layout = "us";
|
||||
variant = "altgr-intl";
|
||||
};
|
||||
|
||||
# Touchpad
|
||||
libinput.enable = true;
|
||||
|
||||
thermald.enable = true;
|
||||
};
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
systemd.coredump.enable = false;
|
||||
|
||||
networking.hostName = "Tibo-NixFat";
|
||||
# Pick only one of the below networking options.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
# Set your time zone.
|
||||
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";
|
||||
console = {
|
||||
useXkbConfig = true; # use xkbOptions in tty.
|
||||
# console = {
|
||||
# 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";
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -8,50 +8,35 @@
|
|||
(modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot = {
|
||||
initrd = {
|
||||
availableKernelModules = [
|
||||
"xhci_pci"
|
||||
"nvme"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
"rtsx_pci_sdmmc"
|
||||
];
|
||||
kernelModules = [ ];
|
||||
luks.devices."luks-c21cb4a4-f618-43af-bc0c-e8be74fe3b81".device = "/dev/disk/by-uuid/c21cb4a4-f618-43af-bc0c-e8be74fe3b81";
|
||||
};
|
||||
kernelModules = [ "kvm-intel" ];
|
||||
extraModulePackages = [ ];
|
||||
};
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-intel" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems = {
|
||||
"/" = {
|
||||
device = "/dev/disk/by-label/NIX-ROOT";
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-label/NIXROOT";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
"/boot/efi" = {
|
||||
device = "/dev/disk/by-label/NIX-BOOT";
|
||||
boot.initrd.luks.devices."luks-7319552e-7148-4a9b-aa56-aa580b0b935a".device = "/dev/disk/by-uuid/7319552e-7148-4a9b-aa56-aa580b0b935a";
|
||||
|
||||
fileSystems."/boot/efi" =
|
||||
{ device = "/dev/disk/by-label/NIXBOOT";
|
||||
fsType = "vfat";
|
||||
};
|
||||
};
|
||||
|
||||
swapDevices = [
|
||||
{ device = "/dev/disk/by-label/SWAP"; }
|
||||
];
|
||||
# swapDevices =
|
||||
# [ { device = "/dev/disk/by-label/SWAP"; }
|
||||
# ];
|
||||
|
||||
# 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
|
||||
# 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`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno1.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp111s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno2.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||
|
||||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
hardware = {
|
||||
enableAllFirmware = true;
|
||||
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, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ # Include the results of the hardware scan.
|
||||
./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 = {
|
||||
systemd-boot.enable = true;
|
||||
|
||||
|
|
@ -18,11 +26,10 @@
|
|||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
hostName = "Tibo-NixTest";
|
||||
# wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
};
|
||||
networking.hostName = "Tibo-NixTest"; # Define your hostname.
|
||||
# Pick only one of the below networking options.
|
||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
||||
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Brussels";
|
||||
|
|
@ -46,6 +53,29 @@
|
|||
# "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.
|
||||
# services.printing.enable = true;
|
||||
|
||||
|
|
@ -59,6 +89,44 @@
|
|||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
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.
|
||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
||||
|
|
@ -70,7 +138,13 @@
|
|||
# accidentally delete configuration.nix.
|
||||
# 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?
|
||||
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,203 +0,0 @@
|
|||
# Edit this configuration file to define what should be installed on
|
||||
# your system. Help is available in the configuration.nix(5) man page, on
|
||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
||||
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
# Include the results of the hardware scan.
|
||||
./hardware-configuration.nix
|
||||
];
|
||||
|
||||
sisyphus = {
|
||||
desktop.hyprland.enable = true;
|
||||
|
||||
hardware = {
|
||||
eid.enable = true;
|
||||
fingerprint-scanner.enable = true;
|
||||
nvidia = {
|
||||
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 = {
|
||||
initrd = {
|
||||
# Use EFI and YubiKey
|
||||
kernelModules = [ "vfat" "nls_cp437" "nls_iso8859-1" "usbhid" ];
|
||||
|
||||
luks = {
|
||||
# Enable YubiKey PBA
|
||||
yubikeySupport = true;
|
||||
devices."encrypted".yubikey = {
|
||||
slot = 2;
|
||||
twoFactor = false;
|
||||
gracePeriod = 10;
|
||||
keyLength = 64;
|
||||
saltLength = 16;
|
||||
storage.device = "/dev/nvme0n1p1";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
loader = {
|
||||
# Use the systemd-boot EFI boot loader.
|
||||
systemd-boot = {
|
||||
enable = true;
|
||||
|
||||
editor = false;
|
||||
memtest86.enable = true;
|
||||
};
|
||||
efi.canTouchEfiVariables = true;
|
||||
};
|
||||
|
||||
# Use latest kernel.
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
|
||||
plymouth.enable = true;
|
||||
};
|
||||
|
||||
hardware.bluetooth = {
|
||||
enable = true;
|
||||
powerOnBoot = false;
|
||||
};
|
||||
|
||||
programs.zsh.enable = true;
|
||||
|
||||
services = {
|
||||
auto-cpufreq = {
|
||||
enable = true;
|
||||
settings = {
|
||||
battery = {
|
||||
governor = "powersave";
|
||||
turbo = "never";
|
||||
};
|
||||
charger = {
|
||||
governor = "performance";
|
||||
turbo = "auto";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
logind = {
|
||||
# Handle the laptop lid switch as follows:
|
||||
lidSwitch = "hybrid-sleep";
|
||||
lidSwitchExternalPower = "lock";
|
||||
lidSwitchDocked = "ignore";
|
||||
|
||||
# Handle the power key
|
||||
powerKey = "suspend";
|
||||
};
|
||||
|
||||
|
||||
power-profiles-daemon.enable = false;
|
||||
|
||||
smartd.enable = true;
|
||||
|
||||
thermald.enable = true;
|
||||
|
||||
xserver = {
|
||||
# Keyboard layout
|
||||
xkb = {
|
||||
layout = "us";
|
||||
variant = "altgr-intl";
|
||||
};
|
||||
};
|
||||
|
||||
# Touchpad
|
||||
libinput.enable = true;
|
||||
};
|
||||
|
||||
networking = {
|
||||
hostName = "Tibo-NixTop"; # Define your hostname.
|
||||
};
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Brussels";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n = {
|
||||
defaultLocale = "en_GB.UTF-8"; # LANG
|
||||
extraLocaleSettings.LC_TIME = "nl_BE.UTF-8";
|
||||
};
|
||||
|
||||
console = {
|
||||
# font = "Lat2-Terminus16";
|
||||
# keyMap = "us";
|
||||
useXkbConfig = true; # use xkb.options in tty.
|
||||
};
|
||||
|
||||
# Enable CUPS to print documents.
|
||||
# services.printing.enable = true;
|
||||
|
||||
# Enable touchpad support (enabled default in most desktopManager).
|
||||
# services.libinput.enable = true;
|
||||
|
||||
# List packages installed in system profile.
|
||||
# You can use https://search.nixos.org/ to find more packages (and options).
|
||||
environment = {
|
||||
# Enabled to allow installed binaries in ~/.local/bin
|
||||
localBinInPath = true;
|
||||
|
||||
systemPackages = with pkgs; [
|
||||
git
|
||||
vim-full # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
||||
w3m
|
||||
wget
|
||||
zenith-nvidia
|
||||
];
|
||||
};
|
||||
|
||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
||||
#
|
||||
# Most users should NEVER change this value after the initial install, for any reason,
|
||||
# even if you've upgraded your system to a new NixOS release.
|
||||
#
|
||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
||||
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
|
||||
# to actually do that.
|
||||
#
|
||||
# This value being lower than the current NixOS release does NOT mean your system is
|
||||
# out of date, out of support, or vulnerable.
|
||||
#
|
||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
||||
# and migrated your data accordingly.
|
||||
#
|
||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
||||
system.stateVersion = "25.05"; # Did you read the comment?
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
||||
# and may be overwritten by future invocations. Please make changes
|
||||
# to /etc/nixos/configuration.nix instead.
|
||||
{ config, lib, pkgs, modulesPath, ... }:
|
||||
|
||||
{
|
||||
imports =
|
||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
||||
];
|
||||
|
||||
boot.initrd.availableKernelModules = [ "xhci_pci" "nvme" "usbhid" "usb_storage" "sd_mod" "rtsx_pci_sdmmc" ];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ ];
|
||||
boot.extraModulePackages = [ ];
|
||||
|
||||
fileSystems."/" =
|
||||
{ device = "/dev/disk/by-uuid/e759b10f-7949-4094-9272-d91340dcc5b6";
|
||||
fsType = "ext4";
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."encrypted".device = "/dev/disk/by-uuid/2b6586fa-8823-4add-94f3-132aab17b7b8";
|
||||
|
||||
fileSystems."/boot" =
|
||||
{ device = "/dev/disk/by-uuid/12CE-A600";
|
||||
fsType = "vfat";
|
||||
options = [ "fmask=0022" "dmask=0022" ];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
|
||||
# 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
|
||||
# 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`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.eno2.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
}
|
||||
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 = [
|
||||
./desktop
|
||||
./hardware
|
||||
./networking
|
||||
./nix
|
||||
./programs
|
||||
./services
|
||||
./virtualisation
|
||||
./apps
|
||||
./shells
|
||||
./utils
|
||||
];
|
||||
|
||||
# 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,10 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./gnome
|
||||
./hyprland
|
||||
./plasma
|
||||
./sway
|
||||
|
||||
./waybar
|
||||
];
|
||||
}
|
||||
|
|
@ -1,35 +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 = {
|
||||
gnome = {
|
||||
core-apps.enable = false;
|
||||
core-developer-tools.enable = false;
|
||||
core-shell.enable = true;
|
||||
};
|
||||
|
||||
xserver = {
|
||||
enable = true;
|
||||
|
||||
excludePackages = with pkgs; [
|
||||
xterm
|
||||
];
|
||||
|
||||
displayManager.gdm.enable = true;
|
||||
desktopManager.gnome.enable = true;
|
||||
|
||||
videoDrivers = [ "nvidia" ];
|
||||
};
|
||||
};
|
||||
|
||||
# Start a new instance of application instead of going to that window.
|
||||
environment.systemPackages = with pkgs.gnomeExtensions; [
|
||||
launch-new-instance
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,62 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.desktop.hyprland;
|
||||
in {
|
||||
options.sisyphus.desktop.hyprland.enable = lib.mkEnableOption "Hyprland";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment = {
|
||||
sessionVariables = {
|
||||
# Hint Electron apps to use wayland
|
||||
NIXOS_OZONE_WL = "1";
|
||||
|
||||
ASSETS_DIR = ../../../../assets;
|
||||
SCRIPT_DIR = ../../../../scripts;
|
||||
};
|
||||
|
||||
systemPackages = with pkgs; [
|
||||
brightnessctl
|
||||
dunst
|
||||
libnotify
|
||||
swaybg
|
||||
waycorner
|
||||
playerctl
|
||||
wlsunset
|
||||
wl-clipboard # Copying to system clipboard in vim
|
||||
wl-mirror # Mirror an output
|
||||
wdisplays # Tool to configure displays
|
||||
|
||||
hyprlandPlugins.hy3 # i3/sway layout plugin
|
||||
|
||||
swaylock
|
||||
|
||||
glib
|
||||
|
||||
libva
|
||||
|
||||
dmenu
|
||||
jq
|
||||
j4-dmenu-desktop
|
||||
rofi
|
||||
];
|
||||
};
|
||||
|
||||
programs.hyprland = {
|
||||
enable = true;
|
||||
xwayland.enable = true;
|
||||
};
|
||||
|
||||
security.polkit.enable = true;
|
||||
|
||||
services = {
|
||||
dbus.enable = true;
|
||||
displayManager.ly.enable = true;
|
||||
gnome.gnome-keyring.enable = true;
|
||||
xserver.videoDrivers = [ "nvidia" ];
|
||||
};
|
||||
|
||||
sisyphus.desktop.waybar.enable = true;
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -1,48 +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 = {
|
||||
displayManager = {
|
||||
defaultSession = "plasma";
|
||||
sddm = {
|
||||
enable = true;
|
||||
wayland.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.plasma6.enable = true;
|
||||
|
||||
# Use gnome keyring instead of KDE Wallet.
|
||||
gnome.gnome-keyring.enable = true;
|
||||
|
||||
xserver = {
|
||||
enable = true;
|
||||
excludePackages = with pkgs; [
|
||||
xterm
|
||||
];
|
||||
videoDrivers = [ "nvidia" ];
|
||||
};
|
||||
};
|
||||
|
||||
environment.plasma6.excludePackages = with pkgs.kdePackages; [
|
||||
elisa
|
||||
gwenview
|
||||
kate
|
||||
khelpcenter
|
||||
konsole
|
||||
kwalletmanager
|
||||
okular
|
||||
plasma-systemmonitor
|
||||
print-manager
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,147 +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; [
|
||||
# Window manager related
|
||||
dbus-sway-environment
|
||||
configure-gtk
|
||||
wayland
|
||||
xdg-utils # Open with default program
|
||||
glib # gsettings
|
||||
wl-clipboard # Copying to system clipboard in vim
|
||||
wl-mirror # Mirror an output
|
||||
wdisplays # Tool to configure displays
|
||||
|
||||
# Desktop Environment related
|
||||
brightnessctl
|
||||
dunst
|
||||
libnotify
|
||||
playerctl
|
||||
swaybg
|
||||
swaylock-effects
|
||||
wlsunset
|
||||
waycorner
|
||||
|
||||
# TODO Turn into own module/package?
|
||||
dmenu
|
||||
jq
|
||||
j4-dmenu-desktop
|
||||
rofi
|
||||
]) ++ (with pkgs.sway-contrib; [
|
||||
grimshot
|
||||
]);
|
||||
|
||||
environment.sessionVariables = {
|
||||
ASSETS_DIR = ../../../../assets;
|
||||
SCRIPT_DIR = ../../../../scripts;
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
dejavu_fonts
|
||||
font-awesome
|
||||
noto-fonts
|
||||
noto-fonts-cjk-sans
|
||||
noto-fonts-cjk-serif
|
||||
noto-fonts-emoji
|
||||
];
|
||||
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
services = {
|
||||
atd.enable = true; # Required by sunset.sh
|
||||
dbus.enable = true;
|
||||
displayManager.ly.enable = true;
|
||||
gnome.gnome-keyring.enable = true;
|
||||
power-profiles-daemon.enable = true;
|
||||
xserver.videoDrivers = [ "nouveau" ];
|
||||
# xserver.videoDrivers = [ "nvidia" ];
|
||||
};
|
||||
|
||||
xdg.portal = {
|
||||
enable = true;
|
||||
wlr.enable = true;
|
||||
extraPortals = with pkgs; [
|
||||
xdg-desktop-portal-gtk
|
||||
gtk-session-lock
|
||||
];
|
||||
xdgOpenUsePortal = true;
|
||||
};
|
||||
|
||||
programs.sway = {
|
||||
enable = true;
|
||||
package = pkgs.swayfx;
|
||||
wrapperFeatures.gtk = true;
|
||||
};
|
||||
|
||||
sisyphus = {
|
||||
desktop.waybar.enable = true;
|
||||
|
||||
users.wantedGroups = [
|
||||
config.users.groups.video.name # Brightnessctl
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -1,18 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.desktop.waybar;
|
||||
in {
|
||||
options.sisyphus.desktop.waybar.enable = lib.mkEnableOption "Waybar";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
libnotify
|
||||
playerctl
|
||||
jq
|
||||
j4-dmenu-desktop
|
||||
];
|
||||
|
||||
programs.waybar.enable = true;
|
||||
};
|
||||
}
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./eid
|
||||
./fingerprint-scanner
|
||||
./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
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.hardware.fingerprint-scanner;
|
||||
in {
|
||||
options.sisyphus.hardware.fingerprint-scanner.enable = lib.mkEnableOption "Fingerprint scanner support";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
# Enable driver
|
||||
services.fprintd = {
|
||||
enable = true;
|
||||
|
||||
# Enable Touch OEM Drivers library support
|
||||
tod = {
|
||||
enable = true;
|
||||
# Dell drivers
|
||||
driver = pkgs.libfprint-2-tod1-broadcom;
|
||||
};
|
||||
};
|
||||
|
||||
# Start driver at boot
|
||||
systemd.services.fprintd = {
|
||||
wantedBy = [
|
||||
"multi-user.target"
|
||||
];
|
||||
serviceConfig.Type = "simple";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
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,90 +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
|
||||
'';
|
||||
kernelParams = [
|
||||
"nvidia_drm.modeset=1"
|
||||
];
|
||||
};
|
||||
|
||||
hardware = {
|
||||
graphics = {
|
||||
enable = true;
|
||||
enable32Bit = true;
|
||||
extraPackages = with pkgs; [
|
||||
intel-ocl
|
||||
intel-compute-runtime
|
||||
opencl-clhpp
|
||||
opencl-clang
|
||||
opencl-headers
|
||||
ocl-icd
|
||||
];
|
||||
};
|
||||
|
||||
nvidia = {
|
||||
# Use the NVidia open source kernel module (or not)
|
||||
open = false;
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
# Modesetting is required.
|
||||
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,42 +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.services.yubikey-touch-detector = {
|
||||
enable = true;
|
||||
description = "Detects when your YubiKey is waiting for a touch";
|
||||
path = with pkgs; [
|
||||
gnupg
|
||||
yubikey-touch-detector
|
||||
];
|
||||
wantedBy = [
|
||||
"graphical-session.target"
|
||||
];
|
||||
script = ''exec yubikey-touch-detector --libnotify'';
|
||||
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.nixVersions.stable;
|
||||
};
|
||||
}
|
||||
|
|
@ -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, https://github.com/nix-community/nix-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 = {
|
||||
# Don't derive age keys from SSH keys.
|
||||
sshKeyPaths = [ ];
|
||||
# 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,11 +0,0 @@
|
|||
{
|
||||
imports = [
|
||||
./monero
|
||||
./openrgb
|
||||
./openssh
|
||||
./pipewire
|
||||
./printing
|
||||
./remEYEnder
|
||||
./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,41 +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 {
|
||||
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;
|
||||
|
||||
wireplumber = {
|
||||
enable = true;
|
||||
# Fix pops after silence
|
||||
extraConfig."99-disable-suspend" = {
|
||||
"monitor.alsa.rules" = [
|
||||
{
|
||||
matches = [
|
||||
# Headphone jack on laptop
|
||||
{ "node.name" = "alsa_output.pci-0000_00_1f.3.analog-stereo"; }
|
||||
];
|
||||
actions.update-props = {
|
||||
"session.suspend-timeout-seconds" = 0;
|
||||
};
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
@ -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;
|
||||
nssmdns4 = true;
|
||||
openFirewall = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Binary file not shown.
|
|
@ -1,35 +0,0 @@
|
|||
{ config, lib, pkgs, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.services.remEYEnder;
|
||||
|
||||
icon = ./vecteezy_eyes-line-icon-vector-isolated_13932670.jpg;
|
||||
in {
|
||||
options.sisyphus.services.remEYEnder.enable = lib.mkEnableOption "Eye reminder";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
systemd.user = {
|
||||
services.remEYEnder = {
|
||||
enable = true;
|
||||
description = "Send an eye reminder";
|
||||
serviceConfig.Type = "oneshot";
|
||||
script = ''
|
||||
# Display reminder for 20 seconds.
|
||||
${pkgs.libnotify}/bin/notify-send -t 20000 --icon=${icon} "RemEYEnder" "Look away from your screen :)"
|
||||
'';
|
||||
};
|
||||
timers.remEYEnder = {
|
||||
enable = true;
|
||||
description = "Timer for remEYEnders, runs every 20 minutes.";
|
||||
wantedBy = [
|
||||
"timers.target"
|
||||
];
|
||||
timerConfig = {
|
||||
OnActiveSec = "20min";
|
||||
OnUnitActiveSec = "20min";
|
||||
Unit = "remEYEnder.service";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 97 KiB |
|
|
@ -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,24 +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;
|
||||
|
||||
daemon.settings.features.cdi = true;
|
||||
};
|
||||
|
||||
# Updated version of deprecated enableNvidia.
|
||||
hardware.nvidia-container-toolkit.enable = true;
|
||||
|
||||
sisyphus.users.wantedGroups = [
|
||||
"docker"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
@ -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,30 +0,0 @@
|
|||
{ config, lib, pkgs-unstable, ... }:
|
||||
|
||||
let
|
||||
cfg = config.sisyphus.virtualisation.virtualbox;
|
||||
in {
|
||||
options.sisyphus.virtualisation.virtualbox.enable = lib.mkEnableOption "VirtualBox";
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
virtualisation.virtualbox.host = {
|
||||
enable = true;
|
||||
enableExtensionPack = true;
|
||||
enableHardening = true;
|
||||
package = pkgs-unstable.virtualbox;
|
||||
};
|
||||
|
||||
|
||||
# https://www.virtualbox.org/ticket/22248#comment:1
|
||||
# and
|
||||
# https://github.com/NixOS/nixpkgs/pull/444438
|
||||
boot.kernelParams = [ "kvm.enable_virt_at_load=0" ];
|
||||
|
||||
# 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-oGpe+kBf6kBboyx/YfbQBt1vvjtXd1n2pOH6FNcbF8M=";
|
||||
|
||||
buildInputs = with final; [
|
||||
cargo
|
||||
rustc
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
mkdir -p $out
|
||||
cp $src/config.toml $out/config.toml
|
||||
'';
|
||||
};
|
||||
}
|
||||
|
|
@ -1,41 +0,0 @@
|
|||
HomeLab:
|
||||
Gitea:
|
||||
ssh: ENC[AES256_GCM,data:+H9qhfOg5WlTB7pihvbJ9omY/zLTAADe8KzI4fbdZ7NuaM0auC95AIQqhwNNCZNglg9UGOVL662pY7dNhbQ/2iCLPHSPgFFXf3fx1moRRcYYQzoJxsgxp19FZQeGNJ0qfRf72xYbZQZKslyHQmcqDieoVTyhaLqTfgC8MQ/UZofw/ortmgME7z51rGV5sXXMjxpJpHz9JxiPwQEL0ABWDAeCqBVBzlqqwdmfKEdkcR4l3USHfH1iNF5XQ5V26I+UGDOyoixt1c/BXzD9xzKI7MUDoRz+qfC6C62LIlEgqZY5tWg+tVZnqobakxwH6d8pXtQ7vaIREEP0LqQMkrNcK8X+cDRteToQ1fcxtN1V+JfZSa9pVC+iGgvmSZ00q4bnOgTmgO9IZ80TvOR4bHpRhjM5l4JMbLBv2jqY1zeUx/5L3WNuYIm9sL5mWXkV/RAD8WCemNSWdKbGsvByEUeiFcxczL/vQ6y3fi+ntmXUgeXVy5zVNkNlYbqd+DemBmwZQb9D1T5T97i2ChciYb3/ON1NObja/bt0PTQa,iv:hIbwsPcDSfgDItlvFFy0vCjuQWvgoQHBH60v8nTVTNg=,tag:1T/TdTEy98TfgMzYAxfHKA==,type:str]
|
||||
HTPC:
|
||||
ssh: ENC[AES256_GCM,data:svt6jhMXVCydmlcoa052TtFoIwQiAzNJRn9GPZDBuOGSnB83kUpuy/oqPOIa2ipco0L/5F/mQWn7OHUFtyhWWMerzY8niPldUDKH4jgsvRhRIatGOFiDyL8oA+f1O9lmhyFx35uxGa+Q6tn6rtXVKRVWQFe8kYBvGYjugKixsOMugoqLIxY8wUlMTzm6uDd7a72s/0hgQZGKp0eHWBHEdSJGPdv8svVDZ1PBMrlZa5ZpuiUmmvZvyCEnRtImUZALG4nKMvJjunxKr/4MJhWuffQ60jLYzInoGggiJlwBm+E+m43FwIFndY+LJ+ykO5RAbHhSwgXsCS5WXBrvDGuOTNAlIp6yTgSK1DCzSjzOJOc93rVSPhPdkaOoKgxhz1k95qCEhYUf9vyBgyIaOntWEArV+OZmHje6awbk4fpyIzRe7ggHlhKILYoGYzeejxbMGB9nH15RlUiTF7QnAWxWNSwcET6dSn2MtpC3yegnYl4u3eJ7YkHHYYQtwCQ9vCnt0i/sfuJmbrSFBXnVKMWB2w1Att145gDdlDok,iv:4bkSYvgmG6j/AwVnfGsLjdqtyP/gpWRvOKZCQxP0sMs=,tag:LyjE7dTt0+IDuSlbVLgCMg==,type:str]
|
||||
Hugo:
|
||||
ssh: ENC[AES256_GCM,data:y233CFIH7/n4EGEd2D7MuoprcMV9A8DaiV9JYZ6sr5j+hZnGr8sIAm9/55Bi2cD74sBZcE+tjOz+V2aJ2llKgcdS84ZmXMPh6KQ2QYRYuGdBLeztl8foKdimToblBapebTVO7Rc2mdhg7sZtC/TKSIJnG3R3lRfRdKaxNjaRS51epl7VZKGhLBjZoZqMXOezY7lvNBvF3hFfMh5el5I5Te/yQbbp0a7DkAvA+c1nG9bo9FN0h3VJJTzcuHqvGHI736VosLe8UGirMkX9mBwB8ZV4+2Vp7ZsSHnX5or/MzuYexT0zeLbTNHfj64d2W2/LKDkxNc35Sw7NvxwsVj3k2UHC2jEgus2z0AdMFszEFXh+Eu9wK8yX4ebzUut+OHNPuxvIk+ORxYr3OdVkOhhWHLinu/skNg0u5OdUXo/0p1876+gpcnOVC5UrUflwrtKGQgNk+ovWWjSfcQMh+gI6GYXzksX3YdMEriYZt4Z8lev2od/i7q48cV4W3Lo6TDDttipynxQus6K+J3oBKRirLHylRA5gusqUOVzC,iv:thw9OUnA02qe6aMuLTwy+q/a6isB375/k7JixPEy960=,tag:s95FtFRmPG0Up2oVuQyXsg==,type:str]
|
||||
Nextcloud:
|
||||
ssh: ENC[AES256_GCM,data:aVqa57u9hIOquP367EDj2rlyQWRe3EZv8l5cC+yQQKCri2bN5IFSq8qNemOIcU9ycBnxIyK6gLerJYQQcgzIIARmnfDpbJ9w+EeUL5yvPVJN6FM7oBeaL9mzYRl8aDKr22LhL9YiKAT1nKHESmTb3TZRvuvWJTGzCMRV85ROGxZYVUgG6BjuHEzuTsc4fy3NVPIl7/4ZjPgNNYx+UNsV5xwTejveB/sGblVrHOO74LZXzUWRlQNun5nM3MY3GALzfrPrVIAyGNu37CGachtwxaPOj7vUKZmD/e+XajYVKRJ3v33jrUeI0dDmhuwJj3taoFik6suAyiK3RlDdeWoERR8vqduiyxJnVMs6mNkigzkVtifpwZyQ8vNyG7w1JNPygMYgQzjN43lGVml8cx1lZvcoBzQabjWxcNzhV8gXxoGKvAwUV7ELB6l00rUH+EeI0uU8/IFm9kwmZq42ciM/bRGSGXzo2PYG2OHOiDe5b0nrIlajaRKd+vuuzTtFFU9EwH0GPzERRaoxVK+h9tzcco/REITCE+CVlHSx,iv:bb1X95HK5tT7EJpqqgMOUxw5VO5MuzoYxkPIzR5sEqU=,tag:y2LKHm7czwyuHp7Ea8KiYw==,type:str]
|
||||
NixOS:
|
||||
admin:
|
||||
ssh: ENC[AES256_GCM,data:rAn/H2CtK2dkES2UIJrZbEP/3rqLgJsy5rortmdqoCthQ41IxztiaH1VtdaVDtw5j0qu49RJ59KkmYpOQXC2okAgLeqcb+J9iwrwspfKd+/I186a4gHZ2l+hGpmr3Vbs6K/UoCY67uygZhznBuwKeW4EjYJgGS7zInJFmMvcMV1rP/t4VoW+5oxptQNCrzoRukIG6NiAOcqU1GtvBfL5PxLaTWUEcZMYuo6sY/9VuEWgkZP1bmhBPUIv9D5yJo94KQr0YOaX4lz2pwd+K0cdD8d0Lh8B5YplA1NDCUnBbuDXfH0aSUAm7DCm6Y/E2UECEMRLuwfyEoe/yaHh8iCGveI//FkmiIKNY1SmTkjM2Fdfk6QaVDF8sG2CWdX21H3senfeM6jSow7JLY1LDvC2WxO4YIJEi14Y7zEpIZinWimyAhihPvMLnwd3taOhE59NrTOQKQS3tyFX+5tO3LtBrpn+Tm/B7WO49EkRn1LXN8CWkFnEEGXgxfNRg91C967nHaNpDMssGjfVG20WwYAtMKXzrNyzSEJbZglQ,iv:vY/8yyO0eLzpdho9aPUH9WGQ8Cp5LA+5RckjzDgYMMY=,tag:Jar1qVS/c1rQ8f3qpYqJdA==,type:str]
|
||||
Roxanne:
|
||||
ghost:
|
||||
ssh: ENC[AES256_GCM,data:hkgVUVyCLANeYB4bcCTLB/F6eAbg7J4eN8y+VVzBfkcgnpDmXmghBihreQVT7OIwRrHIH1ok2vuH8vgXb38tuplUD5I8e0Gqy3EqpOGagsO8lss4aIg2lRwZ9WazJknvo4OaGc34jrwcZicesnaxK6g+GX2r2N4caGKMuOZ2i1mLKBwOcEtL6l3REKrGkExd3mYJX1Yqs7sMbGLNpfemDghv646zvxDRwPby49qIPA8OtGR+DBMZTTEviNqamJaFbs7YX+K77J1NHK59u6UfzU6hEjTBEYIjkFDzGATAZAopCsjOHcAA0alejHK4QZZt3e8unVsLICNK08ZCyEzwSXQ/wpUh3ccGcLit2t1LYZT4PqqG8+6ooaQYso67Wral0pdsTsrF0mGNfsZm76MDV9puP5B+IInanHz+2mCHbdmTi6rg9t8Q6mpFqrUbrwxMn2Ns1proBXBCqK/sFjC/bVIyMHUVOh6GYcKaVTv8ecB9ZEjp5dZ4VeStqTMT+xqS7dXBAJzGytLwXT/JaQelIE0w47aBaGy63Pqy,iv:WuAGU+ru8xLp2LXK12x/ueCH0XDxA0zGUt7+HWUdVMo=,tag:UqUMD/jSdTXOkf0kyMqwHA==,type:str]
|
||||
Vaultwarden:
|
||||
ssh: ENC[AES256_GCM,data:LJ7nbIdl1GqcsBtOwqsDtjKMfks13X5hsGkEFxDj0eX1EegEBkoWnzstu34RTgt1O1O+3Y/Amg7cDce2ZyZrTwDmLqinpuJD3CI7pRtQygAH8X9wPQYE6U3D1t4dXuMcDftjS+uY0CJFmq01dLv0GytSZSiNBcqNepTY+fO20yylyUbDGjI3Foyi86ipEtLVeFJqESiHDMHn/Cr+ggpLNMXijpnyoCRstPlm3GY3n6EhPwKhwovLB3AXolUeScnInIpwiikVTkYLNLCbrG8KAAr+DmWK3GTZYToH0wV8HpacPQI+4cHf96+EvAVlYMwGyQztPmXO7/9xUgWCNYow+z8BD6ijMuyZHT9aNkoAPt/y72N/PSf5HqW0QVWr3LmyIG+i9Bxbhqc7mRUIy4wZsODbtoO8/RtAly6mXIg0DZLlbo8kDe3TE3m+P5E/KQJOAvM2QdL+NXPcf2J2JYHW4kzITx447Bc3+F/DRs616MhekIoDybLhY3MT0XvYX1d1wAv/Ip98EGzfptXjnJvKPcJgTBlqNyeKuPOe,iv:oEGJUpoj+N30TgLpSWQqGdqYBdWLUWnSuQ+7TdSgmFc=,tag:AUZ2QnPUxLHaxsHbrmSYZQ==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlL05vZHk2T1B6OHArUXlj
|
||||
bEZWV0dUeVN0M3ZpeHdKcGlKV1RWYmRLM0FjCm9PLzBZTFo3RjhZTEhYMDBSN2Nj
|
||||
aithQ2hpZXVCSngxcVBvQ2hKRzFXUEEKLS0tIE5rL0NHb1llRmlSQXVUeU8rVmNY
|
||||
aEZHdDFEWUdxMzRVVjFhQWZmS04wRkkKrD2CiwdNcbK9s64omQ7xSA29J48HwIHa
|
||||
ickyL/uorYhXmBKhqdvNq/j1Nb88LR9ti55Z7eecJNbyJb4OTtgzXQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBOWNXQ1BsekdoS3BCdHA4
|
||||
YTJJRHJBTEJ1bmhkWktSamYyRk1TUmovZ2trCnBXbUZQZFBndmU3VzJHVjczZGtY
|
||||
ZkJDY3RzSEhXQVlLL0g1QTYxSC9CZGMKLS0tIGFBZnNlWmZjZFdkdGZvaHA5ZjMw
|
||||
NFRtOFIybnFPWm1idFY0WEVqVGxOK1UKiJDByqKv/i/l9dvOplDyzDORU3ulhSwi
|
||||
6xyEqmyNQpIkiS6TLZZYrBlQMDYqZ2gj1HhdIUssWJCf5Ho8KVDjJQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-10-18T15:55:58Z"
|
||||
mac: ENC[AES256_GCM,data:vdVOTFlDD9jlGJksI5TDxk3stPkLY8lB6LMhV6QGqh9R2vaGuGGh6RZuR6AInq1Rm89innA6M1S2UUM6Jef1EKiPgq41neWMx/i3n7Ixx8FcraO/lgUYKG5yszYdjAlLQvKWqIbvX0bMYNwpF10FO5OyiXWiJrP9Om0Pjvk7dO8=,iv:W9I1nv0fKckNlNjJF0U4HlkyI5VDpvOGiSo0GeOODaY=,tag:RjkSTQYejyf1WO0LilbXYg==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.10.2
|
||||
|
|
@ -1,31 +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:
|
||||
age:
|
||||
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpb0dlWE5PNllnME1jQWE4
|
||||
cHFzWkR4ZzNaWlR0WDJ4c1hEdlJGN0FISWlZCmNNdVRtL080QzgwQTZtTGpVRkxW
|
||||
dkdvYXdQNUlhYWQrYlNDR2JISXdpdkkKLS0tIEpIU20rK3F3WGpBS1g3NmJqYWRX
|
||||
SWlNbFZ0NTJJZ09Wd3JzK1hscjJoS2MK4GU8ndim80CaOjgvMwVlgIq/1VQIylSZ
|
||||
EJl15zUFaDiDZUCcZE8TkJQ/rbGDSiq7KlWyFe48Q3UC86jfF88qCg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYNjkzeHloK3hKUTJaMTdr
|
||||
NUdiZ2JGZitqN1k0WCtEODU4R2MrTmUzR1hrCmNJL0Y4ZEpLN0l6ZmhGWEM5UktG
|
||||
ck1PUnFSSVNCRUd5Sm9kSXNmVW5jZDQKLS0tIHpHWVBVNFNBSlUvZldJVGowUEtZ
|
||||
S05HZ0FiSVlkUjRRV01TbjlpVFlkQWcK7jAqOYd9EDT93xpVgtpKl03EO6oHmGRR
|
||||
iK9j2y7j1YSghPKDBrC5eKy9+IP/EFEBGygcokqT7C6Nscu80YhVbg==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-10-06T14:01:15Z"
|
||||
mac: ENC[AES256_GCM,data:bWo5DGCt5cK02Lf61yKFDZLLaMmcWyba+03CZ35EnGz7Hoc1sl3qTmgJfNz8EKDeXTIkk33DdnI/kZ2nX7vsZ/QgOhFQWzWRYe1cxqiWyd0wnUlwdoeeFrBP3uOTHXAOVe6q77S3qChzBP3J+5OijztvdOVEOKFmFPSCgyA029Q=,iv:6DSp63IrtYyaFxkaify/JZDXpB76AaGGW/OcPTKBbvk=,tag:sPKddpcx60JFZ4VEGD1tnQ==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.10.2
|
||||
|
|
@ -1,28 +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]
|
||||
Gitea:
|
||||
ssh: ENC[AES256_GCM,data:8eyuycMkBVMHfzaGeGs+0RA4vCpaAUTjCwiplUamypEk9BDYqxe+69O6OjJAGaPnmH4kpsb/WVd5sU6HNUogBuzDQhCrv2B6NadcmnV+fH3MHfAWvDy7R68PUkwcywWVOo65SONckjKVa0Y+8IeeJh9zpr36qCbbs+zPC4XTk+Y5R4vK/ocmSJSmwqVK1SfGGwOjFoJvHVI6jdXh//vgKaITqmyZV7N3OU9EiQp1FmNKwFf/x70w2LGATrNBcexwNy20ZYd6ewiAfJxFHR6Svfc2P5X2nlv99W5t1eU5QEGUcalcslsW/VkmFC3agN3Yry2EMIlfTlm0hm4+ryDGWEvgyUC0dLA8Ao0TLaaqig9HzBRP1h6aORe0lDwzTUg6WltrIu0s7hFwD4YLi1qP5lY99hvrDIRbTEg6AY6X4b32YFlyOXy0YDetv90+QyEcwANWO9MXz2S9hxuQmjOXMCVYMaiMLVUkG+mShbQuxTiFQt/7D83yOBSRLugx/aU318NKvUDlCt7wpZbMI3gBia4nUYLoLcXRKcAZ,iv:uc1ZtGdcolLrpQgS5n5LEAwBt0vMmkj2OuTXcn8sQ7A=,tag:F2ofcj0zEBgxwukMUd7+uw==,type:str]
|
||||
sops:
|
||||
age:
|
||||
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwSDRZQ0pVNWhmdFo1UDVv
|
||||
MFlrZEFtNjlpZ3pBU0VrdkFpR2x4WGxUZ0RRClJad1JPYWhFTWd1N2ZKQWsrSjFj
|
||||
YXREaGRrbE15MEdpblJtcTk2cFk1eGsKLS0tIHE2ZTd3R1gwQ3E1VzkvZTZoZjBW
|
||||
aTRLcFJ6NkpJRjkyenVxeFRLVmgwMjQK47HRKyg1SxWABZHCdVdIaPEKoSiWIOO/
|
||||
OYu/1owbUwTh1KouUb4tgNmVBOkERJ9i3lEjWLHUWrlCAUImc9dG4g==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBVDZtU2g4dmFXTlNIMFBs
|
||||
OFBpS2RXRzFwTVdJazQrSldwWUFtdCs0U1ZFCmxRdy9yY3VIWU4zenc4eVNEVUZv
|
||||
VUlyT29JekNTS3RIMktmS2RGNU5GMTgKLS0tIEhvM2RkcUs0SE5uSXFxc3dvSXhP
|
||||
WmViM05IMHFPckNic1hHY2ZlTEMrYkkK+66rYqbGQucqQch4Tx9jONR9OIXdjMUd
|
||||
q/fGLCoSluHuCOkUWr/wUgvF5dWAHftYj9JjDB/9vpp4Q0WClLDszw==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2024-10-19T12:24:38Z"
|
||||
mac: ENC[AES256_GCM,data:g15gV0H0rlzoeN5Z/Zkgh/8ya9GSrWDVP9oqdVz3m4obmquCLDIygsPaYpRXmfOtPSgvX2KzZ08sNLfcBZSh7eH2Ws7xcezWOntOcmAQNz5LvemqP7YuwtivMK/P4qrkME+LQPkSrSUR+rT99Zj+RQXisy91Cq9NbVBj6uQH7+I=,iv:W+oDp5Dun0g35BFprOmgfI0LoPME3HpPuuniCKA32Kc=,tag:CUU74HZuRNedyI3txn9D+g==,type:str]
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.8.1
|
||||
|
|
@ -1,34 +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:
|
||||
age:
|
||||
- recipient: age1fva6s64s884z0q2w7de024sp69ucvqu0pg9shrhhqsn3ewlpjfpsh6md7y
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4KzMrV2dpWFQyQUQyV050
|
||||
elVhN0dUeTRodG1kNHZ0VEVmTUI1QjhidFJnClhJU0tVY0tmMkFaMDZkMDJOKzV1
|
||||
NVJiSERtR0VZR3VBOGVJbGk3cUxTMzAKLS0tIGhvMmIyOWQwVlhXRzYwampTeG5V
|
||||
UDVWQnE4NDY5cFF3RnpxcjhMY2N0VUUK+B24C0CT5b82DJSdKotX4iPhzWxnYsn6
|
||||
kS7Ut9uy5OwcB+p6erlbLMEUVmmSNw89KBrowT0Ui1d3AfyGAN4rqQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
- recipient: age1qzutny0mqpcccqw6myyfntu6wcskruu9ghzvt6r4te7afkqwnguq05ex37
|
||||
enc: |
|
||||
-----BEGIN AGE ENCRYPTED FILE-----
|
||||
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwTjh4NDRYZGM1VHRZWGor
|
||||
MmhFWDNvMjI4UUVPbnorNnpabGNZY1BuMVdrCisvZ0U5SXRPM3IzNlZvZEpWZktz
|
||||
b2FJemtNVHU0WUI4M0U1L2tWR3g1MEUKLS0tIGczTmVubzcwVjg5NDdQdEllWEFw
|
||||
TWRIRE5WSGRCbncvWlpEMmdWOW5kb00Kq79O2C4aYmZmrq+rbyMtwmEqkqL9epn/
|
||||
pw2dxXmYt95qu3x/BxjoN8RFZhabFp9xHkZ1kqJe9FGmBtAmoWXjWA==
|
||||
-----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]
|
||||
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,193 +0,0 @@
|
|||
{ config, inputs, 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-light";
|
||||
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;
|
||||
|
||||
packages = (with pkgs; [
|
||||
bitwarden-desktop
|
||||
brave # Internet browser
|
||||
chafa # Terminal image viewer
|
||||
cmdtime # Zsh plugin
|
||||
duf # Df alternative
|
||||
feishin # Jellyfin music client
|
||||
foot
|
||||
fzf
|
||||
gh # GitHub CLI tool
|
||||
glow # Terminal Markdown renderer
|
||||
icosystem # Personal icon theme
|
||||
jellyfin-media-player
|
||||
libreoffice-fresh # Office tools
|
||||
librewolf # Internet browser
|
||||
mpv # Media player
|
||||
nextcloud-client
|
||||
nsxiv # Lightweight image viewer
|
||||
qalculate-gtk # Calculator
|
||||
spotify
|
||||
spotify-adblock
|
||||
unzip
|
||||
vifm # File manager
|
||||
zathura # PDF viewer
|
||||
zellij # Tmux + screen alternative
|
||||
zotero
|
||||
zsh
|
||||
zsh-autosuggestions
|
||||
zsh-syntax-highlighting
|
||||
|
||||
# SMB
|
||||
cifs-utils
|
||||
psmisc
|
||||
|
||||
# Linters and LSPs
|
||||
statix # Nix
|
||||
# TODO Move to devshells
|
||||
# ruff pylint # Python
|
||||
]) ++ (with pkgs-unstable; [
|
||||
logseq # Note taking
|
||||
]) ++ [
|
||||
inputs.zen-browser.packages.${pkgs.system}.default
|
||||
];
|
||||
};
|
||||
|
||||
fonts.packages = with pkgs; [
|
||||
corefonts # Calibri for Uni
|
||||
dejavu_fonts
|
||||
font-awesome # Dependency of Vifm & zsh config
|
||||
letter # Personal font
|
||||
noto-fonts # Dependency of Zellij config
|
||||
noto-fonts-cjk-sans # Dependency of Zellij config
|
||||
noto-fonts-cjk-serif # Dependency of Zellij config
|
||||
noto-fonts-emoji
|
||||
noto-fonts-color-emoji # Emoji's!
|
||||
vistafonts # Microsoft fonts
|
||||
];
|
||||
|
||||
sisyphus = {
|
||||
programs.spotify-adblock.enable = true;
|
||||
services.remEYEnder.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; [
|
||||
# ]) ++ (with pkgs-unstable; [
|
||||
# ]);
|
||||
|
||||
pointerCursor = {
|
||||
inherit (cursor) package name size;
|
||||
gtk.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;
|
||||
};
|
||||
};
|
||||
|
||||
services.syncthing = {
|
||||
enable = true;
|
||||
extraOptions = [
|
||||
"--no-default-folder"
|
||||
];
|
||||
tray.enable = true;
|
||||
};
|
||||
|
||||
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,129 +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" = {
|
||||
enable = config.sisyphus.desktop.hyprland.enable || 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/hypr" = {
|
||||
inherit (config.sisyphus.desktop.hyprland) enable;
|
||||
recursive = true;
|
||||
source = ../../../stow/hyprland/.config/hypr;
|
||||
};
|
||||
".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" = {
|
||||
enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable;
|
||||
source = ../../../stow/swaylock/.config/swaylock;
|
||||
};
|
||||
".config/vifm" = {
|
||||
recursive = true; # Fix history and all working
|
||||
source = ../../../stow/vifm/.config/vifm;
|
||||
};
|
||||
".config/waybar" = {
|
||||
enable = config.sisyphus.desktop.sway.enable || config.sisyphus.desktop.hyprland.enable;
|
||||
source = ../../../stow/waybar/.config/waybar;
|
||||
};
|
||||
".config/zellij" = {
|
||||
source = ../../../stow/zellij/.config/zellij;
|
||||
};
|
||||
".gnupg" = {
|
||||
inherit (config.programs.gnupg.agent) enable;
|
||||
source = ../../../stow/gnupg/.gnupg;
|
||||
recursive = true;
|
||||
onChange = ''
|
||||
chmod 700 /home/tdpeuter/.gnupg
|
||||
# chmod 600 /home/tdpeuter/.gnupg/* # Already read-only?
|
||||
'';
|
||||
};
|
||||
".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) {
|
||||
".oh-my-zsh" = {
|
||||
source = "${pkgs.oh-my-zsh}/share/oh-my-zsh";
|
||||
recursive = true;
|
||||
};
|
||||
".oh-my-zsh/themes/tdpeuter.zsh-theme" = {
|
||||
source = ../../../stow/zsh/.oh-my-zsh/themes/tdpeuter.zsh-theme;
|
||||
};
|
||||
".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";
|
||||
};
|
||||
})
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue