Compare commits
	
		
			No commits in common. "master" and "nftables_transition" have entirely different histories.
		
	
	
		
			master
			...
			nftables_t
		
	
		
| @ -8,10 +8,6 @@ | |||||||
|   environment.systemPackages = |   environment.systemPackages = | ||||||
|     with pkgs; |     with pkgs; | ||||||
|     [ |     [ | ||||||
|       onboard |  | ||||||
|       maliit-keyboard |  | ||||||
|       maliit-framework |  | ||||||
|       wvkbd |  | ||||||
|       acpi |       acpi | ||||||
|       aria2 |       aria2 | ||||||
|       binutils |       binutils | ||||||
|  | |||||||
							
								
								
									
										150
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										150
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @ -35,11 +35,11 @@ | |||||||
|     "flake-compat_2": { |     "flake-compat_2": { | ||||||
|       "flake": false, |       "flake": false, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1747046372, |         "lastModified": 1673956053, | ||||||
|         "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", |         "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", | ||||||
|         "owner": "edolstra", |         "owner": "edolstra", | ||||||
|         "repo": "flake-compat", |         "repo": "flake-compat", | ||||||
|         "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", |         "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -48,51 +48,37 @@ | |||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "git-hooks": { |     "flake-compat_3": { | ||||||
|       "inputs": { |       "flake": false, | ||||||
|         "flake-compat": [ |  | ||||||
|           "simple-nixos-mailserver", |  | ||||||
|           "flake-compat" |  | ||||||
|         ], |  | ||||||
|         "gitignore": "gitignore", |  | ||||||
|         "nixpkgs": [ |  | ||||||
|           "simple-nixos-mailserver", |  | ||||||
|           "nixpkgs" |  | ||||||
|         ] |  | ||||||
|       }, |  | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1750779888, |         "lastModified": 1696426674, | ||||||
|         "narHash": "sha256-wibppH3g/E2lxU43ZQHC5yA/7kIKLGxVEnsnVK1BtRg=", |         "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", | ||||||
|         "owner": "cachix", |         "owner": "edolstra", | ||||||
|         "repo": "git-hooks.nix", |         "repo": "flake-compat", | ||||||
|         "rev": "16ec914f6fb6f599ce988427d9d94efddf25fe6d", |         "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "cachix", |         "owner": "edolstra", | ||||||
|         "repo": "git-hooks.nix", |         "repo": "flake-compat", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "gitignore": { |     "flake-utils": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "systems": "systems" | ||||||
|           "simple-nixos-mailserver", |  | ||||||
|           "git-hooks", |  | ||||||
|           "nixpkgs" |  | ||||||
|         ] |  | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1709087332, |         "lastModified": 1681202837, | ||||||
|         "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", |         "narHash": "sha256-H+Rh19JDwRtpVPAWp64F+rlEtxUWBAQW28eAi3SRSzg=", | ||||||
|         "owner": "hercules-ci", |         "owner": "numtide", | ||||||
|         "repo": "gitignore.nix", |         "repo": "flake-utils", | ||||||
|         "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", |         "rev": "cfacdce06f30d2b68473a46042957675eebb3401", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "hercules-ci", |         "owner": "numtide", | ||||||
|         "repo": "gitignore.nix", |         "repo": "flake-utils", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
| @ -103,16 +89,16 @@ | |||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1755928099, |         "lastModified": 1736373539, | ||||||
|         "narHash": "sha256-OILVkfhRCm8u18IZ2DKR8gz8CVZM2ZcJmQBXmjFLIfk=", |         "narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "repo": "home-manager", |         "repo": "home-manager", | ||||||
|         "rev": "4a44fb9f7555da362af9d499817084f4288a957f", |         "rev": "bd65bc3cde04c16755955630b344bc9e35272c56", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "nix-community", |         "owner": "nix-community", | ||||||
|         "ref": "release-25.05", |         "ref": "release-24.11", | ||||||
|         "repo": "home-manager", |         "repo": "home-manager", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
| @ -140,34 +126,33 @@ | |||||||
|     }, |     }, | ||||||
|     "nixpkgs": { |     "nixpkgs": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1755922037, |         "lastModified": 1738574474, | ||||||
|         "narHash": "sha256-wY1+2JPH0ZZC4BQefoZw/k+3+DowFyfOxv17CN/idKs=", |         "narHash": "sha256-rvyfF49e/k6vkrRTV4ILrWd92W+nmBDfRYZgctOyolQ=", | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "b1b3291469652d5a2edb0becc4ef0246fff97a7c", |         "rev": "fecfeb86328381268e29e998ddd3ebc70bbd7f7c", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "ref": "nixos-25.05", |         "ref": "nixos-24.11", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "nixpkgs-25_05": { |     "nixpkgs-24_11": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1753749649, |         "lastModified": 1734083684, | ||||||
|         "narHash": "sha256-+jkEZxs7bfOKfBIk430K+tK9IvXlwzqQQnppC2ZKFj4=", |         "narHash": "sha256-5fNndbndxSx5d+C/D0p/VF32xDiJCJzyOqorOYW4JEo=", | ||||||
|         "owner": "NixOS", |         "owner": "NixOS", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "1f08a4df998e21f4e8be8fb6fbf61d11a1a5076a", |         "rev": "314e12ba369ccdb9b352a4db26ff419f7c49fa84", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "NixOS", |         "id": "nixpkgs", | ||||||
|         "ref": "nixos-25.05", |         "ref": "nixos-24.11", | ||||||
|         "repo": "nixpkgs", |         "type": "indirect" | ||||||
|         "type": "github" |  | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "nvim": { |     "nvim": { | ||||||
| @ -177,11 +162,11 @@ | |||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1756466297, |         "lastModified": 1736528609, | ||||||
|         "narHash": "sha256-3K54DWzsAvphmLuRDAU+QjR9vAd8XDXVSCIN0olTfBM=", |         "narHash": "sha256-p0tYmTVnnFghamXEXD4w/lldCi604zIWDV4Ol9ubQ5g=", | ||||||
|         "ref": "refs/heads/master", |         "ref": "refs/heads/master", | ||||||
|         "rev": "a595413b88bdf05c2f35d2bba467519a6a03dd9e", |         "rev": "8245a48cc75cc74dea1b3ca89cb58f24f8e14f85", | ||||||
|         "revCount": 46, |         "revCount": 42, | ||||||
|         "type": "git", |         "type": "git", | ||||||
|         "url": "https://git.project-cloud.net/asmir/nvim_flake" |         "url": "https://git.project-cloud.net/asmir/nvim_flake" | ||||||
|       }, |       }, | ||||||
| @ -190,6 +175,28 @@ | |||||||
|         "url": "https://git.project-cloud.net/asmir/nvim_flake" |         "url": "https://git.project-cloud.net/asmir/nvim_flake" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "peerix": { | ||||||
|  |       "inputs": { | ||||||
|  |         "flake-compat": "flake-compat_2", | ||||||
|  |         "flake-utils": "flake-utils", | ||||||
|  |         "nixpkgs": [ | ||||||
|  |           "nixpkgs" | ||||||
|  |         ] | ||||||
|  |       }, | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1684706914, | ||||||
|  |         "narHash": "sha256-pBlTtsC28e/5MUTe4NWeNNOc/4Kf6EzGQGppQEQ/ioo=", | ||||||
|  |         "owner": "asmir.abdulahovic", | ||||||
|  |         "repo": "peerix", | ||||||
|  |         "rev": "8fdbbd0039240e05b4f93bbd5b454d5643e8a8d1", | ||||||
|  |         "type": "gitlab" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "asmir.abdulahovic", | ||||||
|  |         "repo": "peerix", | ||||||
|  |         "type": "gitlab" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "project-cloud": { |     "project-cloud": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
| @ -218,6 +225,7 @@ | |||||||
|         "nix-xilinx": "nix-xilinx", |         "nix-xilinx": "nix-xilinx", | ||||||
|         "nixpkgs": "nixpkgs", |         "nixpkgs": "nixpkgs", | ||||||
|         "nvim": "nvim", |         "nvim": "nvim", | ||||||
|  |         "peerix": "peerix", | ||||||
|         "project-cloud": "project-cloud", |         "project-cloud": "project-cloud", | ||||||
|         "simple-nixos-mailserver": "simple-nixos-mailserver", |         "simple-nixos-mailserver": "simple-nixos-mailserver", | ||||||
|         "sops-nix": "sops-nix", |         "sops-nix": "sops-nix", | ||||||
| @ -228,19 +236,18 @@ | |||||||
|     "simple-nixos-mailserver": { |     "simple-nixos-mailserver": { | ||||||
|       "inputs": { |       "inputs": { | ||||||
|         "blobs": "blobs", |         "blobs": "blobs", | ||||||
|         "flake-compat": "flake-compat_2", |         "flake-compat": "flake-compat_3", | ||||||
|         "git-hooks": "git-hooks", |  | ||||||
|         "nixpkgs": [ |         "nixpkgs": [ | ||||||
|           "nixpkgs" |           "nixpkgs" | ||||||
|         ], |         ], | ||||||
|         "nixpkgs-25_05": "nixpkgs-25_05" |         "nixpkgs-24_11": "nixpkgs-24_11" | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1756130152, |         "lastModified": 1737736848, | ||||||
|         "narHash": "sha256-3qcN28djoBqqhEqOv8ve3/+wD0lLR2YCVV1EZ4SYfjo=", |         "narHash": "sha256-VrUfCXBXYV+YmQ2OvVTeML9EnmaPRtH+POrNIcJp6yo=", | ||||||
|         "owner": "simple-nixos-mailserver", |         "owner": "simple-nixos-mailserver", | ||||||
|         "repo": "nixos-mailserver", |         "repo": "nixos-mailserver", | ||||||
|         "rev": "b49ae46f226430854102c207fdcb55e2de8e884e", |         "rev": "6b425d13f5a9d73cb63973d3609acacef4d1e261", | ||||||
|         "type": "gitlab" |         "type": "gitlab" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -256,11 +263,11 @@ | |||||||
|         ] |         ] | ||||||
|       }, |       }, | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1754988908, |         "lastModified": 1738291974, | ||||||
|         "narHash": "sha256-t+voe2961vCgrzPFtZxha0/kmFSHFobzF00sT8p9h0U=", |         "narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=", | ||||||
|         "owner": "Mic92", |         "owner": "Mic92", | ||||||
|         "repo": "sops-nix", |         "repo": "sops-nix", | ||||||
|         "rev": "3223c7a92724b5d804e9988c6b447a0d09017d48", |         "rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
| @ -289,6 +296,21 @@ | |||||||
|         "url": "https://git.project-cloud.net/asmir/swaysw" |         "url": "https://git.project-cloud.net/asmir/swaysw" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|  |     "systems": { | ||||||
|  |       "locked": { | ||||||
|  |         "lastModified": 1681028828, | ||||||
|  |         "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", | ||||||
|  |         "owner": "nix-systems", | ||||||
|  |         "repo": "default", | ||||||
|  |         "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", | ||||||
|  |         "type": "github" | ||||||
|  |       }, | ||||||
|  |       "original": { | ||||||
|  |         "owner": "nix-systems", | ||||||
|  |         "repo": "default", | ||||||
|  |         "type": "github" | ||||||
|  |       } | ||||||
|  |     }, | ||||||
|     "theme_anemone": { |     "theme_anemone": { | ||||||
|       "flake": false, |       "flake": false, | ||||||
|       "locked": { |       "locked": { | ||||||
|  | |||||||
							
								
								
									
										40
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								flake.nix
									
									
									
									
									
								
							| @ -2,13 +2,18 @@ | |||||||
|   description = "NixOS configuration"; |   description = "NixOS configuration"; | ||||||
| 
 | 
 | ||||||
|   inputs = { |   inputs = { | ||||||
|     nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; |     nixpkgs.url = "github:nixos/nixpkgs/nixos-24.11"; | ||||||
| 
 | 
 | ||||||
|     nix-xilinx = { |     nix-xilinx = { | ||||||
|       url = "gitlab:asmir.abdulahovic/nix-xilinx"; |       url = "gitlab:asmir.abdulahovic/nix-xilinx"; | ||||||
|       inputs.nixpkgs.follows = "nixpkgs"; |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|  |     peerix = { | ||||||
|  |       url = "gitlab:asmir.abdulahovic/peerix"; | ||||||
|  |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|     zremap = { |     zremap = { | ||||||
|       url = "git+https://git.project-cloud.net/asmir/zremap"; |       url = "git+https://git.project-cloud.net/asmir/zremap"; | ||||||
|       inputs.nixpkgs.follows = "nixpkgs"; |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
| @ -30,7 +35,7 @@ | |||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     home-manager = { |     home-manager = { | ||||||
|       url = "github:nix-community/home-manager/release-25.05"; |       url = "github:nix-community/home-manager/release-24.11"; | ||||||
|       inputs.nixpkgs.follows = "nixpkgs"; |       inputs.nixpkgs.follows = "nixpkgs"; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
| @ -51,6 +56,7 @@ | |||||||
|       nixpkgs, |       nixpkgs, | ||||||
|       nix-xilinx, |       nix-xilinx, | ||||||
|       nvim, |       nvim, | ||||||
|  |       peerix, | ||||||
|       project-cloud, |       project-cloud, | ||||||
|       simple-nixos-mailserver, |       simple-nixos-mailserver, | ||||||
|       sops-nix, |       sops-nix, | ||||||
| @ -78,10 +84,22 @@ | |||||||
|             { |             { | ||||||
|               home-manager.useGlobalPkgs = true; |               home-manager.useGlobalPkgs = true; | ||||||
|               home-manager.useUserPackages = true; |               home-manager.useUserPackages = true; | ||||||
|               home-manager.users.akill = import ./home/nixy/home.nix; |               home-manager.users.akill = import ./home/home.nix; | ||||||
|               home-manager.extraSpecialArgs = { inherit inputs system; }; |               home-manager.extraSpecialArgs = { inherit inputs system; }; | ||||||
|               home-manager.backupFileExtension = "home_backup"; |               home-manager.backupFileExtension = "home_backup"; | ||||||
|             } |             } | ||||||
|  |             peerix.nixosModules.peerix | ||||||
|  |             { | ||||||
|  |               services.peerix = { | ||||||
|  |                 enable = true; | ||||||
|  |                 globalCacheTTL = 10; | ||||||
|  |                 package = peerix.packages.x86_64-linux.peerix; | ||||||
|  |                 openFirewall = true; # UDP/12304 | ||||||
|  |                 privateKeyFile = nixy.config.sops.secrets."peerix/private".path; | ||||||
|  |                 publicKeyFile = ./nixy/peerix-public; | ||||||
|  |                 publicKey = "peerix-mediabox:UDgG3xdQYv7bmx2l4ZPNRPJtp2zMmY++H/fnGeJ9BQw="; | ||||||
|  |               }; | ||||||
|  |             } | ||||||
|           ]; |           ]; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
| @ -101,9 +119,21 @@ | |||||||
|             { |             { | ||||||
|               home-manager.useGlobalPkgs = true; |               home-manager.useGlobalPkgs = true; | ||||||
|               home-manager.useUserPackages = true; |               home-manager.useUserPackages = true; | ||||||
|               home-manager.users.akill = import ./home/mediabox/home.nix; |               home-manager.users.akill = import ./home/home.nix; | ||||||
|               home-manager.extraSpecialArgs = { inherit inputs system; }; |               home-manager.extraSpecialArgs = { inherit inputs system; }; | ||||||
|             } |             } | ||||||
|  |             peerix.nixosModules.peerix | ||||||
|  |             { | ||||||
|  |               services.peerix = { | ||||||
|  |                 enable = true; | ||||||
|  |                 globalCacheTTL = 10; | ||||||
|  |                 package = peerix.packages.x86_64-linux.peerix; | ||||||
|  |                 openFirewall = true; # UDP/12304 | ||||||
|  |                 privateKeyFile = mediabox.config.sops.secrets."peerix/private".path; | ||||||
|  |                 publicKeyFile = ./mediabox/peerix-public; | ||||||
|  |                 publicKey = "peerix-nixy:8THqS0R2zWF/47ai0RFmqJnieYTZ1jaWOD9tnzpvA6s="; | ||||||
|  |               }; | ||||||
|  |             } | ||||||
|           ]; |           ]; | ||||||
|         }; |         }; | ||||||
| 
 | 
 | ||||||
| @ -120,7 +150,7 @@ | |||||||
|             { |             { | ||||||
|               home-manager.useGlobalPkgs = true; |               home-manager.useGlobalPkgs = true; | ||||||
|               home-manager.useUserPackages = true; |               home-manager.useUserPackages = true; | ||||||
|               home-manager.users.akill = import ./home/blue/home.nix; |               home-manager.users.akill = import ./home/home.nix; | ||||||
|               home-manager.extraSpecialArgs = { inherit inputs system; }; |               home-manager.extraSpecialArgs = { inherit inputs system; }; | ||||||
|             } |             } | ||||||
|           ]; |           ]; | ||||||
|  | |||||||
| @ -10,12 +10,12 @@ let | |||||||
| in | in | ||||||
| { | { | ||||||
|   imports = [ |   imports = [ | ||||||
|     ../common/zsh.nix |     ./zsh.nix | ||||||
|     ../common/i3status-rust.nix |     ./i3status-rust.nix | ||||||
|     ../common/sway.nix |     ./sway.nix | ||||||
|     ../common/i3.nix |     ./i3.nix | ||||||
|     ./home_packages.nix |     ./home_packages.nix | ||||||
|     ../common/whatsapp-for-linux.nix |     ./whatsapp-for-linux.nix | ||||||
|   ]; |   ]; | ||||||
| 
 | 
 | ||||||
|   home.stateVersion = "22.11"; |   home.stateVersion = "22.11"; | ||||||
| @ -86,9 +86,7 @@ in | |||||||
|         hwdec = "auto"; |         hwdec = "auto"; | ||||||
|         vo = "gpu-next"; |         vo = "gpu-next"; | ||||||
|         ao = "pipewire"; |         ao = "pipewire"; | ||||||
|         osd-bar = "no"; |         script-opts-set = "ytdl_hook-ytdl_path=yt-dlp,sponsorblock-local_database=no,sponsorblock-skip_categories=[sponsor,intro,selfpromo]"; | ||||||
|         border = "no"; |  | ||||||
|         script-opts-set = ""; |  | ||||||
|         ytdl-format = "bestvideo[height<=?1080]+bestaudio/best"; |         ytdl-format = "bestvideo[height<=?1080]+bestaudio/best"; | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
| @ -162,6 +160,7 @@ in | |||||||
| 
 | 
 | ||||||
|     qutebrowser = { |     qutebrowser = { | ||||||
|       enable = true; |       enable = true; | ||||||
|  |       package = qutebrowser_firejail; | ||||||
|       keyBindings = { |       keyBindings = { | ||||||
|         normal = { |         normal = { | ||||||
|           "j" = "scroll-px 0 25"; |           "j" = "scroll-px 0 25"; | ||||||
| @ -252,26 +251,13 @@ in | |||||||
|     swayidle = |     swayidle = | ||||||
|       let |       let | ||||||
|         locker = pkgs.writeShellScriptBin "swaylock_fancy" '' |         locker = pkgs.writeShellScriptBin "swaylock_fancy" '' | ||||||
|           ALL_IMGS="" |           TMP_FILE=$(${pkgs.coreutils}/bin/mktemp /tmp/.swaylock_ss_XXXXXX.jpg) | ||||||
|           LOCK_ARGS="" |           ${lib.getExe pkgs.grim} -t ppm - | ${pkgs.imagemagick}/bin/convert - -blur 0x12 "$TMP_FILE" | ||||||
|           for OUTPUT in $(${pkgs.sway}/bin/swaymsg -t get_outputs | ${lib.getExe pkgs.jq} -r '.[].name') |           ${lib.getExe pkgs.swaylock} -f -i "$TMP_FILE" | ||||||
|           do |           ${pkgs.coreutils}/bin/shred "$TMP_FILE" | ||||||
|             TMP_FILE=$(${pkgs.coreutils}/bin/mktemp /tmp/.swaylock_ss_XXXXXX.jpg) |           ${pkgs.coreutils}/bin/rm "$TMP_FILE" | ||||||
|             ${lib.getExe pkgs.grim} -t ppm -o $OUTPUT - | \ |  | ||||||
|               ${lib.getExe pkgs.ffmpeg} -y -loglevel 0 -i - -vframes 1 -vf "boxblur=10" "$TMP_FILE" |  | ||||||
|             LOCK_ARGS="$LOCK_ARGS --image $OUTPUT:$TMP_FILE" |  | ||||||
|             ALL_IMGS="$ALL_IMGS $TMP_FILE" |  | ||||||
|           done |  | ||||||
|             ${lib.getExe pkgs.swaylock} -f $LOCK_ARGS |  | ||||||
|             ${pkgs.coreutils}/bin/shred $ALL_IMGS |  | ||||||
|             ${pkgs.coreutils}/bin/rm $ALL_IMGS |  | ||||||
|         ''; |         ''; | ||||||
|       in |       in | ||||||
|       /* |  | ||||||
|         refresh_i3status = pkgs.writeShellScriptBin "refresh_i3status" '' |  | ||||||
|           ${pkgs.coreutils}/bin/sleep 1 && ${pkgs.procps}/bin/pkill -USR1 i3status-rs |  | ||||||
|         ''; |  | ||||||
|       */ |  | ||||||
|       { |       { | ||||||
|         enable = true; |         enable = true; | ||||||
|         events = [ |         events = [ | ||||||
| @ -283,12 +269,10 @@ in | |||||||
|             event = "lock"; |             event = "lock"; | ||||||
|             command = "${locker}/bin/swaylock_fancy"; |             command = "${locker}/bin/swaylock_fancy"; | ||||||
|           } |           } | ||||||
|           /* |           { | ||||||
|             { |             event = "after-resume"; | ||||||
|               event = "after-resume"; |             command = "${pkgs.procps}/bin/pkill -USR1 i3status-rs"; | ||||||
|               command = "${refresh_i3status}/bin/refresh_i3status"; |           } | ||||||
|             } |  | ||||||
|           */ |  | ||||||
|         ]; |         ]; | ||||||
|         timeouts = [ |         timeouts = [ | ||||||
|           { |           { | ||||||
| @ -315,17 +299,17 @@ in | |||||||
|           profile.outputs = [ |           profile.outputs = [ | ||||||
|             { |             { | ||||||
|               criteria = "eDP-1"; |               criteria = "eDP-1"; | ||||||
|               position = "0,0"; |               position = "3840,0"; | ||||||
|             } |             } | ||||||
|             { |             { | ||||||
|               criteria = "Philips Consumer Electronics Company PHL 272S1 UHB2347026536"; |               criteria = "Philips Consumer Electronics Company PHL 272S1 UHB2347026536"; | ||||||
|               mode = "1920x1080@74.973Hz"; |               mode = "1920x1080@74.973Hz"; | ||||||
|               position = "1920,0"; |               position = "5760,0"; | ||||||
|             } |             } | ||||||
|             { |             { | ||||||
|               criteria = "Philips Consumer Electronics Company PHL 272S1 UHB2347026535"; |               criteria = "Philips Consumer Electronics Company PHL 272S1 UHB2347026535"; | ||||||
|               mode = "1920x1080@74.973Hz"; |               mode = "1920x1080@74.973Hz"; | ||||||
|               position = "3840,0"; |               position = "7680,0"; | ||||||
|             } |             } | ||||||
|           ]; |           ]; | ||||||
|         } |         } | ||||||
| @ -15,11 +15,6 @@ let | |||||||
|   chromium_stackfield = pkgs.writeShellScriptBin "chromium_stackfield" '' |   chromium_stackfield = pkgs.writeShellScriptBin "chromium_stackfield" '' | ||||||
|     ${lib.getExe pkgs.ungoogled-chromium} --socket=wayland org.chromium.Chromium --app=https://stackfield.com/ |     ${lib.getExe pkgs.ungoogled-chromium} --socket=wayland org.chromium.Chromium --app=https://stackfield.com/ | ||||||
|   ''; |   ''; | ||||||
|   nixy_switch = pkgs.writeShellScriptBin "nixy_switch" '' |  | ||||||
|     ${pkgs.util-linux}/bin/ionice -c 3 -- \ |  | ||||||
|     ${pkgs.coreutils}/bin/nice -n 20 -- \ |  | ||||||
|     ${lib.getExe pkgs.nixos-rebuild} --flake ./#nixy switch |  | ||||||
|   ''; |  | ||||||
|   qcad = pkgs.writeShellScriptBin "qcad" '' |   qcad = pkgs.writeShellScriptBin "qcad" '' | ||||||
|     QT_QPA_PLATFORM=xcb ${lib.getExe pkgs.qcad} $@ |     QT_QPA_PLATFORM=xcb ${lib.getExe pkgs.qcad} $@ | ||||||
|   ''; |   ''; | ||||||
| @ -33,7 +28,7 @@ let | |||||||
|   ''; |   ''; | ||||||
|   wrap_sh = |   wrap_sh = | ||||||
|     let |     let | ||||||
|       bubblewrap = pkgs.callPackage ../../packages/bubblewrap/default.nix { }; |       bubblewrap = pkgs.callPackage ../packages/bubblewrap/default.nix { }; | ||||||
|     in |     in | ||||||
|     pkgs.writeShellScriptBin "wrap.sh" '' |     pkgs.writeShellScriptBin "wrap.sh" '' | ||||||
|       if ${pkgs.coreutils-full}/bin/test $# -ne 1; then |       if ${pkgs.coreutils-full}/bin/test $# -ne 1; then | ||||||
| @ -63,10 +58,9 @@ in | |||||||
|       cached-nix-shell |       cached-nix-shell | ||||||
|       caddy |       caddy | ||||||
|       cargo |       cargo | ||||||
|  |       ungoogled-chromium | ||||||
|       cmake |       cmake | ||||||
|       compsize |       compsize | ||||||
|       kdePackages.ark |  | ||||||
|       ungoogled-chromium |  | ||||||
|       # cura |       # cura | ||||||
|       deluge |       deluge | ||||||
|       dfu-util |       dfu-util | ||||||
| @ -92,7 +86,7 @@ in | |||||||
|       imv |       imv | ||||||
|       inkscape |       inkscape | ||||||
|       jellyfin-media-player |       jellyfin-media-player | ||||||
|       kdePackages.kdenlive |       kdenlive | ||||||
|       kicad |       kicad | ||||||
|       kodi-wayland |       kodi-wayland | ||||||
|       krita |       krita | ||||||
| @ -110,6 +104,7 @@ in | |||||||
|       nix-init |       nix-init | ||||||
|       nixpkgs-fmt |       nixpkgs-fmt | ||||||
|       nix-prefetch-git |       nix-prefetch-git | ||||||
|  |       nodePackages.peerflix | ||||||
|       nom |       nom | ||||||
|       openems |       openems | ||||||
|       openocd |       openocd | ||||||
| @ -135,6 +130,7 @@ in | |||||||
|       screen |       screen | ||||||
|       seer |       seer | ||||||
|       sioyek |       sioyek | ||||||
|  |       skypeforlinux | ||||||
|       slurp |       slurp | ||||||
|       steam-run |       steam-run | ||||||
|       stm32cubemx |       stm32cubemx | ||||||
| @ -147,7 +143,6 @@ in | |||||||
|       thunderbird |       thunderbird | ||||||
|       typst |       typst | ||||||
|       upx |       upx | ||||||
|       viber |  | ||||||
|       waybar |       waybar | ||||||
|       wdisplays |       wdisplays | ||||||
|       weechat |       weechat | ||||||
| @ -170,13 +165,13 @@ in | |||||||
|       chromium_discord |       chromium_discord | ||||||
|       chromium_stackfield |       chromium_stackfield | ||||||
|       chromium_teams |       chromium_teams | ||||||
|       nixy_switch |  | ||||||
|       qcad |  | ||||||
|       ssh_proxy |       ssh_proxy | ||||||
|       wrap_sh |       wrap_sh | ||||||
|  |       qcad | ||||||
|     ] |     ] | ||||||
|     ++ [ |     ++ [ | ||||||
|       inputs.swaysw.packages.${system}.swaysw |       inputs.swaysw.packages.${system}.swaysw | ||||||
|       (pkgs.callPackage ../../packages/bubblewrap/default.nix { }) |       (pkgs.callPackage ../packages/viber/default.nix { }) | ||||||
|  |       (pkgs.callPackage ../packages/bubblewrap/default.nix { }) | ||||||
|     ]; |     ]; | ||||||
| } | } | ||||||
| @ -1,14 +1,4 @@ | |||||||
| { pkgs, ... }: | { ... }: | ||||||
| let |  | ||||||
|   kbd_switch = pkgs.writeShellScriptBin "kbd_switch" '' |  | ||||||
|     declare -A -r KBD_CYCLE_MAP=( |  | ||||||
|       ["English (US)"]="de" |  | ||||||
|       ["German"]="ba" |  | ||||||
|     ) |  | ||||||
|     LAYOUT="$(${pkgs.sway}/bin/swaymsg -t get_inputs -r | ${pkgs.jq}/bin/jq -r 'map(select(.type == "keyboard")).[0].xkb_layout_names.[]')" |  | ||||||
|     swaymsg input "*" xkb_layout ''${KBD_CYCLE_MAP["$LAYOUT"]:-"us"} |  | ||||||
|   ''; |  | ||||||
| in |  | ||||||
| { | { | ||||||
|   programs.i3status-rust = { |   programs.i3status-rust = { | ||||||
|     bars.top = { |     bars.top = { | ||||||
| @ -22,16 +12,6 @@ in | |||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|       blocks = [ |       blocks = [ | ||||||
|         { |  | ||||||
|           block = "keyboard_layout"; |  | ||||||
|           driver = "sway"; |  | ||||||
|           click = [ |  | ||||||
|             { |  | ||||||
|               cmd = "${kbd_switch}/bin/kbd_switch"; |  | ||||||
|               button = "left"; |  | ||||||
|             } |  | ||||||
|           ]; |  | ||||||
|         } |  | ||||||
|         { |         { | ||||||
|           block = "battery"; |           block = "battery"; | ||||||
|           interval = 10; |           interval = 10; | ||||||
| @ -56,30 +36,20 @@ in | |||||||
|         { |         { | ||||||
|           block = "net"; |           block = "net"; | ||||||
|           device = "wlan0"; |           device = "wlan0"; | ||||||
|           if_command = "ip link show wlan0"; |  | ||||||
|           interval = 2; |           interval = 2; | ||||||
|         } |         } | ||||||
|         { |         { | ||||||
|           block = "net"; |           block = "net"; | ||||||
|           device = "enp5s0"; |           device = "enp5s0"; | ||||||
|           if_command = "ip link show enp5s0"; |  | ||||||
|           interval = 2; |           interval = 2; | ||||||
|         } |         } | ||||||
|         { |         { | ||||||
|           block = "net"; |           block = "net"; | ||||||
|           device = "enp7s0f3u1u1"; |           device = "enp7s0f3u1u1"; | ||||||
|           if_command = "ip link show enp7s0f3u1u1"; |  | ||||||
|           interval = 2; |           interval = 2; | ||||||
|         } |         } | ||||||
|         { |         { | ||||||
|           block = "net"; |           block = "net"; | ||||||
|           device = "enp7s0f4u1u1"; |  | ||||||
|           if_command = "ip link show enp7s0f4u1u1"; |  | ||||||
|           interval = 2; |  | ||||||
|         } |  | ||||||
|         { |  | ||||||
|           block = "net"; |  | ||||||
|           if_command = "ip link show eno1"; |  | ||||||
|           device = "eno1"; |           device = "eno1"; | ||||||
|           interval = 2; |           interval = 2; | ||||||
|         } |         } | ||||||
| @ -1,348 +0,0 @@ | |||||||
| { |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| let |  | ||||||
|   qutebrowser_firejail = pkgs.writeShellScriptBin "qutebrowser" '' |  | ||||||
|     firejail -- ${lib.getExe pkgs.qutebrowser} "$@" |  | ||||||
|   ''; |  | ||||||
| in |  | ||||||
| { |  | ||||||
|   imports = [ |  | ||||||
|     ../common/zsh.nix |  | ||||||
|     ./home_packages.nix |  | ||||||
|     ../common/whatsapp-for-linux.nix |  | ||||||
|   ]; |  | ||||||
| 
 |  | ||||||
|   home.stateVersion = "22.11"; |  | ||||||
|   home.username = "akill"; |  | ||||||
|   home.homeDirectory = "/home/akill"; |  | ||||||
| 
 |  | ||||||
|   xdg.enable = true; |  | ||||||
|   xdg.mimeApps = { |  | ||||||
|     enable = true; |  | ||||||
|     defaultApplications = { |  | ||||||
|       "application/pdf" = "sioyek.desktop"; |  | ||||||
|       "default-web-browser" = "org.qutebrowser.qutebrowser.desktop"; |  | ||||||
|       "text/html" = "org.qutebrowser.qutebrowser.desktop"; |  | ||||||
|       "x-scheme-handler/about" = "org.qutebrowser.qutebrowser.desktop"; |  | ||||||
|       "x-scheme-handler/http" = "org.qutebrowser.qutebrowser.desktop"; |  | ||||||
|       "x-scheme-handler/https" = "org.qutebrowser.qutebrowser.desktop"; |  | ||||||
|       "x-scheme-handler/unknown" = "org.qutebrowser.qutebrowser.desktop"; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   fonts.fontconfig.enable = true; |  | ||||||
| 
 |  | ||||||
|   home.sessionVariables = rec { |  | ||||||
|     BROWSER = lib.getExe qutebrowser_firejail; |  | ||||||
|     DEFAULT_BROWSER = "${BROWSER}"; |  | ||||||
|     EDITOR = "nvim"; |  | ||||||
|     _JAVA_AWT_WM_NONREPARENTING = "1"; |  | ||||||
|     MOZ_ENABLE_WAYLAND = "1"; |  | ||||||
|     NIXOS_OZONE_WL = "1"; |  | ||||||
|     QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; |  | ||||||
|     SUDO_EDITOR = "nvim"; |  | ||||||
|     WLR_RENDERER = "vulkan"; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   wayland.windowManager.sway = { |  | ||||||
|     enable = false; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   programs = { |  | ||||||
|     home-manager.enable = true; |  | ||||||
| 
 |  | ||||||
|     librewolf = { |  | ||||||
|       enable = true; |  | ||||||
|       package = pkgs.librewolf-wayland; |  | ||||||
|       settings = { |  | ||||||
|         "webgl.disable" = true; |  | ||||||
|         "middlemouse.paste" = false; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     tmux = { |  | ||||||
|       enable = true; |  | ||||||
|       clock24 = true; |  | ||||||
|       keyMode = "vi"; |  | ||||||
|       terminal = "screen-256color"; |  | ||||||
|       plugins = with pkgs.tmuxPlugins; [ |  | ||||||
|         sysstat |  | ||||||
|         net-speed |  | ||||||
|         gruvbox |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     mpv = { |  | ||||||
|       enable = true; |  | ||||||
|       config = { |  | ||||||
|         slang = "eng,en"; |  | ||||||
|         alang = "eng,en"; |  | ||||||
|         hwdec = "auto"; |  | ||||||
|         vo = "gpu-next"; |  | ||||||
|         ao = "pipewire"; |  | ||||||
|         osd-bar = "no"; |  | ||||||
|         border = "no"; |  | ||||||
|         script-opts-set = ""; |  | ||||||
|         ytdl-format = "bestvideo[height<=?1080]+bestaudio/best"; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       bindings = { |  | ||||||
|         WHEEL_UP = "ignore"; |  | ||||||
|         WHEEL_DOWN = "ignore"; |  | ||||||
|         WHEEL_LEFT = "ignore"; |  | ||||||
|         WHEEL_RIGHT = "ignore"; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     alacritty = { |  | ||||||
|       enable = true; |  | ||||||
| 
 |  | ||||||
|       settings = { |  | ||||||
|         font = { |  | ||||||
|           normal.family = "JetBrainsMono"; |  | ||||||
|           italic.family = "JetBrainsMono"; |  | ||||||
|           bold.family = "JetBrainsMono"; |  | ||||||
|           bold_italic.family = "JetBrainsMono"; |  | ||||||
|           size = 14.0; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         selection = { |  | ||||||
|           text = "0xcfcfc2"; |  | ||||||
|           background = "0x232629"; |  | ||||||
| 
 |  | ||||||
|           normal = { |  | ||||||
|             black = "0x1c1b19"; |  | ||||||
|             red = "0xef2f27"; |  | ||||||
|             green = "0x519f50"; |  | ||||||
|             yellow = "0xfbb829"; |  | ||||||
|             blue = "0x2c78bf"; |  | ||||||
|             magenta = "0xe02c6d"; |  | ||||||
|             cyan = "0x0aaeb3"; |  | ||||||
|             white = "0x918175"; |  | ||||||
|           }; |  | ||||||
| 
 |  | ||||||
|           bright = { |  | ||||||
|             black = "0x2D2C29"; |  | ||||||
|             red = "0xf75341"; |  | ||||||
|             green = "0x98bc37"; |  | ||||||
|             yellow = "0xfed06e"; |  | ||||||
|             blue = "0x68A8E4"; |  | ||||||
|             magenta = "0xff5c8f"; |  | ||||||
|             cyan = "0x53fde9"; |  | ||||||
|             white = "0xfce8c3"; |  | ||||||
|           }; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     rofi = { |  | ||||||
|       enable = true; |  | ||||||
|       theme = "gruvbox-dark"; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     foot = { |  | ||||||
|       enable = true; |  | ||||||
|       server.enable = true; |  | ||||||
|       settings = { |  | ||||||
|         main = { |  | ||||||
|           font = "JetBrainsMono:size=10"; |  | ||||||
|           dpi-aware = "yes"; |  | ||||||
|         }; |  | ||||||
|         mouse = { |  | ||||||
|           hide-when-typing = "yes"; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     qutebrowser = { |  | ||||||
|       enable = true; |  | ||||||
|       keyBindings = { |  | ||||||
|         normal = { |  | ||||||
|           "j" = "scroll-px 0 25"; |  | ||||||
|           "k" = "scroll-px 0 -25"; |  | ||||||
|           "u" = "undo --window"; |  | ||||||
|           ";v" = "hint links spawn mpv {hint-url}"; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       settings = { |  | ||||||
|         content.notifications.enabled = false; |  | ||||||
|         content.pdfjs = true; |  | ||||||
|         content.webgl = false; |  | ||||||
|         fonts.completion.category = "14pt monospace"; |  | ||||||
|         fonts.completion.entry = "14pt monospace"; |  | ||||||
|         fonts.contextmenu = "14pt monospace"; |  | ||||||
|         fonts.debug_console = "14pt monospace"; |  | ||||||
|         fonts.downloads = "14pt monospace"; |  | ||||||
|         fonts.hints = "14pt monospace"; |  | ||||||
|         fonts.keyhint = "14pt monospace"; |  | ||||||
|         fonts.messages.info = "14pt monospace"; |  | ||||||
|         fonts.prompts = "14pt monospace"; |  | ||||||
|         fonts.statusbar = "14pt monospace"; |  | ||||||
|         hints.chars = "1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik9ol0p"; |  | ||||||
|         tabs.last_close = "close"; |  | ||||||
|         tabs.position = "left"; |  | ||||||
|         tabs.show = "multiple"; |  | ||||||
|         tabs.tabs_are_windows = true; |  | ||||||
|         tabs.width = "12%"; |  | ||||||
|         zoom.default = "125%"; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     git = { |  | ||||||
|       enable = true; |  | ||||||
|       userName = "Asmir A"; |  | ||||||
|       userEmail = "asmir.abdulahovic@gmail.com"; |  | ||||||
|       extraConfig = { |  | ||||||
|         init.defaultBranch = "master"; |  | ||||||
|         pull = { |  | ||||||
|           rebase = true; |  | ||||||
|         }; |  | ||||||
|         credential = { |  | ||||||
|           helper = "store"; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|       signing.key = "020C42B7A9ABA3E2"; |  | ||||||
|       signing.signByDefault = true; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     obs-studio = { |  | ||||||
|       enable = true; |  | ||||||
|       plugins = with pkgs.obs-studio-plugins; [ |  | ||||||
|         obs-vkcapture |  | ||||||
|         input-overlay |  | ||||||
|         obs-multi-rtmp |  | ||||||
|         obs-pipewire-audio-capture |  | ||||||
|         wlrobs |  | ||||||
|         obs-vaapi |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     i3status-rust.enable = false; |  | ||||||
|     z-lua.enable = true; |  | ||||||
|     zsh.enable = true; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   services = { |  | ||||||
|     lorri.enable = false; |  | ||||||
|     mako.enable = true; |  | ||||||
|     cliphist.enable = true; |  | ||||||
|     gammastep = { |  | ||||||
|       enable = true; |  | ||||||
|       latitude = "44.53"; |  | ||||||
|       longitude = "18.67"; |  | ||||||
|       temperature.day = 5500; |  | ||||||
|       temperature.night = 2900; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     gnome-keyring.enable = true; |  | ||||||
| 
 |  | ||||||
|     gpg-agent = { |  | ||||||
|       enable = true; |  | ||||||
|       defaultCacheTtl = 1800; |  | ||||||
|       enableSshSupport = true; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     swayidle = |  | ||||||
|       let |  | ||||||
|         locker = pkgs.writeShellScriptBin "swaylock_fancy" '' |  | ||||||
|           ALL_IMGS="" |  | ||||||
|           LOCK_ARGS="" |  | ||||||
|           for OUTPUT in $(${pkgs.sway}/bin/swaymsg -t get_outputs | ${lib.getExe pkgs.jq} -r '.[].name') |  | ||||||
|           do |  | ||||||
|             TMP_FILE=$(${pkgs.coreutils}/bin/mktemp /tmp/.swaylock_ss_XXXXXX.jpg) |  | ||||||
|             ${lib.getExe pkgs.grim} -t ppm -o $OUTPUT - | \ |  | ||||||
|               ${lib.getExe pkgs.ffmpeg} -y -loglevel 0 -i - -vframes 1 -vf "boxblur=10" "$TMP_FILE" |  | ||||||
|             LOCK_ARGS="$LOCK_ARGS --image $OUTPUT:$TMP_FILE" |  | ||||||
|             ALL_IMGS="$ALL_IMGS $TMP_FILE" |  | ||||||
|           done |  | ||||||
|             ${lib.getExe pkgs.swaylock} -f $LOCK_ARGS |  | ||||||
|             ${pkgs.coreutils}/bin/shred $ALL_IMGS |  | ||||||
|             ${pkgs.coreutils}/bin/rm $ALL_IMGS |  | ||||||
|         ''; |  | ||||||
|       in |  | ||||||
|       /* |  | ||||||
|         refresh_i3status = pkgs.writeShellScriptBin "refresh_i3status" '' |  | ||||||
|           ${pkgs.coreutils}/bin/sleep 1 && ${pkgs.procps}/bin/pkill -USR1 i3status-rs |  | ||||||
|         ''; |  | ||||||
|       */ |  | ||||||
|       { |  | ||||||
|         enable = false; |  | ||||||
|         events = [ |  | ||||||
|           { |  | ||||||
|             event = "before-sleep"; |  | ||||||
|             command = "${locker}/bin/swaylock_fancy"; |  | ||||||
|           } |  | ||||||
|           { |  | ||||||
|             event = "lock"; |  | ||||||
|             command = "${locker}/bin/swaylock_fancy"; |  | ||||||
|           } |  | ||||||
|           /* |  | ||||||
|             { |  | ||||||
|               event = "after-resume"; |  | ||||||
|               command = "${refresh_i3status}/bin/refresh_i3status"; |  | ||||||
|             } |  | ||||||
|           */ |  | ||||||
|         ]; |  | ||||||
|         timeouts = [ |  | ||||||
|           { |  | ||||||
|             timeout = 15 * 60; |  | ||||||
|             command = "${locker}/bin/swaylock_fancy"; |  | ||||||
|           } |  | ||||||
|         ]; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|     kanshi = { |  | ||||||
|       enable = false; |  | ||||||
|       settings = [ |  | ||||||
|         { |  | ||||||
|           profile.name = "undocked"; |  | ||||||
|           profile.outputs = [ |  | ||||||
|             { |  | ||||||
|               criteria = "eDP-1"; |  | ||||||
|             } |  | ||||||
|           ]; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         { |  | ||||||
|           profile.name = "docked"; |  | ||||||
|           profile.outputs = [ |  | ||||||
|             { |  | ||||||
|               criteria = "eDP-1"; |  | ||||||
|               position = "0,0"; |  | ||||||
|             } |  | ||||||
|             { |  | ||||||
|               criteria = "Philips Consumer Electronics Company PHL 272S1 UHB2347026536"; |  | ||||||
|               mode = "1920x1080@74.973Hz"; |  | ||||||
|               position = "1920,0"; |  | ||||||
|             } |  | ||||||
|             { |  | ||||||
|               criteria = "Philips Consumer Electronics Company PHL 272S1 UHB2347026535"; |  | ||||||
|               mode = "1920x1080@74.973Hz"; |  | ||||||
|               position = "3840,0"; |  | ||||||
|             } |  | ||||||
|           ]; |  | ||||||
|         } |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   systemd.user = { |  | ||||||
|     services = { |  | ||||||
|       wayland-pipewire-idle-inhibit = { |  | ||||||
|         Unit.Description = "inhibit sleep while audio output is active"; |  | ||||||
|         Service = { |  | ||||||
|           ExecStart = "${lib.getExe pkgs.wayland-pipewire-idle-inhibit}"; |  | ||||||
|           Restart = "always"; |  | ||||||
|           RestartSec = 10; |  | ||||||
|         }; |  | ||||||
|         Install = { |  | ||||||
|           WantedBy = [ "graphical-session.target" ]; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
| @ -1,58 +0,0 @@ | |||||||
| { lib |  | ||||||
| , pkgs |  | ||||||
| , ... |  | ||||||
| }: |  | ||||||
| let |  | ||||||
|   chromium_discord = pkgs.writeShellScriptBin "chromium_discord" '' |  | ||||||
|     ${lib.getExe pkgs.ungoogled-chromium} --socket=wayland org.chromium.Chromium --app=https://discordapp.com/channels/@me |  | ||||||
|   ''; |  | ||||||
| in |  | ||||||
| { |  | ||||||
|   home.packages = |  | ||||||
|     with pkgs; |  | ||||||
|     [ |  | ||||||
|       cached-nix-shell |  | ||||||
|       deluge |  | ||||||
|       dualsensectl |  | ||||||
|       ffmpeg-full |  | ||||||
|       firefox |  | ||||||
|       freetube |  | ||||||
|       imv |  | ||||||
|       inkscape |  | ||||||
|       jellyfin-media-player |  | ||||||
|       kodi-wayland |  | ||||||
|       libnotify |  | ||||||
|       libreoffice-qt6-fresh |  | ||||||
|       libva-utils |  | ||||||
|       nixpkgs-fmt |  | ||||||
|       nix-prefetch-git |  | ||||||
|       pandoc |  | ||||||
|       paraview |  | ||||||
|       pass-wayland |  | ||||||
|       pavucontrol |  | ||||||
|       pay-respects |  | ||||||
|       pirate-get |  | ||||||
|       poppler_utils |  | ||||||
|       pulsemixer |  | ||||||
|       pwvucontrol |  | ||||||
|       python3 |  | ||||||
|       remmina |  | ||||||
|       rtorrent |  | ||||||
|       sioyek |  | ||||||
|       steam-run |  | ||||||
|       stremio |  | ||||||
|       swayimg |  | ||||||
|       tessen |  | ||||||
|       ungoogled-chromium |  | ||||||
|       wdisplays |  | ||||||
|       wine |  | ||||||
|       wl-clipboard |  | ||||||
|       wlr-randr |  | ||||||
|       wofi |  | ||||||
|       yt-dlp |  | ||||||
|       zathura |  | ||||||
|     ] |  | ||||||
|     ++ [ |  | ||||||
|       chromium_discord |  | ||||||
|     ]; |  | ||||||
| } |  | ||||||
| @ -1,362 +0,0 @@ | |||||||
| { lib |  | ||||||
| , pkgs |  | ||||||
| , ... |  | ||||||
| }: |  | ||||||
| let |  | ||||||
|   qutebrowser_firejail = pkgs.writeShellScriptBin "qutebrowser" '' |  | ||||||
|     firejail -- ${lib.getExe pkgs.qutebrowser} "$@" |  | ||||||
|   ''; |  | ||||||
| in |  | ||||||
| { |  | ||||||
|   imports = [ |  | ||||||
|     ../common/zsh.nix |  | ||||||
|     ../common/i3status-rust.nix |  | ||||||
|     ../common/sway.nix |  | ||||||
|     ../common/i3.nix |  | ||||||
|     ./home_packages.nix |  | ||||||
|     ../common/whatsapp-for-linux.nix |  | ||||||
|   ]; |  | ||||||
| 
 |  | ||||||
|   home.stateVersion = "22.11"; |  | ||||||
|   home.username = "akill"; |  | ||||||
|   home.homeDirectory = "/home/akill"; |  | ||||||
| 
 |  | ||||||
|   xdg.enable = true; |  | ||||||
|   xdg.mimeApps = { |  | ||||||
|     enable = true; |  | ||||||
|     defaultApplications = { |  | ||||||
|       "application/pdf" = "sioyek.desktop"; |  | ||||||
|       "default-web-browser" = "org.qutebrowser.qutebrowser.desktop"; |  | ||||||
|       "text/html" = "org.qutebrowser.qutebrowser.desktop"; |  | ||||||
|       "x-scheme-handler/about" = "org.qutebrowser.qutebrowser.desktop"; |  | ||||||
|       "x-scheme-handler/http" = "org.qutebrowser.qutebrowser.desktop"; |  | ||||||
|       "x-scheme-handler/https" = "org.qutebrowser.qutebrowser.desktop"; |  | ||||||
|       "x-scheme-handler/unknown" = "org.qutebrowser.qutebrowser.desktop"; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   fonts.fontconfig.enable = true; |  | ||||||
| 
 |  | ||||||
|   home.sessionVariables = rec { |  | ||||||
|     BROWSER = lib.getExe qutebrowser_firejail; |  | ||||||
|     DEFAULT_BROWSER = "${BROWSER}"; |  | ||||||
|     EDITOR = "nvim"; |  | ||||||
|     _JAVA_AWT_WM_NONREPARENTING = "1"; |  | ||||||
|     MOZ_ENABLE_WAYLAND = "1"; |  | ||||||
|     NIXOS_OZONE_WL = "1"; |  | ||||||
|     QT_WAYLAND_DISABLE_WINDOWDECORATION = "1"; |  | ||||||
|     SUDO_EDITOR = "nvim"; |  | ||||||
|     WLR_RENDERER = "vulkan"; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   home.pointerCursor = { |  | ||||||
|     package = pkgs.adwaita-icon-theme; |  | ||||||
|     name = "Adwaita"; |  | ||||||
|     size = 38; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   wayland.windowManager.sway = { |  | ||||||
|     enable = true; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   programs = { |  | ||||||
|     home-manager.enable = true; |  | ||||||
| 
 |  | ||||||
|     librewolf = { |  | ||||||
|       enable = true; |  | ||||||
|       package = pkgs.librewolf-wayland; |  | ||||||
|       settings = { |  | ||||||
|         "webgl.disable" = true; |  | ||||||
|         "middlemouse.paste" = false; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     tmux = { |  | ||||||
|       enable = true; |  | ||||||
|       clock24 = true; |  | ||||||
|       keyMode = "vi"; |  | ||||||
|       terminal = "screen-256color"; |  | ||||||
|       plugins = with pkgs.tmuxPlugins; [ |  | ||||||
|         sysstat |  | ||||||
|         net-speed |  | ||||||
|         gruvbox |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     mpv = { |  | ||||||
|       enable = true; |  | ||||||
|       scripts = [ |  | ||||||
|         pkgs.mpvScripts.uosc |  | ||||||
|         pkgs.mpvScripts.autosubsync-mpv |  | ||||||
|       ]; |  | ||||||
|       config = { |  | ||||||
|         osc = "no"; |  | ||||||
|         osd-bar = "no"; |  | ||||||
|         border = "no"; |  | ||||||
|         slang = "eng,en"; |  | ||||||
|         alang = "eng,en"; |  | ||||||
|         hwdec = "auto"; |  | ||||||
|         vo = "gpu-next"; |  | ||||||
|         ao = "pipewire"; |  | ||||||
|         ytdl-format = "bestvideo[height<=?1080]+bestaudio/best"; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       bindings = { |  | ||||||
|         "s" = "script-binding uosc/subtitles"; |  | ||||||
|         "a" = "script-binding uosc/audio"; |  | ||||||
|         WHEEL_UP = "ignore"; |  | ||||||
|         WHEEL_DOWN = "ignore"; |  | ||||||
|         WHEEL_LEFT = "ignore"; |  | ||||||
|         WHEEL_RIGHT = "ignore"; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     alacritty = { |  | ||||||
|       enable = true; |  | ||||||
| 
 |  | ||||||
|       settings = { |  | ||||||
|         font = { |  | ||||||
|           normal.family = "JetBrainsMono"; |  | ||||||
|           italic.family = "JetBrainsMono"; |  | ||||||
|           bold.family = "JetBrainsMono"; |  | ||||||
|           bold_italic.family = "JetBrainsMono"; |  | ||||||
|           size = 14.0; |  | ||||||
|         }; |  | ||||||
| 
 |  | ||||||
|         selection = { |  | ||||||
|           text = "0xcfcfc2"; |  | ||||||
|           background = "0x232629"; |  | ||||||
| 
 |  | ||||||
|           normal = { |  | ||||||
|             black = "0x1c1b19"; |  | ||||||
|             red = "0xef2f27"; |  | ||||||
|             green = "0x519f50"; |  | ||||||
|             yellow = "0xfbb829"; |  | ||||||
|             blue = "0x2c78bf"; |  | ||||||
|             magenta = "0xe02c6d"; |  | ||||||
|             cyan = "0x0aaeb3"; |  | ||||||
|             white = "0x918175"; |  | ||||||
|           }; |  | ||||||
| 
 |  | ||||||
|           bright = { |  | ||||||
|             black = "0x2D2C29"; |  | ||||||
|             red = "0xf75341"; |  | ||||||
|             green = "0x98bc37"; |  | ||||||
|             yellow = "0xfed06e"; |  | ||||||
|             blue = "0x68A8E4"; |  | ||||||
|             magenta = "0xff5c8f"; |  | ||||||
|             cyan = "0x53fde9"; |  | ||||||
|             white = "0xfce8c3"; |  | ||||||
|           }; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     rofi = { |  | ||||||
|       enable = true; |  | ||||||
|       theme = "gruvbox-dark"; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     foot = { |  | ||||||
|       enable = true; |  | ||||||
|       server.enable = true; |  | ||||||
|       settings = { |  | ||||||
|         main = { |  | ||||||
|           font = "JetBrainsMono:size=10"; |  | ||||||
|           dpi-aware = "yes"; |  | ||||||
|         }; |  | ||||||
|         mouse = { |  | ||||||
|           hide-when-typing = "yes"; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     qutebrowser = { |  | ||||||
|       enable = true; |  | ||||||
|       keyBindings = { |  | ||||||
|         normal = { |  | ||||||
|           "j" = "scroll-px 0 25"; |  | ||||||
|           "k" = "scroll-px 0 -25"; |  | ||||||
|           "u" = "undo --window"; |  | ||||||
|           ";v" = "hint links spawn mpv {hint-url}"; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       settings = { |  | ||||||
|         content.notifications.enabled = false; |  | ||||||
|         content.pdfjs = true; |  | ||||||
|         content.webgl = false; |  | ||||||
|         fonts.completion.category = "14pt monospace"; |  | ||||||
|         fonts.completion.entry = "14pt monospace"; |  | ||||||
|         fonts.contextmenu = "14pt monospace"; |  | ||||||
|         fonts.debug_console = "14pt monospace"; |  | ||||||
|         fonts.downloads = "14pt monospace"; |  | ||||||
|         fonts.hints = "14pt monospace"; |  | ||||||
|         fonts.keyhint = "14pt monospace"; |  | ||||||
|         fonts.messages.info = "14pt monospace"; |  | ||||||
|         fonts.prompts = "14pt monospace"; |  | ||||||
|         fonts.statusbar = "14pt monospace"; |  | ||||||
|         hints.chars = "1qaz2wsx3edc4rfv5tgb6yhn7ujm8ik9ol0p"; |  | ||||||
|         tabs.last_close = "close"; |  | ||||||
|         tabs.position = "left"; |  | ||||||
|         tabs.show = "multiple"; |  | ||||||
|         tabs.tabs_are_windows = true; |  | ||||||
|         tabs.width = "12%"; |  | ||||||
|         zoom.default = "125%"; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     git = { |  | ||||||
|       enable = true; |  | ||||||
|       userName = "Asmir A"; |  | ||||||
|       userEmail = "asmir.abdulahovic@gmail.com"; |  | ||||||
|       extraConfig = { |  | ||||||
|         init.defaultBranch = "master"; |  | ||||||
|         pull = { |  | ||||||
|           rebase = true; |  | ||||||
|         }; |  | ||||||
|         credential = { |  | ||||||
|           helper = "store"; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|       signing.key = "020C42B7A9ABA3E2"; |  | ||||||
|       signing.signByDefault = true; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     obs-studio = { |  | ||||||
|       enable = true; |  | ||||||
|       plugins = with pkgs.obs-studio-plugins; [ |  | ||||||
|         obs-vkcapture |  | ||||||
|         input-overlay |  | ||||||
|         obs-multi-rtmp |  | ||||||
|         obs-pipewire-audio-capture |  | ||||||
|         wlrobs |  | ||||||
|         obs-vaapi |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     i3status-rust.enable = true; |  | ||||||
|     z-lua.enable = true; |  | ||||||
|     zsh.enable = true; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   services = { |  | ||||||
|     lorri.enable = false; |  | ||||||
|     mako.enable = true; |  | ||||||
|     cliphist.enable = true; |  | ||||||
|     gammastep = { |  | ||||||
|       enable = true; |  | ||||||
|       latitude = "44.53"; |  | ||||||
|       longitude = "18.67"; |  | ||||||
|       temperature.day = 5500; |  | ||||||
|       temperature.night = 2900; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     gnome-keyring.enable = true; |  | ||||||
| 
 |  | ||||||
|     gpg-agent = { |  | ||||||
|       enable = true; |  | ||||||
|       defaultCacheTtl = 1800; |  | ||||||
|       enableSshSupport = true; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     swayidle = |  | ||||||
|       let |  | ||||||
|         locker = pkgs.writeShellScriptBin "swaylock_fancy" '' |  | ||||||
|           ALL_IMGS="" |  | ||||||
|           LOCK_ARGS="" |  | ||||||
|           for OUTPUT in $(${pkgs.sway}/bin/swaymsg -t get_outputs | ${lib.getExe pkgs.jq} -r '.[].name') |  | ||||||
|           do |  | ||||||
|             TMP_FILE=$(${pkgs.coreutils}/bin/mktemp /tmp/.swaylock_ss_XXXXXX.jpg) |  | ||||||
|             ${lib.getExe pkgs.grim} -t ppm -o $OUTPUT - | \ |  | ||||||
|               ${lib.getExe pkgs.ffmpeg} -y -loglevel 0 -i - -vframes 1 -vf "boxblur=10" "$TMP_FILE" |  | ||||||
|             LOCK_ARGS="$LOCK_ARGS --image $OUTPUT:$TMP_FILE" |  | ||||||
|             ALL_IMGS="$ALL_IMGS $TMP_FILE" |  | ||||||
|           done |  | ||||||
|             ${lib.getExe pkgs.swaylock} -f $LOCK_ARGS |  | ||||||
|             ${pkgs.coreutils}/bin/shred $ALL_IMGS |  | ||||||
|             ${pkgs.coreutils}/bin/rm $ALL_IMGS |  | ||||||
|         ''; |  | ||||||
|       in |  | ||||||
|         /* |  | ||||||
|         refresh_i3status = pkgs.writeShellScriptBin "refresh_i3status" '' |  | ||||||
|           ${pkgs.coreutils}/bin/sleep 1 && ${pkgs.procps}/bin/pkill -USR1 i3status-rs |  | ||||||
|         ''; |  | ||||||
|         */ |  | ||||||
|       { |  | ||||||
|         enable = true; |  | ||||||
|         events = [ |  | ||||||
|           { |  | ||||||
|             event = "before-sleep"; |  | ||||||
|             command = "${locker}/bin/swaylock_fancy"; |  | ||||||
|           } |  | ||||||
|           { |  | ||||||
|             event = "lock"; |  | ||||||
|             command = "${locker}/bin/swaylock_fancy"; |  | ||||||
|           } |  | ||||||
|           /* |  | ||||||
|             { |  | ||||||
|               event = "after-resume"; |  | ||||||
|               command = "${refresh_i3status}/bin/refresh_i3status"; |  | ||||||
|             } |  | ||||||
|           */ |  | ||||||
|         ]; |  | ||||||
|         timeouts = [ |  | ||||||
|           { |  | ||||||
|             timeout = 15 * 60; |  | ||||||
|             command = "${locker}/bin/swaylock_fancy"; |  | ||||||
|           } |  | ||||||
|         ]; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|     kanshi = { |  | ||||||
|       enable = true; |  | ||||||
|       settings = [ |  | ||||||
|         { |  | ||||||
|           profile.name = "undocked"; |  | ||||||
|           profile.outputs = [ |  | ||||||
|             { |  | ||||||
|               criteria = "eDP-1"; |  | ||||||
|             } |  | ||||||
|           ]; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         { |  | ||||||
|           profile.name = "docked"; |  | ||||||
|           profile.outputs = [ |  | ||||||
|             { |  | ||||||
|               criteria = "eDP-1"; |  | ||||||
|               position = "0,0"; |  | ||||||
|             } |  | ||||||
|             { |  | ||||||
|               criteria = "Philips Consumer Electronics Company PHL 272S1 UHB2347026536"; |  | ||||||
|               mode = "1920x1080@74.973Hz"; |  | ||||||
|               position = "1920,0"; |  | ||||||
|             } |  | ||||||
|             { |  | ||||||
|               criteria = "Philips Consumer Electronics Company PHL 272S1 UHB2347026535"; |  | ||||||
|               mode = "1920x1080@74.973Hz"; |  | ||||||
|               position = "3840,0"; |  | ||||||
|             } |  | ||||||
|           ]; |  | ||||||
|         } |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| 
 |  | ||||||
|   systemd.user = { |  | ||||||
|     services = { |  | ||||||
|       wayland-pipewire-idle-inhibit = { |  | ||||||
|         Unit.Description = "inhibit sleep while audio output is active"; |  | ||||||
|         Service = { |  | ||||||
|           ExecStart = "${lib.getExe pkgs.wayland-pipewire-idle-inhibit}"; |  | ||||||
|           Restart = "always"; |  | ||||||
|           RestartSec = 10; |  | ||||||
|         }; |  | ||||||
|         Install = { |  | ||||||
|           WantedBy = [ "graphical-session.target" ]; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
|     }; |  | ||||||
|   }; |  | ||||||
| } |  | ||||||
| @ -1,183 +0,0 @@ | |||||||
| { |  | ||||||
|   lib, |  | ||||||
|   pkgs, |  | ||||||
|   inputs, |  | ||||||
|   system, |  | ||||||
|   ... |  | ||||||
| }: |  | ||||||
| let |  | ||||||
|   chromium_teams = pkgs.writeShellScriptBin "chromium_teams" '' |  | ||||||
|     ${lib.getExe pkgs.ungoogled-chromium} --socket=wayland org.chromium.Chromium --app=https://teams.microsoft.com/ |  | ||||||
|   ''; |  | ||||||
|   chromium_discord = pkgs.writeShellScriptBin "chromium_discord" '' |  | ||||||
|     ${lib.getExe pkgs.ungoogled-chromium} --socket=wayland org.chromium.Chromium --app=https://discordapp.com/channels/@me |  | ||||||
|   ''; |  | ||||||
|   chromium_stackfield = pkgs.writeShellScriptBin "chromium_stackfield" '' |  | ||||||
|     ${lib.getExe pkgs.ungoogled-chromium} --socket=wayland org.chromium.Chromium --app=https://stackfield.com/ |  | ||||||
|   ''; |  | ||||||
|   nixy_switch = pkgs.writeShellScriptBin "nixy_switch" '' |  | ||||||
|     ${pkgs.util-linux}/bin/ionice -c 3 -- \ |  | ||||||
|     ${pkgs.coreutils}/bin/nice -n 20 -- \ |  | ||||||
|     ${lib.getExe pkgs.nixos-rebuild} --flake ./#nixy switch |  | ||||||
|   ''; |  | ||||||
|   qcad = pkgs.writeShellScriptBin "qcad" '' |  | ||||||
|     QT_QPA_PLATFORM=xcb ${lib.getExe pkgs.qcad} $@ |  | ||||||
|   ''; |  | ||||||
|   ssh_proxy = pkgs.writeShellScriptBin "ssh_proxy" '' |  | ||||||
|     if ${pkgs.coreutils}/bin/test $# -ne 1; then |  | ||||||
|       echo "Usage: $0 <user>@<ssh_host>" |  | ||||||
|       exit |  | ||||||
|     fi |  | ||||||
|     PROXY_PORT="1337" |  | ||||||
|     ${lib.getExe pkgs.openssh} -D "$PROXY_PORT" -q -N "$@" |  | ||||||
|   ''; |  | ||||||
|   wrap_sh = |  | ||||||
|     let |  | ||||||
|       bubblewrap = pkgs.callPackage ../../packages/bubblewrap/default.nix { }; |  | ||||||
|     in |  | ||||||
|     pkgs.writeShellScriptBin "wrap.sh" '' |  | ||||||
|       if ${pkgs.coreutils-full}/bin/test $# -ne 1; then |  | ||||||
|         echo "Usage: $0 <directory>" |  | ||||||
|         exit |  | ||||||
|       fi |  | ||||||
|       FULL_PATH=$(${pkgs.coreutils-full}/bin/realpath "$1") |  | ||||||
|       BUBBLEWRAP_DIR="$1" ${bubblewrap}/bin/bwrap \ |  | ||||||
|         --bind / / \ |  | ||||||
|         --dev /dev \ |  | ||||||
|         --overlay-src "$FULL_PATH" \ |  | ||||||
|         --tmp-overlay "$FULL_PATH" \ |  | ||||||
|         "$SHELL" |  | ||||||
|     ''; |  | ||||||
| in |  | ||||||
| { |  | ||||||
|   home.packages = |  | ||||||
|     with pkgs; |  | ||||||
|     [ |  | ||||||
|       anydesk |  | ||||||
|       appimage-run |  | ||||||
|       arp-scan |  | ||||||
|       birdtray |  | ||||||
|       blackmagic |  | ||||||
|       blender |  | ||||||
|       btop |  | ||||||
|       cached-nix-shell |  | ||||||
|       caddy |  | ||||||
|       cargo |  | ||||||
|       cmake |  | ||||||
|       compsize |  | ||||||
|       kdePackages.ark |  | ||||||
|       ungoogled-chromium |  | ||||||
|       # cura |  | ||||||
|       deluge |  | ||||||
|       dfu-util |  | ||||||
|       discord |  | ||||||
|       dmenu-wayland |  | ||||||
|       drawio |  | ||||||
|       dualsensectl |  | ||||||
|       ffmpeg-full |  | ||||||
|       firefox |  | ||||||
|       freecad |  | ||||||
|       gcc |  | ||||||
|       gdb |  | ||||||
|       ghostscript |  | ||||||
|       glab |  | ||||||
|       glaxnimate |  | ||||||
|       gnumake |  | ||||||
|       go |  | ||||||
|       grim |  | ||||||
|       heimdall |  | ||||||
|       hyperfine |  | ||||||
|       icestorm |  | ||||||
|       imagemagick |  | ||||||
|       imv |  | ||||||
|       inkscape |  | ||||||
|       jellyfin-media-player |  | ||||||
|       kdePackages.kdenlive |  | ||||||
|       kicad |  | ||||||
|       kodi-wayland |  | ||||||
|       krita |  | ||||||
|       libnotify |  | ||||||
|       libreoffice-qt6-fresh |  | ||||||
|       libva-utils |  | ||||||
|       linuxPackages_latest.perf |  | ||||||
|       lsix |  | ||||||
|       lsix |  | ||||||
|       mediainfo |  | ||||||
|       ncdu |  | ||||||
|       neovide |  | ||||||
|       nextpnr |  | ||||||
|       ngspice |  | ||||||
|       nix-init |  | ||||||
|       nixpkgs-fmt |  | ||||||
|       nix-prefetch-git |  | ||||||
|       nom |  | ||||||
|       openems |  | ||||||
|       openocd |  | ||||||
|       openscad |  | ||||||
|       pandoc |  | ||||||
|       paraview |  | ||||||
|       pass-wayland |  | ||||||
|       patchelf |  | ||||||
|       pavucontrol |  | ||||||
|       pay-respects |  | ||||||
|       pirate-get |  | ||||||
|       poppler_utils |  | ||||||
|       powertop |  | ||||||
|       pulsemixer |  | ||||||
|       pwvucontrol |  | ||||||
|       python3 |  | ||||||
|       python3Packages.west |  | ||||||
|       qucs-s |  | ||||||
|       radeontop |  | ||||||
|       remmina |  | ||||||
|       river |  | ||||||
|       rizin |  | ||||||
|       rtorrent |  | ||||||
|       sbcl |  | ||||||
|       screen |  | ||||||
|       seer |  | ||||||
|       sioyek |  | ||||||
|       slurp |  | ||||||
|       steam-run |  | ||||||
|       stm32cubemx |  | ||||||
|       swayimg |  | ||||||
|       tea |  | ||||||
|       teams-for-linux |  | ||||||
|       tectonic |  | ||||||
|       tessen |  | ||||||
|       texlive.combined.scheme-full |  | ||||||
|       thunderbird |  | ||||||
|       typst |  | ||||||
|       upx |  | ||||||
|       viber |  | ||||||
|       waybar |  | ||||||
|       wdisplays |  | ||||||
|       weechat |  | ||||||
|       whatsapp-for-linux |  | ||||||
|       wine |  | ||||||
|       wireshark |  | ||||||
|       wl-clipboard |  | ||||||
|       wlr-randr |  | ||||||
|       wofi |  | ||||||
|       x2goclient |  | ||||||
|       yewtube |  | ||||||
|       yosys |  | ||||||
|       yt-dlp |  | ||||||
|       zapzap |  | ||||||
|       zathura |  | ||||||
|       zig |  | ||||||
|     ] |  | ||||||
|     ++ [ |  | ||||||
|       chromium_discord |  | ||||||
|       chromium_stackfield |  | ||||||
|       chromium_teams |  | ||||||
|       nixy_switch |  | ||||||
|       qcad |  | ||||||
|       ssh_proxy |  | ||||||
|       wrap_sh |  | ||||||
|     ] |  | ||||||
|     ++ [ |  | ||||||
|       inputs.swaysw.packages.${system}.swaysw |  | ||||||
|       (pkgs.callPackage ../../packages/bubblewrap/default.nix { }) |  | ||||||
|     ]; |  | ||||||
| } |  | ||||||
| @ -17,6 +17,7 @@ let | |||||||
|     ${lib.getExe pkgs.grim} -g "$GEOM" - | ${pkgs.wl-clipboard}/bin/wl-copy |     ${lib.getExe pkgs.grim} -g "$GEOM" - | ${pkgs.wl-clipboard}/bin/wl-copy | ||||||
|   ''; |   ''; | ||||||
|   swaysw = inputs.swaysw.packages.${system}.swaysw; |   swaysw = inputs.swaysw.packages.${system}.swaysw; | ||||||
|  |   viber = pkgs.callPackage ../packages/viber/default.nix { }; | ||||||
|   term = "${pkgs.foot}/bin/footclient"; |   term = "${pkgs.foot}/bin/footclient"; | ||||||
| in | in | ||||||
| { | { | ||||||
| @ -145,7 +146,7 @@ in | |||||||
|         "Mod4+j" = |         "Mod4+j" = | ||||||
|           "exec ${pkgs.sway}/bin/swaymsg [app_id=com.rtosta.zapzap] scratchpad show || exec ${lib.getExe pkgs.zapzap}"; |           "exec ${pkgs.sway}/bin/swaymsg [app_id=com.rtosta.zapzap] scratchpad show || exec ${lib.getExe pkgs.zapzap}"; | ||||||
|         "Mod4+h" = |         "Mod4+h" = | ||||||
|           "exec ${pkgs.sway}/bin/swaymsg [app_id=com.viber] scratchpad show || exec ${pkgs.viber}/bin/viber"; |           "exec ${pkgs.sway}/bin/swaymsg [app_id=com.viber] scratchpad show || exec ${viber}/bin/viber"; | ||||||
|         "Mod4+y" = |         "Mod4+y" = | ||||||
|           ''exec ${pkgs.sway}/bin/swaymsg [app_id="pulsemixer"] scratchpad show || exec ${term} -a pulsemixer ${lib.getExe pkgs.pulsemixer}''; |           ''exec ${pkgs.sway}/bin/swaymsg [app_id="pulsemixer"] scratchpad show || exec ${term} -a pulsemixer ${lib.getExe pkgs.pulsemixer}''; | ||||||
|         "Mod4+p" = "exec ${lib.getExe pkgs.tessen} -a copy"; |         "Mod4+p" = "exec ${lib.getExe pkgs.tessen} -a copy"; | ||||||
| @ -72,7 +72,7 @@ | |||||||
| 
 | 
 | ||||||
|     envExtra = ''''; |     envExtra = ''''; | ||||||
| 
 | 
 | ||||||
|     initContent = '' |     initExtra = '' | ||||||
|       # binds |       # binds | ||||||
|       bindkey '^K' fzf-file-widget |       bindkey '^K' fzf-file-widget | ||||||
| 
 | 
 | ||||||
| @ -1,10 +1,11 @@ | |||||||
| { config | { | ||||||
| , pkgs |   config, | ||||||
| , lib |   pkgs, | ||||||
| , project-cloud |   lib, | ||||||
| , nvim |   project-cloud, | ||||||
| , system |   nvim, | ||||||
| , ... |   system, | ||||||
|  |   ... | ||||||
| }: | }: | ||||||
| { | { | ||||||
|   imports = [ ]; |   imports = [ ]; | ||||||
| @ -79,23 +80,14 @@ | |||||||
| 
 | 
 | ||||||
|   programs.mosh.enable = true; |   programs.mosh.enable = true; | ||||||
| 
 | 
 | ||||||
|   /* Srv settings found on SrvOS */ |  | ||||||
|   fonts.fontconfig.enable = lib.mkDefault false; |  | ||||||
|   xdg.autostart.enable = lib.mkDefault false; |  | ||||||
|   xdg.icons.enable = lib.mkDefault false; |  | ||||||
|   xdg.menus.enable = lib.mkDefault false; |  | ||||||
|   xdg.mime.enable = lib.mkDefault false; |  | ||||||
|   xdg.sounds.enable = lib.mkDefault false; |  | ||||||
| 
 |  | ||||||
|   mailserver = { |   mailserver = { | ||||||
|     enable = true; |     enable = true; | ||||||
|     debug.all = false; |     debug = false; | ||||||
|     fqdn = "mail.project-cloud.net"; |     fqdn = "mail.project-cloud.net"; | ||||||
|     domains = [ "project-cloud.net" ]; |     domains = [ "project-cloud.net" ]; | ||||||
|     enableSubmissionSsl = true; |     enableSubmissionSsl = true; | ||||||
|     enableImap = false; |     enableImap = false; | ||||||
|     enableImapSsl = true; |     enableImapSsl = true; | ||||||
|     stateVersion = 3; |  | ||||||
| 
 | 
 | ||||||
|     # A list of all login accounts. To create the password hashes, use |     # A list of all login accounts. To create the password hashes, use | ||||||
|     # nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt' |     # nix-shell -p mkpasswd --run 'mkpasswd -sm bcrypt' | ||||||
| @ -122,11 +114,7 @@ | |||||||
|       port = 22; |       port = 22; | ||||||
|     } |     } | ||||||
|   ]; |   ]; | ||||||
| 
 |   services.opendkim.enable = true; | ||||||
|   services.opendkim = { |  | ||||||
|     enable = true; |  | ||||||
|     selector = "mail"; |  | ||||||
|   }; |  | ||||||
| 
 | 
 | ||||||
|   services.miniflux = { |   services.miniflux = { | ||||||
|     enable = false; |     enable = false; | ||||||
| @ -345,8 +333,8 @@ | |||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   networking.hostName = "magpie"; |   networking.hostName = "magpie"; | ||||||
|   networking.nftables.enable = true; |  | ||||||
|   networking.firewall = { |   networking.firewall = { | ||||||
|  |     nftables.enable = true; | ||||||
|     enable = true; |     enable = true; | ||||||
|     allowedTCPPorts = [ |     allowedTCPPorts = [ | ||||||
|       80 |       80 | ||||||
| @ -378,13 +366,13 @@ | |||||||
| 
 | 
 | ||||||
|       # This allows the wireguard server to route your traffic to the internet and hence be like a VPN |       # This allows the wireguard server to route your traffic to the internet and hence be like a VPN | ||||||
|       # For this to work you have to set the dnsserver IP of your router (or dnsserver of choice) in your clients |       # For this to work you have to set the dnsserver IP of your router (or dnsserver of choice) in your clients | ||||||
|       #postSetup = '' |       postSetup = '' | ||||||
|       #  ${pkgs.nftables}/bin/nft add rule ip nat POSTROUTING oifname "eth0" ip saddr 10.100.0.0/24 counter masquerade |         ${pkgs.nftables}/bin/nft add rule ip nat POSTROUTING oifname "eth0" ip saddr 10.100.0.0/24 counter masquerade | ||||||
|       #''; |       ''; | ||||||
|       # This undoes the above command, TODO fix command below to be more specific |       # This undoes the above command, TODO fix command below to be more specific | ||||||
|       #postShutdown = '' |       postShutdown = '' | ||||||
|       #  ${pkgs.nftables}/bin/nft flush table ip nat |         ${pkgs.nftables}/bin/nft flush table ip nat | ||||||
|       #''; |       ''; | ||||||
|       privateKeyFile = config.sops.secrets."wg_privkey".path; |       privateKeyFile = config.sops.secrets."wg_privkey".path; | ||||||
| 
 | 
 | ||||||
|       peers = [ |       peers = [ | ||||||
|  | |||||||
| @ -1,22 +1,19 @@ | |||||||
| { config | # Edit this configuration file to define what should be installed on | ||||||
| , nvim | # your system.  Help is available in the configuration.nix(5) man page | ||||||
| , pkgs | # and in the NixOS manual (accessible by running ‘nixos-help’). | ||||||
| , system | { | ||||||
| , zremap |   config, | ||||||
| , ... |   pkgs, | ||||||
|  |   zremap, | ||||||
|  |   system, | ||||||
|  |   nvim, | ||||||
|  |   ... | ||||||
| }: | }: | ||||||
| let |  | ||||||
|   USER = "akill"; |  | ||||||
| in |  | ||||||
| { | { | ||||||
|   imports = [ ]; |   imports = [ ]; | ||||||
| 
 | 
 | ||||||
|   system.stateVersion = "23.05"; |   system.stateVersion = "23.05"; | ||||||
|   system.autoUpgrade.enable = false; |   system.autoUpgrade.enable = false; | ||||||
|   system.switch = { |  | ||||||
|     enable = true; |  | ||||||
|     enableNg = true; |  | ||||||
|   }; |  | ||||||
| 
 | 
 | ||||||
|   sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; |   sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; | ||||||
|   sops.secrets."peerix/private" = { |   sops.secrets."peerix/private" = { | ||||||
| @ -44,7 +41,6 @@ in | |||||||
|         "nix-command" |         "nix-command" | ||||||
|         "flakes" |         "flakes" | ||||||
|       ]; |       ]; | ||||||
|       trusted-users = [ "akill" "root" ]; |  | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
| @ -78,35 +74,29 @@ in | |||||||
|     readOnlyNixStore = true; |     readOnlyNixStore = true; | ||||||
|     supportedFilesystems = [ "btrfs" ]; |     supportedFilesystems = [ "btrfs" ]; | ||||||
|     tmp.useTmpfs = true; |     tmp.useTmpfs = true; | ||||||
|  |     tmp.tmpfsSize = "80%"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   security = { |   security = { | ||||||
|     rtkit.enable = true; |     rtkit.enable = true; | ||||||
|     allowSimultaneousMultithreading = true; |     acme = { | ||||||
|     sudo.enable = true; |       acceptTerms = true; | ||||||
|     doas.enable = true; |       defaults.email = "aasmir@gmx.com"; | ||||||
|     doas.extraRules = [ |     }; | ||||||
|       { |  | ||||||
|         users = [ USER ]; |  | ||||||
|         keepEnv = true; |  | ||||||
|         persist = true; |  | ||||||
|       } |  | ||||||
|     ]; |  | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   powerManagement = { |   powerManagement = { | ||||||
|     enable = true; |     enable = true; | ||||||
|  |     cpuFreqGovernor = "ondemand"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   networking = { |   networking = { | ||||||
|     nftables.enable = true; |  | ||||||
|     firewall = { |     firewall = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       allowedTCPPorts = [ |       allowedTCPPorts = [ | ||||||
|         80 |         80 | ||||||
|         443 |         443 | ||||||
|         51820 |         51820 | ||||||
|         8020 |  | ||||||
|       ]; |       ]; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
| @ -121,16 +111,14 @@ in | |||||||
|       "::1" |       "::1" | ||||||
|     ]; |     ]; | ||||||
|     dhcpcd.extraConfig = "nohook resolv.conf"; |     dhcpcd.extraConfig = "nohook resolv.conf"; | ||||||
| 
 |     networkmanager.dns = "none"; | ||||||
|     extraHosts = '' |     extraHosts = '' | ||||||
|       192.168.1.173 nixy.lan |       192.168.1.173 nixy.lan | ||||||
|       192.168.88.171 jellyfin.mediabox.lan |       192.168.88.171 jellyfin.mediabox.lan | ||||||
|       192.168.88.171 jellyseerr.mediabox.lan |  | ||||||
|       192.168.88.171 mediabox.lan |       192.168.88.171 mediabox.lan | ||||||
|       192.168.88.171 qbittorrent.mediabox.lan |       192.168.88.171 qbittorrent.mediabox.lan | ||||||
|       192.168.88.1   router.lan |       192.168.88.1   router.lan | ||||||
|       192.168.88.231 workstation.lan |       192.168.88.231 workstation.lan | ||||||
|       192.168.88.121 ender.lan |  | ||||||
|     ''; |     ''; | ||||||
| 
 | 
 | ||||||
|     wireguard.interfaces = { |     wireguard.interfaces = { | ||||||
| @ -161,47 +149,44 @@ in | |||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   programs = { |   programs.gnupg.agent = { | ||||||
|     steam = { |     enable = true; | ||||||
|       enable = true; |     enableSSHSupport = true; | ||||||
|       remotePlay.openFirewall = true; |  | ||||||
|       dedicatedServer.openFirewall = false; |  | ||||||
|       localNetworkGameTransfers.openFirewall = true; |  | ||||||
|     }; |  | ||||||
|     gnupg.agent = { |  | ||||||
|       enable = true; |  | ||||||
|       enableSSHSupport = true; |  | ||||||
|     }; |  | ||||||
|     appimage = { |  | ||||||
|       enable = true; |  | ||||||
|       binfmt = true; |  | ||||||
|     }; |  | ||||||
|     nix-ld = { |  | ||||||
|       enable = false; |  | ||||||
|       libraries = with pkgs; [ |  | ||||||
|         stdenv.cc.cc.lib |  | ||||||
|         zlib |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
|     zsh.enable = true; |  | ||||||
|     firejail.enable = true; |  | ||||||
|   }; |   }; | ||||||
|  |   programs.zsh.enable = true; | ||||||
|  |   programs.light.enable = true; | ||||||
|  |   programs.firejail.enable = true; | ||||||
|  |   programs.adb.enable = false; | ||||||
|  |   programs.wireshark.enable = true; | ||||||
|  |   programs.sway.enable = true; | ||||||
| 
 | 
 | ||||||
|   # List services that you want to enable: |   # List services that you want to enable: | ||||||
|   systemd = { |   systemd = { | ||||||
|     services = { |     services = { | ||||||
|       "zremap@" = { |       "macchanger-wireless" = { | ||||||
|         enable = true; |         after = [ "sys-subsystem-net-devices-wlp3s0.device" ]; | ||||||
|         restartIfChanged = true; |         before = [ "network-pre.target" ]; | ||||||
|  |         bindsTo = [ "sys-subsystem-net-devices-wlp3s0.device" ]; | ||||||
|  |         description = "Changes MAC of my wireless interface for privacy reasons"; | ||||||
|  |         stopIfChanged = false; | ||||||
|  |         wantedBy = [ "multi-user.target" ]; | ||||||
|  |         wants = [ "network-pre.target" ]; | ||||||
|  |         script = '' | ||||||
|  |           ${pkgs.macchanger}/bin/macchanger -e wlp3s0 || true | ||||||
|  |         ''; | ||||||
|  |         serviceConfig.Type = "oneshot"; | ||||||
|  |       }; | ||||||
|  | 
 | ||||||
|  |       "zremap" = { | ||||||
|  |         description = "Intercepts keyboard udev events"; | ||||||
|  |         wants = [ "systemd-udevd.service" ]; | ||||||
|  |         wantedBy = [ "multi-user.target" ]; | ||||||
|         serviceConfig.Nice = -20; |         serviceConfig.Nice = -20; | ||||||
|         unitConfig = { |         script = '' | ||||||
|           Description = "zremap on %I"; |           sleep 1 | ||||||
|           ConditionPathExists = "%I"; |           ${zremap.defaultPackage.${system}}/bin/zremap \ | ||||||
|         }; |           /dev/input/by-path/platform-i8042-serio-0-event-kbd | ||||||
|         serviceConfig = { |         ''; | ||||||
|           Type = "simple"; |  | ||||||
|           ExecStart = "${zremap.defaultPackage.${system}}/bin/zremap %I"; |  | ||||||
|         }; |  | ||||||
|       }; |       }; | ||||||
| 
 | 
 | ||||||
|       "wakeonlan" = { |       "wakeonlan" = { | ||||||
| @ -217,26 +202,31 @@ in | |||||||
|           "shutdown.target" |           "shutdown.target" | ||||||
|         ]; |         ]; | ||||||
|       }; |       }; | ||||||
|     }; |  | ||||||
| 
 | 
 | ||||||
|     coredump.enable = false; |       /* | ||||||
|     extraConfig = '' |         "cpu_setting" = { | ||||||
|       DefaultTimeoutStartSec=30s |           description = "Enable turboot boost and undervolt cpu after suspend"; | ||||||
|       DefaultTimeoutStopSec=30s |           wantedBy = ["post-resume.target" "multi-user.target"]; | ||||||
|     ''; |           after = ["post-resume.target"]; | ||||||
|  |           script = '' | ||||||
|  |                    echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo | ||||||
|  |                    echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo | ||||||
|  |             ${pkgs.undervolt}/bin/undervolt --core -105 --cache -105 --uncore -105 --gpu -15 -p1 47 28 -p2 57 0.0025 | ||||||
|  |           ''; | ||||||
|  |           serviceConfig.Type = "oneshot"; | ||||||
|  |         }; | ||||||
|  |       */ | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   services = { |   services = { | ||||||
|     acpid.enable = true; |     acpid.enable = true; | ||||||
|     btrfs.autoScrub.enable = true; |     btrfs.autoScrub.enable = true; | ||||||
|     dbus.enable = true; |     dbus.enable = true; | ||||||
|     dbus.implementation = "broker"; |  | ||||||
|     envfs.enable = true; |  | ||||||
|     fstrim.enable = true; |     fstrim.enable = true; | ||||||
|     fwupd.enable = true; |     fwupd.enable = true; | ||||||
|     ntp.enable = true; |     ntp.enable = true; | ||||||
|     openssh.enable = true; |     openssh.enable = true; | ||||||
|     openssh.settings.PermitRootLogin = "yes"; |  | ||||||
|     thinkfan.enable = false; |     thinkfan.enable = false; | ||||||
| 
 | 
 | ||||||
|     xrdp = { |     xrdp = { | ||||||
| @ -250,13 +240,13 @@ in | |||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     jellyfin = { |     jellyfin = { | ||||||
|       enable = false; |       enable = true; | ||||||
|       user = "akill"; |       user = "akill"; | ||||||
|       openFirewall = true; |       openFirewall = true; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     jellyseerr = { |     jellyseerr = { | ||||||
|       enable = false; |       enable = true; | ||||||
|       openFirewall = true; |       openFirewall = true; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
| @ -267,104 +257,57 @@ in | |||||||
|       pulse.enable = true; |       pulse.enable = true; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     avahi = { |     deluge = { | ||||||
|       enable = false; |       enable = false; | ||||||
|       nssmdns4 = false; |       user = "akill"; | ||||||
|       openFirewall = true; |       openFirewall = true; | ||||||
|     }; |       dataDir = "/home/akill/.config/deluge"; | ||||||
| 
 |       web = { | ||||||
|     libinput.enable = true; |         enable = true; | ||||||
|     xserver = { |         openFirewall = false; | ||||||
|       enable = true; |       }; | ||||||
|       dpi = 144; |       config = { | ||||||
|       desktopManager.xterm.enable = false; |         download_location = "/media"; | ||||||
|       desktopManager.plasma5.bigscreen.enable = true; |         allow_remote = true; | ||||||
|       #desktopManager.plasma6.enable = true; |         daemon_port = 58846; | ||||||
|       displayManager = { |  | ||||||
|         lightdm.enable = false; |  | ||||||
|         startx.enable = true; |  | ||||||
|         sddm.enable = true; |  | ||||||
|         sddm.wayland.enable = true; |  | ||||||
|       }; |       }; | ||||||
|       windowManager.i3.enable = false; |  | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     udev = { |     transmission = { | ||||||
|       packages = [ ]; |  | ||||||
|       extraRules = '' |  | ||||||
|         #zremap on new keyboard |  | ||||||
|         ACTION=="add", SUBSYSTEM=="input", ATTRS{phys}!="", KERNEL=="event[0-9]*", ENV{ID_INPUT_KEY}=="1", ENV{ID_INPUT_KEYBOARD}=="1", TAG+="systemd", ENV{SYSTEMD_WANTS}+="zremap@$env{DEVNAME}.service" |  | ||||||
|       ''; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     tlp = { |  | ||||||
|       enable = false; |       enable = false; | ||||||
|     }; |       openFirewall = true; | ||||||
| 
 |  | ||||||
|     batteryNotifier = { |  | ||||||
|       enable = false; |  | ||||||
|       notifyCapacity = 20; |  | ||||||
|       suspendCapacity = 10; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     actkbd = { |  | ||||||
|       enable = true; |  | ||||||
|       bindings = [ |  | ||||||
|         { |  | ||||||
|           keys = [ 115 ]; |  | ||||||
|           events = [ "key" ]; |  | ||||||
|           command = "XDG_RUNTIME_DIR=/run/user/$(id -u ${USER}) ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         { |  | ||||||
|           keys = [ 114 ]; |  | ||||||
|           events = [ |  | ||||||
|             "key" |  | ||||||
|             "rep" |  | ||||||
|           ]; |  | ||||||
|           command = "XDG_RUNTIME_DIR=/run/user/$(id -u ${USER}) ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         { |  | ||||||
|           keys = [ 113 ]; |  | ||||||
|           events = [ |  | ||||||
|             "key" |  | ||||||
|             "rep" |  | ||||||
|           ]; |  | ||||||
|           command = "XDG_RUNTIME_DIR=/run/user/$(id -u ${USER}) ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         { |  | ||||||
|           keys = [ 224 ]; |  | ||||||
|           events = [ "key" ]; |  | ||||||
|           command = "${pkgs.light}/bin/light -U 5"; |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         { |  | ||||||
|           keys = [ 225 ]; |  | ||||||
|           events = [ "key" ]; |  | ||||||
|           command = "${pkgs.light}/bin/light -A 5"; |  | ||||||
|         } |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
| 
 |  | ||||||
|     dnscrypt-proxy2 = { |  | ||||||
|       enable = true; |  | ||||||
|       settings = { |       settings = { | ||||||
|         ipv6_servers = true; |         rpc-whitelist = "192.168.88.*"; | ||||||
|         require_dnssec = true; |         download-dir = "/media"; | ||||||
|         require_nolog = true; |       }; | ||||||
|         require_nofilter = true; |     }; | ||||||
|         http3 = true; |  | ||||||
| 
 | 
 | ||||||
|         sources.public-resolvers = { |     qbittorrent = { | ||||||
|           urls = [ |       enable = true; | ||||||
|             "https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md" |       user = "akill"; | ||||||
|             "https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md" |       openFirewall = true; | ||||||
|           ]; |       dataDir = "/home/akill/.config/qbittorrent"; | ||||||
|           cache_file = "/var/lib/dnscrypt-proxy/public-resolvers.md"; |       port = 8081; | ||||||
|           minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3"; |     }; | ||||||
|         }; | 
 | ||||||
|  |     nginx = { | ||||||
|  |       enable = true; | ||||||
|  |       recommendedGzipSettings = true; | ||||||
|  |       recommendedOptimisation = true; | ||||||
|  |       recommendedProxySettings = true; | ||||||
|  |       recommendedTlsSettings = true; | ||||||
|  | 
 | ||||||
|  |       virtualHosts."deluge.mediabox.lan" = { | ||||||
|  |         locations."/".proxyPass = "http://localhost:8112/"; | ||||||
|  |       }; | ||||||
|  |       virtualHosts."qbittorrent.mediabox.lan" = { | ||||||
|  |         locations."/".proxyPass = "http://localhost:8081/"; | ||||||
|  |       }; | ||||||
|  |       virtualHosts."jellyfin.mediabox.lan" = { | ||||||
|  |         locations."/".proxyPass = "http://localhost:8096/"; | ||||||
|  |       }; | ||||||
|  |       virtualHosts."jellyseerr.mediabox.lan" = { | ||||||
|  |         locations."/".proxyPass = "http://localhost:5055/"; | ||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
| @ -376,53 +319,120 @@ in | |||||||
|       KillUserProcesses=yes |       KillUserProcesses=yes | ||||||
|     ''; |     ''; | ||||||
| 
 | 
 | ||||||
|   }; |     xserver = { | ||||||
| 
 |       enable = true; | ||||||
|   fonts = { |       libinput.enable = true; | ||||||
|     fontconfig = { |       desktopManager.xterm.enable = false; | ||||||
|       cache32Bit = true; |       displayManager.lightdm.enable = false; | ||||||
|       allowBitmaps = true; |       displayManager.defaultSession = "none+icewm"; | ||||||
|       useEmbeddedBitmaps = true; |       windowManager.icewm.enable = true; | ||||||
|       defaultFonts = { |  | ||||||
|         monospace = [ "JetBrainsMono" ]; |  | ||||||
|       }; |  | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     packages = with pkgs; [ |     udev.packages = [ ]; | ||||||
|       dejavu_fonts | 
 | ||||||
|       dina-font |     tlp = { | ||||||
|       fira-code |       enable = true; | ||||||
|       fira-code-symbols |       settings = { }; | ||||||
|       font-awesome_6 |     }; | ||||||
|       inconsolata | 
 | ||||||
|       iosevka |     actkbd = { | ||||||
|       jetbrains-mono |       enable = true; | ||||||
|       liberation_ttf |       bindings = [ | ||||||
|       libertine |         { | ||||||
|       noto-fonts |           keys = [ 121 ]; | ||||||
|       noto-fonts-cjk-sans |           events = [ "key" ]; | ||||||
|       noto-fonts-color-emoji |           command = "${pkgs.alsaUtils}/bin/amixer -q set Master toggle"; | ||||||
|       noto-fonts-emoji |         } | ||||||
|       proggyfonts |         { | ||||||
|       siji |           keys = [ 122 ]; | ||||||
|       terminus_font |           events = [ | ||||||
|       terminus_font_ttf |             "key" | ||||||
|       ubuntu_font_family |             "rep" | ||||||
|       vistafonts |           ]; | ||||||
|     ]; |           command = "${pkgs.alsaUtils}/bin/amixer -q set Master ${config.sound.mediaKeys.volumeStep}- unmute"; | ||||||
|  |         } | ||||||
|  |         { | ||||||
|  |           keys = [ 123 ]; | ||||||
|  |           events = [ | ||||||
|  |             "key" | ||||||
|  |             "rep" | ||||||
|  |           ]; | ||||||
|  |           command = "${pkgs.alsaUtils}/bin/amixer -q set Master ${config.sound.mediaKeys.volumeStep}+ unmute"; | ||||||
|  |         } | ||||||
|  |         { | ||||||
|  |           keys = [ 224 ]; | ||||||
|  |           events = [ "key" ]; | ||||||
|  |           command = "/run/current-system/sw/bin/light -U 5"; | ||||||
|  |         } | ||||||
|  |         { | ||||||
|  |           keys = [ 225 ]; | ||||||
|  |           events = [ "key" ]; | ||||||
|  |           command = "/run/current-system/sw/bin/light -A 5"; | ||||||
|  |         } | ||||||
|  |       ]; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     mpd = { | ||||||
|  |       musicDirectory = "/home/mpd/music"; | ||||||
|  |       enable = false; | ||||||
|  |       extraConfig = '' | ||||||
|  |         audio_output { | ||||||
|  |           type "pulse" | ||||||
|  |           name "pulsee srv" | ||||||
|  |           server "127.0.0.1" | ||||||
|  |         } | ||||||
|  |       ''; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     batteryNotifier = { | ||||||
|  |       enable = true; | ||||||
|  |       notifyCapacity = 20; | ||||||
|  |       suspendCapacity = 10; | ||||||
|  |     }; | ||||||
|  | 
 | ||||||
|  |     dnscrypt-proxy2 = { | ||||||
|  |       enable = true; | ||||||
|  |       settings = { | ||||||
|  |         ipv6_servers = true; | ||||||
|  |         require_dnssec = true; | ||||||
|  | 
 | ||||||
|  |         sources.public-resolvers = { | ||||||
|  |           urls = [ | ||||||
|  |             "https://raw.githubusercontent.com/DNSCrypt/dnscrypt-resolvers/master/v3/public-resolvers.md" | ||||||
|  |             "https://download.dnscrypt.info/resolvers-list/v3/public-resolvers.md" | ||||||
|  |           ]; | ||||||
|  |           cache_file = "/var/lib/dnscrypt-proxy/public-resolvers.md"; | ||||||
|  |           minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3"; | ||||||
|  |         }; | ||||||
|  |       }; | ||||||
|  |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  |   fonts.packages = with pkgs; [ | ||||||
|  |     dina-font | ||||||
|  |     fira-code | ||||||
|  |     fira-code-symbols | ||||||
|  |     font-awesome | ||||||
|  |     font-awesome_4 | ||||||
|  |     iosevka | ||||||
|  |     jetbrains-mono | ||||||
|  |     liberation_ttf | ||||||
|  |     proggyfonts | ||||||
|  |     siji | ||||||
|  |   ]; | ||||||
|  | 
 | ||||||
|   virtualisation = { |   virtualisation = { | ||||||
|     podman = { |     podman = { | ||||||
|       enable = false; |       enable = true; | ||||||
|       autoPrune.enable = true; |  | ||||||
|       dockerCompat = true; |       dockerCompat = true; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  |   sound.enable = true; | ||||||
|  | 
 | ||||||
|   hardware = { |   hardware = { | ||||||
|     bluetooth = { |     bluetooth = { | ||||||
|       enable = true; |       enable = false; | ||||||
|       settings = { |       settings = { | ||||||
|         General = { |         General = { | ||||||
|           Enable = "Source,Sink,Media,Socket"; |           Enable = "Source,Sink,Media,Socket"; | ||||||
| @ -430,9 +440,14 @@ in | |||||||
|       }; |       }; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     graphics = { |     opengl = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       extraPackages = [ ]; |       driSupport = true; | ||||||
|  |       driSupport32Bit = true; | ||||||
|  |       extraPackages = with pkgs; [ | ||||||
|  |         intel-media-driver | ||||||
|  |         vaapiIntel | ||||||
|  |       ]; | ||||||
|     }; |     }; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
| @ -441,14 +456,18 @@ in | |||||||
|     algorithm = "zstd"; |     algorithm = "zstd"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   users.users.${USER} = { |   users.users.akill = { | ||||||
|     isNormalUser = true; |     isNormalUser = true; | ||||||
|     shell = pkgs.zsh; |     shell = pkgs.zsh; | ||||||
|     extraGroups = [ |     extraGroups = [ | ||||||
|  |       "wireshark" | ||||||
|       "wheel" |       "wheel" | ||||||
|  |       "kvm" | ||||||
|       "tty" |       "tty" | ||||||
|       "audio" |       "audio" | ||||||
|       "sound" |       "sound" | ||||||
|  |       "adbusers" | ||||||
|  |       "transmission" | ||||||
|     ]; |     ]; | ||||||
|     openssh.authorizedKeys.keys = [ |     openssh.authorizedKeys.keys = [ | ||||||
|       (builtins.readFile ../nixy/ssh_pubkey) |       (builtins.readFile ../nixy/ssh_pubkey) | ||||||
| @ -459,10 +478,14 @@ in | |||||||
|     isNormalUser = true; |     isNormalUser = true; | ||||||
|     shell = pkgs.zsh; |     shell = pkgs.zsh; | ||||||
|     extraGroups = [ |     extraGroups = [ | ||||||
|  |       "wireshark" | ||||||
|       "wheel" |       "wheel" | ||||||
|  |       "kvm" | ||||||
|       "tty" |       "tty" | ||||||
|       "audio" |       "audio" | ||||||
|       "sound" |       "sound" | ||||||
|  |       "adbusers" | ||||||
|  |       "transmission" | ||||||
|     ]; |     ]; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,10 +1,11 @@ | |||||||
| { config | { | ||||||
| , nix-xilinx |   config, | ||||||
| , nvim |   nix-xilinx, | ||||||
| , pkgs |   nvim, | ||||||
| , system |   pkgs, | ||||||
| , zremap |   system, | ||||||
| , ... |   zremap, | ||||||
|  |   ... | ||||||
| }: | }: | ||||||
| let | let | ||||||
|   USER = "akill"; |   USER = "akill"; | ||||||
| @ -15,7 +16,7 @@ in | |||||||
|   system.stateVersion = "23.05"; |   system.stateVersion = "23.05"; | ||||||
|   system.autoUpgrade.enable = false; |   system.autoUpgrade.enable = false; | ||||||
|   system.switch = { |   system.switch = { | ||||||
|     enable = true; |     enable = false; | ||||||
|     enableNg = true; |     enableNg = true; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
| @ -86,14 +87,11 @@ in | |||||||
|     kernelParams = [ |     kernelParams = [ | ||||||
|       "psmouse.synaptics_intertouch=0" |       "psmouse.synaptics_intertouch=0" | ||||||
|       "mem_sleep_default=deep" |       "mem_sleep_default=deep" | ||||||
|       "amdgpu.sg_display=0" |  | ||||||
|       "amdgpu.gttsize=2048" |  | ||||||
|     ]; |     ]; | ||||||
|     kernelPackages = pkgs.linuxPackages_latest; |     kernelPackages = pkgs.linuxPackages_latest; | ||||||
|     kernel.sysctl = { |     kernel.sysctl = { | ||||||
|       "net.core.default_qdisc" = "fq"; |       "net.core.default_qdisc" = "fq"; | ||||||
|       "net.ipv4.tcp_congestion_control" = "bbr"; |       "net.ipv4.tcp_congestion_control" = "bbr"; | ||||||
|       "kernel.unprivileged_userns_clone" = "1"; /* Needed with harderned kernel */ |  | ||||||
|     }; |     }; | ||||||
|     loader.efi.canTouchEfiVariables = true; |     loader.efi.canTouchEfiVariables = true; | ||||||
|     loader.systemd-boot = { |     loader.systemd-boot = { | ||||||
| @ -238,13 +236,6 @@ in | |||||||
|       enable = true; |       enable = true; | ||||||
|       binfmt = true; |       binfmt = true; | ||||||
|     }; |     }; | ||||||
|     nix-ld = { |  | ||||||
|       enable = false; |  | ||||||
|       libraries = with pkgs; [ |  | ||||||
|         stdenv.cc.cc.lib |  | ||||||
|         zlib |  | ||||||
|       ]; |  | ||||||
|     }; |  | ||||||
|     zsh.enable = true; |     zsh.enable = true; | ||||||
|     firejail.enable = true; |     firejail.enable = true; | ||||||
|     adb.enable = true; |     adb.enable = true; | ||||||
| @ -257,14 +248,6 @@ in | |||||||
|   # List services that you want to enable: |   # List services that you want to enable: | ||||||
|   systemd = { |   systemd = { | ||||||
|     services = { |     services = { | ||||||
| 
 |  | ||||||
|       # Fix issue where systemd-vconsole-setup failes to find keymap |  | ||||||
|       systemd-vconsole-setup = { |  | ||||||
|         unitConfig = { |  | ||||||
|           After = "local-fs.target"; |  | ||||||
|         }; |  | ||||||
|       }; |  | ||||||
| 
 |  | ||||||
|       "zremap@" = { |       "zremap@" = { | ||||||
|         enable = true; |         enable = true; | ||||||
|         restartIfChanged = true; |         restartIfChanged = true; | ||||||
| @ -389,7 +372,6 @@ in | |||||||
|     acpid.enable = true; |     acpid.enable = true; | ||||||
|     dbus.enable = true; |     dbus.enable = true; | ||||||
|     dbus.implementation = "broker"; |     dbus.implementation = "broker"; | ||||||
|     envfs.enable = true; |  | ||||||
|     fstrim.enable = true; |     fstrim.enable = true; | ||||||
|     fwupd.enable = true; |     fwupd.enable = true; | ||||||
|     ntp.enable = true; |     ntp.enable = true; | ||||||
| @ -444,25 +426,21 @@ in | |||||||
| 
 | 
 | ||||||
|     tlp = { |     tlp = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       settings = { |  | ||||||
|         START_CHARGE_THRESH_BAT0 = 70; |  | ||||||
|         STOP_CHARGE_THRESH_BAT0 = 86; |  | ||||||
|       }; |  | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     batteryNotifier = { |     batteryNotifier = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       notifyCapacity = 12; |       notifyCapacity = 20; | ||||||
|       suspendCapacity = 5; |       suspendCapacity = 10; | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     actkbd = { |     actkbd = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       bindings = [ |       bindings = [ | ||||||
|         { |         { | ||||||
|           keys = [ 115 ]; |           keys = [ 113 ]; | ||||||
|           events = [ "key" ]; |           events = [ "key" ]; | ||||||
|           command = "XDG_RUNTIME_DIR=/run/user/$(id -u ${USER}) ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+"; |           command = "/run/current-system/sw/bin/runuser -l ${USER} -c 'amixer -q set Master toggle'"; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         { |         { | ||||||
| @ -471,16 +449,16 @@ in | |||||||
|             "key" |             "key" | ||||||
|             "rep" |             "rep" | ||||||
|           ]; |           ]; | ||||||
|           command = "XDG_RUNTIME_DIR=/run/user/$(id -u ${USER}) ${pkgs.wireplumber}/bin/wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"; |           command = "/run/current-system/sw/bin/runuser -l ${USER} -c 'amixer -q set Master 5%- unmute'"; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         { |         { | ||||||
|           keys = [ 113 ]; |           keys = [ 115 ]; | ||||||
|           events = [ |           events = [ | ||||||
|             "key" |             "key" | ||||||
|             "rep" |             "rep" | ||||||
|           ]; |           ]; | ||||||
|           command = "XDG_RUNTIME_DIR=/run/user/$(id -u ${USER}) ${pkgs.wireplumber}/bin/wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; |           command = "/run/current-system/sw/bin/runuser -l ${USER} -c 'amixer -q set Master 5%+ unmute'"; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         { |         { | ||||||
| @ -613,7 +591,6 @@ in | |||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   virtualisation = { |   virtualisation = { | ||||||
|     waydroid.enable = false; |  | ||||||
|     libvirtd = { |     libvirtd = { | ||||||
|       enable = true; |       enable = true; | ||||||
|       allowedBridges = [ |       allowedBridges = [ | ||||||
| @ -653,7 +630,7 @@ in | |||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   zramSwap = { |   zramSwap = { | ||||||
|     enable = true; |     enable = false; | ||||||
|     algorithm = "zstd"; |     algorithm = "zstd"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
| @ -661,15 +638,14 @@ in | |||||||
|     isNormalUser = true; |     isNormalUser = true; | ||||||
|     shell = pkgs.zsh; |     shell = pkgs.zsh; | ||||||
|     extraGroups = [ |     extraGroups = [ | ||||||
|       "adbusers" |  | ||||||
|       "audio" |  | ||||||
|       "dialout" |  | ||||||
|       "kvm" |  | ||||||
|       "plugdev" |  | ||||||
|       "sound" |  | ||||||
|       "tty" |  | ||||||
|       "wheel" |  | ||||||
|       "wireshark" |       "wireshark" | ||||||
|  |       "kvm" | ||||||
|  |       "tty" | ||||||
|  |       "audio" | ||||||
|  |       "sound" | ||||||
|  |       "adbusers" | ||||||
|  |       "dialout" | ||||||
|  |       "wheel" | ||||||
|     ]; |     ]; | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user