Compare commits

..

239 Commits

Author SHA1 Message Date
18913b9120 remove Redis service configuration from JuiceFS package 2025-03-19 00:55:04 +01:00
49d0088595 add JuiceFS custom mount service configuration 2025-03-19 00:53:22 +01:00
c2adf02a55 update flake.lock files to reflect latest dependencies and revisions 2025-03-04 11:36:08 +01:00
Menno van Leeuwen
60bfa228e6 adds 2025 ssh key pub
Signed-off-by: Menno van Leeuwen <menno@mennos-desktop.dory-gorgon.ts.net>
2025-01-28 15:17:15 +01:00
4e28e5cbb0 Removes, kitty, waybar, hyprland and all it's other side apps required to make that useful
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
2025-01-15 16:20:32 +01:00
68943b57ee fix install_nix function to check for nix-channel instead of nixos-version
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 14:03:16 +01:00
733be4c7c8 refactor setup script to improve argument handling for continuation flag
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 13:44:34 +01:00
a0245017f7 refactor setup script to use a variable for continuation flag handling
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
2025-01-15 13:40:49 +01:00
5803376722 update installation message to instruct users to reopen shell and rerun the script after Nix installation
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
2025-01-15 13:36:17 +01:00
a3f2b7d759 refactor setup script to remove continuation flag handling and streamline installation steps
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 13:33:57 +01:00
0747d2a784 enhance setup script to support continuation of installation process
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
2025-01-15 12:52:40 +01:00
852c5ebef8 add success log and reinvoke script after Nix installation
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:55:27 +01:00
783d1bac25 fix setup script to ensure SELinux config writes correctly and clean up whitespace
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:51:20 +01:00
325310c1ca refactor hostname preparation to check for existing hostname before NixOS verification
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2025-01-15 11:49:54 +01:00
1db4d0c49b add log_warning function to output warnings in yellow
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:48:47 +01:00
4d20f2d7a6 fix SELinux check to correctly compare getenforce output
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:48:06 +01:00
bbd3198976 fix SELinux check to correctly identify Non-NixOS systems
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:47:12 +01:00
d48a3d3925 refactor hostname preparation to check for NixOS only when hardware configuration is absent
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2025-01-15 11:45:14 +01:00
c11c4e7482 add SELinux check and adjust mode in setup script for non-NixOS systems
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:43:11 +01:00
e06b93215f ensure user input is read from the terminal in the warning prompt
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2025-01-15 11:38:51 +01:00
041307aaea update setup script message to indicate compatibility with Fedora
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2025-01-15 11:35:27 +01:00
1d0ef3d31e refactor setup script to conditionally set hostname and rebuild NixOS only on NixOS systems
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2025-01-15 11:34:06 +01:00
206cbfb564 remove unused flake.lock entries and clean up nixpkgs references
All checks were successful
Nix Format Check / check-format (push) Successful in 44s
2025-01-15 11:09:50 +01:00
bc85c85592 Merge branch 'master' of git.mvl.sh:vleeuwenmenno/dotfiles 2025-01-15 11:09:42 +01:00
569e9698f7 update flake.lock files for home-manager and nixos with new dependency revisions 2025-01-15 11:06:38 +01:00
8eabebb9e8 add gpredict and LazyVim plugin to home-manager packages 2025-01-15 11:06:30 +01:00
58bd63a4c7 remove unused gpg ssh program configuration and update flake.lock dependencies
All checks were successful
Nix Format Check / check-format (push) Successful in 47s
2025-01-09 14:18:01 +01:00
0db42dfcbc adds params to allow experimental features
Some checks failed
Nix Format Check / check-format (push) Has been cancelled
2025-01-09 14:17:18 +01:00
9236bf36f1 revert 1password to nixos only, we install 1password on fedora by hand
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2025-01-02 02:02:04 +01:00
4fab06b82b reencrypt gpg secrets
All checks were successful
Nix Format Check / check-format (push) Successful in 40s
2025-01-02 01:59:48 +01:00
b5775fd29b switch to ptyxis since ghostty not work on fedora atm 2025-01-02 01:59:36 +01:00
135c08eda0 rename gamingpc to desktop 2025-01-02 01:59:23 +01:00
938ab8e83b CLI fixes for Fedora 2025-01-02 01:59:03 +01:00
dfff773f7e moves various things to home manager
All checks were successful
Nix Format Check / check-format (push) Successful in 1m4s
2025-01-02 00:59:22 +01:00
df66535bf1 add back kitty configuration and themes to dotfiles
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-12-30 15:03:07 +01:00
b5e2bb933f add ghostty configuration and update flake.lock for new dependencies
All checks were successful
Nix Format Check / check-format (push) Successful in 40s
2024-12-30 15:00:15 +01:00
f3e07bad16 rename dotf term to dotf hello
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-12-30 13:47:26 +01:00
ff4f509d26 remove kitty configuration and themes from dotfiles
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2024-12-30 13:44:22 +01:00
1a5410ec9e Merge branch 'master' of git.mvl.sh:vleeuwenmenno/dotfiles
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2024-12-30 13:42:05 +01:00
8daace9b77 adds ghostty 2024-12-30 13:38:14 +01:00
65c42118e2 add Whatsie Flatpak reference; update flake.lock for nixpkgs and hyprland; enable NTFS support in ZFS configuration
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-12-27 12:35:51 +01:00
ed0b0508bb Merge branch 'master' of git.mvl.sh:vleeuwenmenno/dotfiles
All checks were successful
Nix Format Check / check-format (push) Successful in 40s
2024-12-27 11:03:45 +01:00
a480aa5804 refactor hyprland configuration to use external monitors.local.conf for monitor settings 2024-12-27 11:03:42 +01:00
70d953b18c add ddrescue to home packages for data recovery 2024-12-27 11:02:45 +01:00
e767549a57 update hyprland configuration to remove 1Password window rule; update flake.lock with new revisions and hashes; modify production SSH config
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-12-24 14:34:21 +01:00
3d97f9b5d7 refactor hyprland configuration and add grimblast screenshot tool; improve key bindings for better usability
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2024-12-24 13:56:54 +01:00
f10988efba update flake.nix to include hyprland and its plugins for gamingpc; remove commented cosmic module configuration
All checks were successful
Nix Format Check / check-format (push) Successful in 44s
2024-12-23 18:14:32 +01:00
7a1d88476e adds hyprland wd with required stuff
All checks were successful
Nix Format Check / check-format (push) Successful in 40s
2024-12-23 14:08:09 +01:00
530fcb10c3 update flake.lock and workstation.nix for nixpkgs revisions; enable Hyprland and add kitty to system packages
Some checks failed
Nix Format Check / check-format (push) Failing after 37s
2024-12-18 10:21:02 +01:00
7d1bc11b4d update flake.lock and workstation.nix for nixpkgs revisions and clean up vscode settings
Some checks failed
Nix Format Check / check-format (push) Failing after 39s
2024-12-18 10:20:02 +01:00
554d9bf7cf add rpi-imager for Raspberry Pi OS image writing
Some checks failed
Nix Format Check / check-format (push) Failing after 37s
2024-12-13 13:31:42 +01:00
8993a09549 remove ollama package configurations
Some checks failed
Nix Format Check / check-format (push) Failing after 45s
2024-12-13 11:24:56 +01:00
1a1067b0d1 adds gparted 2024-12-13 11:24:43 +01:00
82c1d5d995 updated secrets
Some checks failed
Nix Format Check / check-format (push) Failing after 38s
Signed-off-by: Menno van Leeuwen <menno@vleeuwen.me>
2024-12-12 11:02:49 +01:00
2c04a6ef26 disable cosmic de
Some checks failed
Nix Format Check / check-format (push) Failing after 38s
2024-12-12 10:55:54 +01:00
8faab83651 comment out xanmod kernel installation in server configuration
Some checks failed
Nix Format Check / check-format (push) Failing after 53s
2024-12-11 14:58:44 +01:00
84019d2ba8 adds help function and improves parameter handling in upgrade script
Some checks failed
Nix Format Check / check-format (push) Failing after 36s
2024-12-11 14:57:58 +01:00
20a4b6b529 fixes: fulls-peed parameter detection
Some checks failed
Nix Format Check / check-format (push) Failing after 36s
2024-12-11 14:55:49 +01:00
76e9cb0371 adds swap to all devices
Some checks failed
Nix Format Check / check-format (push) Failing after 38s
adds noatime to all devices root partition mount options
adds cosmic desktop to workstations
adds xanmod kernel to workstations
adds xanmod with zfs to servers
adds perplexityai extension to brave
removes openra flatpak
adds threads limit to upgrade command to prevent system freezes
removes fcitx5 completely
2024-12-11 14:51:35 +01:00
56913879cb chore: remove obsolete local host entries from NixOS configuration
Some checks failed
Nix Format Check / check-format (push) Failing after 36s
2024-12-09 16:02:38 +01:00
a4871ba423 final touches upgrade 24.11
Some checks failed
Nix Format Check / check-format (push) Has been cancelled
2024-12-09 16:02:05 +01:00
2c0e3c746b upgrade to 24.11
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-11-29 18:02:30 +01:00
2cd1c77d60 chore: remove obsolete Nginx configuration and related files for personal website
All checks were successful
Nix Format Check / check-format (push) Successful in 48s
2024-11-21 23:12:31 +01:00
5cb3e5fe44 chore: update NixOS configuration to use stable NVIDIA driver package from kernelPackages
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
2024-11-21 22:39:19 +01:00
c5fdac86b2 chore: update NixOS configuration to fetch unstable tarball and switch to stable NVIDIA driver package
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-11-21 22:34:51 +01:00
32f4717c8a chore: update NixOS configuration to use unstable NVIDIA driver package and allow unfree packages
All checks were successful
Nix Format Check / check-format (push) Successful in 36s
2024-11-21 22:33:01 +01:00
031688333e chore: update NVIDIA driver package to beta version for improved compatibility
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2024-11-21 22:27:18 +01:00
eabff41a56 refactor: streamline upgrade script and update Flutter environment variable
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2024-11-21 22:25:19 +01:00
5c73283e5f Merge branch 'master' of git.mvl.sh:vleeuwenmenno/dotfiles
All checks were successful
Nix Format Check / check-format (push) Successful in 37s
2024-11-21 16:52:13 +01:00
0b523463f2 general upgrades and adds adb and ulauncher addon 2024-11-21 16:52:06 +01:00
70335cf637 updates authorized_keys files to add new SSH key for Samsung S24U
All checks were successful
Nix Format Check / check-format (push) Successful in 39s
2024-11-18 22:32:49 +01:00
0d26f30261 adds ollama-cuda to home packages for mennos-server
All checks were successful
Nix Format Check / check-format (push) Successful in 59s
2024-11-18 22:11:29 +01:00
93b1aba78d adds nvtop for all hosts
All checks were successful
Nix Format Check / check-format (push) Successful in 1m14s
2024-11-18 21:28:34 +01:00
994d0cdedd Merge branch 'master' of git.mvl.sh:vleeuwenmenno/dotfiles
All checks were successful
Nix Format Check / check-format (push) Successful in 38s
2024-11-18 19:58:31 +01:00
4a80da3995 adds plex media player (new version) as flatpak 2024-11-18 19:58:19 +01:00
728ca39836 disables vesktop on startup, as it is causing wayland crashes on boot 2024-11-18 19:57:40 +01:00
c0ab3d1517 revert purposefully broken file gitea action works!
All checks were successful
Nix Format Check / check-format (push) Successful in 36s
2024-11-18 15:25:14 +01:00
45b90fc066 purposefully broken file to test action on gitea
Some checks failed
Nix Format Check / check-format (push) Failing after 36s
2024-11-18 15:24:29 +01:00
d3938830b6 fix: update nixfmt workflow to use 'master' branch instead of 'main'
All checks were successful
Nix Format Check / check-format (push) Successful in 36s
2024-11-18 15:23:21 +01:00
96fd886f84 fix: update nixfmt workflow to use 'main' branch and improve formatting checks 2024-11-18 15:23:08 +01:00
212050a0ee fix: update nixfmt workflow to use latest install action and change nixfmt package
Some checks failed
Nix Format Check / check-format (push) Failing after 10s
2024-11-18 15:16:41 +01:00
5a0a4a96c5 master not main
Some checks failed
Nix Format Check / check-format (push) Failing after 37s
2024-11-18 15:14:59 +01:00
48fa653027 fix: update branches for nixfmt workflow to include master 2024-11-18 15:14:04 +01:00
4da793d37c runs nixfmt 2024-11-18 15:04:20 +01:00
df08e01d9e bruh 2024-11-18 13:38:29 +01:00
b89d71cc5e fix: correct gitconfig source path for mennos-server 2024-11-18 13:36:49 +01:00
e67cfd7bfd adds additional gitconfig sources for mennos-desktop, mennos-gamingpc, and homeserver-pc 2024-11-18 13:32:06 +01:00
b7b0f11033 adds gitconfig for mennos-server to configuration 2024-11-18 13:30:41 +01:00
178bf9ebe4 adds development and subsite entries to hosts configuration 2024-11-18 13:19:48 +01:00
96ad469aed adds ncdu to home-manager packages for disk usage analysis 2024-11-16 19:25:27 +01:00
bb6545a45a updates ZFS configuration to set maximum ARC size to 20 GiB 2024-11-16 15:14:44 +01:00
b2768c334a formats boot.kernelParams for ZFS configuration to enable compressed ARC and set maximum ARC size 2024-11-16 14:55:38 +01:00
1442638609 adds smartmontools to ZFS configuration 2024-11-16 14:54:51 +01:00
2af2995b18 adds ZFS ARC maximum size parameter to configuration (16GB) 2024-11-16 14:37:42 +01:00
8a656f0d95 sets ownership and permissions for backup directory 2024-11-16 14:14:05 +01:00
f289c12223 sets ownership and permissions for backup directories 2024-11-16 14:10:29 +01:00
fb9219719d adds backup ZFS mount points to configuration 2024-11-16 14:06:15 +01:00
aef9670f74 migrates vscode configuration from common to workstation 2024-11-16 13:50:53 +01:00
9c85419950 moves vscode to common 2024-11-16 13:44:03 +01:00
fbb83102c4 adds voice chat port for Minecraft and includes it in allowedUDPPorts 2024-11-16 04:38:18 +01:00
9a395cfe07 moves shit around 2024-11-16 04:33:52 +01:00
8fc75274cd removes NAT configuration and Tailscale reverse path check from firewall settings 2024-11-16 04:21:10 +01:00
29cc346709 removes internal port definitions and iptables rules for established connections and internal traffic 2024-11-16 03:43:08 +01:00
3cb256f6e5 adds iptables rules to allow established connections, internal network traffic, and Docker communication 2024-11-16 03:08:23 +01:00
a242530770 removes DNS from allowedUDPPorts and cleans up unused iptables rules 2024-11-16 02:58:59 +01:00
08a1372f9f adds DNS to allowedUDPPorts and removes WAN access block for internal services 2024-11-16 02:57:53 +01:00
014badfa99 updates internal network traffic rules to allow access from the 192.168.86.0/24 subnet 2024-11-16 02:54:30 +01:00
a068565066 refactors firewall configuration to enhance security and internal communication rules 2024-11-16 02:53:12 +01:00
9b1ceddeb7 adds additional Docker firewall rules to enhance container communication 2024-11-16 02:48:28 +01:00
4e169b6668 updates allowedTCPPorts for internal services and adds additional firewall rules 2024-11-16 02:46:34 +01:00
7bf22e7023 refactors internal communication rules in server configuration 2024-11-16 02:26:26 +01:00
7e1a49c29e removes Qbittorrent port entry and comments out additional internal communication rules 2024-11-16 02:25:53 +01:00
238661573c adds allowedTCPPorts for Plex and Jellyfin, reorders existing ports 2024-11-16 02:21:13 +01:00
ff99e5e46f remove deprecated Docker configurations and scripts for various services 2024-11-16 02:14:44 +01:00
e6dfc2aba4 adds allowedTCPPorts for Minecraft and updates allowedTCPPorts for internal and media services 2024-11-16 02:03:20 +01:00
3b7b414394 adds allowedTCPPorts for Overseerr service 2024-11-16 01:55:58 +01:00
c3f433cc3d adds allowedTCPPorts for Flaresolerr service 2024-11-16 01:48:12 +01:00
e8ed942906 adds allowedTCPPorts for Arr services 2024-11-16 01:47:17 +01:00
45cdd53f0d refactor allowedTCPPorts configuration for internal services 2024-11-16 01:39:43 +01:00
974a0328fc refactor allowedTCPPorts configuration for docker0 interface 2024-11-16 01:36:46 +01:00
7d64801ae2 adds allowedTCPPorts for local network access in docker0 interface 2024-11-16 01:35:44 +01:00
09ad59d3c5 adds allowedTCPPorts for Sabnzbd and Qbittorrent services 2024-11-16 01:30:43 +01:00
b8adf7b200 disable all docker shit 2024-11-16 00:36:49 +01:00
f1e00e4038 adds extra_hosts configuration for nginx-proxy-manager and authelia services 2024-11-16 00:22:34 +01:00
9235298118 adds various firewall rules 2024-11-16 00:19:14 +01:00
e3f0493630 removes .env file source from nginx-proxy-manager configuration 2024-11-16 00:16:25 +01:00
0270ac41bd ditched traefik for npm 2024-11-16 00:15:26 +01:00
1e73386dca disabled nginx for now
Signed-off-by: Menno van Leeuwen <menno@vleeuwen.me>
2024-11-16 00:05:42 +01:00
db89a244b0 adds upnp service 2024-11-16 00:04:38 +01:00
945196c8e0 enables Traefik API dashboard and sets log level to DEBUG 2024-11-16 00:00:58 +01:00
bbe516f998 removes duplicate parameter declaration in zfs.nix 2024-11-15 23:53:46 +01:00
04c7850e6e adds permission setter 2024-11-15 23:53:10 +01:00
9fbd69a25a enables traefik console 2024-11-15 23:42:45 +01:00
9bd4259cf2 adds user group ids 2024-11-15 23:37:46 +01:00
39a62a239d enables golink service 2024-11-15 23:03:41 +01:00
6eeace47ec adds various docker services 2024-11-15 23:00:00 +01:00
4c283bf58d moved minecraft data mount point 2024-11-15 22:57:45 +01:00
2b07a58d7b removed stuff 2024-11-15 22:52:05 +01:00
3433cce92b removes deprecated shit 2024-11-15 22:48:58 +01:00
1937bd9acf adds zfs mount points 2024-11-15 22:48:09 +01:00
9339d653c2 removed ai bullshit recommendation 2024-11-15 22:45:20 +01:00
0483ac9a8d remove automount setting from ZFS configuration 2024-11-15 22:44:53 +01:00
1c56aea8fb adds automount to zfs 2024-11-15 22:43:52 +01:00
e546ecea9a remove zfs-permissions systemd service and associated permission settings 2024-11-15 22:25:43 +01:00
8fde290f40 enable NVIDIA container toolkit for Docker support 2024-11-15 22:24:50 +01:00
9e38b4f794 add 32bit libraries for nvidia 2024-11-15 22:24:09 +01:00
7fb331c404 adds nvidia docker support for mennos-server 2024-11-15 22:21:06 +01:00
5d1fe879dd adjusted mc data mountpoint 2024-11-15 21:59:46 +01:00
e75263b16e re-enabled docker 2024-11-15 21:55:18 +01:00
28422d460a group users not menno 2024-11-15 21:52:35 +01:00
25a070124d let zfs manage mounting 2024-11-15 21:50:56 +01:00
150847cbd8 removes mount service configuration from ZFS settings 2024-11-15 21:41:28 +01:00
0af32e52ed applies mount service zfsutil 2024-11-15 21:37:27 +01:00
4d6e69e9d0 enables zfs mount points 2024-11-15 21:29:21 +01:00
df06f221b8 chown menno:users not menno:menno 2024-11-15 21:24:59 +01:00
e719b0e693 disabled zfs mount points 2024-11-15 21:23:36 +01:00
77b84107f6 removes deprecated zfs value
adds hostid required by zfs
2024-11-15 21:17:06 +01:00
0a961ec53f zfs needs full absolute path not variables 2024-11-15 21:11:39 +01:00
d68fba4ba3 remove useless params 2024-11-15 21:05:25 +01:00
93517fbf79 removes line that would delete required file 2024-11-15 21:05:19 +01:00
0e619da207 temporarily disabled zfs 2024-11-15 20:46:36 +01:00
cc7686668c temporarily disable zfs backups
Signed-off-by: Menno van Leeuwen <menno@vleeuwen.me>
2024-11-15 20:44:35 +01:00
0c92e38370 disables docker services until basics on server are setup 2024-11-15 20:24:08 +01:00
60f0ab11bd moves /mnt/20tb/ away to just /mnt 2024-11-15 20:23:55 +01:00
8638652839 adds ulauncher github shortcut 2024-11-15 20:20:56 +01:00
5f83cf2e6d adds zfs for server and brave search no longer kills brave 2024-11-15 16:05:20 +01:00
5907d7a4e8 adds ulauncher 2024-11-15 12:46:26 +01:00
9cc0e5f7c3 feat: update Duplicati Docker configuration to include notifications service and adjust volume paths 2024-11-14 22:31:05 +01:00
ce299365c9 replaces zen with brave as startup item 2024-11-14 22:30:58 +01:00
6bb22de9ce adds duplicati notif 2024-11-14 22:30:42 +01:00
e83ebe2d2c feat: add various Docker services and configurations for Minecraft, Plex, Sabnzbd, and more 2024-11-14 20:39:11 +01:00
a439ccc355 fix: set selected item to top in clipboard indicator
Signed-off-by: Menno van Leeuwen <menno@vleeuwen.me>
2024-11-14 13:33:59 +01:00
94f2acb15c adds clipboard indicator gnome extension 2024-11-14 13:32:11 +01:00
41b8417d4e go is reserved somehow, switched search engines to use : prefix 2024-11-14 12:45:28 +01:00
a26038b47a adds brave browser
adds brave browser search engine inject script
adds sqlite and sqlitebrowser
updates wireguard vpn peers
updates dash-to-dock fav apps
adds plexamp
updates update.sh to show slightly more logging
updates auto-start to clear dead screens before starting stuff
2024-11-14 12:03:40 +01:00
042826cd4f adds gitea docker service 2024-11-11 15:31:42 +01:00
9c18261ef4 adds TODO for mounting 8TB mass storage disk in mennos-server configuration 2024-11-11 15:25:39 +01:00
5be84404a5 adds Satisfactory game server and UPnP service to Docker configuration 2024-11-11 15:20:02 +01:00
857225c049 adds UPnP service to Factorio Docker Compose configuration 2024-11-11 15:19:41 +01:00
91d68a507c renames golink service to server in Docker Compose configuration 2024-11-11 15:19:34 +01:00
6f08b3ebb2 adds UPnP service to WireGuard Docker Compose configuration 2024-11-11 15:19:21 +01:00
803843bc24 adds default formatter for Docker Compose in VSCode settings 2024-11-11 15:19:04 +01:00
6d0d2a2ca9 set default branch to main in git configuration 2024-11-11 15:18:52 +01:00
35cf0d53b7 adds immich as docker service 2024-11-11 12:12:08 +01:00
c9feb3d7bf added dead session wipe 2024-11-11 11:27:35 +01:00
88fe75b7e0 adds japanese input support 2024-11-11 11:26:34 +01:00
b12fa46ea1 re-added auto-start and updated auto-start to check for existing sessions 2024-11-11 11:26:20 +01:00
cb1a45a54e Update README.md 2024-11-09 04:20:51 +01:00
90fe3c8554 refactors help.sh and functions.sh for improved logo display and adds trash notification; updates help.txt for clarity 2024-11-09 04:09:15 +01:00
58ba701f1f removes unused funcs 2024-11-09 04:00:18 +01:00
a3f2a17dbe updates 1password to unstable 2024-11-09 03:57:50 +01:00
13c2365b7b fixes small bug with update.sh
readded term welcome screen to dotf
cleaned up 1password.nix
2024-11-09 03:56:39 +01:00
32ce39cb21 removes pyenv installation, already exists in nix 2024-11-09 03:44:10 +01:00
68856dd2b5 removes rip2 in favor of trash-cli
changes rm alias to trash-put
removes unused gnome-extensions-cli and bauh pipx package
2024-11-09 03:40:40 +01:00
536b5f2e0b removes legacy shell scripts
refactors dotf shell script
removes tailscale related code (now managed through nix)
removes shitty welcome prompt for ChatGPT (No longer used)
removes shitty git repos feature
2024-11-09 03:29:59 +01:00
272aac9a94 adds cleanup 2024-11-09 02:49:46 +01:00
63dd78c557 adds warning message and prompt to continue 2024-11-09 02:47:30 +01:00
b44457af3a moves bootloader directives to hardware specific files and adds bootloader question to setup.sh 2024-11-09 02:38:29 +01:00
f038bcaa61 first setup nix and ha before symlinking new configs 2024-11-08 14:44:03 +01:00
00f647074d adds default value for need_sudo parameter in backup_file function 2024-11-08 14:38:12 +01:00
4926ae8cc0 adds sudo handling for file backups and improves symlink setup in setup.sh 2024-11-08 14:35:33 +01:00
b13cb3ff0e refactors update_nixos_flake and update_home_manager_flake functions for improved configuration handling and validation 2024-11-08 14:30:26 +01:00
0b8a5a150d enhances NixOS and Home Manager flake updates with temporary file handling and validation 2024-11-08 14:24:35 +01:00
dfc68c275a ensures interactive input for terminal prompts in setup.sh 2024-11-08 14:17:14 +01:00
792af5e4c6 wip 2024-11-08 14:11:53 +01:00
7ba5ab2067 improves input validation in create_hardware_config function 2024-11-08 14:07:54 +01:00
36cb9bbb42 fixes infinite loop bug in setup 2024-11-08 14:05:28 +01:00
73013b36d0 fixes syntax error 2024-11-08 14:02:29 +01:00
2a795cd19e updates setup.sh to support adding new machines 2024-11-08 13:50:28 +01:00
f6409db279 adds deja-dup 2024-11-08 12:13:53 +01:00
0520961390 swap console and files in dock 2024-11-08 12:06:27 +01:00
576f141889 updates readme.md and updates update cli to do a channel update before nixos-rebuild 2024-11-08 12:06:12 +01:00
f4f9d0b790 adds clone feature to setup.sh 2024-11-08 12:05:48 +01:00
60f8f6ae78 adds vitals gnome extension 2024-11-08 12:05:31 +01:00
8822d5ea5d adds frog shortcut 2024-11-08 11:59:27 +01:00
ccec538346 adds dosbox, frog ocr and gnome boxes 2024-11-08 11:59:14 +01:00
8b13a2995f adds console and files to dock 2024-11-06 16:44:43 +01:00
9d862afbaa adds export for work to flag i am devops 2024-11-06 16:02:47 +01:00
0c0c36b1c5 updates tilingshell layout 2024-11-06 13:53:50 +01:00
8631ec474d updates docker configurations to use docker-compose.yml and .env files for duplicati, factorio, golink, and wireguard services 2024-11-05 23:33:50 +01:00
ddf1fd64ab renames vpn configuration to wireguard 2024-11-05 23:29:58 +01:00
d0ce652f04 renames vpn service to wireguard 2024-11-05 23:29:09 +01:00
15ac4c77e1 adds golink env template 2024-11-05 23:25:45 +01:00
d0c690a990 adds factorio
adds duplicati
adds golink
updates vpn config
2024-11-05 23:25:14 +01:00
af0ac3bfbf changed vpn docker to a systemd service dockerized 2024-11-05 23:05:27 +01:00
b7c6825268 adds vpn docker container
adds smile
disables ollama on server
2024-11-05 22:51:38 +01:00
309a2a1f35 moves ollama to it's own service file 2024-11-05 20:53:11 +01:00
c0626c9d27 adds pano alpha and fixes for gnome extensions 2024-11-05 19:16:37 +01:00
ac7376f606 refines .gitignore to include all secrets while excluding non-encrypted files 2024-11-05 15:08:58 +01:00
9c28dfe6ae adds packages per hostname
adds unstable nixpkgs for vscode, docker, go and ollama
updates tilingshell layouts
2024-11-05 15:07:37 +01:00
55d2a96a33 adds pwfeedback to sudo
moves dock to LEFT
2024-11-03 22:16:17 +01:00
ec468d6221 adds nice welcome log to show where you are logged in on 2024-11-03 22:11:30 +01:00
58866ea8f8 updates docs 2024-11-03 21:56:34 +01:00
01dc1784ef adjusted end message of setup 2024-11-03 21:53:24 +01:00
0563a01c96 enhance clear_files function: add checks for .bashrc and .profile to prevent conflicts 2024-11-03 21:51:35 +01:00
cbd590bf19 refactor setup script: rename setup_symlinks to clear_files and add backup messages 2024-11-03 21:50:09 +01:00
0c0ccab938 fixes to bashrc
adds bunch of extra software
adds ollama
adds emote shortcut
2024-11-03 03:06:24 +01:00
93e4f8462e declutter the console, adds fzf and simpler theme for starship 2024-11-03 00:16:45 +01:00
26b1a61b2c more aliases 2024-11-03 00:16:11 +01:00
116 changed files with 393161 additions and 391459 deletions

