diff --git a/capibara.nix b/capibara.nix index 3c235ab..b41ebff 100644 --- a/capibara.nix +++ b/capibara.nix @@ -5,61 +5,20 @@ { config, pkgs, ... }: let - impermanence = builtins.fetchTarball { - url = "https://github.com/nix-community/impermanence/archive/master.tar.gz"; - }; home-manager = builtins.fetchTarball { - url = "https://github.com/nix-community/home-manager/archive/release-21.11.tar.gz"; + url = + "https://github.com/nix-community/home-manager/archive/release-21.11.tar.gz"; }; in { - imports = [ # Include the results of the hardware scan. + imports = [ ./nixos/hardware-configuration/capibara.nix ./nixos/common.nix "${home-manager}/nixos" - "${impermanence}/nixos.nix" ]; home-manager.users.rilla = import home/capibara.nix; fileSystems = { - "/" = { - device = "tmpfs"; - fsType = "tmpfs"; - options = [ "defaults" "size=2G" "mode=755" ]; - }; - - "/persist/system" = { - device = "/dev/mapper/system"; - fsType = "btrfs"; - options = [ "subvol=persist" "compress=zstd" ]; - neededForBoot = true; - }; - - "/persist/user" = { - device = "/dev/mapper/user"; - fsType = "btrfs"; - options = [ "subvol=persist" "compress=zstd" ]; - neededForBoot = true; - }; - - "/nix" = { - device = "/dev/mapper/system"; - fsType = "btrfs"; - options = [ "subvol=nix" "compress=zstd" ]; - }; - - "/boot" = { - device = "/dev/mapper/system"; - fsType = "btrfs"; - options = [ "subvol=boot" "compress=zstd" ]; - }; - - "/swap" = { - device = "/dev/mapper/system"; - fsType = "btrfs"; - options = [ "subvol=swap" ]; - }; - "/home/rilla/Music" = { device = "narwhal:/music"; fsType = "nfs"; @@ -70,37 +29,6 @@ in { "x-systemd.idle-timeout=1min" ]; }; - - }; - - swapDevices = [{ device = "/swap/swapfile"; }]; - - environment.persistence = { - "/persist/system" = { - directories = [ - "/var/log" - "/var/lib/bluetooth" - "/var/lib/systemd/coredump" - "/var/lib/docker" - ]; - files = [ - "/etc/machine-id" - #"/etc/nix/id_rsa" - "/etc/ssh/ssh_host_ed25519_key" - "/etc/ssh/ssh_host_ed25519_key.pub" - "/etc/ssh/ssh_host_rsa_key" - "/etc/ssh/ssh_host_rsa_key.pub" - "/etc/wireguard/wg0" - ]; - }; - "/persist/user" = { - directories = [ - "/etc/NetworkManager/system-connections" - "/etc/nixos" - "/var/lib/libvirt" - ]; - files = [ "/etc/wireguard/wg0" ]; - }; }; environment.variables.NIXOS_CONFIG = diff --git a/home/capibara.nix b/home/capibara.nix index 7303f20..288c36b 100644 --- a/home/capibara.nix +++ b/home/capibara.nix @@ -1,212 +1,5 @@ { config, pkgs, ... }: -let - impermanence = builtins.fetchTarball { - url = "https://github.com/nix-community/impermanence/archive/master.tar.gz"; - }; - -in { - # Let Home Manager install and manage itself. - # programs.home-manager.enable = true; - - # Home Manager needs a bit of information about you and the - # paths it should manage. - home.username = "rilla"; - home.homeDirectory = "/home/rilla"; - - imports = [ - "${impermanence}/home-manager.nix" - ./desktop-sway - ./alacritty - ./arduino - ./barrier - ./browsers - ./dav - # ./desktop-xmonad/capibara.nix - ./fonts - ./git - ./gotify - ./gpg - ./idasen - ./mail - ./minidisc - ./mpd - ./msg - ./music - ./neovim - ./pass - ./rss - ./snapcast - ./sound - ./ssh - ./theming - ./tmux - ./vitetris - ./wallets - ./zsh - ]; - - home.persistence."/persist/system/${config.home.homeDirectory}" = { - directories = [ - ".abook" - ".bitmonero" - ".cache" - ".config/Nextcloud" - ".config/chromium" - ".config/whatsapp-for-linux" - ".gnupg/private-keys-v1.d" - ".local/share/keyrings" - ".local/share/mpd" - ".local/share/webkitgtk" - ".mozilla" - ".newsboat" - ".vdirsyncer" - ]; - files = [ - ".gnupg/pubring.kbx" - ".gnupg/trustdb.gpg" - ".mailsynclastrun" - ".ssh/known_hosts" - ".zsh_history" - ]; - allowOther = true; - }; - - home.persistence."/persist/user/${config.home.homeDirectory}" = { - directories = [ - ".config/Signal" - ".config/Element" - ".local/share/TelegramDesktop" - ".local/share/dino" - ".local/share/Bisq" - ".password-store" - ".walletwasabi" - "Calendars" - "Contacts" - "Documents" - "Downloads" - "Images" - "Maildir" - "Monero" - "Nextcloud" - "code" - "configs" - "misc" - "workspace" - ]; - files = [ ]; - allowOther = true; - }; - - home.sessionVariables = { - EDITOR = "${pkgs.neovim}/bin/nvim"; - VISUAL = "${pkgs.neovim}/bin/nvim"; - BROWSER = "${pkgs.firefox}/bin/firefox"; - # OPENER = "todo"; # todo - TERMINAL = "${pkgs.alacritty}/bin/alacritty"; - CM_LAUNCHER = "rofi"; # for clipmenu - LEDGER_FILE = "${config.home.homeDirectory}/finance/2021.journal"; - QT_QPA_PLATFORMTHEME = "qt5ct"; - - }; - - home.packages = with pkgs; [ - R - acpi - android-tools - ansible - bind.dnsutils - calibre - docker-compose - file - gimp - gnumake - htop - jq - killall - libnotify - libreoffice - lxqt.pcmanfm-qt - mosh - mpv - neofetch - networkmanagerapplet - nextcloud-client - pandoc - pv - ripgrep - signify - sxiv - telnet - virt-manager - wget - ]; - - services.syncthing.enable = true; - - services.kdeconnect.enable = true; - - programs.bat = { - enable = true; - config = { theme = "gruvbox-dark"; }; - }; - - programs.fzf = { - enable = true; - enableZshIntegration = true; - # defaultOptions = [ - # "--preview --preview 'bat --color=always --style=header,grid --line-range :300 {}'" - # ]; - tmux.enableShellIntegration = true; - }; - - services.gnome-keyring = { - enable = true; - components = [ "secrets" ]; - }; - - services.nextcloud-client = { - enable = true; - startInBackground = true; - }; - - xdg.mimeApps = { - enable = true; - defaultApplications = { - "x-scheme-handler/http" = "firefox.desktop"; - "x-scheme-handler/https" = " firefox.desktop"; - "x-scheme-handler/chrome" = " firefox.desktop"; - "text/html" = "firefox.desktop"; - "application/x-extension-htm" = "firefox.desktop"; - "application/x-extension-html" = "firefox.desktop"; - "application/x-extension-shtml" = "firefox.desktop"; - "application/xhtml+xml" = "firefox.desktop"; - "application/x-extension-xhtml" = "firefox.desktop"; - "application/x-extension-xht" = "firefox.desktop"; - "x-scheme-handler/tg" = "userapp-Telegram Desktop.desktop"; - }; - associations.added = { - "x-scheme-handler/http" = "firefox.desktop"; - "x-scheme-handler/https" = " firefox.desktop"; - "x-scheme-handler/chrome" = " firefox.desktop"; - "text/html" = "firefox.desktop"; - "application/x-extension-htm" = "firefox.desktop"; - "application/x-extension-html" = "firefox.desktop"; - "application/x-extension-shtml" = "firefox.desktop"; - "application/xhtml+xml" = "firefox.desktop"; - "application/x-extension-xhtml" = "firefox.desktop"; - "application/x-extension-xht" = "firefox.desktop"; - "x-scheme-handler/tg" = "userapp-Telegram Desktop.desktop"; - - }; - }; - - dconf.settings = { - "org/virt-manager/virt-manager/connections" = { - "autoconnect" = [ "qemu:///system" ]; - "uris" = [ "qemu:///system" ]; - }; - }; - - home.stateVersion = "21.11"; +{ + imports = [ ./nixos-common.nix ./desktop-sway ./alacritty ./theming ]; } diff --git a/home/nixos-common.nix b/home/nixos-common.nix new file mode 100644 index 0000000..b62146f --- /dev/null +++ b/home/nixos-common.nix @@ -0,0 +1,210 @@ +{ config, pkgs, ... }: + +let + impermanence = builtins.fetchTarball { + url = "https://github.com/nix-community/impermanence/archive/master.tar.gz"; + }; + +in { + # Let Home Manager install and manage itself. + # programs.home-manager.enable = true; + + # Home Manager needs a bit of information about you and the + # paths it should manage. + home.username = "rilla"; + home.homeDirectory = "/home/rilla"; + + imports = [ + "${impermanence}/home-manager.nix" + ./arduino + ./barrier + ./browsers + ./dav + ./fonts + ./git + ./gotify + ./gpg + ./idasen + ./mail + ./minidisc + ./mpd + ./msg + ./music + ./neovim + ./pass + ./rss + ./snapcast + ./sound + ./ssh + ./tmux + ./vitetris + ./wallets + ./zsh + ]; + + home.persistence = { + "/persist/system/${config.home.homeDirectory}" = { + directories = [ + ".abook" + ".bitmonero" + ".cache" + ".config/Nextcloud" + ".config/chromium" + ".config/whatsapp-for-linux" + ".gnupg/private-keys-v1.d" + ".local/share/keyrings" + ".local/share/mpd" + ".local/share/webkitgtk" + ".mozilla" + ".newsboat" + ".vdirsyncer" + ]; + files = [ + ".gnupg/pubring.kbx" + ".gnupg/trustdb.gpg" + ".mailsynclastrun" + ".ssh/known_hosts" + ".zsh_history" + ]; + allowOther = true; + }; + + "/persist/user/${config.home.homeDirectory}" = { + directories = [ + ".config/Signal" + ".config/Element" + ".local/share/TelegramDesktop" + ".local/share/dino" + ".local/share/Bisq" + ".password-store" + ".walletwasabi" + "Calendars" + "Contacts" + "Documents" + "Downloads" + "Images" + "Maildir" + "Monero" + "Nextcloud" + "code" + "configs" + "misc" + "workspace" + ]; + files = [ ]; + allowOther = true; + }; + }; + + home.sessionVariables = { + EDITOR = "${pkgs.neovim}/bin/nvim"; + VISUAL = "${pkgs.neovim}/bin/nvim"; + BROWSER = "${pkgs.firefox}/bin/firefox"; + # OPENER = "todo"; # todo + TERMINAL = "${pkgs.alacritty}/bin/alacritty"; + CM_LAUNCHER = "rofi"; # for clipmenu + LEDGER_FILE = "${config.home.homeDirectory}/finance/2021.journal"; + QT_QPA_PLATFORMTHEME = "qt5ct"; + + }; + + home.packages = with pkgs; [ + R + acpi + android-tools + ansible + bind.dnsutils + calibre + docker-compose + file + gimp + gnumake + htop + jq + killall + libnotify + libreoffice + lxqt.pcmanfm-qt + mosh + mpv + neofetch + networkmanagerapplet + nextcloud-client + pandoc + pv + ripgrep + signify + sxiv + telnet + virt-manager + wget + ]; + + services.syncthing.enable = true; + + services.kdeconnect.enable = true; + + programs.bat = { + enable = true; + config = { theme = "gruvbox-dark"; }; + }; + + programs.fzf = { + enable = true; + enableZshIntegration = true; + # defaultOptions = [ + # "--preview --preview 'bat --color=always --style=header,grid --line-range :300 {}'" + # ]; + tmux.enableShellIntegration = true; + }; + + services.gnome-keyring = { + enable = true; + components = [ "secrets" ]; + }; + + services.nextcloud-client = { + enable = true; + startInBackground = true; + }; + + xdg.mimeApps = { + enable = true; + defaultApplications = { + "x-scheme-handler/http" = "firefox.desktop"; + "x-scheme-handler/https" = " firefox.desktop"; + "x-scheme-handler/chrome" = " firefox.desktop"; + "text/html" = "firefox.desktop"; + "application/x-extension-htm" = "firefox.desktop"; + "application/x-extension-html" = "firefox.desktop"; + "application/x-extension-shtml" = "firefox.desktop"; + "application/xhtml+xml" = "firefox.desktop"; + "application/x-extension-xhtml" = "firefox.desktop"; + "application/x-extension-xht" = "firefox.desktop"; + "x-scheme-handler/tg" = "userapp-Telegram Desktop.desktop"; + }; + associations.added = { + "x-scheme-handler/http" = "firefox.desktop"; + "x-scheme-handler/https" = " firefox.desktop"; + "x-scheme-handler/chrome" = " firefox.desktop"; + "text/html" = "firefox.desktop"; + "application/x-extension-htm" = "firefox.desktop"; + "application/x-extension-html" = "firefox.desktop"; + "application/x-extension-shtml" = "firefox.desktop"; + "application/xhtml+xml" = "firefox.desktop"; + "application/x-extension-xhtml" = "firefox.desktop"; + "application/x-extension-xht" = "firefox.desktop"; + "x-scheme-handler/tg" = "userapp-Telegram Desktop.desktop"; + + }; + }; + + dconf.settings = { + "org/virt-manager/virt-manager/connections" = { + "autoconnect" = [ "qemu:///system" ]; + "uris" = [ "qemu:///system" ]; + }; + }; + + home.stateVersion = "21.11"; +} diff --git a/home/trantor.nix b/home/trantor.nix index afafe64..b035b81 100644 --- a/home/trantor.nix +++ b/home/trantor.nix @@ -1,212 +1,10 @@ { config, pkgs, ... }: -let - impermanence = builtins.fetchTarball { - url = "https://github.com/nix-community/impermanence/archive/master.tar.gz"; - }; - -in { - # Let Home Manager install and manage itself. - # programs.home-manager.enable = true; - - # Home Manager needs a bit of information about you and the - # paths it should manage. - home.username = "rilla"; - home.homeDirectory = "/home/rilla"; - +{ imports = [ - "${impermanence}/home-manager.nix" - # ./desktop-sway + ./nixos-common.nix ./alacritty/trantor.nix - ./arduino - ./barrier - ./browsers - ./dav ./desktop-xmonad/trantor.nix - ./fonts - ./git - ./gotify - ./gpg - ./idasen - ./mail - ./minidisc - ./mpd - ./msg - ./music - ./neovim - ./pass - ./rss - ./snapcast - ./sound - ./ssh ./theming/trantor.nix - ./tmux - ./vitetris - ./wallets - ./zsh ]; - - home.persistence."/persist/system/${config.home.homeDirectory}" = { - directories = [ - ".abook" - ".bitmonero" - ".cache" - ".config/Nextcloud" - ".config/chromium" - ".config/whatsapp-for-linux" - ".gnupg/private-keys-v1.d" - ".local/share/keyrings" - ".local/share/mpd" - ".local/share/webkitgtk" - ".mozilla" - ".newsboat" - ".vdirsyncer" - ]; - files = [ - ".gnupg/pubring.kbx" - ".gnupg/trustdb.gpg" - ".mailsynclastrun" - ".ssh/known_hosts" - ".zsh_history" - ]; - allowOther = true; - }; - - home.persistence."/persist/user/${config.home.homeDirectory}" = { - directories = [ - ".config/Signal" - ".config/Element" - ".local/share/TelegramDesktop" - ".local/share/dino" - ".local/share/Bisq" - ".password-store" - ".walletwasabi" - "Calendars" - "Contacts" - "Documents" - "Downloads" - "Images" - "Maildir" - "Monero" - "Nextcloud" - "code" - "configs" - "misc" - "workspace" - ]; - files = [ ]; - allowOther = true; - }; - - home.sessionVariables = { - EDITOR = "${pkgs.neovim}/bin/nvim"; - VISUAL = "${pkgs.neovim}/bin/nvim"; - BROWSER = "${pkgs.firefox}/bin/firefox"; - # OPENER = "todo"; # todo - TERMINAL = "${pkgs.alacritty}/bin/alacritty"; - CM_LAUNCHER = "rofi"; # for clipmenu - LEDGER_FILE = "${config.home.homeDirectory}/finance/2021.journal"; - QT_QPA_PLATFORMTHEME = "qt5ct"; - - }; - - home.packages = with pkgs; [ - R - acpi - android-tools - ansible - bind.dnsutils - calibre - docker-compose - file - gimp - gnumake - htop - jq - killall - libnotify - libreoffice - lxqt.pcmanfm-qt - mosh - mpv - neofetch - networkmanagerapplet - nextcloud-client - pandoc - pv - ripgrep - signify - sxiv - telnet - virt-manager - wget - ]; - - services.syncthing.enable = true; - - services.kdeconnect.enable = true; - - programs.bat = { - enable = true; - config = { theme = "gruvbox-dark"; }; - }; - - programs.fzf = { - enable = true; - enableZshIntegration = true; - # defaultOptions = [ - # "--preview --preview 'bat --color=always --style=header,grid --line-range :300 {}'" - # ]; - tmux.enableShellIntegration = true; - }; - - services.gnome-keyring = { - enable = true; - components = [ "secrets" ]; - }; - - services.nextcloud-client = { - enable = true; - startInBackground = true; - }; - - xdg.mimeApps = { - enable = true; - defaultApplications = { - "x-scheme-handler/http" = "firefox.desktop"; - "x-scheme-handler/https" = " firefox.desktop"; - "x-scheme-handler/chrome" = " firefox.desktop"; - "text/html" = "firefox.desktop"; - "application/x-extension-htm" = "firefox.desktop"; - "application/x-extension-html" = "firefox.desktop"; - "application/x-extension-shtml" = "firefox.desktop"; - "application/xhtml+xml" = "firefox.desktop"; - "application/x-extension-xhtml" = "firefox.desktop"; - "application/x-extension-xht" = "firefox.desktop"; - "x-scheme-handler/tg" = "userapp-Telegram Desktop.desktop"; - }; - associations.added = { - "x-scheme-handler/http" = "firefox.desktop"; - "x-scheme-handler/https" = " firefox.desktop"; - "x-scheme-handler/chrome" = " firefox.desktop"; - "text/html" = "firefox.desktop"; - "application/x-extension-htm" = "firefox.desktop"; - "application/x-extension-html" = "firefox.desktop"; - "application/x-extension-shtml" = "firefox.desktop"; - "application/xhtml+xml" = "firefox.desktop"; - "application/x-extension-xhtml" = "firefox.desktop"; - "application/x-extension-xht" = "firefox.desktop"; - "x-scheme-handler/tg" = "userapp-Telegram Desktop.desktop"; - - }; - }; - - dconf.settings = { - "org/virt-manager/virt-manager/connections" = { - "autoconnect" = [ "qemu:///system" ]; - "uris" = [ "qemu:///system" ]; - }; - }; - - home.stateVersion = "21.11"; } diff --git a/nixos/common.nix b/nixos/common.nix index fd59f7a..d7804b2 100644 --- a/nixos/common.nix +++ b/nixos/common.nix @@ -1,6 +1,12 @@ { config, pkgs, ... }: -{ +let + impermanence = builtins.fetchTarball { + url = "https://github.com/nix-community/impermanence/archive/master.tar.gz"; + }; +in { + imports = [ "${impermanence}/nixos.nix" ]; + nixpkgs.config = { packageOverrides = pkgs: { nur = import (builtins.fetchTarball @@ -206,6 +212,76 @@ hardware.bluetooth.enable = true; services.blueman.enable = true; + fileSystems = { + "/" = { + device = "tmpfs"; + fsType = "tmpfs"; + options = [ "defaults" "size=2G" "mode=755" ]; + }; + + "/persist/system" = { + device = "/dev/mapper/system"; + fsType = "btrfs"; + options = [ "subvol=persist" "compress=zstd" ]; + neededForBoot = true; + }; + + "/persist/user" = { + device = "/dev/mapper/user"; + fsType = "btrfs"; + options = [ "subvol=persist" "compress=zstd" ]; + neededForBoot = true; + }; + + "/nix" = { + device = "/dev/mapper/system"; + fsType = "btrfs"; + options = [ "subvol=nix" "compress=zstd" ]; + }; + + "/boot" = { + device = "/dev/mapper/system"; + fsType = "btrfs"; + options = [ "subvol=boot" "compress=zstd" ]; + }; + + "/swap" = { + device = "/dev/mapper/system"; + fsType = "btrfs"; + options = [ "subvol=swap" ]; + }; + }; + + swapDevices = [{ device = "/swap/swapfile"; }]; + + environment.persistence = { + "/persist/system" = { + directories = [ + "/var/log" + "/var/lib/bluetooth" + "/var/lib/systemd/coredump" + "/var/lib/docker" + ]; + files = [ + "/etc/machine-id" + #"/etc/nix/id_rsa" + "/etc/ssh/ssh_host_ed25519_key" + "/etc/ssh/ssh_host_ed25519_key.pub" + "/etc/ssh/ssh_host_rsa_key" + "/etc/ssh/ssh_host_rsa_key.pub" + "/etc/wireguard/wg0" + ]; + }; + "/persist/user" = { + directories = [ + "/etc/NetworkManager/system-connections" + "/etc/nixos" + "/var/lib/libvirt" + ]; + files = [ "/etc/wireguard/wg0" ]; + }; + }; + # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; # diff --git a/trantor.nix b/trantor.nix index ad55e92..c33d5e4 100644 --- a/trantor.nix +++ b/trantor.nix @@ -13,104 +13,34 @@ let "https://github.com/nix-community/home-manager/archive/release-21.11.tar.gz"; }; in { - imports = [ # Include the results of the hardware scan. + imports = [ ./nixos/hardware-configuration/trantor.nix ./nixos/common.nix "${home-manager}/nixos" - "${impermanence}/nixos.nix" ]; home-manager.users.rilla = import home/trantor.nix; fileSystems = { - "/" = { - device = "tmpfs"; - fsType = "tmpfs"; - options = [ "defaults" "size=2G" "mode=755" ]; - }; - - "/persist/system" = { - device = "/dev/mapper/system"; - fsType = "btrfs"; - options = [ "subvol=persist" "compress=zstd" ]; - neededForBoot = true; - }; - - "/persist/user" = { - device = "/dev/mapper/user"; - fsType = "btrfs"; - options = [ "subvol=persist" "compress=zstd" ]; - neededForBoot = true; - }; - - "/nix" = { - device = "/dev/mapper/system"; - fsType = "btrfs"; - options = [ "subvol=nix" "compress=zstd" ]; - }; - - "/boot" = { - device = "/dev/mapper/system"; - fsType = "btrfs"; - options = [ "subvol=boot" "compress=zstd" ]; - }; - "/boot/efi" = { device = "/dev/disk/by-uuid/0BFA-9A66"; fsType = "vfat"; }; - "/swap" = { - device = "/dev/mapper/system"; - fsType = "btrfs"; - options = [ "subvol=swap" ]; - }; - "/home/rilla/music" = { device = "narwhal:/music"; fsType = "nfs"; - options = [ - "nfsvers=4" - "x-systemd.automount" - "x-systemd.idle-timeout=1min" - ]; + options = + [ "nfsvers=4" "x-systemd.automount" "x-systemd.idle-timeout=1min" ]; }; - # "/home/rilla/calibre" = { - # device = "narwhal:/calibre"; - # fsType = "nfs"; - # options = [ - # "nfsvers=4" - # "noauto" - # "x-systemd.automount" - # "x-systemd.idle-timeout=1min" - # ]; - # }; - }; - - swapDevices = [{ device = "/swap/swapfile"; }]; - - environment.persistence = { - "/persist/system" = { - directories = [ - "/var/log" - "/var/lib/bluetooth" - "/var/lib/systemd/coredump" - "/var/lib/docker" - ]; - files = [ - "/etc/machine-id" - "/etc/ssh/ssh_host_ed25519_key" - "/etc/ssh/ssh_host_ed25519_key.pub" - "/etc/ssh/ssh_host_rsa_key" - "/etc/ssh/ssh_host_rsa_key.pub" - # "/etc/wireguard/wg0" - ]; - }; - "/persist/user" = { - directories = - [ "/etc/NetworkManager/system-connections" "/var/lib/libvirt" ]; + "/home/rilla/calibre" = { + device = "narwhal:/calibre"; + fsType = "nfs"; + options = + [ "nfsvers=4" "x-systemd.automount" "x-systemd.idle-timeout=1min" ]; }; + }; environment.variables.NIXOS_CONFIG =