adds mennos-laptop as host, adds nextcloud, adds nil and nixd for zed
language servers to work. updates setup to support 25.04
This commit is contained in:
@@ -1,6 +1,5 @@
|
||||
[workstations]
|
||||
mennos-laptop-w ansible_connection=local
|
||||
mennos-cachyos-laptop ansible_connection=local
|
||||
mennos-laptop ansible_connection=local
|
||||
mennos-desktop ansible_connection=local
|
||||
|
||||
[servers]
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
- name: Include workstation tasks
|
||||
ansible.builtin.import_tasks: tasks/workstations/workstation.yml
|
||||
when: inventory_hostname in ['mennos-laptop-w', 'mennos-cachyos-laptop', 'mennos-desktop']
|
||||
when: inventory_hostname in ['mennos-laptop', 'mennos-desktop']
|
||||
|
||||
- name: Include server tasks
|
||||
ansible.builtin.import_tasks: tasks/servers/server.yml
|
||||
|
||||
@@ -34,8 +34,7 @@
|
||||
vars:
|
||||
gitconfig_mapping:
|
||||
mennos-desktop: "$DOTFILES_PATH/config/git/gitconfig.linux"
|
||||
mennos-cachyos-laptop: "$DOTFILES_PATH/config/git/gitconfig.linux"
|
||||
mennos-laptop-w: "$DOTFILES_PATH/config/git/gitconfig.wsl"
|
||||
mennos-laptop: "$DOTFILES_PATH/config/git/gitconfig.linux"
|
||||
mennos-server: "$DOTFILES_PATH/config/git/gitconfig.mennos-server"
|
||||
mennos-vm: "$DOTFILES_PATH/config/git/gitconfig.mennos-server"
|
||||
tags:
|
||||
|
||||
@@ -55,5 +55,7 @@
|
||||
- distrobox
|
||||
# Android Screen Mirroring
|
||||
- scrcpy
|
||||
- dolphin-nextcloud
|
||||
- nextcloud-desktop
|
||||
state: present
|
||||
become: true
|
||||
|
||||
0
config/autostart/io.github.mrvladus.List.desktop
Executable file → Normal file
0
config/autostart/io.github.mrvladus.List.desktop
Executable file → Normal file
@@ -1,43 +0,0 @@
|
||||
[user]
|
||||
signingkey = ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIM+sKpcREOUjwMMSzEWAso6830wbOi8kUxqpuXWw5gHr
|
||||
email = menno@vleeuwen.me
|
||||
name = Menno van Leeuwen
|
||||
|
||||
[gpg]
|
||||
format = ssh
|
||||
|
||||
[gpg "ssh"]
|
||||
program = "/mnt/c/Users/menno/AppData/Local/1Password/app/8/op-ssh-sign-wsl"
|
||||
|
||||
[commit]
|
||||
gpgsign = true
|
||||
|
||||
[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
|
||||
[credential "https://github.com"]
|
||||
helper =
|
||||
helper = !/home/menno/.nix-profile/bin/gh auth git-credential
|
||||
[credential "https://gist.github.com"]
|
||||
helper =
|
||||
helper = !/home/menno/.nix-profile/bin/gh auth git-credential
|
||||
|
||||
[safe]
|
||||
directory = *
|
||||
|
||||
[alias]
|
||||
pushall = "!f() { for var in $(git remote show); do echo \"pushing to $var\"; git push $var; done; }; f"
|
||||
@@ -47,7 +47,7 @@
|
||||
};
|
||||
};
|
||||
|
||||
"mennos-cachyos-laptop" = home-manager.lib.homeManagerConfiguration {
|
||||
"mennos-laptop" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = {
|
||||
@@ -57,49 +57,7 @@
|
||||
opnix
|
||||
;
|
||||
isServer = false;
|
||||
hostname = "mennos-cachyos-laptop";
|
||||
};
|
||||
};
|
||||
|
||||
"mennos-server" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
pkgs
|
||||
pkgs-unstable
|
||||
opnix
|
||||
;
|
||||
isServer = true;
|
||||
hostname = "mennos-server";
|
||||
};
|
||||
};
|
||||
|
||||
"mennos-vm" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
pkgs
|
||||
pkgs-unstable
|
||||
opnix
|
||||
;
|
||||
isServer = true;
|
||||
hostname = "mennos-vm";
|
||||
};
|
||||
};
|
||||
|
||||
"mennos-laptop-w" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
modules = [ ./home.nix ];
|
||||
extraSpecialArgs = {
|
||||
inherit
|
||||
pkgs
|
||||
pkgs-unstable
|
||||
opnix
|
||||
;
|
||||
isServer = false;
|
||||
hostname = "mennos-laptop-w";
|
||||
hostname = "mennos-laptop";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
@@ -9,109 +9,104 @@
|
||||
imports =
|
||||
if hostname == "mennos-desktop" then
|
||||
[ ./hosts/mennos-desktop.nix ]
|
||||
else if hostname == "mennos-laptop-w" then
|
||||
[ ./hosts/mennos-laptop-w.nix ]
|
||||
else if hostname == "mennos-cachyos-laptop" then
|
||||
[ ./hosts/mennos-cachyos-laptop.nix ]
|
||||
else if hostname == "mennos-server" then
|
||||
[ ./hosts/mennos-server.nix ]
|
||||
else if hostname == "mennos-vm" then
|
||||
[ ./hosts/mennos-vm.nix ]
|
||||
else if hostname == "mennos-laptop" then
|
||||
[ ./hosts/mennos-laptop.nix ]
|
||||
else
|
||||
[ ./hosts/fallback.nix ];
|
||||
|
||||
home.packages =
|
||||
with pkgs;
|
||||
[
|
||||
# General packages
|
||||
git
|
||||
onefetch
|
||||
gnupg
|
||||
gh
|
||||
nixfmt-rfc-style
|
||||
wget
|
||||
fastfetch
|
||||
_1password-cli
|
||||
home.packages =
|
||||
with pkgs;
|
||||
[
|
||||
# General packages
|
||||
git
|
||||
onefetch
|
||||
gnupg
|
||||
gh
|
||||
nixfmt-rfc-style
|
||||
nixd
|
||||
nil
|
||||
wget
|
||||
fastfetch
|
||||
_1password-cli
|
||||
|
||||
# Package management
|
||||
devbox
|
||||
# Package management
|
||||
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
|
||||
# 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
|
||||
broot # Interactive directory navigator
|
||||
du-dust # Modern du
|
||||
duf # Modern df
|
||||
zip
|
||||
unzip
|
||||
glances # Advanced system monitoring tool
|
||||
procs # Modern ps
|
||||
hyperfine # Benchmarking tool
|
||||
# File and directory operations
|
||||
eza # Modern ls
|
||||
bat # Modern cat
|
||||
broot # Interactive directory navigator
|
||||
du-dust # Modern du
|
||||
duf # Modern df
|
||||
zip
|
||||
unzip
|
||||
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
|
||||
xan # CSV processor (xsv is no longer maintained)
|
||||
ncdu # Disk usage analyzer
|
||||
# Search and text processing
|
||||
ripgrep # Modern grep
|
||||
sd # Modern sed
|
||||
choose # Modern cut
|
||||
jq # JSON processor
|
||||
yq # YAML processor
|
||||
xan # CSV processor (xsv is no longer maintained)
|
||||
ncdu # Disk usage analyzer
|
||||
|
||||
# System monitoring and process management
|
||||
procs # Modern ps
|
||||
hyperfine # Benchmarking tool
|
||||
bandwhich # Network utilization tool
|
||||
doggo # Modern dig
|
||||
gping # Ping with graph
|
||||
htop # Interactive process viewer
|
||||
# System monitoring and process management
|
||||
procs # Modern ps
|
||||
hyperfine # Benchmarking tool
|
||||
bandwhich # Network utilization tool
|
||||
doggo # Modern dig
|
||||
gping # Ping with graph
|
||||
htop # Interactive process viewer
|
||||
|
||||
# Development utilities
|
||||
delta # Better git diff
|
||||
difftastic # Structural diff tool
|
||||
fzf # Fuzzy finder
|
||||
tokei # Code statistics
|
||||
tealdeer # Modern tldr client
|
||||
lazygit # Terminal UI for git
|
||||
# Development utilities
|
||||
delta # Better git diff
|
||||
difftastic # Structural diff tool
|
||||
fzf # Fuzzy finder
|
||||
tokei # Code statistics
|
||||
tealdeer # Modern tldr client
|
||||
lazygit # Terminal UI for git
|
||||
|
||||
# Shell and terminal
|
||||
starship # Cross-shell prompt
|
||||
blesh # Bash ble.sh
|
||||
zellij # Modern terminal multiplexer
|
||||
screen # Terminal multiplexer
|
||||
# Shell and terminal
|
||||
starship # Cross-shell prompt
|
||||
blesh # Bash ble.sh
|
||||
zellij # Modern terminal multiplexer
|
||||
screen # Terminal multiplexer
|
||||
|
||||
# File viewers and processors
|
||||
hexyl # Modern hexdump
|
||||
chafa # Terminal image viewer
|
||||
glow # Markdown renderer
|
||||
# File viewers and processors
|
||||
hexyl # Modern hexdump
|
||||
chafa # Terminal image viewer
|
||||
glow # Markdown renderer
|
||||
|
||||
# Editors
|
||||
neovim
|
||||
## Neovim plugins
|
||||
vimPlugins.LazyVim
|
||||
# Editors
|
||||
neovim
|
||||
## Neovim plugins
|
||||
vimPlugins.LazyVim
|
||||
|
||||
nano
|
||||
micro
|
||||
nano
|
||||
micro
|
||||
|
||||
# Lolz
|
||||
fortune
|
||||
cowsay
|
||||
cmatrix
|
||||
figlet
|
||||
lolcat
|
||||
]
|
||||
++ (with pkgs-unstable; [ ]);
|
||||
# Lolz
|
||||
fortune
|
||||
cowsay
|
||||
cmatrix
|
||||
figlet
|
||||
lolcat
|
||||
];
|
||||
}
|
||||
|
||||
@@ -99,4 +99,4 @@ useDownloadLimit=0
|
||||
useUploadLimit=0
|
||||
|
||||
[Settings]
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\x4\xe\0\0\x2\xa4\0\0\x6\x98\0\0\0\0\0\0\x4\xe\0\0\x2\xa4\0\0\x6\x98\0\0\0\x1\0\0\0\0\x14\0\0\0\0\0\0\0\x4\xe\0\0\x2\xa4\0\0\x6\x98)
|
||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\b\0\0\0\0\0\0\0\n\xa4\0\0\x2\x8a\0\0\b\0\0\0\0\0\0\0\n\xa4\0\0\x2\x8a\0\0\0\x1\0\0\0\0\x11\x64\0\0\b\0\0\0\0\0\0\0\n\xa4\0\0\x2\x8a)
|
||||
|
||||
30
setup.sh
30
setup.sh
@@ -4,7 +4,7 @@ set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
|
||||
# Constants
|
||||
readonly NIXOS_RELEASE="25.05" # Home Manager release version (Must match NixOS version)
|
||||
readonly NIXOS_RELEASE="25.05" # Home Manager release version (Must match NixOS version)
|
||||
readonly GIT_REPO="https://git.mvl.sh/vleeuwenmenno/dotfiles.git" # Dotfiles repository URL
|
||||
readonly DOTFILES_PATH="${HOME}/.dotfiles" # Dotfiles directory
|
||||
readonly SETUP_MARKER="${HOME}/.dotfiles-setup" # Setup marker file indicates setup has been run
|
||||
@@ -52,7 +52,7 @@ printfe() {
|
||||
"magenta")
|
||||
color=$magenta
|
||||
;;
|
||||
"cyan")
|
||||
"cyan")
|
||||
color=$cyan
|
||||
;;
|
||||
"grey")
|
||||
@@ -69,7 +69,7 @@ printfe() {
|
||||
fi
|
||||
|
||||
printf $grey"%s" "$(date +'%H:%M:%S')"$normal
|
||||
|
||||
|
||||
case $color in
|
||||
$green | $cyan | $blue | $magenta | $normal)
|
||||
printf "$green INF $normal"
|
||||
@@ -113,11 +113,11 @@ die() {
|
||||
request_sudo() {
|
||||
log_info "This script requires sudo privileges to run, please enter your password."
|
||||
sudo -v || die "Failed to obtain sudo privileges"
|
||||
|
||||
|
||||
# Keep sudo credentials refreshed in the background
|
||||
(while true; do sudo -v; sleep 50; done) &
|
||||
SUDO_KEEPALIVE_PID=$!
|
||||
|
||||
|
||||
# Ensure we kill the keepalive process when the script exits
|
||||
trap 'kill $SUDO_KEEPALIVE_PID 2>/dev/null || true' EXIT
|
||||
}
|
||||
@@ -170,7 +170,7 @@ update_home_manager_flake() {
|
||||
local hostname="$1"
|
||||
local isServer="$2"
|
||||
local flake_file="$DOTFILES_PATH/config/home-manager/flake.nix"
|
||||
|
||||
|
||||
# Create new configuration entry
|
||||
local new_config=" \"$hostname\" = home-manager.lib.homeManagerConfiguration {
|
||||
inherit pkgs;
|
||||
@@ -185,10 +185,10 @@ update_home_manager_flake() {
|
||||
|
||||
# Create temporary file
|
||||
local temp_file=$(mktemp)
|
||||
|
||||
|
||||
# Find the line number where homeConfigurations = { appears
|
||||
local config_line=$(grep -n "homeConfigurations = {" "$flake_file" | cut -d: -f1)
|
||||
|
||||
|
||||
if [ -z "$config_line" ]; then
|
||||
rm "$temp_file"
|
||||
die "Could not find homeConfigurations in flake.nix"
|
||||
@@ -196,10 +196,10 @@ update_home_manager_flake() {
|
||||
|
||||
# Copy the file up to the line after homeConfigurations = {
|
||||
head -n "$config_line" "$flake_file" > "$temp_file"
|
||||
|
||||
|
||||
# Add the new configuration
|
||||
echo "$new_config" >> "$temp_file"
|
||||
|
||||
|
||||
# Add the rest of the file starting from the line after homeConfigurations = {
|
||||
tail -n +"$((config_line + 1))" "$flake_file" >> "$temp_file"
|
||||
|
||||
@@ -223,7 +223,7 @@ install_nix() {
|
||||
log_info "Nix not detected, installing Nix..."
|
||||
curl --proto '=https' --tlsv1.2 -sSf -L "https://install.determinate.systems/nix?version=${NIXOS_RELEASE}" -o install-nix.sh || \
|
||||
die "Failed to download Nix installer"
|
||||
|
||||
|
||||
sh install-nix.sh install --no-confirm || die "Failed to install Nix"
|
||||
rm install-nix.sh || die "Failed to remove Nix installer"
|
||||
. /nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh || die "Failed to source Nix profile"
|
||||
@@ -403,10 +403,10 @@ check_compatibility() {
|
||||
check_command_availibility "dnf"
|
||||
;;
|
||||
Ubuntu)
|
||||
# Check if we are running either 22.04, 24.04 or 24.10
|
||||
if ! grep -q "Ubuntu 22.04" /etc/os-release && ! grep -q "Ubuntu 24.04" /etc/os-release && ! grep -q "Ubuntu 24.10" /etc/os-release; then
|
||||
# Check if we are running either 22.04, 24.04, 24.10 or 25.04
|
||||
if ! grep -q "Ubuntu 22.04" /etc/os-release && ! grep -q "Ubuntu 24.04" /etc/os-release && ! grep -q "Ubuntu 24.10" /etc/os-release && ! grep -q "Ubuntu 25.04" /etc/os-release; then
|
||||
log_warning "Unsupported Ubuntu version detected. Setup may not work as expected."
|
||||
log_warning "Supported versions are: Ubuntu 22.04, 24.04, 24.10"
|
||||
log_warning "Supported versions are: Ubuntu 22.04, 24.04, 24.10, 25.04"
|
||||
fi
|
||||
log_success "Detected Ubuntu. Proceeding with setup..."
|
||||
check_command_availibility "apt"
|
||||
@@ -485,7 +485,7 @@ main() {
|
||||
git clone "$GIT_REPO" "$DOTFILES_PATH" || die "Failed to clone dotfiles repository"
|
||||
echo ""
|
||||
fi
|
||||
|
||||
|
||||
if [ "$continue_flag" = "--continue" ]; then
|
||||
log_info "Continuing setup..."
|
||||
else
|
||||
|
||||
@@ -72,7 +72,7 @@
|
||||
"window.confirmSaveUntitledWorkspace": false,
|
||||
"git.openRepositoryInParentFolders": "never",
|
||||
"debug.toolBarLocation": "commandCenter",
|
||||
"workbench.colorTheme": "One Dark Pro Darker",
|
||||
"workbench.colorTheme": "Catppuccin Macchiato",
|
||||
"ansible.lightspeed.enabled": false,
|
||||
"ansible.lightspeed.suggestions.enabled": false,
|
||||
"docker.extension.enableComposeLanguageServer": false,
|
||||
@@ -85,7 +85,6 @@
|
||||
"git show"
|
||||
],
|
||||
"roo-cline.deniedCommands": [],
|
||||
"dart.flutterSdkPath": "/home/menno/.flutter/flutter",
|
||||
"kilo-code.allowedCommands": [
|
||||
"npm test",
|
||||
"npm install",
|
||||
@@ -96,5 +95,5 @@
|
||||
],
|
||||
"kilo-code.deniedCommands": [],
|
||||
"github.copilot.nextEditSuggestions.enabled": true,
|
||||
"workbench.iconTheme": "material-icon-theme"
|
||||
"workbench.iconTheme": "vscode-icons"
|
||||
}
|
||||
Reference in New Issue
Block a user