diff --git a/configuration.nix b/configuration.nix index 4bdff80..0f42365 100644 --- a/configuration.nix +++ b/configuration.nix @@ -1,9 +1,13 @@ -{lib, ...}: { +{ + lib, + machine, + ... +}: { boot.loader = { efi.canTouchEfiVariables = true; systemd-boot.enable = true; }; - environment.persistence."/persist" = { + environment.persistence."/nix/persist" = { enable = true; hideMounts = true; directories = [ @@ -15,18 +19,22 @@ ]; files = [ "/etc/machine-id" - "/etc/shadow" - "/etc/shadow-" - "/etc/passwd" - "/etc/passwd-" "/etc/ly/save.txt" ]; - users."mtgmonkey" = { + users."andromeda" = { directories = [ + ".backups" + ".local/share/Anki2" + ".local/share/chat.fluffy.fluffychat" + ".local/share/zoxide" + ".ssh" "conf" "Downloads" - ".backups" - ".ssh" + "pp" + ]; + files = [ + ".bash_history" + ".brush_history" ]; }; }; @@ -38,7 +46,7 @@ networking = { dhcpcd.enable = true; firewall.enable = true; - hostName = "nixos"; + hostName = machine.hostname; networkmanager.enable = true; }; nix.settings.experimental-features = [ @@ -68,9 +76,9 @@ }; system.stateVersion = "26.05"; time.timeZone = "Europe/Berlin"; - users.users."mtgmonkey" = { + users.users."andromeda" = { isNormalUser = true; - description = "mtgmonkey"; + description = "andromeda"; initialPassword = "password"; extraGroups = [ "networkmanager" diff --git a/flake.lock b/flake.lock index 39dc84f..4915b56 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,223 @@ { "nodes": { + "base16": { + "inputs": { + "fromYaml": "fromYaml" + }, + "locked": { + "lastModified": 1755819240, + "narHash": "sha256-qcMhnL7aGAuFuutH4rq9fvAhCpJWVHLcHVZLtPctPlo=", + "owner": "SenchoPens", + "repo": "base16.nix", + "rev": "75ed5e5e3fce37df22e49125181fa37899c3ccd6", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "base16.nix", + "type": "github" + } + }, + "base16-fish": { + "flake": false, + "locked": { + "lastModified": 1765809053, + "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=", + "owner": "tomyun", + "repo": "base16-fish", + "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", + "type": "github" + }, + "original": { + "owner": "tomyun", + "repo": "base16-fish", + "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782", + "type": "github" + } + }, + "base16-helix": { + "flake": false, + "locked": { + "lastModified": 1760703920, + "narHash": "sha256-m82fGUYns4uHd+ZTdoLX2vlHikzwzdu2s2rYM2bNwzw=", + "owner": "tinted-theming", + "repo": "base16-helix", + "rev": "d646af9b7d14bff08824538164af99d0c521b185", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-helix", + "type": "github" + } + }, + "base16-vim": { + "flake": false, + "locked": { + "lastModified": 1732806396, + "narHash": "sha256-e0bpPySdJf0F68Ndanwm+KWHgQiZ0s7liLhvJSWDNsA=", + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-vim", + "rev": "577fe8125d74ff456cf942c733a85d769afe58b7", + "type": "github" + } + }, + "firefox-gnome-theme": { + "flake": false, + "locked": { + "lastModified": 1764724327, + "narHash": "sha256-OkFLrD3pFR952TrjQi1+Vdj604KLcMnkpa7lkW7XskI=", + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "rev": "66b7c635763d8e6eb86bd766de5a1e1fbfcc1047", + "type": "github" + }, + "original": { + "owner": "rafaelmardojai", + "repo": "firefox-gnome-theme", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1751685974, + "narHash": "sha256-NKw96t+BgHIYzHUjkTK95FqYRVKB8DHpVhefWSz/kTw=", + "ref": "refs/heads/main", + "rev": "549f2762aebeff29a2e5ece7a7dc0f955281a1d1", + "revCount": 92, + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + }, + "original": { + "type": "git", + "url": "https://git.lix.systems/lix-project/flake-compat.git" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": [ + "nur", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_2": { + "inputs": { + "nixpkgs-lib": [ + "nvf", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1760948891, + "narHash": "sha256-TmWcdiUUaWk8J4lpjzu4gCGxWY6/Ok7mOK4fIFfBuU4=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "864599284fc7c0ba6357ed89ed5e2cd5040f0c04", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "flake-parts_3": { + "inputs": { + "nixpkgs-lib": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1763759067, + "narHash": "sha256-LlLt2Jo/gMNYAwOgdRQBrsRoOz7BPRkzvNaI/fzXi2Q=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "2cccadc7357c0ba201788ae99c4dfa90728ef5e0", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "fromYaml": { + "flake": false, + "locked": { + "lastModified": 1731966426, + "narHash": "sha256-lq95WydhbUTWig/JpqiB7oViTcHFP8Lv41IGtayokA8=", + "owner": "SenchoPens", + "repo": "fromYaml", + "rev": "106af9e2f715e2d828df706c386a685698f3223b", + "type": "github" + }, + "original": { + "owner": "SenchoPens", + "repo": "fromYaml", + "type": "github" + } + }, + "gnome-shell": { + "flake": false, + "locked": { + "host": "gitlab.gnome.org", + "lastModified": 1764524476, + "narHash": "sha256-bTmNn3Q4tMQ0J/P0O5BfTQwqEnCiQIzOGef9/aqAZvk=", + "owner": "GNOME", + "repo": "gnome-shell", + "rev": "c0e1ad9f0f703fd0519033b8f46c3267aab51a22", + "type": "gitlab" + }, + "original": { + "host": "gitlab.gnome.org", + "owner": "GNOME", + "ref": "gnome-49", + "repo": "gnome-shell", + "type": "gitlab" + } + }, + "home-manager": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1766980997, + "narHash": "sha256-oegDNAvyQwaG3GqSi4U5jpKM7SYHGESGVIuKMRV/lbw=", + "owner": "nix-community", + "repo": "home-manager", + "rev": "7a7b43c7231a439d248179ba8d561dd6cd81799b", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "home-manager", + "type": "github" + } + }, "impermanence": { "locked": { "lastModified": 1737831083, @@ -15,6 +233,39 @@ "type": "github" } }, + "mnw": { + "locked": { + "lastModified": 1758834834, + "narHash": "sha256-Y7IvY4F8vajZyp3WGf+KaiIVwondEkMFkt92Cr9NZmg=", + "owner": "Gerg-L", + "repo": "mnw", + "rev": "cfbc7d1cc832e318d0863a5fc91d940a96034001", + "type": "github" + }, + "original": { + "owner": "Gerg-L", + "repo": "mnw", + "type": "github" + } + }, + "ndg": { + "inputs": { + "nixpkgs": "nixpkgs_2" + }, + "locked": { + "lastModified": 1765720983, + "narHash": "sha256-tWtukpABmux6EC/FuCJEgA1kmRjcRPtED44N+GGPq+4=", + "owner": "feel-co", + "repo": "ndg", + "rev": "f399ace8bb8e1f705dd8942b24d207aa4d75c936", + "type": "github" + }, + "original": { + "owner": "feel-co", + "repo": "ndg", + "type": "github" + } + }, "nixpkgs": { "locked": { "lastModified": 1766651565, @@ -31,6 +282,22 @@ "type": "github" } }, + "nixpkgs_2": { + "locked": { + "lastModified": 1764242076, + "narHash": "sha256-sKoIWfnijJ0+9e4wRvIgm/HgE27bzwQxcEmo2J/gNpI=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2fad6eac6077f03fe109c4d4eb171cf96791faa4", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, "noshell": { "inputs": { "nixpkgs": [ @@ -51,11 +318,231 @@ "type": "github" } }, + "nur": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1767026366, + "narHash": "sha256-TqJXPpEPYfeFCbraquNdrB1dJYuEqV474Npv8UcNxrs=", + "owner": "nix-community", + "repo": "NUR", + "rev": "1f8c02a96c58c0dd90f2de45440b9ef01571abc3", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "nur_2": { + "inputs": { + "flake-parts": [ + "stylix", + "flake-parts" + ], + "nixpkgs": [ + "stylix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1764773531, + "narHash": "sha256-mCBl7MD1WZ7yCG6bR9MmpPO2VydpNkWFgnslJRIT1YU=", + "owner": "nix-community", + "repo": "NUR", + "rev": "1d9616689e98beded059ad0384b9951e967a17fa", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "NUR", + "type": "github" + } + }, + "nvf": { + "inputs": { + "flake-compat": "flake-compat", + "flake-parts": "flake-parts_2", + "mnw": "mnw", + "ndg": "ndg", + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1766596669, + "narHash": "sha256-9C72hpMDa99n4MbqZqsBkrBQZe+HEN9lnu7Sme67nmU=", + "owner": "notashelf", + "repo": "nvf", + "rev": "ef1f22efaf4aa37ba9382a7d1807fa8ac9c097fd", + "type": "github" + }, + "original": { + "owner": "notashelf", + "repo": "nvf", + "type": "github" + } + }, "root": { "inputs": { + "home-manager": "home-manager", "impermanence": "impermanence", "nixpkgs": "nixpkgs", - "noshell": "noshell" + "noshell": "noshell", + "nur": "nur", + "nvf": "nvf", + "stylix": "stylix" + } + }, + "stylix": { + "inputs": { + "base16": "base16", + "base16-fish": "base16-fish", + "base16-helix": "base16-helix", + "base16-vim": "base16-vim", + "firefox-gnome-theme": "firefox-gnome-theme", + "flake-parts": "flake-parts_3", + "gnome-shell": "gnome-shell", + "nixpkgs": [ + "nixpkgs" + ], + "nur": "nur_2", + "systems": "systems_2", + "tinted-foot": "tinted-foot", + "tinted-kitty": "tinted-kitty", + "tinted-schemes": "tinted-schemes", + "tinted-tmux": "tinted-tmux", + "tinted-zed": "tinted-zed" + }, + "locked": { + "lastModified": 1766603026, + "narHash": "sha256-J2DDdRqSU4w9NNgkMfmMeaLIof5PXtS9RG7y6ckDvQE=", + "owner": "nix-community", + "repo": "stylix", + "rev": "551df12ee3ebac52c5712058bd97fd9faa4c3430", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "stylix", + "type": "github" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "systems_2": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + }, + "tinted-foot": { + "flake": false, + "locked": { + "lastModified": 1726913040, + "narHash": "sha256-+eDZPkw7efMNUf3/Pv0EmsidqdwNJ1TaOum6k7lngDQ=", + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-foot", + "rev": "fd1b924b6c45c3e4465e8a849e67ea82933fcbe4", + "type": "github" + } + }, + "tinted-kitty": { + "flake": false, + "locked": { + "lastModified": 1735730497, + "narHash": "sha256-4KtB+FiUzIeK/4aHCKce3V9HwRvYaxX+F1edUrfgzb8=", + "owner": "tinted-theming", + "repo": "tinted-kitty", + "rev": "de6f888497f2c6b2279361bfc790f164bfd0f3fa", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-kitty", + "type": "github" + } + }, + "tinted-schemes": { + "flake": false, + "locked": { + "lastModified": 1763914658, + "narHash": "sha256-Hju0WtMf3iForxtOwXqGp3Ynipo0EYx1AqMKLPp9BJw=", + "owner": "tinted-theming", + "repo": "schemes", + "rev": "0f6be815d258e435c9b137befe5ef4ff24bea32c", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "schemes", + "type": "github" + } + }, + "tinted-tmux": { + "flake": false, + "locked": { + "lastModified": 1764465359, + "narHash": "sha256-lbSVPqLEk2SqMrnpvWuKYGCaAlfWFMA6MVmcOFJjdjE=", + "owner": "tinted-theming", + "repo": "tinted-tmux", + "rev": "edf89a780e239263cc691a987721f786ddc4f6aa", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "tinted-tmux", + "type": "github" + } + }, + "tinted-zed": { + "flake": false, + "locked": { + "lastModified": 1764464512, + "narHash": "sha256-rCD/pAhkMdCx6blsFwxIyvBJbPZZ1oL2sVFrH07lmqg=", + "owner": "tinted-theming", + "repo": "base16-zed", + "rev": "907dbba5fb8cf69ebfd90b00813418a412d0a29a", + "type": "github" + }, + "original": { + "owner": "tinted-theming", + "repo": "base16-zed", + "type": "github" } } }, diff --git a/flake.nix b/flake.nix index e3e665e..dad3a4f 100644 --- a/flake.nix +++ b/flake.nix @@ -1,24 +1,68 @@ { inputs = { + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; impermanence.url = "github:nix-community/impermanence"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; noshell = { url = "github:viperML/noshell"; inputs.nixpkgs.follows = "nixpkgs"; }; + nur = { + url = "github:nix-community/NUR"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nvf = { + url = "github:notashelf/nvf"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + stylix = { + url = "github:nix-community/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = { + home-manager, impermanence, nixpkgs, noshell, - self, + nur, + nvf, + stylix, ... }: let - system = "x86_64-linux"; + laptop = import ./machines/laptop.nix; in { - nixosConfigurations."nixos" = nixpkgs.lib.nixosSystem { - inherit system; + nixosConfigurations.${laptop.hostname} = nixpkgs.lib.nixosSystem { + system = laptop.system; + specialArgs = {machine = laptop;}; modules = [ + home-manager.nixosModules.home-manager + { + nixpkgs.overlays = [nur.overlays.default]; + home-manager.useGlobalPkgs = true; + home-manager.extraSpecialArgs = { + machine = laptop; + }; + home-manager.users = + builtins.mapAttrs + (name: value: value) + ( + nixpkgs.legacyPackages.${laptop.system}.lib.genAttrs + laptop.usernames + ( + name: { + imports = [ + stylix.homeModules.stylix + nvf.homeManagerModules.default + ./users/${name}/home.nix + ]; + } + ) + ); + } impermanence.nixosModules.impermanence noshell.nixosModules.default ./configuration.nix diff --git a/hardware-configuration.nix b/hardware-configuration.nix index dad7ef5..2c0a93f 100644 --- a/hardware-configuration.nix +++ b/hardware-configuration.nix @@ -4,6 +4,7 @@ { config, lib, + pkgs, modulesPath, ... }: { @@ -11,7 +12,7 @@ (modulesPath + "/installer/scan/not-detected.nix") ]; - boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "usb_storage" "usbhid" "sd_mod" "sdhci_pci"]; + boot.initrd.availableKernelModules = ["xhci_pci" "nvme" "sdhci_pci"]; boot.initrd.kernelModules = []; boot.kernelModules = ["kvm-intel"]; boot.extraModulePackages = []; @@ -22,26 +23,18 @@ options = ["defaults" "size=25%" "mode=755"]; }; - fileSystems."/persist" = { - device = "/dev/disk/by-label/NIXPERSIST"; - neededForBoot = true; - fsType = "btrfs"; - }; - fileSystems."/nix" = { - device = "/dev/disk/by-label/NIXSTORE"; + device = "/dev/disk/by-uuid/0e586651-36f4-42b0-99b3-3f0704a894d6"; fsType = "btrfs"; }; fileSystems."/boot" = { - device = "/dev/disk/by-uuid/107D-CA99"; + device = "/dev/disk/by-uuid/F425-55BA"; fsType = "vfat"; - options = ["fmask=0077" "dmask=0077"]; + options = ["fmask=0022" "dmask=0022"]; }; - swapDevices = [ - {device = "/dev/disk/by-uuid/18c2ef9b-1568-41e4-b67a-96155822ae02";} - ]; + swapDevices = []; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; diff --git a/machines/laptop.nix b/machines/laptop.nix new file mode 100644 index 0000000..c70deb9 --- /dev/null +++ b/machines/laptop.nix @@ -0,0 +1,5 @@ +{ + hostname = "lenovo"; + usernames = ["andromeda"]; + system = "x86_64-linux"; +} diff --git a/users/andromeda/home.nix b/users/andromeda/home.nix new file mode 100644 index 0000000..86aea14 --- /dev/null +++ b/users/andromeda/home.nix @@ -0,0 +1,270 @@ +{ + config, + lib, + machine, + pkgs, + ... +}: let + background-path = ".config/sway/background.png"; + sway_config = builtins.toFile "sway_config" '' + set $mod Mod4 + set $left h + set $down j + set $up k + set $right l + set $term alacritty + set $menu wmenu-run + set $screenshot grim -g "$(slurp)" + floating_modifier $mod normal + + workspace_layout stacking + output * bg ${config.home.homeDirectory}/${background-path} fill + + # launch programs + bindsym $mod+Shift+Return exec $term + bindsym $mod+Shift+d exec $menu + bindsym $mod+Shift+a exec anki + bindsym $mod+Shift+q exec librewolf + bindsym $mod+Shift+s exec $screenshot + + bindsym $mod+Shift+c kill + + bindsym $mod+Shift+r reload + + bindsym $mod+Shift+Alt+q exit + + bindsym $mod+$left focus left + bindsym $mod+$down focus down + bindsym $mod+$up focus up + bindsym $mod+$right focus right + + bindsym $mod+Shift+$left move left + bindsym $mod+Shift+$down move down + bindsym $mod+Shift+$up move up + bindsym $mod+Shift+$right move right + + bindsym $mod+1 workspace number 1 + bindsym $mod+2 workspace number 2 + bindsym $mod+3 workspace number 3 + bindsym $mod+4 workspace number 4 + bindsym $mod+5 workspace number 5 + bindsym $mod+6 workspace number 6 + bindsym $mod+7 workspace number 7 + bindsym $mod+8 workspace number 8 + bindsym $mod+9 workspace number 9 + bindsym $mod+0 workspace number 0 + + bindsym $mod+Shift+1 move container to workspace number 1 + bindsym $mod+Shift+2 move container to workspace number 2 + bindsym $mod+Shift+3 move container to workspace number 3 + bindsym $mod+Shift+4 move container to workspace number 4 + bindsym $mod+Shift+5 move container to workspace number 5 + bindsym $mod+Shift+6 move container to workspace number 6 + bindsym $mod+Shift+7 move container to workspace number 7 + bindsym $mod+Shift+8 move container to workspace number 8 + bindsym $mod+Shift+9 move container to workspace number 9 + bindsym $mod+Shift+0 move container to workspace number 0 + + bindsym $mod+f fullscreen + bindsym $mod+Shift+space floating toggle + bindsym $mod+Shift+minus move scratchpad + bindsym $mod+minus scratchpad show + + bindsym --locked XF86AudioMute exec pactl set-sink-mute \@DEFAULT_SINK@ toggle + bindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \@DEFAULT_SINK@ -5% + bindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \@DEFAULT_SINK@ +5% + bindsym --locked XF86AudioMicMute exec pact set-source-mute \@DEFAULT_SOURCE@ toggle + bindsym --locked XF86MonBrightnessDown exec brightnessctl set 5%- + bindsym --locked XF86MonbrightnessUp exec brightnessctl set 5%+ + + default_border none + font pango:monospace 0.001 + titlebar_border_thickness 0 + titlebar_padding 0 + ''; +in { + imports = [./stylix.nix]; + xdg.configFile."shell".source = lib.getExe pkgs.brush; + xdg.configFile."sway/config".source = lib.mkForce sway_config; + # xdg.configFile.${background-path}.source = ./nix-wallpaper-gear.png; + wayland.windowManager.sway.enable = true; + home = { + username = "andromeda"; + homeDirectory = "/home/${config.home.username}"; + stateVersion = "26.05"; + packages = [ + pkgs.acpi + pkgs.alacritty + pkgs.anki + pkgs.brightnessctl + pkgs.brush + pkgs.dust + pkgs.fluffychat + pkgs.fzf + pkgs.glow + pkgs.grim + pkgs.jmtpfs + pkgs.nix-output-monitor + pkgs.ranger + pkgs.rip2 + pkgs.ripgrep + pkgs.slurp + pkgs.tree + pkgs.zoxide + ]; + file.${background-path}.source = ./nix-wallpaper-gear.png; + }; + programs = { + alacritty.enable = true; + bash = { + enable = true; + shellAliases = { + neofetch = "fastfetch"; + ls = lib.mkForce "lsd"; + ll = lib.mkForce "lsd -l"; + l = "lsd -la"; + cd = "z"; + gg = "git log --oneline --abbrev-commit --all --graph --decorate --color"; + md = "glow"; + }; + bashrcExtra = '' + PS1="\u@\h:\w$" + eval "$(zoxide init bash)" + ''; + }; + btop = { + enable = true; + settings = { + theme_background = false; + vim_keys = true; + rounded_corners = false; + graph_symbol = "braille"; + update_ms = 150; + proc_sorting = "cpu lazy"; + proc_gradient = false; + proc_left = true; + cpu_single_graph = true; + cpu_bottom = true; + clock_format = "/user@/host:/uptime@%H:%M"; + background_update = true; + mem_graphs = false; + mem_below_net = true; + show_swap = false; + only_physical = true; + show_io_stat = true; + io_mode = false; + io_graph_combined = false; + }; + }; + fastfetch.enable = true; + git = { + enable = true; + settings = { + user = { + name = config.home.username; + email = "${config.home.username}@${machine.hostname}"; + }; + init.defaultBranch = "master"; + http.postBuffer = 524288000; + }; + }; + gh.enable = true; + home-manager.enable = true; + librewolf = { + enable = true; + package = pkgs.librewolf.override { + cfg.enableTridactylNative = true; + }; + profiles.${config.home.username}.extensions.packages = [ + pkgs.nur.repos.rycee.firefox-addons.tridactyl + ]; + }; + lsd.enable = true; + nvf = { + enable = true; + settings.vim = { + autocomplete.nvim-cmp.enable = false; + formatter.conform-nvim = { + enable = true; + setupOpts.format_on_save = { + lsp_format = "fallback"; + timeout_ms = 5000; + }; + }; + lsp.otter-nvim.enable = true; + git.enable = true; + keymaps = [ + { + key = ""; + mode = ["i" "n" "v" "c"]; + action = ""; + } + { + key = ""; + mode = ["i" "n" "v" "c"]; + action = ""; + } + { + key = ""; + mode = ["i" "n" "v" "c"]; + action = ""; + } + { + key = ""; + mode = ["i" "n" "v" "c"]; + action = ""; + } + { + key = "jj"; + mode = ["i"]; + action = ""; + } + { + key = "kk"; + mode = ["i"]; + action = ""; + } + { + key = "jk"; + mode = ["i"]; + action = ""; + } + { + key = "kj"; + mode = ["i"]; + action = ""; + } + { + key = ""; + mode = ["i"]; + action = ""; + } + ]; + languages = { + nix = { + enable = true; + format.enable = true; + lsp.enable = true; + }; + haskell = { + enable = true; + lsp.enable = true; + }; + }; + lineNumberMode = "relative"; + options = { + tabstop = 2; + shiftwidth = 2; + expandtab = true; + smarttab = true; + foldmethod = "indent"; + number = true; + colorcolumn = "80"; + }; + statusline.lualine.enable = true; + syntaxHighlighting = true; + }; + }; + ssh.enable = true; + }; +} diff --git a/users/andromeda/nix-wallpaper-gear.png b/users/andromeda/nix-wallpaper-gear.png new file mode 100644 index 0000000..a04e524 Binary files /dev/null and b/users/andromeda/nix-wallpaper-gear.png differ diff --git a/users/andromeda/stylix.nix b/users/andromeda/stylix.nix new file mode 100644 index 0000000..208d2cc --- /dev/null +++ b/users/andromeda/stylix.nix @@ -0,0 +1,35 @@ +{ + pkgs, + config, + ... +}: { + stylix = { + enable = true; + # rebecca has lavener bkg + # tube has dark gray bkg + # silk-light is light theme + base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-material-dark-hard.yaml"; + polarity = "dark"; + image = ./nix-wallpaper-gear.png; + fonts = { + monospace = { + package = pkgs.miracode; + name = "Miracode"; + }; + serif = config.stylix.fonts.sansSerif; + emoji = { + package = pkgs.noto-fonts-color-emoji; + name = "Noto Color Emoji"; + }; + sizes = { + applications = 12; + terminal = 10; + }; + }; + cursor = { + package = pkgs.hackneyed; + name = "Hackneyed"; + size = 16; + }; + }; +}