diff --git a/flake.lock b/flake.lock index 3feb62d..8cdc260 100644 --- a/flake.lock +++ b/flake.lock @@ -31,6 +31,18 @@ "type": "github" } }, + "fonts": { + "flake": false, + "locked": { + "narHash": "sha256-bkloNC5QJvk/7u6YaPFzQ7uZJzO280lFZZ09iRvQUtY=", + "path": "/home/h7x4/git/fonts", + "type": "path" + }, + "original": { + "path": "/home/h7x4/git/fonts", + "type": "path" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -54,11 +66,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1647820583, - "narHash": "sha256-2awN2f/dXpVvms6zo2e4TBaZDtQNucMrruqNPIvb518=", + "lastModified": 1648203577, + "narHash": "sha256-CbXZkiVTA0ByV/yncFHCAGIa/AfcSb0cjqzEa56rO+Y=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "01e87b327aa89d9d60fba192085bccddaa2d1b24", + "rev": "d89f18a17e51532ed5f4d45297b0ddf11e46b9c8", "type": "github" }, "original": { @@ -70,6 +82,7 @@ "root": { "inputs": { "dotfiles": "dotfiles", + "fonts": "fonts", "home-manager": "home-manager", "nixpkgs": "nixpkgs", "secrets": "secrets", @@ -83,8 +96,11 @@ ] }, "locked": { - "lastModified": 1647911882, - "narHash": "sha256-4bwjEIgkbF9/G0MP69iV03OLU3V+GzKGKcKvzhdg8Jk=", + "lastModified": 1648431323, + "narHash": "sha256-QfEh/IY3RodDhwt9ij4gzdU4cgQ/Ejk45PZMM1sNkoM=", + "ref": "main", + "rev": "d9728ee32a078ca67af897d951db007391857daa", + "revCount": 21, "type": "git", "url": "file:///home/h7x4/git/nix-secrets" }, @@ -101,11 +117,11 @@ ] }, "locked": { - "lastModified": 1647647976, - "narHash": "sha256-rFEloIIRTB43w4/ox9/6H+zpXu0zEEW7Ri3pmx/o35A=", + "lastModified": 1648430064, + "narHash": "sha256-kPRmFqlTWPrlyaVkOm/dWbui2EDzaCmwjwBRv3nciSw=", "ref": "main", - "rev": "1030977dfd0c861e186b3b142cbb161feaa0c32e", - "revCount": 51, + "rev": "9fc1893ad33ae78c30f81b6438bf1bd5097a1ae3", + "revCount": 61, "type": "git", "url": "https://git.nani.wtf/h7x4/nani.wtf" }, diff --git a/flake.nix b/flake.nix index e7f329c..a143319 100644 --- a/flake.nix +++ b/flake.nix @@ -8,12 +8,17 @@ url = "github:nix-community/home-manager/release-21.11"; inputs.nixpkgs.follows = "nixpkgs"; }; - + dotfiles = { url = "github:h7x4abk3g/dotfiles"; flake = false; }; + fonts = { + url = "path:/home/h7x4/git/fonts"; + flake = false; + }; + website = { url = "git+https://git.nani.wtf/h7x4/nani.wtf?ref=main"; # url = "path:/home/h7x4/git/nani.wtf"; @@ -36,6 +41,7 @@ nixpkgs, home-manager, secrets, + fonts, dotfiles, website, ... @@ -50,15 +56,17 @@ android_sdk.accept_license = true; }; - overlays = [ (import ./overlays/lib) ]; + overlays = [ self.overlays.lib ]; }; specialArgs = { secrets = secrets.outputs.default; colorTheme = import ./common/colors.nix; inputs = { + inherit self; inherit home-manager; inherit dotfiles; + inherit fonts; inherit website; inherit secrets; }; @@ -69,12 +77,22 @@ lib = import ./overlays/lib; }; + lib = (pkgs.extend self.overlays.lib).lib; + homeConfigurations = { h7x4 = home-manager.lib.homeManagerConfiguration { inherit system; inherit pkgs; - extraSpecialArgs = specialArgs; + extraSpecialArgs = specialArgs // { + machineVars = { + hostname = "machine"; + headless = false; + screens = 1; + gaming = true; + laptop = false; + }; + }; username = "h7x4"; homeDirectory = "/home/h7x4"; stateVersion = "21.11"; @@ -89,25 +107,42 @@ }; nixosConfigurations = let + # String -> AttrSet -> AttrSet - nixSys = - name: extraOpts: + nixSys = name: extraOpts: machineVars: nixpkgs.lib.nixosSystem { inherit system; inherit pkgs; - - lib = pkgs.lib; - inherit specialArgs; - + inherit (pkgs) lib; + specialArgs = specialArgs // { inherit machineVars; }; modules = [ + "${home-manager}/nixos" + ./hosts/common.nix ./hosts/${name}/configuration.nix ]; } // extraOpts; in { - Tsuki = nixSys "tsuki" {}; - Eisei = nixSys "eisei" {}; - kasei = nixSys "kasei" {}; + Tsuki = nixSys "tsuki" {} { + hostname = "tsuki"; + headless = true; + gaming = false; + laptop = false; + }; + Eisei = nixSys "eisei" {} { + hostname = "eisei"; + headless = false; + screens = 1; + gaming = false; + laptop = true; + }; + kasei = nixSys "kasei" {} { + hostname = "kasei"; + headless = false; + screens = 2; + gaming = true; + laptop = false; + }; }; }; diff --git a/home.nix b/home.nix index 21d7334..24c171d 100644 --- a/home.nix +++ b/home.nix @@ -1,28 +1,34 @@ -{ pkgs, ... } @ args: -{ +{ pkgs, machineVars, ... } @ args: let + inherit (pkgs) lib; + inherit (pkgs.lib) mkForce mkIf optionals; + graphics = !machineVars.headless; +in { imports = [ ./shellOptions.nix ./packages.nix - ./misc/mimetypes.nix ./misc/ssh/hosts/pvv.nix - ./programs/alacritty.nix ./programs/comma.nix - ./programs/emacs ./programs/gh.nix ./programs/git.nix - ./programs/ncmpcpp.nix ./programs/neovim.nix ./programs/newsboat.nix + ./programs/tmux.nix + ./programs/zsh + + ] ++ optionals graphics [ + ./misc/mimetypes.nix + + ./programs/alacritty.nix + ./programs/emacs + ./programs/ncmpcpp.nix ./programs/qutebrowser.nix ./programs/rofi.nix - ./programs/tmux.nix ./programs/vscode.nix ./programs/xmobar ./programs/xmonad ./programs/zathura.nix - ./programs/zsh ./services/dunst.nix ./services/mpd.nix @@ -35,11 +41,26 @@ stateVersion = "21.11"; username = "h7x4"; homeDirectory = "/home/h7x4"; + file = { + ".ghci".text = '' + :set prompt "${lib.termColors.front.magenta "[GHCi]λ"} ". + ''; + + ".pyrc".text = '' + #!/usr/bin/env python3 + import sys + + # You also need \x01 and \x02 to separate escape sequence, due to: + # https://stackoverflow.com/a/9468954/1147688 + sys.ps1='\x01\x1b${lib.termColors.front.blue "[Python]> "}\x02>>>\x01\x1b[0m\x02 ' # bright yellow + sys.ps2='\x01\x1b[1;49;31m\x02...\x01\x1b[0m\x02 ' # bright red + ''; + }; }; news.display = "silent"; - fonts.fontconfig.enable = true; + fonts.fontconfig.enable = mkForce true; programs = { home-manager.enable = true; @@ -47,7 +68,7 @@ bat.enable = true; bottom.enable = true; exa.enable = true; - feh.enable = true; + feh.enable = mkIf graphics true; fzf = { enable = true; defaultCommand = "fd --type f"; @@ -60,8 +81,8 @@ enable = true; generateCaches = true; }; - mpv.enable = true; - obs-studio.enable = true; + mpv.enable = mkIf graphics true; + obs-studio.enable = mkIf graphics true; ssh.enable = true; skim = { enable = true; @@ -71,14 +92,13 @@ enable = true; # packageSet = pkgs.texlive.combined.scheme-medium; }; - # xmobar.enable = true; zoxide.enable = true; }; services = { - gnome-keyring.enable = true; + gnome-keyring.enable = mkIf graphics true; dropbox.enable = true; - network-manager-applet.enable = true; + network-manager-applet.enable = mkIf graphics true; # redshift.enable = true; }; @@ -88,7 +108,17 @@ json.enable = true; }; - gtk = { + xdg.enable = true; + + xsession = mkIf graphics { + pointerCursor = { + package = pkgs.capitaine-cursors; + name = "capitaine-cursors"; + size = 16; + }; + }; + + gtk = mkIf graphics { enable = true; font = { name = "Droid Sans"; @@ -103,7 +133,7 @@ }; }; - qt = { + qt = mkIf graphics { enable = true; platformTheme = "gtk"; style = { @@ -111,14 +141,4 @@ package = pkgs.adwaita-qt; }; }; - - xdg.enable = true; - - xsession = { - pointerCursor = { - package = pkgs.capitaine-cursors; - name = "capitaine-cursors"; - size = 16; - }; - }; } diff --git a/hosts/common.nix b/hosts/common.nix new file mode 100644 index 0000000..cedf5dc --- /dev/null +++ b/hosts/common.nix @@ -0,0 +1,126 @@ +{ pkgs, config, inputs, specialArgs, ... }: +let + inherit (pkgs) lib; +in { + time.timeZone = "Europe/Oslo"; + + i18n.defaultLocale = "en_US.UTF-8"; + + # nixpkgs.config = { + # allowUnfree = true; + # }; + + console = { + font = "Lat2-Terminus16"; + keyMap = "us"; + }; + + nix = { + package = pkgs.nixFlakes; + extraOptions = '' + experimental-features = nix-command flakes + builders-use-substitutes = true + ''; + }; + + environment = { + variables = { + EDITOR = "nvim"; + VISUAL = "nvim"; + }; + + shells = with pkgs; [ + bashInteractive + zsh + dash + ]; + + etc = { + # TODO: move this out of etc, and reference it directly in sudo config. + sudoLecture = { + target = "sudo.lecture"; + text = lib.termColors.front.red "Be careful or something, idk...\n"; + }; + + "resolv.conf".source = let + inherit (lib.strings) concatStringsSep; + inherit (pkgs) writeText; + in writeText "resolv.conf" '' + ${concatStringsSep "\n" (map (ns: "nameserver ${ns}") config.networking.nameservers)} + options edns0 + ''; + + currentSystemPackages = { + target = "current-system-packages"; + text = let + inherit (lib.strings) concatStringsSep; + inherit (lib.lists) sort; + inherit (lib.trivial) lessThan; + packages = map (p: "${p.name}") config.environment.systemPackages; + sortedUnique = sort lessThan (lib.unique packages); + in concatStringsSep "\n" sortedUnique; + }; + }; + }; + + fonts = { + enableDefaultFonts = true; + + fonts = with pkgs; [ + cm_unicode + dejavu_fonts + fira-code + fira-code-symbols + powerline-fonts + iosevka + symbola + corefonts + ipaexfont + ipafont + liberation_ttf + migmix + noto-fonts + noto-fonts-cjk + noto-fonts-emoji + open-sans + source-han-sans + source-sans + ubuntu_font_family + victor-mono + (nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" ]; }) + inputs.fonts + ]; + + fontconfig = { + defaultFonts = { + serif = [ "Droid Sans Serif" "Ubuntu" ]; + sansSerif = [ "Droid Sans" "Ubuntu" ]; + monospace = [ "Fira Code" "Ubuntu" ]; + emoji = [ "Noto Sans Emoji" ]; + }; + }; + }; + + users.users.h7x4 = { + isNormalUser = true; + shell = pkgs.zsh; + }; + + home-manager = { + useGlobalPkgs = true; + extraSpecialArgs = specialArgs; + + # TODO: figure out why specialArgs isn't accessible from the root home file. + users.h7x4 = import ../home.nix { + inherit pkgs; + inherit (specialArgs) machineVars; + }; + }; + + security.sudo.extraConfig = '' + Defaults lecture = always + Defaults lecture_file = /etc/${config.environment.etc.sudoLecture.target} + ''; + + system.stateVersion = "21.11"; +} diff --git a/hosts/eisei/configuration.nix b/hosts/eisei/configuration.nix index cb27532..791da82 100644 --- a/hosts/eisei/configuration.nix +++ b/hosts/eisei/configuration.nix @@ -25,8 +25,6 @@ in { }; }; - time.timeZone = "Europe/Oslo"; - networking = { hostName = "Eisei"; networkmanager.enable = true; @@ -45,8 +43,6 @@ in { }; i18n = { - defaultLocale = "en_US.UTF-8"; - inputMethod = { enabled = "fcitx"; fcitx.engines = with pkgs.fcitx-engines; [ mozc ]; @@ -61,11 +57,6 @@ in { # }; }; - console = { - font = "Lat2-Terminus16"; - keyMap = "us"; - }; - services = { openssh.enable = true; gnome.gnome-keyring.enable = true; @@ -106,20 +97,11 @@ in { hardware.bluetooth.enable = true; - nixpkgs.config = { - allowUnfree = true; - }; - nix = { distributedBuilds = true; - package = pkgs.nixFlakes; binaryCaches = [ "https://cache.nixos.org/" ]; - extraOptions = '' - experimental-features = nix-command flakes - builders-use-substitutes = true - ''; buildMachines = [ { @@ -139,94 +121,21 @@ in { }; - users.users.h7x4 = { - isNormalUser = true; - extraGroups = [ - "wheel" - "networkmanager" - "docker" - "disk" - "audio" - "video" - "libvirtd" - "input" - ]; - shell = pkgs.zsh; - }; + users.users.h7x4.extraGroups = [ + "wheel" + "networkmanager" + "docker" + "disk" + "audio" + "video" + "libvirtd" + "input" + ]; - environment = { - variables = { - EDITOR = "nvim"; - VISUAL = "nvim"; - }; - - systemPackages = with pkgs; [ - wget - haskellPackages.xmobar - ]; - - shells = with pkgs; [ - bashInteractive - zsh - dash - ]; - - etc = { - # TODO: move this out of etc, and reference it directly in sudo config. - sudoLecture = { - target = "sudo.lecture"; - text = lib.termColors.front.red "Be careful or something, idk...\n"; - }; - - currentSystemPackages = { - target = "current-system-packages"; - text = let - inherit (lib.strings) concatStringsSep; - inherit (lib.lists) sort; - inherit (lib.trivial) lessThan; - packages = map (p: "${p.name}") config.environment.systemPackages; - sortedUnique = sort lessThan (lib.unique packages); - in concatStringsSep "\n" sortedUnique; - }; - }; - }; - - fonts = { - enableDefaultFonts = true; - - fonts = with pkgs; [ - cm_unicode - dejavu_fonts - fira-code - fira-code-symbols - powerline-fonts - iosevka - symbola - corefonts - ipaexfont - ipafont - liberation_ttf - migmix - noto-fonts - noto-fonts-cjk - noto-fonts-emoji - open-sans - source-han-sans - source-sans - ubuntu_font_family - victor-mono - (nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" ]; }) - ]; - - fontconfig = { - defaultFonts = { - serif = [ "Droid Sans Serif" "Ubuntu" ]; - sansSerif = [ "Droid Sans" "Ubuntu" ]; - monospace = [ "Fira Code" "Ubuntu" ]; - emoji = [ "Noto Sans Emoji" ]; - }; - }; - }; + environment.systemPackages = with pkgs; [ + wget + haskellPackages.xmobar + ]; programs = { dconf.enable = true; @@ -269,16 +178,9 @@ in { }; }; - security.sudo.extraConfig = '' - Defaults lecture = always - Defaults lecture_file = /etc/${config.environment.etc.sudoLecture.target} - ''; - virtualisation = { docker.enable = true; libvirtd.enable = true; }; - - system.stateVersion = "21.11"; } diff --git a/hosts/kasei/configuration.nix b/hosts/kasei/configuration.nix index 9e54706..9e5fac7 100644 --- a/hosts/kasei/configuration.nix +++ b/hosts/kasei/configuration.nix @@ -1,11 +1,9 @@ -{ config, lib, pkgs, ... }: +{ config, lib, pkgs, inputs, specialArgs, ... }: { - imports = - [ - ./hardware-configuration.nix - - ../../pluggables/tools/programming.nix - ]; + imports = [ + ./hardware-configuration.nix + ../../pluggables/tools/programming.nix + ]; systemd.targets = { sleep.enable = false; @@ -14,14 +12,10 @@ hybrid-sleep.enable = false; }; - nix.package = pkgs.nixFlakes; - nix.extraOptions = '' - experimental-features = nix-command flakes - ''; - # security.pam.services.login.unixAuth = true; boot.loader = { + efi.canTouchEfiVariables = false; grub = { enable = true; version = 2; @@ -30,12 +24,8 @@ device = "nodev"; efiInstallAsRemovable = true; }; - # efi.efiSysMountPoint = "/boot/efi"; - # efi.canTouchEfiVariables = true; }; - time.timeZone = "Europe/Oslo"; - networking = { hostName = "kasei"; networkmanager.enable = true; @@ -50,8 +40,6 @@ }; i18n = { - defaultLocale = "en_US.UTF-8"; - inputMethod = { enabled = "fcitx"; fcitx.engines = with pkgs.fcitx-engines; [ mozc ]; @@ -65,126 +53,36 @@ # ]; # }; }; - console = { - font = "Lat2-Terminus16"; - keyMap = "us"; - }; - # services = { - # openssh = { - # enable = true; - # passwordAuthentication = false; - # challengeResponseAuthentication = false; - # permitRootLogin = "no"; - # }; - # printing.enable = true; - # cron = { - # enable = true; - # systemCronJobs = [ - # # "*/5 * * * * root date >> /tmp/cron.log" - # ]; - # }; - # }; - - users.users = { - h7x4 = { - isNormalUser = true; - extraGroups = [ - "wheel" - "networkmanager" - "docker" - "audio" - "video" - "disk" - "libvirtd" - "input" - ]; - shell = pkgs.zsh; - }; - }; + users.users.h7x4.extraGroups = [ + "wheel" + "networkmanager" + "docker" + "audio" + "video" + "disk" + "libvirtd" + "input" + ]; environment = { - variables = { - EDITOR = "nvim"; - VISUAL = "nvim"; + shellAliases = { + fixscreen = "xrandr --output DP-4 --mode 1920x1080 --pos 0x0 -r 144 --output DVI-D-1 --primary --mode 1920x1080 --pos 1920x0 -r 60"; }; systemPackages = with pkgs; [ wget haskellPackages.xmobar ]; - - shells = with pkgs; [ - bashInteractive - zsh - dash - ]; - - etc = { - sudoLecture = { - target = "sudo.lecture"; - text = "Be careful or something, idk...\n"; - }; - - "resolv.conf" = with lib; with pkgs; { - source = writeText "resolv.conf" '' - ${concatStringsSep "\n" (map (ns: "nameserver ${ns}") config.networking.nameservers)} - options edns0 - ''; - }; - - currentSystemPackages = { - target = "current-system-packages"; - text = let - inherit (lib.strings) concatStringsSep; - inherit (lib.lists) sort; - inherit (lib.trivial) lessThan; - packages = map (p: "${p.name}") config.environment.systemPackages; - sortedUnique = sort lessThan (lib.unique packages); - in concatStringsSep "\n" sortedUnique; - }; - }; - }; - - fonts = { - enableDefaultFonts = true; - - fonts = with pkgs; [ - cm_unicode - dejavu_fonts - fira-code - fira-code-symbols - powerline-fonts - iosevka - symbola - corefonts - ipaexfont - ipafont - liberation_ttf - migmix - noto-fonts - noto-fonts-cjk - noto-fonts-emoji - open-sans - source-han-sans - source-sans - ubuntu_font_family - victor-mono - (nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" ]; }) - ]; - - fontconfig = { - defaultFonts = { - serif = [ "Droid Sans Serif" "Ubuntu" ]; - sansSerif = [ "Droid Sans" "Ubuntu" ]; - monospace = [ "Fira Code" "Ubuntu" ]; - emoji = [ "Noto Sans Emoji" ]; - }; - }; }; services = { - openssh.enable = true; + openssh = { + enable = true; + passwordAuthentication = false; + challengeResponseAuthentication = false; + permitRootLogin = "no"; + }; gnome.gnome-keyring.enable = true; printing.enable = true; dbus = { @@ -261,17 +159,10 @@ }; }; - security.sudo.extraConfig = '' - Defaults lecture = always - Defaults lecture_file = /etc/${config.environment.etc.sudoLecture.target} - ''; - virtualisation = { docker.enable = true; libvirtd.enable = true; }; - - system.stateVersion = "21.11"; } diff --git a/hosts/tsuki/configuration.nix b/hosts/tsuki/configuration.nix index 95eea22..3b45e99 100644 --- a/hosts/tsuki/configuration.nix +++ b/hosts/tsuki/configuration.nix @@ -31,11 +31,6 @@ hybrid-sleep.enable = false; }; - nix.package = pkgs.nixFlakes; - nix.extraOptions = '' - experimental-features = nix-command flakes - ''; - # security.pam.services.login.unixAuth = true; boot.loader = { @@ -51,8 +46,6 @@ # efi.canTouchEfiVariables = true; }; - time.timeZone = "Europe/Oslo"; - networking = { hostName = "Tsuki"; networkmanager.enable = true; @@ -65,12 +58,6 @@ firewall.enable=true; }; - i18n.defaultLocale = "en_US.UTF-8"; - console = { - font = "Lat2-Terminus16"; - keyMap = "us"; - }; - services = { openssh = { enable = true; @@ -90,102 +77,23 @@ users.groups.media = {}; users.users = { - h7x4 = { - isNormalUser = true; - extraGroups = [ - "wheel" - "networkmanager" - "docker" - "disk" - "libvirtd" - "input" - ]; - shell = pkgs.zsh; - }; + h7x4.extraGroups = [ + "wheel" + "networkmanager" + "docker" + "disk" + "libvirtd" + "input" + ]; media = { isSystemUser = true; group = "media"; }; }; - environment = { - variables = { - EDITOR = "nvim"; - VISUAL = "nvim"; - }; - - systemPackages = with pkgs; [ - wget - ]; - - shells = with pkgs; [ - bashInteractive - zsh - dash - ]; - - etc = { - sudoLecture = { - target = "sudo.lecture"; - text = "Be careful or something, idk...\n"; - }; - - "resolv.conf" = with lib; with pkgs; { - source = writeText "resolv.conf" '' - ${concatStringsSep "\n" (map (ns: "nameserver ${ns}") config.networking.nameservers)} - options edns0 - ''; - }; - - currentSystemPackages = { - target = "current-system-packages"; - text = let - inherit (lib.strings) concatStringsSep; - inherit (lib.lists) sort; - inherit (lib.trivial) lessThan; - packages = map (p: "${p.name}") config.environment.systemPackages; - sortedUnique = sort lessThan (lib.unique packages); - in concatStringsSep "\n" sortedUnique; - }; - }; - }; - - fonts = { - enableDefaultFonts = true; - - fonts = with pkgs; [ - cm_unicode - dejavu_fonts - fira-code - fira-code-symbols - powerline-fonts - iosevka - symbola - corefonts - ipaexfont - ipafont - liberation_ttf - migmix - noto-fonts - noto-fonts-cjk - noto-fonts-emoji - open-sans - source-han-sans - source-sans - ubuntu_font_family - victor-mono - (nerdfonts.override { fonts = [ "FiraCode" "DroidSansMono" ]; }) - ]; - - fontconfig = { - defaultFonts = { - serif = [ "Droid Sans Serif" "Ubuntu" ]; - sansSerif = [ "Droid Sans" "Ubuntu" ]; - monospace = [ "Fira Code" "Ubuntu" ]; - emoji = [ "Noto Sans Emoji" ]; - }; - }; - }; + environment.systemPackages = with pkgs; [ + wget + ]; programs = { git.enable = true; @@ -221,17 +129,8 @@ }; }; - security.sudo.extraConfig = '' - Defaults lecture = always - Defaults lecture_file = /etc/${config.environment.etc.sudoLecture.target} - ''; - virtualisation = { docker.enable = true; libvirtd.enable = true; }; - - system.stateVersion = "21.11"; } - - diff --git a/packages.nix b/packages.nix index cde98b9..eab22fd 100644 --- a/packages.nix +++ b/packages.nix @@ -1,50 +1,28 @@ -{ pkgs, ... }: +{ pkgs, machineVars, ... }: { home.packages = with pkgs; [ - ahoviewer - anki asciidoctor - audacity beets biber - calibre + python39Packages.bpython castnow - citra - cool-retro-term - copyq czkawka - darktable - desmume - discord diskonaut diskus docker du-dust - fcitx fd ffmpeg - geogebra - gnome.gnome-font-viewer - google-chrome # gpgtui graphviz - # hck + hck hexyl imagemagick - inkscape - insomnia jq kepubify - kid3 - koreader - krita - ktouch lastpass-cli lazydocker - libreoffice-fresh - light lolcat - maim manix mdcat mdp @@ -52,59 +30,27 @@ megacmd megasync micro - minecraft mkvtoolnix mmv - mopidy - mopidy-mpd - mopidy-soundcloud - mopidy-spotify - mopidy-youtube - mpc_cli mps-youtube neofetch nmap - nyxt - osu-lazer ouch pandoc - pulseaudio - pulsemixer python3 ripgrep rsync rust-motd sc-im - scrcpy - slack slack-term - # steam-tui - sxiv - tagainijisho - taisei tealdeer - teams - # tenacity # tv-renamer toilet tokei - touchegg w3m waifu2x-converter-cpp wavemon - xcalib - xclip - xdotool - xfce.thunar - xfce.thunar-archive-plugin - xfce.thunar-dropbox-plugin - xfce.thunar-media-tags-plugin - xfce.thunar-volman youtube-dl - # yuzu-mainline - zeal - zoom-us - zotero # Needed for VSCode liveshare desktop-file-utils @@ -113,6 +59,66 @@ icu openssl xorg.xprop - ]; + ] ++ ( + lib.optionals (!machineVars.headless) [ + ahoviewer + anki + audacity + calibre + cool-retro-term + copyq + darktable + discord + fcitx + geogebra + gnome.gnome-font-viewer + google-chrome + inkscape + insomnia + kid3 + koreader + krita + ktouch + libreoffice-fresh + light + maim + mopidy + mopidy-mpd + mopidy-soundcloud + mopidy-spotify + mopidy-youtube + mpc_cli + nyxt + pulseaudio + pulsemixer + scrcpy + slack + sxiv + tagainijisho + teams + tenacity + xcalib + xclip + xdotool + xfce.thunar + xfce.thunar-archive-plugin + xfce.thunar-dropbox-plugin + xfce.thunar-media-tags-plugin + xfce.thunar-volman + yuzu-mainline + zeal + zoom-us + zotero + ] ++ lib.optionals (machineVars.laptop) [ + touchegg + ] ++ lib.optionals (machineVars.gaming) [ + citra + desmume + minecraft + osu-lazer + steam-tui + taisei + ] + ); }