49
.bashrc
View File

@@ -18,7 +18,7 @@ alias la='l -a'
alias cat='bat' alias cat='bat'
alias du='dust' alias du='dust'
alias df='duf' alias df='duf'
alias rm="echo Use 'rip' instead of rm." alias rm="trash-put"
# Docker Aliases # Docker Aliases
alias d='docker' alias d='docker'
@@ -69,6 +69,9 @@ export XDG_DATA_DIRS=$XDG_DATA_DIRS:/usr/share:/var/lib/flatpak/exports/share:$H
# Allow unfree nixos # Allow unfree nixos
export NIXPKGS_ALLOW_UNFREE=1 export NIXPKGS_ALLOW_UNFREE=1
# Allow insecure nixpkgs
export NIXPKGS_ALLOW_INSECURE=1
# Set DOTF_HOSTNAME to the hostname from .hostname file # Set DOTF_HOSTNAME to the hostname from .hostname file
# If this file doesn't exist, use mennos-unknown-hostname # If this file doesn't exist, use mennos-unknown-hostname
export DOTF_HOSTNAME="mennos-unknown-hostname" export DOTF_HOSTNAME="mennos-unknown-hostname"
@@ -78,21 +81,11 @@ fi
# Tradaware / DiscountOffice Configuration # Tradaware / DiscountOffice Configuration
if [ -d "/home/menno/Projects/Work" ]; then if [ -d "/home/menno/Projects/Work" ]; then
export TRADAWARE_FROM_SOURCE=true export TRADAWARE_DEVOPS=true
fi fi
# pyenv Configuration # Flutter Web and other tools that require Chrome
export PYENV_ROOT="$HOME/.pyenv" export CHROME_EXECUTABLE=$(which brave)
if [[ -d $PYENV_ROOT/bin ]]; then
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
fi
# Flutter Environment
if [ -d "$HOME/flutter" ]; then
export PATH="$PATH:$HOME/flutter/bin"
export CHROME_EXECUTABLE=/usr/bin/brave-browser
fi
# 1Password Source Plugin (Assuming bash compatibility) # 1Password Source Plugin (Assuming bash compatibility)
if [ -f /home/menno/.config/op/plugins.sh ]; then if [ -f /home/menno/.config/op/plugins.sh ]; then
@@ -103,6 +96,8 @@ fi
if ! command -v starship &> /dev/null; then if ! command -v starship &> /dev/null; then
echo "FYI, starship not found" echo "FYI, starship not found"
else else
export STARSHIP_ENABLE_RIGHT_PROMPT=true
export STARSHIP_ENABLE_BASH_CONTINUATION=true
eval "$(starship init bash)" eval "$(starship init bash)"
fi fi
@@ -140,9 +135,33 @@ launch_zellij_conditionally() {
fi fi
} }
# Disabled for now, I don't like the way it behaves but I don't want to remove it either
# launch_zellij_conditionally # launch_zellij_conditionally
# Source ble.sh if it exists
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 # Display a welcome message for interactive shells
if [ -t 1 ]; then if [ -t 1 ]; then
dotf term dotf hello
fi fi

