lot of changes

This commit is contained in:
Lorenz Hohermuth 2024-11-24 18:33:41 +01:00
parent 97e462bea0
commit a61957211c
4 changed files with 308 additions and 59 deletions

View File

@ -2,27 +2,28 @@
# 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, callPackage, catppuccinFlavor, ... }: { pkgs, inputs, catppuccinFlavor, ... }:
{ {
imports = [ imports = [
./hardware-configuration.nix ./hardware-configuration.nix
]; ];
environment.variables.HYPRCURSOR_THEME = "McMojave";
programs.steam = { programs.steam = {
enable = true; enable = true;
remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play
dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server
localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers
gamescopeSession.enable = true;
}; };
catppuccin.flavor = catppuccinFlavor; catppuccin.flavor = catppuccinFlavor;
catppuccin.enable = true; catppuccin.enable = true;
programs.dconf.enable = true; programs.dconf.enable = true;
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true;
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "hp-laptop-lho"; # Define your hostname. networking.hostName = "hp-laptop-lho"; # 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.
@ -41,47 +42,43 @@
displayManager = { displayManager = {
sddm = { sddm = {
enable = true; enable = true;
wayland.enable = true;
package = pkgs.kdePackages.sddm; package = pkgs.kdePackages.sddm;
}; };
}; };
xserver = {
enable = true;
desktopManager = {
xterm.enable = false;
};
windowManager.i3 = {
enable = true;
extraPackages = with pkgs; [
rofi-calc
rofimoji
rofi
polybar
polybar-pulseaudio-control
pavucontrol
dunst
i3lock-color # locksreen
arandr # manager monitor
lxqt.lxqt-sudo
];
};
};
}; };
programs.hyprland = {
enable = true;
xwayland.enable = true;
};
# git freeze fix
programs.ssh = {
enableAskPassword = true;
askPassword = "${pkgs.lxqt.lxqt-openssh-askpass}/bin/lxqt-openssh-askpass";
};
# Configure keymap in X11 # Configure keymap in X11
services.xserver.xkb.layout = "ch"; services.xserver.xkb.layout = "ch";
services.displayManager.defaultSession = "none+i3"; services.displayManager.defaultSession = "hyprland";
# services.xserver.xkb.options = "eurosign:e,caps:escape"; # services.xserver.xkb.options = "eurosign:e,caps:escape";
# Enable CUPS to print documents. # Enable CUPS to print documents.
# services.printing.enable = true; # services.printing.enable = true;
# Enable sound. # Enable sound.
hardware.pulseaudio.enable = true; hardware.pulseaudio = {
enable = true;
support32Bit = true;
};
nixpkgs.config.pulseaudio = true;
# OR # OR
# services.pipewire = { services.pipewire.enable = false;
# enable = true; #services.pipewire = {
# pulse.enable = true; # enable = true;
# }; # pulse.enable = true;
#};
# Enable touchpad support (enabled default in most desktopManager). # Enable touchpad support (enabled default in most desktopManager).
# services.libinput.enable = true; # services.libinput.enable = true;
@ -96,11 +93,23 @@
services.libinput.touchpad.naturalScrolling = true; services.libinput.touchpad.naturalScrolling = true;
services.auto-cpufreq.enable = true; services.auto-cpufreq.enable = true;
services.gnome.gnome-keyring.enable = true;
security.pam.services.sddm.enableGnomeKeyring = true;
virtualisation.docker.enable = true;
virtualisation.docker.rootless = {
enable = true;
setSocketVariable = true;
};
users.users.lorenz = { users.users.lorenz = {
shell = pkgs.zsh; shell = pkgs.zsh;
isNormalUser = true; isNormalUser = true;
extraGroups = [ "wheel" ]; # Enable sudo for the user. extraGroups = [
"wheel" # Enable sudo for the user.
"docker"
];
}; };
fonts.packages = with pkgs; [ fonts.packages = with pkgs; [
@ -113,16 +122,19 @@
users.defaultUserShell = pkgs.zsh; users.defaultUserShell = pkgs.zsh;
environment.systemPackages = [ environment.systemPackages = [
pkgs.auto-cpufreq pkgs.auto-cpufreq
pkgs.killall
pkgs.neovim pkgs.neovim
pkgs.neofetch pkgs.neofetch
pkgs.wget pkgs.wget
# for neovim
pkgs.gcc pkgs.gcc
pkgs.nodejs_22 pkgs.nodejs_22
pkgs.python313 pkgs.python313
pkgs.cargo pkgs.cargo
pkgs.go
pkgs.networkmanager_dmenu pkgs.networkmanager_dmenu
pkgs.dmenu pkgs.dmenu
@ -137,7 +149,28 @@
pkgs.gitFull # git, git gui, gitk pkgs.gitFull # git, git gui, gitk
pkgs.tk # for git ui pkgs.tk # for git ui
pkgs.vscode pkgs.lxqt.lxqt-openssh-askpass # git freeze fix
pkgs.pavucontrol
pkgs.dunst
pkgs.i3lock-color # locksreen
pkgs.arandr # manager monitor
pkgs.lxqt.lxqt-sudo
#hyprland
pkgs.rofi-wayland
pkgs.waybar
pkgs.hyprlock
pkgs.hyprpaper
pkgs.kanshi
inputs.mcmojave-hyprcursor.packages.${pkgs.stdenv.hostPlatform.system}.default
];
programs.nix-ld.libraries = with pkgs; [
pkgs.lua-language-server
pkgs.lua
]; ];
# Some programs need SUID wrappers, can be configured further or are # Some programs need SUID wrappers, can be configured further or are
@ -153,11 +186,14 @@
# Enable the OpenSSH daemon. # Enable the OpenSSH daemon.
services.openssh.enable = true; services.openssh.enable = true;
# Open ports in the firewall. networking.firewall = {
# networking.firewall.allowedTCPPorts = [ ... ]; enable = true;
# networking.firewall.allowedUDPPorts = [ ... ]; allowedTCPPorts = [ 53317 ];
# Or disable the firewall altogether. allowedUDPPorts = [ 53317 ];
# networking.firewall.enable = false; };
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
# Copy the NixOS configuration file and link it from the resulting system # Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you # (/run/current-system/configuration.nix). This is useful in case you

View File

@ -2,11 +2,11 @@
"nodes": { "nodes": {
"catppuccin": { "catppuccin": {
"locked": { "locked": {
"lastModified": 1721784420, "lastModified": 1731232837,
"narHash": "sha256-bgF6fN4Qgk7NErFKGuuqWXcLORsiykTYyqMUFRiAUBY=", "narHash": "sha256-0aIwr/RC/oe7rYkfJb47xjdEQDSNcqpFGsEa+EPlDEs=",
"owner": "catppuccin", "owner": "catppuccin",
"repo": "nix", "repo": "nix",
"rev": "8bdb55cc1c13f572b6e4307a3c0d64f1ae286a4f", "rev": "32359bf226fe874d3b7a0a5753d291a4da9616fe",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -38,11 +38,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1721534365, "lastModified": 1731968878,
"narHash": "sha256-XpZOkaSJKdOsz1wU6JfO59Rx2fqtcarQ0y6ndIOKNpI=", "narHash": "sha256-+hTCwETOE9N8voTAaF+IzdUZz28Ws3LDpH90FWADrEE=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "635563f245309ef5320f80c7ebcb89b2398d2949", "rev": "a42fa14b53ceab66274a21da480c9f8e06204173",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -52,13 +52,149 @@
"type": "github" "type": "github"
} }
}, },
"hyprcursor": {
"inputs": {
"hyprlang": "hyprlang",
"nixpkgs": [
"mcmojave-hyprcursor",
"nixpkgs"
],
"systems": "systems"
},
"locked": {
"lastModified": 1721330371,
"narHash": "sha256-aYlHTWylczLt6ERJyg6E66Y/XSCbVL7leVcRuJmVbpI=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "4493a972b48f9c3014befbbf381ed5fff91a65dc",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": "hyprutils",
"nixpkgs": [
"mcmojave-hyprcursor",
"hyprcursor",
"nixpkgs"
],
"systems": [
"mcmojave-hyprcursor",
"hyprcursor",
"systems"
]
},
"locked": {
"lastModified": 1721324361,
"narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"mcmojave-hyprcursor",
"hyprcursor",
"hyprlang",
"nixpkgs"
],
"systems": [
"mcmojave-hyprcursor",
"hyprcursor",
"hyprlang",
"systems"
]
},
"locked": {
"lastModified": 1721324102,
"narHash": "sha256-WAZ0X6yJW1hFG6otkHBfyJDKRpNP5stsRqdEuHrFRpk=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "962582a090bc233c4de9d9897f46794280288989",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"mcmojave-hyprcursor": {
"inputs": {
"hyprcursor": "hyprcursor",
"nixpkgs": "nixpkgs",
"systems": "systems_2"
},
"locked": {
"lastModified": 1722822648,
"narHash": "sha256-aM3y6Fq156ilzKUPrZTwp+XWmIqcoQeklRERN0Y0Nvo=",
"owner": "libadoxon",
"repo": "mcmojave-hyprcursor",
"rev": "ad4bbde8d87810f74fe72ae102ce824f26bb1b07",
"type": "github"
},
"original": {
"owner": "libadoxon",
"repo": "mcmojave-hyprcursor",
"type": "github"
}
},
"nix-ld": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1728031945,
"narHash": "sha256-NRkLjdMtVfC6dD1gEbYZWFEtbmC2xfD6ft1IP7l76Vw=",
"owner": "Mic92",
"repo": "nix-ld",
"rev": "4524c512e8729ccb5a1b9239d01e1474cbf074a2",
"type": "github"
},
"original": {
"owner": "Mic92",
"repo": "nix-ld",
"type": "github"
}
},
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1721379653, "lastModified": 1722062969,
"narHash": "sha256-8MUgifkJ7lkZs3u99UDZMB4kbOxvMEXQZ31FO3SopZ0=", "narHash": "sha256-QOS0ykELUmPbrrUGmegAUlpmUFznDQeR4q7rFhl8eQg=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "1d9c2c9b3e71b9ee663d11c5d298727dace8d374", "rev": "b73c2221a46c13557b1b3be9c2070cc42cf01eb3",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_2": {
"locked": {
"lastModified": 1731676054,
"narHash": "sha256-OZiZ3m8SCMfh3B6bfGC/Bm4x3qc1m2SVEAlkV6iY7Yg=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "5e4fbfb6b3de1aa2872b76d49fafc942626e2add",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -72,7 +208,9 @@
"inputs": { "inputs": {
"catppuccin": "catppuccin", "catppuccin": "catppuccin",
"home-manager": "home-manager", "home-manager": "home-manager",
"nixpkgs": "nixpkgs", "mcmojave-hyprcursor": "mcmojave-hyprcursor",
"nix-ld": "nix-ld",
"nixpkgs": "nixpkgs_2",
"spicetify-nix": "spicetify-nix" "spicetify-nix": "spicetify-nix"
} }
}, },
@ -84,11 +222,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1722053480, "lastModified": 1731989835,
"narHash": "sha256-DG1jdoSIcRLkQvCs63MSMJmssHTwm4zGOmP3hUtAzSY=", "narHash": "sha256-Y1S+x2jWLQB9hn4aG04/213ZlTp+30itKe9KcSsrFgw=",
"owner": "Gerg-L", "owner": "Gerg-L",
"repo": "spicetify-nix", "repo": "spicetify-nix",
"rev": "e954f700aeaeb1b4df261c68c2391089f655fac8", "rev": "aac6c81489f61034916efa4ed62840dc1d72c413",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -96,6 +234,36 @@
"repo": "spicetify-nix", "repo": "spicetify-nix",
"type": "github" "type": "github"
} }
},
"systems": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default-linux",
"type": "github"
}
} }
}, },
"root": "root", "root": "root",

