Compare commits

...

73 Commits

Author SHA1 Message Date
Ethan Simmons
c3f1f0bfb1 Update ankaa 2025-12-17 11:57:02 -06:00
Ethan Simmons
9eddcb81db Add anki and update 2025-10-30 18:47:55 -05:00
Ethan Simmons
f475232dd4 Add Vintage Story to games 2025-10-30 18:47:32 -05:00
Ethan Simmons
a60f8e3412 Add citrix to alpheratz 2025-09-02 11:51:55 -05:00
Ethan Simmons
170fe3a1dc Update alpheratz 2025-09-02 11:44:22 -05:00
Ethan Simmons
bf25d47f15 Add matlab 2025-09-02 11:44:22 -05:00
Ethan Simmons
f14771fe14 Update alpheratz 2025-09-02 11:44:22 -05:00
Ethan Simmons
ef753f2450 Add temporary workaround for citrix 2025-09-01 19:31:24 -05:00
Ethan Simmons
b4055e9364 Update ankaa 2025-09-01 19:31:13 -05:00
Ethan Simmons
53f8093cdb Update ankaa 2025-08-17 12:25:47 -05:00
Ethan Simmons
cef4d8654a Update alpheratz 2025-08-17 12:20:42 -05:00
Ethan Simmons
6fd520839b Add bluetooth shortcut 2025-07-27 11:43:14 -05:00
Ethan Simmons
11de4c2054 Setup optical drive 2025-07-27 11:43:14 -05:00
Ethan Simmons
b2b8ee0699 Add jp ocr shortcut 2025-07-27 11:43:14 -05:00
Ethan Simmons
748accf147 Add discord for alpheratz 2025-07-27 11:43:14 -05:00
Ethan Simmons
2ee0e60f05 Fix ankaa keyboard 2025-07-08 11:50:37 -05:00
Ethan Simmons
a04a60543d Update ankaa 2025-07-08 11:04:07 -05:00
Ethan Simmons
1702260451 Update alpheratz 2025-05-29 13:34:12 -05:00
Ethan Simmons
a9b49ffbfb Update wireguard config 2025-05-29 12:59:12 -05:00
Ethan Simmons
e48c699eeb Change keybind to switch keyboard layout 2025-05-24 11:50:49 -05:00
Ethan Simmons
76ccbfb451 Add new package and change music player 2025-05-12 11:33:31 -05:00
Ethan Simmons
a9338cb8b5 Add ports and change NFS IP for diphda 2025-05-12 11:29:48 -05:00
Ethan Simmons
746f6b6402 Add new applications for school 2025-04-06 15:09:42 -05:00
Ethan Simmons
cd2f9db375 Switch ankaa terminal to kitty 2025-04-06 13:44:08 -05:00
Ethan Simmons
c0af1940a3 Update ankaa 2025-04-05 19:07:32 -05:00
Ethan Simmons
f4aeaa9f12 Change screenshot command 2025-04-05 18:51:17 -05:00
Ethan Simmons
d61db2ded8 Edit nvim config 2025-04-05 18:51:17 -05:00
Ethan Simmons
dd0df124f9 Add shadps4 package 2025-04-05 18:51:17 -05:00
Ethan Simmons
d68035d1ba Update alpheratz 2025-04-05 13:20:05 -05:00
Ethan Simmons
cf89db66c5 Add quartus to packages 2025-03-19 16:14:49 -05:00
Ethan Simmons
bdd457512a Fix backup 2025-03-19 16:14:49 -05:00
Ethan Simmons
01a1c7089a Remove jp keyboard layout 2025-02-23 11:43:35 -06:00
Ethan Simmons
39031aab84 Update neovim config 2025-02-16 15:10:30 -06:00
Ethan Simmons
62dd32207d Setup japanese input 2025-02-16 14:58:51 -06:00
Ethan Simmons
807500b2ec Add fonts 2025-02-13 21:45:22 -06:00
Ethan Simmons
d982906c39 Edit nvim config 2025-02-13 21:45:12 -06:00
Ethan Simmons
cab5cebdad Add excludes for ankaa backups 2025-02-02 13:39:12 -06:00
Ethan Simmons
1ea4d41852 Add backup for diphda 2025-02-02 11:03:11 -06:00
Ethan Simmons
9c26cd9dc5 Remove unused services from diphda config 2025-02-01 21:12:18 -06:00
Ethan Simmons
8ffd3c0de4 Change key name 2025-02-01 21:11:44 -06:00
Ethan Simmons
37e85d1980 Add backup key for diphda 2025-02-01 21:06:20 -06:00
Ethan Simmons
bea4a38199 Update diphda 2025-02-01 20:46:39 -06:00
Ethan Simmons
59d55a4a57 Update flake.lock 2025-02-01 20:36:06 -06:00
Ethan Simmons
ace4589f0b Add beets 2025-02-01 20:19:57 -06:00
Ethan Simmons
68dc490280 Fix caddy keys 2025-02-01 20:19:57 -06:00
Ethan Simmons
9aed4fc0f1 Change typst lsp for nvim 2025-01-28 20:21:33 -06:00
Ethan Simmons
36878b901b Update ankaa 2025-01-27 20:20:25 -06:00
Ethan Simmons
77c7c6b5b8 Remove gamescope overlay 2025-01-22 20:02:51 -06:00
Ethan Simmons
3b0395afc5 Add alpheratz backup settings 2024-12-18 19:07:43 -06:00
Ethan Simmons
dff2f542ce Add orca and remove udisks 2024-12-01 12:11:32 -06:00
Ethan Simmons
6994a7cd81 Add udisks 2024-12-01 12:11:32 -06:00
Ethan Simmons
5fb099f6fa Add kitty terminal to alpheratz 2024-11-20 11:44:56 -06:00
Ethan Simmons
04696bfd6d Update ankaa 2024-11-16 12:18:57 -06:00
Ethan Simmons
069b28a044 Add udev rule for vial 2024-11-16 12:13:37 -06:00
Ethan Simmons
e590d46fb4 Update ankaa 2024-11-16 12:13:37 -06:00
Ethan Simmons
00656207bb Edit sway config 2024-11-16 12:10:06 -06:00
Ethan Simmons
9ba8a1c12c Clean up unused files 2024-11-13 12:32:33 -06:00
Ethan Simmons
af0538d0ad Update alpheratz 2024-11-13 12:31:11 -06:00
Ethan Simmons
b7b7575c9a Update ankaa 2024-11-01 21:48:41 -05:00
Ethan Simmons
fe2b03f05f Update ankaa and fix renamed package 2024-10-22 20:15:09 -05:00
Ethan Simmons
bc1e5f662c Re-add anki 2024-10-22 20:14:48 -05:00
Ethan Simmons
1d20f77641 Move diphda caddy keys 2024-10-22 14:56:35 -05:00
Ethan Simmons
24efea29a8 Add minecraft server backup 2024-10-21 16:47:20 -05:00
40d00c42f7 Update diphda 2024-10-21 16:40:27 -05:00
Ethan Simmons
57946e0735 Add secret for diphda 2024-10-21 16:39:30 -05:00
Ethan Simmons
2ac79a056a Change alpheratz sops key location 2024-10-21 12:34:51 -05:00
Ethan Simmons
5b9124a80a Add jujutsu package 2024-10-20 15:29:58 -05:00
dff532246f Add citrix fixes 2024-10-20 15:14:05 -05:00
7e3cbdf0cb Update alpheratz and add new key 2024-10-18 12:04:02 -05:00
6361f1666b Update ankaa 2024-10-16 22:35:53 -05:00
ff27ee7d7a Update ankaa 2024-10-16 22:33:20 -05:00
120bdea6ca Update alpheratz 2024-10-08 11:16:47 -05:00
fc29f76a8f Add fonts and disable cups 2024-10-08 11:15:14 -05:00
49 changed files with 822 additions and 322 deletions

View File

