mirror of
https://github.com/XNM1/linux-nixos-hyprland-config-dotfiles.git
synced 2025-09-15 09:45:58 +03:00
feat: update hyprland, helix, bootloader and other configs
Changelog: - autostart: remove hypridle from autostart script - helix: add copilot LSP for Rust, JS/TS variants - hyprland: - Refactor window rules with regex patterns - Update brightness controls for intel_backlight - Adjust pyprland scratchpad configurations - bootloader: - Add i915 kernel modules - Disable initrd verbose logging - greetd: update tuigreet command to use uwsm - hyprland: enable hyprlock, hypridle services - linux-kernel: add security hardening params - ollama: add new LLM models (gemma3, deepcoder) - utils: add sqlx-cli and kitty - kitty: add config - virtualisation: - Add lima, nerdctl - vpn: - Enable mullvad VPN - Add mullvad and tor browsers - stylus-themes: update to latest
This commit is contained in:
@@ -1,3 +1,3 @@
|
|||||||
function autostart
|
function autostart
|
||||||
pypr & hyprpaper & waybar & poweralertd & wl-paste --type text --watch cliphist store & wl-paste --type image --watch cliphist store & wl-clip-persist --clipboard regular & avizo-service & systemctl --user start psi-notify & hypridle
|
pypr & hyprpaper & waybar & poweralertd -s & wl-paste --type text --watch cliphist store & wl-paste --type image --watch cliphist store & wl-clip-persist --clipboard regular & avizo-service & systemctl --user start psi-notify
|
||||||
end
|
end
|
||||||
|
@@ -22,7 +22,7 @@ args = ["--stdio"]
|
|||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
name = "rust"
|
name = "rust"
|
||||||
language-servers = [ "rust-analyzer" ]
|
language-servers = [ "rust-analyzer", "copilot" ]
|
||||||
|
|
||||||
[language-server.rust-analyzer.config]
|
[language-server.rust-analyzer.config]
|
||||||
checkOnSave = { command = "clippy" }
|
checkOnSave = { command = "clippy" }
|
||||||
@@ -35,21 +35,25 @@ language-servers = [ "emmet-lsp", "vscode-html-language-server" ]
|
|||||||
name = "javascript"
|
name = "javascript"
|
||||||
auto-format = true
|
auto-format = true
|
||||||
indent = { tab-width = 4, unit = " " }
|
indent = { tab-width = 4, unit = " " }
|
||||||
|
language-servers = [ "typescript-language-server", "copilot" ]
|
||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
name = "jsx"
|
name = "jsx"
|
||||||
auto-format = true
|
auto-format = true
|
||||||
indent = { tab-width = 4, unit = " " }
|
indent = { tab-width = 4, unit = " " }
|
||||||
|
language-servers = [ "typescript-language-server", "copilot" ]
|
||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
name = "typescript"
|
name = "typescript"
|
||||||
auto-format = true
|
auto-format = true
|
||||||
indent = { tab-width = 4, unit = " " }
|
indent = { tab-width = 4, unit = " " }
|
||||||
|
language-servers = [ "typescript-language-server", "copilot" ]
|
||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
name = "tsx"
|
name = "tsx"
|
||||||
auto-format = true
|
auto-format = true
|
||||||
indent = { tab-width = 4, unit = " " }
|
indent = { tab-width = 4, unit = " " }
|
||||||
|
language-servers = [ "typescript-language-server", "copilot" ]
|
||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
name = "config"
|
name = "config"
|
||||||
|
@@ -164,24 +164,31 @@ device {
|
|||||||
|
|
||||||
# Example windowrule v1
|
# Example windowrule v1
|
||||||
# windowrule = float, ^(kitty)$
|
# windowrule = float, ^(kitty)$
|
||||||
windowrule = opaque, brave
|
windowrule = float, title:.*mpv$
|
||||||
windowrule = float, imv
|
windowrule = opaque, title:.*mpv$
|
||||||
windowrule = opaque, imv
|
windowrule = size 50% 50%, title:.*mpv$
|
||||||
windowrule = float, title:(Media viewer)
|
windowrule = float, content:video
|
||||||
windowrule = opaque, title:(Media viewer)
|
windowrule = opaque, content:video
|
||||||
windowrule = opaque, title:(YouTube Music)
|
windowrule = size 50% 50%, content:video
|
||||||
windowrule = opaque, title:(qutebrowser)
|
|
||||||
windowrule = opaque, title:(Slack)
|
windowrule = float, title:.*imv.*
|
||||||
windowrule = opaque, telegram
|
windowrule = opaque, title:.*imv.*
|
||||||
windowrule = float, mpv
|
windowrule = size 70% 70%, title:.*imv.*
|
||||||
windowrule = opaque, mpv
|
windowrule = float, content:photo
|
||||||
windowrule = opaque, swappy
|
windowrule = opaque, content:photo
|
||||||
windowrule = center 1, swappy
|
windowrule = size 70% 70%, content:photo
|
||||||
windowrule = stayfocused, swappy
|
|
||||||
# windowrule = size 50% 50%, mpv
|
windowrule = float, title:.*\.pdf$
|
||||||
# Example windowrule v2
|
windowrule = opaque, title:.*\.pdf$
|
||||||
# windowrulev2 = float,class:^(kitty)$,title:^(kitty)$
|
windowrule = maximize, title:.*\.pdf$
|
||||||
# See https://wiki.hyprland.org/Configuring/Window-Rules/ for more
|
|
||||||
|
windowrule = opaque, title:.*YouTube - Brave$
|
||||||
|
|
||||||
|
windowrule = opaque, title:swappy
|
||||||
|
windowrule = center 1, title:swappy
|
||||||
|
windowrule = stayfocused, title:swappy
|
||||||
|
|
||||||
|
windowrule = opaque, title:^TelegramDesktop$
|
||||||
|
|
||||||
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
# See https://wiki.hyprland.org/Configuring/Keywords/ for more
|
||||||
$mainMod = SUPER
|
$mainMod = SUPER
|
||||||
@@ -236,11 +243,11 @@ submap=reset
|
|||||||
|
|
||||||
# Scrachpads
|
# Scrachpads
|
||||||
bind = $mainMod CTRL, T, exec, pypr toggle term
|
bind = $mainMod CTRL, T, exec, pypr toggle term
|
||||||
$dropterm = ^(wezterm_dropdown)$
|
$dropterm = title:^wezterm_dropdown$
|
||||||
windowrule = float, $dropterm
|
windowrule = float, $dropterm
|
||||||
|
|
||||||
bind = $mainMod CTRL, V, exec, pypr toggle volume
|
bind = $mainMod CTRL, V, exec, pypr toggle volume
|
||||||
$volume_sidemenu = ^(pavucontrol)$
|
$volume_sidemenu = title:^Volume Control$
|
||||||
windowrule = float, $volume_sidemenu
|
windowrule = float, $volume_sidemenu
|
||||||
|
|
||||||
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
# Example binds, see https://wiki.hyprland.org/Configuring/Binds/ for more
|
||||||
@@ -294,8 +301,8 @@ bind = , XF86AudioLowerVolume, exec, volumectl -u down
|
|||||||
bind = , XF86AudioMute, exec, volumectl toggle-mute
|
bind = , XF86AudioMute, exec, volumectl toggle-mute
|
||||||
bind = , XF86AudioMicMute, exec, volumectl -m toggle-mute
|
bind = , XF86AudioMicMute, exec, volumectl -m toggle-mute
|
||||||
|
|
||||||
bind = , XF86MonBrightnessUp, exec, lightctl up
|
bind = , XF86MonBrightnessUp, exec, lightctl -D intel_backlight up
|
||||||
bind = , XF86MonBrightnessDown, exec, lightctl down
|
bind = , XF86MonBrightnessDown, exec, lightctl -D intel_backlight down
|
||||||
|
|
||||||
# Move focus with mainMod + arrow keys
|
# Move focus with mainMod + arrow keys
|
||||||
bind = $mainMod, left, movefocus, l
|
bind = $mainMod, left, movefocus, l
|
||||||
|
@@ -8,7 +8,8 @@ plugins = [
|
|||||||
]
|
]
|
||||||
|
|
||||||
[scratchpads.term]
|
[scratchpads.term]
|
||||||
command = "wezterm start --always-new-process --class wezterm_dropdown"
|
command = "wezterm start --always-new-process"
|
||||||
|
class = "wezterm_dropdown"
|
||||||
animation = "fromTop"
|
animation = "fromTop"
|
||||||
unfocus = "hide"
|
unfocus = "hide"
|
||||||
excludes = "*"
|
excludes = "*"
|
||||||
@@ -16,7 +17,7 @@ lazy = true
|
|||||||
multi = false
|
multi = false
|
||||||
|
|
||||||
[scratchpads.volume]
|
[scratchpads.volume]
|
||||||
command = "pavucontrol --class volume_sidemenu"
|
command = "pavucontrol"
|
||||||
animation = "fromLeft"
|
animation = "fromLeft"
|
||||||
class = "volume_sidemenu"
|
class = "volume_sidemenu"
|
||||||
size = "40% 70%"
|
size = "40% 70%"
|
||||||
|
2683
home/.config/kitty/kitty.conf
Normal file
2683
home/.config/kitty/kitty.conf
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
@@ -6,7 +6,10 @@
|
|||||||
boot.loader.efi.canTouchEfiVariables = true;
|
boot.loader.efi.canTouchEfiVariables = true;
|
||||||
boot.loader.timeout = 2;
|
boot.loader.timeout = 2;
|
||||||
boot.initrd.enable = true;
|
boot.initrd.enable = true;
|
||||||
|
boot.initrd.verbose = false;
|
||||||
boot.initrd.systemd.enable = true;
|
boot.initrd.systemd.enable = true;
|
||||||
|
boot.initrd.availableKernelModules = [ "i915" ];
|
||||||
|
boot.initrd.kernelModules = [ "i915" ];
|
||||||
boot.consoleLogLevel = 3;
|
boot.consoleLogLevel = 3;
|
||||||
boot.plymouth = {
|
boot.plymouth = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
@@ -6,12 +6,21 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
default_session = {
|
default_session = {
|
||||||
command = "${pkgs.greetd.tuigreet}/bin/tuigreet --time --time-format '%I:%M %p | %a • %h | %F' --cmd Hyprland";
|
command = "${pkgs.greetd.tuigreet}/bin/tuigreet \
|
||||||
|
--time --time-format '%I:%M %p | %a • %h | %F' \
|
||||||
|
--cmd 'uwsm start hyprland'";
|
||||||
user = "greeter";
|
user = "greeter";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
users.users.greeter = {
|
||||||
|
isNormalUser = false;
|
||||||
|
description = "greetd greeter user";
|
||||||
|
extraGroups = [ "video" "audio" ];
|
||||||
|
linger = true;
|
||||||
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
greetd.tuigreet
|
greetd.tuigreet
|
||||||
];
|
];
|
||||||
|
@@ -50,7 +50,7 @@
|
|||||||
./mosh.nix
|
./mosh.nix
|
||||||
./firewall.nix
|
./firewall.nix
|
||||||
./dns.nix
|
./dns.nix
|
||||||
# ./vpn.nix
|
./vpn.nix
|
||||||
./users.nix
|
./users.nix
|
||||||
./virtualisation.nix
|
./virtualisation.nix
|
||||||
./programming-languages.nix
|
./programming-languages.nix
|
||||||
|
@@ -2,10 +2,16 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
# Enable Hyprland
|
# Enable Hyprland
|
||||||
programs.hyprland.enable = true;
|
programs.hyprland = {
|
||||||
|
enable = true;
|
||||||
|
withUWSM = true;
|
||||||
|
};
|
||||||
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
environment.sessionVariables.NIXOS_OZONE_WL = "1";
|
||||||
environment.sessionVariables.WLR_NO_HARDWARE_CURSORS = "1";
|
environment.sessionVariables.WLR_NO_HARDWARE_CURSORS = "1";
|
||||||
|
|
||||||
|
programs.hyprlock.enable = true;
|
||||||
|
services.hypridle.enable = true;
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
pyprland
|
pyprland
|
||||||
hyprpicker
|
hyprpicker
|
||||||
@@ -15,6 +21,7 @@
|
|||||||
hyprpaper
|
hyprpaper
|
||||||
|
|
||||||
inputs.wezterm.packages.${pkgs.system}.default
|
inputs.wezterm.packages.${pkgs.system}.default
|
||||||
|
kitty
|
||||||
cool-retro-term
|
cool-retro-term
|
||||||
|
|
||||||
starship
|
starship
|
||||||
|
@@ -2,10 +2,18 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
# Linux Kernel
|
# Linux Kernel
|
||||||
|
security.forcePageTableIsolation = true;
|
||||||
|
security.lockKernelModules = true;
|
||||||
|
# security.protectKernelImage = true;
|
||||||
|
security.unprivilegedUsernsClone = true;
|
||||||
|
security.virtualisation.flushL1DataCache = "cond";
|
||||||
boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen;
|
boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen;
|
||||||
boot.kernelParams = [
|
boot.kernelParams = [
|
||||||
"splash"
|
|
||||||
"quiet"
|
"quiet"
|
||||||
|
"splash"
|
||||||
|
"loglevel=3"
|
||||||
|
"rd.udev.log_priority=3"
|
||||||
|
"systemd.show_status=auto"
|
||||||
"fbcon=nodefer"
|
"fbcon=nodefer"
|
||||||
"vt.global_cursor_default=0"
|
"vt.global_cursor_default=0"
|
||||||
"kernel.modules_disabled=1"
|
"kernel.modules_disabled=1"
|
||||||
|
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
services.ollama = {
|
services.ollama = {
|
||||||
enable = true;
|
enable = true;
|
||||||
loadModels = [ "llama3.2:3b" "llama3.2-vision:11b" "phi4:14b" "deepseek-r1:7b" "dolphin3:8b" "smallthinker:3b" "nomic-embed-text" ];
|
loadModels = [ "llama3.2:3b" "llama3.2-vision:11b" "phi4:14b" "deepseek-r1:7b" "dolphin3:8b" "smallthinker:3b" "nomic-embed-text" "gemma3:12b" "gemma3:27b" "deepcoder:14b" ];
|
||||||
acceleration = "cuda";
|
acceleration = "cuda";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -14,5 +14,6 @@
|
|||||||
surrealdb-migrations
|
surrealdb-migrations
|
||||||
surrealist
|
surrealist
|
||||||
trunk
|
trunk
|
||||||
|
sqlx-cli
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@@ -1,6 +1,12 @@
|
|||||||
{ pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
{
|
{
|
||||||
|
# Enable Kasm
|
||||||
|
# services.kasmweb = {
|
||||||
|
# enable = true;
|
||||||
|
# listenPort = 9999;
|
||||||
|
# };
|
||||||
|
|
||||||
# Enable Containerd
|
# Enable Containerd
|
||||||
# virtualisation.containerd.enable = true;
|
# virtualisation.containerd.enable = true;
|
||||||
|
|
||||||
@@ -15,6 +21,7 @@
|
|||||||
# };
|
# };
|
||||||
# users.extraGroups.docker.members = [ "xnm" ];
|
# users.extraGroups.docker.members = [ "xnm" ];
|
||||||
|
|
||||||
|
|
||||||
# Enable Podman
|
# Enable Podman
|
||||||
virtualisation.podman = {
|
virtualisation.podman = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@@ -31,7 +38,7 @@
|
|||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
nvidia-docker
|
nvidia-docker
|
||||||
# nerdctl
|
nerdctl
|
||||||
|
|
||||||
# firecracker
|
# firecracker
|
||||||
# firectl
|
# firectl
|
||||||
@@ -39,6 +46,7 @@
|
|||||||
|
|
||||||
distrobox
|
distrobox
|
||||||
qemu
|
qemu
|
||||||
|
lima
|
||||||
|
|
||||||
podman-compose
|
podman-compose
|
||||||
podman-tui
|
podman-tui
|
||||||
|
@@ -7,5 +7,8 @@
|
|||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
mullvad-closest
|
mullvad-closest
|
||||||
|
|
||||||
|
mullvad-browser
|
||||||
|
tor-browser
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user