Compare commits

..

76 Commits

Author SHA1 Message Date
18913b9120 remove Redis service configuration from JuiceFS package 2025-03-19 00:55:04 +01:00
49d0088595 add JuiceFS custom mount service configuration 2025-03-19 00:53:22 +01:00
c2adf02a55 update flake.lock files to reflect latest dependencies and revisions 2025-03-04 11:36:08 +01:00
Menno van Leeuwen
60bfa228e6 adds 2025 ssh key pub
Signed-off-by: Menno van Leeuwen <menno@mennos-desktop.dory-gorgon.ts.net>
2025-01-28 15:17:15 +01:00
4e28e5cbb0 Removes, kitty, waybar, hyprland and all it's other side apps required to make that useful
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
2025-01-15 16:20:32 +01:00
68943b57ee fix install_nix function to check for nix-channel instead of nixos-version
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 14:03:16 +01:00
733be4c7c8 refactor setup script to improve argument handling for continuation flag
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 13:44:34 +01:00
a0245017f7 refactor setup script to use a variable for continuation flag handling
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
2025-01-15 13:40:49 +01:00
5803376722 update installation message to instruct users to reopen shell and rerun the script after Nix installation
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
2025-01-15 13:36:17 +01:00
a3f2b7d759 refactor setup script to remove continuation flag handling and streamline installation steps
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 13:33:57 +01:00
0747d2a784 enhance setup script to support continuation of installation process
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
2025-01-15 12:52:40 +01:00
852c5ebef8 add success log and reinvoke script after Nix installation
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:55:27 +01:00
783d1bac25 fix setup script to ensure SELinux config writes correctly and clean up whitespace
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:51:20 +01:00
325310c1ca refactor hostname preparation to check for existing hostname before NixOS verification
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2025-01-15 11:49:54 +01:00
1db4d0c49b add log_warning function to output warnings in yellow
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:48:47 +01:00
4d20f2d7a6 fix SELinux check to correctly compare getenforce output
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:48:06 +01:00
bbd3198976 fix SELinux check to correctly identify Non-NixOS systems
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:47:12 +01:00
d48a3d3925 refactor hostname preparation to check for NixOS only when hardware configuration is absent
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2025-01-15 11:45:14 +01:00
c11c4e7482 add SELinux check and adjust mode in setup script for non-NixOS systems
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:43:11 +01:00
e06b93215f ensure user input is read from the terminal in the warning prompt
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2025-01-15 11:38:51 +01:00
041307aaea update setup script message to indicate compatibility with Fedora
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:35:27 +01:00
1d0ef3d31e refactor setup script to conditionally set hostname and rebuild NixOS only on NixOS systems
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2025-01-15 11:34:06 +01:00
206cbfb564 remove unused flake.lock entries and clean up nixpkgs references
All checks were successful
Nix Format Check / check-format (push) Successful in 44s
2025-01-15 11:09:50 +01:00
bc85c85592 Merge branch 'master' of git.mvl.sh:vleeuwenmenno/dotfiles 2025-01-15 11:09:42 +01:00
569e9698f7 update flake.lock files for home-manager and nixos with new dependency revisions 2025-01-15 11:06:38 +01:00
8eabebb9e8 add gpredict and LazyVim plugin to home-manager packages 2025-01-15 11:06:30 +01:00
58bd63a4c7 remove unused gpg ssh program configuration and update flake.lock dependencies
All checks were successful
Nix Format Check / check-format (push) Successful in 47s
2025-01-09 14:18:01 +01:00
0db42dfcbc adds params to allow experimental features
Some checks failed
Nix Format Check / check-format (push) Has been cancelled
2025-01-09 14:17:18 +01:00
9236bf36f1 revert 1password to nixos only, we install 1password on fedora by hand
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2025-01-02 02:02:04 +01:00
4fab06b82b reencrypt gpg secrets
All checks were successful
Nix Format Check / check-format (push) Successful in 40s
2025-01-02 01:59:48 +01:00
b5775fd29b switch to ptyxis since ghostty not work on fedora atm 2025-01-02 01:59:36 +01:00
135c08eda0 rename gamingpc to desktop 2025-01-02 01:59:23 +01:00
938ab8e83b CLI fixes for Fedora 2025-01-02 01:59:03 +01:00
dfff773f7e moves various things to home manager
All checks were successful
Nix Format Check / check-format (push) Successful in 1m4s
2025-01-02 00:59:22 +01:00
df66535bf1 add back kitty configuration and themes to dotfiles
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-12-30 15:03:07 +01:00
b5e2bb933f add ghostty configuration and update flake.lock for new dependencies
All checks were successful
Nix Format Check / check-format (push) Successful in 40s
2024-12-30 15:00:15 +01:00
f3e07bad16 rename dotf term to dotf hello
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-12-30 13:47:26 +01:00
ff4f509d26 remove kitty configuration and themes from dotfiles
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2024-12-30 13:44:22 +01:00
1a5410ec9e Merge branch 'master' of git.mvl.sh:vleeuwenmenno/dotfiles
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2024-12-30 13:42:05 +01:00
8daace9b77 adds ghostty 2024-12-30 13:38:14 +01:00
65c42118e2 add Whatsie Flatpak reference; update flake.lock for nixpkgs and hyprland; enable NTFS support in ZFS configuration
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-12-27 12:35:51 +01:00
ed0b0508bb Merge branch 'master' of git.mvl.sh:vleeuwenmenno/dotfiles
All checks were successful
Nix Format Check / check-format (push) Successful in 40s
2024-12-27 11:03:45 +01:00
a480aa5804 refactor hyprland configuration to use external monitors.local.conf for monitor settings 2024-12-27 11:03:42 +01:00
70d953b18c add ddrescue to home packages for data recovery 2024-12-27 11:02:45 +01:00
e767549a57 update hyprland configuration to remove 1Password window rule; update flake.lock with new revisions and hashes; modify production SSH config
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-12-24 14:34:21 +01:00
3d97f9b5d7 refactor hyprland configuration and add grimblast screenshot tool; improve key bindings for better usability
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2024-12-24 13:56:54 +01:00
f10988efba update flake.nix to include hyprland and its plugins for gamingpc; remove commented cosmic module configuration
All checks were successful
Nix Format Check / check-format (push) Successful in 44s
2024-12-23 18:14:32 +01:00
7a1d88476e adds hyprland wd with required stuff
All checks were successful
Nix Format Check / check-format (push) Successful in 40s
2024-12-23 14:08:09 +01:00
530fcb10c3 update flake.lock and workstation.nix for nixpkgs revisions; enable Hyprland and add kitty to system packages
Some checks failed
Nix Format Check / check-format (push) Failing after 37s
2024-12-18 10:21:02 +01:00
7d1bc11b4d update flake.lock and workstation.nix for nixpkgs revisions and clean up vscode settings
Some checks failed
Nix Format Check / check-format (push) Failing after 39s
2024-12-18 10:20:02 +01:00
554d9bf7cf add rpi-imager for Raspberry Pi OS image writing
Some checks failed
Nix Format Check / check-format (push) Failing after 37s
2024-12-13 13:31:42 +01:00
8993a09549 remove ollama package configurations
Some checks failed
Nix Format Check / check-format (push) Failing after 45s
2024-12-13 11:24:56 +01:00
1a1067b0d1 adds gparted 2024-12-13 11:24:43 +01:00
82c1d5d995 updated secrets
Some checks failed
Nix Format Check / check-format (push) Failing after 38s
Signed-off-by: Menno van Leeuwen <menno@vleeuwen.me>
2024-12-12 11:02:49 +01:00
2c04a6ef26 disable cosmic de
Some checks failed
Nix Format Check / check-format (push) Failing after 38s
2024-12-12 10:55:54 +01:00
8faab83651 comment out xanmod kernel installation in server configuration
Some checks failed
Nix Format Check / check-format (push) Failing after 53s
2024-12-11 14:58:44 +01:00
84019d2ba8 adds help function and improves parameter handling in upgrade script
Some checks failed
Nix Format Check / check-format (push) Failing after 36s
2024-12-11 14:57:58 +01:00
20a4b6b529 fixes: fulls-peed parameter detection
Some checks failed
Nix Format Check / check-format (push) Failing after 36s
2024-12-11 14:55:49 +01:00
76e9cb0371 adds swap to all devices
Some checks failed
Nix Format Check / check-format (push) Failing after 38s
adds noatime to all devices root partition mount options
adds cosmic desktop to workstations
adds xanmod kernel to workstations
adds xanmod with zfs to servers
adds perplexityai extension to brave
removes openra flatpak
adds threads limit to upgrade command to prevent system freezes
removes fcitx5 completely
2024-12-11 14:51:35 +01:00
56913879cb chore: remove obsolete local host entries from NixOS configuration
Some checks failed
Nix Format Check / check-format (push) Failing after 36s
2024-12-09 16:02:38 +01:00
a4871ba423 final touches upgrade 24.11
Some checks failed
Nix Format Check / check-format (push) Has been cancelled
2024-12-09 16:02:05 +01:00
2c0e3c746b upgrade to 24.11
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-11-29 18:02:30 +01:00
2cd1c77d60 chore: remove obsolete Nginx configuration and related files for personal website
All checks were successful
Nix Format Check / check-format (push) Successful in 48s
2024-11-21 23:12:31 +01:00
5cb3e5fe44 chore: update NixOS configuration to use stable NVIDIA driver package from kernelPackages
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
2024-11-21 22:39:19 +01:00
c5fdac86b2 chore: update NixOS configuration to fetch unstable tarball and switch to stable NVIDIA driver package
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-11-21 22:34:51 +01:00
32f4717c8a chore: update NixOS configuration to use unstable NVIDIA driver package and allow unfree packages
All checks were successful
Nix Format Check / check-format (push) Successful in 36s
2024-11-21 22:33:01 +01:00
031688333e chore: update NVIDIA driver package to beta version for improved compatibility
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2024-11-21 22:27:18 +01:00
eabff41a56 refactor: streamline upgrade script and update Flutter environment variable
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2024-11-21 22:25:19 +01:00
5c73283e5f Merge branch 'master' of git.mvl.sh:vleeuwenmenno/dotfiles
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
2024-11-21 16:52:13 +01:00
0b523463f2 general upgrades and adds adb and ulauncher addon 2024-11-21 16:52:06 +01:00
70335cf637 updates authorized_keys files to add new SSH key for Samsung S24U
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2024-11-18 22:32:49 +01:00
0d26f30261 adds ollama-cuda to home packages for mennos-server
All checks were successful
Nix Format Check / check-format (push) Successful in 59s
2024-11-18 22:11:29 +01:00
93b1aba78d adds nvtop for all hosts
All checks were successful
Nix Format Check / check-format (push) Successful in 1m14s
2024-11-18 21:28:34 +01:00
994d0cdedd Merge branch 'master' of git.mvl.sh:vleeuwenmenno/dotfiles
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-11-18 19:58:31 +01:00
4a80da3995 adds plex media player (new version) as flatpak 2024-11-18 19:58:19 +01:00
728ca39836 disables vesktop on startup, as it is causing wayland crashes on boot 2024-11-18 19:57:40 +01:00
84 changed files with 391149 additions and 392384 deletions

12
.bashrc
View File