@@ -1,13 +1,23 @@
keys:
- &admin_ankaa age1079fszreaakwf6xnwu9kra8xcsp4e8q8ed3y99yrhjnz9n3t9pnsj05m97
- &admin_alpheratz age1gdtjn3jgvvvspa86q3lnklflnvyf3s75y2rw23l7nk7hwcsfpg7qkq7msr
- &server_diphda age1rxqyz6watg05r3rzlme7grpgfgezhlt535gdl7psqys2ec8eegmqchfk4d
- &diphda age1rxqyz6watg05r3rzlme7grpgfgezhlt535gdl7psqys2ec8eegmqchfk4d
- &alpheratz age1cla0k3yffcelphkrmgz5upc0chgtdef25ne833jeqtapceux59rqkmhxf7
- &ankaa age15z4s7nts7ls5h3tu5zesghvnm3kj2qk3dsr004g8rwy578mq4q4qew7wl7
creation_rules:
- path_regex: secrets/[^/]+\.yaml$
key_groups:
- age:
- *admin_ankaa
- *admin_alpheratz
- path_regex: secrets/shared/[^/]+\.(yaml|otf)$
key_groups:
- age:
- *admin_ankaa
- *admin_alpheratz
- *alpheratz
- *ankaa
- *diphda
- path_regex: secrets/ankaa/[^/]+\.yaml$
key_groups:
- age:
@@ -16,9 +26,10 @@ creation_rules:
key_groups:
- age:
- *admin_alpheratz
- *alpheratz
- path_regex: secrets/diphda/[^/]+\.(yaml|keytab)$
key_groups:
- age:
- *admin_ankaa
- *admin_alpheratz
- *server_diphda
- *diphda

View File

@@ -1,122 +0,0 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# networking.hostName = "nixos"; # Define your hostname.
# Pick only one of the below networking options.
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
# networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
# Set your time zone.
# time.timeZone = "Europe/Amsterdam";
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Select internationalisation properties.
# i18n.defaultLocale = "en_US.UTF-8";
# console = {
# font = "Lat2-Terminus16";
# keyMap = "us";
# useXkbConfig = true; # use xkb.options in tty.
# };
# Enable the X11 windowing system.
# services.xserver.enable = true;
# Configure keymap in X11
# services.xserver.xkb.layout = "us";
# services.xserver.xkb.options = "eurosign:e,caps:escape";
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable sound.
# hardware.pulseaudio.enable = true;
# OR
# services.pipewire = {
# enable = true;
# pulse.enable = true;
# };
# Enable touchpad support (enabled default in most desktopManager).
# services.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
# users.users.alice = {
# isNormalUser = true;
# extraGroups = [ "wheel" ]; # Enable sudo for the user.
# packages = with pkgs; [
# firefox
# tree
# ];
# };
# List packages installed in system profile. To search, run:
# $ nix search wget
# environment.systemPackages = with pkgs; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget
# ];
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "24.05"; # Did you read the comment?
}

141
flake.lock generated
View File