44
.github/workflows/nixfmt.yml vendored Normal file
View 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
View File

@@ -3,13 +3,8 @@ config/ssh/config.d/*
logs/* logs/*
# Don't include secrets in the repository but do include encrypted secrets # Don't include secrets in the repository but do include encrypted secrets
secrets/wp/*.* !secrets/**/*.gpg
!secrets/wp/*.gpg secrets/**/*.*
secrets/ssh_config/*.*
!secrets/ssh_config/*.gpg
secrets/*.*
!secrets/*.gpg
**/*.keys
# SHA256 hashes of the encrypted secrets # SHA256 hashes of the encrypted secrets
*.sha256 *.sha256

View File

@@ -14,27 +14,18 @@ I'd recommend getting the GNOME version as it's easier to setup and you can sele
### 1. Clone dotfiles to home directory ### 1. Clone dotfiles to home directory
Clone the repository to your home directory, you can do this by opening a shell with git installed. Open a nix-shell with git and begin the setup process. This setup will prompt you various questions such as your desired hostname and if the system you are installing is supposed to be a server or workstation.
Feel free to use an exisiting hostname to restore an old system or chose a new name.
If you are running this in a VM be sure to answer yes if it prompts you. This will ensure it generates the correct boot loader configuration.
```bash ```bash
nix-shell -p git nix-shell -p git
git clone https://git.mvl.sh/vleeuwenmenno/dotfiles.git ~/dotfiles curl -L https://df.mvl.sh | bash
exit
``` ```
### 2. Run `setup.sh` ### 2. Reboot
You can run the setup.sh in the dotfiles folder to setup the system.
This will prompt you to give a hostname for the system. For things to properly work you should ensure this repository contains the relevant assets for the hostname you provide.
In case you're setting up a new system you could use any of the existing hostnames in the `nconfig/nixos/hardware/` folder.
Afterwards you should adopt the pre-generated configuration under `/etc/nixos/hardware-configuration.nix` to the repository and change the hostname to anything you like.
```bash
cd ~/dotfiles && ./setup.sh
```
### 3. Reboot
It's probably a good idea that you either reboot or log out and log back in to make sure all the changes are applied. It's probably a good idea that you either reboot or log out and log back in to make sure all the changes are applied.
@@ -42,33 +33,30 @@ It's probably a good idea that you either reboot or log out and log back in to m
# sudo reboot # sudo reboot
``` ```
### 4. Run `dotf update` ### 3. Run `dotf update`
Run the `dotf update` command, although nixos-rebuild and home-manager already ran the dotf cli didn't yet place proper symlinks for everything. Run the `dotf update` command, although the setup script did most of the work some symlinks still need to be set which at the moment is done using shell scripts.
```bash ```bash
source ~/.bashrc && dotf update dotf update
``` ```
### 5. Setup 1Password ### 4. Setup 1Password (Optional)
1Password is installed but you need to login and enable the SSH agent and CLI components under the settings before continuing. 1Password is installed but you need to login and enable the SSH agent and CLI components under the settings before continuing.
### 6. Decrypt secrets ### 5. Decrypt secrets
Now that you've got 1Password setup you can decrypt the secrets needed for various applications. Either using 1Password or by manualling providing the decryption key you should decrypt the secrets.
Various configurations depend on the secrets to be decrypted such as the SSH keys, yubikey pam configuration and more.
```bash ```bash
dotf secrets decrypt dotf secrets decrypt
``` ```
### 7. Reboot ### 6. Profit
After you have done all the steps above you should reboot your system to make sure everything is working as intended. You should now have a fully setup system with all the configurations applied.
```bash
# sudo reboot
```
## Adding a new system ## Adding a new system

View File

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

20
bin/actions/hello.sh Executable file
View 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

View File

@@ -3,7 +3,7 @@
source $HOME/dotfiles/bin/helpers/functions.sh source $HOME/dotfiles/bin/helpers/functions.sh
# Print logo # Print logo
echo "Menno's Dotfiles" | figlet | lolcat logo
# Print help # Print help
cat $HOME/dotfiles/bin/resources/help.txt cat $HOME/dotfiles/bin/resources/help.txt

View File

@@ -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

View File

@@ -106,10 +106,10 @@ decrypt_folder() {
done done
} }
if [[ "$2" == "decrypt" ]]; then if [[ "$1" == "decrypt" ]]; then
printfe "%s\n" "cyan" "Decrypting secrets..." printfe "%s\n" "cyan" "Decrypting secrets..."
decrypt_folder ~/dotfiles/secrets decrypt_folder ~/dotfiles/secrets
elif [[ "$2" == "encrypt" ]]; then elif [[ "$1" == "encrypt" ]]; then
printfe "%s\n" "cyan" "Encrypting secrets..." printfe "%s\n" "cyan" "Encrypting secrets..."
encrypt_folder ~/dotfiles/secrets encrypt_folder ~/dotfiles/secrets
fi fi

View File

@@ -1,5 +0,0 @@
#!/usr/bin/env bash
source $HOME/dotfiles/bin/helpers/functions.sh
logo continue

View File