@@ -69,6 +69,9 @@ export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$H
# Allow unfree nixos
export NIXPKGS_ALLOW_UNFREE=1
# Allow insecure nixpkgs
export NIXPKGS_ALLOW_INSECURE=1
# Set DOTF_HOSTNAME to the hostname from .hostname file
# If this file doesn't exist, use mennos-unknown-hostname
export DOTF_HOSTNAME="mennos-unknown-hostname"
@@ -81,11 +84,8 @@ if [ -d "/home/menno/Projects/Work" ]; then
export TRADAWARE_DEVOPS=true
fi
# Flutter Environment
if [ -d "$HOME/flutter" ]; then
export PATH="$PATH:$HOME/flutter/bin"
export CHROME_EXECUTABLE=/usr/bin/brave-browser
fi
# Flutter Web and other tools that require Chrome
export CHROME_EXECUTABLE=$(which brave)
# 1Password Source Plugin (Assuming bash compatibility)
if [ -f /home/menno/.config/op/plugins.sh ]; then
@@ -163,5 +163,5 @@ fi
# Display a welcome message for interactive shells
if [ -t 1 ]; then
dotf term
dotf hello
fi

View File

@@ -1,14 +1,17 @@
#!/usr/bin/env bash
apps=(
spotify
whatsapp-for-linux
telegram-desktop
vesktop
trayscale
1password
fcitx5
ulauncher-wrapped
"spotify"
"whatsapp-for-linux"
"telegram-desktop"
"vesktop"
"trayscale"
"1password"
"ulauncher-wrapped --no-window-shadow --hide-window"
"polkit-agent"
"swaync"
"nm-applet"
"blueman-applet"
)
# check if screen has any dead sessions
@@ -18,15 +21,17 @@ fi
echo "Starting auto-start applications..."
for app in "${apps[@]}"; do
if [ -x "$(command -v $app)" ]; then
if screen -list | grep -q $app; then
echo "$app is already running. Skipping..."
app_name=$(echo $app | awk '{print $1}')
app_params=$(echo $app | cut -d' ' -f2-)
if [ -x "$(command -v $app_name)" ]; then
if screen -list | grep -q $app_name; then
echo "$app_name is already running. Skipping..."
continue
fi
echo "Starting $app..."
screen -dmS $app $app
echo "Starting $app_name with parameters $app_params..."
screen -dmS $app_name $app_name $app_params
sleep 1
fi
done

View File

@@ -92,27 +92,28 @@ symlinks() {
done
}
sys_packages_upgrade() {
printfe "%s\n" "cyan" "Running NixOS channel update..."
sudo nix-channel --update
printfe "%s\n" "cyan" "Upgrading NixOS packages..."
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --upgrade --flake .#$DOTF_HOSTNAME --impure
}
####################################################################################################
# Update packages
####################################################################################################
sys_packages() {
printfe "%s\n" "cyan" "Updating system packages..."
if [[ "$OSTYPE" == "darwin"* ]]; then
printfe "%s\n" "cyan" "Updating brew packages..."
brew update
brew upgrade
brew cleanup
else
if [ -x "$(command -v nixos-version)" ]; then
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --flake .#$DOTF_HOSTNAME --impure
printfe "%s\n" "cyan" "Updating nix channels..."
printfe "%s" "cyan" "System channels: "
sudo -i nix-channel --update
printfe "%s" "cyan" "User channels: "
nix-channel --update
printfe "%s\n" "cyan" "Updating nixos flake..."
cd $HOME/dotfiles/config/nixos && nix --extra-experimental-features nix-command --extra-experimental-features flakes flake update
# Exit if this failed
if [ $? -ne 0 ]; then
@@ -121,9 +122,17 @@ sys_packages() {
return
fi
if [ -x "$(command -v apt)" ]; then
printfe "%s\n" "cyan" "Updating apt packages..."
sudo nala upgrade -y
sudo nala autoremove -y --purge
fi
if [ -x "$(command -v yum)" ]; then
printfe "%s\n" "cyan" "Updating yum packages..."
sudo yum update -y
fi
fi
}
cargopkgs() {
@@ -160,15 +169,8 @@ flatpakpkgs() {
}
homemanager() {
printfe "%s\n" "cyan" "Running Home Manager update..."
# Due to weirdness delete this file if it exists
if [ -f "$HOME/.config/mimeapps.list.backup" ]; then
echo "Removing mimeapps.list.backup"
rip "$HOME/.config/mimeapps.list.backup"
fi
cd $HOME/dotfiles/config/home-manager && NIXPKGS_ALLOW_UNFREE=1 home-manager switch -b backup --flake .#$DOTF_HOSTNAME --impure
printfe "%s\n" "cyan" "Updating Home Manager flake..."
cd $HOME/dotfiles/config/home-manager && nix --extra-experimental-features nix-command --extra-experimental-features flakes flake update
}
####################################################################################################
@@ -188,9 +190,6 @@ if [ "$#" -eq 0 ]; then
else
for arg in "$@"; do
case $arg in
--nixos-upgrade)
sys_packages_upgrade
;;
--nixos|nixos|nix|nixos-rebuild)
sys_packages
;;

72
bin/actions/upgrade.sh Executable file
View File

@@ -0,0 +1,72 @@
#!/usr/bin/env bash
source $HOME/dotfiles/bin/helpers/functions.sh
help() {
printfe "%s\n" "green" "Usage: upgrade.sh [options]"
printfe "%s\n" "green" "Options:"
printfe "%s\n" "green" " --ha, -H Upgrade Home Manager packages."
printfe "%s\n" "green" " --nix, -X Upgrade NixOS packages."
printfe "%s\n" "green" " --full-speed, -F Upgrade packages and use all available cores for compilation. (Default: 8 cores)"
printfe "%s\n" "green" " --help, -h Display this help message."
exit 0
}
while [[ "$#" -gt 0 ]]; do
case $1 in
--ha|-H) RUN_HA=true ;;
--nix|-X) RUN_NIX=true ;;
--full-speed|-F) FULL_SPEED=true ;;
--help|-h) help ;;
*) echo "Unknown parameter passed: $1";
help ;;
esac
shift
done
if [[ -z "$RUN_HA" && -z "$RUN_NIX" ]]; then
RUN_HA=true
RUN_NIX=true
fi
# Check if --full-speed flag is passed, otherwise use --cores 8 -j 1
if [[ "$FULL_SPEED" == true ]]; then
CORES=$(nproc)
JOBS=$(nproc)
else
CORES=8
JOBS=1
fi
printfe "%s\n" "cyan" "Limiting to $CORES cores with $JOBS jobs."
if [[ "$RUN_NIX" == true ]]; then
if command -v nixos-rebuild &> /dev/null; then
printfe "%s\n" "cyan" "Upgrading NixOS packages..."
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --upgrade --flake .#$DOTF_HOSTNAME --impure --cores $CORES -j $JOBS
if [[ $? -ne 0 ]]; then
printfe "%s\n" "red" "Failed to upgrade NixOS packages."
exit 1
fi
else
printfe "%s\n" "red" "Skipping nixos-rebuild, NixOS is not installed."
fi
fi
if [[ "$RUN_HA" == true ]]; then
if command -v home-manager &> /dev/null; then
printfe "%s\n" "cyan" "Cleaning old backup files..."
rm -rf $HOME/.config/mimeapps.list.backup
printfe "%s\n" "cyan" "Upgrading Home Manager packages..."
cd $HOME/dotfiles/config/home-manager && NIXPKGS_ALLOW_UNFREE=1 home-manager --extra-experimental-features nix-command --extra-experimental-features flakes switch -b backup --flake .#$DOTF_HOSTNAME --impure --cores $CORES -j $JOBS
if [[ $? -ne 0 ]]; then
printfe "%s\n" "red" "Failed to upgrade Home Manager packages."
exit 1
fi
else
printfe "%s\n" "red" "Home Manager is not installed."
exit 1
fi
fi

View File

@@ -28,8 +28,17 @@ update() {
"$update_script" $@
}
term() {
local term_script="$DOTFILES_BIN/actions/term.sh"
upgrade() {
local upgrade_script="$DOTFILES_BIN/actions/upgrade.sh"
if [[ ! -x "$upgrade_script" ]]; then
printfe "%s\n" "red" "Error: Upgrade script not found or not executable"
return 1
fi
"$upgrade_script" $@
}
hello() {
local term_script="$DOTFILES_BIN/actions/hello.sh"
if [[ ! -x "$term_script" ]]; then
printfe "%s\n" "red" "Error: Terminal script not found or not executable"
return 1
@@ -114,8 +123,9 @@ main() {
# Parse commands
case "${1:-help}" in
update) shift; update "$@" ;;
upgrade) shift; upgrade "$@" ;;
help) shift; help "$@" ;;
term) shift; term "$@" ;;
hello) shift; hello "$@" ;;
secrets) shift; secrets "$@" ;;
auto-start) shift; auto_start "$@" ;;
*) help ;;

View File

@@ -1,9 +1,11 @@
Usage: dotf [OPTIONS] [ARGS]
update: Pull latest changes, and update symlinks and configurations.
update: Pull latest changes, and update symlinks and configurations
Also pulls latest nix channels and updates flakes to latest versions.
upgrade: Runs switch, flake variants for nix switch with upgrade and home-manager.
secrets: Encrypt and decrypt secrets.
auto-start: Start a set of pre-defined applications.
term: Shows the welcome message for the terminal.
hello: Shows the welcome message for the terminal.
help: Shows this help message

View File

@@ -1 +1 @@
/nix/store/4jqpwdf5q8rh58a9vk80r4naaz9aic6z-home-manager-files/.config/autostart/ulauncher.desktop
/nix/store/b21375qzs3rbmhz9wrvyab7jljis7jc3-home-manager-files/.config/autostart/ulauncher.desktop

View File

@@ -1,10 +0,0 @@
[Desktop Entry]
Categories=Network;InstantMessaging;Chat
Exec=vesktop %U
GenericName=Internet Messenger
Icon=vesktop
Keywords=discord;vencord;electron;chat
Name=Vesktop
StartupWMClass=Vesktop
Type=Application
Version=1.4

View File

@@ -16,8 +16,8 @@ config:
mennos-server: ~/dotfiles/config/gitconfig.mennos-server
mennos-desktop: ~/dotfiles/config/gitconfig.linux
mennos-gamingpc: ~/dotfiles/config/gitconfig.linux
mennos-laptop: ~/dotfiles/config/gitconfig.linux
homeserver-pc: ~/dotfiles/config/gitconfig.linux
macos: ~/dotfiles/config/gitconfig.macos
wsl: ~/dotfiles/config/gitconfig.wsl
target: ~/.gitconfig
@@ -36,11 +36,6 @@ config:
source: ~/dotfiles/vscode/settings.json
target: ~/.config/Code/User/settings.json
# Autostart
autostart:
source: ~/dotfiles/config/autostart
target: ~/.config/autostart
# SSH config
ssh:
source: ~/dotfiles/config/ssh/config
@@ -59,12 +54,16 @@ config:
target: ~/.ssh/authorized_keys
chmod: 600
# Ghostty config
ghostty:
source: ~/dotfiles/config/ghostty.conf
target: ~/.config/ghostty/config
# Starship config
starship:
source: ~/dotfiles/config/starship.toml
target: ~/.config/starship.toml
# Packages to install
# Note: Uninstalling packages is not supported, if you remove a package from this list it will not be removed from the system!
# Likewise with flatpak remotes, apt repositories, etc.

View File

@@ -0,0 +1,10 @@
[Flatpak Ref]
Name=com.ktechpit.whatsie
Branch=stable
Title=com.ktechpit.whatsie from flathub
IsRuntime=false
Url=https://dl.flathub.org/repo/
SuggestRemoteName=flathub
GPGKey=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
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo

View File