@@ -1,15 +1,31 @@
{
"nodes": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1747046372,
"narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
},
"locked": {
"lastModified": 1725234343,
"narHash": "sha256-+ebgonl3NbiKD2UD0x4BszCZQ6sTfL4xioaM49o5B3Y=",
"lastModified": 1730504689,
"narHash": "sha256-hgmguH29K2fvs9szpq2r3pz2/8cJd2LPS+b4tfNFCwE=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "567b938d64d4b4112ee253b9274472dc3a346eb6",
"rev": "506278e768c2a08bec68eb62932193e341f55c90",
"type": "github"
},
"original": {
@@ -23,11 +39,11 @@
"systems": "systems"
},
"locked": {
"lastModified": 1710146030,
"narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
@@ -43,16 +59,16 @@
]
},
"locked": {
"lastModified": 1725703823,
"narHash": "sha256-tDgM4d8mLK0Hd6YMB2w1BqMto1XBXADOzPEaLl10VI4=",
"lastModified": 1747688870,
"narHash": "sha256-ypL9WAZfmJr5V70jEVzqGjjQzF0uCkz+AFQF7n9NmNc=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "208df2e558b73b6a1f0faec98493cb59a25f62ba",
"rev": "d5f1f641b289553927b3801580598d200a501863",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-24.05",
"ref": "release-24.11",
"repo": "home-manager",
"type": "github"
}
@@ -64,11 +80,11 @@
]
},
"locked": {
"lastModified": 1726036828,
"narHash": "sha256-ZQHbpyti0jcAKnwQY1lwmooecLmSG6wX1JakQ/eZNeM=",
"lastModified": 1761845621,
"narHash": "sha256-d+R4MHsGmdebvSMsYUFWONsZSlUbOo8Zq/wjMdMiIac=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "8a1671642826633586d12ac3158e463c7a50a112",
"rev": "97e3022a8d2c09313fa49847f6da4d76abcfc72d",
"type": "github"
},
"original": {
@@ -83,11 +99,11 @@
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1726069933,
"narHash": "sha256-qZOzY3I7qh4f/q+vw5YCPekO3AG/DsIzxj9e3Sq+Bdg=",
"lastModified": 1761867267,
"narHash": "sha256-b2vU6HzMR26JnHmnkvNZgefyfzAZOi9wLZdA+WOymHU=",
"owner": "ggerganov",
"repo": "llama.cpp",
"rev": "1b28061400eb9832603c9f1dfbec4d339a8490a2",
"rev": "6eb208d17ea29bb60295d9a2b5e7122dfb8f4b55",
"type": "github"
},
"original": {
@@ -96,13 +112,32 @@
"type": "github"
}
},
"nix-matlab": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs_2"
},
"locked": {
"lastModified": 1754476755,
"narHash": "sha256-vSF0VMEmPMzwNkrXIZwkhOSYmKES9BaDK/LlEe7/q8E=",
"owner": "doronbehar",
"repo": "nix-matlab",
"rev": "0e9c9fb660f9e1a1e4d59fd083e0212a15b513e2",
"type": "gitlab"
},
"original": {
"owner": "doronbehar",
"repo": "nix-matlab",
"type": "gitlab"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1725634671,
"narHash": "sha256-v3rIhsJBOMLR8e/RNWxr828tB+WywYIoajrZKFM+0Gg=",
"lastModified": 1732014248,
"narHash": "sha256-y/MEyuJ5oBWrWAic/14LaIr/u5E0wRVzyYsouYY3W6w=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "574d1eac1c200690e27b8eb4e24887f8df7ac27c",
"rev": "23e89b7da85c3640bbc2173fe04f4bd114342367",
"type": "github"
},
"original": {
@@ -114,55 +149,39 @@
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1725233747,
"narHash": "sha256-Ss8QWLXdr2JCBPcYChJhz4xJm+h/xjl4G0c0XlP6a74=",
"lastModified": 1730504152,
"narHash": "sha256-lXvH/vOfb4aGYyvFmZK/HlsNsr/0CVWlwYvo2rxJk3s=",
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
"url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://github.com/NixOS/nixpkgs/archive/356624c12086a18f2ea2825fed34523d60ccc4e3.tar.gz"
"url": "https://github.com/NixOS/nixpkgs/archive/cc2f28000298e1269cea6612cd06ec9979dd5d7f.tar.gz"
}
},
"nixpkgs-stable": {
"locked": {
"lastModified": 1725930920,
"narHash": "sha256-RVhD9hnlTT2nJzPHlAqrWqCkA7T6CYrP41IoVRkciZM=",
"lastModified": 1751274312,
"narHash": "sha256-/bVBlRpECLVzjV19t5KMdMFWSwKLtb5RyXdjz3LJT+g=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "44a71ff39c182edaf25a7ace5c9454e7cba2c658",
"rev": "50ab793786d9de88ee30ec4e4c24fb4236fc2674",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-24.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-stable_2": {
"locked": {
"lastModified": 1725762081,
"narHash": "sha256-vNv+aJUW5/YurRy1ocfvs4q/48yVESwlC/yHzjkZSP8=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "dc454045f5b5d814e5862a6d057e7bb5c29edc05",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "release-24.05",
"ref": "nixos-24.11",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1725983898,
"narHash": "sha256-4b3A9zPpxAxLnkF9MawJNHDtOOl6ruL0r6Og1TEDGCE=",
"lastModified": 1761672384,
"narHash": "sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1355a0cbfeac61d785b7183c0caaec1f97361b43",
"rev": "08dacfca559e1d7da38f3cf05f1f45ee9bfd213c",
"type": "github"
},
"original": {
@@ -174,11 +193,25 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1725534445,
"narHash": "sha256-Yd0FK9SkWy+ZPuNqUgmVPXokxDgMJoGuNpMEtkfcf84=",
"lastModified": 1754340878,
"narHash": "sha256-lgmUyVQL9tSnvvIvBp7x1euhkkCho7n3TMzgjdvgPoU=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "9bb1e7571aadf31ddb4af77fc64b2d59580f9a39",
"rev": "cab778239e705082fe97bb4990e0d24c50924c04",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1760596604,
"narHash": "sha256-J/i5K6AAz/y5dBePHQOuzC7MbhyTOKsd/GLezSbEFiM=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "3cbe716e2346710d6e1f7c559363d14e11c32a43",
"type": "github"
},
"original": {
@@ -194,6 +227,7 @@
"home-manager-stable": "home-manager-stable",
"home-manager-unstable": "home-manager-unstable",
"llama-cpp": "llama-cpp",
"nix-matlab": "nix-matlab",
"nixpkgs-stable": "nixpkgs-stable",
"nixpkgs-unstable": "nixpkgs-unstable",
"sops-nix": "sops-nix"
@@ -201,15 +235,14 @@
},
"sops-nix": {
"inputs": {
"nixpkgs": "nixpkgs_2",
"nixpkgs-stable": "nixpkgs-stable_2"
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1725922448,
"narHash": "sha256-ruvh8tlEflRPifs5tlpa0gkttzq4UtgXkJQS7FusgFE=",
"lastModified": 1760998189,
"narHash": "sha256-ee2e1/AeGL5X8oy/HXsZQvZnae6XfEVdstGopKucYLY=",
"owner": "Mic92",
"repo": "sops-nix",
"rev": "cede1a08039178ac12957733e97ab1006c6b6892",
"rev": "5a7d18b5c55642df5c432aadb757140edfeb70b3",
"type": "github"
},
"original": {

View File

@@ -2,11 +2,11 @@
description = "NixOS configuration";
inputs = {
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05";
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
home-manager-stable.url = "github:nix-community/home-manager/release-24.05";
home-manager-stable.url = "github:nix-community/home-manager/release-24.11";
home-manager-stable.inputs.nixpkgs.follows = "nixpkgs-stable";
home-manager-unstable.url = "github:nix-community/home-manager";
@@ -18,6 +18,8 @@
llama-cpp.url = "github:ggerganov/llama.cpp";
nix-matlab.url = "gitlab:doronbehar/nix-matlab";
};
outputs = inputs@{ self
@@ -27,6 +29,8 @@
, home-manager-unstable
, flake-utils
, sops-nix
, llama-cpp
, nix-matlab
, ...
}:
let
@@ -57,6 +61,10 @@
excludes = [
"/home/eesim/.local/share/Steam/steamapps/common"
"/home/eesim/.cache"
"/home/eesim/llama/models"
"/home/eesim/.local/share/Trash"
"/home/eesim/Games"
"/home/eesim/nixpkgs"
];
passphrase = "/home/eesim/.ssh/borgbase_passphrase";
key = "/home/eesim/.ssh/id_ed25519_borgbase";
@@ -72,9 +80,15 @@
};
};
term = {
terminal = "kitty";
font = "codelia";
};
gui = {
enable = true;
protonmail = true;
secrets = true;
gtk = false;
sway = {
@@ -108,12 +122,14 @@
enable = true;
lutris.enable = true;
minecraft.enable = true;
vintagestory.enable = true;
};
common.nil.enable = true;
networking = {
wireguard.enable = true;
firewall.allowedTCPPorts = [ 8080 ];
};
};
}
@@ -156,11 +172,31 @@
citrix = true;
};
games = {
enable = true;
};
backup = {
user = "eesim";
paths = [ "/home/eesim" ];
repo = "t643s856@t643s856.repo.borgbase.com:repo";
excludes = [
"/home/eesim/.cache/"
"/home/eesim/configs/mc-distant-horizons"
"/home/eesim/configs/mc-arcadia"
];
key = "/home/eesim/.ssh/id_ed25519";
passphrase = "/run/secrets/borgbase/nix-alpheratz";
repeat = "daily";
};
common.nil.enable = true;
networking = {
wireguard.enable = true;
};
term.terminal = "kitty";
};
}
{
@@ -172,9 +208,22 @@
options = {
openssh.enable = true;
backup = {
enable = true;
user = "eesim";
paths = [ "/home/eesim" ];
repo = "ssh://p9h977h3@p9h977h3.repo.borgbase.com/./repo";
excludes = [
"/home/eesim/.cache"
];
passphrase = "/run/secrets/backup/repo_password";
key = "/home/eesim/.ssh/id_ed25519_borgbase";
repeat = "daily";
};
networking = {
firewall = {
allowedTCPPorts = [ 80 443 3843 4533 6722 7474 7878 8080 8081 8083 8089 8096 8120 8181 8443 8787 8889 8902 8989 8998 9000 9091 9696 11112 24454 25565 25600 ];
allowedTCPPorts = [ 80 443 3000 3843 4533 5030 6600 6722 7474 7878 8000 8080 8081 8083 8089 8096 8120 8181 8443 8787 8889 8902 8989 8998 9000 9091 9696 11112 13378 24454 25565 25600 50300 ];
allowedUDPPorts = [ 3478 10001 ];
};
};
@@ -189,15 +238,32 @@
pkgs = import nixpkgs {
inherit system;
overlays = with overlays; [ printrun ];
config.allowUnfree = true;
overlays = with overlays; [ printrun shadps4 nix-matlab.overlay ];
config = {
allowUnfree = true;
permittedInsecurePackages = [
"electron-31.7.7"
# TODO: Remove when fixed https://github.com/NixOS/nixpkgs/issues/433004
"libsoup-2.74.3"
"libxml2-2.13.8"
];
};
};
# TODO: Remove when Citrix is fixed
pkgs_stable_tmp = import nixpkgs-stable {
inherit system;
config = {
allowUnfree = true;
};
};
localPackages = pkgs.lib.genAttrs flake-utils.lib.defaultSystems (system: {
kickoff-dot-desktop = pkgs.callPackage ./pkgs/kickoff-dot-desktop.nix {};
gamescope-old = pkgs.callPackage ./pkgs/gamescope-old {};
gamescope-dbg = pkgs.callPackage ./pkgs/gamescope-dbg {};
jhelioviewer = pkgs.callPackage ./pkgs/jhelioviewer.nix {};
llama-cpp = llama-cpp.packages.${system}.rocm;
shadps4 = pkgs.callPackage ./pkgs/shadps4.nix {};
gazou = pkgs.callPackage ./pkgs/gazou.nix {};
}
);
@@ -217,6 +283,7 @@
specialArgs = {
inherit localPackages;
inherit pkgs;
inherit pkgs_stable_tmp;
};
modules = [
{
@@ -235,6 +302,7 @@
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit utils;
inherit localPackages;
systemConfig = config.options;
};

View File

@@ -120,7 +120,7 @@ bindsym $mod+Shift+9 move container to workspace number 9
bindsym $mod+Shift+0 move container to workspace number 10
for_window [app_id="simmer505.waywrite"] floating enable
for_window [app_id="org.speedcrunch.speedcrunch"] floating enable
for_window [app_id="org.speedcrunch."] floating enable
# Horizontal and vertical splits
bindsym $mod+b splith

View File

@@ -31,6 +31,13 @@
options = [ "subvol=nix" ];
};
# Remove comments for optical drive in wine
# fileSystems."/mnt/drive0" =
# { device = "/dev/sr0";
# fsType = "auto";
# options = [ "ro" "user" "noauto" "unhide" ];
# };
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking

View File

@@ -25,18 +25,53 @@
sops = {
defaultSopsFile = ../../secrets/alpheratz/secrets.yaml;
age.keyFile = "/home/eesim/.config/sops/age/keys.txt";
age.keyFile = "/etc/sops.key";
secrets."wireguard/private" = {};
secrets."wireguard/preshared" = {};
secrets."borgbase/nix-alpheratz" = {
owner = "eesim";
};
secrets."Codelia-Regular.otf" = {
format = "binary";
sopsFile = ../../secrets/shared/Codelia-Regular;
owner = "eesim";
path = "/home/eesim/.local/share/fonts/Codelia Regular.otf";
};
secrets."Codelia-Bold.otf" = {
format = "binary";
sopsFile = ../../secrets/shared/Codelia-Bold;
owner = "eesim";
path = "/home/eesim/.local/share/fonts/Codelia Bold.otf";
};
secrets."Codelia-Italic.otf" = {
format = "binary";
sopsFile = ../../secrets/shared/Codelia-Italic;
owner = "eesim";
path = "/home/eesim/.local/share/fonts/Codelia Italic.otf";
};
secrets."Codelia-BoldItalic.otf" = {
format = "binary";
sopsFile = ../../secrets/shared/Codelia-BoldItalic;
owner = "eesim";
path = "/home/eesim/.local/share/fonts/Codelia BoldItalic.ttf";
};
};
environment.systemPackages = with pkgs; [
localPackages.x86_64-linux.jhelioviewer
bottles
];
matlab
discord
wine
matlab-language-server
];
services.printing.enable = true;
services.printing.enable = false;
services.avahi = {
enable = true;
nssmdns4 = true;
@@ -60,18 +95,17 @@
networking.wg-quick.interfaces = {
wg0 = {
address = [ "10.0.0.2/32" ];
address = [ "10.137.175.3/32" ];
listenPort = 51820;
privateKeyFile = "/run/secrets/wireguard/private";
dns = [ "192.168.1.1" ];
autostart = false;
dns = [ "10.137.175.1" ];
autostart = true;
peers = [
{
publicKey = "sWdXHlBqH+tAgSl0Tqr46sfKvgFN/vMDiuN08HjzaSg=";
presharedKeyFile = "/run/secrets/wireguard/preshared";
allowedIPs = [ "0.0.0.0/0" "::/0" ];
endpoint = "jellyfin.simmer505.com:51820";
endpoint = "mc.simmer505.com:51820";
}
];
};
@@ -86,7 +120,7 @@
# Define a user account.
users.users.eesim = {
isNormalUser = true;
extraGroups = [ "wheel" "video" "audio" "networkmanager" ];
extraGroups = [ "wheel" "video" "audio" "networkmanager" "cdrom" ];
shell = pkgs.fish;
};

View File

@@ -1,2 +0,0 @@
Host git.simmer505.com
Port 222

View File

@@ -11,7 +11,7 @@
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" "wl" ];
boot.extraModulePackages = [ config.boot.kernelPackages.broadcom_sta ];
boot.extraModulePackages = [];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/c9d87455-b02f-465d-8d63-1858dc2164fe";

View File

@@ -24,7 +24,6 @@
home.file.".config/waybar".source = ./dotfiles/waybar;
home.file.".config/alacritty/alacritty.toml".source = ./dotfiles/alacritty/alacritty.toml;
home.file.".ssh/config".source = ./dotfiles/ssh/config;
# Fix for slow steam download speeds https://old.reddit.com/r/linux_gaming/comments/16e1l4h/slow_steam_downloads_try_this/
home.file.".steam/steam/steam_dev.cfg".source = ./dotfiles/steam/steam_dev.cfg;

View File

@@ -16,13 +16,56 @@
};
};
sops = {
defaultSopsFile = ../../secrets/ankaa/secrets.yaml;
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
secrets."Codelia-Regular.otf" = {
format = "binary";
sopsFile = ../../secrets/shared/Codelia-Regular;
owner = "eesim";
path = "/home/eesim/.local/share/fonts/Codelia Regular.otf";
};
secrets."Codelia-Bold.otf" = {
format = "binary";
sopsFile = ../../secrets/shared/Codelia-Bold;
owner = "eesim";
path = "/home/eesim/.local/share/fonts/Codelia Bold.otf";
};
secrets."Codelia-Italic.otf" = {
format = "binary";
sopsFile = ../../secrets/shared/Codelia-Italic;
owner = "eesim";
path = "/home/eesim/.local/share/fonts/Codelia Italic.otf";
};
secrets."Codelia-BoldItalic.otf" = {
format = "binary";
sopsFile = ../../secrets/shared/Codelia-BoldItalic;
owner = "eesim";
path = "/home/eesim/.local/share/fonts/Codelia BoldItalic.ttf";
};
};
environment.systemPackages = with pkgs; [
localPackages.x86_64-linux.jhelioviewer
printrun
pciutils
bottles
inkscape
orca-slicer
qemu
protonvpn-gui
anki
];
services.hardware.openrgb.enable = true;
services.avahi.enable = true;
services.udev.extraRules = ''
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
'';
hardware.graphics.extraPackages = with pkgs; [
rocmPackages.clr.icd
@@ -53,8 +96,6 @@
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
programs.ssh.startAgent = true;
# Define a user account.
users.users.eesim = {
isNormalUser = true;

View File

@@ -15,7 +15,7 @@
home = {
username = "eesim";
# homeDirectory = "/home/eesim";
homeDirectory = "/home/eesim";
};
home.file.".config/nvim".source = ../shared/dotfiles/nvim;

View File

@@ -38,7 +38,7 @@
};
fileSystems."/media" =
{ device = "192.168.1.100:/volume1/Media";
{ device = "10.137.177.10:/volume1/Media";
fsType = "nfs";
};

View File

@@ -1,16 +1,16 @@
source_directories:
- /home/eesim/configs/mc-arcadia
- /home/eesim/configs/mc-distant-horizons/
repositories:
- path: ssh://fbv1440u@fbv1440u.repo.borgbase.com/./repo
label: "Minecraft-Arcadia borgbase"
- path: ssh://lxojwl95@lxojwl95.repo.borgbase.com/./repo
label: "Minecraft-DH borgbase"
exclude_if_present:
- .nobackup
compression: auto,zstd
archive_name_format: '{hostname}-{now:%Y-%m-%d-%H%M%S}'
encryption_passcommand: 'cat /run/secrets/mc-arcadia/repo_password'
encryption_passcommand: 'cat /run/secrets/mc-dh/repo_password'
keep_hourly: 24
keep_daily: 7

View File

@@ -20,7 +20,13 @@
defaultSopsFile = ../../secrets/diphda/secrets.yaml;
age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
secrets."backup/repo_password" = {
owner = "eesim";
};
secrets."mc-arcadia/repo_password" = {};
secrets."mc-dh/repo_password" = {};
secrets."tandoor/secret_key" = {
owner = "tandoor";
};
@@ -31,54 +37,8 @@
format = "binary";
sopsFile = ../../secrets/diphda/porkbun.keytab;
};
};
systemd.timers."mc-arcadia-backup" = {
wantedBy = [ "timers.target" ];
timerConfig = {
OnCalendar = "*-*-* *:00:00";
Persistent = true;
};
};
systemd.services."mc-arcadia-backup" = {
enable = true;
preStart = ''
${pkgs.docker}/bin/docker exec mc-arcadia-mc-1 mc-send-to-console say Server backup starting in 5 minutes
sleep 5m
'';
postStart = ''
${pkgs.docker}/bin/docker exec mc-arcadia-mc-1 mc-send-to-console say Server backup starting
'';
serviceConfig = {
Type = "oneshot";
User = "root";
ExecStart = ''
systemd-inhibit --who="borgmatic" \
--why="Prevent interrupting scheduled backup" \
${pkgs.borgmatic}/bin/borgmatic -c /etc/nixos/hosts/diphda/mc-arcadia-backup.yaml --verbosity 1 --syslog-verbosity 1
'';
};
};
systemd.services."dl-manager" = {
enable = true;
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
path = [ pkgs.bash pkgs.lftp ];
serviceConfig = {
Type = "simple";
User = "eesim";
Group = "acme";
WorkingDirectory = "/home/eesim/scripts";
ExecStart = ''
/home/eesim/scripts/dl_manager_tokio -vv \
-c /var/lib/acme/download.simmer505.com/cert.pem \
-k /var/lib/acme/download.simmer505.com/key.pem \
--script-dir /home/eesim/scripts/ \
0.0.0.0:11112
'';
};
secrets."caddy/porkbun_api_key" = {};
secrets."caddy/porkbun_secret_key" = {};
};
systemd.services."qbit-update-port" = {
@@ -102,15 +62,6 @@
};
};
security.acme = {
acceptTerms = true;
defaults.email = "eesimmons9105@gmail.com";
certs."download.simmer505.com" = {
dnsProvider = "porkbun";
environmentFile = "${config.sops.secrets."porkbun.keytab".path}";
};
};
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
@@ -128,6 +79,7 @@
environment.systemPackages = with pkgs; [
docker-compose
beets-unstable
];
# Set your time zone.

