authorgravatar for fish@fishcat.fishJulia <fish@fishcat.fish> 2025-07-04 23:44:41-07:00
committergravatar for fish@fishcat.fishJulia <fish@fishcat.fish> 2025-07-04 23:44:41-07:00
log918824a59ede1f8a87b052029b7f2a49a9c67af6
treea7ba8ef135f50cfd4ab5f1816624eead3de172b8
parentab7dc1a69776f3bde087126d89f6e6eac17d56e0

fish


10 files changed, 385 insertions(+), 20 deletions(-)

flake.nix+10
......@@ -144,6 +144,16 @@
144144 system = "aarch64-darwin";
145145 };
146146
147 # julia's cattop
148 nixosConfigurations.cattop = mkSystem "cattop" {
149 user = "julia";
150 host = "cattop";
151 system = "x86_64-linux";
152 extraModules = [
153 nixos-cosmic.nixosModules.default
154 ];
155 };
156
147157 # generate checks for "nix flake check --all-systems --no-build"
148158 checks.aarch64-darwin = builtins.listToAttrs (
149159 builtins.map (
modules/neovim/default.nix+16-19
......@@ -4,9 +4,6 @@
44 lib,
55 ...
66}:
7let
8 allowExe = config.shared.allowExe;
9in
107{
118 # based on default options from upstream:
129 # https://github.com/NotAShelf/nvf/blob/main/configuration.nix
......@@ -37,7 +34,7 @@ in
3734 };
3835 lsp = {
3936 # Must be enabled for language modules to hook into the LSP API.
40 enable = allowExe;
37 enable = true;
4138 formatOnSave = true;
4239 # show errors inline
4340 # https://github.com/folke/trouble.nvim
......@@ -51,26 +48,26 @@ in
5148 };
5249 debugger = {
5350 nvim-dap = {
54 enable = allowExe;
51 enable = true;
5552 ui.enable = true;
5653 };
5754 };
5855 languages = {
5956 enableFormat = true;
60 enableTreesitter = allowExe;
57 enableTreesitter = true;
6158 enableExtraDiagnostics = true;
6259
6360 # sort-lines: on
64 assembly.enable = allowExe;
65 bash.enable = allowExe;
66 clang.enable = allowExe;
67 css.enable = allowExe;
68 html.enable = allowExe;
69 nix.enable = allowExe;
70 rust.crates.enable = allowExe;
71 rust.enable = allowExe;
72 ts.enable = allowExe;
73 zig.enable = allowExe;
61 assembly.enable = true;
62 bash.enable = true;
63 clang.enable = true;
64 css.enable = true;
65 html.enable = true;
66 nix.enable = true;
67 rust.crates.enable = true;
68 rust.enable = true;
69 ts.enable = true;
70 zig.enable = true;
7471 # sort-lines: off
7572
7673 ts.format.enable = false; # deno fmt is enabled elsewhere
......@@ -97,7 +94,7 @@ in
9794 nvimBufferline.enable = true;
9895 };
9996 autocomplete = {
100 blink-cmp.enable = allowExe;
97 blink-cmp.enable = true;
10198 };
10299 statusline = {
103100 lualine = {
......@@ -148,8 +145,8 @@ in
148145 todo-comments.enable = true;
149146 };
150147 git = {
151 enable = allowExe;
152 gitsigns.enable = allowExe;
148 enable = true;
149 gitsigns.enable = true;
153150 gitsigns.codeActions.enable = false; # throws an annoying debug message
154151 };
155152 };
modules/nixos/default.nix-1
......@@ -7,7 +7,6 @@
77 imports = [
88 ./boot.nix
99 ./ld.nix
10 ./nvidia.nix
1110 ./services.nix
1211 ];
1312 # make 'shared.darwin' not an error to define.
users/julia/cattop/configuration.nix created+127
......@@ -0,0 +1,127 @@
1# Edit this configuration file to define what should be installed on
2# your system. Help is available in the configuration.nix(5) man page, on
3# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
4
5{ config, lib, pkgs, ... }:
6
7{
8 imports =
9 [ # Include the results of the hardware scan.
10 ./hardware-configuration.nix
11 ];
12
13 # Use the systemd-boot EFI boot loader.
14 boot.loader.efi.canTouchEfiVariables = true;
15
16 # networking.hostName = "nixos"; # Define your hostname.
17 # Pick only one of the below networking options.
18 # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
19 # networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
20
21 # Set your time zone.
22 # time.timeZone = "Europe/Amsterdam";
23
24 # Configure network proxy if necessary
25 # networking.proxy.default = "http://user:password@proxy:port/";
26 # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
27
28 # Select internationalisation properties.
29 # i18n.defaultLocale = "en_US.UTF-8";
30 # console = {
31 # font = "Lat2-Terminus16";
32 # keyMap = "us";
33 # useXkbConfig = true; # use xkb.options in tty.
34 # };
35
36 # Enable the X11 windowing system.
37 services.xserver.enable = true;
38
39 # Enable the GNOME Desktop Environment.
40 services.xserver.displayManager.gdm.enable = true;
41 services.xserver.desktopManager.gnome.enable = true;
42
43
44 # Configure keymap in X11
45 # services.xserver.xkb.layout = "us";
46 # services.xserver.xkb.options = "eurosign:e,caps:escape";
47
48 # Enable CUPS to print documents.
49 # services.printing.enable = true;
50
51 # Enable sound.
52 # services.pulseaudio.enable = true;
53 # OR
54 # services.pipewire = {
55 # enable = true;
56 # pulse.enable = true;
57 # };
58
59 # Enable touchpad support (enabled default in most desktopManager).
60 # services.libinput.enable = true;
61
62 # Define a user account. Don't forget to set a password with ‘passwd’.
63 users.users.fish = {
64 isNormalUser = true;
65 extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
66 packages = with pkgs; [
67 tree
68 git
69 nh
70 vim
71 fish
72 ];
73 };
74
75 programs.firefox.enable = true;
76
77 # List packages installed in system profile.
78 # You can use https://search.nixos.org/ to find more packages (and options).
79 environment.systemPackages = with pkgs; [
80 vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
81 wget
82 ];
83
84 # Some programs need SUID wrappers, can be configured further or are
85 # started in user sessions.
86 programs.mtr.enable = true;
87 programs.gnupg.agent = {
88 enable = true;
89 enableSSHSupport = true;
90 };
91
92 # List services that you want to enable:
93
94 # Enable the OpenSSH daemon.
95 # services.openssh.enable = true;
96
97 # Open ports in the firewall.
98 # networking.firewall.allowedTCPPorts = [ ... ];
99 # networking.firewall.allowedUDPPorts = [ ... ];
100 # Or disable the firewall altogether.
101 # networking.firewall.enable = false;
102
103 # Copy the NixOS configuration file and link it from the resulting system
104 # (/run/current-system/configuration.nix). This is useful in case you
105 # accidentally delete configuration.nix.
106 # system.copySystemConfiguration = true;
107
108 # This option defines the first version of NixOS you have installed on this particular machine,
109 # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
110 #
111 # Most users should NEVER change this value after the initial install, for any reason,
112 # even if you've upgraded your system to a new NixOS release.
113 #
114 # This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
115 # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
116 # to actually do that.
117 #
118 # This value being lower than the current NixOS release does NOT mean your system is
119 # out of date, out of support, or vulnerable.
120 #
121 # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
122 # and migrated your data accordingly.
123 #
124 # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
125 system.stateVersion = "25.05"; # Did you read the comment?
126}
127
users/julia/cattop/hardware-configuration.nix created+40
......@@ -0,0 +1,40 @@
1# Do not modify this file! It was generated by ‘nixos-generate-config’
2# and may be overwritten by future invocations. Please make changes
3# to /etc/nixos/configuration.nix instead.
4{ config, lib, pkgs, modulesPath, ... }:
5
6{
7 imports =
8 [ (modulesPath + "/installer/scan/not-detected.nix")
9 ];
10
11 boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "vmd" "nvme" ];
12 boot.initrd.kernelModules = [ ];
13 boot.kernelModules = [ "kvm-intel" ];
14 boot.extraModulePackages = [ ];
15
16 fileSystems."/" =
17 { device = "/dev/disk/by-uuid/8eb0d6a2-b8cf-4ef2-ba2a-e25a5555b0bc";
18 fsType = "ext4";
19 };
20
21 fileSystems."/boot" =
22 { device = "/dev/disk/by-uuid/3B51-4A1C";
23 fsType = "vfat";
24 options = [ "fmask=0077" "dmask=0077" ];
25 };
26
27 swapDevices =
28 [ { device = "/dev/disk/by-uuid/58ee9d19-292f-49b5-9979-341b42e8e09d"; }
29 ];
30
31 # Enables DHCP on each ethernet and wireless interface. In case of scripted networking
32 # (the default) this is the recommended approach. When using systemd-networkd it's
33 # still possible to use this option, but it's recommended to use it in conjunction
34 # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
35 networking.useDHCP = lib.mkDefault true;
36 # networking.interfaces.wlp0s20f3.useDHCP = lib.mkDefault true;
37
38 nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
39 hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
40}
users/julia/cattop/home.nix created+77
......@@ -0,0 +1,77 @@
1{
2 inputs,
3 config,
4 pkgs,
5 lib,
6 userSettings,
7 systemSettings,
8 ...
9}:
10
11{
12 home = {
13 stateVersion = "23.05"; # Don't change this unless upgrading Home Manager versions
14
15 packages = with pkgs; [
16 # General applications
17 ghostty
18 stremio
19 julia
20 qbittorrent
21 calibre
22 mpv
23 signal-desktop
24 python3
25 gh
26
27 # Gaming
28 bottles
29 lutris
30 mangohud
31 dxvk_2
32 steam-run
33 vulkan-tools
34 path-of-building
35 wineWowPackages.stable
36 winetricks
37 (prismlauncher.override { gamemodeSupport = true; })
38
39 # System & desktop tools
40 wofi
41 xorg.xauth
42 kdePackages.dolphin
43 xdg-desktop-portal-gtk
44 xclip
45 pavucontrol
46 ethtool
47 grub2
48 efibootmgr
49 distrobox
50
51 # Dev tools
52 legcord
53 hyfetch
54 arduino-cli
55 rust-bin.stable.latest.default
56 tytools
57 inputs.zls.packages.x86_64-linux.zls
58 platformio
59 usbutils
60 teensy-loader-cli
61 teensyduino
62 ];
63 };
64
65 programs = {
66 btop.enable = true;
67 hyfetch.enable = true;
68
69 gh = {
70 enable = true;
71 gitCredentialHelper.enable = true;
72 };
73
74 # Uncomment if you want to use MangoHud system-wide
75 # mangohud.enable = true;
76 };
77}
users/julia/cattop/home.nix.old created+72
......@@ -0,0 +1,72 @@
1{
2 inputs,
3 config,
4 pkgs,
5 lib,
6 userSettings,
7 systemSettings,
8 ...
9}:
10{
11 home = {
12 stateVersion = "23.05"; # Please read the comment before changing.
13
14 packages = with pkgs; [
15 #building macos apps hard :(
16 ghostty
17 stremio
18 julia
19 qbittorrent
20
21 #gaming
22 bottles
23 lutris
24 mangohud
25 dxvk_2
26 steam-run
27 vulkan-tools
28 path-of-building
29 wineWowPackages.stable
30 winetricks
31 (prismlauncher.override { gamemodeSupport = true; })
32
33 #window manager stuff
34 wofi
35 xorg.xauth
36 #linux tools
37 legcord
38 pavucontrol
39 ethtool
40 grub2
41 efibootmgr
42 distrobox
43 xdg-desktop-portal-gtk
44 xclip
45 kdePackages.dolphin
46 hyfetch
47 arduino-cli
48 python3
49 gh
50 #broken on macos
51 calibre
52 mpv
53 wireguard-tools
54 signal-desktop
55 inputs.zls.packages.x86_64-linux.zls
56 rust-bin.stable.latest.default
57 ];
58
59 # programs.mangohud.enable = true;
60 programs = {
61 btop.enable = true;
62 hyfetch.enable = true;
63 programs.gh = {
64 enable = true;
65 gitCredentialHelper = {
66 enable = true;
67 };
68 };
69 };
70
71 };
72}
users/julia/configuration.nix created+9
......@@ -0,0 +1,9 @@
1# Applied to all systems
2{
3 inputs,
4 pkgs,
5 host,
6 ...
7}:
8{
9}
users/julia/user.nix created+13
......@@ -0,0 +1,13 @@
1rec {
2 username = "fish"; # username
3 name = "Julia"; # name/identifier
4 email = "fish@fishcat.fish"; # email (used for certain configurations)
5 dotfilesDir = "~/config"; # absolute path of the local repo
6 theme = "catppuccin-mocha"; # name of theme that stylix will use
7 browser = "firefox"; # Default browser; must select one from ./user/app/browser/
8 term = "ghostty"; # Default terminal command;
9 font = "iosevka"; # Selected font
10 editor = "neovim"; # Default editor;
11 timeZone = "America/Los_Angeles";
12 sexuality = "transgender";
13}
users/julia/vim.nix created+21
......@@ -0,0 +1,21 @@
1{ ... }:
2{
3 vim.languages.astro.enable = true;
4 vim.theme.extraConfig = ''
5 if vim.g.neovide then
6 vim.g.neovide_cursor_trail_size = 0.3
7 vim.g.neovide_scroll_animation_length = 0.1;
8
9 vim.keymap.set('n', '<D-s>', ':w<CR>') -- Save
10 vim.keymap.set('v', '<D-c>', '"+y') -- Copy
11 vim.keymap.set('n', '<D-v>', '"+P') -- Paste normal mode
12 vim.keymap.set('v', '<D-v>', '"+P') -- Paste visual mode
13 vim.keymap.set('c', '<D-v>', '<C-R>+') -- Paste command mode
14 vim.keymap.set('i', '<D-v>', '<ESC>l"+Pli') -- Paste insert mode
15 end
16 vim.api.nvim_set_keymap("", '<D-v>', '+p<CR>', { noremap = true, silent = true})
17 vim.api.nvim_set_keymap('!', '<D-v>', '<C-R>+', { noremap = true, silent = true})
18 vim.api.nvim_set_keymap('t', '<D-v>', '<C-R>+', { noremap = true, silent = true})
19 vim.api.nvim_set_keymap('v', '<D-v>', '<C-R>+', { noremap = true, silent = true})
20 '';
21}