@@ -92,19 +92,28 @@ symlinks() {
done done
} }
sys_packages() {
####################################################################################################
# Update system packages
####################################################################################################
printfe "%s\n" "cyan" "Updating system packages..." ####################################################################################################
# Update packages
####################################################################################################
sys_packages() {
if [[ "$OSTYPE" == "darwin"* ]]; then if [[ "$OSTYPE" == "darwin"* ]]; then
printfe "%s\n" "cyan" "Updating brew packages..."
brew update brew update
brew upgrade brew upgrade
brew cleanup brew cleanup
else else
if [ -x "$(command -v nixos-version)" ]; then if [ -x "$(command -v nixos-version)" ]; then
cd $HOME/dotfiles/config/nixos && sudo nixos-rebuild switch --flake .#$DOTF_HOSTNAME --impure printfe "%s\n" "cyan" "Updating nix channels..."
printfe "%s" "cyan" "System channels: "
sudo -i nix-channel --update
printfe "%s" "cyan" "User channels: "
nix-channel --update
printfe "%s\n" "cyan" "Updating nixos flake..."
cd $HOME/dotfiles/config/nixos && nix --extra-experimental-features nix-command --extra-experimental-features flakes flake update
# Exit if this failed # Exit if this failed
if [ $? -ne 0 ]; then if [ $? -ne 0 ]; then
@@ -113,15 +122,19 @@ sys_packages() {
return return
fi fi
sudo nala upgrade -y if [ -x "$(command -v apt)" ]; then
sudo nala autoremove -y --purge 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 fi
} }
####################################################################################################
# Update packages
####################################################################################################
cargopkgs() { cargopkgs() {
printfe "%s\n" "cyan" "Ensuring Cargo packages are installed..." printfe "%s\n" "cyan" "Ensuring Cargo packages are installed..."
source $HOME/dotfiles/bin/helpers/cargo_packages.sh source $HOME/dotfiles/bin/helpers/cargo_packages.sh
@@ -134,13 +147,6 @@ pipxpkgs() {
return return
fi fi
printfe "%s\n" "cyan" "Ensuring pyenv is installed..."
if [ ! -d "$HOME/.pyenv" ]; then
curl https://pyenv.run | bash
else
printfe "%s\n" "green" " - pyenv is already installed"
fi
printfe "%s\n" "cyan" "Ensuring pipx packages are installed..." printfe "%s\n" "cyan" "Ensuring pipx packages are installed..."
source $HOME/dotfiles/bin/helpers/pipx_packages.sh source $HOME/dotfiles/bin/helpers/pipx_packages.sh
ensure_pipx_packages_installed ensure_pipx_packages_installed
@@ -162,98 +168,38 @@ flatpakpkgs() {
ensure_flatpak_packages_installed ensure_flatpak_packages_installed
} }
tailscalecmd() {
if is_wsl; then
printfe "%s\n" "yellow" "Running in WSL, skipping Tailscale."
return
fi
printfe "%s\n" "cyan" "Ensuring Tailscale is installed..."
source $HOME/dotfiles/bin/helpers/tailscale.sh
ensure_tailscale_installed
}
####################################################################################################
# Update system settings
####################################################################################################
fonts() {
if is_wsl; then
printfe "%s\n" "yellow" "Running in WSL, skipping fonts."
return
fi
printfe "%s\n" "cyan" "Ensuring fonts are installed..."
source $HOME/dotfiles/bin/helpers/fonts.sh
ensure_fonts_installed
}
git_repos() {
####################################################################################################
# Ensure git repos
####################################################################################################
printfe "%s\n" "cyan" "Ensuring git repos..."
source $HOME/dotfiles/bin/helpers/git.sh
ensure_git_repos
}
homemanager() { homemanager() {
cd $HOME/dotfiles/config/home-manager && NIXPKGS_ALLOW_UNFREE=1 home-manager switch -b backup --flake .#$DOTF_HOSTNAME printfe "%s\n" "cyan" "Updating Home Manager flake..."
} cd $HOME/dotfiles/config/home-manager && nix --extra-experimental-features nix-command --extra-experimental-features flakes flake update
ensure_homemanager_installed() {
if [ ! -x "$(command -v home-manager)" ]; then
printfe "%s\n" "yellow" "Home Manager is not installed, installing it..."
nix-channel --add https://github.com/nix-community/home-manager/archive/release-24.05.tar.gz home-manager
nix-channel --update
nix-shell '<home-manager>' -A install
printfe "%s\n" "yellow" "Home Manager installed, please run the script again."
exit 1
fi
} }
#################################################################################################### ####################################################################################################
# Parse arguments # Parse arguments
#################################################################################################### ####################################################################################################
# Multiple options can be passed to the script, for example:
# ./update.sh --git --symlinks --packages
# If no options are passed, the script will run all functions
# Shift the first argument since this is the script name
shift
if [ "$#" -eq 0 ]; then if [ "$#" -eq 0 ]; then
printfe "%s\n" "yellow" "No options passed, running full update..." printfe "%s\n" "yellow" "No options passed, running full update..."
ensure_homemanager_installed
symlinks symlinks
sys_packages sys_packages
homemanager homemanager
cargopkgs cargopkgs
pipxpkgs pipxpkgs
git_repos
flatpakpkgs flatpakpkgs
tailscalecmd
dotf secrets encrypt dotf secrets encrypt
else else
for arg in "$@"; do for arg in "$@"; do
case $arg in case $arg in
--nixos) --nixos|nixos|nix|nixos-rebuild)
sys_packages sys_packages
;; ;;
--home-manager) --home-manager|--homemanager|ha|hm|home)
homemanager homemanager
;; ;;
--nix) --nix)
sys_packages sys_packages
homemanager homemanager
;; ;;
--git)
git_repos
;;
--symlinks) --symlinks)
symlinks symlinks
;; ;;
@@ -262,7 +208,6 @@ else
cargopkgs cargopkgs
pipxpkgs pipxpkgs
flatpakpkgs flatpakpkgs
tailscalecmd
;; ;;
--pipx) --pipx)
pipxpkgs pipxpkgs
@@ -273,9 +218,6 @@ else
--flatpak) --flatpak)
flatpakpkgs flatpakpkgs
;; ;;
--tailscale)
tailscalecmd
;;
*) *)
printfe "%s\n" "red" "Unknown option: $arg" printfe "%s\n" "red" "Unknown option: $arg"
;; ;;

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

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

163
bin/dotf
View File

@@ -1,76 +1,135 @@
#!/usr/bin/env bash #!/usr/bin/env bash
source $HOME/dotfiles/bin/helpers/functions.sh # strict mode
export DOTFILES_CONFIG=$HOME/dotfiles/config/config.yaml set -euo pipefail
IFS=$'\n\t'
status() { # Script constants
$HOME/dotfiles/bin/actions/status.sh $@ readonly DOTFILES_ROOT="$HOME/dotfiles"
readonly DOTFILES_BIN="$DOTFILES_ROOT/bin"
readonly DOTFILES_CONFIG="$DOTFILES_ROOT/config/config.yaml"
# Source helper functions
if [[ ! -f "$DOTFILES_BIN/helpers/functions.sh" ]]; then
echo "Error: Required helper functions not found"
exit 1
fi
source "$DOTFILES_BIN/helpers/functions.sh"
export DOTFILES_CONFIG
# Command functions
update() {
local update_script="$DOTFILES_BIN/actions/update.sh"
if [[ ! -x "$update_script" ]]; then
printfe "%s\n" "red" "Error: Update script not found or not executable"
return 1
fi
"$update_script" $@
} }
update() { upgrade() {
$HOME/dotfiles/bin/actions/update.sh $@ local upgrade_script="$DOTFILES_BIN/actions/upgrade.sh"
if [[ ! -x "$upgrade_script" ]]; then
printfe "%s\n" "red" "Error: Upgrade script not found or not executable"
return 1
fi
"$upgrade_script" $@
}
hello() {
local term_script="$DOTFILES_BIN/actions/hello.sh"
if [[ ! -x "$term_script" ]]; then
printfe "%s\n" "red" "Error: Terminal script not found or not executable"
return 1
fi
"$term_script" "$@"
} }
help() { help() {
$HOME/dotfiles/bin/actions/help.sh $@ local help_script="$DOTFILES_BIN/actions/help.sh"
if [[ ! -x "$help_script" ]]; then
printfe "%s\n" "red" "Error: Help script not found or not executable"
return 1
fi
"$help_script" "$@"
} }
secrets() { secrets() {
$HOME/dotfiles/bin/actions/secrets.sh $@ local secrets_script="$DOTFILES_BIN/actions/secrets.sh"
if [[ ! -x "$secrets_script" ]]; then
printfe "%s\n" "red" "Error: Secrets script not found or not executable"
return 1
fi
"$secrets_script" "$@"
} }
push() { auto_start() {
$HOME/dotfiles/bin/actions/push.sh $@ local auto_start_script="$DOTFILES_BIN/actions/auto-start.sh"
if [[ ! -x "$auto_start_script" ]]; then
printfe "%s\n" "red" "Error: Auto-start script not found or not executable"
return 1
fi
"$auto_start_script" "$@"
} }
ensure_git_hooks() { ensure_git_hooks() {
# If ~/dotfiles/.git/hooks is a symlink, skip this local hooks_dir="$DOTFILES_ROOT/.git/hooks"
if [[ -L ~/dotfiles/.git/hooks ]]; then local target_link="$DOTFILES_BIN/actions/git"
# Let's make sure the symlink is correct
if [[ $(readlink ~/dotfiles/.git/hooks) != $HOME/dotfiles/bin/actions/git ]]; then # Validate target directory exists
printfe "%s\n" "yellow" "The ~/dotfiles/.git/hooks symlink is incorrect. Please remove it and run this script again." if [[ ! -d "$target_link" ]]; then
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 fi
return
fi fi
if [[ -d ~/dotfiles/.git/hooks ]]; then # Handle existing directory
rm -rf ~/dotfiles/.git/hooks if [[ -d "$hooks_dir" ]]; then
printfe "%s\n" "yellow" "The ~/dotfiles/.git/hooks directory already exists. We're removing it!" printfe "%s\n" "yellow" "Removing existing hooks directory..."
rm -rf "$hooks_dir"
fi fi
ln -s $HOME/dotfiles/bin/actions/git ~/dotfiles/.git/hooks # Create new symlink
printfe "%s\n" "green" "Git hooks are now set up!" if ln -s "$target_link" "$hooks_dir"; then
printfe "%s\n" "green" "Git hooks successfully configured!"
else
printfe "%s\n" "red" "Failed to create git hooks symlink"
return 1
fi
} }
ensure_git_hooks main() {
# Ensure we're in the correct directory
if [[ ! -d "$DOTFILES_ROOT" ]]; then
printfe "%s\n" "red" "Error: Dotfiles directory not found"
exit 1
fi
# switch case for parameters # Setup git hooks
case $1 in ensure_git_hooks || exit 1
"update")
logo # Parse commands
update $@ case "${1:-help}" in
;; update) shift; update "$@" ;;
"push") upgrade) shift; upgrade "$@" ;;
logo continue help) shift; help "$@" ;;
push $@ hello) shift; hello "$@" ;;
;; secrets) shift; secrets "$@" ;;
"help"|"--help"|"") auto-start) shift; auto_start "$@" ;;
help $@ *) help ;;
;; esac
"secrets") }
secrets $@
;; main "$@"
"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

View File