View File

@@ -10,6 +10,9 @@ vim.keymap.set('n', '<leader>ff', ':FzfLua files<CR>')
vim.keymap.set('n', '<leader>fb', ':FzfLua buffers<CR>')
vim.keymap.set('n', '<leader>rg', ':FzfLua grep_project<CR>')
vim.keymap.set('n', 'ga', '<Plug>(EasyAlign)')
vim.keymap.set('x', 'ga', '<Plug>(EasyAlign)')
vim.keymap.set('i', '<S-Tab>', '<C-d>')

View File

@@ -37,6 +37,8 @@ local plugins = {
'Vigemus/iron.nvim',
'junegunn/vim-easy-align',
}
local lazypath = vim.fn.stdpath("data") .. "/lazy/lazy.nvim"

View File

@@ -14,11 +14,19 @@ iron.setup {
python = {
command = { "python3" }, -- or { "ipython", "--no-autoindent" }
format = require("iron.fts.common").bracketed_paste_python
},
matlab = {
command = {
"matlab",
"-nosplash",
"-nodesktop"
},
}
},
-- How the repl window will be displayed
-- See below for more information
repl_open_cmd = require('iron.view').bottom(40),
repl_open_cmd = require('iron.view').split.vertical.rightbelow("%40"),
},
-- Iron doesn't set keymaps by default anymore.
-- You can set them here or manually add keymaps to the functions in iron.core

