individualizing hyprland

This commit is contained in:
cnst
2024-07-30 19:02:20 +02:00
parent 3f99d55541
commit a360deaf5f
23 changed files with 725 additions and 188 deletions

323
flake.lock generated
View File

@@ -1,5 +1,38 @@
{ {
"nodes": { "nodes": {
"aquamarine": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"hyprwayland-scanner": [
"hyprland",
"hyprwayland-scanner"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1722283490,
"narHash": "sha256-xqaO+h2ams6bpfNdUAtvWN6SKuNIeyr3lXYsAKYS/+0=",
"owner": "hyprwm",
"repo": "aquamarine",
"rev": "9ccb4411ee001715db0fbc74e7ff1cea02c6c24f",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "aquamarine",
"type": "github"
}
},
"cachix": { "cachix": {
"locked": { "locked": {
"lastModified": 1635350005, "lastModified": 1635350005,
@@ -106,11 +139,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1722259288, "lastModified": 1722345621,
"narHash": "sha256-DkzqDygV/Zs6rLDENsBmzUy3h7ti2VacmL6p4KDajac=", "narHash": "sha256-3ZZolUAhDElGd1fZyMmXniodfcjQeMueGlUxKCq7Id4=",
"owner": "nix-community", "owner": "nix-community",
"repo": "flake-firefox-nightly", "repo": "flake-firefox-nightly",
"rev": "9617dbd27195b1ca6e9a752e4ec3723a87aad36e", "rev": "b2a9f7632877e013f4ee7f7ff53f3266b1ce5057",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -260,7 +293,7 @@
}, },
"flake-utils_3": { "flake-utils_3": {
"inputs": { "inputs": {
"systems": "systems_3" "systems": "systems_4"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1710146030,
@@ -278,7 +311,7 @@
}, },
"flake-utils_4": { "flake-utils_4": {
"inputs": { "inputs": {
"systems": "systems_4" "systems": "systems_5"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1710146030,
@@ -296,7 +329,7 @@
}, },
"flake-utils_5": { "flake-utils_5": {
"inputs": { "inputs": {
"systems": "systems_6" "systems": "systems_7"
}, },
"locked": { "locked": {
"lastModified": 1710146030, "lastModified": 1710146030,
@@ -405,11 +438,11 @@
}, },
"hardware": { "hardware": {
"locked": { "locked": {
"lastModified": 1722114937, "lastModified": 1722332872,
"narHash": "sha256-MOZ9woPwdpFJcHx3wic2Mlw9aztdKjMnFT3FaeLzJkM=", "narHash": "sha256-2xLM4sc5QBfi0U/AANJAW21Bj4ZX479MHPMPkB+eKBU=",
"owner": "nixos", "owner": "nixos",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "e67b60fb1b2c3aad2202d95b91d4c218cf2a4fdd", "rev": "14c333162ba53c02853add87a0000cbd7aa230c2",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -463,11 +496,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1722203588, "lastModified": 1722321190,
"narHash": "sha256-91V5FMSQ4z9bkhTCf0f86Zjw0bh367daSf0mzCIW0vU=", "narHash": "sha256-WeVWVRqkgrbLzmk6FfJoloJ7Xe7HWD27Pv950IUG2kI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "792757f643cedc13f02098d8ed506d82e19ec1da", "rev": "4fcd54df7cbb1d79cbe81209909ee8514d6b17a4",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -497,6 +530,168 @@
"type": "github" "type": "github"
} }
}, },
"hyprcursor": {
"inputs": {
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1721330371,
"narHash": "sha256-aYlHTWylczLt6ERJyg6E66Y/XSCbVL7leVcRuJmVbpI=",
"owner": "hyprwm",
"repo": "hyprcursor",
"rev": "4493a972b48f9c3014befbbf381ed5fff91a65dc",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprcursor",
"type": "github"
}
},
"hyprland": {
"inputs": {
"aquamarine": "aquamarine",
"hyprcursor": "hyprcursor",
"hyprlang": "hyprlang",
"hyprutils": "hyprutils",
"hyprwayland-scanner": "hyprwayland-scanner",
"nixpkgs": "nixpkgs_2",
"systems": "systems_3",
"xdph": "xdph"
},
"locked": {
"lastModified": 1722347414,
"narHash": "sha256-HTj5Ttd1BjWJX/gGqyYLlwXhGjMTVKIxmi3q8s6pOTQ=",
"ref": "refs/heads/main",
"rev": "cc7c117fe76ff0a4da56b18026c725501de92c84",
"revCount": 5027,
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
},
"original": {
"submodules": true,
"type": "git",
"url": "https://github.com/hyprwm/Hyprland"
}
},
"hyprland-protocols": {
"inputs": {
"nixpkgs": [
"hyprland",
"xdph",
"nixpkgs"
],
"systems": [
"hyprland",
"xdph",
"systems"
]
},
"locked": {
"lastModified": 1721326555,
"narHash": "sha256-zCu4R0CSHEactW9JqYki26gy8h9f6rHmSwj4XJmlHgg=",
"owner": "hyprwm",
"repo": "hyprland-protocols",
"rev": "5a11232266bf1a1f5952d5b179c3f4b2facaaa84",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprland-protocols",
"type": "github"
}
},
"hyprlang": {
"inputs": {
"hyprutils": [
"hyprland",
"hyprutils"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1721324361,
"narHash": "sha256-BiJKO0IIdnSwHQBSrEJlKlFr753urkLE48wtt0UhNG4=",
"owner": "hyprwm",
"repo": "hyprlang",
"rev": "adbefbf49664a6c2c8bf36b6487fd31e3eb68086",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprlang",
"type": "github"
}
},
"hyprutils": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1722098849,
"narHash": "sha256-D3wIZlBNh7LuZ0NaoCpY/Pvu+xHxIVtSN+KkWZYvvVs=",
"owner": "hyprwm",
"repo": "hyprutils",
"rev": "5dcbbc1e3de40b2cecfd2007434d86e924468f1f",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprutils",
"type": "github"
}
},
"hyprwayland-scanner": {
"inputs": {
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1721324119,
"narHash": "sha256-SOOqIT27/X792+vsLSeFdrNTF+OSRp5qXv6Te+fb2Qg=",
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"rev": "a048a6cb015340bd82f97c1f40a4b595ca85cc30",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "hyprwayland-scanner",
"type": "github"
}
},
"jovian": { "jovian": {
"inputs": { "inputs": {
"nix-github-actions": "nix-github-actions", "nix-github-actions": "nix-github-actions",
@@ -525,7 +720,7 @@
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat_2",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs_3",
"pre-commit-hooks-nix": "pre-commit-hooks-nix", "pre-commit-hooks-nix": "pre-commit-hooks-nix",
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
@@ -688,6 +883,22 @@
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": {
"lastModified": 1722185531,
"narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1717794163, "lastModified": 1717794163,
"narHash": "sha256-Ch6ZpFPVvi7Bb6gmmuufpTEFkXqa43pC94XMfU5FEt0=", "narHash": "sha256-Ch6ZpFPVvi7Bb6gmmuufpTEFkXqa43pC94XMfU5FEt0=",
@@ -703,13 +914,13 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_3": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1722062969, "lastModified": 1722185531,
"narHash": "sha256-QOS0ykELUmPbrrUGmegAUlpmUFznDQeR4q7rFhl8eQg=", "narHash": "sha256-veKR07psFoJjINLC8RK4DiLniGGMgF3QMlS4tb74S6k=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "b73c2221a46c13557b1b3be9c2070cc42cf01eb3", "rev": "52ec9ac3b12395ad677e8b62106f0b98c1f8569d",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -719,7 +930,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1721466660, "lastModified": 1721466660,
"narHash": "sha256-pFSxgSZqZ3h+5Du0KvEL1ccDZBwu4zvOil1zzrPNb3c=", "narHash": "sha256-pFSxgSZqZ3h+5Du0KvEL1ccDZBwu4zvOil1zzrPNb3c=",
@@ -750,11 +961,11 @@
"treefmt-nix": "treefmt-nix" "treefmt-nix": "treefmt-nix"
}, },
"locked": { "locked": {
"lastModified": 1722232048, "lastModified": 1722248209,
"narHash": "sha256-TjBk/EECLYfPscxOW9yWEuoI4mzoYOok/qMiod/Xx8M=", "narHash": "sha256-yYoxx5hVrI7JaiPy44sgnr5YIRXWY7ttNoN/l5fJOgI=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixvim", "repo": "nixvim",
"rev": "2415edc0cb749bf81c9b142138c2bb705514f6cc", "rev": "2089eb407d8c5dbd6ca6e93d4988a439ca6446fd",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -819,10 +1030,11 @@
"flake-utils": "flake-utils_2", "flake-utils": "flake-utils_2",
"hardware": "hardware", "hardware": "hardware",
"home-manager": "home-manager_2", "home-manager": "home-manager_2",
"hyprland": "hyprland",
"lanzaboote": "lanzaboote", "lanzaboote": "lanzaboote",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_4",
"nixvim": "nixvim", "nixvim": "nixvim",
"systems": "systems_5", "systems": "systems_6",
"wezterm": "wezterm" "wezterm": "wezterm"
} }
}, },
@@ -904,16 +1116,16 @@
}, },
"systems_3": { "systems_3": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1689347949,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-linux",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", "rev": "31732fcf5e8fea42e59c2488ad31a0e651500f68",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "nix-systems", "owner": "nix-systems",
"repo": "default", "repo": "default-linux",
"type": "github" "type": "github"
} }
}, },
@@ -933,6 +1145,21 @@
} }
}, },
"systems_5": { "systems_5": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"systems_6": {
"locked": { "locked": {
"lastModified": 1689347949, "lastModified": 1689347949,
"narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=", "narHash": "sha256-12tWmuL2zgBgZkdoB6qXZsgJEH9LR3oUgpaQq2RbI80=",
@@ -947,7 +1174,7 @@
"type": "github" "type": "github"
} }
}, },
"systems_6": { "systems_7": {
"locked": { "locked": {
"lastModified": 1681028828, "lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
@@ -989,17 +1216,17 @@
"freetype2": "freetype2", "freetype2": "freetype2",
"harfbuzz": "harfbuzz", "harfbuzz": "harfbuzz",
"libpng": "libpng", "libpng": "libpng",
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_5",
"rust-overlay": "rust-overlay_2", "rust-overlay": "rust-overlay_2",
"zlib": "zlib" "zlib": "zlib"
}, },
"locked": { "locked": {
"dir": "nix", "dir": "nix",
"lastModified": 1721660996, "lastModified": 1722353247,
"narHash": "sha256-einWGKcn7zLSCYChDXN1aKrw1nz3P89dF/gK+OPD0Qw=", "narHash": "sha256-pPH+IJ8pljR+PmeOdckoHvbQVfSBdStKbgXcaqdkTRk=",
"owner": "wez", "owner": "wez",
"repo": "wezterm", "repo": "wezterm",
"rev": "7e8fdc118d2d7ceb51c720a966090f6cb65089b7", "rev": "56a27e93a9ee50aab50ff4d78308f9b3154b5122",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -1009,6 +1236,36 @@
"type": "github" "type": "github"
} }
}, },
"xdph": {
"inputs": {
"hyprland-protocols": "hyprland-protocols",
"hyprlang": [
"hyprland",
"hyprlang"
],
"nixpkgs": [
"hyprland",
"nixpkgs"
],
"systems": [
"hyprland",
"systems"
]
},
"locked": {
"lastModified": 1722181019,
"narHash": "sha256-Lj/g1UzrsTZUixtveQix6eB3pon2j23qv5/5pzTx0LQ=",
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"rev": "0e2f3b9c85f7bab3983098a01366876d34daf383",
"type": "github"
},
"original": {
"owner": "hyprwm",
"repo": "xdg-desktop-portal-hyprland",
"type": "github"
}
},
"yafas": { "yafas": {
"inputs": { "inputs": {
"flake-schemas": [ "flake-schemas": [

View File

@@ -22,6 +22,7 @@
}; };
# cachyos # cachyos
chaotic.url = "https://flakehub.com/f/chaotic-cx/nyx/*.tar.gz"; chaotic.url = "https://flakehub.com/f/chaotic-cx/nyx/*.tar.gz";
hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
#nix-gl = { #nix-gl = {
# url = "github:nix-community/nixgl"; # url = "github:nix-community/nixgl";
# inputs.nixpkgs.follows = "nixpkgs"; # inputs.nixpkgs.follows = "nixpkgs";

View File

@@ -1,10 +1,7 @@
{ {inputs, ...}: {
imports = [ imports = [
./land/appearance.nix inputs.hyprland.homeManagerModules.default
./land/inputs.nix ./land/cnst
./land/keybinds.nix
./land/rules.nix
./land/startup.nix
]; ];
wayland.windowManager.hyprland = { wayland.windowManager.hyprland = {
enable = true; enable = true;

View File

@@ -0,0 +1,9 @@
{
imports = [
./appearance.nix
./inputs.nix
./keybinds.nix
./rules.nix
./startup.nix
];
}

View File

@@ -4,12 +4,10 @@
"DP-3, 2560x1440@143.86, auto, auto" "DP-3, 2560x1440@143.86, auto, auto"
"eDP-1,1920x1200@60.02,auto,1" "eDP-1,1920x1200@60.02,auto,1"
]; ];
# Some default env vars. env = [
# env = HYPRCURSOR_THEME,macOS "QT_WAYLAND_DISABLE_WINDOWDECORATION,1"
# env = HYPRCURSOR_SIZE,28 ];
# env = XCURSOR_THEME,macOS
# env = XCURSOR_SIZE,28
# For all categories, see https://wiki.hyprland.org/Configuring/Variables/
input = { input = {
follow_mouse = 1; follow_mouse = 1;
accel_profile = "flat"; accel_profile = "flat";

View File

@@ -1,7 +1,7 @@
# KEYBINDS # KEYBINDS
{ {
wayland.windowManager.hyprland.settings = { wayland.windowManager.hyprland.settings = {
"$terminal" = "wezterm"; "$terminal" = "foot";
"$fileManager" = "thunar"; "$fileManager" = "thunar";
"$passwordManager" = "keepassxc"; "$passwordManager" = "keepassxc";
"$menu" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --"; "$menu" = "pkill anyrun || anyrun | xargs hyprctl dispatch exec --";

View File

@@ -0,0 +1,48 @@
{
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
};
};
}

View File

@@ -0,0 +1,9 @@
{
imports = [
./appearance.nix
./inputs.nix
./keybinds.nix
./rules.nix
./startup.nix
];
}

View File

@@ -0,0 +1,69 @@
{
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 = 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
# }
};
}

View File

@@ -0,0 +1,101 @@
# 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
"$mainMod" = "SUPER";
bind = [
# Custom binds
"SUPER SHIFT, B, exec, pkill -SIGUSR2 waybar" # Reload waybar
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
"SUPER, A, exec, pkill -SIGUSR1 waybar"
"SUPER, T, exec, $terminal"
"SUPER, W, exec, $browser"
"SUPER, K, exec, $passwordManager"
"SUPER SHIFT, W, exec, $browserinc"
"SUPER, Q, killactive,"
#bind = SUPER, M, exec, hyprctl dispatch exit
#bind = SUPER, E, exec, $fileManager
"SUPER, E, exec, $fileManager"
"SUPER SHIFT, E, exec, $ranger"
"SUPER, F, fullscreen,"
"SUPER SHIFT, F, togglefloating,"
"SUPER, SPACE, exec, $menu"
"SUPER, P, pseudo," # dwindle
"SUPER, J, togglesplit," # dwindle
"SUPER, C, exec, hyprctl dispatch exec copyq toggle"
"SUPER, TAB, exec, $menuw"
# Move focus with mainMod + arrow keys
"SUPER, left, movefocus, l"
"SUPER, right, movefocus, r"
"SUPER, up, movefocus, u"
"SUPER, down, movefocus, d"
# Switch workspaces with mainMod + [0-9]
"SUPER, 1, workspace, 1"
"SUPER, 2, workspace, 2"
"SUPER, 3, workspace, 3"
"SUPER, 4, workspace, 4"
"SUPER, 5, workspace, 5"
"SUPER, 6, workspace, 6"
"SUPER, 7, workspace, 7"
"SUPER, 8, workspace, 8"
"SUPER, 9, workspace, 9"
"SUPER, 0, workspace, 10"
# Move active window to a workspace with mainMod + SHIFT + [0-9]
"SUPER SHIFT, 1, movetoworkspace, 1"
"SUPER SHIFT, 2, movetoworkspace, 2"
"SUPER SHIFT, 3, movetoworkspace, 3"
"SUPER SHIFT, 4, movetoworkspace, 4"
"SUPER SHIFT, 5, movetoworkspace, 5"
"SUPER SHIFT, 6, movetoworkspace, 6"
"SUPER SHIFT, 7, movetoworkspace, 7"
"SUPER SHIFT, 8, movetoworkspace, 8"
"SUPER SHIFT, 9, movetoworkspace, 9"
"SUPER 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%"
"SUPER, XF86MonBrightnessUp, exec, hyprctl dispatch dpms on"
"SUPER, XF86MonBrightnessDown, exec, hyprctl dispatch dpms off"
# Screenshot a window
"SUPER, F10, exec, hyprshot -m window"
# Screenshot a monitor
", F10, exec, hyprshot -m output"
# Screenshot a region
"SUPER SHIFT, F10, exec, hyprshot -m region"
# Example special workspace (scratchpad)
"SUPER, S, togglespecialworkspace, magic"
"SUPER SHIFT, S, movetoworkspace, special:magic"
# Scroll through existing workspaces with mainMod + scroll
# bind = SUPER, mouse_down, workspace, e+1
# bind = SUPER, mouse_up, workspace, e-1
];
# Move/resize windows with mainMod + LMB/RMB and dragging
bindm = [
"SUPER, mouse:272, movewindow"
"SUPER, mouse:273, resizewindow"
];
};
}

View File

@@ -0,0 +1,42 @@
{
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)$"
];
};
}

View File

@@ -0,0 +1,20 @@
{
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'"
];
};
}

View File

@@ -0,0 +1,17 @@
{inputs, ...}: {
imports = [
inputs.hyprland.homeManagerModules.default
./land/toothpick
];
wayland.windowManager.hyprland = {
enable = true;
systemd = {
variables = ["--all"];
extraCommands = [
"systemctl --user stop graphical-session.target"
"systemctl --user start hyprland-session.target"
];
};
};
}

View File

@@ -7,7 +7,7 @@
../../core/gui/browsers ../../core/gui/browsers
../../core/gui/xdg ../../core/gui/xdg
../../core/gui/discord ../../core/gui/discord
../../core/gui/hypr ../../core/gui/hypr/cnst.nix
../../core/gui/utility ../../core/gui/utility
# core.tui # core.tui
../../core/tui/git/cnst.nix ../../core/tui/git/cnst.nix
@@ -48,9 +48,9 @@
xfce.thunar-volman xfce.thunar-volman
]; ];
sessionVariables = { sessionVariables = {
BROWSER = "chromium"; BROWSER = "firefox";
EDITOR = "nvim"; EDITOR = "nvim";
TERM = "wezterm"; TERM = "foot";
QT_QPA_PLATFORM = "wayland"; QT_QPA_PLATFORM = "wayland";
SDL_VIDEODRIVER = "wayland"; SDL_VIDEODRIVER = "wayland";

View File

@@ -1,15 +1,7 @@
{ {inputs, ...}: {
programs.hyprland = { imports = [
enable = true; inputs.hyprland.nixosModules.default
# xwayland.enable = true; ];
}; environment.variables.NIXOS_OZONE_WL = "1";
environment.variables = { programs.hyprland.enable = true;
# MOZ_ENABLE_WAYLAND = 1;
NIXOS_OZONE_WL = "1";
# AMD_VULKAN_ICD = "RADV";
# SDL_VIDEODRIVER = "wayland";
# QT_QPA_PLATFORM = "wayland";
# XDG_SESSION_TYPE = "wayland";
# QT_WAYLAND_DISABLE_WINDOWDECORATION = "1";
};
} }

View File

@@ -11,22 +11,7 @@
systemPackages = with pkgs; [ systemPackages = with pkgs; [
# Misc # Misc
protonup protonup
winetricks
# Lutris dependencies
(lutris.override {
extraLibraries = pkgs: [
SDL2
SDL2_image
glib
wineWowPackages.stable
wineWowPackages.staging
wineWowPackages.waylandFull
winetricks
# python312Packages.pygame-sdl2
libGL
ffmpeg
];
})
]; ];
sessionVariables = { sessionVariables = {
STEAM_EXTRA_COMPAT_TOOLS_PATHS = "/home/cnst/.steam/root/compatibilitytools.d"; STEAM_EXTRA_COMPAT_TOOLS_PATHS = "/home/cnst/.steam/root/compatibilitytools.d";

View File

@@ -1,15 +1,14 @@
{ inputs
, outputs
, lib
, config
, pkgs
, system
, ...
}:
let
ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
in
{ {
inputs,
outputs,
lib,
config,
pkgs,
system,
...
}: let
ifTheyExist = groups: builtins.filter (group: builtins.hasAttr group config.users.groups) groups;
in {
users.users.cnst = { users.users.cnst = {
isNormalUser = true; isNormalUser = true;
shell = pkgs.zsh; shell = pkgs.zsh;
@@ -48,7 +47,7 @@ in
nix = { nix = {
# pin the registry to avoid downloading and evaling a new nixpkgs version every time # pin the registry to avoid downloading and evaling a new nixpkgs version every time
registry = lib.mapAttrs (_: v: { flake = v; }) inputs; registry = lib.mapAttrs (_: v: {flake = v;}) inputs;
# set the path for channels compat # set the path for channels compat
nixPath = lib.mapAttrsToList (key: _: "${key}=flake:${key}") config.nix.registry; nixPath = lib.mapAttrsToList (key: _: "${key}=flake:${key}") config.nix.registry;
@@ -57,34 +56,30 @@ in
auto-optimise-store = true; auto-optimise-store = true;
builders-use-substitutes = true; builders-use-substitutes = true;
warn-dirty = false; warn-dirty = false;
experimental-features = [ "nix-command" "flakes" ]; experimental-features = ["nix-command" "flakes"];
flake-registry = "/etc/nix/registry.json"; flake-registry = "/etc/nix/registry.json";
# for direnv GC roots # for direnv GC roots
keep-derivations = true; keep-derivations = true;
keep-outputs = true; keep-outputs = true;
trusted-users = [ "root" "@wheel" ]; trusted-users = ["root" "@wheel"];
}; };
};
# Bootloader
boot.loader = {
systemd-boot.enable = lib.mkForce false;
efi.canTouchEfiVariables = true;
};
boot.lanzaboote = {
enable = true;
pkiBundle = "/etc/secureboot";
};
# Bootloader environment.sessionVariables = {
boot.loader = { FLAKE = "/home/cnst/.nix-config";
systemd-boot.enable = lib.mkForce false; };
efi.canTouchEfiVariables = true;
};
boot.lanzaboote = {
enable = true;
pkiBundle = "/etc/secureboot";
};
users.users.cnst.openssh.authorizedKeys.keys = [ # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGe3s7WbaM0aZTYHCE1ugiG/SxFXLSbWcLAWceFotpuh toothpick@nixos" system.stateVersion = lib.mkDefault "23.11";
]; }
environment.sessionVariables = {
FLAKE = "/home/cnst/.nix-config";
};
# https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
system.stateVersion = lib.mkDefault "23.11";
}

View File

@@ -48,75 +48,75 @@
# Util # Util
anyrun anyrun
curl # curl
fzf # fzf
gnome-disk-utility # gnome-disk-utility
lazygit # lazygit
ntfs3g # ntfs3g
p7zip # p7zip
ripgrep # ripgrep
stow stow
tmux # tmux
tmuxifier # tmuxifier
tree-sitter # tree-sitter
udiskie # udiskie
unrar # unrar
unzip # unzip
wget # wget
xdg-user-dirs # xdg-user-dirs
xdg-utils # xdg-utils
zed-editor # zed-editor
# Dev # Dev
binutils # binutils
clang # clang
clang-tools # clang-tools
cargo-edit # cargo-edit
cargo-insta # cargo-insta
cargo-nextest # cargo-nextest
gcc # gcc
gnumake # gnumake
cmake # cmake
python3 # python3
python312Packages.httplib2 # python312Packages.httplib2
python312Packages.oauth2 # python312Packages.oauth2
gtk3 # gtk3
gtk4 # gtk4
# misc.language_servers # misc.language_servers
typescript-language-server # typescript-language-server
typescript # typescript
nixd # nixd
nil # nil
statix # statix
hyprlang # hyprlang
alejandra # alejandra
nixpkgs-fmt # nixpkgs-fmt
pyright # pyright
isort # isort
rustfmt # rustfmt
rust-analyzer # rust-analyzer
clippy # clippy
lua-language-server # lua-language-server
stylua # stylua
nodePackages_latest.nodejs # nodePackages_latest.nodejs
nodePackages.prettier # nodePackages.prettier
prettierd # prettierd
black # black
vimPlugins.nvim-treesitter-parsers.typescript # vimPlugins.nvim-treesitter-parsers.typescript
# ags_dependencies # ags_dependencies
bash # bash
coreutils # coreutils
dart-sass # dart-sass
gawk # gawk
imagemagick # imagemagick
procps # procps
util-linux # util-linux
gnome.gnome-control-center # gnome.gnome-control-center
mission-center # mission-center
overskride # overskride
wlogout # wlogout
]; ];
}; };
} }

View File

@@ -1,19 +1,17 @@
{pkgs, ...}: { {pkgs, ...}: {
# greetd display manager services.greetd = {
services.greetd = let
session = {
command = "${pkgs.hyprland}/bin/Hyprland";
user = "cnst";
};
in {
enable = true; enable = true;
settings = { settings = {
terminal.vt = 1; # AUTOLOGIN
default_session = session; # initial_session = {
initial_session = session; # command = "${pkgs.hyprland}/bin/Hyprland";
# user = "cnst";
# };
default_session = {
command = "${pkgs.greetd.tuigreet}/bin/tuigreet -r --remember-session --asterisks";
user = "cnst";
};
}; };
}; };
# unlock GPG keyring on login
security.pam.services.greetd.enableGnomeKeyring = true; security.pam.services.greetd.enableGnomeKeyring = true;
} }

View File

@@ -1,7 +1,6 @@
{config, ...}: { {config, ...}: {
services.xserver = { services.xserver = {
enable = true; enable = true;
desktopManager.gnome.enable = true;
videoDrivers = ["amdgpu"]; videoDrivers = ["amdgpu"];
xkb = { xkb = {
extraLayouts.hhkbse = { extraLayouts.hhkbse = {