View File

@ -10,9 +10,13 @@
url = "github:Gerg-L/spicetify-nix"; url = "github:Gerg-L/spicetify-nix";
inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs.follows = "nixpkgs";
}; };
nix-ld.url = "github:Mic92/nix-ld";
nix-ld.inputs.nixpkgs.follows = "nixpkgs";
mcmojave-hyprcursor.url = "github:libadoxon/mcmojave-hyprcursor";
}; };
outputs = { nixpkgs, home-manager, catppuccin, spicetify-nix, ... } @ inputs: let outputs = { self, nixpkgs, ... } @ inputs: let
lib = nixpkgs.lib; lib = nixpkgs.lib;
system = "x86_64-linux"; system = "x86_64-linux";
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${system};
@ -22,16 +26,18 @@
hp-laptop-lho = lib.nixosSystem { hp-laptop-lho = lib.nixosSystem {
inherit system; inherit system;
specialArgs = { specialArgs = {
inherit inputs;
inherit catppuccinFlavor; inherit catppuccinFlavor;
}; };
modules = [ modules = [
inputs.nix-ld.nixosModules.nix-ld
./configuration.nix ./configuration.nix
catppuccin.nixosModules.catppuccin inputs.catppuccin.nixosModules.catppuccin
]; ];
}; };
}; };
homeConfigurations = { homeConfigurations = {
lorenz = home-manager.lib.homeManagerConfiguration { lorenz = inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs; inherit pkgs;
extraSpecialArgs = { extraSpecialArgs = {
inherit inputs; inherit inputs;
@ -39,7 +45,7 @@
}; };
modules = [ modules = [
./home.nix ./home.nix
catppuccin.homeManagerModules.catppuccin inputs.catppuccin.homeManagerModules.catppuccin
]; ];
}; };
}; };