View File

@@ -24,11 +24,21 @@ lspconfig.rust_analyzer.setup {
},
}
lspconfig.matlab_ls.setup {
capabilities = capabilities,
settings = {
MATLAB = {
indexWorkspace = false,
installPath = "",
},
},
}
lspconfig.omnisharp.setup {
cmd = { "dotnet", "/usr/lib/omnisharp-roslyn/OmniSharp.dll"}
}
local default_servers = {'pylsp', 'ccls', 'typst_lsp', 'r_language_server', 'lua_ls', 'nil_ls'}
local default_servers = {'pylsp', 'ccls', 'r_language_server', 'lua_ls', 'nil_ls', 'tinymist'}
for _, lsp in ipairs(default_servers) do
lspconfig[lsp].setup {

View File

@@ -10,6 +10,16 @@ vim.opt.softtabstop=4
vim.opt.shiftwidth=4
vim.opt.shiftround=true
vim.api.nvim_create_autocmd(
{ "FileType" },
{ pattern = "nix",
callback = function()
vim.opt.softtabstop=2
vim.opt.shiftwidth=2
end
}
)
vim.opt.backspace={'indent','eol','start'}
vim.opt.hidden=true
vim.opt.laststatus=2

View File

@@ -12,5 +12,6 @@
./qt.nix
./sway.nix
./gtk.nix
./term.nix
];
}

View File

@@ -14,13 +14,32 @@ in
type = types.bool;
default = true;
};
jujutsu = {
enable = mkOption {
description = "Whether to install and configure jujutsu";
type = types.bool;
default = true;
};
};
};
config = mkIf cfg.enable {
programs.git = {
config = {
programs.git = mkIf cfg.enable {
enable = true;
userName = "Ethan Simmons";
userEmail = "eesimmons9105@gmail.com";
userEmail = "contact@esimmons.me";
};
programs.jujutsu = mkIf cfg.jujutsu.enable {
enable = true;
settings = {
user = {
name = "Ethan Simmons";
email = "contact@esimmons.me";
};
ui.paginate = "never";
};
};
};
}

View File

@@ -18,7 +18,7 @@ in
};
iconTheme = {
name = "awaidta-dark";
package = pkgs.gnome.adwaita-icon-theme;
package = pkgs.adwaita-icon-theme;
};
theme = {
name = "adw-gtk3-dark";

View File

@@ -1,5 +1,6 @@
{ lib
, pkgs
, localPackages
, config
, systemConfig
, utils
@@ -8,6 +9,7 @@
with lib; let
gui = config.simmer.gui;
term = config.simmer.term;
laptop = config.simmer.laptop;
modifier = "Mod4";
in
@@ -56,7 +58,7 @@ in
"XF86AudioMute" = "exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle";
"XF86AudioMicMute" = "exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle";
"${modifier}+space" = "exec \"kickoff-dot-desktop | ${pkgs.kickoff}/bin/kickoff --from-stdin --stdout | xargs -d '\\n' ${pkgs.sway}/bin/swaymsg exec\"";
"${modifier}+Return" = "exec alacritty ";
"${modifier}+Return" = "exec ${term.terminal}";
"${modifier}+Control+f" = "exec MOZ_ENABLE_WAYLAND=1 firefox";
"${modifier}+Control+t" = "exec thunar";
"${modifier}+Control+h" = "exec helvum";
@@ -69,10 +71,10 @@ in
"${modifier}+Down" = "focus down";
"${modifier}+Up" = "focus up";
"${modifier}+Right" = "focus right";
"${modifier}+Shift+h" = "move left";
"${modifier}+Shift+j" = "move down";
"${modifier}+Shift+k" = "move up";
"${modifier}+Shift+l" = "move right";
"${modifier}+Shift+h" = "move left 30px";
"${modifier}+Shift+j" = "move down 30px";
"${modifier}+Shift+k" = "move up 30px";
"${modifier}+Shift+l" = "move right 30px";
"${modifier}+Shift+Left" = "move left";
"${modifier}+Shift+Down" = "move down";
"${modifier}+Shift+Up" = "move up";
@@ -108,8 +110,11 @@ in
"${modifier}+Shift+0" = "move container to workspace 10";
"${modifier}+Shift+e" = "exec swaynag -t warning -m 'You pressed the exit shortcut. Do you really want to exit sway? This will end your Wayland session.' -B 'Yes, exit sway' 'swaymsg exit'";
"${modifier}+Shift+c" = "reload";
"${modifier}+Shift+s" = "exec ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" \"/home/eesim/Pictures/$(date +'%s_grim.png')\"";
"${modifier}+Shift+s" = "exec 'TMPFILE=\"$(mktemp)\"; ${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" \"$TMPFILE\"; mv \"$TMPFILE\" \"/home/eesim/Pictures/$(${pkgs.zenity}/bin/zenity --entry).png\"'";
"${modifier}+Shift+o" = "exec '${pkgs.grim}/bin/grim -g \"$(${pkgs.slurp}/bin/slurp)\" - | ${localPackages.x86_64-linux.gazou}/bin/gazou | tail -n +2 | ${pkgs.wl-clipboard}/bin/wl-copy'";
"${modifier}+Shift+q" = "kill";
"${modifier}+p" = "focus mode_toggle";
"${modifier}+Control+b" = "exec bluetoothctl connect 18:3F:70:62:A5:3C";
"XF86AudioPause" = "exec playerctl play-pause";
"XF86AudioNext" = "exec playerctl next";
"XF86AudioPrev" = "exec playerctl previous";
@@ -125,8 +130,9 @@ in
})
];
startup = []
++ optionals gui.sway.desktop [
startup = [
{ command = "fcitx5 -d"; }
] ++ optionals gui.sway.desktop [
{ command = "vorta"; }
{ command = "MOZ_ENABLE_WAYLAND=1 firefox"; }
{ command = "sleep 20 && vesktop --enable-features=WebRTCPipeWireCapturer"; }
@@ -192,7 +198,7 @@ in
input."type:keyboard" = {
xkb_layout = "us,de";
xkb_options = "grp:shifts_toggle";
xkb_options = "grp:lctrl_lalt_toggle,lv3:ralt_switch";
};
output = gui.monitors;
@@ -208,10 +214,13 @@ in
commands = [
{ criteria = { class = "vesktop"; }; command = "opacity 0.9"; }
{ criteria = { app_id = "Alacritty"; }; command = "opacity 0.9"; }
{ criteria = { app_id = "kitty"; }; command = "opacity 0.9"; }
{ criteria = { class = "feishin"; }; command = "opacity 0.9"; }
{ criteria = { class = "gamescope"; }; command = "fullscreen"; }
{ criteria = { app_id = "gamescope"; }; command = "fullscreen"; }
{ criteria = { class = "Wfica"; }; command = "fullscreen"; }
{ criteria = { app_id = "mpv"; }; command = "fullscreen"; }
{ criteria = { app_id = "org.speedcrunch."; }; command = "floating enable"; }
];
};
@@ -248,10 +257,20 @@ in
'';
extraSessionCommands = mkIf gui.secrets ''
extraSessionCommands =
(if gui.secrets
then ''
eval $(gnome-keyring-daemon --start --components=pkcs11,secrets,ssh);
export SSH_AUTH_SOCK;
'';
''
else "") + ''
# https://www.reddit.com/r/swaywm/comments/i6qlos/how_do_i_use_an_ime_with_sway/g1lk4xh?utm_source=share&utm_medium=web2x&context=3
export INPUT_METHOD=fcitx
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export XIM_SERVERS=fcitx
'';
};
};
}

