Compare commits
177 Commits
5be84404a5
...
legacy
| Author | SHA1 | Date | |
|---|---|---|---|
|
18913b9120
|
|||
|
49d0088595
|
|||
|
c2adf02a55
|
|||
|
|
60bfa228e6 | ||
|
4e28e5cbb0
|
|||
|
68943b57ee
|
|||
|
733be4c7c8
|
|||
|
a0245017f7
|
|||
|
5803376722
|
|||
|
a3f2b7d759
|
|||
|
0747d2a784
|
|||
|
852c5ebef8
|
|||
|
783d1bac25
|
|||
|
325310c1ca
|
|||
|
1db4d0c49b
|
|||
|
4d20f2d7a6
|
|||
|
bbd3198976
|
|||
|
d48a3d3925
|
|||
|
c11c4e7482
|
|||
|
e06b93215f
|
|||
|
041307aaea
|
|||
|
1d0ef3d31e
|
|||
|
206cbfb564
|
|||
|
bc85c85592
|
|||
|
569e9698f7
|
|||
|
8eabebb9e8
|
|||
|
58bd63a4c7
|
|||
|
0db42dfcbc
|
|||
|
9236bf36f1
|
|||
|
4fab06b82b
|
|||
|
b5775fd29b
|
|||
|
135c08eda0
|
|||
|
938ab8e83b
|
|||
|
dfff773f7e
|
|||
|
df66535bf1
|
|||
|
b5e2bb933f
|
|||
|
f3e07bad16
|
|||
|
ff4f509d26
|
|||
|
1a5410ec9e
|
|||
|
8daace9b77
|
|||
|
65c42118e2
|
|||
|
ed0b0508bb
|
|||
|
a480aa5804
|
|||
|
70d953b18c
|
|||
|
e767549a57
|
|||
|
3d97f9b5d7
|
|||
|
f10988efba
|
|||
|
7a1d88476e
|
|||
|
530fcb10c3
|
|||
|
7d1bc11b4d
|
|||
|
554d9bf7cf
|
|||
|
8993a09549
|
|||
|
1a1067b0d1
|
|||
|
82c1d5d995
|
|||
|
2c04a6ef26
|
|||
|
8faab83651
|
|||
|
84019d2ba8
|
|||
|
20a4b6b529
|
|||
|
76e9cb0371
|
|||
|
56913879cb
|
|||
|
a4871ba423
|
|||
|
2c0e3c746b
|
|||
|
2cd1c77d60
|
|||
|
5cb3e5fe44
|
|||
|
c5fdac86b2
|
|||
|
32f4717c8a
|
|||
|
031688333e
|
|||
|
eabff41a56
|
|||
|
5c73283e5f
|
|||
|
0b523463f2
|
|||
|
70335cf637
|
|||
|
0d26f30261
|
|||
|
93b1aba78d
|
|||
|
994d0cdedd
|
|||
|
4a80da3995
|
|||
|
728ca39836
|
|||
|
c0ab3d1517
|
|||
|
45b90fc066
|
|||
|
d3938830b6
|
|||
|
96fd886f84
|
|||
|
212050a0ee
|
|||
|
5a0a4a96c5
|
|||
|
48fa653027
|
|||
|
4da793d37c
|
|||
|
df08e01d9e
|
|||
|
b89d71cc5e
|
|||
|
e67cfd7bfd
|
|||
|
b7b0f11033
|
|||
|
178bf9ebe4
|
|||
|
96ad469aed
|
|||
|
bb6545a45a
|
|||
|
b2768c334a
|
|||
|
1442638609
|
|||
|
2af2995b18
|
|||
|
8a656f0d95
|
|||
|
f289c12223
|
|||
|
fb9219719d
|
|||
|
aef9670f74
|
|||
|
9c85419950
|
|||
|
fbb83102c4
|
|||
|
9a395cfe07
|
|||
|
8fc75274cd
|
|||
|
29cc346709
|
|||
|
3cb256f6e5
|
|||
|
a242530770
|
|||
|
08a1372f9f
|
|||
|
014badfa99
|
|||
|
a068565066
|
|||
|
9b1ceddeb7
|
|||
|
4e169b6668
|
|||
|
7bf22e7023
|
|||
|
7e1a49c29e
|
|||
|
238661573c
|
|||
|
ff99e5e46f
|
|||
|
e6dfc2aba4
|
|||
|
3b7b414394
|
|||
|
c3f433cc3d
|
|||
|
e8ed942906
|
|||
|
45cdd53f0d
|
|||
|
974a0328fc
|
|||
|
7d64801ae2
|
|||
|
09ad59d3c5
|
|||
|
b8adf7b200
|
|||
|
f1e00e4038
|
|||
|
9235298118
|
|||
|
e3f0493630
|
|||
|
0270ac41bd
|
|||
|
1e73386dca
|
|||
|
db89a244b0
|
|||
|
945196c8e0
|
|||
|
bbe516f998
|
|||
|
04c7850e6e
|
|||
|
9fbd69a25a
|
|||
|
9bd4259cf2
|
|||
|
39a62a239d
|
|||
|
6eeace47ec
|
|||
|
4c283bf58d
|
|||
|
2b07a58d7b
|
|||
|
3433cce92b
|
|||
|
1937bd9acf
|
|||
|
9339d653c2
|
|||
|
0483ac9a8d
|
|||
|
1c56aea8fb
|
|||
|
e546ecea9a
|
|||
|
8fde290f40
|
|||
|
9e38b4f794
|
|||
|
7fb331c404
|
|||
|
5d1fe879dd
|
|||
|
e75263b16e
|
|||
|
28422d460a
|
|||
|
25a070124d
|
|||
|
150847cbd8
|
|||
|
0af32e52ed
|
|||
|
4d6e69e9d0
|
|||
|
df06f221b8
|
|||
|
e719b0e693
|
|||
|
77b84107f6
|
|||
|
0a961ec53f
|
|||
|
d68fba4ba3
|
|||
|
93517fbf79
|
|||
|
0e619da207
|
|||
|
cc7686668c
|
|||
|
0c92e38370
|
|||
|
60f0ab11bd
|
|||
|
8638652839
|
|||
|
5f83cf2e6d
|
|||
|
5907d7a4e8
|
|||
|
9cc0e5f7c3
|
|||
|
ce299365c9
|
|||
|
6bb22de9ce
|
|||
|
e83ebe2d2c
|
|||
|
a439ccc355
|
|||
|
94f2acb15c
|
|||
|
41b8417d4e
|
|||
|
a26038b47a
|
|||
|
042826cd4f
|
|||
|
9c18261ef4
|
19
.bashrc
19
.bashrc
@@ -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,18 +84,8 @@ if [ -d "/home/menno/Projects/Work" ]; then
|
||||
export TRADAWARE_DEVOPS=true
|
||||
fi
|
||||
|
||||
# pyenv Configuration
|
||||
export PYENV_ROOT="$HOME/.pyenv"
|
||||
if [[ -d $PYENV_ROOT/bin ]]; then
|
||||
export PATH="$PYENV_ROOT/bin:$PATH"
|
||||
eval "$(pyenv init --path)"
|
||||
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
|
||||
@@ -170,5 +163,5 @@ fi
|
||||
|
||||
# Display a welcome message for interactive shells
|
||||
if [ -t 1 ]; then
|
||||
dotf term
|
||||
dotf hello
|
||||
fi
|
||||
|
||||
44
.github/workflows/nixfmt.yml
vendored
Normal file
44
.github/workflows/nixfmt.yml
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
name: Nix Format Check
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
check-format:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install Nix
|
||||
uses: cachix/install-nix-action@v30
|
||||
with:
|
||||
extra_nix_config: |
|
||||
experimental-features = nix-command flakes
|
||||
|
||||
- name: Install nixfmt
|
||||
run: nix profile install nixpkgs#nixfmt-rfc-style
|
||||
|
||||
- name: Check Nix formatting
|
||||
run: |
|
||||
exit_code=0
|
||||
while IFS= read -r file; do
|
||||
if ! nixfmt "$file"; then
|
||||
echo "Error: Failed to format $file"
|
||||
exit_code=1
|
||||
break
|
||||
fi
|
||||
done < <(find . -name "*.nix" -type f)
|
||||
|
||||
if [ $exit_code -eq 0 ]; then
|
||||
if git diff --quiet; then
|
||||
echo "All Nix files are properly formatted"
|
||||
else
|
||||
echo "Error: Some Nix files are not properly formatted"
|
||||
git diff
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
exit $exit_code
|
||||
fi
|
||||
@@ -1,30 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
apps=(
|
||||
spotify
|
||||
whatsapp-for-linux
|
||||
telegram-desktop
|
||||
vesktop
|
||||
trayscale
|
||||
1password
|
||||
fcitx5
|
||||
"spotify"
|
||||
"whatsapp-for-linux"
|
||||
"telegram-desktop"
|
||||
"vesktop"
|
||||
"trayscale"
|
||||
"1password"
|
||||
"ulauncher-wrapped --no-window-shadow --hide-window"
|
||||
"polkit-agent"
|
||||
"swaync"
|
||||
"nm-applet"
|
||||
"blueman-applet"
|
||||
)
|
||||
|
||||
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..."
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "Starting $app..."
|
||||
screen -dmS $app $app
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
|
||||
# check if screen has any dead sessions
|
||||
if screen -list | grep -q "Dead"; then
|
||||
screen -wipe
|
||||
fi
|
||||
|
||||
echo "Starting auto-start applications..."
|
||||
for app in "${apps[@]}"; do
|
||||
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_name with parameters $app_params..."
|
||||
screen -dmS $app_name $app_name $app_params
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
|
||||
@@ -106,10 +106,10 @@ decrypt_folder() {
|
||||
done
|
||||
}
|
||||
|
||||
if [[ "$2" == "decrypt" ]]; then
|
||||
if [[ "$1" == "decrypt" ]]; then
|
||||
printfe "%s\n" "cyan" "Decrypting secrets..."
|
||||
decrypt_folder ~/dotfiles/secrets
|
||||
elif [[ "$2" == "encrypt" ]]; then
|
||||
elif [[ "$1" == "encrypt" ]]; then
|
||||
printfe "%s\n" "cyan" "Encrypting secrets..."
|
||||
encrypt_folder ~/dotfiles/secrets
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -92,24 +92,28 @@ symlinks() {
|
||||
done
|
||||
}
|
||||
|
||||
sys_packages_upgrade() {
|
||||
sudo nix-channel --update
|
||||
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
|
||||
@@ -118,8 +122,16 @@ sys_packages() {
|
||||
return
|
||||
fi
|
||||
|
||||
sudo nala upgrade -y
|
||||
sudo nala autoremove -y --purge
|
||||
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
|
||||
}
|
||||
|
||||
@@ -157,13 +169,8 @@ flatpakpkgs() {
|
||||
}
|
||||
|
||||
homemanager() {
|
||||
# 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
|
||||
}
|
||||
|
||||
####################################################################################################
|
||||
@@ -183,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
72
bin/actions/upgrade.sh
Executable 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
|
||||
16
bin/dotf
16
bin/dotf
@@ -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 ;;
|
||||
|
||||
@@ -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
|
||||
|
||||
221
config/autostart/brave-browser.desktop
Normal file
221
config/autostart/brave-browser.desktop
Normal file
@@ -0,0 +1,221 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Brave Web Browser
|
||||
# Only KDE 4 seems to use GenericName, so we reuse the KDE strings.
|
||||
# From Ubuntu's language-pack-kde-XX-base packages, version 9.04-20090413.
|
||||
GenericName=Web Browser
|
||||
GenericName[ar]=متصفح الشبكة
|
||||
GenericName[bg]=Уеб браузър
|
||||
GenericName[ca]=Navegador web
|
||||
GenericName[cs]=WWW prohlížeč
|
||||
GenericName[da]=Browser
|
||||
GenericName[de]=Web-Browser
|
||||
GenericName[el]=Περιηγητής ιστού
|
||||
GenericName[en_GB]=Web Browser
|
||||
GenericName[es]=Navegador web
|
||||
GenericName[et]=Veebibrauser
|
||||
GenericName[fi]=WWW-selain
|
||||
GenericName[fr]=Navigateur Web
|
||||
GenericName[gu]=વેબ બ્રાઉઝર
|
||||
GenericName[he]=דפדפן אינטרנט
|
||||
GenericName[hi]=वेब ब्राउज़र
|
||||
GenericName[hu]=Webböngésző
|
||||
GenericName[it]=Browser Web
|
||||
GenericName[ja]=ウェブブラウザ
|
||||
GenericName[kn]=ಜಾಲ ವೀಕ್ಷಕ
|
||||
GenericName[ko]=웹 브라우저
|
||||
GenericName[lt]=Žiniatinklio naršyklė
|
||||
GenericName[lv]=Tīmekļa pārlūks
|
||||
GenericName[ml]=വെബ് ബ്രൌസര്
|
||||
GenericName[mr]=वेब ब्राऊजर
|
||||
GenericName[nb]=Nettleser
|
||||
GenericName[nl]=Webbrowser
|
||||
GenericName[pl]=Przeglądarka WWW
|
||||
GenericName[pt]=Navegador Web
|
||||
GenericName[pt_BR]=Navegador da Internet
|
||||
GenericName[ro]=Navigator de Internet
|
||||
GenericName[ru]=Веб-браузер
|
||||
GenericName[sl]=Spletni brskalnik
|
||||
GenericName[sv]=Webbläsare
|
||||
GenericName[ta]=இணைய உலாவி
|
||||
GenericName[th]=เว็บเบราว์เซอร์
|
||||
GenericName[tr]=Web Tarayıcı
|
||||
GenericName[uk]=Навігатор Тенет
|
||||
GenericName[zh_CN]=网页浏览器
|
||||
GenericName[zh_HK]=網頁瀏覽器
|
||||
GenericName[zh_TW]=網頁瀏覽器
|
||||
# Not translated in KDE, from Epiphany 2.26.1-0ubuntu1.
|
||||
GenericName[bn]=ওয়েব ব্রাউজার
|
||||
GenericName[fil]=Web Browser
|
||||
GenericName[hr]=Web preglednik
|
||||
GenericName[id]=Browser Web
|
||||
GenericName[or]=ଓ୍ବେବ ବ୍ରାଉଜର
|
||||
GenericName[sk]=WWW prehliadač
|
||||
GenericName[sr]=Интернет прегледник
|
||||
GenericName[te]=మహాతల అన్వేషి
|
||||
GenericName[vi]=Bộ duyệt Web
|
||||
# Gnome and KDE 3 uses Comment.
|
||||
Comment=Access the Internet
|
||||
Comment[ar]=الدخول إلى الإنترنت
|
||||
Comment[bg]=Достъп до интернет
|
||||
Comment[bn]=ইন্টারনেটটি অ্যাক্সেস করুন
|
||||
Comment[ca]=Accedeix a Internet
|
||||
Comment[cs]=Přístup k internetu
|
||||
Comment[da]=Få adgang til internettet
|
||||
Comment[de]=Internetzugriff
|
||||
Comment[el]=Πρόσβαση στο Διαδίκτυο
|
||||
Comment[en_GB]=Access the Internet
|
||||
Comment[es]=Accede a Internet.
|
||||
Comment[et]=Pääs Internetti
|
||||
Comment[fi]=Käytä internetiä
|
||||
Comment[fil]=I-access ang Internet
|
||||
Comment[fr]=Accéder à Internet
|
||||
Comment[gu]=ઇંટરનેટ ઍક્સેસ કરો
|
||||
Comment[he]=גישה אל האינטרנט
|
||||
Comment[hi]=इंटरनेट तक पहुंच स्थापित करें
|
||||
Comment[hr]=Pristup Internetu
|
||||
Comment[hu]=Internetelérés
|
||||
Comment[id]=Akses Internet
|
||||
Comment[it]=Accesso a Internet
|
||||
Comment[ja]=インターネットにアクセス
|
||||
Comment[kn]=ಇಂಟರ್ನೆಟ್ ಅನ್ನು ಪ್ರವೇಶಿಸಿ
|
||||
Comment[ko]=인터넷 연결
|
||||
Comment[lt]=Interneto prieiga
|
||||
Comment[lv]=Piekļūt internetam
|
||||
Comment[ml]=ഇന്റര്നെറ്റ് ആക്സസ് ചെയ്യുക
|
||||
Comment[mr]=इंटरनेटमध्ये प्रवेश करा
|
||||
Comment[nb]=Gå til Internett
|
||||
Comment[nl]=Verbinding maken met internet
|
||||
Comment[or]=ଇଣ୍ଟର୍ନେଟ୍ ପ୍ରବେଶ କରନ୍ତୁ
|
||||
Comment[pl]=Skorzystaj z internetu
|
||||
Comment[pt]=Aceder à Internet
|
||||
Comment[pt_BR]=Acessar a internet
|
||||
Comment[ro]=Accesaţi Internetul
|
||||
Comment[ru]=Доступ в Интернет
|
||||
Comment[sk]=Prístup do siete Internet
|
||||
Comment[sl]=Dostop do interneta
|
||||
Comment[sr]=Приступите Интернету
|
||||
Comment[sv]=Gå ut på Internet
|
||||
Comment[ta]=இணையத்தை அணுகுதல்
|
||||
Comment[te]=ఇంటర్నెట్ను ఆక్సెస్ చెయ్యండి
|
||||
Comment[th]=เข้าถึงอินเทอร์เน็ต
|
||||
Comment[tr]=İnternet'e erişin
|
||||
Comment[uk]=Доступ до Інтернету
|
||||
Comment[vi]=Truy cập Internet
|
||||
Comment[zh_CN]=访问互联网
|
||||
Comment[zh_HK]=連線到網際網路
|
||||
Comment[zh_TW]=連線到網際網路
|
||||
Exec=/nix/store/vyd31gpmcp6gaqra4h4xdz3zgg3n4akp-brave-1.71.118/bin/brave %U
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
Icon=brave-browser
|
||||
Type=Application
|
||||
Categories=Network;WebBrowser;
|
||||
MimeType=application/pdf;application/rdf+xml;application/rss+xml;application/xhtml+xml;application/xhtml_xml;application/xml;image/gif;image/jpeg;image/png;image/webp;text/html;text/xml;x-scheme-handler/http;x-scheme-handler/https;
|
||||
Actions=new-window;new-private-window;
|
||||
|
||||
[Desktop Action new-window]
|
||||
Name=New Window
|
||||
Name[am]=አዲስ መስኮት
|
||||
Name[ar]=نافذة جديدة
|
||||
Name[bg]=Нов прозорец
|
||||
Name[bn]=নতুন উইন্ডো
|
||||
Name[ca]=Finestra nova
|
||||
Name[cs]=Nové okno
|
||||
Name[da]=Nyt vindue
|
||||
Name[de]=Neues Fenster
|
||||
Name[el]=Νέο Παράθυρο
|
||||
Name[en_GB]=New Window
|
||||
Name[es]=Nueva ventana
|
||||
Name[et]=Uus aken
|
||||
Name[fa]=پنجره جدید
|
||||
Name[fi]=Uusi ikkuna
|
||||
Name[fil]=New Window
|
||||
Name[fr]=Nouvelle fenêtre
|
||||
Name[gu]=નવી વિંડો
|
||||
Name[hi]=नई विंडो
|
||||
Name[hr]=Novi prozor
|
||||
Name[hu]=Új ablak
|
||||
Name[id]=Jendela Baru
|
||||
Name[it]=Nuova finestra
|
||||
Name[iw]=חלון חדש
|
||||
Name[ja]=新規ウインドウ
|
||||
Name[kn]=ಹೊಸ ವಿಂಡೊ
|
||||
Name[ko]=새 창
|
||||
Name[lt]=Naujas langas
|
||||
Name[lv]=Jauns logs
|
||||
Name[ml]=പുതിയ വിന്ഡോ
|
||||
Name[mr]=नवीन विंडो
|
||||
Name[nl]=Nieuw venster
|
||||
Name[no]=Nytt vindu
|
||||
Name[pl]=Nowe okno
|
||||
Name[pt]=Nova janela
|
||||
Name[pt_BR]=Nova janela
|
||||
Name[ro]=Fereastră nouă
|
||||
Name[ru]=Новое окно
|
||||
Name[sk]=Nové okno
|
||||
Name[sl]=Novo okno
|
||||
Name[sr]=Нови прозор
|
||||
Name[sv]=Nytt fönster
|
||||
Name[sw]=Dirisha Jipya
|
||||
Name[ta]=புதிய சாளரம்
|
||||
Name[te]=క్రొత్త విండో
|
||||
Name[th]=หน้าต่างใหม่
|
||||
Name[tr]=Yeni Pencere
|
||||
Name[uk]=Нове вікно
|
||||
Name[vi]=Cửa sổ Mới
|
||||
Name[zh_CN]=新建窗口
|
||||
Name[zh_TW]=開新視窗
|
||||
Exec=/nix/store/vyd31gpmcp6gaqra4h4xdz3zgg3n4akp-brave-1.71.118/bin/brave
|
||||
|
||||
[Desktop Action new-private-window]
|
||||
Name=New Incognito Window
|
||||
Name[ar]=نافذة جديدة للتصفح المتخفي
|
||||
Name[bg]=Нов прозорец „инкогнито“
|
||||
Name[bn]=নতুন ছদ্মবেশী উইন্ডো
|
||||
Name[ca]=Finestra d'incògnit nova
|
||||
Name[cs]=Nové anonymní okno
|
||||
Name[da]=Nyt inkognitovindue
|
||||
Name[de]=Neues Inkognito-Fenster
|
||||
Name[el]=Νέο παράθυρο για ανώνυμη περιήγηση
|
||||
Name[en_GB]=New Incognito window
|
||||
Name[es]=Nueva ventana de incógnito
|
||||
Name[et]=Uus inkognito aken
|
||||
Name[fa]=پنجره جدید حالت ناشناس
|
||||
Name[fi]=Uusi incognito-ikkuna
|
||||
Name[fil]=Bagong Incognito window
|
||||
Name[fr]=Nouvelle fenêtre de navigation privée
|
||||
Name[gu]=નવી છુપી વિંડો
|
||||
Name[hi]=नई गुप्त विंडो
|
||||
Name[hr]=Novi anoniman prozor
|
||||
Name[hu]=Új Inkognitóablak
|
||||
Name[id]=Jendela Penyamaran baru
|
||||
Name[it]=Nuova finestra di navigazione in incognito
|
||||
Name[iw]=חלון חדש לגלישה בסתר
|
||||
Name[ja]=新しいシークレット ウィンドウ
|
||||
Name[kn]=ಹೊಸ ಅಜ್ಞಾತ ವಿಂಡೋ
|
||||
Name[ko]=새 시크릿 창
|
||||
Name[lt]=Naujas inkognito langas
|
||||
Name[lv]=Jauns inkognito režīma logs
|
||||
Name[ml]=പുതിയ വേഷ പ്രച്ഛന്ന വിന്ഡോ
|
||||
Name[mr]=नवीन गुप्त विंडो
|
||||
Name[nl]=Nieuw incognitovenster
|
||||
Name[no]=Nytt inkognitovindu
|
||||
Name[pl]=Nowe okno incognito
|
||||
Name[pt]=Nova janela de navegação anónima
|
||||
Name[pt_BR]=Nova janela anônima
|
||||
Name[ro]=Fereastră nouă incognito
|
||||
Name[ru]=Новое окно в режиме инкогнито
|
||||
Name[sk]=Nové okno inkognito
|
||||
Name[sl]=Novo okno brez beleženja zgodovine
|
||||
Name[sr]=Нови прозор за прегледање без архивирања
|
||||
Name[sv]=Nytt inkognitofönster
|
||||
Name[ta]=புதிய மறைநிலைச் சாளரம்
|
||||
Name[te]=క్రొత్త అజ్ఞాత విండో
|
||||
Name[th]=หน้าต่างใหม่ที่ไม่ระบุตัวตน
|
||||
Name[tr]=Yeni Gizli pencere
|
||||
Name[uk]=Нове вікно в режимі анонімного перегляду
|
||||
Name[vi]=Cửa sổ ẩn danh mới
|
||||
Name[zh_CN]=新建隐身窗口
|
||||
Name[zh_TW]=新增無痕式視窗
|
||||
Exec=/nix/store/vyd31gpmcp6gaqra4h4xdz3zgg3n4akp-brave-1.71.118/bin/brave --incognito
|
||||
@@ -1,26 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Name=Zen Browser
|
||||
Exec=flatpak run --branch=stable --arch=x86_64 --command=launch-script.sh --file-forwarding io.github.zen_browser.zen @@u %u @@
|
||||
Icon=io.github.zen_browser.zen
|
||||
Type=Application
|
||||
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
|
||||
StartupWMClass=zen-alpha
|
||||
Categories=Network;WebBrowser;
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
X-MultipleArgs=false
|
||||
Keywords=Internet;WWW;Browser;Web;Explorer;
|
||||
Actions=new-window;new-private-window;profilemanager;
|
||||
X-Flatpak=io.github.zen_browser.zen
|
||||
|
||||
[Desktop Action new-window]
|
||||
Name=Open a New Window
|
||||
Exec=flatpak run --branch=stable --arch=x86_64 --command=launch-script.sh --file-forwarding io.github.zen_browser.zen @@u %u @@
|
||||
|
||||
[Desktop Action new-private-window]
|
||||
Name=Open a New Private Window
|
||||
Exec=flatpak run --branch=stable --arch=x86_64 --command=launch-script.sh --file-forwarding io.github.zen_browser.zen --private-window @@u %u @@
|
||||
|
||||
[Desktop Action profilemanager]
|
||||
Name=Open the Profile Manager
|
||||
Exec=flatpak run --branch=stable --arch=x86_64 --command=launch-script.sh --file-forwarding io.github.zen_browser.zen --ProfileManager @@u %u @@
|
||||
1
config/autostart/ulauncher.desktop
Symbolic link
1
config/autostart/ulauncher.desktop
Symbolic link
@@ -0,0 +1 @@
|
||||
/nix/store/b21375qzs3rbmhz9wrvyab7jljis7jc3-home-manager-files/.config/autostart/ulauncher.desktop
|
||||
@@ -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
|
||||
@@ -13,8 +13,11 @@ config:
|
||||
# Gitconfig
|
||||
gitconfig:
|
||||
sources:
|
||||
macos: ~/dotfiles/config/gitconfig.macos
|
||||
linux: ~/dotfiles/config/gitconfig.linux
|
||||
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
|
||||
wsl: ~/dotfiles/config/gitconfig.wsl
|
||||
target: ~/.gitconfig
|
||||
|
||||
@@ -32,11 +35,6 @@ config:
|
||||
vscode:
|
||||
source: ~/dotfiles/vscode/settings.json
|
||||
target: ~/.config/Code/User/settings.json
|
||||
|
||||
# Autostart
|
||||
autostart:
|
||||
source: ~/dotfiles/config/autostart
|
||||
target: ~/.config/autostart
|
||||
|
||||
# SSH config
|
||||
ssh:
|
||||
@@ -56,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.
|
||||
|
||||
10
config/flatpaks/com.ktechpit.whatsie.flatpakref
Normal file
10
config/flatpaks/com.ktechpit.whatsie.flatpakref
Normal 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
|
||||
|
||||
10
config/flatpaks/com.plexamp.Plexamp.flatpakref
Normal file
10
config/flatpaks/com.plexamp.Plexamp.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
||||
[Flatpak Ref]
|
||||
Name=com.plexamp.Plexamp
|
||||
Branch=stable
|
||||
Title=com.plexamp.Plexamp 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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[Flatpak Ref]
|
||||
Name=net.openra.OpenRA
|
||||
Name=io.ente.auth
|
||||
Branch=stable
|
||||
Title=net.openra.OpenRA from flathub
|
||||
Title=io.ente.auth from flathub
|
||||
IsRuntime=false
|
||||
Url=https://dl.flathub.org/repo/
|
||||
SuggestRemoteName=flathub
|
||||
10
config/flatpaks/org.fedoraproject.MediaWriter.flatpakref
Normal file
10
config/flatpaks/org.fedoraproject.MediaWriter.flatpakref
Normal 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=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
|
||||
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
10
config/flatpaks/tv.plex.PlexDesktop.flatpakref
Normal file
10
config/flatpaks/tv.plex.PlexDesktop.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
||||
[Flatpak Ref]
|
||||
Name=tv.plex.PlexDesktop
|
||||
Branch=stable
|
||||
Title=tv.plex.PlexDesktop 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
|
||||
|
||||
25
config/ghostty.conf
Normal file
25
config/ghostty.conf
Normal 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
|
||||
@@ -6,9 +6,6 @@
|
||||
[gpg]
|
||||
format = ssh
|
||||
|
||||
[gpg "ssh"]
|
||||
program = "op-ssh-sign"
|
||||
|
||||
[commit]
|
||||
gpgsign = true
|
||||
|
||||
|
||||
18
config/gitconfig.mennos-server
Normal file
18
config/gitconfig.mennos-server
Normal file
@@ -0,0 +1,18 @@
|
||||
[user]
|
||||
signingkey = ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||
email = menno@vleeuwen.me
|
||||
name = Menno van Leeuwen
|
||||
|
||||
[color]
|
||||
ui = true
|
||||
[push]
|
||||
autoSetupRemote = true
|
||||
[pull]
|
||||
rebase = false
|
||||
[filter "lfs"]
|
||||
process = git-lfs filter-process
|
||||
required = true
|
||||
clean = git-lfs clean -- %f
|
||||
smudge = git-lfs smudge -- %f
|
||||
[init]
|
||||
defaultBranch = main
|
||||
183
config/home-manager/flake.lock
generated
183
config/home-manager/flake.lock
generated
@@ -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"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs-unstable, ... }:
|
||||
{
|
||||
home.packages = with pkgs-unstable; [ ollama ];
|
||||
home.packages = with pkgs-unstable; [ ];
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs-unstable, ... }:
|
||||
{
|
||||
home.packages = with pkgs-unstable; [ ollama-rocm ];
|
||||
home.packages = with pkgs-unstable; [ ];
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs-unstable, ... }:
|
||||
{
|
||||
home.packages = with pkgs-unstable; [ ollama-cuda ];
|
||||
home.packages = with pkgs-unstable; [ ];
|
||||
}
|
||||
|
||||
@@ -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" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -16,90 +16,102 @@
|
||||
else
|
||||
[ ./hosts/fallback.nix ];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
# General packages
|
||||
git
|
||||
gnupg
|
||||
gh
|
||||
nixfmt-rfc-style
|
||||
wget
|
||||
fastfetch
|
||||
home.packages =
|
||||
with pkgs;
|
||||
[
|
||||
# General packages
|
||||
git
|
||||
onefetch
|
||||
gnupg
|
||||
gh
|
||||
nixfmt-rfc-style
|
||||
wget
|
||||
fastfetch
|
||||
gpredict
|
||||
|
||||
# Package management
|
||||
pipx
|
||||
devbox
|
||||
# Package management
|
||||
pipx
|
||||
devbox
|
||||
|
||||
# Development SDKs/Toolkits
|
||||
gcc
|
||||
pkg-config
|
||||
gnumake
|
||||
stdenv.cc
|
||||
rustc
|
||||
cargo
|
||||
cargo-edit
|
||||
cargo-watch
|
||||
cargo-audit
|
||||
cargo-expand
|
||||
cargo-tarpaulin
|
||||
pyenv
|
||||
act # GitHub Actions CLI
|
||||
# Development SDKs/Toolkits
|
||||
gcc
|
||||
pkg-config
|
||||
gnumake
|
||||
stdenv.cc
|
||||
rustc
|
||||
cargo
|
||||
cargo-edit
|
||||
cargo-watch
|
||||
cargo-audit
|
||||
cargo-expand
|
||||
cargo-tarpaulin
|
||||
act # GitHub Actions CLI
|
||||
|
||||
# File and directory operations
|
||||
eza # Modern ls
|
||||
bat # Modern cat
|
||||
zoxide # Smarter cd command
|
||||
broot # Interactive directory navigator
|
||||
du-dust # Modern du
|
||||
duf # Modern df
|
||||
zip
|
||||
unzip
|
||||
# File and directory operations
|
||||
eza # Modern ls
|
||||
bat # Modern cat
|
||||
zoxide # Smarter cd command
|
||||
broot # Interactive directory navigator
|
||||
du-dust # Modern du
|
||||
duf # Modern df
|
||||
zip
|
||||
unzip
|
||||
bottom # Modern top/htop
|
||||
glances # Advanced system monitoring tool
|
||||
procs # Modern ps
|
||||
hyperfine # Benchmarking tool
|
||||
|
||||
# Search and text processing
|
||||
ripgrep # Modern grep
|
||||
sd # Modern sed
|
||||
choose # Modern cut
|
||||
jq # JSON processor
|
||||
yq # YAML processor
|
||||
xsv # CSV processor
|
||||
# Search and text processing
|
||||
ripgrep # Modern grep
|
||||
sd # Modern sed
|
||||
choose # Modern cut
|
||||
jq # JSON processor
|
||||
yq # YAML processor
|
||||
xsv # CSV processor
|
||||
ncdu # Disk usage analyzer
|
||||
|
||||
# System monitoring and process management
|
||||
procs # Modern ps
|
||||
bottom # Modern top/htop
|
||||
hyperfine # Benchmarking tool
|
||||
bandwhich # Network utilization tool
|
||||
doggo # Modern dig
|
||||
gping # Ping with graph
|
||||
htop # Interactive process viewer
|
||||
# System monitoring and process management
|
||||
procs # Modern ps
|
||||
bottom # Modern top/htop
|
||||
hyperfine # Benchmarking tool
|
||||
bandwhich # Network utilization tool
|
||||
doggo # Modern dig
|
||||
gping # Ping with graph
|
||||
htop # Interactive process viewer
|
||||
|
||||
# Development utilities
|
||||
delta # Better git diff
|
||||
difftastic # Structural diff tool
|
||||
fzf # Fuzzy finder
|
||||
tokei # Code statistics
|
||||
tealdeer # Modern tldr client
|
||||
lazygit # Terminal UI for git
|
||||
# Development utilities
|
||||
delta # Better git diff
|
||||
difftastic # Structural diff tool
|
||||
fzf # Fuzzy finder
|
||||
tokei # Code statistics
|
||||
tealdeer # Modern tldr client
|
||||
lazygit # Terminal UI for git
|
||||
|
||||
# Shell and terminal
|
||||
starship # Cross-shell prompt
|
||||
blesh # Bash ble.sh
|
||||
zellij # Modern terminal multiplexer
|
||||
screen # Terminal multiplexer
|
||||
# Shell and terminal
|
||||
starship # Cross-shell prompt
|
||||
blesh # Bash ble.sh
|
||||
zellij # Modern terminal multiplexer
|
||||
screen # Terminal multiplexer
|
||||
|
||||
# File viewers and processors
|
||||
hexyl # Modern hexdump
|
||||
chafa # Terminal image viewer
|
||||
glow # Markdown renderer
|
||||
# File viewers and processors
|
||||
hexyl # Modern hexdump
|
||||
chafa # Terminal image viewer
|
||||
glow # Markdown renderer
|
||||
|
||||
# Editors
|
||||
neovim
|
||||
nano
|
||||
micro
|
||||
# Editors
|
||||
neovim
|
||||
## Neovim plugins
|
||||
vimPlugins.LazyVim
|
||||
|
||||
# Lolz
|
||||
fortune
|
||||
cowsay
|
||||
cmatrix
|
||||
figlet
|
||||
lolcat
|
||||
];
|
||||
nano
|
||||
micro
|
||||
|
||||
# Lolz
|
||||
fortune
|
||||
cowsay
|
||||
cmatrix
|
||||
figlet
|
||||
lolcat
|
||||
]
|
||||
++ (with pkgs-unstable; [ ]);
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [ ];
|
||||
home.packages = with pkgs; [ ddrescue ];
|
||||
}
|
||||
|
||||
108
config/home-manager/packages/workstation/brave-search-engines.sh
Executable file
108
config/home-manager/packages/workstation/brave-search-engines.sh
Executable file
@@ -0,0 +1,108 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
BRAVE_DIR="$HOME/.config/BraveSoftware/Brave-Browser/Default"
|
||||
MAX_ATTEMPTS=30 # Maximum number of seconds to wait
|
||||
|
||||
# Function to check if database is locked
|
||||
is_db_locked() {
|
||||
local db_file="$1"
|
||||
if lsof "$db_file" >/dev/null 2>&1; then
|
||||
return 0 # true, db is locked
|
||||
else
|
||||
return 1 # false, db is not locked
|
||||
fi
|
||||
}
|
||||
|
||||
# Check if profile exists
|
||||
if [ ! -d "$BRAVE_DIR" ]; then
|
||||
echo "Brave profile directory doesn't exist. Please run Brave at least once."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if Web Data exists
|
||||
if [ ! -f "$BRAVE_DIR/Web Data" ]; then
|
||||
echo "Web Data file doesn't exist. Please run Brave at least once."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Wait for database to be unlocked
|
||||
attempts=0
|
||||
while is_db_locked "$BRAVE_DIR/Web Data" && [ $attempts -lt $MAX_ATTEMPTS ]; do
|
||||
echo "Database is locked. Waiting... ($attempts/$MAX_ATTEMPTS)"
|
||||
sleep 1
|
||||
attempts=$((attempts + 1))
|
||||
done
|
||||
|
||||
if is_db_locked "$BRAVE_DIR/Web Data"; then
|
||||
echo "Database is still locked after $MAX_ATTEMPTS seconds. Please ensure Brave is completely closed and try again."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Setting up search engines..."
|
||||
|
||||
# Create temporary file for SQL commands
|
||||
SQLCOMMANDS=$(mktemp)
|
||||
|
||||
cat > $SQLCOMMANDS << 'ENDSQL'
|
||||
DELETE FROM keywords WHERE keyword NOT IN ('@bookmarks', '@history');
|
||||
|
||||
INSERT INTO keywords (
|
||||
short_name, keyword, favicon_url, url, safe_for_autoreplace,
|
||||
date_created, usage_count, input_encodings, suggest_url, prepopulate_id,
|
||||
sync_guid, alternate_urls, last_visited, is_active
|
||||
) VALUES
|
||||
(
|
||||
'Brave', ':br',
|
||||
'https://cdn.search.brave.com/serp/v2/_app/immutable/assets/favicon.acxxetWH.ico',
|
||||
'https://search.brave.com/search?q={searchTerms}&source=desktop',
|
||||
1, 0, 0, 'UTF-8',
|
||||
'https://search.brave.com/api/suggest?q={searchTerms}&rich=true&source=desktop',
|
||||
550, '485bf7d3-0215-45af-87dc-538868000550', '[]', 0, 0
|
||||
),
|
||||
(
|
||||
'Google', ':gg',
|
||||
'https://www.google.com/images/branding/product/ico/googleg_alldp.ico',
|
||||
'{google:baseURL}search?q={searchTerms}&{google:RLZ}{google:originalQueryForSuggestion}{google:assistedQueryStats}{google:searchFieldtrialParameter}{google:language}{google:prefetchSource}{google:searchClient}{google:sourceId}{google:contextualSearchVersion}ie={inputEncoding}',
|
||||
1, 0, 0, 'UTF-8',
|
||||
'{google:baseSuggestURL}search?{google:searchFieldtrialParameter}client={google:suggestClient}&gs_ri={google:suggestRid}&xssi=t&q={searchTerms}&{google:inputType}{google:omniboxFocusType}{google:cursorPosition}{google:currentPageUrl}{google:pageClassification}{google:clientCacheTimeToLive}{google:searchVersion}{google:sessionToken}{google:prefetchQuery}sugkey={google:suggestAPIKeyParameter}',
|
||||
1, '485bf7d3-0215-45af-87dc-538868000001', '[]', 0, 0
|
||||
),
|
||||
(
|
||||
'DuckDuckGo', ':dd',
|
||||
'https://duckduckgo.com/favicon.ico',
|
||||
'https://duckduckgo.com/?q={searchTerms}&t=brave',
|
||||
1, 0, 0, 'UTF-8',
|
||||
'https://ac.duckduckgo.com/ac/?q={searchTerms}&type=list',
|
||||
501, '485bf7d3-0215-45af-87dc-538868000501', '[]', 0, 0
|
||||
),
|
||||
(
|
||||
'NixOS', ':nix',
|
||||
'https://search.nixos.org/favicon.png',
|
||||
'https://search.nixos.org/packages?query={searchTerms}',
|
||||
1, 0, 0, '',
|
||||
'',
|
||||
0, '485bf7d3-0215-45af-87dc-538868000552', '[]', 0, 1
|
||||
),
|
||||
(
|
||||
'GoLink', ':go',
|
||||
'http://go/favicon.ico',
|
||||
'http://go/{searchTerms}',
|
||||
1, 0, 0, '',
|
||||
'',
|
||||
0, '485bf7d3-0215-45af-87dc-538868000551', '[]', 0, 1
|
||||
);
|
||||
ENDSQL
|
||||
|
||||
# Execute SQL commands
|
||||
sqlite3 "$BRAVE_DIR/Web Data" < $SQLCOMMANDS
|
||||
|
||||
# Cleanup
|
||||
rm $SQLCOMMANDS
|
||||
|
||||
echo "Search engines setup completed successfully!"
|
||||
|
||||
# Restart Brave if it was running before
|
||||
if [ "$BRAVE_WAS_RUNNING" = "1" ]; then
|
||||
echo "Restarting Brave..."
|
||||
brave &> /dev/null &
|
||||
fi
|
||||
39
config/home-manager/packages/workstation/brave.nix
Normal file
39
config/home-manager/packages/workstation/brave.nix
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
# Copy search engine configuration script
|
||||
home.file.".local/bin/brave-search-engines.sh" = {
|
||||
source = ./brave-search-engines.sh;
|
||||
executable = true;
|
||||
};
|
||||
|
||||
# Run search engine configuration script
|
||||
home.activation = {
|
||||
setBraveSearchEngines = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
|
||||
PATH="${pkgs.procps}/bin:${pkgs.sqlite}/bin:$PATH" $HOME/.local/bin/brave-search-engines.sh
|
||||
'';
|
||||
};
|
||||
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
package = pkgs.brave;
|
||||
extensions = [
|
||||
{ id = "cjpalhdlnbpafiamejdnhcphjbkeiagm"; } # ublock origin
|
||||
{ id = "aeblfdkhhhdcdjpifhhbdiojplfjncoa"; } # 1password
|
||||
{ id = "oldceeleldhonbafppcapldpdifcinji"; } # language tool
|
||||
{ id = "mnjggcdmjocbbbhaepdhchncahnbgone"; } # sponsor block
|
||||
{ id = "gebbhagfogifgggkldgodflihgfeippi"; } # return youtube dislike
|
||||
{ id = "neebplgakaahbhdphmkckjjcegoiijjo"; } # keepa
|
||||
{ id = "dnhpnfgdlenaccegplpojghhmaamnnfp"; } # augmented steam
|
||||
{ id = "fihnjjcciajhdojfnbdddfaoknhalnja"; } # I don't care about cookies
|
||||
{ id = "gphhapmejobijbbhgpjhcjognlahblep"; } # gnome shell integration
|
||||
{ id = "eadndfjplgieldjbigjakmdgkmoaaaoc"; } # xdebug helper
|
||||
{ id = "hlgbcneanomplepojfcnclggenpcoldo"; } # perplexity ai companion
|
||||
];
|
||||
commandLineArgs = [ ];
|
||||
};
|
||||
}
|
||||
@@ -1,7 +1,10 @@
|
||||
{ ... }:
|
||||
|
||||
let
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [
|
||||
"default.nix"
|
||||
"brave-search-engines.sh"
|
||||
];
|
||||
|
||||
# Import all other .nix files as modules
|
||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
||||
|
||||
6
config/home-manager/packages/workstation/ghostty.nix
Normal file
6
config/home-manager/packages/workstation/ghostty.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ ghostty, pkgs, ... }:
|
||||
{
|
||||
home.packages = [
|
||||
ghostty.packages.${pkgs.system}.default
|
||||
];
|
||||
}
|
||||
@@ -3,16 +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
|
||||
|
||||
7
config/home-manager/packages/workstation/steam.nix
Normal file
7
config/home-manager/packages/workstation/steam.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ pkgs, pkgs-unstable, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
steamcmd
|
||||
steam-tui
|
||||
];
|
||||
}
|
||||
12
config/home-manager/packages/workstation/thunderbird.nix
Normal file
12
config/home-manager/packages/workstation/thunderbird.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
programs.thunderbird = {
|
||||
enable = true;
|
||||
profiles = {
|
||||
default = {
|
||||
isDefault = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
153
config/home-manager/packages/workstation/ulauncher.nix
Normal file
153
config/home-manager/packages/workstation/ulauncher.nix
Normal file
@@ -0,0 +1,153 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
# Initial configuration files
|
||||
settingsJson = builtins.toJSON {
|
||||
blacklisted-desktop-dirs = "/usr/share/locale:/usr/share/app-install:/usr/share/kservices5:/usr/share/fk5:/usr/share/kservicetypes5:/usr/share/applications/screensavers:/usr/share/kde4:/usr/share/mimelnk";
|
||||
clear-previous-query = true;
|
||||
disable-desktop-filters = false;
|
||||
grab-mouse-pointer = false;
|
||||
hotkey-show-app = "<Control>Space";
|
||||
render-on-screen = "mouse-pointer-monitor";
|
||||
show-indicator-icon = true;
|
||||
show-recent-apps = "4";
|
||||
terminal-command = "ghostty";
|
||||
theme-name = "dark";
|
||||
};
|
||||
|
||||
shortcutsJson = builtins.toJSON {
|
||||
"0bab9d26-5464-4501-bc95-9995d8fa1405" = {
|
||||
"id" = "0bab9d26-5464-4501-bc95-9995d8fa1405";
|
||||
"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";
|
||||
"is_default_search" = true;
|
||||
"run_without_argument" = false;
|
||||
"added" = 0;
|
||||
};
|
||||
"d72834d1-5d81-4f5d-a9f6-386b12110f56" = {
|
||||
"id" = "d72834d1-5d81-4f5d-a9f6-386b12110f56";
|
||||
"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";
|
||||
"is_default_search" = true;
|
||||
"run_without_argument" = false;
|
||||
"added" = 0;
|
||||
};
|
||||
"4dfcffeb-879c-49b2-83bb-c16254a7ce75" = {
|
||||
"id" = "4dfcffeb-879c-49b2-83bb-c16254a7ce75";
|
||||
"name" = "GoLink";
|
||||
"keyword" = "go";
|
||||
"cmd" = "http://go/%s";
|
||||
"icon" = null;
|
||||
"is_default_search" = false;
|
||||
"run_without_argument" = false;
|
||||
"added" = 0;
|
||||
};
|
||||
"40d1ed32-8fd3-4bf8-92f5-cbaa7cd607a1" = {
|
||||
"id" = "40d1ed32-8fd3-4bf8-92f5-cbaa7cd607a1";
|
||||
"name" = "NixOS";
|
||||
"keyword" = "nix";
|
||||
"cmd" = "https://search.nixos.org/packages?query=%s";
|
||||
"icon" = null;
|
||||
"is_default_search" = false;
|
||||
"run_without_argument" = false;
|
||||
"added" = 0;
|
||||
};
|
||||
"43d1ed32-8fd3-fbf8-94f5-cffa7cd607a1" = {
|
||||
"id" = "40d1ed32-8fd3-4bf8-92f5-cbaa7cd607a1";
|
||||
"name" = "GitHub";
|
||||
"keyword" = "gh";
|
||||
"cmd" = "https://github.com/search?q=%s";
|
||||
"icon" = null;
|
||||
"is_default_search" = false;
|
||||
"run_without_argument" = false;
|
||||
"added" = 0;
|
||||
};
|
||||
};
|
||||
|
||||
# Create a Python environment with all required packages
|
||||
pythonWithPackages = pkgs.python3.withPackages (
|
||||
ps: with ps; [
|
||||
pytz
|
||||
thefuzz
|
||||
tornado
|
||||
docker
|
||||
requests
|
||||
pint
|
||||
simpleeval
|
||||
parsedatetime
|
||||
fuzzywuzzy
|
||||
]
|
||||
);
|
||||
|
||||
# Desktop file content with GDK_BACKEND=x11
|
||||
desktopEntry = ''
|
||||
[Desktop Entry]
|
||||
Name=Ulauncher
|
||||
Comment=Application launcher for Linux
|
||||
Categories=GNOME;Utility;
|
||||
Exec=env GDK_BACKEND=x11 ${config.home.homeDirectory}/.local/bin/ulauncher-wrapped
|
||||
Icon=ulauncher
|
||||
Terminal=false
|
||||
Type=Application
|
||||
'';
|
||||
|
||||
in
|
||||
|
||||
# Extensions
|
||||
# https://github.com/friday/ulauncher-gnome-settings
|
||||
# https://ext.ulauncher.io/-/github-ulauncher-ulauncher-emoji
|
||||
# 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; }; })
|
||||
];
|
||||
|
||||
home.packages = with pkgs; [
|
||||
ulauncher
|
||||
pythonWithPackages # Make Python environment available system-wide
|
||||
];
|
||||
|
||||
# Create a wrapper script to set PYTHONPATH and GDK_BACKEND=x11
|
||||
home.file.".local/bin/ulauncher-wrapped" = {
|
||||
executable = true;
|
||||
text = ''
|
||||
#!${pkgs.bash}/bin/bash
|
||||
export GDK_BACKEND=x11
|
||||
export PYTHONPATH="${pythonWithPackages}/${pythonWithPackages.sitePackages}:$PYTHONPATH"
|
||||
exec ${pkgs.ulauncher}/bin/ulauncher "$@"
|
||||
'';
|
||||
};
|
||||
|
||||
# Update both desktop files
|
||||
xdg.configFile."autostart/ulauncher.desktop".text = desktopEntry;
|
||||
xdg.dataFile."applications/ulauncher.desktop".text = desktopEntry;
|
||||
|
||||
# Enable autostart for Ulauncher
|
||||
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" ] ''
|
||||
config_dir="$HOME/.config/ulauncher"
|
||||
mkdir -p "$config_dir"
|
||||
|
||||
rm -f "$config_dir/settings.json"
|
||||
echo '${settingsJson}' > "$config_dir/settings.json"
|
||||
rm -f "$config_dir/shortcuts.json"
|
||||
echo '${shortcutsJson}' > "$config_dir/shortcuts.json"
|
||||
'';
|
||||
}
|
||||
@@ -35,21 +35,30 @@
|
||||
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";
|
||||
};
|
||||
|
||||
# Pinned apps
|
||||
# add more by listing them with `gsettings list-recursively | grep favorite-apps`
|
||||
# add more by listing them with `gsettings list-recursively | grep favorite-apps | sed "s/,//g; s/'/\"/g"` then copy pasting the output here
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = [
|
||||
"io.github.zen_browser.zen.desktop"
|
||||
"brave-browser.desktop"
|
||||
"code.desktop"
|
||||
"org.telegram.desktop.desktop"
|
||||
"spotify.desktop"
|
||||
"com.plexamp.Plexamp.desktop"
|
||||
"vesktop.desktop"
|
||||
"org.gnome.Geary.desktop"
|
||||
"org.gnome.Nautilus.desktop"
|
||||
"nemo.desktop"
|
||||
"org.gnome.Console.desktop"
|
||||
];
|
||||
};
|
||||
@@ -57,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";
|
||||
};
|
||||
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
# Zen Browser
|
||||
"application/xhtml+xml" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"text/html" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"x-scheme-handler/http" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"x-scheme-handler/https" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
# Brave Browser
|
||||
"application/xhtml+xml" = [ "brave-browser.desktop" ];
|
||||
"text/html" = [ "brave-browser.desktop" ];
|
||||
"x-scheme-handler/http" = [ "brave-browser.desktop" ];
|
||||
"x-scheme-handler/https" = [ "brave-browser.desktop" ];
|
||||
|
||||
# Geary
|
||||
"x-scheme-handler/mailto" = [ "org.gnome.Geary.desktop" ];
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
user-themes
|
||||
weather-oclock
|
||||
native-window-placement
|
||||
kimpanel
|
||||
]
|
||||
++ (with pkgs-unstable.gnomeExtensions; [
|
||||
tiling-shell
|
||||
@@ -32,6 +33,7 @@
|
||||
just-perfection
|
||||
smile-complementary-extension
|
||||
vitals
|
||||
clipboard-indicator
|
||||
]);
|
||||
|
||||
# Copy burn-my-windows profile to user config
|
||||
@@ -55,6 +57,7 @@
|
||||
"org/gnome/shell" = {
|
||||
disable-user-extensions = false;
|
||||
enabled-extensions = [
|
||||
"kimpanel@kde.org"
|
||||
"lilypad@shendrew.github.io"
|
||||
"tilingshell@ferrarodomenico.com"
|
||||
"gsconnect@andyholmes.github.io"
|
||||
@@ -77,9 +80,21 @@
|
||||
"native-window-placement@gnome-shell-extensions.gcampax.github.com"
|
||||
"smile-extension@mijorus.it"
|
||||
"Vitals@CoreCoding.com"
|
||||
"clipboard-indicator@tudmotu.com"
|
||||
];
|
||||
};
|
||||
|
||||
# Clipboard indicator settings
|
||||
"org/gnome/shell/extensions/clipboard-indicator" = {
|
||||
history-size = 50;
|
||||
cache-size = 50;
|
||||
preview-size = 50;
|
||||
strip-text = true;
|
||||
keep-selected-on-clear = true;
|
||||
move-item-first = true;
|
||||
toggle-menu = [ "<Shift><Alt>V" ];
|
||||
};
|
||||
|
||||
# Perfection settings
|
||||
"org/gnome/shell/extensions/just-perfection" = {
|
||||
theme = false;
|
||||
@@ -94,6 +109,8 @@
|
||||
|
||||
# Configure dash-to-dock
|
||||
"org/gnome/shell/extensions/dash-to-dock" = {
|
||||
pressure-threshold = 250;
|
||||
require-pressure-to-show = false;
|
||||
apply-custom-theme = false;
|
||||
apply-glossy-effect = false;
|
||||
autohide-in-fullscreen = true;
|
||||
@@ -287,6 +304,29 @@
|
||||
"org/gnome/shell/extensions/user-theme" = {
|
||||
name = "Yaru-purple-dark";
|
||||
};
|
||||
|
||||
# Lilypad settings
|
||||
"org/gnome/shell/extensions/lilypad/rightbox-order" = {
|
||||
|
||||
# In case this is updated, run: `dconf read /org/gnome/shell/extensions/lilypad/rightbox-order | sed "s/,//g; s/'/\"/g ` then copy pasting the output here
|
||||
rightbox-order = [
|
||||
"lilypad"
|
||||
"system_monitor"
|
||||
"appindicator_legacy_TelegramDesktop"
|
||||
"appindicator_legacy_1password"
|
||||
"spotify_client"
|
||||
"com_github_eneshecan_WhatsAppForLinux_Tray"
|
||||
"appindicator_legacy_Electron"
|
||||
"steam"
|
||||
"appindicator_legacy_steam"
|
||||
"workspace_indicator"
|
||||
"vitalsMenu"
|
||||
"StatusNotifierItem"
|
||||
"clipboardIndicator"
|
||||
"screenSharing"
|
||||
];
|
||||
show-icons = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal/"
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emotes/"
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/frog/"
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/ulauncher/"
|
||||
];
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/1password-quick-access" = {
|
||||
@@ -29,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" = {
|
||||
@@ -42,5 +43,10 @@
|
||||
command = "frog";
|
||||
name = "frog-ocr";
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/ulauncher" = {
|
||||
binding = "<Control>Space";
|
||||
command = "ulauncher-toggle";
|
||||
name = "ulauncher";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
{ config, pkgs, ... }: { }
|
||||
@@ -1,6 +1,8 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# OpenSSH server
|
||||
# Install xanmod kernel
|
||||
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_stable.zfs;
|
||||
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
ports = [ 400 ];
|
||||
@@ -16,13 +18,29 @@
|
||||
};
|
||||
};
|
||||
|
||||
# Open ports in the firewall
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
# SSH
|
||||
400
|
||||
];
|
||||
allowedUDPPorts = [ ];
|
||||
networking = {
|
||||
firewall = {
|
||||
enable = true;
|
||||
|
||||
# External ports
|
||||
allowedTCPPorts = [
|
||||
## Portforwarded
|
||||
80 # HTTP
|
||||
443 # HTTPS
|
||||
22 # Git over SSH
|
||||
25565 # Minecraft
|
||||
24454 # Minecraft (Voice Chat)
|
||||
32400 # Plex
|
||||
51820 # WireGuard
|
||||
|
||||
## Internal services / TailScale
|
||||
400 # SSH
|
||||
];
|
||||
|
||||
allowedUDPPorts = [
|
||||
51820 # WireGuard
|
||||
25565 # Minecraft
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -16,9 +16,7 @@
|
||||
]
|
||||
# Include packages based on whether this is a server or workstation.
|
||||
++ lib.optional isServer ./packages/server/default.nix
|
||||
++ lib.optional isWorkstation ./packages/workstation/default.nix
|
||||
# Include docker if this is a server, otherwise include nothing because we don't intend on running docker services on workstations.
|
||||
++ lib.optional isServer ./docker/default.nix;
|
||||
++ lib.optional isWorkstation ./packages/workstation/default.nix;
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
@@ -68,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?
|
||||
}
|
||||
|
||||
@@ -1,11 +0,0 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./wireguard.nix
|
||||
./duplicati.nix
|
||||
./factorio.nix
|
||||
./golink.nix
|
||||
./immich.nix
|
||||
./satisfactory.nix
|
||||
];
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/duplicati/docker-compose.yml".source = ./duplicati/docker-compose.yml;
|
||||
|
||||
systemd.services.duplicati = {
|
||||
description = "Duplicati Backup Server Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/duplicati/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/duplicati/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/duplicati";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
name: duplicati
|
||||
services:
|
||||
server:
|
||||
image: lscr.io/linuxserver/duplicati:latest
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
- CLI_ARGS=
|
||||
volumes:
|
||||
- ./config:/config
|
||||
- /mnt:/source/mnt
|
||||
- /etc/docker:/source/etc/docker
|
||||
ports:
|
||||
- 8200:8200
|
||||
restart: unless-stopped
|
||||
@@ -1,19 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/factorio/docker-compose.yml".source = ./factorio/docker-compose.yml;
|
||||
|
||||
systemd.services.factorio = {
|
||||
description = "Factorio Server Manager Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/factorio/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/factorio/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/factorio";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
name: factorio
|
||||
services:
|
||||
upnp:
|
||||
image: ghcr.io/vleeuwenmenno/auto-upnp:latest
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
environment:
|
||||
UPNP_DURATION: 86400 # 24 hours in seconds
|
||||
PORTS: |
|
||||
[
|
||||
{"port": 34197, "protocol": "udp"}
|
||||
]
|
||||
|
||||
server-manager:
|
||||
image: "ofsm/ofsm:latest"
|
||||
container_name: "factorio-server-manager"
|
||||
restart: "unless-stopped"
|
||||
environment:
|
||||
- "FACTORIO_VERSION=stable"
|
||||
ports:
|
||||
- "5080:80"
|
||||
- "34197:34197/udp"
|
||||
volumes:
|
||||
- "./fsm:/opt/fsm-data"
|
||||
- "./saves:/opt/factorio/saves"
|
||||
- "./mods:/opt/factorio/mods"
|
||||
- "./config:/opt/factorio/config"
|
||||
- "./mod_packs:/opt/fsm/mod_packs"
|
||||
@@ -1,19 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
environment.etc."docker/golink/docker-compose.yml".source = ./golink/docker-compose.yml;
|
||||
environment.etc."docker/golink/.env".source = ./golink/.env;
|
||||
|
||||
systemd.services.golink = {
|
||||
description = "GoLink Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/golink/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/golink/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/golink";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
TS_AUTHKEY=
|
||||
@@ -1,9 +0,0 @@
|
||||
name: golink
|
||||
services:
|
||||
server:
|
||||
image: ghcr.io/tailscale/golink:main
|
||||
environment:
|
||||
- TS_AUTHKEY=${TS_AUTHKEY}
|
||||
volumes:
|
||||
- ./data:/home/nonroot
|
||||
restart: "unless-stopped"
|
||||
@@ -1,22 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/immich/docker-compose.yml".source = ./immich/docker-compose.yml;
|
||||
environment.etc."docker/immich/.env".source = ./immich/.env;
|
||||
environment.etc."docker/immich/hwaccel.ml.yml".source = ./immich/hwaccel.ml.yml;
|
||||
environment.etc."docker/immich/hwaccel.transcoding.yml".source = ./immich/hwaccel.transcoding.yml;
|
||||
|
||||
systemd.services.immich = {
|
||||
description = "Immich Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/immich/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/immich/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/immich";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
# You can find documentation for all the supported env variables at https://immich.app/docs/install/environment-variables
|
||||
|
||||
# The location where your uploaded files are stored
|
||||
UPLOAD_LOCATION=/mnt/8tb/Photos/immich-library
|
||||
# The location where your database files are stored
|
||||
DB_DATA_LOCATION=./postgres
|
||||
|
||||
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
|
||||
TZ=Europe/Amsterdam
|
||||
|
||||
# The Immich version to use. You can pin this to a specific version like "v1.71.0"
|
||||
IMMICH_VERSION=release
|
||||
|
||||
# Connection secret for postgres. You should change it to a random password
|
||||
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
|
||||
DB_PASSWORD=postgres
|
||||
|
||||
# The values below this line do not need to be changed
|
||||
###################################################################################
|
||||
DB_USERNAME=postgres
|
||||
DB_DATABASE_NAME=immich
|
||||
@@ -1,79 +0,0 @@
|
||||
name: immich
|
||||
services:
|
||||
server:
|
||||
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
|
||||
extends:
|
||||
file: hwaccel.transcoding.yml
|
||||
service: nvenc # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
|
||||
volumes:
|
||||
- ${UPLOAD_LOCATION}:/usr/src/app/upload
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
env_file:
|
||||
- .env
|
||||
ports:
|
||||
- '2283:2283'
|
||||
depends_on:
|
||||
- redis
|
||||
- database
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
machine-learning:
|
||||
# For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag.
|
||||
# Example tag: ${IMMICH_VERSION:-release}-cuda
|
||||
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}-cuda
|
||||
extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration
|
||||
file: hwaccel.ml.yml
|
||||
service: cuda # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable
|
||||
volumes:
|
||||
- model-cache:/cache
|
||||
env_file:
|
||||
- .env
|
||||
restart: always
|
||||
healthcheck:
|
||||
disable: false
|
||||
|
||||
redis:
|
||||
container_name: immich_redis
|
||||
image: docker.io/redis:6.2-alpine@sha256:2ba50e1ac3a0ea17b736ce9db2b0a9f6f8b85d4c27d5f5accc6a416d8f42c6d5
|
||||
healthcheck:
|
||||
test: redis-cli ping || exit 1
|
||||
restart: always
|
||||
|
||||
database:
|
||||
container_name: immich_postgres
|
||||
image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0
|
||||
environment:
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
POSTGRES_USER: ${DB_USERNAME}
|
||||
POSTGRES_DB: ${DB_DATABASE_NAME}
|
||||
POSTGRES_INITDB_ARGS: '--data-checksums'
|
||||
volumes:
|
||||
# Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file
|
||||
- ${DB_DATA_LOCATION}:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1
|
||||
interval: 5m
|
||||
start_interval: 30s
|
||||
start_period: 5m
|
||||
command:
|
||||
[
|
||||
'postgres',
|
||||
'-c',
|
||||
'shared_preload_libraries=vectors.so',
|
||||
'-c',
|
||||
'search_path="$$user", public, vectors',
|
||||
'-c',
|
||||
'logging_collector=on',
|
||||
'-c',
|
||||
'max_wal_size=2GB',
|
||||
'-c',
|
||||
'shared_buffers=512MB',
|
||||
'-c',
|
||||
'wal_compression=on',
|
||||
]
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
model-cache:
|
||||
@@ -1,27 +0,0 @@
|
||||
# Configurations for hardware-accelerated machine learning
|
||||
|
||||
# If using Unraid or another platform that doesn't allow multiple Compose files,
|
||||
# you can inline the config for a backend by copying its contents
|
||||
# into the immich-machine-learning service in the docker-compose.yml file.
|
||||
|
||||
# See https://immich.app/docs/features/ml-hardware-acceleration for info on usage.
|
||||
|
||||
services:
|
||||
armnn:
|
||||
devices:
|
||||
- /dev/mali0:/dev/mali0
|
||||
volumes:
|
||||
- /lib/firmware/mali_csffw.bin:/lib/firmware/mali_csffw.bin:ro # Mali firmware for your chipset (not always required depending on the driver)
|
||||
- /usr/lib/libmali.so:/usr/lib/libmali.so:ro # Mali driver for your chipset (always required)
|
||||
|
||||
cpu: {}
|
||||
|
||||
cuda:
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities:
|
||||
- gpu
|
||||
@@ -1,43 +0,0 @@
|
||||
# Configurations for hardware-accelerated transcoding
|
||||
|
||||
# If using Unraid or another platform that doesn't allow multiple Compose files,
|
||||
# you can inline the config for a backend by copying its contents
|
||||
# into the immich-microservices service in the docker-compose.yml file.
|
||||
|
||||
# See https://immich.app/docs/features/hardware-transcoding for more info on using hardware transcoding.
|
||||
|
||||
services:
|
||||
cpu: {}
|
||||
|
||||
nvenc:
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities:
|
||||
- gpu
|
||||
- compute
|
||||
- video
|
||||
|
||||
rkmpp:
|
||||
security_opt: # enables full access to /sys and /proc, still far better than privileged: true
|
||||
- systempaths=unconfined
|
||||
- apparmor=unconfined
|
||||
group_add:
|
||||
- video
|
||||
devices:
|
||||
- /dev/rga:/dev/rga
|
||||
- /dev/dri:/dev/dri
|
||||
- /dev/dma_heap:/dev/dma_heap
|
||||
- /dev/mpp_service:/dev/mpp_service
|
||||
#- /dev/mali0:/dev/mali0 # only required to enable OpenCL-accelerated HDR -> SDR tonemapping
|
||||
volumes:
|
||||
#- /etc/OpenCL:/etc/OpenCL:ro # only required to enable OpenCL-accelerated HDR -> SDR tonemapping
|
||||
#- /usr/lib/aarch64-linux-gnu/libmali.so.1:/usr/lib/aarch64-linux-gnu/libmali.so.1:ro # only required to enable OpenCL-accelerated HDR -> SDR tonemapping
|
||||
|
||||
vaapi:
|
||||
devices:
|
||||
- /dev/dri:/dev/dri
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/satisfactory/docker-compose.yml".source = ./satisfactory/docker-compose.yml;
|
||||
|
||||
systemd.services.satisfactory = {
|
||||
description = "Satisfactory Game Server Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/satisfactory/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/satisfactory/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/satisfactory";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
name: satisfactory
|
||||
services:
|
||||
upnp:
|
||||
image: ghcr.io/vleeuwenmenno/auto-upnp:latest
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
environment:
|
||||
UPNP_DURATION: 86400 # 24 hours in seconds
|
||||
PORTS: |
|
||||
[
|
||||
{"port": 7777, "protocol": "udp"},
|
||||
{"port": 15000, "protocol": "udp"},
|
||||
{"port": 15777, "protocol": "udp"},
|
||||
{"port": 27015, "protocol": "tcp"},
|
||||
{"port": 27015, "protocol": "udp"},
|
||||
{"port": 27031, "protocol": "udp"},
|
||||
{"port": 27032, "protocol": "udp"},
|
||||
{"port": 27033, "protocol": "udp"},
|
||||
{"port": 27034, "protocol": "udp"},
|
||||
{"port": 27035, "protocol": "udp"},
|
||||
{"port": 27036, "protocol": "tcp"},
|
||||
{"port": 27036, "protocol": "udp"}
|
||||
]
|
||||
|
||||
server:
|
||||
hostname: 'satisfactory-server'
|
||||
image: 'wolveix/satisfactory-server:latest'
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- './data/config:/config'
|
||||
- './data/certs/live/satisfactory.mvl.sh/fullchain.pem:/config/gamefiles/FactoryGame/Certificates/cert_chain.pem'
|
||||
- './data/certs/live/satisfactory.mvl.sh/privkey.pem:/config/gamefiles/FactoryGame/Certificates/private_key.pem'
|
||||
environment:
|
||||
- MAXPLAYERS=4
|
||||
- PGID=1000
|
||||
- PUID=1000
|
||||
- ROOTLESS=false
|
||||
- STEAMBETA=false
|
||||
healthcheck:
|
||||
test: [ "CMD", "bash", "/healthcheck.sh" ]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 120s
|
||||
depends_on:
|
||||
certbot:
|
||||
condition: service_completed_successfully
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
memory: 4G
|
||||
limits:
|
||||
memory: 8G
|
||||
network_mode: 'host'
|
||||
|
||||
certbot:
|
||||
image: certbot/certbot
|
||||
command: certonly --standalone --non-interactive --agree-tos -m menno@vleeuwen.me -d satisfactory.mvl.sh
|
||||
# Uncomment this when requesting a new certificate, make sure to disable nginx-proxy-manager first since this conflicts with port 80
|
||||
# ports:
|
||||
# - '80:80/tcp'
|
||||
volumes:
|
||||
- ./data/certs:/etc/letsencrypt
|
||||
environment:
|
||||
- CERTBOT_MAIL=menno@vleeuwen.me
|
||||
- DOMAIN=satisfactory.mvl.sh
|
||||
@@ -1,19 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/wireguard/docker-compose.yml".source = ./wireguard/docker-compose.yml;
|
||||
|
||||
systemd.services.wireguard = {
|
||||
description = "Wireguard Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/wireguard/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/wireguard/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/wireguard";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
name: wireguard
|
||||
services:
|
||||
upnp:
|
||||
image: ghcr.io/vleeuwenmenno/auto-upnp:latest
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
environment:
|
||||
UPNP_DURATION: 86400 # 24 hours in seconds
|
||||
PORTS: |
|
||||
[
|
||||
{"port": 51820, "protocol": "udp"}
|
||||
]
|
||||
|
||||
server:
|
||||
image: lscr.io/linuxserver/wireguard:latest
|
||||
container_name: wireguard
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
environment:
|
||||
- PEERS=fold6,pc,laptop
|
||||
volumes:
|
||||
- ./config:/config
|
||||
ports:
|
||||
- 51820:51820/udp
|
||||
sysctls:
|
||||
- net.ipv4.conf.all.src_valid_mark=1
|
||||
restart: unless-stopped
|
||||
|
||||
93
config/nixos/flake.lock
generated
93
config/nixos/flake.lock
generated
@@ -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"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -9,33 +9,49 @@
|
||||
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;
|
||||
};
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
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
|
||||
];
|
||||
}
|
||||
|
||||
@@ -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"
|
||||
];
|
||||
}
|
||||
|
||||
@@ -6,47 +6,59 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ /etc/nixos/hardware-configuration.nix ];
|
||||
imports = [
|
||||
/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";
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# Enable OpenGL
|
||||
# hardware.opengl.enable = true;
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# # Load nvidia driver for Xorg and Wayland
|
||||
# services.xserver.videoDrivers = [ "nvidia" ];
|
||||
# Load nvidia driver for Xorg and Wayland
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
# hardware.nvidia = {
|
||||
# # Modesetting is required.
|
||||
# modesetting.enable = true;
|
||||
# Enable graphics
|
||||
hardware.graphics.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;
|
||||
# nvtop, a system monitor for GPUs
|
||||
environment.systemPackages = with pkgs; [ nvtopPackages.nvidia ];
|
||||
|
||||
# # 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;
|
||||
# Enable NVIDIA Docker support
|
||||
# test with: $ docker run --rm -it --device=nvidia.com/gpu=all ubuntu:latest nvidia-smi
|
||||
hardware.nvidia-container-toolkit.enable = true;
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# # 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;
|
||||
# Swap file (Laptop has 64GB of RAM so 16GB swap should be enough)
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/swapfile";
|
||||
size = 16384;
|
||||
}
|
||||
];
|
||||
|
||||
# # Enable the Nvidia settings menu,
|
||||
# # accessible via `nvidia-settings`.
|
||||
# nvidiaSettings = true;
|
||||
hardware.nvidia = {
|
||||
modesetting.enable = true;
|
||||
powerManagement.enable = false;
|
||||
powerManagement.finegrained = false;
|
||||
open = false;
|
||||
nvidiaSettings = true;
|
||||
|
||||
# # Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
# package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
# };
|
||||
# Use the latest driver from the unstable channel
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
}
|
||||
|
||||
147
config/nixos/hardware/mennos-server/zfs.nix
Normal file
147
config/nixos/hardware/mennos-server/zfs.nix
Normal file
@@ -0,0 +1,147 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
# Create a script to set permissions
|
||||
permissionsScript = pkgs.writeShellScriptBin "set-zfs-permissions" ''
|
||||
# Set default permissions for all service directories
|
||||
find /mnt/services -mindepth 1 -maxdepth 1 -type d \
|
||||
-exec chmod 775 {} \; \
|
||||
-exec chown menno:users {} \;
|
||||
|
||||
# Special cases
|
||||
chmod 774 /mnt/services/golink
|
||||
chown 65532:users /mnt/services/golink
|
||||
|
||||
chmod 754 /mnt/services/torrent
|
||||
chown menno:users /mnt/services/torrent
|
||||
|
||||
chmod 755 /mnt/services/proxy
|
||||
chmod 755 /mnt/services/static-websites
|
||||
|
||||
chown menno:users /mnt/backups
|
||||
chown menno:users /mnt/backups/photos
|
||||
chown menno:users /mnt/backups/services
|
||||
chmod 775 /mnt/backups
|
||||
chmod 775 /mnt/backups/photos
|
||||
chmod 775 /mnt/backups/services
|
||||
|
||||
# Set permissions for other mount points
|
||||
for dir in /mnt/{ai,astrophotography,audiobooks,downloads,ISOs,movies,music,old_backups,photos,stash,tvshows,VMs}; do
|
||||
chmod 755 "$dir"
|
||||
chown menno:users "$dir"
|
||||
done
|
||||
'';
|
||||
in
|
||||
{
|
||||
environment.systemPackages = with pkgs; [
|
||||
zfs
|
||||
zfstools
|
||||
permissionsScript
|
||||
smartmontools
|
||||
];
|
||||
|
||||
# Add the permissions service
|
||||
systemd.services.zfs-permissions = {
|
||||
description = "Set ZFS mount permissions";
|
||||
|
||||
# Run after ZFS mounts are available
|
||||
after = [ "zfs.target" ];
|
||||
requires = [ "zfs.target" ];
|
||||
|
||||
# Run on boot and every 6 hours
|
||||
startAt = "*-*-* */6:00:00";
|
||||
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
ExecStart = "${permissionsScript}/bin/set-zfs-permissions";
|
||||
User = "root";
|
||||
Group = "root";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable ZFS support
|
||||
boot.supportedFilesystems = [
|
||||
"ntfs"
|
||||
"zfs"
|
||||
];
|
||||
|
||||
# ZFS system services
|
||||
services.zfs = {
|
||||
autoScrub = {
|
||||
enable = true;
|
||||
interval = "weekly";
|
||||
};
|
||||
};
|
||||
|
||||
# If you want to keep compression settings
|
||||
boot.kernelParams = [
|
||||
"zfs.zfs_compressed_arc_enabled=1" # Enable compressed ARC
|
||||
"zfs.zfs_arc_max=21474836480" # 20 GiB
|
||||
];
|
||||
|
||||
fileSystems = {
|
||||
# backup ZFS mount points
|
||||
"/mnt/backups/photos" = {
|
||||
device = "backup/photos-duplicati";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/backups/services" = {
|
||||
device = "backup/services-duplicati";
|
||||
fsType = "zfs";
|
||||
};
|
||||
|
||||
# datapool ZFS mount points
|
||||
"/mnt/ai" = {
|
||||
device = "datapool/ai";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/astrophotography" = {
|
||||
device = "datapool/astro";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/audiobooks" = {
|
||||
device = "datapool/audiobooks";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/downloads" = {
|
||||
device = "datapool/downloads";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/ISOs" = {
|
||||
device = "datapool/isos";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/movies" = {
|
||||
device = "datapool/movies";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/music" = {
|
||||
device = "datapool/music";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/old_backups" = {
|
||||
device = "datapool/old_backups";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/photos" = {
|
||||
device = "datapool/photos";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/services" = {
|
||||
device = "datapool/services";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/stash" = {
|
||||
device = "datapool/stash";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/tvshows" = {
|
||||
device = "datapool/tv_shows";
|
||||
fsType = "zfs";
|
||||
};
|
||||
"/mnt/VMs" = {
|
||||
device = "datapool/vms";
|
||||
fsType = "zfs";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -8,4 +8,4 @@
|
||||
127.0.0.1 api.local
|
||||
127.0.0.1 mailpit.local
|
||||
'';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [ ./virtualization.nix ];
|
||||
imports = [ ./virtualisation.nix ];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
yubikey-manager
|
||||
trash-cli
|
||||
sqlite # Used for managing SQLite databases (Brave Settings etc.)
|
||||
xcp # Rust implementation of cp/mv command
|
||||
pandoc # Document converter (Markdown, HTML, PDF etc.) (Mostly used for static site generators)
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,12 +1,15 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||
|
||||
# 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";
|
||||
};
|
||||
}
|
||||
|
||||
97
config/nixos/packages/server/juicefs.nix
Normal file
97
config/nixos/packages/server/juicefs.nix
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -2,9 +2,7 @@
|
||||
{
|
||||
# Import all the package modules
|
||||
imports = [
|
||||
./1password.nix
|
||||
./flatpak.nix
|
||||
./steam.nix
|
||||
./pano.nix
|
||||
./1password.nix
|
||||
];
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
{ pkgs, ... }: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.flatpak.enable = true;
|
||||
systemd.services.flatpak-repo = {
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
path = [ pkgs.flatpak ];
|
||||
script = ''
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
'';
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
environment.systemPackages = [ (pkgs.callPackage ./pano { }) ];
|
||||
}
|
||||
@@ -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 ];
|
||||
};
|
||||
}
|
||||
@@ -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';
|
||||
@@ -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;
|
||||
};
|
||||
}
|
||||
@@ -13,6 +13,9 @@
|
||||
"docker"
|
||||
"video"
|
||||
"render"
|
||||
"users"
|
||||
"input"
|
||||
"adbusers"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,2 +1,8 @@
|
||||
# This is the authrorized_keys file for the user mennos-laptop
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||
|
||||
# Samsung S24U
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMSJwfqOZQxGDbM07JziQeBNirvQxhFd6nEwWPjy1zCo u0_a555@localhost
|
||||
|
||||
# Menno's 2025 SSH Key
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE22Hfx8wgkc57TXX1TCMHcNrCdjbfog5QeHFJfl7IeD mennos-2025-sshkey
|
||||
|
||||
@@ -1,2 +1,8 @@
|
||||
# This is the authrorized_keys file for the user mennos-gamingpc
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||
# 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
|
||||
|
||||
@@ -1,2 +1,8 @@
|
||||
# This is the authrorized_keys file for the user mennos-laptop
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||
|
||||
# Samsung S24U
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIMSJwfqOZQxGDbM07JziQeBNirvQxhFd6nEwWPjy1zCo u0_a555@localhost
|
||||
|
||||
# Menno's 2025 SSH Key
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIE22Hfx8wgkc57TXX1TCMHcNrCdjbfog5QeHFJfl7IeD mennos-2025-sshkey
|
||||
|
||||
@@ -1,2 +1,8 @@
|
||||
# This is the authrorized_keys file for the user mennos-server
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||
# 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
|
||||
|
||||
@@ -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-----
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
jA0ECQMI5RidcMTcDnv/0pAB3EfRm5WT3Niz66zAHGrokTLfnp+yZ7BN6Tt3I6M1
|
||||
wGWBBCY11yJZ5WcD2h4jSdqJhdxsa2TJPKnUvkn4A2to1KMDpq72U4yzMfGc99K6
|
||||
tP9E6FiktACZQGlUaPVZe/Ut15jHSUEo894tso7XG/dWxqKbVMEjzMjwwC6WxJK1
|
||||
fd5WM2bor0fY9K9zMIOweCo=
|
||||
=2wZs
|
||||
jA0ECQMI3rCkM4WCKnn/0sASAQjifcMA4M5hjwkP8dZXxah9d8g8YeofFTPLgPMm
|
||||
zUR7BcyuniGeHkdkPhVIPDU9ea8BB6JVgldGNeHOh0Rj+OdO95RzPkC4VyGlhVC7
|
||||
qoDdy+QQUOVImgEjbNLSOD3VKJzYQMfcmF2X6yZ0TpfOeHZyOmaVXQU+hdIl2g9r
|
||||
zJjzKh2Ukp0VAF+1mp6mcU3fKhwJyffxF1491ExXYM80q1+S247/zLgU1/nQi/u5
|
||||
cX1cV14qi/nFQdmuNlNjahusvSpVtkhsa8TYMRyDP9rr+WdQ
|
||||
=an0w
|
||||
-----END PGP MESSAGE-----
|
||||
|
||||
@@ -1,11 +1,10 @@
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
jA0ECQMIJX/hE+QfNpz/0sBiAfL+UCwD3Q6xmXtnWFfx2jaPVzJ0LsxWCirV4NBR
|
||||
XdIYJ+bHdCPB6kTTCxbtY/oDMdC2POpDTCrF1hz76Ca42lvTN2OLxPuOmZwhp+GL
|
||||
fTYUaMcGcP5u6Lo3fHSeOo+EKLK9//S5HhKTn8ymJh+MllQbpBKBoO/GB+qOIcvh
|
||||
esRPM1szohidAYhpAmmLw0m7+LRrC5MN0pbrG80D0kchkhl+XYIUX39eUymbuAgZ
|
||||
ZIdJQ4inS/cp8FKZO0JI4HD6fu9+UFMeJrpv61XvQ3C06urNexyjNLvpUM/up/Nz
|
||||
xfCIiNTGvJY21kOAV3j9xtBz+ApZOgixzLr+QYHwJsKQPRlCRONhe+L8dpS6kIXm
|
||||
R/HEujbrurgfxlfe/jUCc96yGLY=
|
||||
=dKuW
|
||||
jA0ECQMIECtNQigofUT/0sA7AfQFumfYw02g3y4nQuPYrfbgyHuMVCsMk+nLlcLb
|
||||
5I+zgR8c1ie/S5XBk3wLlJ0suhb8m4ifZOJoRcIW7G+ISTPjIetaJQnkvObKUBgG
|
||||
QXz54oWcQYXMeaGcEq442gU0x+S3HVU2GcIhRdiUuZ5DYbaEsYnLcPLBrp73a/wE
|
||||
+hb3IZC1zGcijpC4ovcVVAZvHUaKpV0hCzJXNGgvPW0H7/GRxQyPKjghUQ7DgCRu
|
||||
4u7t/GU2JDrep+nteUu5Rs+P7bypZdyripMj6BxoqHmwjj1ddeSK7Bv602Nt+7/n
|
||||
Bcg8xpViAasXREuaR3Z6r9SFlex7qbQjMMBtb2M=
|
||||
=wrl9
|
||||
-----END PGP MESSAGE-----
|
||||
|
||||
@@ -1,11 +1,9 @@
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
jA0ECQMI5QTAzMem3iX/0sB7Af9vzRP3ckaEbBXnuuDV2rySfPhVUIhWhCLrdDlF
|
||||
VPKF+LpsZtQ/YTMDUIs+LyY4+9WEAnA4BtvoKT0+dlG7KrkVZm0cdnuYPAjxUj/d
|
||||
UY6Oe+SxhWZ8REwee1bIezwOR1TDrCZ4Puqhzku6ldTCQ4TStm21yX6n0bC1sDZW
|
||||
crLZokGAnrdMurXNskjoCy7NKbA+qHPuX2dwjDLc5mM1nFUwSVcQKDGT2wa7oYgQ
|
||||
f/9BhI9TH/1uepyRErZq6J1DR0sc2q4ZEsMrIR7gqdGLlflFuZwZvmTrFybLEihV
|
||||
U3G+09UM1utbGlgkex7yOTp0DZ9/UxYvVdunrvS4WLM29ULQe6oGt7coTD9MiCQe
|
||||
2OvH/dvSNSgGcHvrYMEcORaLDtHJgYVvhY1CgYXrvthUsehAxBalSYKyFZfJ
|
||||
=XWXt
|
||||
jA0ECQMILwzTWNDBbZX/0sAeAQMlmiKRJM5YPtC78LvlLroqE5R6hysJq1nGV34U
|
||||
CcY7XmuLz/Bvx2/ZGE1urY48AmgNZraiKOh8kfTG5T7dCTqrkMiz1MpNRYVdnXvW
|
||||
LOanl3+alv6tmosD52zn4vRmRCnIaqE/k6ne+NV4BuRj0u9qWLoNI/7uGFnjcvI3
|
||||
mGYlDF7ArQH0gVpmW8wmlNFzMPe4ccqWMjGbpB1h3TEALy4nh2wwNH5PvF1FKesJ
|
||||
iq4Vvhslo8LbyjQdkA7/fPlYEu1MDJKDCaHWwmAevMwNuGNLrdupyOf2KkHSYmUB
|
||||
=ULsR
|
||||
-----END PGP MESSAGE-----
|
||||
|
||||
34
secrets/transip-discountoffice.pem.gpg
Normal file
34
secrets/transip-discountoffice.pem.gpg
Normal file
@@ -0,0 +1,34 @@
|
||||
-----BEGIN PGP MESSAGE-----
|
||||
|
||||
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
|
||||
PppWvUzUlOlJJPetJb5F
|
||||
=U7VL
|
||||
-----END PGP MESSAGE-----
|
||||
@@ -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-----
|
||||
|
||||
60062
secrets/wp/1.jpg.gpg
60062
secrets/wp/1.jpg.gpg
File diff suppressed because it is too large
Load Diff
45638
secrets/wp/10.jpg.gpg
45638
secrets/wp/10.jpg.gpg
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
16574
secrets/wp/12.jpg.gpg
16574
secrets/wp/12.jpg.gpg
File diff suppressed because it is too large
Load Diff
310046
secrets/wp/13.png.gpg
310046
secrets/wp/13.png.gpg
File diff suppressed because it is too large
Load Diff
13260
secrets/wp/2.jpg.gpg
13260
secrets/wp/2.jpg.gpg
File diff suppressed because it is too large
Load Diff
12010
secrets/wp/3.jpg.gpg
12010
secrets/wp/3.jpg.gpg
File diff suppressed because it is too large
Load Diff
55644
secrets/wp/4.jpg.gpg
55644
secrets/wp/4.jpg.gpg
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user