Compare commits

..
3 Commits
Author SHA1 Message Date
snurm 1b02ef5e00 add zed 2026-04-29 23:15:52 +02:00
snurm d5992c1dd3 exclude hardware config 2026-04-29 23:00:47 +02:00
snurm ff84a4daf8 initial commit 2026-04-29 22:44:55 +02:00
41 changed files with 945 additions and 1098 deletions

No files matched your search

+1
View File
@@ -0,0 +1 @@
hardware-configuration.nix
+163
View File
@@ -0,0 +1,163 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page
# and in the NixOS manual (accessible by running ‘nixos-help’).
{ config, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
# flakes
nix.settings.experimental-features = "nix-command flakes";
# Bootloader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
networking.hostName = "nixos"; # Define your hostname.
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Enable networking
networking.networkmanager.enable = true;
# Set your time zone.
time.timeZone = "Europe/Berlin";
# autologin
services.getty.autologinUser = "snurm";
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocales = [ "ja_JP.UTF-8/UTF-8" ];
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
fonts.packages = with pkgs; [
noto-fonts-cjk-sans
noto-fonts-color-emoji
nerd-fonts.fira-code
nerd-fonts.jetbrains-mono
font-awesome
];
fonts.enableDefaultPackages = true;
# Configure keymap in X11
services.xserver.xkb = {
layout = "de";
variant = "";
};
# Configure console keymap
console.keyMap = "de";
# Define a user account. Don't forget to set a password with ‘passwd’.
users.users.snurm = {
isNormalUser = true;
description = "snurm";
extraGroups = [ "networkmanager" "wheel" ];
packages = with pkgs; [];
};
users.defaultUserShell = pkgs.zsh;
# Allow unfree packages
nixpkgs.config.allowUnfree = true;
# List packages installed in system profile. To search, run:
# $ nix search wget
environment.systemPackages = with pkgs; [
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
# wget
spotify
jq
wl-clipboard
];
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
};
programs.hyprland.enable = true;
programs.uwsm = {
enable = true;
};
programs.zsh = {
enable = true;
};
programs.neovim = {
enable = true;
viAlias = true;
vimAlias = true;
defaultEditor = true;
configure = {
customLuaRC = ''
-- options
vim.o.shiftwidth = 4
vim.o.tabstop = 4
vim.o.scrolloff = 16
vim.o.relativenumber = true
vim.o.number = true
vim.opt.clipboard = "unnamedplus"
-- keymap
local key_opts = { silent = true, noremap = true, }
vim.keymap.set({'n','v','i'}, 'fj', '<Esc>', key_opts)
'';
};
withRuby = false;
withPython3 = false;
};
programs.steam = {
enable = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
};
# Some programs need SUID wrappers, can be configured further or are
# started in user sessions.
# programs.mtr.enable = true;
# programs.gnupg.agent = {
# enable = true;
# enableSSHSupport = true;
# };
# List services that you want to enable:
# Enable the OpenSSH daemon.
# services.openssh.enable = true;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# This value determines the NixOS release from which the default
# settings for stateful data, like file locations and database versions
# on your system were taken. It‘s perfectly fine and recommended to leave
# this value at the release version of the first install of this system.
# Before changing this value read the documentation for this option
# (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
system.stateVersion = "25.11"; # Did you read the comment?
}
Generated
+486 -161
View File
@@ -1,78 +1,91 @@
{
"nodes": {
"flake-file": {
"aquamarine": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1785282747,
"narHash": "sha256-ZwdMXUu0Udb4yzI65+psyJeUF+wexByNEvTUSx1xjVs=",
"owner": "vic",
"repo": "flake-file",
"rev": "56c46842d70754345c4a4581b8cbebe87b8fc067",
"lastModified": 1776876344,
"narHash": "sha256-Ubqb/agkuMJK+k19gjQgHux/eOYRc1sRGoOZOho8+VY=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "648a13d0ee1e03a843b3e145b8ece15393058701",
"type": "github"
},
"original": {
"owner": "vic",
"repo": "flake-file",
"owner": "hyprwm",
"repo": "aquamarine",
"type": "github"
}
},
"flake-parts": {
"catppuccin": {
"inputs": {
"nixpkgs-lib": "nixpkgs-lib"
"nixpkgs": "nixpkgs"
},
"locked": {
"lastModified": 1785627969,
"narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a",
"lastModified": 1777024856,
"narHash": "sha256-OQ+yIcRMXo4UaHyX+W5DCgBvJ5dZo/3kFGWPJiuR6x8=",
"owner": "catppuccin",
"repo": "nix",
"rev": "f41cc1cf13647e482b7317396f749840ef715e16",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"owner": "catppuccin",
"repo": "nix",
"type": "github"
}
},
"flake-parts_2": {
"flake-compat": {
"flake": false,
"locked": {
"lastModified": 1767039857,
"narHash": "sha256-vNpUSpF5Nuw8xvDLj2KCwwksIbjua2LZCqhV1LNRDns=",
"owner": "NixOS",
"repo": "flake-compat",
"rev": "5edf11c44bc78a0d334f6334cdaf7d60d732daab",
"type": "github"
},
"original": {
"owner": "NixOS",
"repo": "flake-compat",
"type": "github"
}
},
"gitignore": {
"inputs": {
"nixpkgs-lib": [
"nixvim",
"nixpkgs": [
"hyprland",
"pre-commit-hooks",
"nixpkgs"
]
},
"locked": {
"lastModified": 1785627969,
"narHash": "sha256-4dtXQk/NMePegK/nWp5NSeuZKLATItOq61lpEvmXqGw=",
"lastModified": 1709087332,
"narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=",
"owner": "hercules-ci",
"repo": "flake-parts",
"rev": "427bf4bd9435fdf21321c8cc628c24efc14c0f7a",
"repo": "gitignore.nix",
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
"owner": "hercules-ci",
"repo": "flake-parts",
"type": "github"
}
},
"helium-browser": {
"inputs": {
"nixpkgs": [
"nixpkgs"
],
"nixpkgs-darwin": "nixpkgs-darwin",
"utils": "utils"
},
"locked": {
"lastModified": 1788065178,
"narHash": "sha256-ADzuZ/MqrdJOMucTux5j0QMxo0YnCHLxuZAYlK/wxPE=",
"owner": "schembriaiden",
"repo": "helium-browser-nix-flake",
"rev": "f1250fd4dcd8f22cb3d8aa1e8e00f56cc947e795",
"type": "github"
},
"original": {
"owner": "schembriaiden",
"repo": "helium-browser-nix-flake",
"repo": "gitignore.nix",
"type": "github"
}
},
@@ -83,178 +96,490 @@
]
},
"locked": {
"lastModified": 1785119570,
"narHash": "sha256-Rgs2xKnGLFWQscxUaXX07oyZeuMDOHEbqDOsgliLFGM=",
"lastModified": 1776964438,
"narHash": "sha256-AF0cby9Xuijr5qaFpYKbm1mExV956Hk233bel6QxpFw=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "d4fd24667c8cbef124bb70a20380cab75ec8474d",
"rev": "e09259dd2e147d35ef889784b51e89b0a10ffe15",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "release-26.05",
"repo": "home-manager",
"type": "github"
}
},
"import-tree": {
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1784254960,
"narHash": "sha256-iI88R3wHz8wTKQb5orvpc51L/Xr64AJyxid/0MKa/b8=",
"owner": "vic",
"repo": "import-tree",
"rev": "4ebb10ae17d5f1ad366e7aef5b92cb8eecf24f69",
"lastModified": 1776511930,
"narHash": "sha256-fCpwFiTW0rT7oKJqr3cqHMnkwypSwQKpbtUEtxdkgrM=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "39435900785d0c560c6ae8777d29f28617d031ef",
"type": "github"
},
"original": {
"owner": "vic",
"repo": "import-tree",
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprgraphics": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1776426399,
"narHash": "sha256-RUESLKNikIeEq9ymGJ6nmcDXiSFQpUW1IhJ245nL3xM=",
"owner": "hyprwm",
"repo": "hyprgraphics",
"rev": "68d064434787cf1ed4a2fe257c03c5f52f33cf84",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprgraphics",
"type": "github"
}
},
"hyprland": {
"inputs": {
"aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
"hyprgraphics": "hyprgraphics",
"hyprland-guiutils": "hyprland-guiutils",
"hyprland-protocols": "hyprland-protocols",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"hyprwire": "hyprwire",
"nixpkgs": "nixpkgs_2",
"pre-commit-hooks": "pre-commit-hooks",
"systems": "systems",
"xdph": "xdph"
},
"locked": {
"lastModified": 1777466683,
"narHash": "sha256-DJHTGp1orBssX5YBzJYcx+FDwUa7hjh4uknslKLnBQE=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "7179a38c5feea9ba5e2d38373b5e34041c0d9f25",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "Hyprland",
"type": "github"
}
},
"hyprland-guiutils": {
"inputs": {
"aquamarine": [
"hyprland",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprtoolkit": "hyprtoolkit",
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1776426575,
"narHash": "sha256-KI6nIfVihn/DPaeB5Et46Xg3dkNHrrEtUd5LBBVomB0=",
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"rev": "a968d211048e3ed538e47b84cb3649299578f19d",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-guiutils",
"type": "github"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1772460177,
"narHash": "sha256-/6G/MsPvtn7bc4Y32pserBT/Z4SUUdBd4XYJpOEKVR4=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "1cb6db5fd6bb8aee419f4457402fa18293ace917",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1776426736,
"narHash": "sha256-rl7i4aY+9p8LysJp7o8uRWahCkpFznCgGHXszlTw7b0=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "7833ff33b2e82d3406337b5dcf0d1cec595d83e9",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprtoolkit": {
"inputs": {
"aquamarine": [
"hyprland",
"hyprland-guiutils",
"aquamarine"
],
"hyprgraphics": [
"hyprland",
"hyprland-guiutils",
"hyprgraphics"
],
"hyprlang": [
"hyprland",
"hyprland-guiutils",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprland-guiutils",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprland-guiutils",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"hyprland-guiutils",
"nixpkgs"
],
"systems": [
"hyprland",
"hyprland-guiutils",
"systems"
]
},
"locked": {
"lastModified": 1772462885,
"narHash": "sha256-5pHXrQK9zasMnIo6yME6EOXmWGFMSnCITcfKshhKJ9I=",
"owner": "hyprwm",
"repo": "hyprtoolkit",
"rev": "9af245a69fa6b286b88ddfc340afd288e00a6998",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprtoolkit",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1777148223,
"narHash": "sha256-PTf7kRFFzCW6rIYxLH2fWfVJmj86FSYe3k6L8B+IM9o=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "fa3992be2dfebe4ab06d753c6ca59bea298e798f",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1777148232,
"narHash": "sha256-Uv0WZLhu89SafuSOmYDA7akrPt4wBRmsa1ucasO5aXg=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "fec9cf1abcc1011e46f0a0986f46bf93c6bf8b92",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"hyprwire": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1776728575,
"narHash": "sha256-z9eGphrArEBpl1O/GCH0wlY6z4K9vA6yWh2gAS6qytU=",
"owner": "hyprwm",
"repo": "hyprwire",
"rev": "f3a80888783702a39691b684d099e16b83ed4702",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwire",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1785491804,
"narHash": "sha256-p00vplVOyfKGlhju0+eGGPAxyYYKaY0lpyuoHLFIx2Y=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5b4f72e1705a63aace42900610c4db82cb4af0ec",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-26.05",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-darwin": {
"locked": {
"lastModified": 1787940818,
"narHash": "sha256-vFzVv78WlyEbTyV5BbrnicnV159wC0YPOcBe3QagyBI=",
"lastModified": 1776548001,
"narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "f6107e546a5012172d93e79f1f7950da02ad798f",
"rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixpkgs-26.05-darwin",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs-lib": {
"locked": {
"lastModified": 1785031560,
"narHash": "sha256-OmshNvn2vupOFpYinLUu+1Dnpu4n7Q5N3ggGVNHpkUI=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "0e79af5e3d4dcfcd676ab5ba3f95d2e3352e078c",
"type": "github"
},
"original": {
"owner": "nix-community",
"repo": "nixpkgs.lib",
"type": "github"
}
},
"nixpkgs-unstable": {
"locked": {
"lastModified": 1785571196,
"narHash": "sha256-KoTsyMQqnXQZq8deCEnu4QkyldkwH/bpMMhUcfMdGIw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "148bab9c1c3c53136ecb44a6ea356a0ed5b39b06",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixvim": {
"inputs": {
"flake-parts": "flake-parts_2",
"nixpkgs": [
"nixpkgs"
],
"systems": "systems_2"
},
"nixpkgs_2": {
"locked": {
"lastModified": 1787536726,
"narHash": "sha256-aBh5Yk9tX8ZV4k10BJr2fvTq0/+iWGegaCMUOU7YKas=",
"owner": "nix-community",
"repo": "nixvim",
"rev": "e2c3f9f36326d07340626847543c557e2b95fb50",
"lastModified": 1776877367,
"narHash": "sha256-EHq1/OX139R1RvBzOJ0aMRT3xnWyqtHBRUBuO1gFzjI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "0726a0ecb6d4e08f6adced58726b95db924cef57",
"type": "github"
},
"original": {
"owner": "nix-community",
"ref": "nixos-26.05",
"repo": "nixvim",
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": {
"lastModified": 1776548001,
"narHash": "sha256-ZSK0NL4a1BwVbbTBoSnWgbJy9HeZFXLYQizjb2DPF24=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "b12141ef619e0a9c1c84dc8c684040326f27cdcc",
"type": "github"
},
"original": {
"id": "nixpkgs",
"ref": "nixos-unstable",
"type": "indirect"
}
},
"pre-commit-hooks": {
"inputs": {
"flake-compat": "flake-compat",
"gitignore": "gitignore",
"nixpkgs": [
"hyprland",
"nixpkgs"
]
},
"locked": {
"lastModified": 1776796298,
"narHash": "sha256-PcRvlWayisPSjd0UcRQbhG8Oqw78AcPE6x872cPRHN8=",
"owner": "cachix",
"repo": "git-hooks.nix",
"rev": "3cfd774b0a530725a077e17354fbdb87ea1c4aad",
"type": "github"
},
"original": {
"owner": "cachix",
"repo": "git-hooks.nix",
"type": "github"
}
},
"quickshell": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1777089709,
"narHash": "sha256-bZoy6qxL6Dbptt6PABvuhGKbyjuoyI7SQ1tzxM9g/QM=",
"ref": "refs/heads/master",
"rev": "11a71d233a566caba4ddffdca2e41d1fa79e45b1",
"revCount": 808,
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
},
"original": {
"type": "git",
"url": "https://git.outfoxxed.me/outfoxxed/quickshell"
}
},
"root": {
"inputs": {
"flake-file": "flake-file",
"flake-parts": "flake-parts",
"helium-browser": "helium-browser",
"catppuccin": "catppuccin",
"home-manager": "home-manager",
"import-tree": "import-tree",
"nixpkgs": "nixpkgs",
"nixpkgs-unstable": "nixpkgs-unstable",
"nixvim": "nixvim"
"hyprland": "hyprland",
"nixpkgs": "nixpkgs_3",
"quickshell": "quickshell"
}
},
"systems": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"repo": "default-linux",
"rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"repo": "default-linux",
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"utils": {
"xdph": {
"inputs": {
"systems": "systems"
"hyprland-protocols": [
"hyprland",
"hyprland-protocols"
],
"hyprlang": [
"hyprland",
"hyprlang"
],
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"lastModified": 1777035886,
"narHash": "sha256-m1TNuBoSXUBSKhD9UVMkU90M0wFTPTfvIOOltO8IM8A=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "ecfcdcc781f48821d83e1e2a0e30d7beca0eeb5e",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
}
+35 -16
View File
@@ -1,26 +1,45 @@
{
description = "A simple NixOS flake";
outputs = inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules);
description = "le config";
inputs = {
# NixOS official package source, using the nixos-26.05 branch here
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
helium-browser = {
url = "github:schembriaiden/helium-browser-nix-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
nixpkgs.url = "nixpkgs/nixos-unstable";
home-manager = {
url = "github:nix-community/home-manager/release-26.05";
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nixvim = {
url = "github:nix-community/nixvim/nixos-26.05";
catppuccin.url = "github:catppuccin/nix";
quickshell = {
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs";
};
flake-parts.url = "github:hercules-ci/flake-parts";
flake-file.url = "github:vic/flake-file";
import-tree.url = "github:vic/import-tree";
hyprland.url = "github:hyprwm/Hyprland";
};
outputs = inputs@{ nixpkgs, home-manager, catppuccin, hyprland, ... }: {
nixosConfigurations = {
nixos = nixpkgs.lib.nixosSystem {
specialArgs = { inherit inputs; };
system = "x86_64-linux";
modules = [
./configuration.nix
home-manager.nixosModules.home-manager
catppuccin.nixosModules.catppuccin
{
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = { inherit inputs; };
home-manager.users.snurm = {
imports = [
./home.nix
catppuccin.homeModules.catppuccin
];
};
home-manager.backupFileExtension = "backup";
catppuccin.enable = true;
catppuccin.flavor = "frappe";
}
];
};
};
};
}
+4 -4
View File
@@ -8,24 +8,24 @@
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-uuid/80073df0-54bd-438e-bcbc-795d3d886385";
{ device = "/dev/disk/by-uuid/d1ef9448-b414-48a0-8310-30a37a0124a0";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/2F17-7ACA";
{ device = "/dev/disk/by-uuid/8388-D695";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices =
[ { device = "/dev/disk/by-uuid/7810e79b-360b-48e1-a527-92ebeb4f628c"; }
[ { device = "/dev/disk/by-uuid/908c24d4-853d-49dc-9bd6-4e034772cdad"; }
];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
+246
View File
@@ -0,0 +1,246 @@
{ inputs, config, pkgs, ... }:
{
home.username = "snurm";
home.homeDirectory = "/home/snurm";
home.stateVersion = "25.11";
programs.home-manager.enable = true;
home.sessionVariables = {
NIXOS_OZONE_WL = "1";
SUDO_EDITOR = "nvim";
GTK_IM_MODULE = "fcitx";
QT_IM_MODULE = "fcitx";
SDL_IM_MODULE = "fcitx";
};
xdg.autostart = {
enable = true;
};
home.packages = with pkgs; [
hyprshutdown
grim
slurp
];
i18n.inputMethod = {
enable = true;
type = "fcitx5";
fcitx5.waylandFrontend = true;
fcitx5.addons = with pkgs; [
fcitx5-mozc
fcitx5-gtk
];
#fcitx5.settings.inputMethod = {
# GroupOrder."0" = "Default";
# "Groups/0" = {
# Name = "Default";
# "Default Layout" = "de";
# DefaultIM = "mozc";
# };
# "Groups/0/Items/0".Name = "keyboard-de";
# "Groups/0/Items/0".Layout = "";
# "Groups/0/Items/1".Name = "mozc";
# "Groups/0/Items/1".Layout = "de";
#};
#fcitx5.ignoreUserConfig = true;
};
fonts.fontconfig = {
enable = true;
};
wayland.windowManager.hyprland = {
enable = false;
systemd.enable = false;
#package = inputs.hyprland.packages.${nixpkgs.legacyPackages.x86_64-linux.stdenv.hostPlatform.system}.hyprland;
#portalPackage = inputs.hyprland.packages.${nixpkgs.legacyPackages.x86_64-linux.stdenv.hostPlatform.system}.xdg-desktop-portal-hyprland;
settings = {
"$mainMod" = "SUPER";
"$menu" = "wofi --show drun";
"$terminal" = "kitty";
input = {
"kb_layout" = "de";
"follow_mouse" = "1";
};
monitor = [
"DP-2, highres@highrr, auto, auto"
"DP-3, highres@highrr, auto-left, auto"
"HDMI-A-1, highres@highrr, auto-right, auto"
];
general = {
"border_size" = "2";
"gaps_in" = "5";
"gaps_out" = "5";
};
bind = [
"$mainMod, Q, exec, $terminal"
"$mainMod, D, exec, $menu"
"$mainMod, C, killactive"
"$mainMod, F, fullscreen"
"$mainMod, S, exec, grim -g \"$(slurp -d)\" - | wl-copy"
"$mainMod, M, exec, hyprshutdown -t 'Shutting Down...' --post-cmd 'shutdown -P 0'"
"$mainMod, H, movefocus, l"
"$mainMod, L, movefocus, r"
"$mainMod, K, movefocus, u"
"$mainMod, J, movefocus, d"
"$mainMod SHIFT, H, movewindow, l"
"$mainMod SHIFT, L, movewindow, r"
"$mainMod SHIFT, K, movewindow, u"
"$mainMod SHIFT, J, movewindow, d"
]
++ (
builtins.concatLists (builtins.genList (i:
let ws = i + 1;
in [
"$mainMod, code:1${toString i}, workspace, ${toString ws}"
"$mainMod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
]
)
10)
);
bindm = [
"$mainMod, mouse:272, movewindow"
"$mainMod, mouse:273, resizewindow"
];
bindl = [
",XF86AudioRaiseVolume, exec, wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"
",XF86AudioLowerVolume, exec, wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"
",XF86AudioMute, exec, wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"
",XF86AudioMicMute, exec, wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"
",XF86AudioNext, exec, playerctl next"
",XF86AudioPause, exec, playerctl play-pause"
",XF86AudioPlay, exec, playerctl play-pause"
",XF86AudioPrev, exec, playerctl previous"
];
exec-once = [
"hyprpaper"
];
};
};
programs.zed-editor = {
enable = true;
userSettings = {
features = {
copilot = false;
};
telemetry = {
metrics = false;
};
vim_mode = true;
ui_font_size = 16;
buffer_font_size = 16;
};
};
programs.firefox = {
enable = true;
languagePacks = [
"en-US"
"ja"
];
# TODO add extensions/settings/bookmarks
};
programs.zathura = {
enable = true;
};
programs.btop = {
enable = true;
};
programs.keepassxc = {
enable = true;
autostart = true;
};
programs.mangohud = {
enable = true;
enableSessionWide = true;
};
programs.vesktop = {
enable = true;
settings = {
discordBranch = "stable";
arRPC = true;
minimizeToTray = true;
hardwareVideoAcceleration = true;
};
};
programs.anki = {
enable = true;
theme = "light";
addons = [
pkgs.ankiAddons.anki-connect
pkgs.ankiAddons.review-heatmap
pkgs.ankiAddons.adjust-sound-volume
];
};
programs.quickshell = {
enable = true;
systemd.enable = true;
};
programs.zsh = {
enable = true;
shellAliases = {
cl = "clear";
rb = "sudo nixos-rebuild switch --flake /etc/nixos/";
};
profileExtra = ''
if uwsm check may-start && uwsm select; then
exec uwsm start default
fi
'';
};
programs.git = {
enable = true;
settings.user = {
name = "snurm";
email = "user@example.com";
};
};
programs.kitty = {
enable = true;
font = {
name = "JetBrains Mono";
size = 10;
};
settings = {
confirm_os_window_close = 0;
enable_auto_bell = false;
mouse_hide_wait = "-1.0";
background_opacity = "0.5";
background_blur = 5;
};
};
programs.wofi = {
enable = true;
};
services.playerctld = {
enable = true;
};
services.hyprpaper = {
enable = true;
settings = {
splash = false;
wallpaper = [
{
monitor = "DP-2";
path = "${config.home.homeDirectory}/Pictures/Wallpaper/dawn.jpg";
fit_mode = "cover";
}
{
monitor = "DP-3";
path = "${config.home.homeDirectory}/Pictures/Wallpaper/dawn.jpg";
fit_mode = "cover";
}
{
monitor = "HDMI-A-1";
path = "${config.home.homeDirectory}/Pictures/Wallpaper/dawn.jpg";
fit_mode = "cover";
}
];
};
};
}
-32
View File
@@ -1,32 +0,0 @@
{ self, ... }: {
config.flake.factory.user = username: isAdmin: {
nixos."${username}" =
{
lib,
pkgs,
...
}:
{
users.users."${username}" = {
isNormalUser = true;
home = "/home/${username}";
extraGroups = lib.optionals isAdmin [ "wheel" ];
shell = pkgs.zsh;
};
programs.zsh.enable = true;
# required for zsh completion
environment.pathsToLink = [ "/share/zsh" ];
home-manager.users."${username}" = {
imports = [
self.modules.homeManager."${username}"
];
};
};
homeManager."${username}" = {
home.username = "${username}";
};
};
}
@@ -1,11 +0,0 @@
{ inputs, ... }: {
flake.modules.nixos.nixos-desktop = {
imports =
with inputs.self.modules.nixos;
with inputs.self.factory;
[
system-desktop
i18n-de
];
};
}
@@ -1,18 +0,0 @@
{
flake.modules.nixos.nixos-desktop = {
fileSystems."/" =
{ device = "/dev/disk/by-uuid/80073df0-54bd-438e-bcbc-795d3d886385";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-uuid/2F17-7ACA";
fsType = "vfat";
options = [ "fmask=0077" "dmask=0077" ];
};
swapDevices = [
{ device = "/dev/disk/by-uuid/7810e79b-360b-48e1-a527-92ebeb4f628c"; }
];
};
}
@@ -1,3 +0,0 @@
{ inputs, ... }: {
flake.nixosConfigurations = inputs.self.lib.mkNixos "x86_64-linux" "nixos-desktop";
}
-19
View File
@@ -1,19 +0,0 @@
{ inputs, ... }: {
flake.modules.nixos.nixos-desktop = { lib, ... }: {
boot.initrd.availableKernelModules = [
"nvme"
"xhci_pci"
"ahci"
"usbhid"
"usb_storage"
"sd_mod"
];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
nixpkgs.hostPlatform = "x86_64-linux";
hardware.enableRedistributableFirmware = true;
hardware.cpu.amd.updateMicrocode = true;
};
}
@@ -1,12 +0,0 @@
{ inputs, ... }: {
flake.modules.nixos.nixos-desktop = {
imports =
with inputs.self.modules.nixos;
with inputs.self.factory;
[
system-desktop
systemd-boot
i18n-de
];
};
}
@@ -1,15 +0,0 @@
{ inputs, ... }: {
flake.modules.nixos.nixos-desktop = { config, ... } : {
imports = with inputs.self.modules.nixos; [
snurm
];
home-manager.users.snurm = { config, ... }: {
imports =
with inputs.self.modules.homeManager;
with inputs.self.factory;
[
];
};
};
}
-22
View File
@@ -1,22 +0,0 @@
{ inputs, ... }: {
imports = [
inputs.flake-parts.flakeModules.modules
inputs.flake-file.flakeModules.default
];
flake-file.inputs = {
flake-parts.url = "github:hercules-ci/flake-parts";
flake-file.url = "github:vic/flake-file";
import-tree.url = "github:vic/import-tree";
};
flake-file.outputs = ''
inputs: inputs.flake-parts.lib.mkFlake { inherit inputs; } (inputs.import-tree ./modules)
'';
systems = [
# f Darwin >:(
"aarch64-linux"
"x86_64-linux"
];
}
-30
View File
@@ -1,30 +0,0 @@
{ inputs, lib, ... }:
{
# Helper functions
options.flake.lib = lib.mkOption {
type = lib.types.attrsOf lib.types.unspecified;
default = { };
};
config.flake.lib = {
mkNixos = system: name: {
${name} = inputs.nixpkgs.lib.nixosSystem {
modules = [
inputs.self.modules.nixos.${name}
{ nixpkgs.hostPlatform = lib.mkDefault system; }
{ nixpkgs.config.allowUnfree = true; }
];
};
};
mkHomeManager = system: name: {
${name} = inputs.home-manager.lib.homeManagerConfiguration {
pkgs = inputs.nixpkgs.legacyPackages.${system};
modules = [
inputs.self.modules.homeManager.${name}
{ nixpkgs.config.allowUnfree = true; }
];
};
};
};
}
-26
View File
@@ -1,26 +0,0 @@
{
inputs,
config,
...
}:
{
# Add home-manager input
flake-file.inputs = {
home-manager.url = "github:nix-community/home-manager/release-26.05";
home-manager.inputs.nixpkgs.follows = "nixpkgs";
};
imports = [ inputs.home-manager.flakeModules.home-manager ];
flake.modules.nixos.home-manager = {
imports = [
inputs.home-manager.nixosModules.home-manager
];
home-manager = {
verbose = true;
useGlobalPkgs = true;
backupFileExtension = "backup";
};
};
}
-13
View File
@@ -1,13 +0,0 @@
{ inputs, ... }: {
flake-file.inputs = {
helium-browser = {
url = "github:schembriaiden/helium-browser-nix-flake";
inputs.nixpkgs.follows = "nixpkgs";
};
};
flake.modules.nixos.browser = { pkgs, ... }: {
environment.systemPackages = [
inputs.helium-browser.packages.${pkgs.stdenv.hostPlatform.system}.default
];
};
}
-12
View File
@@ -1,12 +0,0 @@
{
flake.modules.homeManager.btop = { pkgs, ... }: {
programs.btop = {
enable = true;
settings = {
vim_keys = true;
proc_tree = true;
proc_aggregate = true;
};
};
};
}
-5
View File
@@ -1,5 +0,0 @@
{
flake.modules.nixos.git = { pkgs, ... }: {
environment.systemPackages = [ pkgs.git ];
};
}
-365
View File
@@ -1,365 +0,0 @@
-- This is an example Hyprland Lua config file.
-- Refer to the wiki for more information.
-- https://wiki.hypr.land/Configuring/Start/
-- Please note not all available settings / options are set here.
-- For a full list, see the wiki
-- You can (and should!!) split this configuration into multiple files
-- Create your files separately and then require them like this:
-- require("myColors")
------------------
---- MONITORS ----
------------------
-- See https://wiki.hypr.land/Configuring/Basics/Monitors/
hl.monitor({
output = "DP-2",
mode = "highres",
position = "auto",
scale = "auto",
})
hl.monitor({
output = "DP-3",
mode = "highres",
position = "auto-left",
scale = "auto",
})
hl.monitor({
output = "HDMI-A-1",
mode = "highres",
position = "auto-right",
scale = "auto",
})
hl.monitor({
output = "",
mode = "preferred",
position = "auto",
scale = "auto",
})
---------------------
---- MY PROGRAMS ----
---------------------
-- Set programs that you use
local terminal = "kitty"
local fileManager = "dolphin"
local menu = "rofi -show drun"
local screenshot = "grim -g \"$(slurp)\" - | wl-copy"
-------------------
---- AUTOSTART ----
-------------------
-- See https://wiki.hypr.land/Configuring/Basics/Autostart/
-- Autostart necessary processes (like notifications daemons, status bars, etc.)
-- Or execute your favorite apps at launch like this:
--
-- hl.on("hyprland.start", function ()
-- hl.exec_cmd(terminal)
-- hl.exec_cmd("nm-applet")
-- hl.exec_cmd("waybar & hyprpaper & firefox")
-- end)
-------------------------------
---- ENVIRONMENT VARIABLES ----
-------------------------------
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Environment-variables/
hl.env("XCURSOR_SIZE", "24")
hl.env("HYPRCURSOR_SIZE", "24")
-----------------------
----- PERMISSIONS -----
-----------------------
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Permissions/
-- Please note permission changes here require a Hyprland restart and are not applied on-the-fly
-- for security reasons
-- hl.config({
-- ecosystem = {
-- enforce_permissions = true,
-- },
-- })
-- hl.permission("/usr/(bin|local/bin)/grim", "screencopy", "allow")
-- hl.permission("/usr/(lib|libexec|lib64)/xdg-desktop-portal-hyprland", "screencopy", "allow")
-- hl.permission("/usr/(bin|local/bin)/hyprpm", "plugin", "allow")
-----------------------
---- LOOK AND FEEL ----
-----------------------
-- Refer to https://wiki.hypr.land/Configuring/Basics/Variables/
hl.config({
general = {
gaps_in = 5,
gaps_out = 0,
border_size = 2,
col = {
active_border = { colors = {"rgba(33ccffee)", "rgba(00ff99ee)"}, angle = 45 },
inactive_border = "rgba(595959aa)",
},
-- Set to true to enable resizing windows by clicking and dragging on borders and gaps
resize_on_border = false,
-- Please see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Tearing/ before you turn this on
allow_tearing = false,
layout = "dwindle",
},
decoration = {
rounding = 0,
rounding_power = 0,
-- Change transparency of focused and unfocused windows
active_opacity = 1.0,
inactive_opacity = 1.0,
shadow = {
enabled = true,
range = 4,
render_power = 3,
color = 0xee1a1a1a,
},
blur = {
enabled = false,
size = 3,
passes = 1,
vibrancy = 0.1696,
},
},
animations = {
enabled = true,
},
})
-- Default curves and animations, see https://wiki.hypr.land/Configuring/Advanced-and-Cool/Animations/
hl.curve("easeOutQuint", { type = "bezier", points = { {0.23, 1}, {0.32, 1} } })
hl.curve("easeInOutCubic", { type = "bezier", points = { {0.65, 0.05}, {0.36, 1} } })
hl.curve("linear", { type = "bezier", points = { {0, 0}, {1, 1} } })
hl.curve("almostLinear", { type = "bezier", points = { {0.5, 0.5}, {0.75, 1} } })
hl.curve("quick", { type = "bezier", points = { {0.15, 0}, {0.1, 1} } })
-- Default springs
hl.curve("easy", { type = "spring", mass = 1, stiffness = 238.1191, dampening = 24.21279333 })
hl.animation({ leaf = "global", enabled = true, speed = 10, bezier = "default" })
hl.animation({ leaf = "border", enabled = true, speed = 5.39, bezier = "easeOutQuint" })
hl.animation({ leaf = "windows", enabled = true, speed = 4.79, spring = "easy" })
hl.animation({ leaf = "windowsIn", enabled = true, speed = 4.1, spring = "easy", style = "popin 87%" })
hl.animation({ leaf = "windowsOut", enabled = true, speed = 1.49, bezier = "linear", style = "popin 87%" })
hl.animation({ leaf = "fadeIn", enabled = true, speed = 1.73, bezier = "almostLinear" })
hl.animation({ leaf = "fadeOut", enabled = true, speed = 1.46, bezier = "almostLinear" })
hl.animation({ leaf = "fade", enabled = true, speed = 3.03, bezier = "quick" })
hl.animation({ leaf = "layers", enabled = true, speed = 3.81, bezier = "easeOutQuint" })
hl.animation({ leaf = "layersIn", enabled = true, speed = 4, bezier = "easeOutQuint", style = "fade" })
hl.animation({ leaf = "layersOut", enabled = true, speed = 1.5, bezier = "linear", style = "fade" })
hl.animation({ leaf = "fadeLayersIn", enabled = true, speed = 1.79, bezier = "almostLinear" })
hl.animation({ leaf = "fadeLayersOut", enabled = true, speed = 1.39, bezier = "almostLinear" })
hl.animation({ leaf = "workspaces", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "workspacesIn", enabled = true, speed = 1.21, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "workspacesOut", enabled = true, speed = 1.94, bezier = "almostLinear", style = "fade" })
hl.animation({ leaf = "zoomFactor", enabled = true, speed = 7, bezier = "quick" })
-- Ref https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
-- "Smart gaps" / "No gaps when only"
-- uncomment all if you wish to use that.
-- hl.workspace_rule({ workspace = "w[tv1]", gaps_out = 0, gaps_in = 0 })
-- hl.workspace_rule({ workspace = "f[1]", gaps_out = 0, gaps_in = 0 })
-- hl.window_rule({
-- name = "no-gaps-wtv1",
-- match = { float = false, workspace = "w[tv1]" },
-- border_size = 0,
-- rounding = 0,
-- })
-- hl.window_rule({
-- name = "no-gaps-f1",
-- match = { float = false, workspace = "f[1]" },
-- border_size = 0,
-- rounding = 0,
-- })
-- See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
hl.config({
dwindle = {
preserve_split = true, -- You probably want this
},
})
-- See https://wiki.hypr.land/Configuring/Layouts/Master-Layout/ for more
hl.config({
master = {
new_status = "master",
},
})
-- See https://wiki.hypr.land/Configuring/Layouts/Scrolling-Layout/ for more
hl.config({
scrolling = {
fullscreen_on_one_column = true,
},
})
----------------
---- MISC ----
----------------
hl.config({
misc = {
force_default_wallpaper = -1, -- Set to 0 or 1 to disable the anime mascot wallpapers
disable_hyprland_logo = false, -- If true disables the random hyprland logo / anime girl background. :(
},
})
---------------
---- INPUT ----
---------------
hl.config({
input = {
kb_layout = "de,jp",
kb_variant = "",
kb_model = "",
kb_options = "grp:alt_shift_toggle",
kb_rules = "",
repeat_delay = 400,
repeat_rate = 35,
follow_mouse = 1,
sensitivity = -0.5, -- -1.0 - 1.0, 0 means no modification.
touchpad = {
natural_scroll = false,
},
},
})
-- Example per-device config
-- See https://wiki.hypr.land/Configuring/Advanced-and-Cool/Devices/ for more
hl.device({
name = "epic-mouse-v1",
sensitivity = -1.0,
})
---------------------
---- KEYBINDINGS ----
---------------------
local mainMod = "SUPER" -- Sets "Windows" key as main modifier
-- Example binds, see https://wiki.hypr.land/Configuring/Basics/Binds/ for more
hl.bind(mainMod .. " + Q", hl.dsp.exec_cmd(terminal))
local closeWindowBind = hl.bind(mainMod .. " + C", hl.dsp.window.close())
-- closeWindowBind:set_enabled(false)
hl.bind(mainMod .. " + M", hl.dsp.exec_cmd("command -v hyprshutdown >/dev/null 2>&1 && hyprshutdown || hyprctl dispatch 'hl.dsp.exit()'"))
hl.bind(mainMod .. " + E", hl.dsp.exec_cmd(fileManager))
hl.bind(mainMod .. " + V", hl.dsp.window.float({ action = "toggle" }))
hl.bind(mainMod .. " + D", hl.dsp.exec_cmd(menu))
hl.bind(mainMod .. " + SHIFT + S", hl.dsp.exec_cmd(screenshot))
-- Move focus with mainMod + vim keys
hl.bind(mainMod .. " + H", hl.dsp.focus({ direction = "left" }))
hl.bind(mainMod .. " + L", hl.dsp.focus({ direction = "right" }))
hl.bind(mainMod .. " + K", hl.dsp.focus({ direction = "up" }))
hl.bind(mainMod .. " + J", hl.dsp.focus({ direction = "down" }))
-- Move windows with mainMod + SHIFT + vim keys
hl.bind(mainMod .. " + SHIFT + H", hl.dsp.window.move({ direction = "left" }))
hl.bind(mainMod .. " + SHIFT + L", hl.dsp.window.move({ direction = "right" }))
hl.bind(mainMod .. " + SHIFT + K", hl.dsp.window.move({ direction = "up" }))
hl.bind(mainMod .. " + SHIFT + J", hl.dsp.window.move({ direction = "down" }))
-- Switch workspaces with mainMod + [0-9]
-- Move active window to a workspace with mainMod + SHIFT + [0-9]
for i = 1, 10 do
local key = i % 10 -- 10 maps to key 0
hl.bind(mainMod .. " + " .. key, hl.dsp.focus({ workspace = i}))
hl.bind(mainMod .. " + SHIFT + " .. key, hl.dsp.window.move({ workspace = i }))
end
-- Scroll through existing workspaces with mainMod + scroll
hl.bind(mainMod .. " + mouse_down", hl.dsp.focus({ workspace = "e+1" }))
hl.bind(mainMod .. " + mouse_up", hl.dsp.focus({ workspace = "e-1" }))
-- Move/resize windows with mainMod + LMB/RMB and dragging
hl.bind(mainMod .. " + mouse:272", hl.dsp.window.drag(), { mouse = true })
hl.bind(mainMod .. " + mouse:273", hl.dsp.window.resize(), { mouse = true })
-- Laptop multimedia keys for volume and LCD brightness
hl.bind("XF86AudioRaiseVolume", hl.dsp.exec_cmd("wpctl set-volume -l 1 @DEFAULT_AUDIO_SINK@ 5%+"), { locked = true, repeating = true })
hl.bind("XF86AudioLowerVolume", hl.dsp.exec_cmd("wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-"), { locked = true, repeating = true })
hl.bind("XF86AudioMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"), { locked = true, repeating = true })
hl.bind("XF86AudioMicMute", hl.dsp.exec_cmd("wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessUp", hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%+"), { locked = true, repeating = true })
hl.bind("XF86MonBrightnessDown",hl.dsp.exec_cmd("brightnessctl -e4 -n2 set 5%-"), { locked = true, repeating = true })
-- Requires playerctl
hl.bind("XF86AudioNext", hl.dsp.exec_cmd("playerctl next"), { locked = true })
hl.bind("XF86AudioPause", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioPlay", hl.dsp.exec_cmd("playerctl play-pause"), { locked = true })
hl.bind("XF86AudioPrev", hl.dsp.exec_cmd("playerctl previous"), { locked = true })
--------------------------------
---- WINDOWS AND WORKSPACES ----
--------------------------------
-- See https://wiki.hypr.land/Configuring/Basics/Window-Rules/
-- and https://wiki.hypr.land/Configuring/Basics/Workspace-Rules/
-- Example window rules that are useful
local suppressMaximizeRule = hl.window_rule({
-- Ignore maximize requests from all apps. You'll probably like this.
name = "suppress-maximize-events",
match = { class = ".*" },
suppress_event = "maximize",
})
-- suppressMaximizeRule:set_enabled(false)
hl.window_rule({
-- Fix some dragging issues with XWayland
name = "fix-xwayland-drags",
match = {
class = "^$",
title = "^$",
xwayland = true,
float = true,
fullscreen = false,
pin = false,
},
no_focus = true,
})
-- Layer rules also return a handle.
-- local overlayLayerRule = hl.layer_rule({
-- name = "no-anim-overlay",
-- match = { namespace = "^my-overlay$" },
-- no_anim = true,
-- })
-- overlayLayerRule:set_enabled(false)
-- Hyprland-run windowrule
hl.window_rule({
name = "move-hyprland-run",
match = { class = "hyprland-run" },
move = "20 monitor_h-120",
float = true,
})
-19
View File
@@ -1,19 +0,0 @@
{ inputs, ... }: {
flake.modules.nixos.hyprland = { pkgs, ... }: {
programs.hyprland.enable = true;
environment.sessionVariables.NIXOS_OZONE_WL = "1";
home-manager.sharedModules = [
inputs.self.modules.homeManager.hyprland
];
};
flake.modules.homeManager.hyprland = { pkgs, ... }: {
wayland.windowManager.hyprland.enable = true;
services.hyprpolkitagent.enable = true;
home.packages = with pkgs; [
hyprpicker
];
};
}
-6
View File
@@ -1,6 +0,0 @@
{
flake.modules.homeManager.hyprland = {
wayland.windowManager.hyprland.configType = "lua";
wayland.windowManager.hyprland.extraConfig = builtins.readFile ./config.lua;
};
}
-7
View File
@@ -1,7 +0,0 @@
{
flake.modules.homeManager.keepassxc = {
programs.keepassxc = {
enable = true;
};
};
}
-13
View File
@@ -1,13 +0,0 @@
{
flake.modules.homeManager.kitty = {
programs.kitty = {
settings = {
confirm_os_window_close = 0;
enable_auto_bell = false;
mouse_hide_wait = "-1.0";
background_opacity = "0.5";
background_blur = 5;
};
};
};
}
-20
View File
@@ -1,20 +0,0 @@
{
flake.modules.homeManager.kitty = {
programs.kitty = {
enable = true;
enableGitIntegration = true;
font = {
name = "JetBrains Mono";
size = 10;
};
shellIntegration.enableZshIntegration = true;
settings = {
confirm_os_window_close = 0;
enable_auto_bell = false;
mouse_hide_wait = "-1.0";
background_opacity = "0.5";
background_blur = 5;
};
};
};
}
-18
View File
@@ -1,18 +0,0 @@
{ inputs, ... }: {
flake-file.inputs = {
nixvim.url = "github:nix-community/nixvim/nixos-26.05";
nixvim.inputs.nixpkgs.follows = "nixpkgs";
};
flake.modules.homeManager.nixvim = {
imports = [
inputs.nixvim.homeModules.nixvim
];
programs.nixvim = {
enable = true;
};
home.sessionVariables.EDITOR = "nvim";
};
}
-15
View File
@@ -1,15 +0,0 @@
{
flake.modules.homeManager.rofi = { pkgs, ... }: {
programs.rofi = {
enable = true;
modes = [
"combi"
"drun"
"calc"
];
plugins = [
pkgs.rofi-calc
];
};
};
}
-29
View File
@@ -1,29 +0,0 @@
{ inputs, ... }:
{
flake.modules.nixos.zsh = {
programs.zsh.enable = true;
environment.pathsToLink = [ "/share/zsh" ];
};
flake.modules.homeManager.zsh = { pkgs, ... }: {
imports = with inputs.self.modules.homeManager; [
];
programs.zsh = {
enable = true;
autocd = true;
enableCompletion = true;
autosuggestion.enable = true;
syntaxHighlighting.enable = true;
oh-my-zsh = {
enable = true;
plugins = [
"git"
];
};
};
};
}
+10
View File
@@ -0,0 +1,10 @@
{
inputs = {
nixpkgs.url = "nixpkgs/nixos-unstable";
quickshell = {
url = "git+https://git.outfoxxed.me/outfoxxed/quickshell";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = {};
}
-15
View File
@@ -1,15 +0,0 @@
{
flake.modules.nixos.nerdfonts = { pkgs, ... }: {
fonts = {
enableDefaultPackages = true;
packages = with pkgs; [
nerd-fonts.jetbrains-mono
];
fontDir.enable = true;
};
};
flake.modules.homeManager.nerdfonts = {
gtk.font.name = "JetBrainsMono";
};
}
-7
View File
@@ -1,7 +0,0 @@
{
flake.modules.nixos.networkmanager = {
networking.networkmanager = {
enable = true;
};
};
}
-11
View File
@@ -1,11 +0,0 @@
{
flake.modules.nixos.pipewire = {
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
wireplumber.enable = true;
};
};
}
-5
View File
@@ -1,5 +0,0 @@
{
flake.modules.nixos.amd-gpu = { pkgs, ... }: {
boot.kernelModules = [ "kvm-amd" ];
};
}
-21
View File
@@ -1,21 +0,0 @@
{
flake.modules.nixos.i18n-de = {
time.timeZone = "Europe/Berlin";
i18n.defaultLocale = "en_US.UTF-8";
i18n.extraLocales = [ "ja_JP.UTF-8/UTF-8" ];
i18n.extraLocaleSettings = {
LC_ADDRESS = "de_DE.UTF-8";
LC_IDENTIFICATION = "de_DE.UTF-8";
LC_MEASUREMENT = "de_DE.UTF-8";
LC_MONETARY = "de_DE.UTF-8";
LC_NAME = "de_DE.UTF-8";
LC_NUMERIC = "de_DE.UTF-8";
LC_PAPER = "de_DE.UTF-8";
LC_TELEPHONE = "de_DE.UTF-8";
LC_TIME = "de_DE.UTF-8";
};
console.keyMap = "de";
};
}
-5
View File
@@ -1,5 +0,0 @@
{
flake.modules.nixos.linux-latest = { pkgs, ... }: {
# boot.kernelPackages.pkgs.linuxPackages_latest;
};
}
-6
View File
@@ -1,6 +0,0 @@
{
flake.modules.nixos.systemd-boot = {
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
};
}
@@ -1,9 +0,0 @@
{ inputs, ... }: {
flake.modules.homeManager.system-base = { config, ... }: {
imports = with inputs.self.modules.homeManager; [
];
home.homeDirectory = "/home/${config.home.username}";
home.stateVersion = "26.05";
};
}
-52
View File
@@ -1,52 +0,0 @@
{ inputs, ... }: {
flake-file.inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05";
nixpkgs-unstable.url = "github:nixos/nixpkgs-unstable";
};
flake.modules.nixos.system-base = { pkgs, ... }: {
imports = with inputs.self.modules.nixos; [
home-manager
zsh
linux-latest
];
nixpkgs.overlays = [
(final: _prev: {
unstable = import inputs.nixpkgs-unstable {
inherit (final) config;
system = pkgs.stdenv.hostPlatform.system;
};
})
];
nixpkgs.config.allowUnfree = true;
nix.settings = {
substituters = [
# high priority since it's almost always used
"https://cache.nixos.org?priority=10"
"https://install.determinate.systems"
"https://nix-community.cachix.org"
];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"cache.flakehub.com-3:hJuILl5sVK4iKm86JzgdXW12Y2Hwd5G07qKtHTOcDCM"
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
experimental-features = [
"nix-command"
"flakes"
];
download-buffer-size = 1024 * 1024 * 1024;
trusted-users = [
"root"
"@wheel"
];
};
system.stateVersion = "26.05";
};
}
-27
View File
@@ -1,27 +0,0 @@
{ inputs, ... }: {
flake.modules.nixos.system-desktop = {
imports = with inputs.self.modules.nixos; [
system-base
hyprland
pipewire
browser
];
home-manager.sharedModules = [
inputs.self.modules.homeManager.system-desktop
];
};
flake.modules.homeManager.system-desktop = {
imports =
with inputs.self.modules.homeManager;
[
system-base
rofi
kitty
zsh
];
};
}
-13
View File
@@ -1,13 +0,0 @@
{
flake.modules.homeManager.snurm-git = {
programs.git = {
enable = true;
settings = {
user = {
email = "user@example.com";
name = "snurm";
};
};
};
};
}
-36
View File
@@ -1,36 +0,0 @@
{
inputs,
self,
lib,
...
}:
{
flake.homeConfiguration = inputs.self.lib.mkHomeManager "x86_64-linux" "snurm";
flake.modules = lib.mkMerge [
(self.factory.user "snurm" true)
{
nixos.snurm = {
imports =
with self.modules.nixos;
with self.factory;
[
];
users.users.snurm.extraGroups = [
"networkmanager"
];
};
homeManager.snurm = { pkgs, ... }: {
imports = with self.modules.homeManager; [
snurm-git
btop
nixvim
keepassxc
];
};
}
];
}