27
modules/home/term.nix Normal file
View File

@@ -0,0 +1,27 @@
{ lib
, pkgs
, config
, ...
}:
with lib; let
cfg = config.simmer.term;
in
{
config = {
programs.kitty = mkIf (cfg.terminal == "kitty") {
enable = true;
settings = {
confirm_os_window_close = 0;
};
font.name = mkIf (cfg.font == "codelia") "Codelia";
};
programs.alacritty = mkIf (cfg.terminal == "alacritty") {
enable = true;
};
};
}

View File

@@ -12,7 +12,7 @@ in
config = {
environment.systemPackages = with pkgs; []
++ optional cfg.pipewire.enable pulseaudio
++ optional cfg.music.enable feishin
++ optional cfg.music.enable supersonic
++ optional cfg.tools.helvum helvum
++ optional cfg.tools.easyeffects easyeffects
++ optional cfg.tools.pavucontrol pavucontrol;

View File

@@ -15,6 +15,7 @@ in
curl
wget
git
jujutsu
killall
vim
eza
@@ -40,6 +41,11 @@ in
main = mkMerge [
(mkIf (cfg.caps == "ctrl-esc") { capslock = "overload(control, esc)"; })
(mkIf (cfg.caps == "esc") { capslock = "esc"; })
{ rightcontrol = "rightcontrol"; }
{ rightshift = "rightshift"; }
];
altgr = mkMerge [
{ "-" = "macro(C-S-u 2 0 1 4 space)"; }
];
};
};

View File

@@ -9,15 +9,18 @@ with lib; let
in
{
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; with localPackages.x86_64-linux; []
environment.systemPackages = with pkgs; []
++ optional cfg.protonup.enable protonup-qt
++ optional cfg.gamescope.enable gamescope
++ optional cfg.discord.enable vesktop
++ optional cfg.minecraft.enable prismlauncher
++ optional cfg.vintagestory.enable vintagestory
++ optional cfg.ps4.enable localPackages.x86_64-linux.shadps4
++ optionals cfg.lutris.enable [ lutris wine ];
programs.steam = mkIf cfg.steam.enable {
enable = true;
extraCompatPackages = with pkgs; [ proton-ge-bin ];
};
};
}

View File

@@ -24,14 +24,13 @@ in
mpv
feh
]
++ [ cfg.terminal ]
++ optional cfg.matrix cinny-desktop
++ optional cfg.secrets libsecret
++ optionals cfg.protonmail [ thunderbird protonmail-bridge ];
programs.dconf.enable = mkIf cfg.secrets true;
services.gnome.gnome-keyring.enable = mkIf cfg.secrets true;
services.dbus.packages = mkIf cfg.secrets [ pkgs.gnome.seahorse ];
services.dbus.packages = mkIf cfg.secrets [ pkgs.seahorse ];
# Remove when nixpkgs issue 143365 is fixed
security.pam.services.swaylock = mkIf (!cfg.sway.desktop) {};
@@ -41,15 +40,27 @@ in
hardware.opengl.enable = true;
i18n.inputMethod = {
enabled = "fcitx5";
fcitx5.addons = with pkgs; [
fcitx5-mozc
fcitx5-gtk
];
};
fonts = {
packages = with pkgs; [
liberation_ttf
noto-fonts
noto-fonts-cjk
noto-fonts-extra
ubuntu_font_family
noto-fonts-cjk-sans
ubuntu-classic
vazir-fonts
font-awesome
corefonts
carlito
roboto
source-sans
source-sans-pro
];
fontconfig = {

View File

@@ -1,19 +1,24 @@
{ lib
, pkgs
, config
, localPackages
, pkgs_stable_tmp
, ...
}:
with lib; let
cfg = config.simmer.school;
extraCerts = [ ./incommon-rsa-ca2.pem ];
citrix = pkgs.citrix_workspace_23_09_0.override { inherit extraCerts; };
citrix = pkgs_stable_tmp.citrix_workspace_23_09_0.override { inherit extraCerts; };
in
{
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
xournalpp
libreoffice
] ++ optional cfg.citrix citrix;
]
++ optional cfg.citrix citrix
++ optional cfg.kicad kicad
++ optional cfg.logisim logisim-evolution;
};
}

View File

@@ -16,5 +16,6 @@
./system.nix
./laptop.nix
./school.nix
./term.nix
];
}

View File

@@ -34,12 +34,24 @@ in
default = true;
};
vintagestory.enable = mkOption {
description = "Whether to install Vintage Story";
type = types.bool;
default = false;
};
minecraft.enable = mkOption {
description = "Whether to install minecraft launcher";
type = types.bool;
default = false;
};
ps4.enable = mkOption {
description = "Whether to install ps4 emulator";
type = types.bool;
default = false;
};
gamescope.enable = mkOption {
description = "Whether to install gamescope";
type = types.bool;

View File

@@ -33,12 +33,6 @@ in
};
terminal = mkOption {
description = "Which terminal to install (alacritty)";
type = types.enum [ pkgs.alacritty ];
default = pkgs.alacritty;
};
gtk = mkOption {
description = "Whether to configure gtk";
type = types.bool;

View File

@@ -1,5 +1,6 @@
{ lib
, pkgs
, config
, ...
}:
@@ -19,5 +20,15 @@ in
type = types.bool;
default = false;
};
kicad = mkOption {
description = "Whether to install kicad";
type = types.bool;
default = cfg.enable;
};
logisim = mkOption {
description = "Whether to install logisim";
type = types.bool;
default = cfg.enable;
};
};
}

