Compare commits
1 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
ba955e5fc1 |
72
flake.lock
72
flake.lock
|
@ -3,63 +3,30 @@
|
||||||
"home-manager": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
"nixpkgs-unstable"
|
"nixpkgs"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1718530513,
|
"lastModified": 1705269478,
|
||||||
"narHash": "sha256-BmO8d0r+BVlwWtMLQEYnwmngqdXIuyFzMwvmTcLMee8=",
|
"narHash": "sha256-j7Rp8Y3ckBHOlIzqe0g2+/BVce9SU/dVtn4Eb0rMuY4=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "a1fddf0967c33754271761d91a3d921772b30d0e",
|
"rev": "846200eb574faa2af808ed02e653c2b8ed51fd71",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"ref": "release-24.05",
|
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719426051,
|
"lastModified": 1705133751,
|
||||||
"narHash": "sha256-yJL9VYQhaRM7xs0M867ZFxwaONB9T2Q4LnGo1WovuR4=",
|
"narHash": "sha256-rCIsyE80jgiOU78gCWN3A0wE0tR2GI5nH6MlS+HaaSQ=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "89c49874fb15f4124bf71ca5f42a04f2ee5825fd",
|
"rev": "9b19f5e77dd906cb52dade0b7bd280339d2a1f3d",
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-24.05",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-23": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1719234068,
|
|
||||||
"narHash": "sha256-1AjSIedDC/aERt24KsCUftLpVppW61S7awfjGe7bMio=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "90bd1b26e23760742fdcb6152369919098f05417",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nixos",
|
|
||||||
"ref": "nixos-23.11",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs-unstable": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1726463316,
|
|
||||||
"narHash": "sha256-gI9kkaH0ZjakJOKrdjaI/VbaMEo9qBbSUl93DnU7f4c=",
|
|
||||||
"owner": "nixos",
|
|
||||||
"repo": "nixpkgs",
|
|
||||||
"rev": "99dc8785f6a0adac95f5e2ab05cc2e1bf666d172",
|
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -69,13 +36,29 @@
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1705183652,
|
||||||
|
"narHash": "sha256-rnfkyUH0x72oHfiSDhuCHDHg3gFgF+lF8zkkg5Zihsw=",
|
||||||
|
"owner": "nixos",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "428544ae95eec077c7f823b422afae5f174dee4b",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nixos",
|
||||||
|
"ref": "nixos-23.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
"nur": {
|
"nur": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1719509062,
|
"lastModified": 1705283909,
|
||||||
"narHash": "sha256-IYlezkrqdHmO/SXShve0PhDZVwLuHYweaRyrLrvta5E=",
|
"narHash": "sha256-7F2KyTB4cApsHg7oltJ1r0QFWMjWTOaS9m2IbKFhj6Y=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "NUR",
|
"repo": "NUR",
|
||||||
"rev": "0713da5785faf081a4fa06500890f8726755f464",
|
"rev": "375b9a949232cd1e31bd89d197a5605a17d2aeb3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -88,8 +71,7 @@
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nixpkgs-23": "nixpkgs-23",
|
"nixpkgs-stable": "nixpkgs-stable",
|
||||||
"nixpkgs-unstable": "nixpkgs-unstable",
|
|
||||||
"nur": "nur"
|
"nur": "nur"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
34
flake.nix
34
flake.nix
|
@ -2,41 +2,31 @@
|
||||||
description = "NixOS system flake.";
|
description = "NixOS system flake.";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
nixpkgs-23.url = "github:nixos/nixpkgs/nixos-23.11";
|
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11";
|
||||||
nixpkgs-unstable.url = "github:nixos/nixpkgs/nixos-unstable";
|
|
||||||
nur.url = "github:nix-community/NUR";
|
nur.url = "github:nix-community/NUR";
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager/release-24.05";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs-unstable";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = { self, nixpkgs, nixpkgs-23, nixpkgs-unstable, nur, home-manager, ... } @ inputs:
|
outputs = { self, nixpkgs, nixpkgs-stable, nur, home-manager, ... } @ inputs:
|
||||||
let
|
let
|
||||||
inherit (self) outputs;
|
inherit (self) outputs;
|
||||||
system = "x86_64-linux";
|
system = "x86_64-linux";
|
||||||
timeZone = "America/Denver";
|
timeZone = "America/Denver";
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
pkgs = nixpkgs.legacyPackages.${system};
|
||||||
unstablePkgs = import nixpkgs-unstable { system = system; config = { allowUnfree = true; }; };
|
stablePkgs = nixpkgs-stable.legacyPackages.${system};
|
||||||
pkgs23 = import nixpkgs-23 { system = system; config = { allowUnfree = true; }; };
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
nixosConfigurations = {
|
nixosConfigurations = {
|
||||||
luci = nixpkgs.lib.nixosSystem {
|
nixServer = nixpkgs.lib.nixosSystem {
|
||||||
specialArgs = {
|
specialArgs = { inherit inputs; };
|
||||||
inherit inputs outputs timeZone system;
|
|
||||||
};
|
|
||||||
modules = [
|
modules = [
|
||||||
inputs.home-manager.nixosModules.home-manager {
|
# nixpkgs.overlays = [ nur.overlay ];
|
||||||
home-manager.useGlobalPkgs = true;
|
./nixos/server_configuration.nix
|
||||||
home-manager.useUserPackages = true;
|
inputs.home-manager.nixosModules.default
|
||||||
home-manager.users.luci = import ./luci/modules/home-manager/home.nix;
|
|
||||||
home-manager.extraSpecialArgs = {
|
|
||||||
inherit inputs outputs;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
./luci/default.nix
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
nate = nixpkgs.lib.nixosSystem {
|
nate = nixpkgs.lib.nixosSystem {
|
||||||
|
@ -51,7 +41,7 @@
|
||||||
home-manager.useUserPackages = true;
|
home-manager.useUserPackages = true;
|
||||||
home-manager.users.nate = import ./nate/modules/home-manager/home.nix;
|
home-manager.users.nate = import ./nate/modules/home-manager/home.nix;
|
||||||
home-manager.extraSpecialArgs = {
|
home-manager.extraSpecialArgs = {
|
||||||
inherit inputs outputs unstablePkgs pkgs23;
|
inherit inputs outputs;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
./nate/default.nix
|
./nate/default.nix
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
nix.gc = {
|
nix.gc = {
|
||||||
automatic = true;
|
automatic = true;
|
||||||
dates = "weekly";
|
dates = "weekly";
|
||||||
options = "--delete-older-than 21d";
|
options = "--delete-older-than 1w";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Optimize storage
|
# Optimize storage
|
||||||
|
|
|
@ -11,7 +11,7 @@ swww img ~/.config/labwc/backgrounds/cat1.jpg >/dev/null 2>&1 &
|
||||||
# output HDMI-A-1 position 1366,0
|
# output HDMI-A-1 position 1366,0
|
||||||
# output eDP-1 position 0,0
|
# output eDP-1 position 0,0
|
||||||
# }
|
# }
|
||||||
kanshi >/dev/null 2>&1 &
|
#kanshi >/dev/null 2>&1 &
|
||||||
|
|
||||||
# Launch a panel such as yambar or waybar.
|
# Launch a panel such as yambar or waybar.
|
||||||
waybar >/dev/null 2>&1 &
|
waybar >/dev/null 2>&1 &
|
||||||
|
|
|
@ -7,51 +7,49 @@
|
||||||
@define-color egg_shell #f8f1dd;
|
@define-color egg_shell #f8f1dd;
|
||||||
|
|
||||||
* {
|
* {
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
color: @egg_shell;
|
color: @egg_shell;
|
||||||
font-family: "GohuFont 14 Nerd Font";
|
font-family: "GohuFont 14 Nerd Font";
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: normal;
|
font-weight: normal;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The whole bar */
|
/* The whole bar */
|
||||||
#waybar {
|
#waybar {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
background-color: transparent;
|
background-color: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
#taskbar {
|
#taskbar {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: @egg_shell;
|
color: @egg_shell;
|
||||||
}
|
}
|
||||||
|
|
||||||
#taskbar button {
|
#taskbar button {
|
||||||
padding-left: 3px;
|
padding-left: 3px;
|
||||||
padding-right: 3px;
|
padding-right: 3px;
|
||||||
margin-left: 3px;
|
margin-left: 3px;
|
||||||
margin-right: 3px;
|
margin-right: 3px;
|
||||||
color: transparent;
|
color: transparent;
|
||||||
border-bottom: 2px solid;
|
border-bottom: 2px solid;
|
||||||
}
|
}
|
||||||
|
|
||||||
#taskbar button.active {
|
#taskbar button.active {
|
||||||
color: @celeste;
|
color: @celeste;
|
||||||
}
|
}
|
||||||
|
|
||||||
.modules-left,
|
.modules-left,
|
||||||
.modules-right,
|
.modules-right,
|
||||||
.modules-center {
|
.modules-center {
|
||||||
margin: 8px 8px 1px 8px;
|
margin: 8px 8px 1px 8px;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
color: @egg_shell;
|
color: @egg_shell;
|
||||||
background-color: @english_violet;
|
background-color: @english_violet;
|
||||||
border-radius: 25px;
|
border-radius: 25px;
|
||||||
padding: 0px 10px 0px 10px;
|
padding: 0px 10px 0px 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Every modules */
|
/* Every modules */
|
||||||
#clock,
|
#clock,
|
||||||
#cpu,
|
#cpu,
|
||||||
|
@ -60,8 +58,8 @@
|
||||||
#network,
|
#network,
|
||||||
#pulseaudio,
|
#pulseaudio,
|
||||||
#taskbar {
|
#taskbar {
|
||||||
padding: 0.5rem 0.6rem;
|
padding:0.5rem 0.6rem;
|
||||||
margin: 1px 0px;
|
margin: 1px 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
|
@ -69,7 +67,7 @@
|
||||||
* -------------------------------------------------------------------------- */
|
* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#clock {
|
#clock {
|
||||||
min-width: 140px;
|
min-width: 140px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#cpu.warning,
|
#cpu.warning,
|
||||||
|
@ -77,24 +75,24 @@
|
||||||
#memory.warning,
|
#memory.warning,
|
||||||
#memory.critical,
|
#memory.critical,
|
||||||
#network.disconnected {
|
#network.disconnected {
|
||||||
color: @indian_red;
|
color: @indian_red;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio {
|
#pulseaudio {
|
||||||
padding-top: 6px;
|
padding-top:6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio.muted {
|
#pulseaudio.muted {
|
||||||
color: @celeste;
|
color: @celeste;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-spotify {
|
#custom-spotify {
|
||||||
color: @celadon;
|
color: @celadon;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-power {
|
#custom-power {
|
||||||
margin-left: 15px;
|
margin-left:15px;
|
||||||
margin-right: 15px;
|
margin-right:15px;
|
||||||
font-size: 15px;
|
font-size:15px;
|
||||||
color: @indian_red;
|
color: @indian_red;
|
||||||
}
|
}
|
||||||
|
|
|
@ -74,6 +74,7 @@
|
||||||
ripgrep
|
ripgrep
|
||||||
tre-command
|
tre-command
|
||||||
gtop
|
gtop
|
||||||
|
htop
|
||||||
|
|
||||||
#
|
#
|
||||||
# Photo / Video
|
# Photo / Video
|
||||||
|
|
|
@ -80,6 +80,7 @@
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
waybar
|
waybar
|
||||||
wdisplays
|
wdisplays
|
||||||
|
wlr-randr
|
||||||
xdg-utils
|
xdg-utils
|
||||||
zsh
|
zsh
|
||||||
]
|
]
|
||||||
|
@ -128,6 +129,16 @@
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
services.greetd = {
|
||||||
|
enable = true;
|
||||||
|
settings = rec {
|
||||||
|
initial_session = {
|
||||||
|
command = "${pkgs.labwc}/bin/labwc";
|
||||||
|
user = "jaci";
|
||||||
|
};
|
||||||
|
default_session = initial_session;
|
||||||
|
};
|
||||||
|
};
|
||||||
###
|
###
|
||||||
## Misc
|
## Misc
|
||||||
###
|
###
|
||||||
|
@ -136,14 +147,8 @@
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
|
|
||||||
hardware.opengl = {
|
hardware.opengl = {
|
||||||
# Mesa
|
enable = true;
|
||||||
# enable = true;
|
driSupport = true;
|
||||||
# Vulkan
|
|
||||||
# driSupport = true;
|
|
||||||
# Rocm support and vulkan drivers
|
|
||||||
extraPackages = with pkgs; [
|
|
||||||
rocmPackages.clr.icd
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,7 +12,10 @@
|
||||||
boot.initrd.kernelModules = [ "amdgpu" ];
|
boot.initrd.kernelModules = [ "amdgpu" ];
|
||||||
boot.kernelModules = [ "kvm-amd" ];
|
boot.kernelModules = [ "kvm-amd" ];
|
||||||
boot.extraModulePackages = [ ];
|
boot.extraModulePackages = [ ];
|
||||||
|
boot.kernelParams = [
|
||||||
|
# Fix for The Finals
|
||||||
|
"clearcpuid=304"
|
||||||
|
];
|
||||||
fileSystems."/" =
|
fileSystems."/" =
|
||||||
{ device = "/dev/disk/by-label/NIXROOT";
|
{ device = "/dev/disk/by-label/NIXROOT";
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
|
|
|
@ -1,120 +0,0 @@
|
||||||
# Edit this configuration file to define what should be installed on
|
|
||||||
# your system. Help is available in the configuration.nix(5) man page, on
|
|
||||||
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
|
|
||||||
|
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ # Include the results of the hardware scan.
|
|
||||||
./hardware-configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
# Use the systemd-boot EFI boot loader.
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
hostId = "09e1d908";
|
|
||||||
hostName = "luci"; # Define your hostname.
|
|
||||||
# Pick only one of the below networking options.
|
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
|
||||||
networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
|
||||||
};
|
|
||||||
|
|
||||||
# Set your time zone.
|
|
||||||
time.timeZone = "America/Denver";
|
|
||||||
|
|
||||||
# Configure network proxy if necessary
|
|
||||||
# networking.proxy.default = "http://user:password@proxy:port/";
|
|
||||||
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
|
|
||||||
|
|
||||||
# Select internationalisation properties.
|
|
||||||
# i18n.defaultLocale = "en_US.UTF-8";
|
|
||||||
# console = {
|
|
||||||
# font = "Lat2-Terminus16";
|
|
||||||
# keyMap = "us";
|
|
||||||
# useXkbConfig = true; # use xkb.options in tty.
|
|
||||||
# };
|
|
||||||
|
|
||||||
# Enable the X11 windowing system.
|
|
||||||
# services.xserver.enable = true;
|
|
||||||
# Configure keymap in X11
|
|
||||||
# services.xserver.xkb.layout = "us";
|
|
||||||
# services.xserver.xkb.options = "eurosign:e,caps:escape";
|
|
||||||
|
|
||||||
# Enable CUPS to print documents.
|
|
||||||
# services.printing.enable = true;
|
|
||||||
|
|
||||||
# Enable sound.
|
|
||||||
# sound.enable = true;
|
|
||||||
# hardware.pulseaudio.enable = true;
|
|
||||||
|
|
||||||
# Enable touchpad support (enabled default in most desktopManager).
|
|
||||||
# services.xserver.libinput.enable = true;
|
|
||||||
|
|
||||||
# Define a user account. Don't forget to set a password with ‘passwd’.
|
|
||||||
users.users.luci = {
|
|
||||||
isNormalUser = true;
|
|
||||||
extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
|
|
||||||
packages = with pkgs; [
|
|
||||||
firefox
|
|
||||||
tree
|
|
||||||
git
|
|
||||||
curl
|
|
||||||
nano
|
|
||||||
neofetch
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# List packages installed in system profile. To search, run:
|
|
||||||
# $ nix search wget
|
|
||||||
# environment.systemPackages = with pkgs; [
|
|
||||||
# vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
|
|
||||||
# wget
|
|
||||||
# ];
|
|
||||||
|
|
||||||
# Some programs need SUID wrappers, can be configured further or are
|
|
||||||
# started in user sessions.
|
|
||||||
# programs.mtr.enable = true;
|
|
||||||
# programs.gnupg.agent = {
|
|
||||||
# enable = true;
|
|
||||||
# enableSSHSupport = true;
|
|
||||||
# };
|
|
||||||
|
|
||||||
# List services that you want to enable:
|
|
||||||
|
|
||||||
# Enable the OpenSSH daemon.
|
|
||||||
services.openssh.enable = true;
|
|
||||||
|
|
||||||
# Open ports in the firewall.
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
||||||
# Or disable the firewall altogether.
|
|
||||||
# networking.firewall.enable = false;
|
|
||||||
|
|
||||||
# Copy the NixOS configuration file and link it from the resulting system
|
|
||||||
# (/run/current-system/configuration.nix). This is useful in case you
|
|
||||||
# accidentally delete configuration.nix.
|
|
||||||
# system.copySystemConfiguration = true;
|
|
||||||
|
|
||||||
# This option defines the first version of NixOS you have installed on this particular machine,
|
|
||||||
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
|
|
||||||
#
|
|
||||||
# Most users should NEVER change this value after the initial install, for any reason,
|
|
||||||
# even if you've upgraded your system to a new NixOS release.
|
|
||||||
#
|
|
||||||
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
|
|
||||||
# so changing it will NOT upgrade your system.
|
|
||||||
#
|
|
||||||
# This value being lower than the current NixOS release does NOT mean your system is
|
|
||||||
# out of date, out of support, or vulnerable.
|
|
||||||
#
|
|
||||||
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
|
|
||||||
# and migrated your data accordingly.
|
|
||||||
#
|
|
||||||
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
|
|
||||||
system.stateVersion = "23.11"; # Did you read the comment?
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,36 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
let
|
|
||||||
userName = "luci";
|
|
||||||
email = "luci@fosscat.com";
|
|
||||||
hostName = "luci";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
./nixos/hardware-configuration.nix
|
|
||||||
../shared/nix-gc.nix
|
|
||||||
../shared/server-configuration.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
serverConfig = {
|
|
||||||
userName = userName;
|
|
||||||
hostName = hostName;
|
|
||||||
hostId = "09e1d908";
|
|
||||||
email = email;
|
|
||||||
sshEnable = true;
|
|
||||||
nfsEnable = true;
|
|
||||||
nfsRoot = "/nfs_export";
|
|
||||||
nfsExports = [ "/kage" ];
|
|
||||||
nfsIpExport = "192.168.1.1/24";
|
|
||||||
syncthingEnable = true;
|
|
||||||
caldavEnable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# deskCfg = {
|
|
||||||
# userName = userName;
|
|
||||||
# hostName = hostName;
|
|
||||||
# de = desktop;
|
|
||||||
# installGaming = gaming;
|
|
||||||
# };
|
|
||||||
|
|
||||||
nixGc.enable = true;
|
|
||||||
}
|
|
|
@ -1,166 +0,0 @@
|
||||||
# Theme
|
|
||||||
theme = "catppuccin_macchiato"
|
|
||||||
|
|
||||||
[keys.normal]
|
|
||||||
|
|
||||||
# Navigation
|
|
||||||
n = "move_char_left" # Maps the 'a' key to the move_char_left command
|
|
||||||
i = "move_visual_line_down"
|
|
||||||
e = "move_visual_line_up"
|
|
||||||
o = "move_char_right"
|
|
||||||
|
|
||||||
I = "page_down"
|
|
||||||
E = "page_up"
|
|
||||||
|
|
||||||
# Modes
|
|
||||||
h = "insert_mode"
|
|
||||||
H = "insert_at_line_start"
|
|
||||||
l = "open_below"
|
|
||||||
L = "open_above"
|
|
||||||
|
|
||||||
# Search
|
|
||||||
k = "search_next"
|
|
||||||
K = "search_prev"
|
|
||||||
|
|
||||||
# Selection
|
|
||||||
C-s = "split_selection_on_newline"
|
|
||||||
C-minus = "merge_selections"
|
|
||||||
C-_ = "merge_consecutive_selections"
|
|
||||||
"C-;" = "flip_selections"
|
|
||||||
"C-:" = "ensure_selections_forward"
|
|
||||||
"C-," = "remove_primary_selection"
|
|
||||||
C-c = "change_selection_noyank"
|
|
||||||
C-d = "delete_selection_noyank"
|
|
||||||
"C-(" = "rotate_selection_contents_backward"
|
|
||||||
"C-)" = "rotate_selection_contents_forward"
|
|
||||||
C-x = "shrink_to_line_bounds"
|
|
||||||
C-J = "join_selections_space"
|
|
||||||
C-K = "remove_selections"
|
|
||||||
C-o = "expand_selection"
|
|
||||||
C-i = "shrink_selection"
|
|
||||||
C-p = "select_prev_sibling"
|
|
||||||
C-n = "select_next_sibling"
|
|
||||||
|
|
||||||
# Misc
|
|
||||||
"C-/" = "toggle_comments"
|
|
||||||
|
|
||||||
[keys.normal."C-space"]
|
|
||||||
x = ":wbc!"
|
|
||||||
s = ":w!" # save file
|
|
||||||
o = ":config-open"
|
|
||||||
|
|
||||||
[keys.normal.g]
|
|
||||||
"/" = "goto_next_buffer"
|
|
||||||
h = "goto_previous_buffer"
|
|
||||||
n = ["collapse_selection", "extend_to_line_start"]
|
|
||||||
o = ["collapse_selection", "extend_to_line_end"]
|
|
||||||
e = "move_line_up"
|
|
||||||
i = "move_line_down"
|
|
||||||
l = "goto_last_line"
|
|
||||||
|
|
||||||
p = "no_op"
|
|
||||||
k = "no_op"
|
|
||||||
j = "no_op"
|
|
||||||
|
|
||||||
[keys.normal.m]
|
|
||||||
m = ["select_mode", "match_brackets", "normal_mode"]
|
|
||||||
|
|
||||||
[keys.select]
|
|
||||||
n = "extend_char_left"
|
|
||||||
i = "extend_line_down"
|
|
||||||
e = "extend_line_up"
|
|
||||||
o = "extend_char_right"
|
|
||||||
|
|
||||||
[keys.select.g]
|
|
||||||
"/" = "goto_next_buffer"
|
|
||||||
h = "goto_previous_buffer"
|
|
||||||
n = "goto_line_start"
|
|
||||||
o = "goto_line_end"
|
|
||||||
e = "move_line_up"
|
|
||||||
i = "move_line_down"
|
|
||||||
l = "goto_last_line"
|
|
||||||
|
|
||||||
p = "no_op"
|
|
||||||
k = "no_op"
|
|
||||||
j = "no_op"
|
|
||||||
|
|
||||||
# Window mode
|
|
||||||
[keys.normal."C-w"]
|
|
||||||
h = "hsplit"
|
|
||||||
C-h = "hsplit"
|
|
||||||
n = "jump_view_left"
|
|
||||||
C-n = "jump_view_left"
|
|
||||||
i = "jump_view_down"
|
|
||||||
I = "swap_view_down"
|
|
||||||
C-i = "jump_view_down"
|
|
||||||
e = "jump_view_up"
|
|
||||||
E = "swap_view_up"
|
|
||||||
C-e = "jump_view_up"
|
|
||||||
o = "jump_view_right"
|
|
||||||
O = "swap_view_right"
|
|
||||||
C-o = "jump_view_right"
|
|
||||||
|
|
||||||
# Remove old
|
|
||||||
s = "no_op"
|
|
||||||
C-s = "no_op"
|
|
||||||
H = "no_op"
|
|
||||||
j = "no_op"
|
|
||||||
J = "no_op"
|
|
||||||
C-j = "no_op"
|
|
||||||
k = "no_op"
|
|
||||||
K = "no_op"
|
|
||||||
C-k = "no_op"
|
|
||||||
l = "no_op"
|
|
||||||
L = "no_op"
|
|
||||||
C-l = "no_op"
|
|
||||||
|
|
||||||
[keys.normal."space"]
|
|
||||||
h = "hover"
|
|
||||||
k = "select_references_to_symbol_under_cursor"
|
|
||||||
|
|
||||||
[editor]
|
|
||||||
bufferline = "multiple"
|
|
||||||
auto-save = true
|
|
||||||
line-number = "relative"
|
|
||||||
cursorline = true
|
|
||||||
color-modes = true
|
|
||||||
text-width = 120
|
|
||||||
auto-format = true
|
|
||||||
|
|
||||||
[editor.statusline]
|
|
||||||
left = ["mode", "spinner", "version-control", "file-name"]
|
|
||||||
mode.normal = "Normal"
|
|
||||||
mode.insert = "Insert"
|
|
||||||
mode.select = "Select"
|
|
||||||
|
|
||||||
[editor.indent-guides]
|
|
||||||
render = true
|
|
||||||
|
|
||||||
[editor.lsp]
|
|
||||||
display-messages = true
|
|
||||||
|
|
||||||
[editor.cursor-shape]
|
|
||||||
insert = "bar"
|
|
||||||
normal = "block"
|
|
||||||
select = "underline"
|
|
||||||
|
|
||||||
[editor.file-picker]
|
|
||||||
hidden = false
|
|
||||||
|
|
||||||
[editor.whitespace.render]
|
|
||||||
space = "all"
|
|
||||||
tab = "all"
|
|
||||||
tabpad = "all"
|
|
||||||
newline = "none"
|
|
||||||
nbsp = "none"
|
|
||||||
|
|
||||||
[editor.whitespace.characters]
|
|
||||||
space = "·"
|
|
||||||
tab = "⇀"
|
|
||||||
tabpad = " "
|
|
||||||
|
|
||||||
|
|
||||||
#w = "move_line_up" # Maps the 'w' key move_line_up
|
|
||||||
#"C-S-esc" = "extend_line" # Maps Ctrl-Shift-Escape to extend_line
|
|
||||||
#g = { a = "code_action" } # Maps `ga` to show possible code actions
|
|
||||||
#"ret" = ["open_below", "normal_mode"] # Maps the enter key to open_below then re-enter normal mode
|
|
|
@ -1,22 +0,0 @@
|
||||||
# [language-server.flutter-lsp]
|
|
||||||
# command = "dart language-server --client-id helix --client-version 1.0"
|
|
||||||
|
|
||||||
# [[language]]
|
|
||||||
# name = "typescript"
|
|
||||||
# auto-format = true
|
|
||||||
# formatter = { command = "eslint", args = ["--parser", "typescript"] }# [[language]]
|
|
||||||
|
|
||||||
# name = "typescript"
|
|
||||||
# language-servers = [ { name = "eslint", only-features = [ "format" ] }, "typescript-language-server" ]
|
|
||||||
|
|
||||||
[[language]]
|
|
||||||
name = "dart"
|
|
||||||
formatter = {command = "dart", args = ["format", "-l", "120"]}
|
|
||||||
# [[language]]
|
|
||||||
# name = "dart"
|
|
||||||
# formatter = { command = "format", args = [ "-l", "120"] }
|
|
||||||
# config = { lineLength = 120 }
|
|
||||||
# config = { dartls.settings.dart.lineLength = 120 }
|
|
||||||
# config = { dart = { lineLength = 120 } }
|
|
||||||
# config = { settings = { dart = { lineLength = 120 } } }
|
|
||||||
# config = { dartls = { settings = { dart = { lineLength = 120 } } } }
|
|
|
@ -1,93 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
let
|
|
||||||
userName = "luci";
|
|
||||||
fullName = "Luci NAS";
|
|
||||||
email = "luci@fosscat.com";
|
|
||||||
in
|
|
||||||
{
|
|
||||||
home.username = userName;
|
|
||||||
home.homeDirectory = "/home/${userName}";
|
|
||||||
|
|
||||||
programs.home-manager.enable = true;
|
|
||||||
|
|
||||||
home.stateVersion = "23.11"; # Please read the comment before changing.
|
|
||||||
|
|
||||||
fonts.fontconfig.enable = true;
|
|
||||||
home.packages = with pkgs; [
|
|
||||||
helix
|
|
||||||
jq
|
|
||||||
|
|
||||||
#
|
|
||||||
# Better Unix
|
|
||||||
#
|
|
||||||
bat
|
|
||||||
duf
|
|
||||||
fd
|
|
||||||
fzf
|
|
||||||
lsd
|
|
||||||
ripgrep
|
|
||||||
tre-command
|
|
||||||
gtop
|
|
||||||
htop
|
|
||||||
neofetch
|
|
||||||
|
|
||||||
# Normies
|
|
||||||
unzip
|
|
||||||
|
|
||||||
imv
|
|
||||||
mpv
|
|
||||||
ffmpeg
|
|
||||||
];
|
|
||||||
|
|
||||||
home.file."${config.xdg.configHome}" = {
|
|
||||||
source = ../../dotfiles;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Copy radicale pass file
|
|
||||||
home.file."${config.xdg.configHome}/radicale" = {
|
|
||||||
source = ../radicale;
|
|
||||||
recursive = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
home.sessionVariables = {
|
|
||||||
EDITOR = "hx";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Git setup
|
|
||||||
programs.git = {
|
|
||||||
enable = true;
|
|
||||||
userEmail = email;
|
|
||||||
userName = fullName;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
direnv = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true; # see note on other shells below
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
bash.enable = true; # see note on other shells below
|
|
||||||
};
|
|
||||||
|
|
||||||
# Zsh setup
|
|
||||||
programs.zsh = {
|
|
||||||
enable = true;
|
|
||||||
oh-my-zsh = {
|
|
||||||
enable = true;
|
|
||||||
plugins = [ "git" ];
|
|
||||||
theme = "dieter";
|
|
||||||
};
|
|
||||||
initExtra = ''
|
|
||||||
eval "$(direnv hook zsh)"
|
|
||||||
|
|
||||||
alias ls="lsd"
|
|
||||||
alias l="lsd --almost-all --long"
|
|
||||||
alias llm="lsd --timesort --long"
|
|
||||||
alias lS="lsd --oneline --classic"
|
|
||||||
alias lt="lsd --tree --depth=2"
|
|
||||||
alias grep="rg"
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
|
|
@ -1 +0,0 @@
|
||||||
n8r:$apr1$HpSAv/EE$pCDM0qP2JJIY0B5aUXjS30
|
|
|
@ -1,55 +0,0 @@
|
||||||
# Do not modify this file! It was generated by ‘nixos-generate-config’
|
|
||||||
# and may be overwritten by future invocations. Please make changes
|
|
||||||
# to /etc/nixos/configuration.nix instead.
|
|
||||||
{ config, lib, pkgs, modulesPath, ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
imports =
|
|
||||||
[ (modulesPath + "/installer/scan/not-detected.nix")
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod" ];
|
|
||||||
boot.initrd.kernelModules = [ "zfs" ];
|
|
||||||
boot.kernelModules = [ "kvm-intel" ];
|
|
||||||
boot.extraModulePackages = [ ];
|
|
||||||
boot.supportedFilesystems = [ "zfs" ];
|
|
||||||
|
|
||||||
boot.kernelPackages = config.boot.zfs.package.latestCompatibleLinuxPackages;
|
|
||||||
|
|
||||||
boot.zfs.forceImportRoot = false;
|
|
||||||
|
|
||||||
fileSystems."/" =
|
|
||||||
{ device = "/dev/disk/by-label/NIXROOT";
|
|
||||||
fsType = "ext4";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/boot" =
|
|
||||||
{ device = "/dev/disk/by-label/NIXBOOT";
|
|
||||||
fsType = "vfat";
|
|
||||||
};
|
|
||||||
|
|
||||||
fileSystems."/nfs_export/kage" =
|
|
||||||
{ device = "zdata/kage";
|
|
||||||
fsType = "zfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
# change ownership of kage to be open
|
|
||||||
systemd.tmpfiles.rules = [
|
|
||||||
"d /nfs_export/kage 0777 kage users - -"
|
|
||||||
];
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
|
||||||
# (the default) this is the recommended approach. When using systemd-networkd it's
|
|
||||||
# still possible to use this option, but it's recommended to use it in conjunction
|
|
||||||
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
|
|
||||||
networking.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp3s0.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp4s0.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp5s0.useDHCP = lib.mkDefault true;
|
|
||||||
# networking.interfaces.enp6s0.useDHCP = lib.mkDefault true;
|
|
||||||
|
|
||||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
|
||||||
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
|
|
||||||
}
|
|
|
@ -27,7 +27,7 @@
|
||||||
nix.gc = {
|
nix.gc = {
|
||||||
automatic = true;
|
automatic = true;
|
||||||
dates = "weekly";
|
dates = "weekly";
|
||||||
options = "--delete-older-than 14d";
|
options = "--delete-older-than 1w";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Optimize storage
|
# Optimize storage
|
||||||
|
|
|
@ -73,7 +73,6 @@ in
|
||||||
installGaming = deskCfg.installGaming;
|
installGaming = deskCfg.installGaming;
|
||||||
systemPackages = with pkgs; [
|
systemPackages = with pkgs; [
|
||||||
libreoffice
|
libreoffice
|
||||||
rpi-imager
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
@ -1,5 +1,5 @@
|
||||||
# Theme
|
# Theme
|
||||||
theme = "catppuccin_macchiato"
|
theme = "catppuccin_frappe"
|
||||||
|
|
||||||
[keys.normal]
|
[keys.normal]
|
||||||
|
|
||||||
|
@ -9,12 +9,11 @@ i = "move_visual_line_down"
|
||||||
e = "move_visual_line_up"
|
e = "move_visual_line_up"
|
||||||
o = "move_char_right"
|
o = "move_char_right"
|
||||||
|
|
||||||
I = "page_down"
|
C-i = "half_page_down"
|
||||||
E = "page_up"
|
C-e = "half_page_up"
|
||||||
|
|
||||||
# Modes
|
# Modes
|
||||||
h = "insert_mode"
|
h = "insert_mode"
|
||||||
H = "insert_at_line_start"
|
|
||||||
l = "open_below"
|
l = "open_below"
|
||||||
L = "open_above"
|
L = "open_above"
|
||||||
|
|
||||||
|
@ -22,115 +21,34 @@ L = "open_above"
|
||||||
k = "search_next"
|
k = "search_next"
|
||||||
K = "search_prev"
|
K = "search_prev"
|
||||||
|
|
||||||
# Selection
|
|
||||||
C-s = "split_selection_on_newline"
|
|
||||||
C-minus = "merge_selections"
|
|
||||||
C-_ = "merge_consecutive_selections"
|
|
||||||
"C-;" = "flip_selections"
|
|
||||||
"C-:" = "ensure_selections_forward"
|
|
||||||
"C-," = "remove_primary_selection"
|
|
||||||
C-c = "change_selection_noyank"
|
|
||||||
C-d = "delete_selection_noyank"
|
|
||||||
"C-(" = "rotate_selection_contents_backward"
|
|
||||||
"C-)" = "rotate_selection_contents_forward"
|
|
||||||
C-x = "shrink_to_line_bounds"
|
|
||||||
C-J = "join_selections_space"
|
|
||||||
C-K = "remove_selections"
|
|
||||||
C-o = "expand_selection"
|
|
||||||
C-i = "shrink_selection"
|
|
||||||
C-p = "select_prev_sibling"
|
|
||||||
C-n = "select_next_sibling"
|
|
||||||
|
|
||||||
# Misc
|
C-s = ":w" # Maps Ctrl-s to the typable command :w which is an alias for :write (save file)
|
||||||
"C-/" = "toggle_comments"
|
C-o = ":open ~/.config/helix/config.toml" # Maps Ctrl-o to opening of the helix config file
|
||||||
|
C-l = ":open ~/.config/helix/languages.toml"
|
||||||
[keys.normal."C-space"]
|
|
||||||
x = ":wbc!"
|
|
||||||
s = ":w!" # save file
|
|
||||||
o = ":config-open"
|
|
||||||
|
|
||||||
[keys.normal.g]
|
[keys.normal.g]
|
||||||
"/" = "goto_next_buffer"
|
P = "goto_previous_buffer"
|
||||||
h = "goto_previous_buffer"
|
N = "goto_next_buffer"
|
||||||
n = ["collapse_selection", "extend_to_line_start"]
|
|
||||||
o = ["collapse_selection", "extend_to_line_end"]
|
|
||||||
e = "move_line_up"
|
|
||||||
i = "move_line_down"
|
|
||||||
l = "goto_last_line"
|
|
||||||
|
|
||||||
p = "no_op"
|
|
||||||
k = "no_op"
|
|
||||||
j = "no_op"
|
|
||||||
|
|
||||||
[keys.normal.m]
|
|
||||||
m = ["select_mode", "match_brackets", "normal_mode"]
|
|
||||||
|
|
||||||
[keys.select]
|
|
||||||
n = "extend_char_left"
|
|
||||||
i = "extend_line_down"
|
|
||||||
e = "extend_line_up"
|
|
||||||
o = "extend_char_right"
|
|
||||||
|
|
||||||
[keys.select.g]
|
|
||||||
"/" = "goto_next_buffer"
|
|
||||||
h = "goto_previous_buffer"
|
|
||||||
n = "goto_line_start"
|
n = "goto_line_start"
|
||||||
o = "goto_line_end"
|
o = "goto_line_end"
|
||||||
e = "move_line_up"
|
|
||||||
i = "move_line_down"
|
|
||||||
l = "goto_last_line"
|
|
||||||
|
|
||||||
p = "no_op"
|
[keys.select]
|
||||||
k = "no_op"
|
n = "move_char_left"
|
||||||
j = "no_op"
|
i = "move_visual_line_down"
|
||||||
|
e = "move_visual_line_up"
|
||||||
# Window mode
|
o = "move_char_right"
|
||||||
[keys.normal."C-w"]
|
|
||||||
h = "hsplit"
|
|
||||||
C-h = "hsplit"
|
|
||||||
n = "jump_view_left"
|
|
||||||
C-n = "jump_view_left"
|
|
||||||
i = "jump_view_down"
|
|
||||||
I = "swap_view_down"
|
|
||||||
C-i = "jump_view_down"
|
|
||||||
e = "jump_view_up"
|
|
||||||
E = "swap_view_up"
|
|
||||||
C-e = "jump_view_up"
|
|
||||||
o = "jump_view_right"
|
|
||||||
O = "swap_view_right"
|
|
||||||
C-o = "jump_view_right"
|
|
||||||
|
|
||||||
# Remove old
|
|
||||||
s = "no_op"
|
|
||||||
C-s = "no_op"
|
|
||||||
H = "no_op"
|
|
||||||
j = "no_op"
|
|
||||||
J = "no_op"
|
|
||||||
C-j = "no_op"
|
|
||||||
k = "no_op"
|
|
||||||
K = "no_op"
|
|
||||||
C-k = "no_op"
|
|
||||||
l = "no_op"
|
|
||||||
L = "no_op"
|
|
||||||
C-l = "no_op"
|
|
||||||
|
|
||||||
[keys.normal."space"]
|
|
||||||
h = "hover"
|
|
||||||
k = "select_references_to_symbol_under_cursor"
|
|
||||||
|
|
||||||
[editor]
|
[editor]
|
||||||
bufferline = "always"
|
bufferline = "multiple"
|
||||||
auto-save = true
|
auto-save = true
|
||||||
line-number = "relative"
|
line-number = "relative"
|
||||||
cursorline = true
|
cursorline = true
|
||||||
cursorcolumn = true
|
|
||||||
color-modes = true
|
color-modes = true
|
||||||
text-width = 120
|
text-width = 120
|
||||||
auto-format = true
|
auto-format = true
|
||||||
|
|
||||||
[editor.statusline]
|
[editor.statusline]
|
||||||
left = ["mode", "spinner", "version-control"]
|
left = ["mode", "spinner", "version-control", "file-name"]
|
||||||
center = ["file-name"]
|
|
||||||
mode.normal = "Normal"
|
mode.normal = "Normal"
|
||||||
mode.insert = "Insert"
|
mode.insert = "Insert"
|
||||||
mode.select = "Select"
|
mode.select = "Select"
|
||||||
|
@ -140,7 +58,6 @@ render = true
|
||||||
|
|
||||||
[editor.lsp]
|
[editor.lsp]
|
||||||
display-messages = true
|
display-messages = true
|
||||||
display-inlay-hints = false
|
|
||||||
|
|
||||||
[editor.cursor-shape]
|
[editor.cursor-shape]
|
||||||
insert = "bar"
|
insert = "bar"
|
||||||
|
|
|
@ -1,4 +1,22 @@
|
||||||
# Change dart format to 120 lines
|
# [language-server.flutter-lsp]
|
||||||
|
# command = "dart language-server --client-id helix --client-version 1.0"
|
||||||
|
|
||||||
|
# [[language]]
|
||||||
|
# name = "typescript"
|
||||||
|
# auto-format = true
|
||||||
|
# formatter = { command = "eslint", args = ["--parser", "typescript"] }# [[language]]
|
||||||
|
|
||||||
|
# name = "typescript"
|
||||||
|
# language-servers = [ { name = "eslint", only-features = [ "format" ] }, "typescript-language-server" ]
|
||||||
|
|
||||||
[[language]]
|
[[language]]
|
||||||
name = "dart"
|
name = "dart"
|
||||||
formatter = {command = "dart", args = ["format", "-l", "120"]}
|
formatter = {command = "dart", args = ["format", "-l", "120"]}
|
||||||
|
# [[language]]
|
||||||
|
# name = "dart"
|
||||||
|
# formatter = { command = "format", args = [ "-l", "120"] }
|
||||||
|
# config = { lineLength = 120 }
|
||||||
|
# config = { dartls.settings.dart.lineLength = 120 }
|
||||||
|
# config = { dart = { lineLength = 120 } }
|
||||||
|
# config = { settings = { dart = { lineLength = 120 } } }
|
||||||
|
# config = { dartls = { settings = { dart = { lineLength = 120 } } } }
|
|
@ -259,7 +259,7 @@ command = "lua-language-server"
|
||||||
# diagnostics.enable = true
|
# diagnostics.enable = true
|
||||||
|
|
||||||
[language.markdown]
|
[language.markdown]
|
||||||
filetypes = ["md", "markdown"]
|
filetype = ["md", "markdown"]
|
||||||
roots = [".git", ".hg"]
|
roots = [".git", ".hg"]
|
||||||
command = "vscode-markdown-language-server"
|
command = "vscode-markdown-language-server"
|
||||||
args = ["--stdio"]
|
args = ["--stdio"]
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit 5db74769ca8710b27140cf5a1107183b339f2916
|
|
|
@ -1 +0,0 @@
|
||||||
|
|
|
@ -1,87 +0,0 @@
|
||||||
|
|
||||||
# Pastel theme for Kakoune
|
|
||||||
|
|
||||||
# Color palette
|
|
||||||
# declare-option str black 'rgb:2b2e33'
|
|
||||||
declare-option str black default
|
|
||||||
declare-option str dark 'rgb:3b3b46'
|
|
||||||
declare-option str gray 'rgb:5a5b5b'
|
|
||||||
declare-option str aqua 'rgb:6bbac1'
|
|
||||||
declare-option str white 'rgb:dcdbd7'
|
|
||||||
declare-option str blue 'rgb:65a4cf'
|
|
||||||
declare-option str cyan 'rgb:6dcac0'
|
|
||||||
declare-option str blue_green 'rgb:81bba3'
|
|
||||||
declare-option str green 'rgb:8dbc92'
|
|
||||||
declare-option str orange 'rgb:dea981'
|
|
||||||
declare-option str pink 'rgb:d38da9'
|
|
||||||
declare-option str purple 'rgb:ca9bf7'
|
|
||||||
declare-option str red 'rgb:db948e'
|
|
||||||
declare-option str yellow 'rgb:e1d179'
|
|
||||||
declare-option str lime 'rgb:adc47e'
|
|
||||||
declare-option str dimgray 'rgb:3d4747'
|
|
||||||
declare-option str psel 'rgba:46466480'
|
|
||||||
declare-option str ssel 'rgba:37375580'
|
|
||||||
|
|
||||||
declare-option str background %opt{black}
|
|
||||||
declare-option str dimmed_background %opt{gray}
|
|
||||||
declare-option str foreground %opt{white}
|
|
||||||
|
|
||||||
# Reference
|
|
||||||
# https://github.com/mawww/kakoune/blob/master/colors/default.kak
|
|
||||||
# For code
|
|
||||||
set-face global value "%opt{yellow}"
|
|
||||||
set-face global type "%opt{aqua}"
|
|
||||||
set-face global variable "%opt{purple}"
|
|
||||||
set-face global module "%opt{white}"
|
|
||||||
set-face global function "%opt{orange}"
|
|
||||||
set-face global string "%opt{pink}"
|
|
||||||
set-face global keyword "%opt{green}"
|
|
||||||
set-face global operator "%opt{aqua}"
|
|
||||||
set-face global attribute "%opt{blue_green}"
|
|
||||||
set-face global bracket "%opt{white}+b"
|
|
||||||
set-face global arguement "%opt{blue_green}"
|
|
||||||
set-face global comma "%opt{white}"
|
|
||||||
set-face global constant "%opt{blue_green}+b"
|
|
||||||
set-face global class "%opt{lime}"
|
|
||||||
set-face global comment "%opt{gray}+i"
|
|
||||||
set-face global meta "%opt{blue}"
|
|
||||||
set-face global builtin "%opt{cyan}+b"
|
|
||||||
|
|
||||||
# For markup
|
|
||||||
set-face global title "%opt{pink}"
|
|
||||||
set-face global header "%opt{orange}"
|
|
||||||
set-face global bold "%opt{pink}"
|
|
||||||
set-face global italic "%opt{purple}"
|
|
||||||
set-face global mono "%opt{green}"
|
|
||||||
set-face global block "%opt{cyan}"
|
|
||||||
set-face global link "%opt{green}"
|
|
||||||
set-face global bullet "%opt{green}"
|
|
||||||
set-face global list "%opt{white}"
|
|
||||||
|
|
||||||
# Builtin faces
|
|
||||||
set-face global Default "%opt{white},%opt{black}"
|
|
||||||
# set-face global Default "%opt{white},default"
|
|
||||||
set-face global PrimarySelection "default,%opt{psel}"
|
|
||||||
set-face global SecondarySelection "default,%opt{ssel}"
|
|
||||||
set-face global PrimaryCursor "%opt{dark},%opt{purple}"
|
|
||||||
set-face global SecondaryCursor "%opt{dark},%opt{aqua}"
|
|
||||||
set-face global PrimaryCursorEol "%opt{dark},%opt{yellow}"
|
|
||||||
set-face global SecondaryCursorEol "%opt{dark},%opt{blue}"
|
|
||||||
set-face global LineNumbers "%opt{gray},%opt{black}"
|
|
||||||
set-face global LineNumberCursor "%opt{purple},%opt{black}+b"
|
|
||||||
set-face global LineNumbersWrapped "%opt{gray},%opt{black}+i"
|
|
||||||
set-face global MenuForeground "%opt{dark},%opt{white}+b"
|
|
||||||
set-face global MenuBackground "%opt{white},%opt{dark}"
|
|
||||||
set-face global MenuInfo "%opt{dark},%opt{orange}"
|
|
||||||
set-face global Information "%opt{yellow},%opt{black}"
|
|
||||||
set-face global Error "%opt{red},%opt{black}"
|
|
||||||
set-face global StatusLine "%opt{white},%opt{black}"
|
|
||||||
set-face global StatusLineMode "%opt{aqua},%opt{black}"
|
|
||||||
set-face global StatusLineInfo "%opt{purple},%opt{black}"
|
|
||||||
set-face global StatusLineValue "%opt{orange},%opt{black}"
|
|
||||||
set-face global StatusCursor "%opt{white},%opt{blue}"
|
|
||||||
set-face global Prompt "%opt{green},%opt{black}"
|
|
||||||
set-face global MatchingChar "%opt{blue},%opt{black}"
|
|
||||||
set-face global Whitespace "%opt{dimgray},%opt{black}+f"
|
|
||||||
set-face global WrapMarker Whitespace
|
|
||||||
set-face global BufferPadding "%opt{black},%opt{black}"
|
|
|
@ -28,9 +28,9 @@ set-option global startup_info_version 30000000
|
||||||
set-option global tabstop 4
|
set-option global tabstop 4
|
||||||
set-option global indentwidth 4
|
set-option global indentwidth 4
|
||||||
set-option global scrolloff 5,3
|
set-option global scrolloff 5,3
|
||||||
declare-option str kakrc_path "~/system/nate/dotfiles/kak/kakrc"
|
declare-option str kakrc_path "~/.config/kak/kakrc"
|
||||||
declare-option str sway_conf_path "~/system/nate/dotfiles/sway/config.d/default"
|
declare-option str sway_conf_path "~/.config/sway/config.d/default"
|
||||||
declare-option str shell_config "~/system/nate/modules/home-manager/home.nix"
|
declare-option str shell_config "~/.zshrc"
|
||||||
|
|
||||||
# plug "catppuccin/kakoune" theme config %{
|
# plug "catppuccin/kakoune" theme config %{
|
||||||
# colorscheme catppuccin_macchiato
|
# colorscheme catppuccin_macchiato
|
||||||
|
@ -56,20 +56,6 @@ hook global FocusOut .* %{ try %{
|
||||||
hook global BufWritePost .* %{ evaluate-commands 'git update-diff' }
|
hook global BufWritePost .* %{ evaluate-commands 'git update-diff' }
|
||||||
hook global BufReload .* %{ evaluate-commands 'git update-diff' }
|
hook global BufReload .* %{ evaluate-commands 'git update-diff' }
|
||||||
|
|
||||||
# Color Render in Echo Area
|
|
||||||
hook global WinSetOption filetype=kak %{ hook global NormalIdle .* %{
|
|
||||||
evaluate-commands -save-regs 'a' %{ try %{
|
|
||||||
execute-keys -draft <a-i>w"ay
|
|
||||||
evaluate-commands %sh{ (
|
|
||||||
color="${kak_reg_a}"
|
|
||||||
inverted_color=$(echo "${color}" | perl -pe 'tr/0123456789abcdefABCDEF/fedcba9876543210543210/')
|
|
||||||
printf "%s\n" "evaluate-commands -client $kak_client %{ try %{
|
|
||||||
echo -markup %{{rgb:${inverted_color},rgb:${color}+b} #${color} }
|
|
||||||
}}" | kak -p $kak_session
|
|
||||||
) >/dev/null 2>&1 </dev/null & }
|
|
||||||
}}
|
|
||||||
}}
|
|
||||||
|
|
||||||
# Add default,red and bold style to these regex matches
|
# Add default,red and bold style to these regex matches
|
||||||
add-highlighter global/ regex \b(TODO|FIXME|XXX|NOTE)\b 0:default,red+rb
|
add-highlighter global/ regex \b(TODO|FIXME|XXX|NOTE)\b 0:default,red+rb
|
||||||
|
|
||||||
|
@ -105,7 +91,6 @@ map global normal <c-S> <a-S> -docstring 'select first and last character of ea
|
||||||
map global normal '<c-;>' '<a-;>' -docstring 'flip direction of each selection'
|
map global normal '<c-;>' '<a-;>' -docstring 'flip direction of each selection'
|
||||||
map global normal <c-:> <a-:> -docstring 'ensure selections are in forward direction (cursor then anchor)'
|
map global normal <c-:> <a-:> -docstring 'ensure selections are in forward direction (cursor then anchor)'
|
||||||
map global normal <c-,> <a-,> -docstring 'clear the main selection'
|
map global normal <c-,> <a-,> -docstring 'clear the main selection'
|
||||||
map global normal <c-.> <a-.> -docstring 'Repeat last object or f/t selection'
|
|
||||||
|
|
||||||
# Scrolling remap
|
# Scrolling remap
|
||||||
map global normal <c-e> <pageup> -docstring 'Scroll screen up'
|
map global normal <c-e> <pageup> -docstring 'Scroll screen up'
|
||||||
|
@ -259,17 +244,9 @@ plug "alexherbo2/auto-pairs.kak" %{
|
||||||
enable-auto-pairs
|
enable-auto-pairs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
plug "https://github.com/h-youhei/kakoune-surround"
|
plug "https://github.com/h-youhei/kakoune-surround"
|
||||||
|
|
||||||
map global normal <c-m> ':surround<ret>'
|
map global normal <c-m> ':surround<ret>'
|
||||||
|
|
||||||
# Custom scripts
|
# Custom scripts
|
||||||
|
source "~/.config/kak/rc/fzf_git.kak"
|
||||||
# evaluate-commands %sh{
|
|
||||||
# for file in ~/.config/kak/rc/*.kak; do
|
|
||||||
# printf "source %s\n" $file
|
|
||||||
# done
|
|
||||||
# }
|
|
||||||
|
|
||||||
# source "~/.config/kak/rc/"
|
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
#use evaluate-commands to collapse undo
|
|
||||||
define-command close_tag %{ evaluate-commands %{
|
|
||||||
#revert removing indent after leaving insert mode
|
|
||||||
try %{
|
|
||||||
execute-keys -draft '<a-h>s[^\n]<ret>'
|
|
||||||
} catch %{
|
|
||||||
execute-keys -draft 'K<a-&>'
|
|
||||||
}
|
|
||||||
execute-keys ';Gg<a-;>'
|
|
||||||
evaluate-commands %sh{
|
|
||||||
tag_list=`echo "$kak_selection" | grep -P -o '(?<=<)[^>]*[^/>](?=>)' | tac | cut -d ' ' -f 1`
|
|
||||||
close=
|
|
||||||
close_stack=
|
|
||||||
result=
|
|
||||||
for tag in $tag_list ; do
|
|
||||||
if [ `echo $tag | cut -c 1` = / ] ; then
|
|
||||||
close=${tag#/}
|
|
||||||
close_stack=$close\\n$close_stack
|
|
||||||
else
|
|
||||||
if [ $kak_opt_filetype != xml ] ; then
|
|
||||||
case $tag in
|
|
||||||
#self-closing tags
|
|
||||||
area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr) continue ;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
if [ $tag = $close ] ; then
|
|
||||||
close_stack=${close_stack#*\\n}
|
|
||||||
close=`echo $close_stack | head -n 1`
|
|
||||||
else
|
|
||||||
result=$tag
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
[ -z $result ] && echo "fail 'no un-closed tag'"
|
|
||||||
echo "execute-keys -with-hooks \;i<lt>/$result><esc>"
|
|
||||||
}
|
|
||||||
}}
|
|
||||||
|
|
||||||
map global user c ':close_tag<ret>' -docstring "Close tag"
|
|
|
@ -1,26 +0,0 @@
|
||||||
[delta "Catppuccin Macchiato"]
|
|
||||||
blame-palette = "#24273a #1e2030 #181926 #363a4f #494d64"
|
|
||||||
commit-decoration-style = "box ul"
|
|
||||||
dark = true
|
|
||||||
file-decoration-style = "#cad3f5"
|
|
||||||
file-style = "#cad3f5"
|
|
||||||
hunk-header-decoration-style = "box ul"
|
|
||||||
hunk-header-file-style = "bold"
|
|
||||||
hunk-header-line-number-style = "bold #a5adcb"
|
|
||||||
hunk-header-style = "file line-number syntax"
|
|
||||||
line-numbers = true
|
|
||||||
line-numbers-left-style = "#6e738d"
|
|
||||||
line-numbers-minus-style = "bold #ed8796"
|
|
||||||
line-numbers-plus-style = "bold #a6da95"
|
|
||||||
line-numbers-right-style = "#6e738d"
|
|
||||||
line-numbers-zero-style = "#6e738d"
|
|
||||||
# 25% red 75% base
|
|
||||||
minus-emph-style = "bold syntax #564052"
|
|
||||||
# 10% red 90% base
|
|
||||||
minus-style = "syntax #383143"
|
|
||||||
# 25% green 75% base
|
|
||||||
plus-emph-style = "bold syntax #455552"
|
|
||||||
# 10% green 90% base
|
|
||||||
plus-style = "syntax #313943"
|
|
||||||
# Should match the name of the bat theme
|
|
||||||
syntax-theme = "Catppuccin-macchiato"
|
|
|
@ -1,19 +1,19 @@
|
||||||
font=Overpass Nerd Font 20
|
font=UbuntuMono 12.5
|
||||||
|
|
||||||
background-color=#24273a
|
background-color=#404552
|
||||||
text-color=#cad3f5
|
text-color=#e5e9f0
|
||||||
width=630
|
width=315
|
||||||
height=400
|
height=200
|
||||||
padding=10
|
padding=10
|
||||||
margin=20
|
margin=10
|
||||||
progress-color=over #eceff480
|
progress-color=over #eceff480
|
||||||
icon-path=/usr/share/icons/Arc-X-D
|
icon-path=/usr/share/icons/Arc-X-D
|
||||||
max-icon-size=140
|
max-icon-size=70
|
||||||
layer=overlay
|
layer=overlay
|
||||||
|
|
||||||
border-size=5
|
border-size=5
|
||||||
border-radius=8
|
border-radius=0
|
||||||
border-color=#b7bdf8
|
border-color=#5294e2
|
||||||
|
|
||||||
default-timeout=5000
|
default-timeout=5000
|
||||||
|
|
||||||
|
|
|
@ -14,14 +14,13 @@ for_window [class="Telegram"] focus
|
||||||
|
|
||||||
for_window [app_id="xed"] focus
|
for_window [app_id="xed"] focus
|
||||||
|
|
||||||
# default keepass main window to scratch
|
|
||||||
for_window [app_id="org.keepassxc.KeePassXC"] $floating_window
|
|
||||||
for_window [app_id="org.keepassxc.KeePassXC" title="KeePassXC"] move to scratchpad #, scratchpad show # default to show
|
|
||||||
|
|
||||||
# set floating (nontiling) for apps needing it:
|
# set floating (nontiling)for apps needing it:
|
||||||
for_window [class="Yad" instance="yad"] floating enable
|
for_window [class="Yad" instance="yad"] floating enable
|
||||||
for_window [app_id="yad"] floating enable
|
for_window [app_id="yad"] floating enable
|
||||||
for_window [app_id="blueman-manager"] floating enable, resize set width 40 ppt height 30 ppt
|
for_window [app_id="blueman-manager"] floating enable, resize set width 40 ppt height 30 ppt
|
||||||
|
for_window [app_id="mobile"] floating enable, resize set width 200 ppt height 400 ppt
|
||||||
|
|
||||||
|
|
||||||
# set floating (nontiling) for special apps:
|
# set floating (nontiling) for special apps:
|
||||||
for_window [class="Xsane" instance="xsane"] floating enable
|
for_window [class="Xsane" instance="xsane"] floating enable
|
||||||
|
@ -30,7 +29,6 @@ for_window [class="qt5ct" instance="qt5ct"] floating enable, resize set width 60
|
||||||
for_window [class="Bluetooth-sendto" instance="bluetooth-sendto"] floating enable
|
for_window [class="Bluetooth-sendto" instance="bluetooth-sendto"] floating enable
|
||||||
for_window [app_id="pamac-manager"] floating enable, resize set width 80 ppt height 70 ppt
|
for_window [app_id="pamac-manager"] floating enable, resize set width 80 ppt height 70 ppt
|
||||||
for_window [class="Lxappearance"] floating enable, resize set width 60 ppt height 50 ppt
|
for_window [class="Lxappearance"] floating enable, resize set width 60 ppt height 50 ppt
|
||||||
for_window [class="steam" title="^((?!Steam$).)*"] floating enable
|
|
||||||
|
|
||||||
# set floating for window roles
|
# set floating for window roles
|
||||||
for_window [window_role="pop-up"] floating enable
|
for_window [window_role="pop-up"] floating enable
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
# Auth with polkit-gnome:
|
# Auth with polkit-gnome:
|
||||||
exec lxqt-policykit-agent
|
exec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
||||||
|
|
||||||
# Desktop notifications
|
# Desktop notifications
|
||||||
exec mako
|
exec mako
|
||||||
|
|
|
@ -145,8 +145,8 @@ exec swayidle -w\
|
||||||
# Move focus to the parent container
|
# Move focus to the parent container
|
||||||
bindsym $mod+a focus parent
|
bindsym $mod+a focus parent
|
||||||
|
|
||||||
# bindsym $mod+g exec ~/.config/sway/scripts/scale.sh inc
|
bindsym $mod+g exec ~/.config/sway/scripts/scale.sh inc
|
||||||
# bindsym $mod+m exec ~/.config/sway/scripts/scale.sh dec
|
bindsym $mod+m exec ~/.config/sway/scripts/scale.sh dec
|
||||||
|
|
||||||
#
|
#
|
||||||
# Scratchpad:
|
# Scratchpad:
|
||||||
|
@ -225,7 +225,7 @@ bindsym $mod+r mode "resize"
|
||||||
#
|
#
|
||||||
# Screenshots
|
# Screenshots
|
||||||
#
|
#
|
||||||
bindsym $mod+Shift+p exec ~/.config/sway/scripts/screenshot.sh clipboard
|
bindsym $mod+Shift+p exec /usr/share/sway/scripts/grimshot --notify save output
|
||||||
bindsym $mod+p exec ~/.config/sway/scripts/screenshot.sh
|
bindsym $mod+p exec ~/.config/sway/scripts/screenshot.sh
|
||||||
#
|
#
|
||||||
# Keybindings List
|
# Keybindings List
|
||||||
|
|
|
@ -9,5 +9,5 @@
|
||||||
# Wacom Tablet - Example
|
# Wacom Tablet - Example
|
||||||
# input "1386:884:Wacom_Intuos_S_Pad" map_to_output HDMI-A-1
|
# input "1386:884:Wacom_Intuos_S_Pad" map_to_output HDMI-A-1
|
||||||
# input "1386:884:Wacom_Intuos_S_Pen" map_to_output HDMI-A-1
|
# input "1386:884:Wacom_Intuos_S_Pen" map_to_output HDMI-A-1
|
||||||
output DP-3 resolution 3840x2160@240.084Hz position 0,0
|
output DP-3 resolution 2560x1440@164.956Hz position 0,0
|
||||||
output * adaptive_sync off
|
output * adaptive_sync on
|
||||||
|
|
|
@ -41,8 +41,8 @@ font pango:Overpass Nerd Font 12
|
||||||
smart_borders on
|
smart_borders on
|
||||||
|
|
||||||
# Set wallpaper:
|
# Set wallpaper:
|
||||||
exec_always swaybg -i /home/nate/.config/sway/wallpapers/nix-black-4k.png
|
#exec_always swaybg -i /home/nate/.config/sway/wallpapers/ign-0000.png
|
||||||
# exec_always /home/nate/.config/sway/scripts/background.sh
|
exec_always /home/nate/.config/sway/scripts/background.sh
|
||||||
|
|
||||||
# Title format for windows
|
# Title format for windows
|
||||||
for_window [shell="xdg_shell"] title_format "%title (%app_id)"
|
for_window [shell="xdg_shell"] title_format "%title (%app_id)"
|
||||||
|
@ -71,28 +71,31 @@ bar {
|
||||||
swaybar_command waybar
|
swaybar_command waybar
|
||||||
}
|
}
|
||||||
|
|
||||||
set $opacity 0.8
|
set $opacity 0.88
|
||||||
set $floating_window floating enable, resize set width 1030 height 710, opacity 1.0
|
set $floating_window floating enable, resize set width 1030 height 710, opacity 1.0
|
||||||
|
|
||||||
for_window {
|
for_window {
|
||||||
[class=".*"] opacity 1.0
|
[class=".*"] opacity $opacity
|
||||||
[app_id=".*"] opacity 1.0
|
[app_id=".*"] opacity $opacity
|
||||||
[app_id="foot"] opacity $opacity
|
[app_id="firefox"] opacity 1.0
|
||||||
[app_id="thunar"] opacity $opacity
|
[app_id="corectrl"] opacity 1.0
|
||||||
|
[app_id="org.keepassxc.KeePassXC"] $floating_window, move to scratchpad, sratchpad show, opacity 1.0
|
||||||
|
[app_id="pavucontrol"] opacity 1.0
|
||||||
|
[app_id="oversteer"] opacity 1.0
|
||||||
|
|
||||||
# Steam
|
|
||||||
[class="steam_app.*"] inhibit_idle fullscreen; floating enable; border none opacity 1.0
|
[class="steam_app.*"] inhibit_idle fullscreen; floating enable; border none opacity 1.0
|
||||||
[class="steam"] opacity 1.0
|
[class="steam"] opacity 1.0
|
||||||
|
[class="leagueclientux.exe"] opacity 1.0
|
||||||
|
[class="obsidian"] opacity 1.0
|
||||||
|
|
||||||
|
[title="(?:Open|Save|Save New|Open a) (?:File|Folder|As|Scene As)"] $floating_window
|
||||||
# Godot windows
|
# Godot windows
|
||||||
|
[title="(?:Godot)"] opacity 1.0
|
||||||
[title="(?:Create New|Select Frames|project.godot|node)"] $floating_window
|
[title="(?:Create New|Select Frames|project.godot|node)"] $floating_window
|
||||||
[title="(?:Create Folder|Node Configuration|Warning|Please Confirm)"] $floating_window, resize set height 200
|
[title="(?:Create Folder|Node Configuration|Warning|Please Confirm)"] $floating_window, resize set height 200
|
||||||
|
|
||||||
# Aseprite
|
# Aseprite
|
||||||
[title="(?:Aseprite)"] opacity 1.0
|
[title="(?:Aseprite)"] opacity 1.0
|
||||||
|
|
||||||
# Floating windows
|
|
||||||
[title="(?:Open|Save|Save New|Open a) (?:File|Folder|As|Scene As)"] $floating_window
|
|
||||||
[window_role="pop-up"] $floating_window
|
[window_role="pop-up"] $floating_window
|
||||||
[window_role="bubble"] $floating_window
|
[window_role="bubble"] $floating_window
|
||||||
[window_role="task_dialog"] $floating_window
|
[window_role="task_dialog"] $floating_window
|
||||||
|
|
|
@ -3,31 +3,16 @@
|
||||||
entries="Active Screen Output Area Window"
|
entries="Active Screen Output Area Window"
|
||||||
|
|
||||||
selected=$(printf '%s\n' $entries | wofi --style=$HOME/.config/wofi/style.widgets.css --conf=$HOME/.config/wofi/config.screenshot | awk '{print tolower($1)}')
|
selected=$(printf '%s\n' $entries | wofi --style=$HOME/.config/wofi/style.widgets.css --conf=$HOME/.config/wofi/config.screenshot | awk '{print tolower($1)}')
|
||||||
|
|
||||||
if [ "$1" == "clipboard" ]; then
|
case $selected in
|
||||||
case $selected in
|
active)
|
||||||
active)
|
grimshot --notify save active;;
|
||||||
grimshot --notify copy active;;
|
screen)
|
||||||
screen)
|
grimshot --notify save screen;;
|
||||||
grimshot --notify copy screen;;
|
output)
|
||||||
output)
|
grimshot --notify save output;;
|
||||||
grimshot --notify copy output;;
|
area)
|
||||||
area)
|
grimshot --notify save area;;
|
||||||
grimshot --notify copy area;;
|
window)
|
||||||
window)
|
grimshot --notify save window;;
|
||||||
grimshot --notify copy window;;
|
esac
|
||||||
esac
|
|
||||||
else
|
|
||||||
case $selected in
|
|
||||||
active)
|
|
||||||
grimshot --notify save active;;
|
|
||||||
screen)
|
|
||||||
grimshot --notify save screen;;
|
|
||||||
output)
|
|
||||||
grimshot --notify save output;;
|
|
||||||
area)
|
|
||||||
grimshot --notify save area;;
|
|
||||||
window)
|
|
||||||
grimshot --notify save window;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 68 KiB |
|
@ -1,7 +0,0 @@
|
||||||
visualizer.fps=20
|
|
||||||
visualizer.spectrum.bar.spacing=1
|
|
||||||
visualizer.spectrum.bar.width=3
|
|
||||||
visualizer.spectrum.smoothing.mode=monstercat
|
|
||||||
|
|
||||||
visualizer.monstercat.smoothing.factor=3
|
|
||||||
audio.stereo.enabled=false
|
|
|
@ -2,13 +2,13 @@
|
||||||
{
|
{
|
||||||
"layer": "top",
|
"layer": "top",
|
||||||
"position": "top",
|
"position": "top",
|
||||||
"margin-top": 3,
|
"margin-top": 8,
|
||||||
"margin-left": 10,
|
"margin-left": 10,
|
||||||
"margin-right": 10,
|
"margin-right": 10,
|
||||||
"margin-bottom": 3,
|
"margin-bottom": 8,
|
||||||
|
|
||||||
// If height property would be not present, it'd be calculated dynamically
|
// If height property would be not present, it'd be calculated dynamically
|
||||||
"height": 60,
|
"height": 30,
|
||||||
|
|
||||||
"modules-left": [
|
"modules-left": [
|
||||||
"custom/launcher",
|
"custom/launcher",
|
||||||
|
@ -17,13 +17,6 @@
|
||||||
],
|
],
|
||||||
|
|
||||||
"modules-center": [
|
"modules-center": [
|
||||||
"custom/signal",
|
|
||||||
"custom/steam",
|
|
||||||
"custom/spotify",
|
|
||||||
"custom/firefox",
|
|
||||||
"custom/slack",
|
|
||||||
"custom/files",
|
|
||||||
"custom/pomo",
|
|
||||||
],
|
],
|
||||||
|
|
||||||
"modules-right": [
|
"modules-right": [
|
||||||
|
@ -32,11 +25,12 @@
|
||||||
"memory",
|
"memory",
|
||||||
"cpu",
|
"cpu",
|
||||||
"pulseaudio",
|
"pulseaudio",
|
||||||
|
"custom/spotify",
|
||||||
"custom/keyboard-layout",
|
"custom/keyboard-layout",
|
||||||
"battery",
|
"battery",
|
||||||
//"custom/PBPbattery",
|
//"custom/PBPbattery",
|
||||||
// "backlight#icon",
|
"backlight#icon",
|
||||||
// "backlight#value",
|
"backlight#value",
|
||||||
"clock",
|
"clock",
|
||||||
"tray",
|
"tray",
|
||||||
//"custom/weather",
|
//"custom/weather",
|
||||||
|
@ -86,7 +80,7 @@
|
||||||
"warning": 70,
|
"warning": 70,
|
||||||
"critical": 90,
|
"critical": 90,
|
||||||
},
|
},
|
||||||
"on-click": "foot -e 'htop'",
|
"on-click": "xfce4-terminal -e 'htop'",
|
||||||
},
|
},
|
||||||
|
|
||||||
"custom/keyboard-layout": {
|
"custom/keyboard-layout": {
|
||||||
|
@ -103,7 +97,7 @@
|
||||||
"memory": {
|
"memory": {
|
||||||
"interval": 5,
|
"interval": 5,
|
||||||
"format": " {}%", // Icon: memory
|
"format": " {}%", // Icon: memory
|
||||||
"on-click": "foot -e 'htop'",
|
"on-click": "xfce4-terminal -e 'htop'",
|
||||||
"states": {
|
"states": {
|
||||||
"warning": 70,
|
"warning": 70,
|
||||||
"critical": 90
|
"critical": 90
|
||||||
|
@ -116,7 +110,7 @@
|
||||||
"format-ethernet": " {ifname}: {ipaddr}/{cidr}", // Icon: ethernet
|
"format-ethernet": " {ifname}: {ipaddr}/{cidr}", // Icon: ethernet
|
||||||
"format-disconnected": "⚠ Disconnected",
|
"format-disconnected": "⚠ Disconnected",
|
||||||
"tooltip-format": "{ifname}: {ipaddr}",
|
"tooltip-format": "{ifname}: {ipaddr}",
|
||||||
"on-click": "foot -e 'nmtui'",
|
"on-click": "xfce4-terminal -e 'nmtui'",
|
||||||
},
|
},
|
||||||
"network#vpn": {
|
"network#vpn": {
|
||||||
"interface": "tun0",
|
"interface": "tun0",
|
||||||
|
@ -153,18 +147,18 @@
|
||||||
"scroll-step": 1, // %, can be a float
|
"scroll-step": 1, // %, can be a float
|
||||||
"format": "{volume}% {icon}",
|
"format": "{volume}% {icon}",
|
||||||
"format-bluetooth": "{volume}% {icon} {format_source}",
|
"format-bluetooth": "{volume}% {icon} {format_source}",
|
||||||
"format-bluetooth-muted": " {icon} {format_source}",
|
"format-bluetooth-muted": " {icon} {format_source}",
|
||||||
"format-muted": " {format_source}",
|
"format-muted": "婢 {format_source}",
|
||||||
"format-source": "{volume}% ",
|
"format-source": "{volume}% ",
|
||||||
"format-source-muted": "",
|
"format-source-muted": "",
|
||||||
"format-icons": {
|
"format-icons": {
|
||||||
"headphone": "",
|
"headphone": "",
|
||||||
"hands-free": "",
|
"hands-free": "וֹ",
|
||||||
"headset": "",
|
"headset": " ",
|
||||||
"phone": "",
|
"phone": "",
|
||||||
"portable": "",
|
"portable": "",
|
||||||
"car": "",
|
"car": "",
|
||||||
"default": [""]
|
"default": [""]
|
||||||
},
|
},
|
||||||
"on-click": "pavucontrol",
|
"on-click": "pavucontrol",
|
||||||
"on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +2%",
|
"on-scroll-up": "pactl set-sink-volume @DEFAULT_SINK@ +2%",
|
||||||
|
@ -179,12 +173,6 @@
|
||||||
"interval": 600,
|
"interval": 600,
|
||||||
},
|
},
|
||||||
|
|
||||||
// "custom/temp": {
|
|
||||||
// "exec": "notify-send \"temp thing\"",
|
|
||||||
// "interval": "once",
|
|
||||||
// "signal": 8,
|
|
||||||
// },
|
|
||||||
|
|
||||||
"tray": {
|
"tray": {
|
||||||
"icon-size": 18,
|
"icon-size": 18,
|
||||||
"spacing":10,
|
"spacing":10,
|
||||||
|
@ -203,54 +191,28 @@
|
||||||
"on-scroll-up": "brightnessctl -c backlight set +1%"
|
"on-scroll-up": "brightnessctl -c backlight set +1%"
|
||||||
},
|
},
|
||||||
|
|
||||||
"custom/signal": {
|
"custom/firefox": {
|
||||||
"format": " ",
|
"format": " ",
|
||||||
"on-click": "exec signal",
|
"on-click": "exec firefox",
|
||||||
"tooltip": false,
|
"tooltip": false
|
||||||
},
|
|
||||||
|
|
||||||
"custom/steam": {
|
|
||||||
"format": " ",
|
|
||||||
"on-click": "exec steam",
|
|
||||||
"tooltip": false,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
"custom/spotify": {
|
"custom/spotify": {
|
||||||
"format": " ",
|
"format": " ",
|
||||||
"on-click": "foot -e 'ncspot'",
|
"on-click": "foot -e 'ncspot'",
|
||||||
"tooltip": false,
|
"tooltip": false
|
||||||
},
|
},
|
||||||
|
|
||||||
"custom/firefox": {
|
"custom/terminal": {
|
||||||
"format": " ",
|
"format": " ",
|
||||||
"on-click": "exec firefox",
|
"on-click": "exec xfce4-terminal",
|
||||||
"tooltip": false,
|
"tooltip": false
|
||||||
},
|
},
|
||||||
|
|
||||||
|
"custom/files": {
|
||||||
"custom/slack": {
|
"format": " ",
|
||||||
"format": " ",
|
|
||||||
"on-click": "slack",
|
|
||||||
"tooltip": false,
|
|
||||||
"exec if": "pgrep slack"
|
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
"custom/files": {
|
|
||||||
"format": " ",
|
|
||||||
"on-click": "exec thunar",
|
"on-click": "exec thunar",
|
||||||
"tooltip": false,
|
"tooltip": false
|
||||||
},
|
|
||||||
|
|
||||||
|
|
||||||
"custom/pomo": {
|
|
||||||
"format": " {} ",
|
|
||||||
"exec": "/home/nate/source/pomozoro/zig-out/bin/pomozoro",
|
|
||||||
"return-type": "json",
|
|
||||||
"on-click": "echo 's' > ~/.local/share/pomozoro/pomopipe",
|
|
||||||
"on-click-right": "echo 'p' > ~/.local/share/pomozoro/pomopipe",
|
|
||||||
"on-click-middle": "echo 'r' > ~/.local/share/pomozoro/pomopipe",
|
|
||||||
// "signal": 8,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
"custom/launcher": {
|
"custom/launcher": {
|
||||||
|
|
|
@ -6,110 +6,67 @@
|
||||||
*
|
*
|
||||||
* =========================================================================== */
|
* =========================================================================== */
|
||||||
|
|
||||||
@define-color rosewater #f4dbd6;
|
|
||||||
@define-color flamingo #f0c6c6;
|
|
||||||
@define-color pink #f5bde6;
|
|
||||||
@define-color mauve #c6a0f6;
|
|
||||||
@define-color red #ed8796;
|
|
||||||
@define-color maroon #ee99a0;
|
|
||||||
@define-color peach #f5a97f;
|
|
||||||
@define-color yellow #eed49f;
|
|
||||||
@define-color green #a6da95;
|
|
||||||
@define-color teal #8bd5ca;
|
|
||||||
@define-color sky #91d7e3;
|
|
||||||
@define-color sapphire #7dc4e4;
|
|
||||||
@define-color blue #8aadf4;
|
|
||||||
@define-color lavender #b7bdf8;
|
|
||||||
@define-color text #cad3f5;
|
|
||||||
@define-color subtext1 #b8c0e0;
|
|
||||||
@define-color subtext0 #a5adcb;
|
|
||||||
@define-color overlay2 #939ab7;
|
|
||||||
@define-color overlay1 #8087a2;
|
|
||||||
@define-color overlay0 #6e738d;
|
|
||||||
@define-color surface2 #5b6078;
|
|
||||||
@define-color surface1 #494d64;
|
|
||||||
@define-color surface0 #363a4f;
|
|
||||||
@define-color base #24273a;
|
|
||||||
@define-color mantle #1e2030;
|
|
||||||
@define-color crust #181926;
|
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
* Keyframes
|
* Keyframes
|
||||||
* -------------------------------------------------------------------------- */
|
* -------------------------------------------------------------------------- */
|
||||||
@keyframes blink-warning {
|
|
||||||
70% {
|
|
||||||
color: @overlay0;
|
|
||||||
}
|
|
||||||
|
|
||||||
to {
|
/*
|
||||||
color: @overlay0;
|
Nordic Color Scheme
|
||||||
background-color: @crust;
|
*/
|
||||||
}
|
@define-color nord2 #434c5e;
|
||||||
|
@define-color nord3 #4c566a;
|
||||||
|
@define-color nord4 #d8dee9;
|
||||||
|
@define-color nord8 #88c0d0;
|
||||||
|
@define-color nord9 #81a1c1;
|
||||||
|
@define-color nord_cyan #8fbcbb;
|
||||||
|
@define-color nord_orange #d08770;
|
||||||
|
@define-color nord_red #bf616a;
|
||||||
|
@define-color nord_green #a3be8c;
|
||||||
|
@define-color nord_yellow #ebcb8b;
|
||||||
|
|
||||||
|
@keyframes blink-warning {
|
||||||
|
70% {
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
to {
|
||||||
|
color: white;
|
||||||
|
background-color: @nord_orange;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@keyframes blink-critical {
|
@keyframes blink-critical {
|
||||||
70% {
|
70% {
|
||||||
color: @overlay2;
|
color: white;
|
||||||
}
|
}
|
||||||
|
|
||||||
to {
|
to {
|
||||||
color: @overlay2;
|
color: white;
|
||||||
background-color: @base;
|
background-color: @nord_red;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
* Base styles
|
* Base styles
|
||||||
* -------------------------------------------------------------------------- */
|
* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
/* Reset all styles */
|
/* Reset all styles */
|
||||||
* {
|
* {
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
margin: 1px;
|
margin: 1px;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The whole bar */
|
/* The whole bar */
|
||||||
#waybar {
|
#waybar {
|
||||||
background: transparent;
|
background: transparent;
|
||||||
background-color: transparent;
|
color: @nord4;
|
||||||
font-family: Overpass Nerd Font;
|
background-color: @nord3;
|
||||||
font-size: 20px;
|
font-family: Overpass Nerd Font;
|
||||||
color: @text;
|
font-size: 16px;
|
||||||
}
|
border-radius: 15px;
|
||||||
|
|
||||||
#taskbar {
|
|
||||||
background: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskbar button {
|
|
||||||
padding-left: 3px;
|
|
||||||
padding-right: 3px;
|
|
||||||
margin-left: 3px;
|
|
||||||
margin-right: 3px;
|
|
||||||
color: transparent;
|
|
||||||
border-bottom: 2px solid;
|
|
||||||
}
|
|
||||||
|
|
||||||
#taskbar button.active {
|
|
||||||
color: @lavender;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modules-left,
|
|
||||||
.modules-right,
|
|
||||||
.modules-center {
|
|
||||||
/* margin: 8px 8px 1px 8px; */
|
|
||||||
background: transparent;
|
|
||||||
/* color: @; */
|
|
||||||
background-color: @base;
|
|
||||||
border-radius: 25px;
|
|
||||||
padding: 0px 10px 0px 10px;
|
|
||||||
border-style: solid;
|
|
||||||
border-width: 3px;
|
|
||||||
border-color: @surface0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Every modules */
|
/* Every modules */
|
||||||
|
@ -127,8 +84,8 @@
|
||||||
#tray,
|
#tray,
|
||||||
#idle_inhibitor,
|
#idle_inhibitor,
|
||||||
#custom-PBPbattery {
|
#custom-PBPbattery {
|
||||||
padding: 0.5rem 0.6rem;
|
padding:0.5rem 0.6rem;
|
||||||
margin: 1px 0px;
|
margin: 1px 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
/* -----------------------------------------------------------------------------
|
||||||
|
@ -136,179 +93,127 @@
|
||||||
* -------------------------------------------------------------------------- */
|
* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
#battery {
|
#battery {
|
||||||
animation-timing-function: linear;
|
animation-timing-function: linear;
|
||||||
animation-iteration-count: infinite;
|
animation-iteration-count: infinite;
|
||||||
animation-direction: alternate;
|
animation-direction: alternate;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery.warning {
|
#battery.warning {
|
||||||
color: @flamingo;
|
color: @nord_orange;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery.critical {
|
#battery.critical {
|
||||||
color: @red;
|
color: @nord_red;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery.warning.discharging {
|
#battery.warning.discharging {
|
||||||
animation-name: blink-warning;
|
animation-name: blink-warning;
|
||||||
animation-duration: 3s;
|
animation-duration: 3s;
|
||||||
}
|
}
|
||||||
|
|
||||||
#battery.critical.discharging {
|
#battery.critical.discharging {
|
||||||
animation-name: blink-critical;
|
animation-name: blink-critical;
|
||||||
animation-duration: 2s;
|
animation-duration: 2s;
|
||||||
}
|
}
|
||||||
|
|
||||||
#cpu.warning {
|
#cpu.warning {
|
||||||
color: @flamingo;
|
color: @nord_orange;
|
||||||
}
|
}
|
||||||
|
|
||||||
#cpu.critical {
|
#cpu.critical {
|
||||||
color: @red;
|
color: @nord_red;
|
||||||
}
|
}
|
||||||
|
|
||||||
#memory {
|
#memory {
|
||||||
animation-timing-function: linear;
|
animation-timing-function: linear;
|
||||||
animation-iteration-count: infinite;
|
animation-iteration-count: infinite;
|
||||||
animation-direction: alternate;
|
animation-direction: alternate;
|
||||||
}
|
}
|
||||||
|
|
||||||
#memory.warning {
|
#memory.warning {
|
||||||
color: @flamingo;
|
color: @nord_orange;
|
||||||
}
|
}
|
||||||
|
|
||||||
#memory.critical {
|
#memory.critical {
|
||||||
color: @red;
|
color: @nord_red;
|
||||||
animation-name: blink-critical;
|
animation-name: blink-critical;
|
||||||
animation-duration: 2s;
|
animation-duration: 2s;
|
||||||
padding-left: 5px;
|
padding-left:5px;
|
||||||
padding-right: 5px;
|
padding-right:5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#mode {
|
#mode {
|
||||||
background: @overlay0;
|
background: @nord8;
|
||||||
border-bottom: 3px transparent;
|
border-bottom: 3px transparent;
|
||||||
color: @text;
|
color:white;
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
margin-right: 5px;
|
padding: 7px;
|
||||||
border-radius: 20px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#network.disconnected {
|
#network.disconnected {
|
||||||
color: @flamingo;
|
color: @nord_orange;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio {
|
#pulseaudio {
|
||||||
padding-top: 6px;
|
padding-top:6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pulseaudio.muted {
|
#pulseaudio.muted {
|
||||||
color: @sky;
|
|
||||||
|
color: @nord_cyan;
|
||||||
}
|
}
|
||||||
|
|
||||||
#temperature.critical {
|
#temperature.critical {
|
||||||
color: @red;
|
color: @nord_red;
|
||||||
}
|
}
|
||||||
|
|
||||||
#window {
|
#window {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces {
|
#workspaces {
|
||||||
font-size: 13px;
|
font-size:13px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button {
|
#workspaces button {
|
||||||
border-bottom: 3px solid transparent;
|
border-bottom: 3px solid transparent;
|
||||||
margin-bottom: 0px;
|
margin-bottom: 0px;
|
||||||
padding: 0px;
|
padding:0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-launcher {
|
#custom-launcher {
|
||||||
color: @lavenderblush;
|
color: @nord9;
|
||||||
}
|
|
||||||
|
|
||||||
/* @define-color rosewater #f4dbd6; */
|
|
||||||
/* @define-color flamingo #f0c6c6; */
|
|
||||||
/* @define-color pink #f5bde6; */
|
|
||||||
/* @define-color mauve #c6a0f6; */
|
|
||||||
/* @define-color red #ed8796; */
|
|
||||||
/* @define-color maroon #ee99a0; */
|
|
||||||
/* @define-color peach #f5a97f; */
|
|
||||||
/* @define-color yellow #eed49f; */
|
|
||||||
/* @define-color green #a6da95; */
|
|
||||||
/* @define-color teal #8bd5ca; */
|
|
||||||
/* @define-color sky #91d7e3; */
|
|
||||||
/* @define-color sapphire #7dc4e4; */
|
|
||||||
/* @define-color blue #8aadf4; */
|
|
||||||
/* @define-color lavender #b7bdf8; */
|
|
||||||
|
|
||||||
|
|
||||||
#custom-signal {
|
|
||||||
color: @lavender;
|
|
||||||
padding: 0px 5px 0px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-steam {
|
|
||||||
color: @teal;
|
|
||||||
padding: 0px 5px 0px 5px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-spotify {
|
#custom-spotify {
|
||||||
color: @green;
|
color: @nord_green;
|
||||||
padding: 0px 5px 0px 5px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-firefox {
|
|
||||||
color: @yellow;
|
|
||||||
padding: 0px 5px 0px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-slack {
|
|
||||||
color: @peach;
|
|
||||||
padding: 0px 5px 0px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-files {
|
|
||||||
color: @pink;
|
|
||||||
padding: 0px 5px 0px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#custom-pomo {
|
|
||||||
color: @red;
|
|
||||||
padding: 0px 5px 0px 5px;
|
|
||||||
}
|
|
||||||
|
|
||||||
#wiggle {
|
|
||||||
animation-name: blink-warning;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#workspaces button.focused {
|
#workspaces button.focused {
|
||||||
border-bottom: 3px solid @green;
|
border-bottom: 3px solid @nord_green;
|
||||||
margin-bottom: 1px;
|
margin-bottom: 1px;
|
||||||
padding-left: 0;
|
padding-left:0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#workspaces button.urgent {
|
#workspaces button.urgent {
|
||||||
border-color: @lavender;
|
border-color: @nord2;
|
||||||
color: @yellow;
|
color: @nord_yellow;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-power {
|
#custom-power {
|
||||||
margin-left: 15px;
|
margin-left:15px;
|
||||||
margin-right: 15px;
|
margin-right:15px;
|
||||||
font-size: 15px;
|
font-size:15px;
|
||||||
color: @flamingo;
|
color: @nord_orange;
|
||||||
}
|
}
|
||||||
|
|
||||||
#custom-launcher {
|
#custom-launcher {
|
||||||
font-size: 15px;
|
font-size:15px;
|
||||||
margin-left: 15px;
|
margin-left:15px;
|
||||||
margin-right: 10px;
|
margin-right:10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#backlight.icon {
|
#backlight.icon {
|
||||||
padding-right: 1px;
|
padding-right:1px;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,8 +12,6 @@ in
|
||||||
};
|
};
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
programs.firefox = {
|
programs.firefox = {
|
||||||
# Add pipewire support
|
|
||||||
# package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { pipewireSupport = true;}) {});
|
|
||||||
enable = true;
|
enable = true;
|
||||||
profiles = {
|
profiles = {
|
||||||
default = {
|
default = {
|
||||||
|
@ -24,7 +22,6 @@ in
|
||||||
nur.repos.rycee.firefox-addons.darkreader
|
nur.repos.rycee.firefox-addons.darkreader
|
||||||
nur.repos.rycee.firefox-addons.keepassxc-browser
|
nur.repos.rycee.firefox-addons.keepassxc-browser
|
||||||
nur.repos.crazazy.firefox-addons.ublock-origin
|
nur.repos.crazazy.firefox-addons.ublock-origin
|
||||||
nur.repos.bandithedoge.firefoxAddons.stylus
|
|
||||||
];
|
];
|
||||||
search = {
|
search = {
|
||||||
# Replace default firefox search engine config with this one
|
# Replace default firefox search engine config with this one
|
||||||
|
@ -36,22 +33,12 @@ in
|
||||||
template = "https://www.startpage.com/sp/search?query={searchTerms}";
|
template = "https://www.startpage.com/sp/search?query={searchTerms}";
|
||||||
}];
|
}];
|
||||||
};
|
};
|
||||||
"Nix Packages" = {
|
|
||||||
urls = [{
|
|
||||||
template = "https://search.nixos.org/packages";
|
|
||||||
params = [
|
|
||||||
{ name = "type"; value = "packages"; }
|
|
||||||
{ name = "query"; value = "{searchTerms}"; }
|
|
||||||
];
|
|
||||||
}];
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
|
||||||
definedAliases = [ "@np" ];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
settings = {
|
settings = {
|
||||||
"browser.startup.blankWindow" = true;
|
"browser.startup.blankWindow" = true;
|
||||||
"browser.startup.homepage" = "https://www.startpage.com/do/mypage.pl?prfe=11898a1adf7b7dfb587580692f358773a11ca25e993b8e077476641cec033319e15f2449c345f5be919fd0a082015c3e4ed23143bd4337512466c04c2999831a54abca2eaeb42963c63ff064";
|
"browser.startup.homepage" = "https://www.startpage.com/do/mypage.pl?prfe=11898a1adf7b7dfb587580692f358773a11ca25e993b8e077476641cec033319e15f2449c345f5be919fd0a082015c3e4ed23143bd4337512466c04c2999831a54abca2eaeb42963c63ff064";
|
||||||
|
"browser.newtabpage.enabled" = false;
|
||||||
"browser.search.region" = "US";
|
"browser.search.region" = "US";
|
||||||
"browser.search.isUS" = true;
|
"browser.search.isUS" = true;
|
||||||
"distribution.searchplugins.defaultLocale" = "en-US";
|
"distribution.searchplugins.defaultLocale" = "en-US";
|
||||||
|
@ -67,9 +54,7 @@ in
|
||||||
"signon.rememberSignon" = false;
|
"signon.rememberSignon" = false;
|
||||||
"extensions.formautofill.creditCards.enabled" = false;
|
"extensions.formautofill.creditCards.enabled" = false;
|
||||||
"extensions.formautofill.addresses.enabled" = false;
|
"extensions.formautofill.addresses.enabled" = false;
|
||||||
"browser.toolbars.bookmarks.visibility" = "always";
|
# "browser.bookmarks.showMobileBookmarks" = true;
|
||||||
# For applying userContent.css - not being used
|
|
||||||
# "toolkit.legacyUserProfileCustomizations.stylesheets" = true;
|
|
||||||
# "browser.newtabpage.pinned" = [{
|
# "browser.newtabpage.pinned" = [{
|
||||||
# title = "NixOS";
|
# title = "NixOS";
|
||||||
# url = "https://nixos.org";
|
# url = "https://nixos.org";
|
||||||
|
|
|
@ -1,37 +1,16 @@
|
||||||
{ inputs, config, pkgs, ... }:
|
{ inputs, outputs, lib, config, pkgs, ... }:
|
||||||
let
|
let
|
||||||
userName = "nate";
|
userName = "nate";
|
||||||
fullName = "Nathan Anderson";
|
fullName = "Nathan Anderson";
|
||||||
email = "n8r@tuta.io";
|
email = "n8r@tuta.io";
|
||||||
unstable = import inputs.nixpkgs-unstable { system = "x86_64-linux"; config.allowUnfree = true; };
|
|
||||||
oldstable = import inputs.nixpkgs-23 { system = "x86_64-linux"; config.allowUnfree = true; };
|
|
||||||
davinciDesktop = pkgs.makeDesktopItem {
|
|
||||||
name = "davinci-resolve-studio";
|
|
||||||
desktopName = "Davinci Resolve Studio";
|
|
||||||
exec = "${oldstable.davinci-resolve-studio}";
|
|
||||||
};
|
|
||||||
# overlay-unstable = final: prev: {
|
|
||||||
# unstable = inputs.nixpkgs-unstable.legacyPackages.x86_64-linux;
|
|
||||||
# };
|
|
||||||
# overlay-oldstable = final: prev: {
|
|
||||||
# pkgs23 = inputs.nixpkgs-23.legacyPackages.x86_64-linux;
|
|
||||||
# };
|
|
||||||
# overlay-unstable = final: prev: {
|
|
||||||
# # unstable = inputs.nixpkgs-unstable.legacyPackages.x86_64-linux;
|
|
||||||
# unstable = import inputs.nixpkgs-unstable {
|
|
||||||
# system = "x86_64-linux";
|
|
||||||
# config = {
|
|
||||||
# allowUnfreePredicate = (pkg: true);
|
|
||||||
# allowUnfree = true;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
# nixpkgs.overlays = [
|
# nixpkgs.overlays = [
|
||||||
# overlay-unstable
|
# inputs.nur.overlay
|
||||||
# ];
|
# ];
|
||||||
|
|
||||||
|
# nixpkgs.config.allowUnfree = true;
|
||||||
|
# inputs.nixpkgs-stable.config.allowUnfree = true;
|
||||||
imports = [
|
imports = [
|
||||||
../apps/firefox/firefox.nix
|
../apps/firefox/firefox.nix
|
||||||
];
|
];
|
||||||
|
@ -48,46 +27,40 @@
|
||||||
firefoxApp.enable = true;
|
firefoxApp.enable = true;
|
||||||
|
|
||||||
fonts.fontconfig.enable = true;
|
fonts.fontconfig.enable = true;
|
||||||
|
|
||||||
|
|
||||||
home.packages = with pkgs; [
|
home.packages = with pkgs; [
|
||||||
# nur.repos.crazazy.js.eslint
|
# nur.repos.crazazy.js.eslint
|
||||||
# inputs.nixpkgs-stable.legacyPackages.x86_64-linux.corectrl
|
# inputs.nixpkgs-stable.legacyPackages.x86_64-linux.corectrl
|
||||||
chromium
|
|
||||||
#
|
#
|
||||||
# Dev Tools
|
# Dev Tools
|
||||||
#
|
#
|
||||||
dbeaver-bin
|
dbeaver
|
||||||
helix
|
cargo
|
||||||
# kakoune
|
kakoune
|
||||||
# flutter316
|
flutter316
|
||||||
docker
|
docker
|
||||||
docker-compose
|
docker-compose
|
||||||
fossil
|
|
||||||
fnc
|
|
||||||
jq
|
|
||||||
python310
|
python310
|
||||||
|
nodejs_21
|
||||||
|
zig
|
||||||
### LSP's
|
### LSP's
|
||||||
nil # Nix LSP
|
rnix-lsp # Nix LSP
|
||||||
nodePackages_latest.bash-language-server
|
|
||||||
openscad-lsp
|
openscad-lsp
|
||||||
|
nodePackages.typescript-language-server
|
||||||
vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
|
vscode-langservers-extracted # provides eslint, markdown, json, css, and html lsp
|
||||||
python311Packages.python-lsp-server
|
rubyPackages.solargraph
|
||||||
# zls
|
python310Packages.python-lsp-server
|
||||||
|
zls
|
||||||
### Misc
|
### Misc
|
||||||
# android-udev-rules
|
# android-udev-rules
|
||||||
# android-tools
|
# android-tools
|
||||||
# sdkmanager
|
# sdkmanager
|
||||||
usbutils
|
|
||||||
cli-visualizer
|
|
||||||
openscad
|
openscad
|
||||||
|
|
||||||
#
|
#
|
||||||
# Gaming
|
# Gaming
|
||||||
#
|
#
|
||||||
amdgpu_top
|
amdgpu_top
|
||||||
mangohud
|
|
||||||
r2modman
|
|
||||||
wine-wayland
|
wine-wayland
|
||||||
webcord
|
webcord
|
||||||
|
|
||||||
|
@ -96,80 +69,79 @@
|
||||||
#
|
#
|
||||||
bat
|
bat
|
||||||
duf
|
duf
|
||||||
du-dust
|
|
||||||
fd
|
fd
|
||||||
fzf
|
fzf
|
||||||
lsd
|
lsd
|
||||||
ripgrep
|
ripgrep
|
||||||
tre-command
|
tre-command
|
||||||
gtop
|
gtop
|
||||||
htop
|
|
||||||
neofetch
|
|
||||||
# Normies
|
# Normies
|
||||||
unzip
|
unzip
|
||||||
llpp
|
|
||||||
nmap
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Photo / Video
|
# Photo / Video
|
||||||
#
|
#
|
||||||
oldstable.davinci-resolve-studio
|
davinci-resolve-studio
|
||||||
davinciDesktop
|
|
||||||
imv
|
imv
|
||||||
mpv
|
mpv
|
||||||
gimp
|
gimp
|
||||||
ffmpeg
|
ffmpeg
|
||||||
tenacity
|
|
||||||
yt-dlp
|
|
||||||
libimobiledevice
|
|
||||||
ifuse
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Communication
|
# Communication
|
||||||
#
|
#
|
||||||
mumble
|
mumble
|
||||||
slack
|
slack
|
||||||
unstable.signal-desktop
|
signal-desktop
|
||||||
|
|
||||||
#
|
#
|
||||||
# Other
|
# Other
|
||||||
#
|
#
|
||||||
keepassxc
|
keepassxc
|
||||||
obs-studio
|
obs-studio
|
||||||
unstable.betaflight-configurator
|
|
||||||
yubioath-flutter
|
|
||||||
|
|
||||||
#
|
|
||||||
# Style
|
|
||||||
#
|
|
||||||
catppuccin-kvantum
|
|
||||||
libsForQt5.qtstyleplugin-kvantum
|
|
||||||
libsForQt5.qt5ct
|
|
||||||
# Install fonts
|
# Install fonts
|
||||||
lato
|
|
||||||
(nerdfonts.override { fonts = [ "Hermit" "Overpass" ]; })
|
(nerdfonts.override { fonts = [ "Hermit" "Overpass" ]; })
|
||||||
recursive
|
|
||||||
|
# # You can also create simple shell scripts directly inside your
|
||||||
|
# # configuration. For example, this adds a command 'my-hello' to your
|
||||||
|
# # environment:
|
||||||
|
# (pkgs.writeShellScriptBin "my-hello" ''
|
||||||
|
# echo "Hello, ${config.home.username}!"
|
||||||
|
# '')
|
||||||
];
|
];
|
||||||
|
|
||||||
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
# Home Manager is pretty good at managing dotfiles. The primary way to manage
|
||||||
# plain files is through 'home.file'.
|
# plain files is through 'home.file'.
|
||||||
home.file."${config.xdg.configHome}" = {
|
home.file."${config.xdg.configHome}" = {
|
||||||
|
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
|
||||||
|
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
|
||||||
|
# # symlink to the Nix store copy.
|
||||||
|
# ".screenrc".source = dotfiles/screenrc;
|
||||||
source = ../../dotfiles;
|
source = ../../dotfiles;
|
||||||
recursive = true;
|
recursive = true;
|
||||||
|
|
||||||
|
# # You can also set the file content immediately.
|
||||||
|
# ".gradle/gradle.properties".text = ''
|
||||||
|
# org.gradle.console=verbose
|
||||||
|
# org.gradle.daemon.idletimeout=3600000
|
||||||
|
# '';
|
||||||
};
|
};
|
||||||
|
|
||||||
# For applying custom styles
|
|
||||||
# home.file.".mozilla/firefox/default" = {
|
|
||||||
# source = ../../misc/firefox_styles;
|
|
||||||
# recursive = true;
|
|
||||||
# };
|
|
||||||
# location where stylus data is kept
|
|
||||||
# /home/nate/.mozilla/firefox/default/storage/default/moz-extension+++77a1d59f-183c-4439-b249-fdae98b7bd7b/idb
|
|
||||||
|
|
||||||
|
# Home Manager can also manage your environment variables through
|
||||||
|
# 'home.sessionVariables'. If you don't want to manage your shell through Home
|
||||||
|
# Manager then you have to manually source 'hm-session-vars.sh' located at
|
||||||
|
# either
|
||||||
|
#
|
||||||
|
# ~/.nix-profile/etc/profile.d/hm-session-vars.sh
|
||||||
|
#
|
||||||
|
# or
|
||||||
|
#
|
||||||
|
# /etc/profiles/per-user/nate/etc/profile.d/hm-session-vars.sh
|
||||||
|
#
|
||||||
home.sessionVariables = {
|
home.sessionVariables = {
|
||||||
# MANPAGER="sh -c 'col -bx | bat -l man -p'";
|
EDITOR = "kak";
|
||||||
BAT_THEME="Catppuccin Macchiato";
|
|
||||||
EDITOR = "hx";
|
|
||||||
XDG_CURRENT_DESKTOP="sway";
|
XDG_CURRENT_DESKTOP="sway";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -178,25 +150,6 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
userEmail = email;
|
userEmail = email;
|
||||||
userName = fullName;
|
userName = fullName;
|
||||||
extraConfig = {
|
|
||||||
include = { path = "${config.xdg.configHome}/macchiato.gitconfig"; };
|
|
||||||
init = { defaultBranch = "main"; };
|
|
||||||
pull = { ff = "only"; };
|
|
||||||
merge = { conflictStyle="zdiff3"; };
|
|
||||||
push = { autoSetupRemote="true"; };
|
|
||||||
delta = { features = "Catppuccin Macchiato"; };
|
|
||||||
};
|
|
||||||
delta.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
programs = {
|
|
||||||
direnv = {
|
|
||||||
enable = true;
|
|
||||||
enableZshIntegration = true; # see note on other shells below
|
|
||||||
nix-direnv.enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
bash.enable = true; # see note on other shells below
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# Zsh setup
|
# Zsh setup
|
||||||
|
@ -204,85 +157,51 @@
|
||||||
enable = true;
|
enable = true;
|
||||||
oh-my-zsh = {
|
oh-my-zsh = {
|
||||||
enable = true;
|
enable = true;
|
||||||
plugins = [ "fossil" "git" ];
|
plugins = [ "git" ];
|
||||||
theme = "half-life";
|
theme = "half-life";
|
||||||
};
|
};
|
||||||
initExtra = ''
|
initExtra = ''
|
||||||
eval "$(direnv hook zsh)"
|
alias ask="nix-shell -p python310Packages.openai --run 'python ~/source/python/chat.py'"
|
||||||
export SSH_AUTH_SOCK=$XDG_RUNTIME_DIR/ssh-agent
|
|
||||||
|
|
||||||
# fzf_projects() {
|
fzf_projects() {
|
||||||
# DIR=`
|
DIR=`
|
||||||
# fd .git --search-path="$HOME/source/" -H --ignore-file ~/.config/fd-ignore -tdirectory | \
|
fd .git --search-path="$HOME/source/" -H --ignore-file ~/.config/fd-ignore -tdirectory | \
|
||||||
# xargs dirname | \
|
xargs dirname | \
|
||||||
# sed 's|$HOME||g' | \
|
sed 's|$HOME||g' | \
|
||||||
# sort | \
|
sort | \
|
||||||
# uniq | \
|
uniq | \
|
||||||
# fzf --preview 'ls $HOME/{}/README.md 2>/dev/null && bat $HOME/{}/README.md || printf "No README.md file found in this directory\n%s" {}' --preview-window=top | \
|
fzf --preview 'ls $HOME/{}/README.md 2>/dev/null && bat $HOME/{}/README.md || printf "No README.md file found in this directory\n%s" {}' --preview-window=top | \
|
||||||
# xargs printf "$HOME/%s/"
|
xargs printf "$HOME/%s/"
|
||||||
# `
|
`
|
||||||
# cd $DIR
|
cd $DIR
|
||||||
# }
|
|
||||||
# alias p="fzf_projects ~/source/"
|
|
||||||
yt-audio() {
|
|
||||||
nix-shell -p yt-dlp --run "yt-dlp -x $1 --audio-format mp3"
|
|
||||||
}
|
}
|
||||||
|
alias p="fzf_projects source/"
|
||||||
|
|
||||||
# Better Unix Aliases
|
|
||||||
# alias ask="nix-shell -p python310Packages.openai --run 'python ~/source/python/chat.py'"
|
|
||||||
alias ls="lsd"
|
alias ls="lsd"
|
||||||
alias l="lsd --almost-all --long"
|
alias l="lsd --almost-all --long"
|
||||||
alias llm="lsd --timesort --long"
|
alias llm="lsd --timesort --long"
|
||||||
alias lS="lsd --oneline --classic"
|
alias lS="lsd --oneline --classic"
|
||||||
alias lt="lsd --tree --depth=2"
|
alias lt="lsd --tree --depth=2"
|
||||||
alias grep="rg"
|
|
||||||
alias cat="bat --paging=never"
|
|
||||||
alias rm="rm -i"
|
|
||||||
alias adaptiveoff="swaymsg 'output * adaptive_sync off'"
|
|
||||||
alias adaptiveon="swaymsg 'output * adaptive_sync on'"
|
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
qt = {
|
qt = {
|
||||||
enable = true;
|
enable = true;
|
||||||
platformTheme.name = "qtct";
|
platformTheme = "gtk";
|
||||||
style.name = "kvantum";
|
style.name = "adwaita-dark";
|
||||||
};
|
style.package = pkgs.adwaita-qt;
|
||||||
|
|
||||||
gtk = {
|
|
||||||
enable = true;
|
|
||||||
cursorTheme = {
|
|
||||||
package = pkgs.catppuccin-cursors.macchiatoLavender;
|
|
||||||
name = "Catppuccin-Macchiato-Lavender-Cursors";
|
|
||||||
};
|
};
|
||||||
iconTheme = {
|
gtk = {
|
||||||
package = pkgs.catppuccin-papirus-folders;
|
enable = true;
|
||||||
name = "Papirus-Dark";
|
cursorTheme.package = pkgs.catppuccin-cursors;
|
||||||
|
cursorTheme.name = "latteFlamingo";
|
||||||
|
theme = {
|
||||||
|
name = "Catppuccin-Latte-Pink";
|
||||||
|
package = pkgs.catppuccin-gtk.override {
|
||||||
|
accents = [ "pink" ];
|
||||||
|
tweaks = [ ];
|
||||||
|
variant = "latte";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
theme = {
|
|
||||||
name = "catppuccin-macchiato-lavender-compact+rimless";
|
|
||||||
package = pkgs.catppuccin-gtk.override {
|
|
||||||
accents = [ "lavender" ];
|
|
||||||
size = "compact";
|
|
||||||
tweaks = [ "rimless" ];
|
|
||||||
variant = "macchiato";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# Symlink in gtk and kvantum theme to ~/.config
|
|
||||||
xdg.configFile = {
|
|
||||||
"gtk-4.0/assets".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/assets";
|
|
||||||
"gtk-4.0/gtk.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk.css";
|
|
||||||
"gtk-4.0/gtk-dark.css".source = "${config.gtk.theme.package}/share/themes/${config.gtk.theme.name}/gtk-4.0/gtk-dark.css";
|
|
||||||
"Kvantum/kvantum.kvconfig".text = ''
|
|
||||||
[General]
|
|
||||||
theme=Catppuccin-Frappe-Blue
|
|
||||||
'';
|
|
||||||
"Kvantum/Catppuccin-Frappe-Blue".source = "${pkgs.catppuccin-kvantum}/share/Kvantum/Catppuccin-Frappe-Blue";
|
|
||||||
};
|
|
||||||
|
|
||||||
home.file.".icons/default/index.theme".text = ''
|
|
||||||
[icon theme]
|
|
||||||
Inherits=Catppuccin-Macchiato-Lavender-Cursors
|
|
||||||
'';
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,6 @@
|
||||||
config = lib.mkIf config.swaywm.enable {
|
config = lib.mkIf config.swaywm.enable {
|
||||||
|
|
||||||
programs.sway.enable = true;
|
programs.sway.enable = true;
|
||||||
programs.sway.wrapperFeatures.gtk = true;
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfree = config.swaywm.useNonFree;
|
nixpkgs.config.allowUnfree = config.swaywm.useNonFree;
|
||||||
# For R2ModMan
|
# For R2ModMan
|
||||||
|
@ -66,33 +65,30 @@
|
||||||
sway-contrib.grimshot
|
sway-contrib.grimshot
|
||||||
libnotify
|
libnotify
|
||||||
mako
|
mako
|
||||||
man-pages
|
|
||||||
man-pages-posix
|
|
||||||
ncspot
|
ncspot
|
||||||
networkmanagerapplet
|
networkmanagerapplet
|
||||||
pavucontrol
|
pavucontrol
|
||||||
slurp
|
slurp
|
||||||
syncthingtray
|
|
||||||
swaylock
|
swaylock
|
||||||
swayidle
|
swayidle
|
||||||
swaybg
|
swww
|
||||||
# swww
|
|
||||||
tailscale-systray
|
|
||||||
wl-clipboard
|
wl-clipboard
|
||||||
waybar
|
waybar
|
||||||
wdisplays
|
wdisplays
|
||||||
wofi
|
wofi
|
||||||
xdg-utils
|
xdg-utils
|
||||||
zsh
|
zsh
|
||||||
lxqt.lxqt-policykit
|
|
||||||
# Fonts
|
# Fonts
|
||||||
]
|
]
|
||||||
config.swaywm.systemPackages
|
config.swaywm.systemPackages
|
||||||
|
# (lib.mkIf config.swaywm.installGaming [
|
||||||
|
# pkgs.lutris
|
||||||
|
# ])
|
||||||
];
|
];
|
||||||
environment.variables.QT_STYLE_OVERRIDE = "kvantum";
|
|
||||||
|
|
||||||
# adds additional man pages
|
# environment.loginShellInit = ''
|
||||||
documentation.dev.enable = true;
|
# [[ "$(tty)" == /dev/tty1 ]] && sway
|
||||||
|
# '';
|
||||||
|
|
||||||
# Thunar config
|
# Thunar config
|
||||||
programs.thunar = {
|
programs.thunar = {
|
||||||
|
@ -107,54 +103,44 @@
|
||||||
|
|
||||||
programs.zsh.enable = true;
|
programs.zsh.enable = true;
|
||||||
programs.steam.enable = config.swaywm.installGaming;
|
programs.steam.enable = config.swaywm.installGaming;
|
||||||
programs.gamemode.enable = true;
|
|
||||||
|
|
||||||
programs.adb.enable = true;
|
programs.adb.enable = true;
|
||||||
|
# kdeconnect setup
|
||||||
programs.kdeconnect.enable = true;
|
programs.kdeconnect.enable = true;
|
||||||
# service file to start the sshAgent
|
|
||||||
programs.ssh.startAgent = true;
|
|
||||||
|
|
||||||
###
|
###
|
||||||
## Services
|
## Services
|
||||||
###
|
###
|
||||||
virtualisation.docker.enable = true;
|
services.gvfs.enable = true; # thunar functionalities
|
||||||
services.blueman.enable = true;
|
|
||||||
services.flatpak.enable = true;
|
|
||||||
services.gvfs.enable = true; # thunar mount, trash, etc
|
|
||||||
services.tumbler.enable = true; # thunar thumbnails
|
|
||||||
services.openssh.enable = true;
|
services.openssh.enable = true;
|
||||||
services.dbus.enable = true;
|
services.dbus.enable = true;
|
||||||
services.syncthing.enable = true;
|
|
||||||
services.gnome.gnome-keyring.enable = true;
|
|
||||||
services.usbmuxd.enable = true;
|
|
||||||
services.tailscale = {
|
|
||||||
enable = true;
|
|
||||||
openFirewall = true;
|
|
||||||
};
|
|
||||||
# For betaflight configurator
|
|
||||||
services.udev.extraRules = ''
|
|
||||||
# DFU (Internal bootloader for STM32 and AT32 MCUs)
|
|
||||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="2e3c", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout"
|
|
||||||
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0664", GROUP="dialout"
|
|
||||||
'';
|
|
||||||
# For yubioath desktop
|
|
||||||
services.pcscd.enable = true;
|
|
||||||
# Audio
|
# Audio
|
||||||
security.rtkit.enable = true;
|
security.rtkit.enable = true;
|
||||||
services.pipewire = {
|
services.pipewire = {
|
||||||
enable = true;
|
enable = true;
|
||||||
alsa.enable = true;
|
alsa.enable = true;
|
||||||
|
# alsa.support32Bit = true;
|
||||||
pulse.enable = true;
|
pulse.enable = true;
|
||||||
wireplumber.enable = true;
|
wireplumber.enable = true;
|
||||||
};
|
};
|
||||||
sound.enable = false;
|
sound.enable = false;
|
||||||
|
|
||||||
###
|
###
|
||||||
## Misc
|
## Misc
|
||||||
###
|
###
|
||||||
|
|
||||||
# Necessary for home-manager sway setup
|
# Necessary for home-manager sway setup
|
||||||
security.polkit.enable = true;
|
security.polkit.enable = true;
|
||||||
|
|
||||||
|
# services.xserver.enable = true;
|
||||||
|
# services.xserver.displayManager.defaultSession = "sway";
|
||||||
|
# services.xserver.displayManager.gdm.enable = true;
|
||||||
|
# services.xserver.displayManager.gdm.wayland = true;
|
||||||
|
# services.xserver.displayManager.gdm.settings = {
|
||||||
|
# greeter.includeAll = false;
|
||||||
|
# greeter.include = "nate";
|
||||||
|
# };
|
||||||
|
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = rec {
|
settings = rec {
|
||||||
|
@ -166,21 +152,21 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
# services.xserver.videoDrivers = [ "amdgpu" ];
|
services.xserver.videoDrivers = [ "amdgpu" ];
|
||||||
# Enable HIP
|
# Enable HIP
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"
|
"L+ /opt/rocm/hip - - - - ${pkgs.rocmPackages.clr}"
|
||||||
];
|
];
|
||||||
hardware.bluetooth.enable = true; # enables support for Bluetooth
|
# services.xserver.videoDrivers = [ "amdgpu-pro" ];
|
||||||
hardware.bluetooth.powerOnBoot = true; # powers up the default Bluetooth controller on boot
|
|
||||||
hardware.opengl = {
|
hardware.opengl = {
|
||||||
# Mesa
|
# Mesa
|
||||||
# enable = true;
|
enable = true;
|
||||||
# Vulkan
|
# Vulkan
|
||||||
# driSupport = true;
|
driSupport = true;
|
||||||
# Rocm support and vulkan drivers
|
# Rocm support and vulkan drivers
|
||||||
extraPackages = with pkgs; [
|
extraPackages = with pkgs; [
|
||||||
rocmPackages.clr.icd
|
rocmPackages.clr.icd
|
||||||
|
amdvlk
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -46,10 +46,6 @@ in
|
||||||
"audio"
|
"audio"
|
||||||
# For android
|
# For android
|
||||||
"adbusers"
|
"adbusers"
|
||||||
# For serial interfaces
|
|
||||||
"dialout"
|
|
||||||
# For docker
|
|
||||||
"docker"
|
|
||||||
];
|
];
|
||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
|
@ -28,12 +28,6 @@
|
||||||
fsType = "ext4";
|
fsType = "ext4";
|
||||||
};
|
};
|
||||||
|
|
||||||
fileSystems."/home/nate/kage" = {
|
|
||||||
device = "192.168.1.169:/kage";
|
|
||||||
fsType = "nfs";
|
|
||||||
options = [ "nfsvers=4.2" "x-systemd.automount" "noauto" "x-systemd.idle-timeout=600" ]; # lazy mounting and auto disconnect after 600 seconds
|
|
||||||
};
|
|
||||||
|
|
||||||
swapDevices = [ ];
|
swapDevices = [ ];
|
||||||
|
|
||||||
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
|
||||||
|
|
|
@ -1,80 +0,0 @@
|
||||||
{lib, config, pkgs, inputs, ...}:
|
|
||||||
let
|
|
||||||
cfg = config.firefoxApp;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
# imports = [
|
|
||||||
# inputs.nur.hmModules.nur
|
|
||||||
# ];
|
|
||||||
|
|
||||||
options.firefoxApp = {
|
|
||||||
enable = lib.mkEnableOption "enable firefox browser";
|
|
||||||
};
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
programs.firefox = {
|
|
||||||
# Add pipewire support
|
|
||||||
package = (pkgs.wrapFirefox (pkgs.firefox-unwrapped.override { pipewireSupport = true;}) {});
|
|
||||||
enable = true;
|
|
||||||
profiles = {
|
|
||||||
default = {
|
|
||||||
id = 0;
|
|
||||||
name = "default";
|
|
||||||
isDefault = true;
|
|
||||||
extensions = with pkgs; [
|
|
||||||
nur.repos.rycee.firefox-addons.darkreader
|
|
||||||
nur.repos.rycee.firefox-addons.keepassxc-browser
|
|
||||||
nur.repos.crazazy.firefox-addons.ublock-origin
|
|
||||||
];
|
|
||||||
search = {
|
|
||||||
# Replace default firefox search engine config with this one
|
|
||||||
force = true;
|
|
||||||
default = "Startpage";
|
|
||||||
engines = {
|
|
||||||
"Startpage" = {
|
|
||||||
urls = [{
|
|
||||||
template = "https://www.startpage.com/sp/search?query={searchTerms}";
|
|
||||||
}];
|
|
||||||
};
|
|
||||||
"Nix Packages" = {
|
|
||||||
urls = [{
|
|
||||||
template = "https://search.nixos.org/packages";
|
|
||||||
params = [
|
|
||||||
{ name = "type"; value = "packages"; }
|
|
||||||
{ name = "query"; value = "{searchTerms}"; }
|
|
||||||
];
|
|
||||||
}];
|
|
||||||
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
|
|
||||||
definedAliases = [ "@np" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
settings = {
|
|
||||||
"browser.startup.blankWindow" = true;
|
|
||||||
"browser.startup.homepage" = "https://www.startpage.com/do/mypage.pl?prfe=11898a1adf7b7dfb587580692f358773a11ca25e993b8e077476641cec033319e15f2449c345f5be919fd0a082015c3e4ed23143bd4337512466c04c2999831a54abca2eaeb42963c63ff064";
|
|
||||||
"browser.newtabpage.enabled" = false;
|
|
||||||
"browser.search.region" = "US";
|
|
||||||
"browser.search.isUS" = true;
|
|
||||||
"distribution.searchplugins.defaultLocale" = "en-US";
|
|
||||||
"general.useragent.locale" = "en-US";
|
|
||||||
"extensions.activeThemeID" = "{831b8843-7251-4306-9521-e688f18b4aeb}";
|
|
||||||
"privacy.trackingprotection.enable" = true;
|
|
||||||
"privacy.trackingprotection.emailtracking.enable" = true;
|
|
||||||
"privacy.trackingprotection.socialtracking.enable" = true;
|
|
||||||
"privacy.clearOnShutdown.cookies" = true;
|
|
||||||
"browser.safebrowsing.passwords.enabled" = false;
|
|
||||||
"browser.migrate.interactions.passwords" = false;
|
|
||||||
"pref.privacy.disable_button.view_passwords" = false;
|
|
||||||
"signon.rememberSignon" = false;
|
|
||||||
"extensions.formautofill.creditCards.enabled" = false;
|
|
||||||
"extensions.formautofill.addresses.enabled" = false;
|
|
||||||
"browser.toolbars.bookmarks.visibility" = "always";
|
|
||||||
# "browser.newtabpage.pinned" = [{
|
|
||||||
# title = "NixOS";
|
|
||||||
# url = "https://nixos.org";
|
|
||||||
# }];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,53 +0,0 @@
|
||||||
{ lib, config, pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.main_user;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.main_user = {
|
|
||||||
enable = lib.mkEnableOption "enable user module";
|
|
||||||
|
|
||||||
isDesktopUser = lib.mkOption {
|
|
||||||
default = false;
|
|
||||||
example = true;
|
|
||||||
description = "Add additional user groups for desktop users";
|
|
||||||
};
|
|
||||||
|
|
||||||
userName = lib.mkOption {
|
|
||||||
default = "mainuser";
|
|
||||||
description = "username";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
users.users.${cfg.userName} = lib.mkMerge [
|
|
||||||
{
|
|
||||||
isNormalUser = true;
|
|
||||||
initialPassword = "password";
|
|
||||||
|
|
||||||
description = "main user";
|
|
||||||
shell = pkgs.zsh;
|
|
||||||
}
|
|
||||||
|
|
||||||
(lib.mkIf (!cfg.isDesktopUser) {
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
"networkmanager"
|
|
||||||
cfg.userName
|
|
||||||
];
|
|
||||||
})
|
|
||||||
(lib.mkIf cfg.isDesktopUser {
|
|
||||||
extraGroups = [
|
|
||||||
"wheel"
|
|
||||||
"networkmanager"
|
|
||||||
"corectrl"
|
|
||||||
cfg.userName
|
|
||||||
"video"
|
|
||||||
"audio"
|
|
||||||
# For android
|
|
||||||
"adbusers"
|
|
||||||
];
|
|
||||||
})
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,28 +0,0 @@
|
||||||
{lib, pkgs, config, ...}:
|
|
||||||
let
|
|
||||||
cfg = config.nixGc;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.nixGc = {
|
|
||||||
enable = lib.mkEnableOption "enable nix gc default settings";
|
|
||||||
};
|
|
||||||
|
|
||||||
config = lib.mkIf cfg.enable {
|
|
||||||
# Limit the number of generations to keep
|
|
||||||
boot.loader.systemd-boot.configurationLimit = 5;
|
|
||||||
|
|
||||||
# Perform garbage collection weekly to maintain low disk usage
|
|
||||||
nix.gc = {
|
|
||||||
automatic = true;
|
|
||||||
dates = "weekly";
|
|
||||||
options = "--delete-older-than 1w";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Optimize storage
|
|
||||||
# You can also manually optimize the store via:
|
|
||||||
# nix-store --optimise
|
|
||||||
# Refer to the following link for more details:
|
|
||||||
# https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-auto-optimise-store
|
|
||||||
nix.settings.auto-optimise-store = true;
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -1,193 +0,0 @@
|
||||||
{ config, lib, pkgs, timeZone, ... }:
|
|
||||||
let
|
|
||||||
srvConfig = config.serverConfig;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.serverConfig= {
|
|
||||||
userName = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
description = "Main username for system";
|
|
||||||
};
|
|
||||||
hostName = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
description = "Hostname for system";
|
|
||||||
};
|
|
||||||
hostId = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
description = "Host ID";
|
|
||||||
};
|
|
||||||
email = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
description = "Email for server box";
|
|
||||||
};
|
|
||||||
sshEnable = lib.mkOption {
|
|
||||||
default = false;
|
|
||||||
description = "Whether to enable ssh server";
|
|
||||||
};
|
|
||||||
nfsEnable = lib.mkOption {
|
|
||||||
default = false;
|
|
||||||
};
|
|
||||||
nfsRoot = lib.mkOption {
|
|
||||||
default = "/nfs_export";
|
|
||||||
type = lib.types.str;
|
|
||||||
};
|
|
||||||
nfsExports = lib.mkOption {
|
|
||||||
default = [];
|
|
||||||
description = "List of file paths provided as strings to the nfs exports";
|
|
||||||
};
|
|
||||||
nfsIpExport = lib.mkOption {
|
|
||||||
type = lib.types.str;
|
|
||||||
description = "Where to export the shares to i.e. 192.168.0.0/24 (export to local network)";
|
|
||||||
};
|
|
||||||
syncthingEnable = lib.mkOption {
|
|
||||||
default = false;
|
|
||||||
description = "Whether to enable syncThing host on this machine";
|
|
||||||
};
|
|
||||||
caldavEnable = lib.mkOption {
|
|
||||||
default = false;
|
|
||||||
description = "Enable the caldav server service (radicale)";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
imports = [
|
|
||||||
./modules/user/main_user.nix
|
|
||||||
];
|
|
||||||
|
|
||||||
config = {
|
|
||||||
# Enable flakes feature
|
|
||||||
nix.settings.experimental-features = [
|
|
||||||
"nix-command" "flakes"
|
|
||||||
];
|
|
||||||
|
|
||||||
boot.loader.systemd-boot.enable = true;
|
|
||||||
boot.loader.efi.canTouchEfiVariables = true;
|
|
||||||
|
|
||||||
networking = {
|
|
||||||
hostId = srvConfig.hostId;
|
|
||||||
hostName = srvConfig.hostName; # Define your hostname.
|
|
||||||
# Pick only one of the below networking options.
|
|
||||||
# networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.
|
|
||||||
networkmanager.enable = true; # Easiest to use and most distros use this by default.
|
|
||||||
};
|
|
||||||
|
|
||||||
time.timeZone = timeZone;
|
|
||||||
|
|
||||||
main_user = {
|
|
||||||
enable = true;
|
|
||||||
userName = srvConfig.userName;
|
|
||||||
isDesktopUser = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
|
||||||
docker
|
|
||||||
docker-compose
|
|
||||||
zsh
|
|
||||||
];
|
|
||||||
|
|
||||||
programs.zsh.enable = true;
|
|
||||||
|
|
||||||
services.openssh = lib.mkIf srvConfig.sshEnable {
|
|
||||||
enable = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# nfs options breakdown: link for export options https://linux.die.net/man/5/exports
|
|
||||||
# rw - default read write
|
|
||||||
# sync - wait until requests are saved to disk to respond to clients, safer but slower
|
|
||||||
# no_subtree_check -
|
|
||||||
services.nfs.server = lib.mkIf srvConfig.nfsEnable {
|
|
||||||
enable = true;
|
|
||||||
exports = ''
|
|
||||||
${srvConfig.nfsRoot} ${srvConfig.nfsIpExport}(rw,fsid=root,no_subtree_check)
|
|
||||||
${lib.concatMapStringsSep "\n" (n: "${srvConfig.nfsRoot}${n} ${srvConfig.nfsIpExport}(rw,sync,no_subtree_check,all_squash,anongid=105,anonuid=1005)") srvConfig.nfsExports}
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
# nfs port TODO make dependant on option enabled
|
|
||||||
# 2049 - nfs
|
|
||||||
# 8384 - syncthing
|
|
||||||
# 5352 - caldav server radicale
|
|
||||||
networking.firewall.allowedTCPPorts = [ 80 2049 5232 8384 ];
|
|
||||||
|
|
||||||
users.groups.kage = {
|
|
||||||
gid = 105;
|
|
||||||
};
|
|
||||||
users.users.kage = {
|
|
||||||
uid = 1005;
|
|
||||||
isSystemUser = true;
|
|
||||||
initialPassword = "password";
|
|
||||||
description = "user to manage nfs and syncthing tasks";
|
|
||||||
group = "kage";
|
|
||||||
extraGroups = [
|
|
||||||
"users"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
services.syncthing = lib.mkIf srvConfig.syncthingEnable {
|
|
||||||
enable = true;
|
|
||||||
user = "kage";
|
|
||||||
group = "users";
|
|
||||||
dataDir = "${srvConfig.nfsRoot}/kage/syncthing";
|
|
||||||
configDir = "${srvConfig.nfsRoot}/kage/.config/syncthing";
|
|
||||||
# overrideDevices = true; # overrides any devices added or deleted through the WebUI
|
|
||||||
# overrideFolders = true; # overrides any folders added or deleted through the WebUI
|
|
||||||
openDefaultPorts = true;
|
|
||||||
relay.enable = true;
|
|
||||||
guiAddress = "0.0.0.0:8384";
|
|
||||||
# settings = {
|
|
||||||
# devices = {
|
|
||||||
# # "supernote" = { id = "DEVICE-ID-GOES-HERE"; };
|
|
||||||
# # "pixel" = { id = "DEVICE-ID-GOES-HERE2"; };
|
|
||||||
# # "winmax" = { id = "id3"; };
|
|
||||||
# # "nix-box" = { id = "id4"; };
|
|
||||||
# };
|
|
||||||
# folders = {
|
|
||||||
# "supernote" = { # Name of folder in Syncthing, also the folder ID
|
|
||||||
# path = "${srvConfig.nfsRoot}/kage/syncthing/supernote"; # Which folder to add to Syncthing
|
|
||||||
# # devices = [ "supernote" "pixel" ]; # Which devices to share the folder with
|
|
||||||
# };
|
|
||||||
# "web" = { # Name of folder in Syncthing, also the folder ID
|
|
||||||
# path = "${srvConfig.nfsRoot}/kage/syncthing/web"; # Which folder to add to Syncthing
|
|
||||||
# # devices = [ "supernote" "pixel" "winmax" "nix-box" ]; # Which devices to share the folder with
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
|
|
||||||
services.radicale = lib.mkIf srvConfig.caldavEnable {
|
|
||||||
enable = true;
|
|
||||||
settings = {
|
|
||||||
# Run server port 5232
|
|
||||||
server = {
|
|
||||||
hosts = [ "0.0.0.0:5232" "[::]:5232" ];
|
|
||||||
};
|
|
||||||
auth = {
|
|
||||||
type = "htpasswd";
|
|
||||||
htpasswd_filename = "/home/luci/.config/radicale/rad_pass";
|
|
||||||
htpasswd_encryption = "bcrypt";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.timers."pixel-backups" = {
|
|
||||||
wantedBy = [ "timers.target" ];
|
|
||||||
timerConfig = {
|
|
||||||
OnCalendar = "daily";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services."pixel-backups" = {
|
|
||||||
script = ''
|
|
||||||
# Move files older than 90 days to the backups file
|
|
||||||
find /nfs_export/kage/syncthing/pixel_images/ -type f -mtime +90 | xargs -I {} mv {} /nfs_export/kage/Personal/Nate/Phone_Images
|
|
||||||
'';
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
User = "root";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# networking.firewall.allowedTCPPorts = [ ... ];
|
|
||||||
# networking.firewall.allowedUDPPorts = [ ... ];
|
|
||||||
|
|
||||||
system.stateVersion = "23.11"; # Did you read the comment?
|
|
||||||
};
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user