@@ -0,0 +1,10 @@
[Flatpak Ref]
Name=org.fedoraproject.MediaWriter
Branch=stable
Title=org.fedoraproject.MediaWriter from flathub
IsRuntime=false
Url=https://dl.flathub.org/repo/
SuggestRemoteName=flathub
GPGKey=mQINBFlD2sABEADsiUZUOYBg1UdDaWkEdJYkTSZD68214m8Q1fbrP5AptaUfCl8KYKFMNoAJRBXn9FbE6q6VBzghHXj/rSnA8WPnkbaEWR7xltOqzB1yHpCQ1l8xSfH5N02DMUBSRtD/rOYsBKbaJcOgW0K21sX+BecMY/AI2yADvCJEjhVKrjR9yfRX+NQEhDcbXUFRGt9ZT+TI5yT4xcwbvvTu7aFUR/dH7+wjrQ7lzoGlZGFFrQXSs2WI0WaYHWDeCwymtohXryF8lcWQkhH8UhfNJVBJFgCY8Q6UHkZG0FxMu8xnIDBMjBmSZKwKQn0nwzwM2afskZEnmNPYDI8nuNsSZBZSAw+ThhkdCZHZZRwzmjzyRuLLVFpOj3XryXwZcSefNMPDkZAuWWzPYjxS80cm2hG1WfqrG0Gl8+iX69cbQchb7gbEb0RtqNskTo9DDmO0bNKNnMbzmIJ3/rTbSahKSwtewklqSP/01o0WKZiy+n/RAkUKOFBprjJtWOZkc8SPXV/rnoS2dWsJWQZhuPPtv3tefdDiEyp7ePrfgfKxuHpZES0IZRiFI4J/nAUP5bix+srcIxOVqAam68CbAlPvWTivRUMRVbKjJiGXIOJ78wAMjqPg3QIC0GQ0EPAWwAOzzpdgbnG7TCQetaVV8rSYCuirlPYN+bJIwBtkOC9SWLoPMVZTwQARAQABtC5GbGF0aHViIFJlcG8gU2lnbmluZyBLZXkgPGZsYXRodWJAZmxhdGh1Yi5vcmc+iQJUBBMBCAA+FiEEblwF2XnHba+TwIE1QYTdTZB6fK4FAllD2sACGwMFCRLMAwAFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQQYTdTZB6fK5RJQ/+Ptd4sWxaiAW91FFk7+wmYOkEe1NY2UDNJjEEz34PNP/1RoxveHDt43kYJQ23OWaPJuZAbu+fWtjRYcMBzOsMCaFcRSHFiDIC9aTp4ux/mo+IEeyarYt/oyKb5t5lta6xaAqg7rwt65jW5/aQjnS4h7eFZ+dAKta7Y/fljNrOznUp81/SMcx4QA5G2Pw0hs4Xrxg59oONOTFGBgA6FF8WQghrpR7SnEe0FSEOVsAjwQ13Cfkfa7b70omXSWp7GWfUzgBKyoWxKTqzMN3RQHjjhPJcsQnrqH5enUu4Pcb2LcMFpzimHnUgb9ft72DP5wxfzHGAWOUiUXHbAekfq5iFks8cha/RST6wkxG3Rf44Zn09aOxh1btMcGL+5xb1G0BuCQnA0fP/kDYIPwh9z22EqwRQOspIcvGeLVkFeIfubxpcMdOfQqQnZtHMCabV5Q/Rk9K1ZGc8M2hlg8gHbXMFch2xJ0Wu72eXbA/UY5MskEeBgawTQnQOK/vNm7t0AJMpWK26Qg6178UmRghmeZDj9uNRc3EI1nSbgvmGlpDmCxaAGqaGL1zW4KPW5yN25/qeqXcgCvUjZLI9PNq3Kvizp1lUrbx7heRiSoazCucvHQ1VHUzcPVLUKKTkoTP8okThnRRRsBcZ1+jI4yMWIDLOCT7IW3FePr+3xyuy5eEo9a25Ag0EWUPa7AEQALT/CmSyZ8LWlRYQZKYw417p7Z2hxqd6TjwkwM3IQ1irumkWcTZBZIbBgrSOg6CcXD2oWydCQHWi9qaxhuhEl2bJL5LskmBcMxVdQeD0LLHd8QUnbnnIby8ocvWN1alPfvJFjCUTrmD22U1ycOzRw2lIe4kiQONbOZtdWrVImQQSndjFlisitbmlWHvHm2lOOYy8+GJB7YffVV193hmnBSJffCy4bvkuLxsI+n1DhOzc7MPV3z6HGk4HiEcF0yyt9tCYhpsxHFdBoq2h771HfAcS0s98EVAqYMFnf9em+4cnYpdI6mhIfS1FQiKl6DBAYA8tT3ggla00DurPo0JwX/zN+PaO5h/6O9aCZwV7G6rbkgMuqMergXaf8oP38gr0z+MqWnkfM63Bodq68GP4l4hd02BoFBbDf38TMuGQB14+twJMdfbAxo2MbgluvQgfwHfZ2ca6gyEY+9s/YD1gugLjV+S6CB51WkFNe1z4tAPgJZNxUcKCbeaHNbthl8Hks/pY9RCEseX/EdfzF18epbSjJMPh4DPQXbUoFwmyuYcoBOPmvZHNl9hK7B/1RP8w1ZrXk8qdupC0SNbafX7270B7lMMVImzZetGsM9ypXJ6llhp3FwW09iseNyGJGPsr/dvTMGDXqOPfU/9SAS1LSTY4K9PbRtdrBE318YX8mIk5ABEBAAGJBHIEGAEIACYWIQRuXAXZecdtr5PAgTVBhN1NkHp8rgUCWUPa7AIbAgUJEswDAAJACRBBhN1NkHp8rsF0IAQZAQgAHRYhBFSmzd2JGfsgQgDYrFYnAunj7X7oBQJZQ9rsAAoJEFYnAunj7X7oR6AP/0KYmiAFeqx14Z43/6s2gt3VhxlSd8bmcVV7oJFbMhdHBIeWBp2BvsUf00I0Zl14ZkwCKfLwbbORC2eIxvzJ+QWjGfPhDmS4XUSmhlXxWnYEveSek5Tde+fmu6lqKM8CHg5BNx4GWIX/vdLi1wWJZyhrUwwICAxkuhKxuP2Z1An48930eslTD2GGcjByc27+9cIZjHKa07I/aLffo04V+oMT9/tgzoquzgpVV4jwekADo2MJjhkkPveSNI420bgT+Q7Fi1l0X1aFUniBvQMsaBa27PngWm6xE2ZYvh7nWCdd5g0c0eLIHxWwzV1lZ4Ryx4ITO/VL25ItECcjhTRdYa64sA62MYSaB0x3eR+SihpgP3wSNPFu3MJo6FKTFdi4CBAEmpWHFW7FcRmd+cQXeFrHLN3iNVWryy0HK/CUEJmiZEmpNiXecl4vPIIuyF0zgSCztQtKoMr+injpmQGC/rF/ELBVZTUSLNB350S0Ztvw0FKWDAJSxFmoxt3xycqvvt47rxTrhi78nkk6jATKGyvP55sO+K7Q7Wh0DXA69hvPrYW2eu8jGCdVGxi6HX7L1qcfEd0378S71dZ3g9o6KKl1OsDWWQ6MJ6FGBZedl/ibRfs8p5+sbCX3lQSjEFy3rx6n0rUrXx8U2qb+RCLzJlmC5MNBOTDJwHPcX6gKsUcXZrEQALmRHoo3SrewO41RCr+5nUlqiqV3AohBMhnQbGzyHf2+drutIaoh7Rj80XRh2bkkuPLwlNPf+bTXwNVGse4bej7B3oV6Ae1N7lTNVF4Qh+1OowtGjmfJPWo0z1s6HFJVxoIof9z58Msvgao0zrKGqaMWaNQ6LUeC9g9Aj/9Uqjbo8X54aLiYs8Z1WNc06jKP+gv8AWLtv6CR+l2kLez1YMDucjm7v6iuCMVAmZdmxhg5I/X2+OM3vBsqPDdQpr2TPDLX3rCrSBiS0gOQ6DwN5N5QeTkxmY/7QO8bgLo/Wzu1iilH4vMKW6LBKCaRx5UEJxKpL4wkgITsYKneIt3NTHo5EOuaYk+y2+Dvt6EQFiuMsdbfUjs3seIHsghX/cbPJa4YUqZAL8C4OtVHaijwGo0ymt9MWvS9yNKMyT0JhN2/BdeOVWrHk7wXXJn/ZjpXilicXKPx4udCF76meE+6N2u/T+RYZ7fP1QMEtNZNmYDOfA6sViuPDfQSHLNbauJBo/n1sRYAsL5mcG22UDchJrlKvmK3EOADCQg+myrm8006LltubNB4wWNzHDJ0Ls2JGzQZCd/xGyVmUiidCBUrD537WdknOYE4FD7P0cHaM9brKJ/M8LkEH0zUlo73bY4XagbnCqve6PvQb5G2Z55qhWphd6f4B6DGed86zJEa/RhS
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo

View File

@@ -1,7 +1,7 @@
[Flatpak Ref]
Name=net.openra.OpenRA
Name=tv.plex.PlexDesktop
Branch=stable
Title=net.openra.OpenRA from flathub
Title=tv.plex.PlexDesktop from flathub
IsRuntime=false
Url=https://dl.flathub.org/repo/
SuggestRemoteName=flathub

25
config/ghostty.conf Normal file
View File

@@ -0,0 +1,25 @@
# Theme
# Try new themes with: `ghostty +list-themes`
theme = dark:Adwaita Dark,light:Adwaita
# Keybinds
keybind = ctrl+shift+k=clear_screen
# Font size keybinds
keybind = ctrl+zero=reset_font_size
keybind = ctrl+kp_add=increase_font_size:1
keybind = ctrl+kp_subtract=decrease_font_size:1
# Keybinds for moving windows
keybind = alt+right=next_tab
keybind = alt+left=previous_tab
keybind = shift+alt+left=move_tab:-1
keybind = shift+alt+right=move_tab:1
# Window keybinds
keybind = ctrl+q=close_window
keybind = ctrl+shift+Q=close_all_windows
# Shell integration
shell-integration = bash

View File

@@ -6,9 +6,6 @@
[gpg]
format = ssh
[gpg "ssh"]
program = "op-ssh-sign"
[commit]
gpgsign = true

View File