32
modules/options/term.nix Normal file
View File

@@ -0,0 +1,32 @@
{ lib
, pkgs
, config
, ...
}:
with lib; let
cfg = config.simmer.term;
gui = config.simmer.gui;
in
{
options.simmer.term = {
enable = mkOption {
description = "Whether to install and configure a terminal";
type = types.bool;
default = gui.enable;
};
terminal = mkOption {
description = "Which terminal to install (alcritty, kitty)";
type = types.enum [ "alacritty" "kitty" ];
default = "alacritty";
};
font = mkOption {
description = "Which font to use in terminal";
type = types.enum [ "default" "codelia" ];
default = "codelia";
};
};
}

12
overlays/citrix.nix Normal file
View File

@@ -0,0 +1,12 @@
final: prev: {
# https://github.com/NixOS/nixpkgs/issues/348868
citrix_workspace_23_09_0 = prev.citrix_workspace_23_09_0.override {
libvorbis = final.libvorbis.override {
libogg = final.libogg.overrideAttrs (prevAttrs: {
cmakeFlags = (if prevAttrs ? cmakeFlags then prevAttrs.cmakeFlags else []) ++ [
(final.lib.cmakeBool "BUILD_SHARED_LIBS" true)
];
});
};
};
}

View File

@@ -1,7 +1,8 @@
{ inputs, ...}:
{
gamescope = import ./gamescope-last-working.nix;
nose = import ./nose.nix;
llama-cpp = import ./llama-cpp.nix { inherit inputs; };
printrun = import ./printrun.nix { inherit inputs; };
citrix = import ./citrix.nix;
shadps4 = import ./shadps4.nix;
}

View File

@@ -1,11 +0,0 @@
final: prev: {
gamescope = prev.gamescope.overrideAttrs ( old: {
src = prev.fetchFromGitHub {
owner = "ValveSoftware";
repo = "gamescope";
rev = "d0d23c4c3010c81add1bd90cbe478ce4a386e28d";
fetchSubmodules = true;
hash = "sha256-Ym1kl9naAm1MGlxCk32ssvfiOlstHiZPy7Ga8EZegus=";
};
});
}

View File

@@ -1,4 +1,4 @@
{ inputs, ... }:
final: prev: {
llama-cpp = inputs.llama-cpp.packages.rocm;
llama-cpp = prev.llama-cpp.override { rocmSupport = true; };
}

15
overlays/shadps4.nix Normal file
View File

@@ -0,0 +1,15 @@
final: prev: {
shadps4 = prev.shadps4.overrideAttrs (old: {
version = "0.6.0";
src = prev.fetchFromGitHub {
owner = "shadps4-emu";
repo = "shadps4";
rev = "15d10e47ea272b1b4c8bf97f2b3bbb406d34b213";
fetchSubmodules = true;
hash = "sha256-ksIKmijWcRMhCDEi/dodZHiEoIO3CB0BkGn698J7jxI=";
};
patches = [];
});
}

36
pkgs/gazou.nix Normal file
View File

@@ -0,0 +1,36 @@
{ lib
, stdenv
, fetchFromGitHub
, cmake
, pkg-config
, tesseract4
, leptonica
, libsForQt5
}:
stdenv.mkDerivation {
name = "gazou";
version = "0.3.3";
src = fetchFromGitHub {
owner = "kamui-fin";
repo = "gazou";
rev = "7dd023fc78566f2911250f4b8550b0a33a943bb3";
hash = "sha256-6auc5i6b7r4knzen4TCq2mTdbiv+qCD0mWE3LNyh2J4=";
};
nativeBuildInputs = [ cmake ];
buildInputs = [
pkg-config
tesseract4
leptonica
libsForQt5.qt5.qtbase
libsForQt5.qt5.qtdeclarative
];
cmakeFlags = [
"-DGUI=OFF"
];
dontWrapQtApps = true;
}

View File

