diff --git a/.gitignore b/.gitignore index 8c31736f..f35c3402 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,3 @@ /result /result* /.direnv/ -secrets.nix -!profiles/common/nixos/secrets.nix -!profiles/kat/home/secrets.nix diff --git a/default.nix b/default.nix index b626d3de..47ca5e76 100644 --- a/default.nix +++ b/default.nix @@ -10,15 +10,18 @@ rec { defaultFile = "nixos.nix"; }; - hosts = import ./lib/hosts.nix { - inherit pkgs sources witch profiles; + users = witch.modList { modulesDir = ./users; }; + + inherit (import ./lib/hosts.nix { + inherit pkgs sources witch profiles users; inherit (deploy) target; - }; + }) + hosts targets; inherit (pkgs) lib; deploy = import ./lib/deploy.nix { inherit pkgs sources; - inherit (hosts) hosts targets; + inherit hosts targets; }; } diff --git a/hosts/athame/nixos/default.nix b/hosts/athame/nixos/default.nix index 68b59b4f..5f4a7cfc 100644 --- a/hosts/athame/nixos/default.nix +++ b/hosts/athame/nixos/default.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, profiles, ... }: +{ config, users, lib, pkgs, profiles, ... }: with lib; @@ -6,7 +6,7 @@ with lib; imports = [ ./hw.nix # profiles - profiles.kat + users.kat.server # host-specific services ./virtualhosts.nix # services diff --git a/hosts/mabon/nixos/default.nix b/hosts/mabon/nixos/default.nix index 2bfff09d..fc4d5863 100644 --- a/hosts/mabon/nixos/default.nix +++ b/hosts/mabon/nixos/default.nix @@ -1,8 +1,14 @@ -{ config, pkgs, profiles, ... }: +{ config, users, pkgs, profiles, ... }: { - imports = - [ ./hw.nix profiles.gui profiles.sway profiles.kat profiles.laptop ]; + imports = [ + ./hw.nix + profiles.gui + profiles.sway + profiles.laptop + users.kat.sway + users.kat.gui + ]; deploy.target = "mbp"; diff --git a/hosts/ostara/nixos/default.nix b/hosts/ostara/nixos/default.nix index 432f3731..59035cf5 100644 --- a/hosts/ostara/nixos/default.nix +++ b/hosts/ostara/nixos/default.nix @@ -1,7 +1,7 @@ -{ config, pkgs, profiles, ... }: +{ config, users, pkgs, profiles, ... }: { - imports = [ ./hw.nix profiles.kat profiles.laptop ]; + imports = [ ./hw.nix profiles.laptop ]; deploy.target = "slow"; diff --git a/hosts/samhain/nixos/default.nix b/hosts/samhain/nixos/default.nix index 8acb4076..5d7f63fe 100644 --- a/hosts/samhain/nixos/default.nix +++ b/hosts/samhain/nixos/default.nix @@ -1,4 +1,4 @@ -{ tf, config, pkgs, lib, profiles, sources, ... }: +{ tf, config, users, pkgs, lib, profiles, sources, ... }: with lib; @@ -11,7 +11,7 @@ in { ./hw.nix profiles.gui profiles.sway - profiles.kat + users.kat.guiFull ../../../services/zfs.nix ../../../services/restic.nix ../../../services/nginx.nix diff --git a/hosts/yule/nixos/default.nix b/hosts/yule/nixos/default.nix index c50ce63c..3c89b7d9 100644 --- a/hosts/yule/nixos/default.nix +++ b/hosts/yule/nixos/default.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, profiles, ... }: +{ config, users, pkgs, lib, profiles, ... }: with lib; @@ -13,8 +13,8 @@ with lib; ../../../services/nginx.nix profiles.gui profiles.sway - profiles.kat profiles.laptop + users.kat.guiFull ]; deploy.target = "personal"; diff --git a/lib/hosts.nix b/lib/hosts.nix index 2799c9d8..173c3aad 100644 --- a/lib/hosts.nix +++ b/lib/hosts.nix @@ -1,5 +1,5 @@ -{ pkgs, target, hostsDir ? ../hosts, profiles, pkgsPath ? ../pkgs, sources ? { } -, witch ? { } }: +{ pkgs, target, users, hostsDir ? ../hosts, profiles, pkgsPath ? ../pkgs +, sources ? { }, witch ? { } }: with pkgs.lib; @@ -27,7 +27,7 @@ rec { else { }) ]; - specialArgs = { inherit sources target profiles witch hostName; }; + specialArgs = { inherit sources target profiles witch hostName users; }; })) hostNames); targets = foldAttrs (host: hosts: [ host ] ++ hosts) [ ] (mapAttrsToList diff --git a/nixos.nix b/nixos.nix index 8b2877e5..db33e342 100644 --- a/nixos.nix +++ b/nixos.nix @@ -11,7 +11,6 @@ ./private/profile/nixos; options = { - deploy.profile.kat = lib.mkEnableOption "uhh meow"; deploy.profile.gui = lib.mkEnableOption "graphical system"; deploy.profile.sway = lib.mkEnableOption "sway wm"; deploy.profile.laptop = lib.mkEnableOption "lappytop"; @@ -43,7 +42,6 @@ (import (./private/hosts + "/${hostName}/home")); options = { - deploy.profile.kat = lib.mkEnableOption "uhh meow"; deploy.profile.gui = lib.mkEnableOption "graphical system"; deploy.profile.sway = lib.mkEnableOption "sway wm"; deploy.profile.laptop = lib.mkEnableOption "lappytop"; diff --git a/profiles/common/home.nix b/profiles/common/home.nix deleted file mode 100644 index 5bd3e36b..00000000 --- a/profiles/common/home.nix +++ /dev/null @@ -1,3 +0,0 @@ -{ ... }: - -{ } diff --git a/profiles/common/nixos.nix b/profiles/common/nixos.nix index ca504bad..a968aa2a 100644 --- a/profiles/common/nixos.nix +++ b/profiles/common/nixos.nix @@ -1,7 +1,5 @@ { config, lib, pkgs, ... }: { - imports = [ ./nixos ../../users ]; - - config = { home-manager.users.kat = { imports = [ ./home.nix ]; }; }; + imports = [ ./nixos ]; } diff --git a/profiles/common/nixos/default.nix b/profiles/common/nixos/default.nix index 253f464d..1ad1a0cf 100644 --- a/profiles/common/nixos/default.nix +++ b/profiles/common/nixos/default.nix @@ -1,7 +1,9 @@ -{ config, lib, pkgs, ... }: +{ config, users, lib, pkgs, ... }: { imports = [ + users.kat.base + users.arc ./system.nix ./net.nix ./access.nix diff --git a/profiles/common/nixos/packages.nix b/profiles/common/nixos/packages.nix index 8fcaeab5..8378ba1f 100644 --- a/profiles/common/nixos/packages.nix +++ b/profiles/common/nixos/packages.nix @@ -5,27 +5,9 @@ smartmontools hddtemp lm_sensors - htop cachix - borgbackup - ripgrep - git - nixfmt - wget - rsync - pv pinentry-curses kitty.terminfo - progress - bc - bat - zstd - file - whois - fd - exa - socat - tmux gnupg ]; } diff --git a/profiles/gui/home.nix b/profiles/gui/home.nix deleted file mode 100644 index 678658c1..00000000 --- a/profiles/gui/home.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ lib, ... }: - -{ - imports = [ ./home ]; - - deploy.profile.gui = true; -} diff --git a/profiles/gui/home/default.nix b/profiles/gui/home/default.nix deleted file mode 100644 index 250d798c..00000000 --- a/profiles/gui/home/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ ... }: - -{ - imports = [ - ./firefox - ./kitty.nix - ./packages.nix - ./gpg.nix - ./bitw.nix - ./weechat.nix - ./gtk.nix - ./music.nix - ./mpv.nix - ./syncplay.nix - ./obs.nix - ]; -} diff --git a/profiles/gui/home/packages.nix b/profiles/gui/home/packages.nix deleted file mode 100644 index 4b07c7f0..00000000 --- a/profiles/gui/home/packages.nix +++ /dev/null @@ -1,58 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - home.packages = with pkgs; [ - _1password - bitwarden - wire-desktop - element-desktop - wf-recorder - mumble-speechd - niv - feh - rink - sd - kat-scrot - duc - exiftool - audacity - avidemux - gst_all_1.gstreamer.dev - gst_all_1.gstreamer - gst_all_1.gst-plugins-base - gst_all_1.gst-plugins-good - gst_all_1.gst-plugins-bad - gst_all_1.gst-plugins-ugly - vlc - ffmpeg-full - thunderbird - youtube-dl - mkchromecast - google-chrome - v4l-utils - transmission-remote-gtk - lm_sensors - p7zip - baresip - psmisc - discord - tdesktop - yubikey-manager - pinentry.gtk2 - dino - libnotify - nextcloud-client - vegur - nitrogen - terminator - pavucontrol - gparted - scrot - gimp-with-plugins - vscode - cryptsetup - vifm - neofetch - htop - ]; -} diff --git a/profiles/gui/nixos.nix b/profiles/gui/nixos.nix index a56fddb6..17113098 100644 --- a/profiles/gui/nixos.nix +++ b/profiles/gui/nixos.nix @@ -3,7 +3,5 @@ { imports = [ ./nixos ]; - home-manager.users.kat = { imports = [ ./home.nix ]; }; - deploy.profile.gui = true; } diff --git a/profiles/gui/nixos/sound.nix b/profiles/gui/nixos/sound.nix index d8e81734..bab892e9 100644 --- a/profiles/gui/nixos/sound.nix +++ b/profiles/gui/nixos/sound.nix @@ -8,21 +8,7 @@ ''; }; - /* hardware.pulseaudio = { - enable = true; - extraConfig = "unload-module module-role-cork"; - daemon.config = { - exit-idle-time = 5; - resample-method = "speex-float-5"; - avoid-resampling = "true"; - flat-volumes = "no"; - default-sample-format = "s32le"; - default-sample-rate = 48000; - alternate-sample-rate = 44100; - default-sample-channels = 2; - }; - }; - */ + environment.systemPackages = with pkgs; [ pavucontrol ]; security.rtkit.enable = true; diff --git a/profiles/kat/home.nix b/profiles/kat/home.nix deleted file mode 100644 index 86fb62f7..00000000 --- a/profiles/kat/home.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ lib, ... }: - -{ - imports = [ ./home ]; - - deploy.profile.kat = true; -} diff --git a/profiles/kat/home/packages.nix b/profiles/kat/home/packages.nix deleted file mode 100644 index a01b9b09..00000000 --- a/profiles/kat/home/packages.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ config, lib, pkgs, ... }: - -{ - home.packages = with pkgs; [ hyperfine hexyl tokei ]; -} diff --git a/profiles/kat/home/zsh/zshrc-title b/profiles/kat/home/zsh/zshrc-title deleted file mode 100644 index eeb03e9d..00000000 --- a/profiles/kat/home/zsh/zshrc-title +++ /dev/null @@ -1,142 +0,0 @@ -function term_title { - emulate -L zsh - unsetopt prompt_subst - - [[ -t 1 ]] || return - - local TITLE="$1" - local TAB="${2-$1}" - - case "$TERM" in - cygwin|xterm*|putty*|rxvt*|ansi) - print -Pn "\e]2;$TITLE:q\a" - print -Pn "\e]1;$TAB:q\a" - ;; - screen*) - print -Pn "\ek$TITLE:q\e\\" - ;; - *) - if [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then - print -Pn "\e]2;$TITLE:q\a" - print -Pn "\e]1;$TAB:q\a" - else - if [[ -n "$terminfo[fsl]" ]] && [[ -n "$terminfo[tsl]" ]]; then - echoti tsl - print -Pn "$TITLE" - echoti fsl - fi - fi - ;; - esac -} - -function term_dir { - emulate -L zsh - - [[ -t 1 ]] || return - - local DIR="${1-$PWD}" - - if [[ "${TERM_PROGRAM-}" == "Apple_Terminal" ]]; then - local URL_PATH="$(__omz_urlencode -P "$DIR")" - [[ $? != 0 ]] && return 1 - - printf '\e]7;%s\a' "file://$HOST$URL_PATH" - fi -} - -function __arc_update_precmd { - local TERM_TITLE="%~" - local TERM_TAB="%~" - - if [[ "${TERM_PROGRAM-}" == "Apple_Terminal" ]]; then - TERM_TAB="$USER@%m" - TERM_TITLE="$TERM_TAB" - elif [[ "$USER" != "$DEFAULT_USER" || -n "${SSH_CLIENT-}" ]]; then - TERM_TAB="$USER@%m" - TERM_TITLE="$TERM_TAB - $TERM_TITLE" - fi - - term_title "$TERM_TITLE" "$TERM_TAB" -} - -function __arc_update_preexec { - emulate -L zsh - setopt extended_glob - - local TERM_TAB=${1[(wr)^(*=*|sudo|ssh|mosh|rake|-*)]:gs/%/%%} - local TERM_TITLE="${2:gs/%/%%}" - - if [[ "$USER" != "$DEFAULT_USER" || -n "${SSH_CLIENT-}" ]]; then - TERM_TAB="$USER@%m - $TERM_TAB" - TERM_TITLE="$USER@%m - $TERM_TITLE" - fi - - term_title "$TERM_TITLE" "$TERM_TAB" -} - -zmodload zsh/langinfo - -function __omz_urlencode() { - emulate -L zsh - zparseopts -D -E -a opts r m P - - local in_str=$1 - local url_str="" - local spaces_as_plus - if [[ -z $opts[(r)-P] ]]; then spaces_as_plus=1; fi - local str="$in_str" - - # URLs must use UTF-8 encoding; convert str to UTF-8 if required - local encoding=$langinfo[CODESET] - local safe_encodings - safe_encodings=(UTF-8 utf8 US-ASCII) - if [[ -z ${safe_encodings[(r)$encoding]} ]]; then - str=$(echo -E "$str" | iconv -f $encoding -t UTF-8) - if [[ $? != 0 ]]; then - echo "Error converting string from $encoding to UTF-8" >&2 - return 1 - fi - fi - - # Use LC_CTYPE=C to process text byte-by-byte - local i byte ord LC_ALL=C - export LC_ALL - local reserved=';/?:@&=+$,' - local mark='_.!~*''()-' - local dont_escape="[A-Za-z0-9" - if [[ -z $opts[(r)-r] ]]; then - dont_escape+=$reserved - fi - # $mark must be last because of the "-" - if [[ -z $opts[(r)-m] ]]; then - dont_escape+=$mark - fi - dont_escape+="]" - - # Implemented to use a single printf call and avoid subshells in the loop, - # for performance (primarily on Windows). - local url_str="" - for (( i = 1; i <= ${#str}; ++i )); do - byte="$str[i]" - if [[ "$byte" =~ "$dont_escape" ]]; then - url_str+="$byte" - else - if [[ "$byte" == " " && -n $spaces_as_plus ]]; then - url_str+="+" - else - ord=$(( [##16] #byte )) - url_str+="%$ord" - fi - fi - done - echo -E "$url_str" -} - -if [[ -z "${ARC_PROMPT_RUN-}" ]]; then - chpwd_functions+=(term_dir) - precmd_functions+=(__arc_update_precmd) - preexec_functions+=(__arc_update_preexec) - - term_dir -fi diff --git a/profiles/laptop/home.nix b/profiles/laptop/home.nix deleted file mode 100644 index 2c9b6743..00000000 --- a/profiles/laptop/home.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ lib, ... }: - -{ - deploy.profile.laptop = true; -} diff --git a/profiles/sway/home.nix b/profiles/sway/home.nix deleted file mode 100644 index f525e89f..00000000 --- a/profiles/sway/home.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ lib, ... }: - -{ - imports = [ ./home ]; - - deploy.profile.sway = true; -} diff --git a/profiles/sway/home/konawall.nix b/profiles/sway/home/konawall.nix deleted file mode 100644 index 839b8744..00000000 --- a/profiles/sway/home/konawall.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ config, ... }: - -{ - services.konawall = { - enable = true; - interval = "20m"; - }; -} diff --git a/profiles/sway/home/swayidle.nix b/profiles/sway/home/swayidle.nix deleted file mode 100644 index 2e6b777a..00000000 --- a/profiles/sway/home/swayidle.nix +++ /dev/null @@ -1,36 +0,0 @@ -{ config, pkgs, lib, ... }: - -{ - systemd.user.services.swayidle = { - Unit = { - Description = "swayidle"; - Documentation = [ "man:swayidle(1)" ]; - PartOf = [ "graphical-session.target" ]; - }; - Service = { - Type = "simple"; - ExecStart = '' - ${pkgs.swayidle}/bin/swayidle -w \ - timeout 300 '${pkgs.swaylock}/bin/swaylock -f -i LVDS-1:${ - ../../../private/files/wallpapers/main.png - } -i eDP-1:${ - ../../../private/files/wallpapers/main.png - } -i HDMI-A-1:${../../../private/files/wallpapers/main.png} -i DP-1:${ - ../../../private/files/wallpapers/left.jpg - } -i DVI-D-1:${../../../private/files/wallpapers/right.jpg}' \ - #timeout 600 'swaymsg "output * dpms off"' \ - # resume 'swaymsg "output * dpms on"' \ - before-sleep '${pkgs.swaylock}/bin/swaylock -f -i LVDS-1:${ - ../../../private/files/wallpapers/main.png - } -p eDP-1:${ - ../../../private/files/wallpapers/main.png - } -i HDMI-A-1:${../../../private/files/wallpapers/main.png} -i DP-1:${ - ../../../private/files/wallpapers/left.jpg - } -i DVI-D-1:${../../../private/files/wallpapers/right.jpg}' - ''; - RestartSec = 3; - Restart = "always"; - }; - Install = { WantedBy = [ "sway-session.target" ]; }; - }; -} diff --git a/profiles/sway/nixos.nix b/profiles/sway/nixos.nix index fa6d2dc9..41ee2514 100644 --- a/profiles/sway/nixos.nix +++ b/profiles/sway/nixos.nix @@ -3,7 +3,5 @@ { imports = [ ./nixos ]; - home-manager.users.kat = { imports = [ ./home.nix ]; }; - deploy.profile.sway = true; } diff --git a/users/default.nix b/users/default.nix deleted file mode 100644 index 5074e0ff..00000000 --- a/users/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ ... }: - -{ - imports = [ ./arc ]; -} diff --git a/users/kat/default.nix b/users/kat/default.nix new file mode 100644 index 00000000..010a09b5 --- /dev/null +++ b/users/kat/default.nix @@ -0,0 +1,11 @@ +rec { + base = ./nixos/base.nix; + gui = ./nixos/gui.nix; + sway = ./nixos/sway.nix; + dev = ./nixos/dev.nix; + media = ./nixos/media.nix; + personal = ./nixos/personal.nix; + + server = { imports = [ personal ]; }; + guiFull = { imports = [ gui sway dev media personal ]; }; +} diff --git a/profiles/kat/home/base16.nix b/users/kat/home/base/base16.nix similarity index 100% rename from profiles/kat/home/base16.nix rename to users/kat/home/base/base16.nix diff --git a/profiles/kat/home/default.nix b/users/kat/home/base/default.nix similarity index 85% rename from profiles/kat/home/default.nix rename to users/kat/home/base/default.nix index 25c0c6a0..49f8715a 100644 --- a/profiles/kat/home/default.nix +++ b/users/kat/home/base/default.nix @@ -2,12 +2,11 @@ { imports = [ - ./zsh ./vim + ./zsh.nix ./git.nix ./kitty.nix ./tmux.nix - ./secrets.nix ./base16.nix ./xdg.nix ./ssh.nix diff --git a/profiles/kat/home/git.nix b/users/kat/home/base/git.nix similarity index 100% rename from profiles/kat/home/git.nix rename to users/kat/home/base/git.nix diff --git a/profiles/kat/home/kitty.nix b/users/kat/home/base/kitty.nix similarity index 100% rename from profiles/kat/home/kitty.nix rename to users/kat/home/base/kitty.nix diff --git a/users/kat/home/base/packages.nix b/users/kat/home/base/packages.nix new file mode 100644 index 00000000..761b44de --- /dev/null +++ b/users/kat/home/base/packages.nix @@ -0,0 +1,28 @@ +{ config, lib, pkgs, ... }: + +{ + home.packages = with pkgs; [ + htop + fd + sd + duc + bat + exa + fd + socat + rsync + wget + ripgrep + nixfmt + pv + progress + zstd + file + whois + niv + dnsutils + rink + borgbackup + neofetch + ]; +} diff --git a/profiles/kat/home/ssh.nix b/users/kat/home/base/ssh.nix similarity index 100% rename from profiles/kat/home/ssh.nix rename to users/kat/home/base/ssh.nix diff --git a/profiles/kat/home/tmux.nix b/users/kat/home/base/tmux.nix similarity index 100% rename from profiles/kat/home/tmux.nix rename to users/kat/home/base/tmux.nix diff --git a/profiles/kat/home/vim/default.nix b/users/kat/home/base/vim/default.nix similarity index 100% rename from profiles/kat/home/vim/default.nix rename to users/kat/home/base/vim/default.nix diff --git a/profiles/kat/home/vim/vimrc.nix b/users/kat/home/base/vim/vimrc.nix similarity index 100% rename from profiles/kat/home/vim/vimrc.nix rename to users/kat/home/base/vim/vimrc.nix diff --git a/profiles/kat/home/weechat.nix b/users/kat/home/base/weechat.nix similarity index 100% rename from profiles/kat/home/weechat.nix rename to users/kat/home/base/weechat.nix diff --git a/profiles/kat/home/xdg.nix b/users/kat/home/base/xdg.nix similarity index 100% rename from profiles/kat/home/xdg.nix rename to users/kat/home/base/xdg.nix diff --git a/profiles/kat/home/zsh/default.nix b/users/kat/home/base/zsh.nix similarity index 92% rename from profiles/kat/home/zsh/default.nix rename to users/kat/home/base/zsh.nix index 3fb0aa0b..93ee8fd3 100644 --- a/profiles/kat/home/zsh/default.nix +++ b/users/kat/home/base/zsh.nix @@ -15,6 +15,7 @@ lla = "exa -lga"; }; initExtra = '' + genmac() { nix run nixpkgs.openssl -c openssl rand -hex 6 | sed 's/\(..\)\(..\)\(..\)\(..\)\(..\)\(..\)/\1:\2:\3:\4:\5:\6/' } nano() { echo "baps you for being naughty, use vim" } ''; localVariables = { diff --git a/users/kat/home/default.nix b/users/kat/home/default.nix new file mode 100644 index 00000000..d2753eb8 --- /dev/null +++ b/users/kat/home/default.nix @@ -0,0 +1,5 @@ +rec { + base = ./base; + sway = ./sway; + gui = ./gui; +} diff --git a/users/kat/home/dev/default.nix b/users/kat/home/dev/default.nix new file mode 100644 index 00000000..cd29f694 --- /dev/null +++ b/users/kat/home/dev/default.nix @@ -0,0 +1,5 @@ +{ config, lib, pkgs, ... }: + +{ + imports = [ ./packages.nix ]; +} diff --git a/users/kat/home/dev/packages.nix b/users/kat/home/dev/packages.nix new file mode 100644 index 00000000..ce72a4a8 --- /dev/null +++ b/users/kat/home/dev/packages.nix @@ -0,0 +1,5 @@ +{ config, pkgs, ... }: + +{ + home.packages = with pkgs; [ hyperfine hexyl tokei horizon-eda ]; +} diff --git a/users/kat/home/gui/default.nix b/users/kat/home/gui/default.nix new file mode 100644 index 00000000..36ce2f25 --- /dev/null +++ b/users/kat/home/gui/default.nix @@ -0,0 +1,7 @@ +{ ... }: + +{ + deploy.profile.gui = true; + + imports = [ ./firefox ./kitty.nix ./packages.nix ./weechat.nix ./gtk.nix ]; +} diff --git a/profiles/gui/home/firefox/default.nix b/users/kat/home/gui/firefox/default.nix similarity index 100% rename from profiles/gui/home/firefox/default.nix rename to users/kat/home/gui/firefox/default.nix diff --git a/profiles/gui/home/firefox/tridactylrc b/users/kat/home/gui/firefox/tridactylrc similarity index 100% rename from profiles/gui/home/firefox/tridactylrc rename to users/kat/home/gui/firefox/tridactylrc diff --git a/profiles/gui/home/firefox/userChrome.css.nix b/users/kat/home/gui/firefox/userChrome.css.nix similarity index 100% rename from profiles/gui/home/firefox/userChrome.css.nix rename to users/kat/home/gui/firefox/userChrome.css.nix diff --git a/profiles/gui/home/gtk.nix b/users/kat/home/gui/gtk.nix similarity index 100% rename from profiles/gui/home/gtk.nix rename to users/kat/home/gui/gtk.nix diff --git a/profiles/gui/home/kitty.nix b/users/kat/home/gui/kitty.nix similarity index 100% rename from profiles/gui/home/kitty.nix rename to users/kat/home/gui/kitty.nix diff --git a/users/kat/home/gui/packages.nix b/users/kat/home/gui/packages.nix new file mode 100644 index 00000000..2c1bc111 --- /dev/null +++ b/users/kat/home/gui/packages.nix @@ -0,0 +1,25 @@ +{ config, lib, pkgs, ... }: + +{ + home.packages = with pkgs; [ + _1password + bitwarden + wire-desktop + element-desktop + exiftool + thunderbird + google-chrome + transmission-remote-gtk + lm_sensors + p7zip + zip + unzip + baresip + discord + tdesktop + yubikey-manager + vegur + gparted + cryptsetup + ]; +} diff --git a/profiles/gui/home/weechat.nix b/users/kat/home/gui/weechat.nix similarity index 94% rename from profiles/gui/home/weechat.nix rename to users/kat/home/gui/weechat.nix index 7bb9ad83..9d14b5e4 100644 --- a/profiles/gui/home/weechat.nix +++ b/users/kat/home/gui/weechat.nix @@ -3,7 +3,7 @@ { home.file = { ".local/share/weechat/sec.conf" = lib.mkIf config.deploy.profile.private { - source = ../../../private/files/weechat/sec.conf; + source = ../../../../private/files/weechat/sec.conf; }; }; programs.weechat = { diff --git a/users/kat/home/media/beets.nix b/users/kat/home/media/beets.nix new file mode 100644 index 00000000..13203be3 --- /dev/null +++ b/users/kat/home/media/beets.nix @@ -0,0 +1,18 @@ +{ config, pkgs, lib, ... }: + +{ + programs.beets = { + enable = true; + package = pkgs.beets; + settings = { + directory = "~/media-share/music"; + library = "~/.local/share/beets.db"; + plugins = lib.concatStringsSep " " [ + "mpdstats" + "mpdupdate" + "duplicates" + "chroma" + ]; + }; + }; +} diff --git a/users/kat/home/media/default.nix b/users/kat/home/media/default.nix new file mode 100644 index 00000000..9bf2a65f --- /dev/null +++ b/users/kat/home/media/default.nix @@ -0,0 +1,13 @@ +{ ... }: + +{ + imports = [ + ./mpv.nix + ./obs.nix + ./syncplay.nix + ./beets.nix + ./mpd.nix + ./ncmpcpp.nix + ./packages.nix + ]; +} diff --git a/users/kat/home/media/mpd.nix b/users/kat/home/media/mpd.nix new file mode 100644 index 00000000..c4356ed4 --- /dev/null +++ b/users/kat/home/media/mpd.nix @@ -0,0 +1,38 @@ +{ config, pkgs, ... }: + +{ + services.mpd = { + enable = true; + package = pkgs.mpd-youtube-dl; + network.startWhenNeeded = true; + musicDirectory = "/home/kat/media-share/music"; + extraConfig = '' + max_output_buffer_size "32768" + + audio_output { + type "fifo" + name "my_fifo" + path "/tmp/mpd.fifo" + format "44100:16:2" + } + + audio_output { + type "pulse" + name "speaker" + } + + + audio_output { + type "httpd" + name "httpd-high" + encoder "opus" + bitrate "96000" + port "32101" + max_clients "4" + format "48000:16:2" + always_on "yes" + tags "yes" + } + ''; + }; +} diff --git a/profiles/gui/home/mpv.nix b/users/kat/home/media/mpv.nix similarity index 100% rename from profiles/gui/home/mpv.nix rename to users/kat/home/media/mpv.nix diff --git a/profiles/gui/home/music.nix b/users/kat/home/media/ncmpcpp.nix similarity index 55% rename from profiles/gui/home/music.nix rename to users/kat/home/media/ncmpcpp.nix index 349ead8c..33b61603 100644 --- a/profiles/gui/home/music.nix +++ b/users/kat/home/media/ncmpcpp.nix @@ -1,4 +1,4 @@ -{ config, lib, pkgs, ... }: +{ config, ... }: { programs.ncmpcpp = { @@ -49,52 +49,4 @@ } ]; }; - programs.beets = { - enable = true; - package = pkgs.beets; - settings = { - directory = "~/media-share/music"; - library = "~/.local/share/beets.db"; - plugins = lib.concatStringsSep " " [ - "mpdstats" - "mpdupdate" - "duplicates" - "chroma" - ]; - }; - }; - services.mpd = { - enable = true; - package = pkgs.mpd-youtube-dl; - network.startWhenNeeded = true; - musicDirectory = "/home/kat/media-share/music"; - extraConfig = '' - max_output_buffer_size "32768" - - audio_output { - type "fifo" - name "my_fifo" - path "/tmp/mpd.fifo" - format "44100:16:2" - } - - audio_output { - type "pulse" - name "speaker" - } - - - audio_output { - type "httpd" - name "httpd-high" - encoder "opus" - bitrate "96000" - port "32101" - max_clients "4" - format "48000:16:2" - always_on "yes" - tags "yes" - } - ''; - }; } diff --git a/profiles/gui/home/obs.nix b/users/kat/home/media/obs.nix similarity index 100% rename from profiles/gui/home/obs.nix rename to users/kat/home/media/obs.nix diff --git a/users/kat/home/media/packages.nix b/users/kat/home/media/packages.nix new file mode 100644 index 00000000..346904c1 --- /dev/null +++ b/users/kat/home/media/packages.nix @@ -0,0 +1,21 @@ +{ config, pkgs, ... }: + +{ + home.packages = with pkgs; [ + audacity + avidemux + gst_all_1.gstreamer.dev + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + gst_all_1.gst-plugins-good + gst_all_1.gst-plugins-bad + gst_all_1.gst-plugins-ugly + vlc + ffmpeg-full + youtube-dl + mkchromecast + v4l-utils + gimp-with-plugins + wf-recorder + ]; +} diff --git a/profiles/gui/home/syncplay.nix b/users/kat/home/media/syncplay.nix similarity index 100% rename from profiles/gui/home/syncplay.nix rename to users/kat/home/media/syncplay.nix diff --git a/profiles/gui/home/bitw.nix b/users/kat/home/personal/bitw.nix similarity index 100% rename from profiles/gui/home/bitw.nix rename to users/kat/home/personal/bitw.nix diff --git a/users/kat/home/personal/default.nix b/users/kat/home/personal/default.nix new file mode 100644 index 00000000..484baa53 --- /dev/null +++ b/users/kat/home/personal/default.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + imports = [ ./secrets.nix ./bitw.nix ./gpg.nix ./packages.nix ]; +} diff --git a/profiles/gui/home/gpg.nix b/users/kat/home/personal/gpg.nix similarity index 100% rename from profiles/gui/home/gpg.nix rename to users/kat/home/personal/gpg.nix diff --git a/users/kat/home/personal/packages.nix b/users/kat/home/personal/packages.nix new file mode 100644 index 00000000..c3b8edec --- /dev/null +++ b/users/kat/home/personal/packages.nix @@ -0,0 +1,5 @@ +{ config, pkgs, ... }: + +{ + home.packages = with pkgs; [ pinentry.gtk2 ]; +} diff --git a/profiles/kat/home/secrets.nix b/users/kat/home/personal/secrets.nix similarity index 100% rename from profiles/kat/home/secrets.nix rename to users/kat/home/personal/secrets.nix diff --git a/profiles/sway/home/default.nix b/users/kat/home/sway/default.nix similarity index 74% rename from profiles/sway/home/default.nix rename to users/kat/home/sway/default.nix index f53352df..61a425d6 100644 --- a/profiles/sway/home/default.nix +++ b/users/kat/home/sway/default.nix @@ -1,6 +1,8 @@ { config, pkgs, ... }: { + deploy.profile.sway = true; + imports = [ ./waybar ./mako.nix @@ -8,5 +10,6 @@ ./swayidle.nix ./gammastep.nix ./konawall.nix + ./packages.nix ]; } diff --git a/profiles/sway/home/gammastep.nix b/users/kat/home/sway/gammastep.nix similarity index 100% rename from profiles/sway/home/gammastep.nix rename to users/kat/home/sway/gammastep.nix diff --git a/users/kat/home/sway/konawall.nix b/users/kat/home/sway/konawall.nix new file mode 100644 index 00000000..49434241 --- /dev/null +++ b/users/kat/home/sway/konawall.nix @@ -0,0 +1,5 @@ +{ config, ... }: + +{ + services.konawall = { enable = true; }; +} diff --git a/profiles/sway/home/mako.nix b/users/kat/home/sway/mako.nix similarity index 100% rename from profiles/sway/home/mako.nix rename to users/kat/home/sway/mako.nix diff --git a/users/kat/home/sway/packages.nix b/users/kat/home/sway/packages.nix new file mode 100644 index 00000000..a4fabfaf --- /dev/null +++ b/users/kat/home/sway/packages.nix @@ -0,0 +1,5 @@ +{ config, pkgs, ... }: + +{ + home.packages = with pkgs; [ kat-scrot ]; +} diff --git a/profiles/sway/home/sway.nix b/users/kat/home/sway/sway.nix similarity index 95% rename from profiles/sway/home/sway.nix rename to users/kat/home/sway/sway.nix index 56773cd8..1e8c8834 100644 --- a/profiles/sway/home/sway.nix +++ b/users/kat/home/sway/sway.nix @@ -77,13 +77,11 @@ in { config = let dmenu = "${pkgs.bemenu}/bin/bemenu --fn '${witch.style.font.name} ${witch.style.font.size}' --nb '${witch.style.base16.base00}' --nf '${witch.style.base16.base07}' --sb '${witch.style.base16.base01}' --sf '${witch.style.base16.base07}' -l 5 -m -1 -i"; - lockCommand = "swaylock -i LVDS-1:${ - ../../../private/files/wallpapers/main.png - }-i eDP-1:${../../../private/files/wallpapers/main.png} -i HDMI-A-1:${ - ../../../private/files/wallpapers/main.png - } -i DP-1:${../../../private/files/wallpapers/left.jpg} -i DVI-D-1:${ - ../../../private/files/wallpapers/right.jpg - } -s fill"; + lockCommand = "swaylock -i LVDS-1:${./wallpapers/main.png}-i eDP-1:${ + ./wallpapers/main.png + } -i HDMI-A-1:${./wallpapers/main.png} -i DP-1:${ + ./wallpapers/left.jpg + } -i DVI-D-1:${./wallpapers/right.jpg} -s fill"; in { bars = [{ command = "${pkgs.waybar}/bin/waybar"; }]; diff --git a/users/kat/home/sway/swayidle.nix b/users/kat/home/sway/swayidle.nix new file mode 100644 index 00000000..e53aa5fd --- /dev/null +++ b/users/kat/home/sway/swayidle.nix @@ -0,0 +1,36 @@ +{ config, pkgs, lib, ... }: + +{ + systemd.user.services.swayidle = { + Unit = { + Description = "swayidle"; + Documentation = [ "man:swayidle(1)" ]; + PartOf = [ "graphical-session.target" ]; + }; + Service = { + Type = "simple"; + ExecStart = '' + ${pkgs.swayidle}/bin/swayidle -w \ + timeout 300 '${pkgs.swaylock}/bin/swaylock -f -i LVDS-1:${ + ./wallpapers/main.png + } -i eDP-1:${./wallpapers/main.png} -i HDMI-A-1:${ + ./wallpapers/main.png + } -i DP-1:${./wallpapers/left.jpg} -i DVI-D-1:${ + ./wallpapers/right.jpg + }' \ + timeout 600 'swaymsg "output * dpms off"' \ + resume 'swaymsg "output * dpms on"' \ + before-sleep '${pkgs.swaylock}/bin/swaylock -f -i LVDS-1:${ + ./wallpapers/main.png + } -p eDP-1:${./wallpapers/main.png} -i HDMI-A-1:${ + ./wallpapers/main.png + } -i DP-1:${./wallpapers/left.jpg} -i DVI-D-1:${ + ./wallpapers/right.jpg + }' + ''; + RestartSec = 3; + Restart = "always"; + }; + Install = { WantedBy = [ "sway-session.target" ]; }; + }; +} diff --git a/users/kat/home/sway/wallpapers/left.jpg b/users/kat/home/sway/wallpapers/left.jpg new file mode 100644 index 00000000..f519c4d4 Binary files /dev/null and b/users/kat/home/sway/wallpapers/left.jpg differ diff --git a/users/kat/home/sway/wallpapers/main.png b/users/kat/home/sway/wallpapers/main.png new file mode 100644 index 00000000..67649a5f Binary files /dev/null and b/users/kat/home/sway/wallpapers/main.png differ diff --git a/users/kat/home/sway/wallpapers/right.jpg b/users/kat/home/sway/wallpapers/right.jpg new file mode 100644 index 00000000..9ab53754 Binary files /dev/null and b/users/kat/home/sway/wallpapers/right.jpg differ diff --git a/profiles/sway/home/waybar/default.nix b/users/kat/home/sway/waybar/default.nix similarity index 100% rename from profiles/sway/home/waybar/default.nix rename to users/kat/home/sway/waybar/default.nix diff --git a/profiles/sway/home/waybar/waybar.css.nix b/users/kat/home/sway/waybar/waybar.css.nix similarity index 100% rename from profiles/sway/home/waybar/waybar.css.nix rename to users/kat/home/sway/waybar/waybar.css.nix diff --git a/profiles/kat/nixos.nix b/users/kat/nixos/base.nix similarity index 89% rename from profiles/kat/nixos.nix rename to users/kat/nixos/base.nix index 42500e31..d1e8d297 100644 --- a/profiles/kat/nixos.nix +++ b/users/kat/nixos/base.nix @@ -1,11 +1,7 @@ { config, pkgs, lib, ... }: { - home-manager.users.kat = { imports = [ ./home.nix ]; }; - - deploy.profile.kat = true; - - users.groups = { uinput = { }; }; + home-manager.users.kat = { imports = [ ../home/base ]; }; users.users.kat = { uid = 1000; diff --git a/users/kat/nixos/dev.nix b/users/kat/nixos/dev.nix new file mode 100644 index 00000000..d8ce54ab --- /dev/null +++ b/users/kat/nixos/dev.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + home-manager.users.kat = { imports = [ ../home/dev ]; }; +} diff --git a/users/kat/nixos/gui.nix b/users/kat/nixos/gui.nix new file mode 100644 index 00000000..7d5fb802 --- /dev/null +++ b/users/kat/nixos/gui.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + home-manager.users.kat = { imports = [ ../home/gui ]; }; +} diff --git a/users/kat/nixos/media.nix b/users/kat/nixos/media.nix new file mode 100644 index 00000000..fbabc67d --- /dev/null +++ b/users/kat/nixos/media.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + home-manager.users.kat = { imports = [ ../home/media ]; }; +} diff --git a/users/kat/nixos/personal.nix b/users/kat/nixos/personal.nix new file mode 100644 index 00000000..f4bef3de --- /dev/null +++ b/users/kat/nixos/personal.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + home-manager.users.kat = { imports = [ ../home/personal ]; }; +} diff --git a/users/kat/nixos/sway.nix b/users/kat/nixos/sway.nix new file mode 100644 index 00000000..b88ad26f --- /dev/null +++ b/users/kat/nixos/sway.nix @@ -0,0 +1,5 @@ +{ ... }: + +{ + home-manager.users.kat = { imports = [ ../home/sway ]; }; +}