aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Nipper <nipsy@bitgnome.net>2024-03-31 02:40:11 -0700
committerMark Nipper <nipsy@bitgnome.net>2024-03-31 02:40:11 -0700
commit76b3b07e7329be637b37f92e767595143d3b03fa (patch)
treeff674a9bc8d8e1cdba94cb0d1c13de28b75c1e74
parent04fd53819ffce3e1275ec48bcdf71769414fdea1 (diff)
downloadnix-76b3b07e7329be637b37f92e767595143d3b03fa.tar
nix-76b3b07e7329be637b37f92e767595143d3b03fa.tar.gz
nix-76b3b07e7329be637b37f92e767595143d3b03fa.tar.bz2
nix-76b3b07e7329be637b37f92e767595143d3b03fa.tar.lz
nix-76b3b07e7329be637b37f92e767595143d3b03fa.tar.xz
nix-76b3b07e7329be637b37f92e767595143d3b03fa.tar.zst
nix-76b3b07e7329be637b37f92e767595143d3b03fa.zip
Migrate to more modular layout
-rw-r--r--README (renamed from ginaz/README)0
-rw-r--r--flake.lock81
-rw-r--r--flake.nix70
-rw-r--r--ginaz/flake.lock48
-rw-r--r--ginaz/flake.nix23
-rw-r--r--home/nipsy/common/core/bash.nix10
-rw-r--r--home/nipsy/common/core/default.nix63
-rw-r--r--home/nipsy/common/core/fonts.nix9
-rw-r--r--home/nipsy/common/core/git.nix8
-rw-r--r--home/nipsy/common/core/ssh.nix5
-rw-r--r--home/nipsy/common/core/tmux/default.nix6
-rw-r--r--home/nipsy/common/core/tmux/tmux.conf34
-rw-r--r--home/nipsy/common/core/vim/default.nix6
-rw-r--r--home/nipsy/common/core/vim/vimrc46
-rw-r--r--home/nipsy/common/core/zsh/default.nix10
-rw-r--r--home/nipsy/common/core/zsh/zshrc (renamed from ginaz/home.nix)124
-rw-r--r--home/nipsy/common/optional/desktops/default.nix7
-rw-r--r--home/nipsy/common/optional/desktops/gtk.nix7
-rw-r--r--home/nipsy/common/optional/desktops/i3/config228
-rw-r--r--home/nipsy/common/optional/desktops/i3/default.nix10
-rw-r--r--home/nipsy/common/optional/desktops/services/dunst.nix11
-rw-r--r--home/nipsy/ginaz.nix7
-rw-r--r--hosts/common/core/default.nix21
-rw-r--r--hosts/common/core/locale.nix5
-rw-r--r--hosts/common/core/nix.nix30
-rw-r--r--hosts/common/core/shells.nix8
-rw-r--r--hosts/common/core/zsh.nix6
-rw-r--r--hosts/common/optional/google-authenticator.nix23
-rw-r--r--hosts/common/optional/pipewire.nix24
-rw-r--r--hosts/common/optional/services/openssh.nix11
-rw-r--r--hosts/common/optional/services/xorg.nix21
-rw-r--r--hosts/common/optional/zfs.nix6
-rw-r--r--hosts/common/users/nipsy/default.nix31
-rw-r--r--hosts/common/users/nipsy/keys/id_arrakis.pub1
-rw-r--r--hosts/common/users/root/default.nix10
-rw-r--r--hosts/ginaz/default.nix (renamed from ginaz/configuration.nix)135
-rw-r--r--hosts/ginaz/hardware-configuration.nix (renamed from ginaz/hardware-configuration.nix)3
-rw-r--r--modules/home-manager/default.nix6
-rw-r--r--modules/nixos/default.nix6
-rw-r--r--overlays/default.nix26
-rw-r--r--pkgs/default.nix5
-rw-r--r--pkgs/sdrconnect/default.nix (renamed from sdrconnect.nix)17
42 files changed, 903 insertions, 305 deletions
diff --git a/ginaz/README b/README
index 4384a3b..4384a3b 100644
--- a/ginaz/README
+++ b/README
diff --git a/flake.lock b/flake.lock
new file mode 100644
index 0000000..c89237a
--- /dev/null
+++ b/flake.lock
@@ -0,0 +1,81 @@
+{
+ "nodes": {
+ "hardware": {
+ "locked": {
+ "lastModified": 1711352745,
+ "narHash": "sha256-luvqik+i3HTvCbXQZgB6uggvEcxI9uae0nmrgtXJ17U=",
+ "owner": "nixos",
+ "repo": "nixos-hardware",
+ "rev": "9a763a7acc4cfbb8603bb0231fec3eda864f81c0",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "repo": "nixos-hardware",
+ "type": "github"
+ }
+ },
+ "home-manager": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1711868868,
+ "narHash": "sha256-QpZanlbVu6Gb2K96u3vgu0F2BvZD74+fOsIFWcYEXoY=",
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "rev": "30f2ec39519f4f5a8a96af808c439e730c15aeab",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nix-community",
+ "repo": "home-manager",
+ "type": "github"
+ }
+ },
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1711873298,
+ "narHash": "sha256-m/zqoQqZDIdbBTfuyrzUrhK1rrnoe8x73V0bKK0jVKM=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "599937e03ee0306ee68ae6c1949b85aecfa6aaba",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "release-23.11",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "nixpkgs-unstable": {
+ "locked": {
+ "lastModified": 1711703276,
+ "narHash": "sha256-iMUFArF0WCatKK6RzfUJknjem0H9m4KgorO/p3Dopkk=",
+ "owner": "NixOS",
+ "repo": "nixpkgs",
+ "rev": "d8fe5e6c92d0d190646fb9f1056741a229980089",
+ "type": "github"
+ },
+ "original": {
+ "owner": "NixOS",
+ "ref": "nixos-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "hardware": "hardware",
+ "home-manager": "home-manager",
+ "nixpkgs": "nixpkgs",
+ "nixpkgs-unstable": "nixpkgs-unstable"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..719b19a
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,70 @@
+{
+ description = "nipsy's NixOS configuration";
+
+ inputs = {
+ hardware.url = "github:nixos/nixos-hardware";
+
+ home-manager = {
+ url = "github:nix-community/home-manager";
+ inputs.nixpkgs.follows = "nixpkgs";
+ };
+
+ nixpkgs.url = "github:NixOS/nixpkgs/release-23.11";
+ nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
+ };
+
+ outputs = { self, nixpkgs, nixpkgs-unstable, home-manager, ... } @ inputs:
+ let
+ inherit (self) outputs;
+ lib = nixpkgs.lib // home-manager.lib;
+ systems = [
+ "x86_64-linux"
+ # "aarch64-linux"
+ # "x86_64-darwin"
+ #"aarch64-darwin"
+ # "i686-linux"
+ ];
+ forEachSystem = f: lib.genAttrs systems (system: f pkgsFor.${system});
+ pkgsFor = lib.genAttrs systems (system: import nixpkgs {
+ inherit system;
+ config.allowUnfree = true;
+ });
+ in
+ {
+ inherit lib;
+
+ # Custom modules to enable special functionality for nixos or home-manager oriented configs.
+ nixosModules = import ./modules/nixos;
+ homeManagerModules = import ./modules/home-manager;
+
+ # Custom modifications/overrides to upstream packages.
+ overlays = import ./overlays { inherit inputs outputs; };
+
+ # Your custom packages meant to be shared or upstreamed.
+ # Accessible through 'nix build', 'nix shell', etc
+ packages = forEachSystem (pkgs: import ./pkgs { inherit pkgs; });
+
+ # nixos-rebuild switch --flake .#hostname'
+ nixosConfigurations = {
+ ginaz = nixpkgs-unstable.lib.nixosSystem rec {
+ system = "x86_64-linux";
+ modules = [
+ {
+ nixpkgs.config.pkgs = import nixpkgs-unstable { inherit system; };
+ }
+ ./hosts/ginaz
+ ];
+ specialArgs = { inherit inputs outputs; };
+ };
+ };
+
+ # home-manager switch --flake .#primary-username@hostname'
+ homeConfigurations = {
+ "nipsy@ginaz" = lib.homeManagerConfiguration {
+ modules = [ ./home/nipsy/ginaz.nix ];
+ pkgs = pkgsFor.x86_64-linux;
+ extraSpecialArgs = { inherit inputs outputs; };
+ };
+ };
+ };
+}
diff --git a/ginaz/flake.lock b/ginaz/flake.lock
deleted file mode 100644
index 021cb88..0000000
--- a/ginaz/flake.lock
+++ /dev/null
@@ -1,48 +0,0 @@
-{
- "nodes": {
- "home-manager": {
- "inputs": {
- "nixpkgs": [
- "nixpkgs"
- ]
- },
- "locked": {
- "lastModified": 1710401383,
- "narHash": "sha256-jskq7uDpKXrRoY4hDpNqykmSSKHUXYlo7ZFc/se7fus=",
- "owner": "nix-community",
- "repo": "home-manager",
- "rev": "1ab3cec3a1bbb065b2d52b913d1431366028d5b5",
- "type": "github"
- },
- "original": {
- "owner": "nix-community",
- "repo": "home-manager",
- "type": "github"
- }
- },
- "nixpkgs": {
- "locked": {
- "lastModified": 1710272261,
- "narHash": "sha256-g0bDwXFmTE7uGDOs9HcJsfLFhH7fOsASbAuOzDC+fhQ=",
- "owner": "NixOS",
- "repo": "nixpkgs",
- "rev": "0ad13a6833440b8e238947e47bea7f11071dc2b2",
- "type": "github"
- },
- "original": {
- "owner": "NixOS",
- "ref": "nixos-unstable",
- "repo": "nixpkgs",
- "type": "github"
- }
- },
- "root": {
- "inputs": {
- "home-manager": "home-manager",
- "nixpkgs": "nixpkgs"
- }
- }
- },
- "root": "root",
- "version": 7
-}
diff --git a/ginaz/flake.nix b/ginaz/flake.nix
deleted file mode 100644
index b60a38a..0000000
--- a/ginaz/flake.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- description = "nipsy's NixOS configuration";
-
- inputs = {
- nixpkgs.url = github:NixOS/nixpkgs/nixos-unstable;
- home-manager.url = "github:nix-community/home-manager";
- home-manager.inputs.nixpkgs.follows = "nixpkgs";
- };
-
- outputs = inputs@{ nixpkgs, home-manager, ... }: {
- nixosConfigurations.ginaz = nixpkgs.lib.nixosSystem {
- system = "x86_64-linux";
- modules = [
- ./configuration.nix
- home-manager.nixosModules.home-manager {
- home-manager.useGlobalPkgs = true;
- #home-manager.useUserPackages = true;
- home-manager.users.nipsy = import ./home.nix;
- }
- ];
- };
- };
-}
diff --git a/home/nipsy/common/core/bash.nix b/home/nipsy/common/core/bash.nix
new file mode 100644
index 0000000..77f0cf4
--- /dev/null
+++ b/home/nipsy/common/core/bash.nix
@@ -0,0 +1,10 @@
+{
+ programs.bash = {
+ enable = true;
+ enableCompletion = true;
+ shellAliases = {
+ ll = "ls -alF --color=auto";
+ la = "ls -aF --color=auto";
+ };
+ };
+}
diff --git a/home/nipsy/common/core/default.nix b/home/nipsy/common/core/default.nix
new file mode 100644
index 0000000..6903d90
--- /dev/null
+++ b/home/nipsy/common/core/default.nix
@@ -0,0 +1,63 @@
+{ config, lib, pkgs, outputs, ... }:
+{
+ imports = [
+ ./bash.nix
+ ./fonts.nix
+ ./git.nix
+ ./ssh.nix
+ ./tmux
+ ./vim
+ ./zsh
+ ] ++ (builtins.attrValues outputs.homeManagerModules);
+
+ home = {
+ username = lib.mkDefault "nipsy";
+ homeDirectory = lib.mkDefault "/home/${config.home.username}";
+ stateVersion = lib.mkDefault "23.11";
+ };
+
+ home.packages = builtins.attrValues {
+ inherit (pkgs)
+
+ borgbackup
+ btop
+ coreutils
+ eza
+ fd
+ findutils
+ fzf
+ jq
+ nix-tree
+ ncdu
+ pciutils
+ pfetch
+ pre-commit
+ p7zip
+ ripgrep
+ usbutils
+ tree
+ unzip
+ unrar
+ wget
+ zip;
+ };
+
+ nixpkgs = {
+ overlays = builtins.attrValues outputs.overlays;
+ config = {
+ allowUnfree = true;
+ # Workaround for https://github.com/nix-community/home-manager/issues/2942
+ allowUnfreePredicate = (_: true);
+ };
+ };
+
+ nix = {
+ package = lib.mkDefault pkgs.nix;
+ settings = {
+ experimental-features = [ "nix-command" "flakes" "repl-flake" ];
+ warn-dirty = false;
+ };
+ };
+
+ programs.home-manager.enable = true;
+}
diff --git a/home/nipsy/common/core/fonts.nix b/home/nipsy/common/core/fonts.nix
new file mode 100644
index 0000000..9ed0753
--- /dev/null
+++ b/home/nipsy/common/core/fonts.nix
@@ -0,0 +1,9 @@
+{ pkgs, ... }:
+{
+ fonts.fontconfig.enable = true;
+ home.packages = [
+ pkgs.noto-fonts
+ pkgs.nerdfonts
+ ];
+
+}
diff --git a/home/nipsy/common/core/git.nix b/home/nipsy/common/core/git.nix
new file mode 100644
index 0000000..d8bc6cf
--- /dev/null
+++ b/home/nipsy/common/core/git.nix
@@ -0,0 +1,8 @@
+{
+ programs.git = {
+ enable = true;
+ userEmail = "nipsy@bitgnome.net";
+ userName = "Mark Nipper";
+ extraConfig.pull.rebase = true;
+ };
+}
diff --git a/home/nipsy/common/core/ssh.nix b/home/nipsy/common/core/ssh.nix
new file mode 100644
index 0000000..929cc51
--- /dev/null
+++ b/home/nipsy/common/core/ssh.nix
@@ -0,0 +1,5 @@
+{
+ programs.ssh = {
+ enable = true;
+ };
+}
diff --git a/home/nipsy/common/core/tmux/default.nix b/home/nipsy/common/core/tmux/default.nix
new file mode 100644
index 0000000..e7873f8
--- /dev/null
+++ b/home/nipsy/common/core/tmux/default.nix
@@ -0,0 +1,6 @@
+{
+ programs.tmux = {
+ enable = true;
+ extraConfig = (builtins.readFile ./tmux.conf);
+ };
+}
diff --git a/home/nipsy/common/core/tmux/tmux.conf b/home/nipsy/common/core/tmux/tmux.conf
new file mode 100644
index 0000000..ae43d03
--- /dev/null
+++ b/home/nipsy/common/core/tmux/tmux.conf
@@ -0,0 +1,34 @@
+#set-option -ga terminal-overrides ",st-256color:Tc"
+set -as terminal-features ",foot*:RGB"
+set -as terminal-features ",st-256color:RGB"
+set -ga monitor-bell on
+set -g history-limit 100000
+set -g bell-action any
+#set -g bell-on-alert on
+
+set -s escape-time 0
+
+setw -g aggressive-resize on
+setw -g wrap-search off
+
+bind-key a send-prefix
+bind-key k kill-session
+bind-key H pipe-pane -o 'cat >> ~/.tmux.log.#h-#S-#I-#P'
+
+#bind-key m \
+# set -g mouse on \;\
+# display 'Mouse: ON'
+#bind M \
+# set -g mouse off \;\
+# display 'Mouse: OFF'
+
+# vim-like copypaste mode
+set-window-option -g mode-keys vi
+bind-key -T copy-mode-vi v send -X begin-selection
+bind-key -T copy-mode-vi y send -X copy-pipe "xclip -selection clipboard"
+bind-key -T copy-mode-vi C-v send -X rectangle-toggle
+bind-key P run "tmux set-buffer \"$(xclip -o -selection clipboard)\"; tmux paste-buffer"
+
+# don't exit copy mode after selection
+#set -s mouse on
+#bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-selection -x
diff --git a/home/nipsy/common/core/vim/default.nix b/home/nipsy/common/core/vim/default.nix
new file mode 100644
index 0000000..ea4ed5e
--- /dev/null
+++ b/home/nipsy/common/core/vim/default.nix
@@ -0,0 +1,6 @@
+{
+ programs.vim = {
+ enable = true;
+ extraConfig = (builtins.readFile ./vimrc);
+ };
+}
diff --git a/home/nipsy/common/core/vim/vimrc b/home/nipsy/common/core/vim/vimrc
new file mode 100644
index 0000000..e80231c
--- /dev/null
+++ b/home/nipsy/common/core/vim/vimrc
@@ -0,0 +1,46 @@
+" Handling of big files - William Natter, Tony Mechelynck and others
+" fairly certain that BufSizeThreshold is in bytes
+let g:SaveUndoLevels = &undolevels
+let g:BufSizeThreshold = 5242880
+if has("autocmd")
+ au VimEnter * let g:SaveUndoLevels = &undolevels
+ au BufReadPre * if getfsize(expand("%")) >= g:BufSizeThreshold | setlocal noswapfile | endif
+ au BufEnter * if getfsize(expand("%")) < g:BufSizeThreshold | let &undolevels=g:SaveUndoLevels | else | setlocal undolevels=-1 | endif
+ au BufEnter * if getfsize(expand("%")) < g:BufSizeThreshold | syntax on | else | syntax off | endif
+endif
+
+set mouse&
+set noautoindent " always set autoindenting off
+
+" enable better 24-bit color support
+"let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
+"let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
+set termguicolors
+
+" If using a dark background within the editing area and syntax highlighting
+" turn on this option as well
+set background=dark
+
+if has("autocmd")
+ " Enabled file type detection
+ " Use the default filetype settings. If you also want to load indent files
+ " to automatically do language-dependent indenting add 'indent' as well.
+ filetype plugin on
+ "filetype indent on
+endif " has ("autocmd")
+
+" The following are commented out as they cause vim to behave a lot
+" different from regular vi. They are highly recommended though.
+set showcmd " Show (partial) command in status line.
+set showmatch " Show matching brackets.
+set ignorecase " Do case insensitive matching
+set incsearch " Incremental search
+"set expandtab " replace tabs with spaces
+set smarttab " use shiftwidth instead of tabstop at start of line
+set spell spelllang=en_us " turn on the spell check
+
+set laststatus=2
+set statusline=%<%f%h%m%r%=%{&ff}\ %Y\ %b\ 0x%B\ \ %l,%c%V\ %P
+
+map <F5> :w<CR><bar>:!clear;go run %<CR>
+map <F6> :w<CR><bar>:%! gofmt<CR>
diff --git a/home/nipsy/common/core/zsh/default.nix b/home/nipsy/common/core/zsh/default.nix
new file mode 100644
index 0000000..453fa9f
--- /dev/null
+++ b/home/nipsy/common/core/zsh/default.nix
@@ -0,0 +1,10 @@
+{
+ programs.zsh = {
+ enable = true;
+ initExtra = (builtins.readFile ./zshrc);
+ shellAliases = {
+ la = "ls -alFh --color=auto";
+ ll = "ls -aF --color=auto";
+ };
+ };
+}
diff --git a/ginaz/home.nix b/home/nipsy/common/core/zsh/zshrc
index c2f84f7..9e43d1d 100644
--- a/ginaz/home.nix
+++ b/home/nipsy/common/core/zsh/zshrc
@@ -1,120 +1,3 @@
-{ config, pkgs, ... }:
-
-{
- gtk = {
- enable = true;
- gtk3.extraConfig.gtk-application-prefer-dark-theme = true;
- gtk4.extraConfig.gtk-application-prefer-dark-theme = true;
- };
-
- home.username = "nipsy";
- home.homeDirectory = "/home/nipsy";
- home.stateVersion = "23.11";
-
- programs.git = {
- enable = true;
- userName = "Mark Nipper";
- userEmail = "nipsy@bitgnome.net";
- extraConfig.pull.rebase = true;
- };
-
- programs.home-manager.enable = true;
-
- programs.tmux = {
- enable = true;
- extraConfig = ''
- #set-option -ga terminal-overrides ",st-256color:Tc"
- set -as terminal-features ",foot*:RGB"
- set -as terminal-features ",st-256color:RGB"
- set -ga monitor-bell on
- set -g history-limit 100000
- set -g bell-action any
- #set -g bell-on-alert on
-
- set -s escape-time 0
-
- setw -g aggressive-resize on
- setw -g wrap-search off
-
- bind-key a send-prefix
- bind-key k kill-session
- bind-key H pipe-pane -o 'cat >> ~/.tmux.log.#h-#S-#I-#P'
-
- #bind-key m \
- # set -g mouse on \;\
- # display 'Mouse: ON'
- #bind M \
- # set -g mouse off \;\
- # display 'Mouse: OFF'
-
- # vim-like copypaste mode
- set-window-option -g mode-keys vi
- bind-key -T copy-mode-vi v send -X begin-selection
- bind-key -T copy-mode-vi y send -X copy-pipe "xclip -selection clipboard"
- bind-key -T copy-mode-vi C-v send -X rectangle-toggle
- bind-key P run "tmux set-buffer \"$(xclip -o -selection clipboard)\"; tmux paste-buffer"
-
- # don't exit copy mode after selection
- #set -s mouse on
- #bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-selection -x
- '';
- };
-
- programs.vim = {
- enable = true;
- extraConfig = ''
- " Handling of big files - William Natter, Tony Mechelynck and others
- " fairly certain that BufSizeThreshold is in bytes
- let g:SaveUndoLevels = &undolevels
- let g:BufSizeThreshold = 5242880
- if has("autocmd")
- au VimEnter * let g:SaveUndoLevels = &undolevels
- au BufReadPre * if getfsize(expand("%")) >= g:BufSizeThreshold | setlocal noswapfile | endif
- au BufEnter * if getfsize(expand("%")) < g:BufSizeThreshold | let &undolevels=g:SaveUndoLevels | else | setlocal undolevels=-1 | endif
- au BufEnter * if getfsize(expand("%")) < g:BufSizeThreshold | syntax on | else | syntax off | endif
- endif
-
- set mouse&
- set noautoindent " always set autoindenting off
-
- " enable better 24-bit color support
- "let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
- "let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
- set termguicolors
-
- " If using a dark background within the editing area and syntax highlighting
- " turn on this option as well
- set background=dark
-
- if has("autocmd")
- " Enabled file type detection
- " Use the default filetype settings. If you also want to load indent files
- " to automatically do language-dependent indenting add 'indent' as well.
- filetype plugin on
- "filetype indent on
- endif " has ("autocmd")
-
- " The following are commented out as they cause vim to behave a lot
- " different from regular vi. They are highly recommended though.
- set showcmd " Show (partial) command in status line.
- set showmatch " Show matching brackets.
- set ignorecase " Do case insensitive matching
- set incsearch " Incremental search
- "set expandtab " replace tabs with spaces
- set smarttab " use shiftwidth instead of tabstop at start of line
- set spell spelllang=en_us " turn on the spell check
-
- set laststatus=2
- set statusline=%<%f%h%m%r%=%{&ff}\ %Y\ %b\ 0x%B\ \ %l,%c%V\ %P
-
- map <F5> :w<CR><bar>:!clear;go run %<CR>
- map <F6> :w<CR><bar>:%! gofmt<CR>
- '';
- };
-
- programs.zsh = {
- enable = true;
- initExtra = ''
umask 022
#export GOROOT="''${HOME}/.local/go"
@@ -192,8 +75,8 @@ setopt LONG_LIST_JOBS NO_HUP
setopt NO_BEEP
lsopt='--color=auto'
-alias ll="ls -alFh $lsopt"
-alias la="ls -aF $lsopt"
+#alias ll="ls -alFh $lsopt"
+#alias la="ls -aF $lsopt"
alias cal="ncal -b"
#alias grep='grep --color=always' # cannot do this as it breaks shell pipelines
alias talk='gnutalk --curses'
@@ -285,6 +168,3 @@ function precmd {
}
PS1='%# '
- '';
- };
-}
diff --git a/home/nipsy/common/optional/desktops/default.nix b/home/nipsy/common/optional/desktops/default.nix
new file mode 100644
index 0000000..0bb8411
--- /dev/null
+++ b/home/nipsy/common/optional/desktops/default.nix
@@ -0,0 +1,7 @@
+{
+ imports = [
+ ./gtk.nix
+ ./i3
+ ./services/dunst.nix
+ ];
+}
diff --git a/home/nipsy/common/optional/desktops/gtk.nix b/home/nipsy/common/optional/desktops/gtk.nix
new file mode 100644
index 0000000..facb782
--- /dev/null
+++ b/home/nipsy/common/optional/desktops/gtk.nix
@@ -0,0 +1,7 @@
+{
+ gtk = {
+ enable = true;
+ gtk3.extraConfig.gtk-application-prefer-dark-theme = true;
+ gtk4.extraConfig.gtk-application-prefer-dark-theme = true;
+ };
+}
diff --git a/home/nipsy/common/optional/desktops/i3/config b/home/nipsy/common/optional/desktops/i3/config
new file mode 100644
index 0000000..57c9d38
--- /dev/null
+++ b/home/nipsy/common/optional/desktops/i3/config
@@ -0,0 +1,228 @@
+# This file has been auto-generated by i3-config-wizard(1).
+# It will not be overwritten, so edit it as you like.
+#
+# Should you change your keyboard layout somewhen, delete
+# this file and re-run i3-config-wizard(1).
+#
+
+# i3 config file (v4)
+#
+# Please see http://i3wm.org/docs/userguide.html for a complete reference!
+
+set $mod Mod4
+
+# Font for window titles. Will also be used by the bar unless a different font
+# is used in the bar {} block below. ISO 10646 = Unicode
+font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1
+# The font above is very space-efficient, that is, it looks good, sharp and
+# clear in small sizes. However, if you need a lot of unicode glyphs or
+# right-to-left text rendering, you should instead use pango for rendering and
+# chose a FreeType font, such as:
+# font pango:DejaVu Sans Mono 10
+
+# Use Mouse+$mod to drag floating windows to their wanted position
+floating_modifier $mod
+
+# start a terminal
+bindsym $mod+Return exec --no-startup-id st
+
+# lock the screen
+bindsym $mod+Scroll_Lock exec --no-startup-id xscreensaver-command -lock
+
+# increase volume
+bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume 0 +5%
+
+# decrease volume
+bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume 0 -5%
+
+# mute volume
+bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute 0 toggle
+
+# mute mic volume
+bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute 1 toggle
+
+# kill focused window
+bindsym $mod+Shift+q kill
+# kill with middle mouse button over titlebar
+bindsym --release button2 kill
+# kill with middle mouse button and $mod anywhere over window
+bindsym --whole-window $mod+button2 kill
+
+# start dmenu (a program launcher)
+bindsym $mod+d exec dmenu_run
+# There also is the (new) i3-dmenu-desktop which only displays applications
+# shipping a .desktop file. It is a wrapper around dmenu, so you need that
+# installed.
+# bindsym $mod+d exec --no-startup-id i3-dmenu-desktop
+
+# change focus
+bindsym $mod+j focus left
+bindsym $mod+k focus down
+bindsym $mod+l focus up
+bindsym $mod+semicolon focus right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Left focus left
+bindsym $mod+Down focus down
+bindsym $mod+Up focus up
+bindsym $mod+Right focus right
+
+# move focused window
+bindsym $mod+Shift+j move left
+bindsym $mod+Shift+k move down
+bindsym $mod+Shift+l move up
+bindsym $mod+Shift+semicolon move right
+
+# alternatively, you can use the cursor keys:
+bindsym $mod+Shift+Left move left
+bindsym $mod+Shift+Down move down
+bindsym $mod+Shift+Up move up
+bindsym $mod+Shift+Right move right
+
+# split in horizontal orientation
+bindsym $mod+h split h
+
+# split in vertical orientation
+bindsym $mod+v split v
+
+# enter fullscreen mode for the focused container
+bindsym $mod+Shift+f fullscreen
+
+# enter fullscreen mode for the focused container
+bindsym $mod+Shift+g fullscreen global
+
+# change container layout (stacked, tabbed, toggle split)
+bindsym $mod+s layout stacking
+bindsym $mod+w layout tabbed
+bindsym $mod+e layout toggle split
+
+# toggle tiling / floating
+bindsym $mod+Shift+space floating toggle
+
+# change focus between tiling / floating windows
+bindsym $mod+space focus mode_toggle
+
+# focus the parent container
+bindsym $mod+a focus parent
+
+# focus the child container
+#bindsym $mod+d focus child
+
+# switch to workspace
+bindsym $mod+1 workspace 1
+bindsym $mod+2 workspace 2
+bindsym $mod+3 workspace 3
+bindsym $mod+4 workspace 4
+bindsym $mod+5 workspace 5
+bindsym $mod+6 workspace 6
+bindsym $mod+7 workspace 7
+bindsym $mod+8 workspace 8
+bindsym $mod+9 workspace 9
+bindsym $mod+0 workspace 10
+bindsym $mod+F1 workspace 11
+bindsym $mod+F2 workspace 12
+bindsym $mod+F3 workspace 13
+bindsym $mod+F4 workspace 14
+bindsym $mod+F5 workspace 15
+bindsym $mod+F6 workspace 16
+bindsym $mod+F7 workspace 17
+bindsym $mod+F8 workspace 18
+bindsym $mod+F9 workspace 19
+bindsym $mod+F10 workspace 20
+
+# move backward or forward to next workspace
+bindsym $mod+n workspace next
+bindsym $mod+p workspace prev
+bindsym $mod+f workspace next_on_output
+bindsym $mod+b workspace prev_on_output
+
+# move focused container to workspace
+bindsym $mod+Shift+1 move container to workspace 1
+bindsym $mod+Shift+2 move container to workspace 2
+bindsym $mod+Shift+3 move container to workspace 3
+bindsym $mod+Shift+4 move container to workspace 4
+bindsym $mod+Shift+5 move container to workspace 5
+bindsym $mod+Shift+6 move container to workspace 6
+bindsym $mod+Shift+7 move container to workspace 7
+bindsym $mod+Shift+8 move container to workspace 8
+bindsym $mod+Shift+9 move container to workspace 9
+bindsym $mod+Shift+0 move container to workspace 10
+bindsym $mod+Shift+F1 move container to workspace 11
+bindsym $mod+Shift+F2 move container to workspace 12
+bindsym $mod+Shift+F3 move container to workspace 13
+bindsym $mod+Shift+F4 move container to workspace 14
+bindsym $mod+Shift+F5 move container to workspace 15
+bindsym $mod+Shift+F6 move container to workspace 16
+bindsym $mod+Shift+F7 move container to workspace 17
+bindsym $mod+Shift+F8 move container to workspace 18
+bindsym $mod+Shift+F9 move container to workspace 19
+bindsym $mod+Shift+F10 move container to workspace 20
+
+# jump to urgent window
+bindsym $mod+u [urgent=latest] focus
+
+# reload the configuration file
+bindsym $mod+Shift+c reload
+# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
+bindsym $mod+Shift+r restart
+# exit i3 (logs you out of your X session)
+#bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
+bindsym $mod+Shift+e exec i3-msg exit
+
+# resize window (you can also use the mouse for that)
+mode "resize" {
+ # These bindings trigger as soon as you enter the resize mode
+
+ # Pressing left will shrink the window’s width.
+ # Pressing right will grow the window’s width.
+ # Pressing up will shrink the window’s height.
+ # Pressing down will grow the window’s height.
+ bindsym j resize shrink width 10 px or 10 ppt
+ bindsym k resize grow height 10 px or 10 ppt
+ bindsym l resize shrink height 10 px or 10 ppt
+ bindsym semicolon resize grow width 10 px or 10 ppt
+
+ # same bindings, but for the arrow keys
+ bindsym Left resize shrink width 10 px or 10 ppt
+ bindsym Down resize grow height 10 px or 10 ppt
+ bindsym Up resize shrink height 10 px or 10 ppt
+ bindsym Right resize grow width 10 px or 10 ppt
+
+ # back to normal: Enter or Escape
+ bindsym Return mode "default"
+ bindsym Escape mode "default"
+}
+
+bindsym $mod+r mode "resize"
+
+# bar toggle, hide or show
+bindsym $mod+m bar mode toggle
+
+# VNC mode (disable all local keybindings except the toggle keybinding)
+mode "VNC" {
+ bindsym $mod+Shift+v mode "default"
+}
+
+bindsym $mod+Shift+v mode "VNC"
+
+# Start i3bar to display a workspace bar (plus the system information i3status
+# finds out, if available)
+bar {
+ status_command i3status
+ tray_output primary
+}
+
+# set borders normal for everything except st
+#for_window [class="^.*"] border normal
+#for_window [class="st-256color"] border pixel 1
+#for_window [class="AppGate SDP"] floating disable
+#for_window [class="factorio"] fullscreen enable
+for_window [class="Steam" title="Friends List"] floating enable
+#for_window [class=".*"] border none
+for_window [all] border none
+
+# Start network applet
+#exec --no-startup-id nm-applet
+#exec --no-startup-id blueman-applet
+#exec --no-startup-id ~/bin/xscreensaver-activate
+#exec --no-startup-id /usr/lib/policykit-1-gnome/polkit-gnome-authentication-agent-1
diff --git a/home/nipsy/common/optional/desktops/i3/default.nix b/home/nipsy/common/optional/desktops/i3/default.nix
new file mode 100644
index 0000000..d369ff2
--- /dev/null
+++ b/home/nipsy/common/optional/desktops/i3/default.nix
@@ -0,0 +1,10 @@
+{
+ programs.i3status = {
+ enable = true;
+ };
+
+ xsession.windowManager.i3 = {
+ enable = true;
+ extraConfig = (builtins.readFile ./config);
+ };
+}
diff --git a/home/nipsy/common/optional/desktops/services/dunst.nix b/home/nipsy/common/optional/desktops/services/dunst.nix
new file mode 100644
index 0000000..9efef64
--- /dev/null
+++ b/home/nipsy/common/optional/desktops/services/dunst.nix
@@ -0,0 +1,11 @@
+{ pkgs, ... }:
+{
+ home.packages = builtins.attrValues {
+ inherit (pkgs)
+ libnotify; # required by dunst
+ };
+
+ services.dunst = {
+ enable = true;
+ };
+}
diff --git a/home/nipsy/ginaz.nix b/home/nipsy/ginaz.nix
new file mode 100644
index 0000000..17d39fd
--- /dev/null
+++ b/home/nipsy/ginaz.nix
@@ -0,0 +1,7 @@
+{ inputs, lib, pkgs, config, outputs, ... }:
+{
+ imports = [
+ common/core
+ common/optional/desktops
+ ];
+}
diff --git a/hosts/common/core/default.nix b/hosts/common/core/default.nix
new file mode 100644
index 0000000..8d19a9f
--- /dev/null
+++ b/hosts/common/core/default.nix
@@ -0,0 +1,21 @@
+{ inputs, outputs, ... }: {
+ imports = [
+ inputs.home-manager.nixosModules.home-manager
+ ./locale.nix
+ ./nix.nix
+ ./shells.nix
+ ./zsh.nix
+ ] ++ (builtins.attrValues outputs.nixosModules);
+
+ home-manager.extraSpecialArgs = { inherit inputs outputs; };
+
+ nixpkgs = {
+ # you can add global overlays here
+ overlays = builtins.attrValues outputs.overlays;
+ config = {
+ allowUnfree = true;
+ };
+ };
+
+ hardware.enableRedistributableFirmware = true;
+}
diff --git a/hosts/common/core/locale.nix b/hosts/common/core/locale.nix
new file mode 100644
index 0000000..914312e
--- /dev/null
+++ b/hosts/common/core/locale.nix
@@ -0,0 +1,5 @@
+{ lib, ... }:
+{
+ i18n.defaultLocale = lib.mkDefault "en_US.UTF-8";
+ time.timeZone = lib.mkDefault "America/Los_Angeles";
+}
diff --git a/hosts/common/core/nix.nix b/hosts/common/core/nix.nix
new file mode 100644
index 0000000..587bac6
--- /dev/null
+++ b/hosts/common/core/nix.nix
@@ -0,0 +1,30 @@
+{ inputs, lib, ... }:
+{
+ nix = {
+ settings = {
+ trusted-users = [ "root" "@wheel" ];
+
+ auto-optimise-store = lib.mkDefault true;
+ experimental-features = [ "nix-command" "flakes" "repl-flake" ];
+ warn-dirty = false;
+ #flake-registry = ""; # Disable global flake registry This is a hold-over setting from Misterio77. Not sure significance but likely to do with nix.registry entry below.
+ };
+
+ # Add each flake input as a registry to make nix3 commands consistent with your flake
+ #registry = lib.mapAttrs (_: value: { flake = value; }) inputs;
+
+ # Add nixpkgs input to NIX_PATH
+ # This lets nix2 commands still use <nixpkgs>
+ #nixPath = [ "nixpkgs=${inputs.nixpkgs.outPath}" ];
+
+ # Garbage Collection
+ gc = {
+ automatic = true;
+ dates = "weekly";
+ randomizedDelaySec = "14m";
+ # Keep the last 2 generations
+ options = "--delete-older-than +2";
+ };
+
+ };
+}
diff --git a/hosts/common/core/shells.nix b/hosts/common/core/shells.nix
new file mode 100644
index 0000000..0469b8c
--- /dev/null
+++ b/hosts/common/core/shells.nix
@@ -0,0 +1,8 @@
+{ pkgs, ... }:
+{
+ environment.systemPackages = builtins.attrValues {
+ inherit (pkgs)
+ bash
+ zsh;
+ };
+}
diff --git a/hosts/common/core/zsh.nix b/hosts/common/core/zsh.nix
new file mode 100644
index 0000000..ba73c00
--- /dev/null
+++ b/hosts/common/core/zsh.nix
@@ -0,0 +1,6 @@
+{
+ programs.zsh = {
+ enable = true;
+ enableCompletion = true;
+ };
+}
diff --git a/hosts/common/optional/google-authenticator.nix b/hosts/common/optional/google-authenticator.nix
new file mode 100644
index 0000000..7380d1b
--- /dev/null
+++ b/hosts/common/optional/google-authenticator.nix
@@ -0,0 +1,23 @@
+{ pkgs, ... }:
+{
+ environment.systemPackages = builtins.attrValues {
+ inherit (pkgs)
+ #other
+ google-authenticator;
+ };
+
+ security.pam.services = {
+ chfn.googleAuthenticator.enable = true;
+ chsh.googleAuthenticator.enable = true;
+ cups.googleAuthenticator.enable = true;
+ lightdm.googleAuthenticator.enable = true;
+ login.googleAuthenticator.enable = true;
+ other.googleAuthenticator.enable = true;
+ sshd.googleAuthenticator.enable = true;
+ su.googleAuthenticator.enable = true;
+ sudo.googleAuthenticator.enable = true;
+ vlock.googleAuthenticator.enable = true;
+ xlock.googleAuthenticator.enable = true;
+ xscreensaver.googleAuthenticator.enable = true;
+ };
+}
diff --git a/hosts/common/optional/pipewire.nix b/hosts/common/optional/pipewire.nix
new file mode 100644
index 0000000..27b2a09
--- /dev/null
+++ b/hosts/common/optional/pipewire.nix
@@ -0,0 +1,24 @@
+{ pkgs, ... }:
+{
+ sound.enable = true;
+ hardware.pulseaudio.enable = false;
+ security.rtkit.enable = true;
+ services.pipewire = {
+ enable = true;
+ alsa.enable = true;
+ alsa.support32Bit = true;
+ pulse.enable = true;
+ wireplumber.enable = true;
+ jack.enable = true;
+
+ # use the example session manager (no others are packaged yet so this is enabled by default,
+ # no need to redefine it in your config for now)
+ # media-session.enable = true;
+ };
+
+ environment.systemPackages = builtins.attrValues {
+ inherit (pkgs)
+ pamixer
+ pavucontrol;
+ };
+}
diff --git a/hosts/common/optional/services/openssh.nix b/hosts/common/optional/services/openssh.nix
new file mode 100644
index 0000000..33cdbac
--- /dev/null
+++ b/hosts/common/optional/services/openssh.nix
@@ -0,0 +1,11 @@
+{
+ services.openssh = {
+ enable = true;
+ openFirewall = true;
+ settings = {
+ KbdInteractiveAuthentication = false;
+ PasswordAuthentication = false;
+ PermitRootLogin = "yes";
+ };
+ };
+}
diff --git a/hosts/common/optional/services/xorg.nix b/hosts/common/optional/services/xorg.nix
new file mode 100644
index 0000000..ebca5ea
--- /dev/null
+++ b/hosts/common/optional/services/xorg.nix
@@ -0,0 +1,21 @@
+{
+ services.xserver = {
+ displayManager.defaultSession = "xsession";
+ displayManager.lightdm = {
+ enable = true;
+ extraSeatDefaults = ''greeter-hide-users=true'';
+ };
+ displayManager.session = [
+ {
+ manage = "desktop";
+ name = "xsession";
+ start = ''exec $HOME/.xsession'';
+ }
+ ];
+ enable = true;
+ libinput.enable = true;
+ videoDrivers = [ "amdgpu" ];
+ xkb.layout = "us";
+ xkb.options = "caps:super,compose:ralt";
+ };
+}
diff --git a/hosts/common/optional/zfs.nix b/hosts/common/optional/zfs.nix
new file mode 100644
index 0000000..a2d978d
--- /dev/null
+++ b/hosts/common/optional/zfs.nix
@@ -0,0 +1,6 @@
+{
+ services.zfs = {
+ autoScrub.enable = true;
+ trim.enable = true;
+ };
+}
diff --git a/hosts/common/users/nipsy/default.nix b/hosts/common/users/nipsy/default.nix
new file mode 100644
index 0000000..58ef9b3
--- /dev/null
+++ b/hosts/common/users/nipsy/default.nix
@@ -0,0 +1,31 @@
+{ pkgs, inputs, config, ... }:
+let
+ ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
+in
+{
+ users.groups.nipsy.gid = 1000;
+ users.users.nipsy = {
+ description = "Mark Nipper";
+ extraGroups = [
+ "wheel"
+ "audio"
+ "video"
+ ] ++ ifTheyExist [
+ "networkmanager"
+ ];
+ group = "nipsy";
+ home = "/home/nipsy";
+ isNormalUser = true;
+ openssh.authorizedKeys.keys = [
+ (builtins.readFile ./keys/id_arrakis.pub)
+ #(builtins.readFile ./keys/id_other.pub)
+ ];
+
+ packages = [ pkgs.home-manager ];
+ shell = pkgs.zsh;
+ };
+
+ # Import this user's personal/home configurations
+ home-manager.users.nipsy = import ../../../../home/nipsy/${config.networking.hostName}.nix;
+
+}
diff --git a/hosts/common/users/nipsy/keys/id_arrakis.pub b/hosts/common/users/nipsy/keys/id_arrakis.pub
new file mode 100644
index 0000000..38c1d4c
--- /dev/null
+++ b/hosts/common/users/nipsy/keys/id_arrakis.pub
@@ -0,0 +1 @@
+ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIbKppxX6GF88fAfXJZR4ZcPzwopi7TAy+v/dmWso+7f nipsy@arrakis.bitgnome.net
diff --git a/hosts/common/users/root/default.nix b/hosts/common/users/root/default.nix
new file mode 100644
index 0000000..f70f414
--- /dev/null
+++ b/hosts/common/users/root/default.nix
@@ -0,0 +1,10 @@
+{ pkgs, ... }:
+{
+ users.users.root = {
+ openssh.authorizedKeys.keys = [
+ (builtins.readFile ../nipsy/keys/id_arrakis.pub)
+ #(builtins.readFile ./keys/id_other.pub)
+ ];
+ shell = pkgs.zsh;
+ };
+}
diff --git a/ginaz/configuration.nix b/hosts/ginaz/default.nix
index 9310c2b..d5fa16c 100644
--- a/ginaz/configuration.nix
+++ b/hosts/ginaz/default.nix
@@ -1,27 +1,19 @@
-# Edit this configuration file to define what should be installed on
-# your system. Help is available in the configuration.nix(5) man page, on
-# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
-
-{ config, lib, pkgs, ... }: {
- imports =
- [ # Include the results of the hardware scan.
- ./hardware-configuration.nix
- ];
-
- boot.initrd.kernelModules = [ "amdgpu" "zfs" ];
- boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
- boot.loader.efi.canTouchEfiVariables = true;
- boot.loader.generationsDir.copyKernels = true;
- boot.loader.systemd-boot.enable = true;
- boot.supportedFilesystems = [ "zfs" ];
- boot.zfs.devNodes = "/dev/disk/by-label";
+{ config, inputs, pkgs, ... }: {
+ boot = {
+ initrd.kernelModules = [ "amdgpu" "zfs" ];
+ kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
+ loader = {
+ efi.canTouchEfiVariables = true;
+ systemd-boot.enable = true;
+ timeout = 3;
+ };
+ supportedFilesystems = [ "zfs" ];
+ zfs.devNodes = "/dev/disk/by-label";
+ };
documentation.dev.enable = true;
documentation.man.enable = true;
- environment.shells = with pkgs; [ zsh ];
- # List packages installed in system profile. To search, run:
- # $ nix search wget
environment.systemPackages = with pkgs; [
bc
bespokesynth
@@ -122,8 +114,7 @@
sshfs
st
stoken
- surge
- #surge-XT
+ surge-XT
sxiv
synthv1
sysstat
@@ -164,15 +155,26 @@
zynaddsubfx
];
- i18n.defaultLocale = "en_US.UTF-8";
+ imports = [
+ inputs.hardware.nixosModules.lenovo-yoga-7-14ARH7.amdgpu
- networking.hostId = "8425e349";
- networking.hostName = "ginaz";
- networking.networkmanager.enable = true;
- networking.nftables.enable = true;
+ ./hardware-configuration.nix
+ ../common/core
+ ../common/optional/google-authenticator.nix
+ ../common/optional/pipewire.nix
+ ../common/optional/services/openssh.nix
+ ../common/optional/services/xorg.nix
+ ../common/optional/zfs.nix
+ ../common/users/nipsy
+ ../common/users/root
+ ];
- nix.settings.experimental-features = [ "nix-command" "flakes" ];
- nixpkgs.config.allowUnfree = true;
+ networking = {
+ hostId = "8425e349";
+ hostName = "ginaz";
+ networkmanager.enable = true;
+ nftables.enable = true;
+ };
programs.atop.enable = true;
programs.firefox.enable = true;
@@ -187,20 +189,6 @@
programs.tmux.enable = true;
programs.zsh.enable = true;
- security.pam.services = {
- chfn.googleAuthenticator.enable = true;
- chsh.googleAuthenticator.enable = true;
- cups.googleAuthenticator.enable = true;
- lightdm.googleAuthenticator.enable = true;
- login.googleAuthenticator.enable = true;
- other.googleAuthenticator.enable = true;
- sshd.googleAuthenticator.enable = true;
- su.googleAuthenticator.enable = true;
- sudo.googleAuthenticator.enable = true;
- vlock.googleAuthenticator.enable = true;
- xlock.googleAuthenticator.enable = true;
- xscreensaver.googleAuthenticator.enable = true;
- };
security.polkit = {
enable = true;
extraConfig = ''
@@ -220,23 +208,7 @@
})
'';
};
- security.rtkit.enable = true;
-
services.blueman.enable = true;
- services.openssh = {
- enable = true;
- openFirewall = true;
- settings.PasswordAuthentication = false;
- settings.KbdInteractiveAuthentication = false;
- settings.PermitRootLogin = "yes";
- };
- services.pipewire = {
- enable = true;
- alsa.enable = true;
- alsa.support32Bit = true;
- pulse.enable = true;
- jack.enable = true;
- };
services.printing.enable = true;
services.udev.extraRules = ''
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="2500",MODE:="0666"
@@ -245,29 +217,6 @@
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3020",MODE:="0666"
SUBSYSTEM=="usb",ENV{DEVTYPE}=="usb_device",ATTRS{idVendor}=="1df7",ATTRS{idProduct}=="3030",MODE:="0666"
'';
- services.xserver = {
- displayManager.defaultSession = "xsession";
- displayManager.lightdm = {
- enable = true;
- extraSeatDefaults = ''greeter-hide-users=true'';
- };
- displayManager.session = [
- {
- manage = "desktop";
- name = "xsession";
- start = ''exec $HOME/.xsession'';
- }
- ];
- enable = true;
- libinput.enable = true;
- videoDrivers = [ "amdgpu" ];
- xkb.layout = "us";
- xkb.options = "caps:super,compose:ralt";
- };
- services.zfs.autoScrub.enable = true;
- services.zfs.trim.enable = true;
-
- system.stateVersion = "23.11";
systemd = {
user.services.polkit-gnome-authentication-agent-1 = {
@@ -285,25 +234,5 @@
};
};
- time.timeZone = "America/Los_Angeles";
-
- users.groups.nipsy.gid = 1000;
- users.users.nipsy = {
- isNormalUser = true;
- group = "nipsy";
- home = "/home/nipsy";
- description = "Mark Nipper";
- extraGroups = [ "wheel" "networkmanager" ];
- #packages = with pkgs; [
- # firefox
- # tree
- #];
- shell = pkgs.zsh;
- openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIbKppxX6GF88fAfXJZR4ZcPzwopi7TAy+v/dmWso+7f nipsy@arrakis.bitgnome.net" ];
- };
-
- users.users.root = {
- shell = pkgs.zsh;
- openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIbKppxX6GF88fAfXJZR4ZcPzwopi7TAy+v/dmWso+7f nipsy@arrakis.bitgnome.net" ];
- };
+ system.stateVersion = "23.11";
}
diff --git a/ginaz/hardware-configuration.nix b/hosts/ginaz/hardware-configuration.nix
index 140a799..a5ae455 100644
--- a/ginaz/hardware-configuration.nix
+++ b/hosts/ginaz/hardware-configuration.nix
@@ -5,7 +5,7 @@
{
imports =
- [ (modulesPath + "/installer/scan/not-detected.nix")
+ [ #(modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
@@ -44,7 +44,6 @@
hardware.bluetooth.enable = true;
#hardware.bluetooth.powerOnBoot = true;
- hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
}
diff --git a/modules/home-manager/default.nix b/modules/home-manager/default.nix
new file mode 100644
index 0000000..45aae31
--- /dev/null
+++ b/modules/home-manager/default.nix
@@ -0,0 +1,6 @@
+# Add your reusable home-manager modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
+# These should be stuff you would like to share with others, not your personal configurations.
+{
+ # List your module files here
+ # my-module = import ./my-module.nix;
+}
diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix
new file mode 100644
index 0000000..8605069
--- /dev/null
+++ b/modules/nixos/default.nix
@@ -0,0 +1,6 @@
+# Add your reusable NixOS modules to this directory, on their own file (https://nixos.wiki/wiki/Module).
+# These should be stuff you would like to share with others, not your personal configurations.
+{
+ # List your module files here
+ # my-module = import ./my-module.nix;
+}
diff --git a/overlays/default.nix b/overlays/default.nix
new file mode 100644
index 0000000..669bd73
--- /dev/null
+++ b/overlays/default.nix
@@ -0,0 +1,26 @@
+#
+# This file defines overlays/custom modifications to upstream packages
+#
+
+{ inputs, ... }: {
+ # This one brings our custom packages from the 'pkgs' directory
+ additions = final: _prev: import ../pkgs { pkgs = final; };
+
+ # This one contains whatever you want to overlay
+ # You can change versions, add patches, set compilation flags, anything really.
+ # https://nixos.wiki/wiki/Overlays
+ modifications = final: prev: {
+ # example = prev.example.overrideAttrs (oldAttrs: let ... in {
+ # ...
+ # });
+ };
+
+ # When applied, the unstable nixpkgs set (declared in the flake inputs) will
+ # be accessible through 'pkgs.unstable'
+ unstable-packages = final: _prev: {
+ unstable = import inputs.nixpkgs-unstable {
+ system = final.system;
+ config.allowUnfree = true;
+ };
+ };
+}
diff --git a/pkgs/default.nix b/pkgs/default.nix
new file mode 100644
index 0000000..d1a6549
--- /dev/null
+++ b/pkgs/default.nix
@@ -0,0 +1,5 @@
+# You can build these directly using 'nix build .#example'
+
+{ pkgs ? import <nixpkgs> { } }: rec {
+ sdrconnect = pkgs.callPackage ./sdrconnect { };
+}
diff --git a/sdrconnect.nix b/pkgs/sdrconnect/default.nix
index 22b41d8..d262268 100644
--- a/sdrconnect.nix
+++ b/pkgs/sdrconnect/default.nix
@@ -1,9 +1,12 @@
-{ pkgs }:
-pkgs.stdenv.mkDerivation rec {
+{ fetchurl, lib, stdenv }:
+let
pname = "sdrconnect";
+in
+stdenv.mkDerivation {
+ inherit pname;
version = "0.0.0";
- src = builtins.fetchurl {
+ src = fetchurl {
url = "https://www.sdrplay.com/software/SDRconnect_linux-x64_0fd82d9dc.run";
sha256 = "7200f58efc1bd78250f6057cc08b5564ea9e8f33f8ef655805bbff97f56d38c2";
};
@@ -11,7 +14,7 @@ pkgs.stdenv.mkDerivation rec {
sourceRoot = ".";
unpackCmd = "bash $src --quiet --noexec --target .";
- buildInputs = with pkgs; [
+ buildInputs = [
alsa-lib
fontconfig.lib
icu
@@ -27,8 +30,8 @@ pkgs.stdenv.mkDerivation rec {
installPhase = ''
runHook preInstall
mkdir -p $out/{bin,lib} $out/share/{doc,icons}
- patchelf --set-interpreter ${pkgs.stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 SDRconnect
- patchelf --set-rpath \$ORIGIN/../lib:${pkgs.alsa-lib}/lib:${pkgs.fontconfig.lib}/lib:${pkgs.icu}/lib:${pkgs.libusb1}/lib:${pkgs.remarkable2-toolchain}/lib:${pkgs.stdenv.cc.cc.lib}/lib:${pkgs.util-linux.lib}/lib:${pkgs.xorg.libICE}/lib:${pkgs.xorg.libSM}/lib:${pkgs.xorg.libX11}/lib SDRconnect
+ patchelf --set-interpreter ${stdenv.cc.libc}/lib/ld-linux-x86-64.so.2 SDRconnect
+ patchelf --set-rpath \$ORIGIN/../lib:${alsa-lib}/lib:${fontconfig.lib}/lib:${icu}/lib:${libusb1}/lib:${remarkable2-toolchain}/lib:${stdenv.cc.cc.lib}/lib:${util-linux.lib}/lib:${xorg.libICE}/lib:${xorg.libSM}/lib:${xorg.libX11}/lib SDRconnect
patchelf --add-needed libasound.so.2 --add-needed libfontconfig.so.1 --add-needed libSkiaSharp.so --add-needed swig_bindings.so --add-needed libusb-1.0.so.0 --add-needed libuuid.so.1 SDRconnect
mv SDRconnect $out/bin
mv libHarfBuzzSharp.so libSkiaSharp.so swig_bindings.so $out/lib
@@ -40,7 +43,7 @@ pkgs.stdenv.mkDerivation rec {
dontFixup = true;
- meta = with pkgs.lib; {
+ meta = with lib; {
description = "sdrconnect";
homepage = "https://www.sdrplay.com/sdrconnect/";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];