@@ -1,5 +1,62 @@
{
"nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1733328505,
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-utils": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"ghostty": {
"inputs": {
"flake-compat": "flake-compat",
"flake-utils": "flake-utils",
"nixpkgs-stable": "nixpkgs-stable",
"nixpkgs-unstable": "nixpkgs-unstable",
"zig": "zig",
"zig2nix": "zig2nix"
},
"locked": {
"lastModified": 1740954062,
"narHash": "sha256-VVsSwi1sTVCL0fijNHqw1hv/546acgxxrTAChl/K254=",
"owner": "ghostty-org",
"repo": "ghostty",
"rev": "ee8ae196ee0fad3824c7ae9eac947f2128b4ae4f",
"type": "github"
},
"original": {
"owner": "ghostty-org",
"repo": "ghostty",
"type": "github"
}
},
"home-manager": {
"inputs": {
"nixpkgs": [
@@ -7,43 +64,75 @@
]
},
"locked": {
"lastModified": 1726989464,
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
"lastModified": 1739757849,
"narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
"rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.05",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1730327045,
"narHash": "sha256-xKel5kd1AbExymxoIfQ7pgcX6hjw9jCgbiBjiUfSVJ8=",
"lastModified": 1740932899,
"narHash": "sha256-F0qDu2egq18M3edJwEOAE+D+VQ+yESK6YWPRQBfOqq8=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "080166c15633801df010977d9d7474b4a6c549d7",
"rev": "1546c45c538633ae40b93e2d14e0bb6fd8f13347",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.05",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1738255539,
"narHash": "sha256-hP2eOqhIO/OILW+3moNWO4GtdJFYCqAe9yJZgvlCoDQ=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "c3511a3b53b482aa7547c9d1626fd7310c1de1c5",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "release-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1730531603,
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
"lastModified": 1738136902,
"narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
"rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixpkgs-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable_2": {
"locked": {
"lastModified": 1741010256,
"narHash": "sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "ba487dbc9d04e0634c64e3b1f0d25839a0a68246",
"type": "github"
},
"original": {
@@ -55,9 +144,79 @@
},
"root": {
"inputs": {
"ghostty": "ghostty",
"home-manager": "home-manager",
"nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable"
"nixpkgs-unstable": "nixpkgs-unstable_2"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"zig": {
"inputs": {
"flake-compat": [
"ghostty"
],
"flake-utils": [
"ghostty",
"flake-utils"
],
"nixpkgs": [
"ghostty",
"nixpkgs-stable"
]
},
"locked": {
"lastModified": 1738239110,
"narHash": "sha256-Y5i9mQ++dyIQr+zEPNy+KIbc5wjPmfllBrag3cHZgcE=",
"owner": "mitchellh",
"repo": "zig-overlay",
"rev": "1a8fb6f3a04724519436355564b95fce5e272504",
"type": "github"
},
"original": {
"owner": "mitchellh",
"repo": "zig-overlay",
"type": "github"
}
},
"zig2nix": {
"inputs": {
"flake-utils": [
"ghostty",
"flake-utils"
],
"nixpkgs": [
"ghostty",
"nixpkgs-stable"
]
},
"locked": {
"lastModified": 1738263917,
"narHash": "sha256-j/3fwe2pEOquHabP/puljOKwAZFjIE9gXZqA91sC48M=",
"owner": "jcollie",
"repo": "zig2nix",
"rev": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a",
"type": "github"
},
"original": {
"owner": "jcollie",
"ref": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a",
"repo": "zig2nix",
"type": "github"
}
}
},

View File

@@ -2,13 +2,14 @@
description = "menno's dotfiles";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager/release-24.05";
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
ghostty.url = "github:ghostty-org/ghostty";
};
outputs =
@@ -17,6 +18,7 @@
nixpkgs,
nixpkgs-unstable,
home-manager,
ghostty,
}:
let
system = "x86_64-linux";
@@ -31,11 +33,15 @@
in
{
homeConfigurations = {
"mennos-gamingpc" = home-manager.lib.homeManagerConfiguration {
"mennos-desktop" = home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [ ./home.nix ];
extraSpecialArgs = {
inherit pkgs pkgs-unstable;
inherit
pkgs
pkgs-unstable
ghostty
;
isServer = false;
hostname = "mennos-gamingpc";
};
@@ -45,7 +51,10 @@
inherit pkgs;
modules = [ ./home.nix ];
extraSpecialArgs = {
inherit pkgs pkgs-unstable;
inherit
pkgs
pkgs-unstable
;
isServer = true;
hostname = "mennos-server";
};
@@ -55,7 +64,11 @@
inherit pkgs;
modules = [ ./home.nix ];
extraSpecialArgs = {
inherit pkgs pkgs-unstable;
inherit
pkgs
pkgs-unstable
ghostty
;
isServer = false;
hostname = "mennos-laptop";
};

View File

@@ -30,9 +30,9 @@
home = {
username = "menno";
homeDirectory = "/home/menno";
stateVersion = "24.05";
stateVersion = "24.11";
sessionVariables = {
PATH = "${config.home.homeDirectory}/go/bin:$PATH"; # Removed extra asterisks
PATH = "${config.home.homeDirectory}/go/bin:$PATH";
};
};
}

View File

@@ -1,4 +1,4 @@
{ pkgs-unstable, ... }:
{
home.packages = with pkgs-unstable; [ ollama ];
home.packages = with pkgs-unstable; [ ];
}

View File

@@ -1,4 +1,4 @@
{ pkgs-unstable, ... }:
{
home.packages = with pkgs-unstable; [ ollama-rocm ];
home.packages = with pkgs-unstable; [ ];
}

View File

@@ -1,4 +1,4 @@
{ pkgs-unstable, ... }:
{
home.packages = with pkgs-unstable; [ ollama-cuda ];
home.packages = with pkgs-unstable; [ ];
}

View File

@@ -1,27 +0,0 @@
{
config,
pkgs,
pkgs-unstable,
...
}:
{
# Ollama will be installed in the hosts/ configuration depending on what the host is of this system
# If none is registered, the fallback will be used which installs ollama without GPU acceleration support.
systemd.user.services.ollama = {
Unit = {
Description = "Ollama Service";
After = [ "network.target" ];
};
Service = {
# This resolves to for example: /home/menno/.nix-profile/bin/ollama
ExecStart = "${config.home.profileDirectory}/bin/ollama serve";
Restart = "always";
RestartSec = "10";
};
Install = {
WantedBy = [ "default.target" ];
};
};
}

View File

@@ -21,11 +21,13 @@
[
# General packages
git
onefetch
gnupg
gh
nixfmt-rfc-style
wget
fastfetch
gpredict
# Package management
pipx
@@ -98,6 +100,9 @@
# Editors
neovim
## Neovim plugins
vimPlugins.LazyVim
nano
micro

View File

@@ -1,4 +1,4 @@
{ pkgs, ... }:
{
home.packages = with pkgs; [ ];
home.packages = with pkgs; [ ddrescue ];
}

View File

@@ -32,6 +32,7 @@
{ id = "fihnjjcciajhdojfnbdddfaoknhalnja"; } # I don't care about cookies
{ id = "gphhapmejobijbbhgpjhcjognlahblep"; } # gnome shell integration
{ id = "eadndfjplgieldjbigjakmdgkmoaaaoc"; } # xdebug helper
{ id = "hlgbcneanomplepojfcnclggenpcoldo"; } # perplexity ai companion
];
commandLineArgs = [ ];
};

View File

@@ -0,0 +1,6 @@
{ ghostty, pkgs, ... }:
{
home.packages = [
ghostty.packages.${pkgs.system}.default
];
}

View File

@@ -3,18 +3,24 @@
home.packages = with pkgs; [
# GUI Application
## Utilities
pkgs-unstable.mission-center # Task Manager like Windows 11
gnome.gnome-tweaks
mission-center # Task Manager like Windows 11
gnome-tweaks
pinta # Paint.NET alternative
bottles # Wine manager
trayscale # Tray icon for Tailscale
spacedrive # Virtual filesystem manager
smile # Emoji picker
gnome-frog # OCR tool
gnome.gnome-boxes # Virtual machine manager
gnome-boxes # Virtual machine manager
deja-dup # Backup tool
sqlitebrowser # SQLite database manager
wmctrl # Window manager control (Used in ulauncher)
gparted # Used to nuke Windows off of my system
rpi-imager # Raspberry Pi OS image writer
pavucontrol # PulseAudio volume control
qrencode # qr code generator
grimblast # Screenshot tool
ptyxis # Terminal emulator
## Chat Apps
telegram-desktop

View File

@@ -0,0 +1,7 @@
{ pkgs, pkgs-unstable, ... }:
{
home.packages = with pkgs; [
steamcmd
steam-tui
];
}

View File

@@ -0,0 +1,12 @@
{ config, pkgs, ... }:
{
programs.thunderbird = {
enable = true;
profiles = {
default = {
isDefault = true;
};
};
};
}

View File

@@ -16,7 +16,7 @@ let
render-on-screen = "mouse-pointer-monitor";
show-indicator-icon = true;
show-recent-apps = "4";
terminal-command = "kgx";
terminal-command = "ghostty";
theme-name = "dark";
};
@@ -26,7 +26,8 @@ let
"name" = "Google Search";
"keyword" = "g";
"cmd" = "https://google.com/search?q=%s";
"icon" = "/nix/store/ifh4wl3j3cv7f6b5rdzqcnhw5sa27pg9-ulauncher-5.15.7/share/ulauncher/media/google-search-icon.png";
"icon" =
"/nix/store/ifh4wl3j3cv7f6b5rdzqcnhw5sa27pg9-ulauncher-5.15.7/share/ulauncher/media/google-search-icon.png";
"is_default_search" = true;
"run_without_argument" = false;
"added" = 0;
@@ -36,7 +37,8 @@ let
"name" = "Stack Overflow";
"keyword" = "so";
"cmd" = "https://stackoverflow.com/search?q=%s";
"icon" = "/nix/store/ifh4wl3j3cv7f6b5rdzqcnhw5sa27pg9-ulauncher-5.15.7/share/ulauncher/media/stackoverflow-icon.svg";
"icon" =
"/nix/store/ifh4wl3j3cv7f6b5rdzqcnhw5sa27pg9-ulauncher-5.15.7/share/ulauncher/media/stackoverflow-icon.svg";
"is_default_search" = true;
"run_without_argument" = false;
"added" = 0;
@@ -108,6 +110,7 @@ in
# https://ext.ulauncher.io/-/github-tchar-ulauncher-albert-calculate-anything
# https://ext.ulauncher.io/-/github-isacikgoz-ukill
# https://ext.ulauncher.io/-/github-iboyperson-ulauncher-system
# https://github.com/IgorVaryvoda/ulauncher-perplexity
{
nixpkgs.overlays = [
(final: prev: { ulauncher = prev.ulauncher.override { python3 = pythonWithPackages; }; })
@@ -134,7 +137,8 @@ in
xdg.dataFile."applications/ulauncher.desktop".text = desktopEntry;
# Enable autostart for Ulauncher
xdg.configFile."autostart/ulauncher.desktop".source = "${pkgs.ulauncher}/share/applications/ulauncher.desktop";
xdg.configFile."autostart/ulauncher.desktop".source =
"${pkgs.ulauncher}/share/applications/ulauncher.desktop";
# Overwrite ulauncher settings and shortcuts
home.activation.ulauncher-config = lib.hm.dag.entryAfter [ "writeBoundary" ] ''

View File

@@ -35,6 +35,14 @@
dconf = {
enable = true;
settings = {
# Set nemo as the default file manager and disable desktop icons since this is handled by nemo
"org/gnome/desktop/background" = {
show-desktop-icons = false;
};
"org/gnome/desktop/applications/file-manager" = {
exec = "nemo";
};
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
};
@@ -50,7 +58,7 @@
"com.plexamp.Plexamp.desktop"
"vesktop.desktop"
"org.gnome.Geary.desktop"
"org.gnome.Nautilus.desktop"
"nemo.desktop"
"org.gnome.Console.desktop"
];
};
@@ -58,7 +66,7 @@
# GNOME Terminal settings
"org/gnome/Console" = {
use-system-font = false;
custom-font = "Hack Nerd Font 14";
custom-font = "Hack Nerd Font 13";
theme = "night";
};

View File

@@ -30,7 +30,7 @@
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = {
binding = "<Ctrl><Alt>t";
command = "kgx";
command = "ptyxis --new-window"; # ghostty doesn't work on Fedora atm
name = "terminal";
};
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emotes" = {

View File

@@ -1 +0,0 @@
{ config, pkgs, ... }: { }

View File

@@ -1,5 +1,8 @@
{ config, pkgs, ... }:
{
# Install xanmod kernel
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_stable.zfs;
services.openssh = {
enable = true;
ports = [ 400 ];

View File

@@ -1,4 +1,4 @@
{ config, pkgs, ... }:
{ pkgs, ... }:
{
# Enable the X11 windowing system.
services.xserver.enable = true;
@@ -7,7 +7,19 @@
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
environment.systemPackages = with pkgs; [ gnome3.gnome-session ];
# Enable the Cosmic Desktop Environment.
# services.desktopManager.cosmic.enable = true;
# services.displayManager.cosmic-greeter.enable = true;
# Install xanmod kernel
boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_stable;
environment.systemPackages = with pkgs; [
gnome-session
xdg-desktop-portal
xdg-desktop-portal-gnome
xdg-desktop-portal-gtk
];
# Configure keymap in X11
services.xserver.xkb = {
@@ -25,16 +37,6 @@
pulse.enable = true;
};
# Japanese input
i18n.inputMethod = {
enabled = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-mozc
fcitx5-gtk
];
ibus.engines = with pkgs.ibus-engines; [ mozc ];
};
# Open ports in the firewall
networking.firewall = {
enable = true;

View File

@@ -66,5 +66,5 @@
# 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 = "24.05"; # Did you read the comment?
system.stateVersion = "24.11"; # Did you read the comment?
}

View File

@@ -1,28 +1,80 @@
{
"nodes": {
"nixpkgs": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1730741070,
"narHash": "sha256-edm8WG19kWozJ/GqyYx2VjW99EdhjKwbY3ZwdlPAAlo=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "d063c1dd113c91ab27959ba540c0d9753409edf3",
"lastModified": 1717312683,
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
"owner": "nix-community",
"repo": "flake-compat",
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.05",
"owner": "nix-community",
"repo": "flake-compat",
"type": "github"
}
},
"nixos-cosmic": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1741055622,
"narHash": "sha256-z1y6MSfJ9pntwJ7YCkjNyGnqvYMHMnB9kH3v5Z/g9vQ=",
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"rev": "f3f91440dfd18518445d9ab757cf3e540c7fd6ab",
"type": "github"
},
"original": {
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1740828860,
"narHash": "sha256-cjbHI+zUzK5CPsQZqMhE3npTyYFt9tJ3+ohcfaOF/WM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "303bd8071377433a2d8f76e684ec773d70c5b642",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1740865531,
"narHash": "sha256-h00vGIh/jxcGl8aWdfnVRD74KuLpyY3mZgMFMy7iKIc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5ef6c425980847c78a80d759abc476e941a9bf42",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1730531603,
"narHash": "sha256-Dqg6si5CqIzm87sp57j5nTaeBbWhHFaVyG7V6L8k3lY=",
"lastModified": 1741010256,
"narHash": "sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "7ffd9ae656aec493492b44d0ddfb28e79a1ea25d",
"rev": "ba487dbc9d04e0634c64e3b1f0d25839a0a68246",
"type": "github"
},
"original": {
@@ -32,9 +84,26 @@
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1740932899,
"narHash": "sha256-F0qDu2egq18M3edJwEOAE+D+VQ+yESK6YWPRQBfOqq8=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1546c45c538633ae40b93e2d14e0bb6fd8f13347",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs",
"nixos-cosmic": "nixos-cosmic",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable"
}
}

View File

@@ -2,8 +2,9 @@
description = "menno's dotfiles";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.05";
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
};
outputs =
@@ -11,6 +12,7 @@
self,
nixpkgs,
nixpkgs-unstable,
nixos-cosmic,
}:
let
system = "x86_64-linux";
@@ -35,7 +37,10 @@
./configuration.nix
];
specialArgs = {
inherit pkgs-unstable;
inherit
pkgs-unstable
nixos-cosmic
;
isWorkstation = true;
isServer = false;
};
@@ -49,7 +54,10 @@
./configuration.nix
];
specialArgs = {
inherit pkgs-unstable;
inherit
pkgs-unstable
nixos-cosmic
;
isWorkstation = true;
isServer = false;
};

