mirror of
https://git.sr.ht/~neverness/ultima
synced 2024-12-27 18:43:52 +00:00
update
This commit is contained in:
parent
afeceb316d
commit
10e827be06
43
flake.lock
43
flake.lock
|
@ -703,6 +703,21 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"impermanence": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1734200366,
|
||||||
|
"narHash": "sha256-0NursoP4BUdnc+wy+Mq3icHkXu/RgP1Sjo0MJxV2+Dw=",
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "impermanence",
|
||||||
|
"rev": "c6323585fa0035d780e3d8906eb1b24b65d19a48",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-community",
|
||||||
|
"repo": "impermanence",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nix-update": {
|
"nix-update": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-parts": "flake-parts_2",
|
"flake-parts": "flake-parts_2",
|
||||||
|
@ -905,6 +920,26 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nypkgs": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1726657437,
|
||||||
|
"narHash": "sha256-eBeVOFceQkYfWHAwdQ+aM8vLAbsuuWUgek2f6dFBTl0=",
|
||||||
|
"owner": "yunfachi",
|
||||||
|
"repo": "nypkgs",
|
||||||
|
"rev": "698ab4159dc38affee2fc5886468af139de8d95e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "yunfachi",
|
||||||
|
"repo": "nypkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"parts": {
|
"parts": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs-lib": "nixpkgs-lib_2"
|
"nixpkgs-lib": "nixpkgs-lib_2"
|
||||||
|
@ -978,10 +1013,12 @@
|
||||||
"hardware": "hardware",
|
"hardware": "hardware",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"hyprland": "hyprland",
|
"hyprland": "hyprland",
|
||||||
|
"impermanence": "impermanence",
|
||||||
"nixpkgs": "nixpkgs_3",
|
"nixpkgs": "nixpkgs_3",
|
||||||
"nixpkgsMaster": "nixpkgsMaster",
|
"nixpkgsMaster": "nixpkgsMaster",
|
||||||
"nixpkgsStable": "nixpkgsStable",
|
"nixpkgsStable": "nixpkgsStable",
|
||||||
"nur": "nur",
|
"nur": "nur",
|
||||||
|
"nypkgs": "nypkgs",
|
||||||
"parts": "parts",
|
"parts": "parts",
|
||||||
"phani": "phani",
|
"phani": "phani",
|
||||||
"spicetify": "spicetify",
|
"spicetify": "spicetify",
|
||||||
|
@ -1315,11 +1352,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1734232136,
|
"lastModified": 1734657663,
|
||||||
"narHash": "sha256-rQd9jiPTGVchefiwJhx1xUlCLcnOCWQ7KlQ+Pkio9zU=",
|
"narHash": "sha256-1Et05foPKYyWAHUftrrzWgfddnd0r0sm2WCuNeVDDkA=",
|
||||||
"owner": "0xc000022070",
|
"owner": "0xc000022070",
|
||||||
"repo": "zen-browser-flake",
|
"repo": "zen-browser-flake",
|
||||||
"rev": "6acd5e9515e0d53347b7883ac02ac7ab4bd03a2c",
|
"rev": "f5181bde713d1aa5c8d95d00f4f47cd937d2b3e8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
14
flake.nix
14
flake.nix
|
@ -5,6 +5,7 @@
|
||||||
nixpkgsMaster.url = "github:nixos/nixpkgs/master"; # MASTER
|
nixpkgsMaster.url = "github:nixos/nixpkgs/master"; # MASTER
|
||||||
nur.url = "github:nix-community/NUR"; # NUR
|
nur.url = "github:nix-community/NUR"; # NUR
|
||||||
|
|
||||||
|
impermanence.url = "github:nix-community/impermanence"; # IMPERA
|
||||||
hardware.url = "github:NixOS/nixos-hardware/master"; # HARDWARE
|
hardware.url = "github:NixOS/nixos-hardware/master"; # HARDWARE
|
||||||
parts.url = "github:hercules-ci/flake-parts"; # PARTS
|
parts.url = "github:hercules-ci/flake-parts"; # PARTS
|
||||||
gaming.url = "github:fufexan/nix-gaming"; # GAMING
|
gaming.url = "github:fufexan/nix-gaming"; # GAMING
|
||||||
|
@ -22,6 +23,10 @@
|
||||||
url = "github:nix-community/disko";
|
url = "github:nix-community/disko";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
nypkgs = {
|
||||||
|
url = "github:yunfachi/nypkgs";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
zen = {
|
zen = {
|
||||||
# COOL BROWSER
|
# COOL BROWSER
|
||||||
url = "github:0xc000022070/zen-browser-flake";
|
url = "github:0xc000022070/zen-browser-flake";
|
||||||
|
@ -64,9 +69,14 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = inputs:
|
outputs =
|
||||||
|
inputs:
|
||||||
inputs.parts.lib.mkFlake { inherit inputs; } {
|
inputs.parts.lib.mkFlake { inherit inputs; } {
|
||||||
perSystem = { pkgs, ... }: { formatter = pkgs.nixfmt-rfc-style; };
|
perSystem =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
|
formatter = pkgs.nixfmt-rfc-style;
|
||||||
|
};
|
||||||
systems = [ "x86_64-linux" ]; # YOUR SYSTEM IDK
|
systems = [ "x86_64-linux" ]; # YOUR SYSTEM IDK
|
||||||
imports = [ ./jetpure ]; # YOUR MACHINES
|
imports = [ ./jetpure ]; # YOUR MACHINES
|
||||||
};
|
};
|
||||||
|
|
|
@ -3,10 +3,12 @@ let
|
||||||
# CONFIGURATION
|
# CONFIGURATION
|
||||||
X = import ../libx/builder.nix {
|
X = import ../libx/builder.nix {
|
||||||
inherit inputs lib;
|
inherit inputs lib;
|
||||||
|
disk = "/dev/disk/by-uuid/d8440438-2f95-4854-b139-bf0a3e91a81f";
|
||||||
# VARIABLES
|
# VARIABLES
|
||||||
hostName = "jetpure";
|
hostName = "jetpure";
|
||||||
userName = "nixzoid";
|
userName = "nixzoid";
|
||||||
flakeDir = "/persist/flake";
|
flakeDir = "/persist/flake";
|
||||||
|
is = "desktop";
|
||||||
# SYS INFA
|
# SYS INFA
|
||||||
plfrm = "x86_64-linux";
|
plfrm = "x86_64-linux";
|
||||||
ver = "24.05";
|
ver = "24.05";
|
||||||
|
|
|
@ -4,10 +4,7 @@ let
|
||||||
inherit (x) False;
|
inherit (x) False;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [ ./parts ];
|
||||||
./parts
|
|
||||||
../../modules/home
|
|
||||||
];
|
|
||||||
module = {
|
module = {
|
||||||
programs = {
|
programs = {
|
||||||
# PROGRAMS
|
# PROGRAMS
|
||||||
|
@ -45,8 +42,6 @@ in
|
||||||
};
|
};
|
||||||
custom = {
|
custom = {
|
||||||
anicli = True;
|
anicli = True;
|
||||||
mabel = False;
|
|
||||||
torrent = False;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
shells = {
|
shells = {
|
||||||
|
@ -76,7 +71,7 @@ in
|
||||||
wm = {
|
wm = {
|
||||||
# WINDOW MANAGER
|
# WINDOW MANAGER
|
||||||
hyprland = True;
|
hyprland = True;
|
||||||
sway = False;
|
sway = True;
|
||||||
terminals = {
|
terminals = {
|
||||||
# TERMINALS
|
# TERMINALS
|
||||||
kitty = True;
|
kitty = True;
|
||||||
|
@ -86,9 +81,11 @@ in
|
||||||
misc = {
|
misc = {
|
||||||
# IDK
|
# IDK
|
||||||
mako = True;
|
mako = True;
|
||||||
waybar = False;
|
|
||||||
nwg = True;
|
nwg = True;
|
||||||
|
rofi = True;
|
||||||
|
waybar = False;
|
||||||
wob = False;
|
wob = False;
|
||||||
|
yofi = False;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
misc = {
|
misc = {
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
{ x, config, ... }:
|
{ x, config, ... }:
|
||||||
|
with x;
|
||||||
let
|
let
|
||||||
m = config.wayland.windowManager.sway.config.modifier;
|
m = config.wayland.windowManager.sway.config.modifier;
|
||||||
X = "exec";
|
X = "exec";
|
||||||
inherit (x) False;
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
module.wm.sway = {
|
module.wm.sway = {
|
||||||
bars = False;
|
|
||||||
programs = {
|
programs = {
|
||||||
"${m}+b" = "${X} floorp";
|
# PROGRAMS
|
||||||
|
"${m}+b" = "${X} qutebrowser";
|
||||||
"${m}+v" = "${X} telegram-desktop";
|
"${m}+v" = "${X} telegram-desktop";
|
||||||
"${m}+n" = "${X} kitty -T Explorer yazi";
|
"${m}+n" = "${X} kitty -T Explorer yazi";
|
||||||
"${m}+u" = "${X} onlyoffice-desktopeditors";
|
"${m}+u" = "${X} onlyoffice-desktopeditors";
|
||||||
"${m}+i" = "${X} libreoffice";
|
# "${m}+i" = "${X} libreoffice";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,10 +4,7 @@ let
|
||||||
inherit (x) False;
|
inherit (x) False;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [ ./parts ];
|
||||||
./parts
|
|
||||||
../../modules/nixos
|
|
||||||
];
|
|
||||||
module = {
|
module = {
|
||||||
themes.stylix = True // {
|
themes.stylix = True // {
|
||||||
theme = "paradise";
|
theme = "paradise";
|
||||||
|
@ -22,6 +19,8 @@ in
|
||||||
boot = True // {
|
boot = True // {
|
||||||
plymouth = True;
|
plymouth = True;
|
||||||
};
|
};
|
||||||
|
disko = True;
|
||||||
|
impermanence = False;
|
||||||
network = True;
|
network = True;
|
||||||
security = True;
|
security = True;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,10 +1,6 @@
|
||||||
{ inputs, ... }:
|
|
||||||
{
|
{
|
||||||
imports = with inputs; [
|
imports = [
|
||||||
|
./disks.nix
|
||||||
./pkgs.nix
|
./pkgs.nix
|
||||||
disko.nixosModules.default
|
|
||||||
(import ./disko.nix {
|
|
||||||
device = "/dev/by-id/ata-KINGSTON_SA400S37240G_50026B72828C9A2D";
|
|
||||||
})
|
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,82 +0,0 @@
|
||||||
{
|
|
||||||
device ? throw,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
{
|
|
||||||
# sudo nix run nixpkgs#disko -- --mode disko ./disko.nix --arg device '"/dev/sdX"'
|
|
||||||
disko.devices.disk.main = {
|
|
||||||
inherit device;
|
|
||||||
type = "disk";
|
|
||||||
content = {
|
|
||||||
type = "gpt";
|
|
||||||
partitions = {
|
|
||||||
esp = {
|
|
||||||
name = "esp";
|
|
||||||
size = "512M";
|
|
||||||
type = "EF00";
|
|
||||||
content = {
|
|
||||||
type = "filesystem";
|
|
||||||
format = "vfat";
|
|
||||||
mountpoint = "/boot";
|
|
||||||
mountOptions = [
|
|
||||||
"umask=0077"
|
|
||||||
"fmask=0077"
|
|
||||||
"dmask=0077"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
root = {
|
|
||||||
name = "nixos";
|
|
||||||
size = "100%";
|
|
||||||
content = {
|
|
||||||
type = "btrfs";
|
|
||||||
extraArgs = [ "-f" ];
|
|
||||||
subvolumes = {
|
|
||||||
"/rootfs".mountpoint = "/";
|
|
||||||
"/home" = {
|
|
||||||
mountpoint = "/home";
|
|
||||||
mountOptions = [ "compress=zstd:5" ];
|
|
||||||
};
|
|
||||||
"/nix" = {
|
|
||||||
mountpoint = "/nix";
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd:5"
|
|
||||||
"noatime"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
"/persist" = {
|
|
||||||
mountpoint = "/persist";
|
|
||||||
mountOptions = [
|
|
||||||
"compress=zstd:5"
|
|
||||||
"noatime"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
fileSystems =
|
|
||||||
let
|
|
||||||
fsType = "ext4";
|
|
||||||
options = [
|
|
||||||
"nosuid"
|
|
||||||
"nodev"
|
|
||||||
"nofail"
|
|
||||||
"x-gvfs-show"
|
|
||||||
];
|
|
||||||
in
|
|
||||||
{
|
|
||||||
"/mnt/HDD" = {
|
|
||||||
label = "BIG_BUCK";
|
|
||||||
device = "/dev/disk/by-uuid/9290bc08-17fe-47db-a535-d4044b8c8dfb";
|
|
||||||
inherit fsType options;
|
|
||||||
};
|
|
||||||
"/mnt/SSD" = {
|
|
||||||
label = "FAST_BITCH";
|
|
||||||
device = "/dev/disk/by-uuid/e6bc9034-95a4-43bd-b5f5-c7c1743e9f7c";
|
|
||||||
inherit fsType options;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
24
jetpure/host/parts/disks.nix
Normal file
24
jetpure/host/parts/disks.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{
|
||||||
|
fileSystems =
|
||||||
|
let
|
||||||
|
fsType = "ext4";
|
||||||
|
options = [
|
||||||
|
"nosuid"
|
||||||
|
"nodev"
|
||||||
|
"nofail"
|
||||||
|
"x-gvfs-show"
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
"/mnt/HDD" = {
|
||||||
|
label = "BIG_BUCK";
|
||||||
|
device = "/dev/disk/by-uuid/9290bc08-17fe-47db-a535-d4044b8c8dfb";
|
||||||
|
inherit fsType options;
|
||||||
|
};
|
||||||
|
"/mnt/SSD" = {
|
||||||
|
label = "FAST_BITCH";
|
||||||
|
device = "/dev/disk/by-uuid/e6bc9034-95a4-43bd-b5f5-c7c1743e9f7c";
|
||||||
|
inherit fsType options;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -2,12 +2,14 @@
|
||||||
inputs,
|
inputs,
|
||||||
lib,
|
lib,
|
||||||
# VARIABLES
|
# VARIABLES
|
||||||
|
disk ? null,
|
||||||
hostName ? "sus",
|
hostName ? "sus",
|
||||||
userName ? "amogus",
|
userName ? "amogus",
|
||||||
flakeDir ? null,
|
flakeDir ? null,
|
||||||
|
is ? null,
|
||||||
# SYSINFO
|
# SYSINFO
|
||||||
plfrm,
|
plfrm ? "x86_64-linux",
|
||||||
ver,
|
ver ? "24.05",
|
||||||
dev,
|
dev,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
|
@ -17,14 +19,16 @@
|
||||||
# OTHER
|
# OTHER
|
||||||
inherit (inputs.nixpkgs.lib) nixosSystem;
|
inherit (inputs.nixpkgs.lib) nixosSystem;
|
||||||
inherit (inputs.home-manager.lib) homeManagerConfiguration;
|
inherit (inputs.home-manager.lib) homeManagerConfiguration;
|
||||||
pkgs = inputs.nixpkgs.legacyPackages.x86_64-linux;
|
pkgs = inputs.nixpkgs.legacyPackages.${plfrm};
|
||||||
# NEEDS
|
# NEEDS
|
||||||
sec = import ./secrets.nix;
|
sec = import ./secrets.nix;
|
||||||
x = import ./options.nix { inherit lib; } // {
|
x = import ./options.nix { inherit inputs pkgs lib; } // {
|
||||||
inherit
|
inherit
|
||||||
|
disk
|
||||||
hostName
|
hostName
|
||||||
userName
|
userName
|
||||||
flakeDir
|
flakeDir
|
||||||
|
is
|
||||||
plfrm
|
plfrm
|
||||||
ver
|
ver
|
||||||
dev
|
dev
|
||||||
|
@ -37,11 +41,17 @@
|
||||||
{
|
{
|
||||||
# CONFIGURATION
|
# CONFIGURATION
|
||||||
nixosConfigurations.${hostName} = nixosSystem {
|
nixosConfigurations.${hostName} = nixosSystem {
|
||||||
modules = [ ../${hostName}/host ];
|
modules = [
|
||||||
|
../modules/nixos
|
||||||
|
../${hostName}/host
|
||||||
|
];
|
||||||
specialArgs = args;
|
specialArgs = args;
|
||||||
};
|
};
|
||||||
homeConfigurations.${userName} = homeManagerConfiguration {
|
homeConfigurations.${userName} = homeManagerConfiguration {
|
||||||
modules = [ ../${hostName}/home ];
|
modules = [
|
||||||
|
../modules/home
|
||||||
|
../${hostName}/home
|
||||||
|
];
|
||||||
extraSpecialArgs = args;
|
extraSpecialArgs = args;
|
||||||
inherit pkgs;
|
inherit pkgs;
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
{ lib, ... }:
|
{
|
||||||
with lib;
|
inputs,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
def = {
|
def = {
|
||||||
default = false;
|
default = false;
|
||||||
|
@ -8,8 +12,12 @@ let
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
with types;
|
with lib;
|
||||||
{
|
with lib.types;
|
||||||
|
rec {
|
||||||
|
# ylib
|
||||||
|
ypkgs = inputs.nypkgs.legacyPackages.${pkgs.system};
|
||||||
|
umport = ypkgs.lib.umport;
|
||||||
# enable = true; ++ enable = false;
|
# enable = true; ++ enable = false;
|
||||||
True = {
|
True = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
|
@ -1,9 +1,21 @@
|
||||||
|
{ x, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = x.umport {
|
||||||
./misc
|
paths = [
|
||||||
./programs
|
./misc
|
||||||
./shells
|
./programs
|
||||||
./themes
|
./shells
|
||||||
./wm
|
./themes
|
||||||
];
|
./wm
|
||||||
|
];
|
||||||
|
# include & exclude files/directories
|
||||||
|
include = [
|
||||||
|
./programs/custom/anicli/default.nix
|
||||||
|
];
|
||||||
|
exclude = [
|
||||||
|
./programs/gui/floorp/addons.nix
|
||||||
|
./themes/stylix/image.nix
|
||||||
|
./programs/custom
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./home-manager
|
|
||||||
./minimal
|
|
||||||
./xdg
|
|
||||||
./dconf.nix
|
|
||||||
./nix.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -15,7 +15,6 @@ in
|
||||||
mime.enable = mkBool;
|
mime.enable = mkBool;
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [ ./mimeApps.nix ];
|
|
||||||
config = {
|
config = {
|
||||||
xdg = {
|
xdg = {
|
||||||
mime = True;
|
mime = True;
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./bat
|
|
||||||
./cava
|
|
||||||
./eza
|
|
||||||
./fetch
|
|
||||||
./fzf
|
|
||||||
./git
|
|
||||||
./helix
|
|
||||||
./joshuto
|
|
||||||
./legendary
|
|
||||||
./micro
|
|
||||||
./rmpc
|
|
||||||
./rustmission
|
|
||||||
./top
|
|
||||||
./yazi
|
|
||||||
./zoxide
|
|
||||||
./pkgs.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,4 +1,3 @@
|
||||||
{ ... }:
|
|
||||||
{
|
{
|
||||||
programs.helix.settings.keys = {
|
programs.helix.settings.keys = {
|
||||||
normal = {
|
normal = {
|
||||||
|
|
|
@ -16,12 +16,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
|
||||||
./settings.nix
|
|
||||||
./binds.nix
|
|
||||||
./languages.nix
|
|
||||||
./theme.nix
|
|
||||||
];
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.helix = True // {
|
programs.helix = True // {
|
||||||
defaultEditor = true;
|
defaultEditor = true;
|
||||||
|
|
|
@ -6,127 +6,169 @@ let
|
||||||
unit = " ";
|
unit = " ";
|
||||||
};
|
};
|
||||||
auto-format = true;
|
auto-format = true;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
programs.helix = with pkgs; {
|
programs.helix = with pkgs; {
|
||||||
languages = {
|
languages = {
|
||||||
language = let prettier = nodePackages_latest.prettier;
|
language =
|
||||||
in [
|
let
|
||||||
|
prettier = nodePackages_latest.prettier;
|
||||||
|
in
|
||||||
|
[
|
||||||
|
{
|
||||||
|
# NIX LSP
|
||||||
|
inherit auto-format indent;
|
||||||
|
name = "nix";
|
||||||
|
language-servers = [
|
||||||
|
"nixd"
|
||||||
|
"nil"
|
||||||
|
];
|
||||||
|
formatter.command = "${getExe nixfmt-rfc-style}";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# HTML
|
||||||
|
inherit auto-format indent;
|
||||||
|
name = "html";
|
||||||
|
language-servers = [ "vscode-html" ];
|
||||||
|
formatter = {
|
||||||
|
command = "${getExe prettier}";
|
||||||
|
args = [
|
||||||
|
"--use-tabs"
|
||||||
|
"--parser"
|
||||||
|
"html"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# JSON
|
||||||
|
inherit auto-format indent;
|
||||||
|
name = "json";
|
||||||
|
language-servers = [ "vscode-json" ];
|
||||||
|
formatter = {
|
||||||
|
command = "${getExe prettier}";
|
||||||
|
args = [
|
||||||
|
"--use-tabs"
|
||||||
|
"--parser"
|
||||||
|
"json"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# JSON
|
||||||
|
inherit auto-format indent;
|
||||||
|
name = "jsonc";
|
||||||
|
language-servers = [ "vscode-json" ];
|
||||||
|
formatter = {
|
||||||
|
command = "${getExe prettier}";
|
||||||
|
args = [
|
||||||
|
"--use-tabs"
|
||||||
|
"--parser"
|
||||||
|
"json"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# CSS
|
||||||
|
inherit auto-format indent;
|
||||||
|
name = "css";
|
||||||
|
language-servers = [ "vscode-css" ];
|
||||||
|
formatter = {
|
||||||
|
command = "${getExe prettier}";
|
||||||
|
args = [
|
||||||
|
"--use-tabs"
|
||||||
|
"--parser"
|
||||||
|
"css"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# MARKDOWN
|
||||||
|
inherit auto-format indent;
|
||||||
|
name = "markdown";
|
||||||
|
language-servers = [ "marksman" ];
|
||||||
|
formatter = {
|
||||||
|
command = "${getExe prettier}";
|
||||||
|
args = [
|
||||||
|
"--use-tabs"
|
||||||
|
"--parser"
|
||||||
|
"markdown"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# TYPESCRIPT
|
||||||
|
inherit auto-format indent;
|
||||||
|
name = "typescript";
|
||||||
|
language-servers = [ "typescript" ];
|
||||||
|
formatter = {
|
||||||
|
command = "${getExe prettier}";
|
||||||
|
args = [
|
||||||
|
"--use-tabs"
|
||||||
|
"--parser"
|
||||||
|
"typescript"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
{
|
||||||
|
# PYTHON
|
||||||
|
inherit auto-format indent;
|
||||||
|
name = "python";
|
||||||
|
language-servers = [
|
||||||
|
"pylsp"
|
||||||
|
"ruff"
|
||||||
|
];
|
||||||
|
shebangs = [ "${getExe python39}" ];
|
||||||
|
file-types = [
|
||||||
|
"py"
|
||||||
|
"pyi"
|
||||||
|
"py3"
|
||||||
|
"pyw"
|
||||||
|
".pythonstartup"
|
||||||
|
".pythonrc"
|
||||||
|
];
|
||||||
|
roots = [
|
||||||
|
"."
|
||||||
|
"pyproject.toml"
|
||||||
|
"pyrightconfig.json"
|
||||||
|
];
|
||||||
|
comment-token = "#";
|
||||||
|
scope = "source.python";
|
||||||
|
injection-regex = "python";
|
||||||
|
formatter = {
|
||||||
|
command = "${getExe ruff}";
|
||||||
|
args = [
|
||||||
|
"format"
|
||||||
|
"-"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
language-server =
|
||||||
|
let
|
||||||
|
vscode = vscode-langservers-extracted;
|
||||||
|
typescript = typescript-language-server;
|
||||||
|
in
|
||||||
{
|
{
|
||||||
# NIX LSP
|
nil.command = "${getExe nil}";
|
||||||
name = "nix";
|
nixd.command = "${getExe nixd}";
|
||||||
language-servers = [ "nixd" "nil" ];
|
typescript.command = "${getExe typescript}";
|
||||||
formatter.command = "${getExe nixfmt-rfc-style}";
|
vscode-html.command = "${vscode}/bin/vscode-html-language-server";
|
||||||
indent = indent;
|
vscode-json.command = "${vscode}/bin/vscode-json-language-server";
|
||||||
inherit auto-format;
|
vscode-css.command = "${vscode}/bin/vscode-css-language-server";
|
||||||
}
|
marksman.command = "${getExe marksman}";
|
||||||
{
|
ruff.command = "${getExe ruff-lsp}";
|
||||||
# HTML
|
pyright = {
|
||||||
name = "html";
|
command = "${getExe pyright}";
|
||||||
language-servers = [ "vscode-html" ];
|
args = [ "--stdio" ];
|
||||||
indent = indent;
|
config = {
|
||||||
inherit auto-format;
|
reportMissingTypeStubs = false;
|
||||||
formatter = {
|
python.analysis = {
|
||||||
command = "${prettier}/bin/prettier";
|
typeCheckingMode = "basic";
|
||||||
args = [ "--use-tabs" "--parser" "html" ];
|
autoImportCompletions = true;
|
||||||
};
|
};
|
||||||
}
|
|
||||||
{
|
|
||||||
# JSON
|
|
||||||
name = "json";
|
|
||||||
language-servers = [ "vscode-json" ];
|
|
||||||
indent = indent;
|
|
||||||
inherit auto-format;
|
|
||||||
formatter = {
|
|
||||||
command = "${prettier}/bin/prettier";
|
|
||||||
args = [ "--use-tabs" "--parser" "json" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# JSON
|
|
||||||
name = "jsonc";
|
|
||||||
language-servers = [ "vscode-json" ];
|
|
||||||
indent = indent;
|
|
||||||
inherit auto-format;
|
|
||||||
formatter = {
|
|
||||||
command = "${prettier}/bin/prettier";
|
|
||||||
args = [ "--use-tabs" "--parser" "json" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# CSS
|
|
||||||
name = "css";
|
|
||||||
language-servers = [ "vscode-css" ];
|
|
||||||
indent = indent;
|
|
||||||
inherit auto-format;
|
|
||||||
formatter = {
|
|
||||||
command = "${prettier}/bin/prettier";
|
|
||||||
args = [ "--use-tabs" "--parser" "css" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# MARKDOWN
|
|
||||||
name = "markdown";
|
|
||||||
language-servers = [ "marksman" ];
|
|
||||||
indent = indent;
|
|
||||||
inherit auto-format;
|
|
||||||
formatter = {
|
|
||||||
command = "${prettier}/bin/prettier";
|
|
||||||
args = [ "--use-tabs" "--parser" "markdown" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# TYPESCRIPT
|
|
||||||
name = "typescript";
|
|
||||||
language-servers = [ "typescript" ];
|
|
||||||
indent = indent;
|
|
||||||
inherit auto-format;
|
|
||||||
formatter = {
|
|
||||||
command = "${prettier}/bin/prettier";
|
|
||||||
args = [ "--use-tabs" "--parser" "typescript" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
{
|
|
||||||
# PYTHON
|
|
||||||
name = "python";
|
|
||||||
language-servers = [ "pylsp" "ruff" ];
|
|
||||||
shebangs = [ "${python39}/bin/python" ];
|
|
||||||
file-types = [ "py" "pyi" "py3" "pyw" ".pythonstartup" ".pythonrc" ];
|
|
||||||
roots = [ "." "pyproject.toml" "pyrightconfig.json" ];
|
|
||||||
comment-token = "#";
|
|
||||||
scope = "source.python";
|
|
||||||
injection-regex = "python";
|
|
||||||
indent = indent;
|
|
||||||
inherit auto-format;
|
|
||||||
formatter = {
|
|
||||||
command = "${ruff}/bin/ruff";
|
|
||||||
args = [ "format" "-" ];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
];
|
|
||||||
language-server = let
|
|
||||||
vscode = vscode-langservers-extracted;
|
|
||||||
typescript = typescript-language-server;
|
|
||||||
in {
|
|
||||||
nil.command = "${nil}/bin/nil";
|
|
||||||
nixd.command = "${nixd}/bin/nixd";
|
|
||||||
typescript.command = "${typescript}/bin/typescript-language-server";
|
|
||||||
vscode-html.command = "${vscode}/bin/vscode-html-language-server";
|
|
||||||
vscode-json.command = "${vscode}/bin/vscode-json-language-server";
|
|
||||||
vscode-css.command = "${vscode}/bin/vscode-css-language-server";
|
|
||||||
marksman.command = "${marksman}/bin/marksman";
|
|
||||||
ruff.command = "${ruff-lsp}/bin/ruff-lsp";
|
|
||||||
pyright = {
|
|
||||||
command = "${pyright}/bin/pyright-langserver";
|
|
||||||
args = [ "--stdio" ];
|
|
||||||
config = {
|
|
||||||
reportMissingTypeStubs = false;
|
|
||||||
python.analysis = {
|
|
||||||
typeCheckingMode = "basic";
|
|
||||||
autoImportCompletions = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
|
||||||
};
|
};
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
# OTHER LSP
|
# OTHER LSP
|
||||||
|
|
|
@ -1,62 +0,0 @@
|
||||||
{
|
|
||||||
fetchurl,
|
|
||||||
nodeEnv,
|
|
||||||
globalBuildInputs ? [ ],
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
sources = {
|
|
||||||
"@taplo/core-0.1.1" = {
|
|
||||||
name = "_at_taplo_slash_core";
|
|
||||||
packageName = "@taplo/core";
|
|
||||||
version = "0.1.1";
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://registry.npmjs.org/@taplo/core/-/core-0.1.1.tgz";
|
|
||||||
sha512 = "BG/zLGf5wiNXGEVPvUAAX/4ilB3PwDUY2o0MV0y47mZbDZ9ad9UK/cIQsILat3bqbPJsALVbU6k3cskNZ3vAQg==";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"@taplo/lib-0.4.0-alpha.2" = {
|
|
||||||
name = "_at_taplo_slash_lib";
|
|
||||||
packageName = "@taplo/lib";
|
|
||||||
version = "0.4.0-alpha.2";
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://registry.npmjs.org/@taplo/lib/-/lib-0.4.0-alpha.2.tgz";
|
|
||||||
sha512 = "DV/Re3DPVY+BhBtLZ3dmP4mP6YMLSsgq9qGLXwOV38lvNF/fBlgvQswzlXmzCEefL/3q2eMoefZpOI/+GLuCNA==";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
"prettier-3.3.3" = {
|
|
||||||
name = "prettier";
|
|
||||||
packageName = "prettier";
|
|
||||||
version = "3.3.3";
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz";
|
|
||||||
sha512 = "i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
prettier-plugin-sh = nodeEnv.buildNodePackage {
|
|
||||||
name = "prettier-plugin-sh";
|
|
||||||
packageName = "prettier-plugin-sh";
|
|
||||||
version = "0.14.0";
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://registry.npmjs.org/prettier-plugin-toml/-/prettier-plugin-toml-2.0.1.tgz";
|
|
||||||
sha512 = "99z1YOkViECHtXQjGIigd3talI/ybUI1zB3yniAwUrlWBXupNXThB1hM6bwSMUEj2/+tomTlMtT98F5t4s8IWA==";
|
|
||||||
};
|
|
||||||
dependencies = [
|
|
||||||
sources."@taplo/core-0.1.1"
|
|
||||||
sources."@taplo/lib-0.4.0-alpha.2"
|
|
||||||
sources."prettier-3.3.3"
|
|
||||||
];
|
|
||||||
buildInputs = globalBuildInputs;
|
|
||||||
meta = {
|
|
||||||
description = "An opinionated `toml` formatter plugin for Prettier";
|
|
||||||
homepage = "https://github.com/un-ts/prettier/tree/master/packages/prettier";
|
|
||||||
license = "MIT";
|
|
||||||
};
|
|
||||||
production = true;
|
|
||||||
bypassCache = true;
|
|
||||||
reconstructLock = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,4 +1,3 @@
|
||||||
{ ... }:
|
|
||||||
{
|
{
|
||||||
programs.helix = {
|
programs.helix = {
|
||||||
settings = {
|
settings = {
|
||||||
|
|
|
@ -16,10 +16,5 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
|
||||||
./mimetype.nix
|
|
||||||
./settings.nix
|
|
||||||
./theme.nix
|
|
||||||
];
|
|
||||||
config = mkIf cfg.enable { programs.joshuto = True; };
|
config = mkIf cfg.enable { programs.joshuto = True; };
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,13 +16,5 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
|
||||||
./sets.nix
|
|
||||||
./binds.nix
|
|
||||||
./theme.nix
|
|
||||||
./lua.nix
|
|
||||||
./plugins.nix
|
|
||||||
./starship.nix
|
|
||||||
];
|
|
||||||
config = mkIf cfg.enable { programs.yazi = True // { }; };
|
config = mkIf cfg.enable { programs.yazi = True // { }; };
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
{ lib, config, ... }:
|
|
||||||
{
|
|
||||||
xdg.configFile = {
|
|
||||||
"yazi/star.toml".text = ''
|
|
||||||
format = """
|
|
||||||
$directory\
|
|
||||||
$git_branch\
|
|
||||||
$git_status\
|
|
||||||
$git_metrics\
|
|
||||||
"""
|
|
||||||
|
|
||||||
[directory]
|
|
||||||
style = "bold fg:green"
|
|
||||||
format = "in [$path ]($style)"
|
|
||||||
truncation_length = 3
|
|
||||||
truncation_symbol = "…/"
|
|
||||||
read_only = '[]'
|
|
||||||
read_only_style = 'bold fg:red'
|
|
||||||
|
|
||||||
[git_branch]
|
|
||||||
style = "bold fg:yellow"
|
|
||||||
|
|
||||||
[git_status]
|
|
||||||
style = "bold fg:red"
|
|
||||||
|
|
||||||
[git_metrics]
|
|
||||||
added_style = "bold fg:blue"
|
|
||||||
deleted_style = "bold fg:red"
|
|
||||||
|
|
||||||
[directory.substitutions]
|
|
||||||
"Documents" = " "
|
|
||||||
"Downloads" = " "
|
|
||||||
"Music" = " "
|
|
||||||
"Pictures" = " "
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
x,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with x;
|
|
||||||
let
|
|
||||||
cfg = config.module.programs.custom.ctree;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
module.programs.custom.ctree = {
|
|
||||||
enable = mkBool;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable { home.packages = [ (pkgs.callPackage ./pkg.nix { }) ]; };
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
fetchurl,
|
|
||||||
}:
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "ctree";
|
|
||||||
version = "1.0.4";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://github.com/gleich/ctree/releases/download/v${version}/ctree_${version}_linux_amd64.tar.gz";
|
|
||||||
hash = "sha256-2gD6ESzpz9sMJx1iRL438lP4QR/PVCZ5vMqfkpG3e0E=";
|
|
||||||
};
|
|
||||||
|
|
||||||
# installPhase = ''
|
|
||||||
# mkdir -p $out/bin
|
|
||||||
# cp foo $out/bin
|
|
||||||
# '';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
homepage = "https://github.com/gleich/ctree";
|
|
||||||
maintainers = with maintainers; [ azikx ];
|
|
||||||
mainProgram = "ctree";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./anicli
|
|
||||||
./ctree
|
|
||||||
./mabel
|
|
||||||
./torrent
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
x,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with x;
|
|
||||||
let
|
|
||||||
cfg = config.module.programs.custom.mabel;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
module.programs.custom.mabel = {
|
|
||||||
enable = mkBool;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable { home.packages = [ (pkgs.callPackage ./pkg.nix { }) ]; };
|
|
||||||
}
|
|
|
@ -1,25 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
buildGoModule,
|
|
||||||
fetchFromGitHub,
|
|
||||||
}:
|
|
||||||
buildGoModule rec {
|
|
||||||
pname = "mabel";
|
|
||||||
version = "0.1.7";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "smmr-software";
|
|
||||||
repo = "mabel";
|
|
||||||
rev = "v${version}";
|
|
||||||
hash = "sha256-KqZGwicWCi+9TLF4AwD3zL/Kz5C2a9iXAtcQYaswpWo=";
|
|
||||||
};
|
|
||||||
|
|
||||||
vendorHash = "sha256-xWOPiSX2cEmekd2k96O81qn3ygW1nU1MU4qL+JJN0AE=";
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
homepage = "https://github.com/smmr-software/mabel";
|
|
||||||
changelog = "https://github.com/smmr-software/mabel/releases/tag/v${version}";
|
|
||||||
maintainers = with maintainers; [ uwugda ];
|
|
||||||
mainProgram = "mabel";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,21 +0,0 @@
|
||||||
{
|
|
||||||
x,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
config,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
with lib;
|
|
||||||
with x;
|
|
||||||
let
|
|
||||||
cfg = config.module.programs.custom.torrent;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options = {
|
|
||||||
module.programs.custom.torrent = {
|
|
||||||
enable = mkBool;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable { home.packages = [ (pkgs.callPackage ./pkg.nix { }) ]; };
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{ buildPythonPackage, fetchurl }:
|
|
||||||
buildPythonPackage {
|
|
||||||
pname = "tor2mag";
|
|
||||||
version = "0.0.1";
|
|
||||||
doCheck = false;
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "https://raw.githubusercontent.com/repolho/torrent2magnet/refs/heads/master/torrent2magnet.py";
|
|
||||||
sha256 = "sha256-sXMCx9dYg/JYQqbsDHBMJqRqT16WPbBj1O3+Hqxxhkc=";
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./cli
|
|
||||||
./custom
|
|
||||||
./gui
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./floorp
|
|
||||||
./minecraft
|
|
||||||
./mpv
|
|
||||||
./obs
|
|
||||||
./qbittorrent
|
|
||||||
./qutebrowser
|
|
||||||
./spotify
|
|
||||||
./swayimg
|
|
||||||
./zed
|
|
||||||
./pkgs.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -21,10 +21,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
|
||||||
./user
|
|
||||||
./settings.nix
|
|
||||||
];
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.floorp = True // {
|
programs.floorp = True // {
|
||||||
profiles.${userName} = {
|
profiles.${userName} = {
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./chrome.nix
|
|
||||||
./tcr.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,73 +0,0 @@
|
||||||
{
|
|
||||||
lib,
|
|
||||||
stdenv,
|
|
||||||
python3Packages,
|
|
||||||
fetchFromGitHub,
|
|
||||||
fetchurl,
|
|
||||||
installShellFiles,
|
|
||||||
libX11,
|
|
||||||
libXext,
|
|
||||||
libXcursor,
|
|
||||||
libXrandr,
|
|
||||||
libXxf86vm,
|
|
||||||
libpulseaudio,
|
|
||||||
libGL,
|
|
||||||
glfw,
|
|
||||||
openal,
|
|
||||||
udev,
|
|
||||||
flite,
|
|
||||||
java ? [ ],
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
runtimeLibs = [
|
|
||||||
libX11
|
|
||||||
libXext
|
|
||||||
libXcursor
|
|
||||||
libXrandr
|
|
||||||
libXxf86vm
|
|
||||||
libpulseaudio
|
|
||||||
libGL
|
|
||||||
glfw
|
|
||||||
openal
|
|
||||||
(lib.getLib stdenv.cc.cc)
|
|
||||||
udev
|
|
||||||
] ++ lib.optional flite;
|
|
||||||
patch = fetchurl {
|
|
||||||
url = "https://raw.githubusercontent.com/NixOS/nixpkgs/refs/heads/nixos-unstable/pkgs/by-name/po/portablemc/use-builtin-java.patch";
|
|
||||||
hash = "";
|
|
||||||
};
|
|
||||||
in
|
|
||||||
python3Packages.buildPythonApplication rec {
|
|
||||||
pname = "portablemc";
|
|
||||||
version = "4.4.0";
|
|
||||||
pyproject = true;
|
|
||||||
disabled = python3Packages.pythonOlder "3.8";
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "mindstorm38";
|
|
||||||
repo = "portablemc";
|
|
||||||
rev = "refs/tags/v${version}";
|
|
||||||
hash = "sha256-JDosvjbpoDC+xJ15ejcMJd+jA09RLR+whVZblMu+ljk=";
|
|
||||||
};
|
|
||||||
patches = [ patch ];
|
|
||||||
nativeBuildInputs = [ installShellFiles ];
|
|
||||||
build-system = [ python3Packages.poetry-core ];
|
|
||||||
dependencies = [ python3Packages.certifi ];
|
|
||||||
postInstall = ''
|
|
||||||
installShellCompletion --cmd portablemc \
|
|
||||||
--bash <($out/bin/portablemc show completion bash) \
|
|
||||||
--zsh <($out/bin/portablemc show completion zsh)
|
|
||||||
'';
|
|
||||||
preFixup = ''
|
|
||||||
makeWrapperArgs+=(
|
|
||||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath runtimeLibs}
|
|
||||||
--prefix PATH : ${lib.makeBinPath [ java ]}
|
|
||||||
)
|
|
||||||
'';
|
|
||||||
meta = {
|
|
||||||
mainProgram = "portablemc";
|
|
||||||
maintainers = with lib.maintainers; [
|
|
||||||
tomasajt
|
|
||||||
uwugda
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -17,10 +17,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
|
||||||
./bindings.nix
|
|
||||||
./osc.nix
|
|
||||||
];
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.mpv = True // {
|
programs.mpv = True // {
|
||||||
scripts = with pkgs.mpvScripts; [
|
scripts = with pkgs.mpvScripts; [
|
||||||
|
|
26
modules/home/programs/gui/qutebrowser/binds.nix
Normal file
26
modules/home/programs/gui/qutebrowser/binds.nix
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
x,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with x;
|
||||||
|
let
|
||||||
|
us = "spawn --userscript";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
programs.qutebrowser = True // {
|
||||||
|
keyBindings = {
|
||||||
|
normal = {
|
||||||
|
xb = "config-cycle statusbar.show always never";
|
||||||
|
xt = "config-cycle tabs.show always never";
|
||||||
|
xx = "config-cycle statusbar.show always never;; config-cycle tabs.show always never";
|
||||||
|
M = "hint links spawn mpv {hint-url}";
|
||||||
|
# QUTE PASS
|
||||||
|
zz = "${us} qute-pass";
|
||||||
|
zu = "${us} qute-pass --username-only";
|
||||||
|
zp = "${us} qute-pass --password-only";
|
||||||
|
# DOWNLOADS
|
||||||
|
sd = "${us} downloads";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -19,15 +19,13 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ python312Packages.adblock ];
|
||||||
programs.qutebrowser = True // {
|
programs.qutebrowser = True // {
|
||||||
keyBindings = {
|
|
||||||
normal = {
|
|
||||||
xb = "config-cycle statusbar.show always never";
|
|
||||||
xt = "config-cycle tabs.show always never";
|
|
||||||
xx = "config-cycle statusbar.show always never;; config-cycle tabs.show always never";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
settings = {
|
settings = {
|
||||||
|
editor.command = [
|
||||||
|
"hx"
|
||||||
|
"{file}"
|
||||||
|
];
|
||||||
confirm_quit = [ "downloads" ];
|
confirm_quit = [ "downloads" ];
|
||||||
scrolling = {
|
scrolling = {
|
||||||
bar = "overlay";
|
bar = "overlay";
|
||||||
|
@ -45,10 +43,13 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
tabs = {
|
tabs = {
|
||||||
|
position = "top";
|
||||||
show = "switching";
|
show = "switching";
|
||||||
tooltips = false;
|
tooltips = false;
|
||||||
|
max_width = 300;
|
||||||
|
min_width = 300;
|
||||||
title = {
|
title = {
|
||||||
format = "{audio}{index}: {current_title}";
|
format = "{index}: {current_title}";
|
||||||
format_pinned = "{index}";
|
format_pinned = "{index}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -60,7 +61,20 @@ in
|
||||||
fg = frc "${base00}";
|
fg = frc "${base00}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
fonts = with config.stylix.fonts; {
|
||||||
|
default_family = mkForce "${monospace.name}";
|
||||||
|
};
|
||||||
content.blocking.enabled = true;
|
content.blocking.enabled = true;
|
||||||
|
hints = {
|
||||||
|
scatter = false;
|
||||||
|
chars = "asdfghjkl";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
searchEngines = {
|
||||||
|
DEFAULT = "https://www.google.com/search?hl=en&q={}";
|
||||||
|
nx = "https://wiki.nixos.org/index.php?search={}";
|
||||||
|
g = "https://www.google.com/search?hl=en&q={}";
|
||||||
|
d = "https://duckduckgo.com/?q={}";
|
||||||
};
|
};
|
||||||
greasemonkey = with pkgs; [
|
greasemonkey = with pkgs; [
|
||||||
(fetchurl {
|
(fetchurl {
|
||||||
|
|
|
@ -20,7 +20,7 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [ inputs.spicetify.homeManagerModules.default ];
|
imports = with inputs; [ spicetify.homeManagerModules.default ];
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.spicetify = True // {
|
programs.spicetify = True // {
|
||||||
theme = spicePkgs.themes.sleek // {
|
theme = spicePkgs.themes.sleek // {
|
||||||
|
|
|
@ -23,157 +23,151 @@ in
|
||||||
xdg.configFile = with config.lib.stylix.colors; {
|
xdg.configFile = with config.lib.stylix.colors; {
|
||||||
"swayimg/config".text = ''
|
"swayimg/config".text = ''
|
||||||
[general]
|
[general]
|
||||||
mode = viewer
|
mode = viewer
|
||||||
position = parent
|
position = parent
|
||||||
size = fullscreen
|
size = fullscreen
|
||||||
sigusr1 = reload
|
sigusr1 = reload
|
||||||
sigusr2 = next_file
|
sigusr2 = next_file
|
||||||
app_id = swayimg
|
app_id = swayimg
|
||||||
|
|
||||||
[viewer]
|
[viewer]
|
||||||
window = #000000ff
|
window = #000000ff
|
||||||
transparency = grid
|
transparency = grid
|
||||||
scale = optimal
|
scale = optimal
|
||||||
fixed = yes
|
fixed = yes
|
||||||
antialiasing = no
|
antialiasing = no
|
||||||
slideshow = no
|
slideshow = no
|
||||||
slideshow_time = 3
|
slideshow_time = 3
|
||||||
history = 1
|
history = 1
|
||||||
preload = 1
|
preload = 1
|
||||||
|
|
||||||
[gallery]
|
[gallery]
|
||||||
size = 200
|
size = 200
|
||||||
cache = 100
|
cache = 100
|
||||||
fill = yes
|
fill = yes
|
||||||
antialiasing = yes
|
antialiasing = yes
|
||||||
window = #${base00}ff
|
window = #${base00}ff
|
||||||
background = #${base01}ff
|
background = #${base01}ff
|
||||||
select = #${base02}ff
|
select = #${base02}ff
|
||||||
border = #${base0E}ff
|
border = #${base0E}ff
|
||||||
shadow = #${base00}a0
|
shadow = #${base00}a0
|
||||||
|
|
||||||
[list]
|
[list]
|
||||||
order = alpha
|
order = alpha
|
||||||
loop = yes
|
loop = yes
|
||||||
recursive = no
|
recursive = no
|
||||||
all = yes
|
all = yes
|
||||||
|
|
||||||
[font]
|
[font]
|
||||||
name = ${font.monospace.name}
|
name = ${font.monospace.name}
|
||||||
size = 14
|
size = 14
|
||||||
color = #${base06}ff
|
color = #${base06}ff
|
||||||
shadow = #${base00}a0
|
shadow = #${base00}a0
|
||||||
|
|
||||||
[info]
|
[info]
|
||||||
show = yes
|
show = yes
|
||||||
info_timeout = 5
|
info_timeout = 5
|
||||||
status_timeout = 3
|
status_timeout = 3
|
||||||
|
|
||||||
[info.viewer]
|
[info.viewer]
|
||||||
top_left = none
|
top_left = none
|
||||||
top_right = index
|
top_right = index
|
||||||
bottom_left = none
|
bottom_left = none
|
||||||
bottom_right = none
|
bottom_right = none
|
||||||
|
|
||||||
[info.gallery]
|
[info.gallery]
|
||||||
top_left = none
|
top_left = none
|
||||||
top_right = index
|
top_right = index
|
||||||
bottom_left = none
|
bottom_left = none
|
||||||
bottom_right = none
|
bottom_right = none
|
||||||
|
|
||||||
[keys.viewer]
|
[keys.viewer]
|
||||||
F1 = help
|
F1 = help
|
||||||
Home = first_file
|
Home = first_file
|
||||||
g = first_file
|
g = first_file
|
||||||
End = last_file
|
End = last_file
|
||||||
Shift+g = last_file
|
Shift+g = last_file
|
||||||
Prior = prev_file
|
Prior = prev_file
|
||||||
Next = next_file
|
Next = next_file
|
||||||
h = zoom +10
|
h = zoom +10
|
||||||
j = next_file
|
j = next_file
|
||||||
k = prev_file
|
k = prev_file
|
||||||
l = zoom -10
|
l = zoom -10
|
||||||
Space = next_file
|
Space = next_file
|
||||||
Shift+d = prev_dir
|
Shift+d = prev_dir
|
||||||
d = next_dir
|
d = next_dir
|
||||||
Shift+o = prev_frame
|
Shift+o = prev_frame
|
||||||
o = next_frame
|
o = next_frame
|
||||||
c = skip_file
|
c = skip_file
|
||||||
Shift+s = slideshow
|
Shift+s = slideshow
|
||||||
s = animation
|
s = animation
|
||||||
f = fullscreen
|
f = fullscreen
|
||||||
Return = mode
|
Return = mode
|
||||||
Left = step_left 10
|
Left = step_left 10
|
||||||
Right = step_right 10
|
Right = step_right 10
|
||||||
Up = step_up 10
|
Up = step_up 10
|
||||||
Down = step_down 10
|
Down = step_down 10
|
||||||
Equal = zoom +10
|
Equal = zoom +10
|
||||||
Plus = zoom +10
|
Plus = zoom +10
|
||||||
Minus = zoom -10
|
Minus = zoom -10
|
||||||
w = zoom width
|
w = zoom width
|
||||||
Shift+w = zoom height
|
Shift+w = zoom height
|
||||||
z = zoom fit
|
z = zoom fit
|
||||||
Shift+z = zoom fill
|
Shift+z = zoom fill
|
||||||
0 = zoom real
|
0 = zoom real
|
||||||
BackSpace = zoom optimal
|
BackSpace = zoom optimal
|
||||||
bracketleft = rotate_left
|
bracketleft = rotate_left
|
||||||
bracketright = rotate_right
|
bracketright = rotate_right
|
||||||
m = flip_vertical
|
m = flip_vertical
|
||||||
Shift+m = flip_horizontal
|
Shift+m = flip_horizontal
|
||||||
a = antialiasing
|
a = antialiasing
|
||||||
r = reload
|
r = reload
|
||||||
i = info
|
i = info
|
||||||
Shift+Delete = exec rm "%"; skip_file
|
Shift+Delete = exec rm "%"; skip_file
|
||||||
Escape = exit
|
Escape = exit
|
||||||
q = exit
|
q = exit
|
||||||
# Mouse related
|
# Mouse related
|
||||||
ScrollLeft = step_right 5
|
ScrollLeft = step_right 5
|
||||||
ScrollRight = step_left 5
|
ScrollRight = step_left 5
|
||||||
ScrollUp = step_up 5
|
ScrollUp = step_up 5
|
||||||
ScrollDown = step_down 5
|
ScrollDown = step_down 5
|
||||||
Ctrl+ScrollUp = zoom +10
|
Ctrl+ScrollUp = zoom +10
|
||||||
Ctrl+ScrollDown = zoom -10
|
Ctrl+ScrollDown = zoom -10
|
||||||
Shift+ScrollUp = prev_file
|
Shift+ScrollUp = prev_file
|
||||||
Shift+ScrollDown = next_file
|
Shift+ScrollDown = next_file
|
||||||
Alt+ScrollUp = prev_frame
|
Alt+ScrollUp = prev_frame
|
||||||
Alt+ScrollDown = next_frame
|
Alt+ScrollDown = next_frame
|
||||||
|
|
||||||
[keys.gallery]
|
[keys.gallery]
|
||||||
F1 = help
|
F1 = help
|
||||||
|
Home = first_file
|
||||||
Home = first_file
|
g = first_file
|
||||||
g = first_file
|
End = last_file
|
||||||
|
Shift+g = last_file
|
||||||
End = last_file
|
Left = step_left
|
||||||
Shift+g = last_file
|
Right = step_right
|
||||||
|
Up = step_up
|
||||||
Left = step_left
|
Down = step_down
|
||||||
Right = step_right
|
h = step_left
|
||||||
Up = step_up
|
j = step_down
|
||||||
Down = step_down
|
k = step_up
|
||||||
|
l = step_right
|
||||||
h = step_left
|
Prior = page_up
|
||||||
j = step_down
|
Next = page_down
|
||||||
k = step_up
|
c = skip_file
|
||||||
l = step_right
|
f = fullscreen
|
||||||
Prior = page_up
|
Return = mode
|
||||||
Next = page_down
|
a = antialiasing
|
||||||
|
r = reload
|
||||||
c = skip_file
|
i = info
|
||||||
f = fullscreen
|
Shift+Delete = exec rm "%"; skip_file
|
||||||
Return = mode
|
Escape = exit
|
||||||
a = antialiasing
|
q = exit
|
||||||
r = reload
|
# Mouse related
|
||||||
|
ScrollLeft = step_right
|
||||||
i = info
|
ScrollRight = step_left
|
||||||
Shift+Delete = exec rm "%"; skip_file
|
ScrollUp = step_up
|
||||||
Escape = exit
|
ScrollDown = step_down
|
||||||
q = exit
|
|
||||||
# Mouse related
|
|
||||||
ScrollLeft = step_right
|
|
||||||
ScrollRight = step_left
|
|
||||||
ScrollUp = step_up
|
|
||||||
ScrollDown = step_down
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,13 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./bash
|
|
||||||
./fish
|
|
||||||
./nushell
|
|
||||||
./tmux
|
|
||||||
./zsh
|
|
||||||
./abbrs.nix
|
|
||||||
./alias.nix
|
|
||||||
./starship.nix
|
|
||||||
./var.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -18,11 +18,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
|
||||||
./misc
|
|
||||||
./colors.nix
|
|
||||||
./plugins.nix
|
|
||||||
];
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.fish = True // {
|
programs.fish = True // {
|
||||||
package = pkgs.fish;
|
package = pkgs.fish;
|
||||||
|
|
|
@ -1,45 +0,0 @@
|
||||||
{ x, ... }:
|
|
||||||
with x;
|
|
||||||
{
|
|
||||||
programs.fish.functions = {
|
|
||||||
clone.body = ''
|
|
||||||
echo "cd ~/git/"
|
|
||||||
cd $HOME/git
|
|
||||||
git clone $argv && cd $(basename $argv .git)
|
|
||||||
'';
|
|
||||||
# NIX
|
|
||||||
rebuild.body = ''
|
|
||||||
git add --all ${flakeDir}/.
|
|
||||||
for ARG in $argv
|
|
||||||
if [ $ARG = home ]
|
|
||||||
command nh home switch
|
|
||||||
return $status
|
|
||||||
else if [ $ARG = host ]
|
|
||||||
command sudo nh os switch
|
|
||||||
return $status
|
|
||||||
else
|
|
||||||
else if [ $ARG = both ]
|
|
||||||
command nh home switch
|
|
||||||
command sudo nh os switch
|
|
||||||
return $status
|
|
||||||
else
|
|
||||||
command echo "Select 'home' or 'host' os 'both'"
|
|
||||||
end
|
|
||||||
end
|
|
||||||
'';
|
|
||||||
nrun.body = ''
|
|
||||||
nix run nixpkgs#$argv
|
|
||||||
'';
|
|
||||||
nshell.body = ''
|
|
||||||
nix shell nixpkgs#$argv
|
|
||||||
'';
|
|
||||||
nbuild.body = ''
|
|
||||||
nix build nixpkgs#$argv
|
|
||||||
'';
|
|
||||||
nclean.body = ''
|
|
||||||
nix-env --delete-generations old
|
|
||||||
nix-store --gc
|
|
||||||
nix-collect-garbage -d
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
# IDK
|
|
||||||
# ./fish-helix.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,29 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
xdg.configFile =
|
|
||||||
let
|
|
||||||
fun = "fish/functions";
|
|
||||||
hx = pkgs.fetchFromSourcehut {
|
|
||||||
owner = "~neverness";
|
|
||||||
repo = "fish_hx";
|
|
||||||
rev = "main";
|
|
||||||
sha256 = "sha256-57EWMjsUit8la6t62SVv5ocgY2EqrGx7sF2BjGWDw5Q=";
|
|
||||||
};
|
|
||||||
count = "fish_bind_count.fish";
|
|
||||||
cmd = "fish_helix_command.fish";
|
|
||||||
binds = "fish_helix_key_bindings.fish";
|
|
||||||
mode = "fish_default_mode_prompt.fish";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
"${fun}/${count}".source = "${hx}/${count}";
|
|
||||||
"${fun}/${cmd}".source = "${hx}/${cmd}";
|
|
||||||
"${fun}/${binds}".source = "${hx}/${binds}";
|
|
||||||
"${fun}/${mode}".source = "${hx}/${mode}";
|
|
||||||
};
|
|
||||||
programs.fish.plugins = with pkgs.fishPlugins; [
|
|
||||||
{
|
|
||||||
name = "tide";
|
|
||||||
src = tide.src;
|
|
||||||
}
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -18,7 +18,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [ ./plugins.nix ];
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.zsh =
|
programs.zsh =
|
||||||
with pkgs;
|
with pkgs;
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./gtk
|
|
||||||
./qt
|
|
||||||
./stylix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -16,11 +16,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
|
||||||
./qt5ct.nix
|
|
||||||
./qt6ct.nix
|
|
||||||
./color.nix
|
|
||||||
];
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
qt = True // {
|
qt = True // {
|
||||||
platformTheme.name = "qtct";
|
platformTheme.name = "qtct";
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
{ pkgs, config, ... }:
|
{ pkgs, config, ... }:
|
||||||
let
|
let
|
||||||
font = config.stylix.fonts;
|
font = config.stylix.fonts;
|
||||||
|
st = "${pkgs.libsForQt5.qt5ct}/share/qt5ct/qss";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
"qt5ct/qt5ct.conf".text = with pkgs.libsForQt5; ''
|
"qt5ct/qt5ct.conf".text = ''
|
||||||
[Appearance]
|
[Appearance]
|
||||||
color_scheme_path=${config.home.homeDirectory}/.config/qt5ct/colors/paradise.conf
|
color_scheme_path=${config.home.homeDirectory}/.config/qt5ct/colors/paradise.conf
|
||||||
custom_palette=true
|
custom_palette=true
|
||||||
|
@ -24,13 +25,13 @@ in
|
||||||
double_click_interval=400
|
double_click_interval=400
|
||||||
gui_effects=@Invalid()
|
gui_effects=@Invalid()
|
||||||
keyboard_scheme=2
|
keyboard_scheme=2
|
||||||
menus_have_icons=true
|
menus_have_icons=false
|
||||||
show_shortcuts_in_context_menus=true
|
show_shortcuts_in_context_menus=true
|
||||||
stylesheets=@Invalid()
|
stylesheets=@Invalid()
|
||||||
toolbutton_style=4
|
toolbutton_style=4
|
||||||
underline_shortcut=1
|
underline_shortcut=1
|
||||||
wheel_scroll_lines=3
|
wheel_scroll_lines=3
|
||||||
stylesheets=${qt5ct}/share/qt5ct/qss/scrollbar-simple.qss, ${qt5ct}/share/qt5ct/qss/sliders-simple.qss, ${qt5ct}/share/qt5ct/qss/tooltip-simple.qss, ${qt5ct}/share/qt5ct/qss/traynotification-simple.qss
|
stylesheets=${st}/fusion-fixes.qss, ${st}/scrollbar-simple.qss, ${st}/sliders-simple.qss, ${st}/tooltip-simple.qss, ${st}/traynotification-simple.qss
|
||||||
|
|
||||||
[PaletteEditor]
|
[PaletteEditor]
|
||||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10)
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10)
|
||||||
|
|
|
@ -1,10 +1,11 @@
|
||||||
{ pkgs, config, ... }:
|
{ pkgs, config, ... }:
|
||||||
let
|
let
|
||||||
font = config.stylix.fonts;
|
font = config.stylix.fonts;
|
||||||
|
st = "${pkgs.qt6ct}/share/qt5ct/qss";
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
xdg.configFile = {
|
xdg.configFile = {
|
||||||
"qt6ct/qt6ct.conf".text = with pkgs; ''
|
"qt6ct/qt6ct.conf".text = ''
|
||||||
[Appearance]
|
[Appearance]
|
||||||
color_scheme_path=${config.home.homeDirectory}/.config/qt6ct/colors/paradise.conf
|
color_scheme_path=${config.home.homeDirectory}/.config/qt6ct/colors/paradise.conf
|
||||||
custom_palette=true
|
custom_palette=true
|
||||||
|
@ -24,13 +25,13 @@ in
|
||||||
double_click_interval=400
|
double_click_interval=400
|
||||||
gui_effects=@Invalid()
|
gui_effects=@Invalid()
|
||||||
keyboard_scheme=2
|
keyboard_scheme=2
|
||||||
menus_have_icons=true
|
menus_have_icons=false
|
||||||
show_shortcuts_in_context_menus=true
|
show_shortcuts_in_context_menus=true
|
||||||
stylesheets=@Invalid()
|
stylesheets=@Invalid()
|
||||||
toolbutton_style=4
|
toolbutton_style=4
|
||||||
underline_shortcut=1
|
underline_shortcut=1
|
||||||
wheel_scroll_lines=3
|
wheel_scroll_lines=3
|
||||||
stylesheets=${qt6ct}/share/qt6ct/qss/scrollbar-simple.qss, ${qt6ct}/share/qt6ct/qss/sliders-simple.qss, ${qt6ct}/share/qt6ct/qss/tooltip-simple.qss, ${qt6ct}/share/qt6ct/qss/traynotification-simple.qss
|
stylesheets=${st}/fusion-fixes.qss, ${st}/scrollbar-simple.qss, ${st}/sliders-simple.qss, ${st}/tooltip-simple.qss, ${st}/traynotification-simple.qss
|
||||||
|
|
||||||
[PaletteEditor]
|
[PaletteEditor]
|
||||||
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10)
|
geometry=@ByteArray(\x1\xd9\xd0\xcb\0\x3\0\0\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10\0\0\0\0\x2\0\0\0\a\x80\0\0\0\0\0\0\0\0\0\0\x2v\0\0\x2\x10)
|
||||||
|
|
|
@ -88,9 +88,13 @@ in
|
||||||
# WM
|
# WM
|
||||||
hyprland = True;
|
hyprland = True;
|
||||||
sway = True;
|
sway = True;
|
||||||
|
river = True;
|
||||||
|
# MISC PROGRAMS
|
||||||
foot = True;
|
foot = True;
|
||||||
kitty = True;
|
kitty = True;
|
||||||
mako = False;
|
mako = False;
|
||||||
|
rofi = True;
|
||||||
|
bemenu = True;
|
||||||
# TOOLS
|
# TOOLS
|
||||||
nixvim = True;
|
nixvim = True;
|
||||||
yazi = True;
|
yazi = True;
|
||||||
|
@ -98,6 +102,7 @@ in
|
||||||
bat = True;
|
bat = True;
|
||||||
mangohud = True;
|
mangohud = True;
|
||||||
# GUI
|
# GUI
|
||||||
|
spicetify = False;
|
||||||
vesktop = True;
|
vesktop = True;
|
||||||
qutebrowser = True;
|
qutebrowser = True;
|
||||||
firefox = True;
|
firefox = True;
|
||||||
|
|
|
@ -5,14 +5,11 @@
|
||||||
stylix = with pkgs; {
|
stylix = with pkgs; {
|
||||||
image =
|
image =
|
||||||
let
|
let
|
||||||
img =
|
cfg = config.module.themes.stylix;
|
||||||
let
|
img = fetchurl {
|
||||||
cfg = config.module.themes.stylix;
|
url = cfg.image;
|
||||||
in
|
sha256 = cfg.hash;
|
||||||
fetchurl {
|
};
|
||||||
url = cfg.image;
|
|
||||||
sha256 = cfg.hash;
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
runCommand "output.png" { } ''
|
runCommand "output.png" { } ''
|
||||||
${lutgen}/bin/lutgen apply ${img} -o $out -- ${
|
${lutgen}/bin/lutgen apply ${img} -o $out -- ${
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./hyprland
|
|
||||||
./misc
|
|
||||||
./sway
|
|
||||||
./terminals
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,10 +1,17 @@
|
||||||
{ pkgs, config, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
let
|
let
|
||||||
cfg = config.module.wm.hyprland;
|
cfg = config.module.wm.hyprland;
|
||||||
mic = "fixf4=$(cat /sys/class/leds/platform::micmute/brightness); echo $((1-fixf4)) | doas tee /sys/class/leds/platform::micmute/brightness; wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
|
mic = "fixf4=$(cat /sys/class/leds/platform::micmute/brightness); echo $((1-fixf4)) | doas tee /sys/class/leds/platform::micmute/brightness; wpctl set-mute @DEFAULT_AUDIO_SOURCE@ toggle";
|
||||||
workspaces = (
|
workspaces =
|
||||||
builtins.concatLists (
|
with builtins;
|
||||||
builtins.genList (
|
(concatLists (
|
||||||
|
genList (
|
||||||
i:
|
i:
|
||||||
let
|
let
|
||||||
ws = i + 1;
|
ws = i + 1;
|
||||||
|
@ -14,8 +21,7 @@ let
|
||||||
"$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
|
"$mod SHIFT, code:1${toString i}, movetoworkspace, ${toString ws}"
|
||||||
]
|
]
|
||||||
) 10
|
) 10
|
||||||
)
|
));
|
||||||
);
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
wayland.windowManager.hyprland.settings = {
|
wayland.windowManager.hyprland.settings = {
|
||||||
|
@ -38,10 +44,10 @@ in
|
||||||
"$ex" = "exec";
|
"$ex" = "exec";
|
||||||
|
|
||||||
bind =
|
bind =
|
||||||
# KEYBOARD
|
with pkgs;
|
||||||
[
|
[
|
||||||
# MENU
|
# MENU
|
||||||
"$m, $tb, exec, ${pkgs.nwg-drawer}/bin/nwg-drawer -ovl -nocats -nofs -d -c 5 -mb -49"
|
"$m, $tb, exec, ${getExe nwg-drawer} -ovl -nocats -nofs -d -c 5 -mb -49"
|
||||||
|
|
||||||
# BUILTIN COMMANDS
|
# BUILTIN COMMANDS
|
||||||
"$m, $sp, togglefloating"
|
"$m, $sp, togglefloating"
|
||||||
|
@ -71,7 +77,9 @@ in
|
||||||
|
|
||||||
"$m, $nx, workspace, e+1"
|
"$m, $nx, workspace, e+1"
|
||||||
"$m, $pr, workspace, e-1"
|
"$m, $pr, workspace, e-1"
|
||||||
] ++ workspaces ++ cfg.programs;
|
]
|
||||||
|
++ workspaces
|
||||||
|
++ cfg.programs;
|
||||||
|
|
||||||
# HOLDING BUTTONS
|
# HOLDING BUTTONS
|
||||||
binde =
|
binde =
|
||||||
|
|
|
@ -20,11 +20,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
|
||||||
./binds.nix
|
|
||||||
./rules.nix
|
|
||||||
./sets.nix
|
|
||||||
];
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
wayland.windowManager.hyprland = True // {
|
wayland.windowManager.hyprland = True // {
|
||||||
xwayland = True;
|
xwayland = True;
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
{ pkgs, ... }:
|
|
||||||
{
|
|
||||||
wayland.windowManager.hyprland = {
|
|
||||||
plugins = with pkgs.hyprlandPlugins; [ hypr-dynamic-cursors ];
|
|
||||||
settings.plugin =
|
|
||||||
let
|
|
||||||
dynamic-cursors = {
|
|
||||||
enabled = true;
|
|
||||||
mode = "stretch";
|
|
||||||
threshold = 2;
|
|
||||||
stretch = {
|
|
||||||
limit = 3000;
|
|
||||||
function = "quadratic";
|
|
||||||
};
|
|
||||||
hyprcursor = {
|
|
||||||
nearest = false;
|
|
||||||
enabled = true;
|
|
||||||
resolution = "-1";
|
|
||||||
fallback = "clientside";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
{
|
|
||||||
inherit dynamic-cursors;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -9,6 +9,7 @@ in
|
||||||
wayland.windowManager.hyprland = {
|
wayland.windowManager.hyprland = {
|
||||||
settings = with config.lib.stylix.colors; {
|
settings = with config.lib.stylix.colors; {
|
||||||
env = [ "SLURP_ARGS, -b ${base00}CC -c ${base0F}FF -B ${base02}CC" ];
|
env = [ "SLURP_ARGS, -b ${base00}CC -c ${base0F}FF -B ${base02}CC" ];
|
||||||
|
exec-once = cfg.autostart;
|
||||||
monitor =
|
monitor =
|
||||||
let
|
let
|
||||||
res = "1920x1080";
|
res = "1920x1080";
|
||||||
|
@ -17,7 +18,6 @@ in
|
||||||
trs = "0";
|
trs = "0";
|
||||||
in
|
in
|
||||||
"eDP-1, ${res}@${fps}, 0x0, ${scl}, transform, ${trs}";
|
"eDP-1, ${res}@${fps}, 0x0, ${scl}, transform, ${trs}";
|
||||||
exec-once = cfg.autostart;
|
|
||||||
|
|
||||||
# APPERANCE
|
# APPERANCE
|
||||||
general = {
|
general = {
|
||||||
|
@ -88,7 +88,6 @@ in
|
||||||
input = {
|
input = {
|
||||||
kb_layout = "us,ru";
|
kb_layout = "us,ru";
|
||||||
kb_options = "grp:caps_toggle";
|
kb_options = "grp:caps_toggle";
|
||||||
accel_profile = "adaptive";
|
|
||||||
touchpad = {
|
touchpad = {
|
||||||
natural_scroll = false;
|
natural_scroll = false;
|
||||||
disable_while_typing = true;
|
disable_while_typing = true;
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./mako
|
|
||||||
./nwg
|
|
||||||
./waybar
|
|
||||||
./wob
|
|
||||||
];
|
|
||||||
}
|
|
35
modules/home/wm/misc/rofi/default.nix
Normal file
35
modules/home/wm/misc/rofi/default.nix
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
x,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
with x;
|
||||||
|
let
|
||||||
|
cfg = config.module.wm.misc.rofi;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
module.wm.misc.rofi = {
|
||||||
|
enable = mkBool;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
programs.rofi = True // {
|
||||||
|
location = "bottom";
|
||||||
|
terminal = "kitty";
|
||||||
|
package = pkgs.rofi-wayland;
|
||||||
|
plugins = with pkgs; [
|
||||||
|
rofi-file-browser
|
||||||
|
rofi-power-menu
|
||||||
|
rofi-screenshot
|
||||||
|
rofi-bluetooth
|
||||||
|
rofi-calc
|
||||||
|
rofimoji
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -16,7 +16,6 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [ ./style.nix ];
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.waybar =
|
programs.waybar =
|
||||||
with config.lib.stylix.colors;
|
with config.lib.stylix.colors;
|
||||||
|
@ -41,6 +40,19 @@ in
|
||||||
"9" = "九";
|
"9" = "九";
|
||||||
"10" = "十";
|
"10" = "十";
|
||||||
};
|
};
|
||||||
|
bat_icons = [
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
""
|
||||||
|
];
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
layer = "top";
|
layer = "top";
|
||||||
|
@ -165,9 +177,6 @@ in
|
||||||
5
|
5
|
||||||
6
|
6
|
||||||
7
|
7
|
||||||
8
|
|
||||||
9
|
|
||||||
10
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -211,18 +220,7 @@ in
|
||||||
format = "{capacity}% {icon}";
|
format = "{capacity}% {icon}";
|
||||||
format-alt = "{time} {icon}";
|
format-alt = "{time} {icon}";
|
||||||
format-charging = "{capacity}% ";
|
format-charging = "{capacity}% ";
|
||||||
format-icons = [
|
format-icons = bat_icons;
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
""
|
|
||||||
];
|
|
||||||
states = {
|
states = {
|
||||||
critical = 15;
|
critical = 15;
|
||||||
warning = 30;
|
warning = 30;
|
||||||
|
|
60
modules/home/wm/misc/yofi/default.nix
Normal file
60
modules/home/wm/misc/yofi/default.nix
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
{
|
||||||
|
x,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
with x;
|
||||||
|
let
|
||||||
|
cfg = config.module.wm.misc.yofi;
|
||||||
|
font = config.stylix.fonts;
|
||||||
|
icon = config.gtk.iconTheme.name;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
module.wm.misc.yofi = {
|
||||||
|
enable = mkBool;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
home.packages = with pkgs; [ yofi ];
|
||||||
|
xdg.configFile = with config.lib.stylix.colors; {
|
||||||
|
"yofi/yofi.config".text = ''
|
||||||
|
width = 500
|
||||||
|
height = 300
|
||||||
|
force_window = false
|
||||||
|
corner_radius = "32"
|
||||||
|
font = "${font.monospace.name}"
|
||||||
|
font_size = 24
|
||||||
|
bg_color = 0x${base00}ff
|
||||||
|
bg_border_color = 0x${base0E}ff
|
||||||
|
bg_border_width = 4.0
|
||||||
|
font_color = 0x${base0E}ff
|
||||||
|
|
||||||
|
[input_text]
|
||||||
|
font_color = 0x${base0F}ff
|
||||||
|
bg_color = 0x${base01}ff
|
||||||
|
margin = "8" # equivalent to "5 5 5 5"
|
||||||
|
padding = "3 -4" # equivalent to "1.7 -4 1.7 -4"
|
||||||
|
corner_radius = "12"
|
||||||
|
|
||||||
|
[list_items]
|
||||||
|
font_color = 0x${base0E}ff
|
||||||
|
selected_font_color = 0x${base0D}ff
|
||||||
|
match_color = 0x${base0A}ff
|
||||||
|
margin = "10 60"
|
||||||
|
hide_actions = true
|
||||||
|
action_left_margin = 60
|
||||||
|
item_spacing = 2
|
||||||
|
icon_spacing = 5
|
||||||
|
|
||||||
|
[icon]
|
||||||
|
theme = "${icon}"
|
||||||
|
size = 32
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -8,7 +8,6 @@ let
|
||||||
# MODIFIERS
|
# MODIFIERS
|
||||||
m = config.wayland.windowManager.sway.config.modifier;
|
m = config.wayland.windowManager.sway.config.modifier;
|
||||||
s = "Shift";
|
s = "Shift";
|
||||||
c = "Ctrl";
|
|
||||||
a = "Alt";
|
a = "Alt";
|
||||||
# BUTTUONS
|
# BUTTUONS
|
||||||
rt = "Return";
|
rt = "Return";
|
||||||
|
@ -24,76 +23,73 @@ let
|
||||||
# PROGRAMS
|
# PROGRAMS
|
||||||
pic = "$(xdg-user-dir PICTURES)/$(date +'scr_%d-%m-%y|%H:%M:%S.png')";
|
pic = "$(xdg-user-dir PICTURES)/$(date +'scr_%d-%m-%y|%H:%M:%S.png')";
|
||||||
in
|
in
|
||||||
|
with pkgs;
|
||||||
{
|
{
|
||||||
wayland.windowManager.sway.config.keybindings =
|
wayland.windowManager.sway.config.keybindings = lib.mkForce {
|
||||||
with pkgs;
|
# SWAY NATIVE CMD
|
||||||
lib.mkForce {
|
"${m}+q" = "kill";
|
||||||
# SWAY NATIVE CMD
|
"${m}+f" = "fullscreen";
|
||||||
"${m}+q" = "kill";
|
"${m}+${s}+f" = "move position center";
|
||||||
"${m}+f" = "fullscreen";
|
"${m}+${sp}" = "floating toggle";
|
||||||
"${m}+${s}+f" = "move position center";
|
|
||||||
|
|
||||||
"${m}+${sp}" = "floating toggle";
|
# PROGRAMS
|
||||||
"${m}+w" = "${ex} killall -SIGUSR1 waybar";
|
"${m}+w" = "${ex} killall -SIGUSR1 waybar";
|
||||||
|
"${m}+${tb}" = "${ex} rofi";
|
||||||
|
"Mod4+${rt}" = "${ex} kitty";
|
||||||
|
|
||||||
# PROGRAMS
|
# SCREENSHOT
|
||||||
"${m}+${rt}" = "${ex} ${kitty}/bin/kitty";
|
"${pr}" = "${grimblast}/bin/grimblast copysave area";
|
||||||
"${m}+${a}+${rt}" = "${ex} ${kitti3}/bin/kitti3";
|
"${pr}+${s}" = "${grimblast}/bin/grimblast copysave output ${pic}";
|
||||||
|
"${pr}+${a}" = "${grimblast}/bin/grimblast copysave active ${pic}";
|
||||||
|
|
||||||
"${m}+${tb}" = "${anyrun}/bin/anyrun";
|
# CONTROL
|
||||||
|
"${m}+g" = "layout tabbed";
|
||||||
|
"${m}+${s}+g" = "layout toggle split";
|
||||||
|
|
||||||
"${pr}" = "${grimblast}/bin/grimblast copysave area";
|
"${m}+p" = "move scratchpad";
|
||||||
"${pr}+${s}" = "${grimblast}/bin/grimblast copysave output ${pic}";
|
"${m}+${s}+p" = "scratchpad show";
|
||||||
"${pr}+${a}" = "${grimblast}/bin/grimblast copysave active ${pic}";
|
|
||||||
|
|
||||||
# CONTROL
|
"${m}+Home" = "exit";
|
||||||
"${m}+g" = "layout tabbed";
|
"${m}+${s}+Home" = "reload";
|
||||||
"${m}+${s}+g" = "layout toggle split";
|
|
||||||
|
|
||||||
"${m}+p" = "move scratchpad";
|
# WORKSPACES SWITCH
|
||||||
"${m}+${s}+p" = "scratchpad show";
|
"${m}+1" = "${ws} ${nm} 1";
|
||||||
|
"${m}+2" = "${ws} ${nm} 2";
|
||||||
|
"${m}+3" = "${ws} ${nm} 3";
|
||||||
|
"${m}+4" = "${ws} ${nm} 4";
|
||||||
|
"${m}+5" = "${ws} ${nm} 5";
|
||||||
|
"${m}+6" = "${ws} ${nm} 6";
|
||||||
|
"${m}+7" = "${ws} ${nm} 7";
|
||||||
|
"${m}+8" = "${ws} ${nm} 8";
|
||||||
|
"${m}+9" = "${ws} ${nm} 9";
|
||||||
|
"${m}+0" = "${ws} ${nm} 10";
|
||||||
|
|
||||||
"${m}+Home" = "exit";
|
# WORKSPACES MOVE
|
||||||
"${m}+${s}+Home" = "reload";
|
"${m}+${s}+1" = "${mv} ${cn} to ${ws} ${nm} 1";
|
||||||
|
"${m}+${s}+2" = "${mv} ${cn} to ${ws} ${nm} 2";
|
||||||
|
"${m}+${s}+3" = "${mv} ${cn} to ${ws} ${nm} 3";
|
||||||
|
"${m}+${s}+4" = "${mv} ${cn} to ${ws} ${nm} 4";
|
||||||
|
"${m}+${s}+5" = "${mv} ${cn} to ${ws} ${nm} 5";
|
||||||
|
"${m}+${s}+6" = "${mv} ${cn} to ${ws} ${nm} 6";
|
||||||
|
"${m}+${s}+7" = "${mv} ${cn} to ${ws} ${nm} 7";
|
||||||
|
"${m}+${s}+8" = "${mv} ${cn} to ${ws} ${nm} 8";
|
||||||
|
"${m}+${s}+9" = "${mv} ${cn} to ${ws} ${nm} 9";
|
||||||
|
"${m}+${s}+0" = "${mv} ${cn} to ${ws} ${nm} 10";
|
||||||
|
|
||||||
# WORKSPACES SWITCH
|
# HJKL
|
||||||
"${m}+1" = "${ws} ${nm} 1";
|
# "${m}+h" = "focus left";
|
||||||
"${m}+2" = "${ws} ${nm} 2";
|
# "${m}+j" = "focus down";
|
||||||
"${m}+3" = "${ws} ${nm} 3";
|
# "${m}+k" = "focus up";
|
||||||
"${m}+4" = "${ws} ${nm} 4";
|
# "${m}+l" = "focus right";
|
||||||
"${m}+5" = "${ws} ${nm} 5";
|
|
||||||
"${m}+6" = "${ws} ${nm} 6";
|
|
||||||
"${m}+7" = "${ws} ${nm} 7";
|
|
||||||
"${m}+8" = "${ws} ${nm} 8";
|
|
||||||
"${m}+9" = "${ws} ${nm} 9";
|
|
||||||
"${m}+0" = "${ws} ${nm} 10";
|
|
||||||
|
|
||||||
# WORKSPACES MOVE
|
"${m}+${s}+h" = "move left";
|
||||||
"${m}+${s}+1" = "${mv} ${cn} to ${ws} ${nm} 1";
|
"${m}+${s}+j" = "move down";
|
||||||
"${m}+${s}+2" = "${mv} ${cn} to ${ws} ${nm} 2";
|
"${m}+${s}+k" = "move up";
|
||||||
"${m}+${s}+3" = "${mv} ${cn} to ${ws} ${nm} 3";
|
"${m}+${s}+l" = "move right";
|
||||||
"${m}+${s}+4" = "${mv} ${cn} to ${ws} ${nm} 4";
|
|
||||||
"${m}+${s}+5" = "${mv} ${cn} to ${ws} ${nm} 5";
|
|
||||||
"${m}+${s}+6" = "${mv} ${cn} to ${ws} ${nm} 6";
|
|
||||||
"${m}+${s}+7" = "${mv} ${cn} to ${ws} ${nm} 7";
|
|
||||||
"${m}+${s}+8" = "${mv} ${cn} to ${ws} ${nm} 8";
|
|
||||||
"${m}+${s}+9" = "${mv} ${cn} to ${ws} ${nm} 9";
|
|
||||||
"${m}+${s}+0" = "${mv} ${cn} to ${ws} ${nm} 10";
|
|
||||||
|
|
||||||
# HJKL
|
"${m}+${a}+h" = "move workspace to output left";
|
||||||
"${m}+h" = "focus left";
|
"${m}+${a}+j" = "move workspace to output down";
|
||||||
"${m}+j" = "focus down";
|
"${m}+${a}+k" = "move workspace to output up";
|
||||||
"${m}+k" = "focus up";
|
"${m}+${a}+l" = "move workspace to output right";
|
||||||
"${m}+l" = "focus right";
|
};
|
||||||
|
|
||||||
"${m}+${s}+h" = "move left";
|
|
||||||
"${m}+${s}+j" = "move down";
|
|
||||||
"${m}+${s}+k" = "move up";
|
|
||||||
"${m}+${s}+l" = "move right";
|
|
||||||
|
|
||||||
"${m}+${a}+h" = "move workspace to output left";
|
|
||||||
"${m}+${a}+j" = "move workspace to output down";
|
|
||||||
"${m}+${a}+k" = "move workspace to output up";
|
|
||||||
"${m}+${a}+l" = "move workspace to output right";
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,15 +16,10 @@ in
|
||||||
enable = mkBool;
|
enable = mkBool;
|
||||||
binds.enable = mkBool;
|
binds.enable = mkBool;
|
||||||
sets.enable = mkBool;
|
sets.enable = mkBool;
|
||||||
bars.enable = mkBool;
|
|
||||||
programs = mkOpt.attrs.str;
|
programs = mkOpt.attrs.str;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
|
||||||
./binds.nix
|
|
||||||
./sets.nix
|
|
||||||
];
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
wayland.windowManager.sway = True // {
|
wayland.windowManager.sway = True // {
|
||||||
package = pkgs.swayfx;
|
package = pkgs.swayfx;
|
||||||
|
|
|
@ -6,36 +6,33 @@
|
||||||
}:
|
}:
|
||||||
with lib;
|
with lib;
|
||||||
let
|
let
|
||||||
|
mod = config.wayland.windowManager.sway.config.modifier;
|
||||||
cfg = config.module.wm.sway;
|
cfg = config.module.wm.sway;
|
||||||
font = config.stylix.fonts;
|
font = config.stylix.fonts;
|
||||||
border = 2;
|
win = {
|
||||||
titlebar = false;
|
border = 2;
|
||||||
|
titlebar = false;
|
||||||
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = mkMerge [
|
config = mkMerge [
|
||||||
(mkIf cfg.bars.enable {
|
|
||||||
wayland.windowManager.sway.config.bars = [ { command = "${waybar}/bin/waybar"; } ];
|
|
||||||
})
|
|
||||||
(mkIf cfg.sets.enable {
|
(mkIf cfg.sets.enable {
|
||||||
wayland.windowManager.sway = with config.lib.stylix.colors; {
|
wayland.windowManager.sway = with config.lib.stylix.colors; {
|
||||||
config = with pkgs; {
|
config = with pkgs; {
|
||||||
# INPUTS
|
# INPUTS
|
||||||
|
seat."*".hide_cursor = "1";
|
||||||
input."*" = {
|
input."*" = {
|
||||||
xkb_layout = "us,ru";
|
xkb_layout = "us,ru";
|
||||||
xkb_options = "grp:caps_toggle";
|
xkb_options = "grp:caps_toggle";
|
||||||
};
|
};
|
||||||
|
# BARS
|
||||||
|
bars = [ ];
|
||||||
# AUTOSTART
|
# AUTOSTART
|
||||||
startup = [
|
startup = [
|
||||||
{ command = "${mako}/bin/mako"; }
|
{ command = "${mako}/bin/mako"; }
|
||||||
{
|
{ command = "${autotiling-rs}/bin/autotiling-rs"; }
|
||||||
command = "${autotiling-rs}/bin/autotiling-rs";
|
|
||||||
always = true;
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
bars = [ ];
|
fonts.names = [ "${font.monospace.name}" ];
|
||||||
fonts = {
|
|
||||||
names = [ "${font.monospace.name}" ];
|
|
||||||
};
|
|
||||||
# MOVEMENT & BINDS
|
# MOVEMENT & BINDS
|
||||||
modifier = "Mod4";
|
modifier = "Mod4";
|
||||||
bindkeysToCode = true;
|
bindkeysToCode = true;
|
||||||
|
@ -47,13 +44,11 @@ in
|
||||||
smartBorders = "on";
|
smartBorders = "on";
|
||||||
smartGaps = true;
|
smartGaps = true;
|
||||||
};
|
};
|
||||||
window = {
|
window = win // {
|
||||||
inherit border titlebar;
|
|
||||||
hideEdgeBorders = "smart";
|
hideEdgeBorders = "smart";
|
||||||
};
|
};
|
||||||
floating = with config.wayland.windowManager.sway.config; {
|
floating = win // {
|
||||||
inherit border titlebar;
|
modifier = "${mod}";
|
||||||
modifier = "${modifier}";
|
|
||||||
};
|
};
|
||||||
# COLORS
|
# COLORS
|
||||||
colors = lib.mkForce {
|
colors = lib.mkForce {
|
||||||
|
|
|
@ -1,7 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./foot
|
|
||||||
./kitty
|
|
||||||
./wezterm
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -16,10 +16,5 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [
|
|
||||||
./sets.nix
|
|
||||||
./binds.nix
|
|
||||||
./colors.nix
|
|
||||||
];
|
|
||||||
config = mkIf cfg.enable { programs.kitty = True // { }; };
|
config = mkIf cfg.enable { programs.kitty = True // { }; };
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,20 @@
|
||||||
|
{ x, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = x.umport {
|
||||||
./base
|
paths = [
|
||||||
./hardware
|
./base
|
||||||
./misc
|
./hardware
|
||||||
./programs
|
./misc
|
||||||
./services
|
./programs
|
||||||
./theme
|
./services
|
||||||
./virt
|
./themes
|
||||||
];
|
./virt
|
||||||
|
];
|
||||||
|
# include & exclude files/directories
|
||||||
|
include = [ ];
|
||||||
|
exclude = [
|
||||||
|
./services/transmission/torque.nix
|
||||||
|
./programs/torrserver/package.nix
|
||||||
|
];
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./amd
|
|
||||||
./bluetooth
|
|
||||||
./boot
|
|
||||||
./network
|
|
||||||
./security
|
|
||||||
./sound
|
|
||||||
];
|
|
||||||
}
|
|
79
modules/nixos/hardware/disko/default.nix
Normal file
79
modules/nixos/hardware/disko/default.nix
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
{
|
||||||
|
x,
|
||||||
|
inputs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib;
|
||||||
|
with x;
|
||||||
|
let
|
||||||
|
cfg = config.module.hardware.disko;
|
||||||
|
device = "${disk}";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
module.hardware.disko = {
|
||||||
|
enable = mkBool;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
imports = with inputs; [
|
||||||
|
disko.nixosModules.default
|
||||||
|
];
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
disko.devices.disk.main = {
|
||||||
|
inherit device;
|
||||||
|
type = "disk";
|
||||||
|
content = {
|
||||||
|
type = "gpt";
|
||||||
|
partitions = {
|
||||||
|
esp = {
|
||||||
|
name = "esp";
|
||||||
|
size = "512M";
|
||||||
|
type = "EF00";
|
||||||
|
content = {
|
||||||
|
type = "filesystem";
|
||||||
|
format = "vfat";
|
||||||
|
mountpoint = "/boot";
|
||||||
|
mountOptions = [
|
||||||
|
"umask=0077"
|
||||||
|
"fmask=0077"
|
||||||
|
"dmask=0077"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
root = {
|
||||||
|
name = "nixos";
|
||||||
|
size = "100%";
|
||||||
|
content = {
|
||||||
|
type = "btrfs";
|
||||||
|
extraArgs = [ "-f" ];
|
||||||
|
subvolumes = {
|
||||||
|
"/rootfs".mountpoint = "/";
|
||||||
|
"/home" = {
|
||||||
|
mountpoint = "/home";
|
||||||
|
mountOptions = [ "compress=zstd:5" ];
|
||||||
|
};
|
||||||
|
"/nix" = {
|
||||||
|
mountpoint = "/nix";
|
||||||
|
mountOptions = [
|
||||||
|
"compress=zstd:5"
|
||||||
|
"noatime"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
"/persist" = {
|
||||||
|
mountpoint = "/persist";
|
||||||
|
mountOptions = [
|
||||||
|
"compress=zstd:5"
|
||||||
|
"noatime"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -17,62 +17,39 @@ in
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
imports = [ inputs.impermanence.nixosModules.impermanence ];
|
imports = with inputs; [ impermanence.nixosModules.impermanence ];
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
programs.fuse.userAllowOther = true;
|
boot.initrd.systemd.services.rollback = {
|
||||||
environment.persistence."/persistent" = {
|
description = "Rollback BTRFS root subvolume to a pristine state";
|
||||||
enable = true; # NB: Defaults to true, not needed
|
unitConfig.DefaultDependencies = "no";
|
||||||
hideMounts = true;
|
serviceConfig.Type = "oneshot";
|
||||||
directories = [
|
wantedBy = [ "initrd.target" ];
|
||||||
"/var/log"
|
after = [ "systemd-cryptsetup@crypted.service" ];
|
||||||
"/var/lib/bluetooth"
|
before = [ "sysroot.mount" ];
|
||||||
"/var/lib/nixos"
|
script = ''
|
||||||
"/var/lib/systemd/coredump"
|
mkdir -p /btrfs_tmp
|
||||||
"/etc/NetworkManager/system-connections"
|
mount ${disk} /btrfs_tmp
|
||||||
{
|
if [[ -e /btrfs_tmp/root ]]; then
|
||||||
directory = "/var/lib/colord";
|
mkdir -p /btrfs_tmp/old_roots
|
||||||
user = "colord";
|
timestamp=$(date --date="@$(stat -c %Y /btrfs_tmp/root)" "+%Y-%m-%-d_%H:%M:%S")
|
||||||
group = "colord";
|
mv /btrfs_tmp/root "/btrfs_tmp/old_roots/$timestamp"
|
||||||
mode = "u=rwx,g=rx,o=";
|
fi
|
||||||
|
|
||||||
|
delete_subvolume_recursively() {
|
||||||
|
IFS=$'\n'
|
||||||
|
for i in $(btrfs subvolume list -o "$1" | cut -f 9- -d ' '); do
|
||||||
|
delete_subvolume_recursively "/btrfs_tmp/$i"
|
||||||
|
done
|
||||||
|
btrfs subvolume delete "$1"
|
||||||
}
|
}
|
||||||
];
|
|
||||||
files = [
|
for i in $(find /btrfs_tmp/old_roots/ -maxdepth 1 -mtime +30); do
|
||||||
"/etc/machine-id"
|
delete_subvolume_recursively "$i"
|
||||||
{
|
done
|
||||||
file = "/var/keys/secret_file";
|
|
||||||
parentDirectory = {
|
btrfs subvolume create /btrfs_tmp/root
|
||||||
mode = "u=rwx,g=,o=";
|
umount /btrfs_tmp
|
||||||
};
|
'';
|
||||||
}
|
|
||||||
];
|
|
||||||
users.talyz = {
|
|
||||||
directories = [
|
|
||||||
"Downloads"
|
|
||||||
"Music"
|
|
||||||
"Pictures"
|
|
||||||
"Documents"
|
|
||||||
"Videos"
|
|
||||||
"VirtualBox VMs"
|
|
||||||
{
|
|
||||||
directory = ".gnupg";
|
|
||||||
mode = "0700";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
directory = ".ssh";
|
|
||||||
mode = "0700";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
directory = ".nixops";
|
|
||||||
mode = "0700";
|
|
||||||
}
|
|
||||||
{
|
|
||||||
directory = ".local/share/keyrings";
|
|
||||||
mode = "0700";
|
|
||||||
}
|
|
||||||
".local/share/direnv"
|
|
||||||
];
|
|
||||||
files = [ ".screenrc" ];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./console
|
|
||||||
./locales
|
|
||||||
./minimal
|
|
||||||
./power
|
|
||||||
./protonmail
|
|
||||||
./system76
|
|
||||||
./terraria
|
|
||||||
./users
|
|
||||||
./variables
|
|
||||||
./nix.nix
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./common
|
|
||||||
./hamachi
|
|
||||||
./hyprland
|
|
||||||
./steam
|
|
||||||
./sway
|
|
||||||
./torrserver
|
|
||||||
./winapps
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1,16 +0,0 @@
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./autocpu
|
|
||||||
./dbus
|
|
||||||
./deluge
|
|
||||||
./getty
|
|
||||||
./gvfs
|
|
||||||
./polkit
|
|
||||||
./printing
|
|
||||||
./tailscale
|
|
||||||
./tlp
|
|
||||||
./transmission
|
|
||||||
./zapret
|
|
||||||
./zram
|
|
||||||
];
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
{ imports = [ ./podman ]; }
|
|
Loading…
Reference in a new issue