From 7525ab34c14ce0ba3876c5deeaba17d778dad821 Mon Sep 17 00:00:00 2001 From: cnst Date: Sat, 17 Aug 2024 18:28:42 +0200 Subject: [PATCH] big module system implementation --- .cleanup-boot.sh => .scripts/cleanup-boot.sh | 0 .scripts/forge-ssh.sh | 47 ++++ flake.lock | 205 +++++++++------ flake.nix | 7 +- home/bin/default.nix | 7 - home/bin/hyprland/cnst/appearance.nix | 48 ---- home/bin/hyprland/cnst/default.nix | 23 -- home/bin/hyprland/cnst/inputs.nix | 75 ------ home/bin/hyprland/cnst/keybinds.nix | 101 ------- home/bin/hyprland/cnst/rules.nix | 44 ---- home/bin/hyprland/cnst/startup.nix | 20 -- home/bin/hyprland/default.nix | 51 ---- home/bin/hyprland/toothpick/appearance.nix | 48 ---- home/bin/hyprland/toothpick/default.nix | 23 -- home/bin/hyprland/toothpick/inputs.nix | 56 ---- home/bin/hyprland/toothpick/keybinds.nix | 101 ------- home/bin/hyprland/toothpick/rules.nix | 42 --- home/bin/hyprland/toothpick/startup.nix | 20 -- home/bin/neovim/default.nix | 23 -- home/bin/waybar/default.nix | 6 - home/default.nix | 15 +- home/etc/default.nix | 2 + home/{srv => etc}/polkit/default.nix | 0 home/{opt => etc}/utility/default.nix | 3 + home/modules/browsers/chromium/default.nix | 25 ++ home/modules/browsers/firefox/default.nix | 44 ++++ home/modules/comm/discord/default.nix | 57 ++++ home/modules/default.nix | 35 +++ .../devtools}/neovim/autocommands.nix | 0 .../devtools}/neovim/completion.nix | 0 home/modules/devtools/neovim/default.nix | 33 +++ .../devtools}/neovim/keymappings.nix | 0 .../devtools}/neovim/options.nix | 0 .../devtools}/neovim/plugins/barbar.nix | 0 .../devtools}/neovim/plugins/chatgpt.nix | 0 .../devtools}/neovim/plugins/comment.nix | 0 .../devtools}/neovim/plugins/conform.nix | 0 .../devtools}/neovim/plugins/default.nix | 0 .../devtools}/neovim/plugins/efm.nix | 0 .../devtools}/neovim/plugins/floaterm.nix | 0 .../devtools}/neovim/plugins/harpoon.nix | 0 .../devtools}/neovim/plugins/lsp.nix | 0 .../devtools}/neovim/plugins/lualine.nix | 0 .../neovim/plugins/markdown-preview.nix | 0 .../devtools}/neovim/plugins/neo-tree.nix | 0 .../devtools}/neovim/plugins/nonels.nix | 0 .../devtools}/neovim/plugins/startify.nix | 0 .../devtools}/neovim/plugins/tagbar.nix | 0 .../devtools}/neovim/plugins/telescope.nix | 0 .../devtools}/neovim/plugins/treesitter.nix | 0 .../devtools}/neovim/plugins/vimtex.nix | 0 .../devtools}/neovim/plugins/yanky.nix | 0 .../{bin => modules/devtools}/neovim/todo.nix | 0 home/modules/devtools/vscode/default.nix | 17 ++ home/modules/gaming/lutris/default.nix | 25 ++ home/modules/gaming/mangohud/default.nix | 20 ++ home/modules/terminal/alacritty/default.nix | 87 ++++++ home/modules/terminal/foot/default.nix | 248 ++++++++++++++++++ home/modules/terminal/kitty/default.nix | 107 ++++++++ .../terminal}/wezterm/default.nix | 0 .../terminal}/wezterm/default.nixbak | 0 home/modules/terminal/zellij/default.nix | 89 +++++++ home/modules/userd/copyq/default.nix | 17 ++ home/modules/userd/mako/default.nix | 39 +++ home/{opt => modules/userd}/sops/default.nix | 28 +- home/modules/userd/udiskie/default.nix | 19 ++ home/{opt => modules/utils}/ags/.gitignore | 0 home/modules/utils/ags/default.nix | 57 ++++ home/modules/utils/anyrun/default.nix | 23 ++ home/modules/utils/rofi/default.nix | 21 ++ home/modules/utils/waybar/default.nix | 19 ++ home/modules/utils/yazi/default.nix | 47 ++++ .../utils}/yazi/theme/default.nix | 0 .../utils}/yazi/theme/filetype.nix | 0 .../utils}/yazi/theme/help.nix | 0 .../utils}/yazi/theme/icons.nix | 0 .../utils}/yazi/theme/input.nix | 0 .../utils}/yazi/theme/manager.nix | 0 .../utils}/yazi/theme/select.nix | 0 .../utils}/yazi/theme/status.nix | 0 .../utils}/yazi/theme/tasks.nix | 0 .../utils}/yazi/theme/which.nix | 0 .../wm}/hyprland/adam/appearance.nix | 0 .../wm}/hyprland/adam/default.nix | 0 .../wm}/hyprland/adam/inputs.nix | 0 .../wm}/hyprland/adam/keybinds.nix | 0 .../wm}/hyprland/adam/rules.nix | 0 .../wm}/hyprland/adam/startup.nix | 0 home/modules/wm/hyprland/cnst/appearance.nix | 60 +++++ home/modules/wm/hyprland/cnst/default.nix | 44 ++++ home/modules/wm/hyprland/cnst/inputs.nix | 87 ++++++ home/modules/wm/hyprland/cnst/keybinds.nix | 116 ++++++++ home/modules/wm/hyprland/cnst/rules.nix | 56 ++++ home/modules/wm/hyprland/cnst/startup.nix | 32 +++ home/modules/wm/hyprland/default.nix | 7 + .../wm/hyprland/toothpick/appearance.nix | 60 +++++ .../modules/wm/hyprland/toothpick/default.nix | 44 ++++ home/modules/wm/hyprland/toothpick/inputs.nix | 73 ++++++ .../wm/hyprland/toothpick/keybinds.nix | 116 ++++++++ home/modules/wm/hyprland/toothpick/rules.nix | 53 ++++ .../modules/wm/hyprland/toothpick/startup.nix | 32 +++ home/modules/wm/utils/hypridle/default.nix | 36 +++ home/modules/wm/utils/hyprlock/default.nix | 90 +++++++ home/modules/wm/utils/hyprpaper/default.nix | 45 ++++ home/opt/ags/default.nix | 52 ---- home/opt/alacritty/default.nix | 75 ------ home/opt/anyrun/default.nix | 15 -- home/opt/browsers/chromium/default.nix | 12 - home/opt/browsers/firefox/default.nix | 34 --- home/opt/default.nix | 11 - home/opt/discord/default.nix | 44 ---- home/opt/foot/default.nix | 233 ---------------- home/opt/kitty/default.nix | 94 ------- home/opt/lutris/default.nix | 12 - home/opt/mangohud/default.nix | 8 - home/opt/rofi/default.nix | 8 - home/opt/vscode/default.nix | 5 - home/opt/yazi/default.nix | 42 --- home/opt/zellij/default.nix | 77 ------ home/profiles/adam/default.nix | 5 + .../default.nix => profiles/adam/git.nix} | 0 home/profiles/adam/modules.nix | 50 ++++ .../default.nix => profiles/adam/shell.nix} | 5 +- home/profiles/cnst/default.nix | 17 +- home/profiles/cnst/git.nix | 7 + home/profiles/cnst/modules.nix | 50 ++++ .../default.nix => profiles/cnst/shell.nix} | 5 +- home/profiles/toothpick/default.nix | 5 + .../toothpick/git.nix} | 0 home/profiles/toothpick/modules.nix | 50 ++++ .../toothpick/shell.nix} | 5 +- home/srv/copyq/default.nix | 5 - home/srv/default.nix | 9 - home/srv/hypr/cursor/default.nix | 5 - home/srv/hypr/default.nix | 8 - home/srv/hypr/idle/default.nix | 24 -- home/srv/hypr/lock/default.nix | 80 ------ home/srv/hypr/paper/default.nix | 33 --- home/srv/mako/default.nix | 29 -- home/srv/power-monitor/default.nix | 95 ------- home/srv/udiskie/default.nix | 7 - hosts/cnix/default.nix | 1 + hosts/default.nix | 20 +- modules/default.nix | 3 - pkgs/bibata-hyprcursor/configure.py | 54 ---- pkgs/bibata-hyprcursor/default.nix | 94 ------- pkgs/default.nix | 14 - pkgs/wl-ocr/default.nix | 17 -- system/bin/hyprland/default.nix | 15 +- system/etc/default.nix | 1 + system/etc/fuse/default.nix | 5 + system/etc/graphics/amd/default.nix | 8 +- system/etc/security/default.nix | 2 +- system/etc/xserver/amd/hhkbse/default.nix | 4 +- system/srv/default.nix | 2 +- 155 files changed, 2402 insertions(+), 2029 deletions(-) rename .cleanup-boot.sh => .scripts/cleanup-boot.sh (100%) create mode 100755 .scripts/forge-ssh.sh delete mode 100644 home/bin/default.nix delete mode 100644 home/bin/hyprland/cnst/appearance.nix delete mode 100644 home/bin/hyprland/cnst/default.nix delete mode 100644 home/bin/hyprland/cnst/inputs.nix delete mode 100644 home/bin/hyprland/cnst/keybinds.nix delete mode 100644 home/bin/hyprland/cnst/rules.nix delete mode 100644 home/bin/hyprland/cnst/startup.nix delete mode 100644 home/bin/hyprland/default.nix delete mode 100644 home/bin/hyprland/toothpick/appearance.nix delete mode 100644 home/bin/hyprland/toothpick/default.nix delete mode 100644 home/bin/hyprland/toothpick/inputs.nix delete mode 100644 home/bin/hyprland/toothpick/keybinds.nix delete mode 100644 home/bin/hyprland/toothpick/rules.nix delete mode 100644 home/bin/hyprland/toothpick/startup.nix delete mode 100644 home/bin/neovim/default.nix delete mode 100644 home/bin/waybar/default.nix rename home/{srv => etc}/polkit/default.nix (100%) rename home/{opt => etc}/utility/default.nix (95%) create mode 100644 home/modules/browsers/chromium/default.nix create mode 100644 home/modules/browsers/firefox/default.nix create mode 100644 home/modules/comm/discord/default.nix create mode 100644 home/modules/default.nix rename home/{bin => modules/devtools}/neovim/autocommands.nix (100%) rename home/{bin => modules/devtools}/neovim/completion.nix (100%) create mode 100644 home/modules/devtools/neovim/default.nix rename home/{bin => modules/devtools}/neovim/keymappings.nix (100%) rename home/{bin => modules/devtools}/neovim/options.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/barbar.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/chatgpt.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/comment.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/conform.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/default.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/efm.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/floaterm.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/harpoon.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/lsp.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/lualine.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/markdown-preview.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/neo-tree.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/nonels.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/startify.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/tagbar.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/telescope.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/treesitter.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/vimtex.nix (100%) rename home/{bin => modules/devtools}/neovim/plugins/yanky.nix (100%) rename home/{bin => modules/devtools}/neovim/todo.nix (100%) create mode 100644 home/modules/devtools/vscode/default.nix create mode 100644 home/modules/gaming/lutris/default.nix create mode 100644 home/modules/gaming/mangohud/default.nix create mode 100644 home/modules/terminal/alacritty/default.nix create mode 100644 home/modules/terminal/foot/default.nix create mode 100644 home/modules/terminal/kitty/default.nix rename home/{opt => modules/terminal}/wezterm/default.nix (100%) rename home/{opt => modules/terminal}/wezterm/default.nixbak (100%) create mode 100644 home/modules/terminal/zellij/default.nix create mode 100644 home/modules/userd/copyq/default.nix create mode 100644 home/modules/userd/mako/default.nix rename home/{opt => modules/userd}/sops/default.nix (79%) create mode 100644 home/modules/userd/udiskie/default.nix rename home/{opt => modules/utils}/ags/.gitignore (100%) create mode 100644 home/modules/utils/ags/default.nix create mode 100644 home/modules/utils/anyrun/default.nix create mode 100644 home/modules/utils/rofi/default.nix create mode 100644 home/modules/utils/waybar/default.nix create mode 100644 home/modules/utils/yazi/default.nix rename home/{opt => modules/utils}/yazi/theme/default.nix (100%) rename home/{opt => modules/utils}/yazi/theme/filetype.nix (100%) rename home/{opt => modules/utils}/yazi/theme/help.nix (100%) rename home/{opt => modules/utils}/yazi/theme/icons.nix (100%) rename home/{opt => modules/utils}/yazi/theme/input.nix (100%) rename home/{opt => modules/utils}/yazi/theme/manager.nix (100%) rename home/{opt => modules/utils}/yazi/theme/select.nix (100%) rename home/{opt => modules/utils}/yazi/theme/status.nix (100%) rename home/{opt => modules/utils}/yazi/theme/tasks.nix (100%) rename home/{opt => modules/utils}/yazi/theme/which.nix (100%) rename home/{bin => modules/wm}/hyprland/adam/appearance.nix (100%) rename home/{bin => modules/wm}/hyprland/adam/default.nix (100%) rename home/{bin => modules/wm}/hyprland/adam/inputs.nix (100%) rename home/{bin => modules/wm}/hyprland/adam/keybinds.nix (100%) rename home/{bin => modules/wm}/hyprland/adam/rules.nix (100%) rename home/{bin => modules/wm}/hyprland/adam/startup.nix (100%) create mode 100644 home/modules/wm/hyprland/cnst/appearance.nix create mode 100644 home/modules/wm/hyprland/cnst/default.nix create mode 100644 home/modules/wm/hyprland/cnst/inputs.nix create mode 100644 home/modules/wm/hyprland/cnst/keybinds.nix create mode 100644 home/modules/wm/hyprland/cnst/rules.nix create mode 100644 home/modules/wm/hyprland/cnst/startup.nix create mode 100644 home/modules/wm/hyprland/default.nix create mode 100644 home/modules/wm/hyprland/toothpick/appearance.nix create mode 100644 home/modules/wm/hyprland/toothpick/default.nix create mode 100644 home/modules/wm/hyprland/toothpick/inputs.nix create mode 100644 home/modules/wm/hyprland/toothpick/keybinds.nix create mode 100644 home/modules/wm/hyprland/toothpick/rules.nix create mode 100644 home/modules/wm/hyprland/toothpick/startup.nix create mode 100644 home/modules/wm/utils/hypridle/default.nix create mode 100644 home/modules/wm/utils/hyprlock/default.nix create mode 100644 home/modules/wm/utils/hyprpaper/default.nix delete mode 100644 home/opt/ags/default.nix delete mode 100644 home/opt/alacritty/default.nix delete mode 100644 home/opt/anyrun/default.nix delete mode 100644 home/opt/browsers/chromium/default.nix delete mode 100644 home/opt/browsers/firefox/default.nix delete mode 100644 home/opt/default.nix delete mode 100644 home/opt/discord/default.nix delete mode 100644 home/opt/foot/default.nix delete mode 100644 home/opt/kitty/default.nix delete mode 100644 home/opt/lutris/default.nix delete mode 100644 home/opt/mangohud/default.nix delete mode 100644 home/opt/rofi/default.nix delete mode 100644 home/opt/vscode/default.nix delete mode 100644 home/opt/yazi/default.nix delete mode 100644 home/opt/zellij/default.nix rename home/{usr/share/git/cnst/default.nix => profiles/adam/git.nix} (100%) create mode 100644 home/profiles/adam/modules.nix rename home/{usr/share/shell/adam/default.nix => profiles/adam/shell.nix} (89%) create mode 100644 home/profiles/cnst/git.nix create mode 100644 home/profiles/cnst/modules.nix rename home/{usr/share/shell/cnst/default.nix => profiles/cnst/shell.nix} (89%) rename home/{usr/share/git/toothpick/default.nix => profiles/toothpick/git.nix} (100%) create mode 100644 home/profiles/toothpick/modules.nix rename home/{usr/share/shell/toothpick/default.nix => profiles/toothpick/shell.nix} (89%) delete mode 100644 home/srv/copyq/default.nix delete mode 100644 home/srv/default.nix delete mode 100644 home/srv/hypr/cursor/default.nix delete mode 100644 home/srv/hypr/default.nix delete mode 100644 home/srv/hypr/idle/default.nix delete mode 100644 home/srv/hypr/lock/default.nix delete mode 100644 home/srv/hypr/paper/default.nix delete mode 100644 home/srv/mako/default.nix delete mode 100644 home/srv/power-monitor/default.nix delete mode 100644 home/srv/udiskie/default.nix delete mode 100644 modules/default.nix delete mode 100644 pkgs/bibata-hyprcursor/configure.py delete mode 100644 pkgs/bibata-hyprcursor/default.nix delete mode 100644 pkgs/default.nix delete mode 100644 pkgs/wl-ocr/default.nix create mode 100644 system/etc/fuse/default.nix diff --git a/.cleanup-boot.sh b/.scripts/cleanup-boot.sh similarity index 100% rename from .cleanup-boot.sh rename to .scripts/cleanup-boot.sh diff --git a/.scripts/forge-ssh.sh b/.scripts/forge-ssh.sh new file mode 100755 index 00000000..db69c103 --- /dev/null +++ b/.scripts/forge-ssh.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash + +# Get the original user's home directory and username +USER_HOME=$(eval echo ~${SUDO_USER:-$USER}) +SSH_KEY="$USER_HOME/.ssh/id_ed25519" + +MOUNT_POINT="$HOME/forge_mount" +REMOTE_SERVER="forge@167.172.100.32:/" + +# Ensure SSH key has the correct permissions +if [ "$(stat -c %a "$SSH_KEY")" -ne 600 ]; then + echo "Warning: SSH key permissions are not secure (expected 600)." +fi + +# Create the mount point if it doesn't exist +mkdir -p "$MOUNT_POINT" + +# Debugging: Print the SSHFS command before running it +echo "Running SSHFS with command:" +echo "sshfs -o IdentityFile=\"$SSH_KEY\" \"$REMOTE_SERVER\" \"$MOUNT_POINT\"" + +# Mount the remote server +if sshfs -o IdentityFile="$SSH_KEY" "$REMOTE_SERVER" "$MOUNT_POINT"; then + echo "SSHFS mount successful." +else + echo "SSHFS mount failed." + exit 1 +fi + +# Check if the mount was successful +if ! mountpoint -q "$MOUNT_POINT"; then + echo "Failed to mount $REMOTE_SERVER" + exit 1 +fi + +echo "Successfully mounted $REMOTE_SERVER at $MOUNT_POINT" + +# Change to the mounted directory +cd "$MOUNT_POINT" || { + echo "Failed to navigate to $MOUNT_POINT" + fusermount -u "$MOUNT_POINT" + exit 1 +} + +# Keep the shell open to interact with the mounted directory +trap 'fusermount -u "$MOUNT_POINT"; exit' SIGINT SIGTERM +exec "${SHELL:-/bin/bash}" diff --git a/flake.lock b/flake.lock index 741f9f48..7c9fef21 100644 --- a/flake.lock +++ b/flake.lock @@ -1,10 +1,31 @@ { "nodes": { + "ags": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ], + "systems": "systems" + }, + "locked": { + "lastModified": 1721306136, + "narHash": "sha256-VKPsIGf3/a+RONBipx4lEE4LXG2sdMNkWQu22LNQItg=", + "owner": "Aylur", + "repo": "ags", + "rev": "344ea72cd3b8d4911f362fec34bce7d8fb37028c", + "type": "github" + }, + "original": { + "owner": "Aylur", + "repo": "ags", + "type": "github" + } + }, "anyrun": { "inputs": { "flake-parts": "flake-parts", "nixpkgs": "nixpkgs", - "systems": "systems" + "systems": "systems_2" }, "locked": { "lastModified": 1721135360, @@ -40,11 +61,11 @@ ] }, "locked": { - "lastModified": 1722347739, - "narHash": "sha256-rAoh+K6KG+b1DwSWtqRVocdojnH6nGk6q07mNltoUSM=", + "lastModified": 1723405438, + "narHash": "sha256-bpmC2m7OhlDvqgQZdZ2jBLyeIkq/Jld3X4bqRAxBSp8=", "owner": "hyprwm", "repo": "aquamarine", - "rev": "7c3565f9bedc7cb601cc0baa14792247e4dc1d5a", + "rev": "9312aa28271c91e5d67ecb9def527b2bbcff0e66", "type": "github" }, "original": { @@ -77,16 +98,16 @@ "home-manager": "home-manager", "jovian": "jovian", "nixpkgs": "nixpkgs_2", - "systems": "systems_2", + "systems": "systems_3", "yafas": "yafas" }, "locked": { - "lastModified": 1723330979, - "narHash": "sha256-OSwb8PTMfnK36trpBS2JShw5HiC2/c6ghT6CpzUJ/y0=", - "rev": "e389756159d7ccfb7cf00645db5b86d94641718c", - "revCount": 1332, + "lastModified": 1723531925, + "narHash": "sha256-QPETOkVNZwm3Zx0FRfkrPWScbc46I5QwIOdBmByYtKg=", + "rev": "b8b1c616f8b869af7bce3179ad423e3d45b0d079", + "revCount": 1336, "type": "tarball", - "url": "https://api.flakehub.com/f/pinned/chaotic-cx/nyx/0.1.1332%2Brev-e389756159d7ccfb7cf00645db5b86d94641718c/01913e88-a178-7f95-b225-f95a10f0dba4/source.tar.gz" + "url": "https://api.flakehub.com/f/pinned/chaotic-cx/nyx/0.1.1336%2Brev-b8b1c616f8b869af7bce3179ad423e3d45b0d079/01914a8c-c7f9-75a8-a4f6-9bd0651d9e6f/source.tar.gz" }, "original": { "type": "tarball", @@ -158,11 +179,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1723185066, - "narHash": "sha256-u7guFfIrfspwUp6/SEWCDhs2tVoE1fcgft0Fw7LdNEU=", + "lastModified": 1723444276, + "narHash": "sha256-ErWXmB84hedrDmeaHOaFFfNShC21AopTfM4x4rlvk3c=", "owner": "nix-community", "repo": "fenix", - "rev": "d5f1b280af93acddbcce948d946bb5db2f8035fe", + "rev": "70c22198ab822aa93c92a7ec0933908b17131edd", "type": "github" }, "original": { @@ -180,11 +201,11 @@ }, "locked": { "dir": "pkgs/firefox-addons", - "lastModified": 1723349009, - "narHash": "sha256-nzdTzcDyD8JyQDy30g2rcsrpsN5Qp8CEhtJamKq9Tq8=", + "lastModified": 1723867392, + "narHash": "sha256-tGb8HmrVx2zTBiRfZAbq/yFqx7M6HHkFRvjiNblG9JY=", "owner": "rycee", "repo": "nur-expressions", - "rev": "ef2d6f05865029005b1e9821ba142935e86dc3fe", + "rev": "a264b9ef7ff744dc5a5ea717dd5dc324ea2f0884", "type": "gitlab" }, "original": { @@ -205,11 +226,11 @@ ] }, "locked": { - "lastModified": 1723382313, - "narHash": "sha256-7cB8t9jg02WKLAeoHiZpywVPscuqg4u18F396aamogg=", + "lastModified": 1723897578, + "narHash": "sha256-8K7qxP5MLUt5LC/8UPlEGrzo6P3dRf8v8Y48C1ooM3w=", "owner": "nix-community", "repo": "flake-firefox-nightly", - "rev": "5489a2d5a212c69f8126af908f82ddaf726a2903", + "rev": "c0673c288ad8fd55a0bd630b1560ad1811ba9e47", "type": "github" }, "original": { @@ -392,7 +413,7 @@ }, "flake-utils_2": { "inputs": { - "systems": "systems_3" + "systems": "systems_4" }, "locked": { "lastModified": 1710146030, @@ -430,7 +451,7 @@ }, "flake-utils_4": { "inputs": { - "systems": "systems_5" + "systems": "systems_6" }, "locked": { "lastModified": 1710146030, @@ -567,11 +588,11 @@ ] }, "locked": { - "lastModified": 1723015306, - "narHash": "sha256-jQnFEtH20/OsDPpx71ntZzGdRlpXhUENSQCGTjn//NA=", + "lastModified": 1723399884, + "narHash": "sha256-97wn0ihhGqfMb8WcUgzzkM/TuAxce2Gd20A8oiruju4=", "owner": "nix-community", "repo": "home-manager", - "rev": "b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e", + "rev": "086f619dd991a4d355c07837448244029fc2d9ab", "type": "github" }, "original": { @@ -588,11 +609,11 @@ ] }, "locked": { - "lastModified": 1723015306, - "narHash": "sha256-jQnFEtH20/OsDPpx71ntZzGdRlpXhUENSQCGTjn//NA=", + "lastModified": 1723399884, + "narHash": "sha256-97wn0ihhGqfMb8WcUgzzkM/TuAxce2Gd20A8oiruju4=", "owner": "nix-community", "repo": "home-manager", - "rev": "b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e", + "rev": "086f619dd991a4d355c07837448244029fc2d9ab", "type": "github" }, "original": { @@ -609,11 +630,11 @@ ] }, "locked": { - "lastModified": 1723015306, - "narHash": "sha256-jQnFEtH20/OsDPpx71ntZzGdRlpXhUENSQCGTjn//NA=", + "lastModified": 1723399884, + "narHash": "sha256-97wn0ihhGqfMb8WcUgzzkM/TuAxce2Gd20A8oiruju4=", "owner": "nix-community", "repo": "home-manager", - "rev": "b3d5ea65d88d67d4ec578ed11d4d2d51e3de525e", + "rev": "086f619dd991a4d355c07837448244029fc2d9ab", "type": "github" }, "original": { @@ -638,11 +659,11 @@ ] }, "locked": { - "lastModified": 1721330371, - "narHash": "sha256-aYlHTWylczLt6ERJyg6E66Y/XSCbVL7leVcRuJmVbpI=", + "lastModified": 1722623071, + "narHash": "sha256-sLADpVgebpCBFXkA1FlCXtvEPu1tdEsTfqK1hfeHySE=", "owner": "hyprwm", "repo": "hyprcursor", - "rev": "4493a972b48f9c3014befbbf381ed5fff91a65dc", + "rev": "912d56025f03d41b1ad29510c423757b4379eb1c", "type": "github" }, "original": { @@ -659,15 +680,15 @@ "hyprutils": "hyprutils", "hyprwayland-scanner": "hyprwayland-scanner", "nixpkgs": "nixpkgs_3", - "systems": "systems_4", + "systems": "systems_5", "xdph": "xdph" }, "locked": { - "lastModified": 1723322565, - "narHash": "sha256-iwTi2QEc1H6s65Uv7V/Tro/vkvg8WCnpdjzX01mDp7g=", + "lastModified": 1723824059, + "narHash": "sha256-3AebH/B40viTNVJpgiQkfptVe4aRTfyffa8rjUNB0pU=", "ref": "refs/heads/main", - "rev": "01ff5fdf6a00a9231bd3b56400d8bcab378c4257", - "revCount": 5076, + "rev": "c5feee1e357f3c3c59ebe406630601c627807963", + "revCount": 5098, "submodules": true, "type": "git", "url": "https://github.com/hyprwm/Hyprland" @@ -800,11 +821,11 @@ ] }, "locked": { - "lastModified": 1722098849, - "narHash": "sha256-D3wIZlBNh7LuZ0NaoCpY/Pvu+xHxIVtSN+KkWZYvvVs=", + "lastModified": 1722869141, + "narHash": "sha256-0KU4qhyMp441qfwbirNg3+wbm489KnEjXOz2I/RbeFs=", "owner": "hyprwm", "repo": "hyprutils", - "rev": "5dcbbc1e3de40b2cecfd2007434d86e924468f1f", + "rev": "0252fd13e78e60fb0da512a212e56007515a49f7", "type": "github" }, "original": { @@ -847,11 +868,11 @@ ] }, "locked": { - "lastModified": 1723016361, - "narHash": "sha256-iEVCAOn7WUdJGrK2EW5hkfl4gBmYl5gVck+MSn6ba44=", + "lastModified": 1723367191, + "narHash": "sha256-noi5tre7BLtxImN38jEHeVOtOG1Xu37sJFwHKSAPHjo=", "owner": "Jovian-Experiments", "repo": "Jovian-NixOS", - "rev": "fc3d12deef508a73c7beef4cd9bebe03acde4ed7", + "rev": "91178062f365b64eece94c5dff93e09b07e87d9d", "type": "github" }, "original": { @@ -907,11 +928,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1722846822, - "narHash": "sha256-/6q7oH3ahod5BVW93s6ABZTrPC/mUjjjMJAxcqam1gs=", + "lastModified": 1723745278, + "narHash": "sha256-MWb768ipDgFnnVGxtk754w4SDomGgPItye/k18EHAZM=", "owner": "NotAShelf", "repo": "microfetch", - "rev": "927f6077b4b78cd112bc6932aab5287edc413ce8", + "rev": "64ac7a6ef3a903959ffe4c9d621ec5451104de29", "type": "github" }, "original": { @@ -968,11 +989,11 @@ "umu": "umu" }, "locked": { - "lastModified": 1723339533, - "narHash": "sha256-WDjDc/5ghWcuD72Wm7UzR9YMe2wi2LCuU5vVFg183nY=", + "lastModified": 1723857668, + "narHash": "sha256-DWOnhDHEAEsXypFF6gll56ouenyIqswZpWgDckUHT9Y=", "owner": "fufexan", "repo": "nix-gaming", - "rev": "e8ef080c3f3f307fd94c1e699be66abfcf6677f8", + "rev": "aaddd014658f1451c2f861b27e19a042c7c90dae", "type": "github" }, "original": { @@ -1015,11 +1036,11 @@ ] }, "locked": { - "lastModified": 1723083542, - "narHash": "sha256-Nkbb3j+P0zMqvZUlV6WbT5erHasZ14NW0TJS3Bb9dVY=", + "lastModified": 1723688652, + "narHash": "sha256-yag+lCB908g2ZPIeRBu6EO2R2Kmx0JfFojoOrtKZa0E=", "owner": "nixpak", "repo": "nixpak", - "rev": "d36970c58794c90401617accae0eb48868e335e6", + "rev": "ebffe76fb837b03bc0d54c4eeba9837e7a0541d9", "type": "github" }, "original": { @@ -1061,11 +1082,11 @@ }, "nixpkgs-small": { "locked": { - "lastModified": 1723316219, - "narHash": "sha256-2B9qh8QBvw3kV/8cHc7ZJcrbVsRwP8wKjkwPXTSz76Y=", + "lastModified": 1723850757, + "narHash": "sha256-Lqn8eyTjACro7a3ed3+cBbmxqMfZYG3Id9VpShdQWC4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "bef98989a27429e1cb9e3d9c25701ba2da742af2", + "rev": "6845e6ff1ce315870e98b53b300fc5175ed73211", "type": "github" }, "original": { @@ -1109,11 +1130,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1722813957, - "narHash": "sha256-IAoYyYnED7P8zrBFMnmp7ydaJfwTnwcnqxUElC1I26Y=", + "lastModified": 1723362943, + "narHash": "sha256-dFZRVSgmJkyM0bkPpaYRtG/kRMRTorUIDj8BxoOt1T4=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "cb9a96f23c491c081b38eab96d22fa958043c9fa", + "rev": "a58bc8ad779655e790115244571758e8de055e3d", "type": "github" }, "original": { @@ -1125,11 +1146,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1722185531, - "narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=", + "lastModified": 1723637854, + "narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d", + "rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9", "type": "github" }, "original": { @@ -1172,11 +1193,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1723175592, - "narHash": "sha256-M0xJ3FbDUc4fRZ84dPGx5VvgFsOzds77KiBMW/mMTnI=", + "lastModified": 1723637854, + "narHash": "sha256-med8+5DSWa2UnOqtdICndjDAEjxr5D7zaIiK4pn0Q7c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "5e0ca22929f3342b19569b21b2f3462f053e497b", + "rev": "c3aa7b8938b17aebd2deecf7be0636000d62a2b9", "type": "github" }, "original": { @@ -1215,11 +1236,11 @@ "treefmt-nix": "treefmt-nix" }, "locked": { - "lastModified": 1723323133, - "narHash": "sha256-g3wit604jFhBvjDBziJgulDUXDl/ApafMXq7o7ioMxo=", + "lastModified": 1723816538, + "narHash": "sha256-h37ltjdifkd7iLtMtBXSBBeYSTuBEKMW6ClFoC7nReQ=", "owner": "nix-community", "repo": "nixvim", - "rev": "f13bdef0bc697261c51eab686c28c7e2e7b7db3c", + "rev": "00f32f0430f82c74919c72af84bc95bf5ae434e4", "type": "github" }, "original": { @@ -1237,11 +1258,11 @@ ] }, "locked": { - "lastModified": 1723134722, - "narHash": "sha256-wknII7R6ewALIxIKYtqeahjUk/ZrFj1ZtSpNBaHDCyg=", + "lastModified": 1723367906, + "narHash": "sha256-v1qA4WBGDI2uH/TVqRwuXSBP341W681psbzYJ8zrjog=", "owner": "NuschtOS", "repo": "search", - "rev": "1016f4620e321c12ff1dbcd464e9de889e302d1c", + "rev": "6ca2c3ae05a915c160512bd41f6810f456c9b30d", "type": "github" }, "original": { @@ -1279,6 +1300,7 @@ }, "root": { "inputs": { + "ags": "ags", "anyrun": "anyrun", "chaotic": "chaotic", "firefox-addons": "firefox-addons", @@ -1299,17 +1321,17 @@ "nixpkgs-small": "nixpkgs-small", "nixvim": "nixvim", "sops-nix": "sops-nix", - "systems": "systems_6" + "systems": "systems_7" } }, "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1723124382, - "narHash": "sha256-WdJYEBlc8qsif+y4qnkjaeEpDmOZhz8qA6i/2n1q2kw=", + "lastModified": 1723304838, + "narHash": "sha256-xAxVDxuvCs8WWkrxVWjCiqxTkHhGj7sSppr1YMuEdT8=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "dab022fb3127466e47e29e40769b11174b3e0ac3", + "rev": "0daeb5c0b05cfdf2101b0f078c27539099bf38e6", "type": "github" }, "original": { @@ -1348,11 +1370,11 @@ "nixpkgs-stable": "nixpkgs-stable_2" }, "locked": { - "lastModified": 1722897572, - "narHash": "sha256-3m/iyyjCdRBF8xyehf59QlckIcmShyTesymSb+N4Ap4=", + "lastModified": 1723501126, + "narHash": "sha256-N9IcHgj/p1+2Pvk8P4Zc1bfrMwld5PcosVA0nL6IGdE=", "owner": "Mic92", "repo": "sops-nix", - "rev": "8ae477955dfd9cbf5fa4eb82a8db8ddbb94e79d9", + "rev": "be0eec2d27563590194a9206f551a6f73d52fa34", "type": "github" }, "original": { @@ -1392,6 +1414,21 @@ } }, "systems_3": { + "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_4": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1406,7 +1443,7 @@ "type": "github" } }, - "systems_4": { + "systems_5": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -1421,7 +1458,7 @@ "type": "github" } }, - "systems_5": { + "systems_6": { "locked": { "lastModified": 1681028828, "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", @@ -1436,7 +1473,7 @@ "type": "github" } }, - "systems_6": { + "systems_7": { "locked": { "lastModified": 1689347949, "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", @@ -1459,11 +1496,11 @@ ] }, "locked": { - "lastModified": 1723303070, - "narHash": "sha256-krGNVA30yptyRonohQ+i9cnK+CfCpedg6z3qzqVJcTs=", + "lastModified": 1723454642, + "narHash": "sha256-S0Gvsenh0II7EAaoc9158ZB4vYyuycvMGKGxIbERNAM=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "14c092e0326de759e16b37535161b3cb9770cea3", + "rev": "349de7bc435bdff37785c2466f054ed1766173be", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index cd2d116c..09076a46 100644 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,7 @@ ./home ./hosts ]; + perSystem = {pkgs, ...}: { devShells = import ./system/nix/shell {inherit pkgs;}; formatter = pkgs.alejandra; @@ -16,7 +17,7 @@ packages.cleanup-boot = pkgs.buildFHSUserEnv { name = "cleanup-boot"; targetPkgs = pkgs: [pkgs.bash]; - runScript = ./.cleanup-boot.sh; + runScript = ./.scripts/cleanup-boot.sh; }; }; }; @@ -92,5 +93,9 @@ url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + ags = { + url = "github:Aylur/ags"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; } diff --git a/home/bin/default.nix b/home/bin/default.nix deleted file mode 100644 index d6729a11..00000000 --- a/home/bin/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - imports = [ - # shared apps - ./neovim - ./waybar - ]; -} diff --git a/home/bin/hyprland/cnst/appearance.nix b/home/bin/hyprland/cnst/appearance.nix deleted file mode 100644 index 00a86bc3..00000000 --- a/home/bin/hyprland/cnst/appearance.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ - wayland.windowManager.hyprland.settings = { - general = { - gaps_in = 2; - gaps_out = 4; - border_size = 3; - #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg - #col.inactive_border = rgba(595959aa) - "col.active_border" = "rgb(4c7a5d)"; # rgba(b16286ee) 45deg - "col.inactive_border" = "rgb(504945)"; - layout = "dwindle"; - allow_tearing = false; - resize_on_border = true; - }; - decoration = { - rounding = 0; - blur = { - enabled = true; - size = 8; - passes = 1; - vibrancy = 0.1696; - }; - drop_shadow = false; - shadow_range = 4; - shadow_render_power = 3; - # col.shadow = rgba(1a1a1aee) - }; - animations = { - enabled = true; - bezier = [ - "myBezier,0.05, 0.9, 0.1, 1.05" - ]; - animation = [ - "windows, 1, 3, myBezier" - "windowsOut, 1, 3, default, popin 80%" - "border, 1, 3, default" - "borderangle, 1, 8, default" - "fade, 1, 7, default" - "workspaces, 1, 3, default" - ]; - }; - dwindle = { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more - pseudotile = true; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = true; # you probably want this - }; - }; -} diff --git a/home/bin/hyprland/cnst/default.nix b/home/bin/hyprland/cnst/default.nix deleted file mode 100644 index b6854ae5..00000000 --- a/home/bin/hyprland/cnst/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{inputs, ...}: { - imports = [ - inputs.hyprland.homeManagerModules.default - ./appearance.nix - ./inputs.nix - ./keybinds.nix - ./rules.nix - ./startup.nix - ]; - config = { - wayland.windowManager.hyprland = { - enable = true; - xwayland.enable = true; - systemd = { - variables = ["--all"]; - extraCommands = [ - "systemctl --user stop graphical-session.target" - "systemctl --user start hyprland-session.target" - ]; - }; - }; - }; -} diff --git a/home/bin/hyprland/cnst/inputs.nix b/home/bin/hyprland/cnst/inputs.nix deleted file mode 100644 index 83e78cf1..00000000 --- a/home/bin/hyprland/cnst/inputs.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ - wayland.windowManager.hyprland.settings = { - monitor = [ - "DP-3, 2560x1440@143.86, auto, auto" - "eDP-1,1920x1200@60.02,auto,1" - ]; - env = [ - "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" - ]; - - input = { - follow_mouse = 1; - accel_profile = "flat"; - sensitivity = 0; # -1.0 - 1.0, 0 means no modification. - - touchpad = { - natural_scroll = true; - disable_while_typing = true; - clickfinger_behavior = true; - scroll_factor = 0.5; - }; - }; - # Desktop keyboard - device = [ - { - name = "pfu-limited-hhkb-hybrid"; - kb_layout = "hhkbse"; - kb_options = "lv3:rwin_switch"; - } - { - name = "hhkb-hybrid_1-keyboard"; - kb_layout = "hhkbse"; - kb_options = "lv3:rwin_switch"; - } - # Laptop keyboard - { - name = "at-translated-set-2-keyboard"; - kb_layout = "se"; - kb_options = "ctrl:swapcaps"; - } - ]; - gestures = { - workspace_swipe = true; - workspace_swipe_distance = 400; - workspace_swipe_fingers = 3; - workspace_swipe_cancel_ratio = 0.2; - workspace_swipe_min_speed_to_force = 5; - workspace_swipe_direction_lock = true; - workspace_swipe_direction_lock_threshold = 10; - workspace_swipe_create_new = true; - }; - misc = { - vrr = 2; - mouse_move_enables_dpms = 1; - key_press_enables_dpms = 0; - force_default_wallpaper = 0; - disable_hyprland_logo = true; - disable_splash_rendering = true; - disable_autoreload = true; - }; - xwayland = { - force_zero_scaling = false; - }; - render = { - explicit_sync = 2; - explicit_sync_kms = 2; - direct_scanout = false; - }; - # cursor = { - # no_hardware_cursors = true; - # no_break_fs_vrr = true; - # min_refresh_rate = 24; - # }; - }; -} diff --git a/home/bin/hyprland/cnst/keybinds.nix b/home/bin/hyprland/cnst/keybinds.nix deleted file mode 100644 index 9cac4510..00000000 --- a/home/bin/hyprland/cnst/keybinds.nix +++ /dev/null @@ -1,101 +0,0 @@ -# KEYBINDS -{ - wayland.windowManager.hyprland.settings = { - "$terminal" = "kitty"; - "$fileManager" = "thunar"; - "$passwordManager" = "keepassxc"; - "$menu" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; - "$menuw" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; - "$browser" = "firefox-nightly"; - "$browserinc" = "firefox-nightly --private-window"; - "$yazi" = "alacritty -e yazi"; - - # See https://wiki.hyprland.org/Configuring/Keywords/ for more - "$mod" = "SUPER"; - - bind = [ - # Custom binds - "$mod SHIFT, B, exec, pkill -SIGUSR2 waybar" # Reload waybar - - # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more - "$mod, A, exec, pkill -SIGUSR1 waybar" - "$mod, T, exec, $terminal" - "$mod, W, exec, $browser" - "$mod, K, exec, $passwordManager" - "$mod SHIFT, W, exec, $browserinc" - "$mod, Q, killactive," - #bind = $mod, M, exec, hyprctl dispatch exit - #bind = $mod, E, exec, $fileManager - "$mod, E, exec, $fileManager" - "$mod SHIFT, E, exec, $yazi" - "$mod, F, fullscreen," - "$mod SHIFT, F, togglefloating," - "$mod, SPACE, exec, $menu" - "$mod, P, pseudo," # dwindle - "$mod, J, togglesplit," # dwindle - "$mod, C, exec, hyprctl dispatch exec copyq toggle" - "$mod, TAB, exec, $menuw" - - # Move focus with mainMod + arrow keys - "$mod, left, movefocus, l" - "$mod, right, movefocus, r" - "$mod, up, movefocus, u" - "$mod, down, movefocus, d" - - # Switch workspaces with mainMod + [0-9] - "$mod, 1, workspace, 1" - "$mod, 2, workspace, 2" - "$mod, 3, workspace, 3" - "$mod, 4, workspace, 4" - "$mod, 5, workspace, 5" - "$mod, 6, workspace, 6" - "$mod, 7, workspace, 7" - "$mod, 8, workspace, 8" - "$mod, 9, workspace, 9" - "$mod, 0, workspace, 10" - - # Move active window to a workspace with mainMod + SHIFT + [0-9] - "$mod SHIFT, 1, movetoworkspace, 1" - "$mod SHIFT, 2, movetoworkspace, 2" - "$mod SHIFT, 3, movetoworkspace, 3" - "$mod SHIFT, 4, movetoworkspace, 4" - "$mod SHIFT, 5, movetoworkspace, 5" - "$mod SHIFT, 6, movetoworkspace, 6" - "$mod SHIFT, 7, movetoworkspace, 7" - "$mod SHIFT, 8, movetoworkspace, 8" - "$mod SHIFT, 9, movetoworkspace, 9" - "$mod SHIFT, 0, movetoworkspace, 10" - - # Laptop controls - ",XF86AudioLowerVolume, exec, pamixer -d 5" - ",XF86AudioRaiseVolume, exec, pamixer -i 5" - ",XF86AudioMute, exec, pamixer -m" - ",XF86AudioMicMute, exec, pactl -- set-source-mute 0 toggle" - ",XF86MonBrightnessDown, exec, brightnessctl s 10%-" - ",XF86MonBrightnessUp, exec, brightnessctl s +10%" - - "$mod, XF86MonBrightnessUp, exec, hyprctl dispatch dpms on" - "$mod, XF86MonBrightnessDown, exec, hyprctl dispatch dpms off" - - # Screenshot a window - "$mod, F10, exec, hyprshot -m window" - # Screenshot a monitor - ", F10, exec, hyprshot -m output" - # Screenshot a region - "$mod SHIFT, F10, exec, hyprshot -m region" - - # Example special workspace (scratchpad) - "$mod, S, togglespecialworkspace, magic" - "$mod SHIFT, S, movetoworkspace, special:magic" - - # Scroll through existing workspaces with mainMod + scroll - # bind = $mod, mouse_down, workspace, e+1 - # bind = $mod, mouse_up, workspace, e-1 - ]; - # Move/resize windows with mainMod + LMB/RMB and dragging - bindm = [ - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" - ]; - }; -} diff --git a/home/bin/hyprland/cnst/rules.nix b/home/bin/hyprland/cnst/rules.nix deleted file mode 100644 index 1bf709c4..00000000 --- a/home/bin/hyprland/cnst/rules.nix +++ /dev/null @@ -1,44 +0,0 @@ -{ - wayland.windowManager.hyprland.settings = { - # CALCURSE SETTINGS - windowrulev2 = [ - "float,initialTitle:(floatcal)" - "size 843 650,initialTitle:(floatcal)" - "move 100%-w-20 40,initialTitle:(floatcal)" - #windowrulev2 = move 1708 32,class:(floatcal) - - # RANGER/NNN SETTINGS - "float,class:(floatranger)" - "float,class:(floatnnn)" - #windowrulev2 = size 843 650,class:(floatranger) - #windowrulev2 = move 1708 32,class:(floatranger) - #windowrulev2 = move 1708 32;size 843 650;dimaround;float,class:^(kitty)$,title:^(kitty)$ - # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more - "suppressevent maximize, class:.* # You'll probably like this." - #windowrulev2 = noshadow, floating:0 - "float,class:^(org.keepassxc.KeePassXC)$" - "center,class:^(org.keepassxc.KeePassXC)$" - "float,class:^(imv)$" - "float,class:^(com.github.hluk.copyq)$" - "float,class:^(blueman-manager)$" - "center,class:^(nwg-look)$" - "float,class:^(nwg-look)$" - "float,class:^(Lxappearance)$" - "float,class:(pavucontrol)$" - "move 100%-w-20 40,class:(pavucontrol)$" - "float,class:^(polkit-gnome-authentication-agent-1)$" - "float,class:^(org.gnome.Calculator)$" - "size 741 585,class:(pavucontrol)$" - "float,class:^(cnst.test)$" - "float,class:^(org.corectrl.CoreCtrl)$" - "float,class:^(feh)$" - "float,class:^(com.example.gtk-adieux)$" - ]; - windowrule = [ - "center, ^(xarchiver)$" - "float, ^(xarchiver)$" - "float, ^(org.gnome.FileRoller)$" - "float, ^(org.freedesktop.impl.portal.desktop.kde)$" - ]; - }; -} diff --git a/home/bin/hyprland/cnst/startup.nix b/home/bin/hyprland/cnst/startup.nix deleted file mode 100644 index b7105e5f..00000000 --- a/home/bin/hyprland/cnst/startup.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - wayland.windowManager.hyprland.settings = { - exec-once = [ - # STARTUP - # exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP - "systemctl --user start polkit-gnome-authentication-agent-1" - # exec-once = lxqt-policykit-agent & - "waybar" - "pamixer --set-volume 50" - "blueman-applet & udiskie -Nt" - "nm-applet --indicator" - "mullvad-vpn" - # exec-once = swaybg -i ~/media/images/wallpaper.png - "wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'" - # exec-once = hyprctl dispatch exec "sleep 4s && copyq --start-server" - "hyprctl dispatch exec 'sleep 5s && keepassxc'" - "hyprctl dispatch exec 'sleep 3s && solaar -w hide'" - ]; - }; -} diff --git a/home/bin/hyprland/default.nix b/home/bin/hyprland/default.nix deleted file mode 100644 index b28d7b8e..00000000 --- a/home/bin/hyprland/default.nix +++ /dev/null @@ -1,51 +0,0 @@ -{ - lib, - inputs, - config, - ... -}: { - options = { - # Define an option to enable the `cnst` configuration - cnst.enable = lib.mkOption { - type = lib.types.bool; - default = false; - description = "Enable the cnst configuration"; - }; - - # Define an option to enable the `adam` configuration - adam.enable = lib.mkOption { - type = lib.types.bool; - default = false; - description = "Enable the adam configuration"; - }; - - # Define an option to enable the `toothpick` configuration - toothpick.enable = lib.mkOption { - type = lib.types.bool; - default = false; - description = "Enable the toothpick configuration"; - }; - }; - - config = { - # Hyprland configuration shared across all users - wayland.windowManager.hyprland = { - enable = true; - xwayland.enable = true; - - systemd = { - variables = ["--all"]; - extraCommands = [ - "systemctl --user stop graphical-session.target" - "systemctl --user start hyprland-session.target" - ]; - }; - }; - }; - - # Conditionally include configurations based on the enable flags - imports = - lib.optional config.cnst.enable ./cnst - ++ lib.optional config.adam.enable ./adam - ++ lib.optional config.toothpick.enable ./toothpick; -} diff --git a/home/bin/hyprland/toothpick/appearance.nix b/home/bin/hyprland/toothpick/appearance.nix deleted file mode 100644 index 00a86bc3..00000000 --- a/home/bin/hyprland/toothpick/appearance.nix +++ /dev/null @@ -1,48 +0,0 @@ -{ - wayland.windowManager.hyprland.settings = { - general = { - gaps_in = 2; - gaps_out = 4; - border_size = 3; - #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg - #col.inactive_border = rgba(595959aa) - "col.active_border" = "rgb(4c7a5d)"; # rgba(b16286ee) 45deg - "col.inactive_border" = "rgb(504945)"; - layout = "dwindle"; - allow_tearing = false; - resize_on_border = true; - }; - decoration = { - rounding = 0; - blur = { - enabled = true; - size = 8; - passes = 1; - vibrancy = 0.1696; - }; - drop_shadow = false; - shadow_range = 4; - shadow_render_power = 3; - # col.shadow = rgba(1a1a1aee) - }; - animations = { - enabled = true; - bezier = [ - "myBezier,0.05, 0.9, 0.1, 1.05" - ]; - animation = [ - "windows, 1, 3, myBezier" - "windowsOut, 1, 3, default, popin 80%" - "border, 1, 3, default" - "borderangle, 1, 8, default" - "fade, 1, 7, default" - "workspaces, 1, 3, default" - ]; - }; - dwindle = { - # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more - pseudotile = true; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below - preserve_split = true; # you probably want this - }; - }; -} diff --git a/home/bin/hyprland/toothpick/default.nix b/home/bin/hyprland/toothpick/default.nix deleted file mode 100644 index b6854ae5..00000000 --- a/home/bin/hyprland/toothpick/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{inputs, ...}: { - imports = [ - inputs.hyprland.homeManagerModules.default - ./appearance.nix - ./inputs.nix - ./keybinds.nix - ./rules.nix - ./startup.nix - ]; - config = { - wayland.windowManager.hyprland = { - enable = true; - xwayland.enable = true; - systemd = { - variables = ["--all"]; - extraCommands = [ - "systemctl --user stop graphical-session.target" - "systemctl --user start hyprland-session.target" - ]; - }; - }; - }; -} diff --git a/home/bin/hyprland/toothpick/inputs.nix b/home/bin/hyprland/toothpick/inputs.nix deleted file mode 100644 index debb3023..00000000 --- a/home/bin/hyprland/toothpick/inputs.nix +++ /dev/null @@ -1,56 +0,0 @@ -{ - wayland.windowManager.hyprland.settings = { - monitor = [ - "monitor=DVI-D-1,1920x1080@144,auto,1" - ]; - env = [ - "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" - ]; - - input = { - follow_mouse = 1; - accel_profile = "flat"; - sensitivity = 0; # -1.0 - 1.0, 0 means no modification. - - touchpad = { - natural_scroll = true; - disable_while_typing = true; - clickfinger_behavior = true; - scroll_factor = 0.5; - }; - }; - # Desktop keyboard - device = [ - { - name = "usb-hid-keyboard"; - kb_layout = "se"; - } - ]; - gestures = { - workspace_swipe = true; - workspace_swipe_distance = 400; - workspace_swipe_fingers = 3; - workspace_swipe_cancel_ratio = 0.2; - workspace_swipe_min_speed_to_force = 5; - workspace_swipe_direction_lock = true; - workspace_swipe_direction_lock_threshold = 10; - workspace_swipe_create_new = true; - }; - misc = { - vrr = 1; - mouse_move_enables_dpms = 1; - key_press_enables_dpms = 0; - force_default_wallpaper = 0; - disable_hyprland_logo = true; - disable_splash_rendering = true; - }; - # xwayland { - # force_zero_scaling = true - # } - # cursor { - # no_hardware_cursors = true - # no_break_fs_vrr = true - # min_refresh_rate = 60 - # } - }; -} diff --git a/home/bin/hyprland/toothpick/keybinds.nix b/home/bin/hyprland/toothpick/keybinds.nix deleted file mode 100644 index 0db2cb9e..00000000 --- a/home/bin/hyprland/toothpick/keybinds.nix +++ /dev/null @@ -1,101 +0,0 @@ -# KEYBINDS -{ - wayland.windowManager.hyprland.settings = { - "$terminal" = "foot"; - "$fileManager" = "thunar"; - "$passwordManager" = "keepassxc"; - "$menu" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; - "$menuw" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; - "$browser" = "firefox-nightly"; - "$browserinc" = "firefox-nightly --private-window"; - "$ranger" = "rangerscript"; - - # See https://wiki.hyprland.org/Configuring/Keywords/ for more - "$mod" = "ALT_L"; - - bind = [ - # Custom binds - "$mod SHIFT, B, exec, pkill -SIGUSR2 waybar" # Reload waybar - - # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more - "$mod, A, exec, pkill -SIGUSR1 waybar" - "$mod, T, exec, $terminal" - "$mod, W, exec, $browser" - "$mod, K, exec, $passwordManager" - "$mod SHIFT, W, exec, $browserinc" - "$mod, Q, killactive," - #bind = $mod, M, exec, hyprctl dispatch exit - #bind = $mod, E, exec, $fileManager - "$mod, E, exec, $fileManager" - "$mod SHIFT, E, exec, $ranger" - "$mod, F, fullscreen," - "$mod SHIFT, F, togglefloating," - "$mod, SPACE, exec, $menu" - "$mod, P, pseudo," # dwindle - "$mod, J, togglesplit," # dwindle - "$mod, C, exec, hyprctl dispatch exec copyq toggle" - "$mod, TAB, exec, $menuw" - - # Move focus with mainMod + arrow keys - "$mod, left, movefocus, l" - "$mod, right, movefocus, r" - "$mod, up, movefocus, u" - "$mod, down, movefocus, d" - - # Switch workspaces with mainMod + [0-9] - "$mod, 1, workspace, 1" - "$mod, 2, workspace, 2" - "$mod, 3, workspace, 3" - "$mod, 4, workspace, 4" - "$mod, 5, workspace, 5" - "$mod, 6, workspace, 6" - "$mod, 7, workspace, 7" - "$mod, 8, workspace, 8" - "$mod, 9, workspace, 9" - "$mod, 0, workspace, 10" - - # Move active window to a workspace with mainMod + SHIFT + [0-9] - "$mod SHIFT, 1, movetoworkspace, 1" - "$mod SHIFT, 2, movetoworkspace, 2" - "$mod SHIFT, 3, movetoworkspace, 3" - "$mod SHIFT, 4, movetoworkspace, 4" - "$mod SHIFT, 5, movetoworkspace, 5" - "$mod SHIFT, 6, movetoworkspace, 6" - "$mod SHIFT, 7, movetoworkspace, 7" - "$mod SHIFT, 8, movetoworkspace, 8" - "$mod SHIFT, 9, movetoworkspace, 9" - "$mod SHIFT, 0, movetoworkspace, 10" - - # Laptop controls - ",XF86AudioLowerVolume, exec, pamixer -d 5" - ",XF86AudioRaiseVolume, exec, pamixer -i 5" - ",XF86AudioMute, exec, pamixer -m" - ",XF86AudioMicMute, exec, pactl -- set-source-mute 0 toggle" - ",XF86MonBrightnessDown, exec, brightnessctl s 10%-" - ",XF86MonBrightnessUp, exec, brightnessctl s +10%" - - "$mod, XF86MonBrightnessUp, exec, hyprctl dispatch dpms on" - "$mod, XF86MonBrightnessDown, exec, hyprctl dispatch dpms off" - - # Screenshot a window - "$mod, F10, exec, hyprshot -m window" - # Screenshot a monitor - ", F10, exec, hyprshot -m output" - # Screenshot a region - "$mod SHIFT, F10, exec, hyprshot -m region" - - # Example special workspace (scratchpad) - "$mod, S, togglespecialworkspace, magic" - "$mod SHIFT, S, movetoworkspace, special:magic" - - # Scroll through existing workspaces with mainMod + scroll - # bind = $mod, mouse_down, workspace, e+1 - # bind = $mod, mouse_up, workspace, e-1 - ]; - # Move/resize windows with mainMod + LMB/RMB and dragging - bindm = [ - "$mod, mouse:272, movewindow" - "$mod, mouse:273, resizewindow" - ]; - }; -} diff --git a/home/bin/hyprland/toothpick/rules.nix b/home/bin/hyprland/toothpick/rules.nix deleted file mode 100644 index c6ea8d91..00000000 --- a/home/bin/hyprland/toothpick/rules.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - wayland.windowManager.hyprland.settings = { - # CALCURSE SETTINGS - windowrulev2 = [ - "float,initialTitle:(floatcal)" - "size 843 650,initialTitle:(floatcal)" - "move 100%-w-20 40,initialTitle:(floatcal)" - #windowrulev2 = move 1708 32,class:(floatcal) - - # RANGER/NNN SETTINGS - "float,class:(floatranger)" - "float,class:(floatnnn)" - #windowrulev2 = size 843 650,class:(floatranger) - #windowrulev2 = move 1708 32,class:(floatranger) - #windowrulev2 = move 1708 32;size 843 650;dimaround;float,class:^(kitty)$,title:^(kitty)$ - # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more - "suppressevent maximize, class:.* # You'll probably like this." - #windowrulev2 = noshadow, floating:0 - "float,class:^(org.keepassxc.KeePassXC)$" - "center,class:^(org.keepassxc.KeePassXC)$" - "float,class:^(imv)$" - "float,class:^(com.github.hluk.copyq)$" - "float,class:^(blueman-manager)$" - "center,class:^(nwg-look)$" - "float,class:^(nwg-look)$" - "float,class:^(Lxappearance)$" - "float,class:(pavucontrol)$" - "move 100%-w-20 40,class:(pavucontrol)$" - "float,class:^(polkit-gnome-authentication-agent-1)$" - "float,class:^(org.gnome.Calculator)$" - "size 741 585,class:(pavucontrol)$" - "float,class:^(cnst.test)$" - "float,class:^(org.corectrl.CoreCtrl)$" - "float,class:^(feh)$" - ]; - windowrule = [ - "center, ^(xarchiver)$" - "float, ^(xarchiver)$" - "float, ^(org.gnome.FileRoller)$" - ]; - }; -} diff --git a/home/bin/hyprland/toothpick/startup.nix b/home/bin/hyprland/toothpick/startup.nix deleted file mode 100644 index b7105e5f..00000000 --- a/home/bin/hyprland/toothpick/startup.nix +++ /dev/null @@ -1,20 +0,0 @@ -{ - wayland.windowManager.hyprland.settings = { - exec-once = [ - # STARTUP - # exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP - "systemctl --user start polkit-gnome-authentication-agent-1" - # exec-once = lxqt-policykit-agent & - "waybar" - "pamixer --set-volume 50" - "blueman-applet & udiskie -Nt" - "nm-applet --indicator" - "mullvad-vpn" - # exec-once = swaybg -i ~/media/images/wallpaper.png - "wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'" - # exec-once = hyprctl dispatch exec "sleep 4s && copyq --start-server" - "hyprctl dispatch exec 'sleep 5s && keepassxc'" - "hyprctl dispatch exec 'sleep 3s && solaar -w hide'" - ]; - }; -} diff --git a/home/bin/neovim/default.nix b/home/bin/neovim/default.nix deleted file mode 100644 index 7145f842..00000000 --- a/home/bin/neovim/default.nix +++ /dev/null @@ -1,23 +0,0 @@ -{inputs, ...}: { - imports = [ - inputs.nixvim.homeManagerModules.nixvim - ./autocommands.nix - ./completion.nix - ./keymappings.nix - ./options.nix - ./plugins - ./todo.nix - ]; - - home.shellAliases.v = "nvim"; - - programs.nixvim = { - enable = true; - defaultEditor = true; - - viAlias = true; - vimAlias = true; - - luaLoader.enable = true; - }; -} diff --git a/home/bin/waybar/default.nix b/home/bin/waybar/default.nix deleted file mode 100644 index d229cef3..00000000 --- a/home/bin/waybar/default.nix +++ /dev/null @@ -1,6 +0,0 @@ -{pkgs, ...}: { - programs.waybar = { - enable = true; - package = pkgs.waybar; - }; -} diff --git a/home/default.nix b/home/default.nix index 5ce33f96..607add26 100644 --- a/home/default.nix +++ b/home/default.nix @@ -8,11 +8,8 @@ # Define the shared imports sharedImports = [ - ./opt/browsers/firefox + ./modules ./etc - ./bin - ./opt - ./srv ]; # Define homeImports for each profile, including sharedImports @@ -20,26 +17,16 @@ "cnst@cnix" = sharedImports ++ [ - ./bin/hyprland/cnst - ./usr/share/shell/cnst - ./usr/share/git/cnst - ./opt/sops ./profiles/cnst ]; "adam@adampad" = sharedImports ++ [ - ./bin/hyprland/adam - ./usr/share/shell/adam - ./usr/share/git/cnst ./profiles/adam ]; "toothpick@toothpc" = sharedImports ++ [ - ./bin/hyprland/toothpick - ./usr/share/git/toothpick - ./usr/share/shell/toothpick ./profiles/toothpick ]; }; diff --git a/home/etc/default.nix b/home/etc/default.nix index 50a01610..228f9d2b 100644 --- a/home/etc/default.nix +++ b/home/etc/default.nix @@ -2,7 +2,9 @@ imports = [ # shared imports ./dconf + ./polkit ./gtk + ./utility ./xdg ]; } diff --git a/home/srv/polkit/default.nix b/home/etc/polkit/default.nix similarity index 100% rename from home/srv/polkit/default.nix rename to home/etc/polkit/default.nix diff --git a/home/opt/utility/default.nix b/home/etc/utility/default.nix similarity index 95% rename from home/opt/utility/default.nix rename to home/etc/utility/default.nix index bc4d6486..e6d7dd07 100644 --- a/home/opt/utility/default.nix +++ b/home/etc/utility/default.nix @@ -34,5 +34,8 @@ networkmanagerapplet # tray icon for NetworkManager usbimager # write bootable usb images! chatgpt-cli + exiftool + libnotify + filezilla ]; } diff --git a/home/modules/browsers/chromium/default.nix b/home/modules/browsers/chromium/default.nix new file mode 100644 index 00000000..475f2c41 --- /dev/null +++ b/home/modules/browsers/chromium/default.nix @@ -0,0 +1,25 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.browsers.chromium; +in { + options = { + modules.browsers.chromium.enable = mkEnableOption "Enables chromium"; + }; + config = mkIf cfg.enable { + programs.chromium = { + enable = true; + package = pkgs.ungoogled-chromium; + extensions = [ + "gebbhagfogifgggkldgodflihgfeippi" # return youtube dislike + "mnjggcdmjocbbbhaepdhchncahnbgone" # sponsorblock for youtube + "ponfpcnoihfmfllpaingbgckeeldkhle" # enhancer for youtube + "cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock origin + ]; + }; + }; +} diff --git a/home/modules/browsers/firefox/default.nix b/home/modules/browsers/firefox/default.nix new file mode 100644 index 00000000..6c037a67 --- /dev/null +++ b/home/modules/browsers/firefox/default.nix @@ -0,0 +1,44 @@ +{ + inputs, + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.browsers.firefox; +in { + options = { + modules.browsers.firefox.enable = mkEnableOption "Enables firefox"; + }; + config = mkIf cfg.enable { + programs.firefox = { + enable = true; + package = pkgs.firefox; + profiles = { + default = { + search = { + force = true; + default = "DuckDuckGo"; + privateDefault = "DuckDuckGo"; + order = ["DuckDuckGo" "Google"]; + }; + bookmarks = {}; + extensions = with inputs.firefox-addons.packages.${pkgs.system}; [ + ublock-origin + sponsorblock + clearurls + return-youtube-dislikes + # enhancer-for-youtube # unfree + ]; + settings = { + "apz.overscroll.enabled" = true; + "browser.aboutConfig.showWarning" = false; + "general.autoScroll" = true; + "toolkit.legacyUserProfileCustomizations.stylesheets" = true; + }; + }; + }; + }; + }; +} diff --git a/home/modules/comm/discord/default.nix b/home/modules/comm/discord/default.nix new file mode 100644 index 00000000..c20194b2 --- /dev/null +++ b/home/modules/comm/discord/default.nix @@ -0,0 +1,57 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.comm.discord; +in { + options = { + modules.comm.discord.enable = mkEnableOption "Enables discord"; + }; + config = mkIf cfg.enable { + home.packages = with pkgs; [vesktop]; + + xdg.configFile."vesktop/themes/base16.css".text = + /* + css + */ + '' + /** + * @name Material Gruvbox + * @. + * @author Costeer + * @version 1.5.0 + * @website https://github.com/Costeer + * @source https://github.com/Costeer/Gruvbox-Material-Themes + */ + + @import url(https://mwittrien.github.io/BetterDiscordAddons/Themes/DiscordRecolor/DiscordRecolor.css); + + :root { + --accentcolor: 137, 180, 130; + --accentcolor2: 211, 134, 155; + --linkcolor: 125, 174, 163; + --mentioncolor: 211, 134, 155; + --textbrightest: 221, 199, 161; + --textbrighter: 212, 190, 152; + --textbright: 168, 153, 132; + --textdark: 146, 131, 116; + --textdarker: 146, 131, 116; + --textdarkest: 80, 80, 80; + --font: Input Sans Narrow; + --main-font: Input Sans Narrow; + --code-font: Input Mono Compressed; + --backgroundaccent: 80, 73, 69; + --backgroundprimary: 60, 56, 54; + --backgroundsecondary: 50, 48, 47; + --backgroundsecondaryalt: 40, 40, 40; + --backgroundtertiary: 29, 32, 33; + --backgroundfloating: 20, 22, 23; + --settingsicons: 1; + } + + ''; + }; +} diff --git a/home/modules/default.nix b/home/modules/default.nix new file mode 100644 index 00000000..6f718ef3 --- /dev/null +++ b/home/modules/default.nix @@ -0,0 +1,35 @@ +{userModules, ...}: { + imports = [ + "${userModules}/wm/hyprland" + "${userModules}/wm/utils/hypridle" + "${userModules}/wm/utils/hyprlock" + "${userModules}/wm/utils/hyprpaper" + + "${userModules}/browsers/firefox" + "${userModules}/browsers/chromium" + + "${userModules}/comm/discord" + + "${userModules}/gaming/lutris" + "${userModules}/gaming/mangohud" + # "${userModules}/create" + "${userModules}/devtools/neovim" + "${userModules}/devtools/vscode" + # "${userModules}/media" + "${userModules}/terminal/alacritty" + "${userModules}/terminal/foot" + "${userModules}/terminal/kitty" + "${userModules}/terminal/zellij" + "${userModules}/userd/sops" + "${userModules}/userd/copyq" + "${userModules}/userd/mako" + "${userModules}/userd/udiskie" + # "${userModules}/userd" + "${userModules}/utils/ags" + "${userModules}/utils/anyrun" + "${userModules}/utils/rofi" + "${userModules}/utils/waybar" + "${userModules}/utils/yazi" + # "${userModules}/wm" + ]; +} diff --git a/home/bin/neovim/autocommands.nix b/home/modules/devtools/neovim/autocommands.nix similarity index 100% rename from home/bin/neovim/autocommands.nix rename to home/modules/devtools/neovim/autocommands.nix diff --git a/home/bin/neovim/completion.nix b/home/modules/devtools/neovim/completion.nix similarity index 100% rename from home/bin/neovim/completion.nix rename to home/modules/devtools/neovim/completion.nix diff --git a/home/modules/devtools/neovim/default.nix b/home/modules/devtools/neovim/default.nix new file mode 100644 index 00000000..f8530b9c --- /dev/null +++ b/home/modules/devtools/neovim/default.nix @@ -0,0 +1,33 @@ +{ + inputs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.devtools.neovim; +in { + imports = [ + inputs.nixvim.homeManagerModules.nixvim + ./autocommands.nix + ./completion.nix + ./keymappings.nix + ./options.nix + ./plugins + ./todo.nix + ]; + options = { + modules.devtools.neovim.enable = mkEnableOption "Enables neovim"; + }; + config = mkIf cfg.enable { + programs.nixvim = { + enable = true; + defaultEditor = true; + + viAlias = true; + vimAlias = true; + + luaLoader.enable = true; + }; + }; +} diff --git a/home/bin/neovim/keymappings.nix b/home/modules/devtools/neovim/keymappings.nix similarity index 100% rename from home/bin/neovim/keymappings.nix rename to home/modules/devtools/neovim/keymappings.nix diff --git a/home/bin/neovim/options.nix b/home/modules/devtools/neovim/options.nix similarity index 100% rename from home/bin/neovim/options.nix rename to home/modules/devtools/neovim/options.nix diff --git a/home/bin/neovim/plugins/barbar.nix b/home/modules/devtools/neovim/plugins/barbar.nix similarity index 100% rename from home/bin/neovim/plugins/barbar.nix rename to home/modules/devtools/neovim/plugins/barbar.nix diff --git a/home/bin/neovim/plugins/chatgpt.nix b/home/modules/devtools/neovim/plugins/chatgpt.nix similarity index 100% rename from home/bin/neovim/plugins/chatgpt.nix rename to home/modules/devtools/neovim/plugins/chatgpt.nix diff --git a/home/bin/neovim/plugins/comment.nix b/home/modules/devtools/neovim/plugins/comment.nix similarity index 100% rename from home/bin/neovim/plugins/comment.nix rename to home/modules/devtools/neovim/plugins/comment.nix diff --git a/home/bin/neovim/plugins/conform.nix b/home/modules/devtools/neovim/plugins/conform.nix similarity index 100% rename from home/bin/neovim/plugins/conform.nix rename to home/modules/devtools/neovim/plugins/conform.nix diff --git a/home/bin/neovim/plugins/default.nix b/home/modules/devtools/neovim/plugins/default.nix similarity index 100% rename from home/bin/neovim/plugins/default.nix rename to home/modules/devtools/neovim/plugins/default.nix diff --git a/home/bin/neovim/plugins/efm.nix b/home/modules/devtools/neovim/plugins/efm.nix similarity index 100% rename from home/bin/neovim/plugins/efm.nix rename to home/modules/devtools/neovim/plugins/efm.nix diff --git a/home/bin/neovim/plugins/floaterm.nix b/home/modules/devtools/neovim/plugins/floaterm.nix similarity index 100% rename from home/bin/neovim/plugins/floaterm.nix rename to home/modules/devtools/neovim/plugins/floaterm.nix diff --git a/home/bin/neovim/plugins/harpoon.nix b/home/modules/devtools/neovim/plugins/harpoon.nix similarity index 100% rename from home/bin/neovim/plugins/harpoon.nix rename to home/modules/devtools/neovim/plugins/harpoon.nix diff --git a/home/bin/neovim/plugins/lsp.nix b/home/modules/devtools/neovim/plugins/lsp.nix similarity index 100% rename from home/bin/neovim/plugins/lsp.nix rename to home/modules/devtools/neovim/plugins/lsp.nix diff --git a/home/bin/neovim/plugins/lualine.nix b/home/modules/devtools/neovim/plugins/lualine.nix similarity index 100% rename from home/bin/neovim/plugins/lualine.nix rename to home/modules/devtools/neovim/plugins/lualine.nix diff --git a/home/bin/neovim/plugins/markdown-preview.nix b/home/modules/devtools/neovim/plugins/markdown-preview.nix similarity index 100% rename from home/bin/neovim/plugins/markdown-preview.nix rename to home/modules/devtools/neovim/plugins/markdown-preview.nix diff --git a/home/bin/neovim/plugins/neo-tree.nix b/home/modules/devtools/neovim/plugins/neo-tree.nix similarity index 100% rename from home/bin/neovim/plugins/neo-tree.nix rename to home/modules/devtools/neovim/plugins/neo-tree.nix diff --git a/home/bin/neovim/plugins/nonels.nix b/home/modules/devtools/neovim/plugins/nonels.nix similarity index 100% rename from home/bin/neovim/plugins/nonels.nix rename to home/modules/devtools/neovim/plugins/nonels.nix diff --git a/home/bin/neovim/plugins/startify.nix b/home/modules/devtools/neovim/plugins/startify.nix similarity index 100% rename from home/bin/neovim/plugins/startify.nix rename to home/modules/devtools/neovim/plugins/startify.nix diff --git a/home/bin/neovim/plugins/tagbar.nix b/home/modules/devtools/neovim/plugins/tagbar.nix similarity index 100% rename from home/bin/neovim/plugins/tagbar.nix rename to home/modules/devtools/neovim/plugins/tagbar.nix diff --git a/home/bin/neovim/plugins/telescope.nix b/home/modules/devtools/neovim/plugins/telescope.nix similarity index 100% rename from home/bin/neovim/plugins/telescope.nix rename to home/modules/devtools/neovim/plugins/telescope.nix diff --git a/home/bin/neovim/plugins/treesitter.nix b/home/modules/devtools/neovim/plugins/treesitter.nix similarity index 100% rename from home/bin/neovim/plugins/treesitter.nix rename to home/modules/devtools/neovim/plugins/treesitter.nix diff --git a/home/bin/neovim/plugins/vimtex.nix b/home/modules/devtools/neovim/plugins/vimtex.nix similarity index 100% rename from home/bin/neovim/plugins/vimtex.nix rename to home/modules/devtools/neovim/plugins/vimtex.nix diff --git a/home/bin/neovim/plugins/yanky.nix b/home/modules/devtools/neovim/plugins/yanky.nix similarity index 100% rename from home/bin/neovim/plugins/yanky.nix rename to home/modules/devtools/neovim/plugins/yanky.nix diff --git a/home/bin/neovim/todo.nix b/home/modules/devtools/neovim/todo.nix similarity index 100% rename from home/bin/neovim/todo.nix rename to home/modules/devtools/neovim/todo.nix diff --git a/home/modules/devtools/vscode/default.nix b/home/modules/devtools/vscode/default.nix new file mode 100644 index 00000000..1a5f475c --- /dev/null +++ b/home/modules/devtools/vscode/default.nix @@ -0,0 +1,17 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.devtools.vscode; +in { + options = { + modules.devtools.vscode.enable = mkEnableOption "Enables vscode"; + }; + config = mkIf cfg.enable { + programs.vscode = { + enable = true; + }; + }; +} diff --git a/home/modules/gaming/lutris/default.nix b/home/modules/gaming/lutris/default.nix new file mode 100644 index 00000000..7451a824 --- /dev/null +++ b/home/modules/gaming/lutris/default.nix @@ -0,0 +1,25 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.gaming.lutris; +in { + options = { + modules.gaming.lutris.enable = mkEnableOption "Enables lutris"; + }; + config = mkIf cfg.enable { + home.packages = [ + (pkgs.lutris.override { + extraPkgs = p: [ + p.wineWowPackages.staging + p.pixman + p.libjpeg + p.gnome.zenity + ]; + }) + ]; + }; +} diff --git a/home/modules/gaming/mangohud/default.nix b/home/modules/gaming/mangohud/default.nix new file mode 100644 index 00000000..1daec3c5 --- /dev/null +++ b/home/modules/gaming/mangohud/default.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.gaming.mangohud; +in { + options = { + modules.gaming.mangohud.enable = mkEnableOption "Enables mangohud"; + }; + config = mkIf cfg.enable { + programs.mangohud = { + enable = true; + settings = { + full = true; + }; + }; + }; +} diff --git a/home/modules/terminal/alacritty/default.nix b/home/modules/terminal/alacritty/default.nix new file mode 100644 index 00000000..b0b011fc --- /dev/null +++ b/home/modules/terminal/alacritty/default.nix @@ -0,0 +1,87 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.terminal.alacritty; +in { + options = { + modules.terminal.alacritty.enable = mkEnableOption "Enables firefox"; + }; + config = mkIf cfg.enable { + programs.alacritty = { + enable = true; + settings = { + # Default colors + colors.primary = { + background = "#282828"; + foreground = "#d4be98"; + }; + colors = { + # Normal colors + normal = { + black = "#3c3836"; + red = "#ea6962"; + green = "#a9b665"; + yellow = "#d8a657"; + blue = "#7daea3"; + magenta = "#d3869b"; + cyan = "#89b482"; + white = "#d4be98"; + }; + # Bright colors (same as normal colors) + bright = { + black = "#3c3836"; + red = "#ea6962"; + green = "#a9b665"; + yellow = "#d8a657"; + blue = "#7daea3"; + magenta = "#d3869b"; + cyan = "#89b482"; + white = "#d4be98"; + }; + }; + font = { + size = 10; + normal = { + family = "Input Mono Compressed"; + style = "Light"; + }; + bold = { + family = "Input Mono Compressed"; + style = "Regular"; + }; + italic = { + family = "Input Mono Compressed"; + style = "Italic"; + }; + }; + keyboard.bindings = [ + { + action = "Copy"; + key = "C"; + mods = "Command"; + } + { + action = "Paste"; + key = "V"; + mods = "Command"; + } + ]; + window = { + dynamic_title = true; + opacity = 0.9; + padding = { + x = 5; + y = 5; + }; + dimensions = { + columns = 120; + lines = 35; + }; + }; + }; + }; + }; +} diff --git a/home/modules/terminal/foot/default.nix b/home/modules/terminal/foot/default.nix new file mode 100644 index 00000000..082f6aef --- /dev/null +++ b/home/modules/terminal/foot/default.nix @@ -0,0 +1,248 @@ +{ pkgs +, config +, lib +, ... +}: +let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.terminal.foot; +in +{ + options = { + modules.terminal.foot.enable = mkEnableOption "Enables foot terminal"; + }; + config = mkIf cfg.enable { + programs.foot = { + enable = true; + package = pkgs.foot; + settings = { + # -*- conf -*- + + # shell=$SHELL (if set, otherwise user's default shell from /etc/passwd) + # term=foot (or xterm-256color if built with -Dterminfo=disabled) + # login-shell=no + + # app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode + # title=foot + # locked-title=no + + # font=monospace:size=8 + # font-bold= + # font-italic= + # font-bold-italic= + # font-size-adjustment=0.5 + # line-height= + # letter-spacing=0 + # horizontal-letter-offset=0 + # vertical-letter-offset=0 + # underline-offset= + # underline-thickness= + # box-drawings-uses-font-glyphs=no + # dpi-aware=no + + # initial-window-size-pixels=700x500 # Or, + # initial-window-size-chars= + # initial-window-mode=windowed + # pad=0x0 # optionally append 'center' + # resize-by-cells=yes + # resize-delay-ms=100 + + # notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} + + # bold-text-in-bright=no + # word-delimiters=,│`|:"'()[]{}<> + # selection-target=primary + # workers= + # utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux) + # utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD) + + main = { + font = "Input Mono Compressed:size=12"; + box-drawings-uses-font-glyphs = "yes"; + dpi-aware = "no"; + pad = "3x1"; + term = "xterm-256color"; + }; + + environment = { + # name=value + }; + + bell = { + urgent = "no"; + notify = "no"; + visual = "no"; + command = "no"; + command-focused = "no"; + }; + + scrollback = { + lines = "100"; + # multiplier=3.0 + # indicator-position=relative + # indicator-format="" + }; + + url = { + # launch=xdg-open ${url} + # label-letters=sadfjklewcmpgh + # osc8-underline=url-mode + # protocols=http, https, ftp, ftps, file, gemini, gopher + # uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[] + }; + + cursor = { + style = "block"; + # color= + blink = "no"; + # blink-rate=500 + # beam-thickness=1.5 + # underline-thickness= + }; + + mouse = { + hide-when-typing = "no"; + # alternate-scroll-mode=yes + }; + + touch = { + # long-press-delay=400 + }; + + colors = { + alpha = "0.9"; + background = "282828"; + foreground = "ebdbb2"; + regular0 = "282828"; + regular1 = "cc241d"; + regular2 = "98971a"; + regular3 = "d79921"; + regular4 = "458588"; + regular5 = "b16286"; + regular6 = "689d6a"; + regular7 = "a89984"; + bright0 = "928374"; + bright1 = "fb4934"; + bright2 = "b8bb26"; + bright3 = "fabd2f"; + bright4 = "83a598"; + bright5 = "d3869b"; + bright6 = "8ec07c"; + bright7 = "ebdbb2"; + }; + + csd = { + # preferred=server + # size=26 + # font= + # color= + # hide-when-maximized=no + # double-click-to-maximize=yes + # border-width=0 + # border-color= + # button-width=26 + # button-color= + # button-minimize-color= + # button-maximize-color= + # button-close-color= + }; + + key-bindings = { + # scrollback-up-page=Shift+Page_Up + # scrollback-up-half-page=none + # scrollback-up-line=none + # scrollback-down-page=Shift+Page_Down + # scrollback-down-half-page=none + # scrollback-down-line=none + # scrollback-home=none + # scrollback-end=none + # clipboard-copy=Control+Shift+c XF86Copy + # clipboard-paste=Control+Shift+v XF86Paste + # primary-paste=Shift+Insert + # search-start=Control+Shift+r + # font-increase=Control+plus Control+equal Control+KP_Add + # font-decrease=Control+minus Control+KP_Subtract + # font-reset=Control+0 Control+KP_0 + # spawn-terminal=Control+Shift+n + # minimize=none + # maximize=none + # fullscreen=none + # pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none + # pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none + # pipe-selected=[xargs -r firefox] none + # pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard + # show-urls-launch=Control+Shift+o + # show-urls-copy=none + # show-urls-persistent=none + # prompt-prev=Control+Shift+z + # prompt-next=Control+Shift+x + # unicode-input=Control+Shift+u + # noop=none + }; + + search-bindings = { + # cancel=Control+g Control+c Escape + # commit=Return + # find-prev=Control+r + # find-next=Control+s + # cursor-left=Left Control+b + # cursor-left-word=Control+Left Mod1+b + # cursor-right=Right Control+f + # cursor-right-word=Control+Right Mod1+f + # cursor-home=Home Control+a + # cursor-end=End Control+e + # delete-prev=BackSpace + # delete-prev-word=Mod1+BackSpace Control+BackSpace + # delete-next=Delete + # delete-next-word=Mod1+d Control+Delete + # extend-char=Shift+Right + # extend-to-word-boundary=Control+w Control+Shift+Right + # extend-to-next-whitespace=Control+Shift+w + # extend-line-down=Shift+Down + # extend-backward-char=Shift+Left + # extend-backward-to-word-boundary=Control+Shift+Left + # extend-backward-to-next-whitespace=none + # extend-line-up=Shift+Up + # clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste + # primary-paste=Shift+Insert + # unicode-input=none + # quit=none + # scrollback-up-page=Shift+Page_Up + # scrollback-up-half-page=none + # scrollback-up-line=none + # scrollback-down-page=Shift+Page_Down + # scrollback-down-half-page=none + # scrollback-down-line=none + # scrollback-home=none + # scrollback-end=none + }; + + url-bindings = { + # cancel=Control+g Control+c Control+d Escape + # toggle-url-visible=t + }; + + text-bindings = { + # \x03=Mod4+c # Map Super+c -> Ctrl+c + }; + + mouse-bindings = { + # scrollback-up-mouse=BTN_BACK + # scrollback-down-mouse=BTN_FORWARD + # selection-override-modifiers=Shift + # primary-paste=BTN_MIDDLE + # select-begin=BTN_LEFT + # select-begin-block=Control+BTN_LEFT + # select-extend=BTN_RIGHT + # select-extend-character-wise=Control+BTN_RIGHT + # select-word=BTN_LEFT-2 + # select-word-whitespace=Control+BTN_LEFT-2 + # select-quote = BTN_LEFT-3 + # select-row=BTN_LEFT-4 + }; + + # vim: ft=dosini + }; + }; + }; +} diff --git a/home/modules/terminal/kitty/default.nix b/home/modules/terminal/kitty/default.nix new file mode 100644 index 00000000..015dd4e4 --- /dev/null +++ b/home/modules/terminal/kitty/default.nix @@ -0,0 +1,107 @@ +{ config +, lib +, ... +}: +let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.terminal.kitty; +in +{ + options = { + modules.terminal.kitty.enable = mkEnableOption "Enables kitty terminal"; + }; + config = mkIf cfg.enable { + programs.kitty = { + enable = true; + settings = { + # include = "theme.conf"; + enable_audio_bell = false; + open_url_with = "firefox-nightly"; + font_family = "Input Mono Compressed Extra Light"; + bold_font = "auto"; + italic_font = "auto"; + bold_italic_font = "auto"; + font_size = "11.0"; + cursor_blink_interval = 0; + copy_on_select = "clipboard"; + background_opacity = "0.95"; + background_blur = "32"; + window_padding_width = 3; + # tab_bar_min_tabs = 1; + # tab_bar_edge = "bottom"; + tab_bar_style = "separator"; + tab_bar_margin_width = "0.0"; + tab_bar_margin_height = "0.0 0.0"; + active_tab_font_style = "normal"; + inactive_tab_font_style = "normal"; + # tab_title_max_length = 30; + # # colors + # active_tab_foreground = "#32302f"; + # active_tab_background = "#282828"; + # inactive_tab_foreground = "#282828"; + # inactive_tab_background = "#504945"; + tab_bar_background = "#504945"; + tab_bar_min_tabs = 1; + tab_bar_edge = "bottom"; + # tab_powerline_style = "slanted"; + }; + extraConfig = '' + kitty_mod shift+ctrl + map kitty_mod+q close_tab + map ctrl+shift+c copy_to_clipboard + map ctrl+shift+v paste_from_clipboard + tab_separator "" + tab_title_template "{fmt.fg._504945}{fmt.bg.default}▓{fmt.fg._282828}{fmt.bg.default}{index}{fmt.fg._282828}{fmt.bg._504945} {title[:15] + (title[15:] and '…')} {fmt.fg._504945}{fmt.bg.default}▓ " + active_tab_title_template "{fmt.fg._282828}{fmt.bg.default}▓{fmt.fg._A89984}{fmt.bg._282828}{fmt.fg._A89984}{fmt.bg._282828} {title[:40] + (title[40:] and '…')} {fmt.fg._282828}{fmt.bg.default}▓ " + + # vim:ft=kitty + ## name: Gruvbox Material Dark Cnst + ## author: Sainnhe Park + ## license: MIT + ## upstream: https://raw.githubusercontent.com/rsaihe/gruvbox-material-kitty/main/colors/gruvbox-material-dark-medium.conf + ## blurb: A modified version of Gruvbox with softer contrasts + + background #282828 + foreground #d4be98 + + selection_background #d4be98 + selection_foreground #282828 + + cursor #a89984 + cursor_text_color background + + # Black + color0 #665c54 + color8 #928374 + + # Red + color1 #ea6962 + color9 #ea6962 + + # Green + color2 #a9b665 + color10 #a9b665 + + # Yellow + color3 #e78a4e + color11 #d8a657 + + # Blue + color4 #7daea3 + color12 #7daea3 + + # Magenta + color5 #d3869b + color13 #d3869b + + # Cyan + color6 #89b482 + color14 #89b482 + + # White + color7 #d4be98 + color15 #d4be98 + ''; + }; + }; +} diff --git a/home/opt/wezterm/default.nix b/home/modules/terminal/wezterm/default.nix similarity index 100% rename from home/opt/wezterm/default.nix rename to home/modules/terminal/wezterm/default.nix diff --git a/home/opt/wezterm/default.nixbak b/home/modules/terminal/wezterm/default.nixbak similarity index 100% rename from home/opt/wezterm/default.nixbak rename to home/modules/terminal/wezterm/default.nixbak diff --git a/home/modules/terminal/zellij/default.nix b/home/modules/terminal/zellij/default.nix new file mode 100644 index 00000000..5c401de3 --- /dev/null +++ b/home/modules/terminal/zellij/default.nix @@ -0,0 +1,89 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.terminal.zellij; +in { + options = { + modules.terminal.zellij.enable = mkEnableOption "Enables zellij"; + }; + config = mkIf cfg.enable { + programs.zellij = { + enable = true; + enableZshIntegration = false; + }; + home.shellAliases = { + zr = "zellij run --"; + zrf = "zellij run --floating --"; + ze = "zellij edit"; + zef = "zellij edit --floating"; + }; + + xdg.configFile."zellij/config.kdl".text = '' + default_layout "compact" + mouse_mode true + copy_on_select true + copy_command "wl-copy" + simplified_ui false + scrollback_editor "/home/cnst/.nix-profile/bin/nvim" + pane_frames true + on_force_close "detach" + + ui { + pane_frames { + rounded_corners false + } + } + + keybinds { + normal { + bind "Alt m" { + LaunchPlugin "file:~/.config/zellij/plugins/monocle.wasm" { + in_place true + kiosk true + }; + SwitchToMode "Normal" + } + bind "Ctrl f" { + LaunchOrFocusPlugin "file:~/.config/zellij/plugins/monocle.wasm" { + floating true + } + SwitchToMode "Normal" + } + bind "Alt 1" { GoToTab 1;} + bind "Alt 2" { GoToTab 2;} + bind "Alt 3" { GoToTab 3;} + bind "Alt 4" { GoToTab 4;} + } + + shared_except "locked" { + bind "Ctrl y" { + LaunchOrFocusPlugin "file:~/.config/zellij/plugins/room.wasm" { + floating true + ignore_case true + } + } + } + unbind "Ctrl b" "Ctrl h" "Ctrl g" "Alt j" + } + + themes { + gruvbox-dark { + bg "#282828" + fg "#D5C4A1" + black "#3C3836" + red "#CC241D" + green "#98971A" + yellow "#D79921" + blue "#458588" + magenta "#B16286" + cyan "#689D6A" + white "#FBF1C7" + orange "#D65D0E" + } + } + ''; + }; +} diff --git a/home/modules/userd/copyq/default.nix b/home/modules/userd/copyq/default.nix new file mode 100644 index 00000000..e6e78a67 --- /dev/null +++ b/home/modules/userd/copyq/default.nix @@ -0,0 +1,17 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.userd.copyq; +in { + options = { + modules.userd.copyq.enable = mkEnableOption "Enables copyq"; + }; + config = mkIf cfg.enable { + services.copyq = { + enable = true; + }; + }; +} diff --git a/home/modules/userd/mako/default.nix b/home/modules/userd/mako/default.nix new file mode 100644 index 00000000..304e008c --- /dev/null +++ b/home/modules/userd/mako/default.nix @@ -0,0 +1,39 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.userd.mako; +in { + options = { + modules.userd.mako.enable = mkEnableOption "Enables mako"; + }; + config = mkIf cfg.enable { + services.mako = { + enable = true; + iconPath = "$HOME/.nix-profile/share/icons/Gruvbox-Plus-Dark"; + font = "FiraCode Nerd Font Medium 12"; + padding = "20"; + margin = "10"; + anchor = "top-right"; + width = 400; + height = 150; + borderSize = 2; + defaultTimeout = 12000; + backgroundColor = "#3c3836dd"; + borderColor = "#689d6add"; + textColor = "#d5c4a1dd"; + layer = "overlay"; + extraConfig = '' + max-history=50 + max-visible=4 + outer-margin=25 + icon-location=right + max-icon-size=48 + [mode=do-not-disturb] + invisible=1 + ''; + }; + }; +} diff --git a/home/opt/sops/default.nix b/home/modules/userd/sops/default.nix similarity index 79% rename from home/opt/sops/default.nix rename to home/modules/userd/sops/default.nix index 036cd4d1..fb22edbd 100644 --- a/home/opt/sops/default.nix +++ b/home/modules/userd/sops/default.nix @@ -50,19 +50,25 @@ }; }) ]; + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.userd.sops; in { imports = [ inputs.sops-nix.homeManagerModules.sops ]; - - sops = lib.mkMerge [ - { - gnupg = { - home = "~/.gnupg"; - sshKeyPaths = []; - }; - } - defaultConfig - userSpecificConfig - ]; + options = { + modules.userd.sops.enable = mkEnableOption "Enables sops home environment"; + }; + config = mkIf cfg.enable { + sops = lib.mkMerge [ + { + gnupg = { + home = "~/.gnupg"; + sshKeyPaths = []; + }; + } + defaultConfig + userSpecificConfig + ]; + }; } diff --git a/home/modules/userd/udiskie/default.nix b/home/modules/userd/udiskie/default.nix new file mode 100644 index 00000000..9e9029a7 --- /dev/null +++ b/home/modules/userd/udiskie/default.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.userd.udiskie; +in { + options = { + modules.userd.udiskie.enable = mkEnableOption "Enables udiskie"; + }; + config = mkIf cfg.enable { + services.udiskie = { + enable = true; + tray = "always"; + notify = false; + }; + }; +} diff --git a/home/opt/ags/.gitignore b/home/modules/utils/ags/.gitignore similarity index 100% rename from home/opt/ags/.gitignore rename to home/modules/utils/ags/.gitignore diff --git a/home/modules/utils/ags/default.nix b/home/modules/utils/ags/default.nix new file mode 100644 index 00000000..ca34ef44 --- /dev/null +++ b/home/modules/utils/ags/default.nix @@ -0,0 +1,57 @@ +{ + inputs, + pkgs, + lib, + config, + ... +}: let + requiredDeps = with pkgs; [ + bash + bun + coreutils + dart-sass + gawk + imagemagick + procps + ripgrep + util-linux + ]; + + guiDeps = with pkgs; [ + gnome.gnome-control-center + mission-center + overskride + wlogout + ]; + + dependencies = requiredDeps ++ guiDeps; + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.utils.ags; +in { + imports = [ + inputs.ags.homeManagerModules.default + ]; + options = { + modules.utils.ags.enable = mkEnableOption "Enables ags"; + }; + + config = mkIf cfg.enable { + programs.ags.enable = true; + + systemd.user.services.ags = { + Unit = { + Description = "Aylur's Gtk Shell"; + PartOf = [ + "tray.target" + "graphical-session.target" + ]; + }; + Service = { + Environment = "PATH=/run/wrappers/bin:${lib.makeBinPath dependencies}"; + ExecStart = "${cfg.package}/bin/ags"; + Restart = "on-failure"; + }; + Install.WantedBy = ["graphical-session.target"]; + }; + }; +} diff --git a/home/modules/utils/anyrun/default.nix b/home/modules/utils/anyrun/default.nix new file mode 100644 index 00000000..74d6f8e1 --- /dev/null +++ b/home/modules/utils/anyrun/default.nix @@ -0,0 +1,23 @@ +{ + inputs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.utils.anyrun; +in { + imports = [ + inputs.anyrun.homeManagerModules.default + ]; + options = { + modules.utils.anyrun.enable = mkEnableOption "Enables anyrun"; + }; + config = mkIf cfg.enable { + programs.anyrun = { + enable = true; + + #extraCss = builtins.readFile (./. + "/style-dark.css"); + }; + }; +} diff --git a/home/modules/utils/rofi/default.nix b/home/modules/utils/rofi/default.nix new file mode 100644 index 00000000..9d948e0a --- /dev/null +++ b/home/modules/utils/rofi/default.nix @@ -0,0 +1,21 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.utils.rofi; +in { + options = { + modules.utils.rofi.enable = mkEnableOption "Enables firefox"; + }; + config = mkIf cfg.enable { + programs.rofi = { + enable = true; + package = pkgs.rofi-wayland-unwrapped; + configPath = "home/cnst/.config/rofi/config.rasi"; + font = "Rec Mono Linear 11"; + }; + }; +} diff --git a/home/modules/utils/waybar/default.nix b/home/modules/utils/waybar/default.nix new file mode 100644 index 00000000..22f0cd96 --- /dev/null +++ b/home/modules/utils/waybar/default.nix @@ -0,0 +1,19 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.utils.waybar; +in { + options = { + modules.utils.waybar.enable = mkEnableOption "Enables waybar"; + }; + config = mkIf cfg.enable { + programs.waybar = { + enable = true; + package = pkgs.waybar; + }; + }; +} diff --git a/home/modules/utils/yazi/default.nix b/home/modules/utils/yazi/default.nix new file mode 100644 index 00000000..f004d1d5 --- /dev/null +++ b/home/modules/utils/yazi/default.nix @@ -0,0 +1,47 @@ +{ + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.utils.yazi; +in { + imports = [ + ./theme + ]; + + options = { + modules.utils.yazi.enable = mkEnableOption "Enables yazi"; + }; + config = mkIf cfg.enable { + programs.yazi = { + enable = true; + + package = pkgs.yazi; + + enableBashIntegration = config.programs.bash.enable; + enableZshIntegration = config.programs.zsh.enable; + + settings = { + manager = { + layout = [1 4 3]; + sort_by = "alphabetical"; + sort_sensitive = true; + sort_reverse = false; + sort_dir_first = true; + linemode = "none"; + show_hidden = false; + show_symlink = true; + }; + + preview = { + tab_size = 2; + max_width = 600; + max_height = 900; + cache_dir = config.xdg.cacheHome; + }; + }; + }; + }; +} diff --git a/home/opt/yazi/theme/default.nix b/home/modules/utils/yazi/theme/default.nix similarity index 100% rename from home/opt/yazi/theme/default.nix rename to home/modules/utils/yazi/theme/default.nix diff --git a/home/opt/yazi/theme/filetype.nix b/home/modules/utils/yazi/theme/filetype.nix similarity index 100% rename from home/opt/yazi/theme/filetype.nix rename to home/modules/utils/yazi/theme/filetype.nix diff --git a/home/opt/yazi/theme/help.nix b/home/modules/utils/yazi/theme/help.nix similarity index 100% rename from home/opt/yazi/theme/help.nix rename to home/modules/utils/yazi/theme/help.nix diff --git a/home/opt/yazi/theme/icons.nix b/home/modules/utils/yazi/theme/icons.nix similarity index 100% rename from home/opt/yazi/theme/icons.nix rename to home/modules/utils/yazi/theme/icons.nix diff --git a/home/opt/yazi/theme/input.nix b/home/modules/utils/yazi/theme/input.nix similarity index 100% rename from home/opt/yazi/theme/input.nix rename to home/modules/utils/yazi/theme/input.nix diff --git a/home/opt/yazi/theme/manager.nix b/home/modules/utils/yazi/theme/manager.nix similarity index 100% rename from home/opt/yazi/theme/manager.nix rename to home/modules/utils/yazi/theme/manager.nix diff --git a/home/opt/yazi/theme/select.nix b/home/modules/utils/yazi/theme/select.nix similarity index 100% rename from home/opt/yazi/theme/select.nix rename to home/modules/utils/yazi/theme/select.nix diff --git a/home/opt/yazi/theme/status.nix b/home/modules/utils/yazi/theme/status.nix similarity index 100% rename from home/opt/yazi/theme/status.nix rename to home/modules/utils/yazi/theme/status.nix diff --git a/home/opt/yazi/theme/tasks.nix b/home/modules/utils/yazi/theme/tasks.nix similarity index 100% rename from home/opt/yazi/theme/tasks.nix rename to home/modules/utils/yazi/theme/tasks.nix diff --git a/home/opt/yazi/theme/which.nix b/home/modules/utils/yazi/theme/which.nix similarity index 100% rename from home/opt/yazi/theme/which.nix rename to home/modules/utils/yazi/theme/which.nix diff --git a/home/bin/hyprland/adam/appearance.nix b/home/modules/wm/hyprland/adam/appearance.nix similarity index 100% rename from home/bin/hyprland/adam/appearance.nix rename to home/modules/wm/hyprland/adam/appearance.nix diff --git a/home/bin/hyprland/adam/default.nix b/home/modules/wm/hyprland/adam/default.nix similarity index 100% rename from home/bin/hyprland/adam/default.nix rename to home/modules/wm/hyprland/adam/default.nix diff --git a/home/bin/hyprland/adam/inputs.nix b/home/modules/wm/hyprland/adam/inputs.nix similarity index 100% rename from home/bin/hyprland/adam/inputs.nix rename to home/modules/wm/hyprland/adam/inputs.nix diff --git a/home/bin/hyprland/adam/keybinds.nix b/home/modules/wm/hyprland/adam/keybinds.nix similarity index 100% rename from home/bin/hyprland/adam/keybinds.nix rename to home/modules/wm/hyprland/adam/keybinds.nix diff --git a/home/bin/hyprland/adam/rules.nix b/home/modules/wm/hyprland/adam/rules.nix similarity index 100% rename from home/bin/hyprland/adam/rules.nix rename to home/modules/wm/hyprland/adam/rules.nix diff --git a/home/bin/hyprland/adam/startup.nix b/home/modules/wm/hyprland/adam/startup.nix similarity index 100% rename from home/bin/hyprland/adam/startup.nix rename to home/modules/wm/hyprland/adam/startup.nix diff --git a/home/modules/wm/hyprland/cnst/appearance.nix b/home/modules/wm/hyprland/cnst/appearance.nix new file mode 100644 index 00000000..42e232da --- /dev/null +++ b/home/modules/wm/hyprland/cnst/appearance.nix @@ -0,0 +1,60 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.cnst.appearance; +in { + options = { + modules.wm.hyprland.cnst.appearance.enable = mkEnableOption "Enables appearance settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + general = { + gaps_in = 2; + gaps_out = 4; + border_size = 3; + #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + #col.inactive_border = rgba(595959aa) + "col.active_border" = "rgb(4c7a5d)"; # rgba(b16286ee) 45deg + "col.inactive_border" = "rgb(504945)"; + layout = "dwindle"; + allow_tearing = false; + resize_on_border = true; + }; + decoration = { + rounding = 0; + blur = { + enabled = true; + size = 8; + passes = 1; + vibrancy = 0.1696; + }; + drop_shadow = false; + shadow_range = 4; + shadow_render_power = 3; + # col.shadow = rgba(1a1a1aee) + }; + animations = { + enabled = true; + bezier = [ + "myBezier,0.05, 0.9, 0.1, 1.05" + ]; + animation = [ + "windows, 1, 3, myBezier" + "windowsOut, 1, 3, default, popin 80%" + "border, 1, 3, default" + "borderangle, 1, 8, default" + "fade, 1, 7, default" + "workspaces, 1, 3, default" + ]; + }; + dwindle = { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = true; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true; # you probably want this + }; + }; + }; +} diff --git a/home/modules/wm/hyprland/cnst/default.nix b/home/modules/wm/hyprland/cnst/default.nix new file mode 100644 index 00000000..0c352b9e --- /dev/null +++ b/home/modules/wm/hyprland/cnst/default.nix @@ -0,0 +1,44 @@ +{ + inputs, + config, + lib, + pkgs, + userModules, + ... +}: let + inherit (lib) mkIf mkEnableOption mkDefault; + cfg = config.modules.wm.hyprland.cnst; +in { + imports = [ + "${userModules}/wm/hyprland/cnst/appearance.nix" + "${userModules}/wm/hyprland/cnst/inputs.nix" + "${userModules}/wm/hyprland/cnst/keybinds.nix" + "${userModules}/wm/hyprland/cnst/rules.nix" + "${userModules}/wm/hyprland/cnst/startup.nix" + ]; + + options = { + modules.wm.hyprland.cnst.enable = mkEnableOption "Enable Hyprland"; + }; + + config = mkIf cfg.enable { + modules.wm.hyprland.cnst = { + appearance.enable = mkDefault cfg.enable; + inputs.enable = mkDefault cfg.enable; + keybinds.enable = mkDefault cfg.enable; + rules.enable = mkDefault cfg.enable; + startup.enable = mkDefault cfg.enable; + }; + wayland.windowManager.hyprland = { + enable = true; + package = inputs.hyprland.packages.${pkgs.system}.default; + systemd = { + variables = ["--all"]; + extraCommands = [ + "systemctl --user stop graphical-session.target" + "systemctl --user start hyprland-session.target" + ]; + }; + }; + }; +} diff --git a/home/modules/wm/hyprland/cnst/inputs.nix b/home/modules/wm/hyprland/cnst/inputs.nix new file mode 100644 index 00000000..c875b0f4 --- /dev/null +++ b/home/modules/wm/hyprland/cnst/inputs.nix @@ -0,0 +1,87 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.cnst.inputs; +in { + options = { + modules.wm.hyprland.cnst.inputs.enable = mkEnableOption "Enables input settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + monitor = [ + "DP-3, 2560x1440@143.86, auto, auto" + "eDP-1,1920x1200@60.02,auto,1" + ]; + env = [ + "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" + ]; + + input = { + follow_mouse = 1; + accel_profile = "flat"; + sensitivity = 0; # -1.0 - 1.0, 0 means no modification. + + touchpad = { + natural_scroll = true; + disable_while_typing = true; + clickfinger_behavior = true; + scroll_factor = 0.5; + }; + }; + # Desktop keyboard + device = [ + { + name = "pfu-limited-hhkb-hybrid"; + kb_layout = "hhkbse"; + kb_options = "lv3:rwin_switch"; + } + { + name = "hhkb-hybrid_1-keyboard"; + kb_layout = "hhkbse"; + kb_options = "lv3:rwin_switch"; + } + # Laptop keyboard + { + name = "at-translated-set-2-keyboard"; + kb_layout = "se"; + kb_options = "ctrl:swapcaps"; + } + ]; + gestures = { + workspace_swipe = true; + workspace_swipe_distance = 400; + workspace_swipe_fingers = 3; + workspace_swipe_cancel_ratio = 0.2; + workspace_swipe_min_speed_to_force = 5; + workspace_swipe_direction_lock = true; + workspace_swipe_direction_lock_threshold = 10; + workspace_swipe_create_new = true; + }; + misc = { + vrr = 2; + mouse_move_enables_dpms = 1; + key_press_enables_dpms = 0; + force_default_wallpaper = 0; + disable_hyprland_logo = true; + disable_splash_rendering = true; + disable_autoreload = true; + }; + xwayland = { + force_zero_scaling = false; + }; + render = { + explicit_sync = 2; + explicit_sync_kms = 2; + direct_scanout = false; + }; + # cursor = { + # no_hardware_cursors = true; + # no_break_fs_vrr = true; + # min_refresh_rate = 24; + # }; + }; + }; +} diff --git a/home/modules/wm/hyprland/cnst/keybinds.nix b/home/modules/wm/hyprland/cnst/keybinds.nix new file mode 100644 index 00000000..ea981c9b --- /dev/null +++ b/home/modules/wm/hyprland/cnst/keybinds.nix @@ -0,0 +1,116 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.cnst.keybinds; +in { + options = { + modules.wm.hyprland.cnst.keybinds.enable = mkEnableOption "Enables keybind settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + "$terminal" = "kitty"; + "$fileManager" = "thunar"; + "$passwordManager" = "keepassxc"; + "$menu" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; + "$menuw" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; + "$browser" = "firefox"; + "$browserinc" = "firefox --private-window"; + "$yazi" = "alacritty -e yazi"; + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + "$mod" = "SUPER"; + + bind = let + grimblast = lib.getExe pkgs.grimblast; + tesseract = lib.getExe pkgs.tesseract; + notify-send = lib.getExe' pkgs.libnotify "notify-send"; + in [ + # Custom binds + "$mod SHIFT, B, exec, pkill -SIGUSR2 waybar" # Reload waybar + + # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more + "$mod, A, exec, pkill -SIGUSR1 waybar" + "$mod, T, exec, $terminal" + "$mod, W, exec, $browser" + "$mod, K, exec, $passwordManager" + "$mod SHIFT, W, exec, $browserinc" + "$mod, Q, killactive," + #bind = $mod, M, exec, hyprctl dispatch exit + #bind = $mod, E, exec, $fileManager + "$mod, E, exec, $fileManager" + "$mod SHIFT, E, exec, $yazi" + "$mod, F, fullscreen," + "$mod SHIFT, F, togglefloating," + "$mod, SPACE, exec, $menu" + "$mod, P, pseudo," # dwindle + "$mod, J, togglesplit," # dwindle + "$mod, C, exec, hyprctl dispatch exec copyq toggle" + "$mod, TAB, exec, $menuw" + + # Move focus with mainMod + arrow keys + "$mod, left, movefocus, l" + "$mod, right, movefocus, r" + "$mod, up, movefocus, u" + "$mod, down, movefocus, d" + + # Switch workspaces with mainMod + [0-9] + "$mod, 1, workspace, 1" + "$mod, 2, workspace, 2" + "$mod, 3, workspace, 3" + "$mod, 4, workspace, 4" + "$mod, 5, workspace, 5" + "$mod, 6, workspace, 6" + "$mod, 7, workspace, 7" + "$mod, 8, workspace, 8" + "$mod, 9, workspace, 9" + "$mod, 0, workspace, 10" + + # Move active window to a workspace with mainMod + SHIFT + [0-9] + "$mod SHIFT, 1, movetoworkspace, 1" + "$mod SHIFT, 2, movetoworkspace, 2" + "$mod SHIFT, 3, movetoworkspace, 3" + "$mod SHIFT, 4, movetoworkspace, 4" + "$mod SHIFT, 5, movetoworkspace, 5" + "$mod SHIFT, 6, movetoworkspace, 6" + "$mod SHIFT, 7, movetoworkspace, 7" + "$mod SHIFT, 8, movetoworkspace, 8" + "$mod SHIFT, 9, movetoworkspace, 9" + "$mod SHIFT, 0, movetoworkspace, 10" + + # Laptop controls + ",XF86AudioLowerVolume, exec, pamixer -d 5" + ",XF86AudioRaiseVolume, exec, pamixer -i 5" + ",XF86AudioMute, exec, pamixer -m" + ",XF86AudioMicMute, exec, pactl -- set-source-mute 0 toggle" + ",XF86MonBrightnessDown, exec, brightnessctl s 10%-" + ",XF86MonBrightnessUp, exec, brightnessctl s +10%" + + "$mod, XF86MonBrightnessUp, exec, hyprctl dispatch dpms on" + "$mod, XF86MonBrightnessDown, exec, hyprctl dispatch dpms off" + + # Screenshotting + ",Insert,exec,${grimblast} --notify --freeze copysave area" + "SHIFT,Insert,exec,${grimblast} --notify --freeze copysave output" + # To OCR + "ALT,Insert,exec,${grimblast} --freeze save area - | ${tesseract} - - | wl-copy && ${notify-send} -t 3000 'OCR result copied to buffer'" + + # Example special workspace (scratchpad) + "$mod, S, togglespecialworkspace, magic" + "$mod SHIFT, S, movetoworkspace, special:magic" + + # Scroll through existing workspaces with mainMod + scroll + # bind = $mod, mouse_down, workspace, e+1 + # bind = $mod, mouse_up, workspace, e-1 + ]; + # Move/resize windows with mainMod + LMB/RMB and dragging + bindm = [ + "$mod, mouse:272, movewindow" + "$mod, mouse:273, resizewindow" + ]; + }; + }; +} diff --git a/home/modules/wm/hyprland/cnst/rules.nix b/home/modules/wm/hyprland/cnst/rules.nix new file mode 100644 index 00000000..a8640dfa --- /dev/null +++ b/home/modules/wm/hyprland/cnst/rules.nix @@ -0,0 +1,56 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.cnst.rules; +in { + options = { + modules.wm.hyprland.cnst.rules.enable = mkEnableOption "Enables window rule settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + # CALCURSE SETTINGS + windowrulev2 = [ + "float,initialTitle:(floatcal)" + "size 843 650,initialTitle:(floatcal)" + "move 100%-w-20 40,initialTitle:(floatcal)" + #windowrulev2 = move 1708 32,class:(floatcal) + + # RANGER/NNN SETTINGS + "float,class:(floatranger)" + "float,class:(floatnnn)" + #windowrulev2 = size 843 650,class:(floatranger) + #windowrulev2 = move 1708 32,class:(floatranger) + #windowrulev2 = move 1708 32;size 843 650;dimaround;float,class:^(kitty)$,title:^(kitty)$ + # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + "suppressevent maximize, class:.* # You'll probably like this." + #windowrulev2 = noshadow, floating:0 + "float,class:^(org.keepassxc.KeePassXC)$" + "center,class:^(org.keepassxc.KeePassXC)$" + "float,class:^(imv)$" + "float,class:^(com.github.hluk.copyq)$" + "float,class:^(blueman-manager)$" + "center,class:^(nwg-look)$" + "float,class:^(nwg-look)$" + "float,class:^(Lxappearance)$" + "float,class:(pavucontrol)$" + "move 100%-w-20 40,class:(pavucontrol)$" + "float,class:^(polkit-gnome-authentication-agent-1)$" + "float,class:^(org.gnome.Calculator)$" + "size 741 585,class:(pavucontrol)$" + "float,class:^(cnst.test)$" + "float,class:^(org.corectrl.CoreCtrl)$" + "float,class:^(feh)$" + "float,class:^(com.example.gtk-adieux)$" + ]; + windowrule = [ + "center, ^(xarchiver)$" + "float, ^(xarchiver)$" + "float, ^(org.gnome.FileRoller)$" + "float, ^(org.freedesktop.impl.portal.desktop.kde)$" + ]; + }; + }; +} diff --git a/home/modules/wm/hyprland/cnst/startup.nix b/home/modules/wm/hyprland/cnst/startup.nix new file mode 100644 index 00000000..abb2da46 --- /dev/null +++ b/home/modules/wm/hyprland/cnst/startup.nix @@ -0,0 +1,32 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.cnst.startup; +in { + options = { + modules.wm.hyprland.cnst.startup.enable = mkEnableOption "Enables startup settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + exec-once = [ + # STARTUP + # exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + "systemctl --user start polkit-gnome-authentication-agent-1" + # exec-once = lxqt-policykit-agent & + "waybar" + "pamixer --set-volume 50" + "blueman-applet & udiskie -Nt" + "nm-applet --indicator" + "mullvad-vpn" + # exec-once = swaybg -i ~/media/images/wallpaper.png + "wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'" + # exec-once = hyprctl dispatch exec "sleep 4s && copyq --start-server" + "hyprctl dispatch exec 'sleep 5s && keepassxc'" + "hyprctl dispatch exec 'sleep 3s && solaar -w hide'" + ]; + }; + }; +} diff --git a/home/modules/wm/hyprland/default.nix b/home/modules/wm/hyprland/default.nix new file mode 100644 index 00000000..4f8afedd --- /dev/null +++ b/home/modules/wm/hyprland/default.nix @@ -0,0 +1,7 @@ +{userModules, ...}: { + imports = [ + "${userModules}/wm/hyprland/cnst" + "${userModules}/wm/hyprland/toothpick" + # "${userModules}/wm/hyprland/adam" + ]; +} diff --git a/home/modules/wm/hyprland/toothpick/appearance.nix b/home/modules/wm/hyprland/toothpick/appearance.nix new file mode 100644 index 00000000..c55e707f --- /dev/null +++ b/home/modules/wm/hyprland/toothpick/appearance.nix @@ -0,0 +1,60 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.toothpick.appearance; +in { + options = { + modules.wm.hyprland.toothpick.appearance.enable = mkEnableOption "Enables appearance settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + general = { + gaps_in = 2; + gaps_out = 4; + border_size = 3; + #col.active_border = rgba(33ccffee) rgba(00ff99ee) 45deg + #col.inactive_border = rgba(595959aa) + "col.active_border" = "rgb(4c7a5d)"; # rgba(b16286ee) 45deg + "col.inactive_border" = "rgb(504945)"; + layout = "dwindle"; + allow_tearing = false; + resize_on_border = true; + }; + decoration = { + rounding = 0; + blur = { + enabled = true; + size = 8; + passes = 1; + vibrancy = 0.1696; + }; + drop_shadow = false; + shadow_range = 4; + shadow_render_power = 3; + # col.shadow = rgba(1a1a1aee) + }; + animations = { + enabled = true; + bezier = [ + "myBezier,0.05, 0.9, 0.1, 1.05" + ]; + animation = [ + "windows, 1, 3, myBezier" + "windowsOut, 1, 3, default, popin 80%" + "border, 1, 3, default" + "borderangle, 1, 8, default" + "fade, 1, 7, default" + "workspaces, 1, 3, default" + ]; + }; + dwindle = { + # See https://wiki.hyprland.org/Configuring/Dwindle-Layout/ for more + pseudotile = true; # master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below + preserve_split = true; # you probably want this + }; + }; + }; +} diff --git a/home/modules/wm/hyprland/toothpick/default.nix b/home/modules/wm/hyprland/toothpick/default.nix new file mode 100644 index 00000000..afe579a8 --- /dev/null +++ b/home/modules/wm/hyprland/toothpick/default.nix @@ -0,0 +1,44 @@ +{ + inputs, + config, + lib, + pkgs, + userModules, + ... +}: let + inherit (lib) mkIf mkEnableOption mkDefault; + cfg = config.modules.wm.hyprland.toothpick; +in { + imports = [ + "${userModules}/wm/hyprland/toothpick/appearance.nix" + "${userModules}/wm/hyprland/toothpick/inputs.nix" + "${userModules}/wm/hyprland/toothpick/keybinds.nix" + "${userModules}/wm/hyprland/toothpick/rules.nix" + "${userModules}/wm/hyprland/toothpick/startup.nix" + ]; + + options = { + modules.wm.hyprland.toothpick.enable = mkEnableOption "Enable Hyprland"; + }; + + config = mkIf cfg.enable { + modules.wm.hyprland.toothpick = { + appearance.enable = mkDefault cfg.enable; + inputs.enable = mkDefault cfg.enable; + keybinds.enable = mkDefault cfg.enable; + rules.enable = mkDefault cfg.enable; + startup.enable = mkDefault cfg.enable; + }; + wayland.windowManager.hyprland = { + enable = true; + package = inputs.hyprland.packages.${pkgs.system}.default; + systemd = { + variables = ["--all"]; + extraCommands = [ + "systemctl --user stop graphical-session.target" + "systemctl --user start hyprland-session.target" + ]; + }; + }; + }; +} diff --git a/home/modules/wm/hyprland/toothpick/inputs.nix b/home/modules/wm/hyprland/toothpick/inputs.nix new file mode 100644 index 00000000..f5401b76 --- /dev/null +++ b/home/modules/wm/hyprland/toothpick/inputs.nix @@ -0,0 +1,73 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.toothpick.inputs; +in { + options = { + modules.wm.hyprland.toothpick.inputs.enable = mkEnableOption "Enables input settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + monitor = [ + "monitor=DVI-D-1,1920x1080@144,auto,1" + ]; + env = [ + "QT_WAYLAND_DISABLE_WINDOWDECORATION,1" + ]; + + input = { + follow_mouse = 1; + accel_profile = "flat"; + sensitivity = 0; # -1.0 - 1.0, 0 means no modification. + + touchpad = { + natural_scroll = true; + disable_while_typing = true; + clickfinger_behavior = true; + scroll_factor = 0.5; + }; + }; + # Desktop keyboard + device = [ + { + name = "usb-hid-keyboard"; + kb_layout = "se"; + } + ]; + gestures = { + workspace_swipe = true; + workspace_swipe_distance = 400; + workspace_swipe_fingers = 3; + workspace_swipe_cancel_ratio = 0.2; + workspace_swipe_min_speed_to_force = 5; + workspace_swipe_direction_lock = true; + workspace_swipe_direction_lock_threshold = 10; + workspace_swipe_create_new = true; + }; + misc = { + vrr = 2; + mouse_move_enables_dpms = 1; + key_press_enables_dpms = 0; + force_default_wallpaper = 0; + disable_hyprland_logo = true; + disable_splash_rendering = true; + }; + xwayland = { + force_zero_scaling = false; + }; + render = { + explicit_sync = 2; + explicit_sync_kms = 2; + direct_scanout = false; + }; + cursor = { + no_hardware_cursors = true; + # no_break_fs_vrr = true; + # min_refresh_rate = 60; + }; + }; + }; +} diff --git a/home/modules/wm/hyprland/toothpick/keybinds.nix b/home/modules/wm/hyprland/toothpick/keybinds.nix new file mode 100644 index 00000000..3d0cfb80 --- /dev/null +++ b/home/modules/wm/hyprland/toothpick/keybinds.nix @@ -0,0 +1,116 @@ +{ + lib, + config, + pkgs, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.toothpick.keybinds; +in { + options = { + modules.wm.hyprland.toothpick.keybinds.enable = mkEnableOption "Enables keybind settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + "$terminal" = "foot"; + "$fileManager" = "thunar"; + "$passwordManager" = "keepassxc"; + "$menu" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; + "$menuw" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; + "$browser" = "firefox"; + "$browserinc" = "firefox --private-window"; + "$ranger" = "rangerscript"; + + # See https://wiki.hyprland.org/Configuring/Keywords/ for more + "$mod" = "ALT_L"; + + bind = let + grimblast = lib.getExe pkgs.grimblast; + tesseract = lib.getExe pkgs.tesseract; + notify-send = lib.getExe' pkgs.libnotify "notify-send"; + in [ + # Custom binds + "$mod SHIFT, B, exec, pkill -SIGUSR2 waybar" # Reload waybar + + # Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more + "$mod, A, exec, pkill -SIGUSR1 waybar" + "$mod, T, exec, $terminal" + "$mod, W, exec, $browser" + "$mod, K, exec, $passwordManager" + "$mod SHIFT, W, exec, $browserinc" + "$mod, Q, killactive," + #bind = $mod, M, exec, hyprctl dispatch exit + #bind = $mod, E, exec, $fileManager + "$mod, E, exec, $fileManager" + "$mod SHIFT, E, exec, $ranger" + "$mod, F, fullscreen," + "$mod SHIFT, F, togglefloating," + "$mod, SPACE, exec, $menu" + "$mod, P, pseudo," # dwindle + "$mod, J, togglesplit," # dwindle + "$mod, C, exec, hyprctl dispatch exec copyq toggle" + "$mod, TAB, exec, $menuw" + + # Move focus with mainMod + arrow keys + "$mod, left, movefocus, l" + "$mod, right, movefocus, r" + "$mod, up, movefocus, u" + "$mod, down, movefocus, d" + + # Switch workspaces with mainMod + [0-9] + "$mod, 1, workspace, 1" + "$mod, 2, workspace, 2" + "$mod, 3, workspace, 3" + "$mod, 4, workspace, 4" + "$mod, 5, workspace, 5" + "$mod, 6, workspace, 6" + "$mod, 7, workspace, 7" + "$mod, 8, workspace, 8" + "$mod, 9, workspace, 9" + "$mod, 0, workspace, 10" + + # Move active window to a workspace with mainMod + SHIFT + [0-9] + "$mod SHIFT, 1, movetoworkspace, 1" + "$mod SHIFT, 2, movetoworkspace, 2" + "$mod SHIFT, 3, movetoworkspace, 3" + "$mod SHIFT, 4, movetoworkspace, 4" + "$mod SHIFT, 5, movetoworkspace, 5" + "$mod SHIFT, 6, movetoworkspace, 6" + "$mod SHIFT, 7, movetoworkspace, 7" + "$mod SHIFT, 8, movetoworkspace, 8" + "$mod SHIFT, 9, movetoworkspace, 9" + "$mod SHIFT, 0, movetoworkspace, 10" + + # Laptop controls + ",XF86AudioLowerVolume, exec, pamixer -d 5" + ",XF86AudioRaiseVolume, exec, pamixer -i 5" + ",XF86AudioMute, exec, pamixer -m" + ",XF86AudioMicMute, exec, pactl -- set-source-mute 0 toggle" + ",XF86MonBrightnessDown, exec, brightnessctl s 10%-" + ",XF86MonBrightnessUp, exec, brightnessctl s +10%" + + "$mod, XF86MonBrightnessUp, exec, hyprctl dispatch dpms on" + "$mod, XF86MonBrightnessDown, exec, hyprctl dispatch dpms off" + + # Screenshotting + ",Print,exec,${grimblast} --notify --freeze copysave area" + "SHIFT,Print,exec,${grimblast} --notify --freeze copysave output" + # To OCR + "ALT,Print,exec,${grimblast} --freeze save area - | ${tesseract} - - | wl-copy && ${notify-send} -t 3000 'OCR result copied to buffer'" + + # Example special workspace (scratchpad) + "$mod, S, togglespecialworkspace, magic" + "$mod SHIFT, S, movetoworkspace, special:magic" + + # Scroll through existing workspaces with mainMod + scroll + # bind = $mod, mouse_down, workspace, e+1 + # bind = $mod, mouse_up, workspace, e-1 + ]; + # Move/resize windows with mainMod + LMB/RMB and dragging + bindm = [ + "$mod, mouse:272, movewindow" + "$mod, mouse:273, resizewindow" + ]; + }; + }; +} diff --git a/home/modules/wm/hyprland/toothpick/rules.nix b/home/modules/wm/hyprland/toothpick/rules.nix new file mode 100644 index 00000000..15309aea --- /dev/null +++ b/home/modules/wm/hyprland/toothpick/rules.nix @@ -0,0 +1,53 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.toothpick.rules; +in { + options = { + modules.wm.hyprland.toothpick.rules.enable = mkEnableOption "Enables window rule settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + # CALCURSE SETTINGS + windowrulev2 = [ + "float,initialTitle:(floatcal)" + "size 843 650,initialTitle:(floatcal)" + "move 100%-w-20 40,initialTitle:(floatcal)" + #windowrulev2 = move 1708 32,class:(floatcal) + + # RANGER/NNN SETTINGS + "float,class:(floatranger)" + "float,class:(floatnnn)" + #windowrulev2 = size 843 650,class:(floatranger) + #windowrulev2 = move 1708 32,class:(floatranger) + #windowrulev2 = move 1708 32;size 843 650;dimaround;float,class:^(kitty)$,title:^(kitty)$ + # See https://wiki.hyprland.org/Configuring/Window-Rules/ for more + "suppressevent maximize, class:.* # You'll probably like this." + #windowrulev2 = noshadow, floating:0 + "float,class:^(org.keepassxc.KeePassXC)$" + "center,class:^(org.keepassxc.KeePassXC)$" + "float,class:^(imv)$" + "float,class:^(com.github.hluk.copyq)$" + "float,class:^(blueman-manager)$" + "center,class:^(nwg-look)$" + "float,class:^(nwg-look)$" + "float,class:^(Lxappearance)$" + "float,class:(pavucontrol)$" + "move 100%-w-20 40,class:(pavucontrol)$" + "float,class:^(polkit-gnome-authentication-agent-1)$" + "float,class:^(org.gnome.Calculator)$" + "size 741 585,class:(pavucontrol)$" + "float,class:^(org.corectrl.CoreCtrl)$" + "float,class:^(feh)$" + ]; + windowrule = [ + "center, ^(xarchiver)$" + "float, ^(xarchiver)$" + "float, ^(org.gnome.FileRoller)$" + ]; + }; + }; +} diff --git a/home/modules/wm/hyprland/toothpick/startup.nix b/home/modules/wm/hyprland/toothpick/startup.nix new file mode 100644 index 00000000..e29da8f9 --- /dev/null +++ b/home/modules/wm/hyprland/toothpick/startup.nix @@ -0,0 +1,32 @@ +{ + lib, + config, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.hyprland.toothpick.startup; +in { + options = { + modules.wm.hyprland.toothpick.startup.enable = mkEnableOption "Enables startup settings in Hyprland"; + }; + config = mkIf cfg.enable { + wayland.windowManager.hyprland.settings = { + exec-once = [ + # STARTUP + # exec-once = systemctl --user import-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP + "systemctl --user start polkit-gnome-authentication-agent-1" + # exec-once = lxqt-policykit-agent & + "waybar" + "pamixer --set-volume 50" + "blueman-applet & udiskie -Nt" + "nm-applet --indicator" + "mullvad-vpn" + # exec-once = swaybg -i ~/media/images/wallpaper.png + "wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'" + # exec-once = hyprctl dispatch exec "sleep 4s && copyq --start-server" + "hyprctl dispatch exec 'sleep 5s && keepassxc'" + "hyprctl dispatch exec 'sleep 3s && solaar -w hide'" + ]; + }; + }; +} diff --git a/home/modules/wm/utils/hypridle/default.nix b/home/modules/wm/utils/hypridle/default.nix new file mode 100644 index 00000000..bdd11237 --- /dev/null +++ b/home/modules/wm/utils/hypridle/default.nix @@ -0,0 +1,36 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.utils.hypridle; +in { + options = { + modules.wm.utils.hypridle.enable = mkEnableOption "Enables hypridle"; + }; + config = mkIf cfg.enable { + services.hypridle = { + enable = true; + settings = { + general = { + lock_cmd = "hyprlock"; + before_sleep_cmd = "$lock_cmd"; + after_sleep_cmd = "hyprctl dispatch dpms on"; + }; + + listener = [ + { + timeout = 900; # 15mins + on-timeout = "hyprlock"; + } + { + timeout = 1200; # 20mins + on-timeout = "hyprctl dispatch dpms off"; + on-resume = "hyprctl dispatch dpms on"; + } + ]; + }; + }; + }; +} diff --git a/home/modules/wm/utils/hyprlock/default.nix b/home/modules/wm/utils/hyprlock/default.nix new file mode 100644 index 00000000..dbead0b3 --- /dev/null +++ b/home/modules/wm/utils/hyprlock/default.nix @@ -0,0 +1,90 @@ +{ + inputs, + pkgs, + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.utils.hyprlock; +in { + options = { + modules.wm.utils.hyprlock.enable = mkEnableOption "Enables hyprlock"; + }; + config = mkIf cfg.enable { + programs.hyprlock = { + enable = true; + package = inputs.hyprlock.packages.${pkgs.system}.hyprlock; + settings = { + general = { + disable_loading_bar = true; + hide_cursor = true; + no_fade_in = true; + no_fade_out = true; + ignore_empty_input = true; + immediate_render = true; + }; + background = [ + { + monitor = ""; + path = "~/media/images/dunes.png"; + } + ]; + input-field = [ + { + monitor = ""; + size = "200, 50"; + outline_thickness = 0; + dots_size = 0.1; + dots_spacing = 0.3; + dots_center = true; + dots_rounding = -1; + outer_color = "rgba(0,0,0,0)"; + inner_color = "rgba(0,0,0,0)"; + font_color = "rgba(FFFFFFFF)"; + fade_on_empty = false; + fade_timeout = 0; + fail_text = ""; + fail_transition = 0; + placeholder_text = ""; + hide_input = false; + rounding = 0; + check_color = "rgba(0,0,0,0)"; + fail_color = "rgba(0,0,0,0)"; + position = "0, 20"; + halign = "center"; + valign = "center"; + } + ]; + label = [ + # date + { + monitor = ""; + text = "cmd[update:3600000] date +'%A, %B %d'"; + shadow_passes = 1; + shadow_boost = 0.5; + color = "rgba(FFFFFFFF)"; + font_size = 25; + font_family = "Input Mono Compressed"; + position = "0, 230"; + halign = "center"; + valign = "center"; + } + # clock + { + monitor = ""; + text = "cmd[update:1000] echo '$TIME'"; + shadow_passes = 1; + shadow_boost = 0.5; + color = "rgba(FFFFFFFF)"; + font_size = 85; + font_family = "Input Mono Compressed"; + position = "0, 300"; + halign = "center"; + valign = "center"; + } + ]; + }; + }; + }; +} diff --git a/home/modules/wm/utils/hyprpaper/default.nix b/home/modules/wm/utils/hyprpaper/default.nix new file mode 100644 index 00000000..c0a9a281 --- /dev/null +++ b/home/modules/wm/utils/hyprpaper/default.nix @@ -0,0 +1,45 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkIf mkEnableOption; + cfg = config.modules.wm.utils.hyprpaper; +in { + options = { + modules.wm.utils.hyprpaper.enable = mkEnableOption "Enables hyprpaper"; + }; + config = mkIf cfg.enable { + services.hyprpaper = { + enable = true; + settings = { + ipc = "on"; + splash = false; + splash_offset = 2.0; + + preload = [ + "~/media/images/nix.png" + "~/media/images/stacks.png" + "~/media/images/ship.png" + "~/media/images/cabin.png" + "~/media/images/dunes.png" + "~/media/images/globe.png" + "~/media/images/space.jpg" + "~/media/images/galaxy.png" + "~/media/images/deathstar.png" + "~/media/images/trollskog.png" + ]; + + wallpaper = [ + # cnix + "DP-3,~/media/images/dunes.png" + # adampad + "eDP-1,~/media/images/dunes.png" + # toothpc + "DVI-D-1,~/media/images/dunes.png" + # "DP-1,/share/wallpapers/cat_pacman.png" + ]; + }; + }; + }; +} diff --git a/home/opt/ags/default.nix b/home/opt/ags/default.nix deleted file mode 100644 index e2b712cc..00000000 --- a/home/opt/ags/default.nix +++ /dev/null @@ -1,52 +0,0 @@ -{ - inputs, - pkgs, - lib, - config, - ... -}: let - requiredDeps = with pkgs; [ - bash - bun - coreutils - dart-sass - gawk - imagemagick - procps - ripgrep - util-linux - ]; - - guiDeps = with pkgs; [ - gnome.gnome-control-center - mission-center - overskride - wlogout - ]; - - dependencies = requiredDeps ++ guiDeps; - - cfg = config.programs.ags; -in { - imports = [ - inputs.ags.homeManagerModules.default - ]; - - programs.ags.enable = true; - - systemd.user.services.ags = { - Unit = { - Description = "Aylur's Gtk Shell"; - PartOf = [ - "tray.target" - "graphical-session.target" - ]; - }; - Service = { - Environment = "PATH=/run/wrappers/bin:${lib.makeBinPath dependencies}"; - ExecStart = "${cfg.package}/bin/ags"; - Restart = "on-failure"; - }; - Install.WantedBy = ["graphical-session.target"]; - }; -} diff --git a/home/opt/alacritty/default.nix b/home/opt/alacritty/default.nix deleted file mode 100644 index ff1f2c35..00000000 --- a/home/opt/alacritty/default.nix +++ /dev/null @@ -1,75 +0,0 @@ -{ - programs.alacritty = { - enable = true; - settings = { - # Default colors - colors.primary = { - background = "#282828"; - foreground = "#d4be98"; - }; - colors = { - # Normal colors - normal = { - black = "#3c3836"; - red = "#ea6962"; - green = "#a9b665"; - yellow = "#d8a657"; - blue = "#7daea3"; - magenta = "#d3869b"; - cyan = "#89b482"; - white = "#d4be98"; - }; - # Bright colors (same as normal colors) - bright = { - black = "#3c3836"; - red = "#ea6962"; - green = "#a9b665"; - yellow = "#d8a657"; - blue = "#7daea3"; - magenta = "#d3869b"; - cyan = "#89b482"; - white = "#d4be98"; - }; - }; - font = { - size = 10; - normal = { - family = "Input Mono Compressed"; - style = "Light"; - }; - bold = { - family = "Input Mono Compressed"; - style = "Regular"; - }; - italic = { - family = "Input Mono Compressed"; - style = "Italic"; - }; - }; - keyboard.bindings = [ - { - action = "Copy"; - key = "C"; - mods = "Command"; - } - { - action = "Paste"; - key = "V"; - mods = "Command"; - } - ]; - window = { - dynamic_title = true; - opacity = 0.9; - padding = { - x = 5; - y = 5; - }; - dimensions = { - columns = 120; - lines = 35; - }; - }; - }; - }; -} diff --git a/home/opt/anyrun/default.nix b/home/opt/anyrun/default.nix deleted file mode 100644 index 7859bf4b..00000000 --- a/home/opt/anyrun/default.nix +++ /dev/null @@ -1,15 +0,0 @@ -{ - pkgs, - inputs, - ... -}: { - imports = [ - inputs.anyrun.homeManagerModules.default - ]; - - programs.anyrun = { - enable = true; - - #extraCss = builtins.readFile (./. + "/style-dark.css"); - }; -} diff --git a/home/opt/browsers/chromium/default.nix b/home/opt/browsers/chromium/default.nix deleted file mode 100644 index 7a4aaee7..00000000 --- a/home/opt/browsers/chromium/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{pkgs, ...}: { - programs.chromium = { - enable = true; - package = pkgs.ungoogled-chromium; - extensions = [ - "gebbhagfogifgggkldgodflihgfeippi" # return youtube dislike - "mnjggcdmjocbbbhaepdhchncahnbgone" # sponsorblock for youtube - "ponfpcnoihfmfllpaingbgckeeldkhle" # enhancer for youtube - "cjpalhdlnbpafiamejdnhcphjbkeiagm" # ublock origin - ]; - }; -} diff --git a/home/opt/browsers/firefox/default.nix b/home/opt/browsers/firefox/default.nix deleted file mode 100644 index b58cd998..00000000 --- a/home/opt/browsers/firefox/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ - inputs, - pkgs, - ... -}: { - programs.firefox = { - enable = true; - package = inputs.firefox-nightly.packages.${pkgs.system}.firefox-nightly-bin; - profiles = { - default = { - search = { - force = true; - default = "DuckDuckGo"; - privateDefault = "DuckDuckGo"; - order = ["DuckDuckGo" "Google"]; - }; - bookmarks = {}; - extensions = with inputs.firefox-addons.packages.${pkgs.system}; [ - ublock-origin - sponsorblock - clearurls - return-youtube-dislikes - # enhancer-for-youtube # unfree - ]; - settings = { - "apz.overscroll.enabled" = true; - "browser.aboutConfig.showWarning" = false; - "general.autoScroll" = true; - "toolkit.legacyUserProfileCustomizations.stylesheets" = true; - }; - }; - }; - }; -} diff --git a/home/opt/default.nix b/home/opt/default.nix deleted file mode 100644 index 688e935e..00000000 --- a/home/opt/default.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ - imports = [ - # shared apps - ./discord - ./utility - ./alacritty - ./foot - ./kitty - ./yazi - ]; -} diff --git a/home/opt/discord/default.nix b/home/opt/discord/default.nix deleted file mode 100644 index ee39bcc0..00000000 --- a/home/opt/discord/default.nix +++ /dev/null @@ -1,44 +0,0 @@ -{pkgs, ...}: { - home.packages = with pkgs; [vesktop]; - - xdg.configFile."vesktop/themes/base16.css".text = - /* - css - */ - '' - /** - * @name Material Gruvbox - * @. - * @author Costeer - * @version 1.5.0 - * @website https://github.com/Costeer - * @source https://github.com/Costeer/Gruvbox-Material-Themes - */ - - @import url(https://mwittrien.github.io/BetterDiscordAddons/Themes/DiscordRecolor/DiscordRecolor.css); - - :root { - --accentcolor: 137, 180, 130; - --accentcolor2: 211, 134, 155; - --linkcolor: 125, 174, 163; - --mentioncolor: 211, 134, 155; - --textbrightest: 221, 199, 161; - --textbrighter: 212, 190, 152; - --textbright: 168, 153, 132; - --textdark: 146, 131, 116; - --textdarker: 146, 131, 116; - --textdarkest: 80, 80, 80; - --font: Input Sans Narrow; - --main-font: Input Sans Narrow; - --code-font: Input Mono Compressed; - --backgroundaccent: 80, 73, 69; - --backgroundprimary: 60, 56, 54; - --backgroundsecondary: 50, 48, 47; - --backgroundsecondaryalt: 40, 40, 40; - --backgroundtertiary: 29, 32, 33; - --backgroundfloating: 20, 22, 23; - --settingsicons: 1; - } - -''; -} diff --git a/home/opt/foot/default.nix b/home/opt/foot/default.nix deleted file mode 100644 index 8a01f014..00000000 --- a/home/opt/foot/default.nix +++ /dev/null @@ -1,233 +0,0 @@ -{pkgs, ...}: { - programs.foot = { - enable = true; - package = pkgs.foot; - settings = { - # -*- conf -*- - - # shell=$SHELL (if set, otherwise user's default shell from /etc/passwd) - # term=foot (or xterm-256color if built with -Dterminfo=disabled) - # login-shell=no - - # app-id=foot # globally set wayland app-id. Default values are "foot" and "footclient" for desktop and server mode - # title=foot - # locked-title=no - - # font=monospace:size=8 - # font-bold= - # font-italic= - # font-bold-italic= - # font-size-adjustment=0.5 - # line-height= - # letter-spacing=0 - # horizontal-letter-offset=0 - # vertical-letter-offset=0 - # underline-offset= - # underline-thickness= - # box-drawings-uses-font-glyphs=no - # dpi-aware=no - - # initial-window-size-pixels=700x500 # Or, - # initial-window-size-chars= - # initial-window-mode=windowed - # pad=0x0 # optionally append 'center' - # resize-by-cells=yes - # resize-delay-ms=100 - - # notify=notify-send -a ${app-id} -i ${app-id} ${title} ${body} - - # bold-text-in-bright=no - # word-delimiters=,│`|:"'()[]{}<> - # selection-target=primary - # workers= - # utmp-helper=/usr/lib/utempter/utempter # When utmp backend is ‘libutempter’ (Linux) - # utmp-helper=/usr/libexec/ulog-helper # When utmp backend is ‘ulog’ (FreeBSD) - - main = { - font = "Input Mono Compressed:size=12"; - box-drawings-uses-font-glyphs = "yes"; - dpi-aware = "no"; - pad = "3x1"; - }; - - environment = { - # name=value - }; - - bell = { - urgent = "no"; - notify = "no"; - visual = "no"; - command = "no"; - command-focused = "no"; - }; - - scrollback = { - lines = "100"; - # multiplier=3.0 - # indicator-position=relative - # indicator-format="" - }; - - url = { - # launch=xdg-open ${url} - # label-letters=sadfjklewcmpgh - # osc8-underline=url-mode - # protocols=http, https, ftp, ftps, file, gemini, gopher - # uri-characters=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.,~:;/?#@!$&%*+="'()[] - }; - - cursor = { - style = "block"; - # color= - blink = "no"; - # blink-rate=500 - # beam-thickness=1.5 - # underline-thickness= - }; - - mouse = { - hide-when-typing = "no"; - # alternate-scroll-mode=yes - }; - - touch = { - # long-press-delay=400 - }; - - colors = { - alpha = "0.9"; - background = "282828"; - foreground = "ebdbb2"; - regular0 = "282828"; - regular1 = "cc241d"; - regular2 = "98971a"; - regular3 = "d79921"; - regular4 = "458588"; - regular5 = "b16286"; - regular6 = "689d6a"; - regular7 = "a89984"; - bright0 = "928374"; - bright1 = "fb4934"; - bright2 = "b8bb26"; - bright3 = "fabd2f"; - bright4 = "83a598"; - bright5 = "d3869b"; - bright6 = "8ec07c"; - bright7 = "ebdbb2"; - }; - - csd = { - # preferred=server - # size=26 - # font= - # color= - # hide-when-maximized=no - # double-click-to-maximize=yes - # border-width=0 - # border-color= - # button-width=26 - # button-color= - # button-minimize-color= - # button-maximize-color= - # button-close-color= - }; - - key-bindings = { - # scrollback-up-page=Shift+Page_Up - # scrollback-up-half-page=none - # scrollback-up-line=none - # scrollback-down-page=Shift+Page_Down - # scrollback-down-half-page=none - # scrollback-down-line=none - # scrollback-home=none - # scrollback-end=none - # clipboard-copy=Control+Shift+c XF86Copy - # clipboard-paste=Control+Shift+v XF86Paste - # primary-paste=Shift+Insert - # search-start=Control+Shift+r - # font-increase=Control+plus Control+equal Control+KP_Add - # font-decrease=Control+minus Control+KP_Subtract - # font-reset=Control+0 Control+KP_0 - # spawn-terminal=Control+Shift+n - # minimize=none - # maximize=none - # fullscreen=none - # pipe-visible=[sh -c "xurls | fuzzel | xargs -r firefox"] none - # pipe-scrollback=[sh -c "xurls | fuzzel | xargs -r firefox"] none - # pipe-selected=[xargs -r firefox] none - # pipe-command-output=[wl-copy] none # Copy last command's output to the clipboard - # show-urls-launch=Control+Shift+o - # show-urls-copy=none - # show-urls-persistent=none - # prompt-prev=Control+Shift+z - # prompt-next=Control+Shift+x - # unicode-input=Control+Shift+u - # noop=none - }; - - search-bindings = { - # cancel=Control+g Control+c Escape - # commit=Return - # find-prev=Control+r - # find-next=Control+s - # cursor-left=Left Control+b - # cursor-left-word=Control+Left Mod1+b - # cursor-right=Right Control+f - # cursor-right-word=Control+Right Mod1+f - # cursor-home=Home Control+a - # cursor-end=End Control+e - # delete-prev=BackSpace - # delete-prev-word=Mod1+BackSpace Control+BackSpace - # delete-next=Delete - # delete-next-word=Mod1+d Control+Delete - # extend-char=Shift+Right - # extend-to-word-boundary=Control+w Control+Shift+Right - # extend-to-next-whitespace=Control+Shift+w - # extend-line-down=Shift+Down - # extend-backward-char=Shift+Left - # extend-backward-to-word-boundary=Control+Shift+Left - # extend-backward-to-next-whitespace=none - # extend-line-up=Shift+Up - # clipboard-paste=Control+v Control+Shift+v Control+y XF86Paste - # primary-paste=Shift+Insert - # unicode-input=none - # quit=none - # scrollback-up-page=Shift+Page_Up - # scrollback-up-half-page=none - # scrollback-up-line=none - # scrollback-down-page=Shift+Page_Down - # scrollback-down-half-page=none - # scrollback-down-line=none - # scrollback-home=none - # scrollback-end=none - }; - - url-bindings = { - # cancel=Control+g Control+c Control+d Escape - # toggle-url-visible=t - }; - - text-bindings = { - # \x03=Mod4+c # Map Super+c -> Ctrl+c - }; - - mouse-bindings = { - # scrollback-up-mouse=BTN_BACK - # scrollback-down-mouse=BTN_FORWARD - # selection-override-modifiers=Shift - # primary-paste=BTN_MIDDLE - # select-begin=BTN_LEFT - # select-begin-block=Control+BTN_LEFT - # select-extend=BTN_RIGHT - # select-extend-character-wise=Control+BTN_RIGHT - # select-word=BTN_LEFT-2 - # select-word-whitespace=Control+BTN_LEFT-2 - # select-quote = BTN_LEFT-3 - # select-row=BTN_LEFT-4 - }; - - # vim: ft=dosini - }; - }; -} diff --git a/home/opt/kitty/default.nix b/home/opt/kitty/default.nix deleted file mode 100644 index 2eb770bc..00000000 --- a/home/opt/kitty/default.nix +++ /dev/null @@ -1,94 +0,0 @@ -{ - programs.kitty = { - enable = true; - settings = { - # include = "theme.conf"; - enable_audio_bell = false; - open_url_with = "firefox-nightly"; - font_family = "Input Mono Compressed Extra Light"; - bold_font = "auto"; - italic_font = "auto"; - bold_italic_font = "auto"; - font_size = "11.0"; - cursor_blink_interval = 0; - copy_on_select = "clipboard"; - background_opacity = "0.95"; - background_blur = "32"; - window_padding_width = 3; - # tab_bar_min_tabs = 1; - # tab_bar_edge = "bottom"; - tab_bar_style = "separator"; - tab_bar_margin_width = "0.0"; - tab_bar_margin_height = "0.0 0.0"; - active_tab_font_style = "normal"; - inactive_tab_font_style = "normal"; - # tab_title_max_length = 30; - # # colors - # active_tab_foreground = "#32302f"; - # active_tab_background = "#282828"; - # inactive_tab_foreground = "#282828"; - # inactive_tab_background = "#504945"; - tab_bar_background = "#504945"; - tab_bar_min_tabs = 1; - tab_bar_edge = "bottom"; - # tab_powerline_style = "slanted"; - }; - extraConfig = '' - kitty_mod shift+ctrl - map kitty_mod+q close_tab - map ctrl+shift+c copy_to_clipboard - map ctrl+shift+v paste_from_clipboard - tab_separator "" - tab_title_template "{fmt.fg._504945}{fmt.bg.default}▓{fmt.fg._282828}{fmt.bg.default}{index}{fmt.fg._282828}{fmt.bg._504945} {title[:15] + (title[15:] and '…')} {fmt.fg._504945}{fmt.bg.default}▓ " - active_tab_title_template "{fmt.fg._282828}{fmt.bg.default}▓{fmt.fg._A89984}{fmt.bg._282828}{fmt.fg._A89984}{fmt.bg._282828} {title[:40] + (title[40:] and '…')} {fmt.fg._282828}{fmt.bg.default}▓ " - - # vim:ft=kitty - ## name: Gruvbox Material Dark Cnst - ## author: Sainnhe Park - ## license: MIT - ## upstream: https://raw.githubusercontent.com/rsaihe/gruvbox-material-kitty/main/colors/gruvbox-material-dark-medium.conf - ## blurb: A modified version of Gruvbox with softer contrasts - - background #282828 - foreground #d4be98 - - selection_background #d4be98 - selection_foreground #282828 - - cursor #a89984 - cursor_text_color background - - # Black - color0 #665c54 - color8 #928374 - - # Red - color1 #ea6962 - color9 #ea6962 - - # Green - color2 #a9b665 - color10 #a9b665 - - # Yellow - color3 #e78a4e - color11 #d8a657 - - # Blue - color4 #7daea3 - color12 #7daea3 - - # Magenta - color5 #d3869b - color13 #d3869b - - # Cyan - color6 #89b482 - color14 #89b482 - - # White - color7 #d4be98 - color15 #d4be98 - ''; - }; -} diff --git a/home/opt/lutris/default.nix b/home/opt/lutris/default.nix deleted file mode 100644 index 1e764433..00000000 --- a/home/opt/lutris/default.nix +++ /dev/null @@ -1,12 +0,0 @@ -{pkgs, ...}: { - home.packages = [ - (pkgs.lutris.override { - extraPkgs = p: [ - p.wineWowPackages.staging - p.pixman - p.libjpeg - p.gnome.zenity - ]; - }) - ]; -} diff --git a/home/opt/mangohud/default.nix b/home/opt/mangohud/default.nix deleted file mode 100644 index c6bea863..00000000 --- a/home/opt/mangohud/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - programs.mangohud = { - enable = true; - settings = { - full = true; - }; - }; -} diff --git a/home/opt/rofi/default.nix b/home/opt/rofi/default.nix deleted file mode 100644 index 0c4dbaf3..00000000 --- a/home/opt/rofi/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{pkgs, ...}: { - programs.rofi = { - enable = true; - package = pkgs.rofi-wayland-unwrapped; - configPath = "home/cnst/.config/rofi/config.rasi"; - font = "Rec Mono Linear 11"; - }; -} diff --git a/home/opt/vscode/default.nix b/home/opt/vscode/default.nix deleted file mode 100644 index 39292b75..00000000 --- a/home/opt/vscode/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - programs.vscode = { - enable = true; - }; -} diff --git a/home/opt/yazi/default.nix b/home/opt/yazi/default.nix deleted file mode 100644 index 35a05243..00000000 --- a/home/opt/yazi/default.nix +++ /dev/null @@ -1,42 +0,0 @@ -{ - config, - pkgs, - ... -}: { - imports = [ - ./theme - ]; - - # general file info - home.packages = [pkgs.exiftool]; - - # yazi file manager - programs.yazi = { - enable = true; - - package = pkgs.yazi; - - enableBashIntegration = config.programs.bash.enable; - enableZshIntegration = config.programs.zsh.enable; - - settings = { - manager = { - layout = [1 4 3]; - sort_by = "alphabetical"; - sort_sensitive = true; - sort_reverse = false; - sort_dir_first = true; - linemode = "none"; - show_hidden = false; - show_symlink = true; - }; - - preview = { - tab_size = 2; - max_width = 600; - max_height = 900; - cache_dir = config.xdg.cacheHome; - }; - }; - }; -} diff --git a/home/opt/zellij/default.nix b/home/opt/zellij/default.nix deleted file mode 100644 index cc6c8d1f..00000000 --- a/home/opt/zellij/default.nix +++ /dev/null @@ -1,77 +0,0 @@ -{ - programs.zellij = { - enable = true; - enableZshIntegration = false; - }; - home.shellAliases = { - zr = "zellij run --"; - zrf = "zellij run --floating --"; - ze = "zellij edit"; - zef = "zellij edit --floating"; - }; - - xdg.configFile."zellij/config.kdl".text = '' - default_layout "compact" - mouse_mode true - copy_on_select true - copy_command "wl-copy" - simplified_ui false - scrollback_editor "/home/cnst/.nix-profile/bin/nvim" - pane_frames true - on_force_close "detach" - - ui { - pane_frames { - rounded_corners false - } - } - - keybinds { - normal { - bind "Alt m" { - LaunchPlugin "file:~/.config/zellij/plugins/monocle.wasm" { - in_place true - kiosk true - }; - SwitchToMode "Normal" - } - bind "Ctrl f" { - LaunchOrFocusPlugin "file:~/.config/zellij/plugins/monocle.wasm" { - floating true - } - SwitchToMode "Normal" - } - bind "Alt 1" { GoToTab 1;} - bind "Alt 2" { GoToTab 2;} - bind "Alt 3" { GoToTab 3;} - bind "Alt 4" { GoToTab 4;} - } - - shared_except "locked" { - bind "Ctrl y" { - LaunchOrFocusPlugin "file:~/.config/zellij/plugins/room.wasm" { - floating true - ignore_case true - } - } - } - unbind "Ctrl b" "Ctrl h" "Ctrl g" "Alt j" - } - - themes { - gruvbox-dark { - bg "#282828" - fg "#D5C4A1" - black "#3C3836" - red "#CC241D" - green "#98971A" - yellow "#D79921" - blue "#458588" - magenta "#B16286" - cyan "#689D6A" - white "#FBF1C7" - orange "#D65D0E" - } - } - ''; -} diff --git a/home/profiles/adam/default.nix b/home/profiles/adam/default.nix index 7b6fe14b..380c5e73 100644 --- a/home/profiles/adam/default.nix +++ b/home/profiles/adam/default.nix @@ -1,4 +1,9 @@ {pkgs, ...}: { + imports = [ + ./modules.nix + ./git.nix + ./shell.nix + ]; home = { username = "adam"; homeDirectory = "/home/adam"; diff --git a/home/usr/share/git/cnst/default.nix b/home/profiles/adam/git.nix similarity index 100% rename from home/usr/share/git/cnst/default.nix rename to home/profiles/adam/git.nix diff --git a/home/profiles/adam/modules.nix b/home/profiles/adam/modules.nix new file mode 100644 index 00000000..62cee7e5 --- /dev/null +++ b/home/profiles/adam/modules.nix @@ -0,0 +1,50 @@ +{ + modules = { + wm = { + hyprland = { + cnst.enable = true; + # toothpick.enable = false; + # adam.enable = false; + }; + utils = { + hypridle.enable = true; + hyprlock.enable = true; + hyprpaper.enable = true; + }; + }; + browsers = { + firefox.enable = true; + chromium.enable = false; + }; + devtools = { + neovim.enable = true; + vscode.enable = false; + }; + comm = { + discord.enable = true; + }; + gaming = { + lutris.enable = false; + mangohud.enable = false; + }; + terminal = { + alacritty.enable = true; + foot.enable = true; + kitty.enable = true; + zellij.enable = false; + }; + utils = { + ags.enable = false; + anyrun.enable = false; + rofi.enable = false; + waybar.enable = true; + yazi.enable = true; + }; + userd = { + sops.enable = true; + copyq.enable = true; + mako.enable = true; + udiskie.enable = true; + }; + }; +} diff --git a/home/usr/share/shell/adam/default.nix b/home/profiles/adam/shell.nix similarity index 89% rename from home/usr/share/shell/adam/default.nix rename to home/profiles/adam/shell.nix index e3898dc9..fe6376b8 100644 --- a/home/usr/share/shell/adam/default.nix +++ b/home/profiles/adam/shell.nix @@ -7,11 +7,12 @@ syntaxHighlighting.enable = true; shellAliases = { + nixclean = "sudo nix run .#cleanup-boot"; nixdev = "nix develop ~/.nix-config -c $SHELL"; nixconfig = "cd /home/adam/.nix-config/"; ll = "ls -l"; - nixupdate = "nh os switch -v -H adampad"; - nixup = "nh os switch -H adampad"; + nixupdate = "nh os switch -v -H adampad && sudo nix run .#cleanup-boot"; + nixup = "nh os switch -H adampad && sudo nix run .#cleanup-boot"; flakeupdate = "nh os switch -u -v -H adampad && sudo nix run .#cleanup-boot"; flakeup = "nh os switch -u -H adampad && sudo nix run .#cleanup-boot"; }; diff --git a/home/profiles/cnst/default.nix b/home/profiles/cnst/default.nix index 1e1f22fc..77c004f1 100644 --- a/home/profiles/cnst/default.nix +++ b/home/profiles/cnst/default.nix @@ -1,14 +1,14 @@ -{ - pkgs, - self, - ... -}: { +{pkgs, ...}: { + imports = [ + ./modules.nix + ./git.nix + ./shell.nix + ]; home = { username = "cnst"; homeDirectory = "/home/cnst"; stateVersion = "23.11"; extraOutputsToInstall = ["doc" "devdoc"]; - packages = with pkgs; [ # misc.gui virt-manager @@ -33,7 +33,7 @@ sessionVariables = { BROWSER = "firefox"; EDITOR = "nvim"; - TERM = "foot"; + TERM = "kitty"; STEAM_EXTRA_COMPAT_TOOLS_PATHS = "/home/cnst/.steam/root/compatibilitytools.d"; # proton and steam compat QT_QPA_PLATFORM = "wayland"; @@ -41,14 +41,13 @@ XDG_SESSION_TYPE = "wayland"; }; }; + # disable manuals as nmd fails to build often manual = { html.enable = false; json.enable = false; manpages.enable = false; }; - # age.secrets.secret1.file = "${self}/secrets/openai.age"; - # let HM manage itself when in standalone mode programs.home-manager.enable = true; } diff --git a/home/profiles/cnst/git.nix b/home/profiles/cnst/git.nix new file mode 100644 index 00000000..b1baad01 --- /dev/null +++ b/home/profiles/cnst/git.nix @@ -0,0 +1,7 @@ +{ + programs.git = { + enable = true; + userName = "cnst"; + userEmail = "adamhilmersson@gmail.com"; + }; +} diff --git a/home/profiles/cnst/modules.nix b/home/profiles/cnst/modules.nix new file mode 100644 index 00000000..62cee7e5 --- /dev/null +++ b/home/profiles/cnst/modules.nix @@ -0,0 +1,50 @@ +{ + modules = { + wm = { + hyprland = { + cnst.enable = true; + # toothpick.enable = false; + # adam.enable = false; + }; + utils = { + hypridle.enable = true; + hyprlock.enable = true; + hyprpaper.enable = true; + }; + }; + browsers = { + firefox.enable = true; + chromium.enable = false; + }; + devtools = { + neovim.enable = true; + vscode.enable = false; + }; + comm = { + discord.enable = true; + }; + gaming = { + lutris.enable = false; + mangohud.enable = false; + }; + terminal = { + alacritty.enable = true; + foot.enable = true; + kitty.enable = true; + zellij.enable = false; + }; + utils = { + ags.enable = false; + anyrun.enable = false; + rofi.enable = false; + waybar.enable = true; + yazi.enable = true; + }; + userd = { + sops.enable = true; + copyq.enable = true; + mako.enable = true; + udiskie.enable = true; + }; + }; +} diff --git a/home/usr/share/shell/cnst/default.nix b/home/profiles/cnst/shell.nix similarity index 89% rename from home/usr/share/shell/cnst/default.nix rename to home/profiles/cnst/shell.nix index 289b7d55..e5680536 100644 --- a/home/usr/share/shell/cnst/default.nix +++ b/home/profiles/cnst/shell.nix @@ -7,11 +7,12 @@ syntaxHighlighting.enable = true; shellAliases = { + nixclean = "sudo nix run .#cleanup-boot"; nixdev = "nix develop ~/.nix-config -c $SHELL"; nixconfig = "cd /home/cnst/.nix-config/"; ll = "ls -l"; - nixupdate = "nh os switch -v -H cnix"; - nixup = "nh os switch -H cnix"; + nixupdate = "nh os switch -v -H cnix && sudo nix run .#cleanup-boot"; + nixup = "nh os switch -H cnix && sudo nix run .#cleanup-boot"; flakeupdate = "nh os switch -u -v -H cnix && sudo nix run .#cleanup-boot"; flakeup = "nh os switch -u -H cnix && sudo nix run .#cleanup-boot"; }; diff --git a/home/profiles/toothpick/default.nix b/home/profiles/toothpick/default.nix index 23b99163..5f08543e 100644 --- a/home/profiles/toothpick/default.nix +++ b/home/profiles/toothpick/default.nix @@ -1,4 +1,9 @@ {pkgs, ...}: { + imports = [ + ./modules.nix + ./git.nix + ./shell.nix + ]; home = { username = "toothpick"; homeDirectory = "/home/toothpick"; diff --git a/home/usr/share/git/toothpick/default.nix b/home/profiles/toothpick/git.nix similarity index 100% rename from home/usr/share/git/toothpick/default.nix rename to home/profiles/toothpick/git.nix diff --git a/home/profiles/toothpick/modules.nix b/home/profiles/toothpick/modules.nix new file mode 100644 index 00000000..7bbc6164 --- /dev/null +++ b/home/profiles/toothpick/modules.nix @@ -0,0 +1,50 @@ +{ + modules = { + wm = { + hyprland = { + cnst.enable = false; + toothpick.enable = true; + # adam.enable = false; + }; + utils = { + hypridle.enable = true; + hyprlock.enable = true; + hyprpaper.enable = true; + }; + }; + browsers = { + firefox.enable = true; + chromium.enable = false; + }; + devtools = { + neovim.enable = true; + vscode.enable = true; + }; + comm = { + discord.enable = true; + }; + gaming = { + lutris.enable = false; + mangohud.enable = false; + }; + terminal = { + alacritty.enable = true; + foot.enable = true; + kitty.enable = true; + zellij.enable = false; + }; + utils = { + ags.enable = false; + anyrun.enable = false; + rofi.enable = false; + waybar.enable = true; + yazi.enable = true; + }; + userd = { + sops.enable = false; + copyq.enable = true; + mako.enable = true; + udiskie.enable = true; + }; + }; +} diff --git a/home/usr/share/shell/toothpick/default.nix b/home/profiles/toothpick/shell.nix similarity index 89% rename from home/usr/share/shell/toothpick/default.nix rename to home/profiles/toothpick/shell.nix index 24bd5d1f..0c150013 100644 --- a/home/usr/share/shell/toothpick/default.nix +++ b/home/profiles/toothpick/shell.nix @@ -7,11 +7,12 @@ syntaxHighlighting.enable = true; shellAliases = { + nixclean = "sudo nix run .#cleanup-boot"; nixdev = "nix develop ~/.nix-config -c $SHELL"; nixconfig = "cd /home/toothpick/.nix-config/"; ll = "ls -l"; - nixupdate = "nh os switch -v -H toothpc"; - nixup = "nh os switch -H toothpc"; + nixupdate = "nh os switch -v -H toothpc && sudo nix run .#cleanup-boot"; + nixup = "nh os switch -H toothpc && sudo nix run .#cleanup-boot"; flakeupdate = "nh os switch -u -v -H toothpc && sudo nix run .#cleanup-boot"; flakeup = "nh os switch -u -H toothpc && sudo nix run .#cleanup-boot"; }; diff --git a/home/srv/copyq/default.nix b/home/srv/copyq/default.nix deleted file mode 100644 index 834a3701..00000000 --- a/home/srv/copyq/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{ - services.copyq = { - enable = true; - }; -} diff --git a/home/srv/default.nix b/home/srv/default.nix deleted file mode 100644 index 9e5955b4..00000000 --- a/home/srv/default.nix +++ /dev/null @@ -1,9 +0,0 @@ -{ - imports = [ - ./copyq - ./hypr - ./mako - ./polkit - ./udiskie - ]; -} diff --git a/home/srv/hypr/cursor/default.nix b/home/srv/hypr/cursor/default.nix deleted file mode 100644 index dbd4b8f1..00000000 --- a/home/srv/hypr/cursor/default.nix +++ /dev/null @@ -1,5 +0,0 @@ -{pkgs, ...}: { - home.packages = [ - pkgs.hyprcursor - ]; -} diff --git a/home/srv/hypr/default.nix b/home/srv/hypr/default.nix deleted file mode 100644 index 871eb595..00000000 --- a/home/srv/hypr/default.nix +++ /dev/null @@ -1,8 +0,0 @@ -{ - imports = [ - ./idle - ./lock - ./paper - ./cursor - ]; -} diff --git a/home/srv/hypr/idle/default.nix b/home/srv/hypr/idle/default.nix deleted file mode 100644 index 331a190d..00000000 --- a/home/srv/hypr/idle/default.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - services.hypridle = { - enable = true; - settings = { - general = { - lock_cmd = "hyprlock"; - before_sleep_cmd = "$lock_cmd"; - after_sleep_cmd = "hyprctl dispatch dpms on"; - }; - - listener = [ - { - timeout = 900; # 15mins - on-timeout = "hyprlock"; - } - { - timeout = 1200; # 20mins - on-timeout = "hyprctl dispatch dpms off"; - on-resume = "hyprctl dispatch dpms on"; - } - ]; - }; - }; -} diff --git a/home/srv/hypr/lock/default.nix b/home/srv/hypr/lock/default.nix deleted file mode 100644 index c94adf5b..00000000 --- a/home/srv/hypr/lock/default.nix +++ /dev/null @@ -1,80 +0,0 @@ -{ - pkgs, - inputs, - ... -}: { - programs.hyprlock = { - enable = true; - package = inputs.hyprlock.packages.${pkgs.system}.hyprlock; - settings = { - general = { - disable_loading_bar = true; - hide_cursor = true; - no_fade_in = true; - no_fade_out = true; - ignore_empty_input = true; - immediate_render = true; - }; - background = [ - { - monitor = ""; - path = "~/media/images/dunes.png"; - } - ]; - input-field = [ - { - monitor = ""; - size = "200, 50"; - outline_thickness = 0; - dots_size = 0.1; - dots_spacing = 0.3; - dots_center = true; - dots_rounding = -1; - outer_color = "rgba(0,0,0,0)"; - inner_color = "rgba(0,0,0,0)"; - font_color = "rgba(FFFFFFFF)"; - fade_on_empty = false; - fade_timeout = 0; - fail_text = ""; - fail_transition = 0; - placeholder_text = ""; - hide_input = false; - rounding = 0; - check_color = "rgba(0,0,0,0)"; - fail_color = "rgba(0,0,0,0)"; - position = "0, 20"; - halign = "center"; - valign = "center"; - } - ]; - label = [ - # date - { - monitor = ""; - text = "cmd[update:3600000] date +'%A, %B %d'"; - shadow_passes = 1; - shadow_boost = 0.5; - color = "rgba(FFFFFFFF)"; - font_size = 25; - font_family = "Input Mono Compressed"; - position = "0, 230"; - halign = "center"; - valign = "center"; - } - # clock - { - monitor = ""; - text = "cmd[update:1000] echo '$TIME'"; - shadow_passes = 1; - shadow_boost = 0.5; - color = "rgba(FFFFFFFF)"; - font_size = 85; - font_family = "Input Mono Compressed"; - position = "0, 300"; - halign = "center"; - valign = "center"; - } - ]; - }; - }; -} diff --git a/home/srv/hypr/paper/default.nix b/home/srv/hypr/paper/default.nix deleted file mode 100644 index 79b9eb96..00000000 --- a/home/srv/hypr/paper/default.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - services.hyprpaper = { - enable = true; - settings = { - ipc = "on"; - splash = false; - splash_offset = 2.0; - - preload = [ - "~/media/images/nix.png" - "~/media/images/stacks.png" - "~/media/images/ship.png" - "~/media/images/cabin.png" - "~/media/images/dunes.png" - "~/media/images/globe.png" - "~/media/images/space.jpg" - "~/media/images/galaxy.png" - "~/media/images/deathstar.png" - "~/media/images/trollskog.png" - ]; - - wallpaper = [ - # cnix - "DP-3,~/media/images/dunes.png" - # adampad - "eDP-1,~/media/images/dunes.png" - # toothpc - "DVI-D-1,~/media/images/dunes.png" - # "DP-1,/share/wallpapers/cat_pacman.png" - ]; - }; - }; -} diff --git a/home/srv/mako/default.nix b/home/srv/mako/default.nix deleted file mode 100644 index bec88acf..00000000 --- a/home/srv/mako/default.nix +++ /dev/null @@ -1,29 +0,0 @@ -{pkgs, ...}: { - home.packages = [pkgs.libnotify]; - - services.mako = { - enable = true; - iconPath = "$HOME/.nix-profile/share/icons/Gruvbox-Plus-Dark"; - font = "FiraCode Nerd Font Medium 12"; - padding = "20"; - margin = "10"; - anchor = "top-right"; - width = 400; - height = 150; - borderSize = 2; - defaultTimeout = 12000; - backgroundColor = "#3c3836dd"; - borderColor = "#689d6add"; - textColor = "#d5c4a1dd"; - layer = "overlay"; - extraConfig = '' - max-history=50 - max-visible=4 - outer-margin=25 - icon-location=right - max-icon-size=48 - [mode=do-not-disturb] - invisible=1 - ''; - }; -} diff --git a/home/srv/power-monitor/default.nix b/home/srv/power-monitor/default.nix deleted file mode 100644 index 33fc8ba9..00000000 --- a/home/srv/power-monitor/default.nix +++ /dev/null @@ -1,95 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: let - script = pkgs.writeShellScript "power_monitor.sh" '' - BAT=$(echo /sys/class/power_supply/BAT*) - BAT_STATUS="$BAT/status" - BAT_CAP="$BAT/capacity" - - AC_PROFILE="performance" - BAT_PROFILE="power-saver" - - # wait a while if needed - [ -z "$STARTUP_WAIT" ] || sleep "$STARTUP_WAIT" - - # start the monitor loop - currentStatus=$(cat "$BAT_STATUS") - prevProfile=$AC_PROFILE - prevStatus=Charging - - # initial run - if [ "$currentStatus" = "Discharging" ]; then - profile="$BAT_PROFILE" - hyprctl -i 0 --batch 'keyword decoration:blur:enabled false; keyword animations:enabled false' - else - profile="$AC_PROFILE" - hyprctl -i 0 --batch 'keyword decoration:blur:enabled true; keyword animations:enabled true' - fi - - # set the new profile - if [ $prevProfile != "$profile" ]; then - echo setting power profile to "$profile" - powerprofilesctl set "$profile" - fi - - prevProfile="$profile" - prevStatus="$currentStatus" - - # event loop - while true; do - currentStatus=$(cat "$BAT_STATUS") - if [ "$currentStatus" != "$prevStatus" ]; then - # read the current state - if [ "$currentStatus" = "Discharging" ]; then - profile="$BAT_PROFILE" - hyprctl -i 0 --batch 'keyword decoration:blur:enabled false; keyword animations:enabled false' - else - profile="$AC_PROFILE" - hyprctl -i 0 --batch 'keyword decoration:blur:enabled true; keyword animations:enabled true' - fi - - # set the new profile - if [ $prevProfile != "$profile" ]; then - echo setting power profile to "$profile" - powerprofilesctl set "$profile" - fi - - prevProfile="$profile" - prevStatus="$currentStatus" - fi - - # wait for the next power change event - inotifywait -qq "$BAT_STATUS" "$BAT_CAP" - done - ''; - - dependencies = with pkgs; [ - coreutils - config.wayland.windowManager.hyprland.package - power-profiles-daemon - inotify-tools - jaq - ]; -in { - # Power state monitor. Switches Power profiles based on charging state. - # Plugged in - performance - # Unplugged - power-saver - systemd.user.services.power-monitor = { - Unit = { - Description = "Power Monitor"; - After = ["power-profiles-daemon.service"]; - }; - - Service = { - Environment = "PATH=/run/wrappers/bin:${lib.makeBinPath dependencies}"; - Type = "simple"; - ExecStart = script; - Restart = "on-failure"; - }; - - Install.WantedBy = ["default.target"]; - }; -} diff --git a/home/srv/udiskie/default.nix b/home/srv/udiskie/default.nix deleted file mode 100644 index b606fde7..00000000 --- a/home/srv/udiskie/default.nix +++ /dev/null @@ -1,7 +0,0 @@ -{ - services.udiskie = { - enable = true; - tray = "always"; - notify = false; - }; -} diff --git a/hosts/cnix/default.nix b/hosts/cnix/default.nix index 9dff37e7..da7e6f65 100644 --- a/hosts/cnix/default.nix +++ b/hosts/cnix/default.nix @@ -32,6 +32,7 @@ in { "rtkit" "users" "plocate" + "fuse" ]; }; diff --git a/hosts/default.nix b/hosts/default.nix index f533f245..819a6767 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -1,20 +1,32 @@ # Yanked from fufexan! { - self, inputs, homeImports, + self, ... }: { flake.nixosConfigurations = let + # custom paths + userConfig = "${self}/home"; + systemConfig = "${self}/system"; + hostConfig = "${self}/hosts"; + + cnstConfig = "${self}/home/profiles/cnst"; + toothpickConfig = "${self}/home/profiles/toothpick"; + adamConfig = "${self}/home/profiles/adam"; + + userModules = "${self}/home/modules"; + systemModules = "${self}/system/modules"; + # shorten paths inherit (inputs.nixpkgs.lib) nixosSystem; - mod = "${self}/system"; + mod = "${systemConfig}"; # get the basic config to build on top of - inherit (import "${self}/system") adampad cnix toothpc; + inherit (import "${systemConfig}") adampad cnix toothpc; # get these into the module system - specialArgs = {inherit inputs self;}; + specialArgs = {inherit inputs self userConfig systemConfig hostConfig cnstConfig toothpickConfig adamConfig userModules systemModules;}; in { cnix = nixosSystem { inherit specialArgs; diff --git a/modules/default.nix b/modules/default.nix deleted file mode 100644 index cb9099fe..00000000 --- a/modules/default.nix +++ /dev/null @@ -1,3 +0,0 @@ -{inputs, ...}: { - environment.systemPackages = [inputs.agenix.packages.x86_64-linux.default]; -} diff --git a/pkgs/bibata-hyprcursor/configure.py b/pkgs/bibata-hyprcursor/configure.py deleted file mode 100644 index 30adfda9..00000000 --- a/pkgs/bibata-hyprcursor/configure.py +++ /dev/null @@ -1,54 +0,0 @@ -# stolen from https://github.com/diniamo/niqspkgs/blob/544c3b2c69fd1b5ab3407e7b35c76060801a8bcf/pkgs/bibata-hyprcursor/default.nix - -from sys import argv -import os -from os import path -from pathlib import Path -import tomli -import tomli_w - - -def fallback_value(config, cursor, field): - return (config.get(cursor, None) or {}).get(field, None) or ( - config["fallback_settings"].get(field, None) - ) - - -def filter_none_dict(**kwargs): - return {k: v for k, v in kwargs.items() if v is not None} - - -def construct_meta(config, name, sizes): - meta = filter_none_dict( - define_size=";".join(sizes), - define_override=( - None - if (overrides := fallback_value(config, name, "x11_symlinks")) is None - else ";".join(overrides) - ), - hotspot_x=fallback_value(config, name, "x_hotspot") / 256, - hotspot_y=fallback_value(config, name, "y_hotspot") / 256, - ) - - with open(f"{name}/meta.toml", "wb") as file: - tomli_w.dump({"General": meta}, file) - - -with open(argv[1], "rb") as file: - config = tomli.load(file)["cursors"] - -os.chdir(argv[2]) - -for cursor in os.listdir("."): - if path.isfile(cursor): - name = Path(cursor).stem - - os.mkdir(name) - os.rename(cursor, f"{name}/{cursor}") - - construct_meta(config, name, [f"0,{cursor}"]) - else: - delay = fallback_value(config, cursor, "x11_delay") - construct_meta( - config, cursor, map(lambda c: f"0,{c},{delay}", os.listdir(cursor)) - ) diff --git a/pkgs/bibata-hyprcursor/default.nix b/pkgs/bibata-hyprcursor/default.nix deleted file mode 100644 index a1c9e21a..00000000 --- a/pkgs/bibata-hyprcursor/default.nix +++ /dev/null @@ -1,94 +0,0 @@ -# stolen from https://github.com/diniamo/niqspkgs/blob/544c3b2c69fd1b5ab3407e7b35c76060801a8bcf/pkgs/bibata-hyprcursor/default.nix -{ - lib, - stdenvNoCC, - fetchFromGitHub, - python3, - python3Packages, - hyprcursor, - variant ? "modern", - baseColor ? "#000000", - outlineColor ? "#FFFFFF", - watchBackgroundColor ? "#000000", - colorName ? "classic", -}: let - capitalize = str: let - capital_letter = builtins.substring 0 1 str; - non_capital = lib.removePrefix capital_letter str; - in - lib.toUpper capital_letter + non_capital; - - themeName = "Bibata-${capitalize variant}-${capitalize colorName}"; -in - assert builtins.elem variant ["modern" "modern-right" "original" "original-right"]; - stdenvNoCC.mkDerivation (final: { - pname = "bibata-hyprcursor"; - version = "v2.0.7"; - - src = fetchFromGitHub { - owner = "ful1e5"; - repo = "Bibata_Cursor"; - rev = final.version; - hash = "sha256-kIKidw1vditpuxO1gVuZeUPdWBzkiksO/q2R/+DUdEc="; - }; - - nativeBuildInputs = [ - python3 - python3Packages.tomli - python3Packages.tomli-w - hyprcursor - ]; - - phases = ["unpackPhase" "configurePhase" "buildPhase" "installPhase"]; - - unpackPhase = '' - runHook preUnpack - - cp $src/configs/${ - if lib.hasSuffix "right" variant - then "right" - else "normal" - }/x.build.toml config.toml - - mkdir cursors - for cursor in $src/svg/${variant}/*; do - cp -r $src/svg/${variant}/$(readlink $cursor) cursors - done - - chmod -R u+w . - - runHook postUnpack - ''; - - configurePhase = '' - runHook preConfigure - - cat << EOF > manifest.hl - name = ${themeName} - description = The Bibata Cursor theme packaged for hyprcursor. - version = ${final.version} - cursors_directory = cursors - EOF - - find cursors -type f -name '*.svg' | xargs sed -i -e 's/#00FF00/${baseColor}/g' -e 's/#0000FF/${outlineColor}/g' -e 's/#FF0000/${watchBackgroundColor}/g' - - python ${./configure.py} config.toml cursors - - runHook postConfigure - ''; - - buildPhase = '' - runHook preBuild - hyprcursor-util --create . --output . - runHook postBuild - ''; - - installPhase = '' - runHook preInstall - - mkdir -p $out/share/icons - cp -r theme_${themeName} $out/share/icons/${themeName} - - runHook postInstall - ''; - }) diff --git a/pkgs/default.nix b/pkgs/default.nix deleted file mode 100644 index 77fe7948..00000000 --- a/pkgs/default.nix +++ /dev/null @@ -1,14 +0,0 @@ -{ - systems = ["x86_64-linux"]; - - perSystem = { - pkgs, - inputs', - ... - }: { - packages = { - bibata-hyprcursor = pkgs.callPackage ./bibata-hyprcursor {}; - wl-ocr = pkgs.callPackage ./wl-ocr {}; - }; - }; -} diff --git a/pkgs/wl-ocr/default.nix b/pkgs/wl-ocr/default.nix deleted file mode 100644 index 6c3a4eba..00000000 --- a/pkgs/wl-ocr/default.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - writeShellScriptBin, - lib, - grim, - libnotify, - slurp, - tesseract5, - wl-clipboard, - langs ? "eng+hun+fra+jpn+jpn_vert+kor+kor_vert+pol+ron+spa", -}: let - _ = lib.getExe; -in - writeShellScriptBin "wl-ocr" '' - ${_ grim} -g "$(${_ slurp})" -t ppm - | ${_ tesseract5} -l ${langs} - - | ${wl-clipboard}/bin/wl-copy - echo "$(${wl-clipboard}/bin/wl-paste)" - ${_ libnotify} -- "$(${wl-clipboard}/bin/wl-paste)" - '' diff --git a/system/bin/hyprland/default.nix b/system/bin/hyprland/default.nix index edc7e5dc..3bf15ee6 100644 --- a/system/bin/hyprland/default.nix +++ b/system/bin/hyprland/default.nix @@ -1,7 +1,12 @@ -{inputs, ...}: { - imports = [ - inputs.hyprland.nixosModules.default - ]; +{ + inputs, + pkgs, + ... +}: { + programs.hyprland = { + enable = true; + package = inputs.hyprland.packages.${pkgs.system}.default; + portalPackage = inputs.hyprland.packages.${pkgs.system}.xdg-desktop-portal-hyprland; + }; environment.variables.NIXOS_OZONE_WL = "1"; - programs.hyprland.enable = true; } diff --git a/system/etc/default.nix b/system/etc/default.nix index 3cbdfb8b..01932d88 100644 --- a/system/etc/default.nix +++ b/system/etc/default.nix @@ -2,6 +2,7 @@ imports = [ # shared imports ./dconf + ./fuse ./security ./xdg ./zram diff --git a/system/etc/fuse/default.nix b/system/etc/fuse/default.nix new file mode 100644 index 00000000..3a691052 --- /dev/null +++ b/system/etc/fuse/default.nix @@ -0,0 +1,5 @@ +{ + programs.fuse = { + userAllowOther = true; + }; +} diff --git a/system/etc/graphics/amd/default.nix b/system/etc/graphics/amd/default.nix index 4ac58d89..4b2d66ec 100644 --- a/system/etc/graphics/amd/default.nix +++ b/system/etc/graphics/amd/default.nix @@ -13,10 +13,10 @@ mesa # vulkan - vulkan-tools - vulkan-loader - vulkan-validation-layers - vulkan-extension-layer + # vulkan-tools + # vulkan-loader + # vulkan-validation-layers + # vulkan-extension-layer ]; extraPackages32 = with pkgs.pkgsi686Linux; [ vaapiVdpau diff --git a/system/etc/security/default.nix b/system/etc/security/default.nix index bd7d9e7b..e7cec449 100644 --- a/system/etc/security/default.nix +++ b/system/etc/security/default.nix @@ -1,6 +1,6 @@ { security = { rtkit.enable = true; - pam.services.hyprlock = {}; + pam.services.hyprlock.text = "auth include login"; }; } diff --git a/system/etc/xserver/amd/hhkbse/default.nix b/system/etc/xserver/amd/hhkbse/default.nix index 67b9f701..4d7e007c 100644 --- a/system/etc/xserver/amd/hhkbse/default.nix +++ b/system/etc/xserver/amd/hhkbse/default.nix @@ -1,5 +1,5 @@ -{self, ...}: let - path = "${self}/hosts/cnix/xkb/symbols"; +{hostConfig, ...}: let + path = "${hostConfig}/cnix/xkb/symbols"; in { services.xserver = { enable = true; diff --git a/system/srv/default.nix b/system/srv/default.nix index bebb709d..bd7c4031 100644 --- a/system/srv/default.nix +++ b/system/srv/default.nix @@ -10,7 +10,7 @@ ./mullvad ./openssh ./power - ./samba + # ./samba ./udisks ]; }