From 7ac98e510cdd3ae9221f18f0c07caeb13c8b3a8e Mon Sep 17 00:00:00 2001 From: System administrator Date: Sat, 29 Jan 2022 11:47:38 +0000 Subject: [PATCH] fixed a bunch of stuff and added geolocation features --- hosts/subsurface/default.nix | 30 ++++++--------------- hosts/subsurface/hardware-configuration.nix | 26 +++++++++--------- modules/desktop/apps/alacritty.nix | 2 ++ modules/desktop/apps/firefox.nix | 10 ++++--- modules/desktop/apps/{ => menus}/wofi.nix | 2 +- modules/desktop/apps/mpc.nix | 4 ++- modules/desktop/apps/nwg-launchers.nix | 2 +- modules/desktop/apps/obs.nix | 4 ++- modules/desktop/gaming/minecraft.nix | 2 +- modules/desktop/gaming/srb2k.nix | 7 +++++ modules/desktop/services/swayidle.nix | 4 ++- modules/desktop/services/swaylock.nix | 2 +- modules/desktop/sway.nix | 8 ++++-- modules/hardware/fs.nix | 3 +++ modules/security.nix | 10 +++++++ modules/services/geoclue2.nix | 17 ++++++++++++ modules/services/mpd.nix | 13 ++++++--- modules/shell/zsh.nix | 2 +- modules/users.nix | 24 ++++++++++++----- packages/srb2k/default.nix | 29 ++++++++++++++++++++ 20 files changed, 144 insertions(+), 57 deletions(-) rename modules/desktop/apps/{ => menus}/wofi.nix (89%) create mode 100644 modules/desktop/gaming/srb2k.nix create mode 100644 modules/services/geoclue2.nix create mode 100644 packages/srb2k/default.nix diff --git a/hosts/subsurface/default.nix b/hosts/subsurface/default.nix index a678f7e..556b41d 100644 --- a/hosts/subsurface/default.nix +++ b/hosts/subsurface/default.nix @@ -5,22 +5,9 @@ ./hardware-configuration.nix ]; - user = { - packages = with pkgs; [ - curl -# dolphin -# discord -# wl-clipboard -# firefox-wayland -# inkscape -# blender -# polymc - ]; - }; - defaultUsers = { aether = { - packages = [ ]; + packages = with pkgs; [ htop curl mpc_cli gammastep discord obs-studio youtube-dl inkscape audacity dolphin firefox-wayland wl-clipboard steam bitwarden blender neofetch krita celluloid imv firefox zathura ]; uid = 1024; isNormalUser = true; shell = "zsh"; @@ -44,7 +31,6 @@ enable = true; term = "alacritty"; }; -/* apps = { mpc.enable = true; alacritty.enable = true; @@ -54,7 +40,6 @@ nwggrid.enable = true; }; }; -*/ editors = { neovim.enable = true; codium.enable = true; @@ -65,22 +50,23 @@ }; */ }; -/* dev = { llvm.enable = true; - haskell.enable = true; + haskell = { + enable = true; + version = "ghc902"; + }; c.enable = true; }; -*/ services = { ssh.enable = true; -/* mpd = { enable = true; # TODO: Make this more dynamic? - musicDir = "/home/aether/Music"; + musicDir = "/home/aether/Music"; + user = "aether"; }; -*/ + geoclue2.enable = true; }; }; diff --git a/hosts/subsurface/hardware-configuration.nix b/hosts/subsurface/hardware-configuration.nix index e30fbef..092756a 100644 --- a/hosts/subsurface/hardware-configuration.nix +++ b/hosts/subsurface/hardware-configuration.nix @@ -63,18 +63,20 @@ options = [ "defaults" "noatime" "nodiratime" ]; }; - "/boot" = { - device = "/dev/disk/by-uuid/C507-604E"; - fsType = "vfat"; - }; - "/home" = { device = "/dev/disk/by-uuid/f3a44427-a212-48c2-91e7-f40e82bbcc02"; - fsType = "vfat"; + fsType = "f2fs"; + options = [ "defaults" "noatime" "nodiratime" ]; }; "/etc/dotfiles" = { device = "/dev/disk/by-uuid/2777d90a-20f0-4b35-88f1-653ba14114db"; + fsType = "f2fs"; + options = [ "defaults" "noatime" "nodiratime" ]; + }; + + "/boot" = { + device = "/dev/disk/by-uuid/C507-604E"; fsType = "vfat"; }; @@ -82,17 +84,15 @@ device = "none"; fsType = "tmpfs"; }; -/* + "/run/media/aether/bf2d91f1-a6b3-4629-8755-76301b3f6f56" = { device = "/dev/disk/by-uuid/bf2d91f1-a6b3-4629-8755-76301b3f6f56"; - fsType = "f2fs"; +# fsType = "f2fs"; options = [ "defaults" "noatime" "nodiratime" "user" "nofail" ]; }; -*/ -/* "/home/aether/Videos" = { - device = "/run/media/aether/bf2d91f1-a6b3-4629-8755-76301b3f6f56/home delta/home delta delta/Videos"; + device = "/run/media/aether/bf2d91f1-a6b3-4629-8755-76301b3f6f56/home delta/Videos"; options = [ "bind" ]; }; @@ -100,7 +100,6 @@ device = "/run/media/aether/bf2d91f1-a6b3-4629-8755-76301b3f6f56/home delta/Pictures"; options = [ "bind" ]; }; -*/ "/home/aether/Documents" = { device = "/run/media/aether/bf2d91f1-a6b3-4629-8755-76301b3f6f56/home delta/Documents"; @@ -114,4 +113,7 @@ }; swapDevices = [{ device = "/dev/disk/by-uuid/e4a7edca-2c4e-4979-8368-377bc067b8bd"; }]; + + # Allows for hibernation + boot.resumeDevice = "/dev/disk/by-uuid/e4a7edca-2c4e-4979-8368-377bc067b8bd"; } diff --git a/modules/desktop/apps/alacritty.nix b/modules/desktop/apps/alacritty.nix index 0cf9f41..d5b7352 100644 --- a/modules/desktop/apps/alacritty.nix +++ b/modules/desktop/apps/alacritty.nix @@ -16,9 +16,11 @@ in { }; config = mkIf cfg.enable { +/* user.packages = with pkgs; [ alacritty ]; +*/ home._.programs.alacritty = { enable = true; /* diff --git a/modules/desktop/apps/firefox.nix b/modules/desktop/apps/firefox.nix index e30f4e2..81c6af5 100644 --- a/modules/desktop/apps/firefox.nix +++ b/modules/desktop/apps/firefox.nix @@ -12,11 +12,13 @@ in { }; }; - config = trace "penis" (mkIf cfg.enable { - user.packages = mkMerge (if wayland then with pkgs; [ + config = mkIf cfg.enable { +/* + user.packages = if wayland then (with pkgs; [ firefox-wayland - ] else with pkgs; [ + ]) else (with pkgs; [ firefox ]); - }); +*/ + }; } diff --git a/modules/desktop/apps/wofi.nix b/modules/desktop/apps/menus/wofi.nix similarity index 89% rename from modules/desktop/apps/wofi.nix rename to modules/desktop/apps/menus/wofi.nix index 4f826e4..fb2ddb0 100644 --- a/modules/desktop/apps/wofi.nix +++ b/modules/desktop/apps/menus/wofi.nix @@ -17,7 +17,7 @@ in { }; config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ + user.packages = with pkgs; [ wofi ]; }; diff --git a/modules/desktop/apps/mpc.nix b/modules/desktop/apps/mpc.nix index d0301e2..f7d8057 100644 --- a/modules/desktop/apps/mpc.nix +++ b/modules/desktop/apps/mpc.nix @@ -13,8 +13,10 @@ in { config = mkIf cfg.enable { modules.services.mpd.enable = true; - environment.systemPackages = with pkgs; [ +/* + user.packages = with pkgs; [ mpc_cli ]; +*/ }; } diff --git a/modules/desktop/apps/nwg-launchers.nix b/modules/desktop/apps/nwg-launchers.nix index acc79d5..7050bd4 100644 --- a/modules/desktop/apps/nwg-launchers.nix +++ b/modules/desktop/apps/nwg-launchers.nix @@ -12,6 +12,6 @@ in { }; config = mkIf cfg.enable { - user.packages = [ nwg-launchers ]; + user.packages = with pkgs; [ nwg-launchers ]; }; } diff --git a/modules/desktop/apps/obs.nix b/modules/desktop/apps/obs.nix index df440c4..e39829c 100644 --- a/modules/desktop/apps/obs.nix +++ b/modules/desktop/apps/obs.nix @@ -12,8 +12,10 @@ in { }; config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ +/* + user.packages = with pkgs; [ obs-studio ]; +*/ }; } diff --git a/modules/desktop/gaming/minecraft.nix b/modules/desktop/gaming/minecraft.nix index fd0f172..89a4eb0 100644 --- a/modules/desktop/gaming/minecraft.nix +++ b/modules/desktop/gaming/minecraft.nix @@ -13,6 +13,6 @@ in { }; config = mkIf cfg.enable { - user.packages = [ polymc ]; +# user.packages = [ polymc ]; }; } diff --git a/modules/desktop/gaming/srb2k.nix b/modules/desktop/gaming/srb2k.nix new file mode 100644 index 0000000..afef16b --- /dev/null +++ b/modules/desktop/gaming/srb2k.nix @@ -0,0 +1,7 @@ +{ lib, pkgs, options, config, ... }: + +with lib; +let + cfg = config.modules.desktop.gaming.srb2k; +in { +} diff --git a/modules/desktop/services/swayidle.nix b/modules/desktop/services/swayidle.nix index 97b6cc3..9a2d5c2 100644 --- a/modules/desktop/services/swayidle.nix +++ b/modules/desktop/services/swayidle.nix @@ -13,8 +13,10 @@ in { }; config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ +/* + user.packages = with pkgs; [ swayidle ]; +*/ }; } diff --git a/modules/desktop/services/swaylock.nix b/modules/desktop/services/swaylock.nix index 946eae8..7cba2fd 100644 --- a/modules/desktop/services/swaylock.nix +++ b/modules/desktop/services/swaylock.nix @@ -13,7 +13,7 @@ in { }; config = mkIf cfg.enable { - environment.systemPackages = with pkgs; [ + user.packages = with pkgs; [ swaylock ]; }; diff --git a/modules/desktop/sway.nix b/modules/desktop/sway.nix index 19b4df9..351ee21 100644 --- a/modules/desktop/sway.nix +++ b/modules/desktop/sway.nix @@ -31,6 +31,7 @@ in { extraPackages = with pkgs; [ xwayland ]; }; +/* user.packages = with pkgs; [ grim slurp @@ -39,9 +40,10 @@ in { autotiling brightnessctl wdisplays - ] ++ (mkIf audioSupport (with pkgs; [ + ] ++ (if audioSupport then (with pkgs; [ playerctl - ])); + ]) else [ ]); +*/ xdg.portal = { enable = true; @@ -128,6 +130,8 @@ in { "${mod}+Shift+8" = "move container to workspace 8"; "${mod}+Shift+9" = "move container to workspace 9"; "${mod}+Shift+0" = "move container to workspace 10"; + + "Print" = "exec grim -g \"$(slurp -d)\" - | ${scProc}"; }; }; extraSessionCommands = '' diff --git a/modules/hardware/fs.nix b/modules/hardware/fs.nix index 4649934..2d15edb 100644 --- a/modules/hardware/fs.nix +++ b/modules/hardware/fs.nix @@ -24,6 +24,9 @@ in { (mkIf cfg.ssd.enable { services.fstrim.enable = true; + environment.systemPackages = with pkgs; [ + nvme-cli + ]; }) ]); } diff --git a/modules/security.nix b/modules/security.nix index 2f00d1a..6c905f4 100644 --- a/modules/security.nix +++ b/modules/security.nix @@ -73,5 +73,15 @@ in { "net.ipv4.tcp_conjestion_control" = "bbr"; "net.core.default_qdisc" = "cake"; }; + + user = { + initialPassword = "nixos"; + }; + + users.users.root = { + packages = [ pkgs.nologin ]; + shell = pkgs.nologin; + hashedPassword = "!"; + }; }; } diff --git a/modules/services/geoclue2.nix b/modules/services/geoclue2.nix new file mode 100644 index 0000000..5c1493a --- /dev/null +++ b/modules/services/geoclue2.nix @@ -0,0 +1,17 @@ +{ pkgs, lib, config, options, ... }: + +with lib; +let + cfg = config.modules.services.geoclue2; +in { + options.modules.services.geoclue2 = { + enable = mkOption { + type = types.bool + default = false; + }; + }; + + config = mkIf cfg.enable { + services.geoclue2.enable = true; + }; +} diff --git a/modules/services/mpd.nix b/modules/services/mpd.nix index bd7d24b..c526607 100644 --- a/modules/services/mpd.nix +++ b/modules/services/mpd.nix @@ -12,21 +12,27 @@ in { default = false; }; - musicDir = mkOption { + user = mkOption { type = types.str; default = ""; + description = "Which user MPD should run on"; + }; + + musicDir = mkOption { + type = types.str; + defaultText = "$XDG_MUSIC_DIR"; }; }; config = mkIf cfg.enable { services.mpd = { enable = true; - user = "aether"; + user = cfg.user; }; home._.services.mpd = { enable = true; - musicDirectory = builtins.trace cfg.musicDir cfg.musicDir; + musicDirectory = cfg.musicDir; extraConfig = '' zeroconf_enabled "no" @@ -38,6 +44,7 @@ replaygain "track" audio_output { type "pipewire" name "PipeWire Audio Server" + server "127.0.0.1" } '' else ""); }; diff --git a/modules/shell/zsh.nix b/modules/shell/zsh.nix index 5b40830..db3c0e6 100644 --- a/modules/shell/zsh.nix +++ b/modules/shell/zsh.nix @@ -16,7 +16,7 @@ in { }; config = mkIf cfg.enable { - user.packages = with pkgs; [ nix-zsh-completions ]; +# user.packages = with pkgs; [ nix-zsh-completions ]; # home.configFile."zsh".source = "${configDir}/zsh"; diff --git a/modules/users.nix b/modules/users.nix index 596a7eb..9891f67 100644 --- a/modules/users.nix +++ b/modules/users.nix @@ -23,7 +23,7 @@ with lib; user = mkOption { type = types.attrs; default = {}; - description = "Universal system-level user configuration. Change the default username attribute and I'll change the position of your fucking cranium."; + description = "Universal system-level user configuration"; }; configDir = mkOption { type = types.path; @@ -34,6 +34,18 @@ with lib; config = { home-manager.useUserPackages = true; +/* + user = { + packages = with pkgs; [ curl ]; + extraGroups = [ "wheel" ]; + shell = {}; + home = "/home/default"; + isNormalUser = false; + isSystemUser = false; + group = ""; + }; +*/ + home._ = { home.stateVersion = config.system.stateVersion; # home.file = mkAliasDefinitions options.home.file; @@ -51,13 +63,13 @@ with lib; }; }; - users.users = mapAttrs (user: prop: { - inherit (prop) uid; - extraGroups = prop.extraGroups ++ config.user.extraGroups; - packages = prop.packages ++ config.user.packages; + users.users = mapAttrs (user: prop: /* (mkAliasDefinitions options.user) // */ { + packages = prop.packages; + extraGroups = prop.extraGroups; shell = pkgs."${config.defaultUsers."${user}".shell}"; - home = "/home/${user}/"; + home = "/home/${user}"; isNormalUser = true; + group = user; }) config.defaultUsers; home-manager.users = mapAttrs (user: prop: mkAliasDefinitions options.home._ diff --git a/packages/srb2k/default.nix b/packages/srb2k/default.nix new file mode 100644 index 0000000..808471c --- /dev/null +++ b/packages/srb2k/default.nix @@ -0,0 +1,29 @@ +{ lib +, stdenv +, SDL2 +, SDL2_mixer +, libgme +, fetchFromGitLab +, cmake +}: + +stdenv.mkDerivation rec { + pname = "srb2k"; + version = "1.3"; + + src = fetchFromGitLab { + owner = "himie"; + repo = "kart-public"; + rev = "8cd205cd2807c6a2064935c8b873972c6570e715"; + sha256 = "0"; + }; + + buldInputs = [ + SDL2 + SDL2_mixer + libgme + cmake + ]; + + cmakeFlags = [ "-march=native" ]; +}