View File

@@ -8,6 +8,13 @@
{
imports = [ /etc/nixos/hardware-configuration.nix ];
networking.hostName = "mennos-gamingpc";
fileSystems."/" = {
device = "/dev/disk/by-uuid/ac5a70cf-4b12-4d02-b5b4-a6eddf4c40b5";
fsType = "ext4";
options = [ "noatime" ];
};
networking.interfaces.enp8s0.wakeOnLan = {
enable = true;
};
@@ -17,28 +24,34 @@
boot.loader.efi.canTouchEfiVariables = true;
# Enable Vulkan support for AMD graphics cards
hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ amdvlk ];
hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ amdvlk ];
# Enable OpenGL
hardware.opengl = {
# Swap file (Desktop PC has 48GB of RAM so 8GB swap should be enough)
swapDevices = [
{
device = "/swapfile";
size = 8192;
}
];
# Enable graphics
hardware.graphics = {
enable = true;
driSupport = true;
driSupport32Bit = true;
# Enable the latest AMDGPU drivers
extraPackages = with pkgs; [
amdvlk
rocm-opencl-icd
rocm-opencl-runtime
rocmPackages.clr
];
};
# Add ROCm packages
# Add ROCm packages and nvtop
environment.systemPackages = with pkgs; [
rocmPackages.rocm-smi
rocmPackages.clr
rocmPackages.rocm-core
rocmPackages.hipcc
rocmPackages.rocm-device-libs
nvtopPackages.amd
];
}

View File

@@ -9,44 +9,76 @@
imports = [ /etc/nixos/hardware-configuration.nix ];
networking.hostName = "mennos-laptop";
# Bootloader.
fileSystems."/" = {
device = "/dev/disk/by-uuid/1356cd09-5c55-45b5-8b06-6aadc84cee37";
fsType = "ext4";
options = [ "noatime" ];
};
# Bootloader
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Enable OpenGL
hardware.opengl.enable = true;
# Enable graphics
hardware.graphics = {
enable = true;
extraPackages = with pkgs; [
amdvlk
rocmPackages.clr
];
};
# Load nvidia driver for Xorg and Wayland
services.xserver.videoDrivers = [ "nvidia" ];
# Swap file (Laptop has 32GB of RAM so 8GB swap should be enough)
swapDevices = [
{
device = "/swapfile";
size = 8192;
}
];
# Load AMD and NVIDIA drivers for Xorg and Wayland
services.xserver.videoDrivers = [
"nvidia"
"amdgpu"
];
# Monitoring tools
environment.systemPackages = with pkgs; [
nvtopPackages.nvidia
nvtopPackages.amd
glxinfo
vulkan-tools
];
hardware.nvidia = {
# Modesetting is required.
# Enable modesetting
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = false;
# Power management configuration
powerManagement = {
enable = true;
finegrained = false; # Disabled as it requires offload mode
};
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false;
# Prime configuration for hybrid graphics
prime = {
offload = {
enable = true;
enableOffloadCmd = true;
};
# AMD GPU as primary
amdgpuBusId = "PCI:5:0:0";
nvidiaBusId = "PCI:1:0:0";
};
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
# Currently alpha-quality/buggy, so false is currently the recommended setting.
open = false;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
boot.kernelParams = [
"amdgpu.sg_display=0"
"nvidia-drm.modeset=1"
];
}

View File

@@ -10,6 +10,13 @@
/etc/nixos/hardware-configuration.nix
./mennos-server/zfs.nix
];
fileSystems."/" = {
device = "/dev/disk/by-uuid/dd3fa13c-a1bd-4dc9-bcb4-aee17c7f12d1";
fsType = "ext4";
options = [ "noatime" ];
};
networking.hostName = "mennos-server";
networking.hostId = "64519940";
@@ -17,15 +24,17 @@
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# Load nvidia driver for Xorg and Wayland
services.xserver.videoDrivers = [ "nvidia" ];
# Enable oepngl and 32-bit support
hardware.opengl = {
enable = true;
driSupport = true;
driSupport32Bit = true;
};
# Enable graphics
hardware.graphics.enable = true;
# nvtop, a system monitor for GPUs
environment.systemPackages = with pkgs; [ nvtopPackages.nvidia ];
# Enable NVIDIA Docker support
# test with: $ docker run --rm -it --device=nvidia.com/gpu=all ubuntu:latest nvidia-smi
@@ -34,34 +43,22 @@
enable = true;
};
# Swap file (Laptop has 64GB of RAM so 16GB swap should be enough)
swapDevices = [
{
device = "/swapfile";
size = 16384;
}
];
hardware.nvidia = {
# Modesetting is required.
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = false;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
# Currently alpha-quality/buggy, so false is currently the recommended setting.
open = false;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
nvidiaSettings = true;
# Optionally, you may need to select the appropriate driver version for your specific GPU.
# Use the latest driver from the unstable channel
package = config.boot.kernelPackages.nvidiaPackages.stable;
};
}

View File

@@ -60,7 +60,10 @@ in
};
# Enable ZFS support
boot.supportedFilesystems = [ "zfs" ];
boot.supportedFilesystems = [
"ntfs"
"zfs"
];
# ZFS system services
services.zfs = {

View File

@@ -7,8 +7,5 @@
127.0.0.1 fr.discountoffice.be.local
127.0.0.1 api.local
127.0.0.1 mailpit.local
10.64.148.230 api.dev
10.64.148.230 subsites.dev
'';
}

View File

@@ -1,15 +1,15 @@
{ config, pkgs, ... }:
let
files = builtins.removeAttrs (builtins.readDir ./.) [
"default.nix"
"mennovanleeuwen.nl"
];
# Import all other .nix files as modules
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
in
{
# Import all the package modules
imports = moduleFiles;
imports = [
./juicefs.nix
];
# Enable JuiceFS
services.juicefsCustom = {
enable = true;
redisUrl = "redis://:your-redis-password@localhost:6379/0";
mountPoint = "/mnt/object_storage";
cacheDir = "/var/jfsCache";
};
}

View File

@@ -0,0 +1,97 @@
{ config, pkgs, lib, ... }:
with lib;
let
cfg = config.services.juicefsCustom;
in {
options.services.juicefsCustom = {
enable = mkEnableOption "JuiceFS custom mount service";
mountPoint = mkOption {
type = types.str;
default = "/mnt/object_storage";
description = "Directory where JuiceFS should mount the filesystem";
};
cacheDir = mkOption {
type = types.str;
default = "/var/jfsCache";
description = "Directory for JuiceFS cache";
};
cacheSize = mkOption {
type = types.int;
default = 204800;
description = "Cache size in MiB";
};
redisUrl = mkOption {
type = types.str;
default = "redis://:PASSWORD@localhost:6379/0";
description = "Redis URL for metadata storage (replace PASSWORD with actual password)";
};
bufferSize = mkOption {
type = types.int;
default = 1024;
description = "Buffer size in MiB";
};
prefetch = mkOption {
type = types.int;
default = 4;
description = "Prefetch size";
};
attrCache = mkOption {
type = types.int;
default = 3;
description = "Attribute cache expiration time in seconds";
};
entryCache = mkOption {
type = types.int;
default = 3;
description = "Entry cache expiration time in seconds";
};
openCache = mkOption {
type = types.int;
default = 3;
description = "Open file cache expiration time in seconds";
};
};
config = mkIf cfg.enable {
# Install JuiceFS package
environment.systemPackages = [ pkgs.juicefs ];
# Create the mount and cache directories
systemd.tmpfiles.rules = [
"d ${cfg.mountPoint} 0755 root root -"
"d ${cfg.cacheDir} 0755 root root -"
];
# Add the JuiceFS systemd service
systemd.services.juicefs = {
description = "JuiceFS Mount Service";
wantedBy = [ "multi-user.target" ];
before = [ "docker.service" ];
after = [ "network.target" ];
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.juicefs}/bin/juicefs mount ${cfg.redisUrl} ${cfg.mountPoint} "
+ "--cache-dir=${cfg.cacheDir} "
+ "--buffer-size=${toString cfg.bufferSize} "
+ "--prefetch=${toString cfg.prefetch} "
+ "--cache-size=${toString cfg.cacheSize} "
+ "--attr-cache=${toString cfg.attrCache} "
+ "--entry-cache=${toString cfg.entryCache} "
+ "--open-cache=${toString cfg.openCache}";
Restart = "on-failure";
};
};
};
}