@@ -17,9 +17,13 @@ is_wsl() {
logo() { logo() {
echo "Menno's Dotfiles" | figlet | lolcat echo "Menno's Dotfiles" | figlet | lolcat
if [[ $(trash-list | wc -l) -gt 0 ]]; then
printfe "%s" "yellow" "[!] $(trash-list | wc -l | tr -d ' ') file(s) in trash - "
fi
# Print if repo is dirty and the count of untracked files, modified files and staged files # Print if repo is dirty and the count of untracked files, modified files and staged files
if [[ $(git -C ~/dotfiles status --porcelain) ]]; then if [[ $(git -C ~/dotfiles status --porcelain) ]]; then
printfe "%s" "yellow" "dotfiles repo is dirty " printfe "%s" "yellow" "dotfiles is dirty "
printfe "%s" "red" "[$(git -C ~/dotfiles status --porcelain | grep -c '^??')] untracked " printfe "%s" "red" "[$(git -C ~/dotfiles status --porcelain | grep -c '^??')] untracked "
printfe "%s" "yellow" "[$(git -C ~/dotfiles status --porcelain | grep -c '^ M')] modified " printfe "%s" "yellow" "[$(git -C ~/dotfiles status --porcelain | grep -c '^ M')] modified "
printfe "%s" "green" "[$(git -C ~/dotfiles status --porcelain | grep -c '^M ')] staged " printfe "%s" "green" "[$(git -C ~/dotfiles status --porcelain | grep -c '^M ')] staged "
@@ -29,6 +33,7 @@ logo() {
if [[ $(git -C ~/dotfiles log origin/master..HEAD) ]]; then if [[ $(git -C ~/dotfiles log origin/master..HEAD) ]]; then
printfe "%s" "yellow" "[!] You have $(git -C ~/dotfiles log origin/master..HEAD --oneline | wc -l | tr -d ' ') commit(s) to push" printfe "%s" "yellow" "[!] You have $(git -C ~/dotfiles log origin/master..HEAD --oneline | wc -l | tr -d ' ') commit(s) to push"
fi fi
println "" "normal" println "" "normal"
} }
@@ -81,28 +86,6 @@ ensure_package_installed() {
println " - $1 is available." "green" println " - $1 is available." "green"
} }
ask_before_do() {
printfe "%s" "yellow" "Trying to run: "
printfe "%s" "cyan" "'$@' "
read -p "Continue? [y/N]: " -n 1 -r
echo ""
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
return
fi
printfe "%s" "cyan" "Running '"
printfe "%s" "yellow" "$@"
println "'..." "cyan"
# In case DRY_RUN is set to true we should just print the command and not run it
if [ "$DRY_RUN" = true ]; then
println "Would have run '$@'" "yellow"
return
else
$@
fi
}
ensure_sudo_privileges() { ensure_sudo_privileges() {
if sudo -n true 2>/dev/null; then if sudo -n true 2>/dev/null; then
return return
@@ -112,32 +95,6 @@ ensure_sudo_privileges() {
fi fi
} }
ask_before_do_multi() {
if [ "$DRY_RUN" = true ]; then
println "Would have run: $1" "yellow"
else
read -p "$1 (y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
return false
fi
return true
fi
}
add_to_hosts() {
local domain=$1
local ip="127.0.0.1"
# Check if domain already exists in /etc/hosts
if ! grep -q "$domain" /etc/hosts; then
println " - adding $domain to /etc/hosts" "yellow"
echo "$ip $domain" | sudo tee -a /etc/hosts >/dev/null
else
println " - $domain already exists in /etc/hosts" "green"
fi
}
function exesudo () function exesudo ()
{ {
### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ## ### ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ##

View File

@@ -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
}

View File

@@ -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
}

View File

@@ -1,9 +1,11 @@
All [] are optional parameters. And all <> are required parameters. Usage: dotf [OPTIONS] [ARGS]
Usage: dotf [options] [optional parameters]
update: Pull latest changes, and update symlinks and configurations. update: Pull latest changes, and update symlinks and configurations
status: Show the status of the dotfiles repository. Also pulls latest nix channels and updates flakes to latest versions.
upgrade: Runs switch, flake variants for nix switch with upgrade and home-manager.
secrets: Encrypt and decrypt secrets. secrets: Encrypt and decrypt secrets.
auto-start: Start a set of pre-defined applications.
hello: Shows the welcome message for the terminal.
help: Shows this help message help: Shows this help message

View File

@@ -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

View 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

View 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

View File

@@ -1,26 +0,0 @@
[Desktop Entry]
Name=Zen Browser
Exec=flatpak run --branch=stable --arch=x86_64 --command=launch-script.sh --file-forwarding io.github.zen_browser.zen @@u %u @@
Icon=io.github.zen_browser.zen
Type=Application
MimeType=text/html;text/xml;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;application/x-xpinstall;application/pdf;application/json;
StartupWMClass=zen-alpha
Categories=Network;WebBrowser;
StartupNotify=true
Terminal=false
X-MultipleArgs=false
Keywords=Internet;WWW;Browser;Web;Explorer;
Actions=new-window;new-private-window;profilemanager;
X-Flatpak=io.github.zen_browser.zen
[Desktop Action new-window]
Name=Open a New Window
Exec=flatpak run --branch=stable --arch=x86_64 --command=launch-script.sh --file-forwarding io.github.zen_browser.zen @@u %u @@
[Desktop Action new-private-window]
Name=Open a New Private Window
Exec=flatpak run --branch=stable --arch=x86_64 --command=launch-script.sh --file-forwarding io.github.zen_browser.zen --private-window @@u %u @@
[Desktop Action profilemanager]
Name=Open the Profile Manager
Exec=flatpak run --branch=stable --arch=x86_64 --command=launch-script.sh --file-forwarding io.github.zen_browser.zen --ProfileManager @@u %u @@

View File

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

View File

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

View File

@@ -13,8 +13,11 @@ config:
# Gitconfig # Gitconfig
gitconfig: gitconfig:
sources: sources:
macos: ~/dotfiles/config/gitconfig.macos mennos-server: ~/dotfiles/config/gitconfig.mennos-server
linux: ~/dotfiles/config/gitconfig.linux mennos-desktop: ~/dotfiles/config/gitconfig.linux
mennos-gamingpc: ~/dotfiles/config/gitconfig.linux
mennos-laptop: ~/dotfiles/config/gitconfig.linux
homeserver-pc: ~/dotfiles/config/gitconfig.linux
wsl: ~/dotfiles/config/gitconfig.wsl wsl: ~/dotfiles/config/gitconfig.wsl
target: ~/.gitconfig target: ~/.gitconfig
@@ -32,11 +35,6 @@ config:
vscode: vscode:
source: ~/dotfiles/vscode/settings.json source: ~/dotfiles/vscode/settings.json
target: ~/.config/Code/User/settings.json target: ~/.config/Code/User/settings.json
# Autostart
autostart:
source: ~/dotfiles/config/autostart
target: ~/.config/autostart
# SSH config # SSH config
ssh: ssh:
@@ -56,47 +54,15 @@ config:
target: ~/.ssh/authorized_keys target: ~/.ssh/authorized_keys
chmod: 600 chmod: 600
# bashrc # Ghostty config
bashrc: ghostty:
source: ~/dotfiles/.bashrc source: ~/dotfiles/config/ghostty.conf
target: ~/.bashrc target: ~/.config/ghostty/config
profile:
source: ~/dotfiles/.bashrc
target: ~/.profile
# Starship config # Starship config
starship: starship:
source: ~/dotfiles/config/starship.toml source: ~/dotfiles/config/starship.toml
target: ~/.config/starship.toml target: ~/.config/starship.toml
# Fonts to install (Mostly tested with Nerd Fonts)
fonts:
Hack:
url: https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Hack.zip
name: Hack
Meslo:
url: https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/Meslo.zip
name: Meslo
JetBrainsMono:
url: https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/JetBrainsMono.zip
name: JetBrainsMono
git:
dotfiles:
url: git@git.mvl.sh:vleeuwenmenno/dotfiles.git
branch: master
target: ~/dotfiles
ssdc_app_v2:
url: git@github.com:vleeuwenmenno/ssdc_app_v2.git
branch: master
target: ~/Projects/Private/ssdc_app_v2
infra:
url: git@github.com:tradaware/infra.git
branch: main
target: ~/Projects/Work
# Packages to install # Packages to install
# Note: Uninstalling packages is not supported, if you remove a package from this list it will not be removed from the system! # Note: Uninstalling packages is not supported, if you remove a package from this list it will not be removed from the system!
@@ -104,10 +70,7 @@ config:
packages: packages:
# Supply a git_url and binary to install from source # Supply a git_url and binary to install from source
cargo: cargo:
rip2:
fd-find: fd-find:
pipx: pipx:
- gnome-extensions-cli
- bauh
- shyaml - shyaml

View File

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

View 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=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
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo

View File

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

View File

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

View File

@@ -0,0 +1,10 @@
[Flatpak Ref]
Name=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

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

View File

@@ -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=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
RuntimeRepo=https://dl.flathub.org/repo/flathub.flatpakrepo

View File

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

View File

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

View 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

View 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

View File

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

View 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

View 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
View File

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

View File

@@ -6,9 +6,6 @@
[gpg] [gpg]
format = ssh format = ssh
[gpg "ssh"]
program = "op-ssh-sign"
[commit] [commit]
gpgsign = true gpgsign = true
@@ -23,3 +20,5 @@
required = true required = true
clean = git-lfs clean -- %f clean = git-lfs clean -- %f
smudge = git-lfs smudge -- %f smudge = git-lfs smudge -- %f
[init]
defaultBranch = main

View 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

View File

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

View File

@@ -2,27 +2,23 @@
description = "menno's dotfiles"; description = "menno's dotfiles";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
# Pinned versions for specific packages (https://nixhub.io)
nixpkgs-go.url = "github:nixos/nixpkgs/d4f247e89f6e10120f911e2e2d2254a050d0f732";
nixpkgs-vscode.url = "github:nixos/nixpkgs/d4f247e89f6e10120f911e2e2d2254a050d0f732";
nixpkgs-zed.url = "github:nixos/nixpkgs/41dea55321e5a999b17033296ac05fe8a8b5a257";
home-manager = { home-manager = {
url = "github:nix-community/home-manager/release-24.05"; url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
ghostty.url = "github:ghostty-org/ghostty";
}; };
outputs = outputs =
{ {
self, self,
nixpkgs, nixpkgs,
nixpkgs-go, nixpkgs-unstable,
nixpkgs-vscode,
nixpkgs-zed,
home-manager, home-manager,
ghostty,
}: }:
let let
system = "x86_64-linux"; system = "x86_64-linux";
@@ -30,32 +26,24 @@
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
}; };
pkgs-go = import nixpkgs-go { pkgs-unstable = import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
};
pkgs-vscode = import nixpkgs-vscode {
inherit system;
config.allowUnfree = true;
};
pkgs-zed = import nixpkgs-zed {
inherit system; inherit system;
config.allowUnfree = true; config.allowUnfree = true;
}; };
in in
{ {
homeConfigurations = { homeConfigurations = {
"mennos-gamingpc" = home-manager.lib.homeManagerConfiguration { "mennos-desktop" = home-manager.lib.homeManagerConfiguration {
inherit pkgs; inherit pkgs;
modules = [ ./home.nix ]; modules = [ ./home.nix ];
extraSpecialArgs = { extraSpecialArgs = {
inherit inherit
pkgs pkgs
pkgs-go pkgs-unstable
pkgs-vscode ghostty
pkgs-zed
; ;
isServer = false; isServer = false;
hostname = "mennos-gamingpc";
}; };
}; };
@@ -63,8 +51,12 @@
inherit pkgs; inherit pkgs;
modules = [ ./home.nix ]; modules = [ ./home.nix ];
extraSpecialArgs = { extraSpecialArgs = {
inherit pkgs pkgs-go; inherit
pkgs
pkgs-unstable
;
isServer = true; isServer = true;
hostname = "mennos-server";
}; };
}; };
@@ -74,11 +66,11 @@
extraSpecialArgs = { extraSpecialArgs = {
inherit inherit
pkgs pkgs
pkgs-go pkgs-unstable
pkgs-vscode ghostty
pkgs-zed
; ;
isServer = false; isServer = false;
hostname = "mennos-laptop";
}; };
}; };
@@ -86,8 +78,9 @@
inherit pkgs; inherit pkgs;
modules = [ ./home.nix ]; modules = [ ./home.nix ];
extraSpecialArgs = { extraSpecialArgs = {
inherit pkgs pkgs-go; inherit pkgs pkgs-unstable;
isServer = true; isServer = true;
hostname = "homeserver-pc";
}; };
}; };
}; };

View File

@@ -1,7 +1,5 @@
{ {
config, config,
pkgs,
lib,
isServer ? false, isServer ? false,
... ...
}: }:
@@ -32,9 +30,9 @@
home = { home = {
username = "menno"; username = "menno";
homeDirectory = "/home/menno"; homeDirectory = "/home/menno";
stateVersion = "24.05"; stateVersion = "24.11";
sessionVariables = { sessionVariables = {
PATH = "${config.home.homeDirectory}/go/bin:$PATH"; # Removed extra asterisks PATH = "${config.home.homeDirectory}/go/bin:$PATH";
}; };
}; };
} }

View 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'"
];
};
}

View File

@@ -1,12 +1,12 @@
{ {
config, config,
pkgs, pkgs,
pkgs-go, pkgs-unstable,
... ...
}: }:
{ {
programs.go = { programs.go = {
enable = true; enable = true;
package = pkgs-go.go; package = pkgs-unstable.go;
}; };
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,89 +1,117 @@
{ pkgs, ... }:
{ {
home.packages = with pkgs; [ pkgs,
# General packages pkgs-unstable,
git hostname,
gnupg ...
gh }:
nixfmt-rfc-style {
wget # Import host-specific packages
fastfetch 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 ];
# Package management home.packages =
pipx with pkgs;
devbox [
# General packages
git
onefetch
gnupg
gh
nixfmt-rfc-style
wget
fastfetch
gpredict
# Development SDKs/Toolkits # Package management
gcc pipx
pkg-config devbox
gnumake
stdenv.cc
rustc
cargo
cargo-edit
cargo-watch
cargo-audit
cargo-expand
cargo-tarpaulin
pyenv
act # GitHub Actions CLI
# File and directory operations # Development SDKs/Toolkits
eza # Modern ls gcc
bat # Modern cat pkg-config
zoxide # Smarter cd command gnumake
broot # Interactive directory navigator stdenv.cc
du-dust # Modern du rustc
duf # Modern df cargo
zip cargo-edit
unzip cargo-watch
cargo-audit
cargo-expand
cargo-tarpaulin
act # GitHub Actions CLI
# Search and text processing # File and directory operations
ripgrep # Modern grep eza # Modern ls
sd # Modern sed bat # Modern cat
choose # Modern cut zoxide # Smarter cd command
jq # JSON processor broot # Interactive directory navigator
yq # YAML processor du-dust # Modern du
xsv # CSV processor duf # Modern df
zip
unzip
bottom # Modern top/htop
glances # Advanced system monitoring tool
procs # Modern ps
hyperfine # Benchmarking tool
# System monitoring and process management # Search and text processing
procs # Modern ps ripgrep # Modern grep
bottom # Modern top/htop sd # Modern sed
hyperfine # Benchmarking tool choose # Modern cut
bandwhich # Network utilization tool jq # JSON processor
doggo # Modern dig yq # YAML processor
gping # Ping with graph xsv # CSV processor
htop # Interactive process viewer ncdu # Disk usage analyzer
# Development utilities # System monitoring and process management
delta # Better git diff procs # Modern ps
difftastic # Structural diff tool bottom # Modern top/htop
mcfly # Better shell history hyperfine # Benchmarking tool
fzf # Fuzzy finder bandwhich # Network utilization tool
tokei # Code statistics doggo # Modern dig
tealdeer # Modern tldr client gping # Ping with graph
lazygit # Terminal UI for git htop # Interactive process viewer
# Shell and terminal # Development utilities
starship # Cross-shell prompt delta # Better git diff
zellij # Modern terminal multiplexer difftastic # Structural diff tool
screen # Terminal multiplexer fzf # Fuzzy finder
tokei # Code statistics
tealdeer # Modern tldr client
lazygit # Terminal UI for git
# File viewers and processors # Shell and terminal
hexyl # Modern hexdump starship # Cross-shell prompt
chafa # Terminal image viewer blesh # Bash ble.sh
glow # Markdown renderer zellij # Modern terminal multiplexer
screen # Terminal multiplexer
# Editors # File viewers and processors
neovim hexyl # Modern hexdump
nano chafa # Terminal image viewer
micro glow # Markdown renderer
# Lolz # Editors
fortune neovim
cowsay ## Neovim plugins
cmatrix vimPlugins.LazyVim
figlet
lolcat nano
]; micro
# Lolz
fortune
cowsay
cmatrix
figlet
lolcat
]
++ (with pkgs-unstable; [ ]);
} }

View File

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

View 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

View 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 = [ ];
};
}

