Compare commits
5 Commits
157ba06453
...
Specialisa
| Author | SHA1 | Date | |
|---|---|---|---|
| 616d40d98c | |||
| a547950e45 | |||
| a8a718a5ce | |||
| 74aa841812 | |||
| 69d1d05563 |
108
flake.lock
generated
108
flake.lock
generated
@ -198,6 +198,64 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"niri": {
|
||||||
|
"inputs": {
|
||||||
|
"niri-stable": "niri-stable",
|
||||||
|
"niri-unstable": "niri-unstable",
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
],
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
|
"xwayland-satellite-stable": "xwayland-satellite-stable",
|
||||||
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763967518,
|
||||||
|
"narHash": "sha256-Gt0QlWp3r5JF+w2iZMbbot58UIR66fPH8LuHRxmHjsA=",
|
||||||
|
"owner": "sodiboo",
|
||||||
|
"repo": "niri-flake",
|
||||||
|
"rev": "69c6216ddacf8a708e4c6e51273772226fab3bc2",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "sodiboo",
|
||||||
|
"repo": "niri-flake",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1756556321,
|
||||||
|
"narHash": "sha256-RLD89dfjN0RVO86C/Mot0T7aduCygPGaYbog566F0Qo=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "01be0e65f4eb91a9cd624ac0b76aaeab765c7294",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"ref": "v25.08",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"niri-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763964256,
|
||||||
|
"narHash": "sha256-TNtOfYXppR5ln5Go8ncQFMs5+xa3LqJWkaQq22ymAcI=",
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"rev": "79e41d7d88de44356b48400515076bf5593544e8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "YaLTeR",
|
||||||
|
"repo": "niri",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-flatpak": {
|
"nix-flatpak": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1754777568,
|
"lastModified": 1754777568,
|
||||||
@ -244,6 +302,22 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763622513,
|
||||||
|
"narHash": "sha256-1jQnuyu82FpiSxowrF/iFK6Toh9BYprfDqfs4BB+19M=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "c58bc7f5459328e4afac201c5c4feb7c818d604b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-25.05",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nixpkgs_2": {
|
"nixpkgs_2": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1760423683,
|
"lastModified": 1760423683,
|
||||||
@ -356,6 +430,7 @@
|
|||||||
"inputs": {
|
"inputs": {
|
||||||
"grub2-themes": "grub2-themes",
|
"grub2-themes": "grub2-themes",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
|
"niri": "niri",
|
||||||
"nix-flatpak": "nix-flatpak",
|
"nix-flatpak": "nix-flatpak",
|
||||||
"nixos-hardware": "nixos-hardware",
|
"nixos-hardware": "nixos-hardware",
|
||||||
"nixpkgs": "nixpkgs_2",
|
"nixpkgs": "nixpkgs_2",
|
||||||
@ -512,6 +587,39 @@
|
|||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"xwayland-satellite-stable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1755491097,
|
||||||
|
"narHash": "sha256-m+9tUfsmBeF2Gn4HWa6vSITZ4Gz1eA1F5Kh62B0N4oE=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "388d291e82ffbc73be18169d39470f340707edaa",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"ref": "v0.7",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"xwayland-satellite-unstable": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1763704521,
|
||||||
|
"narHash": "sha256-ceYEV6PnvUN8Zixao4gpPuN+VT3B0SlAXKuPNHZhqUY=",
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"rev": "f379ff5722a821212eb59ada9cf8e51cb3654aad",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "Supreeeme",
|
||||||
|
"repo": "xwayland-satellite",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"zen-browser": {
|
"zen-browser": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
|
|||||||
13
flake.nix
13
flake.nix
@ -26,6 +26,11 @@
|
|||||||
url = "github:outfoxxed/quickshell";
|
url = "github:outfoxxed/quickshell";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
niri = {
|
||||||
|
url = "github:sodiboo/niri-flake";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
noctalia = {
|
noctalia = {
|
||||||
url = "github:noctalia-dev/noctalia-shell";
|
url = "github:noctalia-dev/noctalia-shell";
|
||||||
@ -38,7 +43,7 @@
|
|||||||
grub2-themes.url = "github:vinceliuice/grub2-themes";
|
grub2-themes.url = "github:vinceliuice/grub2-themes";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs@{ nixpkgs, home-manager, plasma-manager, nixos-hardware ,stylix, zen-browser, grub2-themes, nix-flatpak, ... }:
|
outputs = inputs@{ nixpkgs, home-manager, plasma-manager, nixos-hardware, stylix, niri, zen-browser, grub2-themes, nix-flatpak, ... }:
|
||||||
let
|
let
|
||||||
username = "cookiez";
|
username = "cookiez";
|
||||||
hostname = "nixos";
|
hostname = "nixos";
|
||||||
@ -64,9 +69,9 @@
|
|||||||
};
|
};
|
||||||
modules = [
|
modules = [
|
||||||
./modules
|
./modules
|
||||||
grub2-themes.nixosModules.default
|
#grub2-themes.nixosModules.default
|
||||||
nix-flatpak.nixosModules.nix-flatpak
|
#nix-flatpak.nixosModules.nix-flatpak
|
||||||
stylix.nixosModules.stylix
|
#stylix.nixosModules.stylix
|
||||||
#Conditional Modules!
|
#Conditional Modules!
|
||||||
] ++ (if hyprlandEnabled then [ ./hyprland/hyprland.nix ] else [ ]) ++ [
|
] ++ (if hyprlandEnabled then [ ./hyprland/hyprland.nix ] else [ ]) ++ [
|
||||||
] ++ (if plasmaEnabled then [ ./plasma/plasma.nix ] else [ ]) ++ [
|
] ++ (if plasmaEnabled then [ ./plasma/plasma.nix ] else [ ]) ++ [
|
||||||
|
|||||||
@ -2,7 +2,6 @@
|
|||||||
{
|
{
|
||||||
|
|
||||||
imports = [
|
imports = [
|
||||||
inputs.noctalia.homeModules.default
|
|
||||||
];
|
];
|
||||||
|
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
@ -20,28 +19,4 @@
|
|||||||
extraConfig = builtins.readFile ./hyprland.conf;
|
extraConfig = builtins.readFile ./hyprland.conf;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
|
||||||
hyprpaper = {
|
|
||||||
enable = true;
|
|
||||||
|
|
||||||
settings = {
|
|
||||||
preload = [
|
|
||||||
"/etc/nixos/other/wallpaper2.png"
|
|
||||||
];
|
|
||||||
|
|
||||||
wallpaper = [
|
|
||||||
"eDP-1,/etc/nixos/other/wallpaper2.png"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
noctalia-shell = {
|
|
||||||
enable = false;
|
|
||||||
systemd.enable = false;
|
|
||||||
};
|
|
||||||
hyprlock.enable = true;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
@ -2,10 +2,13 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./autostart.nix
|
./autostart.nix
|
||||||
|
../modules/noctalia
|
||||||
|
../modules/hyprlock
|
||||||
|
../modules/hyprpaper
|
||||||
];
|
];
|
||||||
|
|
||||||
home-manager.sharedModules = [
|
home-manager.sharedModules = [
|
||||||
./hyprland-home.nix
|
./home.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = with pkgs;
|
environment.systemPackages = with pkgs;
|
||||||
@ -19,7 +22,6 @@
|
|||||||
libnotify
|
libnotify
|
||||||
hyprpaper
|
hyprpaper
|
||||||
sway #Sway Wayland compositor
|
sway #Sway Wayland compositor
|
||||||
inputs.noctalia.packages.${system}.default
|
|
||||||
#kitty #Terminal (Already Included by default)
|
#kitty #Terminal (Already Included by default)
|
||||||
rofi-wayland #Search bar (Meta + Space)
|
rofi-wayland #Search bar (Meta + Space)
|
||||||
yazi
|
yazi
|
||||||
@ -42,7 +44,6 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
# services.noctalia-shell.enable = true;
|
|
||||||
#services.xserver.enable = true;
|
#services.xserver.enable = true;
|
||||||
#services.xserver.displayManager.sddm.enable = true;
|
#services.xserver.displayManager.sddm.enable = true;
|
||||||
|
|
||||||
|
|||||||
@ -12,34 +12,6 @@
|
|||||||
|
|
||||||
{ inputs, config, pkgs, lib, username, host, version, system, ... }:
|
{ inputs, config, pkgs, lib, username, host, version, system, ... }:
|
||||||
{
|
{
|
||||||
stylix = {
|
|
||||||
enable = false;
|
|
||||||
image = ../other/wallpaper2.png;
|
|
||||||
#autoEnable = true; #Auto generate theme based on wallpaper
|
|
||||||
base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-moon.yaml";
|
|
||||||
opacity = {
|
|
||||||
desktop = 0.5;
|
|
||||||
terminal = 0.9;
|
|
||||||
};
|
|
||||||
fonts = {
|
|
||||||
monospace = {
|
|
||||||
package = pkgs.nerd-fonts.jetbrains-mono;
|
|
||||||
name = "JetBrainsMono Nerd Font";
|
|
||||||
};
|
|
||||||
|
|
||||||
sansSerif = {
|
|
||||||
package = pkgs.inter;
|
|
||||||
name = "Inter";
|
|
||||||
};
|
|
||||||
|
|
||||||
serif = {
|
|
||||||
package = pkgs.noto-fonts;
|
|
||||||
name = "Noto Serif";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
targets.grub.enable = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
# in configuration.nix
|
# in configuration.nix
|
||||||
#Assign Swap to the PC
|
#Assign Swap to the PC
|
||||||
#swapDevices = [{
|
#swapDevices = [{
|
||||||
@ -50,39 +22,18 @@
|
|||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
inputs.home-manager.nixosModules.home-manager
|
inputs.home-manager.nixosModules.home-manager
|
||||||
|
inputs.grub2-themes.nixosModules.default
|
||||||
|
inputs.nix-flatpak.nixosModules.nix-flatpak
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
|
|
||||||
|
./firefox.nix
|
||||||
|
./boot-splash.nix
|
||||||
|
./zsh.nix
|
||||||
|
./neovim.nix
|
||||||
|
./packages.nix
|
||||||
|
#./portainer.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
specialisation = {
|
|
||||||
"plasma" = {
|
|
||||||
configuration = {
|
|
||||||
imports = [
|
|
||||||
../plasma/plasma.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.gamemode.enable = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
"hyprland" = {
|
|
||||||
configuration = {
|
|
||||||
imports = [
|
|
||||||
../hyprland/hyprland.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
"minimal" = {
|
|
||||||
inheritParentConfig = false;
|
|
||||||
configuration = {
|
|
||||||
imports = [
|
|
||||||
./minimal.nix
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
boot.loader = {
|
boot.loader = {
|
||||||
systemd-boot.enable = false;
|
systemd-boot.enable = false;
|
||||||
@ -95,7 +46,12 @@
|
|||||||
#devices = [ "nodev" ];
|
#devices = [ "nodev" ];
|
||||||
efiSupport = true;
|
efiSupport = true;
|
||||||
useOSProber = true;
|
useOSProber = true;
|
||||||
#splashImage =
|
#splashImage =
|
||||||
|
# extraConfig = ''
|
||||||
|
# menuentry "NixOS - Default" {
|
||||||
|
# set hidden=1
|
||||||
|
# }
|
||||||
|
# '';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -190,12 +146,29 @@
|
|||||||
openssh.enable = true;
|
openssh.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
fonts.packages = with pkgs; [
|
fonts = {
|
||||||
font-awesome
|
packages = with pkgs; [
|
||||||
nerd-fonts.jetbrains-mono
|
font-awesome
|
||||||
meslo-lgs-nf
|
nerd-fonts.jetbrains-mono
|
||||||
];
|
meslo-lgs-nf
|
||||||
|
noto-fonts
|
||||||
|
noto-fonts-cjk-sans
|
||||||
|
noto-fonts-emoji
|
||||||
|
inter
|
||||||
|
];
|
||||||
|
|
||||||
|
fontconfig = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
defaultFonts = {
|
||||||
|
monospace = [ "JetBrainsMono Nerd Font" "MesloLGS NF" ];
|
||||||
|
sansSerif = [ "Inter" "Noto Sans" ];
|
||||||
|
serif = [ "Noto Serif" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
#In order for dynamically linked executables to work
|
#In order for dynamically linked executables to work
|
||||||
programs.nix-ld.enable = true;
|
programs.nix-ld.enable = true;
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,68 @@
|
|||||||
{ ... }:
|
{ config, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./configuration.nix
|
./configuration.nix
|
||||||
./firefox.nix
|
#./firefox.nix
|
||||||
./boot-splash.nix
|
#./boot-splash.nix
|
||||||
./zsh.nix
|
#./zsh.nix
|
||||||
./neovim.nix
|
#./neovim.nix
|
||||||
./packages.nix
|
#./packages.nix
|
||||||
|
|
||||||
|
#./hardware-configuration.nix
|
||||||
|
#../plasma/plasma.nix
|
||||||
|
#../hyprland/hyprland.nix
|
||||||
|
#../niri/niri.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
specialisation = {
|
||||||
|
"plasma" = {
|
||||||
|
inheritParentConfig = false;
|
||||||
|
configuration = {
|
||||||
|
imports = [
|
||||||
|
../plasma/plasma.nix
|
||||||
|
./configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.gamemode.enable = true;
|
||||||
|
|
||||||
|
environment.etc."nixos-tags".text = "plasma";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"hyprland" = {
|
||||||
|
inheritParentConfig = false;
|
||||||
|
configuration = {
|
||||||
|
imports = [
|
||||||
|
../hyprland/hyprland.nix
|
||||||
|
./configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.etc."nixos-tags".text = "hyprland";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"minimal" = {
|
||||||
|
inheritParentConfig = false;
|
||||||
|
configuration = {
|
||||||
|
imports = [
|
||||||
|
./minimal.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.etc."nixos-tags".text = "minimal";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"niri" = {
|
||||||
|
inheritParentConfig = false;
|
||||||
|
configuration = {
|
||||||
|
imports = [
|
||||||
|
../niri/niri.nix
|
||||||
|
./configuration.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.etc."nixos-tags".text = "niri";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
{ pkgs, ...}:
|
{ pkgs, username, ...}:
|
||||||
{
|
{
|
||||||
xdg = {
|
xdg = {
|
||||||
desktopEntries.youtube = {
|
desktopEntries.youtube = {
|
||||||
@ -23,7 +23,7 @@
|
|||||||
terminal = false;
|
terminal = false;
|
||||||
categories = [ "System" "TerminalEmulator" ];
|
categories = [ "System" "TerminalEmulator" ];
|
||||||
|
|
||||||
icon = "/etc/nixos/other/kitty.app.png";
|
icon = "/home/${username}/NixOS/other/kitty.app.png";
|
||||||
};
|
};
|
||||||
|
|
||||||
desktopEntries."org.kde.kinfocenter" = {
|
desktopEntries."org.kde.kinfocenter" = {
|
||||||
|
|||||||
@ -35,9 +35,9 @@
|
|||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
#Disabled Because of stylix
|
#Disabled Because of stylix
|
||||||
background_opacity = "0.2"; #The higher the value, the darker the console
|
background_opacity = lib.mkForce "0.2"; #The higher the value, the darker the console
|
||||||
|
|
||||||
background_blur = 10;
|
background_blur = lib.mkForce 10;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
13
modules/hyprlock/default.nix
Normal file
13
modules/hyprlock/default.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ config, inputs, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.sharedModules = [
|
||||||
|
./home.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs;
|
||||||
|
[
|
||||||
|
];
|
||||||
|
}
|
||||||
10
modules/hyprlock/home.nix
Normal file
10
modules/hyprlock/home.nix
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
{pkgs, inputs, username, ...}:
|
||||||
|
{
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
hyprlock.enable = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
13
modules/hyprpaper/default.nix
Normal file
13
modules/hyprpaper/default.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{ config, inputs, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.sharedModules = [
|
||||||
|
./home.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs;
|
||||||
|
[
|
||||||
|
];
|
||||||
|
}
|
||||||
22
modules/hyprpaper/home.nix
Normal file
22
modules/hyprpaper/home.nix
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
{pkgs, inputs, username, ...}:
|
||||||
|
{
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
];
|
||||||
|
|
||||||
|
services = {
|
||||||
|
hyprpaper = {
|
||||||
|
enable = true;
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
preload = [
|
||||||
|
"/home/${username}/NixOS/other/wallpaper2.png"
|
||||||
|
];
|
||||||
|
|
||||||
|
wallpaper = [
|
||||||
|
"eDP-1,/home/${username}/NixOS/other/wallpaper2.png"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -10,6 +10,7 @@
|
|||||||
[
|
[
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./zsh.nix
|
./zsh.nix
|
||||||
|
#./ncli.nix
|
||||||
#./neovim.nix
|
#./neovim.nix
|
||||||
./packages.nix
|
./packages.nix
|
||||||
];
|
];
|
||||||
|
|||||||
@ -125,10 +125,27 @@ in
|
|||||||
;;
|
;;
|
||||||
rebuild)
|
rebuild)
|
||||||
handle_backups
|
handle_backups
|
||||||
echo "Starting NixOS rebuild for current host: $HOST"
|
geno=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | grep current | awk '{print $1}')
|
||||||
|
echo "Starting NixOS rebuild for current host: $HOST on generation: $geno"
|
||||||
cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
|
cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
|
||||||
if sudo nixos-rebuild switch --flake ".#$HOST"; then
|
|
||||||
|
current=""
|
||||||
|
if [ -f /etc/nixos-tags ]; then
|
||||||
|
current=$(cat /etc/nixos-tags)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if sudo nixos-rebuild switch --flake .; then
|
||||||
echo "✓ Rebuild finished successfully for $HOST"
|
echo "✓ Rebuild finished successfully for $HOST"
|
||||||
|
|
||||||
|
if [ -n "$current" ]; then
|
||||||
|
sudo /run/current-system/specialisation/$current/bin/switch-to-configuration test
|
||||||
|
else
|
||||||
|
echo "No specialization tag found, staying on default system."
|
||||||
|
fi
|
||||||
|
|
||||||
|
genn=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | grep current | awk '{print $1}')
|
||||||
|
echo "Running on new generation: $geno -> $genn"
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "✗ Rebuild failed for $HOST" >&2
|
echo "✗ Rebuild failed for $HOST" >&2
|
||||||
exit 1
|
exit 1
|
||||||
@ -136,7 +153,8 @@ in
|
|||||||
;;
|
;;
|
||||||
update)
|
update)
|
||||||
handle_backups
|
handle_backups
|
||||||
echo "Updating flake and rebuilding system for current host: $HOST"
|
geno=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | grep current | awk '{print $1}')
|
||||||
|
echo "Updating flake and rebuilding system for current host: $HOST on generation: $geno"
|
||||||
cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
|
cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
|
||||||
|
|
||||||
echo "Updating flake..."
|
echo "Updating flake..."
|
||||||
@ -147,9 +165,30 @@ in
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Rebuilding system..."
|
|
||||||
if sudo nixos-rebuild switch --flake ".#$HOST"; then
|
current=""
|
||||||
|
if [ -f /etc/nixos-tags ]; then
|
||||||
|
current=$(cat /etc/nixos-tags)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$current" ]; then
|
||||||
|
echo "Rebuilding system... Current specialization: $current"
|
||||||
|
else
|
||||||
|
echo "Rebuilding system... Staying on current specialization"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if sudo nixos-rebuild switch --flake .; then
|
||||||
echo "✓ Update and rebuild finished successfully for $HOST"
|
echo "✓ Update and rebuild finished successfully for $HOST"
|
||||||
|
|
||||||
|
if [ -n "$current" ]; then
|
||||||
|
sudo /run/current-system/specialisation/$current/bin/switch-to-configuration test
|
||||||
|
else
|
||||||
|
echo "No specialization tag found, staying on default system."
|
||||||
|
fi
|
||||||
|
|
||||||
|
genn=$(sudo nix-env --list-generations --profile /nix/var/nix/profiles/system | grep current | awk '{print $1}')
|
||||||
|
echo "Running on new generation: $geno -> $genn"
|
||||||
|
|
||||||
else
|
else
|
||||||
echo "✗ Update and rebuild failed for $HOST" >&2
|
echo "✗ Update and rebuild failed for $HOST" >&2
|
||||||
exit 1
|
exit 1
|
||||||
@ -171,6 +210,41 @@ in
|
|||||||
|
|
||||||
git add -A && git commit -m "$commit_msg"
|
git add -A && git commit -m "$commit_msg"
|
||||||
;;
|
;;
|
||||||
|
home-backups)
|
||||||
|
ls -a ~ | grep backup
|
||||||
|
;;
|
||||||
|
switch)
|
||||||
|
current=""
|
||||||
|
if [ -f /etc/nixos-tags ]; then
|
||||||
|
current=$(cat /etc/nixos-tags)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$#" -ge 2 ]; then
|
||||||
|
spec_name="$2"
|
||||||
|
if [ -n "$current" ]; then
|
||||||
|
echo "Already on specialization: $current. Cannot switch directly to '$spec_name'. Please reboot or return to default first."
|
||||||
|
else
|
||||||
|
if [ -d "/run/current-system/specialisation/$spec_name" ]; then
|
||||||
|
echo "Switching to specialization: $spec_name"
|
||||||
|
sudo /run/current-system/specialisation/$spec_name/bin/switch-to-configuration test
|
||||||
|
else
|
||||||
|
echo "Error: Specialization '$spec_name' not found."
|
||||||
|
echo "Available specializations:"
|
||||||
|
ls /run/current-system/specialisation/
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [ -n "$current" ]; then
|
||||||
|
echo "Already on a specialization: $current. To switch, please reboot, or use 'sudo nixos-rebuild switch --flake .' to get back to default, and then switch after."
|
||||||
|
else
|
||||||
|
specs=$(ls /run/current-system/specialisation/)
|
||||||
|
echo "Specializations available:"
|
||||||
|
echo "$specs"
|
||||||
|
echo ""
|
||||||
|
echo "To switch to a specialization, run: 'ncli switch <tag>'"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
push)
|
push)
|
||||||
cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
|
cd "$HOME/$PROJECT" || { echo "Error: Could not change to $HOME/$PROJECT"; exit 1; }
|
||||||
git push origin $(git branch --show-current)
|
git push origin $(git branch --show-current)
|
||||||
|
|||||||
14
modules/noctalia/default.nix
Normal file
14
modules/noctalia/default.nix
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{ config, inputs, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.sharedModules = [
|
||||||
|
./home.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs;
|
||||||
|
[
|
||||||
|
inputs.noctalia.packages.${system}.default
|
||||||
|
];
|
||||||
|
}
|
||||||
13
modules/noctalia/home.nix
Normal file
13
modules/noctalia/home.nix
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
{pkgs, inputs, ...}:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
inputs.noctalia.homeModules.default
|
||||||
|
];
|
||||||
|
|
||||||
|
programs = {
|
||||||
|
noctalia-shell = {
|
||||||
|
enable = true;
|
||||||
|
systemd.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -1,7 +1,7 @@
|
|||||||
{config, pkgs, libs, inputs, nix-flatpak, ...}:
|
{config, pkgs, libs, inputs, nix-flatpak, ...}:
|
||||||
{
|
{
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
#Essenteals (CLI Only)
|
#Essentials (CLI Only)
|
||||||
wget #A tool for quickly downloading things from the Web
|
wget #A tool for quickly downloading things from the Web
|
||||||
micro-with-xclip #Micro text editor with xclip for clipboard
|
micro-with-xclip #Micro text editor with xclip for clipboard
|
||||||
thefuck #Error correction in case commands are wrong. Type: 'fuck'
|
thefuck #Error correction in case commands are wrong. Type: 'fuck'
|
||||||
@ -34,6 +34,7 @@
|
|||||||
plymouth
|
plymouth
|
||||||
mesa
|
mesa
|
||||||
fprintd
|
fprintd
|
||||||
|
nh
|
||||||
|
|
||||||
#Programming
|
#Programming
|
||||||
#jetbrains.pycharm-community #The PyCharm IDE to edit Python code
|
#jetbrains.pycharm-community #The PyCharm IDE to edit Python code
|
||||||
@ -47,7 +48,14 @@
|
|||||||
vscode #Editor for all kinds of programms
|
vscode #Editor for all kinds of programms
|
||||||
nodejs_22
|
nodejs_22
|
||||||
|
|
||||||
|
#Hochschule
|
||||||
|
postgresql
|
||||||
|
dbeaver-bin
|
||||||
|
sqlite
|
||||||
|
|
||||||
#Desktop Applications
|
#Desktop Applications
|
||||||
|
drawio
|
||||||
|
jetbrains.datagrip
|
||||||
ryubing
|
ryubing
|
||||||
vlc
|
vlc
|
||||||
#steam
|
#steam
|
||||||
@ -74,11 +82,12 @@
|
|||||||
kdePackages.bluez-qt
|
kdePackages.bluez-qt
|
||||||
moonlight-qt
|
moonlight-qt
|
||||||
kitty
|
kitty
|
||||||
tdrop
|
|
||||||
wmctrl #To Force windows into fullscreen
|
wmctrl #To Force windows into fullscreen
|
||||||
kdePackages.dolphin
|
kdePackages.dolphin
|
||||||
persepolis #Download Manager
|
persepolis #Download Manager
|
||||||
libreoffice-still
|
libreoffice-still
|
||||||
|
kdePackages.kservice
|
||||||
|
qbittorrent
|
||||||
|
|
||||||
#CLI tools
|
#CLI tools
|
||||||
pdftk
|
pdftk
|
||||||
@ -92,6 +101,8 @@
|
|||||||
texliveFull #LaTeX PDF maker
|
texliveFull #LaTeX PDF maker
|
||||||
lazygit
|
lazygit
|
||||||
gtypist
|
gtypist
|
||||||
|
powertop
|
||||||
|
file
|
||||||
];
|
];
|
||||||
|
|
||||||
nixpkgs.config.permittedInsecurePackages = [
|
nixpkgs.config.permittedInsecurePackages = [
|
||||||
|
|||||||
32
modules/portainer.nix
Normal file
32
modules/portainer.nix
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
containers.portainer = {
|
||||||
|
autoStart = true;
|
||||||
|
privateNetwork = true;
|
||||||
|
|
||||||
|
config = { pkgs, ... }: {
|
||||||
|
services.docker.enable = true;
|
||||||
|
|
||||||
|
systemd.services.portainer = {
|
||||||
|
description = "Portainer Container Manager";
|
||||||
|
after = [ "docker.service" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
serviceConfig = {
|
||||||
|
ExecStart = ''
|
||||||
|
${pkgs.docker}/bin/docker run \
|
||||||
|
-d \
|
||||||
|
--name portainer \
|
||||||
|
-p 9000:9000 \
|
||||||
|
-p 9443:9443 \
|
||||||
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||||||
|
-v portainer_data:/data \
|
||||||
|
portainer/portainer-ce:latest
|
||||||
|
'';
|
||||||
|
ExecStop = "${pkgs.docker}/bin/docker stop portainer";
|
||||||
|
Restart = "unless-stopped";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking.firewall.allowedTCPPorts = [ 9000 9443 ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
36
modules/stylix.nix
Normal file
36
modules/stylix.nix
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
{ pkgs, inputs, ... }:
|
||||||
|
{
|
||||||
|
|
||||||
|
imports =
|
||||||
|
[
|
||||||
|
inputs.stylix.nixosModules.stylix
|
||||||
|
];
|
||||||
|
|
||||||
|
stylix = {
|
||||||
|
enable = true;
|
||||||
|
image = ../other/wallpaper2.png;
|
||||||
|
#autoEnable = true; #Auto generate theme based on wallpaper
|
||||||
|
base16Scheme = "${pkgs.base16-schemes}/share/themes/tokyo-night-moon.yaml";
|
||||||
|
opacity = {
|
||||||
|
desktop = 0.5;
|
||||||
|
terminal = 0.9;
|
||||||
|
};
|
||||||
|
fonts = {
|
||||||
|
monospace = {
|
||||||
|
package = pkgs.nerd-fonts.jetbrains-mono;
|
||||||
|
name = "JetBrainsMono Nerd Font";
|
||||||
|
};
|
||||||
|
|
||||||
|
sansSerif = {
|
||||||
|
package = pkgs.inter;
|
||||||
|
name = "Inter";
|
||||||
|
};
|
||||||
|
|
||||||
|
serif = {
|
||||||
|
package = pkgs.noto-fonts;
|
||||||
|
name = "Noto Serif";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
targets.grub.enable = false;
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
{ config, pkgs, ... }: {
|
{ config, pkgs, username, ... }: {
|
||||||
programs.zsh = {
|
programs.zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
||||||
@ -8,7 +8,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
shellInit = ''
|
shellInit = ''
|
||||||
source /etc/nixos/other/aliases
|
source /home/${username}/NixOS/other/aliases
|
||||||
'';
|
'';
|
||||||
|
|
||||||
#To reset powerlevel10k, write 'p10k configure' in shell!
|
#To reset powerlevel10k, write 'p10k configure' in shell!
|
||||||
|
|||||||
651
niri/home.nix
Normal file
651
niri/home.nix
Normal file
@ -0,0 +1,651 @@
|
|||||||
|
{pkgs, inputs, ...}:
|
||||||
|
{
|
||||||
|
|
||||||
|
imports = [
|
||||||
|
inputs.niri.homeModules.niri
|
||||||
|
];
|
||||||
|
|
||||||
|
programs.niri = {
|
||||||
|
package = pkgs.niri;
|
||||||
|
enable = true;
|
||||||
|
#xwayland.enable = true;
|
||||||
|
# config = ''
|
||||||
|
# binds {
|
||||||
|
# Super+Return { spawn "kitty"; }
|
||||||
|
# Super+Space { spawn "fuzzel"; }
|
||||||
|
# Super+Q { close-window; }
|
||||||
|
# Super+Left { focus-column-left; }
|
||||||
|
# Super+Right { focus-column-right; }
|
||||||
|
# Super+Up { focus-workspace-up; }
|
||||||
|
# Super+Down { focus-workspace-down; }
|
||||||
|
# Super+L { spawn "hyprlock"; }
|
||||||
|
# Super+Shift+E { "quit"; }
|
||||||
|
# }
|
||||||
|
# '';
|
||||||
|
config = ''
|
||||||
|
// This config is in the KDL format: https://kdl.dev
|
||||||
|
// "/-" comments out the following node.
|
||||||
|
// Check the wiki for a full description of the configuration:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Introduction
|
||||||
|
|
||||||
|
// Input device configuration.
|
||||||
|
// Find the full list of options on the wiki:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Input
|
||||||
|
input {
|
||||||
|
keyboard {
|
||||||
|
xkb {
|
||||||
|
// You can set rules, model, layout, variant and options.
|
||||||
|
// For more information, see xkeyboard-config(7).
|
||||||
|
|
||||||
|
// For example:
|
||||||
|
// layout "us,ru"
|
||||||
|
// options "grp:win_space_toggle,compose:ralt,ctrl:nocaps"
|
||||||
|
|
||||||
|
// If this section is empty, niri will fetch xkb settings
|
||||||
|
// from org.freedesktop.locale1. You can control these using
|
||||||
|
// localectl set-x11-keymap.
|
||||||
|
}
|
||||||
|
|
||||||
|
// Enable numlock on startup, omitting this setting disables it.
|
||||||
|
numlock
|
||||||
|
}
|
||||||
|
|
||||||
|
// Next sections include libinput settings.
|
||||||
|
// Omitting settings disables them, or leaves them at their default values.
|
||||||
|
// All commented-out settings here are examples, not defaults.
|
||||||
|
touchpad {
|
||||||
|
// off
|
||||||
|
tap
|
||||||
|
// dwt
|
||||||
|
// dwtp
|
||||||
|
// drag false
|
||||||
|
// drag-lock
|
||||||
|
natural-scroll
|
||||||
|
// accel-speed 0.2
|
||||||
|
// accel-profile "flat"
|
||||||
|
// scroll-method "two-finger"
|
||||||
|
// disabled-on-external-mouse
|
||||||
|
}
|
||||||
|
|
||||||
|
mouse {
|
||||||
|
// off
|
||||||
|
// natural-scroll
|
||||||
|
// accel-speed 0.2
|
||||||
|
// accel-profile "flat"
|
||||||
|
// scroll-method "no-scroll"
|
||||||
|
}
|
||||||
|
|
||||||
|
trackpoint {
|
||||||
|
// off
|
||||||
|
// natural-scroll
|
||||||
|
// accel-speed 0.2
|
||||||
|
// accel-profile "flat"
|
||||||
|
// scroll-method "on-button-down"
|
||||||
|
// scroll-button 273
|
||||||
|
// scroll-button-lock
|
||||||
|
// middle-emulation
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uncomment this to make the mouse warp to the center of newly focused windows.
|
||||||
|
// warp-mouse-to-focus
|
||||||
|
|
||||||
|
// Focus windows and outputs automatically when moving the mouse into them.
|
||||||
|
// Setting max-scroll-amount="0%" makes it work only on windows already fully on screen.
|
||||||
|
// focus-follows-mouse max-scroll-amount="0%"
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can configure outputs by their name, which you can find
|
||||||
|
// by running `niri msg outputs` while inside a niri instance.
|
||||||
|
// The built-in laptop monitor is usually called "eDP-1".
|
||||||
|
// Find more information on the wiki:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Outputs
|
||||||
|
// Remember to uncomment the node by removing "/-"!
|
||||||
|
/-output "eDP-1" {
|
||||||
|
// Uncomment this line to disable this output.
|
||||||
|
// off
|
||||||
|
|
||||||
|
// Resolution and, optionally, refresh rate of the output.
|
||||||
|
// The format is "<width>x<height>" or "<width>x<height>@<refresh rate>".
|
||||||
|
// If the refresh rate is omitted, niri will pick the highest refresh rate
|
||||||
|
// for the resolution.
|
||||||
|
// If the mode is omitted altogether or is invalid, niri will pick one automatically.
|
||||||
|
// Run `niri msg outputs` while inside a niri instance to list all outputs and their modes.
|
||||||
|
mode "1920x1080@120.030"
|
||||||
|
|
||||||
|
// You can use integer or fractional scale, for example use 1.5 for 150% scale.
|
||||||
|
scale 2
|
||||||
|
|
||||||
|
// Transform allows to rotate the output counter-clockwise, valid values are:
|
||||||
|
// normal, 90, 180, 270, flipped, flipped-90, flipped-180 and flipped-270.
|
||||||
|
transform "normal"
|
||||||
|
|
||||||
|
// Position of the output in the global coordinate space.
|
||||||
|
// This affects directional monitor actions like "focus-monitor-left", and cursor movement.
|
||||||
|
// The cursor can only move between directly adjacent outputs.
|
||||||
|
// Output scale and rotation has to be taken into account for positioning:
|
||||||
|
// outputs are sized in logical, or scaled, pixels.
|
||||||
|
// For example, a 3840×2160 output with scale 2.0 will have a logical size of 1920×1080,
|
||||||
|
// so to put another output directly adjacent to it on the right, set its x to 1920.
|
||||||
|
// If the position is unset or results in an overlap, the output is instead placed
|
||||||
|
// automatically.
|
||||||
|
position x=1280 y=0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Settings that influence how windows are positioned and sized.
|
||||||
|
// Find more information on the wiki:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Layout
|
||||||
|
layout {
|
||||||
|
// Set gaps around windows in logical pixels.
|
||||||
|
gaps 16
|
||||||
|
|
||||||
|
// When to center a column when changing focus, options are:
|
||||||
|
// - "never", default behavior, focusing an off-screen column will keep at the left
|
||||||
|
// or right edge of the screen.
|
||||||
|
// - "always", the focused column will always be centered.
|
||||||
|
// - "on-overflow", focusing a column will center it if it doesn't fit
|
||||||
|
// together with the previously focused column.
|
||||||
|
center-focused-column "never"
|
||||||
|
|
||||||
|
// You can customize the widths that "switch-preset-column-width" (Mod+R) toggles between.
|
||||||
|
preset-column-widths {
|
||||||
|
// Proportion sets the width as a fraction of the output width, taking gaps into account.
|
||||||
|
// For example, you can perfectly fit four windows sized "proportion 0.25" on an output.
|
||||||
|
// The default preset widths are 1/3, 1/2 and 2/3 of the output.
|
||||||
|
proportion 0.33333
|
||||||
|
proportion 0.5
|
||||||
|
proportion 0.66667
|
||||||
|
|
||||||
|
// Fixed sets the width in logical pixels exactly.
|
||||||
|
// fixed 1920
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can also customize the heights that "switch-preset-window-height" (Mod+Shift+R) toggles between.
|
||||||
|
// preset-window-heights { }
|
||||||
|
|
||||||
|
// You can change the default width of the new windows.
|
||||||
|
default-column-width { proportion 0.5; }
|
||||||
|
// If you leave the brackets empty, the windows themselves will decide their initial width.
|
||||||
|
// default-column-width {}
|
||||||
|
|
||||||
|
// By default focus ring and border are rendered as a solid background rectangle
|
||||||
|
// behind windows. That is, they will show up through semitransparent windows.
|
||||||
|
// This is because windows using client-side decorations can have an arbitrary shape.
|
||||||
|
//
|
||||||
|
// If you don't like that, you should uncomment `prefer-no-csd` below.
|
||||||
|
// Niri will draw focus ring and border *around* windows that agree to omit their
|
||||||
|
// client-side decorations.
|
||||||
|
//
|
||||||
|
// Alternatively, you can override it with a window rule called
|
||||||
|
// `draw-border-with-background`.
|
||||||
|
|
||||||
|
// You can change how the focus ring looks.
|
||||||
|
focus-ring {
|
||||||
|
// Uncomment this line to disable the focus ring.
|
||||||
|
// off
|
||||||
|
|
||||||
|
// How many logical pixels the ring extends out from the windows.
|
||||||
|
width 4
|
||||||
|
|
||||||
|
// Colors can be set in a variety of ways:
|
||||||
|
// - CSS named colors: "red"
|
||||||
|
// - RGB hex: "#rgb", "#rgba", "#rrggbb", "#rrggbbaa"
|
||||||
|
// - CSS-like notation: "rgb(255, 127, 0)", rgba(), hsl() and a few others.
|
||||||
|
|
||||||
|
// Color of the ring on the active monitor.
|
||||||
|
active-color "#7fc8ff"
|
||||||
|
|
||||||
|
// Color of the ring on inactive monitors.
|
||||||
|
//
|
||||||
|
// The focus ring only draws around the active window, so the only place
|
||||||
|
// where you can see its inactive-color is on other monitors.
|
||||||
|
inactive-color "#505050"
|
||||||
|
|
||||||
|
// You can also use gradients. They take precedence over solid colors.
|
||||||
|
// Gradients are rendered the same as CSS linear-gradient(angle, from, to).
|
||||||
|
// The angle is the same as in linear-gradient, and is optional,
|
||||||
|
// defaulting to 180 (top-to-bottom gradient).
|
||||||
|
// You can use any CSS linear-gradient tool on the web to set these up.
|
||||||
|
// Changing the color space is also supported, check the wiki for more info.
|
||||||
|
//
|
||||||
|
// active-gradient from="#80c8ff" to="#c7ff7f" angle=45
|
||||||
|
|
||||||
|
// You can also color the gradient relative to the entire view
|
||||||
|
// of the workspace, rather than relative to just the window itself.
|
||||||
|
// To do that, set relative-to="workspace-view".
|
||||||
|
//
|
||||||
|
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can also add a border. It's similar to the focus ring, but always visible.
|
||||||
|
border {
|
||||||
|
// The settings are the same as for the focus ring.
|
||||||
|
// If you enable the border, you probably want to disable the focus ring.
|
||||||
|
off
|
||||||
|
|
||||||
|
width 4
|
||||||
|
active-color "#ffc87f"
|
||||||
|
inactive-color "#505050"
|
||||||
|
|
||||||
|
// Color of the border around windows that request your attention.
|
||||||
|
urgent-color "#9b0000"
|
||||||
|
|
||||||
|
// Gradients can use a few different interpolation color spaces.
|
||||||
|
// For example, this is a pastel rainbow gradient via in="oklch longer hue".
|
||||||
|
//
|
||||||
|
// active-gradient from="#e5989b" to="#ffb4a2" angle=45 relative-to="workspace-view" in="oklch longer hue"
|
||||||
|
|
||||||
|
// inactive-gradient from="#505050" to="#808080" angle=45 relative-to="workspace-view"
|
||||||
|
}
|
||||||
|
|
||||||
|
// You can enable drop shadows for windows.
|
||||||
|
shadow {
|
||||||
|
// Uncomment the next line to enable shadows.
|
||||||
|
// on
|
||||||
|
|
||||||
|
// By default, the shadow draws only around its window, and not behind it.
|
||||||
|
// Uncomment this setting to make the shadow draw behind its window.
|
||||||
|
//
|
||||||
|
// Note that niri has no way of knowing about the CSD window corner
|
||||||
|
// radius. It has to assume that windows have square corners, leading to
|
||||||
|
// shadow artifacts inside the CSD rounded corners. This setting fixes
|
||||||
|
// those artifacts.
|
||||||
|
//
|
||||||
|
// However, instead you may want to set prefer-no-csd and/or
|
||||||
|
// geometry-corner-radius. Then, niri will know the corner radius and
|
||||||
|
// draw the shadow correctly, without having to draw it behind the
|
||||||
|
// window. These will also remove client-side shadows if the window
|
||||||
|
// draws any.
|
||||||
|
//
|
||||||
|
// draw-behind-window true
|
||||||
|
|
||||||
|
// You can change how shadows look. The values below are in logical
|
||||||
|
// pixels and match the CSS box-shadow properties.
|
||||||
|
|
||||||
|
// Softness controls the shadow blur radius.
|
||||||
|
softness 30
|
||||||
|
|
||||||
|
// Spread expands the shadow.
|
||||||
|
spread 5
|
||||||
|
|
||||||
|
// Offset moves the shadow relative to the window.
|
||||||
|
offset x=0 y=5
|
||||||
|
|
||||||
|
// You can also change the shadow color and opacity.
|
||||||
|
color "#0007"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Struts shrink the area occupied by windows, similarly to layer-shell panels.
|
||||||
|
// You can think of them as a kind of outer gaps. They are set in logical pixels.
|
||||||
|
// Left and right struts will cause the next window to the side to always be visible.
|
||||||
|
// Top and bottom struts will simply add outer gaps in addition to the area occupied by
|
||||||
|
// layer-shell panels and regular gaps.
|
||||||
|
struts {
|
||||||
|
// left 64
|
||||||
|
// right 64
|
||||||
|
// top 64
|
||||||
|
// bottom 64
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add lines like this to spawn processes at startup.
|
||||||
|
// Note that running niri as a session supports xdg-desktop-autostart,
|
||||||
|
// which may be more convenient to use.
|
||||||
|
// See the binds section below for more spawn examples.
|
||||||
|
|
||||||
|
// This line starts waybar, a commonly used bar for Wayland compositors.
|
||||||
|
spawn-at-startup "waybar"
|
||||||
|
|
||||||
|
// To run a shell command (with variables, pipes, etc.), use spawn-sh-at-startup:
|
||||||
|
// spawn-sh-at-startup "qs -c ~/source/qs/MyAwesomeShell"
|
||||||
|
|
||||||
|
hotkey-overlay {
|
||||||
|
// Uncomment this line to disable the "Important Hotkeys" pop-up at startup.
|
||||||
|
// skip-at-startup
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uncomment this line to ask the clients to omit their client-side decorations if possible.
|
||||||
|
// If the client will specifically ask for CSD, the request will be honored.
|
||||||
|
// Additionally, clients will be informed that they are tiled, removing some client-side rounded corners.
|
||||||
|
// This option will also fix border/focus ring drawing behind some semitransparent windows.
|
||||||
|
// After enabling or disabling this, you need to restart the apps for this to take effect.
|
||||||
|
// prefer-no-csd
|
||||||
|
|
||||||
|
// You can change the path where screenshots are saved.
|
||||||
|
// A ~ at the front will be expanded to the home directory.
|
||||||
|
// The path is formatted with strftime(3) to give you the screenshot date and time.
|
||||||
|
screenshot-path "~/Pictures/Screenshots/Screenshot from %Y-%m-%d %H-%M-%S.png"
|
||||||
|
|
||||||
|
// You can also set this to null to disable saving screenshots to disk.
|
||||||
|
// screenshot-path null
|
||||||
|
|
||||||
|
// Animation settings.
|
||||||
|
// The wiki explains how to configure individual animations:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Animations
|
||||||
|
animations {
|
||||||
|
// Uncomment to turn off all animations.
|
||||||
|
// off
|
||||||
|
|
||||||
|
// Slow down all animations by this factor. Values below 1 speed them up instead.
|
||||||
|
// slowdown 3.0
|
||||||
|
}
|
||||||
|
|
||||||
|
// Window rules let you adjust behavior for individual windows.
|
||||||
|
// Find more information on the wiki:
|
||||||
|
// https://yalter.github.io/niri/Configuration:-Window-Rules
|
||||||
|
|
||||||
|
// Work around WezTerm's initial configure bug
|
||||||
|
// by setting an empty default-column-width.
|
||||||
|
window-rule {
|
||||||
|
// This regular expression is intentionally made as specific as possible,
|
||||||
|
// since this is the default config, and we want no false positives.
|
||||||
|
// You can get away with just app-id="wezterm" if you want.
|
||||||
|
match app-id=r#"^org\.wezfurlong\.wezterm$"#
|
||||||
|
default-column-width {}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Open the Firefox picture-in-picture player as floating by default.
|
||||||
|
window-rule {
|
||||||
|
// This app-id regular expression will work for both:
|
||||||
|
// - host Firefox (app-id is "firefox")
|
||||||
|
// - Flatpak Firefox (app-id is "org.mozilla.firefox")
|
||||||
|
match app-id=r#"firefox$"# title="^Picture-in-Picture$"
|
||||||
|
open-floating true
|
||||||
|
}
|
||||||
|
|
||||||
|
// Example: block out two password managers from screen capture.
|
||||||
|
// (This example rule is commented out with a "/-" in front.)
|
||||||
|
/-window-rule {
|
||||||
|
match app-id=r#"^org\.keepassxc\.KeePassXC$"#
|
||||||
|
match app-id=r#"^org\.gnome\.World\.Secrets$"#
|
||||||
|
|
||||||
|
block-out-from "screen-capture"
|
||||||
|
|
||||||
|
// Use this instead if you want them visible on third-party screenshot tools.
|
||||||
|
// block-out-from "screencast"
|
||||||
|
}
|
||||||
|
|
||||||
|
// Example: enable rounded corners for all windows.
|
||||||
|
// (This example rule is commented out with a "/-" in front.)
|
||||||
|
/-window-rule {
|
||||||
|
geometry-corner-radius 12
|
||||||
|
clip-to-geometry true
|
||||||
|
}
|
||||||
|
|
||||||
|
binds {
|
||||||
|
// Keys consist of modifiers separated by + signs, followed by an XKB key name
|
||||||
|
// in the end. To find an XKB name for a particular key, you may use a program
|
||||||
|
// like wev.
|
||||||
|
//
|
||||||
|
// "Mod" is a special modifier equal to Super when running on a TTY, and to Alt
|
||||||
|
// when running as a winit window.
|
||||||
|
//
|
||||||
|
// Most actions that you can bind here can also be invoked programmatically with
|
||||||
|
// `niri msg action do-something`.
|
||||||
|
|
||||||
|
// Mod-Shift-/, which is usually the same as Mod-?,
|
||||||
|
// shows a list of important hotkeys.
|
||||||
|
Mod+Shift+Slash { show-hotkey-overlay; }
|
||||||
|
|
||||||
|
// Suggested binds for running programs: terminal, app launcher, screen locker.
|
||||||
|
Mod+T hotkey-overlay-title="Open a Terminal: kitty" { spawn "kitty"; }
|
||||||
|
Mod+D hotkey-overlay-title="Run an Application: fuzzel" { spawn "fuzzel"; }
|
||||||
|
Super+Alt+L hotkey-overlay-title="Lock the Screen: hyprlock" { spawn "hyrplock"; }
|
||||||
|
|
||||||
|
// Use spawn-sh to run a shell command. Do this if you need pipes, multiple commands, etc.
|
||||||
|
// Note: the entire command goes as a single argument. It's passed verbatim to `sh -c`.
|
||||||
|
// For example, this is a standard bind to toggle the screen reader (orca).
|
||||||
|
Super+Alt+S allow-when-locked=true hotkey-overlay-title=null { spawn-sh "pkill orca || exec orca"; }
|
||||||
|
|
||||||
|
// Example volume keys mappings for PipeWire & WirePlumber.
|
||||||
|
// The allow-when-locked=true property makes them work even when the session is locked.
|
||||||
|
// Using spawn-sh allows to pass multiple arguments together with the command.
|
||||||
|
// "-l 1.0" limits the volume to 100%.
|
||||||
|
XF86AudioRaiseVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1+ -l 1.0"; }
|
||||||
|
XF86AudioLowerVolume allow-when-locked=true { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.1-"; }
|
||||||
|
XF86AudioMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SINK@ toggle"; }
|
||||||
|
XF86AudioMicMute allow-when-locked=true { spawn-sh "wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle"; }
|
||||||
|
|
||||||
|
// Example media keys mapping using playerctl.
|
||||||
|
// This will work with any MPRIS-enabled media player.
|
||||||
|
XF86AudioPlay allow-when-locked=true { spawn-sh "playerctl play-pause"; }
|
||||||
|
XF86AudioStop allow-when-locked=true { spawn-sh "playerctl stop"; }
|
||||||
|
XF86AudioPrev allow-when-locked=true { spawn-sh "playerctl previous"; }
|
||||||
|
XF86AudioNext allow-when-locked=true { spawn-sh "playerctl next"; }
|
||||||
|
|
||||||
|
// Example brightness key mappings for brightnessctl.
|
||||||
|
// You can use regular spawn with multiple arguments too (to avoid going through "sh"),
|
||||||
|
// but you need to manually put each argument in separate "" quotes.
|
||||||
|
XF86MonBrightnessUp allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "+10%"; }
|
||||||
|
XF86MonBrightnessDown allow-when-locked=true { spawn "brightnessctl" "--class=backlight" "set" "10%-"; }
|
||||||
|
|
||||||
|
// Open/close the Overview: a zoomed-out view of workspaces and windows.
|
||||||
|
// You can also move the mouse into the top-left hot corner,
|
||||||
|
// or do a four-finger swipe up on a touchpad.
|
||||||
|
Mod+O repeat=false { toggle-overview; }
|
||||||
|
|
||||||
|
Mod+Q repeat=false { close-window; }
|
||||||
|
|
||||||
|
Mod+Left { focus-column-left; }
|
||||||
|
Mod+Down { focus-window-down; }
|
||||||
|
Mod+Up { focus-window-up; }
|
||||||
|
Mod+Right { focus-column-right; }
|
||||||
|
Mod+H { focus-column-left; }
|
||||||
|
Mod+J { focus-window-down; }
|
||||||
|
Mod+K { focus-window-up; }
|
||||||
|
Mod+L { focus-column-right; }
|
||||||
|
|
||||||
|
Mod+Ctrl+Left { move-column-left; }
|
||||||
|
Mod+Ctrl+Down { move-window-down; }
|
||||||
|
Mod+Ctrl+Up { move-window-up; }
|
||||||
|
Mod+Ctrl+Right { move-column-right; }
|
||||||
|
Mod+Ctrl+H { move-column-left; }
|
||||||
|
Mod+Ctrl+J { move-window-down; }
|
||||||
|
Mod+Ctrl+K { move-window-up; }
|
||||||
|
Mod+Ctrl+L { move-column-right; }
|
||||||
|
|
||||||
|
// Alternative commands that move across workspaces when reaching
|
||||||
|
// the first or last window in a column.
|
||||||
|
// Mod+J { focus-window-or-workspace-down; }
|
||||||
|
// Mod+K { focus-window-or-workspace-up; }
|
||||||
|
// Mod+Ctrl+J { move-window-down-or-to-workspace-down; }
|
||||||
|
// Mod+Ctrl+K { move-window-up-or-to-workspace-up; }
|
||||||
|
|
||||||
|
Mod+Home { focus-column-first; }
|
||||||
|
Mod+End { focus-column-last; }
|
||||||
|
Mod+Ctrl+Home { move-column-to-first; }
|
||||||
|
Mod+Ctrl+End { move-column-to-last; }
|
||||||
|
|
||||||
|
Mod+Shift+Left { focus-monitor-left; }
|
||||||
|
Mod+Shift+Down { focus-monitor-down; }
|
||||||
|
Mod+Shift+Up { focus-monitor-up; }
|
||||||
|
Mod+Shift+Right { focus-monitor-right; }
|
||||||
|
Mod+Shift+H { focus-monitor-left; }
|
||||||
|
Mod+Shift+J { focus-monitor-down; }
|
||||||
|
Mod+Shift+K { focus-monitor-up; }
|
||||||
|
Mod+Shift+L { focus-monitor-right; }
|
||||||
|
|
||||||
|
Mod+Shift+Ctrl+Left { move-column-to-monitor-left; }
|
||||||
|
Mod+Shift+Ctrl+Down { move-column-to-monitor-down; }
|
||||||
|
Mod+Shift+Ctrl+Up { move-column-to-monitor-up; }
|
||||||
|
Mod+Shift+Ctrl+Right { move-column-to-monitor-right; }
|
||||||
|
Mod+Shift+Ctrl+H { move-column-to-monitor-left; }
|
||||||
|
Mod+Shift+Ctrl+J { move-column-to-monitor-down; }
|
||||||
|
Mod+Shift+Ctrl+K { move-column-to-monitor-up; }
|
||||||
|
Mod+Shift+Ctrl+L { move-column-to-monitor-right; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Shift+Ctrl+Left { move-window-to-monitor-left; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
// And you can also move a whole workspace to another monitor:
|
||||||
|
// Mod+Shift+Ctrl+Left { move-workspace-to-monitor-left; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
Mod+Page_Down { focus-workspace-down; }
|
||||||
|
Mod+Page_Up { focus-workspace-up; }
|
||||||
|
Mod+U { focus-workspace-down; }
|
||||||
|
Mod+I { focus-workspace-up; }
|
||||||
|
Mod+Ctrl+Page_Down { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+Page_Up { move-column-to-workspace-up; }
|
||||||
|
Mod+Ctrl+U { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+I { move-column-to-workspace-up; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Ctrl+Page_Down { move-window-to-workspace-down; }
|
||||||
|
// ...
|
||||||
|
|
||||||
|
Mod+Shift+Page_Down { move-workspace-down; }
|
||||||
|
Mod+Shift+Page_Up { move-workspace-up; }
|
||||||
|
Mod+Shift+U { move-workspace-down; }
|
||||||
|
Mod+Shift+I { move-workspace-up; }
|
||||||
|
|
||||||
|
// You can bind mouse wheel scroll ticks using the following syntax.
|
||||||
|
// These binds will change direction based on the natural-scroll setting.
|
||||||
|
//
|
||||||
|
// To avoid scrolling through workspaces really fast, you can use
|
||||||
|
// the cooldown-ms property. The bind will be rate-limited to this value.
|
||||||
|
// You can set a cooldown on any bind, but it's most useful for the wheel.
|
||||||
|
Mod+WheelScrollDown cooldown-ms=150 { focus-workspace-down; }
|
||||||
|
Mod+WheelScrollUp cooldown-ms=150 { focus-workspace-up; }
|
||||||
|
Mod+Ctrl+WheelScrollDown cooldown-ms=150 { move-column-to-workspace-down; }
|
||||||
|
Mod+Ctrl+WheelScrollUp cooldown-ms=150 { move-column-to-workspace-up; }
|
||||||
|
|
||||||
|
Mod+WheelScrollRight { focus-column-right; }
|
||||||
|
Mod+WheelScrollLeft { focus-column-left; }
|
||||||
|
Mod+Ctrl+WheelScrollRight { move-column-right; }
|
||||||
|
Mod+Ctrl+WheelScrollLeft { move-column-left; }
|
||||||
|
|
||||||
|
// Usually scrolling up and down with Shift in applications results in
|
||||||
|
// horizontal scrolling; these binds replicate that.
|
||||||
|
Mod+Shift+WheelScrollDown { focus-column-right; }
|
||||||
|
Mod+Shift+WheelScrollUp { focus-column-left; }
|
||||||
|
Mod+Ctrl+Shift+WheelScrollDown { move-column-right; }
|
||||||
|
Mod+Ctrl+Shift+WheelScrollUp { move-column-left; }
|
||||||
|
|
||||||
|
// Similarly, you can bind touchpad scroll "ticks".
|
||||||
|
// Touchpad scrolling is continuous, so for these binds it is split into
|
||||||
|
// discrete intervals.
|
||||||
|
// These binds are also affected by touchpad's natural-scroll, so these
|
||||||
|
// example binds are "inverted", since we have natural-scroll enabled for
|
||||||
|
// touchpads by default.
|
||||||
|
// Mod+TouchpadScrollDown { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02+"; }
|
||||||
|
// Mod+TouchpadScrollUp { spawn-sh "wpctl set-volume @DEFAULT_AUDIO_SINK@ 0.02-"; }
|
||||||
|
|
||||||
|
// You can refer to workspaces by index. However, keep in mind that
|
||||||
|
// niri is a dynamic workspace system, so these commands are kind of
|
||||||
|
// "best effort". Trying to refer to a workspace index bigger than
|
||||||
|
// the current workspace count will instead refer to the bottommost
|
||||||
|
// (empty) workspace.
|
||||||
|
//
|
||||||
|
// For example, with 2 workspaces + 1 empty, indices 3, 4, 5 and so on
|
||||||
|
// will all refer to the 3rd workspace.
|
||||||
|
Mod+1 { focus-workspace 1; }
|
||||||
|
Mod+2 { focus-workspace 2; }
|
||||||
|
Mod+3 { focus-workspace 3; }
|
||||||
|
Mod+4 { focus-workspace 4; }
|
||||||
|
Mod+5 { focus-workspace 5; }
|
||||||
|
Mod+6 { focus-workspace 6; }
|
||||||
|
Mod+7 { focus-workspace 7; }
|
||||||
|
Mod+8 { focus-workspace 8; }
|
||||||
|
Mod+9 { focus-workspace 9; }
|
||||||
|
Mod+Ctrl+1 { move-column-to-workspace 1; }
|
||||||
|
Mod+Ctrl+2 { move-column-to-workspace 2; }
|
||||||
|
Mod+Ctrl+3 { move-column-to-workspace 3; }
|
||||||
|
Mod+Ctrl+4 { move-column-to-workspace 4; }
|
||||||
|
Mod+Ctrl+5 { move-column-to-workspace 5; }
|
||||||
|
Mod+Ctrl+6 { move-column-to-workspace 6; }
|
||||||
|
Mod+Ctrl+7 { move-column-to-workspace 7; }
|
||||||
|
Mod+Ctrl+8 { move-column-to-workspace 8; }
|
||||||
|
Mod+Ctrl+9 { move-column-to-workspace 9; }
|
||||||
|
|
||||||
|
// Alternatively, there are commands to move just a single window:
|
||||||
|
// Mod+Ctrl+1 { move-window-to-workspace 1; }
|
||||||
|
|
||||||
|
// Switches focus between the current and the previous workspace.
|
||||||
|
// Mod+Tab { focus-workspace-previous; }
|
||||||
|
|
||||||
|
// The following binds move the focused window in and out of a column.
|
||||||
|
// If the window is alone, they will consume it into the nearby column to the side.
|
||||||
|
// If the window is already in a column, they will expel it out.
|
||||||
|
Mod+BracketLeft { consume-or-expel-window-left; }
|
||||||
|
Mod+BracketRight { consume-or-expel-window-right; }
|
||||||
|
|
||||||
|
// Consume one window from the right to the bottom of the focused column.
|
||||||
|
Mod+Comma { consume-window-into-column; }
|
||||||
|
// Expel the bottom window from the focused column to the right.
|
||||||
|
Mod+Period { expel-window-from-column; }
|
||||||
|
|
||||||
|
Mod+R { switch-preset-column-width; }
|
||||||
|
// Cycling through the presets in reverse order is also possible.
|
||||||
|
// Mod+R { switch-preset-column-width-back; }
|
||||||
|
Mod+Shift+R { switch-preset-window-height; }
|
||||||
|
Mod+Ctrl+R { reset-window-height; }
|
||||||
|
Mod+F { maximize-column; }
|
||||||
|
Mod+Shift+F { fullscreen-window; }
|
||||||
|
|
||||||
|
// Expand the focused column to space not taken up by other fully visible columns.
|
||||||
|
// Makes the column "fill the rest of the space".
|
||||||
|
Mod+Ctrl+F { expand-column-to-available-width; }
|
||||||
|
|
||||||
|
Mod+C { center-column; }
|
||||||
|
|
||||||
|
// Center all fully visible columns on screen.
|
||||||
|
Mod+Ctrl+C { center-visible-columns; }
|
||||||
|
|
||||||
|
// Finer width adjustments.
|
||||||
|
// This command can also:
|
||||||
|
// * set width in pixels: "1000"
|
||||||
|
// * adjust width in pixels: "-5" or "+5"
|
||||||
|
// * set width as a percentage of screen width: "25%"
|
||||||
|
// * adjust width as a percentage of screen width: "-10%" or "+10%"
|
||||||
|
// Pixel sizes use logical, or scaled, pixels. I.e. on an output with scale 2.0,
|
||||||
|
// set-column-width "100" will make the column occupy 200 physical screen pixels.
|
||||||
|
Mod+Minus { set-column-width "-10%"; }
|
||||||
|
Mod+Equal { set-column-width "+10%"; }
|
||||||
|
|
||||||
|
// Finer height adjustments when in column with other windows.
|
||||||
|
Mod+Shift+Minus { set-window-height "-10%"; }
|
||||||
|
Mod+Shift+Equal { set-window-height "+10%"; }
|
||||||
|
|
||||||
|
// Move the focused window between the floating and the tiling layout.
|
||||||
|
Mod+V { toggle-window-floating; }
|
||||||
|
Mod+Shift+V { switch-focus-between-floating-and-tiling; }
|
||||||
|
|
||||||
|
// Toggle tabbed column display mode.
|
||||||
|
// Windows in this column will appear as vertical tabs,
|
||||||
|
// rather than stacked on top of each other.
|
||||||
|
Mod+W { toggle-column-tabbed-display; }
|
||||||
|
|
||||||
|
// Actions to switch layouts.
|
||||||
|
// Note: if you uncomment these, make sure you do NOT have
|
||||||
|
// a matching layout switch hotkey configured in xkb options above.
|
||||||
|
// Having both at once on the same hotkey will break the switching,
|
||||||
|
// since it will switch twice upon pressing the hotkey (once by xkb, once by niri).
|
||||||
|
// Mod+Space { switch-layout "next"; }
|
||||||
|
// Mod+Shift+Space { switch-layout "prev"; }
|
||||||
|
|
||||||
|
Print { screenshot; }
|
||||||
|
Ctrl+Print { screenshot-screen; }
|
||||||
|
Alt+Print { screenshot-window; }
|
||||||
|
|
||||||
|
// Applications such as remote-desktop clients and software KVM switches may
|
||||||
|
// request that niri stops processing the keyboard shortcuts defined here
|
||||||
|
// so they may, for example, forward the key presses as-is to a remote machine.
|
||||||
|
// It's a good idea to bind an escape hatch to toggle the inhibitor,
|
||||||
|
// so a buggy application can't hold your session hostage.
|
||||||
|
//
|
||||||
|
// The allow-inhibiting=false property can be applied to other binds as well,
|
||||||
|
// which ensures niri always processes them, even when an inhibitor is active.
|
||||||
|
Mod+Escape allow-inhibiting=false { toggle-keyboard-shortcuts-inhibit; }
|
||||||
|
|
||||||
|
// The quit action will show a confirmation dialog to avoid accidental exits.
|
||||||
|
Mod+Shift+E { quit; }
|
||||||
|
Ctrl+Alt+Delete { quit; }
|
||||||
|
|
||||||
|
// Powers off the monitors. To turn them back on, do any input like
|
||||||
|
// moving the mouse or pressing any other key.
|
||||||
|
Mod+Shift+P { power-off-monitors; }
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
}
|
||||||
46
niri/niri.nix
Normal file
46
niri/niri.nix
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
{ config, inputs, pkgs, ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
# ./autostart.nix
|
||||||
|
../modules/noctalia
|
||||||
|
../modules/hyprlock
|
||||||
|
../modules/hyprpaper
|
||||||
|
../modules/stylix.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
home-manager.sharedModules = [
|
||||||
|
./home.nix
|
||||||
|
];
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs;
|
||||||
|
[
|
||||||
|
mako
|
||||||
|
waybar
|
||||||
|
fuzzel
|
||||||
|
];
|
||||||
|
|
||||||
|
# programs = {
|
||||||
|
# niri = {
|
||||||
|
# enable = true;
|
||||||
|
# };
|
||||||
|
# };
|
||||||
|
|
||||||
|
|
||||||
|
#services.xserver.enable = true;
|
||||||
|
#services.xserver.displayManager.sddm.enable = true;
|
||||||
|
|
||||||
|
# xdg.portal = {
|
||||||
|
# enable = true;
|
||||||
|
# extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
|
||||||
|
# };
|
||||||
|
|
||||||
|
#sound.enable = true;
|
||||||
|
#security.rtkit.enable = true;
|
||||||
|
#services.pipewire = {
|
||||||
|
# enable = true;
|
||||||
|
# alsa.enable = true;
|
||||||
|
# #alsa.support3Bbit = true;
|
||||||
|
# pulse.enable = true;
|
||||||
|
# jack.enable = true;
|
||||||
|
#};
|
||||||
|
}
|
||||||
2
other/120hz.sh
Executable file
2
other/120hz.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
kscreen-doctor output.1.mode.1
|
||||||
2
other/60hz.sh
Executable file
2
other/60hz.sh
Executable file
@ -0,0 +1,2 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
kscreen-doctor output.1.mode.2
|
||||||
@ -1,3 +1,7 @@
|
|||||||
|
#Variables
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#----------
|
#----------
|
||||||
# Commands that will be used as aliases for zsh and bash
|
# Commands that will be used as aliases for zsh and bash
|
||||||
#----------
|
#----------
|
||||||
@ -7,7 +11,7 @@
|
|||||||
alias py="python3"
|
alias py="python3"
|
||||||
#alias mcrow="sudo micro"
|
#alias mcrow="sudo micro"
|
||||||
alias mcrow="echo 'you better try to use nvim you little shit! :3'"
|
alias mcrow="echo 'you better try to use nvim you little shit! :3'"
|
||||||
alias srcals="source /etc/nixos/other/aliases && echo 'Sourced Aliases ... successful!'"
|
alias srcals="source $HOME/NixOS/other/aliases && echo 'Sourced Aliases ... successful!'"
|
||||||
alias please="sudo"
|
alias please="sudo"
|
||||||
alias se="sudoedit"
|
alias se="sudoedit"
|
||||||
alias tt="gtypist ktde.typ"
|
alias tt="gtypist ktde.typ"
|
||||||
@ -18,36 +22,36 @@ alias neofetch="fastfetch"
|
|||||||
|
|
||||||
# Nix Specific commands
|
# Nix Specific commands
|
||||||
#-----
|
#-----
|
||||||
alias nix-upd="sudo nixos-rebuild switch --flake /etc/nixos"
|
#alias nix-upd="sudo nixos-rebuild switch --flake /etc/nixos"
|
||||||
alias nix-update="sudo nixos-rebuild switch --flake /etc/nixos"
|
#alias nix-update="sudo nixos-rebuild switch --flake /etc/nixos"
|
||||||
alias nix-edit="sudoedit /etc/nixos/configuration.nix"
|
#alias nix-edit="sudoedit /etc/nixos/configuration.nix"
|
||||||
alias nix-packages="sudoedit /etc/nixos/packages.nix"
|
#alias nix-packages="sudoedit /etc/nixos/packages.nix"
|
||||||
alias nix-pkgs="sudoedit /etc/nixos/packages.nix"
|
#alias nix-pkgs="sudoedit /etc/nixos/packages.nix"
|
||||||
alias nix-flake="sudoedit /etc/nixos/flake.nix"
|
#alias nix-flake="sudoedit /etc/nixos/flake.nix"
|
||||||
alias nix-edit-flake="sudoedit /etc/nixos/flake.nix"
|
#alias nix-edit-flake="sudoedit /etc/nixos/flake.nix"
|
||||||
alias nix-zsh="sudoedit /etc/nixos/zsh.nix"
|
#alias nix-zsh="sudoedit /etc/nixos/zsh.nix"
|
||||||
alias nix-edit-zsh="sudoedit /etc/nixos/zsh.nix"
|
#alias nix-edit-zsh="sudoedit /etc/nixos/zsh.nix"
|
||||||
alias nix-aliases="sudoedit /etc/nixos/other/aliases"
|
#alias nix-aliases="sudoedit /etc/nixos/other/aliases"
|
||||||
alias nix-edit-aliases="sudoedit /etc/nixos/other/aliases"
|
#alias nix-edit-aliases="sudoedit /etc/nixos/other/aliases"
|
||||||
alias nix-regenerate-config="sudo nixos-generate-config"
|
#alias nix-regenerate-config="sudo nixos-generate-config"
|
||||||
alias nix-home="sudoedit /etc/nixos/home.nix"
|
#alias nix-home="sudoedit /etc/nixos/home.nix"
|
||||||
alias nix-gc="sudo nix-store --gc"
|
alias nix-gc="sudo nix-store --gc"
|
||||||
alias nix-clean="sudo nix-store --gc"
|
alias nix-clean="sudo nix-store --gc"
|
||||||
alias nix-clear="sudo nix-store --gc"
|
alias nix-clear="sudo nix-store --gc"
|
||||||
|
|
||||||
alias home-edit="sudoedit /etc/nixos/home.nix"
|
#alias home-edit="sudoedit /etc/nixos/home.nix"
|
||||||
|
|
||||||
alias cd-nix="cd /etc/nixos/"
|
#alias cd-nix="cd /etc/nixos/"
|
||||||
|
|
||||||
#KDE Plasma Specific
|
#KDE Plasma Specific
|
||||||
#-----
|
#-----
|
||||||
alias kde-theme-apply="source /etc/nixos/plasma/konsave.sh"
|
alias kde-theme-apply="source $HOME/NixOS/plasma/konsave.sh"
|
||||||
|
|
||||||
#Hyprland Specific
|
#Hyprland Specific
|
||||||
#-----
|
#-----
|
||||||
alias exit-hyprland="hyprctl dispatch exit"
|
alias exit-hyprland="hyprctl dispatch exit"
|
||||||
alias hyprland-exit="hyprctl dispatch exit"
|
alias hyprland-exit="hyprctl dispatch exit"
|
||||||
alias hypr-edit="sudoedit /etc/nixos/hyprland/hyprland.conf"
|
alias hypr-edit="sudoedit $HOME/NixOS/hyprland/hyprland.conf"
|
||||||
|
|
||||||
#LaTeX Commands
|
#LaTeX Commands
|
||||||
alias makepdf="makeglossaries main && pdflatex main.tex"
|
alias makepdf="makeglossaries main && pdflatex main.tex"
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
mkdir -p /var/lib/AccountsService/{icons,users}
|
mkdir -p /var/lib/AccountsService/{icons,users}
|
||||||
cp /etc/nixos/other/pfp.png /var/lib/AccountsService/icons/cookiez
|
cp /home/cookiez/NixOS/other/pfp.png /var/lib/AccountsService/icons/cookiez
|
||||||
echo -e "[User]\nIcon=/var/lib/AccountsService/icons/cookiez\n" > /var/lib/AccountsService/users/cookiez
|
echo -e "[User]\nIcon=/var/lib/AccountsService/icons/cookiez\n" > /var/lib/AccountsService/users/cookiez
|
||||||
|
|
||||||
chown root:root /var/lib/AccountsService/users/cookiez
|
chown root:root /var/lib/AccountsService/users/cookiez
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 833 KiB After Width: | Height: | Size: 2.8 MiB |
@ -1,15 +1,15 @@
|
|||||||
{ config, pkgs, ... }:
|
{ config, pkgs, username, ... }:
|
||||||
{
|
{
|
||||||
|
|
||||||
#To show logs of services run: journalctl --user-unit={service-name} --user
|
#To show logs of services run: journalctl --user-unit={service-name} --user
|
||||||
|
|
||||||
systemd.user.services.set-wallpaper = {
|
systemd.user.services.set-wallpaper = {
|
||||||
enable = false;
|
enable = true;
|
||||||
description = "Set KDE Plasma wallpaper";
|
description = "Set KDE Plasma wallpaper";
|
||||||
#after = [ "plasma-desktop.service" ];
|
#after = [ "plasma-desktop.service" ];
|
||||||
wantedBy = [ "graphical-session.target" ];
|
wantedBy = [ "graphical-session.target" ];
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStart = [ "/run/current-system/sw/bin/plasma-apply-wallpaperimage /etc/nixos/other/wallpaper2.png" ];
|
ExecStart = [ "/run/current-system/sw/bin/plasma-apply-wallpaperimage /home/${username}/NixOS/other/wallpaper2.png" ];
|
||||||
|
|
||||||
Type = "oneshot";
|
Type = "oneshot";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
|
|||||||
@ -6,25 +6,27 @@
|
|||||||
|
|
||||||
programs = {
|
programs = {
|
||||||
plasma = {
|
plasma = {
|
||||||
enable = true;
|
enable = false;
|
||||||
overrideConfig = true;
|
overrideConfig = true;
|
||||||
|
|
||||||
panels = [
|
panels = [
|
||||||
{
|
{
|
||||||
height = 38;
|
height = 44;
|
||||||
location = "top";
|
location = "top";
|
||||||
alignment = "center";
|
alignment = "center";
|
||||||
floating = true;
|
floating = true;
|
||||||
opacity = "translucent";
|
opacity = "translucent";
|
||||||
widgets = [
|
widgets = [
|
||||||
"org.kde.plasma.kickoff"
|
"org.kde.plasma.kickoff"
|
||||||
|
"org.kde.plasma.pager"
|
||||||
"org.kde.plasma.panelspacer"
|
"org.kde.plasma.panelspacer"
|
||||||
"org.kde.plasma.systemmonitor.cpu"
|
"org.kde.plasma.systemmonitor.cpu"
|
||||||
|
"org.kde.plasma.systemtray"
|
||||||
"org.kde.plasma.digitalclock"
|
"org.kde.plasma.digitalclock"
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
height = 65;
|
height = 60;
|
||||||
location = "bottom";
|
location = "bottom";
|
||||||
alignment = "center";
|
alignment = "center";
|
||||||
lengthMode = "fit";
|
lengthMode = "fit";
|
||||||
@ -45,10 +47,77 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
|
powerdevil = {
|
||||||
|
# On AC power (plugged in): Minimal power saving
|
||||||
|
AC = {
|
||||||
|
powerProfile = "performance";
|
||||||
|
#turnOffDisplay.idleTimeout = 900; # 15 min idle
|
||||||
|
autoSuspend = {
|
||||||
|
action = "nothing";
|
||||||
|
};
|
||||||
|
dimDisplay.enable = false;
|
||||||
|
turnOffDisplay.idleTimeout = "never";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Normal battery: Balanced saving
|
||||||
|
battery = {
|
||||||
|
powerProfile = "balanced";
|
||||||
|
#turnOffDisplay.idleTimeout = 300; # 5 min
|
||||||
|
autoSuspend = {
|
||||||
|
action = "nothing";
|
||||||
|
};
|
||||||
|
whenLaptopLidClosed = "sleep";
|
||||||
|
dimDisplay.enable = false;
|
||||||
|
turnOffDisplay.idleTimeout = "never";
|
||||||
|
};
|
||||||
|
|
||||||
|
# Low battery (e.g., <10%): Critical actions
|
||||||
|
lowBattery = {
|
||||||
|
powerProfile = "powerSaving";
|
||||||
|
autoSuspend = {
|
||||||
|
action = "sleep";
|
||||||
|
idleTimeout = 300; # 5 min idle
|
||||||
|
};
|
||||||
|
whenLaptopLidClosed = "shutDown";
|
||||||
|
dimDisplay = {
|
||||||
|
idleTimeout = 60;
|
||||||
|
};
|
||||||
|
displayBrightness = 30; #Go to 30% display Brightness
|
||||||
|
turnOffDisplay.idleTimeout = 120;
|
||||||
|
};
|
||||||
|
|
||||||
|
# Thresholds for "lowBattery" state
|
||||||
|
batteryLevels = {
|
||||||
|
lowLevel = 10;
|
||||||
|
criticalLevel = 5;
|
||||||
|
criticalAction = "sleep";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
workspace = {
|
||||||
|
theme = "WhiteSur-dark";
|
||||||
|
colorScheme = "BreezeDark";
|
||||||
|
cursor = {
|
||||||
|
theme = "Breeze_Light";
|
||||||
|
size = 24;
|
||||||
|
};
|
||||||
|
wallpaper = /home/${username}/NixOS/other/wallpaper2.png;
|
||||||
|
soundTheme = "freedesktop";
|
||||||
|
iconTheme = "Breeze-LaCapitaine-apps";
|
||||||
|
splashScreen = {
|
||||||
|
theme = "a2n.kuro";
|
||||||
|
};
|
||||||
|
windowDecorations = {
|
||||||
|
library = "org.kde.kwin.aurorae";
|
||||||
|
theme = "__aurorae__svg__Nordic";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
shortcuts = {
|
shortcuts = {
|
||||||
# ActivityManager.switch-to-activity-0f8d8349-5b1b-4b77-bfa5-22829bfaf459 = [ ];
|
# ActivityManager.switch-to-activity-0f8d8349-5b1b-4b77-bfa5-22829bfaf459 = [ ];
|
||||||
# ActivityManager.switch-to-activity-7dbb43d7-7e06-4b20-907c-a1dbf4afe6c7 = [ ];
|
# ActivityManager.switch-to-activity-7dbb43d7-7e06-4b20-907c-a1dbf4afe6c7 = [ ];
|
||||||
@ -298,24 +367,7 @@
|
|||||||
# wacomtablet."Toggle touch tool" = "Meta+Ctrl+T";
|
# wacomtablet."Toggle touch tool" = "Meta+Ctrl+T";
|
||||||
yakuake.toggle-window-state = "Meta+F12";
|
yakuake.toggle-window-state = "Meta+F12";
|
||||||
};
|
};
|
||||||
workspace = {
|
|
||||||
theme = "WhiteSur-dark";
|
|
||||||
colorScheme = "BreezeDark";
|
|
||||||
cursor = {
|
|
||||||
theme = "Breeze_Light";
|
|
||||||
size = 24;
|
|
||||||
};
|
|
||||||
wallpaper = /home/${username}/NixOS/other/wallpaper2.png;
|
|
||||||
soundTheme = "freedesktop";
|
|
||||||
iconTheme = "Breeze-LaCapitaine-apps";
|
|
||||||
splashScreen = {
|
|
||||||
theme = "a2n.kuro";
|
|
||||||
};
|
|
||||||
windowDecorations = {
|
|
||||||
library = "org.kde.kwin.aurorae";
|
|
||||||
theme = "__aurorae__svg__Nordic";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
configFile = {
|
configFile = {
|
||||||
# baloofilerc.General.dbVersion = 2;
|
# baloofilerc.General.dbVersion = 2;
|
||||||
# baloofilerc.General."exclude filters" = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.tfstate*,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.terraform,.venv,venv,core-dumps,lost+found";
|
# baloofilerc.General."exclude filters" = "*~,*.part,*.o,*.la,*.lo,*.loT,*.moc,moc_*.cpp,qrc_*.cpp,ui_*.h,cmake_install.cmake,CMakeCache.txt,CTestTestfile.cmake,libtool,config.status,confdefs.h,autom4te,conftest,confstat,Makefile.am,*.gcode,.ninja_deps,.ninja_log,build.ninja,*.csproj,*.m4,*.rej,*.gmo,*.pc,*.omf,*.aux,*.tmp,*.po,*.vm*,*.nvram,*.rcore,*.swp,*.swap,lzo,litmain.sh,*.orig,.histfile.*,.xsession-errors*,*.map,*.so,*.a,*.db,*.qrc,*.ini,*.init,*.img,*.vdi,*.vbox*,vbox.log,*.qcow2,*.vmdk,*.vhd,*.vhdx,*.sql,*.sql.gz,*.ytdl,*.tfstate*,*.class,*.pyc,*.pyo,*.elc,*.qmlc,*.jsc,*.fastq,*.fq,*.gb,*.fasta,*.fna,*.gbff,*.faa,po,CVS,.svn,.git,_darcs,.bzr,.hg,CMakeFiles,CMakeTmp,CMakeTmpQmake,.moc,.obj,.pch,.uic,.npm,.yarn,.yarn-cache,__pycache__,node_modules,node_packages,nbproject,.terraform,.venv,venv,core-dumps,lost+found";
|
||||||
@ -1,8 +1,8 @@
|
|||||||
source /etc/nixos/other/colors.sh
|
source /home/cookiez/NixOS/other/colors.sh
|
||||||
FLAG_FILE="/home/cookiez/.flags/theme-flag"
|
FLAG_FILE="/home/cookiez/.flags/theme-flag"
|
||||||
|
|
||||||
/run/current-system/sw/bin/konsave -i /etc/nixos/plasma/NixOS-1.0.1.knsv
|
/run/current-system/sw/bin/konsave -i /home/cookiez/NixOS/plasma/NixOS-1.0.1.knsv
|
||||||
/run/current-system/sw/bin/konsave -i /etc/nixos/plasma/NixOS-1.0.1.knsv
|
/run/current-system/sw/bin/konsave -i /home/cookiez/NixOS/plasma/NixOS-1.0.1.knsv
|
||||||
/run/current-system/sw/bin/konsave -a NixOS-1.0.1
|
/run/current-system/sw/bin/konsave -a NixOS-1.0.1
|
||||||
|
|
||||||
progress_bar() {
|
progress_bar() {
|
||||||
|
|||||||
@ -1,17 +1,4 @@
|
|||||||
{config, pkgs, ...}:
|
{config, pkgs, username, ...}:
|
||||||
|
|
||||||
let
|
|
||||||
# Define the custom background package with the correct relative path
|
|
||||||
background-package = pkgs.stdenvNoCC.mkDerivation {
|
|
||||||
name = "background-image";
|
|
||||||
src = ./other/wallpaper.png; # Place wallpaper.jpg in the same directory as this config file
|
|
||||||
dontUnpack = true;
|
|
||||||
installPhase = ''
|
|
||||||
cp $src $out
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
in
|
|
||||||
|
|
||||||
{
|
{
|
||||||
imports =
|
imports =
|
||||||
[
|
[
|
||||||
@ -19,9 +6,15 @@ in
|
|||||||
];
|
];
|
||||||
|
|
||||||
home-manager.sharedModules = [
|
home-manager.sharedModules = [
|
||||||
./plasma-home.nix
|
./home.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
|
systemd.services = {
|
||||||
|
"plasma-workspace".serviceConfig.KillMode = "mixed";
|
||||||
|
"plasma-workspace".serviceConfig.TimeoutStopSec = "5s";
|
||||||
|
"sddm".serviceConfig.KillMode = "mixed";
|
||||||
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
xserver = {
|
xserver = {
|
||||||
enable = true;
|
enable = true;
|
||||||
@ -64,8 +57,8 @@ in
|
|||||||
#};
|
#};
|
||||||
|
|
||||||
system.activationScripts.script.text = ''
|
system.activationScripts.script.text = ''
|
||||||
source /etc/nixos/other/colors.sh
|
source /home/cookiez/NixOS/other/colors.sh
|
||||||
source /etc/nixos/other/pfp.sh
|
source /home/cookiez/NixOS/other/pfp.sh
|
||||||
'';
|
'';
|
||||||
|
|
||||||
#services.displayManager.sddm = {
|
#services.displayManager.sddm = {
|
||||||
|
|||||||
Reference in New Issue
Block a user