View File

@ -1,5 +1,6 @@
{ config, pkgs, inputs, catppuccinFlavor, ... }: { pkgs, inputs, catppuccinFlavor, ... }:
{ imports = [ {
imports = [
inputs.spicetify-nix.homeManagerModules.default inputs.spicetify-nix.homeManagerModules.default
]; ];
@ -26,6 +27,11 @@
}; };
}; };
# git freeze fix
home.sessionVariables = {
SSH_ASKPASS = "${pkgs.lxqt.lxqt-openssh-askpass}/bin/lxqt-openssh-askpass";
};
#spotify #spotify
programs.spicetify = programs.spicetify =
@ -66,6 +72,7 @@
style.name = "kvantum"; style.name = "kvantum";
}; };
# 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
# manage. # manage.
home.username = "lorenz"; home.username = "lorenz";
@ -85,6 +92,8 @@
# environment. # environment.
nixpkgs.config.allowUnfree = true; nixpkgs.config.allowUnfree = true;
home.packages = [ home.packages = [
pkgs.firefox
pkgs.git-credential-manager pkgs.git-credential-manager
pkgs.zsh # shell pkgs.zsh # shell
pkgs.fzf # fuzzy search pkgs.fzf # fuzzy search
@ -113,14 +122,44 @@
pkgs.betterdiscordctl pkgs.betterdiscordctl
pkgs.aseprite pkgs.aseprite
pkgs.flameshot pkgs.hyprshot
pkgs.xdg-desktop-portal-kde
pkgs.xdg-desktop-portal
pkgs.xournalpp pkgs.xournalpp
pkgs.texliveGUST
pkgs.unzip pkgs.unzip
pkgs.textsnatcher pkgs.textsnatcher
pkgs.copyq pkgs.copyq
#d-bus
pkgs.d-spy
pkgs.kdePackages.qttools
pkgs.wireshark
pkgs.hoppscotch
#flash boot sticks
pkgs.impression
pkgs.rpi-imager
pkgs.xorg.xrandr
#alternative to airdrop
pkgs.localsend
#edit metadata
pkgs.metadata-cleaner
#convert images
pkgs.switcheroo
pkgs.jetbrains.datagrip
pkgs.jetbrains.idea-ultimate
#better man pages
pkgs.tealdeer # run wtih tldr
# # 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