Compare commits

...

2 commits

6 changed files with 154 additions and 92 deletions

90
flake.lock generated
View file

@ -128,11 +128,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738453229, "lastModified": 1740872218,
"narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=", "narHash": "sha256-ZaMw0pdoUKigLpv9HiNDH2Pjnosg7NBYMJlHTIsHEUo=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd", "rev": "3876f6b87db82f33775b1ef5ea343986105db764",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -150,11 +150,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1736143030, "lastModified": 1738453229,
"narHash": "sha256-+hu54pAoLDEZT9pjHlqL9DNzWz0NbUn8NEAHP7PQPzU=", "narHash": "sha256-7H9XgNiGLKN1G1CgRh0vUL4AheZSYzPm+zmZ7vxbJdo=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "b905f6fc23a9051a6e1b741e1438dbfc0634c6de", "rev": "32ea77a06711b758da0ad9bd6a844c5740a87abd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -188,11 +188,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737465171, "lastModified": 1740870877,
"narHash": "sha256-R10v2hoJRLq8jcL4syVFag7nIGE7m13qO48wRIukWNg=", "narHash": "sha256-LWDIJvKWMW0tiih1jTcAK0ncTi3S9IF3gOhpCT1ydik=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "9364dc02281ce2d37a1f55b6e51f7c0f65a75f17", "rev": "25d4946dfc2021584f5bde1fbd2aa97353384a95",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -232,11 +232,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738237977, "lastModified": 1739595404,
"narHash": "sha256-oJN/yvRL7G0WlR/hTkQIjFbPkzCV+sFnNB/38Tb9RL4=", "narHash": "sha256-0CjCfbq0yHWexOrpO06e2WU1r5JAqR6ffy1zgM3NksI=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "hercules-ci-effects", "repo": "hercules-ci-effects",
"rev": "6d1b6d5d59758b4f5f05745f774fc13cdc59da43", "rev": "06519cec8fb32d219006da6eacd255504a9996af",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -252,11 +252,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1736373539, "lastModified": 1739757849,
"narHash": "sha256-dinzAqCjenWDxuy+MqUQq0I4zUSfaCvN9rzuCmgMZJY=", "narHash": "sha256-Gs076ot1YuAAsYVcyidLKUMIc4ooOaRGO0PqTY7sBzA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "bd65bc3cde04c16755955630b344bc9e35272c56", "rev": "9d3d080aec2a35e05a15cedd281c2384767c2cfe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -277,11 +277,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1739060572, "lastModified": 1740874225,
"narHash": "sha256-b66lHmfaZ4lKAG5VW8wC7fba2vUs6OMRlJumO4xMEfc=", "narHash": "sha256-sdBT6Njf1MDVnb4kLbGhCpXQ2P7E+50TRW1mIdujFEE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "neovim-nightly-overlay", "repo": "neovim-nightly-overlay",
"rev": "4452574d52632a36458cd9c80f6303f556460221", "rev": "ee3854351ae89ad79eb148d4253263aeaa936913",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -293,11 +293,11 @@
"neovim-src": { "neovim-src": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1739058097, "lastModified": 1740870130,
"narHash": "sha256-QNlqRh8BnmSgJ6e5CRII9og+Z7fBfMAUbL3g66O8ZXg=", "narHash": "sha256-nrKnJhmplq4QMcenY/bpD6SHOsiN3VS2toUtsO9NfII=",
"owner": "neovim", "owner": "neovim",
"repo": "neovim", "repo": "neovim",
"rev": "59edd7c88a13d793501b88c55803da8a0ba7c739", "rev": "13513835798c732554de277229d4c6744df11502",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -313,11 +313,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1739034224, "lastModified": 1740755725,
"narHash": "sha256-Mj/8jDzh1KNmUhWqEeVlW3hO9MZkxqioJGnmR7rivaE=", "narHash": "sha256-amZbqP84H/ApugaT+TADXTB3NbjkVHI9Vac1saIk0kE=",
"owner": "LnL7", "owner": "LnL7",
"repo": "nix-darwin", "repo": "nix-darwin",
"rev": "0b6f96a6b9efcfa8d3cc8023008bcbcd1b9bc1a4", "rev": "5d6e0851b60508cffd66b4a6982440a40720338d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -381,11 +381,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1737057290, "lastModified": 1740947705,
"narHash": "sha256-3Pe0yKlCc7EOeq1X/aJVDH0CtNL+tIBm49vpepwL1MQ=", "narHash": "sha256-Co2kAD2SZalOm+5zoxmzEVZNvZ17TyafuFsD46BwSdY=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixos-generators", "repo": "nixos-generators",
"rev": "d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453", "rev": "507911df8c35939050ae324caccc7cf4ffb76565",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -396,11 +396,11 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1739019272, "lastModified": 1740791350,
"narHash": "sha256-7Fu7oazPoYCbDzb9k8D/DdbKrC3aU1zlnc39Y8jy/s8=", "narHash": "sha256-igS2Z4tVw5W/x3lCZeeadt0vcU9fxtetZ/RyrqsCRQ0=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "fa35a3c8e17a3de613240fea68f876e5b4896aec", "rev": "199169a2135e6b864a888e89a2ace345703c025d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -412,11 +412,11 @@
}, },
"nixpkgsSmall": { "nixpkgsSmall": {
"locked": { "locked": {
"lastModified": 1739055578, "lastModified": 1740932899,
"narHash": "sha256-2MhC2Bgd06uI1A0vkdNUyDYsMD0SLNGKtD8600mZ69A=", "narHash": "sha256-F0qDu2egq18M3edJwEOAE+D+VQ+yESK6YWPRQBfOqq8=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a45fa362d887f4d4a7157d95c28ca9ce2899b70e", "rev": "1546c45c538633ae40b93e2d14e0bb6fd8f13347",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -428,11 +428,11 @@
}, },
"nixpkgsUnstable": { "nixpkgsUnstable": {
"locked": { "locked": {
"lastModified": 1739020877, "lastModified": 1740828860,
"narHash": "sha256-mIvECo/NNdJJ/bXjNqIh8yeoSjVLAuDuTUzAo7dzs8Y=", "narHash": "sha256-cjbHI+zUzK5CPsQZqMhE3npTyYFt9tJ3+ohcfaOF/WM=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "a79cfe0ebd24952b580b1cf08cd906354996d547", "rev": "303bd8071377433a2d8f76e684ec773d70c5b642",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -444,11 +444,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1738843498, "lastModified": 1740865531,
"narHash": "sha256-7x+Q4xgFj9UxZZO9aUDCR8h4vyYut4zPUvfj3i+jBHE=", "narHash": "sha256-h00vGIh/jxcGl8aWdfnVRD74KuLpyY3mZgMFMy7iKIc=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "f5a32fa27df91dfc4b762671a0e0a859a8a0058f", "rev": "5ef6c425980847c78a80d759abc476e941a9bf42",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -512,11 +512,11 @@
"nixpkgs": "nixpkgs_3" "nixpkgs": "nixpkgs_3"
}, },
"locked": { "locked": {
"lastModified": 1738291974, "lastModified": 1739262228,
"narHash": "sha256-wkwYJc8cKmmQWUloyS9KwttBnja2ONRuJQDEsmef320=", "narHash": "sha256-7JAGezJ0Dn5qIyA2+T4Dt/xQgAbhCglh6lzCekTVMeU=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "4c1251904d8a08c86ac6bc0d72cc09975e89aef7", "rev": "07af005bb7d60c7f118d9d9f5530485da5d1e975",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -548,11 +548,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1738953846, "lastModified": 1739829690,
"narHash": "sha256-yrK3Hjcr8F7qS/j2F+r7C7o010eVWWlm4T1PrbKBOxQ=", "narHash": "sha256-mL1szCeIsjh6Khn3nH2cYtwO5YXG6gBiTw1A30iGeDU=",
"owner": "numtide", "owner": "numtide",
"repo": "treefmt-nix", "repo": "treefmt-nix",
"rev": "4f09b473c936d41582dd744e19f34ec27592c5fd", "rev": "3d0579f5cc93436052d94b73925b48973a104204",
"type": "github" "type": "github"
}, },
"original": { "original": {

View file

@ -1,4 +1,11 @@
{ config, pkgs, lib, osConfig, inputs, ... }: {
config,
pkgs,
lib,
osConfig,
inputs,
...
}:
{ {
# Home Manager needs a bit of information about you and the paths it should # Home Manager needs a bit of information about you and the paths it should
@ -15,9 +22,11 @@
# release notes. # release notes.
home.stateVersion = "24.05"; # Please read the comment before changing. home.stateVersion = "24.05"; # Please read the comment before changing.
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ nixpkgs.config.allowUnfreePredicate =
"vscode" pkg:
]; builtins.elem (lib.getName pkg) [
"vscode"
];
# The home.packages option allows you to install Nix packages into your # The home.packages option allows you to install Nix packages into your
# environment. # environment.
@ -25,14 +34,13 @@
# # Adds the 'hello' command to your environment. It prints a friendly # # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run. # # "Hello, world!" when run.
# pkgs.hello # pkgs.hello
# # It is sometimes useful to fine-tune packages, for example, by applying # # It is sometimes useful to fine-tune packages, for example, by applying
# # overrides. You can do that directly here, just don't forget the # # overrides. You can do that directly here, just don't forget the
# # parentheses. Maybe you want to install Nerd Fonts with a limited number of # # parentheses. Maybe you want to install Nerd Fonts with a limited number of
# # fonts? # # fonts?
(pkgs.nerdfonts.override { fonts = [ "CodeNewRoman" ]; }) (pkgs.nerdfonts.override { fonts = [ "CodeNewRoman" ]; })
pkgs.dm-sans pkgs.dm-sans
pkgs.zoxide pkgs.zoxide
pkgs.btop pkgs.btop
@ -84,8 +92,12 @@
pkgs.libsixel pkgs.libsixel
pkgs.walker pkgs.walker
pkgs.unzip
pkgs.p7zip
pkgs.nixfmt-rfc-style
# # You can also create simple shell scripts directly inside your # # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your # # configuration. For example, this adds a command 'my-hello' to your
# # environment: # # environment:
# (pkgs.writeShellScriptBin "my-hello" '' # (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!" # echo "Hello, ${config.home.username}!"
@ -124,7 +136,7 @@
}; };
programs.zoxide.enable = true; programs.zoxide.enable = true;
programs.zoxide.enableBashIntegration= true; programs.zoxide.enableBashIntegration = true;
programs.zoxide.options = [ programs.zoxide.options = [
"--cmd cd" "--cmd cd"
]; ];
@ -165,15 +177,15 @@
name = "miku-cursor-linux"; name = "miku-cursor-linux";
size = 32; size = 32;
gtk.enable = true; gtk.enable = true;
package = pkgs.callPackage ../packages/miku-cursor.nix {}; package = pkgs.callPackage ../packages/miku-cursor.nix { };
}; };
programs.git = { programs.git = {
userName = "harry123"; userName = "harry123";
userEmail = "harryh@ik.me"; userEmail = "harryh@ik.me";
enable = true; enable = true;
extraConfig = { extraConfig = {
credential.helper = "${pkgs.git.override { withLibsecret = true; }}/bin/git-credential-libsecret"; credential.helper = "${pkgs.git.override { withLibsecret = true; }}/bin/git-credential-libsecret";
}; };
}; };
@ -183,19 +195,19 @@
latitude = 49.0; latitude = 49.0;
longitude = 8.4; longitude = 8.4;
}; };
/* /*
xdg.mimeApps = { xdg.mimeApps = {
enable = true; enable = true;
defaultApplications = { defaultApplications = {
"text/html" = "firefox.desktop"; "text/html" = "firefox.desktop";
"x-scheme-handler/http" = "firefox.desktop"; "x-scheme-handler/http" = "firefox.desktop";
"x-scheme-handler/https" = "firefox.desktop"; "x-scheme-handler/https" = "firefox.desktop";
"x-scheme-handler/about" = "firefox.desktop"; "x-scheme-handler/about" = "firefox.desktop";
"x-scheme-handler/unknown" = "firefox.desktop"; "x-scheme-handler/unknown" = "firefox.desktop";
"application/pdf" = "org.pwmt.zathura-pdf-mupdf.desktop"; "application/pdf" = "org.pwmt.zathura-pdf-mupdf.desktop";
};
}; };
}; */
*/
programs.foot = { programs.foot = {
enable = true; enable = true;
server.enable = true; server.enable = true;

View file

@ -2,32 +2,39 @@
# your system. Help is available in the configuration.nix(5) man page, on # your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`). # https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, inputs, ... }: {
config,
lib,
pkgs,
inputs,
...
}:
{ {
imports = imports = [
[ # Include the results of the hardware scan. # Include the results of the hardware scan.
./hardware-configuration.nix ./hardware-configuration.nix
../../features/client/tailscale.nix ../../features/client/tailscale.nix
../../features/client/sway.nix ../../features/client/sway.nix
./features/default.nix ./features/default.nix
]; ./overlays/foot-overlay.nix
];
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
boot.loader = { boot.loader = {
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
grub = { grub = {
enable = true; enable = true;
devices = ["nodev"]; devices = [ "nodev" ];
efiSupport = true; efiSupport = true;
useOSProber = true; useOSProber = true;
}; };
}; };
time.hardwareClockInLocalTime = true; time.hardwareClockInLocalTime = true;
networking.hostName = "goober"; # Define your hostname. networking.hostName = "goober"; # Define your hostname.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
# Set your time zone. # Set your time zone.
time.timeZone = "Europe/Paris"; time.timeZone = "Europe/Paris";
@ -37,21 +44,27 @@
console = { console = {
font = "Lat2-Terminus16"; font = "Lat2-Terminus16";
keyMap = "fr"; keyMap = "fr";
# useXkbConfig = true; # use xkb.options in tty. # useXkbConfig = true; # use xkb.options in tty.
}; };
# mount compression # mount compression
fileSystems = { fileSystems = {
"/".options = ["compress=zstd"]; "/".options = [ "compress=zstd" ];
"/home".options = ["compress=zstd"]; "/home".options = [ "compress=zstd" ];
"/nix".options = ["compress=zstd" "noatime"]; "/nix".options = [
"compress=zstd"
"noatime"
];
#"/swap".options = ["compress=zstd"]; #"/swap".options = ["compress=zstd"];
}; };
services.btrfs.autoScrub.enable = true; services.btrfs.autoScrub.enable = true;
services.btrfs.autoScrub.interval = "weekly"; services.btrfs.autoScrub.interval = "weekly";
nix.settings.experimental-features = ["nix-command" "flakes"]; nix.settings.experimental-features = [
"nix-command"
"flakes"
];
# Configure keymap in X11 # Configure keymap in X11
# services.xserver.xkb.layout = "us"; # services.xserver.xkb.layout = "us";
# services.xserver.xkb.options = "eurosign:e,caps:escape"; # services.xserver.xkb.options = "eurosign:e,caps:escape";
@ -65,7 +78,11 @@
# Define a user account. Don't forget to set a password with passwd. # Define a user account. Don't forget to set a password with passwd.
users.users.harry123 = { users.users.harry123 = {
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" "audio" "video" ]; # Enable sudo for the user. extraGroups = [
"wheel"
"audio"
"video"
]; # Enable sudo for the user.
packages = with pkgs; [ packages = with pkgs; [
firefox firefox
tailscale tailscale
@ -96,10 +113,9 @@
enableSSHSupport = true; enableSSHSupport = true;
}; };
services.udisks2.enable = true ; services.udisks2.enable = true;
security.pam.services.swaylock = { };
security.pam.services.swaylock = {};
# cleaning old builds # cleaning old builds
nix.gc = { nix.gc = {
@ -107,6 +123,7 @@
randomizedDelaySec = "14m"; randomizedDelaySec = "14m";
options = "--delete-older-than 10d"; options = "--delete-older-than 10d";
}; };
# List services that you want to enable: # List services that you want to enable:
# Enable the OpenSSH daemon. # Enable the OpenSSH daemon.
@ -138,4 +155,3 @@
system.stateVersion = "24.05"; # Did you read the comment? system.stateVersion = "24.05"; # Did you read the comment?
} }

View file

@ -1,8 +1,9 @@
{config, ...}: { config, ... }:
{ {
imports = [ imports = [
./bluetooth.nix ./bluetooth.nix
./pipewire.nix ./pipewire.nix
./nvidia.nix ./nvidia.nix
./ios-phone-support.nix
]; ];
} }

View file

@ -0,0 +1,14 @@
{ config, pkgs, ... }:
{
services.usbmuxd = {
enable = true;
package = pkgs.usbmuxd2;
};
environment.systemPackages = with pkgs; [
libimobiledevice
usbutils
ifuse # optional, to mount using 'ifuse'
];
}

19
overlays/foot-overlay.nix Normal file
View file

@ -0,0 +1,19 @@
{ config, lib, pkgs, ... }:
{
let foot-next = pkgs.foot.overrideAttrs (oldAttrs: rec {
inherit (oldAttrs) name;
version = "1.20.2";
src = pkgs.fetchFromGitea {
domain = "codeberg.org";
owner = "dnkl";
repo = "foot";
rev = version;
hash = "sha256-tnBoRRKHcuvBSnqvJ/772UWuepvpUiSg6t+gx4MZ0VQ=";
};
}) in
nixpkgs.overlays = [(
final: previous: {
foot = foot-next;
}
)];
}