View File

@@ -1 +0,0 @@
dist/

View File

@@ -1,12 +0,0 @@
build:
cd ../; docker compose down;
rm -rf dist/
mkdir dist
pandoc index.md --template=template.html --metadata title="Resume - Menno Cornelis van Leeuwen" -o dist/index.html
pandoc index.md -o dist/index.pdf
mkdir dist/css/
cp css/stylesheet.css dist/css/stylesheet.css
cd ../; docker compose up -d;

View File

@@ -1,84 +0,0 @@
# Menno Cornelis van Leeuwen
## Contact Information
**Location:** Reguliersdwarsstraat 12A, 1947 GG, Beverwijk
**Phone:** +31 (06) 499-351-79
**Email:** menno@vleeuwen.me
**LinkedIn:** [linkedin.com/in/menno-v-44477b176/](https://www.linkedin.com/in/menno-v-44477b176/)
**GitHub:** [github.com/vleeuwenmenno](https://github.com/vleeuwenmenno)
## Summary
An enthusiastic software engineer who likes to learn new things and discover new oppertunities. Experienced in programming in Flutter, Dart, PHP and C#.
Although my current language of choice is Dart with the Flutter framework but I am open to anything to see what is beyond my horizon.
Aside from that I am also experienced in building, maintaining and repairing computer systems and networks.
## Skills
- **Programming Languages:** C# .NET, Flutter, Dart, PHP, Laravel
- **Tools & Technologies:** Git, Docker, Provider (Flutter), VS Code, Rider, PHP Storm
- **Methodologies:** Agile/Scrum, Object-Oriented Programming
## Experience
### **Software Engineer | Sandwave / Your.Online (Formerly TWS) | Nov 2021 Present**
- Worked in an agile/scrum environment, sparred with smaller teams.
- Implemented complex authentication flows with modern security practices.
- Guarded the dependencies
### **.NET / PHP Developer | Minty Media | Nov 2020 Oct-2021**
- Implemented API bridges between Bol.com and WooCommerce
- Setup CI/CD pipelines to streamline testing and deployment of applications
- Started the development of a full hosting panel solution including DNS Editor, Domain purchasing, VPS Options etc.
### **Flutter Developer | Bots.io (Formerly RevenYOU) | Mar 2019 Oct-2019**
- Spearheaded the development of the Bots.io App, with now more than 1M+ downloads.
- Implemented the skeleton of the app and sparred with UI designers to make it the best it can be.
### **All Round/Repair Technician/Sales | Com Today | Jan 2014 Mar 2019**
- Developed an in-house cashier program in PHP to track sales, expenses, stock and ongoing tasks.
- Worked on repairing computers, laptops, phones, and anything in between.
- Maintained stock, sold new systems to customers, and assisted customers with technical support.
## Education
### **MBO 4 Application & Media developer | Nova College in Beverwijk | Aug 2015 May 2019**
- Working with scrum/agile methodologies.
- Improved my existing self-thought knowledge in Object-oriented programming and design patterns.
- Using version control to manage code with Git and Subversion.
### **MBO 2 Occupation IT Employee | Nova College in Beverwijk | 2012 2014**
- Building, diagnosing and repairing computers.
- Completed multiple Cisco and Aries courses related to networking and computer technologies.
## Hobbies
- Astrophotography & image processing
- Beautiful photos of galaxies, nebula and star fields.
- Take a look at [astrobin.com/users/vleeuwenmenno](https://www.astrobin.com/users/vleeuwenmenno/) for my best work.
- Learning about cultures & languages while travelling
- Trying to go outside my comfort zone and speak another language while learning about their cultures.
- Creating endless programming test projects
- That sometimes evolve into something more
- FPV Freestyle Drones & Cinematic
- Building, flying and of course crashing drones, usually in the summer.
## References
Available upon request.

View File

@@ -1,13 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Resume - Menno Cornelis van Leeuwen</title>
<link rel="stylesheet" href="/css/stylesheet.css" />
</head>
<body class="stackedit">
<div class="stackedit__html">$body$</div>
</body>
</html>

View File

@@ -1,13 +0,0 @@
{ pkgs, ... }:
{
# Resume/CV Website (Nginx)
# services.nginx = {
# enable = true;
# virtualHosts."localhost:4203" = {
# root = "/home/menno/dotfiles/config/nixos/packages/server/mennovanleeuwen.nl";
# locations."/" = {
# index = "index.html";
# };
# };
# };
}

View File

@@ -2,9 +2,7 @@
{
# Import all the package modules
imports = [
./1password.nix
./flatpak.nix
./steam.nix
./pano.nix
./1password.nix
];
}

View File

@@ -1,10 +0,0 @@
{
config,
lib,
pkgs,
...
}:
{
environment.systemPackages = [ (pkgs.callPackage ./pano { }) ];
}

View File

@@ -1,60 +0,0 @@
{
stdenv,
fetchzip,
lib,
gnome,
glib,
libgda,
gsound,
substituteAll,
wrapGAppsHook,
}:
stdenv.mkDerivation rec {
pname = "gnome-shell-extension-pano";
version = "v23-alpha3";
src = fetchzip {
url = "https://github.com/oae/gnome-shell-pano/releases/download/${version}/pano@elhan.io.zip";
sha256 = "LYpxsl/PC8hwz0ZdH5cDdSZPRmkniBPUCqHQxB4KNhc=";
stripRoot = false;
};
patches = [
(substituteAll {
src = ./gnome-shell-extension-pano.patch;
gsound_path = "${gsound}/lib/girepository-1.0";
gda_path = "${libgda}/lib/girepository-1.0";
})
];
buildInputs = [
gnome.gnome-shell
libgda
gsound
];
nativeBuildInputs = [ wrapGAppsHook ];
installPhase = ''
runHook preInstall
local_ext_dir=$out/share/gnome-shell/extensions/pano@elhan.io
install -d $local_ext_dir
cp -r * $local_ext_dir
# Ensure typelibs are directly accessible
mkdir -p $out/lib/girepository-1.0
ln -s ${gsound}/lib/girepository-1.0/* $out/lib/girepository-1.0/
ln -s ${libgda}/lib/girepository-1.0/* $out/lib/girepository-1.0/
runHook postInstall
'';
meta = with lib; {
description = "Pano GNOME Shell Clipboard Management Extension (${version} pre-release)";
homepage = "https://github.com/oae/gnome-shell-pano";
license = licenses.gpl2Plus;
platforms = platforms.linux;
maintainers = [ maintainers.zvictor ];
};
}

View File

@@ -1,10 +0,0 @@
--- a/extension.js
+++ b/extension.js
@@ -1,3 +1,7 @@
+import GIRepository from 'gi://GIRepository';
+GIRepository.Repository.prepend_search_path('@gda_path@');
+GIRepository.Repository.prepend_search_path('@gsound_path@');
+
import Gio from 'gi://Gio';
import GLib from 'gi://GLib';
import * as extension_js from 'resource:///org/gnome/shell/extensions/extension.js';

View File

@@ -1,13 +0,0 @@
# In your configuration.nix
{ config, pkgs, ... }:
{
programs.steam = {
enable = true;
# Open ports in the firewall for Steam Remote Play
remotePlay.openFirewall = true;
# Open ports in the firewall for Source Dedicated Server
dedicatedServer.openFirewall = true;
# Open ports in the firewall for Steam Local Network Game Transfers
localNetworkGameTransfers.openFirewall = true;
};
}

View File

@@ -14,6 +14,8 @@
"video"
"render"
"users"
"input"
"adbusers"
];
};
}

View File

@@ -1,2 +1,8 @@
# This is the authrorized_keys file for the user mennos-laptop
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
# Samsung S24U
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMSJwfqOZQxGDbM07JziQeBNirvQxhFd6nEwWPjy1zCo u0_a555@localhost
# Menno's 2025 SSH Key
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE22Hfx8wgkc57TXX1TCMHcNrCdjbfog5QeHFJfl7IeD mennos-2025-sshkey

View File

@@ -1,2 +1,8 @@
# This is the authrorized_keys file for the user mennos-gamingpc
# This is the authrorized_keys file for the user mennos-laptop
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
# Samsung S24U
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMSJwfqOZQxGDbM07JziQeBNirvQxhFd6nEwWPjy1zCo u0_a555@localhost
# Menno's 2025 SSH Key
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE22Hfx8wgkc57TXX1TCMHcNrCdjbfog5QeHFJfl7IeD mennos-2025-sshkey

View File

@@ -1,2 +1,8 @@
# This is the authrorized_keys file for the user mennos-laptop
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
# Samsung S24U
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMSJwfqOZQxGDbM07JziQeBNirvQxhFd6nEwWPjy1zCo u0_a555@localhost
# Menno's 2025 SSH Key
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE22Hfx8wgkc57TXX1TCMHcNrCdjbfog5QeHFJfl7IeD mennos-2025-sshkey

View File

@@ -1,2 +1,8 @@
# This is the authrorized_keys file for the user mennos-server
# This is the authrorized_keys file for the user mennos-laptop
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
# Samsung S24U
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMSJwfqOZQxGDbM07JziQeBNirvQxhFd6nEwWPjy1zCo u0_a555@localhost
# Menno's 2025 SSH Key
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE22Hfx8wgkc57TXX1TCMHcNrCdjbfog5QeHFJfl7IeD mennos-2025-sshkey

View File

@@ -1,9 +1,9 @@
-----BEGIN PGP MESSAGE-----
jA0ECQMIdzswSvGKIFj/0sAIAc0IMa6q0CiEqk/RjpEaea0RpVSxKL8v/E0HyqiC
nZBGvcaadZ+uQ/Ndxk3WfehTYuXWZk9gotfoQ91TrvMcCNt0ag6sMdVLHtEzoXWF
93wn4UDc9kv56mfU+JnSK5Rv6euXhZ8ZapEqFIvmh7kGkX/nwTJFNU/f6jz0yhaw
uu/pa9b9NFpIH7IoelJ2SzJMX3ZhX5aVcY0ojOEvlfRxOGdsOxUK2Ifd9MWV9Tyd
Sgsa3uFFcL4STwXNq6umwlfkk/SOqtq5WAA=
=Zo/k
jA0ECQMIyS/QhVzk8iz/0sAIAYCHd2CTLa3u1Ajj4oj7tqJivyB2moggjt7f0uep
qpah5aM35C/BnzMVRkg6CBWbMFhBRYlRaJ7oyQMPlq/OAtDuk4heXhQfqN24PEEb
X5SzXFaTtW01HIHy2JNaVaz7qU4RsRctayjPe6jBKfkDrxbLpKtUf1ETNuwqgMOR
pyZjgoBO6Wo2DUkeq3cku95ejsX/63XXnTKW0CXwVdvolo7OzdBIfNsiSMTnvnr5
s1jFbGH7K3QOz7FcSyanG4gK+z3x6Njaduc=
=tmo1
-----END PGP MESSAGE-----

View File

@@ -1,9 +1,9 @@
-----BEGIN PGP MESSAGE-----
jA0ECQMI71xa/M78CPH/0sABAWePpHsecx8nyyOTGKuQGT2gXkYLPDnYZ+tZRCWX
YTGatN0+/jGc+5aluZfIZxJ7ukR+Fv+0DmdiWLHD/tNZsCvhYv5ULUjqW4uZWxsZ
dnS6AnvYYVKPd8g9RopIh/gKQpEnMWZkD1LQ/xrXByMBS/yn+MZ6cwV33k7lWC3x
qGlpdk9nmmTdEdEW8Jcby1izrNFzrOhMVxmokZ96q3S+/9gzJs9awdNoCqMhG7mR
7BeCD7ljyg8rvFkQyccrdUOQPQ==
=blvW
jA0ECQMI3rCkM4WCKnn/0sASAQjifcMA4M5hjwkP8dZXxah9d8g8YeofFTPLgPMm
zUR7BcyuniGeHkdkPhVIPDU9ea8BB6JVgldGNeHOh0Rj+OdO95RzPkC4VyGlhVC7
qoDdy+QQUOVImgEjbNLSOD3VKJzYQMfcmF2X6yZ0TpfOeHZyOmaVXQU+hdIl2g9r
zJjzKh2Ukp0VAF+1mp6mcU3fKhwJyffxF1491ExXYM80q1+S247/zLgU1/nQi/u5
cX1cV14qi/nFQdmuNlNjahusvSpVtkhsa8TYMRyDP9rr+WdQ
=an0w
-----END PGP MESSAGE-----

View File

@@ -1,10 +1,10 @@
-----BEGIN PGP MESSAGE-----
jA0ECQMI9K855NRHvZn/0sA2Ad1WfRHgB8vPtrPs9XXSm/NRgopAvuUON9AucQEE
MCwfFuVbCyI9Ys3QrlyVhVgCb87YWYymT6LwxA8qSci1Y+WO5Pou5QD9zKnhNR2m
KusG784K9YYj0cs7F0h8ecHAqpiu+kjhD6lEENCtYrHBd2Nv5Y3dTsFVgWVkBAYw
YMoRb/e3d76BM2Jxm3nQLC+Bq6YrAPBbV6iwAZ/3yiunVBmzSdtB5Ksiz2y14C2U
X3c6+m5x1eZj8IIufp0HR6AKbhtrHI5pRWtSEIcZnR9L1AiPTCfaT18JH2qZ1x81
qQdWGj2donyx451Gbi1JXPrCdOP3tszR
=BP/T
jA0ECQMIECtNQigofUT/0sA7AfQFumfYw02g3y4nQuPYrfbgyHuMVCsMk+nLlcLb
5I+zgR8c1ie/S5XBk3wLlJ0suhb8m4ifZOJoRcIW7G+ISTPjIetaJQnkvObKUBgG
QXz54oWcQYXMeaGcEq442gU0x+S3HVU2GcIhRdiUuZ5DYbaEsYnLcPLBrp73a/wE
+hb3IZC1zGcijpC4ovcVVAZvHUaKpV0hCzJXNGgvPW0H7/GRxQyPKjghUQ7DgCRu
4u7t/GU2JDrep+nteUu5Rs+P7bypZdyripMj6BxoqHmwjj1ddeSK7Bv602Nt+7/n
Bcg8xpViAasXREuaR3Z6r9SFlex7qbQjMMBtb2M=
=wrl9
-----END PGP MESSAGE-----

View File

@@ -1,12 +1,9 @@
-----BEGIN PGP MESSAGE-----
jA0ECQMI35Tv4sOHHFP/0sCiATjXa++7x2ShpxMOSYkYv9EjI3Bw20iC3S6eN9EM
mKo/zxJHCytI936OT9buxcEWgz9eIzQqFPl1H6W+ElKbQ79X401hLC3VkFUnlF/5
RPAyVObbSoH1u1H3KVJ0LIguyCghxqxBCt1BEmS8R+y27PC0yCAl3fms6bfSt+mF
MZIGXSrczmmuwzIRIUhXwqEpSLnnmpziQ22B/Npr2Asu3nwCA4zHan7doVPwCroH
XA5HsQThAWx5G5FyQRAeAPneg6icJso7gvqBVMkuGLfh1BGAf2u5eHgbKopfdYh2
NpE4JujzwMpp3e36NAuYcaR3JCodB3ULp0iPBtfqC7nfgm/XWHtul9pyIjIqFZG7
8NFHRcbvvVRpP04/ESWS9Qlbc8x9A3jV3JdCHLup/W5xVJBVH0/XBP70rRCyVyxQ
/4NJviMnzAXfFDRoEcNKVtdz2zQ20gVCBBOFVv/aGAtpuZNC
=DPk2
jA0ECQMILwzTWNDBbZX/0sAeAQMlmiKRJM5YPtC78LvlLroqE5R6hysJq1nGV34U
CcY7XmuLz/Bvx2/ZGE1urY48AmgNZraiKOh8kfTG5T7dCTqrkMiz1MpNRYVdnXvW
LOanl3+alv6tmosD52zn4vRmRCnIaqE/k6ne+NV4BuRj0u9qWLoNI/7uGFnjcvI3
mGYlDF7ArQH0gVpmW8wmlNFzMPe4ccqWMjGbpB1h3TEALy4nh2wwNH5PvF1FKesJ
iq4Vvhslo8LbyjQdkA7/fPlYEu1MDJKDCaHWwmAevMwNuGNLrdupyOf2KkHSYmUB
=ULsR
-----END PGP MESSAGE-----

View File

@@ -0,0 +1,34 @@
-----BEGIN PGP MESSAGE-----
jA0ECQMIBG1OSGN+kQ7/0uoB3oIHdCBKz0mBPJE6y5F5rMmFqXo2VCkDFJeUw9eH
E0vJmde7ID6HprsgY+f+CCvbTbh3u7s2M0OBi2wU8nXzwSr4w9h43k6hlIAOZVbU
IKior/zc3TK0tcFpfBzIqwa8MJSoKor3l9nGfi/D2ugayhrrZoWxA5i8yVePFUyA
QKo/6J8v+IP6Ua9shgFvi9NcX7m1h+5rn+lZl+utlycsD00BeytMKsrQVjaHg5KC
mDC8fxxXbMiVBtdnOglkGZJUX9ca1PnwB7PWXKY4fhsVv18DuMTRU0TngcNLcPa+
TXYpUUG/saog0+FVQcRbnapWViNHUI1j/ggVgqD0Kpi0Aw1XpREBqCSvZlKPv4P1
AdDPiQZ8Y2FcI3IxvfPbKCZ3bbQiYz9wkdIwMdBJKav8Js3Ig8xitIiScj/jWxxo
q7eGrG1GueV3WeK8vL71aPhWSrK6oE2kGm8pDrktklfOSqxh2vKEnetpTPSe+1LI
Nc7vWyoM9yLrjbX4zxMq4xIcty2aQ4iY/BKmAh0M/FcPkim8D+ypFF/ri+hB5/cH
gCODyjwtREYeTVfAtyIhHmZE1LeiFZZhE6dpbwehWlRYw6VAosKbjcK4dvEz+Cm8
qMjmfBRTS39j+gOfVvZo5F/02K5V2DiSYRdeTnsCdQ/jzJdJ2yoxCGHeMNm1Prv6
vL1MCGB17QyEaVdN04itCp4dsVDvUZypbXrspuusCiXlMfILeQIjW45mhBTqNnjN
11J2SztGIe1v0S9V2kuitbmJU5rmjaRv4hCV0KFCEyjXvJzQ8xfjcoefDEXxNObP
sV1gu4GURrfsRvUe6/IV46EfEi15VnxIDNB9Le5Jd0YBkMJe03I6RHAB1Ud4o8PL
/Bl3lBJJXZNUlk8jnZt5o5veox77U0CoIq0qZLdCZXbJt08FrZzFcUFTW0hiR0at
uthFOeoMa69FK+9G1Q1S5DL1OyJRzNnsZo6xk13c/j2KaLK9LnIOM+6zNllS162T
l2GWd/ISNXGkOqbpx1yldEBKUUMS7unYSYLKh0BLBlbEYmdRPjtlz/a4SaJ1uyf0
tT5brknqrlYC7vPlTUKQj08vtVunTaV8tK3TNygewkM5QJTIySxcPTkT3fnhH9Eg
YEAa/SemKwKkI0RXKH19kD4VP3v7nrKnMwKYkF1Hmi7UVwxOq7QABUvkbqfee2WJ
8Bhuu372s4s5Mgu2jf1PVcJqEwNl+AIZGgByEmRxXJg0xd3sP89p4afcST9UC8l1
tORYD452sh2bCxrocyHcchFA5iDGJyY6gHYqsS9rq0lwsP0toj+tjem9X1XtbCDE
jddZBGM6i5VYYNZSEgwIDttIW0EG2bUQ52Z62438y1uDwKyUou2mNtqFU4l85Ctc
vgCgo0dHuHVFgUH6WgXQr33Hk1L6j1mGb6LKhKpjidpB8Bqz4A+LAMlL4yYYn4rB
XsiMvRVvBCXh7HSXsFAuarVOaBHmrnaQf/AaG7pRSMVeGvH/OqiH/dKJXUhWAA7g
TysmzHXPcJZhpBjK2MnBsZWWi7T3X28or4yxixkldqHWxrdjHv5phybI/Zqv1m39
FuBRRXDDkEDJJeYRkHAH1Tnv9JdCaClOCd0tYjJPdn8BO6hs7yXeco34obNfGZkI
VaTm4iSVBot7xOdVafXfGJC6T50YHF7r2o7gJv+KWjXzbYz5F1N/yar/f7AwcDau
8JXaVhFVHJ2oCKzd2ah6ERljVcI5mXgMAvFkGrZsVbVobu7YhBzlsBDcWKHJA73n
RPmRnil7E4qHqRiHL5pIfzFhdWJwzJ5jNbndVrgdMQuGJn7HCwELyqItlqY/8Sst
PppWvUzUlOlJJPetJb5F
=U7VL
-----END PGP MESSAGE-----

View File

@@ -1,12 +1,12 @@
-----BEGIN PGP MESSAGE-----
jA0ECQMIy4/a+BamXVv/0sCXAeA0EVKKki2mEoXI7GFg1orbBpnUfvM/sj7ISlHE
hues8qd3343KYZyIv/dBweWK13koZmXchfMPMHN61ygA9Y0uf35VLaMKWSudF77a
aHDdnMtuSnd0fdDQ3GaYIRGFd6SlRCpfiQ2Nhno+69GRotCxpgoNife9AQVPS4nM
ycqURKfck2UG0bPLSpjMEiZz+pFaNQ3vyGl6sjC5Zj2SkZDzftJb+TkEshwI6FZ/
XFaodI2rFLQb/oGFQKnZ/fbyChhgfqWn3Na+KMupqJ4S3/Ef3WpTdZ/kYvgVUih6
H3iZFptSJ8sfOnabebwvziHKTh/3H7Tek9jgoBsJ2fYdpDx5l/Oz9jy7IZUo7+hl
xYWEHENxNQAXIZAl80uaCuLzzW8wK0vWDju8en4dAxms1dNRiZRNSMuE4IZ+/eYP
bz9JnJguccAyaJvDGrGnE9GtegN3l3jYaw==
=p0YP
jA0ECQMI475OuKYqXMv/0sCXAShLaWEeFxtqCZ2dN7OqEy5ucrqr9u0I0yurJbwo
lYxL/g/tHRoqVDiLHx0hJMtmL5mltn+GBbGA1Y5wcqQyYvU74qUEn8iCbw1BYMQ+
1zEMwZZG5FEmW1nHYA1OM0JeWPDqpveMr/XBk8P/bI5zDr93XXKshFsuVbHvyPBJ
CiPIXPv1Pu8rJHcIjEDkknnz48ZeS2RR2N30LFmTBdD6ZmkLfq8vYtPkJFW6rb0w
jTIsDyzDbtCF6YU9VnARNCQo6y5gEUi+nZi730trfSUmFJEa1BKwG4aE46bxborn
sHmV1NTN2rZrxMRIRe05S4zqZ7Dod6eN+KBDZsSXuYWxD+sUjmWA1agYJndhk2xr
HzIFJwk7kNgKZnW6QY+/phxJX/txHd5GMjwjjYBSJ3M7Txm7BBtNoflz0TqBaIay
9vJUhWMfcPETc0/CB3S5PiMbVVGyw5jhLg==
=S/fh
-----END PGP MESSAGE-----

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,10 @@
-----BEGIN PGP MESSAGE-----
jA0ECQMI5VBc0KVbLDL/0sBCAf3oZq8xXuCs66vm9peFWtjXJJ8KoeHE27LNfvT5
xAO5z6CuPzOdwLe4k8w2mIA1csivmGinWj2OqHelLzVIdrNZj2FW8baP+lhE9m5l
ZWUIc6c2Ow4gBqI24U6KQHYOZS4vZ/lUhN9Ja/3RrSyhQfXbjeU2rQtfrfVQlQzk
HY7XdGtnsOta7Aanp4I4nJB5H48i8OnMBt7BI3R3wUY/9dnQ/+UP0PGkH48scnW2
9NMIhCnIa8evzVEwa10KG5tKMXfJT0ZBcj0PuwWhpDV6hqtLAfaiyNYux6nMRSQk
VPdHjG/SrFusOUAQWmZCwPYHQIhSvQotfHIoQkt4ktmFGjWf
=203E
jA0ECQMIJ9R5BaXIG1//0sBBAe8JsWlg3N50w7zu3Uwke1Hu1QLkDYFgsTBsz6Og
Vp6mPHVeNK6IPl0pUT1IaZHNhKNc9Bd4/ZYoubfkfBIyIlXclcjRzgcorOtkOsWs
YcFUYdYwKCLsS0K4wq7setmy3wAjTnrULyXDS4xRA/30NtOL/Cx9i6hyAlkOjcfA
l0mFtzLBrEP4LMbSo2oFtFyhPP05R3kZwe1hukZzmsuNI7W1scEBtKQcTCz01ngL
h/B0AE1dX8bRU+Yyl6aZ3iPLS+J2o5jsZ+ou3Iy5SXqBqVhlJXxxjCP0VF7ZYSGC
YLnxqSvcBp0wuLjgMlJlGu0omZR7axTFZaE4ts4oULS0YaI=
=5mIs
-----END PGP MESSAGE-----

View File

@@ -1,13 +1,13 @@
-----BEGIN PGP MESSAGE-----
jA0ECQMIvkpSi/VwY0D/0sDKAUychqUMz34QzcenJFg72hd0QCirPZPrFGg/kXLW
iAHp6oxrENcPW7Ll1tHDPrL+QC06RPOsrWXO0LjGnOsHjDron+DnmznXhLFDSXgZ
br3q5jqYTnYrAFoTChVtz+PaRB0CRg4W1IbM5VhwDVKjcNq0NHZtc9pTCBsaIaCV
xTbQge6bAq8hPcezP7VOnfJpMKi1G2pILhRJviZN6nzzUoMfRMxdwx9JyPGKruFL
BAZYtFMUlfL+jBATKop2oZeEQqW+mzwmUFSKEOFFqrLTePh90kN2cZwiof4W4vvn
cQ2APHSxmWniW21Qrm/9YCRE+HKLt2Yz+nYx7zvEuRpeN25aaVQu5DnkHfzFbKfj
c5Nv7kIi0pGT5niTlcAipSZ6YRyy6K6b9A04H8JyxJ51+HCfEb0Ns9yPcjCXffs1
h9dmZ2MnTv9zX2w0th/SlQ9C0A9MGr9SPLsLz6WcaOuswhWCNNdkF4tQ8vnHTEsZ
ezi+iRTIHhI3zQ9YjR07Tki8s8i5rWUCaFzOvg==
=kFIl
jA0ECQMILlvRxivBmtv/0sDKAeUG/vps231Rvtbj5zCM00heDgy6Y8oFmsPfbQ+/
mC4id1R7/qvhC6R89nM6kNC4nIcMQj7L3I7XJRUZNe6pX1es84PiafuHBBLQ5nnH
1BBkR/QVB+oAf1p4i8M8AvsrZv7VQQ5jNmETU+xrYp+mfQytDUCSIM8LjQw3Doz3
kOghN6UNJdJRrwjFdrJ9TZqmBmz9KXh8o7elZQQcwRB9vHVz4TUTFKoslUn821UV
A2xefTxZwiYw1ExqxObs1Dc+cVjitCelXfhRNEszL42gG1VUyLuY71lDphzxmyDD
HPk7yZuCciBgCA+VNkBsjHLLyGtsR2FqqU8DraXXq6cFcxjMIkRoza9AUi4Xk1GG
NQ7ONEwmXHH2db+Z8H5F1NXt+UfW41gbVWKek1Cxooa37FXUn995RCeMcaDeKfVM
f8vYFELIyrkAuLkltO2twcFi4d9pnYYnxJOmtj9heH8SDcaSuj++03vN0CQu1Xw2
qEhF3L/aEQwUrRaayI7F2NJmEfQgGZfcjVc+1Q==
=weU9
-----END PGP MESSAGE-----

View File

@@ -4,7 +4,7 @@ set -euo pipefail
IFS=$'\n\t'
# Constants
readonly NIXOS_RELEASE="24.05"
readonly NIXOS_RELEASE="24.11"
readonly GIT_REPO="https://git.mvl.sh/vleeuwenmenno/dotfiles.git"
readonly DOTFILES_DIR="${HOME}/dotfiles"
readonly SETUP_MARKER="${HOME}/.dotfiles-setup"
@@ -28,6 +28,10 @@ log_error() {
echo -e "${RED}$1${NC}" >&2
}
log_warning() {
echo -e "${YELLOW}$1${NC}" >&2
}
die() {
log_error "$1"
exit 1
@@ -286,7 +290,7 @@ update_home_manager_flake() {
}
install_nix() {
if command -v nixos-version >/dev/null 2>&1; then
if command -v nix-channel >/dev/null 2>&1; then
log_success "Detected NixOS, skipping Nix setup."
return 0
fi
@@ -295,6 +299,10 @@ install_nix() {
if ! sh <(curl -L https://nixos.org/nix/install) --daemon; then
die "Failed to install Nix"
fi
log_success "Nix has been installed. Please open a new shell and re-run the script."
log_info "`~/dotfiles/setup.sh --continue` to continue setup."
exit 0
}
setup_symlinks() {
@@ -353,15 +361,19 @@ prepare_hostname() {
local hostname_file="$HOME/.hostname"
local hostname
# Only check for NixOS if hardware configuration is not found
if [ -f "$hostname_file" ]; then
hostname=$(cat "$hostname_file")
log_success "Hostname already found in $hostname_file. Using $hostname."
if command -v nixos-version >/dev/null 2>&1; then
if [ ! -f "$DOTFILES_DIR/config/nixos/hardware/$hostname.nix" ]; then
die "No hardware configuration found for $hostname. Please create a hardware configuration for this machine."
fi
log_success "Hardware configuration found for $hostname. Continuing setup..."
fi
return
fi
@@ -377,30 +389,56 @@ prepare_hostname() {
log_error "Invalid hostname. Please enter a valid hostname:"
done
if [ ! command -v nixos-version >/dev/null 2>&1 ]; then
log_info "Setting hostname to $hostname..."
sudo hostnamectl set-hostname "$hostname" || die "Failed to set hostname"
fi
if [ command -v nixos-version >/dev/null 2>&1 ]; then
if [ ! -f "$DOTFILES_DIR/config/nixos/hardware/$hostname.nix" ]; then
log_info "No hardware configuration found for $hostname."
create_hardware_config "$hostname"
else
log_success "Hardware configuration found for $hostname. Continuing setup..."
fi
fi
echo "$hostname" > "$hostname_file" || die "Failed to save hostname"
log_success "Hostname set successfully."
}
warning_prompt() {
log_success "This script will set up your NixOS system using Menno's Dotfiles repository.\n"
log_success "This script will set up your machine using Menno's Dotfiles repository.\n"
log_error "Please ensure you have a backup of your data before proceeding."
log_error "This script will modify system files and may require sudo permissions.\n"
log_info "This script works best on a fresh NixOS installation."
log_info "This script works best on a fresh NixOS/Fedora installation."
log_info "Type 'continue' to continue or Ctrl+C to exit."
read -r -p "> " continue
read -r -p "> " continue < /dev/tty
if [ "$continue" != "continue" ]; then
die "Exiting..."
fi
log_info "Starting setup..."
}
check_selinux() {
# Only on Non-NixOS based systems
if command -v nixos-version >/dev/null 2>&1; then
return 0
fi
# Check if getenforce is returning Enforcing
if [ "$(getenforce)" = "Enforcing" ]; then
log_warning "SELinux is enabled. Adjusting SELinux to permissive mode..."
sudo setenforce Permissive || die "Failed to disable SELinux"
sudo tee /etc/selinux/config << EOF > /dev/null || die "Failed to write to /etc/selinux/config"
SELINUX=permissive
SELINUXTYPE=targeted
EOF
log_success "SELinux disabled successfully."
fi
}
main() {
# Check if setup has already been run
if [ -f "$SETUP_MARKER" ]; then
@@ -417,10 +455,24 @@ main() {
git clone "$GIT_REPO" "$DOTFILES_DIR" || die "Failed to clone dotfiles repository"
fi
# Run setup steps
if [ -n "${1:-}" ]; then
CONTINUE=$1
if [ "$CONTINUE" = "--continue" ]; then
log_info "Continuing setup..."
else
warning_prompt
prepare_hostname
check_selinux
install_nix
fi
else
warning_prompt
prepare_hostname
check_selinux
install_nix
fi
install_home_manager
setup_symlinks
@@ -428,10 +480,12 @@ main() {
local hostname
hostname=$(cat "$HOME/.hostname") || die "Failed to read hostname"
# Rebuild NixOS
# Rebuild NixOS but only on NixOS systems
if command -v nixos-version >/dev/null 2>&1; then
cd "$DOTFILES_DIR/config/nixos" || die "Failed to change to nixos config directory"
sudo nixos-rebuild switch --flake ".#$hostname" --impure || \
die "Failed to rebuild NixOS"
fi
# Rebuild Home Manager
cd "$DOTFILES_DIR/config/home-manager" || die "Failed to change to home-manager config directory"

View File

@@ -40,5 +40,6 @@
"git.confirmSync": false,
"[dockercompose]": {
"editor.defaultFormatter": "ms-azuretools.vscode-docker"
}
},
"go.toolsManagement.autoUpdate": true,
}