View File

@@ -1,7 +1,10 @@
{ config, pkgs, ... }: { ... }:
let let
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ]; files = builtins.removeAttrs (builtins.readDir ./.) [
"default.nix"
"brave-search-engines.sh"
];
# Import all other .nix files as modules # Import all other .nix files as modules
moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files); moduleFiles = builtins.map (fname: ./. + "/${fname}") (builtins.attrNames files);

View File

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

View File

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

View File

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

View File

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

View File

@@ -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"
'';
}

View File

@@ -1,13 +1,8 @@
{ { pkgs, pkgs-unstable, ... }:
config,
pkgs,
pkgs-vscode,
...
}:
{ {
programs.vscode = { programs.vscode = {
enable = true; enable = true;
package = pkgs-vscode.vscode; package = pkgs-unstable.vscode;
mutableExtensionsDir = true; mutableExtensionsDir = true;
extensions = with pkgs.vscode-extensions; [ extensions = with pkgs.vscode-extensions; [
ms-azuretools.vscode-docker ms-azuretools.vscode-docker

View File

@@ -1,9 +1,12 @@
{ pkgs-unstable, ... }:
{ {
config, home.packages = with pkgs-unstable; [
pkgs, zed-editor
pkgs-zed, nixd
... nixdoc
}:
{ # We need nodejs due to a stupid bug with CoPilot not loading properly
home.packages = [ pkgs-zed.zed-editor ]; # https://github.com/zed-industries/zed/issues/12187#issuecomment-2322338504
nodejs_22
];
} }

View File

@@ -1,4 +1,4 @@
{ config, pkgs, ... }: { ... }:
let let
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ]; files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];

View File

@@ -35,27 +35,38 @@
dconf = { dconf = {
enable = true; enable = true;
settings = { settings = {
# Set nemo as the default file manager and disable desktop icons since this is handled by nemo
"org/gnome/desktop/background" = {
show-desktop-icons = false;
};
"org/gnome/desktop/applications/file-manager" = {
exec = "nemo";
};
"org/gnome/desktop/interface" = { "org/gnome/desktop/interface" = {
color-scheme = "prefer-dark"; color-scheme = "prefer-dark";
}; };
# Pinned apps # Pinned apps
# add more by listing them with `gsettings list-recursively | grep favorite-apps` # add more by listing them with `gsettings list-recursively | grep favorite-apps | sed "s/,//g; s/'/\"/g"` then copy pasting the output here
"org/gnome/shell" = { "org/gnome/shell" = {
favorite-apps = [ favorite-apps = [
"io.github.zen_browser.zen.desktop" "brave-browser.desktop"
"code.desktop" "code.desktop"
"org.telegram.desktop.desktop" "org.telegram.desktop.desktop"
"spotify.desktop" "spotify.desktop"
"com.plexamp.Plexamp.desktop"
"vesktop.desktop" "vesktop.desktop"
"org.gnome.Geary.desktop" "org.gnome.Geary.desktop"
"nemo.desktop"
"org.gnome.Console.desktop"
]; ];
}; };
# GNOME Terminal settings # GNOME Terminal settings
"org/gnome/Console" = { "org/gnome/Console" = {
use-system-font = false; use-system-font = false;
custom-font = "Hack Nerd Font 14"; custom-font = "Hack Nerd Font 13";
theme = "night"; theme = "night";
}; };

View File

@@ -1,14 +1,14 @@
{ config, pkgs, ... }: { ... }:
{ {
# Default applications # Default applications
xdg.mimeApps = { xdg.mimeApps = {
enable = true; enable = true;
defaultApplications = { defaultApplications = {
# Zen Browser # Brave Browser
"application/xhtml+xml" = [ "io.github.zen_browser.zen.desktop" ]; "application/xhtml+xml" = [ "brave-browser.desktop" ];
"text/html" = [ "io.github.zen_browser.zen.desktop" ]; "text/html" = [ "brave-browser.desktop" ];
"x-scheme-handler/http" = [ "io.github.zen_browser.zen.desktop" ]; "x-scheme-handler/http" = [ "brave-browser.desktop" ];
"x-scheme-handler/https" = [ "io.github.zen_browser.zen.desktop" ]; "x-scheme-handler/https" = [ "brave-browser.desktop" ];
# Geary # Geary
"x-scheme-handler/mailto" = [ "org.gnome.Geary.desktop" ]; "x-scheme-handler/mailto" = [ "org.gnome.Geary.desktop" ];

View File

@@ -1,4 +1,4 @@
{ config, pkgs, ... }: { ... }:
let let
files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ]; files = builtins.removeAttrs (builtins.readDir ./.) [ "default.nix" ];

View File

@@ -1,24 +1,40 @@
{ config, pkgs, ... }:
{ {
home.packages = with pkgs.gnomeExtensions; [ config,
tailscale-qs pkgs-unstable,
gsconnect pkgs,
blur-my-shell ...
weather-oclock }:
space-bar {
gtk4-desktop-icons-ng-ding # We run most extensions from unstable because they are more up-to-date
logo-menu home.packages =
media-controls with pkgs.gnomeExtensions;
burn-my-windows [
coverflow-alt-tab user-themes
dash-to-dock weather-oclock
appindicator native-window-placement
user-themes kimpanel
autohide-battery ]
battery-health-charging ++ (with pkgs-unstable.gnomeExtensions; [
just-perfection tiling-shell
pano 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 # Copy burn-my-windows profile to user config
home.file.".config/burn-my-windows/profiles/default.conf".text = '' home.file.".config/burn-my-windows/profiles/default.conf".text = ''
@@ -30,10 +46,19 @@
dconf = { dconf = {
settings = { settings = {
# vitals settings
"org/gnome/shell/extensions/vitals" = {
position-in-panel = 0;
use-higher-precision = true;
icon-style = 1;
};
# To get an ID of an extension, run `gnome-extensions list` # To get an ID of an extension, run `gnome-extensions list`
"org/gnome/shell" = { "org/gnome/shell" = {
disable-user-extensions = false; disable-user-extensions = false;
enabled-extensions = [ enabled-extensions = [
"kimpanel@kde.org"
"lilypad@shendrew.github.io"
"tilingshell@ferrarodomenico.com" "tilingshell@ferrarodomenico.com"
"gsconnect@andyholmes.github.io" "gsconnect@andyholmes.github.io"
"blur-my-shell@aunetx" "blur-my-shell@aunetx"
@@ -52,9 +77,24 @@
"user-theme@gnome-shell-extensions.gcampax.github.com" "user-theme@gnome-shell-extensions.gcampax.github.com"
"autohide-battery@sitnik.ru" "autohide-battery@sitnik.ru"
"just-perfection-desktop@just-perfection" "just-perfection-desktop@just-perfection"
"native-window-placement@gnome-shell-extensions.gcampax.github.com"
"smile-extension@mijorus.it"
"Vitals@CoreCoding.com"
"clipboard-indicator@tudmotu.com"
]; ];
}; };
# Clipboard indicator settings
"org/gnome/shell/extensions/clipboard-indicator" = {
history-size = 50;
cache-size = 50;
preview-size = 50;
strip-text = true;
keep-selected-on-clear = true;
move-item-first = true;
toggle-menu = [ "<Shift><Alt>V" ];
};
# Perfection settings # Perfection settings
"org/gnome/shell/extensions/just-perfection" = { "org/gnome/shell/extensions/just-perfection" = {
theme = false; theme = false;
@@ -69,6 +109,8 @@
# Configure dash-to-dock # Configure dash-to-dock
"org/gnome/shell/extensions/dash-to-dock" = { "org/gnome/shell/extensions/dash-to-dock" = {
pressure-threshold = 250;
require-pressure-to-show = false;
apply-custom-theme = false; apply-custom-theme = false;
apply-glossy-effect = false; apply-glossy-effect = false;
autohide-in-fullscreen = true; autohide-in-fullscreen = true;
@@ -78,7 +120,7 @@
custom-theme-running-dots-color = "rgb(255,255,255)"; custom-theme-running-dots-color = "rgb(255,255,255)";
dash-max-icon-size = 48; dash-max-icon-size = 48;
dock-fixed = false; dock-fixed = false;
dock-position = "BOTTOM"; dock-position = "LEFT";
extend-height = 0; extend-height = 0;
height-fraction = 0.9; height-fraction = 0.9;
intellihide = true; intellihide = true;
@@ -137,7 +179,7 @@
layouts-json = '' layouts-json = ''
[ [
{ {
"id": "Layout 1", "id": "Landscape Ultrawide",
"tiles": [ "tiles": [
{ "x": 0, "y": 0, "width": 0.22, "height": 0.5, "groups": [1, 2] }, { "x": 0, "y": 0, "width": 0.22, "height": 0.5, "groups": [1, 2] },
{ "x": 0, "y": 0.5, "width": 0.22, "height": 0.5, "groups": [1, 2] }, { "x": 0, "y": 0.5, "width": 0.22, "height": 0.5, "groups": [1, 2] },
@@ -147,45 +189,59 @@
] ]
}, },
{ {
"id": "Layout 2", "id": "Portrait Ultrawide",
"tiles": [
{ "x": 0, "y": 0, "width": 0.22, "height": 1, "groups": [1] },
{ "x": 0.22, "y": 0, "width": 0.56, "height": 1, "groups": [1, 2] },
{ "x": 0.78, "y": 0, "width": 0.22, "height": 1, "groups": [2] }
]
},
{
"id": "Layout 3",
"tiles": [
{ "x": 0, "y": 0, "width": 0.33, "height": 1, "groups": [1] },
{ "x": 0.33, "y": 0, "width": 0.67, "height": 1, "groups": [1] }
]
},
{
"id": "Layout 4",
"tiles": [
{ "x": 0, "y": 0, "width": 0.67, "height": 1, "groups": [1] },
{ "x": 0.67, "y": 0, "width": 0.33, "height": 1, "groups": [1] }
]
},
{
"id": "Portrait Layout",
"tiles": [ "tiles": [
{ "x": 0, "y": 0, "width": 1, "height": 0.25, "groups": [1] }, { "x": 0, "y": 0, "width": 1, "height": 0.25, "groups": [1] },
{ "x": 0, "y": 0.25, "width": 1, "height": 0.5, "groups": [1, 2] }, { "x": 0, "y": 0.25, "width": 1, "height": 0.5, "groups": [1, 2] },
{ "x": 0, "y": 0.75, "width": 0.5, "height": 0.25, "groups": [2, 3] },
{ "x": 0.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, "x": 0,
"y": 0.75, "y": 0,
"width": 0.50, "width": 0.1984375,
"height": 0.25, "height": 0.5028409090909091,
"groups": [2, 3] "groups": [1, 2]
}, },
{ {
"x": 0.50, "x": 0.1984375,
"y": 0.75, "y": 0,
"width": 0.50, "width": 0.3015625,
"height": 0.25, "height": 1,
"groups": [2, 3] "groups": [4, 1]
},
{
"x": 0,
"y": 0.5028409090909091,
"width": 0.1984375,
"height": 0.49715909090909094,
"groups": [2, 1]
},
{
"x": 0.8015625,
"y": 0,
"width": 0.1984375,
"height": 1,
"groups": [3]
},
{
"x": 0.5,
"y": 0,
"width": 0.30156249999999996,
"height": 1,
"groups": [3, 4]
} }
] ]
} }
@@ -248,6 +304,29 @@
"org/gnome/shell/extensions/user-theme" = { "org/gnome/shell/extensions/user-theme" = {
name = "Yaru-purple-dark"; name = "Yaru-purple-dark";
}; };
# Lilypad settings
"org/gnome/shell/extensions/lilypad/rightbox-order" = {
# In case this is updated, run: `dconf read /org/gnome/shell/extensions/lilypad/rightbox-order | sed "s/,//g; s/'/\"/g ` then copy pasting the output here
rightbox-order = [
"lilypad"
"system_monitor"
"appindicator_legacy_TelegramDesktop"
"appindicator_legacy_1password"
"spotify_client"
"com_github_eneshecan_WhatsAppForLinux_Tray"
"appindicator_legacy_Electron"
"steam"
"appindicator_legacy_steam"
"workspace_indicator"
"vitalsMenu"
"StatusNotifierItem"
"clipboardIndicator"
"screenSharing"
];
show-icons = false;
};
}; };
}; };
} }

View File

@@ -13,6 +13,9 @@
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/1password-quick-access/" "/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/missioncenter/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal/" "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emotes/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/frog/"
"/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/ulauncher/"
]; ];
}; };
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/1password-quick-access" = { "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/1password-quick-access" = {
@@ -27,8 +30,23 @@
}; };
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = { "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/terminal" = {
binding = "<Ctrl><Alt>t"; binding = "<Ctrl><Alt>t";
command = "kgx"; command = "ptyxis --new-window"; # ghostty doesn't work on Fedora atm
name = "terminal"; name = "terminal";
}; };
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/emotes" = {
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";
};
}; };
} }

View File

@@ -1,6 +1,8 @@
{ config, pkgs, ... }: { config, pkgs, ... }:
{ {
# OpenSSH server # Install xanmod kernel
# boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_stable.zfs;
services.openssh = { services.openssh = {
enable = true; enable = true;
ports = [ 400 ]; ports = [ 400 ];
@@ -16,13 +18,29 @@
}; };
}; };
# Open ports in the firewall networking = {
networking.firewall = { firewall = {
enable = true; enable = true;
allowedTCPPorts = [
# SSH # External ports
400 allowedTCPPorts = [
]; ## Portforwarded
allowedUDPPorts = [ ]; 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
];
};
}; };
} }

View File

@@ -1,4 +1,4 @@
{ config, pkgs, ... }: { pkgs, ... }:
{ {
# Enable the X11 windowing system. # Enable the X11 windowing system.
services.xserver.enable = true; services.xserver.enable = true;
@@ -7,7 +7,19 @@
services.xserver.displayManager.gdm.enable = true; services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true; services.xserver.desktopManager.gnome.enable = true;
environment.systemPackages = with pkgs; [ gnome3.gnome-session ]; # Enable the Cosmic Desktop Environment.
# services.desktopManager.cosmic.enable = true;
# services.displayManager.cosmic-greeter.enable = true;
# Install xanmod kernel
boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_stable;
environment.systemPackages = with pkgs; [
gnome-session
xdg-desktop-portal
xdg-desktop-portal-gnome
xdg-desktop-portal-gtk
];
# Configure keymap in X11 # Configure keymap in X11
services.xserver.xkb = { services.xserver.xkb = {

View File

@@ -18,10 +18,6 @@
++ lib.optional isServer ./packages/server/default.nix ++ lib.optional isServer ./packages/server/default.nix
++ lib.optional isWorkstation ./packages/workstation/default.nix; ++ lib.optional isWorkstation ./packages/workstation/default.nix;
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Enable networking # Enable networking
networking.networkmanager.enable = true; networking.networkmanager.enable = true;
@@ -30,7 +26,7 @@
# Enable experimental nix-command flakes # Enable experimental nix-command flakes
nix = { nix = {
package = pkgs.nixFlakes; package = pkgs.nixVersions.stable;
extraOptions = '' extraOptions = ''
experimental-features = nix-command flakes experimental-features = nix-command flakes
''; '';
@@ -60,6 +56,9 @@
]; ];
services.tailscale.enable = true; services.tailscale.enable = true;
security.sudo.extraConfig = ''
Defaults env_reset,pwfeedback
'';
# This value determines the NixOS release from which the default # This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions # settings for stateful data, like file locations and database versions
@@ -67,5 +66,5 @@
# this value at the release version of the first install of this system. # this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option # Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "24.05"; # Did you read the comment? system.stateVersion = "24.11"; # Did you read the comment?
} }

View File

@@ -1,24 +1,110 @@
{ {
"nodes": { "nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1717312683,
"narHash": "sha256-FrlieJH50AuvagamEvWMIE6D2OAnERuDboFDYAED/dE=",
"owner": "nix-community",
"repo": "flake-compat",
"rev": "38fd3954cf65ce6faf3d0d45cd26059e059f07ea",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "flake-compat",
"type": "github"
}
},
"nixos-cosmic": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs",
"nixpkgs-stable": "nixpkgs-stable"
},
"locked": {
"lastModified": 1741055622,
"narHash": "sha256-z1y6MSfJ9pntwJ7YCkjNyGnqvYMHMnB9kH3v5Z/g9vQ=",
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"rev": "f3f91440dfd18518445d9ab757cf3e540c7fd6ab",
"type": "github"
},
"original": {
"owner": "lilyinstarlight",
"repo": "nixos-cosmic",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1730327045, "lastModified": 1740828860,
"narHash": "sha256-xKel5kd1AbExymxoIfQ7pgcX6hjw9jCgbiBjiUfSVJ8=", "narHash": "sha256-cjbHI+zUzK5CPsQZqMhE3npTyYFt9tJ3+ohcfaOF/WM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "303bd8071377433a2d8f76e684ec773d70c5b642",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1740865531,
"narHash": "sha256-h00vGIh/jxcGl8aWdfnVRD74KuLpyY3mZgMFMy7iKIc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5ef6c425980847c78a80d759abc476e941a9bf42",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1741010256,
"narHash": "sha256-WZNlK/KX7Sni0RyqLSqLPbK8k08Kq7H7RijPJbq9KHM=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "080166c15633801df010977d9d7474b4a6c549d7", "rev": "ba487dbc9d04e0634c64e3b1f0d25839a0a68246",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nixos", "owner": "nixos",
"ref": "nixos-24.05", "ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1740932899,
"narHash": "sha256-F0qDu2egq18M3edJwEOAE+D+VQ+yESK6YWPRQBfOqq8=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1546c45c538633ae40b93e2d14e0bb6fd8f13347",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.11",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"root": { "root": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs" "nixos-cosmic": "nixos-cosmic",
"nixpkgs": "nixpkgs_2",
"nixpkgs-unstable": "nixpkgs-unstable"
} }
} }
}, },

View File

@@ -2,45 +2,76 @@
description = "menno's dotfiles"; description = "menno's dotfiles";
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.05"; nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
nixos-cosmic.url = "github:lilyinstarlight/nixos-cosmic";
}; };
outputs = outputs =
{ self, nixpkgs }: {
self,
nixpkgs,
nixpkgs-unstable,
nixos-cosmic,
}:
let
system = "x86_64-linux";
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
pkgs-unstable = import nixpkgs-unstable {
inherit system;
config.allowUnfree = true;
};
in
{ {
nixosConfigurations = { nixosConfigurations = {
"mennos-laptop" = nixpkgs.lib.nixosSystem { "mennos-laptop" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; inherit system;
modules = [ modules = [
./hardware/mennos-laptop.nix ./hardware/mennos-laptop.nix
./common/workstation.nix ./common/workstation.nix
./configuration.nix ./configuration.nix
]; ];
specialArgs = { specialArgs = {
inherit
pkgs-unstable
nixos-cosmic
;
isWorkstation = true; isWorkstation = true;
isServer = false; isServer = false;
}; };
}; };
"mennos-gamingpc" = nixpkgs.lib.nixosSystem { "mennos-gamingpc" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; inherit system;
modules = [ modules = [
./hardware/mennos-gamingpc.nix ./hardware/mennos-gamingpc.nix
./common/workstation.nix ./common/workstation.nix
./configuration.nix ./configuration.nix
]; ];
specialArgs = { specialArgs = {
inherit
pkgs-unstable
nixos-cosmic
;
isWorkstation = true; isWorkstation = true;
isServer = false; isServer = false;
}; };
}; };
"mennos-server" = nixpkgs.lib.nixosSystem { "mennos-server" = nixpkgs.lib.nixosSystem {
system = "x86_64-linux"; inherit system;
modules = [ modules = [
./hardware/mennos-server.nix ./hardware/mennos-server.nix
./common/server.nix ./common/server.nix
./configuration.nix ./configuration.nix
]; ];
specialArgs = { specialArgs = {
inherit pkgs-unstable;
isWorkstation = false; isWorkstation = false;
isServer = true; isServer = true;
}; };

View File

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

View File

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

View File

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

View 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";
};
};
}

View File

@@ -8,4 +8,4 @@
127.0.0.1 api.local 127.0.0.1 api.local
127.0.0.1 mailpit.local 127.0.0.1 mailpit.local
''; '';
} }

View File

@@ -1,6 +1,12 @@
{ pkgs, ... }: { pkgs, ... }:
{ {
imports = [ ./virtualization.nix ]; imports = [ ./virtualisation.nix ];
environment.systemPackages = with pkgs; [ yubikey-manager ]; environment.systemPackages = with pkgs; [
yubikey-manager
trash-cli
sqlite # Used for managing SQLite databases (Brave Settings etc.)
xcp # Rust implementation of cp/mv command
pandoc # Document converter (Markdown, HTML, PDF etc.) (Mostly used for static site generators)
];
} }

View File

@@ -1,4 +1,9 @@
{ config, pkgs, ... }: {
config,
pkgs,
pkgs-unstable,
...
}:
{ {
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
@@ -10,6 +15,7 @@
virtualisation = { virtualisation = {
docker = { docker = {
enable = true; enable = true;
package = pkgs-unstable.docker;
autoPrune.enable = true; autoPrune.enable = true;
daemon.settings = { daemon.settings = {
"live-restore" = false; "live-restore" = false;

View File

@@ -1,4 +1,15 @@
{ ... }: { config, pkgs, ... }:
{ {
imports = [ ]; # Import all the package modules
imports = [
./juicefs.nix
];
# Enable JuiceFS
services.juicefsCustom = {
enable = true;
redisUrl = "redis://:your-redis-password@localhost:6379/0";
mountPoint = "/mnt/object_storage";
cacheDir = "/var/jfsCache";
};
} }

View File

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

View File

@@ -1,10 +1,15 @@
{ pkgs, ... }: { pkgs, pkgs-unstable, ... }:
{ {
# 1Password # Enables the 1Password CLI
programs._1password.enable = true; programs._1password = {
enable = true;
};
# Enables the 1Password desktop app
programs._1password-gui = { programs._1password-gui = {
enable = true; enable = true;
polkitPolicyOwners = [ "menno" ]; polkitPolicyOwners = [ "menno" ];
package = pkgs-unstable._1password-gui;
}; };
environment.etc = { environment.etc = {

View File

@@ -1,8 +1,8 @@
{ ... }: { config, pkgs, ... }:
{ {
# Import all the package modules
imports = [ imports = [
./steam.nix
./1password.nix
./flatpak.nix ./flatpak.nix
./1password.nix
]; ];
} }

View File

@@ -1,10 +1,11 @@
{ pkgs, ... }: { { pkgs, ... }:
{
services.flatpak.enable = true; services.flatpak.enable = true;
systemd.services.flatpak-repo = { systemd.services.flatpak-repo = {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
path = [ pkgs.flatpak ]; path = [ pkgs.flatpak ];
script = '' script = ''
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
''; '';
}; };
} }

View File

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

View File

@@ -13,6 +13,9 @@
"docker" "docker"
"video" "video"
"render" "render"
"users"
"input"
"adbusers"
]; ];
}; };
} }

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,180 +1,170 @@
"$schema" = 'https://starship.rs/config-schema.json' [aws]
symbol = " "
format = """ [buf]
[](color_orange)\ symbol = " "
$os\
$username\
[](bg:color_yellow fg:color_orange)\
$directory\
[](fg:color_yellow bg:color_bg3)\
$docker_context\
$conda\
[](fg:color_bg3 bg:color_bg1)\
[ ](fg:color_bg1)\
"""
right_format = """
[](color_aqua)\
$git_branch\
$git_status\
[](fg:color_blue bg:color_aqua)\
$c\
$rust\
$golang\
$nodejs\
$php\
$java\
$kotlin\
$haskell\
$python\
[](fg:color_blue bg:color_bg1)\
$time\
[ ](fg:color_bg1)\
"""
palette = 'gruvbox_dark'
[palettes.gruvbox_dark]
color_fg0 = '#fbf1c7'
color_bg1 = '#3c3836'
color_bg3 = '#665c54'
color_blue = '#458588'
color_aqua = '#689d6a'
color_green = '#98971a'
color_orange = '#d65d0e'
color_purple = '#b16286'
color_red = '#cc241d'
color_yellow = '#d79921'
[os]
disabled = false
style = "bg:color_orange fg:color_fg0"
[os.symbols]
Windows = "󰍲"
Ubuntu = "󰕈"
SUSE = ""
Raspbian = "󰐿"
Mint = "󰣭"
Macos = "󰀵"
Manjaro = ""
Linux = "󰌽"
Gentoo = "󰣨"
Fedora = "󰣛"
Alpine = ""
Amazon = ""
Android = ""
Arch = "󰣇"
Artix = "󰣇"
EndeavourOS = ""
CentOS = ""
Debian = "󰣚"
Redhat = "󱄛"
RedHatEnterprise = "󱄛"
[username]
show_always = true
style_user = "bg:color_orange fg:color_fg0"
style_root = "bg:color_orange fg:color_fg0"
format = '[ $user ]($style)'
[directory]
style = "fg:color_fg0 bg:color_yellow"
format = "[ $path ]($style)"
truncation_length = 3
truncation_symbol = "…/"
[directory.substitutions]
"Documents" = "󰈙 "
"Downloads" = " "
"Music" = "󰝚 "
"Pictures" = " "
"Developer" = "󰲋 "
[git_branch]
symbol = ""
style = "bg:color_aqua"
format = '[[ $symbol $branch ](fg:color_fg0 bg:color_aqua)]($style)'
[git_status]
conflicted = ' 🏳'
ahead = ' 🏎💨'
untracked = ' [?\($count\)](fg:color_red bg:color_aqua)'
modified = ' [M\($count\)](fg:color_yellow bg:color_aqua)'
staged = ' [S\($count\)](fg:color_green bg:color_aqua)'
renamed = ' [->\($count\)](fg:color_blue bg:color_aqua)'
deleted = ' [D$count](fg:red)'
style = "bg:color_aqua"
format = '[[($ahead_behind$untracked$modified$staged)](fg:color_fg0 bg:color_aqua)]($style)'
[nodejs]
symbol = ""
style = "bg:color_blue"
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
[c] [c]
symbol = " " symbol = " "
style = "bg:color_blue"
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
[rust] [conda]
symbol = "" symbol = ""
style = "bg:color_blue"
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' [crystal]
symbol = " "
[dart]
symbol = " "
[directory]
read_only = " 󰌾"
[docker_context]
symbol = " "
[elixir]
symbol = " "
[elm]
symbol = " "
[fennel]
symbol = " "
[fossil_branch]
symbol = " "
[git_branch]
symbol = " "
[git_commit]
tag_symbol = '  '
[golang] [golang]
symbol = "" symbol = " "
style = "bg:color_blue"
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
[php] [guix_shell]
symbol = "" symbol = ""
style = "bg:color_blue"
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' [haskell]
symbol = " "
[haxe]
symbol = " "
[hg_branch]
symbol = " "
[hostname]
ssh_symbol = " "
[java] [java]
symbol = " " symbol = " "
style = "bg:color_blue"
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' [julia]
symbol = " "
[kotlin] [kotlin]
symbol = "" symbol = " "
style = "bg:color_blue"
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
[haskell] [lua]
symbol = "" symbol = ""
style = "bg:color_blue"
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)' [memory_usage]
symbol = "󰍛 "
[meson]
symbol = "󰔷 "
[nim]
symbol = "󰆥 "
[nix_shell]
symbol = " "
[nodejs]
symbol = " "
[ocaml]
symbol = " "
[os.symbols]
Alpaquita = " "
Alpine = " "
AlmaLinux = " "
Amazon = " "
Android = " "
Arch = " "
Artix = " "
CentOS = " "
Debian = " "
DragonFly = " "
Emscripten = " "
EndeavourOS = " "
Fedora = " "
FreeBSD = " "
Garuda = "󰛓 "
Gentoo = " "
HardenedBSD = "󰞌 "
Illumos = "󰈸 "
Kali = " "
Linux = " "
Mabox = " "
Macos = " "
Manjaro = " "
Mariner = " "
MidnightBSD = " "
Mint = " "
NetBSD = " "
NixOS = " "
OpenBSD = "󰈺 "
openSUSE = " "
OracleLinux = "󰌷 "
Pop = " "
Raspbian = " "
Redhat = " "
RedHatEnterprise = " "
RockyLinux = " "
Redox = "󰀘 "
Solus = "󰠳 "
SUSE = " "
Ubuntu = " "
Unknown = " "
Void = " "
Windows = "󰍲 "
[package]
symbol = "󰏗 "
[perl]
symbol = " "
[php]
symbol = " "
[pijul_channel]
symbol = " "
[python] [python]
symbol = "" symbol = ""
style = "bg:color_blue"
format = '[[ $symbol( $version) ](fg:color_fg0 bg:color_blue)]($style)'
[docker_context] [rlang]
symbol = "" symbol = "󰟔 "
style = "bg:color_bg3"
format = '[[ $symbol( $context) ](fg:#83a598 bg:color_bg3)]($style)'
[conda] [ruby]
style = "bg:color_bg3" symbol = ""
format = '[[ $symbol( $environment) ](fg:#83a598 bg:color_bg3)]($style)'
[time] [rust]
disabled = false symbol = "󱘗 "
time_format = "%R"
style = "bg:color_bg1"
format = '[[  $time ](fg:color_fg0 bg:color_bg1)]($style)'
[line_break] [scala]
disabled = false symbol = " "
[character] [swift]
disabled = false symbol = " "
success_symbol = '[](bold fg:color_green)'
error_symbol = '[](bold fg:color_red)' [zig]
vimcmd_symbol = '[](bold fg:color_green)' symbol = " "
vimcmd_replace_one_symbol = '[](bold fg:color_purple)'
vimcmd_replace_symbol = '[](bold fg:color_purple)' [gradle]
vimcmd_visual_symbol = '[](bold fg:color_yellow)' symbol = " "

View File

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

View File

@@ -1,12 +1,9 @@
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
jA0ECQMIJPtjJvUADyj/0sCQAUkXVqShmsjmP11kEL0ooHx94+JCEGWICJIuzRPc jA0ECQMI3rCkM4WCKnn/0sASAQjifcMA4M5hjwkP8dZXxah9d8g8YeofFTPLgPMm
mjhdKO/lcmKotU2GCkx35ejWDuOp0bpCOoTzpbOYRxQEws4F0nuA56EB9Q+YsQd6 zUR7BcyuniGeHkdkPhVIPDU9ea8BB6JVgldGNeHOh0Rj+OdO95RzPkC4VyGlhVC7
hr31hjIKYQO0vsyW1MItfj5nOKb3Vyars3WQm3zrdIsD/zAJol/Thfbln6j9Y8cc qoDdy+QQUOVImgEjbNLSOD3VKJzYQMfcmF2X6yZ0TpfOeHZyOmaVXQU+hdIl2g9r
NcCe2hh0MpZWxpMufl7OEmQj+hp0sOIIEhco/TSnQsJjPHyOajjpbRtdyyI7kClD zJjzKh2Ukp0VAF+1mp6mcU3fKhwJyffxF1491ExXYM80q1+S247/zLgU1/nQi/u5
U1kBtue5Go5ZcclYvJIL7ZhbN3ncVDVYrjOP59fbmBIlYpscpGuuF62NX8MRmZEf cX1cV14qi/nFQdmuNlNjahusvSpVtkhsa8TYMRyDP9rr+WdQ
RIvJgNlfAS9kn9eXTFpG35cjCZMjttRK8JKMrcBq9vdZLfi9ZHF0Lff3b22DfewU =an0w
Nb6Hr5fybR6XogcmA+cEBwanZy2fxacZeUDZOihItmWUrHgG9THgUVZo5SBvXAnM
MZcpfbCfKTJGWpSY5dgVpNV4
=LexE
-----END PGP MESSAGE----- -----END PGP MESSAGE-----

View File

@@ -1,11 +1,10 @@
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
jA0ECQMIJX/hE+QfNpz/0sBiAfL+UCwD3Q6xmXtnWFfx2jaPVzJ0LsxWCirV4NBR jA0ECQMIECtNQigofUT/0sA7AfQFumfYw02g3y4nQuPYrfbgyHuMVCsMk+nLlcLb
XdIYJ+bHdCPB6kTTCxbtY/oDMdC2POpDTCrF1hz76Ca42lvTN2OLxPuOmZwhp+GL 5I+zgR8c1ie/S5XBk3wLlJ0suhb8m4ifZOJoRcIW7G+ISTPjIetaJQnkvObKUBgG
fTYUaMcGcP5u6Lo3fHSeOo+EKLK9//S5HhKTn8ymJh+MllQbpBKBoO/GB+qOIcvh QXz54oWcQYXMeaGcEq442gU0x+S3HVU2GcIhRdiUuZ5DYbaEsYnLcPLBrp73a/wE
esRPM1szohidAYhpAmmLw0m7+LRrC5MN0pbrG80D0kchkhl+XYIUX39eUymbuAgZ +hb3IZC1zGcijpC4ovcVVAZvHUaKpV0hCzJXNGgvPW0H7/GRxQyPKjghUQ7DgCRu
ZIdJQ4inS/cp8FKZO0JI4HD6fu9+UFMeJrpv61XvQ3C06urNexyjNLvpUM/up/Nz 4u7t/GU2JDrep+nteUu5Rs+P7bypZdyripMj6BxoqHmwjj1ddeSK7Bv602Nt+7/n
xfCIiNTGvJY21kOAV3j9xtBz+ApZOgixzLr+QYHwJsKQPRlCRONhe+L8dpS6kIXm Bcg8xpViAasXREuaR3Z6r9SFlex7qbQjMMBtb2M=
R/HEujbrurgfxlfe/jUCc96yGLY= =wrl9
=dKuW
-----END PGP MESSAGE----- -----END PGP MESSAGE-----

View File

@@ -1,11 +1,9 @@
-----BEGIN PGP MESSAGE----- -----BEGIN PGP MESSAGE-----
jA0ECQMI5QTAzMem3iX/0sB7Af9vzRP3ckaEbBXnuuDV2rySfPhVUIhWhCLrdDlF jA0ECQMILwzTWNDBbZX/0sAeAQMlmiKRJM5YPtC78LvlLroqE5R6hysJq1nGV34U
VPKF+LpsZtQ/YTMDUIs+LyY4+9WEAnA4BtvoKT0+dlG7KrkVZm0cdnuYPAjxUj/d CcY7XmuLz/Bvx2/ZGE1urY48AmgNZraiKOh8kfTG5T7dCTqrkMiz1MpNRYVdnXvW
UY6Oe+SxhWZ8REwee1bIezwOR1TDrCZ4Puqhzku6ldTCQ4TStm21yX6n0bC1sDZW LOanl3+alv6tmosD52zn4vRmRCnIaqE/k6ne+NV4BuRj0u9qWLoNI/7uGFnjcvI3
crLZokGAnrdMurXNskjoCy7NKbA+qHPuX2dwjDLc5mM1nFUwSVcQKDGT2wa7oYgQ mGYlDF7ArQH0gVpmW8wmlNFzMPe4ccqWMjGbpB1h3TEALy4nh2wwNH5PvF1FKesJ
f/9BhI9TH/1uepyRErZq6J1DR0sc2q4ZEsMrIR7gqdGLlflFuZwZvmTrFybLEihV iq4Vvhslo8LbyjQdkA7/fPlYEu1MDJKDCaHWwmAevMwNuGNLrdupyOf2KkHSYmUB
U3G+09UM1utbGlgkex7yOTp0DZ9/UxYvVdunrvS4WLM29ULQe6oGt7coTD9MiCQe =ULsR
2OvH/dvSNSgGcHvrYMEcORaLDtHJgYVvhY1CgYXrvthUsehAxBalSYKyFZfJ
=XWXt
-----END PGP MESSAGE----- -----END PGP MESSAGE-----

View File

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

View File

@@ -0,0 +1,12 @@
-----BEGIN PGP MESSAGE-----
jA0ECQMI475OuKYqXMv/0sCXAShLaWEeFxtqCZ2dN7OqEy5ucrqr9u0I0yurJbwo
lYxL/g/tHRoqVDiLHx0hJMtmL5mltn+GBbGA1Y5wcqQyYvU74qUEn8iCbw1BYMQ+
1zEMwZZG5FEmW1nHYA1OM0JeWPDqpveMr/XBk8P/bI5zDr93XXKshFsuVbHvyPBJ
CiPIXPv1Pu8rJHcIjEDkknnz48ZeS2RR2N30LFmTBdD6ZmkLfq8vYtPkJFW6rb0w
jTIsDyzDbtCF6YU9VnARNCQo6y5gEUi+nZi730trfSUmFJEa1BKwG4aE46bxborn
sHmV1NTN2rZrxMRIRe05S4zqZ7Dod6eN+KBDZsSXuYWxD+sUjmWA1agYJndhk2xr
HzIFJwk7kNgKZnW6QY+/phxJX/txHd5GMjwjjYBSJ3M7Txm7BBtNoflz0TqBaIay
9vJUhWMfcPETc0/CB3S5PiMbVVGyw5jhLg==
=S/fh
-----END PGP MESSAGE-----

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More