diff options
author | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-05-16 16:45:40 +0200 |
---|---|---|
committer | Benedikt Peetz <benedikt.peetz@b-peetz.de> | 2025-05-16 16:45:40 +0200 |
commit | 176d9bb96e8923b84bb0bdc731ef707514c0d53e (patch) | |
tree | cab831d04c6c919d41c11fe6abfe67de34c90699 /hosts/by-name/apzu/configuration.nix | |
parent | modules: Import external modules in the module that actually need them (diff) | |
download | nixos-config-176d9bb96e8923b84bb0bdc731ef707514c0d53e.zip |
hosts: Move to a `by-name` schema
Diffstat (limited to 'hosts/by-name/apzu/configuration.nix')
-rw-r--r-- | hosts/by-name/apzu/configuration.nix | 138 |
1 files changed, 138 insertions, 0 deletions
diff --git a/hosts/by-name/apzu/configuration.nix b/hosts/by-name/apzu/configuration.nix new file mode 100644 index 00000000..69af3f2d --- /dev/null +++ b/hosts/by-name/apzu/configuration.nix @@ -0,0 +1,138 @@ +# nixos-config - My current NixOS configuration +# +# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de> +# SPDX-License-Identifier: GPL-3.0-or-later +# +# This file is part of my nixos-config. +# +# You should have received a copy of the License along with this program. +# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. +{ + lib, + pkgs, + baseLib, + ... +}: { + imports = [ + ./hardware.nix + ]; + + soispha = { + bluetooth.enable = true; + + laptop = { + backlight = "intel_backlight"; + enable = true; + }; + + # TODO: Hard-code all the uids/gids <2025-05-13> + impermanence.directories = [ + "/var/lib/nixos" + "/var/log" + ]; + + programs = { + yambar = { + laptop = true; + backlight = "intel_backlight"; + }; + river.init = { + mappings = { + layout = "dvorak-modified"; + keymap = + { + # Focus change + "<Meta-T>" = {command = ["focus-view" "next"];}; + "<Meta-N>" = {command = ["focus-view" "previous"];}; + "<Meta+Ctrl-T>" = {command = ["focus-output" "next"];}; + "<Meta+Ctrl-N>" = {command = ["focus-output" "previous"];}; + + # Standard programs + "<Meta-<ENTER>>" = {command = ["spawn" "${lib.getExe pkgs.alacritty}"];}; + "<Meta+Shift-q>" = {command = ["exit"];}; + "<Meta-L>" = {command = ["spawn" "${lib.getExe pkgs.lock}"];}; + + # Screenshot + "<PRINTSCREEN>" = {command = ["spawn" "${lib.getExe pkgs.screenshot_persistent}"];}; + + # Audio + "<MEDIA_RAISEVOLUME>" = { + command = ["spawn" "${lib.getExe' pkgs.wireplumber "wpctl"} set-volume @DEFAULT_SINK@ 5%+"]; + modes = ["normal" "locked"]; + }; + "<MEDIA_LOWERVOLUME>" = { + command = ["spawn" "${lib.getExe' pkgs.wireplumber "wpctl"} set-volume @DEFAULT_SINK@ 5%-"]; + modes = ["normal" "locked"]; + }; + "<MEDIA_MUTEVOLUME>" = { + command = ["spawn" "${lib.getExe pkgs.mpc} toggle"]; + modes = ["normal" "locked"]; + }; + + # Launcher + "<Meta-R>" = {command = ["spawn" "${lib.getExe pkgs.rofi} -show combi -modes combi -combi-modes 'window, drun, run' -show-icons"];}; + "<Meta-<F1>>" = {command = ["spawn" "${lib.getExe pkgs.tskm} open select"];}; + "<Meta-<F2>>" = {command = ["spawn" "${lib.getExe pkgs.keepassxc}"];}; + "<Meta-<F3>>" = {command = ["spawn" "${lib.getExe pkgs.signal-desktop}"];}; + # "<Meta-<F4>>" = {command = ["spawn" "${lib.getExe pkgs.steam}"];}; + + # Client + "<Meta-f>" = {command = ["toggle-fullscreen"];}; + "<Meta+Shift-c>" = {command = ["close"];}; + "<Meta+Ctrl- >" = {command = ["toggle-float"];}; + "<Meta+Ctrl-<ENTER>>" = {command = ["zoom"];}; + "<Meta-o>" = {command = ["send-to-output" "next"];}; + "<Meta+Shift-T>" = {command = ["swap" "next"];}; + "<Meta+Shift-N>" = {command = ["swap" "previous"];}; + + # Toggle all tags + "<Meta-0>" = {command = ["set-focused-tags" (builtins.toString ((baseLib.pow 2 32) - 1))];}; + "<Meta+Shift-0>" = {command = ["set-view-tags" (builtins.toString ((baseLib.pow 2 32) - 1))];}; + + # Mouse + "<Meta-<MOUSE_LEFT>>" = { + command = ["move-view"]; + map_mode = "MapMouse"; + }; + "<Meta-<MOUSE_RIGHT>>" = { + command = ["resize-view"]; + map_mode = "MapMouse"; + }; + } + // ( + builtins.foldl' (acc: elem: acc // elem) {} ( + builtins.map (index: let + num = builtins.toString index; + index2tag = input: builtins.toString (baseLib.pow 2 (input - 1)); + in { + "<Meta-${num}>" = {command = ["set-focused-tags" (index2tag index)];}; + "<Meta+Shift-${num}>" = {command = ["set-view-tags" (index2tag index)];}; + "<Meta+Shift+Ctrl-${num}>" = {command = ["toggle-view-tags" (index2tag index)];}; + }) (builtins.genList (i: i + 1) 9) + ) + ); + }; + screenSetupCode = {}; + }; + }; + + locale.enable = true; + networking = { + enable = true; + hostName = "apzu"; + mode = "NetworkManager"; + }; + services.unison.foreign.address = "tiamat.fritz.box"; + nixpkgs = { + enable = true; + systemName = "x86_64-linux"; + }; + users = { + enable = true; + enableDeprecatedPlugdev = true; + hashedPassword = "$y$jFT$3qI9MYLDHPUdGKsVa8skV0$TOjX0SFHWuj52zd7/kmkNtG5EqQwYcqv0FKXWbLaro6"; + }; + }; + + system.stateVersion = "23.05"; +} |