diff --git a/.gitignore b/.gitignore index 1df9283..3357b94 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,3 @@ # Ignore build outputs from performing a nix-build or `nix build` command result result-* - -# ---> Kate -# Ignore kate's swap files -*.kate-swp diff --git a/flake.lock b/flake.lock index 4a32b35..a4098ff 100644 --- a/flake.lock +++ b/flake.lock @@ -50,11 +50,11 @@ ] }, "locked": { - "lastModified": 1689134369, - "narHash": "sha256-0G9dutIvhS/WUr3Awcnqw71g8EVVvvkOhVDnDDbY4Fw=", + "lastModified": 1687647343, + "narHash": "sha256-1/o/i9KEFOBdlF9Cs04kBcqDFbYMt6W4SMqGa+QnnaI=", "owner": "nix-community", "repo": "home-manager", - "rev": "e42fb59768f0305085abde0dd27ab5e0cc15420c", + "rev": "0ee5ab611dc1fbb5180bd7d88d2aeb7841a4d179", "type": "github" }, "original": { @@ -70,11 +70,11 @@ ] }, "locked": { - "lastModified": 1687871164, - "narHash": "sha256-bBFlPthuYX322xOlpJvkjUBz0C+MOBjZdDOOJJ+G2jU=", + "lastModified": 1687163790, + "narHash": "sha256-CmG/ZdswJrWM0CMgJiVyWfO6LqaI4SKEAx9IrnYDrpI=", "owner": "nix-community", "repo": "home-manager", - "rev": "07c347bb50994691d7b0095f45ebd8838cf6bc38", + "rev": "ac53777f52929bc82efcd2830bfc5aa60bcb4337", "type": "github" }, "original": { @@ -101,11 +101,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1689137672, - "narHash": "sha256-QZoHxr0a73x6rQcAo5CiwYpysHbSnk7lAR8/16um7mM=", + "lastModified": 1687379288, + "narHash": "sha256-cSuwfiqYfeVyqzCRkU9AvLTysmEuSal8nh6CYr+xWog=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "98da3dd0de6660d4abed7bb74e748694bd803413", + "rev": "ef0bc3976340dab9a4e087a0bcff661a8b2e87f3", "type": "github" }, "original": { @@ -116,11 +116,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1689098530, - "narHash": "sha256-fxc/9f20wRyo/5ydkmZkX/Sh/ULa7RcT8h+cUv8p/44=", + "lastModified": 1686960236, + "narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "f2406198ea0e4e37d4380d0e20336c575b8f8ef9", + "rev": "04af42f3b31dba0ef742d254456dc4c14eedac86", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index b7635e6..b0bbc3d 100755 --- a/flake.nix +++ b/flake.nix @@ -44,12 +44,20 @@ outputs = {nixpkgs, nixpkgs-unstable, agenix, home-manager, home-manager-unstabl nixosConfigurations = { Archie = nixpkgs-unstable.lib.nixosSystem { system = "x86_64-linux"; - /* - I used to set up nixpkgs in the flake, but doing that made - defining overlays in modules impossible (or at least I could - not figure out how) - Also has nice side effect of making it easier to add new systems :3 - */ + pkgs = import nixpkgs-unstable { + system = "x86_64-linux"; + config = { allowUnfree = true; }; # TODO: Find why this doesn't work + overlays = + let + discordOverlay = self: super: { + discord = super.discord.override { + withOpenASAR = true; + withVencord = true; + }; + }; + in + [ discordOverlay ]; + }; modules = [ # Needed for nix-index { nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; } @@ -58,13 +66,16 @@ outputs = {nixpkgs, nixpkgs-unstable, agenix, home-manager, home-manager-unstabl ./roles/common ./roles/desktop ./roles/kde - ./roles/gaming ./machines/Archie ]; }; Everest = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; + pkgs = import nixpkgs { + system = "x86_64-linux"; + config = { allowUnfree = false; }; # TODO: Find why this doesn't work + }; modules = [ # Needed for nix-index { nix.nixPath = [ "nixpkgs=${nixpkgs}" ]; } diff --git a/machines/Archie/configuration.nix b/machines/Archie/configuration.nix index 4b56c96..c01b561 100644 --- a/machines/Archie/configuration.nix +++ b/machines/Archie/configuration.nix @@ -18,8 +18,6 @@ }; boot.loader.efi.canTouchEfiVariables = true; - boot.kernelPackages = pkgs.linuxKernel.packages.linux_xanmod_latest; - networking.hostName = "Archie"; # Define your hostname. networking.networkmanager.enable = true; # Enable networking diff --git a/machines/Archie/hardware-configuration.nix b/machines/Archie/hardware-configuration.nix index 48133e7..08c86b5 100644 --- a/machines/Archie/hardware-configuration.nix +++ b/machines/Archie/hardware-configuration.nix @@ -9,7 +9,6 @@ ]; # Enabke support for the Xbox One wireless dongle - # Enable support for the Xbox One wireless dongle hardware.xone.enable = true; boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; @@ -40,19 +39,6 @@ fsType = "vfat"; }; - /* - Mount the root subvolume of the SSD - This is helpful for getting things from - my old Arch install, as well as for running btdu - */ - fileSystems = { - "/mnt/ssd" = { - device = config.fileSystems."/".device; - fsType = config.fileSystems."/".fsType; - options = [ "subvolid=5" "ro" ]; - }; - }; - swapDevices = [ ]; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; diff --git a/roles/common/programs/default.nix b/roles/common/programs/default.nix index e3aaa87..d28c74d 100755 --- a/roles/common/programs/default.nix +++ b/roles/common/programs/default.nix @@ -4,7 +4,6 @@ imports = [ ./htop.nix ./nix.nix - ./micro.nix ./nix-index.nix ./command-not-found.nix ]; @@ -12,7 +11,7 @@ environment.systemPackages = with pkgs; [ speedtest-cli bat - file + micro nvd ncdu tree diff --git a/roles/common/programs/micro.nix b/roles/common/programs/micro.nix deleted file mode 100644 index a80a708..0000000 --- a/roles/common/programs/micro.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ config, pkgs, ... }: - -{ - home-manager = { - users.toast = { config, pkgs, ... }: - { - programs.micro = { - enable = true; - settings = { - clipboard = "terminal"; - indentchar = "|"; - softwrap = true; - }; - }; - }; - }; -} diff --git a/roles/desktop/default.nix b/roles/desktop/default.nix old mode 100644 new mode 100755 index cb3d38f..b13a242 --- a/roles/desktop/default.nix +++ b/roles/desktop/default.nix @@ -2,7 +2,7 @@ { imports = [ - ./services - ./programs + ./discord.nix + ./firefox.nix ]; } diff --git a/roles/desktop/programs/discord.nix b/roles/desktop/discord.nix similarity index 57% rename from roles/desktop/programs/discord.nix rename to roles/desktop/discord.nix index 5f47f87..bdabdc4 100644 --- a/roles/desktop/programs/discord.nix +++ b/roles/desktop/discord.nix @@ -1,5 +1,9 @@ { config, pkgs, ... }: +{ + # TODO: Find out why this does not do anything. If I put this + # on flake.nix it does work, so it's not completely wrong. + /* nixpkgs.overlays = let discordOverlay = self: super: { discord = super.discord.override { @@ -8,8 +12,7 @@ }; }; in -{ - nixpkgs.overlays = [ discordOverlay ]; + [ discordOverlay ]; */ users.users.toast.packages = with pkgs; [ discord ]; diff --git a/roles/desktop/programs/firefox.nix b/roles/desktop/firefox.nix similarity index 64% rename from roles/desktop/programs/firefox.nix rename to roles/desktop/firefox.nix index 643f174..797fd9e 100644 --- a/roles/desktop/programs/firefox.nix +++ b/roles/desktop/firefox.nix @@ -31,28 +31,7 @@ "Value" = true; "Status" = "default"; }; - "dom.security.https_only_mode" = { - "Value" = true; - "Status" = "locked"; - }; - # Make firefox use the kde file picker - "widget.use-xdg-desktop-portal.file-picker" = { - "Value" = 1; - "Status" = "default"; - }; - /* - https://wiki.archlinux.org/title/Firefox#KDE_integration tells me to enable this, - but strangely enough doing so makes firefox ask to be set as the default browser - every time you start it up, so I'll disable it - */ - "widget.use-xdg-desktop-portal.mime-handler" = { - "Value" = 0; - "Status" = "default"; - }; }; - "PromptForDownloadLocation" = true; - # I use an external password manager, so the built in one just bothers me - "PasswordManagerEnabled" = false; "Permissions" = { "Autoplay" = { "Allow" = [ "https://www.youtube.com" ]; diff --git a/roles/desktop/programs/default.nix b/roles/desktop/programs/default.nix deleted file mode 100755 index 6aa4825..0000000 --- a/roles/desktop/programs/default.nix +++ /dev/null @@ -1,10 +0,0 @@ -{ ... }: - -{ - imports = [ - ./discord.nix - ./firefox.nix - ./micro.nix - ./keepassxc.nix - ]; -} diff --git a/roles/desktop/programs/keepassxc.nix b/roles/desktop/programs/keepassxc.nix deleted file mode 100644 index 53f42da..0000000 --- a/roles/desktop/programs/keepassxc.nix +++ /dev/null @@ -1,69 +0,0 @@ -{ config, pkgs, lib, ... }: - -let - kpxcSettings = lib.generators.toINI {} { - # Not sure what changing this does, I'll leave it alone - General = { - ConfigVersion = 2; - MinimizeAfterUnlock = true; - }; - GUI = { - ApplicationTheme = "classic"; - MinimizeOnStartup = false; - MinimizeOnClose = true; - MinimizeToTray = true; - ShowTrayIcon = true; - # 0 is icons, 1 is text, 2 is text next to icons, 3 is text under icons, and 4 is follow style - ToolButtonStyle = 0; # Would choose 4 but it's too big for a small window - # monochrome-light, monochrome-dark or colorful - TrayIconAppearance = "monochrome-light"; - }; - SSHAgent.Enabled = true; - }; -in - -{ - # I'm only using keepass on my user, so I'm installing it with home-manager - home-manager = { - /* - TODO: move home-manager settings into the common role - They are not keepass specific, so they really should - not be here. I'm too lazy to do it now tho :P - */ - backupFileExtension = "backup"; - useGlobalPkgs = true; - - extraSpecialArgs = { kpxcSettings = kpxcSettings; }; - users.toast = { config, pkgs, kpxcSettings, ... }: { - home = { - stateVersion = "23.05"; - packages = [ pkgs.keepassxc ]; - # No module for KeePassXC config :( - file = { - ".config/keepassxc/keepassxc.ini".text = kpxcSettings; - # For some reason the autostart .desktop is not the same as the regular one - ".config/autostart/org.keepassxc.KeePassXC.desktop".text = '' - [Desktop Entry] - Name=KeePassXC - GenericName=Password Manager - Exec=keepassxc - TryExec=keepassxc - Icon=keepassxc - StartupWMClass=keepassxc - StartupNotify=true - Terminal=false - Type=Application - Version=1.0 - Categories=Utility;Security;Qt; - MimeType=application/x-keepass2; - X-GNOME-Autostart-enabled=true - X-GNOME-Autostart-Delay=2 - X-KDE-autostart-after=panel - X-LXQt-Need-Tray=true - ''; - }; - }; - - }; - }; -} diff --git a/roles/desktop/programs/micro.nix b/roles/desktop/programs/micro.nix deleted file mode 100644 index a09e819..0000000 --- a/roles/desktop/programs/micro.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - home-manager = { - users.toast = { config, pkgs, ... }: - { - programs.micro = { - enable = true; - settings = { - # Use xclip/wl-clipboard for copying and pasting - clipboard = lib.mkForce "external"; - }; - }; - /* - On a kde wayland session micro uses xsel or xclip instead of wl-clipboard - which doesn't work, so I only install wl-clipboard here to make micro use it - */ - home.packages = with pkgs; [ wl-clipboard ]; - }; - }; -} diff --git a/roles/desktop/services/default.nix b/roles/desktop/services/default.nix deleted file mode 100644 index 48f9952..0000000 --- a/roles/desktop/services/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ ... }: - -{ - imports = [ - ./ssh-agent.nix - ]; -} diff --git a/roles/desktop/services/ssh-agent.nix b/roles/desktop/services/ssh-agent.nix deleted file mode 100644 index 31b9f73..0000000 --- a/roles/desktop/services/ssh-agent.nix +++ /dev/null @@ -1,21 +0,0 @@ -{ config, pkgs, ... }: - -{ - programs.ssh.startAgent = true; - /* - Home assistant added an option that does this - https://github.com/nix-community/home-manager/commit/2d9210f25ed18d5d4e11e6b886de4027c0c51a94 - but since I still need to fix home-manager's envvars not applying I'll stick to the NixOS one - */ - /* - TODO: fix SSH_AUTH_SOCK not being set in Plasma - Turns out the NixOS module also has issues :3 - The env is set but only in bash, not in the DE, so - keepass can't pick it up. For now I'll just set it manually - */ - home-manager.users.toast.xdg.configFile."plasma-workspace/env/ssh-agent.sh".text = '' - if [[ -z "$SSH_AUTH_SOCK" ]]; then - export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent - fi - ''; -} diff --git a/roles/gaming/default.nix b/roles/gaming/default.nix deleted file mode 100755 index fb3cce4..0000000 --- a/roles/gaming/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ ... }: - -{ - imports = [ - ./steam.nix - ./mangohud.nix - ]; -} diff --git a/roles/gaming/mangohud.nix b/roles/gaming/mangohud.nix deleted file mode 100644 index 47b37be..0000000 --- a/roles/gaming/mangohud.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ config, ... }: - -{ - # This does the same as enableSessionWide does on the mangohud config - environment.sessionVariables = { MANGOHUD = "1"; MANGOHUD_DLSYM = "1"; }; - - home-manager.users.toast = { config, ... }: - { - programs.mangohud = { - enable = true; - # TODO: fix envvars set by home manager not applying for some reason - # This only works for Vulkan, openGL programs still need the mangohud wrapper - enableSessionWide = true; - settings = { - preset = 4; - no_display = true; - }; - }; - }; -} diff --git a/roles/gaming/steam.nix b/roles/gaming/steam.nix deleted file mode 100644 index 1c71901..0000000 --- a/roles/gaming/steam.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ config, pkgs, ... }: - -{ - programs.steam = { - enable = true; - # Doubt that I'll use it, but I'll enable it anyways - remotePlay.openFirewall = true; - }; - # Some linux native games (rise of the tomb raider) use alsa for sound - services.pipewire.alsa.enable = true; -}