@@ -11,7 +11,8 @@ rustPlatform.buildRustPackage {
hash = "sha256-exMmqOkDKuyAEdda8gG/uF3+tnQzhJnOJK+sEtZbsZc=";
};
cargoHash = "sha256-z3apcltBKNovwo+yOHxvzn53PPefr2lEzkGst25fGsM=";
useFetchCargoVendor = true;
cargoHash = "sha256-4x9kEBnYPhhYej0mNmV7jibw6sH8SxVau9tIkIVTen8=";
meta = with lib; {
description = "Smol program to read in relevant desktop files and print them in a kickoff compatible format";

109
pkgs/shadps4.nix Normal file
View File

@@ -0,0 +1,109 @@
{ lib
, stdenv
, fetchFromGitHub
, llvmPackages_18
, cmake
, pkg-config
, git
, qt6
, alsa-lib
, libpulseaudio
, openal
, openssl
, zlib
, libedit
, udev
, libevdev
, SDL2
, jack2
, sndio
, vulkan-headers
, vulkan-utility-libraries
, vulkan-tools
, ffmpeg
, fmt
, glslang
, libxkbcommon
, wayland
, xorg
, sdl3
, stb
, wayland-protocols
, libpng
}:
stdenv.mkDerivation {
pname = "shadps4";
version = "0.6.0";
src = fetchFromGitHub {
owner = "shadps4-emu";
repo = "shadPS4";
rev = "9061028ce588037fa6f467cd2c0740d10ed725ed";
hash = "sha256-XhfJx1sDFz+RwhwcBA8W6WV6y1rDDvpyQe3v3NaSu2I=";
fetchSubmodules = true;
};
nativeBuildInputs = [
llvmPackages_18.clang
cmake
pkg-config
git
qt6.wrapQtAppsHook
];
buildInputs = [
alsa-lib
libpulseaudio
openal
openssl
zlib
libedit
udev
libevdev
SDL2
jack2
sndio
qt6.qtbase
qt6.qttools
qt6.qtmultimedia
vulkan-headers
vulkan-utility-libraries
vulkan-tools
ffmpeg
fmt
glslang
libxkbcommon
wayland
xorg.libxcb
xorg.xcbutil
xorg.xcbutilkeysyms
xorg.xcbutilwm
sdl3
stb
qt6.qtwayland
wayland-protocols
libpng
];
cmakeFlags = [
(lib.cmakeBool "ENABLE_QT_GUI" true)
(lib.cmakeBool "ENABLE_UPDATER" false)
];
cmakeBuildType = "RelWithDebugInfo";
dontStrip = true;
installPhase = ''
runHook preInstall
install -D -t $out/bin shadps4
install -Dm644 $src/.github/shadps4.png $out/share/icons/hicolor/512x512/apps/net.shadps4.shadPS4.png
install -Dm644 -t $out/share/applications $src/dist/net.shadps4.shadPS4.desktop
install -Dm644 -t $out/share/metainfo $src/dist/net.shadps4.shadPS4.metainfo.xml
runHook postInstall
'';
}

View File

@@ -1,6 +1,8 @@
wireguard:
private: ENC[AES256_GCM,data:Vii9We3fJBFCQNfek+fKqzy4jor2mhHz7KZhoWS9fuBbccz/DHPOnpzRhJQ=,iv:eDorsjazLZjIYsL+AP7YHoBY03ByywtmuRAG0KFonu0=,tag:z7b8NiGOgz0CrhFNalK4Qw==,type:str]
preshared: ENC[AES256_GCM,data:BK3CwQ9tZ0gqErPfOt896yH3K+7xDx6Vr+Xd0JMB+RYdugsGYluhldNM3aM=,iv:o9RhmlSCVwHPUi+JRNQF9bTACOwFaKmshfiD25C5QW8=,tag:DO9a2D2zY5rFQWHIR0PsfA==,type:str]
borgbase:
nix-alpheratz: ENC[AES256_GCM,data:anxC2Oyp4nungjxylaNqtEW7CcA=,iv:Gw6XvUWy9EAivZkELhSkx9YPgPDTY2kjZZhk9mF0iCM=,tag:/2ud63VKIABzLxjQsrpPnA==,type:str]
sops:
kms: []
gcp_kms: []
@@ -10,14 +12,23 @@ sops:
- recipient: age1gdtjn3jgvvvspa86q3lnklflnvyf3s75y2rw23l7nk7hwcsfpg7qkq7msr
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVUzZyL2hHT0ZKUUViMmNP
eXluSTFpOUlPdmVoS2VoTGNKcnhFUzFRbVVzCmU3aDQ0SElqdkxySnNYUzd6TmJy
QnkwSXAyT3BmUktBWVp5eGMyeXg5bXMKLS0tIGh1S1cwUGU3dW9xRS9iQzMxZnRF
ZytUUE9YZDZjcDFvU1lkRk5hYWJscTQKQrNSlwVHQVwN1QKkF7Hh5wbDWWSLfutm
l8YTbx1rHFxakK16+HXcmRleA+qvjlmpflbq+CyZQmIkwARazT7rUQ==
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuQzBUM0pXdkZUT1R4ekQv
YXlJZXA0OGV4SmwxOGxmY3Z3SjRSSE1UK2w4CnpGVkZ5anYvR0NHNEpBbDM3aURN
NVA2WmxmZUI3eWR4Tkd6MkxLOTJ5NDgKLS0tIGYrVTZMbUJia0F4ZWMwMXlhTkJz
MHdCcVpZaGtLbkpScDhLaGxZY2l3dEkKy1qr0l1eqqIQvsJm56ABIsh0XfFE5O5O
H0kLLggfl5AozBWrSjjiOnCf22tue5SzAxS70OO6Dz3y5sYCEF04Ag==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-06-24T00:52:56Z"
mac: ENC[AES256_GCM,data:4eHx1JEmFa9ugyjsJYYvIJ85EYQOsxThKtFzL9Aiw16NOl58B0CNFAwVSL1KryjjmsRxxDQoAFldkfpxzKuERoUPMsRlFXlNgApXqkaH2aJBH2VCFd7jBTvqALXgWv5Gjh8yTD3qySUAeWN8F44HjGg1cx8Poxp5xOPk5VlzyXA=,iv:LrjjSM8hC8ujfXM9W+rgGLo1muDR+CIo1UfnNJcr2TE=,tag:Oosqkn1XnEpnoNH31ghL5w==,type:str]
- recipient: age1cla0k3yffcelphkrmgz5upc0chgtdef25ne833jeqtapceux59rqkmhxf7
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxRCtPaUc4RVZRYW5tM0Ex
SGRRZ2kvKzNSdUxFRGtGRXUzWDJZVW9aNkZBCmtpOVIyMnBIaFVjV0xxdGxnNGtj
aVNpQzdDMHozL25sZ09Hc09BMVBUdEUKLS0tIE9PWm95RzZndnRwYXNoWExQVXVs
R3F6M3dsdXVxSk4va3ptS1JNQ1JSZ2sK7WtQj148lDKG36T6oIL2ASrUY9Q9QwL4
FiVkiNAvZPddFRYFSg9UhM92mTWLKay3ak+8IzojfsJmy7Aw9aavSA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-11-20T18:20:08Z"
mac: ENC[AES256_GCM,data:bq1HJC/yvekeqQEjvHZHynlcwwwYY9xRIK6Wp/BGPG3gcN4BaFG8iEgGjQjLIcgi7szsnUnozLYBKe/Na+YmNFS4mLgfn9PxDrMjr3NymO764j2QzXKg4hDnt3qA1HpwZJLZY0l7Mfe6FSovl4X/7x6MWLMDLb1EYys0aBaLnlc=,iv:y5NecMaRVyCWjn3URpJG4EnRkcV2dpitJpzJqEyQbAM=,tag:HVeS/v703EYcro/2cMtb8A==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1
version: 3.9.1

View File

@@ -3,6 +3,13 @@ mc-arcadia:
tandoor:
secret_key: ENC[AES256_GCM,data:0zhzBw+99NZmWDhnhe/VNAuiY30QJVaij3+PabzzSvWExyHktvqjfHrEzNAU8i+GmmA=,iv:NwZrE4tFpylnVrQiL1yNTTS8moZuEvcO8HCTP+j7COE=,tag:UegszyE5xRfIRn62kTFR8Q==,type:str]
db_password: ENC[AES256_GCM,data:lkYU5lFHDo+4/6uVuV6VZ6/XQHQ=,iv:1Htc76J25m9iW6YCosEtSGT4nfYsfywbYVoAf7XXrDI=,tag:RdymUdMjiQqRPutTsQNGaw==,type:str]
mc-dh:
repo_password: ENC[AES256_GCM,data:iD1isjDUlJixMPaiE+bDhhKgzLM=,iv:pf9q2M8wRh7B0quYaezdZ81B/8JtsN7jFj8/00YXzcQ=,tag:f5/KHzsc+B21sF+dE8I2Nw==,type:str]
caddy:
porkbun_api_key: ENC[AES256_GCM,data:1ILVkhIks0MqMWXsxIol8Nt2OAbNmDQXd49DUhEyIx6jLpzZKe98ha9cZAl0rNmQHcIQjpg4KptXw07l11KXWZf5oZA=,iv:0q/ZLzAGsOsTvJH9Wa7lR+uC/t97HWv6+SdTCRUNNcM=,tag:TzdrBPfV/e0njCSbofR29Q==,type:str]
porkbun_secret_key: ENC[AES256_GCM,data:v7vFKRcZ2JqjNA1vQyROmM9LGLGclzraZB9sqUVfK3iaDJfVlLbAyOxv8TW15navjWRTn6WjxH1iwPlB6b4WWHtuUWs=,iv:4d1K8tTZ/9Gs7nOKjCwcQB0M9E68RFppxPkOQRRSwa8=,tag:6J2pxXP3yy5IK3rDiwTFIQ==,type:str]
backup:
repo_password: ENC[AES256_GCM,data:v7WGvvpUonAAfCCGqDs+EKUH6Lk=,iv:jE7lainNWLlG+KZspwxW/I/1PXKFtkUWUPDaTK3Rgj0=,tag:dA2ccAXUNC1up4DX4iF7HQ==,type:str]
sops:
kms: []
gcp_kms: []
@@ -36,8 +43,8 @@ sops:
eUxTaTJVRlpNNWZodE8yZXpWTlpCWVkKHtJFmHUSNfy46J1BJdOvIRjegQrTWdfH
KSbKbz7ezBOOPlrR7eDEx2FIjP4TVBRksYq+NYockmKVk+VGsc5pBQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-08-13T19:25:34Z"
mac: ENC[AES256_GCM,data:G+0EIx/b1GHvNJWI/zqvP9E/z0vM6QVDTClWNqtjYIMq85XtkF7N9tQ5/FoQgQtmAnzxGGZJ+iEWR61gXrzlzK62hyzTN/27SLMgyVUmKetKoIxEnY2a3AQMgJUoEceg18husMRamt5IMGAzQfdCELSyPlngnPQsfyNLazjMJnc=,iv:gBRl5aSRkkm1jm6PzlPXGJ3a0tJIvS9pnIgm0rYj4+o=,tag:XCazSUH6aCvvYIti4ulrYA==,type:str]
lastmodified: "2025-02-02T03:11:38Z"
mac: ENC[AES256_GCM,data:Mr5WWzX4hl3SkljEuMy0cl+jgxA9iL4ONXxEmdfS320ucIBKeMWyrmgoO7LxRAT+iQ4kXKTW24yzzLH1flqYxiVvdGvaKisfao7GSkeuF+9YeM+xFev0aspxOK5p7/EYbvnE5cMM81VVhXm+gX9ywxh8r0eqG68SQK8FIP556TM=,iv:AsYcYrMdwo4zuY5G12P47P1537lydofIt/zuPQo/9Ls=,tag:EKs6kyofkiWuF+uqoQscWA==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.0
version: 3.9.3

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long