Compare commits
275 Commits
f0620e24b1
...
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
|
|||
|
0563a01c96
|
|||
|
cbd590bf19
|
|||
|
0c0ccab938
|
|||
|
93e4f8462e
|
|||
|
26b1a61b2c
|
|||
|
5dd78f9490
|
|||
|
aa3510cf77
|
|||
|
fc38dcb2ef
|
|||
|
3882af2264
|
|||
|
d0f795db57
|
|||
|
a2a04deb26
|
|||
|
488dd6be3c
|
|||
|
d3e271f97e
|
|||
|
ff10d2e1cf
|
|||
|
6b183f2591
|
|||
|
9802e61876
|
|||
|
7134d0c29d
|
|||
|
1e7baa0365
|
|||
|
0e945e3f5e
|
|||
|
4c64a52449
|
|||
|
64f8ea8609
|
|||
|
c9156c9e2c
|
|||
|
c7c48571ba
|
|||
|
a865102184
|
|||
|
1873900db9
|
|||
|
0110b52262
|
|||
|
a8f9dd41f0
|
|||
|
da2aa042cd
|
|||
|
946ae2b987
|
|||
|
11fd6bc478
|
|||
|
1dfce7fd9b
|
|||
|
05c5cf81bf
|
|||
|
d52099bbb9
|
|||
|
55c9fe6cea
|
|||
|
e38ed1532a
|
|||
|
46f83918e1
|
|||
|
395fe1d235
|
|||
|
551800c69b
|
|||
|
dcf1c294a6
|
|||
|
23e0592468
|
|||
|
5b301b4da0
|
91
.bashrc
91
.bashrc
@@ -3,10 +3,13 @@ HISTFILE=~/.bash_history
|
||||
HISTSIZE=1000
|
||||
HISTFILESIZE=2000 # Adjusted to match both histfile and size criteria
|
||||
|
||||
# Alias Definitions
|
||||
# Docker Compose Alias (Mostly for old shell scripts)
|
||||
alias docker-compose='docker compose'
|
||||
alias gg='git pull'
|
||||
alias gl='git log --stat'
|
||||
|
||||
# Home Manager Configuration
|
||||
alias hm='cd $HOME/dotfiles/config/home-manager/ && home-manager'
|
||||
alias hmnews='hm news --flake .#$DOTF_HOSTNAME'
|
||||
alias hmup='hm switch --flake .#$DOTF_HOSTNAME --impure'
|
||||
|
||||
# Modern tools aliases
|
||||
alias l="eza --header --long --git --group-directories-first --group --icons --color=always --sort=name --hyperlink -o --no-permissions"
|
||||
@@ -15,7 +18,7 @@ alias la='l -a'
|
||||
alias cat='bat'
|
||||
alias du='dust'
|
||||
alias df='duf'
|
||||
alias rm="echo Use 'rip' instead of rm."
|
||||
alias rm="trash-put"
|
||||
|
||||
# Docker Aliases
|
||||
alias d='docker'
|
||||
@@ -32,6 +35,7 @@ alias ddpul='docker compose down && docker compose pull && docker compose up -d
|
||||
# Git aliases
|
||||
alias g='git'
|
||||
alias gg='git pull'
|
||||
alias gl='git log --stat'
|
||||
alias gp='git push'
|
||||
alias gs='git status -s'
|
||||
alias gst='git status'
|
||||
@@ -65,6 +69,9 @@ export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$H
|
||||
# Allow unfree nixos
|
||||
export NIXPKGS_ALLOW_UNFREE=1
|
||||
|
||||
# Allow insecure nixpkgs
|
||||
export NIXPKGS_ALLOW_INSECURE=1
|
||||
|
||||
# Set DOTF_HOSTNAME to the hostname from .hostname file
|
||||
# If this file doesn't exist, use mennos-unknown-hostname
|
||||
export DOTF_HOSTNAME="mennos-unknown-hostname"
|
||||
@@ -74,29 +81,25 @@ fi
|
||||
|
||||
# Tradaware / DiscountOffice Configuration
|
||||
if [ -d "/home/menno/Projects/Work" ]; then
|
||||
export TRADAWARE_FROM_SOURCE=true
|
||||
export TRADAWARE_DEVOPS=true
|
||||
fi
|
||||
|
||||
# pyenv Configuration
|
||||
export PYENV_ROOT="$HOME/.pyenv"
|
||||
if [[ -d $PYENV_ROOT/bin ]]; then
|
||||
export PATH="$PYENV_ROOT/bin:$PATH"
|
||||
eval "$(pyenv init --path)"
|
||||
fi
|
||||
|
||||
# Flutter Environment
|
||||
if [ -d "$HOME/flutter" ]; then
|
||||
export PATH="$PATH:$HOME/flutter/bin"
|
||||
export CHROME_EXECUTABLE=/usr/bin/brave-browser
|
||||
fi
|
||||
# Flutter Web and other tools that require Chrome
|
||||
export CHROME_EXECUTABLE=$(which brave)
|
||||
|
||||
# 1Password Source Plugin (Assuming bash compatibility)
|
||||
if [ -f /home/menno/.config/op/plugins.sh ]; then
|
||||
source /home/menno/.config/op/plugins.sh
|
||||
fi
|
||||
|
||||
# Starship Prompt Initialization (Adapted for Bash)
|
||||
eval "$(starship init bash)"
|
||||
# Initialize starship if available
|
||||
if ! command -v starship &> /dev/null; then
|
||||
echo "FYI, starship not found"
|
||||
else
|
||||
export STARSHIP_ENABLE_RIGHT_PROMPT=true
|
||||
export STARSHIP_ENABLE_BASH_CONTINUATION=true
|
||||
eval "$(starship init bash)"
|
||||
fi
|
||||
|
||||
# Source nix home-manager
|
||||
if [ -f "$HOME/.nix-profile/etc/profile.d/hm-session-vars.sh" ]; then
|
||||
@@ -112,19 +115,53 @@ if command -v zoxide &> /dev/null; then
|
||||
fi
|
||||
|
||||
# Check if we are running from zellij, if not then launch it
|
||||
if [ -z "$ZELLIJ" ]; then
|
||||
zellij
|
||||
launch_zellij_conditionally() {
|
||||
if [ -z "$ZELLIJ" ]; then
|
||||
# Don't launch zellij in tmux, vscode, screen or zeditor.
|
||||
if [ ! -t 1 ] || [ -n "$TMUX" ] || [ -n "$VSCODE_STABLE" ] || [ -n "$STY" ] || [ -n "$ZED_TERM" ]; then
|
||||
return
|
||||
fi
|
||||
|
||||
# Exit if zellij exits properly with a zero exit code
|
||||
if [ $? -eq 0 ]; then
|
||||
exit $?
|
||||
# Launch zellij
|
||||
zellij
|
||||
|
||||
# Exit if zellij exits properly with a zero exit code
|
||||
if [ $? -eq 0 ]; then
|
||||
exit $?
|
||||
fi
|
||||
|
||||
echo "Zellij exited with a non-zero exit code, falling back to regular shell."
|
||||
return
|
||||
fi
|
||||
}
|
||||
|
||||
echo "Zellij exited with a non-zero exit code, continuing..."
|
||||
return
|
||||
# Disabled for now, I don't like the way it behaves but I don't want to remove it either
|
||||
# launch_zellij_conditionally
|
||||
|
||||
# Source ble.sh if it exists
|
||||
if [[ -f "${HOME}/.nix-profile/share/blesh/ble.sh" ]]; then
|
||||
source "${HOME}/.nix-profile/share/blesh/ble.sh"
|
||||
|
||||
# Custom function for fzf history search
|
||||
function fzf_history_search() {
|
||||
local selected
|
||||
selected=$(history | fzf --tac --height=40% --layout=reverse --border --info=inline \
|
||||
--query="$READLINE_LINE" \
|
||||
--color 'fg:#ebdbb2,bg:#282828,hl:#fabd2f,fg+:#ebdbb2,bg+:#3c3836,hl+:#fabd2f' \
|
||||
--color 'info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,header:#665c54' \
|
||||
| sed 's/^ *[0-9]* *//')
|
||||
if [[ -n "$selected" ]]; then
|
||||
READLINE_LINE="$selected"
|
||||
READLINE_POINT=${#selected}
|
||||
fi
|
||||
ble-redraw-prompt
|
||||
}
|
||||
|
||||
# Bind Ctrl+R to our custom function
|
||||
bind -x '"\C-r": fzf_history_search'
|
||||
fi
|
||||
|
||||
# Display a welcome message for interactive shells
|
||||
if [ -t 1 ]; then
|
||||
dotf term
|
||||
dotf hello
|
||||
fi
|
||||
|
||||
44
.github/workflows/nixfmt.yml
vendored
Normal file
44
.github/workflows/nixfmt.yml
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
name: Nix Format Check
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
check-format:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Install Nix
|
||||
uses: cachix/install-nix-action@v30
|
||||
with:
|
||||
extra_nix_config: |
|
||||
experimental-features = nix-command flakes
|
||||
|
||||
- name: Install nixfmt
|
||||
run: nix profile install nixpkgs#nixfmt-rfc-style
|
||||
|
||||
- name: Check Nix formatting
|
||||
run: |
|
||||
exit_code=0
|
||||
while IFS= read -r file; do
|
||||
if ! nixfmt "$file"; then
|
||||
echo "Error: Failed to format $file"
|
||||
exit_code=1
|
||||
break
|
||||
fi
|
||||
done < <(find . -name "*.nix" -type f)
|
||||
|
||||
if [ $exit_code -eq 0 ]; then
|
||||
if git diff --quiet; then
|
||||
echo "All Nix files are properly formatted"
|
||||
else
|
||||
echo "Error: Some Nix files are not properly formatted"
|
||||
git diff
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
exit $exit_code
|
||||
fi
|
||||
9
.gitignore
vendored
9
.gitignore
vendored
@@ -3,13 +3,8 @@ config/ssh/config.d/*
|
||||
logs/*
|
||||
|
||||
# Don't include secrets in the repository but do include encrypted secrets
|
||||
secrets/wp/*.*
|
||||
!secrets/wp/*.gpg
|
||||
secrets/ssh_config/*.*
|
||||
!secrets/ssh_config/*.gpg
|
||||
secrets/*.*
|
||||
!secrets/*.gpg
|
||||
secrets/id_ed25519
|
||||
!secrets/**/*.gpg
|
||||
secrets/**/*.*
|
||||
|
||||
# SHA256 hashes of the encrypted secrets
|
||||
*.sha256
|
||||
91
README.md
91
README.md
@@ -1,52 +1,79 @@
|
||||
# Setup
|
||||
|
||||
Follow the steps below to setup your environment.
|
||||
This dotfiles is intended to be used with NixOS 24.05
|
||||
Please install a clean version of NixOS GNOME and then follow the steps below.
|
||||
|
||||
## Begin here
|
||||
## Installation
|
||||
|
||||
### 0. Install NixOS
|
||||
|
||||
Download the latest NixOS ISO from the [NixOS website](https://nixos.org/download.html) and write it to a USB stick.
|
||||
I'd recommend getting the GNOME version as it's easier to setup and you can select minimal from the installer anyway if you want to just setup a headless server.
|
||||
|
||||
#### Note: If you intend on using a desktop environment you should select the GNOME version as this dotfiles repository expects the GNOME desktop environment for various configurations
|
||||
|
||||
### 1. Clone dotfiles to home directory
|
||||
|
||||
You should probably already have this cloned in your home directory but if you don't you can clone it with the following command.
|
||||
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
|
||||
git clone ssh://od.mvl.sh/dotfiles ~/dotfiles
|
||||
nix-shell -p git
|
||||
curl -L https://df.mvl.sh | bash
|
||||
```
|
||||
|
||||
### 2. Prepare shell
|
||||
### 2. Reboot
|
||||
|
||||
You can run the setup.sh in the dotfiles folder to install all the necessary packages.
|
||||
|
||||
```bash
|
||||
cd ~/dotfiles && ./setup.sh
|
||||
```
|
||||
|
||||
### 3. Run `dotf update`
|
||||
|
||||
This should fix all the symlinks and install all the necessary packages.
|
||||
Afterwards you should restart your shell.
|
||||
|
||||
This should also set your terminal and default shell to zsh so make sure to restart or just reboot your system.
|
||||
|
||||
```bash
|
||||
dotf update
|
||||
```
|
||||
|
||||
### 4. Reboot
|
||||
|
||||
After you have done all the steps above you should reboot your system to make sure everything is working as intended.
|
||||
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.
|
||||
|
||||
```bash
|
||||
# sudo reboot
|
||||
```
|
||||
|
||||
### 5. Secrets + 1Password
|
||||
### 3. Run `dotf update`
|
||||
|
||||
Since 1Password has been installed you can open it.
|
||||
Secrets won't be able to decrypt until you have logged in on 1Password and enabled Developer tools under the settings.
|
||||
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.
|
||||
|
||||
## Install extra packages
|
||||
```bash
|
||||
dotf update
|
||||
```
|
||||
|
||||
After you've got the first part done and you have `dotf` installed you can install extra packages.
|
||||
Check the [packages](packages.md) file for more information.
|
||||
### 4. Setup 1Password (Optional)
|
||||
|
||||
You can also have a look at [gnome-extensions](gnome-extensions.md) for some gnome extensions that I use.
|
||||
1Password is installed but you need to login and enable the SSH agent and CLI components under the settings before continuing.
|
||||
|
||||
### 5. Decrypt secrets
|
||||
|
||||
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
|
||||
dotf secrets decrypt
|
||||
```
|
||||
|
||||
### 6. Profit
|
||||
|
||||
You should now have a fully setup system with all the configurations applied.
|
||||
|
||||
## Adding a new system
|
||||
|
||||
### Paths in the repository
|
||||
|
||||
Here are some paths that contain files named after the hostname of the system.
|
||||
If you add a new system you should add the relevant files to these paths.
|
||||
|
||||
- `nconfig/nixos/hardware/`: Contains the hardware configurations for the different systems.
|
||||
- `config/ssh/authorized_keys`: Contains the public keys per hostname that will be symlinked to the `~/.ssh/authorized_keys` file.
|
||||
- `config/nixos/flake.nix`: Contains an array `nixosConfigurations` where you should be adding the new system hostname and relevant configuration.
|
||||
- `config/home-manager/flake.nix`: Contains an array `homeConfigurations` where you should be adding the new system hostname and relevant configuration.
|
||||
|
||||
### Adding a new system
|
||||
|
||||
To add a new system you should follow these steps:
|
||||
|
||||
1. Add the relevant files shown in the section above.
|
||||
2. Ensure you've either updated or added the `$HOME/.hostname` file with the hostname of the system.
|
||||
3. Run `dotf update` to ensure the symlinks are properly updated/created.
|
||||
|
||||
@@ -1,19 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
apps=(
|
||||
spotify
|
||||
whatsapp-for-linux
|
||||
telegram-desktop
|
||||
vesktop
|
||||
trayscale
|
||||
1password
|
||||
"spotify"
|
||||
"whatsapp-for-linux"
|
||||
"telegram-desktop"
|
||||
"vesktop"
|
||||
"trayscale"
|
||||
"1password"
|
||||
"ulauncher-wrapped --no-window-shadow --hide-window"
|
||||
"polkit-agent"
|
||||
"swaync"
|
||||
"nm-applet"
|
||||
"blueman-applet"
|
||||
)
|
||||
|
||||
# check if screen has any dead sessions
|
||||
if screen -list | grep -q "Dead"; then
|
||||
screen -wipe
|
||||
fi
|
||||
|
||||
echo "Starting auto-start applications..."
|
||||
for app in "${apps[@]}"; do
|
||||
if [ -x "$(command -v $app)" ]; then
|
||||
echo "Starting $app..."
|
||||
screen -dmS $app $app
|
||||
app_name=$(echo $app | awk '{print $1}')
|
||||
app_params=$(echo $app | cut -d' ' -f2-)
|
||||
|
||||
if [ -x "$(command -v $app_name)" ]; then
|
||||
if screen -list | grep -q $app_name; then
|
||||
echo "$app_name is already running. Skipping..."
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "Starting $app_name with parameters $app_params..."
|
||||
screen -dmS $app_name $app_name $app_params
|
||||
sleep 1
|
||||
fi
|
||||
done
|
||||
|
||||
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,10 +3,7 @@
|
||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
||||
|
||||
# Print logo
|
||||
tput setaf 2
|
||||
cat $HOME/dotfiles/bin/resources/logo.txt
|
||||
println " " "cyan"
|
||||
tput sgr0
|
||||
logo
|
||||
|
||||
# Print help
|
||||
cat $HOME/dotfiles/bin/resources/help.txt
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
||||
|
||||
# Kill any running swhkd and swhks processes
|
||||
if pgrep -x "swhkd" > /dev/null; then
|
||||
printfe "%s\n" "yellow" "swhkd is running, killing it..."
|
||||
sudo pkill swhkd
|
||||
fi
|
||||
|
||||
if pgrep -x "swhks" > /dev/null; then
|
||||
printfe "%s\n" "yellow" "swhks is running, killing it..."
|
||||
sudo pkill swhks
|
||||
fi
|
||||
|
||||
printfe "%s\n" "green" "Starting hotkey daemon..."
|
||||
swhks & pkexec swhkd -c ~/.config/swhkdrc
|
||||
@@ -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
|
||||
}
|
||||
|
||||
if [[ "$2" == "decrypt" ]]; then
|
||||
if [[ "$1" == "decrypt" ]]; then
|
||||
printfe "%s\n" "cyan" "Decrypting secrets..."
|
||||
decrypt_folder ~/dotfiles/secrets
|
||||
elif [[ "$2" == "encrypt" ]]; then
|
||||
elif [[ "$1" == "encrypt" ]]; then
|
||||
printfe "%s\n" "cyan" "Encrypting secrets..."
|
||||
encrypt_folder ~/dotfiles/secrets
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
||||
source $HOME/dotfiles/bin/helpers/pipx_packages.sh
|
||||
source $HOME/dotfiles/bin/helpers/cargo_packages.sh
|
||||
source $HOME/dotfiles/bin/helpers/flatpak_packages.sh
|
||||
source $HOME/dotfiles/bin/helpers/fonts.sh
|
||||
|
||||
# Check if parameter --verbose was passed
|
||||
if [ "$2" = "--verbose" ]; then
|
||||
verbose=true
|
||||
else
|
||||
verbose=false
|
||||
fi
|
||||
|
||||
echo -e "\n"
|
||||
|
||||
print_fonts_status
|
||||
print_pipx_status
|
||||
print_cargo_status
|
||||
print_flatpak_status
|
||||
@@ -1,5 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
||||
|
||||
logo continue
|
||||
@@ -92,19 +92,28 @@ symlinks() {
|
||||
done
|
||||
}
|
||||
|
||||
sys_packages() {
|
||||
####################################################################################################
|
||||
# Update system packages
|
||||
####################################################################################################
|
||||
|
||||
printfe "%s\n" "cyan" "Updating system packages..."
|
||||
####################################################################################################
|
||||
# Update packages
|
||||
####################################################################################################
|
||||
|
||||
sys_packages() {
|
||||
if [[ "$OSTYPE" == "darwin"* ]]; then
|
||||
printfe "%s\n" "cyan" "Updating brew packages..."
|
||||
brew update
|
||||
brew upgrade
|
||||
brew cleanup
|
||||
else
|
||||
if [ -x "$(command -v nixos-version)" ]; then
|
||||
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --flake .#$DOTF_HOSTNAME
|
||||
printfe "%s\n" "cyan" "Updating nix channels..."
|
||||
printfe "%s" "cyan" "System channels: "
|
||||
sudo -i nix-channel --update
|
||||
|
||||
printfe "%s" "cyan" "User channels: "
|
||||
nix-channel --update
|
||||
|
||||
printfe "%s\n" "cyan" "Updating nixos flake..."
|
||||
cd $HOME/dotfiles/config/nixos && nix --extra-experimental-features nix-command --extra-experimental-features flakes flake update
|
||||
|
||||
# Exit if this failed
|
||||
if [ $? -ne 0 ]; then
|
||||
@@ -113,15 +122,19 @@ sys_packages() {
|
||||
return
|
||||
fi
|
||||
|
||||
sudo nala upgrade -y
|
||||
sudo nala autoremove -y --purge
|
||||
if [ -x "$(command -v apt)" ]; then
|
||||
printfe "%s\n" "cyan" "Updating apt packages..."
|
||||
sudo nala upgrade -y
|
||||
sudo nala autoremove -y --purge
|
||||
fi
|
||||
|
||||
if [ -x "$(command -v yum)" ]; then
|
||||
printfe "%s\n" "cyan" "Updating yum packages..."
|
||||
sudo yum update -y
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
####################################################################################################
|
||||
# Update packages
|
||||
####################################################################################################
|
||||
|
||||
cargopkgs() {
|
||||
printfe "%s\n" "cyan" "Ensuring Cargo packages are installed..."
|
||||
source $HOME/dotfiles/bin/helpers/cargo_packages.sh
|
||||
@@ -134,13 +147,6 @@ pipxpkgs() {
|
||||
return
|
||||
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..."
|
||||
source $HOME/dotfiles/bin/helpers/pipx_packages.sh
|
||||
ensure_pipx_packages_installed
|
||||
@@ -162,103 +168,37 @@ flatpakpkgs() {
|
||||
ensure_flatpak_packages_installed
|
||||
}
|
||||
|
||||
dockercmd() {
|
||||
# On NixOS this is managed by the docker.nix module
|
||||
if [ -x "$(command -v nixos-version)" ]; then
|
||||
printfe "%s\n" "yellow" "Detected NixOS, skipping Docker."
|
||||
return
|
||||
fi
|
||||
|
||||
printfe "%s\n" "cyan" "Ensuring Docker is installed..."
|
||||
source $HOME/dotfiles/bin/helpers/docker.sh
|
||||
ensure_docker_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() {
|
||||
cd $HOME/dotfiles/config/home-manager && NIXPKGS_ALLOW_UNFREE=1 home-manager switch -b backup
|
||||
}
|
||||
|
||||
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
|
||||
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
|
||||
}
|
||||
|
||||
####################################################################################################
|
||||
# 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
|
||||
printfe "%s\n" "yellow" "No options passed, running full update..."
|
||||
|
||||
ensure_homemanager_installed
|
||||
symlinks
|
||||
sys_packages
|
||||
homemanager
|
||||
cargopkgs
|
||||
pipxpkgs
|
||||
dockercmd
|
||||
git_repos
|
||||
flatpakpkgs
|
||||
tailscalecmd
|
||||
dotf secrets encrypt
|
||||
else
|
||||
for arg in "$@"; do
|
||||
case $arg in
|
||||
--home-manager)
|
||||
--nixos|nixos|nix|nixos-rebuild)
|
||||
sys_packages
|
||||
;;
|
||||
--home-manager|--homemanager|ha|hm|home)
|
||||
homemanager
|
||||
;;
|
||||
--git)
|
||||
git_repos
|
||||
--nix)
|
||||
sys_packages
|
||||
homemanager
|
||||
;;
|
||||
--symlinks)
|
||||
symlinks
|
||||
@@ -268,8 +208,6 @@ else
|
||||
cargopkgs
|
||||
pipxpkgs
|
||||
flatpakpkgs
|
||||
dockercmd
|
||||
tailscalecmd
|
||||
;;
|
||||
--pipx)
|
||||
pipxpkgs
|
||||
@@ -280,12 +218,6 @@ else
|
||||
--flatpak)
|
||||
flatpakpkgs
|
||||
;;
|
||||
--docker)
|
||||
dockercmd
|
||||
;;
|
||||
--tailscale)
|
||||
tailscalecmd
|
||||
;;
|
||||
*)
|
||||
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
|
||||
167
bin/dotf
167
bin/dotf
@@ -1,80 +1,135 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
source $HOME/dotfiles/bin/helpers/functions.sh
|
||||
export DOTFILES_CONFIG=$HOME/dotfiles/config/config.yaml
|
||||
# strict mode
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
status() {
|
||||
$HOME/dotfiles/bin/actions/status.sh $@
|
||||
# Script constants
|
||||
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() {
|
||||
$HOME/dotfiles/bin/actions/update.sh $@
|
||||
upgrade() {
|
||||
local upgrade_script="$DOTFILES_BIN/actions/upgrade.sh"
|
||||
if [[ ! -x "$upgrade_script" ]]; then
|
||||
printfe "%s\n" "red" "Error: Upgrade script not found or not executable"
|
||||
return 1
|
||||
fi
|
||||
"$upgrade_script" $@
|
||||
}
|
||||
|
||||
hello() {
|
||||
local term_script="$DOTFILES_BIN/actions/hello.sh"
|
||||
if [[ ! -x "$term_script" ]]; then
|
||||
printfe "%s\n" "red" "Error: Terminal script not found or not executable"
|
||||
return 1
|
||||
fi
|
||||
"$term_script" "$@"
|
||||
}
|
||||
|
||||
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() {
|
||||
$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() {
|
||||
$HOME/dotfiles/bin/actions/push.sh $@
|
||||
auto_start() {
|
||||
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() {
|
||||
# If ~/dotfiles/.git/hooks is a symlink, skip this
|
||||
if [[ -L ~/dotfiles/.git/hooks ]]; then
|
||||
# Let's make sure the symlink is correct
|
||||
if [[ $(readlink ~/dotfiles/.git/hooks) != $HOME/dotfiles/bin/actions/git ]]; then
|
||||
printfe "%s\n" "yellow" "The ~/dotfiles/.git/hooks symlink is incorrect. Please remove it and run this script again."
|
||||
local hooks_dir="$DOTFILES_ROOT/.git/hooks"
|
||||
local target_link="$DOTFILES_BIN/actions/git"
|
||||
|
||||
# Validate target directory exists
|
||||
if [[ ! -d "$target_link" ]]; then
|
||||
printfe "%s\n" "red" "Error: Git hooks source directory does not exist: $target_link"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Handle existing symlink
|
||||
if [[ -L "$hooks_dir" ]]; then
|
||||
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
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ -d ~/dotfiles/.git/hooks ]]; then
|
||||
rm -rf ~/dotfiles/.git/hooks
|
||||
printfe "%s\n" "yellow" "The ~/dotfiles/.git/hooks directory already exists. We're removing it!"
|
||||
# Handle existing directory
|
||||
if [[ -d "$hooks_dir" ]]; then
|
||||
printfe "%s\n" "yellow" "Removing existing hooks directory..."
|
||||
rm -rf "$hooks_dir"
|
||||
fi
|
||||
|
||||
ln -s $HOME/dotfiles/bin/actions/git ~/dotfiles/.git/hooks
|
||||
printfe "%s\n" "green" "Git hooks are now set up!"
|
||||
# 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
|
||||
case $1 in
|
||||
"update")
|
||||
logo
|
||||
update $@
|
||||
;;
|
||||
"push")
|
||||
logo continue
|
||||
push $@
|
||||
;;
|
||||
"status")
|
||||
logo continue
|
||||
status $@
|
||||
;;
|
||||
"help"|"--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
|
||||
# Setup git hooks
|
||||
ensure_git_hooks || exit 1
|
||||
|
||||
# Parse commands
|
||||
case "${1:-help}" in
|
||||
update) shift; update "$@" ;;
|
||||
upgrade) shift; upgrade "$@" ;;
|
||||
help) shift; help "$@" ;;
|
||||
hello) shift; hello "$@" ;;
|
||||
secrets) shift; secrets "$@" ;;
|
||||
auto-start) shift; auto_start "$@" ;;
|
||||
*) help ;;
|
||||
esac
|
||||
}
|
||||
|
||||
main "$@"
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# In case we run Pop!_OS let's use `cosmic-screenshot --interactive`, otherwise default to `flameshot gui`
|
||||
if [[ -x "$(command -v cosmic-screenshot)" ]]; then
|
||||
cosmic-screenshot --interactive
|
||||
else
|
||||
flameshot gui
|
||||
fi
|
||||
@@ -15,14 +15,15 @@ is_wsl() {
|
||||
}
|
||||
|
||||
logo() {
|
||||
tput setaf 2
|
||||
cat $HOME/dotfiles/bin/resources/logo.txt
|
||||
println " " "cyan"
|
||||
tput sgr0
|
||||
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
|
||||
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" "yellow" "[$(git -C ~/dotfiles status --porcelain | grep -c '^ M')] modified "
|
||||
printfe "%s" "green" "[$(git -C ~/dotfiles status --porcelain | grep -c '^M ')] staged "
|
||||
@@ -32,6 +33,7 @@ logo() {
|
||||
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"
|
||||
fi
|
||||
|
||||
println "" "normal"
|
||||
}
|
||||
|
||||
@@ -84,28 +86,6 @@ ensure_package_installed() {
|
||||
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() {
|
||||
if sudo -n true 2>/dev/null; then
|
||||
return
|
||||
@@ -115,32 +95,6 @@ ensure_sudo_privileges() {
|
||||
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 ()
|
||||
{
|
||||
### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##
|
||||
@@ -229,6 +183,15 @@ check_or_make_symlink() {
|
||||
SOURCE="${SOURCE/#\~/$HOME}"
|
||||
TARGET="${TARGET/#\~/$HOME}"
|
||||
|
||||
# Ensure the parent directory of the target exists
|
||||
mkdir -p "$(dirname "$TARGET")"
|
||||
|
||||
# if source doesn't exist it's likely a secret that hasn't been decrypted yet
|
||||
if [ ! -e "$SOURCE" ]; then
|
||||
printfe "%s\n" "yellow" " - Source $SOURCE doesn't exist"
|
||||
return
|
||||
fi
|
||||
|
||||
SOURCE=$(resolve_path "$SOURCE")
|
||||
TARGET=$(resolve_path "$TARGET")
|
||||
|
||||
|
||||
@@ -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] [optional parameters]
|
||||
Usage: dotf [OPTIONS] [ARGS]
|
||||
|
||||
update: Pull latest changes, and update symlinks and configurations.
|
||||
status: Show the status of the dotfiles repository.
|
||||
update: Pull latest changes, and update symlinks and configurations
|
||||
Also pulls latest nix channels and updates flakes to latest versions.
|
||||
upgrade: Runs switch, flake variants for nix switch with upgrade and home-manager.
|
||||
secrets: Encrypt and decrypt secrets.
|
||||
auto-start: Start a set of pre-defined applications.
|
||||
hello: Shows the welcome message for the terminal.
|
||||
help: Shows this help message
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
|
||||
_ ___ _ __ _ _
|
||||
/\/\ ___ _ __ _ __ ___( )__ / \___ | |_ / _(_) | ___ ___
|
||||
/ \ / _ \ '_ \| '_ \ / _ \/ __| / /\ / _ \| __| |_| | |/ _ \/ __|
|
||||
/ /\/\ \ __/ | | | | | | (_) \__ \ / /_// (_) | |_| _| | | __/\__ \
|
||||
\/ \/\___|_| |_|_| |_|\___/|___/ /___,' \___/ \__|_| |_|_|\___||___/
|
||||
|
||||
@@ -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
|
||||
10
config/autostart/1password.desktop
Normal file
10
config/autostart/1password.desktop
Normal file
@@ -0,0 +1,10 @@
|
||||
[Desktop Entry]
|
||||
Name=1Password
|
||||
Exec=1password %U
|
||||
Terminal=false
|
||||
Type=Application
|
||||
Icon=1password
|
||||
StartupWMClass=1Password
|
||||
Comment=Password manager and secure wallet
|
||||
MimeType=x-scheme-handler/onepassword;
|
||||
Categories=Office;
|
||||
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
|
||||
@@ -0,0 +1,48 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Version=1.0
|
||||
Name=WhatsApp for Linux
|
||||
Name[cs]=WhatsApp pro Linux
|
||||
Name[de]=WhatsApp für Linux
|
||||
Name[es]=WhatsApp para Linux
|
||||
Name[fr]=WhatsApp pour Linux
|
||||
Name[hu]=WhatsApp Linuxra
|
||||
Name[it]=WhatsApp per Linux
|
||||
Name[ka]=WhatsApp-ი ლინუქსისთვის
|
||||
Name[nl]=WhatsApp voor Linux
|
||||
Name[pt-br]=WhatsApp para Linux
|
||||
Name[ru]=WhatsApp для Linux
|
||||
Name[si]=ලිනක්ස් සඳහා WhatsApp
|
||||
Name[tr]=Linux için WhatsApp
|
||||
GenericName=Unofficial WhatsApp client
|
||||
GenericName[cs]=Neoficiální klient WhatsApp
|
||||
GenericName[de]=Inoffizieller WhatsApp-Client
|
||||
GenericName[es]=Cliente no oficial de WhatsApp
|
||||
GenericName[fr]=Client non officiel de WhatsApp
|
||||
GenericName[hu]=Egy alternatív WhatsApp alkalmazás Linuxra
|
||||
GenericName[it]=Client WhatsApp non ufficiale
|
||||
GenericName[ka]=WhatsApp-ის არაოფიციალური კლიენტი
|
||||
GenericName[nl]=Niet-officiële WhatsApp-client
|
||||
GenericName[pt-br]=Cliente não oficial de WhatsApp
|
||||
GenericName[ru]=Неофициальный клиент WhatsApp
|
||||
GenericName[si]=නිල නොවන WhatsApp සේවාදායකයා
|
||||
GenericName[tr]=Resmi olmayan WhatsApp istemcisi
|
||||
Comment=An unofficial WhatsApp desktop application for Linux
|
||||
Comment[cs]=Neoficiální desktopová aplikace WhatsApp pro Linux
|
||||
Comment[de]=Eine inoffizieller WhatsApp Desktop App für Linux
|
||||
Comment[es]=Una aplicación no oficial de WhatsApp para Linux
|
||||
Comment[fr]=Une application non officielle de Whatsapp pour Linux
|
||||
Comment[hu]=Egy nem hivatalos WhatsApp asztali alkalmazás Linuxra
|
||||
Comment[it]=Un'applicazione WhatsApp non ufficiale per Linux
|
||||
Comment[ka]=WhatsApp-ის არაოფიციალური კლიენტი ლინუქსისთვის
|
||||
Comment[nl]=Een onofficiële WhatsApp-desktoptoepassing voor Linux
|
||||
Comment[pt-br]=Uma aplicação não oficial de WhatsApp para Linux
|
||||
Comment[ru]=Неофициальное приложение WhatsApp для Linux
|
||||
Comment[si]=ලිනක්ස් සඳහා නිල නොවන WhatsApp ඩෙස්ක්ටොප් යෙදුමකි
|
||||
Comment[tr]=Linux için resmi olmayan bir WhatsApp masaüstü uygulaması
|
||||
Exec=whatsapp-for-linux %u
|
||||
Icon=com.github.eneshecan.WhatsAppForLinux
|
||||
MimeType=x-scheme-handler/whatsapp
|
||||
StartupWMClass=whatsapp-for-linux
|
||||
Categories=GTK;GNOME;Network;
|
||||
Keywords=chat;im;messaging;messenger;sms;whatsapp;whatsapp-desktop;
|
||||
5
config/autostart/com.tomjwatson.Emote.desktop
Normal file
5
config/autostart/com.tomjwatson.Emote.desktop
Normal file
@@ -0,0 +1,5 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=com.tomjwatson.Emote
|
||||
Exec=flatpak run --command=emote com.tomjwatson.Emote
|
||||
X-Flatpak=com.tomjwatson.Emote
|
||||
14
config/autostart/dev.deedles.Trayscale.desktop
Normal file
14
config/autostart/dev.deedles.Trayscale.desktop
Normal file
@@ -0,0 +1,14 @@
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Type=Application
|
||||
|
||||
Name=Trayscale
|
||||
Comment=An unofficial GUI wrapper around the Tailscale CLI.
|
||||
Categories=System;GNOME;GTK;
|
||||
|
||||
Icon=dev.deedles.Trayscale
|
||||
Exec=trayscale
|
||||
Terminal=false
|
||||
|
||||
SingleMainWindow=true
|
||||
X-GNOME-UsesNotifications=true
|
||||
190
config/autostart/geary-autostart.desktop
Normal file
190
config/autostart/geary-autostart.desktop
Normal file
@@ -0,0 +1,190 @@
|
||||
[Desktop Entry]
|
||||
Name[be]=Geary
|
||||
Name[bs]=Geary
|
||||
Name[ca]=Geary
|
||||
Name[cs]=Geary
|
||||
Name[da]=Geary
|
||||
Name[de]=Geary
|
||||
Name[el]=Geary
|
||||
Name[en_GB]=Geary
|
||||
Name[eo]=Geary
|
||||
Name[es]=Geary
|
||||
Name[eu]=Geary
|
||||
Name[fa]=گیری
|
||||
Name[fi]=Geary
|
||||
Name[fr]=Geary
|
||||
Name[fur]=Geary
|
||||
Name[gl]=Geary
|
||||
Name[he]=Geary
|
||||
Name[hr]=Geary
|
||||
Name[hu]=Geary
|
||||
Name[id]=Geary
|
||||
Name[ie]=Geary
|
||||
Name[it]=Geary
|
||||
Name[ja]=Geary
|
||||
Name[ka]=Geary
|
||||
Name[kk]=Geary
|
||||
Name[lt]=Geary
|
||||
Name[nb]=Geary
|
||||
Name[nl]=Geary
|
||||
Name[oc]=Geary
|
||||
Name[pl]=Geary
|
||||
Name[pt]=Geary
|
||||
Name[pt_BR]=Geary
|
||||
Name[ro]=Geary
|
||||
Name[ru]=Geary
|
||||
Name[sk]=Geary
|
||||
Name[sl]=Geary
|
||||
Name[sr]=Гери
|
||||
Name[sr@latin]=Geri
|
||||
Name[sv]=Geary
|
||||
Name[tr]=Geary
|
||||
Name[uk]=Geary
|
||||
Name[zh_CN]=Geary
|
||||
Name[zh_TW]=Geary
|
||||
Name=Geary
|
||||
GenericName[be]=Электронная пошта
|
||||
GenericName[ca]=Correu electrònic
|
||||
GenericName[cs]=E-mail
|
||||
GenericName[da]=E-mail
|
||||
GenericName[de]=E-Mail
|
||||
GenericName[el]=Ηλεκτρονικό ταχυδρομείο
|
||||
GenericName[en_GB]=E-mail
|
||||
GenericName[eo]=Retpoŝto
|
||||
GenericName[es]=Correo-e
|
||||
GenericName[eu]=Posta elektronikoa
|
||||
GenericName[fa]=رایانامه
|
||||
GenericName[fi]=Sähköposti
|
||||
GenericName[fr]=Courriel
|
||||
GenericName[fur]=E-mail
|
||||
GenericName[gl]=Correo
|
||||
GenericName[he]=דוא״ל
|
||||
GenericName[hr]=E-pošta
|
||||
GenericName[hu]=E-mail
|
||||
GenericName[id]=Surel
|
||||
GenericName[ie]=Postage electronic
|
||||
GenericName[it]=Email
|
||||
GenericName[ja]=メール
|
||||
GenericName[ka]=ელფოტა
|
||||
GenericName[kk]=Эл. пошта
|
||||
GenericName[lt]=El. paštas
|
||||
GenericName[nb]=E-post
|
||||
GenericName[nl]=E-mail
|
||||
GenericName[oc]=Adreça
|
||||
GenericName[pl]=Poczta
|
||||
GenericName[pt]=Correio
|
||||
GenericName[pt_BR]=E-mail
|
||||
GenericName[ro]=Email
|
||||
GenericName[ru]=Эл. почта
|
||||
GenericName[sk]=Email
|
||||
GenericName[sl]=Elektronska pošta
|
||||
GenericName[sr]=Е-пошта
|
||||
GenericName[sr@latin]=E-pošta
|
||||
GenericName[sv]=E-post
|
||||
GenericName[tr]=E-posta
|
||||
GenericName[uk]=Електронна пошта
|
||||
GenericName[zh_CN]=电子邮件
|
||||
GenericName[zh_TW]=Email
|
||||
GenericName=Email
|
||||
Comment[ar]=ارسال و استقبال البريد الالكتروني
|
||||
Comment[be]=Адпраўленне і атрыманне электроннай пошты
|
||||
Comment[bs]=Šaljite i primajte e-poštu
|
||||
Comment[ca]=Envieu i rebeu correus electrònics
|
||||
Comment[cs]=Odesílejte a přijímejte e-maily
|
||||
Comment[da]=Send og modtag e-mail
|
||||
Comment[de]=E-Mails senden und empfangen
|
||||
Comment[el]=Αποστολή και λήψη ηλεκτρονικού ταχυδρομείου
|
||||
Comment[en_CA]=Send and receive e-mail
|
||||
Comment[en_GB]=Send and receive e-mail
|
||||
Comment[eo]=Sendi kaj ricevi retpoŝton
|
||||
Comment[es]=Envíe y reciba mensajes de correo electrónico
|
||||
Comment[et]=Send and receive email
|
||||
Comment[eu]=Bidali eta jaso mezuak
|
||||
Comment[fa]=فرستادن و گرفتن رایانامه
|
||||
Comment[fi]=Lähetä ja vastaanota sähköpostia
|
||||
Comment[fr]=Envoyer et recevoir des courriels
|
||||
Comment[fur]=Invie e ricêf e-mail
|
||||
Comment[gl]=Enviar e recibir correo
|
||||
Comment[he]=שליחה וקבלה של דוא״ל
|
||||
Comment[hr]=Primi i pošalji e-poštu
|
||||
Comment[hu]=E-mailek küldése és fogadása
|
||||
Comment[id]=Kirim dan terima surel
|
||||
Comment[ie]=Inviar un reciver e-postage
|
||||
Comment[it]=Invia e riceve email
|
||||
Comment[ja]=メールの送信と受信
|
||||
Comment[ka]=ელფოსტის გაგზავნა და მიღება
|
||||
Comment[kk]=Эл. поштаны жіберу және қабылдау
|
||||
Comment[km]=ផ្ញើនិងទទួលអ៊ីមែល
|
||||
Comment[lt]=Siųsti ir gauti paštą
|
||||
Comment[ms]=Hantar dan terima emel
|
||||
Comment[nb]=Send og motta e-post
|
||||
Comment[nl]=E-mail verzenden en ontvangen
|
||||
Comment[oc]=Mandar e recebre de corrièrs electronics
|
||||
Comment[pl]=Wysyłanie i odbieranie poczty
|
||||
Comment[pt]=Enviar e receber mensagens
|
||||
Comment[pt_BR]=Envie e receba e-mail
|
||||
Comment[ro]=Trimite și primește emailuri
|
||||
Comment[ru]=Отправка и получение эл. почты
|
||||
Comment[sk]=Odosiela a prijíma emaily
|
||||
Comment[sl]=Prejemanje in pošiljanje sporočil
|
||||
Comment[sr]=Шаље и прима е-пошту
|
||||
Comment[sr@latin]=Šalje i prima e-poštu
|
||||
Comment[sv]=Skicka och ta emot e-post
|
||||
Comment[tr]=E-posta gönder ve al
|
||||
Comment[uk]=Надіслати та одержати пошту
|
||||
Comment[zh_CN]=发送并接收电子邮件
|
||||
Comment[zh_TW]=寄送與收受郵件
|
||||
Comment=Send and receive email
|
||||
# Translators: These are desktop search terms. Do not translate semicolons, end line with a semicolon.
|
||||
Keywords[be]=Электронная пошта;E-mail;Mail;
|
||||
Keywords[bs]=Epošta;E-pošta;pošta;
|
||||
Keywords[ca]=Email;Correu electrònic;Correu;
|
||||
Keywords[cs]=email;e-mail;mail;pošta;e-pošta;zpráva;zprávy;
|
||||
Keywords[da]=Email;E-mail;Mail;Post;E-brev;
|
||||
Keywords[de]=Email;E-Mail;Mail;
|
||||
Keywords[el]=μήνυμα;ηλεκτρονικό ταχυδρομείο;αλληλογραφία;Email;E-mail;Mail;
|
||||
Keywords[en_GB]=Email;E-mail;Mail;
|
||||
Keywords[es]=email;e-mail;correo electrónico;correo-e;
|
||||
Keywords[eu]=posta;helb.elek;helb.el.;
|
||||
Keywords[fa]=Email;E-mail;Mail;رایانامه;ایمیل;میل;پست;
|
||||
Keywords[fi]=Email;E-mail;Mail;Sähköposti;Maili;posti;
|
||||
Keywords[fr]=Email;E-mail;Messagerie;Courriels;
|
||||
Keywords[fur]=Email;E-mail;Mail;Pueste;
|
||||
Keywords[gl]=Correo electrónico;Correo-e;Correo;
|
||||
Keywords[he]=דוא״ל;דואר אלקטרוני;דואר;מייל;אימייל;אי מייל;מיילים;הודעות;
|
||||
Keywords[hr]=Epošta;E-pošta;Pošta;
|
||||
Keywords[hu]=Email;E-mail;Levél;
|
||||
Keywords[id]=Surel;Surat;Email;E-mail;Mail;
|
||||
Keywords[it]=Email;E-mail;Mail;Posta;
|
||||
Keywords[ja]=Email;E-mail;Mail;メール;Eメール;E-メール;
|
||||
Keywords[ka]=Email;E-mail;Mail;ელფოსტა;
|
||||
Keywords[kk]=Email;E-mail;Mail;Эл. пошта;электрондық пошта;е-пошта;
|
||||
Keywords[lt]=El. paštas;E. paštas;Paštas;
|
||||
Keywords[ms]=Emel;E-mel;Mel;
|
||||
Keywords[nb]=E-post;E-brev;Post;
|
||||
Keywords[nl]=Email;E-mail;Mail;
|
||||
Keywords[oc]=Email;E-mail;Messatjariá;Corrièrs electronics;
|
||||
Keywords[pl]=Email;E-mail;Mail;Poczta;Skrzynka;Wiadomość;Wiadomości;mejl;majl;
|
||||
Keywords[pt]=Email;E-mail;Mail;Correio Eletrónico;Correio;
|
||||
Keywords[pt_BR]=Email;E-mail;email;emails;e-mail;Mail;Mensagem;Mensagens;mensagem;mensagens;Correio eletrônico;correio eletrônico;
|
||||
Keywords[ro]=Email;E-mail;Mail;Poștă;Electronică;
|
||||
Keywords[ru]=Email;E-mail;Mail;Почта;Эл.почта;
|
||||
Keywords[sk]=email;e-mail;pošta;
|
||||
Keywords[sl]=Email;elektronska pošta;epošta;e-pošta;pošta;sporočila;email;mail;geary;
|
||||
Keywords[sr]=пошта;е-пошта;ел. пошта;електронска пошта;
|
||||
Keywords[sr@latin]=pošta;e-pošta;el. pošta;elektronska pošta;
|
||||
Keywords[sv]=Email;E-mail;Mail;Mejl;Epost;E-Post;
|
||||
Keywords[tr]=Eposta;E-posta;Posta;E Posta;Elektronik Posta;Mektup;
|
||||
Keywords[uk]=Email;E-mail;Mail;Пошта;Лист;надіслати;
|
||||
Keywords[zh_CN]=Email;E-mail;Mail;电子邮件;电子邮箱;电子信箱;邮件;邮箱;信箱;
|
||||
Keywords[zh_TW]=Email;E-mail;Mail;電子郵件;電郵;郵件;信件;收信;寄信;
|
||||
Keywords=Email;E-mail;Mail;
|
||||
# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
|
||||
Icon=org.gnome.Geary
|
||||
TryExec=geary
|
||||
Exec=geary --gapplication-service
|
||||
Type=Application
|
||||
Terminal=false
|
||||
Categories=GNOME;GTK;Network;Email;
|
||||
StartupNotify=true
|
||||
NoDisplay=true
|
||||
22
config/autostart/org.telegram.desktop.desktop
Normal file
22
config/autostart/org.telegram.desktop.desktop
Normal file
@@ -0,0 +1,22 @@
|
||||
[Desktop Entry]
|
||||
Name=Telegram Desktop
|
||||
Comment=Official desktop version of Telegram messaging app
|
||||
TryExec=telegram-desktop
|
||||
Exec=telegram-desktop -- %u
|
||||
Icon=telegram
|
||||
Terminal=false
|
||||
StartupWMClass=TelegramDesktop
|
||||
Type=Application
|
||||
Categories=Chat;Network;InstantMessaging;Qt;
|
||||
MimeType=x-scheme-handler/tg;
|
||||
Keywords=tg;chat;im;messaging;messenger;sms;tdesktop;
|
||||
Actions=quit;
|
||||
DBusActivatable=true
|
||||
SingleMainWindow=true
|
||||
X-GNOME-UsesNotifications=true
|
||||
X-GNOME-SingleWindow=true
|
||||
|
||||
[Desktop Action quit]
|
||||
Exec=telegram-desktop -quit
|
||||
Name=Quit Telegram
|
||||
Icon=application-exit
|
||||
11
config/autostart/spotify.desktop
Normal file
11
config/autostart/spotify.desktop
Normal file
@@ -0,0 +1,11 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Name=Spotify
|
||||
GenericName=Music Player
|
||||
Icon=spotify-client
|
||||
TryExec=spotify
|
||||
Exec=spotify %U
|
||||
Terminal=false
|
||||
MimeType=x-scheme-handler/spotify;
|
||||
Categories=Audio;Music;Player;AudioVideo;
|
||||
StartupWMClass=spotify
|
||||
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
|
||||
@@ -13,11 +13,24 @@ config:
|
||||
# Gitconfig
|
||||
gitconfig:
|
||||
sources:
|
||||
macos: ~/dotfiles/config/gitconfig.macos
|
||||
linux: ~/dotfiles/config/gitconfig.linux
|
||||
mennos-server: ~/dotfiles/config/gitconfig.mennos-server
|
||||
mennos-desktop: ~/dotfiles/config/gitconfig.linux
|
||||
mennos-gamingpc: ~/dotfiles/config/gitconfig.linux
|
||||
mennos-laptop: ~/dotfiles/config/gitconfig.linux
|
||||
homeserver-pc: ~/dotfiles/config/gitconfig.linux
|
||||
wsl: ~/dotfiles/config/gitconfig.wsl
|
||||
target: ~/.gitconfig
|
||||
|
||||
# Yubico u2f keys
|
||||
u2f:
|
||||
sources:
|
||||
mennos-laptop: ~/dotfiles/secrets/yubico/u2f.work.keys
|
||||
mennos-server: ~/dotfiles/secrets/yubico/u2f.personal.keys
|
||||
mennos-gamingpc: ~/dotfiles/secrets/yubico/u2f.personal.keys
|
||||
homeserver-pc: ~/dotfiles/secrets/yubico/u2f.personal.keys
|
||||
target: ~/.config/Yubico/u2f_keys
|
||||
chmod: 644
|
||||
|
||||
# VSCode settings
|
||||
vscode:
|
||||
source: ~/dotfiles/vscode/settings.json
|
||||
@@ -35,49 +48,21 @@ config:
|
||||
ssh_authorized_keys:
|
||||
sources:
|
||||
mennos-laptop: ~/dotfiles/config/ssh/authorized_keys/mennos-laptop
|
||||
mennos-desktop: ~/dotfiles/config/ssh/authorized_keys/mennos-desktop
|
||||
mennos-server: ~/dotfiles/config/ssh/authorized_keys/mennos-server
|
||||
mennos-gamingpc: ~/dotfiles/config/ssh/authorized_keys/mennos-gamingpc
|
||||
homeserver-pc: ~/dotfiles/config/ssh/authorized_keys/homeserver-pc
|
||||
target: ~/.ssh/authorized_keys
|
||||
chmod: 600
|
||||
|
||||
# bashrc
|
||||
bashrc:
|
||||
source: ~/dotfiles/.bashrc
|
||||
target: ~/.bashrc
|
||||
# Ghostty config
|
||||
ghostty:
|
||||
source: ~/dotfiles/config/ghostty.conf
|
||||
target: ~/.config/ghostty/config
|
||||
|
||||
# Starship config
|
||||
starship:
|
||||
source: ~/dotfiles/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
|
||||
# Note: Uninstalling packages is not supported, if you remove a package from this list it will not be removed from the system!
|
||||
@@ -85,92 +70,7 @@ config:
|
||||
packages:
|
||||
# Supply a git_url and binary to install from source
|
||||
cargo:
|
||||
rip2:
|
||||
fd-find:
|
||||
|
||||
pipx:
|
||||
- gnome-extensions-cli
|
||||
- bauh
|
||||
- shyaml
|
||||
|
||||
# No longer supported:
|
||||
# apt:
|
||||
# repos:
|
||||
# apps:
|
||||
# - bash
|
||||
# - bash-completion
|
||||
# - solaar
|
||||
# - git
|
||||
# - curl
|
||||
# - wget
|
||||
# - gpg
|
||||
# - nala
|
||||
# - ca-certificates
|
||||
# - gnupg-agent
|
||||
# - software-properties-common
|
||||
# - apt-transport-https
|
||||
# - vim
|
||||
# - sl
|
||||
# - jq
|
||||
# - gh
|
||||
# - libglvnd-dev
|
||||
# - libwayland-dev
|
||||
# - libseat-dev
|
||||
# - libxkbcommon-dev
|
||||
# - libinput-dev
|
||||
# - udev
|
||||
# - dbus
|
||||
# - liblzma-dev
|
||||
# - libreadline-dev
|
||||
# - libdbus-1-dev
|
||||
# - libsystemd-dev
|
||||
# - libpixman-1-dev
|
||||
# - libssl-dev
|
||||
# - libflatpak-dev
|
||||
# - libpulse-dev
|
||||
# - libexpat1-dev
|
||||
# - libfontconfig-dev
|
||||
# - libfreetype-dev
|
||||
# - mold
|
||||
# - clang
|
||||
# - libgtk-3-dev
|
||||
# - gcc
|
||||
# - gcc-mingw-w64
|
||||
# - btop
|
||||
# - htop
|
||||
# - libgbm-dev
|
||||
# - libclang-dev
|
||||
# - libsecret-1-dev
|
||||
# - libpipewire-0.3-dev
|
||||
# - libpam0g-dev
|
||||
# - openssh-server
|
||||
# - build-essential
|
||||
# - flatpak
|
||||
# - meson
|
||||
# - pipx
|
||||
# - python3-nautilus
|
||||
# - gettext
|
||||
# - fzf
|
||||
# - fastfetch
|
||||
# - screenfetch
|
||||
# - screen
|
||||
# - code
|
||||
# - 1password
|
||||
# - 1password-cli
|
||||
# - flameshot
|
||||
# - cmake
|
||||
# - libsqlite3-dev
|
||||
# - libudev-dev
|
||||
# - libncursesw5-dev
|
||||
# - libgdbm-dev
|
||||
# - libc6-dev
|
||||
# - libbz2-dev
|
||||
# - libffi-dev
|
||||
# - tk-dev
|
||||
# - cmatrix
|
||||
# - toilet
|
||||
# - oneko
|
||||
# - libaa-bin
|
||||
# - libcurses-perl
|
||||
# - xdotool
|
||||
# - xclip
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[Flatpak Ref]
|
||||
Name=io.github.ungoogled_software.ungoogled_chromium
|
||||
Name=com.endlessnetwork.aqueducts
|
||||
Branch=stable
|
||||
Title=io.github.ungoogled_software.ungoogled_chromium from flathub
|
||||
Title=com.endlessnetwork.aqueducts from flathub
|
||||
IsRuntime=false
|
||||
Url=https://dl.flathub.org/repo/
|
||||
SuggestRemoteName=flathub
|
||||
10
config/flatpaks/com.jeffser.Alpaca.flatpakref
Normal file
10
config/flatpaks/com.jeffser.Alpaca.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
||||
[Flatpak Ref]
|
||||
Name=com.jeffser.Alpaca
|
||||
Branch=stable
|
||||
Title=com.jeffser.Alpaca 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/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=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/com.mardojai.ForgeSparks.flatpakref
Normal file
10
config/flatpaks/com.mardojai.ForgeSparks.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
||||
[Flatpak Ref]
|
||||
Name=com.mardojai.ForgeSparks
|
||||
Branch=stable
|
||||
Title=com.mardojai.ForgeSparks 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/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=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/com.tomjwatson.Emote.flatpakref
Normal file
10
config/flatpaks/com.tomjwatson.Emote.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
||||
[Flatpak Ref]
|
||||
Name=com.tomjwatson.Emote
|
||||
Branch=stable
|
||||
Title=com.tomjwatson.Emote 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/dev.bragefuglseth.Keypunch.flatpakref
Normal file
10
config/flatpaks/dev.bragefuglseth.Keypunch.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
||||
[Flatpak Ref]
|
||||
Name=dev.bragefuglseth.Keypunch
|
||||
Branch=stable
|
||||
Title=dev.bragefuglseth.Keypunch 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
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
[Flatpak Ref]
|
||||
Name=net.openra.OpenRA
|
||||
Name=io.ente.auth
|
||||
Branch=stable
|
||||
Title=net.openra.OpenRA from flathub
|
||||
Title=io.ente.auth from flathub
|
||||
IsRuntime=false
|
||||
Url=https://dl.flathub.org/repo/
|
||||
SuggestRemoteName=flathub
|
||||
10
config/flatpaks/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=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/io.github.nokse22.Exhibit.flatpakref
Normal file
10
config/flatpaks/io.github.nokse22.Exhibit.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
||||
[Flatpak Ref]
|
||||
Name=io.github.nokse22.Exhibit
|
||||
Branch=stable
|
||||
Title=io.github.nokse22.Exhibit 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=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
|
||||
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
10
config/flatpaks/tv.plex.PlexDesktop.flatpakref
Normal file
10
config/flatpaks/tv.plex.PlexDesktop.flatpakref
Normal file
@@ -0,0 +1,10 @@
|
||||
[Flatpak Ref]
|
||||
Name=tv.plex.PlexDesktop
|
||||
Branch=stable
|
||||
Title=tv.plex.PlexDesktop from flathub
|
||||
IsRuntime=false
|
||||
Url=https://dl.flathub.org/repo/
|
||||
SuggestRemoteName=flathub
|
||||
GPGKey=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
|
||||
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
25
config/ghostty.conf
Normal file
25
config/ghostty.conf
Normal file
@@ -0,0 +1,25 @@
|
||||
# Theme
|
||||
# Try new themes with: `ghostty +list-themes`
|
||||
theme = dark:Adwaita Dark,light:Adwaita
|
||||
|
||||
# Keybinds
|
||||
keybind = ctrl+shift+k=clear_screen
|
||||
|
||||
# Font size keybinds
|
||||
keybind = ctrl+zero=reset_font_size
|
||||
keybind = ctrl+kp_add=increase_font_size:1
|
||||
keybind = ctrl+kp_subtract=decrease_font_size:1
|
||||
|
||||
# Keybinds for moving windows
|
||||
keybind = alt+right=next_tab
|
||||
keybind = alt+left=previous_tab
|
||||
keybind = shift+alt+left=move_tab:-1
|
||||
keybind = shift+alt+right=move_tab:1
|
||||
|
||||
# Window keybinds
|
||||
keybind = ctrl+q=close_window
|
||||
keybind = ctrl+shift+Q=close_all_windows
|
||||
|
||||
|
||||
# Shell integration
|
||||
shell-integration = bash
|
||||
@@ -6,9 +6,6 @@
|
||||
[gpg]
|
||||
format = ssh
|
||||
|
||||
[gpg "ssh"]
|
||||
program = "op-ssh-sign"
|
||||
|
||||
[commit]
|
||||
gpgsign = true
|
||||
|
||||
@@ -23,3 +20,5 @@
|
||||
required = true
|
||||
clean = git-lfs clean -- %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
|
||||
@@ -1,31 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# Set the color scheme to dark
|
||||
"org/gnome/desktop/interface".color-scheme = "prefer-dark";
|
||||
|
||||
# Pinned apps
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = [
|
||||
"io.github.zen_browser.zen.desktop"
|
||||
"code.desktop"
|
||||
"spotify.desktop"
|
||||
"vesktop.desktop"
|
||||
"kitty.desktop"
|
||||
"org.gnome.Geary.desktop"
|
||||
];
|
||||
};
|
||||
|
||||
# Set wallpaper
|
||||
"org/gnome/desktop/background" = {
|
||||
picture-uri-dark = "file:///${config.home.homeDirectory}/dotfiles/secrets/wp/9.jpg";
|
||||
picture-uri = "file:///${config.home.homeDirectory}/dotfiles/secrets/wp/9.jpg";
|
||||
picture-options = "zoom";
|
||||
primary-color = "#000000";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
225
config/home-manager/flake.lock
generated
Normal file
225
config/home-manager/flake.lock
generated
Normal file
@@ -0,0 +1,225 @@
|
||||
{
|
||||
"nodes": {
|
||||
"flake-compat": {
|
||||
"flake": false,
|
||||
"locked": {
|
||||
"lastModified": 1733328505,
|
||||
"narHash": "sha256-NeCCThCEP3eCl2l/+27kNNK7QrwZB1IJCrXfrbv5oqU=",
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"rev": "ff81ac966bb2cae68946d5ed5fc4994f96d0ffec",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "edolstra",
|
||||
"repo": "flake-compat",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"flake-utils": {
|
||||
"inputs": {
|
||||
"systems": "systems"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1731533236,
|
||||
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "numtide",
|
||||
"repo": "flake-utils",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"ghostty": {
|
||||
"inputs": {
|
||||
"flake-compat": "flake-compat",
|
||||
"flake-utils": "flake-utils",
|
||||
"nixpkgs-stable": "nixpkgs-stable",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
||||
"zig": "zig",
|
||||
"zig2nix": "zig2nix"
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1740954062,
|
||||
"narHash": "sha256-VVsSwi1sTVCL0fijNHqw1hv/546acgxxrTAChl/K254=",
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"rev": "ee8ae196ee0fad3824c7ae9eac947f2128b4ae4f",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "ghostty-org",
|
||||
"repo": "ghostty",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"home-manager": {
|
||||
"inputs": {
|
||||
"nixpkgs": [
|
||||
"nixpkgs"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1739757849,
|
||||
"narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=",
|
||||
"owner": "nix-community",
|
||||
"repo": "home-manager",
|
||||
"rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-community",
|
||||
"ref": "release-24.11",
|
||||
"repo": "home-manager",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1740932899,
|
||||
"narHash": "sha256-F0qDu2egq18M3edJwEOAE+D+VQ+yESK6YWPRQBfOqq8=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "1546c45c538633ae40b93e2d14e0bb6fd8f13347",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1738255539,
|
||||
"narHash": "sha256-hP2eOqhIO/OILW+3moNWO4GtdJFYCqAe9yJZgvlCoDQ=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "c3511a3b53b482aa7547c9d1626fd7310c1de1c5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "release-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1738136902,
|
||||
"narHash": "sha256-pUvLijVGARw4u793APze3j6mU1Zwdtz7hGkGGkD87qw=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9a5db3142ce450045840cc8d832b13b8a2018e0c",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixpkgs-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable_2": {
|
||||
"locked": {
|
||||
"lastModified": 1741010256,
|
||||
"narHash": "sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "ba487dbc9d04e0634c64e3b1f0d25839a0a68246",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"ghostty": "ghostty",
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable_2"
|
||||
}
|
||||
},
|
||||
"systems": {
|
||||
"locked": {
|
||||
"lastModified": 1681028828,
|
||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nix-systems",
|
||||
"repo": "default",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zig": {
|
||||
"inputs": {
|
||||
"flake-compat": [
|
||||
"ghostty"
|
||||
],
|
||||
"flake-utils": [
|
||||
"ghostty",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"ghostty",
|
||||
"nixpkgs-stable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1738239110,
|
||||
"narHash": "sha256-Y5i9mQ++dyIQr+zEPNy+KIbc5wjPmfllBrag3cHZgcE=",
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"rev": "1a8fb6f3a04724519436355564b95fce5e272504",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "mitchellh",
|
||||
"repo": "zig-overlay",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"zig2nix": {
|
||||
"inputs": {
|
||||
"flake-utils": [
|
||||
"ghostty",
|
||||
"flake-utils"
|
||||
],
|
||||
"nixpkgs": [
|
||||
"ghostty",
|
||||
"nixpkgs-stable"
|
||||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1738263917,
|
||||
"narHash": "sha256-j/3fwe2pEOquHabP/puljOKwAZFjIE9gXZqA91sC48M=",
|
||||
"owner": "jcollie",
|
||||
"repo": "zig2nix",
|
||||
"rev": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "jcollie",
|
||||
"ref": "c311d8e77a6ee0d995f40a6e10a89a3a4ab04f9a",
|
||||
"repo": "zig2nix",
|
||||
"type": "github"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
||||
88
config/home-manager/flake.nix
Normal file
88
config/home-manager/flake.nix
Normal file
@@ -0,0 +1,88 @@
|
||||
{
|
||||
description = "menno's dotfiles";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager/release-24.11";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
ghostty.url = "github:ghostty-org/ghostty";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
nixpkgs,
|
||||
nixpkgs-unstable,
|
||||
home-manager,
|
||||
ghostty,
|
||||
}:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
pkgs-unstable = import nixpkgs-unstable {
|
||||
inherit system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
homeConfigurations = {
|
||||
"mennos-desktop" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
pkgs
|
||||
pkgs-unstable
|
||||
ghostty
|
||||
;
|
||||
isServer = false;
|
||||
hostname = "mennos-gamingpc";
|
||||
};
|
||||
};
|
||||
|
||||
"mennos-server" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
pkgs
|
||||
pkgs-unstable
|
||||
;
|
||||
isServer = true;
|
||||
hostname = "mennos-server";
|
||||
};
|
||||
};
|
||||
|
||||
"mennos-laptop" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
pkgs
|
||||
pkgs-unstable
|
||||
ghostty
|
||||
;
|
||||
isServer = false;
|
||||
hostname = "mennos-laptop";
|
||||
};
|
||||
};
|
||||
|
||||
"homeserver-pc" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = {
|
||||
inherit pkgs pkgs-unstable;
|
||||
isServer = true;
|
||||
hostname = "homeserver-pc";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,176 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs.gnomeExtensions; [
|
||||
# lilypad@shendrew.github.io
|
||||
# tailscale@joaophi.github.com
|
||||
forge
|
||||
gsconnect
|
||||
blur-my-shell
|
||||
rounded-window-corners
|
||||
weather-oclock
|
||||
space-bar
|
||||
show-desktop-button
|
||||
gtk4-desktop-icons-ng-ding
|
||||
logo-menu
|
||||
media-controls
|
||||
burn-my-windows
|
||||
coverflow-alt-tab
|
||||
dash-to-dock
|
||||
hide-top-bar
|
||||
appindicator
|
||||
];
|
||||
|
||||
# Copy burn-my-windows profile to user config
|
||||
home.file.".config/burn-my-windows/profiles/default.conf".text = ''
|
||||
[burn-my-windows-profile]
|
||||
fire-enable-effect=false
|
||||
tv-glitch-enable-effect=true
|
||||
tv-glitch-animation-time=250
|
||||
'';
|
||||
|
||||
dconf = {
|
||||
settings = {
|
||||
# To get an ID of an extension, run `gnome-extensions list`
|
||||
"org/gnome/shell" = {
|
||||
disable-user-extensions = false;
|
||||
enabled-extensions = [
|
||||
# "tilingshell@ferrarodomenico.com"
|
||||
"forge@jmmaranan.com"
|
||||
"gsconnect@andyholmes.github.io"
|
||||
"blur-my-shell@aunetx"
|
||||
"tailscale@joaophi.github.com"
|
||||
"easy_docker_containers@red.software.systems"
|
||||
"weatheroclock@CleoMenezesJr.github.io"
|
||||
"space-bar@luchrioh"
|
||||
"show-desktop-button@amivaleo"
|
||||
"gtk4-ding@smedius.gitlab.com"
|
||||
"logomenu@aryan_k"
|
||||
"mediacontrols@cliffniff.github.com"
|
||||
"burn-my-windows@schneegans.github.com"
|
||||
"CoverflowAltTab@palatis.blogspot.com"
|
||||
"dash-to-dock@micxgx.gmail.com"
|
||||
"hidetopbar@mathieu.bidon.ca"
|
||||
"gnome-shell-extension-appindicator"
|
||||
"lilypad@shendrew.github.io"
|
||||
"appindicatorsupport@rgcjonas.gmail.com"
|
||||
];
|
||||
};
|
||||
|
||||
# Configure dash-to-dock
|
||||
"org/gnome/shell/extensions/dash-to-dock" = {
|
||||
apply-custom-theme = false;
|
||||
apply-glossy-effect = false;
|
||||
autohide-in-fullscreen = true;
|
||||
background-opacity = 0.8;
|
||||
custom-theme-customize-running-dots = false;
|
||||
custom-theme-running-dots-border-color = "rgb(255,255,255)";
|
||||
custom-theme-running-dots-color = "rgb(255,255,255)";
|
||||
dash-max-icon-size = 48;
|
||||
dock-fixed = false;
|
||||
dock-position = "BOTTOM";
|
||||
extend-height = 0;
|
||||
height-fraction = 0.9;
|
||||
intellihide = true;
|
||||
intellihide-mode = "ALL_WINDOWS";
|
||||
multi-monitor = true;
|
||||
preferred-monitor = -2;
|
||||
preferred-monitor-by-connector = "DP-2";
|
||||
running-indicator-dominant-color = true;
|
||||
running-indicator-style = "DOTS";
|
||||
show-apps-at-top = true;
|
||||
show-favorites = true;
|
||||
show-mounts = false;
|
||||
show-trash = true;
|
||||
transparency = 0.75;
|
||||
transparency-mode = "FIXED";
|
||||
unity-backlit-items = false;
|
||||
};
|
||||
|
||||
# Configure logo-menu
|
||||
"org/gnome/shell/extensions/Logo-menu" = {
|
||||
hide-icon-shadow = false;
|
||||
menu-button-extensions-app = "org.gnome.Extensions.desktop";
|
||||
menu-button-icon-image = 23;
|
||||
menu-button-icon-size = 24;
|
||||
menu-button-system-monitor = "missioncenter";
|
||||
menu-button-terminal = "kitty";
|
||||
show-power-options = false;
|
||||
symbolic-icon = true;
|
||||
use-custom-icon = false;
|
||||
};
|
||||
|
||||
# Configure covereflow-alt-tab
|
||||
"org/gnome/shell/extensions/coverflowalttab" = {
|
||||
animation-time = 0.2;
|
||||
easing-function = "ease-out-quart";
|
||||
icon-has-shadow = true;
|
||||
icon-style = "Overlay";
|
||||
invert-swipes = false;
|
||||
position = "Top";
|
||||
switcher-looping-method = "Flip Stack";
|
||||
switcher-style = "Coverflow";
|
||||
};
|
||||
|
||||
# Configure burn-my-windows
|
||||
"org/gnome/shell/extensions/burn-my-windows" = {
|
||||
active-profile = "${config.home.homeDirectory}/.config/burn-my-windows/profiles/default.conf";
|
||||
};
|
||||
|
||||
# Configure blur-my-shell
|
||||
"org/gnome/shell/extensions/blur-my-shell" = {
|
||||
brightness = 0.75;
|
||||
noise-amount = 0;
|
||||
};
|
||||
|
||||
# Configure forge
|
||||
"org/gnome/shell/extensions/forge" = {
|
||||
move-pointer-focus-enabled = false;
|
||||
stacked-tiling-mode-enabled = true;
|
||||
tabbed-tiling-mode-enabled = true;
|
||||
tiling-mode-enabled = true;
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/forge/keybindings" = {
|
||||
con-split-horizontal = [ "<Super>z" ];
|
||||
con-split-layout-toggle = [ "<Super>g" ];
|
||||
con-split-vertical = [ "<Super>v" ];
|
||||
con-stacked-layout-toggle = [ "<Shift><Super>s" ];
|
||||
con-tabbed-layout-toggle = [ "<Shift><Super>t" ];
|
||||
con-tabbed-showtab-decoration-toggle = [ "<Control><Alt>y" ];
|
||||
focus-border-toggle = [ "<Super>x" ];
|
||||
prefs-tiling-toggle = [ "<Super>w" ];
|
||||
window-focus-down = [ "<Super>j" ];
|
||||
window-focus-left = [ "<Super>h" ];
|
||||
window-focus-right = [ "<Super>l" ];
|
||||
window-focus-up = [ "<Super>k" ];
|
||||
window-gap-size-decrease = [ "<Control><Super>minus" ];
|
||||
window-gap-size-increase = [ "<Control><Super>plus" ];
|
||||
window-move-down = [ "<Shift><Super>j" ];
|
||||
window-move-left = [ "<Shift><Super>h" ];
|
||||
window-move-right = [ "<Shift><Super>l" ];
|
||||
window-move-up = [ "<Shift><Super>k" ];
|
||||
window-resize-bottom-decrease = [ "<Shift><Control><Super>i" ];
|
||||
window-resize-bottom-increase = [ "<Control><Super>u" ];
|
||||
window-resize-left-decrease = [ "<Shift><Control><Super>o" ];
|
||||
window-resize-left-increase = [ "<Control><Super>y" ];
|
||||
window-resize-right-decrease = [ "<Shift><Control><Super>y" ];
|
||||
window-resize-right-increase = [ "<Control><Super>o" ];
|
||||
window-resize-top-decrease = [ "<Shift><Control><Super>u" ];
|
||||
window-resize-top-increase = [ "<Control><Super>i" ];
|
||||
window-snap-center = [ "<Control><Alt>c" ];
|
||||
window-snap-one-third-left = [ "<Control><Alt>d" ];
|
||||
window-snap-one-third-right = [ "<Control><Alt>g" ];
|
||||
window-snap-two-third-left = [ "<Control><Alt>e" ];
|
||||
window-snap-two-third-right = [ ];
|
||||
window-swap-down = [ "<Control><Super>j" ];
|
||||
window-swap-last-active = [ "<Super>Return" ];
|
||||
window-swap-left = [ "<Control><Super>h" ];
|
||||
window-swap-right = [ "<Control><Super>l" ];
|
||||
window-swap-up = [ "<Control><Super>k" ];
|
||||
window-toggle-always-float = [ "<Shift><Super>c" ];
|
||||
window-toggle-float = [ "<Super>c" ];
|
||||
workspace-active-tile-toggle = [ "<Shift><Super>w" ];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,119 +1,38 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./packages/vscode.nix
|
||||
./packages/go.nix
|
||||
./packages/kitty.nix
|
||||
./packages/zed-editor.nix
|
||||
./fonts.nix
|
||||
./gnome-extensions.nix
|
||||
./dconf.nix
|
||||
./keyboard-shortcuts.nix
|
||||
./virtualization.nix
|
||||
./packages.nix
|
||||
];
|
||||
config,
|
||||
isServer ? false,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
programs.home-manager.enable = true;
|
||||
|
||||
nixpkgs.config = {
|
||||
allowUnfree = true;
|
||||
allowUnfreePredicate = pkg: true;
|
||||
};
|
||||
|
||||
home.username = "menno";
|
||||
home.homeDirectory = "/home/menno";
|
||||
home.stateVersion = "24.05";
|
||||
imports =
|
||||
[ ./packages/common/default.nix ]
|
||||
++ (
|
||||
if isServer then
|
||||
[
|
||||
./packages/server/default.nix
|
||||
./server/default.nix
|
||||
]
|
||||
else
|
||||
[
|
||||
./packages/workstation/default.nix
|
||||
./workstation/default.nix
|
||||
]
|
||||
);
|
||||
|
||||
# Default applications
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
# Zen Browser
|
||||
"application/xhtml+xml" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"text/html" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"x-scheme-handler/http" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
"x-scheme-handler/https" = [ "io.github.zen_browser.zen.desktop" ];
|
||||
|
||||
# Geary
|
||||
"x-scheme-handler/mailto" = [ "org.gnome.Geary.desktop" ];
|
||||
|
||||
# Loupe (Image Viewer)
|
||||
"image/jpeg" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/png" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/gif" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/webp" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/tiff" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-tga" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd-ms.dds" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-dds" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/bmp" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd.microsoft.icon" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd.radiance" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-exr" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-bitmap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-graymap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-pixmap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-anymap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-qoi" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/svg+xml" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/svg+xml-compressed" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/avif" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/heic" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/jxl" = [ "org.gnome.Loupe.desktop" ];
|
||||
|
||||
# VLC (Video Player)
|
||||
"video/x-ogm+ogg" = [ "vlc.desktop" ];
|
||||
"video/3gp" = [ "vlc.desktop" ];
|
||||
"video/3gpp" = [ "vlc.desktop" ];
|
||||
"video/3gpp2" = [ "vlc.desktop" ];
|
||||
"video/dv" = [ "vlc.desktop" ];
|
||||
"video/divx" = [ "vlc.desktop" ];
|
||||
"video/fli" = [ "vlc.desktop" ];
|
||||
"video/flv" = [ "vlc.desktop" ];
|
||||
"video/mp2t" = [ "vlc.desktop" ];
|
||||
"video/mp4" = [ "vlc.desktop" ];
|
||||
"video/mp4v-es" = [ "vlc.desktop" ];
|
||||
"video/mpeg" = [ "vlc.desktop" ];
|
||||
"video/mpeg-system" = [ "vlc.desktop" ];
|
||||
"video/msvideo" = [ "vlc.desktop" ];
|
||||
"video/ogg" = [ "vlc.desktop" ];
|
||||
"video/quicktime" = [ "vlc.desktop" ];
|
||||
"video/vnd.divx" = [ "vlc.desktop" ];
|
||||
"video/vnd.mpegurl" = [ "vlc.desktop" ];
|
||||
"video/vnd.rn-realvideo" = [ "vlc.desktop" ];
|
||||
"video/webm" = [ "vlc.desktop" ];
|
||||
"video/x-anim" = [ "vlc.desktop" ];
|
||||
"video/x-avi" = [ "vlc.desktop" ];
|
||||
"video/x-flc" = [ "vlc.desktop" ];
|
||||
"video/x-fli" = [ "vlc.desktop" ];
|
||||
"video/x-flv" = [ "vlc.desktop" ];
|
||||
"video/x-m4v" = [ "vlc.desktop" ];
|
||||
"video/x-matroska" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg2" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asf" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asf-plugin" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asx" = [ "vlc.desktop" ];
|
||||
"video/x-msvideo" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wm" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wmv" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wmx" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wvx" = [ "vlc.desktop" ];
|
||||
"video/x-nsv" = [ "vlc.desktop" ];
|
||||
"video/x-theora" = [ "vlc.desktop" ];
|
||||
"video/x-theora+ogg" = [ "vlc.desktop" ];
|
||||
"video/x-ogm" = [ "vlc.desktop" ];
|
||||
"video/avi" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg-system" = [ "vlc.desktop" ];
|
||||
|
||||
# Totem (for those few formats that default to it)
|
||||
"video/vivo" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/vnd.vivo" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-flic" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-mjpeg" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-totem-stream" = [ "org.gnome.Totem.desktop" ];
|
||||
home = {
|
||||
username = "menno";
|
||||
homeDirectory = "/home/menno";
|
||||
stateVersion = "24.11";
|
||||
sessionVariables = {
|
||||
PATH = "${config.home.homeDirectory}/go/bin:$PATH";
|
||||
};
|
||||
};
|
||||
|
||||
home.sessionVariables = {
|
||||
PATH = "${config.home.homeDirectory}/go/bin:$PATH";
|
||||
};
|
||||
}
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# General packages
|
||||
git
|
||||
gnupg
|
||||
gh
|
||||
nixfmt-rfc-style
|
||||
wget
|
||||
fastfetch
|
||||
|
||||
# Package management
|
||||
pipx
|
||||
devbox
|
||||
|
||||
# Development SDKs/Toolkits
|
||||
gcc
|
||||
pkg-config
|
||||
gnumake
|
||||
stdenv.cc
|
||||
rustc
|
||||
cargo
|
||||
cargo-edit
|
||||
cargo-watch
|
||||
cargo-audit
|
||||
cargo-expand
|
||||
cargo-tarpaulin
|
||||
pyenv
|
||||
act # GitHub Actions CLI
|
||||
|
||||
# File and directory operations
|
||||
eza # Modern ls
|
||||
bat # Modern cat
|
||||
zoxide # Smarter cd command
|
||||
broot # Interactive directory navigator
|
||||
du-dust # Modern du
|
||||
duf # Modern df
|
||||
zip
|
||||
unzip
|
||||
|
||||
# Search and text processing
|
||||
ripgrep # Modern grep
|
||||
sd # Modern sed
|
||||
choose # Modern cut
|
||||
jq # JSON processor
|
||||
yq # YAML processor
|
||||
xsv # CSV processor
|
||||
|
||||
# System monitoring and process management
|
||||
procs # Modern ps
|
||||
bottom # Modern top/htop
|
||||
hyperfine # Benchmarking tool
|
||||
bandwhich # Network utilization tool
|
||||
doggo # Modern dig
|
||||
gping # Ping with graph
|
||||
htop # Interactive process viewer
|
||||
|
||||
# Development utilities
|
||||
delta # Better git diff
|
||||
difftastic # Structural diff tool
|
||||
mcfly # Better shell history
|
||||
fzf # Fuzzy finder
|
||||
tokei # Code statistics
|
||||
tealdeer # Modern tldr client
|
||||
lazygit # Terminal UI for git
|
||||
|
||||
# Shell and terminal
|
||||
starship # Cross-shell prompt
|
||||
zellij # Modern terminal multiplexer
|
||||
nushell # Modern shell
|
||||
screen # Terminal multiplexer
|
||||
|
||||
# File viewers and processors
|
||||
hexyl # Modern hexdump
|
||||
chafa # Terminal image viewer
|
||||
glow # Markdown renderer
|
||||
|
||||
# Editors
|
||||
neovim
|
||||
nano
|
||||
micro
|
||||
|
||||
# Lolz
|
||||
fortune
|
||||
cowsay
|
||||
cmatrix
|
||||
figlet
|
||||
|
||||
# GUI Applications
|
||||
## Utilities
|
||||
mission-center
|
||||
flameshot
|
||||
gnome.gnome-tweaks
|
||||
pinta
|
||||
bottles
|
||||
trayscale
|
||||
|
||||
## Chat Apps
|
||||
telegram-desktop
|
||||
betterdiscordctl
|
||||
vesktop
|
||||
whatsapp-for-linux
|
||||
signal-desktop
|
||||
|
||||
## Multimedia
|
||||
spotify
|
||||
plex-media-player
|
||||
vlc
|
||||
|
||||
## Astronomy
|
||||
stellarium
|
||||
|
||||
## Games
|
||||
openra
|
||||
];
|
||||
}
|
||||
29
config/home-manager/packages/common/bash.nix
Normal file
29
config/home-manager/packages/common/bash.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
home.file.".bashrc.extra".source = "${config.home.homeDirectory}/dotfiles/.bashrc";
|
||||
|
||||
programs.bash = {
|
||||
enable = true;
|
||||
enableCompletion = true;
|
||||
|
||||
initExtra = ''
|
||||
if [ -f ~/.bashrc.extra ]; then
|
||||
source ~/.bashrc.extra
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableBashIntegration = true;
|
||||
defaultCommand = "fd --type f";
|
||||
defaultOptions = [
|
||||
"--height 40%"
|
||||
"--layout=reverse"
|
||||
"--border"
|
||||
"--inline-info"
|
||||
"--color 'fg:#ebdbb2,bg:#282828,hl:#fabd2f,fg+:#ebdbb2,bg+:#3c3836,hl+:#fabd2f'"
|
||||
"--color 'info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,header:#665c54'"
|
||||
];
|
||||
};
|
||||
}
|
||||
12
config/home-manager/packages/common/default.nix
Normal file
12
config/home-manager/packages/common/default.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||
|
||||
# Import all other .nix files as modules
|
||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
||||
in
|
||||
{
|
||||
# Import all the package modules
|
||||
imports = moduleFiles;
|
||||
}
|
||||
12
config/home-manager/packages/common/go.nix
Normal file
12
config/home-manager/packages/common/go.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
...
|
||||
}:
|
||||
{
|
||||
programs.go = {
|
||||
enable = true;
|
||||
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; [ ];
|
||||
}
|
||||
117
config/home-manager/packages/common/packages.nix
Normal file
117
config/home-manager/packages/common/packages.nix
Normal file
@@ -0,0 +1,117 @@
|
||||
{
|
||||
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
|
||||
git
|
||||
onefetch
|
||||
gnupg
|
||||
gh
|
||||
nixfmt-rfc-style
|
||||
wget
|
||||
fastfetch
|
||||
gpredict
|
||||
|
||||
# Package management
|
||||
pipx
|
||||
devbox
|
||||
|
||||
# Development SDKs/Toolkits
|
||||
gcc
|
||||
pkg-config
|
||||
gnumake
|
||||
stdenv.cc
|
||||
rustc
|
||||
cargo
|
||||
cargo-edit
|
||||
cargo-watch
|
||||
cargo-audit
|
||||
cargo-expand
|
||||
cargo-tarpaulin
|
||||
act # GitHub Actions CLI
|
||||
|
||||
# File and directory operations
|
||||
eza # Modern ls
|
||||
bat # Modern cat
|
||||
zoxide # Smarter cd command
|
||||
broot # Interactive directory navigator
|
||||
du-dust # Modern du
|
||||
duf # Modern df
|
||||
zip
|
||||
unzip
|
||||
bottom # Modern top/htop
|
||||
glances # Advanced system monitoring tool
|
||||
procs # Modern ps
|
||||
hyperfine # Benchmarking tool
|
||||
|
||||
# Search and text processing
|
||||
ripgrep # Modern grep
|
||||
sd # Modern sed
|
||||
choose # Modern cut
|
||||
jq # JSON processor
|
||||
yq # YAML processor
|
||||
xsv # CSV processor
|
||||
ncdu # Disk usage analyzer
|
||||
|
||||
# System monitoring and process management
|
||||
procs # Modern ps
|
||||
bottom # Modern top/htop
|
||||
hyperfine # Benchmarking tool
|
||||
bandwhich # Network utilization tool
|
||||
doggo # Modern dig
|
||||
gping # Ping with graph
|
||||
htop # Interactive process viewer
|
||||
|
||||
# Development utilities
|
||||
delta # Better git diff
|
||||
difftastic # Structural diff tool
|
||||
fzf # Fuzzy finder
|
||||
tokei # Code statistics
|
||||
tealdeer # Modern tldr client
|
||||
lazygit # Terminal UI for git
|
||||
|
||||
# Shell and terminal
|
||||
starship # Cross-shell prompt
|
||||
blesh # Bash ble.sh
|
||||
zellij # Modern terminal multiplexer
|
||||
screen # Terminal multiplexer
|
||||
|
||||
# File viewers and processors
|
||||
hexyl # Modern hexdump
|
||||
chafa # Terminal image viewer
|
||||
glow # Markdown renderer
|
||||
|
||||
# Editors
|
||||
neovim
|
||||
## Neovim plugins
|
||||
vimPlugins.LazyVim
|
||||
|
||||
nano
|
||||
micro
|
||||
|
||||
# Lolz
|
||||
fortune
|
||||
cowsay
|
||||
cmatrix
|
||||
figlet
|
||||
lolcat
|
||||
]
|
||||
++ (with pkgs-unstable; [ ]);
|
||||
}
|
||||
@@ -1,15 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
pinnedPkgs = import (fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/d4f247e89f6e10120f911e2e2d2254a050d0f732.tar.gz";
|
||||
# Update this SHA256 when a new version is required ^^^
|
||||
# You can find them here: https://www.nixhub.io/packages/vscode
|
||||
}) { };
|
||||
in
|
||||
{
|
||||
# Use the pinned Go for the programs configuration
|
||||
programs.go = {
|
||||
enable = true;
|
||||
package = pinnedPkgs.go;
|
||||
};
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
programs.kitty = {
|
||||
enable = true;
|
||||
font = {
|
||||
name = "Hack Nerd Font";
|
||||
size = 14;
|
||||
};
|
||||
|
||||
settings = {
|
||||
dynamic_background_opacity = true;
|
||||
background_opacity = "0.95";
|
||||
background_blur = 64;
|
||||
};
|
||||
|
||||
shellIntegration.enableFishIntegration = true;
|
||||
theme = "Catppuccin-Macchiato";
|
||||
#Also available: Catppuccin-Frappe Catppuccin-Latte Catppuccin-Macchiato Catppuccin-Mocha
|
||||
# See all available kitty themes at: https://github.com/kovidgoyal/kitty-themes/blob/46d9dfe230f315a6a0c62f4687f6b3da20fd05e4/themes.json
|
||||
};
|
||||
}
|
||||
12
config/home-manager/packages/server/default.nix
Normal file
12
config/home-manager/packages/server/default.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
let
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||
|
||||
# Import all other .nix files as modules
|
||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
||||
in
|
||||
{
|
||||
# Import all the package modules
|
||||
imports = moduleFiles;
|
||||
}
|
||||
4
config/home-manager/packages/server/packages.nix
Normal file
4
config/home-manager/packages/server/packages.nix
Normal file
@@ -0,0 +1,4 @@
|
||||
{ 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 = [ ];
|
||||
};
|
||||
}
|
||||
15
config/home-manager/packages/workstation/default.nix
Normal file
15
config/home-manager/packages/workstation/default.nix
Normal file
@@ -0,0 +1,15 @@
|
||||
{ ... }:
|
||||
|
||||
let
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [
|
||||
"default.nix"
|
||||
"brave-search-engines.sh"
|
||||
];
|
||||
|
||||
# Import all other .nix files as modules
|
||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
||||
in
|
||||
{
|
||||
# Import all the package modules
|
||||
imports = moduleFiles;
|
||||
}
|
||||
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
|
||||
];
|
||||
}
|
||||
61
config/home-manager/packages/workstation/packages.nix
Normal file
61
config/home-manager/packages/workstation/packages.nix
Normal file
@@ -0,0 +1,61 @@
|
||||
{ pkgs-unstable, pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
# GUI Application
|
||||
## Utilities
|
||||
mission-center # Task Manager like Windows 11
|
||||
gnome-tweaks
|
||||
pinta # Paint.NET alternative
|
||||
bottles # Wine manager
|
||||
trayscale # Tray icon for Tailscale
|
||||
spacedrive # Virtual filesystem manager
|
||||
smile # Emoji picker
|
||||
gnome-frog # OCR tool
|
||||
gnome-boxes # Virtual machine manager
|
||||
deja-dup # Backup tool
|
||||
sqlitebrowser # SQLite database manager
|
||||
wmctrl # Window manager control (Used in ulauncher)
|
||||
gparted # Used to nuke Windows off of my system
|
||||
rpi-imager # Raspberry Pi OS image writer
|
||||
pavucontrol # PulseAudio volume control
|
||||
qrencode # qr code generator
|
||||
grimblast # Screenshot tool
|
||||
ptyxis # Terminal emulator
|
||||
|
||||
## Chat Apps
|
||||
telegram-desktop
|
||||
betterdiscordctl
|
||||
vesktop
|
||||
whatsapp-for-linux
|
||||
signal-desktop
|
||||
|
||||
## Multimedia
|
||||
spotify
|
||||
plex-media-player
|
||||
vlc
|
||||
|
||||
## Astronomy
|
||||
stellarium
|
||||
|
||||
## Games
|
||||
### Open-source games
|
||||
openra
|
||||
xonotic
|
||||
mindustry
|
||||
wesnoth
|
||||
shattered-pixel-dungeon
|
||||
|
||||
### Games launchers
|
||||
lutris
|
||||
heroic
|
||||
dosbox
|
||||
|
||||
### Game utilities
|
||||
protonup-qt
|
||||
protontricks
|
||||
|
||||
### Virtualization
|
||||
virt-manager
|
||||
virt-viewer
|
||||
];
|
||||
}
|
||||
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,16 +1,8 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
pinnedPkgs = import (fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/d4f247e89f6e10120f911e2e2d2254a050d0f732.tar.gz";
|
||||
# Update this SHA256 when a new version is required ^^^
|
||||
# You can find them here: https://www.nixhub.io/packages/vscode
|
||||
}) { };
|
||||
in
|
||||
{ pkgs, pkgs-unstable, ... }:
|
||||
{
|
||||
# Use the pinned VSCode for the programs.vscode configuration
|
||||
programs.vscode = {
|
||||
enable = true;
|
||||
package = pinnedPkgs.vscode;
|
||||
package = pkgs-unstable.vscode;
|
||||
mutableExtensionsDir = true;
|
||||
extensions = with pkgs.vscode-extensions; [
|
||||
ms-azuretools.vscode-docker
|
||||
@@ -42,17 +34,5 @@ in
|
||||
github.copilot
|
||||
github.copilot-chat
|
||||
];
|
||||
# ++ pkgs.vscode-utils.extensionsFromVscodeMarketplace [
|
||||
# {
|
||||
# name = "warpnet.salt-lint";
|
||||
# publisher = "warpnet";
|
||||
# version = "latest";
|
||||
# }
|
||||
# {
|
||||
# name = "mguellsegarra.highlight-on-copy";
|
||||
# publisher = "mguellsegarra";
|
||||
# version = "latest";
|
||||
# }
|
||||
# ];
|
||||
};
|
||||
}
|
||||
12
config/home-manager/packages/workstation/zed-editor.nix
Normal file
12
config/home-manager/packages/workstation/zed-editor.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ pkgs-unstable, ... }:
|
||||
{
|
||||
home.packages = with pkgs-unstable; [
|
||||
zed-editor
|
||||
nixd
|
||||
nixdoc
|
||||
|
||||
# We need nodejs due to a stupid bug with CoPilot not loading properly
|
||||
# https://github.com/zed-industries/zed/issues/12187#issuecomment-2322338504
|
||||
nodejs_22
|
||||
];
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
{ config, pkgs, ... }:
|
||||
let
|
||||
pinnedPkgs = import (fetchTarball {
|
||||
url = "https://github.com/NixOS/nixpkgs/archive/41dea55321e5a999b17033296ac05fe8a8b5a257.tar.gz";
|
||||
# Update this SHA256 when a new version is required ^^^
|
||||
# You can find them here: https://www.nixhub.io/packages/zed-editor
|
||||
}) { };
|
||||
in
|
||||
{
|
||||
# Add zed-editor to your home packages
|
||||
home.packages = [
|
||||
pinnedPkgs.zed-editor
|
||||
];
|
||||
}
|
||||
12
config/home-manager/server/default.nix
Normal file
12
config/home-manager/server/default.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ ... }:
|
||||
|
||||
let
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||
|
||||
# Import all other .nix files as modules
|
||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
||||
in
|
||||
{
|
||||
# Import all the package modules
|
||||
imports = moduleFiles;
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home.packages = with pkgs; [
|
||||
virt-manager
|
||||
virt-viewer
|
||||
qemu
|
||||
OVMF
|
||||
];
|
||||
}
|
||||
83
config/home-manager/workstation/dconf.nix
Normal file
83
config/home-manager/workstation/dconf.nix
Normal file
@@ -0,0 +1,83 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# GTK Theme
|
||||
gtk = {
|
||||
enable = true;
|
||||
|
||||
iconTheme = {
|
||||
name = "Papirus-Dark";
|
||||
package = pkgs.papirus-icon-theme;
|
||||
};
|
||||
|
||||
theme = {
|
||||
name = "Yaru-purple-dark";
|
||||
package = pkgs.yaru-theme;
|
||||
};
|
||||
|
||||
cursorTheme = {
|
||||
name = "Numix-Cursor";
|
||||
package = pkgs.numix-cursor-theme;
|
||||
};
|
||||
|
||||
gtk3.extraConfig = {
|
||||
Settings = ''
|
||||
gtk-application-prefer-dark-theme=1
|
||||
'';
|
||||
};
|
||||
|
||||
gtk4.extraConfig = {
|
||||
Settings = ''
|
||||
gtk-application-prefer-dark-theme=1
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
dconf = {
|
||||
enable = true;
|
||||
settings = {
|
||||
# Set nemo as the default file manager and disable desktop icons since this is handled by nemo
|
||||
"org/gnome/desktop/background" = {
|
||||
show-desktop-icons = false;
|
||||
};
|
||||
"org/gnome/desktop/applications/file-manager" = {
|
||||
exec = "nemo";
|
||||
};
|
||||
|
||||
"org/gnome/desktop/interface" = {
|
||||
color-scheme = "prefer-dark";
|
||||
};
|
||||
|
||||
# Pinned apps
|
||||
# add more by listing them with `gsettings list-recursively | grep favorite-apps | sed "s/,//g; s/'/\"/g"` then copy pasting the output here
|
||||
"org/gnome/shell" = {
|
||||
favorite-apps = [
|
||||
"brave-browser.desktop"
|
||||
"code.desktop"
|
||||
"org.telegram.desktop.desktop"
|
||||
"spotify.desktop"
|
||||
"com.plexamp.Plexamp.desktop"
|
||||
"vesktop.desktop"
|
||||
"org.gnome.Geary.desktop"
|
||||
"nemo.desktop"
|
||||
"org.gnome.Console.desktop"
|
||||
];
|
||||
};
|
||||
|
||||
# GNOME Terminal settings
|
||||
"org/gnome/Console" = {
|
||||
use-system-font = false;
|
||||
custom-font = "Hack Nerd Font 13";
|
||||
theme = "night";
|
||||
};
|
||||
|
||||
# Set wallpaper
|
||||
"org/gnome/desktop/background" = {
|
||||
picture-uri-dark = "file:///${config.home.homeDirectory}/dotfiles/secrets/wp/9.png";
|
||||
picture-uri = "file:///${config.home.homeDirectory}/dotfiles/secrets/wp/9.png";
|
||||
picture-options = "zoom";
|
||||
primary-color = "#000000";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
}
|
||||
93
config/home-manager/workstation/default-apps.nix
Normal file
93
config/home-manager/workstation/default-apps.nix
Normal file
@@ -0,0 +1,93 @@
|
||||
{ ... }:
|
||||
{
|
||||
# Default applications
|
||||
xdg.mimeApps = {
|
||||
enable = true;
|
||||
defaultApplications = {
|
||||
# Brave Browser
|
||||
"application/xhtml+xml" = [ "brave-browser.desktop" ];
|
||||
"text/html" = [ "brave-browser.desktop" ];
|
||||
"x-scheme-handler/http" = [ "brave-browser.desktop" ];
|
||||
"x-scheme-handler/https" = [ "brave-browser.desktop" ];
|
||||
|
||||
# Geary
|
||||
"x-scheme-handler/mailto" = [ "org.gnome.Geary.desktop" ];
|
||||
|
||||
# Loupe (Image Viewer)
|
||||
"image/jpeg" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/png" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/gif" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/webp" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/tiff" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-tga" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd-ms.dds" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-dds" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/bmp" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd.microsoft.icon" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/vnd.radiance" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-exr" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-bitmap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-graymap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-pixmap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-portable-anymap" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/x-qoi" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/svg+xml" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/svg+xml-compressed" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/avif" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/heic" = [ "org.gnome.Loupe.desktop" ];
|
||||
"image/jxl" = [ "org.gnome.Loupe.desktop" ];
|
||||
|
||||
# VLC (Video Player)
|
||||
"video/x-ogm+ogg" = [ "vlc.desktop" ];
|
||||
"video/3gp" = [ "vlc.desktop" ];
|
||||
"video/3gpp" = [ "vlc.desktop" ];
|
||||
"video/3gpp2" = [ "vlc.desktop" ];
|
||||
"video/dv" = [ "vlc.desktop" ];
|
||||
"video/divx" = [ "vlc.desktop" ];
|
||||
"video/fli" = [ "vlc.desktop" ];
|
||||
"video/flv" = [ "vlc.desktop" ];
|
||||
"video/mp2t" = [ "vlc.desktop" ];
|
||||
"video/mp4" = [ "vlc.desktop" ];
|
||||
"video/mp4v-es" = [ "vlc.desktop" ];
|
||||
"video/mpeg" = [ "vlc.desktop" ];
|
||||
"video/mpeg-system" = [ "vlc.desktop" ];
|
||||
"video/msvideo" = [ "vlc.desktop" ];
|
||||
"video/ogg" = [ "vlc.desktop" ];
|
||||
"video/quicktime" = [ "vlc.desktop" ];
|
||||
"video/vnd.divx" = [ "vlc.desktop" ];
|
||||
"video/vnd.mpegurl" = [ "vlc.desktop" ];
|
||||
"video/vnd.rn-realvideo" = [ "vlc.desktop" ];
|
||||
"video/webm" = [ "vlc.desktop" ];
|
||||
"video/x-anim" = [ "vlc.desktop" ];
|
||||
"video/x-avi" = [ "vlc.desktop" ];
|
||||
"video/x-flc" = [ "vlc.desktop" ];
|
||||
"video/x-fli" = [ "vlc.desktop" ];
|
||||
"video/x-flv" = [ "vlc.desktop" ];
|
||||
"video/x-m4v" = [ "vlc.desktop" ];
|
||||
"video/x-matroska" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg2" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asf" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asf-plugin" = [ "vlc.desktop" ];
|
||||
"video/x-ms-asx" = [ "vlc.desktop" ];
|
||||
"video/x-msvideo" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wm" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wmv" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wmx" = [ "vlc.desktop" ];
|
||||
"video/x-ms-wvx" = [ "vlc.desktop" ];
|
||||
"video/x-nsv" = [ "vlc.desktop" ];
|
||||
"video/x-theora" = [ "vlc.desktop" ];
|
||||
"video/x-theora+ogg" = [ "vlc.desktop" ];
|
||||
"video/x-ogm" = [ "vlc.desktop" ];
|
||||
"video/avi" = [ "vlc.desktop" ];
|
||||
"video/x-mpeg-system" = [ "vlc.desktop" ];
|
||||
|
||||
# Totem (for those few formats that default to it)
|
||||
"video/vivo" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/vnd.vivo" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-flic" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-mjpeg" = [ "org.gnome.Totem.desktop" ];
|
||||
"video/x-totem-stream" = [ "org.gnome.Totem.desktop" ];
|
||||
};
|
||||
};
|
||||
}
|
||||
12
config/home-manager/workstation/default.nix
Normal file
12
config/home-manager/workstation/default.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ ... }:
|
||||
|
||||
let
|
||||
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];
|
||||
|
||||
# Import all other .nix files as modules
|
||||
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);
|
||||
in
|
||||
{
|
||||
# Import all the package modules
|
||||
imports = moduleFiles;
|
||||
}
|
||||
332
config/home-manager/workstation/gnome-extensions.nix
Normal file
332
config/home-manager/workstation/gnome-extensions.nix
Normal file
@@ -0,0 +1,332 @@
|
||||
{
|
||||
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
|
||||
gsconnect
|
||||
blur-my-shell
|
||||
space-bar
|
||||
gtk4-desktop-icons-ng-ding
|
||||
logo-menu
|
||||
media-controls
|
||||
burn-my-windows
|
||||
coverflow-alt-tab
|
||||
dash-to-dock
|
||||
appindicator
|
||||
autohide-battery
|
||||
battery-health-charging
|
||||
just-perfection
|
||||
smile-complementary-extension
|
||||
vitals
|
||||
clipboard-indicator
|
||||
]);
|
||||
|
||||
# Copy burn-my-windows profile to user config
|
||||
home.file.".config/burn-my-windows/profiles/default.conf".text = ''
|
||||
[burn-my-windows-profile]
|
||||
fire-enable-effect=false
|
||||
tv-glitch-enable-effect=true
|
||||
tv-glitch-animation-time=250
|
||||
'';
|
||||
|
||||
dconf = {
|
||||
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`
|
||||
"org/gnome/shell" = {
|
||||
disable-user-extensions = false;
|
||||
enabled-extensions = [
|
||||
"kimpanel@kde.org"
|
||||
"lilypad@shendrew.github.io"
|
||||
"tilingshell@ferrarodomenico.com"
|
||||
"gsconnect@andyholmes.github.io"
|
||||
"blur-my-shell@aunetx"
|
||||
"tailscale@joaophi.github.com"
|
||||
"easy_docker_containers@red.software.systems"
|
||||
"weatheroclock@CleoMenezesJr.github.io"
|
||||
"space-bar@luchrioh"
|
||||
"gtk4-ding@smedius.gitlab.com"
|
||||
"logomenu@aryan_k"
|
||||
"mediacontrols@cliffniff.github.com"
|
||||
"burn-my-windows@schneegans.github.com"
|
||||
"CoverflowAltTab@palatis.blogspot.com"
|
||||
"dash-to-dock@micxgx.gmail.com"
|
||||
"gnome-shell-extension-appindicator"
|
||||
"appindicatorsupport@rgcjonas.gmail.com"
|
||||
"user-theme@gnome-shell-extensions.gcampax.github.com"
|
||||
"autohide-battery@sitnik.ru"
|
||||
"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
|
||||
"org/gnome/shell/extensions/just-perfection" = {
|
||||
theme = false;
|
||||
notification-banner-position = 2;
|
||||
startup-status = 0;
|
||||
};
|
||||
|
||||
# Autohide battery
|
||||
"org/gnome/shell/extensions/autohide-battery" = {
|
||||
hide-on = 95;
|
||||
};
|
||||
|
||||
# Configure dash-to-dock
|
||||
"org/gnome/shell/extensions/dash-to-dock" = {
|
||||
pressure-threshold = 250;
|
||||
require-pressure-to-show = false;
|
||||
apply-custom-theme = false;
|
||||
apply-glossy-effect = false;
|
||||
autohide-in-fullscreen = true;
|
||||
background-opacity = 0.8;
|
||||
custom-theme-customize-running-dots = false;
|
||||
custom-theme-running-dots-border-color = "rgb(255,255,255)";
|
||||
custom-theme-running-dots-color = "rgb(255,255,255)";
|
||||
dash-max-icon-size = 48;
|
||||
dock-fixed = false;
|
||||
dock-position = "LEFT";
|
||||
extend-height = 0;
|
||||
height-fraction = 0.9;
|
||||
intellihide = true;
|
||||
intellihide-mode = "ALL_WINDOWS";
|
||||
multi-monitor = true;
|
||||
preferred-monitor = -2;
|
||||
preferred-monitor-by-connector = "DP-2";
|
||||
running-indicator-dominant-color = true;
|
||||
running-indicator-style = "DOTS";
|
||||
show-apps-at-top = true;
|
||||
show-favorites = true;
|
||||
show-mounts = false;
|
||||
show-trash = true;
|
||||
transparency = 0.75;
|
||||
transparency-mode = "FIXED";
|
||||
unity-backlit-items = false;
|
||||
};
|
||||
|
||||
# Configure logo-menu
|
||||
"org/gnome/shell/extensions/Logo-menu" = {
|
||||
hide-icon-shadow = false;
|
||||
menu-button-extensions-app = "org.gnome.Extensions.desktop";
|
||||
menu-button-icon-image = 23;
|
||||
menu-button-icon-size = 24;
|
||||
menu-button-system-monitor = "missioncenter";
|
||||
show-power-options = false;
|
||||
symbolic-icon = true;
|
||||
use-custom-icon = false;
|
||||
};
|
||||
|
||||
# Configure covereflow-alt-tab
|
||||
"org/gnome/shell/extensions/coverflowalttab" = {
|
||||
animation-time = 0.2;
|
||||
easing-function = "ease-out-quart";
|
||||
icon-has-shadow = true;
|
||||
icon-style = "Overlay";
|
||||
invert-swipes = false;
|
||||
position = "Top";
|
||||
switcher-looping-method = "Flip Stack";
|
||||
switcher-style = "Coverflow";
|
||||
};
|
||||
|
||||
# Configure burn-my-windows
|
||||
"org/gnome/shell/extensions/burn-my-windows" = {
|
||||
active-profile = "${config.home.homeDirectory}/.config/burn-my-windows/profiles/default.conf";
|
||||
};
|
||||
|
||||
# Configure blur-my-shell
|
||||
"org/gnome/shell/extensions/blur-my-shell" = {
|
||||
brightness = 0.75;
|
||||
noise-amount = 0;
|
||||
};
|
||||
|
||||
# Configure tiling shell
|
||||
"org/gnome/shell/extensions/tilingshell" = {
|
||||
layouts-json = ''
|
||||
[
|
||||
{
|
||||
"id": "Landscape Ultrawide",
|
||||
"tiles": [
|
||||
{ "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.22, "y": 0, "width": 0.56, "height": 1, "groups": [2, 3] },
|
||||
{ "x": 0.78, "y": 0, "width": 0.22, "height": 0.5, "groups": [3, 4] },
|
||||
{ "x": 0.78, "y": 0.5, "width": 0.22, "height": 0.5, "groups": [3, 4] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Portrait Ultrawide",
|
||||
"tiles": [
|
||||
{ "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.75, "width": 0.5, "height": 0.25, "groups": [2, 3] },
|
||||
{ "x": 0.5, "y": 0.75, "width": 0.5, "height": 0.25, "groups": [2, 3] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "Landscape Laptop",
|
||||
"tiles": [
|
||||
{ "x": 0, "y": 0, "width": 0.33, "height": 0.5, "groups": [1, 2] },
|
||||
{ "x": 0.33, "y": 0, "width": 0.67, "height": 1, "groups": [1] },
|
||||
{ "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]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
'';
|
||||
overridden-settings = "{\"org.gnome.mutter.keybindings\":{\"toggle-tiled-right\":\"['<Super>Right']\",\"toggle-tiled-left\":\"['<Super>Left']\"},\"org.gnome.desktop.wm.keybindings\":{\"maximize\":\"['<Super>Up']\",\"unmaximize\":\"['<Super>Down', '<Alt>F5']\"},\"org.gnome.mutter\":{\"edge-tiling\":\"false\"}}";
|
||||
};
|
||||
|
||||
# Configure forge
|
||||
"org/gnome/shell/extensions/forge" = {
|
||||
move-pointer-focus-enabled = false;
|
||||
stacked-tiling-mode-enabled = true;
|
||||
tabbed-tiling-mode-enabled = true;
|
||||
tiling-mode-enabled = true;
|
||||
};
|
||||
|
||||
"org/gnome/shell/extensions/forge/keybindings" = {
|
||||
con-split-horizontal = [ "<Super>z" ];
|
||||
con-split-layout-toggle = [ "<Super>g" ];
|
||||
con-split-vertical = [ "<Super>v" ];
|
||||
con-stacked-layout-toggle = [ "<Shift><Super>s" ];
|
||||
con-tabbed-layout-toggle = [ "<Shift><Super>t" ];
|
||||
con-tabbed-showtab-decoration-toggle = [ "<Control><Alt>y" ];
|
||||
focus-border-toggle = [ "<Super>x" ];
|
||||
prefs-tiling-toggle = [ "<Super>w" ];
|
||||
window-focus-down = [ "<Super>j" ];
|
||||
window-focus-left = [ "<Super>h" ];
|
||||
window-focus-right = [ "<Super>l" ];
|
||||
window-focus-up = [ "<Super>k" ];
|
||||
window-gap-size-decrease = [ "<Control><Super>minus" ];
|
||||
window-gap-size-increase = [ "<Control><Super>plus" ];
|
||||
window-move-down = [ "<Shift><Super>j" ];
|
||||
window-move-left = [ "<Shift><Super>h" ];
|
||||
window-move-right = [ "<Shift><Super>l" ];
|
||||
window-move-up = [ "<Shift><Super>k" ];
|
||||
window-resize-bottom-decrease = [ "<Shift><Control><Super>i" ];
|
||||
window-resize-bottom-increase = [ "<Control><Super>u" ];
|
||||
window-resize-left-decrease = [ "<Shift><Control><Super>o" ];
|
||||
window-resize-left-increase = [ "<Control><Super>y" ];
|
||||
window-resize-right-decrease = [ "<Shift><Control><Super>y" ];
|
||||
window-resize-right-increase = [ "<Control><Super>o" ];
|
||||
window-resize-top-decrease = [ "<Shift><Control><Super>u" ];
|
||||
window-resize-top-increase = [ "<Control><Super>i" ];
|
||||
window-snap-center = [ "<Control><Alt>c" ];
|
||||
window-snap-one-third-left = [ "<Control><Alt>d" ];
|
||||
window-snap-one-third-right = [ "<Control><Alt>g" ];
|
||||
window-snap-two-third-left = [ "<Control><Alt>e" ];
|
||||
window-snap-two-third-right = [ ];
|
||||
window-swap-down = [ "<Control><Super>j" ];
|
||||
window-swap-last-active = [ "<Super>Return" ];
|
||||
window-swap-left = [ "<Control><Super>h" ];
|
||||
window-swap-right = [ "<Control><Super>l" ];
|
||||
window-swap-up = [ "<Control><Super>k" ];
|
||||
window-toggle-always-float = [ "<Shift><Super>c" ];
|
||||
window-toggle-float = [ "<Super>c" ];
|
||||
workspace-active-tile-toggle = [ "<Shift><Super>w" ];
|
||||
};
|
||||
|
||||
# User theme
|
||||
"org/gnome/shell/extensions/user-theme" = {
|
||||
name = "Yaru-purple-dark";
|
||||
};
|
||||
|
||||
# Lilypad settings
|
||||
"org/gnome/shell/extensions/lilypad/rightbox-order" = {
|
||||
|
||||
# In case this is updated, run: `dconf read /org/gnome/shell/extensions/lilypad/rightbox-order | sed "s/,//g; s/'/\"/g ` then copy pasting the output here
|
||||
rightbox-order = [
|
||||
"lilypad"
|
||||
"system_monitor"
|
||||
"appindicator_legacy_TelegramDesktop"
|
||||
"appindicator_legacy_1password"
|
||||
"spotify_client"
|
||||
"com_github_eneshecan_WhatsAppForLinux_Tray"
|
||||
"appindicator_legacy_Electron"
|
||||
"steam"
|
||||
"appindicator_legacy_steam"
|
||||
"workspace_indicator"
|
||||
"vitalsMenu"
|
||||
"StatusNotifierItem"
|
||||
"clipboardIndicator"
|
||||
"screenSharing"
|
||||
];
|
||||
show-icons = false;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,34 +1,52 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
dconf.settings = {
|
||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||
custom-keybindings = [
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal/"
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/1password-quick-access/"
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/screenshot/"
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/missioncenter/"
|
||||
"org/gnome/shell/keybindings" = {
|
||||
show-screenshot-ui = [
|
||||
"Print"
|
||||
"<Shift><Alt>4"
|
||||
];
|
||||
};
|
||||
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = {
|
||||
binding = "<Primary><Alt>t";
|
||||
command = "kitty";
|
||||
name = "open-terminal";
|
||||
"org/gnome/settings-daemon/plugins/media-keys" = {
|
||||
custom-keybindings = [
|
||||
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/1password-quick-access/"
|
||||
"/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/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" = {
|
||||
binding = "<Ctrl><Alt>space";
|
||||
command = "1password --quick-access";
|
||||
name = "1password-quick-access";
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/screenshot" = {
|
||||
binding = "<Shift><Alt>4";
|
||||
command = "flameshot gui";
|
||||
name = "screenshot";
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/missioncenter" = {
|
||||
binding = "<Ctrl><Shift>Escape";
|
||||
command = "missioncenter";
|
||||
name = "missioncenter";
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = {
|
||||
binding = "<Ctrl><Alt>t";
|
||||
command = "ptyxis --new-window"; # ghostty doesn't work on Fedora atm
|
||||
name = "terminal";
|
||||
};
|
||||
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emotes" = {
|
||||
binding = "<Super>e";
|
||||
command = "smile";
|
||||
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";
|
||||
};
|
||||
};
|
||||
}
|
||||
46
config/nixos/common/server.nix
Normal file
46
config/nixos/common/server.nix
Normal file
@@ -0,0 +1,46 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
# Install xanmod kernel
|
||||
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_stable.zfs;
|
||||
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
ports = [ 400 ];
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
AllowUsers = [ "menno" ];
|
||||
X11Forwarding = false;
|
||||
PermitRootLogin = "prohibit-password";
|
||||
AllowTCPForwarding = true;
|
||||
AllowAgentForwarding = true;
|
||||
PermitEmptyPasswords = false;
|
||||
PubkeyAuthentication = true;
|
||||
};
|
||||
};
|
||||
|
||||
networking = {
|
||||
firewall = {
|
||||
enable = true;
|
||||
|
||||
# External ports
|
||||
allowedTCPPorts = [
|
||||
## Portforwarded
|
||||
80 # HTTP
|
||||
443 # HTTPS
|
||||
22 # Git over SSH
|
||||
25565 # Minecraft
|
||||
24454 # Minecraft (Voice Chat)
|
||||
32400 # Plex
|
||||
51820 # WireGuard
|
||||
|
||||
## Internal services / TailScale
|
||||
400 # SSH
|
||||
];
|
||||
|
||||
allowedUDPPorts = [
|
||||
51820 # WireGuard
|
||||
25565 # Minecraft
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
75
config/nixos/common/workstation.nix
Normal file
75
config/nixos/common/workstation.nix
Normal file
@@ -0,0 +1,75 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
|
||||
# Enable the GNOME Desktop Environment.
|
||||
services.xserver.displayManager.gdm.enable = true;
|
||||
services.xserver.desktopManager.gnome.enable = true;
|
||||
|
||||
# Enable the Cosmic Desktop Environment.
|
||||
# services.desktopManager.cosmic.enable = true;
|
||||
# services.displayManager.cosmic-greeter.enable = true;
|
||||
|
||||
# Install xanmod kernel
|
||||
boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_stable;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
gnome-session
|
||||
xdg-desktop-portal
|
||||
xdg-desktop-portal-gnome
|
||||
xdg-desktop-portal-gtk
|
||||
];
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "euro";
|
||||
};
|
||||
|
||||
# Enable sound with pipewire.
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
# Open ports in the firewall
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [
|
||||
# RDP (Gnome Remote Desktop)
|
||||
3389
|
||||
3390
|
||||
3391
|
||||
|
||||
# SSH
|
||||
400
|
||||
];
|
||||
allowedUDPPorts = [
|
||||
# RDP (Gnome Remote Desktop)
|
||||
3389
|
||||
3390
|
||||
3391
|
||||
];
|
||||
};
|
||||
|
||||
# OpenSSH server
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
ports = [ 400 ];
|
||||
settings = {
|
||||
PasswordAuthentication = false;
|
||||
AllowUsers = [ "menno" ];
|
||||
X11Forwarding = true;
|
||||
PermitRootLogin = "prohibit-password";
|
||||
AllowTCPForwarding = true;
|
||||
AllowAgentForwarding = true;
|
||||
PermitEmptyPasswords = false;
|
||||
PubkeyAuthentication = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -1,31 +1,40 @@
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
imports = [
|
||||
./packages/default.nix
|
||||
./virtualization.nix
|
||||
./users.nix
|
||||
./flatpak.nix
|
||||
./hosts.nix
|
||||
];
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
isServer ? false,
|
||||
isWorkstation ? false,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports =
|
||||
[
|
||||
./packages/common/default.nix
|
||||
./users.nix
|
||||
./hosts.nix
|
||||
./yubikey.nix
|
||||
]
|
||||
# Include packages based on whether this is a server or workstation.
|
||||
++ lib.optional isServer ./packages/server/default.nix
|
||||
++ lib.optional isWorkstation ./packages/workstation/default.nix;
|
||||
|
||||
# Enable networking
|
||||
networking.networkmanager.enable = true;
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Amsterdam";
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Enable experimental nix-command flakes
|
||||
nix = {
|
||||
package = pkgs.nixFlakes;
|
||||
package = pkgs.nixVersions.stable;
|
||||
extraOptions = ''
|
||||
experimental-features = nix-command flakes
|
||||
'';
|
||||
};
|
||||
|
||||
# Set your time zone.
|
||||
time.timeZone = "Europe/Amsterdam";
|
||||
|
||||
# Select internationalisation properties.
|
||||
i18n.defaultLocale = "en_US.UTF-8";
|
||||
|
||||
@@ -41,67 +50,15 @@
|
||||
LC_TIME = "nl_NL.UTF-8";
|
||||
};
|
||||
|
||||
# Enable the X11 windowing system.
|
||||
services.xserver.enable = true;
|
||||
environment.systemPackages = with pkgs; [
|
||||
tailscale
|
||||
pciutils
|
||||
];
|
||||
|
||||
# Enable the GNOME Desktop Environment.
|
||||
services.xserver.displayManager.gdm.enable = true;
|
||||
services.xserver.desktopManager.gnome.enable = true;
|
||||
|
||||
environment.systemPackages = [ pkgs.tailscale ];
|
||||
services.tailscale.enable = true;
|
||||
|
||||
# Configure keymap in X11
|
||||
services.xserver.xkb = {
|
||||
layout = "us";
|
||||
variant = "euro";
|
||||
};
|
||||
|
||||
# Enable sound with pipewire.
|
||||
hardware.pulseaudio.enable = false;
|
||||
security.rtkit.enable = true;
|
||||
services.pipewire = {
|
||||
enable = true;
|
||||
alsa.enable = true;
|
||||
alsa.support32Bit = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# 1Password
|
||||
programs._1password.enable = true;
|
||||
programs._1password-gui = {
|
||||
enable = true;
|
||||
polkitPolicyOwners = [ "menno" ];
|
||||
};
|
||||
|
||||
environment.etc = {
|
||||
"1password/custom_allowed_browsers" = {
|
||||
text = ''
|
||||
firefox
|
||||
brave
|
||||
'';
|
||||
mode = "0755";
|
||||
};
|
||||
};
|
||||
|
||||
# Enable the OpenSSH daemon.
|
||||
# services.openssh = {
|
||||
# enable = true;
|
||||
# port = 400;
|
||||
# permitRootLogin = "no";
|
||||
# passwordAuthentication = false;
|
||||
# pubkeyAuthentication = true;
|
||||
# };
|
||||
|
||||
# Open ports in the firewall.
|
||||
networking.firewall = {
|
||||
enable = true;
|
||||
allowedTCPPorts = [ ];
|
||||
allowedUDPPorts = [ ];
|
||||
};
|
||||
security.sudo.extraConfig = ''
|
||||
Defaults env_reset,pwfeedback
|
||||
'';
|
||||
|
||||
# This value determines the NixOS release from which the default
|
||||
# settings for stateful data, like file locations and database versions
|
||||
@@ -109,5 +66,5 @@
|
||||
# this value at the release version of the first install of this system.
|
||||
# Before changing this value read the documentation for this option
|
||||
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
|
||||
system.stateVersion = "24.05"; # Did you read the comment?
|
||||
system.stateVersion = "24.11"; # Did you read the comment?
|
||||
}
|
||||
|
||||
96
config/nixos/flake.lock
generated
96
config/nixos/flake.lock
generated
@@ -1,24 +1,110 @@
|
||||
{
|
||||
"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": {
|
||||
"locked": {
|
||||
"lastModified": 1730327045,
|
||||
"narHash": "sha256-xKel5kd1AbExymxoIfQ7pgcX6hjw9jCgbiBjiUfSVJ8=",
|
||||
"lastModified": 1740828860,
|
||||
"narHash": "sha256-cjbHI+zUzK5CPsQZqMhE3npTyYFt9tJ3+ohcfaOF/WM=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "303bd8071377433a2d8f76e684ec773d70c5b642",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-unstable",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1740865531,
|
||||
"narHash": "sha256-h00vGIh/jxcGl8aWdfnVRD74KuLpyY3mZgMFMy7iKIc=",
|
||||
"owner": "NixOS",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "5ef6c425980847c78a80d759abc476e941a9bf42",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "NixOS",
|
||||
"ref": "nixos-24.11",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-unstable": {
|
||||
"locked": {
|
||||
"lastModified": 1741010256,
|
||||
"narHash": "sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "080166c15633801df010977d9d7474b4a6c549d7",
|
||||
"rev": "ba487dbc9d04e0634c64e3b1f0d25839a0a68246",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"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",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixos-cosmic": "nixos-cosmic",
|
||||
"nixpkgs": "nixpkgs_2",
|
||||
"nixpkgs-unstable": "nixpkgs-unstable"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -2,28 +2,79 @@
|
||||
description = "menno's dotfiles";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.05";
|
||||
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.11";
|
||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
|
||||
};
|
||||
|
||||
outputs =
|
||||
{ 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 = {
|
||||
"mennos-laptop" = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
inherit system;
|
||||
modules = [
|
||||
./hardware/mennos-laptop.nix
|
||||
./common/workstation.nix
|
||||
./configuration.nix
|
||||
{ networking.hostName = "mennos-laptop"; }
|
||||
];
|
||||
specialArgs = {
|
||||
inherit
|
||||
pkgs-unstable
|
||||
nixos-cosmic
|
||||
;
|
||||
isWorkstation = true;
|
||||
isServer = false;
|
||||
};
|
||||
};
|
||||
|
||||
"mennos-gamingpc" = nixpkgs.lib.nixosSystem {
|
||||
system = "x86_64-linux";
|
||||
inherit system;
|
||||
modules = [
|
||||
./hardware/mennos-gamingpc.nix
|
||||
./common/workstation.nix
|
||||
./configuration.nix
|
||||
{ networking.hostName = "mennos-desktop"; }
|
||||
];
|
||||
specialArgs = {
|
||||
inherit
|
||||
pkgs-unstable
|
||||
nixos-cosmic
|
||||
;
|
||||
isWorkstation = true;
|
||||
isServer = false;
|
||||
};
|
||||
};
|
||||
|
||||
"mennos-server" = nixpkgs.lib.nixosSystem {
|
||||
inherit system;
|
||||
modules = [
|
||||
./hardware/mennos-server.nix
|
||||
./common/server.nix
|
||||
./configuration.nix
|
||||
];
|
||||
specialArgs = {
|
||||
inherit pkgs-unstable;
|
||||
isWorkstation = false;
|
||||
isServer = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -6,62 +6,52 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"ahci"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
"amdgpu"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
imports = [ /etc/nixos/hardware-configuration.nix ];
|
||||
networking.hostName = "mennos-gamingpc";
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/ac5a70cf-4b12-4d02-b5b4-a6eddf4c40b5";
|
||||
fsType = "ext4";
|
||||
options = [ "noatime" ];
|
||||
};
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/5610-F4A9";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
];
|
||||
networking.interfaces.enp8s0.wakeOnLan = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# Enable Vulkan support for AMD graphics cards
|
||||
hardware.opengl.extraPackages32 = with pkgs.pkgsi686Linux; [ amdvlk ];
|
||||
hardware.graphics.extraPackages32 = with pkgs.pkgsi686Linux; [ amdvlk ];
|
||||
|
||||
# Enable OpenGL
|
||||
hardware.opengl = {
|
||||
# Swap file (Desktop PC has 48GB of RAM so 8GB swap should be enough)
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/swapfile";
|
||||
size = 8192;
|
||||
}
|
||||
];
|
||||
|
||||
# Enable graphics
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
driSupport = true;
|
||||
driSupport32Bit = true;
|
||||
|
||||
# Enable the latest AMDGPU drivers
|
||||
extraPackages = with pkgs; [
|
||||
amdvlk
|
||||
rocm-opencl-icd
|
||||
rocm-opencl-runtime
|
||||
rocmPackages.clr
|
||||
];
|
||||
};
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp8s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlp15s0.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
# Add ROCm packages and nvtop
|
||||
environment.systemPackages = with pkgs; [
|
||||
rocmPackages.rocm-smi
|
||||
rocmPackages.clr
|
||||
rocmPackages.rocm-core
|
||||
rocmPackages.hipcc
|
||||
rocmPackages.rocm-device-libs
|
||||
nvtopPackages.amd
|
||||
];
|
||||
}
|
||||
|
||||
@@ -6,85 +6,79 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
|
||||
|
||||
boot.initrd.availableKernelModules = [
|
||||
"nvme"
|
||||
"xhci_pci"
|
||||
"usbhid"
|
||||
"usb_storage"
|
||||
"sd_mod"
|
||||
"amdgpu"
|
||||
];
|
||||
boot.initrd.kernelModules = [ ];
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
boot.extraModulePackages = [ ];
|
||||
imports = [ /etc/nixos/hardware-configuration.nix ];
|
||||
networking.hostName = "mennos-laptop";
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/1356cd09-5c55-45b5-8b06-6aadc84cee37";
|
||||
fsType = "ext4";
|
||||
options = [ "noatime" ];
|
||||
};
|
||||
|
||||
boot.initrd.luks.devices."luks-32bf1c42-e6ef-4fb8-9b76-8bb13b9ea155".device = "/dev/disk/by-uuid/32bf1c42-e6ef-4fb8-9b76-8bb13b9ea155";
|
||||
# Bootloader
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
fileSystems."/boot" = {
|
||||
device = "/dev/disk/by-uuid/CD6B-8910";
|
||||
fsType = "vfat";
|
||||
options = [
|
||||
"fmask=0077"
|
||||
"dmask=0077"
|
||||
# Enable graphics
|
||||
hardware.graphics = {
|
||||
enable = true;
|
||||
extraPackages = with pkgs; [
|
||||
amdvlk
|
||||
rocmPackages.clr
|
||||
];
|
||||
};
|
||||
|
||||
swapDevices = [ ];
|
||||
# Swap file (Laptop has 32GB of RAM so 8GB swap should be enough)
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/swapfile";
|
||||
size = 8192;
|
||||
}
|
||||
];
|
||||
|
||||
# Enable OpenGL
|
||||
hardware.opengl = {
|
||||
enable = true;
|
||||
};
|
||||
# Load AMD and NVIDIA drivers for Xorg and Wayland
|
||||
services.xserver.videoDrivers = [
|
||||
"nvidia"
|
||||
"amdgpu"
|
||||
];
|
||||
|
||||
# Load nvidia driver for Xorg and Wayland
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
# Monitoring tools
|
||||
environment.systemPackages = with pkgs; [
|
||||
nvtopPackages.nvidia
|
||||
nvtopPackages.amd
|
||||
glxinfo
|
||||
vulkan-tools
|
||||
];
|
||||
|
||||
hardware.nvidia = {
|
||||
# Modesetting is required.
|
||||
# Enable modesetting
|
||||
modesetting.enable = true;
|
||||
|
||||
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
|
||||
# Enable this if you have graphical corruption issues or application crashes after waking
|
||||
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
|
||||
# of just the bare essentials.
|
||||
powerManagement.enable = false;
|
||||
# Power management configuration
|
||||
powerManagement = {
|
||||
enable = true;
|
||||
finegrained = false; # Disabled as it requires offload mode
|
||||
};
|
||||
|
||||
# Fine-grained power management. Turns off GPU when not in use.
|
||||
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
|
||||
powerManagement.finegrained = false;
|
||||
# Prime configuration for hybrid graphics
|
||||
prime = {
|
||||
offload = {
|
||||
enable = true;
|
||||
enableOffloadCmd = true;
|
||||
};
|
||||
|
||||
# AMD GPU as primary
|
||||
amdgpuBusId = "PCI:5:0:0";
|
||||
nvidiaBusId = "PCI:1:0:0";
|
||||
};
|
||||
|
||||
# Use the NVidia open source kernel module (not to be confused with the
|
||||
# independent third-party "nouveau" open source driver).
|
||||
# Support is limited to the Turing and later architectures. Full list of
|
||||
# supported GPUs is at:
|
||||
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
|
||||
# Only available from driver 515.43.04+
|
||||
# Currently alpha-quality/buggy, so false is currently the recommended setting.
|
||||
open = false;
|
||||
|
||||
# Enable the Nvidia settings menu,
|
||||
# accessible via `nvidia-settings`.
|
||||
nvidiaSettings = true;
|
||||
|
||||
# Optionally, you may need to select the appropriate driver version for your specific GPU.
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
};
|
||||
|
||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
||||
# still possible to use this option, but it's recommended to use it in conjunction
|
||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
||||
networking.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.enp2s0.useDHCP = lib.mkDefault true;
|
||||
# networking.interfaces.wlo1.useDHCP = lib.mkDefault true;
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
||||
boot.kernelParams = [
|
||||
"amdgpu.sg_display=0"
|
||||
"nvidia-drm.modeset=1"
|
||||
];
|
||||
}
|
||||
|
||||
64
config/nixos/hardware/mennos-server.nix
Normal file
64
config/nixos/hardware/mennos-server.nix
Normal file
@@ -0,0 +1,64 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
modulesPath,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
/etc/nixos/hardware-configuration.nix
|
||||
./mennos-server/zfs.nix
|
||||
];
|
||||
|
||||
fileSystems."/" = {
|
||||
device = "/dev/disk/by-uuid/dd3fa13c-a1bd-4dc9-bcb4-aee17c7f12d1";
|
||||
fsType = "ext4";
|
||||
options = [ "noatime" ];
|
||||
};
|
||||
|
||||
networking.hostName = "mennos-server";
|
||||
networking.hostId = "64519940";
|
||||
|
||||
# Bootloader.
|
||||
boot.loader.systemd-boot.enable = true;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
|
||||
# Allow unfree packages
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
# Load nvidia driver for Xorg and Wayland
|
||||
services.xserver.videoDrivers = [ "nvidia" ];
|
||||
|
||||
# Enable graphics
|
||||
hardware.graphics.enable = true;
|
||||
|
||||
# nvtop, a system monitor for GPUs
|
||||
environment.systemPackages = with pkgs; [ nvtopPackages.nvidia ];
|
||||
|
||||
# Enable NVIDIA Docker support
|
||||
# test with: $ docker run --rm -it --device=nvidia.com/gpu=all ubuntu:latest nvidia-smi
|
||||
hardware.nvidia-container-toolkit.enable = true;
|
||||
virtualisation.docker = {
|
||||
enable = true;
|
||||
};
|
||||
|
||||
# Swap file (Laptop has 64GB of RAM so 16GB swap should be enough)
|
||||
swapDevices = [
|
||||
{
|
||||
device = "/swapfile";
|
||||
size = 16384;
|
||||
}
|
||||
];
|
||||
|
||||
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";
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -8,4 +8,4 @@
|
||||
127.0.0.1 api.local
|
||||
127.0.0.1 mailpit.local
|
||||
'';
|
||||
}
|
||||
}
|
||||
|
||||
12
config/nixos/packages/common/default.nix
Normal file
12
config/nixos/packages/common/default.nix
Normal file
@@ -0,0 +1,12 @@
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
imports = [ ./virtualisation.nix ];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
yubikey-manager
|
||||
trash-cli
|
||||
sqlite # Used for managing SQLite databases (Brave Settings etc.)
|
||||
xcp # Rust implementation of cp/mv command
|
||||
pandoc # Document converter (Markdown, HTML, PDF etc.) (Mostly used for static site generators)
|
||||
];
|
||||
}
|
||||
@@ -1,9 +1,21 @@
|
||||
{ config, pkgs, ... }: {
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
pkgs-unstable,
|
||||
...
|
||||
}:
|
||||
{
|
||||
boot.kernelModules = [ "kvm-amd" ];
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
qemu
|
||||
OVMF
|
||||
];
|
||||
|
||||
virtualisation = {
|
||||
docker = {
|
||||
enable = true;
|
||||
package = pkgs-unstable.docker;
|
||||
autoPrune.enable = true;
|
||||
daemon.settings = {
|
||||
"live-restore" = false;
|
||||
@@ -1,5 +0,0 @@
|
||||
{ ... }: {
|
||||
imports = [
|
||||
./steam.nix
|
||||
];
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user