Compare commits
234 Commits
0563a01c96
...
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
|
|||
|
5be84404a5
|
|||
|
857225c049
|
|||
|
91d68a507c
|
|||
|
6f08b3ebb2
|
|||
|
803843bc24
|
|||
|
6d0d2a2ca9
|
|||
|
35cf0d53b7
|
|||
|
c9feb3d7bf
|
|||
|
88fe75b7e0
|
|||
|
b12fa46ea1
|
|||
| cb1a45a54e | |||
|
90fe3c8554
|
|||
|
58ba701f1f
|
|||
|
a3f2a17dbe
|
|||
|
13c2365b7b
|
|||
|
32ce39cb21
|
|||
|
68856dd2b5
|
|||
|
536b5f2e0b
|
|||
|
272aac9a94
|
|||
|
63dd78c557
|
|||
|
b44457af3a
|
|||
|
f038bcaa61
|
|||
|
00f647074d
|
|||
|
4926ae8cc0
|
|||
|
b13cb3ff0e
|
|||
|
0b8a5a150d
|
|||
|
dfc68c275a
|
|||
|
792af5e4c6
|
|||
|
7ba5ab2067
|
|||
|
36cb9bbb42
|
|||
|
73013b36d0
|
|||
|
2a795cd19e
|
|||
|
f6409db279
|
|||
|
0520961390
|
|||
|
576f141889
|
|||
|
f4f9d0b790
|
|||
|
60f8f6ae78
|
|||
|
8822d5ea5d
|
|||
|
ccec538346
|
|||
|
8b13a2995f
|
|||
|
9d862afbaa
|
|||
|
0c0c36b1c5
|
|||
|
8631ec474d
|
|||
|
ddf1fd64ab
|
|||
|
d0ce652f04
|
|||
|
15ac4c77e1
|
|||
|
d0c690a990
|
|||
|
af0ac3bfbf
|
|||
|
b7c6825268
|
|||
|
309a2a1f35
|
|||
|
c0626c9d27
|
|||
|
ac7376f606
|
|||
|
9c28dfe6ae
|
|||
|
55d2a96a33
|
|||
|
ec468d6221
|
|||
|
58866ea8f8
|
|||
|
01dc1784ef
|
24
.bashrc
24
.bashrc
@@ -18,7 +18,7 @@ alias la='l -a'
|
|||||||
alias cat='bat'
|
alias cat='bat'
|
||||||
alias du='dust'
|
alias du='dust'
|
||||||
alias df='duf'
|
alias df='duf'
|
||||||
alias rm="echo Use 'rip' instead of rm."
|
alias rm="trash-put"
|
||||||
|
|
||||||
# Docker Aliases
|
# Docker Aliases
|
||||||
alias d='docker'
|
alias d='docker'
|
||||||
@@ -69,6 +69,9 @@ export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$H
|
|||||||
# Allow unfree nixos
|
# Allow unfree nixos
|
||||||
export NIXPKGS_ALLOW_UNFREE=1
|
export NIXPKGS_ALLOW_UNFREE=1
|
||||||
|
|
||||||
|
# Allow insecure nixpkgs
|
||||||
|
export NIXPKGS_ALLOW_INSECURE=1
|
||||||
|
|
||||||
# Set DOTF_HOSTNAME to the hostname from .hostname file
|
# Set DOTF_HOSTNAME to the hostname from .hostname file
|
||||||
# If this file doesn't exist, use mennos-unknown-hostname
|
# If this file doesn't exist, use mennos-unknown-hostname
|
||||||
export DOTF_HOSTNAME="mennos-unknown-hostname"
|
export DOTF_HOSTNAME="mennos-unknown-hostname"
|
||||||
@@ -78,21 +81,11 @@ fi
|
|||||||
|
|
||||||
# Tradaware / DiscountOffice Configuration
|
# Tradaware / DiscountOffice Configuration
|
||||||
if [ -d "/home/menno/Projects/Work" ]; then
|
if [ -d "/home/menno/Projects/Work" ]; then
|
||||||
export TRADAWARE_FROM_SOURCE=true
|
export TRADAWARE_DEVOPS=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# pyenv Configuration
|
# Flutter Web and other tools that require Chrome
|
||||||
export PYENV_ROOT="$HOME/.pyenv"
|
export CHROME_EXECUTABLE=$(which brave)
|
||||||
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
|
|
||||||
|
|
||||||
# 1Password Source Plugin (Assuming bash compatibility)
|
# 1Password Source Plugin (Assuming bash compatibility)
|
||||||
if [ -f /home/menno/.config/op/plugins.sh ]; then
|
if [ -f /home/menno/.config/op/plugins.sh ]; then
|
||||||
@@ -142,6 +135,7 @@ launch_zellij_conditionally() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Disabled for now, I don't like the way it behaves but I don't want to remove it either
|
||||||
# launch_zellij_conditionally
|
# launch_zellij_conditionally
|
||||||
|
|
||||||
# Source ble.sh if it exists
|
# Source ble.sh if it exists
|
||||||
@@ -169,5 +163,5 @@ fi
|
|||||||
|
|
||||||
# Display a welcome message for interactive shells
|
# Display a welcome message for interactive shells
|
||||||
if [ -t 1 ]; then
|
if [ -t 1 ]; then
|
||||||
dotf term
|
dotf hello
|
||||||
fi
|
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
|
||||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -3,13 +3,8 @@ config/ssh/config.d/*
|
|||||||
logs/*
|
logs/*
|
||||||
|
|
||||||
# Don't include secrets in the repository but do include encrypted secrets
|
# Don't include secrets in the repository but do include encrypted secrets
|
||||||
secrets/wp/*.*
|
!secrets/**/*.gpg
|
||||||
!secrets/wp/*.gpg
|
secrets/**/*.*
|
||||||
secrets/ssh_config/*.*
|
|
||||||
!secrets/ssh_config/*.gpg
|
|
||||||
secrets/*.*
|
|
||||||
!secrets/*.gpg
|
|
||||||
**/*.keys
|
|
||||||
|
|
||||||
# SHA256 hashes of the encrypted secrets
|
# SHA256 hashes of the encrypted secrets
|
||||||
*.sha256
|
*.sha256
|
||||||
44
README.md
44
README.md
@@ -14,27 +14,18 @@ I'd recommend getting the GNOME version as it's easier to setup and you can sele
|
|||||||
|
|
||||||
### 1. Clone dotfiles to home directory
|
### 1. Clone dotfiles to home directory
|
||||||
|
|
||||||
Clone the repository to your home directory, you can do this by opening a shell with git installed.
|
Open a nix-shell with git and begin the setup process. This setup will prompt you various questions such as your desired hostname and if the system you are installing is supposed to be a server or workstation.
|
||||||
|
|
||||||
|
Feel free to use an exisiting hostname to restore an old system or chose a new name.
|
||||||
|
|
||||||
|
If you are running this in a VM be sure to answer yes if it prompts you. This will ensure it generates the correct boot loader configuration.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
nix-shell -p git
|
nix-shell -p git
|
||||||
git clone https://git.mvl.sh/vleeuwenmenno/dotfiles.git ~/dotfiles
|
curl -L https://df.mvl.sh | bash
|
||||||
exit
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2. Run `setup.sh`
|
### 2. Reboot
|
||||||
|
|
||||||
You can run the setup.sh in the dotfiles folder to setup the system.
|
|
||||||
This will prompt you to give a hostname for the system. For things to properly work you should ensure this repository contains the relevant assets for the hostname you provide.
|
|
||||||
|
|
||||||
In case you're setting up a new system you could use any of the existing hostnames in the `nconfig/nixos/hardware/` folder.
|
|
||||||
Afterwards you should adopt the pre-generated configuration under `/etc/nixos/hardware-configuration.nix` to the repository and change the hostname to anything you like.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd ~/dotfiles && ./setup.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. Reboot
|
|
||||||
|
|
||||||
It's probably a good idea that you either reboot or log out and log back in to make sure all the changes are applied.
|
It's probably a good idea that you either reboot or log out and log back in to make sure all the changes are applied.
|
||||||
|
|
||||||
@@ -42,33 +33,30 @@ It's probably a good idea that you either reboot or log out and log back in to m
|
|||||||
# sudo reboot
|
# sudo reboot
|
||||||
```
|
```
|
||||||
|
|
||||||
### 4. Run `dotf update`
|
### 3. Run `dotf update`
|
||||||
|
|
||||||
Run the `dotf update` command, although nixos-rebuild and home-manager already ran the dotf cli didn't yet place proper symlinks for everything.
|
Run the `dotf update` command, although the setup script did most of the work some symlinks still need to be set which at the moment is done using shell scripts.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
source ~/.bashrc && dotf update
|
dotf update
|
||||||
```
|
```
|
||||||
|
|
||||||
### 5. Setup 1Password
|
### 4. Setup 1Password (Optional)
|
||||||
|
|
||||||
1Password is installed but you need to login and enable the SSH agent and CLI components under the settings before continuing.
|
1Password is installed but you need to login and enable the SSH agent and CLI components under the settings before continuing.
|
||||||
|
|
||||||
### 6. Decrypt secrets
|
### 5. Decrypt secrets
|
||||||
|
|
||||||
Now that you've got 1Password setup you can decrypt the secrets needed for various applications.
|
Either using 1Password or by manualling providing the decryption key you should decrypt the secrets.
|
||||||
|
Various configurations depend on the secrets to be decrypted such as the SSH keys, yubikey pam configuration and more.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dotf secrets decrypt
|
dotf secrets decrypt
|
||||||
```
|
```
|
||||||
|
|
||||||
### 7. Reboot
|
### 6. Profit
|
||||||
|
|
||||||
After you have done all the steps above you should reboot your system to make sure everything is working as intended.
|
You should now have a fully setup system with all the configurations applied.
|
||||||
|
|
||||||
```bash
|
|
||||||
# sudo reboot
|
|
||||||
```
|
|
||||||
|
|
||||||
## Adding a new system
|
## Adding a new system
|
||||||
|
|
||||||
|
|||||||
@@ -1,19 +1,37 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
apps=(
|
apps=(
|
||||||
spotify
|
"spotify"
|
||||||
whatsapp-for-linux
|
"whatsapp-for-linux"
|
||||||
telegram-desktop
|
"telegram-desktop"
|
||||||
vesktop
|
"vesktop"
|
||||||
trayscale
|
"trayscale"
|
||||||
1password
|
"1password"
|
||||||
|
"ulauncher-wrapped --no-window-shadow --hide-window"
|
||||||
|
"polkit-agent"
|
||||||
|
"swaync"
|
||||||
|
"nm-applet"
|
||||||
|
"blueman-applet"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# check if screen has any dead sessions
|
||||||
|
if screen -list | grep -q "Dead"; then
|
||||||
|
screen -wipe
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Starting auto-start applications..."
|
echo "Starting auto-start applications..."
|
||||||
for app in "${apps[@]}"; do
|
for app in "${apps[@]}"; do
|
||||||
if [ -x "$(command -v $app)" ]; then
|
app_name=$(echo $app | awk '{print $1}')
|
||||||
echo "Starting $app..."
|
app_params=$(echo $app | cut -d' ' -f2-)
|
||||||
screen -dmS $app $app
|
|
||||||
|
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
|
sleep 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|||||||
20
bin/actions/hello.sh
Executable file
20
bin/actions/hello.sh
Executable file
@@ -0,0 +1,20 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
source $HOME/dotfiles/bin/helpers/functions.sh
|
||||||
|
|
||||||
|
welcome() {
|
||||||
|
echo
|
||||||
|
tput setaf 6
|
||||||
|
printf "You're logged in on ["
|
||||||
|
printf $HOSTNAME | lolcat
|
||||||
|
tput setaf 6
|
||||||
|
printf "] as "
|
||||||
|
printf "["
|
||||||
|
printf $USER | lolcat
|
||||||
|
tput setaf 6
|
||||||
|
printf "]\n"
|
||||||
|
tput sgr0
|
||||||
|
}
|
||||||
|
|
||||||
|
logo continue
|
||||||
|
welcome
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
source $HOME/dotfiles/bin/helpers/functions.sh
|
||||||
|
|
||||||
# Print logo
|
# Print logo
|
||||||
echo "Menno's Dotfiles" | figlet | lolcat
|
logo
|
||||||
|
|
||||||
# Print help
|
# Print help
|
||||||
cat $HOME/dotfiles/bin/resources/help.txt
|
cat $HOME/dotfiles/bin/resources/help.txt
|
||||||
|
|||||||
@@ -1,29 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
|
||||||
|
|
||||||
# Push all changes from $HOME/dotfiles to ALL remotes in $HOME/dotfiles/.git/config
|
|
||||||
push_all() {
|
|
||||||
# Get all remotes from the .git/config file
|
|
||||||
remotes=($(cat $HOME/dotfiles/.git/config | grep url | awk '{print $3}'))
|
|
||||||
|
|
||||||
printfe "%s\n" "cyan" "Pushing all changes to all remotes..."
|
|
||||||
|
|
||||||
# For each remote, push all changes
|
|
||||||
for remote in "${remotes[@]}"; do
|
|
||||||
printfe "%s" "green" " - Pushing to ["
|
|
||||||
printfe "%s" "blue" "$remote"
|
|
||||||
printfe "%s\n" "green" "]..."
|
|
||||||
|
|
||||||
result=$(git -C $HOME/dotfiles push $remote 2>&1)
|
|
||||||
|
|
||||||
# If the push failed, print an error
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
printfe "%s\n" "red" " - Failed to push to $remote:"
|
|
||||||
printfe "%s\n" "red" " $result"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
push_all
|
|
||||||
@@ -106,10 +106,10 @@ decrypt_folder() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ "$2" == "decrypt" ]]; then
|
if [[ "$1" == "decrypt" ]]; then
|
||||||
printfe "%s\n" "cyan" "Decrypting secrets..."
|
printfe "%s\n" "cyan" "Decrypting secrets..."
|
||||||
decrypt_folder ~/dotfiles/secrets
|
decrypt_folder ~/dotfiles/secrets
|
||||||
elif [[ "$2" == "encrypt" ]]; then
|
elif [[ "$1" == "encrypt" ]]; then
|
||||||
printfe "%s\n" "cyan" "Encrypting secrets..."
|
printfe "%s\n" "cyan" "Encrypting secrets..."
|
||||||
encrypt_folder ~/dotfiles/secrets
|
encrypt_folder ~/dotfiles/secrets
|
||||||
fi
|
fi
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
|
||||||
|
|
||||||
logo continue
|
|
||||||
@@ -92,19 +92,28 @@ symlinks() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
sys_packages() {
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
# Update system packages
|
# Update packages
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
|
|
||||||
printfe "%s\n" "cyan" "Updating system packages..."
|
sys_packages() {
|
||||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||||
|
printfe "%s\n" "cyan" "Updating brew packages..."
|
||||||
brew update
|
brew update
|
||||||
brew upgrade
|
brew upgrade
|
||||||
brew cleanup
|
brew cleanup
|
||||||
else
|
else
|
||||||
if [ -x "$(command -v nixos-version)" ]; then
|
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
|
# Exit if this failed
|
||||||
if [ $? -ne 0 ]; then
|
if [ $? -ne 0 ]; then
|
||||||
@@ -113,14 +122,18 @@ sys_packages() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [ -x "$(command -v apt)" ]; then
|
||||||
|
printfe "%s\n" "cyan" "Updating apt packages..."
|
||||||
sudo nala upgrade -y
|
sudo nala upgrade -y
|
||||||
sudo nala autoremove -y --purge
|
sudo nala autoremove -y --purge
|
||||||
fi
|
fi
|
||||||
}
|
|
||||||
|
|
||||||
####################################################################################################
|
if [ -x "$(command -v yum)" ]; then
|
||||||
# Update packages
|
printfe "%s\n" "cyan" "Updating yum packages..."
|
||||||
####################################################################################################
|
sudo yum update -y
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
cargopkgs() {
|
cargopkgs() {
|
||||||
printfe "%s\n" "cyan" "Ensuring Cargo packages are installed..."
|
printfe "%s\n" "cyan" "Ensuring Cargo packages are installed..."
|
||||||
@@ -134,13 +147,6 @@ pipxpkgs() {
|
|||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printfe "%s\n" "cyan" "Ensuring pyenv is installed..."
|
|
||||||
if [ ! -d "$HOME/.pyenv" ]; then
|
|
||||||
curl https://pyenv.run | bash
|
|
||||||
else
|
|
||||||
printfe "%s\n" "green" " - pyenv is already installed"
|
|
||||||
fi
|
|
||||||
|
|
||||||
printfe "%s\n" "cyan" "Ensuring pipx packages are installed..."
|
printfe "%s\n" "cyan" "Ensuring pipx packages are installed..."
|
||||||
source $HOME/dotfiles/bin/helpers/pipx_packages.sh
|
source $HOME/dotfiles/bin/helpers/pipx_packages.sh
|
||||||
ensure_pipx_packages_installed
|
ensure_pipx_packages_installed
|
||||||
@@ -162,81 +168,24 @@ flatpakpkgs() {
|
|||||||
ensure_flatpak_packages_installed
|
ensure_flatpak_packages_installed
|
||||||
}
|
}
|
||||||
|
|
||||||
tailscalecmd() {
|
|
||||||
if is_wsl; then
|
|
||||||
printfe "%s\n" "yellow" "Running in WSL, skipping Tailscale."
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
printfe "%s\n" "cyan" "Ensuring Tailscale is installed..."
|
|
||||||
source $HOME/dotfiles/bin/helpers/tailscale.sh
|
|
||||||
ensure_tailscale_installed
|
|
||||||
}
|
|
||||||
|
|
||||||
####################################################################################################
|
|
||||||
# Update system settings
|
|
||||||
####################################################################################################
|
|
||||||
|
|
||||||
fonts() {
|
|
||||||
if is_wsl; then
|
|
||||||
printfe "%s\n" "yellow" "Running in WSL, skipping fonts."
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
printfe "%s\n" "cyan" "Ensuring fonts are installed..."
|
|
||||||
source $HOME/dotfiles/bin/helpers/fonts.sh
|
|
||||||
ensure_fonts_installed
|
|
||||||
}
|
|
||||||
|
|
||||||
git_repos() {
|
|
||||||
####################################################################################################
|
|
||||||
# Ensure git repos
|
|
||||||
####################################################################################################
|
|
||||||
|
|
||||||
printfe "%s\n" "cyan" "Ensuring git repos..."
|
|
||||||
source $HOME/dotfiles/bin/helpers/git.sh
|
|
||||||
ensure_git_repos
|
|
||||||
}
|
|
||||||
|
|
||||||
homemanager() {
|
homemanager() {
|
||||||
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
|
||||||
|
|
||||||
ensure_homemanager_installed() {
|
|
||||||
if [ ! -x "$(command -v home-manager)" ]; then
|
|
||||||
printfe "%s\n" "yellow" "Home Manager is not installed, installing it..."
|
|
||||||
nix-channel --add https://github.com/nix-community/home-manager/archive/release-24.05.tar.gz home-manager
|
|
||||||
nix-channel --update
|
|
||||||
nix-shell '<home-manager>' -A install
|
|
||||||
|
|
||||||
printfe "%s\n" "yellow" "Home Manager installed, please run the script again."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
# Parse arguments
|
# Parse arguments
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
|
|
||||||
# Multiple options can be passed to the script, for example:
|
|
||||||
# ./update.sh --git --symlinks --packages
|
|
||||||
# If no options are passed, the script will run all functions
|
|
||||||
|
|
||||||
# Shift the first argument since this is the script name
|
|
||||||
shift
|
|
||||||
|
|
||||||
if [ "$#" -eq 0 ]; then
|
if [ "$#" -eq 0 ]; then
|
||||||
printfe "%s\n" "yellow" "No options passed, running full update..."
|
printfe "%s\n" "yellow" "No options passed, running full update..."
|
||||||
|
|
||||||
ensure_homemanager_installed
|
|
||||||
symlinks
|
symlinks
|
||||||
sys_packages
|
sys_packages
|
||||||
homemanager
|
homemanager
|
||||||
cargopkgs
|
cargopkgs
|
||||||
pipxpkgs
|
pipxpkgs
|
||||||
git_repos
|
|
||||||
flatpakpkgs
|
flatpakpkgs
|
||||||
tailscalecmd
|
|
||||||
dotf secrets encrypt
|
dotf secrets encrypt
|
||||||
else
|
else
|
||||||
for arg in "$@"; do
|
for arg in "$@"; do
|
||||||
@@ -251,9 +200,6 @@ else
|
|||||||
sys_packages
|
sys_packages
|
||||||
homemanager
|
homemanager
|
||||||
;;
|
;;
|
||||||
--git)
|
|
||||||
git_repos
|
|
||||||
;;
|
|
||||||
--symlinks)
|
--symlinks)
|
||||||
symlinks
|
symlinks
|
||||||
;;
|
;;
|
||||||
@@ -262,7 +208,6 @@ else
|
|||||||
cargopkgs
|
cargopkgs
|
||||||
pipxpkgs
|
pipxpkgs
|
||||||
flatpakpkgs
|
flatpakpkgs
|
||||||
tailscalecmd
|
|
||||||
;;
|
;;
|
||||||
--pipx)
|
--pipx)
|
||||||
pipxpkgs
|
pipxpkgs
|
||||||
@@ -273,9 +218,6 @@ else
|
|||||||
--flatpak)
|
--flatpak)
|
||||||
flatpakpkgs
|
flatpakpkgs
|
||||||
;;
|
;;
|
||||||
--tailscale)
|
|
||||||
tailscalecmd
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
printfe "%s\n" "red" "Unknown option: $arg"
|
printfe "%s\n" "red" "Unknown option: $arg"
|
||||||
;;
|
;;
|
||||||
|
|||||||
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
|
||||||
163
bin/dotf
163
bin/dotf
@@ -1,76 +1,135 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
# strict mode
|
||||||
export DOTFILES_CONFIG=$HOME/dotfiles/config/config.yaml
|
set -euo pipefail
|
||||||
|
IFS=$'\n\t'
|
||||||
|
|
||||||
status() {
|
# Script constants
|
||||||
$HOME/dotfiles/bin/actions/status.sh $@
|
readonly DOTFILES_ROOT="$HOME/dotfiles"
|
||||||
|
readonly DOTFILES_BIN="$DOTFILES_ROOT/bin"
|
||||||
|
readonly DOTFILES_CONFIG="$DOTFILES_ROOT/config/config.yaml"
|
||||||
|
|
||||||
|
# Source helper functions
|
||||||
|
if [[ ! -f "$DOTFILES_BIN/helpers/functions.sh" ]]; then
|
||||||
|
echo "Error: Required helper functions not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
source "$DOTFILES_BIN/helpers/functions.sh"
|
||||||
|
|
||||||
|
export DOTFILES_CONFIG
|
||||||
|
|
||||||
|
# Command functions
|
||||||
|
update() {
|
||||||
|
local update_script="$DOTFILES_BIN/actions/update.sh"
|
||||||
|
if [[ ! -x "$update_script" ]]; then
|
||||||
|
printfe "%s\n" "red" "Error: Update script not found or not executable"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
"$update_script" $@
|
||||||
}
|
}
|
||||||
|
|
||||||
update() {
|
upgrade() {
|
||||||
$HOME/dotfiles/bin/actions/update.sh $@
|
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
|
||||||
|
fi
|
||||||
|
"$term_script" "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
help() {
|
help() {
|
||||||
$HOME/dotfiles/bin/actions/help.sh $@
|
local help_script="$DOTFILES_BIN/actions/help.sh"
|
||||||
|
if [[ ! -x "$help_script" ]]; then
|
||||||
|
printfe "%s\n" "red" "Error: Help script not found or not executable"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
"$help_script" "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
secrets() {
|
secrets() {
|
||||||
$HOME/dotfiles/bin/actions/secrets.sh $@
|
local secrets_script="$DOTFILES_BIN/actions/secrets.sh"
|
||||||
|
if [[ ! -x "$secrets_script" ]]; then
|
||||||
|
printfe "%s\n" "red" "Error: Secrets script not found or not executable"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
"$secrets_script" "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
push() {
|
auto_start() {
|
||||||
$HOME/dotfiles/bin/actions/push.sh $@
|
local auto_start_script="$DOTFILES_BIN/actions/auto-start.sh"
|
||||||
|
if [[ ! -x "$auto_start_script" ]]; then
|
||||||
|
printfe "%s\n" "red" "Error: Auto-start script not found or not executable"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
"$auto_start_script" "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
ensure_git_hooks() {
|
ensure_git_hooks() {
|
||||||
# If ~/dotfiles/.git/hooks is a symlink, skip this
|
local hooks_dir="$DOTFILES_ROOT/.git/hooks"
|
||||||
if [[ -L ~/dotfiles/.git/hooks ]]; then
|
local target_link="$DOTFILES_BIN/actions/git"
|
||||||
# Let's make sure the symlink is correct
|
|
||||||
if [[ $(readlink ~/dotfiles/.git/hooks) != $HOME/dotfiles/bin/actions/git ]]; then
|
# Validate target directory exists
|
||||||
printfe "%s\n" "yellow" "The ~/dotfiles/.git/hooks symlink is incorrect. Please remove it and run this script again."
|
if [[ ! -d "$target_link" ]]; then
|
||||||
fi
|
printfe "%s\n" "red" "Error: Git hooks source directory does not exist: $target_link"
|
||||||
return
|
return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -d ~/dotfiles/.git/hooks ]]; then
|
# Handle existing symlink
|
||||||
rm -rf ~/dotfiles/.git/hooks
|
if [[ -L "$hooks_dir" ]]; then
|
||||||
printfe "%s\n" "yellow" "The ~/dotfiles/.git/hooks directory already exists. We're removing it!"
|
local current_link
|
||||||
|
current_link=$(readlink "$hooks_dir")
|
||||||
|
if [[ "$current_link" != "$target_link" ]]; then
|
||||||
|
printfe "%s\n" "yellow" "Incorrect git hooks symlink found. Removing and recreating..."
|
||||||
|
rm "$hooks_dir"
|
||||||
|
else
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ln -s $HOME/dotfiles/bin/actions/git ~/dotfiles/.git/hooks
|
# Handle existing directory
|
||||||
printfe "%s\n" "green" "Git hooks are now set up!"
|
if [[ -d "$hooks_dir" ]]; then
|
||||||
|
printfe "%s\n" "yellow" "Removing existing hooks directory..."
|
||||||
|
rm -rf "$hooks_dir"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Create new symlink
|
||||||
|
if ln -s "$target_link" "$hooks_dir"; then
|
||||||
|
printfe "%s\n" "green" "Git hooks successfully configured!"
|
||||||
|
else
|
||||||
|
printfe "%s\n" "red" "Failed to create git hooks symlink"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
ensure_git_hooks
|
main() {
|
||||||
|
# Ensure we're in the correct directory
|
||||||
|
if [[ ! -d "$DOTFILES_ROOT" ]]; then
|
||||||
|
printfe "%s\n" "red" "Error: Dotfiles directory not found"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# switch case for parameters
|
# Setup git hooks
|
||||||
case $1 in
|
ensure_git_hooks || exit 1
|
||||||
"update")
|
|
||||||
logo
|
# Parse commands
|
||||||
update $@
|
case "${1:-help}" in
|
||||||
;;
|
update) shift; update "$@" ;;
|
||||||
"push")
|
upgrade) shift; upgrade "$@" ;;
|
||||||
logo continue
|
help) shift; help "$@" ;;
|
||||||
push $@
|
hello) shift; hello "$@" ;;
|
||||||
;;
|
secrets) shift; secrets "$@" ;;
|
||||||
"help"|"--help"|"")
|
auto-start) shift; auto_start "$@" ;;
|
||||||
help $@
|
*) help ;;
|
||||||
;;
|
|
||||||
"secrets")
|
|
||||||
secrets $@
|
|
||||||
;;
|
|
||||||
"term")
|
|
||||||
$HOME/dotfiles/bin/actions/term.sh $@
|
|
||||||
;;
|
|
||||||
"auto-start"|"-a"|"-auto-start"|"as")
|
|
||||||
$HOME/dotfiles/bin/actions/auto-start.sh $@
|
|
||||||
;;
|
|
||||||
"hotkey-daemon")
|
|
||||||
x-terminal-emulator -e $HOME/dotfiles/bin/actions/hotkey-daemon.sh $@
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
printfe "%s\n" "red" "Unknown command $1"
|
|
||||||
help $@
|
|
||||||
;;
|
|
||||||
esac
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
main "$@"
|
||||||
|
|||||||
@@ -17,9 +17,13 @@ is_wsl() {
|
|||||||
logo() {
|
logo() {
|
||||||
echo "Menno's Dotfiles" | figlet | lolcat
|
echo "Menno's Dotfiles" | figlet | lolcat
|
||||||
|
|
||||||
|
if [[ $(trash-list | wc -l) -gt 0 ]]; then
|
||||||
|
printfe "%s" "yellow" "[!] $(trash-list | wc -l | tr -d ' ') file(s) in trash - "
|
||||||
|
fi
|
||||||
|
|
||||||
# Print if repo is dirty and the count of untracked files, modified files and staged files
|
# Print if repo is dirty and the count of untracked files, modified files and staged files
|
||||||
if [[ $(git -C ~/dotfiles status --porcelain) ]]; then
|
if [[ $(git -C ~/dotfiles status --porcelain) ]]; then
|
||||||
printfe "%s" "yellow" "dotfiles repo is dirty "
|
printfe "%s" "yellow" "dotfiles is dirty "
|
||||||
printfe "%s" "red" "[$(git -C ~/dotfiles status --porcelain | grep -c '^??')] untracked "
|
printfe "%s" "red" "[$(git -C ~/dotfiles status --porcelain | grep -c '^??')] untracked "
|
||||||
printfe "%s" "yellow" "[$(git -C ~/dotfiles status --porcelain | grep -c '^ M')] modified "
|
printfe "%s" "yellow" "[$(git -C ~/dotfiles status --porcelain | grep -c '^ M')] modified "
|
||||||
printfe "%s" "green" "[$(git -C ~/dotfiles status --porcelain | grep -c '^M ')] staged "
|
printfe "%s" "green" "[$(git -C ~/dotfiles status --porcelain | grep -c '^M ')] staged "
|
||||||
@@ -29,6 +33,7 @@ logo() {
|
|||||||
if [[ $(git -C ~/dotfiles log origin/master..HEAD) ]]; then
|
if [[ $(git -C ~/dotfiles log origin/master..HEAD) ]]; then
|
||||||
printfe "%s" "yellow" "[!] You have $(git -C ~/dotfiles log origin/master..HEAD --oneline | wc -l | tr -d ' ') commit(s) to push"
|
printfe "%s" "yellow" "[!] You have $(git -C ~/dotfiles log origin/master..HEAD --oneline | wc -l | tr -d ' ') commit(s) to push"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
println "" "normal"
|
println "" "normal"
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,28 +86,6 @@ ensure_package_installed() {
|
|||||||
println " - $1 is available." "green"
|
println " - $1 is available." "green"
|
||||||
}
|
}
|
||||||
|
|
||||||
ask_before_do() {
|
|
||||||
printfe "%s" "yellow" "Trying to run: "
|
|
||||||
printfe "%s" "cyan" "'$@' "
|
|
||||||
read -p "Continue? [y/N]: " -n 1 -r
|
|
||||||
echo ""
|
|
||||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
printfe "%s" "cyan" "Running '"
|
|
||||||
printfe "%s" "yellow" "$@"
|
|
||||||
println "'..." "cyan"
|
|
||||||
|
|
||||||
# In case DRY_RUN is set to true we should just print the command and not run it
|
|
||||||
if [ "$DRY_RUN" = true ]; then
|
|
||||||
println "Would have run '$@'" "yellow"
|
|
||||||
return
|
|
||||||
else
|
|
||||||
$@
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
ensure_sudo_privileges() {
|
ensure_sudo_privileges() {
|
||||||
if sudo -n true 2>/dev/null; then
|
if sudo -n true 2>/dev/null; then
|
||||||
return
|
return
|
||||||
@@ -112,32 +95,6 @@ ensure_sudo_privileges() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
ask_before_do_multi() {
|
|
||||||
if [ "$DRY_RUN" = true ]; then
|
|
||||||
println "Would have run: $1" "yellow"
|
|
||||||
else
|
|
||||||
read -p "$1 (y/n) " -n 1 -r
|
|
||||||
echo
|
|
||||||
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
return false
|
|
||||||
fi
|
|
||||||
return true
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
add_to_hosts() {
|
|
||||||
local domain=$1
|
|
||||||
local ip="127.0.0.1"
|
|
||||||
|
|
||||||
# Check if domain already exists in /etc/hosts
|
|
||||||
if ! grep -q "$domain" /etc/hosts; then
|
|
||||||
println " - adding $domain to /etc/hosts" "yellow"
|
|
||||||
echo "$ip $domain" | sudo tee -a /etc/hosts >/dev/null
|
|
||||||
else
|
|
||||||
println " - $domain already exists in /etc/hosts" "green"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function exesudo ()
|
function exesudo ()
|
||||||
{
|
{
|
||||||
### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
|
### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
|
||||||
|
|||||||
@@ -1,127 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
|
||||||
|
|
||||||
ensure_git_repos() {
|
|
||||||
# Load config file with git repos:
|
|
||||||
repos=($(cat $HOME/dotfiles/config/config.yaml | shyaml keys config.git))
|
|
||||||
|
|
||||||
# For each repo in the config file, ensure it is cloned (url + branch, if specified)
|
|
||||||
for repo in "${repos[@]}"; do
|
|
||||||
url=$(cat $HOME/dotfiles/config/config.yaml | shyaml get-value config.git.$repo.url)
|
|
||||||
branch=$(cat $HOME/dotfiles/config/config.yaml | shyaml get-value config.git.$repo.branch)
|
|
||||||
target=$(cat $HOME/dotfiles/config/config.yaml | shyaml get-value config.git.$repo.target)
|
|
||||||
target_dirty=$(cat $HOME/dotfiles/config/config.yaml | shyaml get-value config.git.$repo.target)
|
|
||||||
|
|
||||||
# Replace ~ with $HOME
|
|
||||||
target="${target/#\~/$HOME}"
|
|
||||||
|
|
||||||
# If no url is specified, skip this repo
|
|
||||||
if [ -z "$url" ]; then
|
|
||||||
printfe "%s\n" "red" " - No URL specified for $repo, skipping"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If no branch is specified, default to main
|
|
||||||
if [ -z "$branch" ]; then
|
|
||||||
branch="main"
|
|
||||||
printfe "%s\n" "yellow" " - No branch specified for $repo, defaulting to $branch"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If no target is specified, stop since we have no idea where to expect to put the repo
|
|
||||||
if [ -z "$target" ]; then
|
|
||||||
printfe "%s\n" "red" " - No target specified for $repo, skipping"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
# If the target directory does not exist, clone the repo there with the specified branch
|
|
||||||
if [ ! -d "$target" ]; then
|
|
||||||
printfe "%s\n" "green" " - Cloning $repo to $target"
|
|
||||||
result=$(git clone --branch $branch $url $target 2>&1)
|
|
||||||
|
|
||||||
# If the clone failed, print an error
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
printfe "%s\n" "red" " - Failed to clone $repo to $target:"
|
|
||||||
printfe "%s\n" "red" " $result"
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# If the target directory exists, check if it is a git repo
|
|
||||||
if [ -d "$target/.git" ]; then
|
|
||||||
# If it is a git repo, check if the remote is the same as the one specified in the config file
|
|
||||||
remote=$(git -C $target remote get-url origin)
|
|
||||||
if [ "$remote" != "$url" ]; then
|
|
||||||
# If the remote is different, print a warning
|
|
||||||
printfe "%s" "yellow" " - $target is a git repo, but the remote (origin) is different from the one in the config file. Replace it? [y/N] "
|
|
||||||
read -n 1
|
|
||||||
echo
|
|
||||||
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
||||||
printfe "%s\n" "green" " - Replacing remote in $target with $url"
|
|
||||||
git -C $target remote set-url origin $url
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Fast-forward the repo but only if it's in the correct branch
|
|
||||||
current_branch=$(git -C $target rev-parse --abbrev-ref HEAD)
|
|
||||||
if [ "$current_branch" != "$branch" ]; then
|
|
||||||
printfe "%s\n" "yellow" " - $target is a git repo, but it's not in the expected branch ($current_branch instead of $branch)"
|
|
||||||
else
|
|
||||||
printfe "%s\n" "green" " - Fast-forwarding $target"
|
|
||||||
result=$(git -C $target pull 2>&1)
|
|
||||||
|
|
||||||
# If the pull failed, print an error
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
printfe "%s\n" "red" " - Failed to fast-forward $target:"
|
|
||||||
printfe "%s\n" "red" " $result"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Fast-forward the repo but only if it's in the correct branch
|
|
||||||
current_branch=$(git -C $target rev-parse --abbrev-ref HEAD)
|
|
||||||
if [ "$current_branch" != "$branch" ]; then
|
|
||||||
printfe "%s\n" "yellow" " - $target is a git repo, but it's not in the expected branch ($current_branch instead of $branch)"
|
|
||||||
else
|
|
||||||
printfe "%s\n" "green" " - Fast-forwarding $target"
|
|
||||||
result=$(git -C $target pull 2>&1)
|
|
||||||
|
|
||||||
# If the pull failed, print an error
|
|
||||||
if [ $? -ne 0 ]; then
|
|
||||||
printfe "%s\n" "red" " - Failed to fast-forward $target:"
|
|
||||||
printfe "%s\n" "red" " $result"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# If the target directory exists but is not a git repo, print a warning
|
|
||||||
printfe "%s\n" "red" " - $target exists but is not a git repo?! Skipping"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Print state of the repo example: "repo (branch) -> [target] ([untracked files] [unstaged changes] [staged changes] [unpushed commits])"
|
|
||||||
untracked=$(git -C $target status --porcelain | grep -c '^??')
|
|
||||||
unstaged=$(git -C $target status --porcelain | grep -c '^ M')
|
|
||||||
staged=$(git -C $target status --porcelain | grep -c '^M ')
|
|
||||||
unstaged_changes=$(git -C $target status --porcelain | grep -c '^M')
|
|
||||||
unpushed_commits=$(git -C $target log origin/$branch..HEAD --oneline | wc -l | tr -d ' ')
|
|
||||||
|
|
||||||
printfe "%s" "blue" " - $repo ($branch) -> [$target_dirty]"
|
|
||||||
if [ $untracked -gt 0 ]; then
|
|
||||||
printfe "%s" "red" " [$untracked] untracked"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $unstaged -gt 0 ]; then
|
|
||||||
printfe "%s" "yellow" " [$unstaged] modified"
|
|
||||||
fi
|
|
||||||
|
|
||||||
printfe "%s" "green" " [$staged]"
|
|
||||||
|
|
||||||
if [ $unstaged_changes -gt 0 ]; then
|
|
||||||
printfe "%s" "red" " [$unstaged_changes] unstaged changes"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ $unpushed_commits -gt 0 ]; then
|
|
||||||
printfe "%s" "yellow" " [!] You have [$unpushed_commits] unpushed commits"
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo
|
|
||||||
done
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
ensure_tailscale_installed() {
|
|
||||||
# if tailscale is already installed, skip the installation
|
|
||||||
if [ -x "$(command -v tailscale)" ]; then
|
|
||||||
printfe "%s\n" "green" " - Tailscale is already installed"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
result=$(curl -fsSL https://tailscale.com/install.sh | sh)
|
|
||||||
|
|
||||||
# Ensure it ended with something like Installation complete
|
|
||||||
if [[ $result == *"Installation complete"* ]]; then
|
|
||||||
# Check if it successfully installed
|
|
||||||
if [ -x "$(command -v tailscale)" ]; then
|
|
||||||
printfe "%s\n" "green" " - Tailscale is installed"
|
|
||||||
else
|
|
||||||
printfe "%s\n" "red" " - Tailscale is not installed"
|
|
||||||
printfe "%s\n" "red" " Something went wrong while installing Tailscale, investigate the issue"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
printfe "%s\n" "red" " - Tailscale is not installed"
|
|
||||||
printfe "%s\n" "red" " Something went wrong while installing Tailscale, investigate the issue"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Let's set the current user to the operator
|
|
||||||
sudo tailscale set --operator=$USER
|
|
||||||
|
|
||||||
# Start the service
|
|
||||||
tailscale up
|
|
||||||
}
|
|
||||||
@@ -1,9 +1,11 @@
|
|||||||
|
|
||||||
All [] are optional parameters. And all <> are required parameters.
|
Usage: dotf [OPTIONS] [ARGS]
|
||||||
Usage: dotf [options] [optional parameters]
|
|
||||||
|
|
||||||
update: Pull latest changes, and update symlinks and configurations.
|
update: Pull latest changes, and update symlinks and configurations
|
||||||
status: Show the status of the dotfiles repository.
|
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.
|
secrets: Encrypt and decrypt secrets.
|
||||||
|
auto-start: Start a set of pre-defined applications.
|
||||||
|
hello: Shows the welcome message for the terminal.
|
||||||
help: Shows this help message
|
help: Shows this help message
|
||||||
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
You are an assistant, you are getting prompted by an automated bash script on boot-up of Menno's computer $HOSTNAME. Menno is a software engineer who loves to automate everything. (Menno van Leeuwen)
|
|
||||||
This script starts up all his stuff on the PC and your task is quite silly but simple:
|
|
||||||
- Give menno a nice and comedy welcome.
|
|
||||||
- Keep it short and concise but funny.
|
|
||||||
|
|
||||||
Rules:
|
|
||||||
- Do not actually output any bash/zsh scripting, just a message to Menno for his entertainment.
|
|
||||||
- No open and closing quotes, tags or any syntax that would indicate this is a script.
|
|
||||||
- Be creative, Menno loves a good laugh.
|
|
||||||
- Output in a nice format that's easily to read.
|
|
||||||
- Make sure to include the forecast.
|
|
||||||
- You don't have to always make it centered about code, but it's a good start.
|
|
||||||
- You don't have to include every topic mentioned, just pick a couple and make it funny.
|
|
||||||
|
|
||||||
Topics:
|
|
||||||
- Weekend coming up (If it's Friday or half way through the week and desperate for the weekend)
|
|
||||||
- A beer is always a good idea in the weekend (Only applicable on Friday, Saturday or Sunday)
|
|
||||||
- The weather (Menno loves to know the weather)
|
|
||||||
- Space, stars, planets, etc
|
|
||||||
- Programming
|
|
||||||
- Gaming
|
|
||||||
- Astrophotography
|
|
||||||
- Trying to avoid death scrolling on Reddit, Youtube, etc
|
|
||||||
|
|
||||||
For funs here is some maybe or maybe not so relevant info:
|
|
||||||
- The time now is $TIME ($DATE)
|
|
||||||
- The current weather and moon phase follows: $WEATHER
|
|
||||||
- The moon phase is as follows: $MOON_PHASE
|
|
||||||
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
|
||||||
gitconfig:
|
gitconfig:
|
||||||
sources:
|
sources:
|
||||||
macos: ~/dotfiles/config/gitconfig.macos
|
mennos-server: ~/dotfiles/config/gitconfig.mennos-server
|
||||||
linux: ~/dotfiles/config/gitconfig.linux
|
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
|
wsl: ~/dotfiles/config/gitconfig.wsl
|
||||||
target: ~/.gitconfig
|
target: ~/.gitconfig
|
||||||
|
|
||||||
@@ -33,11 +36,6 @@ config:
|
|||||||
source: ~/dotfiles/vscode/settings.json
|
source: ~/dotfiles/vscode/settings.json
|
||||||
target: ~/.config/Code/User/settings.json
|
target: ~/.config/Code/User/settings.json
|
||||||
|
|
||||||
# Autostart
|
|
||||||
autostart:
|
|
||||||
source: ~/dotfiles/config/autostart
|
|
||||||
target: ~/.config/autostart
|
|
||||||
|
|
||||||
# SSH config
|
# SSH config
|
||||||
ssh:
|
ssh:
|
||||||
source: ~/dotfiles/config/ssh/config
|
source: ~/dotfiles/config/ssh/config
|
||||||
@@ -56,49 +54,23 @@ config:
|
|||||||
target: ~/.ssh/authorized_keys
|
target: ~/.ssh/authorized_keys
|
||||||
chmod: 600
|
chmod: 600
|
||||||
|
|
||||||
|
# Ghostty config
|
||||||
|
ghostty:
|
||||||
|
source: ~/dotfiles/config/ghostty.conf
|
||||||
|
target: ~/.config/ghostty/config
|
||||||
|
|
||||||
# Starship config
|
# Starship config
|
||||||
starship:
|
starship:
|
||||||
source: ~/dotfiles/config/starship.toml
|
source: ~/dotfiles/config/starship.toml
|
||||||
target: ~/.config/starship.toml
|
target: ~/.config/starship.toml
|
||||||
|
|
||||||
# Fonts to install (Mostly tested with Nerd Fonts)
|
|
||||||
fonts:
|
|
||||||
Hack:
|
|
||||||
url: https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip
|
|
||||||
name: Hack
|
|
||||||
Meslo:
|
|
||||||
url: https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Meslo.zip
|
|
||||||
name: Meslo
|
|
||||||
JetBrainsMono:
|
|
||||||
url: https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/JetBrainsMono.zip
|
|
||||||
name: JetBrainsMono
|
|
||||||
|
|
||||||
git:
|
|
||||||
dotfiles:
|
|
||||||
url: git@git.mvl.sh:vleeuwenmenno/dotfiles.git
|
|
||||||
branch: master
|
|
||||||
target: ~/dotfiles
|
|
||||||
|
|
||||||
ssdc_app_v2:
|
|
||||||
url: git@github.com:vleeuwenmenno/ssdc_app_v2.git
|
|
||||||
branch: master
|
|
||||||
target: ~/Projects/Private/ssdc_app_v2
|
|
||||||
|
|
||||||
infra:
|
|
||||||
url: git@github.com:tradaware/infra.git
|
|
||||||
branch: main
|
|
||||||
target: ~/Projects/Work
|
|
||||||
|
|
||||||
# Packages to install
|
# 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!
|
# 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.
|
# Likewise with flatpak remotes, apt repositories, etc.
|
||||||
packages:
|
packages:
|
||||||
# Supply a git_url and binary to install from source
|
# Supply a git_url and binary to install from source
|
||||||
cargo:
|
cargo:
|
||||||
rip2:
|
|
||||||
fd-find:
|
fd-find:
|
||||||
|
|
||||||
pipx:
|
pipx:
|
||||||
- gnome-extensions-cli
|
|
||||||
- bauh
|
|
||||||
- shyaml
|
- shyaml
|
||||||
|
|||||||
10
config/flatpaks/com.endlessnetwork.aqueducts.flatpakref
Normal file
10
config/flatpaks/com.endlessnetwork.aqueducts.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[Flatpak Ref]
|
||||||
|
Name=com.endlessnetwork.aqueducts
|
||||||
|
Branch=stable
|
||||||
|
Title=com.endlessnetwork.aqueducts 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.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]
|
[Flatpak Ref]
|
||||||
Name=net.openra.OpenRA
|
Name=io.ente.auth
|
||||||
Branch=stable
|
Branch=stable
|
||||||
Title=net.openra.OpenRA from flathub
|
Title=io.ente.auth from flathub
|
||||||
IsRuntime=false
|
IsRuntime=false
|
||||||
Url=https://dl.flathub.org/repo/
|
Url=https://dl.flathub.org/repo/
|
||||||
SuggestRemoteName=flathub
|
SuggestRemoteName=flathub
|
||||||
10
config/flatpaks/io.github.Foldex.AdwSteamGtk.flatpakref
Normal file
10
config/flatpaks/io.github.Foldex.AdwSteamGtk.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[Flatpak Ref]
|
||||||
|
Name=io.github.Foldex.AdwSteamGtk
|
||||||
|
Branch=stable
|
||||||
|
Title=io.github.Foldex.AdwSteamGtk 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/net.wz2100.wz2100.flatpakref
Normal file
10
config/flatpaks/net.wz2100.wz2100.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[Flatpak Ref]
|
||||||
|
Name=net.wz2100.wz2100
|
||||||
|
Branch=stable
|
||||||
|
Title=net.wz2100.wz2100 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/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/org.gnome.Crosswords.flatpakref
Normal file
10
config/flatpaks/org.gnome.Crosswords.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
[Flatpak Ref]
|
||||||
|
Name=org.gnome.Crosswords
|
||||||
|
Branch=stable
|
||||||
|
Title=org.gnome.Crosswords from flathub
|
||||||
|
IsRuntime=false
|
||||||
|
Url=https://dl.flathub.org/repo/
|
||||||
|
SuggestRemoteName=flathub
|
||||||
|
GPGKey=mQINBFlD2sABEADsiUZUOYBg1UdDaWkEdJYkTSZD68214m8Q1fbrP5AptaUfCl8KYKFMNoAJRBXn9FbE6q6VBzghHXj/rSnA8WPnkbaEWR7xltOqzB1yHpCQ1l8xSfH5N02DMUBSRtD/rOYsBKbaJcOgW0K21sX+BecMY/AI2yADvCJEjhVKrjR9yfRX+NQEhDcbXUFRGt9ZT+TI5yT4xcwbvvTu7aFUR/dH7+wjrQ7lzoGlZGFFrQXSs2WI0WaYHWDeCwymtohXryF8lcWQkhH8UhfNJVBJFgCY8Q6UHkZG0FxMu8xnIDBMjBmSZKwKQn0nwzwM2afskZEnmNPYDI8nuNsSZBZSAw+ThhkdCZHZZRwzmjzyRuLLVFpOj3XryXwZcSefNMPDkZAuWWzPYjxS80cm2hG1WfqrG0Gl8+iX69cbQchb7gbEb0RtqNskTo9DDmO0bNKNnMbzmIJ3/rTbSahKSwtewklqSP/01o0WKZiy+n/RAkUKOFBprjJtWOZkc8SPXV/rnoS2dWsJWQZhuPPtv3tefdDiEyp7ePrfgfKxuHpZES0IZRiFI4J/nAUP5bix+srcIxOVqAam68CbAlPvWTivRUMRVbKjJiGXIOJ78wAMjqPg3QIC0GQ0EPAWwAOzzpdgbnG7TCQetaVV8rSYCuirlPYN+bJIwBtkOC9SWLoPMVZTwQARAQABtC5GbGF0aHViIFJlcG8gU2lnbmluZyBLZXkgPGZsYXRodWJAZmxhdGh1Yi5vcmc+iQJUBBMBCAA+FiEEblwF2XnHba+TwIE1QYTdTZB6fK4FAllD2sACGwMFCRLMAwAFCwkIBwIGFQgJCgsCBBYCAwECHgECF4AACgkQQYTdTZB6fK5RJQ/+Ptd4sWxaiAW91FFk7+wmYOkEe1NY2UDNJjEEz34PNP/1RoxveHDt43kYJQ23OWaPJuZAbu+fWtjRYcMBzOsMCaFcRSHFiDIC9aTp4ux/mo+IEeyarYt/oyKb5t5lta6xaAqg7rwt65jW5/aQjnS4h7eFZ+dAKta7Y/fljNrOznUp81/SMcx4QA5G2Pw0hs4Xrxg59oONOTFGBgA6FF8WQghrpR7SnEe0FSEOVsAjwQ13Cfkfa7b70omXSWp7GWfUzgBKyoWxKTqzMN3RQHjjhPJcsQnrqH5enUu4Pcb2LcMFpzimHnUgb9ft72DP5wxfzHGAWOUiUXHbAekfq5iFks8cha/RST6wkxG3Rf44Zn09aOxh1btMcGL+5xb1G0BuCQnA0fP/kDYIPwh9z22EqwRQOspIcvGeLVkFeIfubxpcMdOfQqQnZtHMCabV5Q/Rk9K1ZGc8M2hlg8gHbXMFch2xJ0Wu72eXbA/UY5MskEeBgawTQnQOK/vNm7t0AJMpWK26Qg6178UmRghmeZDj9uNRc3EI1nSbgvmGlpDmCxaAGqaGL1zW4KPW5yN25/qeqXcgCvUjZLI9PNq3Kvizp1lUrbx7heRiSoazCucvHQ1VHUzcPVLUKKTkoTP8okThnRRRsBcZ1+jI4yMWIDLOCT7IW3FePr+3xyuy5eEo9a25Ag0EWUPa7AEQALT/CmSyZ8LWlRYQZKYw417p7Z2hxqd6TjwkwM3IQ1irumkWcTZBZIbBgrSOg6CcXD2oWydCQHWi9qaxhuhEl2bJL5LskmBcMxVdQeD0LLHd8QUnbnnIby8ocvWN1alPfvJFjCUTrmD22U1ycOzRw2lIe4kiQONbOZtdWrVImQQSndjFlisitbmlWHvHm2lOOYy8+GJB7YffVV193hmnBSJffCy4bvkuLxsI+n1DhOzc7MPV3z6HGk4HiEcF0yyt9tCYhpsxHFdBoq2h771HfAcS0s98EVAqYMFnf9em+4cnYpdI6mhIfS1FQiKl6DBAYA8tT3ggla00DurPo0JwX/zN+PaO5h/6O9aCZwV7G6rbkgMuqMergXaf8oP38gr0z+MqWnkfM63Bodq68GP4l4hd02BoFBbDf38TMuGQB14+twJMdfbAxo2MbgluvQgfwHfZ2ca6gyEY+9s/YD1gugLjV+S6CB51WkFNe1z4tAPgJZNxUcKCbeaHNbthl8Hks/pY9RCEseX/EdfzF18epbSjJMPh4DPQXbUoFwmyuYcoBOPmvZHNl9hK7B/1RP8w1ZrXk8qdupC0SNbafX7270B7lMMVImzZetGsM9ypXJ6llhp3FwW09iseNyGJGPsr/dvTMGDXqOPfU/9SAS1LSTY4K9PbRtdrBE318YX8mIk5ABEBAAGJBHIEGAEIACYWIQRuXAXZecdtr5PAgTVBhN1NkHp8rgUCWUPa7AIbAgUJEswDAAJACRBBhN1NkHp8rsF0IAQZAQgAHRYhBFSmzd2JGfsgQgDYrFYnAunj7X7oBQJZQ9rsAAoJEFYnAunj7X7oR6AP/0KYmiAFeqx14Z43/6s2gt3VhxlSd8bmcVV7oJFbMhdHBIeWBp2BvsUf00I0Zl14ZkwCKfLwbbORC2eIxvzJ+QWjGfPhDmS4XUSmhlXxWnYEveSek5Tde+fmu6lqKM8CHg5BNx4GWIX/vdLi1wWJZyhrUwwICAxkuhKxuP2Z1An48930eslTD2GGcjByc27+9cIZjHKa07I/aLffo04V+oMT9/tgzoquzgpVV4jwekADo2MJjhkkPveSNI420bgT+Q7Fi1l0X1aFUniBvQMsaBa27PngWm6xE2ZYvh7nWCdd5g0c0eLIHxWwzV1lZ4Ryx4ITO/VL25ItECcjhTRdYa64sA62MYSaB0x3eR+SihpgP3wSNPFu3MJo6FKTFdi4CBAEmpWHFW7FcRmd+cQXeFrHLN3iNVWryy0HK/CUEJmiZEmpNiXecl4vPIIuyF0zgSCztQtKoMr+injpmQGC/rF/ELBVZTUSLNB350S0Ztvw0FKWDAJSxFmoxt3xycqvvt47rxTrhi78nkk6jATKGyvP55sO+K7Q7Wh0DXA69hvPrYW2eu8jGCdVGxi6HX7L1qcfEd0378S71dZ3g9o6KKl1OsDWWQ6MJ6FGBZedl/ibRfs8p5+sbCX3lQSjEFy3rx6n0rUrXx8U2qb+RCLzJlmC5MNBOTDJwHPcX6gKsUcXZrEQALmRHoo3SrewO41RCr+5nUlqiqV3AohBMhnQbGzyHf2+drutIaoh7Rj80XRh2bkkuPLwlNPf+bTXwNVGse4bej7B3oV6Ae1N7lTNVF4Qh+1OowtGjmfJPWo0z1s6HFJVxoIof9z58Msvgao0zrKGqaMWaNQ6LUeC9g9Aj/9Uqjbo8X54aLiYs8Z1WNc06jKP+gv8AWLtv6CR+l2kLez1YMDucjm7v6iuCMVAmZdmxhg5I/X2+OM3vBsqPDdQpr2TPDLX3rCrSBiS0gOQ6DwN5N5QeTkxmY/7QO8bgLo/Wzu1iilH4vMKW6LBKCaRx5UEJxKpL4wkgITsYKneIt3NTHo5EOuaYk+y2+Dvt6EQFiuMsdbfUjs3seIHsghX/cbPJa4YUqZAL8C4OtVHaijwGo0ymt9MWvS9yNKMyT0JhN2/BdeOVWrHk7wXXJn/ZjpXilicXKPx4udCF76meE+6N2u/T+RYZ7fP1QMEtNZNmYDOfA6sViuPDfQSHLNbauJBo/n1sRYAsL5mcG22UDchJrlKvmK3EOADCQg+myrm8006LltubNB4wWNzHDJ0Ls2JGzQZCd/xGyVmUiidCBUrD537WdknOYE4FD7P0cHaM9brKJ/M8LkEH0zUlo73bY4XagbnCqve6PvQb5G2Z55qhWphd6f4B6DGed86zJEa/RhS
|
||||||
|
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||||
|
|
||||||
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]
|
[gpg]
|
||||||
format = ssh
|
format = ssh
|
||||||
|
|
||||||
[gpg "ssh"]
|
|
||||||
program = "op-ssh-sign"
|
|
||||||
|
|
||||||
[commit]
|
[commit]
|
||||||
gpgsign = true
|
gpgsign = true
|
||||||
|
|
||||||
@@ -23,3 +20,5 @@
|
|||||||
required = true
|
required = true
|
||||||
clean = git-lfs clean -- %f
|
clean = git-lfs clean -- %f
|
||||||
smudge = git-lfs smudge -- %f
|
smudge = git-lfs smudge -- %f
|
||||||
|
[init]
|
||||||
|
defaultBranch = main
|
||||||
|
|||||||
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
|
||||||
194
config/home-manager/flake.lock
generated
194
config/home-manager/flake.lock
generated
@@ -1,5 +1,62 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"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": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
@@ -7,108 +64,159 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1726989464,
|
"lastModified": 1739757849,
|
||||||
"narHash": "sha256-Vl+WVTJwutXkimwGprnEtXc/s/s8sMuXzqXaspIGlwM=",
|
"narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "2f23fa308a7c067e52dfcc30a0758f47043ec176",
|
"rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-24.05",
|
"ref": "release-24.11",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730327045,
|
"lastModified": 1740932899,
|
||||||
"narHash": "sha256-xKel5kd1AbExymxoIfQ7pgcX6hjw9jCgbiBjiUfSVJ8=",
|
"narHash": "sha256-F0qDu2egq18M3edJwEOAE+D+VQ+yESK6YWPRQBfOqq8=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "080166c15633801df010977d9d7474b4a6c549d7",
|
"rev": "1546c45c538633ae40b93e2d14e0bb6fd8f13347",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-24.05",
|
"ref": "nixos-24.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-go": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728863046,
|
"lastModified": 1738255539,
|
||||||
"narHash": "sha256-DZBO2465PL5V89e8hFSJewyH4QbCPpW3ssws7ckT/0A=",
|
"narHash": "sha256-hP2eOqhIO/OILW+3moNWO4GtdJFYCqAe9yJZgvlCoDQ=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d4f247e89f6e10120f911e2e2d2254a050d0f732",
|
"rev": "c3511a3b53b482aa7547c9d1626fd7310c1de1c5",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
|
"ref": "release-24.11",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d4f247e89f6e10120f911e2e2d2254a050d0f732",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-ollama": {
|
"nixpkgs-unstable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728863046,
|
"lastModified": 1738136902,
|
||||||
"narHash": "sha256-DZBO2465PL5V89e8hFSJewyH4QbCPpW3ssws7ckT/0A=",
|
"narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d4f247e89f6e10120f911e2e2d2254a050d0f732",
|
"rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d4f247e89f6e10120f911e2e2d2254a050d0f732",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs-vscode": {
|
"nixpkgs-unstable_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1728863046,
|
"lastModified": 1741010256,
|
||||||
"narHash": "sha256-DZBO2465PL5V89e8hFSJewyH4QbCPpW3ssws7ckT/0A=",
|
"narHash": "sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d4f247e89f6e10120f911e2e2d2254a050d0f732",
|
"rev": "ba487dbc9d04e0634c64e3b1f0d25839a0a68246",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "d4f247e89f6e10120f911e2e2d2254a050d0f732",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-zed": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1729850857,
|
|
||||||
"narHash": "sha256-WvLXzNNnnw+qpFOmgaM3JUlNEH+T4s22b5i2oyyCpXE=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "41dea55321e5a999b17033296ac05fe8a8b5a257",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "41dea55321e5a999b17033296ac05fe8a8b5a257",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
|
"ghostty": "ghostty",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-go": "nixpkgs-go",
|
"nixpkgs-unstable": "nixpkgs-unstable_2"
|
||||||
"nixpkgs-ollama": "nixpkgs-ollama",
|
}
|
||||||
"nixpkgs-vscode": "nixpkgs-vscode",
|
},
|
||||||
"nixpkgs-zed": "nixpkgs-zed"
|
"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,29 +2,23 @@
|
|||||||
description = "menno's dotfiles";
|
description = "menno's dotfiles";
|
||||||
|
|
||||||
inputs = {
|
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";
|
||||||
# Pinned versions for specific packages (https://nixhub.io)
|
|
||||||
nixpkgs-ollama.url = "github:nixos/nixpkgs/d4f247e89f6e10120f911e2e2d2254a050d0f732";
|
|
||||||
nixpkgs-go.url = "github:nixos/nixpkgs/d4f247e89f6e10120f911e2e2d2254a050d0f732";
|
|
||||||
nixpkgs-vscode.url = "github:nixos/nixpkgs/d4f247e89f6e10120f911e2e2d2254a050d0f732";
|
|
||||||
nixpkgs-zed.url = "github:nixos/nixpkgs/41dea55321e5a999b17033296ac05fe8a8b5a257";
|
|
||||||
|
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-24.05";
|
url = "github:nix-community/home-manager/release-24.11";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
ghostty.url = "github:ghostty-org/ghostty";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
{
|
{
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
nixpkgs-go,
|
nixpkgs-unstable,
|
||||||
nixpkgs-vscode,
|
|
||||||
nixpkgs-zed,
|
|
||||||
nixpkgs-ollama,
|
|
||||||
home-manager,
|
home-manager,
|
||||||
|
ghostty,
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
@@ -32,37 +26,24 @@
|
|||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
};
|
};
|
||||||
pkgs-go = import nixpkgs-go {
|
pkgs-unstable = import nixpkgs-unstable {
|
||||||
inherit system;
|
|
||||||
config.allowUnfree = true;
|
|
||||||
};
|
|
||||||
pkgs-vscode = import nixpkgs-vscode {
|
|
||||||
inherit system;
|
|
||||||
config.allowUnfree = true;
|
|
||||||
};
|
|
||||||
pkgs-zed = import nixpkgs-zed {
|
|
||||||
inherit system;
|
|
||||||
config.allowUnfree = true;
|
|
||||||
};
|
|
||||||
pkgs-ollama = import nixpkgs-ollama {
|
|
||||||
inherit system;
|
inherit system;
|
||||||
config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
"mennos-gamingpc" = home-manager.lib.homeManagerConfiguration {
|
"mennos-desktop" = home-manager.lib.homeManagerConfiguration {
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
modules = [ ./home.nix ];
|
modules = [ ./home.nix ];
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit
|
inherit
|
||||||
pkgs
|
pkgs
|
||||||
pkgs-go
|
pkgs-unstable
|
||||||
pkgs-vscode
|
ghostty
|
||||||
pkgs-zed
|
|
||||||
pkgs-ollama
|
|
||||||
;
|
;
|
||||||
isServer = false;
|
isServer = false;
|
||||||
|
hostname = "mennos-gamingpc";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -70,8 +51,12 @@
|
|||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
modules = [ ./home.nix ];
|
modules = [ ./home.nix ];
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit pkgs pkgs-go pkgs-ollama;
|
inherit
|
||||||
|
pkgs
|
||||||
|
pkgs-unstable
|
||||||
|
;
|
||||||
isServer = true;
|
isServer = true;
|
||||||
|
hostname = "mennos-server";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -81,12 +66,11 @@
|
|||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit
|
inherit
|
||||||
pkgs
|
pkgs
|
||||||
pkgs-go
|
pkgs-unstable
|
||||||
pkgs-vscode
|
ghostty
|
||||||
pkgs-zed
|
|
||||||
pkgs-ollama
|
|
||||||
;
|
;
|
||||||
isServer = false;
|
isServer = false;
|
||||||
|
hostname = "mennos-laptop";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -94,8 +78,9 @@
|
|||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
modules = [ ./home.nix ];
|
modules = [ ./home.nix ];
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit pkgs pkgs-go pkgs-ollama;
|
inherit pkgs pkgs-unstable;
|
||||||
isServer = true;
|
isServer = true;
|
||||||
|
hostname = "homeserver-pc";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
isServer ? false,
|
isServer ? false,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
@@ -32,9 +30,9 @@
|
|||||||
home = {
|
home = {
|
||||||
username = "menno";
|
username = "menno";
|
||||||
homeDirectory = "/home/menno";
|
homeDirectory = "/home/menno";
|
||||||
stateVersion = "24.05";
|
stateVersion = "24.11";
|
||||||
sessionVariables = {
|
sessionVariables = {
|
||||||
PATH = "${config.home.homeDirectory}/go/bin:$PATH"; # Removed extra asterisks
|
PATH = "${config.home.homeDirectory}/go/bin:$PATH";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
pkgs-go,
|
pkgs-unstable,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
programs.go = {
|
programs.go = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs-go.go;
|
package = pkgs-unstable.go;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
1
config/home-manager/packages/common/hosts/default.nix
Normal file
1
config/home-manager/packages/common/hosts/default.nix
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{ ... }: { }
|
||||||
4
config/home-manager/packages/common/hosts/fallback.nix
Normal file
4
config/home-manager/packages/common/hosts/fallback.nix
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
{ pkgs-unstable, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs-unstable; [ ];
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{ pkgs-unstable, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs-unstable; [ ];
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{ pkgs-unstable, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs-unstable; [ ];
|
||||||
|
}
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
{ pkgs-unstable, ... }:
|
||||||
|
{
|
||||||
|
home.packages = with pkgs-unstable; [ ];
|
||||||
|
}
|
||||||
@@ -1,14 +1,33 @@
|
|||||||
{ pkgs, pkgs-ollama, ... }:
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
pkgs,
|
||||||
|
pkgs-unstable,
|
||||||
|
hostname,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# Import host-specific packages
|
||||||
|
imports =
|
||||||
|
if hostname == "mennos-gamingpc" then
|
||||||
|
[ ./hosts/mennos-gamingpc.nix ]
|
||||||
|
else if hostname == "mennos-laptop" then
|
||||||
|
[ ./hosts/mennos-laptop.nix ]
|
||||||
|
else if hostname == "mennos-server" then
|
||||||
|
[ ./hosts/mennos-server.nix ]
|
||||||
|
else
|
||||||
|
[ ./hosts/fallback.nix ];
|
||||||
|
|
||||||
|
home.packages =
|
||||||
|
with pkgs;
|
||||||
|
[
|
||||||
# General packages
|
# General packages
|
||||||
git
|
git
|
||||||
|
onefetch
|
||||||
gnupg
|
gnupg
|
||||||
gh
|
gh
|
||||||
nixfmt-rfc-style
|
nixfmt-rfc-style
|
||||||
wget
|
wget
|
||||||
fastfetch
|
fastfetch
|
||||||
pkgs-ollama.ollama
|
gpredict
|
||||||
|
|
||||||
# Package management
|
# Package management
|
||||||
pipx
|
pipx
|
||||||
@@ -26,7 +45,6 @@
|
|||||||
cargo-audit
|
cargo-audit
|
||||||
cargo-expand
|
cargo-expand
|
||||||
cargo-tarpaulin
|
cargo-tarpaulin
|
||||||
pyenv
|
|
||||||
act # GitHub Actions CLI
|
act # GitHub Actions CLI
|
||||||
|
|
||||||
# File and directory operations
|
# File and directory operations
|
||||||
@@ -38,6 +56,10 @@
|
|||||||
duf # Modern df
|
duf # Modern df
|
||||||
zip
|
zip
|
||||||
unzip
|
unzip
|
||||||
|
bottom # Modern top/htop
|
||||||
|
glances # Advanced system monitoring tool
|
||||||
|
procs # Modern ps
|
||||||
|
hyperfine # Benchmarking tool
|
||||||
|
|
||||||
# Search and text processing
|
# Search and text processing
|
||||||
ripgrep # Modern grep
|
ripgrep # Modern grep
|
||||||
@@ -46,6 +68,7 @@
|
|||||||
jq # JSON processor
|
jq # JSON processor
|
||||||
yq # YAML processor
|
yq # YAML processor
|
||||||
xsv # CSV processor
|
xsv # CSV processor
|
||||||
|
ncdu # Disk usage analyzer
|
||||||
|
|
||||||
# System monitoring and process management
|
# System monitoring and process management
|
||||||
procs # Modern ps
|
procs # Modern ps
|
||||||
@@ -77,6 +100,9 @@
|
|||||||
|
|
||||||
# Editors
|
# Editors
|
||||||
neovim
|
neovim
|
||||||
|
## Neovim plugins
|
||||||
|
vimPlugins.LazyVim
|
||||||
|
|
||||||
nano
|
nano
|
||||||
micro
|
micro
|
||||||
|
|
||||||
@@ -86,5 +112,6 @@
|
|||||||
cmatrix
|
cmatrix
|
||||||
figlet
|
figlet
|
||||||
lolcat
|
lolcat
|
||||||
];
|
]
|
||||||
|
++ (with pkgs-unstable; [ ]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ... }:
|
{ 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 @@
|
|||||||
{ config, pkgs, ... }:
|
{ ... }:
|
||||||
|
|
||||||
let
|
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
|
# Import all other .nix files as modules
|
||||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
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
|
||||||
|
];
|
||||||
|
}
|
||||||
@@ -1,14 +1,26 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs-unstable, pkgs, ... }:
|
||||||
{
|
{
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# GUI Applications
|
# GUI Application
|
||||||
## Utilities
|
## Utilities
|
||||||
mission-center
|
mission-center # Task Manager like Windows 11
|
||||||
gnome.gnome-tweaks
|
gnome-tweaks
|
||||||
pinta
|
pinta # Paint.NET alternative
|
||||||
bottles
|
bottles # Wine manager
|
||||||
trayscale
|
trayscale # Tray icon for Tailscale
|
||||||
spacedrive
|
spacedrive # Virtual filesystem manager
|
||||||
|
smile # Emoji picker
|
||||||
|
gnome-frog # OCR tool
|
||||||
|
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
|
## Chat Apps
|
||||||
telegram-desktop
|
telegram-desktop
|
||||||
@@ -36,6 +48,7 @@
|
|||||||
### Games launchers
|
### Games launchers
|
||||||
lutris
|
lutris
|
||||||
heroic
|
heroic
|
||||||
|
dosbox
|
||||||
|
|
||||||
### Game utilities
|
### Game utilities
|
||||||
protonup-qt
|
protonup-qt
|
||||||
|
|||||||
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"
|
||||||
|
'';
|
||||||
|
}
|
||||||
@@ -1,13 +1,8 @@
|
|||||||
{
|
{ pkgs, pkgs-unstable, ... }:
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
pkgs-vscode,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
{
|
||||||
programs.vscode = {
|
programs.vscode = {
|
||||||
enable = true;
|
enable = true;
|
||||||
package = pkgs-vscode.vscode;
|
package = pkgs-unstable.vscode;
|
||||||
mutableExtensionsDir = true;
|
mutableExtensionsDir = true;
|
||||||
extensions = with pkgs.vscode-extensions; [
|
extensions = with pkgs.vscode-extensions; [
|
||||||
ms-azuretools.vscode-docker
|
ms-azuretools.vscode-docker
|
||||||
|
|||||||
@@ -1,9 +1,12 @@
|
|||||||
|
{ pkgs-unstable, ... }:
|
||||||
{
|
{
|
||||||
config,
|
home.packages = with pkgs-unstable; [
|
||||||
pkgs,
|
zed-editor
|
||||||
pkgs-zed,
|
nixd
|
||||||
...
|
nixdoc
|
||||||
}:
|
|
||||||
{
|
# We need nodejs due to a stupid bug with CoPilot not loading properly
|
||||||
home.packages = [ pkgs-zed.zed-editor ];
|
# https://github.com/zed-industries/zed/issues/12187#issuecomment-2322338504
|
||||||
|
nodejs_22
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, ... }:
|
{ ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||||
|
|||||||
@@ -35,27 +35,38 @@
|
|||||||
dconf = {
|
dconf = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
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" = {
|
"org/gnome/desktop/interface" = {
|
||||||
color-scheme = "prefer-dark";
|
color-scheme = "prefer-dark";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Pinned apps
|
# 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" = {
|
"org/gnome/shell" = {
|
||||||
favorite-apps = [
|
favorite-apps = [
|
||||||
"io.github.zen_browser.zen.desktop"
|
"brave-browser.desktop"
|
||||||
"code.desktop"
|
"code.desktop"
|
||||||
"org.telegram.desktop.desktop"
|
"org.telegram.desktop.desktop"
|
||||||
"spotify.desktop"
|
"spotify.desktop"
|
||||||
|
"com.plexamp.Plexamp.desktop"
|
||||||
"vesktop.desktop"
|
"vesktop.desktop"
|
||||||
"org.gnome.Geary.desktop"
|
"org.gnome.Geary.desktop"
|
||||||
|
"nemo.desktop"
|
||||||
|
"org.gnome.Console.desktop"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# GNOME Terminal settings
|
# GNOME Terminal settings
|
||||||
"org/gnome/Console" = {
|
"org/gnome/Console" = {
|
||||||
use-system-font = false;
|
use-system-font = false;
|
||||||
custom-font = "Hack Nerd Font 14";
|
custom-font = "Hack Nerd Font 13";
|
||||||
theme = "night";
|
theme = "night";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
{ config, pkgs, ... }:
|
{ ... }:
|
||||||
{
|
{
|
||||||
# Default applications
|
# Default applications
|
||||||
xdg.mimeApps = {
|
xdg.mimeApps = {
|
||||||
enable = true;
|
enable = true;
|
||||||
defaultApplications = {
|
defaultApplications = {
|
||||||
# Zen Browser
|
# Brave Browser
|
||||||
"application/xhtml+xml" = [ "io.github.zen_browser.zen.desktop" ];
|
"application/xhtml+xml" = [ "brave-browser.desktop" ];
|
||||||
"text/html" = [ "io.github.zen_browser.zen.desktop" ];
|
"text/html" = [ "brave-browser.desktop" ];
|
||||||
"x-scheme-handler/http" = [ "io.github.zen_browser.zen.desktop" ];
|
"x-scheme-handler/http" = [ "brave-browser.desktop" ];
|
||||||
"x-scheme-handler/https" = [ "io.github.zen_browser.zen.desktop" ];
|
"x-scheme-handler/https" = [ "brave-browser.desktop" ];
|
||||||
|
|
||||||
# Geary
|
# Geary
|
||||||
"x-scheme-handler/mailto" = [ "org.gnome.Geary.desktop" ];
|
"x-scheme-handler/mailto" = [ "org.gnome.Geary.desktop" ];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, ... }:
|
{ ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||||
|
|||||||
@@ -1,10 +1,25 @@
|
|||||||
{ config, pkgs, ... }:
|
|
||||||
{
|
{
|
||||||
home.packages = with pkgs.gnomeExtensions; [
|
config,
|
||||||
|
pkgs-unstable,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
{
|
||||||
|
# We run most extensions from unstable because they are more up-to-date
|
||||||
|
home.packages =
|
||||||
|
with pkgs.gnomeExtensions;
|
||||||
|
[
|
||||||
|
user-themes
|
||||||
|
weather-oclock
|
||||||
|
native-window-placement
|
||||||
|
kimpanel
|
||||||
|
]
|
||||||
|
++ (with pkgs-unstable.gnomeExtensions; [
|
||||||
|
tiling-shell
|
||||||
|
lilypad
|
||||||
tailscale-qs
|
tailscale-qs
|
||||||
gsconnect
|
gsconnect
|
||||||
blur-my-shell
|
blur-my-shell
|
||||||
weather-oclock
|
|
||||||
space-bar
|
space-bar
|
||||||
gtk4-desktop-icons-ng-ding
|
gtk4-desktop-icons-ng-ding
|
||||||
logo-menu
|
logo-menu
|
||||||
@@ -13,12 +28,13 @@
|
|||||||
coverflow-alt-tab
|
coverflow-alt-tab
|
||||||
dash-to-dock
|
dash-to-dock
|
||||||
appindicator
|
appindicator
|
||||||
user-themes
|
|
||||||
autohide-battery
|
autohide-battery
|
||||||
battery-health-charging
|
battery-health-charging
|
||||||
just-perfection
|
just-perfection
|
||||||
pano
|
smile-complementary-extension
|
||||||
];
|
vitals
|
||||||
|
clipboard-indicator
|
||||||
|
]);
|
||||||
|
|
||||||
# Copy burn-my-windows profile to user config
|
# Copy burn-my-windows profile to user config
|
||||||
home.file.".config/burn-my-windows/profiles/default.conf".text = ''
|
home.file.".config/burn-my-windows/profiles/default.conf".text = ''
|
||||||
@@ -30,10 +46,19 @@
|
|||||||
|
|
||||||
dconf = {
|
dconf = {
|
||||||
settings = {
|
settings = {
|
||||||
|
# vitals settings
|
||||||
|
"org/gnome/shell/extensions/vitals" = {
|
||||||
|
position-in-panel = 0;
|
||||||
|
use-higher-precision = true;
|
||||||
|
icon-style = 1;
|
||||||
|
};
|
||||||
|
|
||||||
# To get an ID of an extension, run `gnome-extensions list`
|
# To get an ID of an extension, run `gnome-extensions list`
|
||||||
"org/gnome/shell" = {
|
"org/gnome/shell" = {
|
||||||
disable-user-extensions = false;
|
disable-user-extensions = false;
|
||||||
enabled-extensions = [
|
enabled-extensions = [
|
||||||
|
"kimpanel@kde.org"
|
||||||
|
"lilypad@shendrew.github.io"
|
||||||
"tilingshell@ferrarodomenico.com"
|
"tilingshell@ferrarodomenico.com"
|
||||||
"gsconnect@andyholmes.github.io"
|
"gsconnect@andyholmes.github.io"
|
||||||
"blur-my-shell@aunetx"
|
"blur-my-shell@aunetx"
|
||||||
@@ -52,9 +77,24 @@
|
|||||||
"user-theme@gnome-shell-extensions.gcampax.github.com"
|
"user-theme@gnome-shell-extensions.gcampax.github.com"
|
||||||
"autohide-battery@sitnik.ru"
|
"autohide-battery@sitnik.ru"
|
||||||
"just-perfection-desktop@just-perfection"
|
"just-perfection-desktop@just-perfection"
|
||||||
|
"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
|
# Perfection settings
|
||||||
"org/gnome/shell/extensions/just-perfection" = {
|
"org/gnome/shell/extensions/just-perfection" = {
|
||||||
theme = false;
|
theme = false;
|
||||||
@@ -69,6 +109,8 @@
|
|||||||
|
|
||||||
# Configure dash-to-dock
|
# Configure dash-to-dock
|
||||||
"org/gnome/shell/extensions/dash-to-dock" = {
|
"org/gnome/shell/extensions/dash-to-dock" = {
|
||||||
|
pressure-threshold = 250;
|
||||||
|
require-pressure-to-show = false;
|
||||||
apply-custom-theme = false;
|
apply-custom-theme = false;
|
||||||
apply-glossy-effect = false;
|
apply-glossy-effect = false;
|
||||||
autohide-in-fullscreen = true;
|
autohide-in-fullscreen = true;
|
||||||
@@ -78,7 +120,7 @@
|
|||||||
custom-theme-running-dots-color = "rgb(255,255,255)";
|
custom-theme-running-dots-color = "rgb(255,255,255)";
|
||||||
dash-max-icon-size = 48;
|
dash-max-icon-size = 48;
|
||||||
dock-fixed = false;
|
dock-fixed = false;
|
||||||
dock-position = "BOTTOM";
|
dock-position = "LEFT";
|
||||||
extend-height = 0;
|
extend-height = 0;
|
||||||
height-fraction = 0.9;
|
height-fraction = 0.9;
|
||||||
intellihide = true;
|
intellihide = true;
|
||||||
@@ -137,7 +179,7 @@
|
|||||||
layouts-json = ''
|
layouts-json = ''
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
"id": "Layout 1",
|
"id": "Landscape Ultrawide",
|
||||||
"tiles": [
|
"tiles": [
|
||||||
{ "x": 0, "y": 0, "width": 0.22, "height": 0.5, "groups": [1, 2] },
|
{ "x": 0, "y": 0, "width": 0.22, "height": 0.5, "groups": [1, 2] },
|
||||||
{ "x": 0, "y": 0.5, "width": 0.22, "height": 0.5, "groups": [1, 2] },
|
{ "x": 0, "y": 0.5, "width": 0.22, "height": 0.5, "groups": [1, 2] },
|
||||||
@@ -147,45 +189,59 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "Layout 2",
|
"id": "Portrait Ultrawide",
|
||||||
"tiles": [
|
|
||||||
{ "x": 0, "y": 0, "width": 0.22, "height": 1, "groups": [1] },
|
|
||||||
{ "x": 0.22, "y": 0, "width": 0.56, "height": 1, "groups": [1, 2] },
|
|
||||||
{ "x": 0.78, "y": 0, "width": 0.22, "height": 1, "groups": [2] }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "Layout 3",
|
|
||||||
"tiles": [
|
|
||||||
{ "x": 0, "y": 0, "width": 0.33, "height": 1, "groups": [1] },
|
|
||||||
{ "x": 0.33, "y": 0, "width": 0.67, "height": 1, "groups": [1] }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "Layout 4",
|
|
||||||
"tiles": [
|
|
||||||
{ "x": 0, "y": 0, "width": 0.67, "height": 1, "groups": [1] },
|
|
||||||
{ "x": 0.67, "y": 0, "width": 0.33, "height": 1, "groups": [1] }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"id": "Portrait Layout",
|
|
||||||
"tiles": [
|
"tiles": [
|
||||||
{ "x": 0, "y": 0, "width": 1, "height": 0.25, "groups": [1] },
|
{ "x": 0, "y": 0, "width": 1, "height": 0.25, "groups": [1] },
|
||||||
{ "x": 0, "y": 0.25, "width": 1, "height": 0.5, "groups": [1, 2] },
|
{ "x": 0, "y": 0.25, "width": 1, "height": 0.5, "groups": [1, 2] },
|
||||||
{
|
{ "x": 0, "y": 0.75, "width": 0.5, "height": 0.25, "groups": [2, 3] },
|
||||||
"x": 0,
|
{ "x": 0.5, "y": 0.75, "width": 0.5, "height": 0.25, "groups": [2, 3] }
|
||||||
"y": 0.75,
|
]
|
||||||
"width": 0.50,
|
|
||||||
"height": 0.25,
|
|
||||||
"groups": [2, 3]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"x": 0.50,
|
"id": "Landscape Laptop",
|
||||||
"y": 0.75,
|
"tiles": [
|
||||||
"width": 0.50,
|
{ "x": 0, "y": 0, "width": 0.33, "height": 0.5, "groups": [1, 2] },
|
||||||
"height": 0.25,
|
{ "x": 0.33, "y": 0, "width": 0.67, "height": 1, "groups": [1] },
|
||||||
"groups": [2, 3]
|
{ "x": 0, "y": 0.5, "width": 0.33, "height": 0.5, "groups": [2, 1] }
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "Landscape Ultrawide Power-User",
|
||||||
|
"tiles": [
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 0,
|
||||||
|
"width": 0.1984375,
|
||||||
|
"height": 0.5028409090909091,
|
||||||
|
"groups": [1, 2]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0.1984375,
|
||||||
|
"y": 0,
|
||||||
|
"width": 0.3015625,
|
||||||
|
"height": 1,
|
||||||
|
"groups": [4, 1]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0,
|
||||||
|
"y": 0.5028409090909091,
|
||||||
|
"width": 0.1984375,
|
||||||
|
"height": 0.49715909090909094,
|
||||||
|
"groups": [2, 1]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0.8015625,
|
||||||
|
"y": 0,
|
||||||
|
"width": 0.1984375,
|
||||||
|
"height": 1,
|
||||||
|
"groups": [3]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"x": 0.5,
|
||||||
|
"y": 0,
|
||||||
|
"width": 0.30156249999999996,
|
||||||
|
"height": 1,
|
||||||
|
"groups": [3, 4]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@@ -248,6 +304,29 @@
|
|||||||
"org/gnome/shell/extensions/user-theme" = {
|
"org/gnome/shell/extensions/user-theme" = {
|
||||||
name = "Yaru-purple-dark";
|
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;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,8 @@
|
|||||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/missioncenter/"
|
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/missioncenter/"
|
||||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal/"
|
"/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/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" = {
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/1password-quick-access" = {
|
||||||
@@ -28,13 +30,23 @@
|
|||||||
};
|
};
|
||||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = {
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = {
|
||||||
binding = "<Ctrl><Alt>t";
|
binding = "<Ctrl><Alt>t";
|
||||||
command = "kgx";
|
command = "ptyxis --new-window"; # ghostty doesn't work on Fedora atm
|
||||||
name = "terminal";
|
name = "terminal";
|
||||||
};
|
};
|
||||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emotes" = {
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emotes" = {
|
||||||
binding = "<Super>e";
|
binding = "<Super>e";
|
||||||
command = "flatpak run com.tomjwatson.Emote";
|
command = "smile";
|
||||||
name = "emotes";
|
name = "emotes";
|
||||||
};
|
};
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/frog" = {
|
||||||
|
binding = "<Shift><Alt>3";
|
||||||
|
command = "frog";
|
||||||
|
name = "frog-ocr";
|
||||||
|
};
|
||||||
|
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/ulauncher" = {
|
||||||
|
binding = "<Control>Space";
|
||||||
|
command = "ulauncher-toggle";
|
||||||
|
name = "ulauncher";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
# OpenSSH server
|
# Install xanmod kernel
|
||||||
|
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_stable.zfs;
|
||||||
|
|
||||||
services.openssh = {
|
services.openssh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
ports = [ 400 ];
|
ports = [ 400 ];
|
||||||
@@ -16,13 +18,29 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# Open ports in the firewall
|
networking = {
|
||||||
networking.firewall = {
|
firewall = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
|
# External ports
|
||||||
allowedTCPPorts = [
|
allowedTCPPorts = [
|
||||||
# SSH
|
## Portforwarded
|
||||||
400
|
80 # HTTP
|
||||||
|
443 # HTTPS
|
||||||
|
22 # Git over SSH
|
||||||
|
25565 # Minecraft
|
||||||
|
24454 # Minecraft (Voice Chat)
|
||||||
|
32400 # Plex
|
||||||
|
51820 # WireGuard
|
||||||
|
|
||||||
|
## Internal services / TailScale
|
||||||
|
400 # SSH
|
||||||
];
|
];
|
||||||
allowedUDPPorts = [ ];
|
|
||||||
|
allowedUDPPorts = [
|
||||||
|
51820 # WireGuard
|
||||||
|
25565 # Minecraft
|
||||||
|
];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
# Enable the X11 windowing system.
|
# Enable the X11 windowing system.
|
||||||
services.xserver.enable = true;
|
services.xserver.enable = true;
|
||||||
@@ -7,7 +7,19 @@
|
|||||||
services.xserver.displayManager.gdm.enable = true;
|
services.xserver.displayManager.gdm.enable = true;
|
||||||
services.xserver.desktopManager.gnome.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
|
# Configure keymap in X11
|
||||||
services.xserver.xkb = {
|
services.xserver.xkb = {
|
||||||
|
|||||||
@@ -18,10 +18,6 @@
|
|||||||
++ lib.optional isServer ./packages/server/default.nix
|
++ lib.optional isServer ./packages/server/default.nix
|
||||||
++ lib.optional isWorkstation ./packages/workstation/default.nix;
|
++ lib.optional isWorkstation ./packages/workstation/default.nix;
|
||||||
|
|
||||||
# Bootloader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
# Enable networking
|
# Enable networking
|
||||||
networking.networkmanager.enable = true;
|
networking.networkmanager.enable = true;
|
||||||
|
|
||||||
@@ -30,7 +26,7 @@
|
|||||||
|
|
||||||
# Enable experimental nix-command flakes
|
# Enable experimental nix-command flakes
|
||||||
nix = {
|
nix = {
|
||||||
package = pkgs.nixFlakes;
|
package = pkgs.nixVersions.stable;
|
||||||
extraOptions = ''
|
extraOptions = ''
|
||||||
experimental-features = nix-command flakes
|
experimental-features = nix-command flakes
|
||||||
'';
|
'';
|
||||||
@@ -60,6 +56,9 @@
|
|||||||
];
|
];
|
||||||
|
|
||||||
services.tailscale.enable = true;
|
services.tailscale.enable = true;
|
||||||
|
security.sudo.extraConfig = ''
|
||||||
|
Defaults env_reset,pwfeedback
|
||||||
|
'';
|
||||||
|
|
||||||
# This value determines the NixOS release from which the default
|
# This value determines the NixOS release from which the default
|
||||||
# settings for stateful data, like file locations and database versions
|
# settings for stateful data, like file locations and database versions
|
||||||
@@ -67,5 +66,5 @@
|
|||||||
# this value at the release version of the first install of this system.
|
# this value at the release version of the first install of this system.
|
||||||
# Before changing this value read the documentation for this option
|
# Before changing this value read the documentation for this option
|
||||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
# (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?
|
||||||
}
|
}
|
||||||
|
|||||||
96
config/nixos/flake.lock
generated
96
config/nixos/flake.lock
generated
@@ -1,24 +1,110 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1717312683,
|
||||||
|
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"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": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1730327045,
|
"lastModified": 1740828860,
|
||||||
"narHash": "sha256-xKel5kd1AbExymxoIfQ7pgcX6hjw9jCgbiBjiUfSVJ8=",
|
"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": 1741010256,
|
||||||
|
"narHash": "sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "080166c15633801df010977d9d7474b4a6c549d7",
|
"rev": "ba487dbc9d04e0634c64e3b1f0d25839a0a68246",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"ref": "nixos-24.05",
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"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",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": "nixpkgs"
|
"nixos-cosmic": "nixos-cosmic",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,45 +2,76 @@
|
|||||||
description = "menno's dotfiles";
|
description = "menno's dotfiles";
|
||||||
|
|
||||||
inputs = {
|
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 =
|
outputs =
|
||||||
{ self, nixpkgs }:
|
{
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
nixpkgs-unstable,
|
||||||
|
nixos-cosmic,
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
system = "x86_64-linux";
|
||||||
|
|
||||||
|
pkgs = import nixpkgs {
|
||||||
|
inherit system;
|
||||||
|
config.allowUnfree = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
pkgs-unstable = import nixpkgs-unstable {
|
||||||
|
inherit system;
|
||||||
|
config.allowUnfree = true;
|
||||||
|
};
|
||||||
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
"mennos-laptop" = nixpkgs.lib.nixosSystem {
|
"mennos-laptop" = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
inherit system;
|
||||||
modules = [
|
modules = [
|
||||||
./hardware/mennos-laptop.nix
|
./hardware/mennos-laptop.nix
|
||||||
./common/workstation.nix
|
./common/workstation.nix
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
];
|
];
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
|
inherit
|
||||||
|
pkgs-unstable
|
||||||
|
nixos-cosmic
|
||||||
|
;
|
||||||
isWorkstation = true;
|
isWorkstation = true;
|
||||||
isServer = false;
|
isServer = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
"mennos-gamingpc" = nixpkgs.lib.nixosSystem {
|
"mennos-gamingpc" = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
inherit system;
|
||||||
modules = [
|
modules = [
|
||||||
./hardware/mennos-gamingpc.nix
|
./hardware/mennos-gamingpc.nix
|
||||||
./common/workstation.nix
|
./common/workstation.nix
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
];
|
];
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
|
inherit
|
||||||
|
pkgs-unstable
|
||||||
|
nixos-cosmic
|
||||||
|
;
|
||||||
isWorkstation = true;
|
isWorkstation = true;
|
||||||
isServer = false;
|
isServer = false;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
"mennos-server" = nixpkgs.lib.nixosSystem {
|
"mennos-server" = nixpkgs.lib.nixosSystem {
|
||||||
system = "x86_64-linux";
|
inherit system;
|
||||||
modules = [
|
modules = [
|
||||||
./hardware/mennos-server.nix
|
./hardware/mennos-server.nix
|
||||||
./common/server.nix
|
./common/server.nix
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
];
|
];
|
||||||
specialArgs = {
|
specialArgs = {
|
||||||
|
inherit pkgs-unstable;
|
||||||
isWorkstation = false;
|
isWorkstation = false;
|
||||||
isServer = true;
|
isServer = true;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -9,29 +9,49 @@
|
|||||||
imports = [ /etc/nixos/hardware-configuration.nix ];
|
imports = [ /etc/nixos/hardware-configuration.nix ];
|
||||||
networking.hostName = "mennos-gamingpc";
|
networking.hostName = "mennos-gamingpc";
|
||||||
|
|
||||||
# Enable Vulkan support for AMD graphics cards
|
fileSystems."/" = {
|
||||||
hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ amdvlk ];
|
device = "/dev/disk/by-uuid/ac5a70cf-4b12-4d02-b5b4-a6eddf4c40b5";
|
||||||
|
fsType = "ext4";
|
||||||
|
options = [ "noatime" ];
|
||||||
|
};
|
||||||
|
|
||||||
# Enable OpenGL
|
networking.interfaces.enp8s0.wakeOnLan = {
|
||||||
hardware.opengl = {
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Bootloader.
|
||||||
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
# Enable Vulkan support for AMD graphics cards
|
||||||
|
hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ amdvlk ];
|
||||||
|
|
||||||
|
# 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;
|
enable = true;
|
||||||
driSupport = true;
|
|
||||||
driSupport32Bit = true;
|
|
||||||
|
|
||||||
# Enable the latest AMDGPU drivers
|
# Enable the latest AMDGPU drivers
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
amdvlk
|
amdvlk
|
||||||
rocm-opencl-icd
|
rocmPackages.clr
|
||||||
rocm-opencl-runtime
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Add ROCm packages
|
# Add ROCm packages and nvtop
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
rocmPackages.rocm-smi
|
rocmPackages.rocm-smi
|
||||||
rocmPackages.clr
|
rocmPackages.clr
|
||||||
rocmPackages.rocm-core
|
rocmPackages.rocm-core
|
||||||
rocmPackages.hipcc
|
rocmPackages.hipcc
|
||||||
rocmPackages.rocm-device-libs
|
rocmPackages.rocm-device-libs
|
||||||
|
nvtopPackages.amd
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,42 +9,76 @@
|
|||||||
imports = [ /etc/nixos/hardware-configuration.nix ];
|
imports = [ /etc/nixos/hardware-configuration.nix ];
|
||||||
networking.hostName = "mennos-laptop";
|
networking.hostName = "mennos-laptop";
|
||||||
|
|
||||||
# Enable OpenGL
|
fileSystems."/" = {
|
||||||
hardware.opengl = {
|
device = "/dev/disk/by-uuid/1356cd09-5c55-45b5-8b06-6aadc84cee37";
|
||||||
enable = true;
|
fsType = "ext4";
|
||||||
|
options = [ "noatime" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Load nvidia driver for Xorg and Wayland
|
# Bootloader
|
||||||
services.xserver.videoDrivers = [ "nvidia" ];
|
boot.loader.systemd-boot.enable = true;
|
||||||
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
|
|
||||||
|
# Enable graphics
|
||||||
|
hardware.graphics = {
|
||||||
|
enable = true;
|
||||||
|
extraPackages = with pkgs; [
|
||||||
|
amdvlk
|
||||||
|
rocmPackages.clr
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
# 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 = {
|
hardware.nvidia = {
|
||||||
# Modesetting is required.
|
# Enable modesetting
|
||||||
modesetting.enable = true;
|
modesetting.enable = true;
|
||||||
|
|
||||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
# Power management configuration
|
||||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
powerManagement = {
|
||||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
enable = true;
|
||||||
# of just the bare essentials.
|
finegrained = false; # Disabled as it requires offload mode
|
||||||
powerManagement.enable = false;
|
};
|
||||||
|
|
||||||
# Fine-grained power management. Turns off GPU when not in use.
|
# Prime configuration for hybrid graphics
|
||||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
prime = {
|
||||||
powerManagement.finegrained = false;
|
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;
|
open = false;
|
||||||
|
|
||||||
# Enable the Nvidia settings menu,
|
|
||||||
# accessible via `nvidia-settings`.
|
|
||||||
nvidiaSettings = true;
|
nvidiaSettings = true;
|
||||||
|
|
||||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
boot.kernelParams = [
|
||||||
|
"amdgpu.sg_display=0"
|
||||||
|
"nvidia-drm.modeset=1"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,45 +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.hostName = "mennos-server";
|
||||||
|
networking.hostId = "64519940";
|
||||||
|
|
||||||
# Enable OpenGL
|
# Bootloader.
|
||||||
# hardware.opengl = {
|
boot.loader.systemd-boot.enable = true;
|
||||||
# enable = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
# };
|
|
||||||
|
|
||||||
# # Load nvidia driver for Xorg and Wayland
|
# Allow unfree packages
|
||||||
# services.xserver.videoDrivers = [ "nvidia" ];
|
nixpkgs.config.allowUnfree = true;
|
||||||
|
|
||||||
# hardware.nvidia = {
|
# Load nvidia driver for Xorg and Wayland
|
||||||
# # Modesetting is required.
|
services.xserver.videoDrivers = [ "nvidia" ];
|
||||||
# modesetting.enable = true;
|
|
||||||
|
|
||||||
# # Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
# Enable graphics
|
||||||
# # Enable this if you have graphical corruption issues or application crashes after waking
|
hardware.graphics.enable = true;
|
||||||
# # up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
|
||||||
# # of just the bare essentials.
|
|
||||||
# powerManagement.enable = false;
|
|
||||||
|
|
||||||
# # Fine-grained power management. Turns off GPU when not in use.
|
# nvtop, a system monitor for GPUs
|
||||||
# # Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
environment.systemPackages = with pkgs; [ nvtopPackages.nvidia ];
|
||||||
# powerManagement.finegrained = false;
|
|
||||||
|
|
||||||
# # Use the NVidia open source kernel module (not to be confused with the
|
# Enable NVIDIA Docker support
|
||||||
# # independent third-party "nouveau" open source driver).
|
# test with: $ docker run --rm -it --device=nvidia.com/gpu=all ubuntu:latest nvidia-smi
|
||||||
# # Support is limited to the Turing and later architectures. Full list of
|
hardware.nvidia-container-toolkit.enable = true;
|
||||||
# # supported GPUs is at:
|
virtualisation.docker = {
|
||||||
# # https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
enable = true;
|
||||||
# # 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,
|
# Swap file (Laptop has 64GB of RAM so 16GB swap should be enough)
|
||||||
# # accessible via `nvidia-settings`.
|
swapDevices = [
|
||||||
# nvidiaSettings = true;
|
{
|
||||||
|
device = "/swapfile";
|
||||||
# # Optionally, you may need to select the appropriate driver version for your specific GPU.
|
size = 16384;
|
||||||
# package = config.boot.kernelPackages.nvidiaPackages.stable;
|
}
|
||||||
# };
|
];
|
||||||
|
|
||||||
|
hardware.nvidia = {
|
||||||
|
modesetting.enable = true;
|
||||||
|
powerManagement.enable = false;
|
||||||
|
powerManagement.finegrained = false;
|
||||||
|
open = false;
|
||||||
|
nvidiaSettings = true;
|
||||||
|
|
||||||
|
# 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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,6 +1,12 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
{
|
{
|
||||||
imports = [ ./virtualization.nix ];
|
imports = [ ./virtualisation.nix ];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [ yubikey-manager ];
|
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,4 +1,9 @@
|
|||||||
{ config, pkgs, ... }:
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
pkgs-unstable,
|
||||||
|
...
|
||||||
|
}:
|
||||||
{
|
{
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
|
|
||||||
@@ -10,6 +15,7 @@
|
|||||||
virtualisation = {
|
virtualisation = {
|
||||||
docker = {
|
docker = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
package = pkgs-unstable.docker;
|
||||||
autoPrune.enable = true;
|
autoPrune.enable = true;
|
||||||
daemon.settings = {
|
daemon.settings = {
|
||||||
"live-restore" = false;
|
"live-restore" = false;
|
||||||
@@ -1,4 +1,15 @@
|
|||||||
{ ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
imports = [ ];
|
# Import all the package modules
|
||||||
|
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";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@@ -1,10 +1,15 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, pkgs-unstable, ... }:
|
||||||
{
|
{
|
||||||
# 1Password
|
# Enables the 1Password CLI
|
||||||
programs._1password.enable = true;
|
programs._1password = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Enables the 1Password desktop app
|
||||||
programs._1password-gui = {
|
programs._1password-gui = {
|
||||||
enable = true;
|
enable = true;
|
||||||
polkitPolicyOwners = [ "menno" ];
|
polkitPolicyOwners = [ "menno" ];
|
||||||
|
package = pkgs-unstable._1password-gui;
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.etc = {
|
environment.etc = {
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
{ ... }:
|
{ config, pkgs, ... }:
|
||||||
{
|
{
|
||||||
|
# Import all the package modules
|
||||||
imports = [
|
imports = [
|
||||||
./steam.nix
|
|
||||||
./1password.nix
|
|
||||||
./flatpak.nix
|
./flatpak.nix
|
||||||
|
./1password.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
{ pkgs, ... }: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
services.flatpak.enable = true;
|
services.flatpak.enable = true;
|
||||||
systemd.services.flatpak-repo = {
|
systemd.services.flatpak-repo = {
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|||||||
@@ -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"
|
"docker"
|
||||||
"video"
|
"video"
|
||||||
"render"
|
"render"
|
||||||
|
"users"
|
||||||
|
"input"
|
||||||
|
"adbusers"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,2 +1,8 @@
|
|||||||
# This is the authrorized_keys file for the user mennos-laptop
|
# 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
|
# 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-laptop
|
# 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
|
# 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,9 +1,9 @@
|
|||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
jA0ECQMIdzswSvGKIFj/0sAIAc0IMa6q0CiEqk/RjpEaea0RpVSxKL8v/E0HyqiC
|
jA0ECQMIyS/QhVzk8iz/0sAIAYCHd2CTLa3u1Ajj4oj7tqJivyB2moggjt7f0uep
|
||||||
nZBGvcaadZ+uQ/Ndxk3WfehTYuXWZk9gotfoQ91TrvMcCNt0ag6sMdVLHtEzoXWF
|
qpah5aM35C/BnzMVRkg6CBWbMFhBRYlRaJ7oyQMPlq/OAtDuk4heXhQfqN24PEEb
|
||||||
93wn4UDc9kv56mfU+JnSK5Rv6euXhZ8ZapEqFIvmh7kGkX/nwTJFNU/f6jz0yhaw
|
X5SzXFaTtW01HIHy2JNaVaz7qU4RsRctayjPe6jBKfkDrxbLpKtUf1ETNuwqgMOR
|
||||||
uu/pa9b9NFpIH7IoelJ2SzJMX3ZhX5aVcY0ojOEvlfRxOGdsOxUK2Ifd9MWV9Tyd
|
pyZjgoBO6Wo2DUkeq3cku95ejsX/63XXnTKW0CXwVdvolo7OzdBIfNsiSMTnvnr5
|
||||||
Sgsa3uFFcL4STwXNq6umwlfkk/SOqtq5WAA=
|
s1jFbGH7K3QOz7FcSyanG4gK+z3x6Njaduc=
|
||||||
=Zo/k
|
=tmo1
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
jA0ECQMIJPtjJvUADyj/0sCQAUkXVqShmsjmP11kEL0ooHx94+JCEGWICJIuzRPc
|
jA0ECQMI3rCkM4WCKnn/0sASAQjifcMA4M5hjwkP8dZXxah9d8g8YeofFTPLgPMm
|
||||||
mjhdKO/lcmKotU2GCkx35ejWDuOp0bpCOoTzpbOYRxQEws4F0nuA56EB9Q+YsQd6
|
zUR7BcyuniGeHkdkPhVIPDU9ea8BB6JVgldGNeHOh0Rj+OdO95RzPkC4VyGlhVC7
|
||||||
hr31hjIKYQO0vsyW1MItfj5nOKb3Vyars3WQm3zrdIsD/zAJol/Thfbln6j9Y8cc
|
qoDdy+QQUOVImgEjbNLSOD3VKJzYQMfcmF2X6yZ0TpfOeHZyOmaVXQU+hdIl2g9r
|
||||||
NcCe2hh0MpZWxpMufl7OEmQj+hp0sOIIEhco/TSnQsJjPHyOajjpbRtdyyI7kClD
|
zJjzKh2Ukp0VAF+1mp6mcU3fKhwJyffxF1491ExXYM80q1+S247/zLgU1/nQi/u5
|
||||||
U1kBtue5Go5ZcclYvJIL7ZhbN3ncVDVYrjOP59fbmBIlYpscpGuuF62NX8MRmZEf
|
cX1cV14qi/nFQdmuNlNjahusvSpVtkhsa8TYMRyDP9rr+WdQ
|
||||||
RIvJgNlfAS9kn9eXTFpG35cjCZMjttRK8JKMrcBq9vdZLfi9ZHF0Lff3b22DfewU
|
=an0w
|
||||||
Nb6Hr5fybR6XogcmA+cEBwanZy2fxacZeUDZOihItmWUrHgG9THgUVZo5SBvXAnM
|
|
||||||
MZcpfbCfKTJGWpSY5dgVpNV4
|
|
||||||
=LexE
|
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
jA0ECQMIJX/hE+QfNpz/0sBiAfL+UCwD3Q6xmXtnWFfx2jaPVzJ0LsxWCirV4NBR
|
jA0ECQMIECtNQigofUT/0sA7AfQFumfYw02g3y4nQuPYrfbgyHuMVCsMk+nLlcLb
|
||||||
XdIYJ+bHdCPB6kTTCxbtY/oDMdC2POpDTCrF1hz76Ca42lvTN2OLxPuOmZwhp+GL
|
5I+zgR8c1ie/S5XBk3wLlJ0suhb8m4ifZOJoRcIW7G+ISTPjIetaJQnkvObKUBgG
|
||||||
fTYUaMcGcP5u6Lo3fHSeOo+EKLK9//S5HhKTn8ymJh+MllQbpBKBoO/GB+qOIcvh
|
QXz54oWcQYXMeaGcEq442gU0x+S3HVU2GcIhRdiUuZ5DYbaEsYnLcPLBrp73a/wE
|
||||||
esRPM1szohidAYhpAmmLw0m7+LRrC5MN0pbrG80D0kchkhl+XYIUX39eUymbuAgZ
|
+hb3IZC1zGcijpC4ovcVVAZvHUaKpV0hCzJXNGgvPW0H7/GRxQyPKjghUQ7DgCRu
|
||||||
ZIdJQ4inS/cp8FKZO0JI4HD6fu9+UFMeJrpv61XvQ3C06urNexyjNLvpUM/up/Nz
|
4u7t/GU2JDrep+nteUu5Rs+P7bypZdyripMj6BxoqHmwjj1ddeSK7Bv602Nt+7/n
|
||||||
xfCIiNTGvJY21kOAV3j9xtBz+ApZOgixzLr+QYHwJsKQPRlCRONhe+L8dpS6kIXm
|
Bcg8xpViAasXREuaR3Z6r9SFlex7qbQjMMBtb2M=
|
||||||
R/HEujbrurgfxlfe/jUCc96yGLY=
|
=wrl9
|
||||||
=dKuW
|
|
||||||
-----END PGP MESSAGE-----
|
-----END PGP MESSAGE-----
|
||||||
|
|||||||
@@ -1,11 +1,9 @@
|
|||||||
-----BEGIN PGP MESSAGE-----
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
jA0ECQMI5QTAzMem3iX/0sB7Af9vzRP3ckaEbBXnuuDV2rySfPhVUIhWhCLrdDlF
|
jA0ECQMILwzTWNDBbZX/0sAeAQMlmiKRJM5YPtC78LvlLroqE5R6hysJq1nGV34U
|
||||||
VPKF+LpsZtQ/YTMDUIs+LyY4+9WEAnA4BtvoKT0+dlG7KrkVZm0cdnuYPAjxUj/d
|
CcY7XmuLz/Bvx2/ZGE1urY48AmgNZraiKOh8kfTG5T7dCTqrkMiz1MpNRYVdnXvW
|
||||||
UY6Oe+SxhWZ8REwee1bIezwOR1TDrCZ4Puqhzku6ldTCQ4TStm21yX6n0bC1sDZW
|
LOanl3+alv6tmosD52zn4vRmRCnIaqE/k6ne+NV4BuRj0u9qWLoNI/7uGFnjcvI3
|
||||||
crLZokGAnrdMurXNskjoCy7NKbA+qHPuX2dwjDLc5mM1nFUwSVcQKDGT2wa7oYgQ
|
mGYlDF7ArQH0gVpmW8wmlNFzMPe4ccqWMjGbpB1h3TEALy4nh2wwNH5PvF1FKesJ
|
||||||
f/9BhI9TH/1uepyRErZq6J1DR0sc2q4ZEsMrIR7gqdGLlflFuZwZvmTrFybLEihV
|
iq4Vvhslo8LbyjQdkA7/fPlYEu1MDJKDCaHWwmAevMwNuGNLrdupyOf2KkHSYmUB
|
||||||
U3G+09UM1utbGlgkex7yOTp0DZ9/UxYvVdunrvS4WLM29ULQe6oGt7coTD9MiCQe
|
=ULsR
|
||||||
2OvH/dvSNSgGcHvrYMEcORaLDtHJgYVvhY1CgYXrvthUsehAxBalSYKyFZfJ
|
|
||||||
=XWXt
|
|
||||||
-----END PGP MESSAGE-----
|
-----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-----
|
||||||
12
secrets/wireguard/work.wg0.conf.gpg
Normal file
12
secrets/wireguard/work.wg0.conf.gpg
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
-----BEGIN PGP MESSAGE-----
|
||||||
|
|
||||||
|
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
51386
secrets/wp/5.jpg.gpg
51386
secrets/wp/5.jpg.gpg
File diff suppressed because it is too large
Load Diff
17010
secrets/wp/6.jpg.gpg
17010
secrets/wp/6.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